簡體   English   中英

為什么在非靜態類中有所有靜態方法/變量?

[英]Why have all static methods/variables in a non-static class?

我遇到過一個非靜態的類,但所有的方法和變量都是靜態的。 例如:

public class Class1 {

    private static string String1 = "one";
    private static string String2 = "two";

    public static void PrintStrings(string str1, string str2)
    {
       ...

所有變量在所有實例中都是靜態的,因此沒有必要具有類的單獨實例。

有沒有理由創建這樣的類?

該課程是在.NET 1.x天內寫回來的嗎? 靜態類直到C#2.0才出現。

不,讓它成為靜態類。

有些人沒有意識到類本身可能是靜態的,因此不要包含在類定義中。 這很有用,因為它提供了更好的智能感知選項,並確保靜態添加未來的方法。

這也隱含了密封課程。

靜態類提供:

  • 僅包含靜態成員。

  • 無法實例化。

  • 是密封的。

  • 不能包含實例構造函數。

因此,創建靜態類與創建僅包含靜態成員和私有構造函數的類基本相同。

不,如果類中沒有實例成員,那么它應該是靜態的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM