LoginSignup
0
2

More than 3 years have passed since last update.

C#文法メモ

Last updated at Posted at 2020-08-24

配列

配列の宣言
型名[] = 変数名;

要素数の指定
変数名 = new 型名[要素数];

配列の宣言と要素数の指定
型名[] 変数名 = new 型名[要素数];

配列の初期化(配列の宣言と値代入)
型名[] 変数名 = {値, 値 , 値};

foreach文

foreach (型名 変数名 in 配列変数名) 
{
}
foreach (KeyValuePair<型名, 型名> 変数名 in Dictionary型の変数名)
{
//変数名.Key、変数名.ValueでKey、Valueを取得できる
}

List

List型の変数をつくる
List<型名> 変数名 = new List<型名>();

Listに要素を追加
変数名.Add(追加する値);

Listの要素数取得
変数名.Count;

Listから要素を削除
変数名.RemoveAt(インデックス)
変数名.RemoveAt(削除したい値) 
  *同じ値を持つ要素が複数ある場合、インデックスが一番小さい要素が削除される

Listを昇順に並び替える
変数名.sort();

Dictionary

Dictionary型の変数を作る
Dictionary<キーの型、値の型> 変数名 = new Dictionary<キーの型、値の型>();

Dictionaryに要素を追加
変数名.Add(キー、値);

Dictionaryからキーに対応する値を取得
変数名[キー]

int型

TryParse(string型の値、変換後の値が代入される変数)メソッド

string型をint型に変換し、正しく変換できればtrueを返す。

Parse(文字列型の値)メソッド


string型からint型に変換する。

string型

Split('文字')メソッド

引数に与えた文字で区切り、string型の配列にする。

Contains('文字')メソッド


判定する文字列の中に、引数で指定した文字が含まれてるか判定

StartsWith('文字')メソッド


判定する文字列の先頭に、引数で指定した文字が含まれてるか判定

EndWith('文字')メソッド


判定する文字列の末尾に、引数で指定した文字が含まれてるか判定

StreamReader型のメソッド

ReadLineメソッド

ファイルから一行読み取り文字列として返す。

DataSet型

データセット名(※小文字始まり).データテーブル名.Addデータテーブル名Row(登録する1行分のデータ)メソッド

DataTableに値を追加

値型の引数を参照型として渡す

ref修飾子・・引数に渡す変数に予め値を代入すべし
out修飾子・・引数に渡す変数に予め値を代入せんでいい

DataGridView型

currentRow.Indexプロパティ

選択している行のインデックスを取得

プロパティ

アクセサ(getter, setter)を作る仕組み
アクセサを直接使うよりも簡潔にコードが書ける

public プロパティの型名 プロパティ名
{
  set
  {
    変数名 = value;
  }
  get
  {
    return 変数名;
  }
}

LINQ

配列やコレクションの中から条件を満たす値だけ取り出したり、各データに特定の処理をしたりできる。

配列やコレクションの中からラムダ式の条件に合うデータだけを取り出す
var 変数名 = 配列やコレクションの変数名.Where(ラムダ式)
※var・・代入された値によってコンパイラが自動的に型を判断

配列やコレクションのデータにラムダ式の処理を加えて新しいデータを作る
var 変数名 = 配列やコレクションの変数名.Select(ラムダ式)

要素数を取得する
var 変数名 = 配列やコレクションの変数名.Count()

オーバーロード

引数の型と個数が違うとき同じ名前のメソッドを複数定義できる

オーバーライド

オーバーライドされる基本クラスのメソッドの書き方

virtual 戻り値の型 メソッド名()
{
  メソッドの処理内容
}

オーバーライド(override)する派生クラスのメソッド書き方

override 戻り値の型 メソッド名()
{
  メソッドの処理内容
}

抽象クラスと抽象メソッド

抽象メソッド・・メソッドの処理は派生クラスで実装することを前提とした中身のないメソッド
抽象クラス・・抽象メソッドを1つ以上もつクラス

基本クラス

abstract class クラス名 //abstarctをつけるとこのクラスのインスタンスは生成できない
{
  public abstract 戻り値の型 メソッド名(); 
}

派生クラス

class クラス名 : 基本クラス名
{
//抽象メソッドの中身を書かないとエラー
  public override 戻り値の型 メソッド名()
  {
    処理内容
  }
}

static

static・・クラスのメンバ変数やメンバメソッドにつけると、それらはインスタンスを作らずに呼び出せる

class Employee
{
public static string companyName;
}
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Employee.companyName);
        }
    }

partial

2つのファイルに分けてクラスを記述する場合、クラスの前につける。

public partial class Form1 : Form
{
  省略
}

構造体

構造体:値型 ↔︎ クラス:参照型
ex)2次元座標を表すPoint型、ベクトルを表すVector型、色を表すColor型

struct 構造体名
{
  メンバ変数
 メンバメソッド
}

usingステートメント

usingのブロックを抜けるタイミングでそのクラスのDisposeメソッドを呼ぶ。
以下の場合は、Disposeメソッドによってファイルを閉じている。

            using (System.IO.StreamReader file =
                new System.IO.StreamReader(@"..\..\data.txt"))
            {
                while (!file.EndOfStream)
                {
                    string line = file.ReadLine();
                    string[] data = line.Split(',');
                    this.phonebook.Add(data[0], data[1]);
                }
            }

//@をつけた文字列は、特殊な記号(エスケープシーケンス\nなど)を使っていない文字列として扱われる
0
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2