我还是C#的新手,所以请在这里忍受。

如果我想只用2个参数运行一个简单的算法,那么用其他语言,我只需在main()之外创建一个函数。 相反,在C#中,显然我需要创建一个类并将函数(方法)放入该类中,并使该方法静态化,以便为运行时进行编码,而不必创建该类的实际对象,对吗?

如果这一切都是正确的,那么由于您正在创建对某事物的引用,这是否会造成很多开销?

===============>>#1 票数:6

在c#中,它们称为方法 ,而不是函数。

但是可以,如果您不想创建一个新类,而只是直接从Main()中调用一个方法,则可以在与Main相同的类中创建一个静态方法,然后从中调用它。

就开销而言,除非您正在构建某种设备驱动程序,否则我认为您不应该花费太多时间为此担心。

===============>>#2 票数:3

无需创建其他类,您的主要方法是Application类中的静态方法。 您可以将一个方法添加到此类并从main调用它,但是该方法也必须是静态的。

如果要利用面向对象的功能(例如成员变量),则需要创建一个类。 此类应具有一个方法,并且不必是静态的。

静态方法不包含任何对象创建开销,它们只是函数调用。 函数有一些开销(静态或非静态),因为它们必须将对象压入堆栈,并在退出时将其弹出。 但是,这种开销通常很小,并且仅在需要最佳性能的非常紧密的循环中才有意义。

通常,除非它对您的应用程序至关重要,否则您不必担心。

===============>>#3 票数:2

1)但是在C#中,我需要创建一个类,并将函数(方法)显然放在其中,并使它静态。

对,那是正确的。

2)使其为静态,以便为运行时进行编码,而不必创建该类的实际对象,对吗?

不,不是。 在这种情况下,“静态”仅表示“类范围:独立于任何特定类实例”(“类实例” ==“实例化对象”)。

3)这不会增加开销,因为您正在创建对某事物的引用?

不。 程序中的所有内容都存在。 在C#中,该“某处”总是总是恰好在一个或多个“类”之内。 并且您使用的所有内容都有一个“引用”(相当于一个“地址”)。 您绝对不会创建任何“额外”的东西,并且肯定不会存在“运行时损失”。

希望有帮助...至少有一点... :)

===============>>#4 票数:1

除非编写非常小的程序,否则始终将必须使用多个类(是否为静态类)。 我敦促您以结构合理,易于理解和简洁的编程风格为目标,而不是在这里和那里节省一纳秒的时间。

===============>>#5 票数:0

您的其他语言也有参考。 也许他们只是对你隐瞒了。

拥有静态方法实际上可以消耗更少的资源,因为该方法是附加到类上的,而不是附加到堆上的对象实例的。 因此,类加载器将只有一种方法放入内存。

  ask by aurelie tass translate from so

未解决问题?本站智能推荐:

关注微信公众号