No more Death March

あるSEのチラシの裏 C# WPF

2017-03-11から1日間の記事一覧

インターフェースを考える(2)ITaskインターフェース

C#実践開発手法で紹介されているもっとも単純なインターフェースITaskを作ってみます。 namespace Nmdm.Tasks { public interface ITask { void Do(); } } 引数も無く、戻り値もなく、最もシンプルなインターフェースですね。こういうインターフェースを作る…

インターフェースを考える(1)はじめに

オブジェクト指向プログラミングを勉強していると 実装ではなく抽象に依存する というフレーズを目にすることがあります。このカテゴリの記事では私自身の勉強のために、 とことんインターフェースを使ってみたらどうなるか、 実際にプログラミングしながら…

c# リファクタリング 小さい方の値が欲しい。

二つのint型から小さい方の値がほしい時。 public void Hoge(int one,int other) { int min; if (one < other) { min = one; } else { min = other; } } じゃなくて。MathクラスのMinメソッドを使おう。 public void Hoge(int one,int other) { int min; min…

C# 自作クラスの戻り値からnullを排除する。

C#

自作クラスのプロパティやメソッドでなんらかの値を返すならnullは返さないようにしたい。 そのクラス自体のnullチェックを他のクラスがするのはわかるとして、 クラスが公開する「何か」についてはそのクラスが責任を持つべき。string型のプロパティがある…

C# リファクタリング コレクションを変換

コレクションの内容を一定のルールに従って違う型に変換したい場合 public void Hoge() { var list = new List<object>(); list.Add(new object()); list.Add(new object()); list.Add(new object()); list.Add(new object()); list.Add(new object()); var list2 = </object>…

C# リファクタリング foreachで抽出

Listをぐるぐる回して条件に合致するものを別のインスタンスに入れている場合 public void Hoge() { var list = new List<String>(); list.Add("123"); list.Add("1234"); list.Add("12345"); list.Add("123456"); // 4文字以下のものをリストから抽出したい。 var l</string>…

C# リファクタリング コレクションを返すメソッド

なんらかの処理を行ってコレクションを返すようなメソッドがあったとして、 こんな具合にパラメータがnullだったら例外を投げ返すんだったら public IEnumerable<object> Hoge(object obj) { if (obj == null) throw new ArgumentNullException("obj"); // なにか処</object>…

C# リファクタリング 早期リターン

int型の引数が5以下だったらTrueを返すとして、 public bool Hoge(int value) { if(value < 5) { return true; }else{ return false; } } こうだったのを public bool Hoge(int value) { if (value < 5) return true; return false; } こうする。ソースコー…

オブジェクト指向もといプログラムを考える。

レガシープログラマの歴が長く、オブジェクト指向は独学、 何が良いプログラムで何が悪いプログラムなのかもやもやする・・・日々頭の中の考えがあっちいったりこっちいったりで切りがないので、 気が付いた時に文章に書いておいた方がいいかもしれない。今…