1 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 13:45:15 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 前スレ C#, C♯, C#相談室 Part49 pc11.2ch.net/test/read.cgi/tech/1224754660/ Visual C# 2008 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ その他テンプレ>>2-5 くらい
237 名前:デフォルトの名無しさん [2009/01/04(日) 16:33:54 ] >>234 クリックされたときにそこの内容がつかめればいいということですか。 >>235 NewWindow イベント というものがあるのですね、知りませんでした、 これで単純にキャンセルすることはできそうですね!! これで新しいブラウザではなくて自分のところにリダイレクトできれば いいのですね。この CancelEventArgs にはアドレスがなさそうなので どうやったら掴めるか、また調べてみますです。 どうもありがとうございました!
238 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 16:38:12 ] >>236 BluetoothSetLocalServiceInfo() とかの API は使えないの?
239 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 16:40:09 ] >>237 > クリックされたときにそこの内容がつかめればいいということですか。 違う。DOM でパースして、target 属性を見ればいいんじゃない? ってこと。 ま、a タグに Javascript を仕込まれてたりしたときのことを考えなくちゃならんけどw
240 名前:デフォルトの名無しさん [2009/01/04(日) 18:07:58 ] C#でAccessデータベースをOLEで連携してDataGridで表示しつつ 右横に単票状態のデータベースを表示し、修正する名簿ソフトを 作っています。 そこで質問をさせてください。 ---- DataGridに表示させ、DataGridの右横にテキストボックス を配置し、テキストボックスにデータベースのデータソースと バインドさせて、名簿管理ソフトを作りました これに機能追加で、DataGridの表示条件を絞り込みできるようにしようと しました。 そこで、 DataViewを使って、RowFilterプロパティを使って抽出条件で DataGridの表示条件を絞り込み出来る機能を追加しましたが DataGridの右横にあるテキストボックスとDataGridのデータが 連動されなくなってしまいました。 (DataGridの絞込みをしてもテキストボックスに表示されるのは データソースの1行目の情報となってしまう) これを解消する良い方法は無いでしょうか? テキストボックスでデータ修正をし、データベースの情報を 修正する機能をつけていて、それを無くしたくは無いのです。 お手数をおかけしますがご教示ください また、説明不足や表現力不足でわかりづらかったらご指摘ください ますと幸いです。
241 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 18:15:00 ] TextBoxのバインディングソースもそのDataView使えばいいんじゃね
242 名前:デフォルトの名無しさん [2009/01/04(日) 18:56:09 ] >>241 なるほど、試してみます どうもありがとうございます
243 名前:デフォルトの名無しさん [2009/01/05(月) 01:12:37 ] 教えてください。 フォームに配置されているコントロールの使用可制御を 以下のように行いたいのです。 textA.Enabled = true; if (条件1) { textA.Enabled = false; } if (条件2) { textA.Enabled = false; } if (条件3) { textA.Enabled = false; } このソースを実行すると、if文の条件に合ったとき、 一瞬、コントロールが使用可になってから使用不可になる というちらつきが生じてしまいます。 「textA」としていますが、このようなコントロールがとてもたくさんあり、 if文の条件もたくさんあります。 また、条件はコントロールが『使用不可になる条件』しかなく、 使用可になる条件がない(使用不可の条件に1つも当てはまらなければ使用可) ため、いったんコントロールを使用可にしてから条件にあったときだけ 使用不可にする方法をとっています。 ちらつきをなくす良い方法はないでしょうか。 上記のソースが流れ終わるまでは画面の再描画を行わない、などの 方法があればお願いします。
244 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:30:44 ] textA.Enabled = !(条件1||条件2||条件3);
245 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:33:24 ] if (条件1) { textA.Enabled = false; } else if (条件2) { textA.Enabled = false; } else if (条件3) { textA.Enabled = false; } else { textA.Enabled = true; }
246 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:53:18 ] LockWindowUpdate() とかダメ?
247 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:18:21 ] bool tmp = true; if (条件1) { tmp = false; } if (条件2) { tmp = false; } if (条件3) { tmp = false; } if(textA.Enabled != tmp)//これ無いとちらつく?試してないけど { textA.Enabled = tmp; }
248 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:36:56 ] >>247 > ラスト4行 確認はしていないが、そのチェックはプロパティの実装に入ってる可能性が高い 他のには大抵入ってるし、ないとEnabledChangedが正常動作しなくなる
249 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 06:42:38 ] textA.BeginUpdate(); // EndUpdate()まで画面の再描画を行わないようにする textA.Enabled = true; if (条件1) { textA.Enabled = false; } if (条件2) { textA.Enabled = false; } if (条件3) { textA.Enabled = false; } textA.EndUpdate();
250 名前:デフォルトの名無しさん [2009/01/05(月) 11:54:19 ] 240の質問の続きです・・・ 240の質問事項については、>>241 で無事解決しました。 どうもありがとうございます。 RowFilterでフィルタをかけている状態で、下記のコマンドをボタンで実行 させていますが、DataGridのフォーカスを手動で変更をしないと データベースが更新されないのです。 ※フォーカスを移動しなくても更新されるようにEndCurrentEdit メソッドを事前にかけているのですが・・・ --------------------------------- int iRow; //更新したレコード数 this.BindingContext[dbCustomer1, "M_Customer"].EndCurrentEdit(); iRow = oleDbDataAdapter1.Update(dbCustomer1, "M_Customer"); MessageBox.Show("更新 " + iRow + "件"); ----------------------------- 度々すみませんが、ご教示いただけないでしょうか?
251 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 12:06:07 ] string path が不正なパスのとき ( "::{hogehoge}" みたいな ) bool b = Directory.Exists( path ); は例外ださないでfalseが返る (内部では出ててcatchされてるのがパフォーマンスモニタで確認できる) けど DirectoryInfo di = new DirectoryInfo( path ); bool b = di.Exists だとコンストラクタの時点でArgumentExceptionがでる 前者でも例外出してくれた方がいいかなぁ でも実用的じゃなくなるかなぁ ただ「信頼性とパフォーマンスモニタ」の「# of Exceps Thrown」が増えてくのは気持ち悪い つーか増えてく原因探すのでえらい手間取ったorz
252 名前:デフォルトの名無しさん [2009/01/05(月) 12:23:10 ] Visual Studio 2008で専用ブラウザを作成しています FormClosing時に画面は閉じても良いのですが閉じる前に サーバーに対してログアウト処理のページを読み込ませて 強制ログアウトさせたいのですが、FormClosingでNavigate に処理ファイルを書いて実行しても処理は行われず FormClosingの最終部にe.Cancel = true;を書くと 処理は実行されます。 しかしこれだとどうやっても画面が閉じれなくなるので 何とかしたいのですが、この場合どういう書き方をしたら良いのでしょうか?
253 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 12:35:07 ] FormClosing { if( !ログアウト処理した ) { e.Cancel = true; FomClosing中ですよ = true; ログアウト処理(); } } ログアウト処理 { ... ログアウト処理した = true; if(FomClosing中ですよ) { this.Close(); } }
254 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 12:41:51 ] ログアウトしたかどうかの判断がFormのイベントハンドラに入ってて、 フォームを閉じる処理がログアウト処理()に入ってるっていうのはどうなの。 まるでVB厨の書くコードみたいw ってういか、そもそも>>252 のいっているような現象って本当に起こるの?
255 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 12:42:00 ] 最終部にApplication.DoEvent();
256 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:44:23 ] UWSCというマクロツールの画像判定処理 (bmpファイルを読み込んで、その画像と同じものが画面上になければfalseを返す 画面上にあればtrueを返してその画像の座標を参照渡しするというモノ) をC#で実現しようとしてがんばってるんだけど BitmapクラスのGetPixelを使って再現してみたら実行にものすごく時間がかかるんですけど これを早くする方法はないですか?
257 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:51:57 ] LockBits
258 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:00:20 ] GetPixel/SetPixelって何のために生きてるの? 知らないと使ってしまいがちな絶対使ってはいけないものの代表格だよね
259 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:02:53 ] >>258 極端な思考だなあ。。 こういうのを2ch脳っていうのかなあ。(というのも極端な思考かもしれんが)
260 名前:252 [2009/01/05(月) 15:00:37 ] >>253 書かれている方法で試したのですがこれだと無限ループが発生して しまいませんか? >>254 私の環境では起きてます。orz webBrowser.Navigateで通信が完了した等の 情報をひらう事は出来ないのでしょうか? もし出来るならやり方を教えてもらえませんか?
261 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 15:18:58 ] ログアウト処理はBeginInvoke使って呼び出さないと駄目っしょ ログアウト後のCloseはまた別にWebBrowserのイベントとかで呼び出しってことになるだろうけど >>254 FormClosing中にWebBrowser.Navigateしても意味無いのは当然 あとはWebBrowserのイベント調べれ
262 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 15:22:25 ] そう言えばどうせNavigateして完了待ちになるならBeginInvokeも特に必要ないな
263 名前:109 mailto:sage [2009/01/05(月) 15:46:03 ] >>110 情報ありがとです。 なぜか{"テーブルに主キーがありません。"}って怒られました。 データベースエクスプローラのテーブルにある奴をダブルクリックしたら構成画面みたいなの出たので 右クリックで「主キーの設定」ってのはやったんですけど・・・ やさしそうな本買って勉強してみます。
264 名前:252 [2009/01/05(月) 16:56:12 ] >>261-262 ありがとうございます 調べてみます
265 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 17:20:31 ] >>263 主キー(primary key)とは制約(constraint)であり、その列に重複(duplicate)する値を持たないので一意性(ユニーク,unique)がある つまり主キーから行を特定できる
266 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 20:53:41 ] NUnitを使っているのですが、 テストデータとして予め用意したテストファイル(VS2008のプロジェクトディレクトリ内)を 使う場合、そのパスを取得するいい方法は何でしょうか? Assembly.GetAssemblyで取得しようとすると、NUnit の GUI runner がshadow copyをしているので 違う一時ディレクトリになってしまい、shadow copyをオフにするとAssemblyにロックがかかってしまい VSでのビルドができなくなってしまって困っています。
267 名前:デフォルトの名無しさん [2009/01/05(月) 22:49:38 ] Gifファイルのカラーパレットを変更したいです。 現在はビット深さが8bitで、カラーパレットは2^(7+1)で256色用意してあります。というかこれがデフォルトだと思います。 この状態で、ビット深さは8bitのままで、カラーパレットのエントリーのレングスを2にしたいのですが、 どうやったらいいのかわかりません。お願いいたします。 (目的は、特許庁のインターネット出願ソフトをパスするためです。どうやら、カラーパレットが2でないと 出願ソフトではじかれてしまうようなのです)
268 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:04:17 ] 意味が分からん パレットのエントリ数は色深度で決まるもんだろ? つーか普通に画像処理ソフト使えよと思うわけだが
269 名前:デフォルトの名無しさん [2009/01/05(月) 23:11:38 ] >>268 >>パレットのエントリ数は色深度で決まるもんだろ? 原則、そうだと思います。ただ、GIFのヘッダーのパックドの2〜4ビット目と、6〜8ビット目を みるとお分かりの通り、デプスとエントリ数は異なる値に設定できるようになっています。 Universal Document Printerという市販ソフトでモノクロ出力すると、 デプスが8でパレットのエントリ数は2で出力されます。 個人的には、こうするんだったら、デプスが1bitでエントリ数が2という組み合わせで いいじゃないかとも思うんですが、業界としてデプスは8bitが標準なので それに倣っているんだな、と勝手に解釈しています。
270 名前:デフォルトの名無しさん [2009/01/05(月) 23:17:30 ] static public void test() { Bitmap bmp = new Bitmap(@"C:\Documents and Settings\stuv\デスクトップ\b1.gif"); Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height); BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite,bmp.PixelFormat); IntPtr ptr = bmpData.Scan0; int stride = bmpData.Stride; int bytes = stride * bmp.Height; byte[] index = new byte[bytes]; // Copy the RGB values into the array. System.Runtime.InteropServices.Marshal.Copy(ptr, index, 0, bytes); int initX; for (int y = 0; y <bmp.Height; y++) { initX = stride * y; for (int x = 0; x < bmp.Width; x=x+2) { index[initX + x] = 0; index[initX + x+1] = 1; } } System.Runtime.InteropServices.Marshal.Copy(index, 0, ptr, bytes); bmp.UnlockBits(bmpData); Bitmap bmpTemp = new Bitmap(1, 1, PixelFormat.Format1bppIndexed); ColorPalette pal = bmpTemp.Palette; pal.Entries[0]=Color.Black; pal.Entries[1]=Color.White; bmp.Palette = pal; bmp.Save(@"C:\Documents and Settings\stuv\デスクトップ\b2.gif", ImageFormat.Gif); bmp.Dispose(); コンソールです。これよりスマートなのはありますでしょうか。
271 名前:デフォルトの名無しさん [2009/01/06(火) 01:13:23 ] RowFilterでフィルタをかけている状態で、下記のコマンドをボタンで実行 させていますが、DataGridのフォーカスを手動で変更をしないと データベースが更新されないのです。 ※フォーカスを移動しなくても更新されるようにEndCurrentEdit メソッドを事前にかけているのですが・・・ --------------------------------- int iRow; //更新したレコード数 this.BindingContext[dbCustomer1, "M_Customer"].EndCurrentEdit(); iRow = oleDbDataAdapter1.Update(dbCustomer1, "M_Customer"); MessageBox.Show("更新 " + iRow + "件"); -----------------------------
272 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 11:32:48 ] ネットワークからのデータを1バイトずつ処理したいので、BufferedStreamを使おうとしたのですが、 BufferedStreamにデータが到着したかどうかを取得できる機能が見つからなくて困っています。 普通にReadByte()すると切断されるかリモートホストからデータが1バイト来るまでブロックしてしまいますし、 LengthやPositionの取得はおろかタイムアウトの設定すらサポートされていません。 1バイトを読むためにいちいちコールバックさせるのも面倒でたまりません。何かいい方法はありませんか?
273 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 12:28:03 ] 非同期でやれば
274 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 19:12:20 ] NetworkStream.DataAvailable
275 名前:デフォルトの名無しさん [2009/01/06(火) 19:32:40 ] 64*64の画像をバッファに取り込んで、そこから32*32の範囲を拡大縮小せずに取り出すことはできますか?Rectangleを使うらしいですが、そこから先が分かりません。教えて下さい。 (例) Bitmap bmp = new Bitmap("test.bmp"); Rectangle rec = new Rectangle(0,0,32,32); Bitmap result = ??
276 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 20:00:40 ] 新しいBitmap作ってGraphics.FromImageで作ったGraphicsにGraphics.DrawImage
277 名前:デフォルトの名無しさん [2009/01/06(火) 20:30:02 ] >>276 それはここのことを言ってると思いますが、 dobon.net/vb/dotnet/graphics/triming.html Bitmap img = new Bitmap(@"C:\サンプル.jpg"); //PictureBox1のGraphicsオブジェクトの作成 Graphics g = PictureBox1.CreateGraphics(); //元の画像の(10,10)-(100,100)の部分を切り取って表示する //座標(0,0)に表示し、単位をピクセルとする Rectangle rect = new Rectangle(10, 10, 100, 100); g.DrawImage(img, 0, 0, rect, GraphicsUnit.Pixel); //Graphicsオブジェクトを破棄 g.Dispose(); これは一部を表示するだけで、私がしたい「別のbitmapまたはimageデータに切り取った画像を入れたい」ことにつながってません。 この点厚かましいお願いとは思いますがよろしくお願いします
278 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 20:35:06 ] 言ってない
279 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 20:35:46 ] ぽかーん・・・
280 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 20:44:19 ] >>277 噴いたwwレベル高いなおいwww まぁ、この程度の事にGraphics持ち出すのは大袈裟だとは思うが、要求仕様は満たしてるな。 MSDN行って、Bitmapクラスのメソッド一覧読んで来い。
281 名前:デフォルトの名無しさん [2009/01/06(火) 21:06:00 ] Objectとobjectってなにが違うんですか? (先頭の大文字と小文字) イベントの引数を書いてると、小文字のobjectが最初に出てきます。
282 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:06:54 ] >>281 C# のキーワードと、.NET のオブジェクト
283 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:07:10 ] あ、逆ね。object が C# のキーワード。
284 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:26:50 ] おまえらはStringとstringどっちで書いてるんだ
285 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:29:44 ] 宣言はstring
286 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:30:04 ] string だなぁ。
287 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:31:15 ] Int32
288 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:31:33 ] String VSで型名が水色に統一されるからw by 素人
289 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:31:39 ] 静的メソッド呼び出すときだけString
290 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:53:38 ] 何か水色だと参照型な気がしてしまう
291 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 22:04:39 ] >>289 オマエハオレカ
292 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 22:36:47 ] 折角キーワード用意してくれてるんだから全部小文字でいいじゃん
293 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 22:39:43 ] 小文字で始まるとJava臭くなるから
294 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:10:42 ] String や Object のほうが Java くさい
295 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:48:50 ] StringやObjectはVBくさい。
296 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:53:18 ] ほにゃらら臭くない命名規則なんてあるのか?
297 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 00:03:35 ] CodeZineで瀬○遥が投稿するたびに 憂鬱になるのは俺だけ?
298 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 00:15:38 ] stringが正解です。
299 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 00:19:44 ] namespace書かない方がusingで指定しなくてもクラス使えて便利だった
300 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 01:30:33 ] 教えてください。 TreeViewにあるアイテムを選択し、それをExplorerを使って あるフォルダへD&Dすることで、そのフォルダにテキストファイルを作成する ことを考えています。 そのために、D&D先のフォルダのパスを検出する必要があるのですが、 それがどうもわかりません。 QueryContinueDragを使ったほうがいい?とWebにもあるのですが、 そのイベントで得られるイベント引数にはExplorerのパスが含まれていません。 ExplorerからTreeViewへのD&Dは簡単だったのですが・・・ どなたか教えていただけないでしょうか。
301 名前:デフォルトの名無しさん [2009/01/07(水) 09:45:14 ] >>300 dobon.net/vb/dotnet/control/droptoexplore.html ここを参考にしてみては? 今どうやろうとしているのかよくわからないんだけど、explorerのパスを取得するの ではなくて、あらかじめテキストファイルを作成しておいて、ドロップしたいそのファイルの パスを IDataObject(Dataformats.FileDrop, string[]{パス})として、explorerに通知するん だと思うが。
302 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 09:50:29 ] >>300 ファイルやディレクトリをエクスプローラへドラッグ&ドロップするには? www.atmarkit.co.jp/fdotnet/dotnettips/384expdragdrop/expdragdrop.html エクスプローラへドロップしたタイミングでファイルを作成し、コピーしたい forums.microsoft.com/msdn-ja/showpost.aspx?postid=1325458&siteid=7 これらを見た感じ、エクスプローラ側のドロップ先パスを調べることは出来ないみたいだね。 エクスプローラへのドロップは、ファイルコピーまたは移動をエクスプローラが主体となって行う。 だからあらかじめ、作成したいファイルをどこか一時的に出力しておいて、 それらのファイルパスをドラッグデータに設定するしかないんでない?
303 名前:デフォルトの名無しさん [2009/01/07(水) 09:55:39 ] すまん被った。 質問。 XmlSerializerで任意の型が含まれるobject配列をシリアライズしたいのですが、 その為にはXmlSerializerのコンストラクタへ、含まれる可能性のあるTypeを 全て渡しておかなければいけません。 そこで、XmlSerializer生成前にobject配列内の要素を総なめしType一覧を生成して XmlSerializerに渡しているのですが、これって正しい方法なのでしょうか?
304 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 10:11:03 ] 普通は属性で事前に定義しとくもんだろ デシリアライズ時にどうすんだ >>300 ドロップ時の動作はドロップ側で行うものだから 基本的にはDataFormats.FileDropとダミーファイル作るしかない。 ダミーを作るのが嫌ならシェル拡張でExplorerのドロップ時動作を書き換えることになる。 が.NET/C#でシェル拡張は止めといたほうがいいというのが定説だな。 Explorer以外のファイラとかだとまず無意味だし。
305 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 11:03:46 ] 最近、C#を勉強しはじめたのですが、delegate、event で困惑してしまって・・・。 namespace my_namespace { delegate void my_delegate(); class my_class { public event my_delegate MyEvent; public void my_func() { Console.WriteLine("hello"); } static void Main(string[] args) { my_class oIns = new my_class(); my_delegate del0 = oIns.my_func; //※1 my_delegate del1 = new my_delegate(oIns.my_func); //※2 del0 += oIns.my_func; //※3 del1 += new my_delegate(oIns.my_func); //※4 : } } } [質問1] ※1と※2、※3と※4 この2種類の式でどのような違いがあるのかわかりません;;
306 名前:305 mailto:sage [2009/01/07(水) 11:04:38 ] あと、 "System.Windows.Forms.Buttonクラスインスタンス"の"Clickイベント"へイベントリスナーを登録しようとした際、 public void MyEventHandler(object sender, System.EventArgs e){ … } : this.button1.Click = this.MyEventHandler; と記述すると、 イベント 'System.Windows.Forms.Control.Click' は += または -= の左側にのみ表示されます。 と、コンパイルエラーが表示されます。 [質問2] どうして、"="ではリスナーの登録ができないのでしょうか;; 長文ですいません;;。何かお分かりの方、どうぞ、お知恵を…m(_ _)m
307 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 11:09:27 ] > ※1と※2、※3と※4 この2種類の式でどのような違いがあるのかわかりません;; 同じ 型が明らかなので省略可能ってだけ > どうして、"="ではリスナーの登録ができないのでしょうか;; eventがそういう仕様(add/removeのみ)だから
308 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 11:48:11 ] > ※1と※2、※3と※4 この2種類の式でどのような違いがあるのかわかりません;; デリゲートの場合、=を使うとデリゲートがクリアされて新しく格納される +=つかうと追加になって実行時にマルチキャストされる イベントは基本的にマルチキャストされるべきなので外部からは+=か-=しかできない仕様になってる イベントを実装するクラスでは=も可能
309 名前:305 mailto:sage [2009/01/07(水) 11:51:11 ] >>307 レス、ありがとうございます m(_ _)m > > どうして、"="ではリスナーの登録ができないのでしょうか;; > eventがそういう仕様(add/removeのみ)だから ご回答頂いたとおり、私も最初、「そういうものなんだろうなぁ〜」と思ったのですが、以下のソースでは、問題なくコンパイルが通ります。 ※環境ですが、VS2008sp1 .NetFramework3.5sp1 です。
310 名前:305 mailto:sage [2009/01/07(水) 11:52:44 ] using System; namespace my_namespace { delegate void my_delegate(); class my_class { public event my_delegate MyEvent; public void my_func() { Console.WriteLine("hello"); } static void Main(string[] args) { my_class oIns = new my_class(); my_delegate del0 = oIns.my_func; my_delegate del1 = new my_delegate(oIns.my_func); oIns.MyEvent = oIns.my_func; //※1 oIns.MyEvent = del0; //※2 oIns.MyEvent = del1; //※3 } } } ※1〜3部分がコンパイルエラーにならないんです・・・ なんでだろ;;
311 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 11:55:41 ] 同じクラス内だから
312 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 11:58:31 ] >>308 でも書いたけど、 外部から=できてしまうということは、他で登録されていたかもしれないイベントを 全部削除できてしまうということになる。 それだからイベントを使う側からは追加か、既知のデリゲートの削除しかできないような仕様はあたりまえっしょ イベント定義したクラスではすべてのことができる
313 名前:305 mailto:sage [2009/01/07(水) 12:21:16 ] >>308 ,311,312 レスありがとうございますm(_ _)m 309-310を書き込んでる間に、308が書かれていたようで;; 大変失礼しましたm(_ _)m レス頂いた内容でスッキリしました。ありがとうございます。 余談なのですが… 私は、もともと、C→java、そして、C#と勉強?(仕事で使っている)してきたのですが、どうにも、C#はややこしく感じてしまいます…。 うまくいえないのですが、 ・vatualやorverrideやnew ・delegateやevent ・struct(これは、アリだとおもいますが…) といったものは、javaをやっていると、「必要かな?」とおもうような言語仕様のように思えます… ただただ、ややこしくしているように感じます… もう、歳なんですかね;;
314 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 12:25:59 ] >>305 .NET1.xまでは※4で書く必要があったが、.NET2.0以降は※3でよくなった。 匿名メソッドやラムダ式への布石だと思う。 >del0 += oIns.my_func; //※3 >del1 += new my_delegate(oIns.my_func); //※4 .NET2.0以降なら※3を使ったほうがよい。最適化してくれることがある。 >>313 単に慣れかと、むしろ >・struct(これは、アリだとおもいますが…) この一文に不安を感じる。
315 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 12:32:02 ] CとJavaの間にC++が入ってたらすんなりだったかもな。
316 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 12:46:33 ] DelphiやJ++に手を出してたもので理解は早かった。ヘジたんラブということで(笑 eventは一度add/removeを自分で書いてみると完全に理解できると思う。 java1.1で匿名クラスが出たときの方が理解に時間がかかったな。
317 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 13:04:45 ] overrideはJavaにあるじゃない overrideはないと困るから追加されたんだよ あとJavaにはvirtualがないために メソッド定義にfinalをつけると速度が格段に上がるということが実際にあったんだよ delegate的なものもそのうち追加されるよ
318 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 17:12:22 ] これからC#勉強するため本を買おうと思っています。 VB, Delphiはそこそこ使えます。 ローカルデータベースでの顧客管理みたいなプログラムを作ろうと思ってるのですが 今まで買って「この本はなかなかお勧めだよ」って本あったらぜひ教えて下さい。 データベースはSQL ServerかAccessがいいのかなって思ってます。
319 名前:デフォルトの名無しさん [2009/01/07(水) 17:36:21 ] codezine.jp/article/detail/1?p=1 上のサイトを参考に、Plug-inフォルダに入れ込んだDLLをアプリケーションの起動時に読み込むようにしようとしています。 コードもほとんどコピーのはずなのに、何故か実行するとダウンキャストを行う所で例外が発生します。 // 読みだし終わったDLLにあるクラスをインスタンス化 Object obj = asm.CreateInstance(t.FullName); // tFullNameはCountChars.CountChars Debug.WriteLine(obj.GetType()); // 「CountChars.CountChars」が表示される CountChars.CountChars plg = (CountChars.CountChars)obj; // ここで型変換したのだが、System.InvalidCastExceptionが発生 // Exceptionが発生したため、以下のコードが実行されません Debug.WriteLine("Plug-in Run"); plg.Run(); Debug.WriteLine("Plug-in Runed"); 正直、何故うまくダウンキャストされないのか理由が思い浮かばないという状況です。 お知恵をお貸しいただけると大変ありがたいです。
320 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 17:39:04 ] C#は上位の名前空間と同名のクラスを認めてないみたいな話じゃないの
321 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 17:54:31 ] プラグインが実装するインターフェイスのアセンブリは、 呼び出し側とプラグイン側で同じものを参照する必要がある。 両方に同じコードをコピーしてそれぞれでコンパイルしてるのではないかな。
322 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 17:56:37 ] 俺はC++&PythonからC#入ったら、ほとんど覚えることは無かったな。 最近のGC付き言語はどれも似たような感じだね。
323 名前:319 [2009/01/07(水) 18:34:24 ] >>321 どうもご返答ありがとうございました 一応あの後頑張った結果 1.インターフェースクラスのみをdllに吐き出す 2.参照の追加、でdllを参照に加える(これは継承したクラスとアプリケーションどちらも) 3.この状態で動的ロードとダウンキャストを行う で、うまく行きました ありがとうございました。
324 名前:デフォルトの名無しさん [2009/01/07(水) 20:27:38 ] >>275 解決しました
325 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 20:44:01 ] Runed・・・ 笑うとこ?
326 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 07:59:11 ] sql serverへの接続プログラムを作っていて不思議に思ったことがありました。 SqlConnectionクラスが保持しているリソースの開放を、 『using + IDisposableインタフェイス』で行いました。 using (SqlConnection oCon = new SqlConnection("接続文字列")) {…処理…} この時、ふと、 「SqlConnectionクラスって、IDisposableインタフェイスを実装してるよね?」 と思い、継承関係を追いかけてみると、親クラスであるDbConnectionが、 IDisposableインタフェイスを継承していました。 「あ〜、ここで継承してるのね。」 「Disposeメソッドを定義してるのが、SqlConnectionクラスなんだ。」 と思ったのですが、SqlConnectionクラスのDisposeメソッドを見てみると protected override void Dispose(bool disposing) となっていました。 「あれ? "void Dispose()" じゃないの?」 と思い、引き続き調べてみると、DbConnectionクラスの親クラスである Componentクラスもまた、IDisposableインタフェイス継承しており、 ComponentクラスにてDisposeメソッドが定義されていました。 ComponentクラスでもIDisposableインタフェイスを継承しており、 Componentクラスを継承しているDbConnectionクラスもまた、IDisposableインタフェイスを 継承していることがとても、不思議でした。 なぜ、DbConnectionクラスでもIDisposableインタフェイスを継承する必要があるのでしょうか? 以上、おサルな私に何かアドバイス頂けたら幸いです。
327 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 08:10:18 ] DbConnectionはDisposeには手を出してないよ Componentがpublic void Dispose()とprotected virtual void Dispose(bool)を定義 Dispose()およびファイナライザ内でDispose(bool)を呼び出す DbConnectionは何もしない SqlConnectionがprotected override void Dispose(bool)をオーバーライド クラスの解説の定義のとこに出てくるインターフェイスは基底が実装してるのも含めて書かれる
328 名前:326 mailto:sage [2009/01/08(木) 08:26:19 ] >>327 >クラスの解説の定義のとこに出てくるインターフェイスは基底が実装してるのも含めて書かれる この1行で全てが解決しました。 目から鱗です。 ありがとうございました。
329 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 12:26:05 ] Objectとobjectって同じもの?Stingとstringって同じもの?
330 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 12:54:57 ] System.Objectとobjectは同じもの System.Stringとstringは同じもの
331 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 12:59:58 ] global::System.Object とすればさらに正確か
332 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 02:34:19 ] C#やり始めて3年、大体空気するように使えるようになったけれど、F#今初めてどのぐらいでこの域に達するかな・・・ やっぱり日々の仕事で使ってかないと上達しないんだろうな・・・
333 名前:デフォルトの名無しさん [2009/01/09(金) 12:21:41 ] >>332 プログラミング言語なんてひと月ふた月でフルに立ち上がらないようなやつは だめだろ
334 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 12:24:23 ] F#が日々の仕事で使えるわけないがな
335 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 13:37:02 ] >>333 ひと月ふた月でフルに立ち上がるってどんな超人だよw そんな奴いるんだったらうちで月50万で即雇うよ。 住所と名前教えてくれ。 フルってC#で可能な事なら何頼んでもすぐ完成させてくれるって事だよな? マジで雇う。
336 名前:デフォルトの名無しさん [2009/01/09(金) 15:06:09 ] VC#2008EE なんですけど、 コンパイルのたびに前回のコンパイルなどの知識を生かしてPGO(?)、最適化みたいなことって やっているんですか? 意味不明な質問ですいません
337 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 15:11:23 ] >>335 派遣会社にでも相談したら? 月150万出せば、貴方の言う超人レベルの人が来てくれるよ。 >>336 ただの最適化しかしてくれないよ。 PGOみたいな機能はない。
338 名前:336 [2009/01/09(金) 15:15:02 ] ということは、 同じソースコードを同じパソコンでコンパイルしたら大体同じ速度ってわけですか。 (最適化オプションが一致なら) しかしそれがどうもそうじゃない気がして気持ち悪いのですが。 なにかありがちな勘違いとかないですか?
339 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 15:17:22 ] コンパイル時に行われる最適化はローカルな範囲だけ。 どこでコンパイルしても出来上がるILは一緒。 インライン展開が行われたりするのは実行時。
340 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 15:21:30 ] 気がすると言われても困る dllのキャッシュとかその辺のレベルの話もあるわけだし
341 名前:336 [2009/01/09(金) 15:23:53 ] >>339 さん ありがとございました。
342 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 15:25:57 ] VS2008 .net3.5SP1 SmtpClient を使用してメールを送信しようとしています。 2つのLANカードがささってるPCから送信する場合、 指定のLANカード経由でメールサーバーに接続する プロパティや方法などありますでしょうか?
343 名前:336 [2009/01/09(金) 15:28:48 ] >>340 すいません、こういう質問のしかたはよくないな、と思ったんですが。 結果とって計ったりしなかったもので。
344 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 15:32:57 ] >>342 ServicePointプロパティの解説
345 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 15:54:50 ] >>344 ServicePoint.BindIPEndPointDelegate プロパティ でいけそうです。ありがとうございます。
346 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 16:08:41 ] WebBrowserでリンクをクリックした時に、リンク先がpdf等だった場合 IEとかのブラウザが立ち上がってしまうんですが、これを直接pdfのプログラムで開きたい場合は どうしたらいいんでしょうか。
347 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 16:46:05 ] NewWindowイベントを持つ継承クラスを作ってイベントでNewWindowをキャンセルさせて、DLしたファイルを直接開く。
348 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 20:49:08 ] 超人レベルPGが月50万てw 駄クラスでもフリーランスで70万くらいは取ってるだろ。そんな安い金で来るわけねーだろw
349 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 00:04:34 ] >>335 のレベルが推して知れるな
350 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 00:05:52 ] 50万て。何重に搾り取られたゴミ派遣だよ…
351 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 00:58:52 ] マ版へ池
352 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 01:52:33 ] フリーと会社で雇うのは全く違う。 税金とか保険とか退職金とかあるだろ。
353 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 01:53:36 ] www.atmarkit.co.jp/fdotnet/dnfuture/vs10net4_01/vs10net4_01_01.html Parallelクラスいいな・・・
354 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 13:35:06 ] >>351
355 名前:デフォルトの名無しさん [2009/01/10(土) 16:22:42 ] FormのPaintイベントで DrawImageをしているのですが、 たまに Formの上にウィンドウを表示しているところにも DrawImageの一部が描画されてしまいます。 これはいったい何が原因なのでしょうか? ウィンドウを再描画するようにするしか方法はないのでしょうか?
356 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 16:26:21 ] ウインドウってなに
357 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 16:35:24 ] MDI?
358 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 16:35:47 ] 液晶が焼きついたんだろ
359 名前:355 mailto:sage [2009/01/10(土) 19:04:50 ] >>358 それかも。 違うハードで試してみます。
360 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 19:07:29 ] 何という釣り
361 名前:デフォルトの名無しさん [2009/01/10(土) 21:02:12 ] VS2005なんですけど プロパティの自動作成機能ってなかったですっけ? public clas MyClass { public string プロティ って書いて自動でget,set作る機能です。
362 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 21:07:20 ] prop
363 名前:361 mailto:sage [2009/01/10(土) 21:29:44 ] thx
364 名前:デフォルトの名無しさん [2009/01/11(日) 03:29:41 ] 質問です。 CのヘッダーファイルからDllImport行を自動生成するツールってありますか? もしあるようでしたら、場所を教えて欲しいです。
365 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 03:31:38 ] ピンボケドトネト
366 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 09:21:44 ] >>364 ヘッダファイルからじゃないが msdn.microsoft.com/ja-jp/magazine/cc164193.aspx の siggen download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/CLRInsideOut2008_01.exe
367 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 18:28:44 ] >>366 それちゃんとヘッダファイルから生成してくれるよ
368 名前:デフォルトの名無しさん [2009/01/12(月) 20:22:14 ] ジェネリッククラスについていまいち理解できませんのでちょっと教えてください。 クラス内で扱うオブジェクトをDisposeする必要がある場合、 型パラメータにIDisposableの制約を与えます。 新しくクラスを作成するときに、上記のような制約のあるジェネリッククラスを作ればよいのか、 IDisposeインターフェースを継承したクラスを使えばよいのかの判断がわかりません。 継承されたクラスを作るなら作成されたクラスはIDisposeを求められる引数などに使えます。 ジェネリッククラスだとそういうケースでは使えないが、 パフォーマンスや、明示的に型を設定できることが便利です。 インターフェースの制約のあるジェネリッククラスとインターフェースを継承したクラスを 比較した場合、こんな考えでよいでしょうか? なんか自分の理解が足りていない気がしましたので質問させてください。
369 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 20:28:36 ] >>368 質問の意図がわからないし、俺じゃなくてもわかる人間がいる気がしない。 そもそも比較の対象になりようがない二つを比較している気がするんだが
370 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 20:31:18 ] IDisposable はクラスを Dispose 可能にする(Dispose を強制する)ためのインターフェイスであって、 ジェネリックスとは直接関係ない。 クラスの機能としてジェネリックスが必要なのか? をまず考えるべきじゃね?
371 名前:368 mailto:sage [2009/01/12(月) 20:46:15 ] >>369-370 お返事ありがとうです。 インターフェースの制約のあるジェネリッククラスとインターフェースを継承したクラスは 直接なんの関係もない、ということですね。 いろいろな型として振る舞わせたい場合はジェネリッククラス、 そんな必要はない場合はインターフェースの継承。 ジェネリッククラスの機能が導入され、Hashtableクラスはジェネリッククラス版ができ、 進化しました。 ということはジェネリッククラス>通常のクラス と思ったわけです。 ジェネリックの機能の追加によるメリットを受けることができるのは HashTableクラスのようなobject型としてデータを保存し、利用時にキャストしていたような クラス、ということでしょうか? そんな動作をしないようならジェネリッククラスは特にいらない、という解釈です。 まだ考えへんですかね?
372 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 20:51:45 ] >>371 型パラメータに制約のあるジェネリッククラスもインターフェイスを実装できるわけだが。 全く別のものなのに、なんで比べてんの?
373 名前:368 mailto:sage [2009/01/12(月) 20:59:32 ] >>372 >型パラメータに制約のあるジェネリッククラスもインターフェイスを実装できるわけだが この機能考えてませんでした。 だとしたら極論ジェネリッククラスにしておくに超したことはないということでしょうか? リソースやらなんやらで多少はデメリットあると思いますが。 とりあえずジェネリッククラスで実装しておいて利用時に型を限定できますので。 全く別物とは言われるのですが自分の中では未だに ジェネリッククラス>そうじゃないクラス に見えてしまっています。 結論を言うと皆さんの言うように別物なんでしょうが、 まだ理解ができていません。 いろいろなところで解説をみると「この場合ジェネリッククラスは便利」という内容は見かけますが、 「この場合ジェネリッククラスにすると変」みたいな例ありませんか?
374 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:01:54 ] Form クラスをジェネリックスで実装するバカはいないだろJK
375 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:14:20 ] つかジェネリッククラスはメタクラスなわけで、クラスとはレイヤが違うと何度言われれば(ry
376 名前:368 mailto:sage [2009/01/12(月) 21:17:16 ] >>374 例えばこんなクラスですよね? class MyClass<T> where T:Form 実際書いてみました。 利用時にTに設定するクラスが思いつきません。 >>375 とも通じますが、つまり他のクラスを管理するようなクラスでないと ジェネリックにする意味はない、ということでしょうか?
377 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:28:43 ] つか、コンテナ以外の用途って何かあるの?
378 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:32:22 ] IEquatable<T>のようなインタフェース
379 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:36:16 ] へー。勉強になった。実装クラスでは何かある?
380 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:42:40 ] Func<..> やら Linq の中身(処理の連結連結)でも使いまくり だろ。
381 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:49:54 ] ほー。勉強になった。LINQ とかあんま使ってないからなー。
382 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:24:49 ] まーこれも型推論の出来ない静的であるせいなんだが。
383 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:36:28 ] ジェネリックだとHoge<A>とHoge<B>は全くの別物になるからかえって不便になる場合がある そういうときはわざわざ非ジェネリックのIHogeを定義してHoge<>に実装させたりする
384 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:42:12 ] C# 4.0 でその手間もいらなくなるかもね
385 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:46:08 ] 値型は反変ダメだからやっぱり必要だよ
386 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 23:34:41 ] string配列をSettingsクラスを使って保存したいんだけど、型を選ぶところにstring[]が無いんだけどどうすればいいの?
387 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 00:19:56 ] 手で入力する
388 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 01:21:15 ] string[]をCSVに変換して保存する方法あります? CSVからstring[]に変換することも視野に入れて
389 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 01:24:28 ] for/string.split
390 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 01:32:17 ] >>382 型パラメータなんて推論しまくって省略されまくりだろ。 パラメータ化しなければならないってならそうだけど この方式が安全ではあるので仕方ない
391 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 01:32:33 ] 単なるsplitはまずい
392 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 01:51:46 ] 結局グーグルにかけたら↓にデザイナに表示されない型の保存についてのやり方が書いてあったwww dobon.net/vb/dotnet/programing/mysettings.html
393 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 01:54:26 ] CSVのパースって、本当に汎用・厳密にやろうとするとすげー面倒だよな だから、CSV出力・パーズ専用ライブラリを探すか作るかしなくちゃならない。 splitが使えるのは、「データに絶対にカンマが入らない」 とか、「絶対に改行が入らない」 とか、そういう仮定がいくつかおける場合だけだと思う。 C# CSVでググればいくつか出てくるから、ライセンスとかと相談しながら 選ぶか作るかすればいいんじゃね
394 名前:デフォルトの名無しさん [2009/01/13(火) 05:14:59 ] Visual BasicからC#に変える利点ってどのようなものがありますか?
395 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 05:20:50 ] エクスプローラでフォルダを開きたいのですが、 System.Diagnostics.Process.Start("EXPLORER.EXE", path); を使うとウィルスバスターに警告されてしまいます。 もう少し安全な方法はありませんか?
396 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 06:00:36 ] 元々非常に安全なので心配は無用です。
397 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 07:17:48 ] ASP.NETを勉強中ですが、疑問に思ったことがありまして…。 System.Web.UI.Pageにはプロパティーとして「Page」があると思うのですが、 どうしてわざわざ、このようなプロパティを用意しているのでしょうか? System.Web.UI.Pageクラスを継承しているのだから、「this」でいいとおもうのですが…。 ※System.Web.UI.Pageクラスを継承した独自クラスで Pageプロパティとthisを比較したのですが、同じインスタンスでした。 恐らく、何かとても深い意味があるのだと思うのですが、私には思いつきませんでした...orz...
398 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 07:23:01 ] 先祖のControlがもってるんだから仕方ないだろ
399 名前:397 mailto:sage [2009/01/13(火) 07:29:52 ] >>398 レスありがとうございますm(_ _)m そうなのですか…。 あまり、深い意味はないということなんですね…。 ありがとうございましたm(_ _)m
400 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 08:15:32 ] >>399 Page以外のControlもPageプロパティを持ってて、その場合Pageプロパティ != this
401 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 08:48:35 ] 正規表現で半角記号かどうか判断するにはどうしたらいいんでしょうか?
402 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 08:51:22 ] 正規表現 半角記号 でぐぐるといいよ
403 名前:397 mailto:sage [2009/01/13(火) 10:04:40 ] >>400 レスありがとうございますm(_ _)m 参考にさせて頂きます それで、引き続き調べてみたのですが、また1つ疑問が…。 [前提] System.Web.UI.Controlクラスに定義されている「Page」プロパティは System.Web.UI.Pageクラスだと思います。 [試したこと] マスターページを使用してaspxを作成しています。 マスターページ→OrgMasterPage : System.Web.UI.MasterPage コンテンツページ→OrgPage : System.Web.UI.Page ※OrgMasterPageクラスにOrgPageを突っ込んでいます <結果1> OrgMasterPageクラスにて this.Equals(this.page) → true <結果2> OrgPageクラスにて this.Equals(this.page) → true となります。 [不思議におもったこと] [前提]にもあるとおり、「Page」プロパティは、System.Web.UI.Pageクラス。 OrgPageクラスは、System.Web.UI.Pageクラスを継承している為、<結果2>となるのはわかります。 しかし、OrgMasterPageは、System.Web.UI.MasterPageクラスを継承しています。 なのに、<結果1>となります。 System.Web.UI.MasterPageクラスは、System.Web.UI.Pageクラスを継承していないのにどうして 「Page」プロパティ(System.Web.UI.Pageクラスインスタンス)に設定できてしまうのでしょうか;;
404 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:14:52 ] >>393 vbにはcsv専用のparseがあるんだが。 C#からも使えるよ。
405 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:34:05 ] なんとなく"LINQ to CSV"でぐぐってみたら、 www.codeproject.com/KB/linq/LINQtoCSV.aspx ちゃんと作りこんであるのあるじゃん。 ライセンスもCPOLなんで、たいてい大丈夫。
406 名前:364 mailto:sage [2009/01/14(水) 01:50:29 ] >>366 やっと試せたけど、これスゲー!! いいもん教えてくれてありがとう!
407 名前:397 mailto:sage [2009/01/14(水) 01:57:54 ] 大変失礼致しました。完全なる間違いです。 OrgMasterPage.Pageプロパティには、OrgPageクラスインスタンス※1が設定されていました。 大変申し訳ありませんでした。 ※1…正確には、自動生成されるコードに定義されているOrgPageクラスを継承した クラスインスタンスです。
408 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 02:22:27 ] タブコントロールのボタンをドラッグドロップする方法ってありますか?
409 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 11:08:13 ] FormView使って表形式の編集画面作ってるんだが、バインドした データによってある項目を出す、出さないを行いたいんだけど テンプレートベースのFormViewにはちょっときついのかな。 インラインスクリプトで <% if (Eval("hoge").equals("foo")) { Response.Write("<TR>・・・</TR>"); } %> みたいに書ければ良いんだけど、バインドデータを呼び出せないから 当然エラーだし。 なんか、根本的に間違ってるのかな。
410 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 22:34:05 ] C#というより、.NET frameworkの質問なのですが、 Buttonコントロールで、 Image に画像を設定し、 AutoSize を true、 AutoSizeMode を GrowAndShrink に設定すると、 ImageAlign が MiddleCenter になっているにもかかわらず、 画像がボタンの若干右下に数ドット寄って表示されます。 ちゃんとボタンの中央に表示する方法はないでしょうか?
411 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 23:49:36 ] ならんけどな、、うちがVistaだからか?
412 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 23:50:58 ] Windowsサービスを作成しようとしています。 サービスをインストールするためにInstallUtil.exeを使わなければいけないとわかりました。 ここ見てみたのですが、 msdn.microsoft.com/ja-jp/library/aa984379 (VS.71).aspx コマンドプロンプトで「installutil.exe」と打ってもそんなコマンドない、と言われます。 私の環境では「C:\Windows\Microsoft.NET\Framework\v2.0.50727」ここにInstallUtil.exeがあるので 当然カレントディレクトリがここでないとコマンドが通らないのですが、 これってみなさんそうなんでしょうか? いろいろサイトを見るとなんかこのパスが環境変数Pathに設定されているかのような 振る舞いみたいに見えるのですが。。
413 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 23:51:59 ] パスが通ってないのが通常でしょう
414 名前:412 mailto:sage [2009/01/15(木) 23:55:24 ] >>413 やっぱりそうですか。 では自分でパス通しときますね。 ありがとうございます。
415 名前:412 mailto:sage [2009/01/16(金) 00:21:14 ] おかげさまでサービスとしてインストールできたので 早速テスト的にOnStartに以下のコードを書いてサービスを開始しました。 using(FileStream fs = File.Open(sFile, FileMode.Append, FileAccess.Write)) using(StreamWriter sw=new StreamWriter(fs)) { sw.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"+"\t OnStart")); sw.Flush(); sw.Close(); fs.Close(); } するとログに「2009/01/16 00:22:34 OnS午ar午」という化けた内容で書き込まれたのですが これってどうしてでしょうか? あとちょっと別件ですが、上記のコードにファイルオープン時のエラーをcatchするために try,catchを入れたいのですが、こういうusingを使っている時って どの行にtry,catchを書くべきでしょうか?
416 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 00:44:28 ] >>415 ただ単に”OnStart"の場合はどう? usingはdisposeをfinallyで実行してくれるだけ。 using(FileStream fs = File.Open(sFile, FileMode.Append, FileAccess.Write)) { using(StreamWriter sw=new StreamWriter(fs)) { try { // 処理する } catch () { // 例外処理 } } }
417 名前:412 mailto:sage [2009/01/16(金) 01:13:44 ] >>416 返答ありがとうございます。 "OnStart"のみの出力では「OnS午ar午」と出力されてしまいました。 try,catchについて 今回の件ですとファイルオープンのエラーをキャッチしたいので書くとすればこうなりませんか? 少なくともFile.Openはtryブロックの中に書かないといけないと思うのですが。 try { using(FileStream fs = File.Open(sFile, FileMode.Append, FileAccess.Write)) { using(StreamWriter sw=new StreamWriter(fs)) { // 処理する } catch () { // 例外処理 } だとすると今度はusing使ってるからdisposeしてくれるはずですし、 catchの例外処理って大して書くことない? と思って変に感じました。
418 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 01:29:14 ] >>415 Console.WriteLine(DateTime.Now.ToString("tt")); => "午前" の1文字目 sw.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"+"\t OnStart")); => sw.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")+"\t OnStart"); 釣りじゃないよね
419 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 01:32:00 ] つりでした
420 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 01:35:23 ] やっぱりそうか・・・ orz
421 名前:412 mailto:sage [2009/01/16(金) 01:45:35 ] >>418 !!! てっきり文字化けと思って深く考えすぎました。。 ありがとうございます。 >>417 のusingの話はどうでしょうか
422 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 02:11:25 ] >>421 エラーの発生を検出する必要があるため 417の通り、全体を try 〜 catch() で囲む必要はあると思います using を使う場合はリソースの後処理が不要になるというだけですね リソースの後処理は一般的に finally 節でおこなうことが多いため、 このfinally 節部分が省略できることになります ただし、もともとcatch節で書く処理(ログを吐くとかエラーコードを復帰値にいれて返すとか) は必要でしょう
423 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 02:55:06 ] フリーのプロファイラを検索するといくつかあるんですが、 お勧めはどれですか?ざっとググった範囲だと Prof-It for C# NProfiler nprof などが見つかりましたが
424 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 07:06:54 ] 携帯サイトとPCサイトを1つのaspxで対応させたいと思っています。 例えばPHPであれば、 1.クライアントからの要求に対する処理を行う。 2.出力データを編集する。 3.クライアントに応じたテンプレートhtmlを読み込む。 4.読み込んだテンプレートhtmlに、編集されている出力データを設定。 5.クライアントへ返す。 と、いった感じでPHP自体には、HTMLのコーディングを一切行わず、 クライアントに応じたテンプレート化されているファイルを読み込み、 可変部分となる出力するデータを埋めていく。 この際、テンプレートをクライアントに合わせたファイルを使用することで、 1つのPHPで、クライアントに応じたHTMLを返すようなことをしていました。 最近、勉強し始めたASP.NETでは、 「このようなやり方はやらないのかな・・・。」 と、感じました。 通常、1aspxで数種類のhtmlを出力するような場合、どのような方法があるのでしょうか?
425 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 02:12:03 ] Enumを|で連結されてる条件の中に一つの要素(Enum)が入ってるかどうか調べるにはどうすればいいんでしょうか?
426 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 02:30:06 ] 言ってる意味がよくわからんが if((foo & Enum.Hoge) != 0) これが知りたいのか?
427 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 02:34:14 ] >>426 if((foo & Enum.Hoge) == Enum.Hoge) の方が良くないか?
428 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 03:08:58 ] 良いというか、>>426 は間違い Keysとか、こんなのもあるからな [Flags] enum Enum { None = 0, A = 1, B = 2, AB = A | B, } void Hoge() { var e = Enum.A; if((e & Enum.AB) != 0) Console.WriteLine("ABだぜ"); // NG }
429 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 03:14:32 ] そうだった そういやそれでバグ出した事あったわ
430 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 15:38:24 ] ContextMenuStripに自作コントロール乗せるのが出来ないのですが、どうしたらいいのでしょうか? msdn.microsoft.com/ja-jp/library/9k5etstz.aspx を参考にしたのですが 標準で提供されているコントロールの場合は表示できるのですが、独自コントロールの場合細い線だけが表示されます
431 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 15:57:32 ] 何だっけ・・・レイアウト方面も実装しないとサイズが 0 みたいになったような
432 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:38:05 ] TreeViewのパスってもしかしてスペース入ってると駄目なんすか?
433 名前:430 mailto:sage [2009/01/18(日) 16:56:52 ] MinimumSizeを指定することにより解決しました
434 名前:412 mailto:sage [2009/01/18(日) 18:54:18 ] >>422 なるほど。 usingを使えばリソースの解放に関しての記述は必要なくなりますが、 おっしゃるとおりエラーが発生したとき他にも処理がありますね。 ありがとうございました。
435 名前:デフォルトの名無しさん [2009/01/18(日) 22:07:38 ] InstallUtil.exeを使って作成したサービスをインストールしました。 サービスの管理コンソールより開始を選択するとこのエラーが発生しました。 ローカルコンピュータのService1サービスを開始できません。 エラー3:指定したパスが見つかりません。 切り分けたところ実行ファイルがネットワークドライブに配置されていることが問題のようなのですが、 なぜネットワークドライブだと動作しないのでしょうか? ちょっとスレ違いでしょうか? 動かない理由が.NET Frameworksのセキュリティ上の理由かもしれないと思いましたので こちらで質問させていただきました。
436 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 22:09:39 ] サービスの実行アカウントは? そのアカウントはネットワークドライブへのアクセス権限を持ってる?
437 名前:435 mailto:sage [2009/01/18(日) 22:17:38 ] アクセス権は問題ないと思います。 テスト的にeveryoneフルコントールを付与しましたが同じでしたので。 そこで.NET Frameworksのセキュリティを疑い出したわけです。
438 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 22:22:35 ] caspolがそうなってるんだもん
439 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 22:23:11 ] Local System Account は(基本的に)ネットワークリソースにアクセスできない。 つーか、サービスなら普通にローカルコンピュータ上においとけよ。
440 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 22:25:55 ] everyoneでもサービスのアカウントがSYSTEMやNETWORKだったら駄目だぞい。 あとは.NETのバージョンだな。3.5SP1か3.0SP2か2.0SP2なら、 ローカルイントラゾーンに限り起動できる。
441 名前:435 mailto:sage [2009/01/18(日) 22:37:30 ] >>439 もちろんそうなのですが、VSの作業ファイルがネットワークドライブに配置されていますので。 >>440 >>ローカルイントラゾーンに限り起動できる。 こちらは.NET Frameworksのセキュリティ設定でなんとかなりそうです。 >>everyoneでもサービスのアカウントがSYSTEMやNETWORKだったら駄目だぞい これ知りませんでした。 eveyoneってほんとに何でもと思ってました。 これが原因っぽいですね。 解決できてうれしいです。 今回はビルド後のコマンドでローカルにコピーすることにします。 ありがとうございました。
442 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 22:48:13 ] シンボリックリンクでローカルディスクにあるように見せかければ ネットワーク上にあっても大丈夫だったりする
443 名前:435 [2009/01/19(月) 00:14:14 ] >>442 シンボリックリンクってWindowsでいうところのショートカットですよね? ショートカットをサービスに登録ってできましたっけ? ここで質問させてもらいながらWindowsサービス作ってるのですが、 デバッグできなくて困っています。 ビルド→InstallUtil.exeでサービスを実行→サービスコンソールからサービスの開始 →VS2005からアタッチするとよい、ということがヘルプに書いているのですが、 どうもブレークポイントで止まりません。 自分の予想ではサービスに登録した実行ファイルが「\bin\Release」に作成されたもの、 つまりリリースビルドであることが原因と思っています。 デバッグビルドで実行ファイルを作成するにはどうすればよいでしょうか? 「\bin\Debug」に作成されるのかと思ったのですが、アセンブリ名.vshost.exeというファイルがあるだけで見つかりません。
444 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:19:21 ] >>443 442が言っているのは、Vistaで搭載された本物のシンボリックリンクだと思う。
445 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:20:58 ] シンボリックリンクってVistaの新機能じゃなくてNTFSの機能だったと思ったけど。。
446 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:33:21 ] もう一度デバッグビルドし直せよ・・・
447 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:35:56 ] >>445 VistaのNTFSドライバではじめてシンボリックリンクを解釈するようになった、と言えばいいか。
448 名前:435 mailto:sage [2009/01/19(月) 00:38:29 ] >>446 デバッグビルドってどうやるんでしょうか?(汗 昔はツールバーらへんで都度切り替えてビルドしていた記憶があるのですが、 今使ってるVS2005ではなくなっているみたいなのですが。。 おかしいな、とは思ったのですが今回のように作成物がサービスでなければ F5キーでブレークポイントで止めれましたし、ビルド内容を変更するようなところも見あたらなかったので 特に意識していなかったのですが。。
449 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:40:09 ] プロジェクトのプロパティでも見てみろよ・・・
450 名前:435 mailto:sage [2009/01/19(月) 00:46:31 ] >>449 やっぱりそこですよね。 一番に見たのですがどれかわかりません。。 しいて言うなら「アンマネージドコードデバッグを有効にする」 というのがありますが、アンマネージド、なので関係ないように見えますし。。 低レベルな話で申し訳ないです。
451 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:49:19 ] プロジェクトのプロパティ、[ビルド]-[構成]
452 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:50:15 ] ツール→オプション→プロジェクトおよび〜→全般→ビルド構成の詳細を表示
453 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:56:32 ] >>450 あと、やっぱりツールバーにビルド構成のドロップダウンを追加しておいた方がいいよ。 これ2005からデフォではツールバーに表示されなくなったのが個人的には 大いに謎なんだけど。
454 名前:435 mailto:sage [2009/01/19(月) 01:04:00 ] >>451 すみません、見あたりません。。 >>452 おおお!! これです! ビルド構成の詳細を表示、にチェック入れたら メニュー「ビルド」配下に「構成マネージャー」が表示されるようになり、 ここで切り替えることができました。 これを使うとブレークポイントで止めることができました。 今まで知りませんでした。 ありがとうございます。 しかし、構成マネージャーってオプションでチェック入れないと表示されないんですね。 すごく重要に思えるんですが。 しかし構成マネージャーの規定値がReleaseビルドなので 今までずっとReleaseビルドしてたはずなのですが、 なんで今までサービスアプリケーション作成以外の場合この設定でブレークポイントで止めれてたのでしょうか?
455 名前:435 mailto:sage [2009/01/19(月) 01:07:45 ] >>453 すみません、書き込み時の時差で見逃しました。 同意です。 昔ツールバーに表示されてましたよね。 あれ? 今ツールバーに追加しようとしたのですが、 選択項目にないのでVS2005では追加できなくないですか?
456 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 01:50:09 ] できるよ。
457 名前:435 mailto:sage [2009/01/19(月) 02:17:32 ] >>456 あれ、ほんとですか ツールバー右クリック→ユーザー設定 →ツールバータブ の中にそれっぽいのはないので、ここではないですよね?
458 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 04:29:40 ] Directory.GetDirectoriesでとったディレクトリをForeachしてるんですが、 なぜかExistsがFalseになるフォルダがあります。 最後尾にスペース入ってるそうなるようなんですが、防止する方法ってあるんでしょうか?
459 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 10:54:37 ] バグっぽい仕様みたいだね。 ディレクトリなら末尾に \ を付加してやるといいみたい
460 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 16:39:11 ] Visual C# 2008 Express Edition の相談もここでよいのでしょうか?
461 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 16:44:19 ] それはどうかな
462 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 16:46:38 ] IDE自体の問題ならVSスレが立ってたはずだが IDEで作成してるものの質問ならここかもな
463 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 17:49:10 ] で、質問はなにかね?
464 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:09:54 ] 460ではないが質問です。 C#で1つの長い文字列を複数行に分けて書くのってどうしたらいいんでしょう? C++なら行ごとに""で囲めば、その外で改行していようが1つの文字列になるけど、 同じことをC#でやったら怒られました。
465 名前:464 mailto:sage [2009/01/19(月) 18:12:48 ] ググったらあっさり見つかったorz 行末に+を書けば良かったのね。
466 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 21:53:00 ] >>465 string s = @"こんなことも かけちゃうの しってる かい?";
467 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 21:57:29 ] それとついでだ、これも覚えとけ。 @"" だと改行無視、\エスケープなしな全部 入るヒアドキュメントな感じになる。 string hoge = @"1 行目 2 行目"; string path = @"C:\Program Files\Hoge\hoge.exe"; string foo = @"ダブルクオート「""」はこのように。";
468 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:29:06 ] >>466 それだと複数行文字列になる
469 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:30:47 ] >C++なら行ごとに""で囲めば、その外で改行していようが1つの文字列になる これはどうかと
470 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 23:09:25 ] Cには文字列の+演算子なんて無いから "abc" + "def" と書けなくて 文字列リテラルの連結は "abc" "def" みたいに書くからね。 C#にもその書き方を残しても良かったと思うが、+演算子を強要した方が 意図が明確でいいか。
471 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 23:10:55 ] どうかと、って何だ?当然のことだが…
472 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 23:11:44 ] 行ごとでなくてもいいな。
473 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 01:32:52 ] トライグラフに困って""で切ったり「したっけなw
474 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 06:48:39 ] >>468 ならないよ
475 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 10:48:42 ] >>467 > string hoge = @"1 行目 > 2 行目"; これだと「目」と「2」の間にある改行文字もhogeに含まれるから >>464 のニーズには応えられないんじゃない?
476 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:11:58 ] 用途にもよるんじゃないかな。
477 名前:デフォルトの名無しさん [2009/01/21(水) 01:55:36 ] 次のコードの意味がわからなくて悩んでいます。 1:EventLogPermission e = new EventLogPermission(PermissionState.Unrestricted); 2:e.PermitOnly(); ヘルプにかかれていることを自分的に以下のように解釈しました。 1で後で利用するセキュリティ制御のためのインスタンスを作成します。 2で規定のアクセス権のコンストラクタの引数で指定されたもののみでしか アクセスできないように縛りをかけます。 今回のケースでは「PermissionState.Unrestricted」が指定されているので .NET Frameworksのセキュリティ設定でフルアクセスの場合、 さらにフルアクセスの縛りを追加する形になり、結局セキュリティレベルは変わらない、と解釈しました。 ですがこのコードの後にイベントのアイテムを読み取るコードを書くと アクセス許可でエラーが発生してしまいます。 意図した結果と違うので自分が勘違いしていると思うのですが どの辺がおかしいでしょうか。
478 名前:デフォルトの名無しさん [2009/01/21(水) 02:49:00 ] C#が.NET Frameworkでなければならない理由って何なの? むしろBorlandDelphiVCLみたいな感じのほうがよかったんじゃないの? Linux版の.NET Frameworkが普及すればLinuxの利用者が増えて Windowsの売り上げが下がるよね。 おそらくWindowsはカーネルごと新しくなることが あるからそれを意識してるんだと思う。 つまりXPとVistaをMacやLinuxと同じように まったく別のOSと捉えているってことだよね。 正解でしょ?
479 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 07:11:57 ] ぜんぜん違うだろw
480 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 07:32:57 ] >>478 お前は何を言っているんだ
481 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 07:36:30 ] >>478 前後のつながりがまったくない
482 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 07:47:54 ] 違うにも甚だしい
483 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 08:36:25 ] >>477 その考えであってると思うけど、別に原因があるのでは。 再現性のあるコードアップしてくれたら調べるよ。
484 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 08:48:43 ] >>478 一行目から間違ってるだろw
485 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 14:51:15 ] むしろ生まれてきたこと自体間違い
486 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 15:50:14 ] 生まれてすみません
487 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 16:13:51 ] 俺もすいません
488 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 16:16:51 ] お父さん、お母さん、生んでくれてありがとう。
489 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 16:55:17 ] >>478 > カーネルごと新しくなること それは結構当たっていると思う。 ただし、XPとVistaではなく、x86とx64とIA-64とMobile/CE系各種のようなアーキテクチャの違い。
490 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:00:52 ] .NETはActivXやCOMの延長線上のものなんだっけか?
491 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 17:32:12 ] VS2010のMEF標準搭載で、やっとCOMが.NETで置き換わりそうな雰囲気になってきたな
492 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 18:36:30 ] MEFって何よ
493 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:00:56 ] Managed Extensibility Framework マネージコードでプラグイン書けるようにするための新しい.NETのライブラリ VS2010にも使用される
494 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:18:37 ] これはうれしいよね