2010-03-01から1ヶ月間の記事一覧

『究極のC#プログラミング』 Chapter11 フレンドアセンブリ

構造化プログラミングとオブジェクト指向プログラミングの中間にモジュール化プログラミングがある。 言語としてはModula-2が代表的。 モジュール化プログラミングには、スコープ制御が強力というメリットがある。 オブジェクト指向言語であるC#はpublicの無…

始めるぞ

体調悪い 2時間で177-226pの50ぺーじが目標

終わる!

もうちょっと進もうとしたけど、あまりに疲れていて一向に進まないのでこれで終わりとする 今日は177-203pの27ページだった 学習時間は100分

『究極のC#プログラミング』 Chapter12 var宣言とコレクション初期化子

VBのVariant型の悪夢は、var宣言では問題にならない ・1つの宣言で1つの変数しか宣言できない ・宣言時に初期化しないといけない ・したがって、型はコンパイル時に厳格に決定される(軽量言語にあるような実行時まで型の解釈を遅延する機能とは異なる) メリ…

リンク C#講座動画 in ニコニコ動画

C# でプログラミングを始めよう!‐ニコニコ動画(9) http://www.nicovideo.jp/mylist/15044649 メモメモ

終わりだ!

1.5時間で28ページやった。 疲労していて頭の回転が遅かった。 明日からは、フレンドアセンブリ、var宣言とコレクション初期化子、自動実装と自動定義、拡張メソッド、LINQ関係 と続いていく

『究極のC#プログラミング』 Chapter10 名前空間のエイリアス修飾子と外部アセンブリ

usingエイリアスで別名を定義できる using A = NamespaceA; // エイリアスの定義 このやり方には問題点が1つある。 エイリアス名と同名の名前空間を定義した時に、コード破壊を起こす可能性があるのだ。 それを防ぐには、エイリアス修飾子を使う。例えば、エ…

『究極のC#プログラミング』 Chapter9 プロパティとアクセシビリティ

