サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 10
www.divakk.co.jp
せっかくなので、前回のサンプルにWebサーバからファイルをHTTP GETで読み込む機能を追加してみましょう。 今回もコードから 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
変数の2つの型 C#には(というかCLSには)、値型と参照型という区別があります。 すべての変数は、このどちらかに属します。 いったい、何が違うんでしょう? 答えを先に書くと値型はstructで、参照型はclassです(本当はenumも値型なんですが、ここでは省略します)。 違いはこれだけです。構文上の違いはこれだけなんですが、動作上はいろいろなところが違います。 初期化の違い using System; public struct SInt { public int i; } public class Test { public static void Main(string[] args) { SInt i1; i1.i = 1; Console.WriteLine(i1.i); } }
C# Tips -目次- [トップ] C#のTipsです。Tipsと言うか、ほとんど自分のための覚え書きですが、せっかくなので公開します。 ildasmを使え! intとInt32はどう違う? 値型と参照型 キャストすべきかasするべきか トレースとQueryPerformanceCounter 条件付きコンパイル(ConditionalAttribute) COMのReleaseと_NewEnum usingを使え、使えったら使え(^^) XMLドキュメントとNDoc NUnitでUnitTest AxWebBrowserのIInternetSecurityManager [トップ] 株式会社ディーバ 青柳 臣一 2003/09/17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
UnitTestとは たとえば、「あるクラスのあるメソッドが正しく実装できているか」をソフトウエア自体でテストしてしまおう、それがUnitTestです。 もちろん、テストコード自体は各自が必要に応じて作成する必要があります。 が、そのテストコードを実行して「成功」とか「失敗」とか表示するような共通部分を毎回作る必要はありません(誰かが一度作ってくれれば)。 そういった「共通部分」のことをテスティングフレームワークなどと呼びます。 いまでは、いろいろなテスティングフレームワークがオープンソースで公開されています。 たとえば、Java用のJUnit、C++用のCppUnit、Ruby用のRubyUnitなどなどです。 で、NUnitはC#で実装されたオープンソースの.NET用テスティングフレームワークです。 NUnitのセットアップ NUnit.orgからダウンロードしてセットアップするだけで
キャストとas演算子 C#ではキャストを使う機会が多いです。 というのも、ArrayListなどのコンテナがobjectを入れるようになってますし、イベントハンドラなんかもobjectが渡されるようになってることが多いからです。 ただ、C#にはC風のキャストの他にas演算子があります。 これらについてまとめてみます。 ただ、構文自体はCのキャストと同じですが、機能は違います。 Cのキャストは「何でもあり」でおかしなキャストをしないようにするのはコードを書く人の責任です。 C#のキャストは、単純型(int、doubleなど)に対してはCのキャストと同じような感じで、その他の型(値型、参照型すべて)に対しては実行時型チェック付きのキャストになります。 なので、Cのキャスト + C++のdynamic_castって感じです。 まず、Cのキャストと同じようなところから。 int、doubleなどと
C#コンパイラにはXMLでドキュメントを抽出する機能が標準で付いてます(JavaでいうJavaDocと同じようなものです)。 チュートリアル [Web] [ms-help] を見てもらえばだいたいわかるでしょう。 要は ドキュメント化するコメントは "///" で始める。 概要や引数をタグでくくって書く。 コンパイルするときに「csc /doc:ファイル名」とする。 ってだけです。 こちらの「XMLドキュメント」 [Web] [ms-help] も参照してみてください。 雛形 雛形です。とりあえず、これだけ書けば十分かな? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
ログを書いたりするときになるべく細かい時間まで書いておくと処理にかかってる時間なんかもわかって何かと便利です。 もちろん、処理にかかってる時間と言ったって、他のスレッドやプロセスも同時に動いてるので厳密に計れるわけではありませんが、目安にはなります。 ただ、DateTime.Nowなんかの時間は10msくらいの精度しかありません(と思います)。 これは、そもそもパソコンに内蔵されている時計がその程度の精度しかないからです。 けど、Win32 APIにはQueryPerformanceCounter、QueryPerformanceFrequencyというかなりの精度を持ったタイマーがあります (確か、CPUのクロックを使って計ってるとか、そんなもんだったと思います)。 C#でこれを使うクラスを作ってみました。 using System; using System.Runtime.Inter
こんな風にスコープを抜けたとき(Func()からリターンしたとき)も誰も参照しなくなったことになるのでそのうち破棄されます。 この「そのうち」っていうところに注意してください。決してすぐに破棄されるわけじゃありません。 GCはそれなりに大変な処理なので、そんなに頻繁に動きません。 それどころか、.NET FrameworkのGCは「メモリが足りなくなってきたら動く」という感じらしいです。 まぁ、これ自体は何も問題ありません(どっちにしろそのうち破棄されるんだから)。 けど、オブジェクトがメモリ以外のリソースを持っているときは問題になることがあります。 たとえば、 こんな場合です(えらく意図的ですが)。 Func()メソッドからリターンした時点でfsやsrを参照しているものは無くなりますから、そのうちGCによって破棄されます。 が、破棄されるまでは"test.txt"はオープンされたままにな
.NET関連資料室 blogを立ち上げてみました C#で作るWindowsアプリ のっぺらぼうのウインドウ メニューやボタンをくっつける 複数のウインドウ ファイルを読み込む HTTP GETする スレッドを使う C# Tips ildasmを使え! intとInt32はどう違う? 値型と参照型 キャストすべきかasするべきか トレースとQueryPerformanceCounter 条件付きコンパイル(ConditionalAttribute) COMのReleaseと_NewEnum usingを使え、使えったら使え(^^) XMLドキュメントとNDoc NUnitでUnitTest AxWebBrowserのIInternetSecurityManager 株式会社ディーバ 青柳 臣一 2003/09/17
WebBrowserコントロールのセキュリティ設定 VisualStudio.NETにあるMicrosoft Web Browserコントロール(AxWebBrowser)のセキュリティ関係を調整する方法です。 ちなみに、Microsoft Web Browserコントロールはshdocvw.dll(ActiveXコントロール)をラップしているだけです。 なので、AxWebBrowserの細かい制御はCOMを使う必要があります。 COM.cs 以下で使うCOMのインターフェースやら#defineやらをC#で使えるようにしたソースです。 長いのでファイルを置いておきます。 COM.cs Formにインターフェースを実装する まずは、VisualStudio.NETでFormを作って、そのFormにMicrosoft Web Browserコントロールを貼り付けてください。 あとは、以下のよう
このページを最初にブックマークしてみませんか?
『株式会社ディーバ | 大阪発 C#の会社』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く