[トピック内 6 記事 (1 - 6 表示)] << 0 >>
↓...こゆこと? public class Global { private static string[] array = new string[10]; public string this[int index] { get { return array[index]; } set { array[index] = value; } } public static void Main() { { // せったー Global g0 = new Global(); g0[0] = "hello"; } { // げったー Global g1 = new Global(); System.Console.WriteLine(g1[0]); } } } # グローバルやめようよー ロクなことないからー
■No45677 (とんこつ さん) に返信 初期化でエラーが発生したとのことですが、もしかして次のように書かれたんじゃないですか? public class thumbnail { public static string[] oktitle { get; set; } = new string[100]; } { get; set; } という書き方は、「自動プロパティ」を意味します。 自動プロパティに対しては、残念ながら上記のように初期化コードを宣言的に書くことはできません。 初期化の方法としては、次の4つの方針があります。 1.使う側で初期化 thumbnail.oktitle = new string[100]; thumbnail.oktitle[0] = "test"; MessageBox.Show(thumbnail.oktitle[0]); 2.静的コンストラクタで初期化 public static class thumbnail { static thumbnail() { oktitle = new string[100]; } public static string[] oktitle { get; private set; }; } 3.自動プロパティにしない public static class thumbnail { private static string[] _oktitle = new string[100]; public static string[] oktitle { get { return _oktitle; } //set { _oktitle = value; } }; } 4.プロパティにさえしない public static class thumbnail { public static readonly string[] oktitle = new string[100]; } 上記の1以外では、一応、配列インスタンス自体のセットはできないようにしました。 また、このような場合には、上記のようにクラスにも static を付けることをお勧めします。 さらに、本当にグローバル的に扱う必要があるかどうかについても、再検討されることを強くお勧めします。
管理者用
- Child Tree -