c# - Microsoft 如何决定在 C# 中将方法设为静态/成员?

标签 c# static

<分区>

我注意到 FCL 中有许多静态方法只影响单个对象,例如 Array.Resize。将它们设为静态有什么意义?

最佳答案

实例方法只能修改对象的成员属性。在您的 Array.Resize 示例中,该方法修改了数组引用本身,这就是为什么它是静态的并通过引用获取参数的原因。

当你这样做时:

int[] arr = ...;
Array.Resize(ref arr, 10);

arr 引用本身被修改,这不可能通过调用 arr 上的方法实现。

或者,在不支持按引用传递的语言(例如 Java)中,它会被声明为返回新数组。

关于c# - Microsoft 如何决定在 C# 中将方法设为静态/成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9356447/

相关文章:

c# - ASP.NET MVC - 应用程序预热 - 使用两种方法中的哪一种?

c# - 以下在c#中使用expression-bodied语法的方式有区别吗?

multithreading - 如何在 WCF 服务中使用服务定位器

c# - 如何在单声道中获取 linux 分发信息?

c# - 如何正确设置网络服务网址?

java - 静态方法中变量的永久更改

javascript - 模仿 javascript 类中的静态属性

PHP:从html引用phar存档内的静态文件

java - 使用静态 block 在没有主要功能的控制台中打印一些语句时

c# - 以编程方式更新注册表设置有什么风险?