ホーム > プログラミング > すぐに値を返したい。VBも出来る子です。

すぐに値を返したい。VBも出来る子です。


昨日のサンプルでこんなコードブロックがありました。

 var path = context.Server.MapPath(
      ((Func<UserContext, string, string>)((u,appName)=>
            {
                if (appName == "app1" && u.UserId == "karua")
                    return @"\ClientBin\SilverlightApplication1.xap";
                else
                    return @"\ClientBin\SilverlightApplication2.xap";

            }))(userContext, app)

((Func<UserContext, string, string>)(u, appName) => {}))(userContext, app)ってなんか意味分かんないっすよね。無名のままだとダメだから名前をつけるか型を明示しないとコンパイラーに怒られるんですけれど。

実際にプログラミングするときは、コードブロックにする以上は意味が有るんだからメソッド分けろよという意見も有るんだろうけれど、ぼーっとプログラミングするときには、わざわざ別にするのも考えが妨げられて嫌だなーと。

で、これが実はVBだとこうかける。

Dim path = context.Server.MapPath(
    (Function(u, appName)
         If (appName = "app1" AndAlso u.UserId = "karua") Then
             Return "\ClientBin\SilverlightApplication1.xap"
         Else
             Return "\ClientBin\SilverlightApplication2.xap"
         End If
     End Function)(userContext, app))

キャストがいらない!!

以上でした。

カテゴリー:プログラミング タグ:
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。