我有一堂课,属性为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)
是否可以比较属性是否匹配,而现在正在比较这些值?
答案 0 :(得分:2)
我认为这样是可能的。因为MyCostA
是decimal
属性:
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.2
和y-->3.3
如果您进行x = y
,则最终得到:
x-->3.3
y-->3.3
您不要以x-->3.3<--y
结尾。