0
namespace MyStyle
{
    public class Styles
    {                  
            //intended to store style.properties & style.values class 

        public sealed class sealdPropsClass 
        {
            public sealed const string DarkBlueColor = "darkBlue";
        }

        public static class staticPropsClass
        {
            public static const string LightBlueColor = "lightBlue";
        }
    }
}

次のようにアクセスします。

 using MyStyles;
 
 string ColorBlue = Styles.sealedPropsClass.DarkBlueColor;

クラスと継承に関する別の質問で、 static修飾子を控えるように警告されました

理由は次のとおりです。現在のユーザーがすでにクラスにアクセスしている間、他のユーザーはアクセスできません

現在のページまたはそのクラスを使用する別の Web アプリケーション経由。

この例から理解したいこと:

1.

スタイルをラップするにouter classはどうすればよいですか (それは私がすべきことですか?):

instanceしたがって、以下のコードのように、サブジェクト クラスの = クローンを使用できます。

public Styles CurrentAppStyles = new Styles();

string darkColor = CurrentAppStyles.sealdPropsClass.DarkBlueColor

2.

MyStyle経由で名前空間をインポートしている場合

 using MyStyle; ///<-- is that an instance ? 

つまり、(その場合に例外エラーがあった場合)ユーザーに警告しません:

"Styles.SealedPropsClass.DarkBlueColorは現在使用中です。後でもう一度試してください..."

または、実際に全体をインスタンス化していますnamespace(この場合、それが起こると思います)

そして、あなたの経験と知識から、私がここで得ることができる大きな助けに感謝します!!

更新(質問のソース)

これは私が警告された場所 です、もう少し光を当ててくださいませんか???

これはあなたの質問への回答ではありませんが、まだ指摘されていないことに気付きました.あなたのメールクラスは静的であると宣言されており、パブリック静的フィールドが公開されているため危険です. **

** update 2** 私の欠点は、Joshuas のコメントから得られなかったことです。実際には状態をグローバルに共有することは、アクセスの問題ではなく問題でした...だから、定数フィールド (文字列など) を使用する場合に推測します... ) は問題にならない

4

1 に答える 1

0

したがって、静的クラスの使用は、たとえばすべてのシナリオで回避されるべきではないことを今では理解できます。拡張メソッドは静的クラスを介して使用されます。たとえば、ほとんどのサブクラスは静的です:"

public class container // instanciated so name is not so relevant 
{                      // e.g : container c = new container()
                       // usage- c.utils.......
    public static class utils // used from an instance of container
    {
      public static int Str2int(string strToConvert)
      {
          return Convert.ToInt32(StrToConvert);
      }
    }
}
于 2012-11-24T17:25:26.167 に答える