タグ

2012年9月19日のブックマーク (14件)

  • デリゲート

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

    デリゲート
    quodius
    quodius 2012/09/19
  • JavaとC#のコレクションクラスの対応表|情報科学を学ぶ大学生のブログ

    JavaとC#のコレクション(Collections)クラスの対応関係を表にしてみました。 Javaのコレクションクラスには初期のものとバージョン1.2で導入されたものがありますが、ここでは後者のみを扱うこととしました。 C#のコレクションクラスにも初期のものとC#2.0で導入されたジェネリック対応のものがありますが、ここでは両方を扱うことにしました。

    quodius
    quodius 2012/09/19
  • JavaプログラマーがC#でプログラムを書いて引っかかったところ その1 - 地平線に行く

    案件が変わり、仕事で使う言語がJavaからC#に変わりました。 その際に、C#でプログラムを書いていて引っかかったところをメモしておきます。 とりあえず、連想配列(Dictionary)を使ったときのことをメモ。 書き方の違い C#は、連想配列用に言語仕様が用意されています(インデクサ―)。 /* -- Java -- */ String str = map.get("abc"); /* -- C# -- */ string str = dictionary["abc"]; 最初に書いた際、このことを忘れて取得メソッドを探してしまいました・・・*1。 挙動の違い 要素を登録する際に、すでに同じキーを持つ要素が登録されていた場合、 Javaは、新しい要素を登録する。このとき、すでにある要素を戻り値として返す。 C#は、新しい要素を登録する。このとき、すでにある要素を戻り値として返さない。 た

    JavaプログラマーがC#でプログラムを書いて引っかかったところ その1 - 地平線に行く
    quodius
    quodius 2012/09/19
  • C++/C#/JAVA コレクション比較 【ハッシュテーブルの比較概要】 - ファラオ ブログ

    C++/C#/JAVAのハッシュテーブル stdext::hash_map [VC++2003] System.Collections.Generic.Dictionary(K,V) [C#2008 Express Edition] java.util.HashMap<K,V> [J2SE 1.6.0_03] の比較。(自分の知識を整理するためのメモです。) 各ハッシュテーブルの具体的使い方はそれぞれまとめるとして、ここでは大雑把な比較をまとめてみた。 [キー値の比較・キー値のハッシュ値の取得] ハッシュテーブルオブジェクトを構築する前に、キー値の同値性チェックまたは大小チェック、およびキー値のハッシュ値を取得する手段を構築しなければならない。 C++のhash_mapの場合。 stdext::hash_compareクラスを拡張(そのためにstd::lessクラスも拡張)することによる。

    C++/C#/JAVA コレクション比較 【ハッシュテーブルの比較概要】 - ファラオ ブログ
    quodius
    quodius 2012/09/19
  • C#とJava のコーディングの違い - J Wave TOP

    C# <-> Java の相互間での違いを扱います。 Java から C#、C# から Java に移行する人の役に立てば幸いです。 目次 †

    quodius
    quodius 2012/09/19
  • Array.prototype.map() - JavaScript | MDN

    標準組み込みオブジェクトArrayコンストラクターArray() コンストラクター静的メソッドArray.from()Array.fromAsync()Array.isArray()Array.of()静的プロパティArray[@@species]インスタンスメソッドArray.prototype.at()Array.prototype.concat()Array.prototype.copyWithin()Array.prototype.entries()Array.prototype.every()Array.prototype.fill()Array.prototype.filter()Array.prototype.find()Array.prototype.findIndex()Array.prototype.findLast()Array.prototype.findLastI

    Array.prototype.map() - JavaScript | MDN
    quodius
    quodius 2012/09/19
  • Array.prototype.forEach() - JavaScript | MDN

    標準組み込みオブジェクトArrayコンストラクターArray() コンストラクター静的メソッドArray.from()Array.fromAsync()Array.isArray()Array.of()静的プロパティArray[@@species]インスタンスメソッドArray.prototype.at()Array.prototype.concat()Array.prototype.copyWithin()Array.prototype.entries()Array.prototype.every()Array.prototype.fill()Array.prototype.filter()Array.prototype.find()Array.prototype.findIndex()Array.prototype.findLast()Array.prototype.findLastI

    Array.prototype.forEach() - JavaScript | MDN
    quodius
    quodius 2012/09/19
  • Array.prototype.filter() - JavaScript | MDN

    標準組み込みオブジェクトArrayコンストラクターArray() コンストラクター静的メソッドArray.from()Array.fromAsync()Array.isArray()Array.of()静的プロパティArray[@@species]インスタンスメソッドArray.prototype.at()Array.prototype.concat()Array.prototype.copyWithin()Array.prototype.entries()Array.prototype.every()Array.prototype.fill()Array.prototype.filter()Array.prototype.find()Array.prototype.findIndex()Array.prototype.findLast()Array.prototype.findLastI

    Array.prototype.filter() - JavaScript | MDN
    quodius
    quodius 2012/09/19
  • C#でmap、filter、reduce - normalian blog

    Googleを支える技術」で?一躍有名になった感がするmap、filter、reduceですが、LINQ(C#)で対応させると以下になるんでしょか? 一般? LINQ(C#) map Select filter Where reduce Aggregate せっかくneueccさんがAggregateの良いサンプルを書いてくださったので、Aggregateの復習も兼ねてさらっと。 class Program { public static void Main(string[] args) { Console.WriteLine(Enumerable.Range(1, 10) .Select(num => num * num) .Where(num => num % 2 == 0) .Aggregate((sum, num) => sum + num)); //220 Console.Re

    C#でmap、filter、reduce - normalian blog
    quodius
    quodius 2012/09/19
  • [JavaScript] 猿でもわかるクロージャ超入門 3 無名関数 - DQN起業日記

    Javascriptでは、関数を定義するのに2通りのやり方があります。(注1) 関数を定義する方法その1 (普通のやり方) <script> function speak(){ alert("hello"); } speak(); // "hello"と出力 </script> はい、普通ですね。 次はJS特有のやり方です。 関数を定義する方法その2 (無名関数を使う) <script> var speak = function (){ alert("hello"); } speak(); // "hello"と出力 </script> 2行目に注目。 この式の右辺、function( ){...}の部分を無名関数といいます。 右辺で無名関数を生成して、それを変数speakに代入しています。 こうすると、変数speakはまるで関数のような振る舞いをします。(というか関数になります) spe

    [JavaScript] 猿でもわかるクロージャ超入門 3 無名関数 - DQN起業日記
    quodius
    quodius 2012/09/19
  • 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
    quodius
    quodius 2012/09/19
  • C# 3.0 における疑似 Map 生成リテラル - NyaRuRuが地球にいたころ

    ひがさんの「流れるようなインターフェースMap版」 Javaにおける疑似Map生成リテラル({ key => value }ばりに簡単にMapを生成する方法) - 矢野勉のはてな日記 に触発されてコードを書いてみました。 というかJavaコードを移植した程度なんですけどね…。 もとのコードはこちら Java Map literals, continued - Nicolas Lehuen’s Weblog 最近はListやMapの使い勝手が良く使用頻度も激増な私ですが、配列のように生成子での初期化が手軽に出来ないのが悩みです。 上記リンクのように「手軽に生成したい」と考える人は多そうなので.NET版に移植してみました。 を読んで mayuki さんが先日書いていた『Perl とかみたいな書式で Dictionary を初期化したい。 』を思い出す. 以下 mayuki さんバージョンを微妙

    C# 3.0 における疑似 Map 生成リテラル - NyaRuRuが地球にいたころ
    quodius
    quodius 2012/09/19
  • Linq入門記-14 (LINQ To Object, 変換演算子, ToDictionary) - いろいろ備忘録日記

    前回に引き続き、変換演算子についてです。 今回は、ToDictionaryメソッドです。 ToDictionaryメソッドは、文字通り結果をDictionaryに変換してくれます。 個人的には、よく利用するメソッドです。 前回までのToArrayやToListと違い、ToDictionaryは引数を与える必要があります。 よく利用するのは、以下の書式です。 public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>( this IEnumerable<TSource> source, Func<TSource, TKey> keySelector ) keySelectorにて、どの値をキーとするのかを指定します。 上記の呼び出しの場合、Dictionaryの値には、対象オブジェクト自身(TSource)が設定され

    Linq入門記-14 (LINQ To Object, 変換演算子, ToDictionary) - いろいろ備忘録日記
    quodius
    quodius 2012/09/19
  • C# で map とか reduce みたいな楽しいリスト操作をしたい

    プログラミング言語がロジックを組むのに向いているかいないかを判断するときの基準に、私はよく「文字列の操作が優れているか否か」「配列・辞書・集合の操作が優れているか否か」を評価点に挙げます。文字列や配列、辞書、集合の操作はほとんどすべてのアプリケーションで必要になり、それらの生産性が高く高速に処理してくれる言語ほど簡単で高速なロジックが組めると思うからです。 そういう意味でObjective-Cを考えると、文字列の操作はまぁまぁ良い(特にUnicode周りがなかなか優れている、正規化もできるし)のですが、配列・辞書・集合の操作がイマイチで、作るの面倒なら操作するのも面倒。さらには良く欲しくなる以下の操作が欠けています。map - 条件式を渡して、もとの集合の各要素に条件式を通した結果を新たな集合として返す。 reduce - 条件式を渡して、要素を前から順番に計算して畳み込み、集合から一つの

    quodius
    quodius 2012/09/19