プロパティのアクセシビリティとオーバーロードの解決 class A { private string s; public string Name { get { return s; } set { s = value; } } } class B : A { private string s; protected new string Name // protected, newで隠蔽 { get { return s…

『究極のC#プログラミング』 Chapter8 部分クラスと静的クラス

部分クラスのわかりやすい事例は、Windowsフォームの自動生成コードの分離などGUIに関わる部分。 しかし、コンソールアプリケーションでも部分クラスは用いられる。 部分クラスとは、 クラス、構造体、インターフェースの宣言を複数の固まりに分割できること…

また寝てた!

19時頃から今まで寝てた 家事をしてから1:30くらいから開始しよう 今日は30p

終わりだ!

今日はこれで終わる ちょうど2時間で48ページやった

『究極のC#プログラミング』 Chapter7 ラムダ式 後編

式形式のラムダ式と、ステートメント形式のラムダ式 // 式形式 (引数リスト) => 内容 // ステートメント形式 (引数リスト) => { 内容 } 式形式で書けない場合もあるので、ステートメント形式も必要 式形式で書けない原因として、C/C++で存在するカンマ演算子…

『究極のC#プログラミング』 Chapter6 ラムダ式 前編

ラムダ式はC# 3.0の花形 C# 3.0では驚くほどコーディングのストレスが存在しない。 たとえば、複数の定義を整合させるためにソースコードを往復することが少ない。 ストレスフリーであることで、C# 3.0の習熟とともに、ラムダ式を多用するようになる。 その…

寝てた!

昨日帰宅後、具合が悪かったので横になってたら寝てしまってた なので、29日ぶんの学習は今から始める! 幸いにもパラパラ見て予習したところ簡単そうだから50ページできそうだ 今日はラムダ式だぞ!

始めるぞ

65-100pをやる予定。 繰り返し、Findメソッド、Nullableの3つだ。 明日からは、ラムダ式、パーシャルクラスと静的クラス、プロパティとアクセシビリティ、 名前空間のアクセス修飾子と外部アセンブリ、フレンドアセンブリ、・・・と続いていく

終わり!

2時間強で65-100pを学習した

『究極のC#プログラミング』Chapter5 Nullable型

なぜnullを入れたいのか 構造体は参照型と値型が同じように扱えるメリットがある。例えば、とりあえずToString()をつければ文字列になる。 これと同じで、nullも参照型と値型が同じように扱えるメリットがある。つまり、値型にもデフォルト値であるnullを許…

『究極のC#プログラミング』 Chapter4 Findメソッド

ForEachメソッドのbreak問題 foreach文よりも、ForEachメソッドのほうが高速だが、breakがうまく機能しないという問題がある。 列挙して処理してる途中でbreakしたくても、breakはforeach/whileのようなループの中でしか機能しないから。 しかし、これはさほ…

『究極のC#プログラミング』 Chapter3 yield returnとForEach その2

1つのクラスに複数の列挙機能をつける int[]な配列を表すクラスを列挙するには、 public IEnumerator<int> GetEnumerator というメソッドを定義すると良い。GetEnumeratorという名前のメソッドは、 foreach(int i in new Class1()) のようにした時に暗黙的に呼び</int>…

終わりだ!

今日は2時間で61ページまで進んだ。中身は16ページから開始してるから46ページだ。 結構たくさん進んだ。 この本は文章がしっかりしてるし中身もしっかりしてる良い本だと感じた。

『究極のC#プログラミング』Chapter3 yield returnとForEach その1

for文で数を数える時に for(i = 0; i <= 9; j++) // iでなくj { // code } というミスがありうる。これを回避するのがforeachであり、 foreach(T elem1 in Obj1) { // code } のように変数を一箇所だけ使って書ける。 しかし、列挙可能なオブジェクトを作る…

『究極のC#プログラミング』 Part2 Chapter2 ジェネリック

ジェネリックはC# 3.0らしいプログラミングを支える基礎 ジェネリックを使えば、コレクションの要素のアクセス時にキャストが要らなくなる キャストの難点 1.面倒 var list = new ArrayList(); // ... Console.WriteLine( (string)list[0] ); // ArrayListだ…

『究極のC#プログラミング』 Part1 C#3.0

プロジェクトのプロパティから.NET Frameworkのバージョンを選択できる C#3.0のメリット メソッドにラムダ式を渡せるので、拡張性(既存のメソッドを変更することなく新しい処理を追加できる)、メンテナンス性、可読性が上がる コードの遅延実行ができる(未来…

今日から『究極のC#プログラミング』を読んでいくぞ!

400ページあるので、3/27-4/8の13日で約30ページずつ読めば終わる 今日は最初のほうなので、40pは読みたい

終わりだ

これで『Visual C#実践講座』が終わった 後半は読み物が多かったので、日記にはまとめない 今日は2時間ちょうど勉強した

『Visual C#実践講座』 3章 その5 データテーブル項目とコントロールのバインド

データベースからレコード(DataRow)を読み込み画面項目に設定し、 ユーザの操作による変更をデータベースへと書き戻すという処理をどのように行うか? 手作業で1つずつDataRowから画面、またはDataRowに項目を設定する方法もある。 これは面倒。 this.ctl1.D…

『Visual C#実践講座』 3章 その4 トランザクション処理

関連するテーブルの処理全体をトランザクションとして管理する。 データベースへの更新処理がすべて正常終了すれば「コミット」し、そうでなければ「ロールバック」する。 これをトランザクション処理という。 このように処理しないと、更新の途中で異常終了…

リンク Linq to Dataset

LINQ to DataSet の概要 http://msdn.microsoft.com/ja-jp/library/bb399399.aspx LINQ to DataSet http://msdn.microsoft.com/ja-jp/library/bb386977.aspx

『Visual C#実践講座』 3章 その3 テーブル読み込みエラー

var tmpTb1 = new Dataset1.SOMECODEDataTable(); using(SqlConnection _con = new SqlConnection(strConnection)) { _con.Open(); try { var da = new SqlDataAdapter(strSql, _con); var cb = new SqlCommandBuilder(da); da.Fill(tmpTb1); } catch(Constr…

『Visual C#実践講座』 3章 その2 型付きデータセットの特長

型なしデータセットも便利だが、型付きデータセットはもっと便利 ・データベースエクスプローラからデータベーステーブルをD&Dするだけで定義作成できる ・項目をインデックスや項目名で指定するだけでなく、プロパティとして取得できる ・項目に型を指定で…