プログラミングでアイデアを具現化したい

あらゆるものを具現化するためにプログラミングを始めました。主にC#

C#

LINQ group句によるクエリ結果のグループ化

C#

独習C# 第3版よりtos5511.hatenablog.com tos5511.hatenablog.com tos5511.hatenablog.com 続き //簡単なLINQクエリの例 using System; using System.Linq; class GroupDemo { static void Main() { string[] websites = {"123.com","456.net","789.net", "3…

LINQ orderby句によるクエリ結果の並べ替え

C#

独習C# 第3版よりtos5511.hatenablog.com tos5511.hatenablog.com 続きorderby句を使うことで並び替えができる。 //簡単なLINQクエリの例 using System; using System.Linq; class SimpQuery { static void Main() { int[] nums = { 1, -2, 3, -4, 5, -6, 7,…

LINQ where句によるデータの絞り込み

C#

独習C# 第3版よりtos5511.hatenablog.com 入門の続き var posNum = from n in nums where n > 0 select n; where句では複数の抽出条件を指定して絞り込みを行う事が可能です。 //簡単なLINQクエリの例 using System; using System.Linq; class SimpQuery { s…

LINQ入門

C#

独習C# 第3版よりLINQについて簡単なLINQの例 整数値の配列の中から正の数の要素を求めるクエリ //簡単なLINQクエリの例 using System; using System.Linq; class SimpQuery { static void Main() { int[] nums = { 1, -2, 3, -4, 5, -6, 7, -8, 9 }; //nums…

匿名メソッド

C#

独習C# 第3版より //匿名メソッドの例 using System; delegate void CountIt(); class AnonMetDemo { static void Main() { //カウントするコードを匿名メソッドとして渡す CountIt count = delegate { //このブロックがデリゲートに渡される for (int i = 0…

マルチキャスト

C#

独習C# 第3版よりtos5511.hatenablog.com デリゲートの続き。 デリゲートの呼び出し時に一度に複数のメソッドをまとめて呼び出すことを マルチキャストという。デリゲートをインスタンス化した後、「+=」「-=」で メソッドの追加、削除を行いメソッドをチェ…

デリゲート

C#

独習C# 第3版よりデリゲート宣言構文 戻り値の型には、デリゲートが呼び出すメソッドの戻り値の型を指定します。 デリゲートが呼び出すメソッドの引数は仮引数に指定します。 デリゲートから呼び出すことが出来るメソッドは戻り値、引数が デリゲート宣言と…

C#の例外処理

C#

独習C# 第3版よりお兄ちゃん…Try~catchは例外を隠すためにあるんじゃないんだよ?そして、そんなコード書いているとコード読んだ人にお兄ちゃんの都合の悪いことを隠す性格がばれちゃうよ?— プログラムを勉強している人の毒舌な妹 (@PG_sister_bot) 2016, …

仮想メソッドとオーバーライド

C#

独習C# 第3版より仮想メソッドは基本クラスでvirtual装飾子をつけて宣言されたメソッドのこと。 仮想メソッドは派生クラスで再定義することができて、 それを「メソッドのオーバーライド」と言う。 簡単な例は下記のコード。 using System; class Program { …

継承 コンストラクター

C#

独習C# 第3版よりこちらの記事の続き。 tos5511.hatenablog.com tos5511.hatenablog.comコンストラクターは基本クラス、派生クラスが それぞれ独自のコンストラクターを持つことができる。 using System; namespace ConsoleTest { class Program { static vo…

継承 メンバーへのアクセス

C#

独習C# 第3版より tos5511.hatenablog.com こちらの記事の続き。privateに設定したアクセス制限は継承をしても継続されます。 例えば下記のコードはエラーとなります。 class Program { static void Main(string[] args) { } } // 平面図形のクラス class Tw…

C# アセンブリの参照が不足しています。の解決方法

C#

プログラミングの勉強を始めた頃、ネット上で見つけたコードを そのままコピペするがなぜか自分の環境ではエラーになって認識しない。 エラー内容は「アセンブリの参照が不足しています。」・・・ これの解決方法がわからず対応に困った事があったので手順を…

継承の基本について

C#

独習C# 第3版より継承の基本について 下記コード例では平面図形の幅、高さを保持するTwoDSharpeクラスと、 それを継承したTriangleクラスを使用しています。 TriangleクラスはTwoDSharpeクラスを継承しているため、 その全てを受け継いでおり、TwoDSharpeク…

クイックソート

C#

独習C# 第3版より 引用元:wikipedia再帰を使うことでクイックソートを実装することが可能となります。 クイックソートは現在利用できる汎用的なソートアルゴリズムの中で 最も優れたものと言われています。 class Program { static void Main(string[] args…

再帰処理

C#

独習C# 第3版よりメソッドで自分自身を呼び出す事を再起という。 実行結果からわかるように、メソッドを深く呼び出し続けるため、 再帰を行う毎にスタック領域を占有していく。 class Program { static void Main(string[] args) { Factorial f = new Factor…

コンストラクターのオーバーロード

C#

独習C# 第3版よりメソッド同様にコンストラクターもオーバーロード可能。 与えられたパラメータに応じて適切なコンストラクターが呼び出される。 class Program { static void Main(string[] args) { MyClass t1 = new MyClass(); MyClass t2 = new MyClass(…

メソッドのオーバーロード

C#

独習C# 第3版より同一クラスの中に同じ名のメソッドを複数持つことが出来、 引数の数、もしくは型を変える事で対応するメソッドを呼び出す。 class Program { static void Main(string[] args) { Overload ob = new Overload(); ob.OvlDemo(); ob.OvlDemo(10…

可変長引数の使い方

C#

独習C# 第3版よりparams修飾子を使うことによって、引数の数を可変にできる。 class Program { static void Main(string[] args) { Min ob = new Min(); int min; int a = 10, b = 15, c = 20; //3つの値を渡す min = ob.MinVal(a, b, c); Console.WriteLine…

値型の参照渡し

C#

独習C# 第3版より 通常intなどの値型を引数に渡した場合、メソッド側には値だけが渡される為、 呼び出し元の実引数には影響がないが、refを使うことで値型を参照で渡す事が 可能になる為、メソッド側から呼び出し元の実引数を変更できるようになる。 class P…

文字列の操作

C#

独習C#よりIndexOf(string str)とLastIndexOf(string str)について class Program { static void Main(string[] args) { int idx; string str = "プログラミングでアイデアを具現化したい"; idx = str.IndexOf("ア"); Console.WriteLine("最初のアは" + (idx…

foreach文とfor文の速度比較

C#

独習C#よりforeachについて。個人的にはほとんどfor文で書けていたため、ほとんど使った事がない。 foreachの構文単純にあまり使う意味がわからないのでfor文と速度比較してみた。foreachで配列の合計を求める。 class Program { static void Main(string[] …

バブルソート

C#

独習C#よりバブルソートはパフォーマンスでは最悪のソートと言われているらしいが、 物には順序がある。やりましょう。 class Program { static void Main(string[] args) { int[] nums = { 10,9,8,7,6,5,4,3,2,1}; int a, b, temp; //ソートする前の配列要…

ソースコード貼り付けテスト

C#

namespace MinMax { class Program { static void Main(string[] args) { int[] nums = {99,-10,100123,18,-978, 5623,456,-9,287,49}; int min, max; min = max = nums[0]; for(int i = 0; i < nums.Length; i++) { if (nums[i] < min) min = nums[i]; if (…