日々の事柄に関する雑記帳。


1行コメント//
複数行コメント/*
*/
char型
1文字
'で囲む
文字コード指定の場合、文字コードを'で囲む
string型
文字列
"で囲む

配列

1次元配列

int[] a = new int[]{1, 2, 3}
int[] b = new int[10];

2次元配列

int[,] a = new int[]{
    {1, 2},
    {3, 4}
};

int[,] b = new int[2, 2];

3次元配列

int[,,] a = new int[]{
    {1, 2, 3},
    {4, 5, 6},
    (7, 8, 9}
}

int[] b = new int[3, 3];

ジャグ配列

次元の要素数が異なる配列。
int[][] a = new int[][]{
    new int[3] {1, 2, 3},
    new int[2] {10, 20},
    new int[1] {60}
}

int[][]b = new int[3][];
b[0] = new int[3] {1, 2, 3};
b[1] = new int[2] {10, 20};
b[2] = new int[1] {60};

コレクション

List

要素数を動的に変更できる。
using System.Collections.Generic;

List<int> a = new List<int>(){1, 2, 3};

List<int> b = new List<int>();
b.Add(10);
b.Add(20);
b.Add(30);
b.RemoveAt(1)

列挙型

いわゆるハッシュ。
enum color{red, green, blue};
redgreenblue
012

enum color{red, green, blue = 100};
redgreenblue
01100

制御文

ループの中断break;
次のループへ移行continue;

for

for(int i = 0; i < 10; i++){
    Console.WriteLine(i);
}

foreach

int[] a = {1, 2, 3};
foreach(int i in a){
    Console.WriteLine(i);
}

クラス

修飾子

internal構成単位(アセンブリ)からアクセスできる
private他のオブジェクトからアクセスできない
protected継承クラスからアクセスできる
public他のオブジェクトからアクセスできる
sealed継承させない
static同じクラスから派生したオブジェクトで、staticフィールドは同一の値を持つ

メソッドの呼び出し

出力引数
引数を用いて値を返す。
outを付けると出力引数になる。
class Test{
    public void outtest(out int a, out int b){
        a = 9;
        b = 999;

        Console.WriteLine("a = " + a);
        Console.WriteLine("b = " + b);
    }
}

class Program{
    static void Main(string[] args){
        int p = 10;
        int q = 100;
        Console.WriteLine("p = " + p);
        Console.WriteLine("q = " + q);

        Test t = new Test();
        t.outtest(out p, out q);
        Console.WriteLine("p = " + p);
        Console.WriteLine("q = " + q);
    }
}
参照渡し
デフォルトは値渡し。
refをつけることで参照渡しになる。
class Test{
    public void reftest(ref int a, ref int b){
        a = 0;
        b = 1;

        Console.WriteLine("a = " + a);
        Console.WriteLine("b = " + b);
    }
}

class Program{
    static void Main(string[] args){
        int p = 10;
        int q = 100;
        Console.WriteLine("p = " + p);
        Console.WriteLine("q = " + q);

        Test t = new Test();
        t.reftest(ref p, ref q);
        Console.WriteLine("p = " + p);
        Console.WriteLine("q = " + q);
    }
}

抽象クラス

抽象メソッドを含むクラス。
抽象メソッド:呼び出し方だけが定義され、処理が記述されていない。→派生クラスのオーバーライド・メソッドに処理を記述する。
基本クラス:一般的⇔派生クラス:具体的
基本クラスで抽象メソッドを定義し、具体的な処理を派生クラスで定義する。
タグ

管理人/副管理人のみ編集できます