C#学習日記20----staticな静的変数と定数

黄舟
リリース: 2017-01-21 15:13:40
オリジナル
1637 人が閲覧しました

前回の記事「デリゲート(デリゲート)の型」では、パブリックメソッドを定義する際にstaticキーワードを使用していたため、object.method名の形式でこのメソッドにアクセスできなくなりました。この記事では、について詳しく学びます。静的な静的変数。

変数:

静的静的変数を学習する前に、変数の意味を理解する必要があります。プログラムは、データの読み取り、書き込み、計算などの操作を実行する必要があります。ユーザーの観点から見ると、変数は情報を記述するために使用される名前です。変数には、人の名前、チケットの価格など、さまざまな種類の情報を保存できます。コンピュータの観点からは、変数は、その変数の種類、および種類を表します。値は変数に格納されます。変数を使用する場合の重要な原則は、変数は最初に定義してから使用する必要があるということです。

C# での変数の定義と使用ルールは C/C++ のルールと似ているため、ここでは詳しく説明しません (そのため、C をよく学ぶことが非常に重要です^_^)

static Static変数:

静的変更あり 静的変数で宣言された変数は、静的変数が属するクラスがロードされると、そのクラスを含むプログラムが終了するまで存在します。 static には 2 つの主なプロパティがあります:

1. 非表示:

クラス内で定義された静的メソッドまたは静的変数は、そのクラスのオブジェクトではなく、クラス自体に属します。静的として定義されたメソッドを呼び出すには、メソッドの前にクラス名を付ける必要があります。 (パブリック アクセスの変更も機能しません。その理由は前の記事の最後にあります) インスタンス メソッドは、クラスのインスタンスを通じて使用する必要があります。インスタンス メソッドは、クラスの静的メンバーだけでなく、クラスの非静的メンバーも使用できます。

アクセス ルール:

静的メソッドはクラスの静的メンバーにのみアクセスできますが、クラスの非静的メンバーにはアクセスできません。
非静的メソッドはクラスの静的メンバーとクラスの非静的メンバーの両方にアクセスできます。 ;
静的メソッドは使用できません インスタンスを呼び出すには、クラス名を使用してのみ呼び出すことができます。

たとえば、次の例では:

class person  
    {  
       public static int i;   //定义一个静态变量i 默认值是0  
       public int k=0;         //定义一个非静态变量 k;  
       public static int sbu()   // 定义一个静态方法   
       {  
           i = 9;  //成功对静态变量赋值  
           k = 5;  //出错了,无法访问非静态变量  
           return k;  
           //综上静态方法只能访问静态变量  
       }  
        public int Add()  //定义一个实例方法  
        {  
            i = 9;    //对静态变量赋值没有问题  
            k = 5;    //对非静态变量赋值也没问题  
            return i;  
            //综上实例方法能够访问所有类型变量  
        }  
  
    }
ログイン後にコピー

メソッドにアクセスするために人物とオブジェクトをインスタンス化します:

static void Main(string[] args)  
        {  
            person per = new person();   //实例化一个对象per  
           int i = per.i;   //出错了,per访问不了类里的静态变量  
            int k = per.k; //没有问题  
            per.sbu(); //出错了,per访问不了静态方法  
            person.sbu();  //成功调用  
            per.Add();   //成功调用  
            person.Add();  //出错了,person访问不了实例方法  
              
        }
ログイン後にコピー

2. 変数の内容を永続的に保持します:

静的データ領域に格納される変数は次のようになります。プログラムの実行開始時に静的データ領域に格納されます。初期化が完了すると、初期化も完了します。これも初期化のみです。静的記憶領域に格納される変数には、グローバル変数と静的変数の 2 種類がありますが、静的変数はグローバル変数と比較して、変数の表示範囲を制御できます。

例を書くだけでわかります(今回はC++で書きました)C# メソッド内でstaticを使用することは許可されていません:

#include<iostream>  
  
using namespace std;  
  
int main()  
{  
   for (int i=0;i<4;i++)  
   {  
      static int k =0;   //定义一个静态变量并赋值为0   
      k++;  
      cout<<k<<endl;  //输出  
   }  
    
   return 0;  
  
}
ログイン後にコピー

結果:

C#学習日記20----staticな静的変数と定数

上記のコードでstaticを削除した場合, thenk=0 ; は非静的変数になり、結果は数値 1 のみになります。定数の型は、任意の値型または参照型にすることができます。定数の宣言とは、プログラム内で使用する定数名とその値を宣言することです。 (使い方もCと似ています) ただし、C#では一度定義した定数の値は変更できません

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace demo  
{  
    class Program  
    {  
        const int S = 9;  // 定义一个常量S并赋值  
        static void Main(string[] args)  
        {  
            S += 4;  //出错了,常量一旦定义就不能改变常量的值  
           Console.WriteLine(S);  
        }  
    }  
}
ログイン後にコピー

以上がC#学習日記20----static静的変数と定数 関連内容です。 、PHP 中国語ネット (www.php.cn) に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート