| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
|*[[プログラミングC Sharp 第7版(2) | プログラミングC# 第7版(2)]] | [[C Sharp]] | [[C Sharp サンプルコード]] | [[Effective C Sharp 4.0]] | [[Universal Windows Platform]] | [[Visual Studio]] |
*[[プログラミングC Sharp 第7版]]
 
==プログラミングC# 第7版(1)==
[[言語 まとめ C Sharp]] | [[C Sharp]] | [[C Sharp サンプルコード]] | [[Effective C Sharp 4.0]] | [[Universal Windows Platform]] | [[Visual Studio]] | *[[プログラミングC# 第7版]]*プログラミングC# Sharp 第7版(2)
{{amazon|4873116503}}
*StringBuilderは、修正可能な文字の並び
===演算子===
----=====(??) null合体演算子=====----
*string neverNull = s ?? "";
*左式がnullでなければその値、nullあら右式の値を返す
 
=====(?.) null条件演算子=====
----
*オブジェクトがnullでない場合だけメンバーにアクセスし、nullの場合、nullを返す
 
=====sizeof=====
----
*値型のサイズをバイト単位で取得
*sizeof(int)
=====nameof=====
----
*変数、クラス、メンバーなどの識別子を文字列リテラルとして取得
 
===文字列リテラル===
=====逐語的文字列リテラル=====
public Hoge(int id, string name):this(id) {}
}
=====オブジェクト初期化子=====
<pre>
var p = new Persoin() {
Name = "Yagi",
Age = 49
};
 
</pre>
====静的コンストラクタ====
*完全な型となるためには、型パラメータが指定されなければならない
====制約====
*型パラメータで、コンストラクタを使用する
*:型引数が特定の要請を満たさなければならいことを明示できる
public static class Deferred&lt;T&gt; where T : new() {
*プロパティを最初に読みだすまでインスタンスは構築されない
*T は、引数なしのコンストラクタを供給する必要がある
 
/// <summary>
/// モデルからDTOを生成する
/// モデルがnullの場合、nullを返す
/// </summary>
/// <param name="model"></param>
/// <typeparam name="D"></typeparam>
/// <returns></returns>
public static D? FromModel<D>(T model) where D: ModelBaseDto<T>, new()
{
if (model == null)
{
return default(D);
}
var dto = new D();
dto._model = model;
return dto;
}
 
====型制約====
*特定の型と互換
*引数のないラムダ
Func&lt;bool&gt; isAfternoon = () =&gt; DateTime.Now.Hour &gt;= 12;
 
 
<pre>
Func<string, string> normalizeField = field => field?.Trim().ToUpper();
var compareHeaders = headerFields.Select(normalizeField).ToList();
</pre>
 
====キャプチャされた変数====
*インラインメソッドからその外側のメソッドの変数参照ができる
WHERE [Extent1].[ListPrice] &gt; cast(3000 as decimal(18))
====ラムダ式を伴うListクラスのメソッド====
[[Category:ラムダ]]
 
*Listクラスでは、引数に対してラムダ式を指定できるメソッドが多く用意されている。
{|class="wikitable"
|-
|}
 
===イベント===
=====基本=====
**複数の関連するコールバックを提供する必要がある
===非同期機能===
----
====async と await====
----
=====async=====
*指定すると、このメソッド内で非同期機能を使用する予定であることをコンパイラに通知
=====await=====
*asyncが指定された場合のみ指定できる
*asyncを指定しない、非同期メソッドから、非同期メソッドを使用する場合、.GetAwaiter().GetResult(); を使用する
<pre>
public ContentResult Hoge(HttpRequestMessage request)
{
var json = request.Content.ReadAsStringAsync().GetAwaiter().GetResult();
return Content(json);
}
</pre>

案内メニュー