タグ

ブックマーク / ufcpp.net (7)

  • 標準クエリ演算子(その他)(C# によるプログラミング入門)

    Show(a.Distinct()); Show(a.Union(b)); Show(a.Intersect(b)); Show(a.Except(b)); 0 1 2 3 4 0 1 2 3 4 6 8 10 12 0 2 4 1 3 注: 数学的な意味での集合は要素の重複を認めません。 セット演算子の結果は重複が除かれたものになります。 変換演算子 型の変換のための演算子がいくつかあります。 シーケンス → シーケンス まず、AsEnumerable、ToArray、ToList は、 シーケンスをそれぞれ、 IEnumeragle<T>、配列、List<T> に変換します。 var a = new[] { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4 }; IEnumerable<int> a1 = a.Distinct().AsEnumerable(); int[] a

    標準クエリ演算子(その他)(C# によるプログラミング入門)
  • 演算子のオーバーロード

    概要 オブジェクト指向言語ではクラスを定義することで自分の思い通りの「型」を作ることが出来ます。 このような自作の型は、int や double などの組込み型と区別するため、 ユーザー定義型と呼ばれています。 ユーザー定義型の理想は、組込み型とまったく同じように扱えることです。 ユーザー定義型をあたかも組込み型であるかのように扱えるようにするため、 C#には演算子のオーバーロードというものが用意されています。 C#の組込み型には + や - などの演算子が用意されていますが、 演算子のオーバーロードを行うことで、 ユーザー定義型にも自分で演算子を定義することが出来、 組込み型と同じように扱うことができます。 このように、演算子のオーバーロードによってユーザ定義型に追加された演算子のことをユーザ定義演算子と呼びます。 ポイント 組み込み型(int や string など)とユーザー定義型(

    演算子のオーバーロード
  • C# によるプログラミング入門 [データ処理] LINQ

    概要 Ver. 3.0 C# 3.0(そして、同時に発表された VB 9.0)の目玉となる新機能は、 Language Integrated Query、略して LINQ と呼ばれるもので、 リレーショナルデータベースや XML に対する操作をプログラミング言語に統合するものです。 LINQ を用いることで、様々なタイプのデータソースに対する検索や操作を、 共通の構文で行うことができます。 IEnumeable を実装するコレクションクラスに対するもの(LINQ to Object)や、 XML に対するもの(LINQ to XML)、 それに、リレーショナルデータベースサーバに対する SQL クエリを生成するもの(LINQ to SQL)などがあります。 LINQ には以下のような利点があります。 オブジェクト指向言語らしい書き方でデータベースへの問い合わせができます。 in-memor

    C# によるプログラミング入門 [データ処理] LINQ
    fumokmm
    fumokmm 2011/11/27
    リンクリンク!
  • 可変長引数

    概要 C# では params キーワードを用いることでメソッドの引数の数を可変にすることが出来ます。 ポイント 定義側の例:int Sum(params int[] args) { ... } 利用側の例:Sum(1, 2, 3, 4, 5);… これで、Sum(new int[] { 1, 2, 3, 4, 5 });と同じ意味。 params キーワード 例えば、可変個の整数のうち最大の整数を求めるメソッドを作りたいとします。 可変長引数を使わずにメソッドを実装すると以下のようになるでしょう。 using System; class ParamsTest { static void Main() { int a = 314, b = 159, c = 265, d = 358, e = 979; // ↑こいつらの最大値を探したいとき、 int[] tmp = new int[]{a

    可変長引数
    fumokmm
    fumokmm 2011/09/02
    C#で可変長引数はparamsを使う。
  • 並列処理ライブラリ

    概要 Ver. 4.0 マルチコア CPU の普及に伴って、並列処理の重要性が増しています。 この時代背景に合わせるかのように、.NET Framework 4で並列処理用のライブラリが追加されました。 Parallel クラス まずは、制御フロー(「制御フロー」参照)の並列化です。 Parallel クラス(System.Threading.Tasks 名前空間)を使うことで、 通常の for 文や foreach 文に非常に似た書き方で並列処理を行えます。 Parallel クラスは Invoke、For、ForEach の3つの静的メソッドを持っています。 Parallel クラスを使った制御フローの並列化 メソッド 逐次処理版 並列処理版

    並列処理ライブラリ
    fumokmm
    fumokmm 2011/08/23
    並列処理までできたとは、C#意外とやるなぁ。
  • デリゲート

    概要 デリゲート(delegate: 代表、委譲、委託)とは、メソッドを参照するための型です。 C言語やC++言語の勉強をしたことがある人には、 「デリゲートとは関数ポインターや関数オブジェクトをオブジェクト指向に適するように拡張したもの」 と言った方が分かりやすいかもしれません。 デリゲートは用途も関数ポインターとほとんど同じで、 述語やイベントハンドラ(「イベント」で説明)等に利用します。 ただし、C言語の関数ポインターと違い、 インスタンスメソッドを参照したり、 複数のメソッドを同時に参照する事が出来ます。 delegate(委譲)という言葉のニュアンスとしては、 「他のメソッドに処理を丸投げするためのオブジェクト」というような意味です。 イベントが起きたときのイベントハンドリングをどのメソッドに丸投げ(委託)するかを指示するためなどに使われます。 ポイント C# では、メソッドも他

    デリゲート
    fumokmm
    fumokmm 2011/08/16
    デリゲート型の変数には、 デリゲートの定義時に指定した物と同じ戻り値と引数リストを持つメソッドを代入する事が出来ます。
  • ++C++; //未確認飛行 C++

    using static System.Console; class Welcome { /// <summary> /// saying hello to all visitors and welcome. /// </summary> /// <param name="args">visitors</param> public static void Main(string[] args) { foreach(string visitor in args) { WriteLine($"Hello {visitor}."); } WriteLine("Welcome to my web page."); } } C# によるプログラミング入門 コンピュータの基礎知識 アルゴリズムとデータ構造 ブログ ようこそ ++C++; へ。 C#・情報工学を中心に勉強用ページとブログを載せています。

    ++C++; //未確認飛行 C++
    fumokmm
    fumokmm 2007/08/15
    岩永さんのサイト。
  • 1