hakeの日記

Windows環境でプログラミングの勉強をしています。

2018-09-01から1ヶ月間の記事一覧

C# - goto

基本的にgotoは使用しない方が良いが、多重ループからの脱出やswitch内での移動で使用することもできる。

C# - Null許容型とNull合体演算子

Null許容型 通常は参照型の変数にしかnullは代入できないが、値型の変数でnull値を使いたい場合に使用する。内部的にはnullか否かのフラグと値を保持する変数を持っていると思われます。 値を保持しているか否かの判断には HasValue プロパティを利用する。…

C# - クラス - インデクサ

インスタンスに要素番号をつけて配列の様にアクセスする方法。プロパティの配列版といったところ。 public 型 this[ int i ] { set{ } get{ } }インデックスの数は複数(多次元)でも可。 以下は内部で配列ではないものを外部には配列っぽく見せているサンプ…

C# - 配列

言語仕様としての配列、要素数が予め決まっている場合に使用する。要素数が未定の場合や追加/削除を行う場合はコレクションを使用した方が良い。 初期設定値を書かない場合は new 演算子を使用して宣言する。初期値がある場合は不要となる。多次元配列は[ ]…

C# - クラス - 抽象クラス

継承することを前提し、メソッドやプロパティの外観だけを記述するクラス。 クラス宣言に abstract キーワードを付加する。 abstract class クラス名また、定義するメソッドやプロパティにも absrtact キーワードを付加する。派生クラス側では override キー…

C# - クラス - 継承 その2

クラスの継承の続き 昨日の日記では、派生クラスのコンストラクタを実行すると暗黙的に基底クラスの引数なしのコンストラクタが実行されたが、これでは都合が悪いので基底クラスの特定のコンストラクタを実行する様にもできる。 public 派生クラス名(引数リ…

C# - クラス - 継承 その1

クラスの継承の継承を行う場合は class 派生クラス名 : 基底クラス名と記述する。 派生クラスのインスタンス生成時にコンストラクタが実行されるが、暗黙的に基底クラスの「引数なし」のコンストラクタが呼ばれる。実行は、最初に基底クラスのコンストラクタ…

C# - クラス - プロパティ

インスタンス変数にそのままアクセスするのではなくて、インスタンス変数そのものは隠蔽して手続きを介して一見インスタンス変数の様にアクセスする方法。 インスタンス変数に値をセットする処理は set{ } 、このとき外部から与える値は value とする。イン…

C# - クラス - コンストラクタとデストラクタ

new演算子によるインスタンス生成時に実行されるのがコンストラクタ、インスタンスの解放時に実行されるのがデストラクタ。コンストラクタは複数の引数パターンを記述可能で、new時に与えられた引数のパターンにより選択されて実行される。 また クラス名(引…

C# - クラス - 変数と定数

クラスが持つ変数としては、静的(クラス)変数とインスタンス変数がある。 静的変数は、クラスで共通して一つ持ち、インスタンス変数はインスタンス毎に同名の変数を別に持つ。 静的変数は「クラス名.変数名」と書き、インスタンス変数は「インスタンス名.…

C# - コーディング規約

をみつけたのでリンク。C# のコーディング規則 (C# プログラミング ガイド) | Microsoft Docs

C# - 変数の型を取得

変数の型は、GetTypeメソッドで取得できる。 PowerShellと同じ。 varで宣言した変数の型をチェックするときに便利。 using System; // 変数の型を取得 class MyClass {} class MyMain { static void Main(string[] args) { int d = 123; double f = 456.789;…

C# - 文字列の書式指定(ToString)

数値をToStringメソッドで文字列化する場合の書式設定。 基本は前回と同じ、カスタム書式指定というのはExcelの表示形式の指定と似ています。(同じ?) ToStrirngメソッド自体は、オブジェクトを等価の文字列表現に変換する機能があり、供給されている各オ…

C# - 文字列の書式指定

引用符の左に@をつけた文字リテラルはエスケープ文字をそのまま出力する。またC#6以降では$を付けて文字列中の変数展開が可能みたいですが、今の実行環境ではエラーの為コメントにしてます。 文字列中への変数の埋め込みは{ }の中で書式を指定することで行う…

C# - csc.bat - 複数ファイルのコンパイル

前回のプログラムをクラス毎にファイル分割してコンパイルしてみる。 実行ファイル名は、Mainが存在する方のファイル名となる。 MyMain.cs using System; class MyMain { static void Main(string[] args) { MyClass.Method1(); MyClass mc = new MyClass();…

C# - 他クラスのメソッド実行

MyClassという、スタティックメソッドとインスタンスメソッドを持ったクラスを定義して、Mainから呼び出してみる。 using System; // 他クラスのメソッド実行 class MyClass { public static void Method1() { Console.WriteLine("MyClass:スタティックメソ…

C# - 基本形

C#の勉強。 現在、VisualStudioもVS Codeもインストールしていないので、以前の日記で作成したcsc.batでコマンドプロンプトからコンパイルを行う。 なのでWindows10環境での使用バージョンは、C# 5.0だと思われます。 c言語でいうところのmain関数が、C#では…

PowerShell Core

バージョン6以降のものをこう呼ぶようになったみたい。 一番の大きな変更はlinuxやmacでも動作するようになったこと。 現時点でも最新バージョンは6.1.0で、早速、リリースサイトからPowerShell-6.1.0-win-x64.msiをダウンロードしてきてインストール。 Wind…

カテゴリ整理

こちらに移行したので、はてなダイアリー使用時に作成したカテゴリの整理中。 特にZaurus関連の記事で作成したサブカテゴリが沢山あるので、これをZaurusカテゴリのみに一本化。その他もできるだけ単純化してカテゴリ数を減らす予定。 それにしてもZaurus関…

移行完了

はてなダイアリーからの移行が完了しました。 今後はこちらで更新していく予定となります。