searchカテゴリー選択
chevron_left

カテゴリーを選択しなおす

cancel
プロフィール PROFILE

csharperさんのプロフィール

住所
未設定
出身
未設定

自由文未設定

ブログタイトル
C#の覚書
ブログURL
http://sl03-csharp.sblo.jp/
ブログ紹介文
C#の覚書
更新頻度(1年)

集計中

ブログ村参加:2018/07/22

本日のランキング(IN)
読者になる

新機能の「ブログリーダー」を活用して、csharperさんの読者になりませんか?

ハンドル名
csharperさん
ブログタイトル
C#の覚書
更新頻度
集計中
読者になる
C#の覚書

csharperさんの新着記事

1件〜30件

  • csvライブラリーの利用例

    VisualBasic用のライブラリーである TextFieldParserクラス(Microsoft.VisualBasic.FileIO名前空間)をC#で利用する実例。 ■csvファイルの一行目をカラム名として読みとり、listを生成する例 using (var parser = new TextFieldParser(fp, Encoding.GetEncoding("Shift_JIS"))) { // カンマ区切りの指定 parser.TextFieldType = FieldType.Delimited; parse…

  • メソッドの引数を複数の型に対応させ、冗長さをなくす実例

    //foreachで回せる引数を受けて、半角スペース区切りで出力する関数 public static string ConvertIntArrToString(IEnumerable arr) { string s = ""; foreach (T i in arr) { s += i.ToString() + " "; } return s.Trim(); } ここではint型が格納されている配列やlistを受けて、 中身の要素を文字列にして、半…

  • クラス内のメンバー変数を宣言するか、引数や戻り値の変数で扱うかの考察。

    メンバー変数宣言には当然多くのメリットがあるが、 デメリットも考える。 1:privateメンバー変数であっても クラス内では、グローバル的な振る舞いとなり、クラスが大きくなった時に、メソッド内のローカル変数と比較すると、相対的に保守性が下がる。 2:一時的なデータとして扱われるもので、同一クラス内のメソッドで値がしばしば変わるなら、引数で渡したり、戻り値で受けた…

  • ローミングユーザーとは、

    ローミング・ユーザー(=別名「移動ユーザー」)とは「ネットワーク上のどのコンピュータにログオンしても同じデスクトップ環境を実現できる」というwindowsの機能を利用する際に、この概念がよく出てくる。 下記のサイトがより詳しい。 https://www.atmarkit.co.jp/fdotnet/dotnettips/558appsettings/appsettings.html

  • 文字列の両端にダブルクオートがあるときに限り、そのダブルクオートをエスケープする。

    文字列の両端に"があった場合に限り、 両端の\"を取り除くメソッド CSVファイル読み込み時などに時折利用する。 //使用例 string value = "\"test\""; string v = TrimDoubleQuote(value); Console.WriteLine(v); //escape method private string TrimDoubleQuote(string v) { if (v.StartsWith("\"") && v.EndsWith("\"")) { return v.Substring(1,…

  • ジェネリックで引数の型に汎用性を持たせたメソッドを作る。

    C#では、引数の型を変えた同一メソッド作ることが可能ですが、 型だけ違って、処理内容が同じであれば、冗長になる。 void Save(int value) { /*保存処理*/ } void Save(float value) { /*保存処理*/ } void Save(string value) { /*保存処理*/ } ここでジェネリックを使う。

  • カプセル化

    カプセル化の意義:仕事の内容を隠すこと カプセル化とは、クラスに一切の仕事(責任)を持たせ、別のクラス(オブジェクト)から仕事の内容を隠すことを言います。 身近な例。小学生の太郎君はお母さんに「目玉焼きが欲しい」とメールします。 母親は、スマホでメールを受信し、卵を買ってから、家に帰って、フライパンに油をしき、目玉焼きを作りました。 太郎君は母親の目玉焼きを作るまでの試行錯誤は全く分かりま…

  • 継承先のクラスのメソッドで、返り値の型だけが異なる、ジェネリックな共通メソッドの作り方

    抽象クラスでなくともできるが、抽象クラスで説明。 ・抽象クラス定義する際に、クラス名の後ろにをつける。 ・汎用性のある型が入ることを想定して設計したメンバー変数には型としてを使う。 ・同じく、汎用性のある型を返すことを想定して設計したメソッドの返り値の型としてを使う。 abstract public class InputTreesBase //ジェネリック抽象クラスで定義す…

  • クラス設計の手順

    インターフェースはクラスを使う人のことを考えた機能であるため、 クラス設計する際にはインターフェースを先に決めることは グッドプラクティスである。 冗長性が見えてきたら、継承の必要性が出てくるため、 その時に、抽象クラスの継承も意識する。 ●上記と同時に、 単なるデータ型なら、データクラスを作ったり、 汎用メソッドであれば、Utilsクラスを作ったりする。

  • 汎用化されたメソッドの作り方

    メソッドの働きを日本語化し、その日本語をなるべく汎用化する。 例1 ある英単語が、単語の集まりの中に含まているかをチェックする。 →ある文字が、文字の集合体の中に含まれているかをチェックする。 例2 お客様の住所が、住所の集まりの中に含まれているかをチェックする。 →ある文字が、文字の集合体の中に含まれているかをチェックする。 日本語を汎用化させると、例1も例2も同じメソッドが使える…

  • デザインパターン テンプレートメソッド

    抽象クラスを使う。 おおむね処理の流れがどれも同じだが、その処理の流れをいくつかのメソッドに分けた時、 そのメソッドの中身だけが微妙に変わるというときに威力を発揮する。 抽象クラスには、 詳細部分のメソッドは定義だけ書き、 その詳細部分のメソッドを使う手順だけが一定なら、その部分は通常メソッドで実装する。 すると、抽象クラスを継承したクラスでは、 詳細部分をオーバーライドし、 全体の流れは、…

  • デザインパターン stateパターン

    ある二つのクラスが is-aの関係なら、継承の設計ができ、 has-aの関係なら、包含。つまり、クラスの中で別クラスのインスタンスを作り、そのメソッドに処理を移譲する。 さらに、関連というのがある。 インターフェースで共有した複数のクラスがあるとき、 インターフェース名をデータ型にした変数に そのインターフェースを実装したクラスのインスタンスを代入すると、 その変数は、インターフェースで指…

  • クラス設計の基本の二つ

    ■オープン・クローズドの原則 オープン・クローズドの原則とは、 「拡張に対して開いていて、修正に対して閉じていなければならない」という原則です。 言い換えると、 「拡張がしやすく、拡張しても修正箇所はできるだけ少なくなるような設計にするべき」という指針です。 この指針を意識するとき、デザインパターンが役立つ。 ■単一責任の原則。 単一責任の原則とは、 「クラ…

  • double型の値を出力で、小数値までしっかり文字列化したいとき

    double型の値を出力するとき、 double X = 100.000 のとき、 X.ToString(); とすると、100になってしまう。 string.Format("{0: 0.000}", X) とすると、正しく、100,000と出力される。

  • XML<br />XML設定ファイルから、node取得時にホワイトスペースを取り除くとき

    //XmlNodeの直下のNode群からNode名を一個ずつ取得したいとき foreach (XmlNode childNode in node.ChildNodes) { if (childNode is XmlWhitespace) { continue; } string Name = childNode.Name; }

  • インターフェースの効用

    メソッドに与える引数の型と 返り値の型を整えることができるわけだから、 将来的なメンテナンスの際に統一性が保てる。 完全な例えにはならないが、世の中はこのインターフェースを合わせることは普通にみられる。 自分がある国の鉄道部門の幹部だとする。 外国に車両を発注するとする。 レール幅を統一し、そのレール幅の規格にあう車両を作ってくれと他国に依頼する。 各国が自分の得意なレール幅で車輪を作られたら…

  • staticメソッドが、インスタンスのメンバーにアクセスはコンパイルできない。

    staticではないクラスがあったとする。 static が付いていないメンバは各インスタンス固有のメンバになります。 static が付いているメンバはすべてのインスタンスで共有される共有メンバとなります。 例えば public class Test { public string strA; public void B() { Console.WriteLine(strA) } public static void C() { …

  • xmlファイルとは

    ◆htmlと比較して考察する。 htmlはブラウザに解釈させて表示し、人間が閲覧するために書かれている。 データを管理する目的でではなく、データを表示するために作られたもの。 もちろん、かなりきっちり形式的なルールを決めてコーディングすると、 jqueryなどで効果的にデータを取得し、二次利用がプログラムからできる。 しかし、二次利用することを目的として書き方についてのruleが存在しない。 …

  • 配列の大きさ変更

    Listを使うこともあるが、 Listは大げさと思ったら、配列の大きさを変えて対応する。 //要素数5の配列 int[] intArray = { 10, 11, 12, 13, 14 }; //要素数を7に増やす場合 Array.Resize(ref intArray, 7); 内部的にcopyメソッドを使っている。 copyメソッドに慣れているならば、そちらを使ってもOK。 標準ライブラリー側で引数…

カテゴリー一覧
商用