雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

C#

続・ラムダ式の変数スコープ

C#

実際のところ、値型の場合の実装が( MSIL 上で)どうなっているのか興味が沸いたので調べてみました。 基にしたソースコードは以下。(伊藤さんの記事から拝借しました。 m(_ _)m ) class Foo { static void Main() { Action a; { var i = 10; a = () => C…

ラムダ式の変数スコープ

C#

ラムダ式での上位スコープの保存 ( wa りと na はてな日記) 続続 ラムダ式での上位スコープの保存 ( wa りと na はてな日記) 興味深く読んでます。 ……が、なんか「続続」の方の例がいまいちな様な気がします。 そもそも、ラムダ式に於ける変数スコープの…

Silverlight で WPF の ListView.GridView と同じ表現方法を利用するベストプラクティス知りたい

ここ数日、 Silverlight 3 を使ってみているのですが、タイトルに書いた話でずっと悩んでいます。 まぁ、そもそも何故 Silverlight 用の GridView が提供されていないのか、と云うのは置いておいて、どうレイアウトしてあげるのがいいのやら。 とりあえず Li…

TextBox の入力チェックをバインド先のデータクラスプロパティの属性として書ける様になったらしい

Silverlight3での入力値検証 (かずきの Blog ) 入力検証に革命が (えムナウ Blog ) ここのところ、 WPF , M-V-VM , Silverlight 辺りのキーワードについて色々見ているのですが、わんくま Blog 界隈でこんな話が挙がっていたのでちょっと触ってみました…

Enumerable.ToLookup メソッドなんてのがあるんですね

C#

ToLookupを使ってみる ( wa りと na はてな日記) ToLookup メソッドの存在を知らなかったので MSDN で調べてみました。 Enumerable.ToLookup メソッド (System.Linq) ( .NET Framework クラスライブラリ) ほうほう。 IEnumerable なコレクションをグルー…

Enum を二値で扱う

C#

Enumを二値扱いたかったりする。 (HIRASE CONNECTION WK) 気持ちは判らないでもないのですが、 Enum って「列挙」体だからなぁ。。。 要は、 Enum の演算子をオーバーロード出来れば話は早い( C# が否定演算子 (!) のオーバーロードをサポートしている)の…

配列のシャッフル

C#

シャッフル ( C# と VB.NET の質問掲示板) かき混ぜてはいかがでしょうか (東方算程譚) επιστημηさんの解法が目から鱗モノでした。 なるほど、シャッフルってこうやれば綺麗に書けるんですね。すごく勉強になりました。 って事で、より理解を深めるため…

式のトレース (3)

C#

せっかくなので、最初の課題の MSIL を読み解いてみたいと思います。 まずは、検証に使った C# コード(該当メソッドのみ)はこちら。 static void Main() { var i = 0; i *= ~i & 2 | 1 * (++i) - -(i--) ^ i; Console.WriteLine("i = {0}", i); } 続いて .…

式のトレース (2)

C#

R さんから課題を頂きましたので、やってみたいと思います。 まずはひとつめ。 var i = 1; i = 3 & ++i; これは、 increment, and, store になるはずなので、きっと i = 2 になると思います。 ……検証。 i = 2うん、正しいみたいですね。 一応、 MSIL でも in…

式のトレース

C#

ちょっとしたクイズです (R.Tanaka.Ichiro's Blog) ちょっとしたクイズです(その2) (R.Tanaka.Ichiro's Blog) MSIL でチェックしたところ、違う結果が出ました。。。 以下、 R さんのコメントで違った点。 右辺の「 1 * 」のところは最適化で消えてしまう…

C# 3.0 言語仕様書とか

C# 言語 (msdn) C# の言語仕様書が欲しくて MSDN のサイトを探していたら、↑のページにたどり着きました。 ……なぜ 2.0 までしかリンクがないんだろう。 で、英語版を見ると、ちゃんと 3.0 へのリンクがある。。。 C# 3.0 の言語仕様書って 2008 年 1 月位に…

文字列の変換(ネタ) - リファクタリング編

C#

以下でOKです (R日記) R さんからツッコミが! おぉ、確かに IList の拡張メソッドを使うのだから char[] で十分でした。 いつもありがとうございます〜。 m(_ _)m って事で、改めて。 static string Convert4(string str) { return new String(str.TakeW…

文字列の変換(ネタ)

C#

以下について教えてください ( C# と VB.NET の質問掲示板) タイトルが不明確だとか、質問の仕方がなってないだとか、そう云った小言は全て省略して、ネタで書いてみました。 ……出来上がってみたらムダに長くて面白かったので、記事として残しておきます。…

Tuple on C# 4.0

何となく What's New in the .NET Framework 4 とかを眺めていて、 .NET Framework 4 に導入された Tuple についてチェックしてみました。( Google で検索しても扱っている記事があまり見当たらなかったので、備忘録として) とは言っても、まだ VS2010 も …

比較と代入と算術の演算子

C#

比較と代入の演算子 (R.Tanaka.Ichiro's Blog) 何か面白い事になってます。 ^^ 派生でこんな↓の試してみました。 var i = 1; var j = 0; Console.WriteLine((j = i++) == i); 見た目だと判りにくいですが、こんな感じで処理されるみたいです。(一応、 IL で…

ネットワークアカウントの利用方法がよく判らない

C#

最近、 P/Invoke で悩みすぎな気がする。。。 そもそも、 Win32 プログラムの経験がない人間にとって、 P/Invoke は非常にハードルが高いですよー。 ^^;; ……って、脱線した。以下、本題。 Oslo CTP のサンプルをいじっている中で、掲題の件に当たって悩んで…

string から特定の文字を消去する

C#

string から特定のいくつかの文字を消去したい ( melpon日記 - C++すら(ry) System.Text.RegularExpressions を使えばいいかと。 var str2 = System.Text.RegularExpressions.Regex.Replace(str, " |\t|\r|\n", ""); // .NET だと "\s" が使えないのね…

C# でクラス名と同名のメソッドを定義する

C#

通常、 C# では、クラス名と同名のメソッドは定義する事が出来ません。(コンストラクタとかぶってしまう為) VB ではこれが出来たりするんですが(コンストラクタを New と云う名のメソッドとして定義するから)、まぁ言語による制限だと諦めていました。(…

foreach でループ回数を取得する

C#

何度目の動き (Garbage Collection) なるほど〜。と感心しつつ、 foreach と Select で 2 回まわっちゃっているのがちょっとなぁ、と思ったので、別の方法を。 class Test { static void Main(){ LinkedList<string> name = new LinkedList<string>(); name.AddLast("福沢祐</string></string>…

twitter のパブリックタイムラインページを 5 秒おきに取得する C# プログラム

C#

使い捨てで書いたものだけど、我ながらかなりキモかったので晒してみる。 using System; using System.Net; using System.IO; using System.Windows.Forms; class ptl : Form { Timer timer; public ptl() { timer = new Timer() { Interval = 5000 }; timer…

プロパティに設定された属性値を取得する

C#

Twitter で R.田中一郎さんがつぶやいていたのを見て、あまり確認せずに「 Attribute.GetCustomAttributes() で出来るのでは」と返してみたのですが、ちょっと気になったので手元でもやってみました。 ちょっと手間取ったので、備忘録もかねて記事にしておき…

Windows Mobile の画面方向切り替え

少しずつ .NET Compact Framework 2.0 での Windows Mobile 向けアプリケーション開発の勉強などをし始めています。 とりあえず、簡単なタイマーの作成を最初の目標に掲げて頑張ろうと云う事で、色々調べていてちょっと気になったので備忘録として。 掲題の…

(続)VB 9.0 が拡張メソッドを利用してインスタンスを差しかえてしまえる件について

C#

前回の記事で、VB 9.0 は拡張メソッドで自分自身を差し替えられる事を確認しました。 その原因は VB 9.0 が拡張メソッドを属性で定義しているためな訳なのですが、「この属性を使えば C# でも同じ事できるんじゃね?」って話がてくえどの雑談の中で挙がって…

連続した条件演算子の解釈

C#

三項演算子は上から評価される (R.Tanaka.Ichiro's Blog) 一瞬、何の話だか判りませんでした。条件演算子なんて普段滅多に使わないので。。。 考え方としては「上から評価される」で間違っていないけど、単に「上から評価」と言ってしまうと誤解を招く恐れが…

オブジェクトじゃんけん

勝手にじゃんけん祭り (やじゅ@アプリケーション・ラボ わんくま支局) オブジェクトじゃんけん (東方算程譚) エピさんのコードにインスパイアされて、 C# で書いてみました。 using System; namespace Jp.Mkns.Wankuma.Yaju { enum HandName { G, C, P …

カウントダウンタイマー祭りへのエントリー(保険版)

本当はもっと変なところに力を入れたやつを作成中なんだけど、期限に間に合うかとても不安なので、テスト用に作ったやつを先に載せておきます。 面倒だったので Visual Studio を使わずに全部秀丸で書いちゃいました。 一応、 C# 3.0 向け。 CountdownTimerL…

PowerShell で Twitter クライアント(ある意味詐欺版)

考えてみたら、 C# で TwitterClient クラスを作って PowerShell から LoadFile すればいいだけなんじゃ。。。 つまりは、 TwitterClient.dll とか作っておいて、 [Reflection.Assembly]::LoadFile($pwd.path + "\TwitterClient.dll") $twitter = New-Object…

LINQ to XML を試してみる

C#

ここのところ、仕事の合間に LINQ でちょこちょこと遊んでいたりします。 んで、先週末のわんくま同盟大阪勉強会 #20 のとりこびとさんのセッションでも取り上げられていた LINQ to XML を使って、はてなの RSS を取ってみました。 using System; using Syst…

LINQ っていいですね

LINQ は SQL との構文の違いが引っかかって、どうにも手を出す気になれずにいたんですが、いつまでも食わず嫌いでいる訳にもいかないので、本腰を入れて見てみました。 ……これ、無茶苦茶いいです。特に DB 房な私みたいな人間には最高かも。 サンプルコード…

MSDN(ja) にだまされたこの約 1 年をどうしてくれるのかしら - Form.ShowWithoutActivation

……久々に、しかもかなり豪快に MSDN の日本語誤訳にしてやられました。 しかも、この件を調べたのは 1 年前。 それ以来、出来ないものと諦めていたのに、こんなオチって……、と云う感じです。 該当は以下の箇所。 このプロパティは読み取り専用です。フォーム…