「.NET Framework」を含む日記 RSS

はてなキーワード: .NET Frameworkとは

2014-06-09

E0434F4D は、モジュールが狂ったばかりでなくプログラムエラーでも。

スケジュールタスクに登録させて実行したら、実行結果に (0xE0434F4D)と表示された。

原因ぐぐったら、kernel32.dllおかしくなっているとか、.NET Frameworkモジュールの問題だとか出てきた。

ファイルサーバ共有フォルダ内のファイル一覧を得るところで、指定した検索フォルダ名(フォルダパス)を間違えていたことが判明。修正したらすんなり動いた。

(System.IO.Directory.GetFiles() という処理)

要するに、OSおかしくなっているとか、DLL .NET Framework が不足している・おかしいではなくて、単にメソッドで失敗して例外が発生している場合にもこのエラーコードになるということだ。

2014-02-19

ユーザーコントロール一般的クラス継承したら

継承したクラスコンストラクタで、自分自身の InitializeComponent() を呼び出しましょう。

基底クラスイベントを捕捉する場合には必須

.NET Framework にて。

2013-05-14

プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、女はどう答えたらいいの?

あ、まず前提として、

貴女プログラミング大好き男を夢中にさせることが、

はたして貴女幸福にするかどうか、それはまた別問題だけれど。

はいえ、プログラミング大好き男たちは玉石混交ながら、

IT系の超かしこい男なども多く、

多くっつーかIT系でないのにプログラミング大好き男っていうのは超かしこ学生まぁこれは有望株)か研究者系なんか、

