SSブログ
前の10件 | -

Azure学習のためのリンクが集まったページ [クラウド]

Azure学習のためのリンクが集まったページ。
サンプルコードへのリンクもある。

クラウド開発のファーストステップ [クラウド]

Azureを使ったクラウド開発のファーストステップ。ビデオでの紹介なので分かりやすい。

SerialPortクラス [プロパティ]

通信ポートが開いているかどうかは、SerialPortクラスのIsOpenプロパティで調べる。
if(serialPort1.IsOpen)
{
try
{
serialprot1.WriteLine(textBox1.Text + "\n");
}
catch (Exception ex)
{
 MessageBox.Show("送信エラー");
}
}
else
{
MessageBox.Show("通信が開始されていません");
}
ターミネータは\nにしているが、通信する機器の設定と合わせる。

受信にはSerialPortクラスのDetaReceivedイベントがSerialPortコントロールを配置したフォームとは別のスレッドで実行されるのでデリゲートを使う。

private delegate void ReceiveDataDelegate(string receiveData);

private void SetReceiveData(string dataString)
{
textBox1.Text += dataString;
}

ReceiveDataDelegate receive = new ReceiveDataDelegate(SetReceiveData);

receiveData = serialPort1.ReadLine();

Invoke(receive,receiveData);

Invoke(デリゲート型の変数,渡す値);


プロパティの自動実装 [プロパティ]

プロパティの自動実装を使うと、プロパティの記述が簡単に書ける。
public int MyProp{get; set;}
修飾子 型 変数名{get; set;}
private set;とすると読み取り専用プロパティになる。

yieldキーワード [キーワード]

イテレータ(反復子)で各要素を順に返すとき
yield returnステートメント
反復処理を終了させるとき
yield breakステートメント
を使う。

イテレータはメソッドから列挙子オブジェクトを作成するもの。
メソッドの戻り値は配列と同じように扱える。

public static IEnumerable GetNum()
{
yield return 1;
yield return 2;
yield return 5;
}

値を取得するときは
foreach (int i in GetNum())
{
Console.WriteLine(i);
}

outキーワード [キーワード]

パラメータを参照渡ししてメソッドを呼び出す。
変数は初期化しないでもメソッドに渡せる。メソッドでパラメータの値を必ず代入する必要がある。

int n;
GetAdd(out n);

static void GetAdd(out int m)
{
m = 2;
m += 3;
}

メソッドを呼び出した側のnは5になる。

refキーワード [キーワード]

パラメータを参照渡ししてメソッドを呼び出す。
変数は初期化してからメソッドに渡す。

int n = 10;
GetAdd(ref n);

static void GetAdd(ref int m)
{
m += 3;
}

メソッドを呼び出した側のnは13になる。

foreachステートメント [ステートメント]

配列またはコレクションのそれぞれの要素の値を指定した型の変数名に代入し、すべての要素に処理が行われるまで繰り返す。
それぞれの要素を代入する変数は、配列やコレクションの型と互換性のある型でなければならない。

string[] imos = {"小芋", "じゃがいも", "さつまいも"};

foreach (string imo in imos)
{
Console.WriteLine("{0}は、いもの一種です。", imo);
}

ラムダ演算子 [演算子]

=>演算子(ラムダ演算子)は、デリゲートを使って匿名メソッドを実行するときに、インラインでコードブロックを記述する場合に使用する。

入力パラメータ=>ステートメントまたはステートメントブロック

delegate int CalcMultiply(int n);

CalcMultiply deleInstance = n => n * 100;

ラムダ式を使わずに書くと
CalcMultiply deleInstance = delegate(int n)
{
return n * 100;
};
となる。

Console.Write(); [System.Console]

Console.Write("imo\n");
Console.WriteLine("imo");
は同じ意味。WriteLineメソッドは改行のエスケープ文字\nがなくても改行される。
Console.WriteLine("{0,-10}", "imo");
左寄せでimoと表示され、後の7文字はスペース文字で埋められる。
{index, alignment :formatstring}
alignmentとformatstringは省略可能。

Console.WriteLine("{0,15:D4}", 0x15);
右寄せで0021と表示される。

セクション区切り記号で正、負、0の場合に表示する書式を指定する。
Console.WriteLine("{0:'\\'##,##0;▲'\\'##,##0;残高ゼロ}",0);

前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。