csharper さん プロフィール

  •  
csharperさん: C#の覚書
ハンドル名csharper さん
ブログタイトルC#の覚書
ブログURLhttp://sl03-csharp.sblo.jp/
サイト紹介文C#の覚書
参加カテゴリー
更新頻度(1年)情報提供74回 / 183日(平均2.8回/週) - 参加 2018/07/22 20:38

csharper さんのブログ記事

  • インターフェースの効用
  • メソッドに与える引数の型と返り値の型を整えることができるわけだから、将来的なメンテナンスの際に統一性が保てる。完全な例えにはならないが、世の中はこのインターフェースを合わせることは普通にみられる。自分がある国の鉄道部門の幹部だとする。外国に車両を発注するとする。レール幅を統一し、そのレール幅の規格にあう車両を作ってくれと他国に依頼する。各国が自分の得意なレール幅で車輪を作られたら、その車両を受け取 [続きを読む]
  • xmlファイルとは
  • ◆htmlと比較して考察する。htmlはブラウザに解釈させて表示し、人間が閲覧するために書かれている。データを管理する目的でではなく、データを表示するために作られたもの。もちろん、かなりきっちり形式的なルールを決めてコーディングすると、jqueryなどで効果的にデータを取得し、二次利用がプログラムからできる。しかし、二次利用することを目的として書き方についてのruleが存在しない。したがってhtmlからデータを取得使用 [続きを読む]
  • 配列の大きさ変更
  • Listを使うこともあるが、Listは大げさと思ったら、配列の大きさを変えて対応する。//要素数5の配列int[] intArray = { 10, 11, 12, 13, 14 };//要素数を7に増やす場合Array.Resize(ref intArray, 7);内部的にcopyメソッドを使っている。copyメソッドに慣れているならば、そちらを使ってもOK。標準ライブラリー側で引数をrefで受け取るよう作られているため、Resizeメソッドを使うときもref必須。 [続きを読む]
  • パスを決めることができる便利な変数
  • Application.StartupPath 名前空間:System.Windows.FormsAssembly:System.Windows.Forms.dllアプリケーションを開始した実行可能ファイルの、ファイル名を含まないパスを取得します。------------------------------------Path.DirectorySeparatorChar名前空間:System.IOAssemblies:System.Runtime.Extensions.dll, mscorlib.dll, netstandard.dll階層ファイル システム編成を反映するパス文字列の、ディレクトリ レベルを区切るた [続きを読む]
  • どのような時に参照渡しを使うか?
  • C#では、引数は値渡しとなり、メソッド内では、渡す前の変数とは、独立する。実際にプログラミングでもほとんどの場合は、値渡しにする。なぜなら、メソッド内で引数が変更されてしまうのは危険すぎるから。参照渡しを使う最もよくあるケースは、メソッドが戻り値以外の値を返したい時です。多用するとバクの温床となるため、要注意。例文int number = 1;Method(ref number);void Method(ref int num){ num += 99;}Console.Writ [続きを読む]
  • 数列になる配列・Listを作りたい
  • 各要素が数列になる配列を作りたい。ただし、数列の値に上限値maxhがある。(注意:数列の要素数の上限値ではない)作りたい数列の式がh = 3 * h +1の数列とする。無限ループを意図的に作り、数列のある値が上限値を超えたら、breakする。任意の数列の配列をを作る際、非常に便利なテクニック。下記の場合は数列の、Listを生成。private static List CreateSeqArr(int maxh){ List G = new List(); int h = 1; bool flag [続きを読む]
  • 文字型と文字列型
  • プログラミングの世界では、一般的に文字:記号としての文字(1文字)文字列:単語や文章としての文字(文字の集まり)と区別します。それぞれ文字型がchar型、文字列型がstring型。char型は英語風に読むなら、キャラ型と読む。 [続きを読む]
  • csv--->配列へ
  • //csvファイルの配列化の定番 string strLine; string delimStr = ","; string[] strData; //分解後文字列格納 System.IO.StreamReader sr = new System.IO.StreamReader( "sample.txt", System.Text.Encoding.Default); while (sr.Peek() >= 0) {//開始位置の次の文字の存在チェック string strLine = sr.ReadLine();//行の末尾まで読み込み、次の行の先頭へ [続きを読む]
  • List形式のデータの集まりをCSV出力したい
  • using (StreamWriter sw = new StreamWriter( path, false, System.Text.Encoding.Default)){ foreach(List Datas in excelRowsDatas) { // 第二引数は意図的に配列へ変換する。 strData = string.Join(",", Datas.ToArray()); sw.WriteLine(strData); } sw.Close();}上記の例ではjoinがリスト対して利用できないので、配列に変換している。 [続きを読む]
  • varを使うとき
  • Dictionary> Map = new Dictionary>();上記は Dictionary> という型の「Map」という変数を初期化している。◆varを使う時 その1単なる初期化で長いコードになる場合var Map = new Dictionary>();で良い。◆varを使う時 その2ループ構文やusing構文の()内の変数に対しては、varがよく使われている。つまり、厳格な判断ができる、コンパイラの決定にゆだねる時に使う。コンパイラは常に厳密に型を意識しているので、厳密さがなく [続きを読む]
  • リンク
  • LINQとは、Language INtegrated Queryの略。直訳すると、言語統合問い合わせ意訳すると言語(C#やVisual Basicなど)のコード内に統合記述したクエリ。LINQではSQL文に似た構文によりクエリを記述することで、データベースなどさまざまなデータの集合から、データの検索や集計、取得などを行う事ができる。下記の例は3種類のデータの集合に対して、それぞれ15点を加点し、結果 610点以上の得点を選択したコードusing System;using [続きを読む]
  • イベント
  • イベント何かが起きたとき、通知する仕組み。using System;// 状況に応じてさまざまな処理ができるようにする。delegate void MyHandler();class TestBtn {// eventとつけることで、このクラスからのみ利用できる。 public event MyHandler CustomEvents; public void OnClicked() { //エラー回避のため、必要。 if (CustomEvents != null) { CustomEvents(); } }}// 上記の意味// TestBtnを したら、MyHa [続きを読む]
  • 匿名メソッドとラムダ式
  • デリゲートで定義したメソッドが1回しか使わないなら、そのメソッドに名前をつけるのは冗長となる。したがって、そうしたメソッド名を利用しているデリゲートも冗長といえる。その対応方法として、匿名メソッド、ラムダ式がある。●匿名メソッド●ラムダ式引数 記号 {処理} の順に記述処理が一つのときは処理の前後の{}を省略できる。ラムダ式も匿名性はある。using System;// 同様にデータ型を宣言delegate void MyDelType(); [続きを読む]
  • デリゲート(delegate)
  • delegateメソッドを割り当てる事ができる変数。1:まず、変数の型を宣言する。2:型宣言することで、どんなメソッドが登録できるかを示す。3:次に、初めて変数宣言する。4:どこかに2の条件を満たすメソッドがすでにあったり、作ったりする。5:3の変数に=演算子でメソッドを登録。6:3の変数の後ろに()をつけて実行できる。マルチキャストデリゲート上記5を複数行う。演算子は+=を使う。登録解除は、-=。意義委譲とも [続きを読む]
  • 自作の例外クラスを使った例外処理の設計
  • 1:例外が発生しそうなところをtryでくくり、条件分岐で自作の例外にthrowする。2:catch句で自作例外クラスのデータ型のeで捕らえる。3:eは、継承元の例外クラスのMessageなどのプロパティーを利用できる。using System;//自作の例外クラスの定義class MyException: Exception { public MyException(string message): base(message) { }}class MyApp { static void Division(int dividend, int divisor) { try { i [続きを読む]
  • システムの例外クラスを使った例外処理の設計
  • 1:例外が発生しそうなところをtryでくくり、その処理をキャッチで捕らえる。2:例外処理を作っていないときに、systemが例外をメッセージを出力している。例:FATAL UNHANDLED EXEPTION:System.DivideByZeroException:.......この場合、例外型 が DivideByZeroException で eという変数で捕らえる。3:eには、Messageなどのプロパティーが準備されているので、それらを利用することもできる。using System;class MyApp { [続きを読む]
  • 例外クラスを自作する
  • プログラムの実行中に、予期せぬ結果が生じたときに適切な処理をする。C#の機能ではないクラスを作る場合1:システムが用意しているExceptionを継承する。2:コンストラクターでメッセージを取得できる。3:引数を受けたら親クラスのコンストラクタ引数に渡す。class MyException: Exception { public MyException(string msg): base(msg) { }} [続きを読む]
  • エクセルとCSVの読み書き概要
  • javaから移植したnpoiを併用する。■エクセルデータを読み込み、変数へ。→npoiを利用。*注意点・データ型を意識して取得する。・エクセルのセルに式があった場合、式の計算結果を取得する。・取得データを加工する場合、加工の際に加える文字列と取得したデータに含まれている文字列が異なる意味を持つよう配慮する。■変数内のデータをCSVへ出力。→C#のcsvWriterオブジェクトのWriteメソッドを利用。(C#の機能)■CSVデータを読 [続きを読む]