あとはまったくかしこくもないクセに頭いいつもりして「Lispやってます(キリッ ハローワールドくらいですが」とか言っちゃうアホしかいないわけで、

したがって、釣り師たる女たちにとっては、

なかなかあなどれない釣り場です。

では、プログラミング大好き男に「どの言語が好き?」と訊ねられたとき

貴女は、どう答えれば理想的でしょう?

まず最初に、その男COBOLのようなタイプレガシーコード

あとはC/C++、そして(TechEdに参加するほどではないけれど)VisualBasicが大好きな、

そんなタイプ場合は、

貴女はかれの目を見て、微笑みとともに質問など無視して、こう言いましょう、

「わたしが、仕様書を作ってあげる♪」

これこそまさに必殺の答えです。

そこでプログラミング大好き男が、えへへ、とやにさがったならば、

貴女は、ひそかに、「コピペ量産しやすい技術的ポイントを抑えた仕様書」あたりを

ひそかに練習しておきましょう。これで成功まちがいなしです。

しかし、ここでは、もう少しハイブロウな(?)いわゆるプログラミング好きの男の

落とし方をお伝えしましょう。

この場合貴女は、こう答えましょう、

「わたしは、JVM上のScalaが好き。

型推論もあるしラムダ式クロージャスクリプト言語みたいに書けるの、豊富組み込みのコレクションメソッドはいつも便利だし、

XMLリテラルCaseクラスによるパターンマッチもTraitベースMixi-inも、大好き♪」

もしも貴女がそう答えたならば、

その瞬間、プログラミング大好き男の目はきらりと輝き、

かれの貴女への恋心は、

20%増量になるでしょう。

なぜって、Scalaは、

ちょっぴりお洒落Ruby風味に記述できて、

Maybeモナド差し込んで、

コンパイルは遅いながらも、そこがまた

ちょっぴりメモリを多く積めばいい富豪プログラミングみたいなふんいきをかもしだしていて。

しか関数型言語としての不変変数・不変Listを実装して

質高くふるまっていて、なおかつ、

JVM上で動くくせにJavaが「やるやる」と言ったまま実装してなかったラムダ式と仮想拡張メソッド型推論を実装した功績もあって。

したがってScalaこそは、

本来なんの接点もないまったく縁もゆかりもない別々の世界に生きている、

インタプリタ言語大好きな綺麗系OLと、玉もあれば石も混じっている、そんなプログラミング大好き男たちが、

この世界で唯一(いいえ、JVM系列のJRubyClojure と並んで唯三)遭遇しうる場所です。


では、参考までに、危険な回答を挙げておきましょう。

プログラミング大好き男に「どの言語が好き?」と訊ねられたとき

貴女がこう答えたとしましょう、

MicrosoftVisual Basic for Applicationが好き♪ 週3回は Excelコーディングするの。」

その瞬間、プログラミング大好き男の貴女への恋心は消えます、

なるほどMicrosoftは、世界最大のOS供給メーカー

特にOfficeは平凡ながら、ま、無難にまとめてあるものの、

しかし、「新UIのリボンUI!」「メトロUI対応!」とかなんとか無意味な自慢を吹聴し、

VBAはさらプログラミングについての謬見を撒き散らした罪がありますからプログラミング大好き男にとっては天敵なんです。

ティーガー戦車乗りのオットー・カリウスは「ティーガー乗りなら誰でも片側の履帯がはずれ僚車に牽引されて帰ってきた経験を持つはずだ」 って言ったけど

社内SESIerなら誰でもクソみたいな前任者が書いたクソみたいなExcel-VBAコードを直した経験があるはずなんです。

また、もしも貴女が「PHPが大好き♪ あたしが書いたPHPのWebサイトが、さくらサーバに7件あるよ♪」

と答えたとしても、同様の効果をもたらすでしょう、

なぜって、PHPは、1990年代にはWeb系を目指す人にとっては簡単で要件を満たすWebサイトが簡単に作れる輝きの道だったものの、

しかし2000年代うそうからセキュリティ関係の問題で転落し、

いまや、あの貧弱な言語能力では、Rubyの魅力に遥かに及びません。

(注1)

またもしもたとえあなたプログラミング言語が大好きで、

「わたし、.NET FrameworkのC#が好き、フォームアプリでも書くけど、

最高に好きなのはASP.net♪ SQLServer連携も、ajax control toolkitもすっごくおいしいの。」

と、答えたとしたらどうでしょう

なるほど、貴女の趣味は高く、

しか.NET Frameworkは、C# が cool であるのみならず、

.NET Framework上で動く F# や IronPythonIronRubyマネーJScriptも最高においしいんですけれど、

しかし、貴女の答えを聞いて、プログラミング大好き男はきっとおもうでしょう、

(なんだよ、MS信者な女だな、カネかかりそう)って。

(注2)

貴女が、プログラミングが大好きで、言語の名を挙げるにしても、

たとえば、JavaScript(node.js)ならば安心でしょう、

なぜならば、JavaScriptは、かけだしのプログラミング初心者にもマニアにもともに愛されるめずらしい言語で、

貴女がその名前を挙げても必ずしも、(jQueryがやっとの初心者と思われることはあっても)あなたプログラミング言語おた宣言をしているとは受け取られないでしょう。

しろへぇ。ちゃんとprototypeは使ってる?」と聞かれたら「当たり前じゃない。むしろnode.jsでいいMVCフレームワークが分からないんだけど…」と話を振ってみましょう。

男は嬉々として、30個くらいのnode.jsフレームワークを教えてくれることでしょう。(まぁどれもどれで帯に短し襷に長しなんですが)

あるいはRighno上で動かしたコードをnodeへ移植する話とか、CoffeeScript、甚だしきはClojureScriptを振ってみてもいいかもしれません。

しかし、たとえば、世界が(つーか竹内先生ポール・グレアムが)誇る超絶関数型言語の名作、Common Lispにせよ、

selfと書きまくることと海外で使われてることに定評のあるPythonにせよ、

バージョンアップごとに言語仕様が変わり、かなり素敵なものではあるもののobsolatedな罠にはまりやすRubyにせよ、

まったく読めない$_だらけで頭悪い仕様リセットしてPerl6にする(そしてまた全く読めない)Perlにせよ、

気さくなクジラ飛行机さんがふるまう素敵においしい日本語プログラミング言語ひまわりなでしこにせよ、

基地外トリッキー言語の代表BrainFxck・Glass・Missa・WhiteSpaceにせよ、

そういう言語名前をいきなり挙げるのは、ちょっぴり微妙。

ましてや貴女が、「Haskellが大好き♪ わたし、プロジェクトオイラーの問題もうほとんどHaskellで、解いちゃった♪」

と答えたならば、どうでしょう

これはかなり博打な答え方で、

なるほど、Haskellは、純粋関数型でありつつも副作用のある操作が行える超絶名言語ゆえ、

あなたがそう答えた瞬間、プログラミング大好き男がいきなり超笑顔になって、

へぇ、やっぱりHaskellなら大抵の問題は4行以内くらいで解いちゃった?」とか言いながら

鼻の下がだら~んと伸びちゃう可能性もあるにはありますが、

しかし、逆に、(なんだよ、この女、プログラミングおたくかよ)とおもわれて、どん引きされる可能性もまた大です、

なぜって、必ずしもプログラミング大好き男がプログラミング大好き女を好きになるとは、限らないですから

しかも、この答えには、もうひとつ問題があって、

男たちは、女を導き高みへ引き上げてあげることが大好きゆえ、

もしも貴女が、「Haskellが大好き♪」なんて言ってしまうと、

そこにはもはや、男が貴女圏論モナド教育する余地がまったく残されていません、

したがって貴女のその答えは、

プログラミング大好き男の貴女への夢を潰してしまうことに他なりません。

ま、ざっとそんな感じです、貴女の目にはプログラマーたちはバカでスケベで鈍感に見えるでしょうが

しかし、ああ見せて、プログラマープログラマーで繊細で、おざなりに扱われると傷つきやすく、ローカル変数名前一つにも気を使い、女と自分の将来に夢を持っています、

貴女の答え方ひとつで、プログラマー貴女への夢は大きくふくらみもすれば、

一瞬で、しぼんでしまいもするでしょう。


では、スキットを繰り返しましょう。

「わたしは、JVM上のScalaが好き。

型推論もあるしラムダ式クロージャスクリプト言語みたいに書けるの、豊富組み込みのコレクションメソッドはいつも便利だし、

XMLリテラルCaseクラスによるパターンマッチもTraitベースMixi-inも、大好き♪」

そして、その瞬間、プログラミング大好き男の目がらんらんと輝いたなら、

貴女はこう重ねましょう、

それからね、いま、わたしが使ってみたいWebアーキテクチャは、

Play Framework、素敵なリアルタイム嗜好のアーキテクチャって噂を聞いたから。

あなたのお暇なときがあったら、わたしをPlayへ連れてって♪」

これでもう完璧です。

PlayFrameworkと、Play(遊ぶ・じゃれる)のダブルミーニングでかれの股間も刺激しちゃえます。

そうなったらこっちのもの

デートの日には、ペアプロ用に Happy Hacking Keyboard をばっちり決めて、かわいい下着をつけて(注3)、

github.comの通販で売ってるoctcatのTシャツか、facebookの「いいね!ボタンがムネのところにあるTシャツ、 あるいは初音ミク(ないし彼のお気に入りアニメキャラ。北米ならMyLittlePonyで鉄板なんだけど)のコスプレを着てゆきましょう。

その日からプログラミング大好き男は貴女の虜になるでしょう。

では、釣り師としての貴女の、愛の幸運幸福をお祈りします!

注1:

(と、書いたもののPHPの現状をよく知りません。グローバル変数だらけになるのとか旧ASPみたいなもんなのかなぁ。count($array); とか書くのアホと思うがpythonも同じだった)

(あと、マジで機能とかTwitter連携とか診断メーカー的なのでもPHPで7つも作ってる女子居たら付き合いたい)

注2:

もっとも。objective-Cなんていう言語をやることに比べれば個人で行う程度なら金のかからない手法もなくはないのですが。

注3:

プログラマーにとっての「かわいい下着」と、女性にとっての「かわいい下着」の定義にずれがあるので注意。

半数くらいのプログラマーしましまぱんつが可愛いと思ってる気がするので、妙齢の女性が着用するには抵抗あると思うが、ボーダー柄のコットンショーツ(ただしキャラ絵のは除く)とか、

過度でないていどにフリルがついたものオススメ。また、色は、レッドだとプログラミング大好き男は引いてしまう(だってそれはコンパイルエラーときの色だ)ので、薄ピンクホワイト、薄ブルー、せめて黒(に差し色でピンクとか)あたりに留めたい。

補記:

 元ネタhttp://tabelog.com/tokyo/A1301/A130101/13002457/dtlrvwlst/3464106/

補記2:

  「プログラマー」か「プログラマ」かの問題については、特に意味は無いが前者を採用した。

補記3:

 言うまでも無いけど、ネタです。 

 また、COBOLとVB、C++ではまったくもって難易度が違うことも分かっています。後者になるほど圧倒的に難しい。

2013-02-04

Windows XPWindows 7デュアルブート

はじめに、XPと7のデュアルブートPCの構成にあたって

建前としては2つのOSを併用しての慣れ、移行を意識したものデュアルブートをしてみること自体にDIY的な興味もありました。

対象は、Windows XP Home 32bitがインストールされたデスクトップPCです。

1台目のハードディスクディスク0)はパーティションが2分割されており、CドライブWindowsXPインストールされ、Dドライブはその他のデータ用です。未割当の領域は無いのでパーティション操作ツールを使ってDドライブを縮めて空きを作るつもりです。

