在 C# 中,我们可以像 C++ 一样执行以下操作吗?
public void myMethod(int i, MyClass obj, int value=100){
}
另一个问题是MyClass是一个引用类型,如果它前面没有ref
,它会将MyClass的副本传递给方法而不是引用?
谢谢,
最佳答案
在 C# 3(当前版本)之前的 C# 中没有。在 C# 4 中你可以有 optional parameters具有默认值。
关于MyClass和ref
的问题,参数是按值传递的。对于引用类型,您可以说变量(或参数)的“值”是对实例的引用,因此如果您修改 MyClass
实例的属性,您修改的实例与调用者有一个引用。
Jon Skeet 就这个主题写了一篇很好的文章:“Parameter passing in C#”
关于c# - 我可以给 C# 参数一个默认值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2237937/