注: インデクサーとデストラクターを静的にすることはできません。
メンバーを定義するときに static キーワードを使用する場合、クラス内にこのメンバーのインスタンスが 1 つだけ存在することを意味します。つまり、クラスのメンバーを静的メンバーとして宣言すると、そのオブジェクトの数に関係なく、クラスが作成されると、静的メンバーは 1 回だけ作成され、この静的メンバーはすべてのオブジェクトで共有されます。
1. 静的属性
static を使って定義されたメンバ属性を「静的属性」と呼び、事前にクラスのインスタンスを作成しなくても类名.属性名形式で直接アクセスできます。静的プロパティは、メンバー関数を使用して初期化するだけでなく、クラスの外部で直接初期化することもできます。
例を使用して、静的変数の使用を示してみましょう。
using System;
namespace it-kiso.com
{
class Demo
{
static void Main(string[] args)
{
Test.str = "IT基礎";
Console.WriteLine(Test.str);
Test test1 = new Test();
test1.getStr();
Test test2 = new Test();
test2.getStr();
test2.setStr("https://it-kiso.com/");
test1.getStr();
test2.getStr();
}
}
public class Test
{
public static string str;
public void setStr(string s){
str = s;
}
public void getStr(){
Console.WriteLine(str);
}
}
}
操作の結果は次のようになります。
IT基礎
IT基礎
IT基礎
https://it-kiso.com/
https://it-kiso.com/
2. 静的関数
静的プロパティの定義に加えて、static キーワードはメンバー関数の定義にも使用できます。static を使用して定義されたメンバー関数は「静的関数」と呼ばれます。静的関数は静的プロパティにのみアクセスできます。
次の例は、静的関数の使用を示しています。
using System;
namespace it-kiso.com
{
class Demo
{
static void Main(string[] args)
{
Test test1 = new Test();
test1.setStr("IT基礎");
Test.getStr();
Test test2 = new Test();
test2.setStr("https://it-kiso.com/");
Test.getStr();
}
}
public class Test
{
public static string str;
public void setStr(string s){
str = s;
}
public static void getStr(){
Console.WriteLine(str);
}
}
}
操作の結果は次のようになります。
IT基礎
https://it-kiso.com/






![2021 年に Raspberry Pi Web サーバーをセットアップする方法 [ガイド]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)