そこにもう一つのOS/Windows7 Home Premium 64bit DSP版インストールし、XPとのデュアルブートします。以下、覚書です。

準備

情報収集・手順の確認

まずは、情報収集です。「Windows XP 7 デュアルブート」などで検索しました。

やはり公式ということでMicrosoftウェブサイトの説明をはじめによく確認しました。http://windows.microsoft.com/ja-JP/windows7/Install-more-than-one-operating-system-multiboot

説明としては割とシンプルもので、要はOSは古い順にインストールせよ、新しいOSを空きパーティションインストールせよというだけのものです。

次いで移行wikiやmynavi、DOSVレポート、ITAYA氏のサイト等各所詳しい方々の記事も参考にしました。

http://windows7.wiki.fc2.com/wiki/XP%E3%81%A8%E3%81%AE%E3%83%87%E3%83%A5%E3%82%A2%E3%83%AB%E3%83%96%E3%83%BC%E3%83%88

http://news.mynavi.jp/special/2009/windows7/023.html

http://www.dosv.jp/other/0907/16.htm

http://www.geocities.jp/itaya_ys/TIPS/DualBoot/index.html

基本的に先にXPインストールされていれば、さほど難しいこともなく7もインストールでき、起動時にブートメニューが示され「以前のバージョンwindows」か「windows 7」のどちらを起動するか選べるようになるとのことでした。このときの既定のOSや待ち時間Windows7のシステムプロパティから設定できるようです。

