Rash Project

しがないSEです。 資格取得したいものの時間が…

Rash Project

しがないSEです。 資格取得したいものの時間が…

マガジン

最近の記事

  • 固定された記事

目次

はじめに C#記述法 IEnumerable ジェネリック コード実例 SQL基礎編 初~中級編

    • death marching now…. 落ち着いたら投稿再開します。

      • 【C#】静的コンストラクタ

        インスタンスを作成するためにコンストラクタが使用されますが、それとは別に「静的コンストラクタ」というものがあることをご存知でしょうか? 静的コンストラクタは定義されたクラスの要素に「初めて」アクセスする際に「一度だけ」自動的に実行されるメソッドになります。 記述は通常のコンストラクタのアクセス修飾子に"static"を追加するだけです。 public class TestClass{ public TestClass() { } static TestClass(

        • 本日お休みです

        • 固定された記事

        マガジン

        • 暇関連
          3本

        記事

          【C#】属性について

          コードを検索している際に以下のような記述を見たことはないでしょうか? [Serializable]public xxx Hoge { get; set; } この [Serializable] の部分が「属性」になります。 属性にはアセンブリ用、クラス用、プロパティ用など様々に種類がありますが、主な用途としては「参照された時に必要な情報を返す」ことになります。 上記 [Serializable] であれば「シリアル化 (文字列やバイナリ列への変換)可能である」ことを示すこ

          【C#】属性について

          【C#】拡張メソッド

          組込み型をはじめ、他人の作った型に「こういうメソッドが定義してあればいいのになぁ」と思ったことはないでしょうか? その要望に(仮想的ですが)応えるのが拡張メソッドです。 例えば、Listへの項目追加を行うAddメソッドは戻り値がvoidですので、追加宣言はそれのみで終了してしまうことになります。 しかし、「Add後のListを返してほしい」パターンもあり得ます。連続追加や他のメソッドの引数表示内でのAddなどの可能性ですね。 本来の表記上は List<int> intLi

          【C#】拡張メソッド

          【C#】お手軽配列作成メソッド【自作メソッド】

          さて、基礎的なことが続いていましたのでこのあたりで少し実践的なものも入れていこうと思います。 私はクラスライブラリのプロジェクトに自作メソッドを詰め込んで取り廻すようにしていますが、初期に作成した「お手軽配列作成メソッド」を紹介します。 通常、配列を宣言する場合、 int[] test1 = new int[] { 1, 2, 3 };var test2 = new int[] { 1, 2, 3 };int[] test3 = {1, 2, 3}; のように記載

          【C#】お手軽配列作成メソッド【自作メソッド】

          【SQL】サブクエリについて

          SQL関連で躓きやすい項目として、「サブクエリ(副問合せ)」が挙げられることがあります。 ただ、イメージとしては以下の図のように元テーブルから小さなテーブルを抽出して処理をするイメージなのであまり苦手意識を待たなくても大丈夫だと思っています。 この様に単純に1つのテーブルからデータを取ってくるというのが一番わかりや宇井イメージです。 実際には別のテーブルの結合(JOIN)や計算などが加わる場合もありますが、イメージはあまり変わりません。 苦手意識の改善に役立てればと思います

          【SQL】サブクエリについて

          【SQL】SQLの種類

          前回はSQLの基本的なコマンドについて掲載しました。 これらはSQLの根幹になる部分でもありデータベースシステム(RDBMS)による差はほとんどない部分でした。 しかし、GROUP BYと同時に使用する集約関数や、INSERTとUPDATEのハイブリッドであるUPSERT/MERGE(対象となる行が存在する場合には上書き、存在しない場合には新規登録するもの)などはRDBMSによって扱いが変わってきます。 有名どころとしては Oracle Database(OracleD

          【SQL】SQLの種類

          【SQL】SQL基本のき

          SELECT対象となる「列」を選択してデータを取得します。 基本は列名指定ですが、列番号でのアクセスも可能です。 また、SQL関数を用いてデータ編集を行うことも可能です。 特殊用法として、"SELECT *"とすると全列のデータを取得可能な他、”SELECT 1”などと定数を指定することも可能です。 原則、データ取得元はFROM句を用いて指定します。INSERT WHERE対象となる「行」を指定します。 WHERE句に続けて条件式を設定することで行を絞り込みます。 絞り込ん

          【SQL】SQL基本のき

          【C#】型宣言における"var"宣言について

          C#言語はタイプセーフであり、あらゆるデータに「型」が存在し、コンパイル時や実行時にそれがチェックされています。 そのため通常は以下のように変数宣言時に型も併せて宣言することになります。 int i = 5;double d = 2.5;string str = "Hello world!"; このように単純な型であれば特に入力していても問題ないのですが、長い名称のクラスインスタンスをコンストラクタから作成する場合にはややもっさりすることがあります。 ThisIsTes

          【C#】型宣言における"var"宣言について

          【C#】ジェネリックのPitfall/小技

          Pitfallジェネリックの基本については前回までに述べた通りですが、静的メンバーとの兼ね合いでpitfallにはまったことがあります。 例を示します。 Class TestClass<GenericType>{  public static GenericType Prop { get; set; }}TestClass<int>.Prop = 1; というコードがあった場合、TestClass<string>.Propを取得しようとした場合の結果はどうなるでしょうか?

          【C#】ジェネリックのPitfall/小技

          【C#】ジェネリックとは その2

          ジェネリックの「仮の型」に一切制限を加えないとなると、基本的にはobject型で使用可能なメソッド以外は使用できないことになってしまいます。 (なお、実際にはclassだけでなく構造体も使用可能なので、構造体にないメソッドも使えなくなります。) しかし、実際にコードを書く際には先の例のように演算をしたりなどの処理をしたいことがほとんどです。そうでなければobject型で受けてしまえば済むことですからね。 そこで、「仮の型」に制限を加えることで、その制限を満たす型が確実に持つメ

          【C#】ジェネリックとは その2

          【C#】ジェネリックとは その1

          コードを書いていると、「あぁ、これは他のもにも使いまわせそうなのになぁ…」と思うことがあります。 ただ、C#はタイプセーフ言語であり、基本的には「型ごとに」コードを書く必要があります。 例: int Add(int a, int b){  return a + b;} long Add(long a, long b){  return a + b;} 上の2件の場合、intの方だけではlongを引数に入れることができませんし、longの方は暗黙的キャストでintを引数

          【C#】ジェネリックとは その1

          【C#】IEnumerableについて

          度々躓きの原因になっている印象のある"IEnumerable"についてまとめたいと思います。 IEnumerableとは?ものすごく簡単に言うと、「配列やCollectionなど、『複数のものを内包するインスタンス』に共通の動作を付与するためのインターフェース」です。 インターフェースとは? 別の記事手取り扱う予定ですので、現時点では「具体的な中身がわからなくても、特定のメソッドは持っていることを確約する仕組み」と思って下さい。 大まかな使い方について上記の通り、『複

          【C#】IEnumerableについて

          はじめに

          当Noteについて当NoteはしがないSEによる備忘録、および新人教育用(注:下地としてある程度コードが書けることを前提としています)の資料をまとめていくことを目的としています。 守秘が必要なものは当然除外しますが、他の方の参考になれば幸いと思い公開することにしました。 取り扱う項目について主にはC#、SQL系統がほとんどですが、一部PythonやVBA、Excel関数、JSONなど、備忘録として扱うことがあります ご意見・ご感想などについてコメント欄は現時点では開放予定