【问题标题】:Assign value to Property by a value that is stored in an Array通过存储在数组中的值将值分配给属性
【发布时间】:2014-08-19 17:36:59
【问题描述】:

我找不到我的答案可能是因为我的代码没有有效地编写,而且我可能比现在更难,但这是我的情况。

我有一个包含十进制值数组 (decimal[] difficultyArray) 的类 (orders.cs)。 在这个类中,我有一个返回数组的属性 (public Array DifficultyArray)。 这个类还有一个字段属性 (private decimal productDifficulty)。

在我的 GUI 中,我有一个下拉菜单,列出了困难(简单、中等、困难)。当用户选择一个难度时,我调用一个方法来设置productDifficulty。我试图通过数组/属性来完成这个(我知道代码被破坏了)

newOrder.ProductDifficulty = newOrder.DifficultyArray(0).Value; // broken

这样的工作:

newOrder.ProductDifficulty = 1.0M

数组中的索引 0 为 1.0M。如何将元素 0 中的值分配给属性/字段?

【问题讨论】:

    标签: c# arrays properties


    【解决方案1】:

    Array 是一个抽象类,不能被实例化。假设ProductDifficultydecimal[],以下应该可以工作。

    newOrder.ProductDifficulty = newOrder.DifficultyArray[0];
    

    【讨论】:

    • 当我做你正在做的事情时,我收到以下错误:无法使用 [] 将索引应用于 system.Array 类型的表达式
    • 我明白你现在在说什么,但我想如果我改变它会遇到更多麻烦。我的返回数组的属性被声明为 public Array ProductDifficulty
    • DifficultyArray 的实际类型是什么?也就是说,它的初始化是什么样子的(ProductDifficulty = new ???();?)。
    • 十进制值数组是私有的,因此我访问十进制值数组的唯一方法是通过属性或方法。我正在使用一个属性,但我认为该属性可能是错误的类型。我把它作为数组类型而不是十进制。属性应该是十进制类型吗?
    • 我会亲自公开decimal[] 而不是Array,但Array 确实有一个您可以使用的名为GetValue(int index) 的方法 - 即newOrder.ProductDifficulty = (decimal)newOrder.DifficultyArray.GetValue(0);
    【解决方案2】:

    数组[0]

    这为您提供了索引 0 处的项目。假设索引 0 处的对象具有 Value 属性,您可以从那里:

    数组[0].Value = 7;

    如果数组存储整数,array[0] 获取整数本身,并且可以从那里分配。

    数组[0] = 7

    【讨论】:

    • 是元素/索引 0 有一个值,该值为 1.0M(十进制)。我想将该类中的一个字段分配给该元素/索引的值。我很难弄清楚如何将数组特定索引处的值分配给字段/属性。您可以在我之前的评论中看到我遇到的错误
    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多