ブートマネージャーコマンドプロンプト編集する方法や、EasyBCD編集する方法も紹介されていました。

必要ドライバソフトウェアの準備

Windows7 64bitに必要ドライバダウンロードしておきます

マザーボードメーカーサイトからチップセットLAN、サウンド、グラフィックの各ドライバダウンロード

グラフィックボードドライバダウンロード

ハードウェアドライバなどをダウンロード

セキュリティソフトダウンロード

EasyBCDダウンロード

Mini Tool Partition Wzard

Easeus to do Backup

バックアップ

インストール先のハードディスクディスク0)を丸ごとイメージバックアップします。

Easeus to do Backup 5.5でディスク0を外付けハードディスクディスクコピー

インストール実施

パーティション操作

Mini Tool Partition Wizard 7.7でDドライブサイズを縮める。

ハードディスク末尾側(?)約60GBを未割当領域に。

特に異常なさそうなことを確認。

Windows 7インストール

はじめXPを起動したままインストールしようとしたが、「このインストールディスクは、お使いのバージョンWindows互換性がありません。詳細については、コンピューターシステム情報を参照してください。Windowsを新しくインストールするには、インストールディスクを使ってコンピューター再起動ブート)し、[新規インストールカスタム)]を選択してください。」などとメッセージが出てきた。問答無用に上書きしようとするらしいが、32bitと64bitだし、DSP版だし、でアップグレードインストールできないのは当然。

Win7インストールDVDを入れたままPC再起動BIOSポスト画面でキーを押してDVDドライブからの起動を優先させる。

インストーラが起動し、インストールを進めていく。インストール先に未割当の領域を選ぶ。

その後普通にインストールを進める…はずが、うっかりインストール途中の再起動時「Press any key to boot from CD or DVD」と表示されているときキーに触ってしまい、初めからインストールやり直しになってしまった。無駄Windows.oldを作ることになった。

それ以外には特に何もなくインストール完了。

再起動シャットダウン後の起動を行い、XP・7いずれもブートメニューから選んで問題なく起動することを確認。

後処理

チップセットドライバLANドライバ、サウンドドライバインストール再起動

グラフィックボードドライバインストール再起動

.NET Framework 4.5をインストールRadeon の新しいCatalystには4か4.5が必要。なぜドライバユーティリティにこんな大きなランタイムめいたもの必要なのか…)

セキュリティソフトノートン)をインストール

インターネット接続してWindows Update

Windows 7の標準機能システムイメージバックアップ。起動に必要ファイルが含まれるのでXPパーティションも一緒にバックアップされる。

XPが7の復元ポイントを削除してしまう問題の対処

