投稿

5月, 2010の投稿を表示しています

C#の概要3

パラメータ修飾子 out メソッドからの出力用のパラメータにつける。リファレンス渡し。メソッド内で値を設定しなければコンパイルエラー。 ref 値をリファレンス渡しする。メソッド内で値を設定しなくても問題無し。 params 可変長引数。引数をで渡された値を一つの配列にいれてしまう。 out メソッドからの出力を受けとるためのパラメーター (output parameter)として宣言する。メソッド内で値を設定しなければコンパイルエラーになる。値はメソッド外で有功でなければならないのでリファレンス渡しになる。さらに、メソッドに値を渡すときにoutキーワードをつけて渡す必要がある。 サンプル static void Circle(int radius, out int diameter, out double area) { diameter = radius * 2; answer = radius * radius * 3.14; } static void Main() { int diameter; double area; Circle(4, out diameter, out area); Console.WriteLine("Circle radius is 4, then the Circle diameter is {0}, area is {1}", diameter, area); } このキーワードのおかげで複数の値を返すことができる。 ref メソッドに値をリファレンス(参照)渡しする。つまり、値の変更を許可するパラメータ として使える。リファレンスとして渡す値は初期化されていなければならない。また、参照型をrefを使って渡す場合は渡したオブジェクト自体を変更できる。refキーワードもメソッド呼び出し時にrefをつけて値を渡す必要がある。 サンプル static void AreYouReady(ref string str) { str = "OK!" } static void Main(string[] args) { s1 = "Are you ready?"; AreYouReady(ref s1); Console.WriteLine(s1);

Wicked -- 邪悪

劇団四季のミュージカルWickedを見ました。ミュージカルは初めての経験だったのですがすっごく楽しめました。いきなり歌にはいるという話は聴いていたので、そこを違和感なく受け入れられるかが少し心配だったのですが、何の問題もありませんでした。 ストーリーはオズの魔法使いの出てくる悪い魔女は如何に悪い魔女になったのかという内容でした。演出も素晴らしく本当のオズの国にいるようにのめりこんでいて、みんなが歌うのもそういう世界だから普通に受け入れていました。でもあれってマイクついているのかな。すごい声量で美しい歌を聴かせてくれるからビックリしました。自分は多分ついていないような気がするのですが、そこはどっちでもいいかな。 登場するみんなが熱く青春しているのでワクワクしながら見れると思います。内容的にはみんながハッピーでよかったねーっていう感じではなく考えさせられる作品でした。僕も思うところが多々あり、その感じたことっていうのは大事にしたいと思います。 最後に出演者の皆さんが出てくるのですが、なんかお別れかと思うと寂しく感じました。 オズの世界の動物たちと人間が平和に暮らせますように・・・。っていうか僕等の世界も平和が訪れますように。

org-modeで同じフレーム内でアウトライン表示

ここ の記事を読んでorg-modeでアウトライン表示できるようにした。 imenu.el tree-widget.el,windata.el,tree-mode.el が必要。 キーバインドは (global-set-key (kbd "M-g t") 'imenu-tree) に割り当てた。 プレゼンの原稿作りに便利。常に全体が見れるというのはうれしい。

emacsをデーモンとして起動しておく

emacsのバージョンが23になってからemacsをデーモンのように起動しとけるのでメモ。 emacs --daemon & これで起動はできる。.xsessionに書いとけばX起動時に起動してくれるはず。けど、自分用にインターフェースを定義しているファイルがきちんと読み込まれないのでその対処をする必要があった。 emacsclient --eval '(load "~/.emacs.d/interface.el")' これで指定してやればインターフェースも読み込まれる。でも完全じゃ無いんだな。キャレットが点滅しない。でもこれは別の原因がありそうな気がする。眠いので保留。 起動する場合は emacsclient -c -a hoge.txt -cはX Window上で起動するのかな。-aはdaemonとして起動していなかったら普通にemacsを起動するっていうオプションだったと思う 終了する場合は emacsclient -e '(kill-emacs)' でOK。 眠いので終わり。

C#の概要2

System.Consoleクラス WriteLine()は改行付きで文字列を出力する。 Write()は改行なし文字列を出力する。 ReaLine()は入力ストリームからの一行(Enterキーが押されるまで)読み取る。 Read()は一文字受け取る。 Formatting Output printf()みたいなフォーマットを指定して文字列出力。 普通の出力 {}プレースホールダで数字を囲んで、後ろの引数を数字の順番に出力する Console.WriteLine("{0} {1} {2}", 0, 1, 2); {}で囲う数字の順番を入れ替える Console.WriteLine("{1} {0} {2}", 0, 1, 2); このplaceholderの数と引数が合わないと例外 FormatException が投げられます。 数字をフォーマット指定。 {引数の順番:アルファベット数字} で指定される。アルファベットは大文字小文字どちらでも構わない。 C -- 金額の出力に使われる。 D -- 数字出力。表示したい桁数を指定して使われる。 E -- 指数関数表示。大文字で指定するとEが大文字で表示される。 F -- 小数の表示。小数点以下何桁まで表示するかを指定して使われる。 G -- generic. 一般的な数字の出力に使える。 N -- コンマ付き数字出力。 X -- 16進数表示。大文字で指定するとアルファベットが大文字で出力される。 数字を一緒に付けて表示する桁数を(小数点を含めて)指定できる。 Console.WriteLine("d10 : {0:d10}", 3211); Console.WriteLine("f2 : {0:f2}", 99.998); String.Format()は同じようなフォーマットが使用でき、そのフォーマットに基づいてStringを生成して返す。これはGUIアプリケーションのときに使える。

C#の概要1

C#をちょっとずつ勉強したことを記録していく。 -Main() method C#アプリケーションは必ずMain()メソッドが含まれている必要がある。このMain()からアプリケーションは開始される。 Main()は修飾子staticをつける必要がある。オプションとしてコマンドライン引数と終了コードを使用することができる。 Main()の種類 返り値、引数あり static int Main(string[] args) 返り値、引数なし static void Main() 返り値あり、引数なし static int Main() Main()の返り値をvoidにするとプログラムが終了したときに0を返す。 コマンドライン引数の最初の要素(args[0])にはプログラム名は含まれていない。もしプログラム名を含むコマンドライン引数が欲しい場合は GetCommandLineArgs() を使う。 string[] commandLineArgs = Environment.GetCommandLineArgs(); foreach(string arg in commandLineArgs) Console.WriteLine("Arg: {0}", arg); Main()をpublicにすると外部からアクセスを許可することになるので、注意。って当たり前か。Visual Studioはデフォルトでprivateになるみたい。

VirtualBoxのGuest Additionsのインストール

VirtualBoxを便利に使うためにGuest Addionsをインストールする必要がある。共有フォルダやシームレスモードなど様々な機能が追加される。Xubuntu10.04にインストールしたのでメモを残しておく。 インストールに必要なものはgcc,make,linux-headerとか諸々。Xubuntuであるなら sudo apt-get install gcc make dkms でインストール可能。そしたら勝手に色々とインストールしてくれる。 次にメニューかHost+DでGuest Addionsのインストールできる。 もしくはそれできなければVBoxGuestAddions.isoをマウントして、そこから cd /media/VBOXADDIONS_ version-no / sudo ./VBoxLinuxAdditions-x86.run そしたら色々と出てくるので終わるのを待ちます。 そしたらインストールができているはず。 もしできていなければターミナル上であれば /var/log/vboxadd-install.log を見てねって書いているのでみると何かしら書いています。 自分はlinuxカーネルのソースがないけどって言われました。それはdkmsの中に入っているみたいです。

KeySnailをいれてみた

KeySnailのプラグインのK2Emacsを使ってブログを更新してみるテスト。 これができればちょっとはブログの更新が楽になるかな。でもいまのところWindows環境で動くかをやっていない。WindowsとLinuxがもっとシームレスになればなぁ。どっちもいいところがあるので。

sdicをいれたので備忘録

Emacsで英文を入力しているとスペルミスがないか気になる。だもんで、flymake-modeで入力して単語のスペルミスを教えてくれるので満足していた。 でも今度はEmacsで単語の意味を調べたくなった。今まではネットにつないで検索サイトから検索をしたり、手元の英和辞典を置いて調べたりしていた。英文を書く機会が増えてきたことからsdicを入れてみようと決心した。 sdicはaptパッケージとして提供されているので持ってくる。必要なのはsdic,sdic-gene95,sdic-edictとそのまま検索すると遅いので、検索用にsaryをインストールする。 まず、saryに辞書のインデックスを作ってもらう。xubuntuでaptすると先ほどの辞書ファイルが/usr/share/dict/以下に入っていてそれを mksary *.sdic としてやる。拡張子が.sdic.aryというファイルができていればO.Kです。もし文字コードを指定する必要がある場合は、mksary -c EUC-JPのように指定することができます。メモリの少ないPCで行う場合は-bオプションをつけることで改善されるかもしれません。 次に、Emacsから検索する仕組みを作ってやりましょう。 それは ここ のにあるのを持ってきました。これを.emacsになりに書きます。 ;; ----- sdicを呼び出すための設定(F9で実行) (global-set-key [f9] 'sdic-describe-word) (autoload 'sdic-describe-word "sdic" "search word" t nil) ;; ----- sdicが呼ばれたときの設定 (eval-after-load "sdic" '(progn ;; saryのコマンドをセットする (setq sdicf-array-command "/usr/bin/sary") ;; sdicファイルのある位置を設定し、arrayコマンドを使用するよう設定(現在のところ英和のみ) (setq sdic-eiwa-dictionary-list '((sdicf-client "/usr/hs