こんな感じのときってあると思います。
var result = ""; if( 条件1 ){ result = "1つ目"; }else if( 条件2 ){ result = "2つ目"; }
この初期化めんどくさくない?
var result = "";
メソッド
メソッドに切り出したいけど、メソッド名考えるの大変なんだよなー
var result = GetResult( 条件 ); string GetResult( 条件 ){ if( 条件1 ){ return "1つ目"; }else if( 条件2 ){ return "2つ目"; } return ""; }
匿名メソッド&即実行
Func
var result = ( (Func<string>)( () => { return "1"; }) )();
または
var result = ( new Func<string>( ()=>{ return "2"; }) )();
()括弧多すぎ問題
そしてStaticへ・・・
そしてこうなった・・・
var result = Func.Run( ()=>{ return "1"; } ); public static class Func { public static T Run<T>( Func<T> func ) { return func(); } }
他の便利な使い方
初期化のときにメソッドの形で書けます。
public class Item { public string Value { get; set; } = Func.Run( () => { return ""; } ); }
初期化のときにメソッドの形で書けます。その2
var item = new Item(){ Value = Func.Run( () => { return ""; } ), }