XPからWindows7パーティションへのアクセスを不能にする。

  1. Windows XPレジストリエディタ (regedit.exe) を起動します。
  2. 「HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\Offline」を開きます。「Offline」キー存在しない場合は、新規に作成します。
  3. 編集」→「新規」→「DWORD値」をクリックします。エントリ名に「\DosDevices\X:」と入力します。(X:の部分はVista/2008/7がインストールされているドライブ名です。
  4. 「\DosDevices\X:」をダブルクリックし、値のデータに「1」を入力します。

http://www.geocities.jp/itaya_ys/TIPS/Vista/Vista05.html

XPからは容量0・空き容量0・未フォーマットローカルディスクとして見えるようになる。(アクセス不可)

気付いたこと

ドライブレターがふり直される

CドライブXP)、Dドライブがあるので、なんとなくEドライブWin7システムドライブになると思っていたが、Win7を起動したらインストールされたドライブはCに、XPドライブはDに、DドライブだったものはEに、以下他のドライブレターも順にずれていた。

当然XPを起動したときはもとのドライブレターのまま。(Win7はE)

約100MBのシステムパーティションが作られていない。

ディスクの先頭に約100MBのシステムパーティションが作られる、と聞いていたが今回は作られなかった。

WindowsXPのあるCドライブのbootフォルダの中に関係ファイルがあるようだ。

なぜブートメニューに「以前のバージョンwindows」なのか。手抜き?

『「以前のバージョンWindows」を選択実行した場合は、NTLDRが読み込まれ、BOOT.INIに複数のOSが設定されていれば、そのメニューを表示し、BOOT.INIに1つのOSしか設定されていない場合は、すぐにそのOSが起動します。』
http://www.geocities.jp/itaya_ys/TIPS/DualBoot/index.html

なるほど。たとえば、XPと2000がインストールされている場合、以前のバージョンの...を選んだら、XPと2000のどちらを起動するかメニューが表示される、と。

2012-08-13

C#基礎文法最速マスター

1. 基礎
classの作成

