在这个代码片段中,this.Var1
表示10,这是非常明显的。
class MyClass
{
int Var1 = 10;
public int ReturnMaxSum(int Var1)
{
return Var1 > this.Var1
? Var1
: this.Var1;
}
}
class Program
{
static void Main()
{
MyClass me = new MyClass ();
Console.WriteLine($"Max: { mc.ReturnMaxSum(30) }");
Console.WriteLine($"Max: { mc.ReturnMaxSum(S) }");
}
}
二段
- 如果当前对象小于参数对象,则为负值;
- 如果当前对象大于参数对象,则为正值;
- 如果两个对象在比较时相等,则为零。
这里有一个问题:当前对象是什么?TheValue
还没有被赋予初始值,那么如何将它与输入参数mc.Value
进行比较呢?
class MyClass;IComparable
{
public int TheValue;
public int CompareTo(object obj)
{
MyClass mc= (MyClass)obj;
if (this.TheValue < mc.TheValue) return -1;
if (this.TheValue > mc.TheValue) return 1;
return 0;
}
}
1条答案
按热度按时间7lrncoxx1#
如果一个字段没有被赋值,它将被初始化为一个默认值,对于所有整数类型,该值为
0
。https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/default-values