2013-05-01 Java 8を関数型っぽく使うためのおまじないをC#でやってみた C# Java 8を関数型っぽく使うためのおまじない - きしだのはてな Java は大変ですね。 C# さんは、ラムダ式も Func 型(Java の Function 型に大体対応)も Visual Studio 2008 時代(5年前)... 続きを読む
今回は定義済みデリゲートのお話です。 定義済みデリゲートとは、クラスライブラリで定義されているラムダ式を格納出来る型のことです。 前回までのサンプルコードでは、Actionデリゲート型のみを使用しましたが、 .NET FrameworkにはAction以外にもラムダ式に... 続きを読む
.NET, C#注意)あまり真面目に測ってません参考情報 当然っちゃ当然だけどDataTableとか使いようによっては遅い当然っちゃ当然だけどDataTableとか使いようによっては遅い その2今日も色々DataTableからデータを抽出(検索)する方法を比べてみました。前回よ... 続きを読む
行のフィルタ処理、列内の値の計算、または集約列の作成に使用する式を取得または設定します。 名前空間: System.Data アセンブリ: System.Data (system.data.dll 内) 続きを読む
本稿では、ある文字列内から特定のパターンにマッチする部分文字列を抜き出す処理について、正規表現を使った場合の基本的な手順をまとめる。 ここでは例として、HTMLから、 <a href="URL" ……>テキスト</a> のような形式のアンカー要素に対して、URL部分とテ... 続きを読む
.NET Framework 2.0のジェネリックや.NET Framework 3.5でのラムダ式などの導入により、C#やVBでデリゲートの仕組みを使用する機会が増えている。これに伴い、.NET Frameworkのクラス・ライブラリには、汎用的に使用できるデリゲート型の定義が多く追加されてい... 続きを読む
コントロールは [Tab] キーによって、フォーカスを移動することができます。その移動順は、各コントロールの TabIndex プロパティによって定義されています。 TabIndex プロパティはコードからでも動的に変更できますが、混乱を招きますので避けましょう。基本... 続きを読む
Ctrl + M, Oソース ファイル内の型やメンバの概要を確認できるように、既存の領域を折りたたみます。 続きを読む
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 注: 数学的な意味での集合は要素の重複を認めません。 セット演算子の結果は重複が除かれたものになります。 変換演算子 型の変換... 続きを読む
「バグが半減する」と言われているコーディング技法、それがTDD(テスト駆動開発)です。この記事ではC#でTDDを行う方法を紹介するとともに、事前設計の重要性も説明します。 はじめに 各地でTDD Boot Camp(TDDBC)が開催されるようになり、このところTDD(テ... 続きを読む
ラムダ式の解説も終わりに近づいてきました。 今日はラムダ式に使える、汎用デリゲート型の一覧です。 ラムダ式の書き方のバリエーションと簡単な使い方をまとめました。 以下のコードを御覧ください。 class Program { static void Main(string[] args) { // F... 続きを読む
概要 オブジェクト指向言語ではクラスを定義することで自分の思い通りの「型」を作ることが出来ます。 このような自作の型は、int や double などの組込み型と区別するため、 ユーザー定義型と呼ばれています。 ユーザー定義型の理想は、組込み型とまったく同じ... 続きを読む
.NETアプリケーションのアーキテクチャやフレームワーク、設計に役立つ情報を中心に紹介しています。また業務システムに役立ちそうなユーティリティやノウハウをサンプルコードつきで公開しています。言語はC#とVB.NETを扱っています。 Try~Catchを使うことで... 続きを読む
C#一応、最後に古き良き?やり方。forループですね。 var array = new[] { "1", "one", "2", "two" }; var dict = new Dictionarystring, string>(); for (int i = 0; i 2) { dict[array[i]] = array[i + 1]; } への変換 その4" href="http://b.hatena.ne.jp/e... 続きを読む
1.データベース連携概要 2. データベースに接続する 3. データ利用 4. データ活用 補足 トップへ 続きを読む
July 30, 201000:36 カテゴリIT関連 制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、あるいは外部キーですが、この制約の違反が 1 つ以上の行で発生しています。 MSの翻訳をやっている人は日本語を理解できているのであろうか? ... 続きを読む
Ape's Miscellaneous notes. VBをメインにプログラムの作り方や使い方をのんびりと語ってみたり。 データベースの設計を完了させてからプログラムの設計へ進みなさい、とはよく言われることではあるんですが。 実際には、ユーザー要望の変更や追加・削除、連携... 続きを読む
データベースからDataSetとやらを作ってDataGridViewに一覧表示みたいな事やろうとした場合、サーバーエクスプローラでデータベースに接続プロジェクトから新規作成でDataSetを作成サーバーエクスプローラのテーブル(ビュー)をDataSetのエディタにD&Dデータソー... 続きを読む
概要 Ver. 3.0 C# 3.0(そして、同時に発表された VB 9.0)の目玉となる新機能は、 Language Integrated Query、略して LINQ と呼ばれるもので、 リレーショナルデータベースや XML に対する操作をプログラミング言語に統合するものです。 LINQ を用いることで... 続きを読む
拡張メソッドを使用すると、新規の派生型の作成、再コンパイル、または元の型の変更を行うことなく既存の型にメソッドを "追加" できます。拡張メソッドは特別な種類の静的メソッドですが、拡張された型のインスタンス メソッドのように呼び出します。C# および... 続きを読む
列挙型の列挙子を列挙したいというのは割とよくある話で、列挙子の名前と値を辞書として取り出すメソッド(関数)を作っておくと便利です。 at C# 現行最新版の C# 3.0 で。型パラメータに列挙型(enum)とその基になる型(underlying type)を指定して IDictio... 続きを読む
Enum と拡張メソッドって相性がいいですね。MSDN ライブラリでも取り上げられてますけど。enum MyEnum { A, B } と定義した enum を文字列化するときに日本語にしたいことがよくあって、static な関数を書いてたけど、拡張メソッドでちょっとだけきれいになりま... 続きを読む
public enum TimeCycle { [LabeledEnum("日次")] Daily, [LabeledEnum("週次")] Weekly, [LabeledEnum("月次")] Montly, [LabeledEnum("年次")] Yearly } /// <summary> /// 列挙型のフィールドにラベル文字列を付加するカスタム属性です。 /// </summary> [Att... 続きを読む
乱数(ランダムな数値)を生成するにはRandomクラス(System名前空間)を使用する。具体的には、まずRandomクラスのインスタンスを作成し、Nextメソッドを呼び出せばよい。例えば次のコードでは、0から99までの間のランダムな整数を1つ得ることができる。 Rando... 続きを読む
C# の string は System.String のエイリアスです。文字列は「”」で囲みますが、ファイルへのパスや SQL など複数行の文字列を扱いたい場合に、「@(アットマーク)」を利用すると便利です。 そのメモ。 * とりあえず、C# で普通に文字を書くには、次の様に書き... 続きを読む
C#2.0の勉強も残すところ、「パーシャルクラス」「静的クラス」「名前空間エイリアス修飾子」の3つになりました。 今日は、パーシャルクラスについてメモします。最初「パーシャルクラスを使うことはないかな」と思って、スルーしようと思いましたが、調べてみ... 続きを読む
C# | 01:09 | 案件が変わり、仕事で使う言語がJavaからC#に変わりました。その際に、C#でプログラムを書いていて引っかかったところをメモしておきます。 とりあえず、連想配列(Dictionary)を使ったときのことをメモ。 書き方の違いC#は、連想配列用に言語仕様... 続きを読む
「TIPS:ハッシュテーブル(Dictionaryクラス)を値でソートするには?」で示しているサンプル・プログラムのように、ジェネリック・クラスを使ったコーディングは、各行が長く複雑になりがちだ。 例えば、型パラメータに文字列型と整数型を指定するKeyValuePai... 続きを読む
ウィザードベースで作れるASP.NET アプリケーションの限界(2階層型自動データバインドの限界)については、参考書(1)がわかりやすい。これによると、次のような場合にウィザードベースだと対応できない。 パラメータ化できない可変値を持つクエリ TOP句は... 続きを読む
JavaとC#のコレクション(Collections)クラスの対応関係を表にしてみました。 Javaのコレクションクラスには初期のものとバージョン1.2で導入されたものがありますが、ここでは後者のみを扱うこととしました。 C#のコレクションクラスにも初期のものとC#2.0で導... 続きを読む
原文(投稿日:2011/11/03)へのリンク MonoDevelopチームは.NETとMono開発向けのオープンソースIDEであるMonoDevelopのバージョン2.8を発表した。InfoQはこのプロジェクトのマネージャであるLluis Sanchez氏に今回のリリースやMacやWindowsでMonoDevelopの人気が... 続きを読む
せっかく覚えたのでメモっておきます。 ・COMの追加 ソリューエクスプローラ→参照の追加→COM→Microsoft Excel xx.x Object Library→OK ・using using Excel = Microsoft.Office.Interop.Excel; エイリアスを使っておくと楽かも。 ・必要な宣言と初期化 1.Ex... 続きを読む
今回は、前回(id:fits:20111016)と同様の非同期ダウンロード処理を Java と C# で実装し、Groovy と Scala は別の実装方法を模索してみました。使用した機能は以下の通りです。Groovy : Actor (GPars)Scala : 限定継続 + opsJava : Concurrency UtilitiesC# :... 続きを読む
■0. まえがき 本稿では、「Razor構文(C#)」についての基礎文法を簡潔にまとめる。「Razor構文、どう書くんだっけ?」という場合のリファレンスとして活用していただけるとうれしい(なお、本稿はエッセンスしか解説しておらず、すべてを学べるわけではないの... 続きを読む
C#の父が仕掛ける次世代プログラミング、コンパイラ内部をAPIで公開する「Roslyn」プロジェクト 自動コード生成などを容易に 2011年10月21日 RSS Twitter はてな Roslynプロジェクトの概念 [画像のクリックで拡大表示] 米Microsoft社は、.NETコンパイラの... 続きを読む
配列をコピーする1つの方法にSystem.ArrayクラスのCopyToメソッドを使う方法があります。 aryAからaryBへは配列の値をコピーしているため、コピー後にaryAの値を変えてもaryBの値は変化しません。 aryCはaryAの先頭要素への参照を保持するため、代入後にaryAの... 続きを読む
public class BaseC { public int x; public void Invoke() { } } public class DerivedC : BaseC { new public void Invoke() { } } この例では、BaseC.Invoke は DerivedC.Invoke で隠ぺいされます。x フィールドは、似た名前によって隠ぺいされないため、影... 続きを読む
public static ComplexNumber operator+(ComplexNumber a, ComplexNumber b) すべての演算子のオーバーロードはクラスの静的なメソッドです。また、等値演算子 (==) をオーバーロードする場合は、非等値演算子 (!=) もオーバーロードする必要があります。< と >... 続きを読む
このセクションのトピックでは、C# 言語および .NET Framework の概要について説明します。 続きを読む
[編集] 言語 [編集] オブジェクトの扱い いずれの言語もオブジェクト指向言語であり、その文法はC++に類似しているが、C++との互換性はない。メモリ再利用の手段として、従来の手動で解放する方法ではなくガベージコレクションを使用する。また、スレッド同期の... 続きを読む
概要 C# では params キーワードを用いることでメソッドの引数の数を可変にすることが出来ます。 params キーワード 例えば、可変個の整数のうち最大の整数を求めるメソッドを作りたいとします。 可変長引数を使わずにメソッドを実装すると以下のようになるでし... 続きを読む
こんな風にスコープを抜けたとき(Func()からリターンしたとき)も誰も参照しなくなったことになるのでそのうち破棄されます。 この「そのうち」っていうところに注意してください。決してすぐに破棄されるわけじゃありません。 GCはそれなりに大変な処理なので... 続きを読む
概要 Ver. 4.0 (書きかけ) 予定 .NET Framework 4.0 で Parallel クラス等が追加された Parallel.For(0, N, i => { Console.WriteLine(i); }); LINQ にも AsParallel() ・Map Reduce 型の並列処理 完全に独立した処理の場合、ただコア数分だけスレッド立てて... 続きを読む
チートシートとは、いわゆる「カンペ(=カンニング・ペーパー)」のことだ。 実際のプログラミングでは、各プログラミング言語の基礎文法から、クラス名やメソッド名まで、覚えることがたくさんある。しかし、使用頻度の低いものなどはすぐに忘れてしまう。知... 続きを読む
C#でのテスト(1) テスト用プロジェクト(?) - 予定は未定Blog版に続いて、今回はnantを使ってビルドを自動化する。 その前に、Visual Studio上でNAntの設定ファイルのIntelliSenseを働かせるように設定しておく。NAntをダウンロードして解凍すると、schemeフォ... 続きを読む
C#でのテスト(2) nantによるビルドの自動化 - 予定は未定Blog版に続いて、今回はNMock 2.0の使い方を紹介する。 NMock 2.0は、The original NMock was a .NET port of the Java-based DynaMock, whereas NMock 2.0 is inspired by the newer jMock library.NMoc... 続きを読む
.NET開発者中心 厳選ブログ記事 LINQの仕組み&遅延評価の正しい基礎知識 ―― ブログ「neue cc」より ―― 河合 宜文 2011/08/10 「.NET開発者中心 厳選ブログ記事」シリーズでは、世界中にある膨大なブログ・コンテンツの中から、特にInsider.NET/.NET開発者... 続きを読む
概要 デリゲート(delegate: 代表、委譲、委託)とは、メソッドを参照するための型です。 C言語やC++言語の勉強をしたことがある人には、 「デリゲートとは関数ポインタや関数オブジェクトをオブジェクト指向に適するように拡張したもの」 と言った方が分かりや... 続きを読む
最近、4歳の娘が「フレッシュ!プリキュア!」と叫ぶようになったので、「茶色のハートは源氏パイ!」と教えたりしています。焼きたてフレッシュですね。 C#と.NET FrameworkでiPhoneアプリを作れる「MonoTouch」ですが、ようやく試してみました。ええ、試して... 続きを読む
.NET, Groovy | 08:53 | 元ネタ:GroovyのMarkupBuilderで再起的な構造のXMLを生成する - No Programming, No LifeTogetter - 「GroovyでKey、ValueをXMLにクールに出力する-keyValueXml.groovy-」 Groovy では乗り遅れた/書けない ので C# の勉強も兼ねて書い... 続きを読む
General | @yfakariya いわくえーと、主に Java/.NET 向けということで。レイヤーがまちまちなのはごめんなさい。あと、引っかかるところばかり書いているので、難しいかもしれない。おおむね難易度順。try-catch-finally が try-catch および try-finally につ... 続きを読む
One aspect of Groovy ( and Ruby, Python , etc ) I really like is the combination of closures and support for them in the Groovy DK . As an example, consider iterating through every line in a text file : 続きを読む
GitSharp Teamは2009年10月11日、GitをC#で実装した「GitSharp 0.1.3」をリリースした。GitSharpは.NET frameworkおよびMonoから利用できるGit実装で、Gitと互換性のある軽量ライブラリを目指している。 GitSharpを利用することで、Gitのオブジェクトデータベー... 続きを読む
Chapter1:C# 3.0らしいプログラミングとは? (2009/7/31) 連載『C# 2.0入門』『C# 3.0入門』を整理統合し、加筆、修正して刊行された書籍『[完全版]究極のC#プログラミング』を1章ずつ丸ごと転載 .NET TIPS - .NET開発のテクニックとヒント集 - (2009/7... 続きを読む
Visual Studion 2008 の Express Editionでいろいろと動かしてみました。DBのスキーマはよくある、Department、Employeeで。DepartmentとEmployeeは1対多でEmployeeがDepartmentに対する外部キーを持っています。エンティティのコードはVisualStudioで自動生成... 続きを読む
Sandcastle というのは、ソースコードの構造やコメントを元に、ドキュメント(APIや内部説明書)を自動作成してくれるソフトです。類似のソフトとして、doxygenやNDocがあります。今回は、Sandcastle と 支援ソフトの Sandcastle Help File Builder の使い方につ... 続きを読む
Page_Loadメソッドの追加 ここまでのサンプルではフォームの内容が固定的に記述されていたが、実際のWebアプリケーションでは、リスト・ボックスに表示される項目や、チェック・ボックスのチェック状態などが動的に決められるケースの方が多いはずだ。そこで、... 続きを読む
More Information on installing the .Net Framework click here. Download full Visual Studio C# .NET Example from this Article. Overview Data binding provides a way for developers to create a read/write link between the controls on a form and th... 続きを読む
Current Version: 1.25.9 Download LINQPad (right-click, Save As...) Download LINQPad 1.26 (beta) (right-click, Save As...) Prerequisites License Video Tutorials: O'Reilly Dimecasts The LINQPad Challenge The LINQ Quiz LINQPad Forum Contact More... 続きを読む
そのほかのポイント クエリの書き方以外にもいくつか押さえておく点があります。 ■クエリの戻り値はIEnumerable<T>オブジェクト クエリの戻り値は、クエリの最後がselect句の場合にはIEnumerable<T>インターフェイスを実装したオブジェクトとなります。実際に... 続きを読む
C#やんごとねぇ日記 主に.NETで飯を食っているへっぽこプログラマのチラ裏です。 続きを読む
北海道に住む元アマチュアの自転車ロードレース選手あにすのC#とか.NET関連を中心にした日記らしきもの2009年01月01日 C#|暇だからトランプゲームとか作ってみた(BlogPet) あにすの「C#|暇だからトランプゲームとか作ってみた」のまねしてかいてみるね こんなん... 続きを読む
超初心者対象のC/C++/C#プログラミング教室です。中級者以上の方、セミプロ、プロの方お断り!超初心者対象の、C/C++/C#プログラム教室です。 「Windows95/98/2000/XP使うだけには飽きた」「以前Cをやったことがあるが、ポインターでつまずいた」 「プログラム... 続きを読む
using System; class Welcome { /// <summary> /// saying hello to all visitors and welcome. /// </summary> public static void Main(string[] args) { foreach(string visitor in args) { Console.Write("Hello {0}.\n", visitor); } Console.Write("Welco... 続きを読む
hello.cs using System; class Hello { static void Main() { Console.WriteLine("Hello, World"); } } Hello.java import java.lang.System; public class Hello { public static void main(String [] args) { System.out.println("Hello, World"); } } これを... 続きを読む