プログラムclass記述します。たとえばSampleという名前classを作る場合、Sample.csファイル内に次のように書きます。(C#場合ファイル名とクラス名は同一でなくても良い。複数のクラスを書いても良い)

public class Sample {

}
Mainメソッドの作成

プログラムclass内のMainメソッドの先頭から実行されます。Mainメソッドは次のように書きます

public class Sample {

    public static void Main( String[] args ) {
         // 処理を書く
     }

}
Console.WriteLineメソッド

文字列を表字するメソッドです。

Console.WriteLine( "Hello world" );
コメント

コメントです。

// 一行コメント

/*
   複数行コメント
 */
変数の宣言

変数の宣言です。変数の宣言時にはデータ型を指定します。

// 変数
int num;
データ型

データ型です。C#データ型には値型と参照型とがあります。以下は値型のデータ型です。

// int(整数)型
int num;
// char(文字)型
char c;
// float(単精度浮動小数点)型
float val;
// double(倍精度浮動小数点)型
double val;
// bool(論理)型
bool flag;
// DateTime(日付)型
DateTime date;

以下は参照型のデータ型です。

// StringString s;
// 配列String[] array;
プログラムのコンパイル

プログラムコンパイルするには、コマンドラインで以下のようにします。

csc Sample.cs
プログラムの実行

プログラムを実行するには、コマンドラインで以下のようにします。

.net framework on Windows場合

Sample.exe

Mono.frameworkの場合

mono ./Sample.exe
2. 数値
数値の表現

int、float、double型の変数に数値を代入できます。int型には整数だけ代入できます。float、double型には整数でも小数でも代入できます

int i = 2;
int i = 100000000;

float num = 1.234f;

double num = 1.234;
四則演算

四則演算です。

num = 1 + 1;
num = 1 - 1;
num = 1 * 2;
num = 1 / 2;

商の求め方です。割る数と割られる数が両方とも整数場合計算結果の小数点以下が切り捨てられます

num = 1 / 2;  // 0

割る数と割られる数のどちらかが小数場合計算結果の小数点以下が切り捨てられません。

num = 1.0 / 2;    // 0.5
num = 1 / 2.0;    // 0.5
num = 1.0 / 2.0;  // 0.5

余りの求め方です。

// 余り
mod = 4 % 2
インクリメントとデクリメント

インクリメントとデクリメントです。

// インクリメント
 ++i;

// デクリメント
 --i;
3. 文字列
文字列の表現

文字列ダブルクォートで囲みます

String str = "abc";
文字列操作

各種文字列操作です。

// 結合
String join = "aaa" + "bbb";

// 分割
String[] record = "aaa,bbb,ccc".Split( "," );

// 長さ
int length = "abcdef".Length();

// 切り出し
"abcd".Substring( 0, 2 )   // abc

// 検索
int result = "abcd".IndexOf( "cd" ) // 見つかった場合はその位置、見つからなかった場合は-1が返る
4. 配列
配列変数の宣言

配列です。

// 配列の宣言
int[] array;
配列の生成

配列の生成です。配列の生成時には要素数を指定するか、初期データを指定します。

int[] array;

// 要素数を指定して配列を生成
array = new int[5];

// 初期データを指定して配列を生成
array = new int[] { 1, 2, 3 };

// 宣言と同時に配列を生成
int[] array2 = new int[5];
配列の要素の参照と代入

配列の要素の参照と代入です。

// 要素の参照
array[0]
array[1]

// 要素の代入
array[0] = 1;
array[1] = 2;
配列の要素数

配列の要素数を取得するには以下のようにします。

array_num = array.Length;
配列のコピー

配列の要素を別の配列コピーするには以下のようにします。

int[] from = new int[] { 1, 2, 3 };
int[] to = new int[5];

from.CopyTo(to, 0);
5. 制御文
if文

if文です。

if ( 条件 )
{

}
if ~ else文

if ~ else文です。

if ( 条件 )
{

}
else
{

}
if ~ else if 文

if ~ else if文です。

if ( 条件 )
{

}
else if ( 条件 )
{

}
while文

while文です。

int i = 0;
while ( i < 5 )
{
    
    // 処理
    
    ++i;
}
for文

for文です。

for ( int i = 0; i < 5; ++i )
{
    // 処理
}
for-each文

for-each文です。配列の各要素を処理できます

int[] fields = new int[] { 1, 2, 3 };

foreach (int field in fields)
{
    // 処理
}
6. メソッド

C#では関数メソッドと言いますメソッドを作るには次のようにします。戻り値を返却するにはreturn文を使います

static int sum( int num1, int num2 )
{
    int total;

    total = num1 + num2;

    return total;
}
9. ファイル入出力

ファイル入出力です。ファイル入出力を行うには、プログラムの先頭に以下を記述します。

using System.IO;

以下がファイル入力の雛形になりますファイルオープンや読み込みに失敗した場合catch節に処理が移ります

String filename = "text.txt";
StreamReader reader = null;
try
{
    reader = new StreamReader(filename);

    String line;
    while ((line = reader.ReadLine()) != null)
    {

    }

}
catch (IOException e)
{
    // エラー処理:

}
finally
{
    if (reader != null)
    {
        try
        {
            reader.Close();
        }
        catch (IOException e) { }
    }
}

またはC#ではusing ステートメントと言うものがあり、この様にも書ける

String filename = "text.txt";
using (StreamReader reader = new StreamReader(filename))
{
    try
    {

        String line;
        while ((line = reader.ReadLine()) != null)
        {
            // 読み込んだ行を処理
        }

    }
    catch (IOException e)
    {
        // エラー処理:

    }
}

usingをつかうとCloseがなくなったことからわかるようにusing(){}を抜けるとき自動的にDisposeメソッドを呼び出し、オブジェクトを廃棄する。その分コードスッキリするが、使いにくい場面もあるので考えて使うこと。

以下がファイル出力の雛形になりますファイルオープンや書き込みに失敗した場合catch節に処理が移ります

String filename = "text.txt";
StreamWriter writer = null;

try
{
    writer = new StreamWriter(filename));

    writer.WriteLine("abc");
    writer.WriteLine("def");
    writer.WriteLine("fgh");

}
catch (IOException e)
{
    // エラー処理:

}
finally
{
    if (writer != null)
    {
        writer.Close();
    }
}

こちらもusingを使って書ける。が、割愛する。

知っておいたほうがよい文法

C#でよく出てくる知っておいたほうがよい文法の一覧です。

繰り返し文の途中で抜ける

繰り返し文の途中で抜けるにはbreak文を使用します。

for ( i = 0; i < 5; ++i ) {

    if ( 条件 ) {
        break;    // 条件を満たす場合、for文を抜ける。
    }

}
繰り返しの残り部分の処理をスキップする

