c# - 我可以给 C# 参数一个默认值吗?

标签 c#

在 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/

相关文章:

c# - 将 "1.5TB", "500MB"转换成单个文件大小单位

c# - CodeFile ="Registration.aspx.cs"可以在aspx页面的这一行添加多个partial classes文件

c# - 流利的 nHibernate : one-to-many relationship Issue

c# - 打开 Windows 资源管理器到 Combined-GUID 文件夹

c# - 使用 ffmpeg 和正则表达式获取 'creation_time' 的视频

c# - 弹出 View 时是否有 iOS 覆盖?

c# - 验证在 Blazor 服务器端不起作用

C# padLeft,不添加填充

c# - 套接字是否应该受到保护

c# - 部署使用 Entity Framework 的应用程序并在客户端计算机上创建数据库