这里的新程序员,我只想了一会儿。比如看看这个,这些有什么区别?:
static void Main(string[] args)
{
Program obj = new Program();
Console.WriteLine(Convert.ToString(obj.Add()));
}
int Add()
{
return 1 + 1;
}
和
int Sum;
static void Main(string[] args)
{
Console.WriteLine(Convert.ToString(Sum));
}
void Add()
{
Sum = 1+1;
}
答案 0 :(得分:1)
第一种情况执行方法Add
并将返回值2
打印到控制台。
第二种情况不会编译,因为Sum
是一个类变量而你缺少一个对象引用,就像在第一种情况下一样来访问它。
如果您要Sum
static
,那么您的Main
将起作用,只打印Sum
的默认值0
。因为你从不调用Add
方法。
至于两种Add()
方法的差异:
第二种情况使用类变量并对其进行操作。必须调用它才能使Sum
的值发生变化。
第一种情况仅使用本地计算,并且不会更改类中的任何内容。它只返回计算结果
编辑:
两者之间有什么区别,哪个更好?
这很大程度上取决于你打算做什么。如果您感兴趣的唯一内容是1+1
的结果,并且您需要在Main
之类的方法中使用此结果,那么请使用第一种情况。
如果变量代表类的重要特征,如下所示:
public class BillsToPay
{
public int Sum;
List<int> Bills = new List<int>() {3,5,6,7};
public void CalculateAllBills()
{
foreach (var bill in Bills)
{
Sum = Sum + bill;
}
}
}
然后你会有一个操作类变量Sum
并更新其状态的方法。所以第二个版本开始了。但它始终是如何处理特定问题的品味和意图的混合。
小测试程序:
static void Main(string[] args)
{
BillsToPay btp = new BillsToPay();
btp.CalculateAllBills();
Console.WriteLine(Convert.ToString(btp.Sum));
}