残りの部分処理をスキップし、次の繰り返しに進むにはcontinue文を使用します。

for ( i = 0; i < 5; ++i ) {

    if ( 条件 ) {
        continue;    // 条件を満たす場合、残りの部分処理をスキップし、次の繰り返しに進む。
    }

}
例外処理

例外を投げるにはthrow文を使用します。

throw new Exception( "Error messsage" );

例外処理をするにはtrycatch文を使用します。

try {

    // 例外が発生する可能性のある処理

} catch ( Exception e ) {

    // 例外発生時の処理

}

2012-03-26

System.Reflection.MethodBase.GetCurrentMethod.Name - 自分の居る関数名を取得する

.NET Framework ログを吐くロジックなどで使えてけっこう便利。

2012-01-06

.NET Framework System.Data.DataSet.ReadXml

ReadXmlは、読み出したデータをDataSetオブジェクトデータに追加する。

上書き更新する場合

DataSet.Clear

してから読み込むこった。

2011-12-21

Oracle DB Express Edition は 他のPCから接続可能。MS SQL Server Express はだめ

俺が最初に扱ったRDBOracle 8i か 7。

DBってこんなもんか...と思ってたけど、インストーラのヘコさにあきれまくる。

その後 Microsoft SQL Server 2000 の手軽さを知って、こちらにどっぷり。

で、ずっとSQL Server

そこそこの使い方ならどっちのDBも十分使える上に、Oracleは「くだらない」お作法大杉。(Oracle Master の為?)

クエリー実行計画が図解でわかりやすい、バックアップやアタッチが超楽。

サポート(修正パッチなど)も料金込みのMSのほうがトータルで安価だし、CubeやReporting Serviceなどもコミコミで使える。

言語関係もMS SQL Server のほうが良くできてる。

SQL Server のStandard Editionだけでなく、無償版であるExpress Edition も使っているが、

残念ながらこれは外部のPCから接続できない制限がある(はず)。

同じく無償版のOracle DB 11g Expressがあるが、こっちでは他のPCから接続できた。

Universal Installer は相変わらずjavaでできてるからUIヘコいけど、

「くだならい」設定項目がだいぶ減って楽ちんでインストール完了。時代進化した。

.NET Framework(OLE DB)で外部からPC接続ホスト名、ユーザー名、パスワード接続文字列で指定するだけで、あっさりOK。

tnsnames.oraとかいじることはもう無くてよいのだろう。

sqlplus懐かしいぞ、ちょっとOracle回帰してみるか...

2011-06-09

.NET Framework 3.5 / 4 野暮ったいインストール過程

俺が知らないだけなのかもしれないが

.Net Framework 3.5や4をインストールしようとすると

必ずネットから最新版をダウンロードor最新版の確認をしようとする。

で、そのダウンロードサイト転送速度がやたら遅い。

もしくはとても不安定。経験上、たまたまはなくていつもそう。

まるでマイクロソフト.NET Frameworkを使ってほしくないみたい。

こいつ1つセットアップするために、もう30分待っている。

経営者からしたらM$は時間給泥棒だ。

ちなみに

俺は残業代休出代も出ない(しか管理職でもない)から

仕事も進まんし、段どりがくずれて萎えさせられるし、個人的にも腹立たしいわ。

2.0では、Fullインストール版があって

インストールに必要なファイルは既にすべて含まれていて

わりとすぐにインストール完了できた。

今だに2MB/73MB。

転送速度は0kB/秒です」「500kB/秒です」「接続初期化しています」を繰り返す。

なので、2.0のFull版に切り替えることにする。

M$のどの部門が担当しているのかね、あほくさ

2011-05-19

今頃.NET Framework3.5のアプリ作る事になったけど

データベースアクセスには、LINQ to SQLっていうの使うのがいいのかな。

Entity Frameworkって3.5 SP1から導入されたみたいだけど、アップデートは4.0でしか行われていないみたいだし。

それにしても、ネット上にあるMicrosoftプログラム開発に関する情報って少なくなったような気がするのは気のせいかな。

ググっても全然引っかからない。

VB6やらAccessの開発全盛時代はちょっと検索すると掲示板やら個人サイトやらの情報がわらわら出てきた記憶があるんだけど。

今そういう人はWebに流れてしまったのかなぁ。

2011-05-02

.NET Frameworkあれこれ

・System.IO.Path.GetDirectoryName(path)

pathがディレクトリ(フォルダ)を示していても、1階層上のディレクトリパスを返してくる。

