C#:基本文法まとめ
4233 ワード
PS:最近C#を学んで、多くの地方と原理はCとC++と似ています.そのため、基本的な文法はいくつかの異なる定義方式といくつかの新しい概念だけをまとめました.
ここでは、コンパイル環境やエンジニアリングの構築についても説明しません.
一、Hello World
他の言語と同じように、Hello Worldから着手しています.
コード:
二、三種類の注釈方法
//:変数へのコメントに多く使用
/**/:大文字コメント用
////::クラスやメソッドへのコメントに使用されることが多い
三、変数
変数の概念、文法、使用規則、命名規則ここでは紹介していませんが、CやC++とほとんど同じです.
命名規範:アルパカ命名法
変数名の最初の単語の頭文字の小文字、残りの各単語の頭文字の大文字を要求します.
例:time,playerName,vipLevel,myName IsMonkey
基本タイプとCもあまり差はありませんが、違いは:
floatタイプ:単精度小数タイプで、整数も小数も格納でき、値の後にfを追加する必要があります.
stringタイプ:C++とほぼ同じです.
四、演算適合式(C、C++と同様、これ以上説明しない)
五、プレースホルダ
用途:文字列と変数の接続をより快適にします.
1.文法構造はまず穴{0},{1},{2}を掘ってから、大根(変数)を埋めて穴に入る.
2.注意事項1いくつかの穴を掘ったら、大根をいくつか入れるべきです.大根をたくさん入れたら効果がありません.大根を少なく入れたら、異常を投げます.②出力順穴を掘る順番で出力し、また大根は位置順です.
例:
六、ユーザー入力とエスケープ
ユーザー入力:Console.ReadLine();
エスケープ:
:换号」:英语の半角を表す二重引用符t:tabキーを表す大きなスペースb:BackSpace退格キーを表すと、前の文字を削除\:文字列の前に使うと、二つの用途があります.①「」の文字列へのエスケープを解除し、単純に斜線を表すようにする[パスに多用]②文字列を元の形式で出力する
七、タイプ変換
強制型変換と暗黙的変換はこれ以上説明されません.
Convertタイプ変換
2つの変数のタイプが互換性がある場合は、自動タイプ変換または強制タイプ変換を使用します.stringとint、string、doubleなどの2つの変数のタイプが互換性がない場合.このときConvertで変換できます.
注意:Convertを使用してタイプ変換を行うには、「メンツ的には耐えられる」という条件を満たす必要があります.
八、分岐構造のifとswitch文
C、C++と同様
九、循環文
C、C++と同様
十、配列の定義と遍歴(ここでは違いだけを紹介する)
定義および初期化:
データ型[]配列名=newデータ型[配列長];配列の初期化が完了すると、様々なタイプの配列のデフォルト値:int[]で、要素の値のデフォルトは0です.float[]で、要素の値はデフォルトで0です.double[]では、要素の値はデフォルトで0.0です.string[]で、要素の値はデフォルトnullです.bool[]で、要素の値はデフォルトでfalseです.
forの遍歴方式はCと同じで、ここではC#独自の:foreach遍歴を紹介します
十一、配列のメモリ構造
1.値タイプと参照タイプ値タイプint,float,double,bool,charメモリ:値タイプの値がメモリのスタックに格納されるデモ:intタイプ変数間転送値int a=10;int b = a; 注意:このときbの値を単独で修正すると、aの値は変化しません.この伝達を値伝達と言います.このとき変数間の伝達は,特定の値を相手にコピーすることである.
参照タイプ配列、文字列メモリ:参照タイプの値がメモリのスタックに格納されるデモ:int配列タイプ変数間伝値int[]intA=new int[]{0011222444}int[] intB = intA; 注意:このときintBの要素の値を単独で変更すると、intAの値が変わります.この伝達をリファレンス伝達と言います.このとき変数間の伝達は,1つのアドレスを相手にコピーすることである.
2.配列のメモリ構造配列は、メモリに連続したメモリ空間で格納される.最も低いアドレスは最初の要素に対応し、最も高いアドレスは最後の要素に対応します.
十二、配列の二次元配列
1.2 D配列の基本構文1.宣言と初期化宣言:データ型[,]配列名;初期化:配列名=newデータ型[行数、列数];宣言、初期化二合一フォーマット:データ型[,]配列名=newデータ型[行数、列数];2.賦値と取値賦値:配列名[下付き、下付き]=値;値:配列名[下付き、下付き];
3.宣言初期化賦値三合一:データ型[,]配列名=newデータ型[,]{{0,0,0,0,0,0,0,0,0,{1,1,1,1,1,1,1,1,1}
2.2次元配列の遍歴forループネスト配列名.GetLength(軸方向下付き);//軸方向の要素の数を取得できます.
十三、関数
ここで概念はもう赘述しません...
関数の宣言と呼び出し
1.Pascalネーミング法パスカルネーミング仕様では、各単語の頭文字が大文字で、残りの文字が小文字であることが要求されています.用途:クラスまたは関数(メソッド)の名前付けに使用されることが多い.たとえば、ReadLine、ReadKey、ToDouble、ToInt 32
2.関数の宣言(構文)
説明:static:静的識別子;戻り値タイプ:戻り値を必要とせずにvoidと書くと、戻り値がないという意味です.関数名:現在の機能関数の名前は、Pascalネーミング仕様に適合する必要があります.パラメータリスト:パラメータが必要ない場合は、カッコに直接空白を残すことができます.パラメータが必要な場合は、パラメータタイプパラメータ名の形式で書きます.
関数の呼び出し:関数名([実際のパラメータ]);
注:関数が呼び出さないと宣言した場合、関数のコードは実行されません.
関数のパラメータと戻り値:説明しません.
関数の再ロード
コンセプト:関数の名前は同じですが、パラメータリストは異なります.この関数を呼び出すと、不要なパラメータに基づいて、適切な関数リロード形式が自動的に選択されます.
パラメータが異なる場合1パラメータの個数が同じであれば、パラメータのタイプは同じではない.②パラメータの種類が同じであれば、パラメータの個数は同じではありません.注意:関数の戻り値はリロードとは関係ありません
refパラメータ
1.関数に変数を入力して「処理」を行い、「処理」が完了した後、「処理」後の値を関数から持ち出します.
2.関数には変数に値を割り当てる必要がありますが、関数には値を付けなくてもいいです.
3.構文パラメータと実パラメータの前にrefキーを付けます.例えば、Add(ref num);static void Add(ref int num);
outパラメータ
1つの関数で複数の異なるタイプの値を返す場合はoutパラメータが必要です.
2.関数の外には変数に値を付けなくてもよいが、関数内に値を付けなければならない.
3.構文パラメータと実パラメータの前にoutキーを付けます.例:
ここでは、コンパイル環境やエンジニアリングの構築についても説明しません.
一、Hello World
他の言語と同じように、Hello Worldから着手しています.
コード:
Console.Write("Hello World!");//
Console.WriteLine("Hello World!");//
Console.ReadKey();//
二、三種類の注釈方法
//:変数へのコメントに多く使用
/**/:大文字コメント用
////::クラスやメソッドへのコメントに使用されることが多い
三、変数
変数の概念、文法、使用規則、命名規則ここでは紹介していませんが、CやC++とほとんど同じです.
命名規範:アルパカ命名法
変数名の最初の単語の頭文字の小文字、残りの各単語の頭文字の大文字を要求します.
例:time,playerName,vipLevel,myName IsMonkey
基本タイプとCもあまり差はありませんが、違いは:
floatタイプ:単精度小数タイプで、整数も小数も格納でき、値の後にfを追加する必要があります.
stringタイプ:C++とほぼ同じです.
四、演算適合式(C、C++と同様、これ以上説明しない)
五、プレースホルダ
用途:文字列と変数の接続をより快適にします.
1.文法構造はまず穴{0},{1},{2}を掘ってから、大根(変数)を埋めて穴に入る.
2.注意事項1いくつかの穴を掘ったら、大根をいくつか入れるべきです.大根をたくさん入れたら効果がありません.大根を少なく入れたら、異常を投げます.②出力順穴を掘る順番で出力し、また大根は位置順です.
例:
Console.WriteLine(" :{0}, :{1}", name, age);
六、ユーザー入力とエスケープ
ユーザー入力:Console.ReadLine();
エスケープ:
:换号」:英语の半角を表す二重引用符t:tabキーを表す大きなスペースb:BackSpace退格キーを表すと、前の文字を削除\:文字列の前に使うと、二つの用途があります.①「」の文字列へのエスケープを解除し、単純に斜線を表すようにする[パスに多用]②文字列を元の形式で出力する
七、タイプ変換
強制型変換と暗黙的変換はこれ以上説明されません.
Convertタイプ変換
2つの変数のタイプが互換性がある場合は、自動タイプ変換または強制タイプ変換を使用します.stringとint、string、doubleなどの2つの変数のタイプが互換性がない場合.このときConvertで変換できます.
注意:Convertを使用してタイプ変換を行うには、「メンツ的には耐えられる」という条件を満たす必要があります.
Convert.ToInt32();
Convert.ToDouble();
八、分岐構造のifとswitch文
C、C++と同様
九、循環文
C、C++と同様
十、配列の定義と遍歴(ここでは違いだけを紹介する)
定義および初期化:
データ型[]配列名=newデータ型[配列長];配列の初期化が完了すると、様々なタイプの配列のデフォルト値:int[]で、要素の値のデフォルトは0です.float[]で、要素の値はデフォルトで0です.double[]では、要素の値はデフォルトで0.0です.string[]で、要素の値はデフォルトnullです.bool[]で、要素の値はデフォルトでfalseです.
forの遍歴方式はCと同じで、ここではC#独自の:foreach遍歴を紹介します
foreach( in )
{
Console.WriteLine( );
}
十一、配列のメモリ構造
1.値タイプと参照タイプ値タイプint,float,double,bool,charメモリ:値タイプの値がメモリのスタックに格納されるデモ:intタイプ変数間転送値int a=10;int b = a; 注意:このときbの値を単独で修正すると、aの値は変化しません.この伝達を値伝達と言います.このとき変数間の伝達は,特定の値を相手にコピーすることである.
参照タイプ配列、文字列メモリ:参照タイプの値がメモリのスタックに格納されるデモ:int配列タイプ変数間伝値int[]intA=new int[]{0011222444}int[] intB = intA; 注意:このときintBの要素の値を単独で変更すると、intAの値が変わります.この伝達をリファレンス伝達と言います.このとき変数間の伝達は,1つのアドレスを相手にコピーすることである.
2.配列のメモリ構造配列は、メモリに連続したメモリ空間で格納される.最も低いアドレスは最初の要素に対応し、最も高いアドレスは最後の要素に対応します.
十二、配列の二次元配列
1.2 D配列の基本構文1.宣言と初期化宣言:データ型[,]配列名;初期化:配列名=newデータ型[行数、列数];宣言、初期化二合一フォーマット:データ型[,]配列名=newデータ型[行数、列数];2.賦値と取値賦値:配列名[下付き、下付き]=値;値:配列名[下付き、下付き];
3.宣言初期化賦値三合一:データ型[,]配列名=newデータ型[,]{{0,0,0,0,0,0,0,0,0,{1,1,1,1,1,1,1,1,1}
2.2次元配列の遍歴forループネスト配列名.GetLength(軸方向下付き);//軸方向の要素の数を取得できます.
int[,] a = new int[3,4] {{0,0,0,0},{1,1,1,1},{2,2,2,2} };
for (int i = 0; i < a.GetLength(0); i++)
{
for(int j = 0;j < a.GetLength(1); j++)
{
Console.WriteLine(a[i, j]);
}
}
}
十三、関数
ここで概念はもう赘述しません...
関数の宣言と呼び出し
1.Pascalネーミング法パスカルネーミング仕様では、各単語の頭文字が大文字で、残りの文字が小文字であることが要求されています.用途:クラスまたは関数(メソッド)の名前付けに使用されることが多い.たとえば、ReadLine、ReadKey、ToDouble、ToInt 32
2.関数の宣言(構文)
static ([ ])
{
;
}
説明:static:静的識別子;戻り値タイプ:戻り値を必要とせずにvoidと書くと、戻り値がないという意味です.関数名:現在の機能関数の名前は、Pascalネーミング仕様に適合する必要があります.パラメータリスト:パラメータが必要ない場合は、カッコに直接空白を残すことができます.パラメータが必要な場合は、パラメータタイプパラメータ名の形式で書きます.
関数の呼び出し:関数名([実際のパラメータ]);
注:関数が呼び出さないと宣言した場合、関数のコードは実行されません.
関数のパラメータと戻り値:説明しません.
関数の再ロード
コンセプト:関数の名前は同じですが、パラメータリストは異なります.この関数を呼び出すと、不要なパラメータに基づいて、適切な関数リロード形式が自動的に選択されます.
パラメータが異なる場合1パラメータの個数が同じであれば、パラメータのタイプは同じではない.②パラメータの種類が同じであれば、パラメータの個数は同じではありません.注意:関数の戻り値はリロードとは関係ありません
refパラメータ
1.関数に変数を入力して「処理」を行い、「処理」が完了した後、「処理」後の値を関数から持ち出します.
2.関数には変数に値を割り当てる必要がありますが、関数には値を付けなくてもいいです.
3.構文パラメータと実パラメータの前にrefキーを付けます.例えば、Add(ref num);static void Add(ref int num);
outパラメータ
1つの関数で複数の異なるタイプの値を返す場合はoutパラメータが必要です.
2.関数の外には変数に値を付けなくてもよいが、関数内に値を付けなければならない.
3.構文パラメータと実パラメータの前にoutキーを付けます.例:
Number(a,b, out max, out min);
static void Number(int a, int b, out int max, out int min);