试图将参数与属性进行比较

时间:2019-03-01 09:24:49

标签: c#

我有一堂课,属性为CostA

该类中有一个名为FakeClass的函数:

public static FakeClass {
    public decimal MyCostA { get; set; }
    public decimal MyCostB { get; set; }

    public string CompareCosts (decimal cost) {
       return cost == MyCostA ? "same property" : "not same property"
    }
}

var x = FakeClass.CompareCosts(FakeClass.MyCostA)

是否可以比较属性是否匹配,而现在正在比较这些值?

2 个答案:

答案 0 :(得分:2)

我认为这样是可能的。因为MyCostAdecimal属性:

class Program
{
    static void Main(string[] args)
    {
        FakeClass.MyCostA = 123;
        var x = FakeClass.CompareCosts(FakeClass.MyCostA);

        Console.WriteLine(x);
        Console.ReadKey();
    }
}

public static class FakeClass {
    public static decimal MyCostA { get; set; }
    public static decimal MyCostB { get; set; }

        public static string CompareCosts(decimal cost)
        {
            return cost == MyCostA ? "same property" : "not same property";
        }
}

答案 1 :(得分:1)

否,因为decimal不是引用类型。

对象是通过对象的链接存储的,就像这样

myObjectRef---->Object<-----mySecondObjectRef

您可以检查myObjectRef和mySecondObjectRef是否指向同一对象,==string是一个例外)。

小数和其他值类型没有引用,它们只是存储值。

所以:

十进制x = 2.2; 十进制y = 3.3;

给您x-->2.2y-->3.3

如果您进行x = y,则最终得到:

x-->3.3 y-->3.3

不要x-->3.3<--y结尾。