実存チェックは一切やらない。

C:¥などルートディレクトリである場合Nothingを返してくる!

2010-11-11

http://anond.hatelabo.jp/20101111110504

調べてみたら、どうやらこのApricotというのが

Windowsでいろいろとできるみたい(要.NET Framework 4.0)

初音ミクスキンもあるし

これはよさそう (^o^)

公式サイト

http://www.apricotan.net/

作者のページ

http://d.hatena.ne.jp/kawatan/

2010-04-18

DLRって

.NET Framework 4で標準搭載になったの?

2009-10-17

.NET Framework 3.5 SP1 をインスコする際に勝手に導入されるから

一種のマルウェア扱いされてたものだな。

Mozillaマイクロソフトにちゃんと許可を得て

ブロックリスト」入りに追加したらしい。

だからそのウィンドウが表示されても何ら問題ないよ

ソースhttp://level.s69.xrea.com/mozilla/index.cgi?id=20091017_MS_Plugin

2009-06-17

日本人開発者アメリカ開発者に怒ってた。

日本人と食事する機会があって、話してたら英語圏への愚痴がおおくて苦笑いした

たしかになぁと思う部分をここに書く

英語圏WEBは残念につながる話なのかも知れない

要約すると

英語圏開発者は、とにかく私的で内輪ネタを好む。そして後先を考えない。

というお話なんだけど

この前、Unix特有の言葉語源のことをその人も知ってたんだけど

元ネタウィーザードリーっていう海外発のゲームだと知って苦笑いしてた。

幼稚だなって言ってた。個人ならともかく企業やまとまな開発者がやる事じゃないと。

そのひとが渡米したのは、もともとはソフトウェア開発のためなんだけど

アメリカでの開発で一番困ったのは、その場のことしか考えない開発体制と方針だそうだ

とくに怒ってたのは、ファイル名を入れたり選択したり表示する画面があるんだが

日本の人からすれば、マルチバイト文字の名前もあたりまえのようにあるから、考慮してくれればいいのに

アメリカ開発者達は当たり前のようにASCIIだけにしようとしている

ローカライズするときにかえればいいよ」と返してきて困ったそうだ

「後でかえるくらいなら、今かえればいいじゃないか」といってもアメリカ開発者は聞かないそうだ。

将来は海外でも発表するソフトなのにマルチバイト圏の分かる人の指示を聞こうとしない

俺に一言聞けばいいのに・・って言ってた。

当然、世界で発売するときにはかなり根っこのプログラムから変えなければいけない事になる。

こんな事が何十回もあったそうだ

web向けフレームワークWindows なら.NET Frameworkの普及で、UNICODE意識するようになってこういう事例は少しは減ったらしいが、

企業グループイメージに関わるのに、なんでこんな事を平気でするんだって不思議がってた。

欧米人はとくに家庭や身内にたいしてはギチギチにルールを強制するけど

ちょっと外に出たら、こんなにゆるい国はないという

googleストリートビューの問題で、プライバシーの問題が起こったけど

アメリカでは外で平気でキスセックスしてるくせにプライバシー侵害とかいうのはおかしいと怒ってた

日本だからといわず外で性行為は下品だからと禁止だったりするのが普通らしい。

外での行為は異常性愛者で、かりにヤルと、常に監視している近所のおばちゃんが通報して、かなり地域住民の関心事らしい)

http://anond.hatelabo.jp/20090617060155

2009-05-14

IIS+ASP.NET+SQLite

自分のための覚え書き。知ってる人からすれば全然当たり前のことかも…

IIS上で、Visual Studio 2008で開発したASP.NETWebサイトを動かす時に、SQLiteを使う方法

IISの動作しているマシンに「SQLite for ADO.NET 2.0」をインストール

それだけで良いと思ったけれど、以下のエラーが発生。

ArgumentException: 要求された .Net Framework データ プロバイダが見つかりません。これは、インストールされていない可能性があります。

いろいろ調べたら、手動でmachine.configを書き換える必要があるみたい。

そこで、machine.configに以下の行を追加。

	<system.data&gt;
		<DbProviderFactories&gt;
			<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.61.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /&gt;
		</DbProviderFactories&gt;
	</system.data&gt;

無事に動くようになりました。

2007-03-04

特集 私がJavaからC#に乗り換えたくない10の理由

ログイン ユーザー登録
ようこそ ゲスト さん