ふらっとC#,C♯,C#(初心者用) Part41
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/06/06(土) 12:30:18「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part40
http://pc12.2ch.net/test/read.cgi/tech/1239599317/
0002デフォルトの名無しさん
2009/06/06(土) 12:31:32C#, C♯, C#相談室 Part52
http://pc12.2ch.net/test/read.cgi/tech/1238548552/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
http://pc11.2ch.net/test/read.cgi/tech/1231506876/
----参考サイト
http://www.google.co.jp/
http://msdn.microsoft.com/ja-jp/library/default.aspx
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/
0003デフォルトの名無しさん
2009/06/06(土) 14:16:040004デフォルトの名無しさん
2009/06/06(土) 17:09:29前スレ埋まりage
0005デフォルトの名無しさん
2009/06/06(土) 17:16:24> で,言いたいことは?
VB.NET >>>> C#
0006デフォルトの名無しさん
2009/06/06(土) 17:17:100007デフォルトの名無しさん
2009/06/06(土) 17:30:55>他の.NET系の言語でも記述可能だが、生産性・機能においてC#が最も優れるとされる。
Wikipediaだけどこんなこと誰が言ったんだろ
0008デフォルトの名無しさん
2009/06/06(土) 17:32:27http://pc12.2ch.net/test/read.cgi/tech/1242522019/129
123 名前:デフォルトの名無しさん[] 投稿日:2009/06/05(金) 20:54:00
VB.NETのオープンソースプロジェクト自体ほとんどないから諦めてC#読めるようになるといいよ
0009デフォルトの名無しさん
2009/06/06(土) 17:34:49お前大人だな、見習ってスルーするわ
0010デフォルトの名無しさん
2009/06/06(土) 19:07:230011デフォルトの名無しさん
2009/06/06(土) 19:18:220012デフォルトの名無しさん
2009/06/06(土) 21:33:58VS2005かそれ以前ならVS2008を買う、デザイナがバグっとる、結局治らんかった。
>>前997
>C++を使えて、C#を高く評価する輩には、VB.NETも使える輩はいないと仮定する。
何言いたいのか訳わからんがあり得ない仮定だな、.NetのサンプルにVBが多い以上読めないわけにはいかない、特にDB周り。
つか知らなくてもカンで読めるだろ
0013デフォルトの名無しさん
2009/06/06(土) 21:41:270014デフォルトの名無しさん
2009/06/06(土) 22:05:230015デフォルトの名無しさん
2009/06/06(土) 22:14:080016デフォルトの名無しさん
2009/06/06(土) 22:17:120017デフォルトの名無しさん
2009/06/06(土) 22:20:53C#がJavaを追い抜いて一番売れているそうだぞ(大体40%くらい)
オレはVB.NET自体がC#の糖衣表現のように感じてるなぁ。
0018デフォルトの名無しさん
2009/06/06(土) 22:28:32気がする。
感じてるなぁ。
0019デフォルトの名無しさん
2009/06/06(土) 22:29:33検索件数はC#の方が多い
これでいいのかな?VB大敗北だな
0020デフォルトの名無しさん
2009/06/06(土) 22:33:160021デフォルトの名無しさん
2009/06/06(土) 22:34:430022デフォルトの名無しさん
2009/06/06(土) 22:36:56じゃあ、日本でその状態になるのは5年後じゃね?<日米の流行の時間差
0023デフォルトの名無しさん
2009/06/06(土) 22:38:210024デフォルトの名無しさん
2009/06/06(土) 22:38:37.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0025デフォルトの名無しさん
2009/06/06(土) 22:38:41.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0026デフォルトの名無しさん
2009/06/06(土) 22:38:44.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0027デフォルトの名無しさん
2009/06/06(土) 22:38:47.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0028デフォルトの名無しさん
2009/06/06(土) 22:38:50.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0029デフォルトの名無しさん
2009/06/06(土) 22:38:53.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0030デフォルトの名無しさん
2009/06/06(土) 22:39:000031デフォルトの名無しさん
2009/06/06(土) 22:39:42選べる状況ならそうするけど
今は何でもいいから仕事がほしい
0032デフォルトの名無しさん
2009/06/06(土) 22:40:290033デフォルトの名無しさん
2009/06/06(土) 22:40:47ソース
0034デフォルトの名無しさん
2009/06/06(土) 22:57:30しつこいようだとやっちゃうぞ?
0035デフォルトの名無しさん
2009/06/06(土) 23:02:58でもシェアトップというのは本当だ。
http://www.atmarkit.co.jp/news/200902/27/langs.html
0036デフォルトの名無しさん
2009/06/06(土) 23:08:410037デフォルトの名無しさん
2009/06/06(土) 23:09:52素直にVB.NETにすればいいのに。
VBなら馬鹿にされると思って、見栄でC#やってるだけだろ。
0038デフォルトの名無しさん
2009/06/06(土) 23:11:120039デフォルトの名無しさん
2009/06/06(土) 23:16:08言語としてできることにそれほど差があるわけではないが、
まあ全体的な生産性からみてC#を選択するのが無難だろ。
0040デフォルトの名無しさん
2009/06/06(土) 23:20:20実際、最新の機能はC#へが先だしな
0041デフォルトの名無しさん
2009/06/06(土) 23:33:04SafeHandle や HandleRef の使い方がわからなくて
全部、IntPtr にしてるんだけどやっぱりまずいよね?
ぐぐってみたが使いどころがよくわからないんだけど
誰か教えてくれないか?
0042デフォルトの名無しさん
2009/06/06(土) 23:41:280043デフォルトの名無しさん
2009/06/06(土) 23:44:080044デフォルトの名無しさん
2009/06/06(土) 23:48:14C#なんて構文ちょろっと覚えるだけで使えるようになるのに何故騒いでるんだ?
>>37
何?お前VBに劣等感とか持っちゃってるの?wwアホくさ
0045デフォルトの名無しさん
2009/06/06(土) 23:51:11getterだけあればいいばあい。
もしくはgetterとsetterが必要で、setterに特に追加の引数を必要としない場合はプロパティでよい。
0046デフォルトの名無しさん
2009/06/07(日) 00:01:15それを呼び出す手段は別になんだってできることは同じ。
VBでもC#でも、もっと別の言語でも。
0047デフォルトの名無しさん
2009/06/07(日) 00:22:04開発の歴史を知らない感じの発言だな。
それを実現するまでにどれぐらい時間がかかってるか理解してる?
0048デフォルトの名無しさん
2009/06/07(日) 00:30:58サイトで色々調べてみたのですが、C#の方が向いていると言うのと、
ライブラリ(これがどれほどの役に立つものかは理解していませんが)が充実しているという点でC++でやったほうがいいという意見で別れています
0049デフォルトの名無しさん
2009/06/07(日) 00:35:11商用でゲームプログラムを作っている立場のものだが、
実際にどちらにするか迷う。
従来はC++の一点張りだったが、C#は圧倒的に開発効率がいいし、
DirectXのサポートも問題ない。
問題は外部ライブラリの使用と特にスクリプトをどうするかで、
.NETには使い勝手の良いライトウェイト言語がまだ実用化されていないように思える。
(IronPythonなどがあるが、あんなにコンパイルに時間がかかって実用になるのか?)
だが、C#でゲームを作るというのは十分ありだと思うよ。起動は遅くなるけど。
0050デフォルトの名無しさん
2009/06/07(日) 00:43:24プロの方でも迷う問題ですか
とりあえず製作がまだ簡単そうな、C#でやってみることにします。ありがとうございました
0051デフォルトの名無しさん
2009/06/07(日) 00:44:18IronPythonは.NETアセンブリに事前コンパイルできたように記憶している。
他のDLR言語は知らない。
0052デフォルトの名無しさん
2009/06/07(日) 00:54:52諦めて自分で管理か
0053デフォルトの名無しさん
2009/06/07(日) 01:04:22そんなわけない
50ページ以下で出版されてるC#の本などない。
何百ページもの学習量がある。
0054デフォルトの名無しさん
2009/06/07(日) 01:10:350055デフォルトの名無しさん
2009/06/07(日) 01:11:34前提抜かすな
0056デフォルトの名無しさん
2009/06/07(日) 01:11:35RubyやPythonみたいなスクリプト系は癖が強すぎるので絶対奨めない
基本学ぶならC#が取っつきやすくていい
0057デフォルトの名無しさん
2009/06/07(日) 01:21:130058デフォルトの名無しさん
2009/06/07(日) 01:21:45どうにも、実はCすらできないC++厨臭いんだがw
0059デフォルトの名無しさん
2009/06/07(日) 01:22:08あとはどの言語もリファレンス引きながら何とかなる。
プログラミング的「センス」ってのはあるけど、多少ださいソースでも
昨今の「ハイパワー」が補ってくれる。
ツールへの習熟度は軽視できないけど、
それよりも作る物の目的やその結果が全てでがしょ?
0060デフォルトの名無しさん
2009/06/07(日) 01:35:36私はそうは思わない(癖が強い)けど、
まあ動的型言語と静的型付け言語とどちらを先に覚えるべきかと言えば、
静的型付けかもしれないなぁ。
でも動的型言語は最初にプログラムを作るのに覚えることが少ないから初心者向きともいえる。
教える側のスキルによっても結論は変わってきそうだ。
0061デフォルトの名無しさん
2009/06/07(日) 01:43:480062デフォルトの名無しさん
2009/06/07(日) 01:46:43自分の弱点等には気付かないタイプだな。
0063デフォルトの名無しさん
2009/06/07(日) 01:47:330064デフォルトの名無しさん
2009/06/07(日) 01:48:14C#がちょろっとできるようになっちゃったもんでつい調子に乗っちまった
0065デフォルトの名無しさん
2009/06/07(日) 01:49:550066デフォルトの名無しさん
2009/06/07(日) 01:57:53C++ って結局落とし穴やら最低必要な予備知識が多すぎてその
一般論すら通用しないんだよなぁとふと思った。
0067デフォルトの名無しさん
2009/06/07(日) 02:07:230068デフォルトの名無しさん
2009/06/07(日) 02:10:23これまた曖昧な概念を持ち出したな
0069デフォルトの名無しさん
2009/06/07(日) 03:37:050070デフォルトの名無しさん
2009/06/07(日) 03:45:330071デフォルトの名無しさん
2009/06/07(日) 03:50:25自分の作るものがどちらで作るのが向いているのかで考えればいいんじゃないかな。
0072デフォルトの名無しさん
2009/06/07(日) 03:58:170073デフォルトの名無しさん
2009/06/07(日) 04:01:460074デフォルトの名無しさん
2009/06/07(日) 04:04:13使い方次第
0075デフォルトの名無しさん
2009/06/07(日) 04:41:250076デフォルトの名無しさん
2009/06/07(日) 06:09:45どっかにプロジェクトをアップロードしたら、このスレで添削してもらえますか?
0077デフォルトの名無しさん
2009/06/07(日) 06:51:280078デフォルトの名無しさん
2009/06/07(日) 07:23:28007976
2009/06/07(日) 07:26:17ttp://ponyo.no-ip.org/uploader0/src/01P0450.zip.html
テキストボックスにgoogleのソースを表示するだけなんですが、
テキストが全洗濯状態になってしまいます。
どこを直せばいいんでしょうか。
C#2008です。
008076
2009/06/07(日) 07:29:03禁則処理(?)をなくして、単語の途中で改行するのを許可して、右端にスペースが
あかないようにする設定はありますでしょうか。
0081デフォルトの名無しさん
2009/06/07(日) 07:33:33これから作るソフトにC#とVB.Netのどちらを選ぶか、って話には歴史関係ないじゃん
0082デフォルトの名無しさん
2009/06/07(日) 10:18:31カーソル位置を設定していないと、フォーカス来たときに全選択になるんじゃないかな。
文字列設定した後に、textBox1.Select(0, 0);でカーソル位置先頭にするとか。
ワードラップは、、、、EM_SETWORDBREAKPROCを直接設定するしかないかも。
0083デフォルトの名無しさん
2009/06/07(日) 10:32:20質問の仕方が怪しいな
DirectX使うっていうのは関数一つ二つでちょこっとできるようなものじゃないよ
使うとなるとプログラム全体がDirectXに染まる
ManagedDirectXとかSlimDXとか
0084デフォルトの名無しさん
2009/06/07(日) 13:20:41VBで数値(文字コード)を文字列に変換する部分で
s = Chr(x) + Chr(y)
をC#になおしたいのですが、自力で書き換えてみたらこんなに長くなってしまいました。
もうちょっと短く書く方法はないでしょうか?
とくにToString()を1文字ごとに呼び出すのが無駄っぽく思えるのですが。
s = ((char)x).ToString() + ((char)y).ToString();
0085デフォルトの名無しさん
2009/06/07(日) 13:26:22C#で1文字ごとに処理すること自体あまりやらないことなので、
敢えて1文字ずつ処理してしまう場合にはそうなるのも仕方ないんじゃね?
0086デフォルトの名無しさん
2009/06/07(日) 13:27:060087デフォルトの名無しさん
2009/06/07(日) 13:29:082文字だったら、別に書き換える必要はないと思うけど。
どうしても、ToStringが嫌なら
s = new string(new[] { (char)x, (char)y });
0088デフォルトの名無しさん
2009/06/07(日) 13:31:43中でToStringされるから意味も実際の動作も全く同じだけどどっちにしてもChrよりは速いよ
0089デフォルトの名無しさん
2009/06/07(日) 13:33:46わかりました。
今回はchr関数を自作して置き換えることにします。
0090デフォルトの名無しさん
2009/06/07(日) 13:35:270091デフォルトの名無しさん
2009/06/07(日) 13:38:43色々ありがとうございます。実際はもうちょっと式が長いんです。
とりあえず、一通り試してみます。
ちなみに単純なプログラムなので処理速度は問いません。
あくまでもVBからの移植性とか可読性(式の単純さ)の方を重視したいと思っています。
CharからStringへの暗黙の変換がないのはどうしてなんでしょうね。
ずっとVBばかりやってきたので不思議でしょうがありません。
0092デフォルトの名無しさん
2009/06/07(日) 13:40:39すいません。その方法をもうちょっと詳しく教えてください。
そのexeはVB(のランタイム)の入ってないマシンでも実行できますか?
0093デフォルトの名無しさん
2009/06/07(日) 13:42:370095デフォルトの名無しさん
2009/06/07(日) 13:52:07今回のchrとか、自作の関数をどこかにまとめていつでも使えるようにしておきたいのですが、
C#2008の流儀ではどうするのが推奨されているのでしょうか。
昔覚えたC言語ではlibフォルダにソースを入れておいて、<#include jisaku_lib.c>みたいにして
使ってた覚えがあるんですが。
0096デフォルトの名無しさん
2009/06/07(日) 13:54:02VBのランタイムって、今のバージョンなら .NET Framework だよ。
なので、.NET Framework が入ってれば使える。
0097デフォルトの名無しさん
2009/06/07(日) 13:55:07クラスライブラリプロジェクトを作って、アセンブリかプロジェクトを参照。
0098デフォルトの名無しさん
2009/06/07(日) 13:56:22http://msdn.microsoft.com/ja-jp/library/8ksw88aw(VS.80).aspx
0099デフォルトの名無しさん
2009/06/07(日) 13:58:17なるほど、.NETが共通のライブラリなんですね。
ライブラリが共通なのに使える関数が言語ごとに違うのはなんとなく不思議な感じがします。
0100デフォルトの名無しさん
2009/06/07(日) 13:59:19そこまでするほどではないと思うなら変なこと考えるよりソースコードをコピーしちゃったほうがいい
細かい依存が増えるとかえって煩雑になる
0101デフォルトの名無しさん
2009/06/07(日) 14:01:33それか開設してるサイトがあれば教えてください
VBからVCに移行したばかりなので、VBの関数を使えればすごく楽になりそうです
0102デフォルトの名無しさん
2009/06/07(日) 14:01:35あ、なるほどわかりました。
「新しいプロジェクト」のテンプレートから「クラス ライブラリ」を選ぶんですね。
今まで一番先頭の「フォーム アプリ」しか選んだことがありませんでした。
0103デフォルトの名無しさん
2009/06/07(日) 14:03:42こことか参考になるかな?
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37654&forum=7
0104デフォルトの名無しさん
2009/06/07(日) 14:04:11VC では無理。C++/CLI を除く。
0105デフォルトの名無しさん
2009/06/07(日) 14:08:240106デフォルトの名無しさん
2009/06/07(日) 14:13:56あんまりここでVBVB言わない方がいいよ
VB使いたくないから使う言語なんで
0107デフォルトの名無しさん
2009/06/07(日) 14:15:40そうなのですか、ありがとうございました
>>106
分かりました、すいませんでした
0108デフォルトの名無しさん
2009/06/07(日) 14:31:18始めたばかりなので、なんでもやってみたいんです。
それに、クラスライブラリの作り方も覚えておいて損はないと思うので。
で、とりあえずライブラリはできたんですが、ちょっとイメージと違っていたので
もうちょっと教えてください。参照設定にjisakuを入れて
先頭にusing jisaku; を足して、作った関数を使う場合、クラス名は省略できないんでしょうか。
今は、当然ですがClass1.chr()と書かないとエラーになります。
他の組み込み関数のように、いきなり関数名だけを書けるようにはできないでしょうか。
0109デフォルトの名無しさん
2009/06/07(日) 14:48:49そもそも、C#に組み込み関数なんてないぞ。
0110デフォルトの名無しさん
2009/06/07(日) 15:11:13型に厳しいのだって同じ
それはそれでメリットもあって、そういう「文化」なんだよ
0111デフォルトの名無しさん
2009/06/07(日) 15:15:30決して悪くない方法だよな。名前の衝突がその分起こりにくくなる。
0112デフォルトの名無しさん
2009/06/07(日) 15:22:51未だに自動で変数の候補表示してくれねえし、予約語も認識しないし
いつになったらC#と同レベルになるのやら
0113デフォルトの名無しさん
2009/06/07(日) 15:25:26暗黙の型変換ってバグの温床になるからなぁ。
0114デフォルトの名無しさん
2009/06/07(日) 15:26:33だいぶ良くなってるよ。
C++はまず、インテリセンスが効かなくなるって状況がなくなっただけで感動しないと行けないレベル。
最初からツールアシストまで考えて設計されてる言語とC++比べたらかわいそう。
0115デフォルトの名無しさん
2009/06/07(日) 15:31:06一度に覚えないといけないことが少ないからなぁ。
C++の諸悪の根源は、マクロと#includeとtypedefだな。
スレ違いだが。
0116デフォルトの名無しさん
2009/06/07(日) 15:38:350117デフォルトの名無しさん
2009/06/07(日) 15:40:500118デフォルトの名無しさん
2009/06/07(日) 15:42:03最悪なのは define マクロだよ、これが全てのツールを全滅させる。
インテリセンスやドキュメント生成、果てはテストツールまで
文法も破壊してしまうし、理解できない深刻なバグも誘発する。
0119デフォルトの名無しさん
2009/06/07(日) 15:42:54C#のdefineは、マクロじゃないぞ
0120デフォルトの名無しさん
2009/06/07(日) 15:47:59流れ読めるならそんなツッコミは出ないはずなのだが…
0121デフォルトの名無しさん
2009/06/07(日) 15:49:190122デフォルトの名無しさん
2009/06/07(日) 17:27:250123デフォルトの名無しさん
2009/06/07(日) 17:41:140124デフォルトの名無しさん
2009/06/07(日) 17:50:480125デフォルトの名無しさん
2009/06/07(日) 18:53:07>>107
参照設定でMicrosoft.VisualBasic.dllを入れると
Microsoft.VisualBasicという名前空間でVB固有のクラスが使えるようになる
C言語は文字列をcharの配列で代用するという文化があって、
今でもCharとChar[]とStringを厳密に区別するから
文字列の処理は微妙にややこしいんだよな。
一番VBを使いたくなるのは、たぶんこういう時。
0126デフォルトの名無しさん
2009/06/07(日) 19:48:21これ関係なくない?
むしろ、スクリプト言語の
どんどん暗黙の型変換を行いますよ
っていう文化の有無によるものだと思うんだけど
0127デフォルトの名無しさん
2009/06/07(日) 20:09:230128デフォルトの名無しさん
2009/06/07(日) 20:22:27マクロだって微量のスタック領域しかない昔の処理系ではとくに有用なんだよ。
0129デフォルトの名無しさん
2009/06/07(日) 20:25:290130デフォルトの名無しさん
2009/06/07(日) 20:29:33ダイヤモンドの原石とダイヤモンドを比べて原石のほうを時代遅れと言ってるようなもの。
0131デフォルトの名無しさん
2009/06/07(日) 20:31:12マクロがなかったらMFCなんか使えたもんじゃないよ。
0132デフォルトの名無しさん
2009/06/07(日) 20:35:180133デフォルトの名無しさん
2009/06/07(日) 20:54:43さぞほくそ笑んでるだろうよ
0134デフォルトの名無しさん
2009/06/07(日) 20:57:20今後もC++使いたい奴は話し相手がいないからってここに来るなよw
0135デフォルトの名無しさん
2009/06/07(日) 21:03:00ある意味、C++の愚痴大会w
0136デフォルトの名無しさん
2009/06/07(日) 21:16:120137デフォルトの名無しさん
2009/06/07(日) 21:20:47C#の前にC++やっといたほうがいい?
0138デフォルトの名無しさん
2009/06/07(日) 21:22:07経験はあるよ、そりゃ当然、オレおっさんだし。
0139デフォルトの名無しさん
2009/06/07(日) 21:27:27C++の知識はいらんけど、Cのライブラリの呼び出し方とCOMの知識はあると便利
0140デフォルトの名無しさん
2009/06/07(日) 21:37:19今から始めるなら別にC++要らない。
(参考程度に後から調べるとかはありだと思うけど)
今C++愚痴まくってるのは、俺含めみんな多分おっさん。
0141デフォルトの名無しさん
2009/06/07(日) 21:42:28そんなにC++って面倒なのですか?
C#の方がメリットがありそうな感じとwikiで読んだぐらいなので、実感はありませんが
そんなに面倒ならC++組もC#に乗り換えればいいと思うんですがねぇ
0142デフォルトの名無しさん
2009/06/07(日) 21:46:18しつこい、C++スレに池
0143デフォルトの名無しさん
2009/06/07(日) 21:47:350144デフォルトの名無しさん
2009/06/07(日) 21:49:21textbox2.Text = "1" + "あ";
これを
string s = "1";
textbox1.Text = s;
textbox2.Text = s + "あ";
って書く意味は何が有利なの?
0145デフォルトの名無しさん
2009/06/07(日) 21:50:21C++経験ない人は劣等感ありまくりだな。
0146デフォルトの名無しさん
2009/06/07(日) 21:50:530147デフォルトの名無しさん
2009/06/07(日) 21:50:580148デフォルトの名無しさん
2009/06/07(日) 21:51:090149デフォルトの名無しさん
2009/06/07(日) 21:51:530150デフォルトの名無しさん
2009/06/07(日) 21:52:370151デフォルトの名無しさん
2009/06/07(日) 21:52:42スレ違い
0152デフォルトの名無しさん
2009/06/07(日) 21:52:58それだけじゃねーだろ。コンパイル結果見ろ。見て分からなきゃ市ね。
0153デフォルトの名無しさん
2009/06/07(日) 21:53:32どんだけ劣等感持ってんだよw
0154デフォルトの名無しさん
2009/06/07(日) 21:55:43分からん
死ぬ前に教えてくれ
0155デフォルトの名無しさん
2009/06/07(日) 21:56:030156デフォルトの名無しさん
2009/06/07(日) 21:57:340157デフォルトの名無しさん
2009/06/07(日) 21:57:350158デフォルトの名無しさん
2009/06/07(日) 21:58:37あのさぁ、過剰反応つーか、埋め尽くすなよって話だろ
ここなんのスレだよ?言ってみろ
0159デフォルトの名無しさん
2009/06/07(日) 21:58:520160デフォルトの名無しさん
2009/06/07(日) 22:00:47反応しないでスルーできないのか? スルーしたら埋め尽くされないの。2ch初心者?
おまえみたいのがいるから荒れるんだよ。
0161デフォルトの名無しさん
2009/06/07(日) 22:02:12スルーしろっつってんだよ。馬鹿か?
0162デフォルトの名無しさん
2009/06/07(日) 22:02:150163デフォルトの名無しさん
2009/06/07(日) 22:02:41だまれ
0164デフォルトの名無しさん
2009/06/07(日) 22:03:02【魔力】書き込むと願いが必ず叶うスレ【強力】409
だろが
0165デフォルトの名無しさん
2009/06/07(日) 22:04:110166デフォルトの名無しさん
2009/06/07(日) 22:04:580167デフォルトの名無しさん
2009/06/07(日) 22:05:08VB スレに誤爆すんなよw
0168デフォルトの名無しさん
2009/06/07(日) 22:05:310169デフォルトの名無しさん
2009/06/07(日) 22:06:030170デフォルトの名無しさん
2009/06/07(日) 22:06:220171デフォルトの名無しさん
2009/06/07(日) 22:08:37上でも下でも出力は一緒ね、メンテの問題だけね、変なやついるから相手すんなよ
0172デフォルトの名無しさん
2009/06/07(日) 22:10:140173デフォルトの名無しさん
2009/06/07(日) 22:11:01分かってないな。そんな話じゃないだろ。
0174デフォルトの名無しさん
2009/06/07(日) 22:11:390175デフォルトの名無しさん
2009/06/07(日) 22:12:310176デフォルトの名無しさん
2009/06/07(日) 22:12:430177デフォルトの名無しさん
2009/06/07(日) 22:14:070178デフォルトの名無しさん
2009/06/07(日) 22:16:170179デフォルトの名無しさん
2009/06/07(日) 22:21:590180デフォルトの名無しさん
2009/06/07(日) 22:23:52お前変過ぎる、精神病院へいけ、今すぐ
0181デフォルトの名無しさん
2009/06/07(日) 22:28:46ふつうに考えてC#のコンパイル結果ってILの話だと思うぞ。
0182デフォルトの名無しさん
2009/06/07(日) 22:30:27スレが荒れているので聞き流されるかもしれないが、C#のコンパイラはあまり最適化などかけず、
かなり素直なコードを吐き出すんだが、それを知っているんだろうか。
public void SampleMethod1()
{
this.textBox1.Text = "1";
this.textBox2.Text = "1あ";
}
public void SampleMethod2()
{
string s = "1";
this.textBox1.Text = s;
this.textBox2.Text = s + "あ";
}
最初の質問の例を一旦コンパイルした後、ディスアセンブルするとこんな感じになる。
ほとんど最適化されてない。
0183デフォルトの名無しさん
2009/06/07(日) 22:35:400184デフォルトの名無しさん
2009/06/07(日) 22:39:250185デフォルトの名無しさん
2009/06/07(日) 22:42:36ILやメタデータって string s のローカル変数名を保持してんの?
もしそうなら恥ずかしい名前つけれないんだが。
0186デフォルトの名無しさん
2009/06/07(日) 22:45:18そんなことは当たり前のことだから省略した。長かったからな。
>>185
そう。だから.NET用の難読化ツールとかが出回ってたりする。
前のスレでも話題になった。
0187デフォルトの名無しさん
2009/06/07(日) 22:46:22保持はしていないね、直接定数をロードしている。
ちなみに const string s = 1; としてしまえばどちらも一緒。
0188デフォルトの名無しさん
2009/06/07(日) 22:49:09IL_0000: ldarg.0
IL_0001: ldfld class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication2.Form1::textBox1
IL_0006: ldstr "1"
IL_000b: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_0010: ldarg.0
IL_0011: ldfld class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication2.Form1::textBox1
IL_0016: ldstr "1a"
IL_001b: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_0020: ret
ちなみにこんな感じだね、しかしこんなのチクチク詰めていっても関係無くないw
あほくさあほくさ
0189デフォルトの名無しさん
2009/06/07(日) 22:50:030190デフォルトの名無しさん
2009/06/07(日) 22:50:38>>182 はガセ?
0191デフォルトの名無しさん
2009/06/07(日) 22:51:290192デフォルトの名無しさん
2009/06/07(日) 22:52:50.method public hidebysig instance void SampleMethod2() cil managed
{
.maxstack 3
.locals init (
[0] string s2)
L_0000: ldstr "1"
L_0005: stloc.0
L_0006: ldarg.0
L_0007: ldfld class [System.Windows.Forms]System.Windows.Forms.TextBox ImageComposer.Form1::textBox1
L_000c: ldloc.0
L_000d: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
L_0012: ldarg.0
L_0013: ldfld class [System.Windows.Forms]System.Windows.Forms.TextBox ImageComposer.Form1::textBox2
L_0018: ldloc.0
L_0019: ldstr "\u3042"
L_001e: call string [mscorlib]System.String::Concat(string, string)
L_0023: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
L_0028: ret
}
0193デフォルトの名無しさん
2009/06/07(日) 22:52:510194デフォルトの名無しさん
2009/06/07(日) 22:53:51名前になっているのではないかと疑ったので変えてみた。
0195デフォルトの名無しさん
2009/06/07(日) 22:56:46おや、おれのと結果違うね
.method private hidebysig instance void Test2() cil managed
{
// コード サイズ 41 (0x29)
.maxstack 3
.locals init (string V_0)
IL_0000: ldstr "1"
IL_0005: stloc.0
IL_0006: ldarg.0
IL_0007: ldfld class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication2.Form1::textBox1
IL_000c: ldloc.0
IL_000d: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_0012: ldarg.0
IL_0013: ldfld class [System.Windows.Forms]System.Windows.Forms.TextBox WindowsFormsApplication2.Form1::textBox1
IL_0018: ldloc.0
IL_0019: ldstr "a"
IL_001e: call string [mscorlib]System.String::Concat(string,
string)
IL_0023: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_0028: ret
} // end of method Form1::Test2
まっ、こんなのはコンパイラのバージョン次第で何でてるくかなどコンパイラの作り手の勝手なわけですが。
0196デフォルトの名無しさん
2009/06/07(日) 22:59:040197デフォルトの名無しさん
2009/06/07(日) 23:01:27アセンブリ自体には含まれない
0198デフォルトの名無しさん
2009/06/07(日) 23:04:17おかしくね?
0199デフォルトの名無しさん
2009/06/07(日) 23:04:400200デフォルトの名無しさん
2009/06/07(日) 23:05:450201デフォルトの名無しさん
2009/06/07(日) 23:08:330202デフォルトの名無しさん
2009/06/07(日) 23:18:480203デフォルトの名無しさん
2009/06/07(日) 23:22:07C++サイコーっていいたいなら巣に帰れって事
0204デフォルトの名無しさん
2009/06/07(日) 23:25:41一人必死でC++叩いてる奴が荒らしてただけだよ。
0205デフォルトの名無しさん
2009/06/07(日) 23:30:090206デフォルトの名無しさん
2009/06/07(日) 23:34:100207デフォルトの名無しさん
2009/06/07(日) 23:37:31そしたら、こんなスレッドで嫌がらせなどしなくても自信もって生活できるようになる。
0208デフォルトの名無しさん
2009/06/07(日) 23:48:10>>142が反応した
という流れじゃなかろうか
0209デフォルトの名無しさん
2009/06/07(日) 23:50:46インクリメンタルサーチ式になったけど、あれはもう旧式に戻らないのか?オプションに設定項目はなかったが
進化だとしても旧式も用意して欲しいもんだ
0210デフォルトの名無しさん
2009/06/08(月) 00:03:540211デフォルトの名無しさん
2009/06/08(月) 00:15:42そうやって煽ってるのはおまえ一人だけなんだが。さっさと消えろカス。
0212デフォルトの名無しさん
2009/06/08(月) 04:04:23Google LABSのソースコード検索をマニュアルの補助に使っているのですが、
ちょっと疑問に思うコードがあったので教えてください。
リソースの解放を確実に行うため、usingを使ってスコープを定義すると
いう方法があると思うのですが、そのコードではこう書かれていました。
SQLiteDataReader reader;
using (reader = command.ExecuteReader())
{
何かの処理
}
この様にusingの外にDataReaderを定義して、usingの終わりで確実に
Dispose()されるのでしょうか?
0213デフォルトの名無しさん
2009/06/08(月) 04:12:07SQLiteDataReader reader;
try
{
}
finally
のように宣言することが推奨されている。
http://msdn.microsoft.com/ja-jp/library/yh598w02.aspx
0214デフォルトの名無しさん
2009/06/08(月) 04:14:03SQLiteDataReader reader;
{
try
{
// 何かの処理
}
finally
{
if (reader != null) ((IDisposable)reader).Dispose();
}
}
と同等だけど
using (SQLiteDataReader reader = command.ExecuteReader())
{
// 何かの処理
}
のように宣言することが推奨されている。
0215デフォルトの名無しさん
2009/06/08(月) 04:14:22using が実は現状確実にDispose してくれないという話的には Dispose され
ないと答えるけど、その話を除けば普通に
using(SQLLiteDataReader reader...)
とした場合と同等レベルには Dispose される。
これとそれの違いはスコープぐらいかな、意図がそれだけだと正直わか
らんが。
0216212
2009/06/08(月) 04:38:37ありがとうございました。
GCがいつ実行されるか分からないというのは一応承知してます。
安心してusing内に書くようにします。
0217デフォルトの名無しさん
2009/06/08(月) 05:08:35あー。GC とかは関係ない。
説明すると、現状の using には Abort されたときの耐性がない
という話。
インスタンスが生成された直後とローカル変数に代入されるまでの
間にスレッドが Abort されれば Dispose は呼ばれない。それも
含めて Finalizer が必要な理由にもなっている。
と思って今確認したら try の外でやってるし…なら try に入るまで
かな。
めったに問題になることじゃないので記憶の片隅においておくだけで
いい知識だが。
0218212
2009/06/08(月) 05:59:16ありがとうございます。
今の自分の知識ではお話の半分ほどしか分かりませんが、
滅多に問題になることはないということも含めてメモっておきます。
0219デフォルトの名無しさん
2009/06/08(月) 11:26:26切り替えをしたいと思い、フォームのコンテキストメニューから「切り替え」を
選択した際に、タイトルバーをなくす場合はフォームのTextを空にして
ControlBoxをfalseにしています。しかしControlBox=falseかつText=""
という操作をすると、それ以降Application.Exitで終了したときに
FormClosingイベントが呼ばれなくなってしまいます。
フォームの終了時に設定を保存したいのですが、終了処理はどこで
行えばいいでしょうか。よろしくお願いします。
0220デフォルトの名無しさん
2009/06/08(月) 13:03:06操作中に例外が発生してるんじゃないかな。
そうすると何も起こらず終了しているように見えることがある。
コントロールの存在・状態チェックはしっかりやろう。
0221219
2009/06/08(月) 13:39:01ありがとうございます。存在していないコントロールに触っているのかと思い、
原因を調べるために怪しい所を省いた以下のソースを実行してみたんですが
やはりフォームのTextを空にしてControlBox=falseとすると、FormClosing
のところにブレークポイントを設定してもヒットしなくなりました
ttp://sakuratan.ddo.jp/uploader/source/date112420.txt
こういう場合にはFormClosingイベント等は使えないのでしょうか。。。
0222デフォルトの名無しさん
2009/06/08(月) 13:41:22というか、Application.Exit()じゃなくてメインのフォームをクローズするのが普通じゃないの?
0223デフォルトの名無しさん
2009/06/08(月) 13:48:16そうですね、よく考えたらサブのフォームからでも
MainForm.Close()ってすればいいんですよね
Application.Exitの事は忘れます。ありがとうございました
0224デフォルトの名無しさん
2009/06/08(月) 14:31:59int[] a = {1,2,3};
int[] b = {4,5,6};
↓
int[] c = {1,2,3,4,5,6};
0225デフォルトの名無しさん
2009/06/08(月) 14:47:350226デフォルトの名無しさん
2009/06/08(月) 14:59:340227デフォルトの名無しさん
2009/06/08(月) 19:56:131.コントラクタのInitializeComponent();の後、
2.Loadイベントハンドラ内、
3.フォーム表示直後のShownイベントハンドラ内
の3つがあると思います。
1,2と3はフォームが表示される前か後ろかという違いがありますが、
1と2ではどういう違いがあるのでしょうか?
0228デフォルトの名無しさん
2009/06/08(月) 20:07:050229デフォルトの名無しさん
2009/06/08(月) 20:08:230230デフォルトの名無しさん
2009/06/08(月) 20:14:180231デフォルトの名無しさん
2009/06/08(月) 20:20:21なるほど、ということは、
コンストラクタ→New後、フォーム表示前に一度だけ実行
Loadイベントハンドラ→フォーム表示前に実行。リロードしたら再度実行される。
Shownイベントハンドラ→フォーム表示後一度だけ実行(リロードしても実行しない)
くらいに考えとけば良いですか。
0232デフォルトの名無しさん
2009/06/08(月) 20:30:490233デフォルトの名無しさん
2009/06/08(月) 20:35:350234デフォルトの名無しさん
2009/06/08(月) 20:47:44・・・もう一度マニュアル読んできます。
ありがとうございました。
0235デフォルトの名無しさん
2009/06/08(月) 20:50:260236デフォルトの名無しさん
2009/06/08(月) 20:51:310237sage
2009/06/08(月) 21:28:25fileSystemWatcher
でファイルを監視し、ファイルを読みこんで表示しようとしています。
string file = @"C:\tmp.txt";
public Form1()
{
InitializeComponent();
}
private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
{
string[] lines = System.IO.File.ReadAllLines(file, Encoding.GetEncoding("Shift_JIS"));
//MessageBox.Show(lines[1]);
label1.Text = lines[1];
label2.Text = lines[2];
label3.Text = lines[3];
label4.Text = lines[4];
label5.Text = lines[5];
}
監視はできているようなのですが、2度めの表示が行われません。
どこがまずいんでしょうか。
0238デフォルトの名無しさん
2009/06/08(月) 21:38:16↑静的なListって可能なんですか?
どうやってメモリを確保しているんですか。
0239デフォルトの名無しさん
2009/06/08(月) 21:39:22そのコードだけで判断しろってのも難しいが、ひょっとして
C# の Array(string[] とか) のインデックスは 0 から始まるぞ。
それはさすがにOK?
0240デフォルトの名無しさん
2009/06/08(月) 21:40:04可能
起動時に自動で1度だけ呼ばれる
0241デフォルトの名無しさん
2009/06/08(月) 21:49:47正確には、そのクラスが初めて使われるときね。
0242デフォルトの名無しさん
2009/06/08(月) 21:50:42一応の確認だけど、そのFileSystemWatcherはVSでツールボックスからD&Dしたものだよね?
0244デフォルトの名無しさん
2009/06/08(月) 22:01:22ビルドして何もクリックしてないのにキャプションバーが灰色になってる
ウィンドウズのバグ?
0245デフォルトの名無しさん
2009/06/08(月) 22:11:040246デフォルトの名無しさん
2009/06/08(月) 22:13:14どなたか知恵を貸してください。設計とか初めてなので><
0247デフォルトの名無しさん
2009/06/08(月) 22:17:570248デフォルトの名無しさん
2009/06/08(月) 22:22:43二次元配列使うとやりやすいと思う
int[,] ってやつ
後は
画像を分割して描画する(g.DrawImage)
バイナリ(orテキスト)でそのデータを保存する
保存したデータを読み込む
クリックした場所を取得する
等々
最低限上の機能は必要
そのほかマップの大きさだとかも必要だろうし
スクロールも必要
0249デフォルトの名無しさん
2009/06/08(月) 22:30:06単純にファイルを開くだけの処理を記述した場合、
1Kと100Mのファイルでは、オープンにかかる時間は違うものでしょうか?
挙動を見ると、単にファイルを開くだけ(Readしない)だと、
どちらも大して時間がかからないのですが、
大きなファイルは開くだけでも時間がかかるといわれまして。
試したところでは、大差ないので、読み込まずに開くだけであれば差は無いのかと
思ったのですが、違いがわかるかた教えていただけますか?
0250デフォルトの名無しさん
2009/06/08(月) 22:32:480251デフォルトの名無しさん
2009/06/08(月) 22:34:39static と言いつつ、静的(コンパイル時決定)じゃない。
あれにstaticって名前が付いてるのはC++を意識しすぎた結果。
実際にはクラス変数とでも呼ぶべきもの。
0252デフォルトの名無しさん
2009/06/08(月) 22:35:07違わない
その人は何か既成のアプリと勘違いしてるんじゃない?
0253デフォルトの名無しさん
2009/06/08(月) 22:36:17それはファイルシステム次第、ドライバ次第だな、StreamReaderの仕事はOSにリクエスト出すまで
OSの仕事はドライバにリクエストを出すまでだ。
0254デフォルトの名無しさん
2009/06/08(月) 22:39:25基本的にファイルサイズによる差は起こらないはずだよね。
ほかの人の言ってるようにデバイスによる差(ネットワーク上のファイルとかフロッピーディスクとか)による差は当然ある。
0255デフォルトの名無しさん
2009/06/08(月) 22:43:48即レスありがとうございます
やはりそうですか。助かりました。
ファイルシステムやドライバをもっと勉強してみます。
0256sage
2009/06/08(月) 22:45:24なるほど。
たしかにArrayのインデックスは0からで、
0(つまり1行目)ではなくて2行目から処理してますね。
それはそれでありがとうございますです。
しかし、やはりファイル更新の監視はうまくいかず、
該当するtmp.txtを2回更新すると、2回目には、例外が発生します。
別のプロセスで使用されているため、
プロセスはファイルtmp.txtにアクセスできません。
だそうです。
0257sage
2009/06/08(月) 22:46:50YES。
ドラッグ&ドロップして、プロパティで、
NotifyFilterをLastWriteにしました。
いまの全コードはこれだけです。
public Form1()
{
InitializeComponent();
this.fileSystemWatcher1.Filter = "tmp.txt";
this.fileSystemWatcher1.NotifyFilter = System.IO.NotifyFilters.LastWrite;
this.fileSystemWatcher1.Path = "C:\\";
}
private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
{
//MessageBox.Show("changed");
string[] lines = System.IO.File.ReadAllLines(file, Encoding.GetEncoding("Shift_JIS"));
label1.Text = lines[1];
label2.Text = lines[2];
label3.Text = lines[3];
label4.Text = lines[4];
label5.Text = lines[5];
}
0258デフォルトの名無しさん
2009/06/08(月) 22:47:14その例外が言ってる通りじゃないか。
ほかのプロセスが掴んでたらファイルが開けないことがある。
0259デフォルトの名無しさん
2009/06/08(月) 22:51:04勉強する必要はないかと、当の本人に聞くなり、問題のブツで試してみればいい。
組み込み用のハードディスクに突然の電源断に耐えられるように設計された、書き込みバッファの無いHDが
そういう問題があって、スレッド使って対処したという苦労話は聞いたことがある、ただ.NETが取り扱うハードウェアというと、
通常のWindowsかモパイルCE系だと思われるが、そんなハードディスクなど聞いたことが無いね、
だからといって無いとは言いきれないので、問題のブツで確かめてみるしかないのでは。
0260sage
2009/06/08(月) 22:57:14なるほど。
System.threading.Thread.Sleep(1000);
でとりあえず解決しました。
サンクスです。
0261デフォルトの名無しさん
2009/06/08(月) 23:09:11C#で簡単なアニメーションさせたいので
bmp等の画像描画処理について詳しく書かれているサイトってわかりますか?
初心者なのでできるだけ詳しく書かれているところがいいんです。
よろしくお願いします。
0262デフォルトの名無しさん
2009/06/08(月) 23:14:290263デフォルトの名無しさん
2009/06/08(月) 23:15:13リフレクション
0264デフォルトの名無しさん
2009/06/08(月) 23:25:18サンプルコードありますか?
0265デフォルトの名無しさん
2009/06/08(月) 23:28:080266デフォルトの名無しさん
2009/06/08(月) 23:28:282回目の表示で、1回目の表示が消えないのです。
どこかでdisposeとかする必要があるのでしょうか?
Label[] label;
private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e){
System.Threading.Thread.Sleep(1000);
string[] lines = System.IO.File.ReadAllLines(file, Encoding.GetEncoding("Shift_JIS"));
label = new Label[5];
for (int i = 0; i < 5; i++){
this.label[i] = new System.Windows.Forms.Label();
this.label[i].AutoSize = true;
this.label[i].BackColor = System.Drawing.Color.Transparent;
this.label[i].Font = new System.Drawing.Font("メイリオ", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
this.label[i].Location = new System.Drawing.Point(23, 35 + i * 60);
this.label[i].Name = "label[i]";
this.label[i].Size = new System.Drawing.Size(62, 24);
this.label[i].Text = lines[i];
this.Controls.Add(this.label[i]);
}
}
0267デフォルトの名無しさん
2009/06/08(月) 23:28:520268デフォルトの名無しさん
2009/06/08(月) 23:31:080269デフォルトの名無しさん
2009/06/08(月) 23:31:20何勝手に乗ってきてるわけ?
0270デフォルトの名無しさん
2009/06/08(月) 23:31:570271デフォルトの名無しさん
2009/06/08(月) 23:32:19Reflection とか MethodInfo とかで探してみ。
0272デフォルトの名無しさん
2009/06/08(月) 23:32:470273デフォルトの名無しさん
2009/06/08(月) 23:37:320274デフォルトの名無しさん
2009/06/08(月) 23:44:33クラス1.プロパティ1 = x;
クラス1.プロパティ2 = y;
というのを
With クラス1
.プロパティ1 = x;
.プロパティ2 = y;
End With
みたいに書いて入力の手間を省きたいのですが。
Withを使うとVBの場合は実行速度も少し上がるそうですが。
0275デフォルトの名無しさん
2009/06/08(月) 23:46:330276デフォルトの名無しさん
2009/06/08(月) 23:46:40ありがとうございます。やってみます!
0277デフォルトの名無しさん
2009/06/08(月) 23:54:22インタプリタなら速くなるのは分かるがVB.NETでも速くなるのかな。
速くなるならC#でも深いところにあるクラスは一度ローカル変数に代入してからのほうが速い?
0278デフォルトの名無しさん
2009/06/08(月) 23:55:31「そのクラスにアクセスするより前に一度だけ実行される」ことが
保障されているだけじゃなかったか?
>>274
全く同じ機能はない
初期化時限定のオブジェクト初期化子くらい
0279デフォルトの名無しさん
2009/06/08(月) 23:57:220280デフォルトの名無しさん
2009/06/09(火) 00:00:08> 「そのクラスにアクセスするより前に一度だけ実行される」ことが
> 保障されている
規格上はそうなってた気がする。
実際は、たいてい直前。
0281デフォルトの名無しさん
2009/06/09(火) 00:11:39多分JITコンパイルで最適化されるんじゃないかなその程度
0282デフォルトの名無しさん
2009/06/09(火) 00:35:09この程度なら、プリプロセッサあたりで処理してくれてもいいと思うのは私だけでしょうか。
コントロールの初期設定とか、同じ名前空間やクラス名がずらっと並んでるのを見ると、
もうちょっと楽にコーディングできる手段があってもよさそうに思うのですが。
0283デフォルトの名無しさん
2009/06/09(火) 00:42:23コードが汚くなるからwithを採用しない言語は多い。
0284デフォルトの名無しさん
2009/06/09(火) 00:47:33初期設定なら似たような事はできる
var tmp = new Hoge() { A = 10 , B = 30 };
A,B はHogeのプロパティーまたは変数
0285デフォルトの名無しさん
2009/06/09(火) 00:54:53これがあったら、withどころか究極のデータセッティングができるんだけれど……
0286デフォルトの名無しさん
2009/06/09(火) 00:57:10なるほど、そういう書き方もできるんですね。勉強になります。
0287デフォルトの名無しさん
2009/06/09(火) 01:00:41そうみたいだよ。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1135&forum=7
0288デフォルトの名無しさん
2009/06/09(火) 01:06:22なるほどね、C#ならスコープ使えって事か
{
var a = hoge.member;
a.Prop1 = 10;
a.Prop2 = 10;
}
0289デフォルトの名無しさん
2009/06/09(火) 01:13:13確かに、オブジェクトをいちいち作ってやれば同じことになりますね。
withほど簡略化はできませんが、多少は楽が出来そうです。
コード的にもメリットがあるみたいですし。
0290デフォルトの名無しさん
2009/06/09(火) 01:13:41ds.Tables("Customers").Rows
がそれなりに処理重そうだから無意識に一度ローカルに代入してるな。
ただ >>288 のような軽いメンバアクセスはそのまま見ちゃってるなぁ。
0291デフォルトの名無しさん
2009/06/09(火) 01:21:500292デフォルトの名無しさん
2009/06/09(火) 01:25:300293デフォルトの名無しさん
2009/06/09(火) 01:27:45label = new Label[5];
for (int i = 0; i < 5; i++)
{
this.label[i] = new System.Windows.Forms.Label();
this.label[i].Dispose();
}
for (int i = 0; i < 5; i++)
{
this.label[i] = new System.Windows.Forms.Label();
//this.label[i].Dispose();
//this.label[i].Text.Remove(1);
this.label[i].AutoSize = true;
this.label[i].BackColor = System.Drawing.Color.Transparent;
this.label[i].Font = new System.Drawing.Font("メイリオ", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
this.label[i].Location = new System.Drawing.Point(23, 35 + i * 60);
this.label[i].Name = "label[i]";
this.label[i].Size = new System.Drawing.Size(62, 24);
//this.label[i].Text = "";
this.label[i].Text = lines[i];
//this.label[i].Text = this.label[i].Text.Replace(this.label[i].Text,lines[i]);
this.Controls.Add(this.label[i]);
}
0294デフォルトの名無しさん
2009/06/09(火) 01:50:330295デフォルトの名無しさん
2009/06/09(火) 01:55:270296デフォルトの名無しさん
2009/06/09(火) 02:14:520297デフォルトの名無しさん
2009/06/09(火) 03:09:25class testint{
private int a;
}
ってやって
testint test=new testint()
なんで
testint test
だけで実装できないんだ。わざわざ無駄な手間かけさせる意味は?
あと、なんでtestint()の最後、何もない括弧をつけなきゃいけんのだ。
0298デフォルトの名無しさん
2009/06/09(火) 03:17:10CかC++から来た人?もしそうなら、
クラスは常にポインタ型(のようなもの、ポインタ演算はない)。newしなければnullが入っている。
という短い文章で分かってほしい。
testint test=new testint()と打つのは、Visual Studioとか入力支援が良くできたところで書けば案外大した手間でない。
クラス名を2度書くのが嫌ならvarがある、ローカル変数限定だけど。
()が要るのはなぜ?というのは俺も思うところだけど。
0299デフォルトの名無しさん
2009/06/09(火) 03:24:510300298
2009/06/09(火) 03:27:50ありがとう、納得した。
C++はnew hogeで通るし、引数があっても括弧を省略できる場合のある
VBとか使っていたからそこまで考えが及ばなかった。
0301デフォルトの名無しさん
2009/06/09(火) 03:41:29c++を見てみました。
c++なら
class testint{
private:
int kazu;
}
testint test;
test.kazu=10;
これでいいのか・・・
newとかいうのはオブジェクト指向で必ずしも必須というわけじゃないんだね。
コンストラクタも自動的に呼び出されるのか。
c#とはずいぶん違うんだね。初心者にはc++のがいいのかな
0302デフォルトの名無しさん
2009/06/09(火) 03:44:140303デフォルトの名無しさん
2009/06/09(火) 06:52:250304デフォルトの名無しさん
2009/06/09(火) 06:57:080305デフォルトの名無しさん
2009/06/09(火) 08:46:14C++ は new の有無でスタックはヒープかわかれるけど、
C# は class か struct かで分かれる。
class なら new したのはヒープに、
struct なら new は単なるコンストラクタ呼び出し、スタックに取られる。
struct でもわざわざ new しないと行けない理由は、
その方が構文解析が楽(後々他の構文追加しやすい)とか、
初期化し忘れを防ぐためにわざわざ面倒な構文にしてあるとか、
class とそろえるとか、そういう理由だと思う。
0306デフォルトの名無しさん
2009/06/09(火) 10:11:50struct の new は引数無しなら、全フィールドに0入れるよという指示で、それ以外なら指定の定型初期化を処理するという事ではなかろうかと。
最近は default というキーワードができて、二重機能っぽくなってるいけれど、これはジェネリックの都合かなと。
0307デフォルトの名無しさん
2009/06/09(火) 10:16:51たとえば
void Test()
{
int tmp;
Action a = () => { tmp = 3 ; };
}
このtmpは、スタックに取られているとはどうにも思えない
内部的には勝手JITの勝手というのが実態かと。
0308デフォルトの名無しさん
2009/06/09(火) 10:23:10UserAgentとかkeep-aliveプロパティは取得できるのですが
(<HttpWebRequest.UserAgent>プロパティ,<HttpWeqRequest.KeepAlive>プロパティ)
Host,Accept-Language,Accept-Encoding,Accept-Charsetプロパティが読み取れません。
読み取り方をよろしくお願いします。また、ヘッダー情報を編集してリクエストストリーム
に流せるかどうかも教えていただきたいです。
0309デフォルトの名無しさん
2009/06/09(火) 10:34:54Console.WriteLine( string.Format( "{0,4:f2}", -10.0 ) );
こんな感じで作った文字列の桁を揃えたいんだけど、うまくいきません。
上の例だと
10.00
-10.00
となります。
マイナスの符号があるときになんとかしたいんだけど、
うまいことやる方法はあります?
0310デフォルトの名無しさん
2009/06/09(火) 10:51:23Requestでヘッダを「読み取る」必要があるのかどうかって話はあるが
直接プロパティになってないヘッダはHeadersプロパティから取得設定できる
0311デフォルトの名無しさん
2009/06/09(火) 11:09:11セクション区切り記号「;」を使ったカスタム書式指定かね
{0,5: 0.00;-0.00}
ところで小数点以下2桁有効だとフィールド幅4は意味がないと思うけど
0312デフォルトの名無しさん
2009/06/09(火) 11:12:44それはラムダ式(クロージャ)が影響している。
() => { } を内包するクラスが暗黙に作られてそのメンバにtmpがあるはず。
0313デフォルトの名無しさん
2009/06/09(火) 11:17:12ごめん実はそのあたりよくわからなくてテキトーに書いてました
もっと詳細を言うと、x,y,zを持つポイントクラスがあって
始点:( x1, y1, z1 )
終点:( x2, y2, z2 )
みたいな感じで小数点以下3桁で計6桁ぐらいで書き出したいときの
桁揃えという話でした。詳しく書かなくて申し訳ない。
0314デフォルトの名無しさん
2009/06/09(火) 11:33:00回答ありがとうございます。
Webスクレイピングをやっていて、リクエストしてもうまく次のページに行かないんです。
Postされるべきデータ(トランザクショントークンとキーワード)はバッチリだと思うのですが。。
(Firebugを使って手動で動かしたときのリクエストヘッダーやPOSTしたデータの中身が
確認できる)
ヘッダー情報のリファラーが監視されてるみたいでそれについては確認できたのですが、
それでもうまく行きません。もちろんクッキーについてはクッキーコンテナをリクエストに
かませてますし、他に思いつくのが他のヘッダー情報も監視されているかもということです。
そこで自作プログラムのリクエストのヘッダー情報とFirebugで手動で動かしたときに
確認できるヘッダー情報を見比べて、必要あらば修正してリクエストに流そうと思ったわけです。
310さんの言うとおりに
List<string> list = new .........
for(int i =0;i < req.Headers.Count; i ++)
list.add(req.Headers[i];
で取得してみたのですが一行しか取得できないんですけど。。書き方が違うんですかねぇ(^ ^ ;
長文スマンです。
0315デフォルトの名無しさん
2009/06/09(火) 11:42:030316デフォルトの名無しさん
2009/06/09(火) 11:48:48HttpWebRequestからはできないんっすか。。???
ちょっとレスから拾ってみたいと思います。。。
0317デフォルトの名無しさん
2009/06/09(火) 11:58:38それってデバッガでステップ実行すればよくね?
あとは別のパケットモニタアプリ使うか
0318デフォルトの名無しさん
2009/06/09(火) 11:59:09その方が手っ取り早い気がする。
0319デフォルトの名無しさん
2009/06/09(火) 11:59:380320デフォルトの名無しさん
2009/06/09(火) 12:06:44WireSharkは友人にも進められて検討してるのですが、
修正の必要が出てきたときにどうやって書き込めばいいのでしょうか?
コードサンプルがあるとありがたいっす。
0321デフォルトの名無しさん
2009/06/09(火) 12:14:49req.Headers.Add(HttpRequestHeader.AcceptEncoding,"gzip");
// req.Headers[HttpRequestHeader.AcceptEncoding] = "gzip"; も可
何が困ってるのかイマイチ伝わんね。
0322デフォルトの名無しさん
2009/06/09(火) 12:47:50文章力なくてすみません。。
321さんが書いて下さったみたいなコードサンプルがようするに欲しかったんです^^;
レスありがとうございます。
0323デフォルトの名無しさん
2009/06/09(火) 12:55:260324デフォルトの名無しさん
2009/06/09(火) 13:07:110325デフォルトの名無しさん
2009/06/09(火) 13:23:19あの〜、やってみたんですけど
req.Headers.Add(HttpRequest.Header.Host, "HostName");
って書くと'Host' ヘッダーを直接変更することはできません。
って出ちゃうんですけど。Hostの書き換えは無理??
0326デフォルトの名無しさん
2009/06/09(火) 13:25:42お前死ぬの?死にたいの?叩き殺されたいの?
http://msdn.microsoft.com/ja-jp/library/system.net.httpwebrequest.headers(VS.80).aspx
解説
Headers コレクションは、要求に関連付けられているプロトコル ヘッダーを格納します。
Headers コレクションには格納されず、システム、プロパティ、またはメソッドのいずれかで設定される HTTP ヘッダーの一覧を次の表に示します。
Host システムにより現在のホスト情報に設定されます。
0327デフォルトの名無しさん
2009/06/09(火) 13:29:581から10まで聞かないとできない奴は排除したれ
0328デフォルトの名無しさん
2009/06/09(火) 13:36:290329デフォルトの名無しさん
2009/06/09(火) 14:29:34それならpublicだけでよくないですか?
0330デフォルトの名無しさん
2009/06/09(火) 14:34:04全員が全員ドキュメントをキチンと読んで、万に一つのミスも犯さないようなパーフェクト人間であれば全てpublicでも良いでしょうね。
0331デフォルトの名無しさん
2009/06/09(火) 14:47:301文ごまかされちゃったんだよね。
0332デフォルトの名無しさん
2009/06/09(火) 14:51:35レス感謝です。
0333デフォルトの名無しさん
2009/06/09(火) 14:55:55感心したわ。
0334デフォルトの名無しさん
2009/06/09(火) 19:16:49非表示のフォームにDataGridViewを貼り付けてあります。
ここにReadXMLでデータを読み込んで、DataGridViewからデータを取り出そうとしたら
どのセルも空白のままでした。
一度でもフォームを表示すれば、そのタイミングで実際の読み込み動作が行わて
セルにデータが入るのですが、
非表示のままでデータをDataGridViewに反映させる方法を教えてください。
0335デフォルトの名無しさん
2009/06/09(火) 19:26:210336デフォルトの名無しさん
2009/06/10(水) 03:18:40Form1にg.drawline(p,0,0,100,100)とかやったら
書けるんだけど、
画面切り替えたら消えちゃうんだけど消えないようにするにはどうやるの?
0337デフォルトの名無しさん
2009/06/10(水) 03:22:15もしくは,なんかDoubleBufferみたいなプロパティがあればtrueに
0338デフォルトの名無しさん
2009/06/10(水) 03:22:590339デフォルトの名無しさん
2009/06/10(水) 03:26:06なんか他にも設定する必要ありそ
http://www.google.com/search?hl=ja&lr=&ie=UTF-8&oe=UTF-8&num=50&q=DoubleBuffer
0340デフォルトの名無しさん
2009/06/10(水) 09:25:21ソリューション’game’(1プロジェクト)
└game
├ソースフェイル
│├hello.cpp
│└helo2cpp
├ヘッダーファイル
└リソースファイル
となっています。
helllo.cpp
#include <stdio.h>
int main(void)
{
printf("こんにちは!\n");
return 0;
}
0341340の続き
2009/06/10(水) 09:26:03#include <stdio.h>
int main(void)
{
int a,b,c;
a=1;
b=2;
c=a+b;
printf("a+b=%d\n",c);
return 0;
}
とプログラムを書いたのですが、デバッグするとエラーが出ます。
main(void)が2つあるとプログラムが正常に作動しないんでしょうか?
0342デフォルトの名無しさん
2009/06/10(水) 09:31:01どっかで聞き直すならエラーぐらい書けよ
0343デフォルトの名無しさん
2009/06/10(水) 09:32:340344デフォルトの名無しさん
2009/06/10(水) 10:07:46そうですか。よくわからないけど研究してみます。
0345デフォルトの名無しさん
2009/06/10(水) 10:28:53作りたいアプリはあるウェブサイトの更新をするアプリです。
HTMLフォームのユーザビリティに嫌気がさしてきたもので。
スクリプト言語ですがPHPとかActionScriptとかJavascriptを仕事で使ってます。
JAVAもできます。
条件としては
1、オブジェクト指向でプログラミングできること。
2、なるべくwindowsに色々インストールしなくても使えること。
3、今後も役に立ちそうな言語であること
C#って.NETフレームワークが必須なんですよね?
C#って.NETフレームワークがインストールしてあったら、
他に何かランタイム無しで動くのですか?
2はインストーラーを作ればそれほど気にすることはないって聞いたけど
そういうもんでしょうか?
0346デフォルトの名無しさん
2009/06/10(水) 10:45:56少なくともJavaよりは嫌われない
0347デフォルトの名無しさん
2009/06/10(水) 10:51:00自分が何か手をいれる必要はないので意識はしなくてもいいし、自分はした事が無い。
0348デフォルトの名無しさん
2009/06/10(水) 10:54:11Webの知識活かせるしクロスプラットフォームだしランタイム超小さいよ
0349デフォルトの名無しさん
2009/06/10(水) 10:58:17一般のインストーラを使って全部手動でやるきる必要がある。
それとClickOnceインストーラというのは、今はそう呼ばれていないかもしれない、プロジェクトのプロパティーの発行タブで設定して作れるインストーラの事。
0350デフォルトの名無しさん
2009/06/10(水) 12:56:24まあHTMLフォームの代わりに使いたいと言ってるんだから、
ネイティブコードのモジュールを使いたいなんてことはそうそうないだろ。
.NETはメジャーな画像形式なら最初から扱えるし。
普通にC#でフォーム作って必要な機能を用意すればいいんじゃないかな。
ClickOnceええよ。
イメージとしてはサーバーに置かれているソフトを
ブラウザのローカルキャッシュにコピーして、そこで起動する感じ。
自作のフリーソフトをzip版とClickOnce版と両方提供してるけど、
ClickOnceならVSからリリースするだけで、zipをアップロードする必要もないし。
0351デフォルトの名無しさん
2009/06/10(水) 20:14:19> 347に追加、C++からというならひょっとすると、C/C++コードとの相互運用を入れているかもしれないが、これが入っている時はClickOnceが使えないので注意。
> 一般のインストーラを使って全部手動でやるきる必要がある。
ダウト。やりようによってはできる。
0352デフォルトの名無しさん
2009/06/10(水) 21:36:43実行時に別のインストーラ起動するって奴だろ、ClickOnceのHowToに書かれていたのでやってみたが
凄いめんどくさいぞ、それにそれをすると自動更新は役立たずになるし
0353デフォルトの名無しさん
2009/06/10(水) 21:44:10.NETの範囲で収まっているかどうかという所がポイントだと思われる
無理をしてClickOnceを使うよりはmsiの方がシンプルになるケースは少なくない。
0354デフォルトの名無しさん
2009/06/10(水) 21:44:430355デフォルトの名無しさん
2009/06/10(水) 21:48:530356デフォルトの名無しさん
2009/06/10(水) 21:49:37違うだろ。C/C++ コードとの相互運用って、P/Invoke とかだろ?
別に ClickOnce アプリでも、P/Invoke やら COM Interop やらできるわけだが。
0357デフォルトの名無しさん
2009/06/10(水) 22:26:05有料ソフトならいいけど
0358デフォルトの名無しさん
2009/06/10(水) 23:18:33どういう意味だ?
0359デフォルトの名無しさん
2009/06/10(水) 23:31:00趣味でTelnetクライアントやFTPクライアントを作ってみたいのですが、
何か参考になる書籍やサイトがあったら教えてください
RFCは勉強中です
0360デフォルトの名無しさん
2009/06/10(水) 23:42:08Telnetのネゴシエーションプロセスとか全く無いのとか
FTPはpassive対応してなかったりcontrolとdataの二本が必ずセットになってたりする
0361デフォルトの名無しさん
2009/06/11(木) 00:00:30入れればいいんでしょうか?
とりあえずサンプルとかをコピペして動くことを確認したいです。
作ろうとしてるものとか目標とかは今のとこありません。
あとお金も無いんですけど、
なんか購入する必要ってあるんですか?
0362デフォルトの名無しさん
2009/06/11(木) 00:03:19買う物は特に必要なし
0363デフォルトの名無しさん
2009/06/11(木) 00:03:34C#する前に仕事しろ
0364デフォルトの名無しさん
2009/06/11(木) 00:03:48VC# Express入れればいい
0365デフォルトの名無しさん
2009/06/11(木) 00:26:12WPFだとあるかな?と思ったけど、ぐぐってもそれらしい情報が見つかりません。
#DirectXの範疇になるのでしょうか?
0366デフォルトの名無しさん
2009/06/11(木) 00:26:130367デフォルトの名無しさん
2009/06/11(木) 00:30:060368デフォルトの名無しさん
2009/06/11(木) 00:34:21>>364
ありがとうございます!調べてみます!
>>363
仕事はしてます!契約がなくて社内ニート中ですけど!
0369デフォルトの名無しさん
2009/06/11(木) 00:41:210370デフォルトの名無しさん
2009/06/11(木) 00:41:590371デフォルトの名無しさん
2009/06/11(木) 00:42:27>>365
WPFならコントロールの回転はできるが、ウィンドウ自体の回転はできなかったと思う。
0372デフォルトの名無しさん
2009/06/11(木) 00:44:500373デフォルトの名無しさん
2009/06/11(木) 00:47:160374デフォルトの名無しさん
2009/06/11(木) 02:14:06おなじ画像をくり返し表示するのに、ツールボックスを使わず配列にしてみました。
namespace WindowsFormsApplication1{
public partial class Form1 : Form{
private System.Windows.Forms.PictureBox[] pictureBox;
public Form1(){
InitializeComponent();
string photo = @"C:\photo.jpg";
for (int i = 1; i < 5; i++){
this.pictureBox[i] = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox[i])).BeginInit();
this.pictureBox[i].Location = new System.Drawing.Point(12, 22 + i * 200);
this.pictureBox[i].Name = "pictureBox[i]";
this.pictureBox[i].Size = new System.Drawing.Size(300, 200);
this.pictureBox[i].Image = Bitmap.FromFile(photo);
this.Controls.Add(this.pictureBox[i]);
}
}
}
}
で、コンパイルは通るのですが、エラーになります。
NullReferenceExceptionはハンドルされませんでした。
オブジェクト参照がオブジェクトインスタンスに設定されていません。
ってことなのですが、なにがNullになっているんでしょう?
なんかポカミスしている気がするんだけど…。
0375デフォルトの名無しさん
2009/06/11(木) 02:15:58がnull
0376デフォルトの名無しさん
2009/06/11(木) 02:16:34「自動変数」タブな
0377デフォルトの名無しさん
2009/06/11(木) 02:31:590378デフォルトの名無しさん
2009/06/11(木) 02:39:30すばやっ。
助かります。
pictureBox = new PictureBox[5];
を追加して、無事表示できました。
ところで何度見ても、自動変数タブがないんですけど、…。
左から、ローカル、ウォッチ、呼び出し履歴、イミディエイトウィンドウ、出力。
どこに消えたかご存じないですよね?
0379デフォルトの名無しさん
2009/06/11(木) 02:45:490380デフォルトの名無しさん
2009/06/11(木) 02:54:13ここは大丈夫?
pictureBoxは0から4までの5つの要素のうち
1から4までの4つを使うことになるわけだけど
0381デフォルトの名無しさん
2009/06/11(木) 04:03:240382デフォルトの名無しさん
2009/06/11(木) 04:30:00区切り文字を挿んで文字列を連結したいって事なら、string.Join
0383デフォルトの名無しさん
2009/06/11(木) 09:02:29の()の中のobject sender,Eventargs e
って何ですか
0384デフォルトの名無しさん
2009/06/11(木) 09:07:17eには必要に応じてイベントに関する情報
が入ってる
0385デフォルトの名無しさん
2009/06/11(木) 09:07:520386デフォルトの名無しさん
2009/06/11(木) 09:34:270387デフォルトの名無しさん
2009/06/11(木) 09:44:180388デフォルトの名無しさん
2009/06/11(木) 11:25:100389デフォルトの名無しさん
2009/06/11(木) 12:44:30ボタンなら、ボタンの背景(BackgroundImageプロパティ)にjpgファイルを指定できるので、表示するときに一度に表示できます。
textBoxのプロパティを見ても、背景のイメージを設定できないみたいなので…
0390デフォルトの名無しさん
2009/06/11(木) 12:46:520391デフォルトの名無しさん
2009/06/11(木) 12:53:40TextBoxそのものを自作するかWPFへどうぞ
0392デフォルトの名無しさん
2009/06/11(木) 13:48:09サンクス。ユーザーコントロールというのはまだ作ったことがないので、勉強がてらやってみます。
>>391
サンクス。やっぱり。
でもまあ今回は、背景が単色なので、なんとかFormベースでやってみます。
TextBoxそのものの自作って、ユーザーコントロールってことですよね?
ところでWPFで、ここみたいにフランクに質問できるとこってないですか?
0393デフォルトの名無しさん
2009/06/11(木) 13:57:14サムネイルベースのファイラーみたいなものを考えています。
サムネイルをウィンドウ内でドラッグ&ドロップして配置を移動したいです。
その場合、ドラッグ&ドロップの処理で必要なことは…。
・コントロール(pictureBoxとか)をドラッグ可能にする。
・フォームでドロップを受け付けるようにする。
かと思います。
フォームでドロップを受け付けるのは、
・AllowDropプロパティをTrueにする。
・Form1_DragEnterのイベントハンドラを作る。
でよいかと思うのですが、
Q1 コントロールをドラッグ可能にするには、なにをすればいいんでしょう?
コントロールを移動すると、コントロール同士が重なることがあります。
そのとき、
Q2 単純に重ねて表示したいときには、イベントハンドラはForm1_DrogEnterだけでいいんですか?
0394デフォルトの名無しさん
2009/06/11(木) 14:07:540395デフォルトの名無しさん
2009/06/11(木) 14:16:26>TextBoxそのものの自作
ユーザーコントロールじゃなくてControlから直接派生するカスタムコントロール
描画も入力も全部自前で書くガチ自作
0396デフォルトの名無しさん
2009/06/11(木) 15:12:59たとえば
myclass1が10個の変数と3個の関数を持ってるとして
それを引き継いだmyclass2は
7個の変数と4個の関数を持ってるとか
できない?
0397デフォルトの名無しさん
2009/06/11(木) 15:13:240398デフォルトの名無しさん
2009/06/11(木) 15:16:31myclass1やmyclass2をちゃんとobjectとして切り出せてないからややこしくなる。
0399デフォルトの名無しさん
2009/06/11(木) 15:22:34そういう場合はclass1とclass2から共通な部分を取り出して新たな基底クラスを作るのがデフォ
今
class1 - class2
↓こうする
baseclass - class1
|_class2
基底クラスのメソッドやフィールドを消せたりら、上位クラスへのキャストができないのだわ
FileStreamをStreamにキャストしたりとかね
0400デフォルトの名無しさん
2009/06/11(木) 15:55:18Application.EnableVisualStyles()をコメントアウトってのはナシで。
この際Win32APIでもなんでもいいから教えて。
0401デフォルトの名無しさん
2009/06/11(木) 18:51:26「Control.DoDragDrop」でぐぐって、
解説サイト見ながらプログラムを作ってみたんですが、
完全にどつぼにはまってます。
どっかにプロジェクトをアップロードしたら、このスレで添削してもらえますか?
0402デフォルトの名無しさん
2009/06/11(木) 18:54:010403デフォルトの名無しさん
2009/06/11(木) 19:05:01エクスプローラでいうところの表示-縮小版のような形で操作したいのです。
0404デフォルトの名無しさん
2009/06/11(木) 22:02:37なにか方法ありますか?
たとえばWordのプロセスが開いているファイルのPath+FileNameを取得したい。
0405デフォルトの名無しさん
2009/06/11(木) 22:11:41http://d.hatena.ne.jp/espresso3389/20080723/1216815501
0406デフォルトの名無しさん
2009/06/11(木) 22:13:11ありがとう!
0407デフォルトの名無しさん
2009/06/11(木) 22:24:330408デフォルトの名無しさん
2009/06/12(金) 09:58:49それがいい場合もあるが、まずそれというのはおすすめ出来ない。
0409デフォルトの名無しさん
2009/06/12(金) 10:15:090410デフォルトの名無しさん
2009/06/12(金) 11:05:24なにか良い方法ありませんか?
すでにC#ではないと思いますが。。。
0411デフォルトの名無しさん
2009/06/12(金) 11:10:540412デフォルトの名無しさん
2009/06/12(金) 12:51:20ロックせずに実行する実行ファイルを作ることってできるんでしょうか?
あるいは、開発マシンからkillするのでもよいのですが、そんなことってできましたっけ?
あまりC#とは関係ないかも…。
0413デフォルトの名無しさん
2009/06/12(金) 13:16:10できない。Unixだと上書きだけならできるが(再起動はもちろん必要)
で、基本常に実行し、必要なときに落としたりできるのがWindowsのサービスの仕組み。利用しない手はない。
リモートデスクトップで直接終了作業する手はどうだ?
0414デフォルトの名無しさん
2009/06/12(金) 13:32:18なるほど〜。
サンクス。
いまも別のマシンが別の階の別の部屋にあって、デバッグしながらいったりきたりで、いい運動になってました。
0415デフォルトの名無しさん
2009/06/12(金) 13:35:05これって、C++(?)のコードですよね?
C#のコードor dll or exeはないですか?
0416デフォルトの名無しさん
2009/06/12(金) 13:37:330417デフォルトの名無しさん
2009/06/12(金) 14:05:490418417
2009/06/12(金) 14:12:12ManagementClass m = new ManagementClass("Win32_Process");
foreach (ManagementObject o in m.GetInstances()) {
object c = o["CommandLine"];
if (c is string) {
Console.WriteLine((string)c);
}
}
こんなもんだろ。何か異議ある?
0419デフォルトの名無しさん
2009/06/12(金) 14:34:46C#の相互運用機能を使ってC#に書き換えればいいじゃん
>>405にC++でしか実現できない点は1つもないよ
それができいなら、おとなしくWMI使っとけ
0420デフォルトの名無しさん
2009/06/12(金) 16:30:48ぜんぜん異議なし。
>>419
は〜い。おとなしく使ってます。
それはそれとして、相互運用機能なんてので、C++のコードをC#に書き換えられるんですか?
知らなかった…。
それって簡単?
0421デフォルトの名無しさん
2009/06/12(金) 16:41:16そうでないなら諦めろ
0422デフォルトの名無しさん
2009/06/12(金) 18:17:03アタッチについて少し調べたんですが、
スレッドのアタッチは出来そうだけど、プロセス?(たとえばWordなど)に
アタッチって出来ます?
0423デフォルトの名無しさん
2009/06/12(金) 19:16:40コンストラクタを呼んで、 { } で括って最後に;って何なのでしょうか?
コンストラクタの内容に追記しているんでしょうか?
匿名関数とか記法の名前が分かればググれるんですけれど、
何と呼ばれる記述法何でしょうか?
public ActionResult Create(int customerId)
{
AddressViewData addressViewData = new AddressViewData()
{
CustomerId = customerId
};
return View(addressViewData);
}
0424デフォルトの名無しさん
2009/06/12(金) 19:24:32オブジェクト初期化子ですかね。
0425デフォルトの名無しさん
2009/06/12(金) 19:27:470426デフォルトの名無しさん
2009/06/12(金) 19:33:03確かに、これはものすごい気持ちの悪い書き方だな。
ぱっと見ではなぜnew AddressViewData()のところにセミコロンがないのかが分からないし、
ブレースのあとでセミコロンがあるのかが分からない。
オレならまず間違いなく
new AddressViewData() {
...
};
にするだろうな。
0427デフォルトの名無しさん
2009/06/12(金) 19:36:580428デフォルトの名無しさん
2009/06/12(金) 19:49:07http://pc12.2ch.net/test/read.cgi/tech/1170599322/
0429デフォルトの名無しさん
2009/06/12(金) 21:07:07とかやって、新しいフォーム作成したら
Form2.csができちゃって
Form1.csで作ったpublic変数とかが使えなくなっちゃうんだけど
どうやったらForm1.csとForm2.csの変数や文字列を合体できる??
0430デフォルトの名無しさん
2009/06/12(金) 21:08:530431デフォルトの名無しさん
2009/06/12(金) 21:09:200432デフォルトの名無しさん
2009/06/12(金) 21:52:510433デフォルトの名無しさん
2009/06/12(金) 22:11:28> Form2 frm2 = new Form2
> とかやって、新しいフォーム作成したら
> Form2.csができちゃって
面白い。新しいリフレクションだなw
0434デフォルトの名無しさん
2009/06/12(金) 22:46:29まじめに勉強してこなかったツケがそれだよっ!
0435デフォルトの名無しさん
2009/06/12(金) 23:01:33インスタンスの作り方すら忘れてる俺涙目w
0436デフォルトの名無しさん
2009/06/12(金) 23:26:080437デフォルトの名無しさん
2009/06/12(金) 23:47:000438デフォルトの名無しさん
2009/06/12(金) 23:50:00明示しないとオーバーライドできなくするため。
オーバーライドするつもりなかったのにうっかりやっちゃったとかになると、
結構発見しずらいバグになる。
0439デフォルトの名無しさん
2009/06/12(金) 23:53:170440デフォルトの名無しさん
2009/06/12(金) 23:55:410441デフォルトの名無しさん
2009/06/13(土) 00:04:42仮想テーブルは自前でも作れる、ただ面倒臭いから言語の機能としてあれば便利だというレベルになっている。
また言語仕様で作られる仮想テーブルは書き換える事はできないが、そのような操作が必要になったら結局自前で作るわけだが、
それはStrategyパターンと呼ばれるデザインパターンでパターン化されている。
0442デフォルトの名無しさん
2009/06/13(土) 00:23:56これ
> 現在のオブジェクト指向に関する理解
と、これ
> 仮想テーブル
って、全然領域違う言葉だよね?
何で混ざってるの?
0443デフォルトの名無しさん
2009/06/13(土) 01:13:12実際Javaなんかで問題が出たから付けるようにしてるんだよ
そのJavaですらoverrideを明示的に付けるようになった
0444デフォルトの名無しさん
2009/06/13(土) 02:59:00int a;
int b;
int c;
〜〜
int z;
a=2;
b=2;
とかじゃんく
a,b,c,d,e=2;
みたいな感じで。
0445デフォルトの名無しさん
2009/06/13(土) 03:04:23カンマじゃなくて、イコールでつないでご覧。
0446デフォルトの名無しさん
2009/06/13(土) 04:30:26この、C\Test.textの前にある@マークは何の役割でしょうか?
0447デフォルトの名無しさん
2009/06/13(土) 04:31:37"C:\\Test.txt"とすべきところを@"C:\Test.txt"で済ます
0448デフォルトの名無しさん
2009/06/13(土) 04:34:31ありがとう
0449デフォルトの名無しさん
2009/06/13(土) 10:19:43>どうしてoverrideという概念があるかというレベルに見えるが
に対しての見解なので
0450デフォルトの名無しさん
2009/06/13(土) 10:43:36ん、んーん?
0451デフォルトの名無しさん
2009/06/13(土) 10:59:33MyFunction( )
MyFunction_int(int n)
MyFunction_intint(int n, m)
MyFunction_intstr(int n, string t)
とか、どんどん増える
0452デフォルトの名無しさん
2009/06/13(土) 11:00:190453デフォルトの名無しさん
2009/06/13(土) 12:06:150454デフォルトの名無しさん
2009/06/13(土) 12:13:18どこもコンソールアプリケーションのことしか書いてないんだけど
WIndowsプログラムのこと書いたページで良いとこない?
0455デフォルトの名無しさん
2009/06/13(土) 12:16:23言語自体の入門ページだと、そりゃそんなもんだろ。
Windows Forms とか WPF でググりなおした方がいいんでは。
あと、コンソールアプリで入門記事書いてるページでも、
1ページくらいは GUI に記事さいてないか?
0456デフォルトの名無しさん
2009/06/13(土) 12:18:02ないから、仕方ないのでは?
前者はもう充分だから、後者に移りたいというのが質問の趣旨?
それとも、前者も後者もいっしょくたにしたいという話?
いっしょくたはおすすめできないぞ。
0457デフォルトの名無しさん
2009/06/13(土) 12:29:130458デフォルトの名無しさん
2009/06/13(土) 12:38:46たとえばだが
Form1のx=200,y=300のドットの色を取得して
画面を塗りつぶすとか
そういうことやりたいんだが
コンソールアプリじゃそういうことわからん。
IDEつくるのめんどくさいのか;;
0459デフォルトの名無しさん
2009/06/13(土) 12:42:42どうでもいいけど
> Class personから継承してtaroをつくる
これは気持ち悪い
taroっていう種族がいるのか…?
0460デフォルトの名無しさん
2009/06/13(土) 12:44:53class Taro キモすww
それは置いといて、
そういう話の場合、「入門」じゃなくて「サンプル」でググって、
説明読むんじゃなくてコード読む方がオススメ。
0461デフォルトの名無しさん
2009/06/13(土) 12:46:013年を継承して山田を作るのに山田って組があるのか?とか
マジでどうでも良い
0462デフォルトの名無しさん
2009/06/13(土) 13:11:290463デフォルトの名無しさん
2009/06/13(土) 15:40:08フォーム上にDataGridViewとComboBox(DropDownListとして利用)、
Buttonがあるとします。
ButtonをクリックするとComboBoxのSelectedIndexによってDataGridViewの
内容が変わります。DataGridViewはReadonlyです。
現在、初期化としてフォームのコンストラクタのInitializeComponent()の後で、
それぞれDataTableを取得して、ComboBoxとDataGridViewにバインドしています。
DataGridViewはReadonlyなので、
using(DataTable dt = …)
{
// 処理
dataGridView1.DataSource = dt;
}
と閉じてしまっても問題ありませんが、ComboBoxの方はusingで囲むと値が
表示されません。
その場合、comboBox1.DataSourceにセットしたDataTableはどこでDisposeすれば
良いのでしょうか?
0464デフォルトの名無しさん
2009/06/13(土) 16:01:14DataSourceとして使用してる間にDisposeしちゃまずいだろDisposeの意味的に考えて
そのDataTableを使わなくなるタイミングだから、大体フォームが閉じるときでいいんじゃね
実用上はDataTableならDisposeする必要もないけどな
0465デフォルトの名無しさん
2009/06/13(土) 16:33:55ぐぐって下記のページを見つけて読んできました。
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34497&forum=7
大体理解できました(と思います)。
リンク先もさらに読んできます。
0466デフォルトの名無しさん
2009/06/13(土) 23:54:15class test{
int a;
int b;
}
test x1=new test();
test x2=new test();
x1.a=10;
x2.a=10;
x1.b=20;
x2.b=20;
if(x1==x2)
//等しいと表示
else
//等しくないと表示
クラスは参照型なので等しくないって表示されちゃうことはわかるんだけど
クラスの内容自体を比較するのはどうやんの?
0467デフォルトの名無しさん
2009/06/13(土) 23:55:460468デフォルトの名無しさん
2009/06/14(日) 01:16:18==,!=オーバーライド
0469デフォルトの名無しさん
2009/06/14(日) 01:19:37x1.a == x2.a && x1.b == x2.b
というかそれ、public ないから普通にコンパイルエラーにならんか?
そのクラスを値チックにしか使わないなら Equals とか GetHashCode とか
オーバーライドして operator ==/!= 定義する。IEquatable は・・・この場合は
まぁいいか
0470デフォルトの名無しさん
2009/06/14(日) 03:19:030471デフォルトの名無しさん
2009/06/14(日) 03:52:160472デフォルトの名無しさん
2009/06/14(日) 04:48:38Dictionary
0473デフォルトの名無しさん
2009/06/14(日) 04:48:540474デフォルトの名無しさん
2009/06/14(日) 13:10:04ボタンをクリックするとテーブルに対してColumns.Addで列数を増やすように作ったんだけど、
なぜか1列増やすごとに1秒ぐらいかかる。
ぐぐったら「Debugは遅い」って書いてあるのを見つけたんでReleaseに変えてみたけど、
それでも0.7秒ぐらいかかってるみたい。
ボタンをクリックしてから画面が更新されるまで、ちょっとタイムラグがあるのが気になるんだけど、
もっと高速に列数を増やす方法はないですか?
マシンはPen4/2.8GHzにメモリ2GBで、極端にマシンが遅いわけでもないと思うんですが。
OSはXP SP3に無料のC#2008 NET3.5です。
0475デフォルトの名無しさん
2009/06/14(日) 13:11:110476デフォルトの名無しさん
2009/06/14(日) 13:20:18どっち?
0477デフォルトの名無しさん
2009/06/14(日) 13:59:15追加すると自動的に再描画されてしまうと思うのですが、
どうやったら別々に調べることが出来ますか?
0478デフォルトの名無しさん
2009/06/14(日) 14:04:080479デフォルトの名無しさん
2009/06/14(日) 16:50:000480デフォルトの名無しさん
2009/06/14(日) 16:54:05「C# 画像 切り取り」で検索すればすぐに出てくるんだけど
0481デフォルトの名無しさん
2009/06/14(日) 16:55:140482デフォルトの名無しさん
2009/06/14(日) 16:57:060483デフォルトの名無しさん
2009/06/14(日) 18:24:14カメラ位置を移動させるためのスクロールバーを配置したいんだけど、
1発でばしっと縦横スロールバーがつけられるコントロールってありますか?
やっぱり
親パネルの右に垂直スクロールバー配置、アンカーを上下右に設定、
親パネルの下に水平スクロールバー配置、アンカーを左右下に設定、
残った領域にスクロール操作の対象になるパネルを配置、アンカーで上下左右を設定
みたいにしないとダメ?
0484デフォルトの名無しさん
2009/06/14(日) 21:04:310485デフォルトの名無しさん
2009/06/14(日) 21:45:460486デフォルトの名無しさん
2009/06/15(月) 05:17:28Class名 名前=new Class名();
で生成できるのに
Graphicsクラスのインスタンス生成する際
Graphics gr=new Graphics();
じゃ生成できないのはなんで?
Graphics gr=CreateGraphics();
なら生成できるみたい
0487デフォルトの名無しさん
2009/06/15(月) 06:30:500488デフォルトの名無しさん
2009/06/15(月) 06:50:13キャップし忘れてすぐだめにしちゃうよね
0489デフォルトの名無しさん
2009/06/15(月) 08:19:140490デフォルトの名無しさん
2009/06/15(月) 08:40:290491デフォルトの名無しさん
2009/06/15(月) 08:54:31new Graphics() できないのは仕方なくじゃなくて、その方がいい設計だからだろ。
0492デフォルトの名無しさん
2009/06/15(月) 09:21:220493デフォルトの名無しさん
2009/06/15(月) 09:55:130494デフォルトの名無しさん
2009/06/15(月) 12:01:200495デフォルトの名無しさん
2009/06/15(月) 12:33:09別にしなくてもいいし
0496デフォルトの名無しさん
2009/06/15(月) 12:51:44ファイル開こうとしたらいつまでもロックされてる とかよくある。
Closeすればいい?それならDisposeしちゃえよ。
0497デフォルトの名無しさん
2009/06/15(月) 12:58:16ドキュメントにDispose()しろってんだからしろよ<
0498デフォルトの名無しさん
2009/06/15(月) 13:16:50よろしくにみえた
0499デフォルトの名無しさん
2009/06/15(月) 14:16:34()内のobject sender, EventArgs eってなんですか?
0500デフォルトの名無しさん
2009/06/15(月) 14:20:210501デフォルトの名無しさん
2009/06/15(月) 14:22:47イベントハンドラの引数の形式を統一するためのダミー
0502デフォルトの名無しさん
2009/06/15(月) 14:32:36処理に必要なデータ(CSVファイル)を、利用者側から見られないようにしたいのですが
なにか策はありますでしょうか?ご教授下さい。
0503デフォルトの名無しさん
2009/06/15(月) 14:37:10気休めだけどね
0504デフォルトの名無しさん
2009/06/15(月) 14:38:30PC内に保存するなら簡単に見られるだろ。
見にくくしたいなら暗号化かな。
簡単な暗号でいいならxor暗号で。
0505デフォルトの名無しさん
2009/06/15(月) 14:45:17web上に配置してsslとか
0506デフォルトの名無しさん
2009/06/15(月) 14:47:43エロゲのセーブデータか?
0507デフォルトの名無しさん
2009/06/15(月) 14:50:330508502
2009/06/15(月) 14:52:46ありがとうございます、調べてみます。
>>504
ありがとうございます。XOR暗号、調べてみます。
>>505
Web上への配置ですか、検討してみます。
>>502
いえ、そういうのではないのですが。
そのファイルを見られてしまうとプログラム内でなにをやっているかがわかってしまうのです。
0509デフォルトの名無しさん
2009/06/15(月) 15:05:580510デフォルトの名無しさん
2009/06/15(月) 15:21:350511502
2009/06/15(月) 15:25:55本当にありがとうございました。感謝します。
0512デフォルトの名無しさん
2009/06/15(月) 15:27:120513デフォルトの名無しさん
2009/06/15(月) 15:54:28hash["abc"]["def"]のような。
0514デフォルトの名無しさん
2009/06/15(月) 16:05:190515デフォルトの名無しさん
2009/06/15(月) 16:06:45ただし2次元ではない
もしくはそういう感じのを作ればおk
0516デフォルトの名無しさん
2009/06/15(月) 16:16:41hasu["abcdef"]という値をキーにすれば良い
0517デフォルトの名無しさん
2009/06/15(月) 16:17:560518デフォルトの名無しさん
2009/06/15(月) 16:18:10そうですね、ありがとうございました。
0519デフォルトの名無しさん
2009/06/15(月) 16:18:49hash["a"]["bcdef"]との違いがわからなくね?
0520デフォルトの名無しさん
2009/06/15(月) 16:21:27abc = 重複のない3桁の数字
def = 重複のある1〜2桁の数字
なので、>>513さんの意見で大丈夫かなと思ったのですが。
0521デフォルトの名無しさん
2009/06/15(月) 16:22:450522デフォルトの名無しさん
2009/06/15(月) 16:36:00じゃあそれでいいんでね?
0523デフォルトの名無しさん
2009/06/15(月) 16:36:05別に汎用でなくてもかまわない。
キーが取り得る値として辻褄が合うように適宜仕様変更すれば良いんだよ。
0524デフォルトの名無しさん
2009/06/15(月) 16:38:21適宜仕様変更すると汎用になるんでないかい
0525デフォルトの名無しさん
2009/06/15(月) 16:38:510526デフォルトの名無しさん
2009/06/15(月) 16:42:360527デフォルトの名無しさん
2009/06/15(月) 16:47:04ってできる?
0528デフォルトの名無しさん
2009/06/15(月) 16:49:45試した?
0529デフォルトの名無しさん
2009/06/15(月) 16:50:14試してない
だって俺C#の文法知らないもん
0530デフォルトの名無しさん
2009/06/15(月) 17:03:220531デフォルトの名無しさん
2009/06/15(月) 17:13:000532デフォルトの名無しさん
2009/06/15(月) 17:15:300533デフォルトの名無しさん
2009/06/15(月) 17:22:05http://d.hatena.ne.jp/NyaRuRu/20071211/p3
var dict = Dictionary
(
x => "foo",
y => "bar",
Hauhau => "gaogao"
);
C#3.5以降のはず
0534デフォルトの名無しさん
2009/06/15(月) 17:27:090535デフォルトの名無しさん
2009/06/15(月) 17:28:570536デフォルトの名無しさん
2009/06/15(月) 17:41:11実現方法の一つで正解ってわけじゃないけど
どうでもいいわ
0537デフォルトの名無しさん
2009/06/15(月) 18:00:02昔C#のコンセプトについてそんなコメントがあった気がする
0538デフォルトの名無しさん
2009/06/15(月) 19:48:35「上書き保存)(&S)」とか入力してからダブルクリックして
メニューの Click イベントを書こうとすると
private void 上書き保存SToolStripMenuItem_Click(object sender, EventArgs e)
ってなるのが気持ち悪くてしょうがないんだけど、
みんなちゃんと飲み込めてるの?
0539デフォルトの名無しさん
2009/06/15(月) 20:09:18・実害はないので気にしない
・リネームする
・英語キャプションでハンドラを生成して、後から日本語に変更
・先にハンドラを用意する
0540デフォルトの名無しさん
2009/06/15(月) 20:35:12public struct ComplexKey<X, Y> : IEquatable<ComplexKey<X, Y>>
を作ってみるのは俺だけか?
0541デフォルトの名無しさん
2009/06/15(月) 21:28:020542デフォルトの名無しさん
2009/06/15(月) 21:50:50キャストに失敗する可能性がある場合には必ずas,isを使うべき
InvalidCastExceptionをtry-catchするような方法だと桁違いに遅い。
0543デフォルトの名無しさん
2009/06/15(月) 22:32:18{
Foo foo = (Foo)hoge;
// ...
}
個人的には、上よりは下の方がいいと思うとか、細かいことを挙げたらきりがないけどな。
Foo foo = hoge as Foo;
if (foo != null)
{
// ...
}
0544デフォルトの名無しさん
2009/06/15(月) 22:49:13as演算子のほうがキャストより高速になる場合が多いらしい
0545デフォルトの名無しさん
2009/06/15(月) 22:55:46でも、そんな差を気にしなければならないのはよほどタイトな処理の時くらいだし、
普通に書いた時変数のスコープが広がるというデメリットもあるから、
別にどっちでもいいレベルだと思うけどね。
なぜかやたらとここにこだわるやつがいて不思議。
0546デフォルトの名無しさん
2009/06/15(月) 22:55:48下は変数のスコープが気に入らない
scalaのswitchが使えればいいんだけどなぁ
0547デフォルトの名無しさん
2009/06/15(月) 22:56:34次のような配列があったとして、HighPriceの最大値を求めたいのですが、簡潔に書くにはどう書けばいいのでしょうか?
hoge[0].HighPrice = 1000;
hoge[1].HighPrice = 780;
.(略)
hoge[99].HighPrice = 300;
環境はVisual C# 2008です。よろしくお願いします。
自分で考えたのは、
「int maxにまず初期値1000を設定、あとはforループでまわしてmaxをこえていれば新たにそれをmaxに設定する」
というものですが、もっとスッキリさせられないものかと思ってます。
ちなみに、hoge[0].HighPriceは本日(0日前)の高値、hoge[1].HighPriceは1日前の高値・・・
といった設定。100日間の高値の中で最大値を求めたいんです。
0548デフォルトの名無しさん
2009/06/15(月) 23:02:07LINQ使って
int max = hoge.Max();
0549デフォルトの名無しさん
2009/06/15(月) 23:11:18int max = hoge.Select((x) => x.HighPrice).Max();
だな
0550549
2009/06/15(月) 23:15:05int max = hoge.Max((x) => x.HighPrice);
かな
0551デフォルトの名無しさん
2009/06/15(月) 23:15:35みたいな?
0552デフォルトの名無しさん
2009/06/15(月) 23:16:330553デフォルトの名無しさん
2009/06/15(月) 23:21:10だけ。けど好みの問題だろうな。
0554547
2009/06/15(月) 23:27:57>>550さんので無事できました。
LINQだとだいぶ楽に書けていいですね。
手元のC#本は古いせいかLINQについては載ってないので新版を買ってくるとします。
ありがとうございました!
0555デフォルトの名無しさん
2009/06/16(火) 01:24:51class Test{
}
という何もないTestクラスを作って
Test test=new Test();
ってやって、
Label1.Text=test.ToString();
ってやったら宣言してないはずのTostring()が実行されるんだけど
クラスって宣言しなくても勝手にObject型を継承するようになってんの?
0556デフォルトの名無しさん
2009/06/16(火) 01:25:460557デフォルトの名無しさん
2009/06/16(火) 01:42:47くそ真面目に継承階層にずらずら並べてるのがちょっと微笑ましい
0558デフォルトの名無しさん
2009/06/16(火) 01:49:59スクリプト切っててわからなかった
これはひどい
0559デフォルトの名無しさん
2009/06/16(火) 01:50:210560デフォルトの名無しさん
2009/06/16(火) 01:50:58クラスどころかC#ではありとあらゆる型がobject継承してる。
0561542
2009/06/16(火) 08:28:40みんなありがとう
0562デフォルトの名無しさん
2009/06/16(火) 13:07:53クソワロタ
0563デフォルトの名無しさん
2009/06/16(火) 15:27:42Program.csとForm.csに分割してるんだ
Program.csは
Main関数の中に
Application.Run(new Form1)
みたいな産業あるだけだし・・・
意味不明
0564デフォルトの名無しさん
2009/06/16(火) 15:30:27うふっ
0565デフォルトの名無しさん
2009/06/16(火) 15:31:25フォームみたいなのだとなおさらね
関係ないけどそれを追求した結果、Javaなんかは1ファイル1publicクラスみたいな潔癖な事になっている
0566デフォルトの名無しさん
2009/06/16(火) 15:33:290567デフォルトの名無しさん
2009/06/16(火) 16:47:11if (削除条件(item)) {
arraylist.Remove(item);
}
}
てやっても大丈夫? ちゃんとインデックス使って
for (int i=arraylist.Count; i>=0; --i) {
if (削除条件(arraylist[i])) {
arraylist.RemoveAt(i);
}
}
ってやらなきゃだめ?
0568デフォルトの名無しさん
2009/06/16(火) 16:48:310569デフォルトの名無しさん
2009/06/16(火) 16:53:090570デフォルトの名無しさん
2009/06/16(火) 17:08:360571デフォルトの名無しさん
2009/06/16(火) 18:53:500572デフォルトの名無しさん
2009/06/16(火) 19:59:54どの項目を選んでいるか関係なく、クリックしたら即チェックできるようにするにはどうすればいいですか?
0573デフォルトの名無しさん
2009/06/16(火) 20:05:320574デフォルトの名無しさん
2009/06/16(火) 20:07:000575デフォルトの名無しさん
2009/06/16(火) 20:10:160576デフォルトの名無しさん
2009/06/16(火) 20:11:04RemoveAll が普通だろうけど、ArrayList ってことは 1.0 縛りとか
そういうの?
0577デフォルトの名無しさん
2009/06/16(火) 20:13:270578デフォルトの名無しさん
2009/06/16(火) 20:14:25GJ
0579デフォルトの名無しさん
2009/06/16(火) 20:35:24ライセンス登録しないとどうなるんでしょうか?
あんまパスワードとか作りたくないので、
できれば登録したくないです。
あと、どんな感じで勉強してったらいいでしょうか?
javaを2年くらいやってます。あとC言語をちょびっとやってました。
くだらない質問と漠然とした質問ですみませんが
教えてもらえたらありがたいです。
お願いします。
0580デフォルトの名無しさん
2009/06/16(火) 20:42:13それだけ
Javaやってたなら簡単だと思うよ
ここで聞くことも無いかもしれない
0581デフォルトの名無しさん
2009/06/16(火) 20:43:06javaできるなら勉強しなくてもいきなり使えるはず
使いながら随時細かい違いを調べていけば十分
それができないならjavaもできてないってことだ
0582デフォルトの名無しさん
2009/06/16(火) 20:45:57チェックボックスをクリックした瞬間とはならないでしょうか。
ちょうどチェックボックス付きの ListViewのような動作です。
それならListViewをつかえといわれそうですが、リサイズした場合に一番右側のヘッダの
右端が常にコントロール右端に一致するようにするやり方がわからないのです。
0583デフォルトの名無しさん
2009/06/16(火) 20:47:03登録しなくても問題無くずっと使える
前は登録するとアイコンセットもらえるキャンペーンとかやってたけど
リファレンスもユーザーサイトも充実してるしJavaとVB足したような言語だから
たぶん難しくないよ
0584デフォルトの名無しさん
2009/06/16(火) 20:50:240585デフォルトの名無しさん
2009/06/16(火) 20:52:490586デフォルトの名無しさん
2009/06/16(火) 20:53:160587デフォルトの名無しさん
2009/06/16(火) 20:53:400588デフォルトの名無しさん
2009/06/16(火) 20:54:59Visual Studio 2008 Express Edition を Web インストールにて入手いただいたお客様は、ご使用に当たってライセンス認証が必要となります。
ライセンス認証キー発行の過程において Live ID によるユーザー登録をお願いしております。
無料のライセンス認証キーにより、Visual Studio 2008 Express Edition を、30 日間の期限を過ぎても使用できるようになります。
0589デフォルトの名無しさん
2009/06/16(火) 20:57:440590デフォルトの名無しさん
2009/06/16(火) 21:19:220591デフォルトの名無しさん
2009/06/16(火) 21:22:14LiveID持ってれば製品登録してメール送られてくるだけ
0592デフォルトの名無しさん
2009/06/16(火) 21:26:19Webインストールだけなのね。DVDから入れたわ。
0593デフォルトの名無しさん
2009/06/16(火) 22:07:46ならListViewでSizeChangedでColumnHeaderのWidthいじればいいんじゃね
ダブルクリックとかスペースキーでチェック状態変更するときはどうすんのかね
0594デフォルトの名無しさん
2009/06/16(火) 22:22:15既に持ってる人も多いだろうし。
0595デフォルトの名無しさん
2009/06/16(火) 22:37:01マウスイベントでマウスポインタの位置を取得して
ClickかSelectedIndexChangedあたりで選択されたインデックスの
チェックボックスの領域がクリックされたらItemCheckみたいな方法しか
ないんじゃないかね
0596デフォルトの名無しさん
2009/06/16(火) 22:45:330597デフォルトの名無しさん
2009/06/16(火) 22:49:39使い終わるってどういう状態のこと?
0598デフォルトの名無しさん
2009/06/16(火) 22:51:47なんていうか、DLL全部EXEに組み込むみたいな。
0599デフォルトの名無しさん
2009/06/16(火) 23:01:36iPhoneでC#製プログラムを動かすだかって話の時に読んだ
0600デフォルトの名無しさん
2009/06/16(火) 23:13:20aot オプション付けるだけみたい。
0601デフォルトの名無しさん
2009/06/16(火) 23:19:140602デフォルトの名無しさん
2009/06/17(水) 00:23:54二重ループがうまくいっていないらしく希望の結果になりません、修正点を教えてください
希望のプログラム
5(ここは任意の数字を入力)
*
**
***
****
*****
このように任意の数字を入力しそれまでの間1づつ増加した*を並べたいです
組んだプログラム
#include<stdio.h>
int man()
{
int a,b,c;
scanf("%d",&b);
a=0;
c=0;
while(a<b)
{
while(c<=a)
{
printf("*")
c++;
}
a++;
printf("\n");
}
}
0603デフォルトの名無しさん
2009/06/17(水) 00:24:44*
*
*
*
*
となってしまいます、
*
**
***
****
*****
とするにはどこを修正すればいいのでしょうか、よろしくお願いします
0604デフォルトの名無しさん
2009/06/17(水) 00:29:200605デフォルトの名無しさん
2009/06/17(水) 00:31:510606デフォルトの名無しさん
2009/06/17(水) 00:34:27ただ叩くだけじゃなくてちゃんと誘導してやろうぜ、一応初心者スレなんだから
自分は他人に教えられる、えらい存在だなんて思ってるなら出て行ってくれ
>>603
それは違う言語だね、こっちのスレで質問したほうがいいと思います
http://pc12.2ch.net/test/read.cgi/tech/1244942050/
0607デフォルトの名無しさん
2009/06/17(水) 04:45:27その数値にToString()をかけた上でその文字列の長さを見るところだろうな。
C++なら桁数を求める数値計算をさせるだろう。
0608デフォルトの名無しさん
2009/06/17(水) 07:41:510609デフォルトの名無しさん
2009/06/17(水) 08:11:58c=0の位置間違えてる限り、何やってもw
0610デフォルトの名無しさん
2009/06/17(水) 08:13:110611デフォルトの名無しさん
2009/06/17(水) 08:27:14Console.WriteLine(new String('*', a));
0612474
2009/06/17(水) 17:30:18昔 ColumnHeaderHeightSizeMode = AutoSize
今 ColumnHeaderHeightSizeMode = DisableResizing
プロパティ1つ変えたら10倍速くなりました。
0613デフォルトの名無しさん
2009/06/17(水) 19:48:370614デフォルトの名無しさん
2009/06/17(水) 19:51:190615デフォルトの名無しさん
2009/06/17(水) 22:59:120616デフォルトの名無しさん
2009/06/17(水) 23:02:36やっぱりオーバーライドをやめることにしました。
ついては、オーバーライド
してた演算子を全部検索して、
Equals に書き換える必要が生じたんですけど、
どこでオーバーライドされた演算子が使われているか検索する
方法はないでしょうか?
0617デフォルトの名無しさん
2009/06/17(水) 23:04:390618デフォルトの名無しさん
2009/06/17(水) 23:07:08右クリックで「すべての参照の検索」は?
0619デフォルトの名無しさん
2009/06/17(水) 23:11:36javaを2ヶ月勉強した後に、仕事で3ヶ月前からC#触っています
いろいろな方から聞いたのですが、参照型の値の比較をするときはjavaの時はequalsを使うのは当たり前でしたが、
C#だと==で問題ないって方が多いのですが、これはどういうことなのでしょうか?
C#はそもそも参照型の概念がjavaとは違うのですか?
==を使うとき、C#だと値自体の比較がされるということなのでしょうか?
0621デフォルトの名無しさん
2009/06/17(水) 23:19:09== をオーバーロードして値比較にすること「も」できる String とかだな
作法として == をオーバーロードする場合は Equals もオーバーライドして == と同等の動きをするようにする
必ず参照を比較したい場合は Object.ReferenceEquals を使う
0622デフォルトの名無しさん
2009/06/17(水) 23:23:06java知らんけど参照型の比較は言い換えれば参照情報の比較なんだから
==で問題無いかどうかって問題か?
例えばあaとbに1を入れて比較しても参照位置が違えばfalseになるってだけ
0623デフォルトの名無しさん
2009/06/17(水) 23:31:50オーバライドしたままで例外を投げるようにして実行する
例外が出なくなったらオーバライドやめる
0624デフォルトの名無しさん
2009/06/17(水) 23:34:59JavaもC#も==とequals/Equalsの根底は同じ:
==は参照が同じか比較する。equals/Equalsも基本そうだが、オーバーライドして値の等価比較にもできる。
ところが、C#の場合、==演算子を直接、多重定義できる。
特にStringなんかでは型安全ということで、==演算子が推奨されている。
http://sonic64.com/2006-02-02.html
しかし、そういう一部を除いてC#でも基本的にはEquals推奨だよ。
http://msdn.microsoft.com/ja-jp/library/bsc2ak47.aspx
http://msdn.microsoft.com/ja-jp/library/ms173147.aspx
0625デフォルトの名無しさん
2009/06/17(水) 23:35:28これがドンぴしゃだと思うけどどう?
http://msdn.microsoft.com/ja-jp/library/system.obsoleteattribute.aspx
コンパイル時警告になるはず。
0626デフォルトの名無しさん
2009/06/17(水) 23:38:16Stringのように値を変更できない型に限り、参照型でも==をオーバーロードしてよい
0627デフォルトの名無しさん
2009/06/17(水) 23:40:010628デフォルトの名無しさん
2009/06/17(水) 23:44:13実体は同じになっている可能性が高い。Cの文字列リテラルがそもそも
そういう傾向だったし。
s1 = "abc"; s2 = "abc"; と書いたときに、s1 == s2が
真かどうか分からないんじゃ使い物にならないので、内容が同じなら
同一オブジェクトかどうかは問わず真にしよう、という趣旨だと思う。
ただし、単に思いついただけなので、根拠はない。
0629デフォルトの名無しさん
2009/06/17(水) 23:45:540630デフォルトの名無しさん
2009/06/17(水) 23:46:41それを保証するために>>626のガイドラインがある
0631デフォルトの名無しさん
2009/06/18(木) 00:05:37> immutableなオブジェクトは、別々に代入されても、最適化によって
> 実体は同じになっている可能性が高い。
ここに関してはimmutableなオブジェクトでなくリテラルの話だよね
動的に作られたimmutableなオブジェクトがそうなる可能性は高くないと思うよ
そんな最適化はむしろ効率が悪そうだ
0632デフォルトの名無しさん
2009/06/18(木) 03:00:46関係ないけどさ
0633デフォルトの名無しさん
2009/06/18(木) 04:01:300635デフォルトの名無しさん
2009/06/18(木) 09:36:53ifとかcaseで滅多に実行されないレアケースがあるから
いつまでも削除できない
0636デフォルトの名無しさん
2009/06/18(木) 12:09:44ウェブ上で画像をバイナリとしてデータベース上にアップして
そのバイナリファイル(JPG画像)を
response.binaryWrite(file.content)って呼び出してウェブ上(displayJPEG.aspx)に画像だけを
表示させたいんですけど、
どうやっても真っ白なバックグラウンドに、そのaspxファイルのURLしか表示されません。
しかもそのURLがJPG画像?みたいになってて、テキストじゃないんです。
何が何だか良く分からなくてお手上げ状態なんでアドバイスください・・・
画像のアップロードの仕方に問題があるのでしょうか?
0637デフォルトの名無しさん
2009/06/18(木) 13:02:300638デフォルトの名無しさん
2009/06/18(木) 13:06:35ヘッダとかだいじょうぶ?
0639デフォルトの名無しさん
2009/06/18(木) 13:13:53バイト配列です。
>>638
いったんファイルに出して直接URLで読むっていうのはどういう意味でしょうか・・・?
初心者すぎてすみません・・・
コードはこんな感じです。
public partial class displayThumb : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
projectFilesTableAdapter filesTableAdapter =
new projectFilesTableAdapter();
ProjectDataSet.projectFilesDataTable files =
filesTableAdapter.GetProjectWithContentByFileID(37);
ProjectDataSet.projectFilesRow file = files[0];
Response.ContentType = "image/jpg";
Response.Write(file.projectContent);
}
}
0640デフォルトの名無しさん
2009/06/18(木) 13:17:590641デフォルトの名無しさん
2009/06/18(木) 13:21:53すみません、binaryWriteです。
でもbinaryWriteでも表示されませんでした・・・
これってもしかしてデータが壊れてるとかそういうのが原因でしょうか?
projectContentはデータタイプをbinary(7000)って設定したんですけど
2kb以上の画像をアップして表示させようとしてます。
これが原因だったりしますかね・・・
0642デフォルトの名無しさん
2009/06/18(木) 13:26:44すみません訂正です。2kbー>20kb以上
なんかもうテンパっててすみません
0643デフォルトの名無しさん
2009/06/18(木) 13:44:070644デフォルトの名無しさん
2009/06/18(木) 13:44:410645デフォルトの名無しさん
2009/06/18(木) 13:51:03struct使うと簡単にDisposeの後処理できるのかなぁ
0646デフォルトの名無しさん
2009/06/18(木) 13:51:56ライセンス登録が出来なくて困っています
Windows Live ID を作成し、登録画面にサインインできるのですが
サインインした先で
画面が読み込み中(画面中央で点が丸く点滅)のまま止まっています
日付を変えて試みても結果は同じでした
解決方法があれば教えてください
よろしくお願いします
0647デフォルトの名無しさん
2009/06/18(木) 14:07:15ISOイメージ落としてCDに焼いて、CDからインストールすれば登録不要。
0648デフォルトの名無しさん
2009/06/18(木) 14:12:460649デフォルトの名無しさん
2009/06/18(木) 14:25:46そこが狙いだったんでしょうね。
今回はまんまと引っかかっちゃったって感じです・・・
0650646
2009/06/18(木) 14:40:26>>648 様 ありがとうございました
ブラウザにChromeを使っていたのが原因だったようです
I.Eで無事に登録することができました
0651デフォルトの名無しさん
2009/06/18(木) 14:47:150652デフォルトの名無しさん
2009/06/18(木) 14:55:450653デフォルトの名無しさん
2009/06/18(木) 15:29:580654デフォルトの名無しさん
2009/06/18(木) 15:30:28になってDLできないが、FFでやるとすんなりDLできた。
0655デフォルトの名無しさん
2009/06/18(木) 15:48:030656デフォルトの名無しさん
2009/06/18(木) 16:11:03listbox.SelectedItemからそのファイルのあるフォルダを探すには、
再度検索しないとだめでしょうか? フルパスは捨てられちゃう?
0657デフォルトの名無しさん
2009/06/18(木) 16:15:58そのリストとか配列をDataSourceにするといいよ あとDisplayMemeber
0658デフォルトの名無しさん
2009/06/18(木) 16:17:24○フルパスと名前の2つのプロパティ
0659デフォルトの名無しさん
2009/06/18(木) 18:05:12ここでは何ピクセル、何色のアイコンを用意するのがベターなのでしょう?
また、OSが勝手に縮小や減色するのを避けるために、あらかじめ小さく作った
複数のアイコンを埋め込む方法も教えてください。
0660デフォルトの名無しさん
2009/06/18(木) 18:41:28エクスプローラーで表示される可能性のあるアイコンの種類の一覧って
どこかにありますか?
0661デフォルトの名無しさん
2009/06/18(木) 20:03:320662デフォルトの名無しさん
2009/06/18(木) 20:09:06ApplicationContext 作って管理しろ、とか
じゃない話?
0663デフォルトの名無しさん
2009/06/18(木) 20:26:16取得できるものがあればと思ったんですが、ApplicationContext
を調べてみます。
ありがとう
0664デフォルトの名無しさん
2009/06/18(木) 21:54:45一つのアイコンファイルに複数の大きさの画像が格納されててエクスプローラが自動選択で表示してるだけだから、
VSでどうこうするんじゃなくてそういうアイコンを作れ
0665デフォルトの名無しさん
2009/06/18(木) 22:02:21事足りるっつーには多いが
0666デフォルトの名無しさん
2009/06/18(木) 22:33:46struct使っても状況が良くなるとは思えないけど、
usingも慣れればそんなに悪くないよ。
0667デフォルトの名無しさん
2009/06/18(木) 23:27:18わかりました。
アイコンが8個入ったファイルを作ることにします。
0668デフォルトの名無しさん
2009/06/18(木) 23:45:20無い大きさで表示するときはどうなるの?
0669デフォルトの名無しさん
2009/06/18(木) 23:49:4796表示時は256のを縮小するらしいぞ
0670デフォルトの名無しさん
2009/06/18(木) 23:57:25それ VS で作れたっけ?
駄目なら Vista 対応とか PNG 形式対応とかそんな感じのアイコン
エディタ使わないといけないでふよたぶん。
0671デフォルトの名無しさん
2009/06/19(金) 00:28:41PNGならmspaintでいいんじゃないか?
0672デフォルトの名無しさん
2009/06/19(金) 00:50:100673デフォルトの名無しさん
2009/06/19(金) 02:09:28サンクス。やっぱり自分で保存しないと捨てられちゃうのね。
0674デフォルトの名無しさん
2009/06/19(金) 03:39:28説明文を作ろうとしていて、ボタンを押すごとに説明文が次のものに切り替わるようにしたいです。
0675デフォルトの名無しさん
2009/06/19(金) 03:42:13バインディングとか
BringToFront
0676デフォルトの名無しさん
2009/06/19(金) 04:12:17ラベルを書き換えればいいんですね。
やってみます。
0677デフォルトの名無しさん
2009/06/19(金) 05:13:59Form1csにForm1.Designer.csが付いてるようになってるけど、
自分で追加したClass1.csに他のソースファイルを付けるにはどうすればいいの?
ドロップできないし、partialにしてもそうならないんですが
0678デフォルトの名無しさん
2009/06/19(金) 05:29:13コンボボックスはDropDownListで使います。
0679デフォルトの名無しさん
2009/06/19(金) 05:36:50昔csprojファイルを直にいじったらできたような記憶がある
たしかこれと同じようにすればよかったと思う
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
0680デフォルトの名無しさん
2009/06/19(金) 05:44:53ラベルを配列かList<Label>にでも入れといて
SelectedIndexChangedイベントが発生したら
そのインデックスに対応するラベルを表示
0681デフォルトの名無しさん
2009/06/19(金) 05:58:23<DependentUpon>で付けるみたいですね
ありがとうございました
0682デフォルトの名無しさん
2009/06/19(金) 09:06:55INotifyPropertyChanged を実装したクラス「Sample」を
ジェネリックの List<Sample> に2個ほど入れ、
DataGridView の DataSource に突っ込んだところ
みごとにバインドされました。
しかし、コードでSampleクラスの値を変えても
DataGridView のフォーカスのある行しか値が更新されません。
すべての行(この場合2行)が更新されるにはどうすればよろしいでしょうか?
0683デフォルトの名無しさん
2009/06/19(金) 09:08:12class Sample : INotifyPropertyChanged
{
public Sample
{
}
private bool _count;
public bool Count
{
get { return _count; }
}
private DateTime _date;
public DateTime Date
{
get { return _date; }
}
public void Update()
{
_count++;
_date = DateTime.Now;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Count"));
PropertyChanged(this, new PropertyChangedEventArgs("Date"));
}
}
#region INotifyPropertyChanged メンバ
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
0684デフォルトの名無しさん
2009/06/19(金) 09:09:44〜
// 2つほど入れる
List<Sample> sampleList = new List<Sample>{ new Sample(), new Sample };
〜
dataGridView1.DataSource = sampleList;
〜
// スレッドで定期的に更新する
foreach (var item in sampleList)
{
item.Update();
}
0685デフォルトの名無しさん
2009/06/19(金) 09:56:41あとスレッドでって言ってるけどInvoke/BeginInvokeは大丈夫か? データソースいじるときも同期が必要だぞ
0686デフォルトの名無しさん
2009/06/19(金) 10:35:28BindingListに変更し、Invokeメソッドで実行してみましたが、
PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Count"));
GUI上では DataGridView の現在選択中の行しか値は更新されませんでした orz
0687デフォルトの名無しさん
2009/06/19(金) 10:39:49いえ、全部の行が更新されています!
ありがとうございました!orz
0688デフォルトの名無しさん
2009/06/19(金) 10:42:53Control.Invokeの方
0689デフォルトの名無しさん
2009/06/19(金) 10:53:33手順としては
1.Sample クラスでプロパティの変更を感知
2.?
3.DataGridView または DataGridView の所属する Form で
Control.Invoke(?) を呼び出す。
ということでしょうか?
0690デフォルトの名無しさん
2009/06/19(金) 11:01:42バインディングされてるオブジェクトは扱いも慎重にしないとダメよ
0691デフォルトの名無しさん
2009/06/19(金) 11:16:33//C#での実装(失敗、デッドロックする)
//※インデントに全角空白*2を使用
public class ThreadMain{
private EventWaitHandle lockObj;
public ThreadMain(EventWaitHandle lockObj){
this.lockObj = lockObj;
}
public void run(){
lock(lockObj){ //ここには入れない
Console.WriteLine("sub in sync");
lockObj.Set();
Console.WriteLine("sub out sync");
}
}
}
public void test(){
EventWaitHandle lockObj = new EventWaitHandle(false, EventResetMode.AutoReset);
ThreadMain tm = new ThreadMain(lockObj);
Thread t = new Thread(tm.run);
lock(lockObj){
t.Start();
Console.WriteLine("main in sync");
lockObj.WaitOne(); //ここで待機中の間だけlockObjを解放したい
Console.WriteLine("main out sync");
}
}
0692デフォルトの名無しさん
2009/06/19(金) 11:17:29//※インデントに全角空白*2を使用
public class Test{
public static class ThreadMain implements Runnable{
private Object lockObj;
public ThreadMain(Object lockObj){
this.lockObj = lockObj;
}
public void run(){
synchronized(lockObj){
System.out.println("sub in sync");
lockObj.notifyAll();
System.out.println("sub out sync");
}
}
}
public static void main(String args[]) throws InterruptedException{
Object lockObj = new Object();
ThreadMain tm = new ThreadMain(lockObj);
Thread t = new Thread(tm);
synchronized(lockObj){
t.start();
System.out.println("main in sync");
lockObj.wait(); //待機中はlockObjのモニタは解放されている
System.out.println("main out sync");
}
}
}
0693デフォルトの名無しさん
2009/06/19(金) 11:18:59main in sync
sub in sync
sub out sync
main out sync
というシーケンスになるようにしたいんだけど、どうしたらいいだろう?
期待している動作は、メインスレッドがWaitOneに入るときlockObjのロックが解放されて、
サブスレッドがSet()して、さらにlock文から抜けた後、
mainがlockObjのロックを再獲得してWaitOneから復帰するようなイメージ。
Visual C# 2005 Express SP1 (.NET 2.0)
0694デフォルトの名無しさん
2009/06/19(金) 11:29:32lockはMonitorの糖衣構文だから、Monitor.WaitとMonitor.Pulseを使えば
0695693
2009/06/19(金) 11:29:400696デフォルトの名無しさん
2009/06/19(金) 11:30:38レスサンクス
ちょっとやってみる
0697デフォルトの名無しさん
2009/06/19(金) 11:38:20Monitorクラスはlock文用のEnterとExitしか無いと思い込んでた^q^
>>694 ありがとう
(変更点)
//EventWaitHandle lockObj
Object lockObj
//lockObj.Set();
Monitor.Pulse(lockObj);
//lockObj.WaitOne();
Monitor.Wait(lockObj);
0698デフォルトの名無しさん
2009/06/19(金) 13:30:18CTreeCtrl::GetEditControl
に相当する処理を、
C#のTreeView
で探しています(VS2005 .NET Framework 2)。
なんとかして、エディット コントロールのハンドルが欲しいんですが、
どうしたらいいか、わかる人おられませんか?
0699デフォルトの名無しさん
2009/06/19(金) 14:46:48フォームを自作しなくても、既製の部品があると読んだ覚えがあるんですが、
どうしても思い出せません。
こういうやつです。
ttp://f.hatena.ne.jp/images/fotolife/o/os0x/20080512/20080512223830.png
0700デフォルトの名無しさん
2009/06/19(金) 14:53:410701デフォルトの名無しさん
2009/06/19(金) 14:54:070702699
2009/06/19(金) 15:03:010703デフォルトの名無しさん
2009/06/19(金) 16:10:51int x=new int();
x=12;
ってやってもちゃんとできるね。
0704デフォルトの名無しさん
2009/06/19(金) 16:26:270705デフォルトの名無しさん
2009/06/19(金) 16:58:00きちんと書き分けないと話が通じなかったりするぞ
0706デフォルトの名無しさん
2009/06/19(金) 17:00:17なんてこともできます。
実際はboxingでInt32に変換されてるだけですが。
0707デフォルトの名無しさん
2009/06/19(金) 17:04:580708デフォルトの名無しさん
2009/06/19(金) 17:11:03static void Main(string[] args) {
object i = 3;
Console.WriteLine(i.GetType().FullName);
}
}
0709デフォルトの名無しさん
2009/06/19(金) 17:12:57namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void Func(ref int x){
x=10;
}
private void Form1_Load(object sender, EventArgs e)
{
int y;
this.Func(ref y);
}
}
}
これコンパイルできない
引数に10を代入する関数Func作ったが
this.Func(ref y)のyがグローバルとか意味輪からんことでてきてる
どうすればなおせる?
0710デフォルトの名無しさん
2009/06/19(金) 17:15:320711デフォルトの名無しさん
2009/06/19(金) 17:16:04それかyに初期値代入しとくか
つかエラーメッセージぐらいちゃんと書け
0712デフォルトの名無しさん
2009/06/19(金) 17:45:54ダイアログがアクティブな状態でCtrl+Cを押すと
エラーメッセージがクリップボードに入るぞ
0713デフォルトの名無しさん
2009/06/19(金) 19:10:260714デフォルトの名無しさん
2009/06/19(金) 22:32:06テキストが選択されている間のみ上記のメニューを選択できるようにしたいのですが、上手く表示されません。
具体的には、
TextBox内のテキストを選択している状態で編集メニューを開いても上記のメニューは選択できる状態にはならず、
右クリックでメニューを表示してから編集メニューを開くと上記のメニューが選択できる状態になります。
右クリックをした瞬間に何かを呼び出しているんでしょうか?
ちょっとわかりにくいでしょうか・・
ご教授願います。
0715デフォルトの名無しさん
2009/06/19(金) 23:23:00メニューを開かれるタイミングで調べるんじゃなくて、
TextBoxの選択が変わったときにメニューのプロパティを書き換えるんだ。
0716デフォルトの名無しさん
2009/06/19(金) 23:24:18どっちにしろOpendイベントで判定すればいいと思うけど
0717デフォルトの名無しさん
2009/06/20(土) 01:06:17string[] cell = line.Split('\t');
と書いたとき、
for (int i = 0; i < line.Length; i++) {textBox[i].Text = lineView[i];}
みたいに行は書けるけど、[i]行目のcell[0]はなんて書けばいいのでしょうか?
0718デフォルトの名無しさん
2009/06/20(土) 01:08:21>string[] cell = line.Split('\t');
どうみてもエラーです
0719デフォルトの名無しさん
2009/06/20(土) 01:23:29string[] cells = table.Split(new char[]{'\t','\n'},StringSplitOptions.None)
ここでx列y行はcells[x+y*width]
0720デフォルトの名無しさん
2009/06/20(土) 01:53:38cells[0] | cells[1] | cells[2]
cells[3] | cells[4] | cells[5]
と左から順番に設定するんですね!
これはすごい。
サンクス!!!
0721デフォルトの名無しさん
2009/06/20(土) 01:58:090722デフォルトの名無しさん
2009/06/20(土) 02:03:070724デフォルトの名無しさん
2009/06/20(土) 02:59:170725デフォルトの名無しさん
2009/06/20(土) 03:09:50ここで質問させてください。
Visual Studio 2008 StdのC#でGUIなアプリケーションを作成しているのですが、
ファイルを参照するボタンに画像を貼り付けたいと思います。
凝った画像ではなく、エクスプローラの「ファイルを開く」メニューに表示
されているようなアイコンで構わないのですが、どこかで配布されているの
でしょうか?
それとも皆さん毎回オリジナルの画像を作っているのですか?
0726デフォルトの名無しさん
2009/06/20(土) 03:18:130727デフォルトの名無しさん
2009/06/20(土) 03:27:21MDI親フォームのリソースファイルの画像を使うとか。
0728デフォルトの名無しさん
2009/06/20(土) 03:29:330729デフォルトの名無しさん
2009/06/20(土) 03:34:12すまんです。
>>727-728
Windowsのシステムアイコンを抜き出して使うと言うことでしょうか?
アイコンの抜き出し方は知ってますが、やはりまずいですよね?
ここで聞けというスレがあれば誘導していただけるとありがたいです・・・
0730デフォルトの名無しさん
2009/06/20(土) 03:36:040731デフォルトの名無しさん
2009/06/20(土) 03:39:24ソリューションファイル開くときに
VisualC#とVBどっちで開くか聞いてきてうざい
VBけしたほうがいい?
0732デフォルトの名無しさん
2009/06/20(土) 03:45:03>>726
0733デフォルトの名無しさん
2009/06/20(土) 03:57:11インスコ先探せばVS2008ImageLibraryってのが多分どっかにある。無くても確かMSDNから落とせる。
>>731
.slnの関連付けを変えればいい。
まあ、無駄レス付けるくらいなら答え付けてもいいんじゃねってことで。
どこで聞いていいのか分らんなら汎用スレがある。次からこっち行ってね。
スレ立てるまでもない質問はここで
http://pc12.2ch.net/test/read.cgi/tech/1240877154/
0734727
2009/06/20(土) 04:13:29ソリューションの新しい項目を追加でMDI親フォームを追加すると
アイコンついたボタンが最初からフォーム上にあるからその画像を使ったらって意味。
その画像の元はフォームのリソースファイルにある。
0735デフォルトの名無しさん
2009/06/20(土) 04:49:24http://pc12.2ch.net/test/read.cgi/tech/1245309571/
こっち行け
0736デフォルトの名無しさん
2009/06/20(土) 06:11:38お前もいい加減スルーを覚えろよクズ
0737デフォルトの名無しさん
2009/06/20(土) 06:19:20Common7フォルダだったかな?
最近は付いてないのかな?
0738デフォルトの名無しさん
2009/06/20(土) 06:34:03具体的にはBackgroudWorkerで設定した変数をstaticの変数に入れたいのです
別のスレッドではstaticが共有されないみたいなので行き詰ってしまいました。お願いします
0739デフォルトの名無しさん
2009/06/20(土) 06:45:42誰かやり方or良いサイト知ってれば教えてください
英語でも構わないっす
0740デフォルトの名無しさん
2009/06/20(土) 08:07:50そんなわけがない。
もしくは何か勘違いしてる。
0741デフォルトの名無しさん
2009/06/20(土) 08:24:41なにか言葉足らずだったかもしれません、すいません
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37022&forum=7
ここに共有されないと載っていたので
もう少しいろいろやってみます
0742デフォルトの名無しさん
2009/06/20(土) 09:24:56ConvertとかString.Formatとか、特にnewで作成してないのに
使用できるクラスのメソッドがありますが、自分でもそんなクラスを作りたいのですが
どうすれば良いですか?
0743デフォルトの名無しさん
2009/06/20(土) 09:34:17↓
public static int Method(int value){...}
0744デフォルトの名無しさん
2009/06/20(土) 09:36:22お、おまえは何を言っているのだ??
0745デフォルトの名無しさん
2009/06/20(土) 09:42:21クラスがpublicでなかったようです。解決しました。
0746デフォルトの名無しさん
2009/06/20(土) 09:45:00ありがとうございます。メソッドをstaticにしてみます。
0747738
2009/06/20(土) 10:13:29{
static public int a;
static public string b;
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
userData.a = 10;
userData.b = "abc";
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
MessageBox.Show("a : " + userData.a + ",b : " + userData.b);
}
わかりにくくてすいません
こんな感じでaとbを表示させたいのですが、どこがいけないのでしょうか
0748デフォルトの名無しさん
2009/06/20(土) 10:19:36backgroundWorker1のRunWorkerCompleted イベントを作って、
その中で MessageBox.Show() を叩けば幸せになれるお。
0749デフォルトの名無しさん
2009/06/20(土) 10:25:41ありがとうございます
表示できましたが、このaとbをBackgroundWorker以外でも使いたいのですが、これだとだめですよね?
0750デフォルトの名無しさん
2009/06/20(土) 10:34:29俺はそういうことをしないようにしてるから、大正解の方法が分らんw
BackgroundWorkerの 「IsBusy プロパティが真の間は処理を待つ」とかかな?
0751デフォルトの名無しさん
2009/06/20(土) 10:35:57そんなこと言ったらビジーループで待ってしまうじゃないか
0752デフォルトの名無しさん
2009/06/20(土) 10:39:25というか、BackgroundWorkerの処理完了後の動作はRunWorkerCompleted内に書けば全て解決。
button1は別スレッドを始動させるためだけのボタンと考えればいいんじゃないかな
>>751 本末転倒だなorzwww
0753デフォルトの名無しさん
2009/06/20(土) 10:55:320754デフォルトの名無しさん
2009/06/20(土) 11:06:570755デフォルトの名無しさん
2009/06/20(土) 11:07:11>>753
別スレッドで処理するってことくらいしかわかりません
0756デフォルトの名無しさん
2009/06/20(土) 11:11:18結構時間がかかる処理なのでBackgroundWorkerでやってます
0757デフォルトの名無しさん
2009/06/20(土) 11:18:25共有データの更新タイミングの同期とか、
何も考えてないってか気をつけなきゃならないって事も
何も分かってないだろ?
0758デフォルトの名無しさん
2009/06/20(土) 11:22:21BackgroundWorkerの記事はネット上にあるはずだから、
自分で調べてどういうところに気をつければいいか勉強すればいいじゃない。
0759デフォルトの名無しさん
2009/06/20(土) 11:37:02どんなに時間がかかろうと、結果が出るまで次に進めなくて、
ただ待ってるだけならバックグラウンドにする意味ナッシング。
0760デフォルトの名無しさん
2009/06/20(土) 11:50:14public static volatile int a;
public static volatile int b;
a, b に volatile をつけると、あるスレッドで更新すれば別のスレッドに更新が伝わるようになる。
逆にvolatileのついていない変数では、あるスレッドで変更しても、その変更が別のスレッドにすぐに伝わるわけではない。
0761デフォルトの名無しさん
2009/06/20(土) 12:05:02ページの中に「ソースの表示」とか「ダウンロード」ボタンが見あたりません。
どうやって入手すればいいんでしょう?
http://msdn.microsoft.com/ja-jp/library/ka7h9fze.aspx
0762デフォルトの名無しさん
2009/06/20(土) 12:23:23進めなくても、キャンセルくらいはできて欲しい
あと、処理中に描画が止まる糞設計もやめて欲しい
0763デフォルトの名無しさん
2009/06/20(土) 12:34:14適当なこと書くな。
だいたいこの場合だとvolatileとかいう問題じゃないだろ。
0764デフォルトの名無しさん
2009/06/20(土) 12:35:41なんでここに質問するの?バカなの?死ぬの?
0765デフォルトの名無しさん
2009/06/20(土) 12:47:08知らないならだまってればいいのに。
0766デフォルトの名無しさん
2009/06/20(土) 12:50:09だまってろよw
0767デフォルトの名無しさん
2009/06/20(土) 12:50:42バックグラウンドにするメリットってあるの?
もちろん結果が出るまで待つ場合。
とりあえずバックグラウンドにするだけじゃ、
プロセスの優先順位は変わらないよね?
0768デフォルトの名無しさん
2009/06/20(土) 12:59:05aとbを同時に更新(あたかも)する必要がないか、
更新タイミングの同期はどうするのかって方向であって、
この例でvolatile云々言うのは大抵的外れ。
0769デフォルトの名無しさん
2009/06/20(土) 13:05:28必要な場合はあるけど、volatileつけないと別スレッドから見えないかっていうとそんなことはない。
まあ言い方に色々誤弊はあるけどね。
0770デフォルトの名無しさん
2009/06/20(土) 13:09:48ローカルのヘルプからたどればいいのに・・・
それにそこのリンクからもダウンロードできるじゃないか
そこのリンク→方法 : サンプルを表示およびダウンロードする→Microsoft Download Center にアクセスします。
0771デフォルトの名無しさん
2009/06/20(土) 13:11:03応答なしってタイトルバーに出たりするとユーザは不安になるもんだ
ちっとも経過を報告しないプログレスバーが行ったり来たりしてる方がマシ
キャンセルもできればなお良し
0772デフォルトの名無しさん
2009/06/20(土) 14:29:090773デフォルトの名無しさん
2009/06/20(土) 14:44:36それ以上の意味なら、ソースが欲しい
0774デフォルトの名無しさん
2009/06/20(土) 14:46:030775デフォルトの名無しさん
2009/06/20(土) 21:53:56いろいろ候補でるよね
Button1.って入力したら
ClickとかTopとかずらずらって。
あの候補のことなんていうんだっけ?
0776デフォルトの名無しさん
2009/06/20(土) 21:56:25インテリセンスの機能だな。
0777デフォルトの名無しさん
2009/06/20(土) 23:55:370778デフォルトの名無しさん
2009/06/21(日) 00:47:07フォルダが
binとobjにわかれていて
それぞれにdebug releaseの二つに分かれてて
全部で4つの同じexeがあるんだが
なんでこんなことしてんの?
20MBのexeを4つも作られたら容量圧迫してかなわん。
bin/obj
debug release
どのexeが正しいexeなの?
0779デフォルトの名無しさん
2009/06/21(日) 00:52:51DebugとReleaseは言わずもがな
0780デフォルトの名無しさん
2009/06/21(日) 01:53:10容量圧迫ってどんだけきつきつでやってんだよ。
0781デフォルトの名無しさん
2009/06/21(日) 03:25:530782デフォルトの名無しさん
2009/06/21(日) 03:53:12gccにおけるauto-vectorazationのことで、一般的には自動ベクトル化と訳されているようだ。
http://gcc.gnu.org/projects/tree-ssa/vectorization.html
本質的にはループを展開して並列実行させることだからSIMDが無くても
複数のレジスタに分ける方法だってあるわけだが、
SIMDに対応してるならそれに越したことは無いだろうな。
0783デフォルトの名無しさん
2009/06/21(日) 03:55:190784デフォルトの名無しさん
2009/06/21(日) 09:27:29読み込むときに鳴るカチッという音を消したい場合はどうしたらいいでしょうか
0785デフォルトの名無しさん
2009/06/21(日) 09:37:050786デフォルトの名無しさん
2009/06/21(日) 10:30:380787デフォルトの名無しさん
2009/06/21(日) 10:55:02試してないからよくわからんが。
0788デフォルトの名無しさん
2009/06/21(日) 11:41:24そうするとページのURLが存在しないから、そのページはよくても
ほかのページにジャンプするときはフルパスのリンクが必要だな。
で、そのときにカチッと音が出る。
0789デフォルトの名無しさん
2009/06/21(日) 11:58:520790デフォルトの名無しさん
2009/06/21(日) 15:12:23変更できないらしいことは分ったんですが、
文字列の受け方がよくわかりません。
こういう場合は、どうすればいいんですか ><
sting param;
if ( xxxx )
param = "THEN"
else
param = "ELSE"
0791デフォルトの名無しさん
2009/06/21(日) 15:13:450792デフォルトの名無しさん
2009/06/21(日) 15:17:060793デフォルトの名無しさん
2009/06/21(日) 15:24:08それでおk。
あとは
string param = (xxx) ? "THEN" : "ELSE";
とも書ける。
0794790
2009/06/21(日) 15:56:06よくわからないから、今度はこうしてみたんですけど、
whileの外で使うと値が入ってないんです。><
main(){
char [] param = null;
while( xxxx ){
if ( xxxx ) then
param = THENストリング.ToCharArray();
else
param = ELSEストリング.ToCharArray();
}
Console.WriteLine("Paramの中身", param);
}
0795デフォルトの名無しさん
2009/06/21(日) 15:58:320796デフォルトの名無しさん
2009/06/21(日) 16:01:38794は多分ループ内に入ってないんだろうなぁ
0797デフォルトの名無しさん
2009/06/21(日) 16:03:20そしてどういう結果を期待してるのか書け
0798デフォルトの名無しさん
2009/06/21(日) 17:24:23thenって?
0799デフォルトの名無しさん
2009/06/21(日) 17:44:45http://red-treasure.com/report/?p=100
上のサイトにあるようなややこしいことしないとできませんか?
0800デフォルトの名無しさん
2009/06/21(日) 17:48:550801デフォルトの名無しさん
2009/06/21(日) 17:49:030802デフォルトの名無しさん
2009/06/21(日) 17:59:14「デフォルトのブラウザーが何か」ってのはOS上のユーザー設定を参照しないといけないことだからなぁ。
そこのサイトのコードだけでできるってのは、十分シンプルだと思う。
0803デフォルトの名無しさん
2009/06/21(日) 20:36:320804デフォルトの名無しさん
2009/06/21(日) 20:43:30Processで自分の名前を取得して終了メッセージを送ったら、(当然のように)自分も終了してしまいました…。
あたりまえか。
多重起動を禁止するのではなく、行いたいです。
アドバイスお願いします。
0805デフォルトの名無しさん
2009/06/21(日) 20:50:40Mutex の代わりに EventWaitHandle 使う
新しいプロセスはイベント通知するだけでその後は普通に進める
前のプロセスはイベントを受け取ったら終了処理
0806デフォルトの名無しさん
2009/06/21(日) 21:13:06取得できなかった奴はクライアントとしてGetPropで見つけたWHDLに
WM_COPYDATAで起動パラメータの情報を送信して終了。
サーバはWM_COPYDATAで受け取った情報で処理。
って作ってた。1.1だったからなぁ。
0807806
2009/06/21(日) 21:17:100808デフォルトの名無しさん
2009/06/21(日) 21:17:33同時に何個も起動したときにおかしなことにならないようにしないといけないから。
0809デフォルトの名無しさん
2009/06/21(日) 21:25:250810デフォルトの名無しさん
2009/06/21(日) 21:27:170811デフォルトの名無しさん
2009/06/21(日) 21:29:23書いちゃったw >>WHDL
・・・マジ、なんでWHDLとか書いてたんだ?自分。
0812デフォルトの名無しさん
2009/06/21(日) 21:42:070813デフォルトの名無しさん
2009/06/21(日) 22:02:33ICloneable に対するコピーの実装って
慣例的に シャロウコピー と ディープコピー のどっちなんでしょうか?
それとも特に決まってないのでしょうか?
よろしくお願いします
0814デフォルトの名無しさん
2009/06/21(日) 22:12:56どっちかっていうとシャロウコピーな感じもある。
0815デフォルトの名無しさん
2009/06/21(日) 22:16:130816デフォルトの名無しさん
2009/06/21(日) 22:22:20Javaは知らんが.NETでは特に決まってない。
Cloneは同じ内容だけど別物として振る舞うようなクローンを返せば、なんでもいい。
別にメンバが同じ値であったりそのコピーである必要はない。
0817デフォルトの名無しさん
2009/06/21(日) 23:44:16EventWaitHandleで、
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=23906&rev=1&no=0&KLOG=2
のページを見つけて、そっくりおなじように実装してみたのですが、古い方は閉じるんだけど、新しいウィンドウも開かない状況です。
う〜む。なにがいけないんでしょう?
>>810
ビューアーのアプリケーションで、表示を自動/手動でリフレッシュしたいのです。外部から手動でリフレッシュするのには、新しいウィンドウを開くのがいちばん楽かと。
>>812
そ…そうかな…。
こういう場合って、どんなふうに実装します?
ところでUXってなに? User eXperience?
0818デフォルトの名無しさん
2009/06/21(日) 23:48:23そのウィンドウに更新ボタンを付けるのが一番素直な実装だと思うんだが?
0819デフォルトの名無しさん
2009/06/22(月) 00:06:00レスどうもです。
ICloneable について触れてるサイトを何度か見かけたのですが、
どれも MemberwiseClone をそのまま返却する実装をしてたので、
ちょいと気になってました。
ありがとうございました
0820デフォルトの名無しさん
2009/06/22(月) 00:32:00二つ目のアプリ実行っていったら、普通はMDIにドキュメント追加とかタブ追加
だから選択ミス。
いつも使ってる(だろう)アプリ見たら分かりそうだけどなぁ。
秀丸、サクラエディタ、VS、IE、Firefox、WinMerge・・・
0821デフォルトの名無しさん
2009/06/22(月) 00:53:49なるほど。更新ボタンですか…。
更新ボタンをつけたとして、外部のアプリケーションから手動で押す場合には、どういうメッセージを送ればよいんでしょう?
具体的にはコマンドラインから指示したいのです。
サーバー的なシステムで、アプリケーションの動いているマシンには、キーボードもポインティングデバイスもない(操作しにくい)ためです。
コマンドラインから開いているアプリケーションにメッセージを送ることってできるんですか?
これまでは、コマンドラインからおなじアプリケーションを実行してそれにメッセージを送信させようとしてはまってました。
「コマンドラインから」という条件は必須です。
メッセージを送るためのアプリケーションをもうひとつ作るのも考えたのですが、それならおなじアプリケーションで多重起動を監視するほうがよいかな、と考えて現在に至っています。
0822デフォルトの名無しさん
2009/06/22(月) 00:59:12質問する時は条件を後出しするなよ…
0823デフォルトの名無しさん
2009/06/22(月) 01:00:12まて、それでどうやって二番目のプロセスを起動しようとしている・・・?
どうやって コ マ ン ド ラ イ ン か ら 打 ち 込 む 気 だ。
ネット越しならポート開けて待ってて、誰かアクセスしてきたら更新しろ。
0824デフォルトの名無しさん
2009/06/22(月) 01:01:45コントロールされる側も自作アプリなんだから、
外部(ネットやシリアルポートなど)から操作できるように作っとけばいいじゃん。
適当にポート開けとくとかして。
0825デフォルトの名無しさん
2009/06/22(月) 01:04:500826デフォルトの名無しさん
2009/06/22(月) 01:08:15端末がコマンドラインオンリーてのもずいぶん時代錯誤なシステムだな
両方ともWindowsにしてリモートデスクトップでも使えば一発で解決する問題のような
そもそもどうやってログインしてるんだ?
電源が落ちたらどうするんだ
0827デフォルトの名無しさん
2009/06/22(月) 01:51:47っ MONO
0828デフォルトの名無しさん
2009/06/22(月) 02:09:48すみません。
>>823、824
ポート開けるなんてのは初心者なもので、まだ書けません…。
もうすこし勉強します。
>>825
時代錯誤かどうかはさておき、現実にそういうシステムなので。
ちなみに、次のようにして解決しました。
コマンドラインから起動するときに、
taskkill /im Program.exe
Program.exe
としました。
EventWaitHandleの使い方を覚えられなかったのは残念…。
0829デフォルトの名無しさん
2009/06/22(月) 05:46:05次のソフト作るの楽になるんだろうなと思ってやってきたけど
結局毎回一から全部作るんだよね
ファイル入出力関連何度作ったことか
やっぱ最初はこんなもの?
0830デフォルトの名無しさん
2009/06/22(月) 05:50:560831デフォルトの名無しさん
2009/06/22(月) 06:09:35細かい機能使えるようにすると、元々あるクラス使えってことになるし
簡単に使えるクラスにすると、他のプログラムだと機能がたりなかったり
そもそも何をしているクラスなのかわからなかったりで
0832デフォルトの名無しさん
2009/06/22(月) 08:07:47プログラムのバイナリデータではFF01という風に逆順に並んでいるんですが
こういうのを10進数511と変換するうまいやり方はないでしょうか?
0833デフォルトの名無しさん
2009/06/22(月) 08:10:020834デフォルトの名無しさん
2009/06/22(月) 08:37:320835デフォルトの名無しさん
2009/06/22(月) 09:02:05>>834
それだと逆順になったままなんですが
FF01を511にする方法が知りたいんです
0836デフォルトの名無しさん
2009/06/22(月) 09:12:590837デフォルトの名無しさん
2009/06/22(月) 09:14:110838デフォルトの名無しさん
2009/06/22(月) 09:19:17それ、普通に short で読み込んだら 511 にならない?
Mono か何かでビッグエンディアンな CPU 上で実行してたりする?
0839デフォルトの名無しさん
2009/06/22(月) 09:24:030840デフォルトの名無しさん
2009/06/22(月) 09:32:04普通逆順になるわけがないんだが、
お前いったいどんなプログラムで確認してる?
0841デフォルトの名無しさん
2009/06/22(月) 09:42:32なるわけないし、ushortじゃないと範囲超える
0842デフォルトの名無しさん
2009/06/22(月) 09:46:43どういう意味?
あるアプリをバイナリ編集したいんだけど
数値の部分だけがFF01と反転している
そのアプリのバイナリデータを取り込んで0x01FFつまり511とテキストボックスなんかに表示したいんだけど
0843デフォルトの名無しさん
2009/06/22(月) 09:47:01くわしく
0844デフォルトの名無しさん
2009/06/22(月) 09:50:14short=0xFF01;
でやればわかる
0845デフォルトの名無しさん
2009/06/22(月) 09:53:40簡単な方法ありますか?
0846デフォルトの名無しさん
2009/06/22(月) 09:54:44何言ってんだお前は。
今の値はそうじゃないだろw
0847デフォルトの名無しさん
2009/06/22(月) 09:55:38byte[] data = {0xFF, 0x01};
Console.WriteLine(BitConverter.ToInt16(data, 0));
512って出るだろ?
出たならお前の読み込むプログラムの方がおかしいってこった。
0848デフォルトの名無しさん
2009/06/22(月) 09:57:40>>845
これで分かるだろ。
0849デフォルトの名無しさん
2009/06/22(月) 10:04:45おおおおおおおおおすげーーーー
なんで逆さまなのに511って出るんだ・・・
0850デフォルトの名無しさん
2009/06/22(月) 10:06:28今の値がどうとかに関係なくWORDを読み込んで数値に変換するわけなんだからshortじゃだめでしょ
0851デフォルトの名無しさん
2009/06/22(月) 10:09:21結局これだったわけねww
ありがとう
0852デフォルトの名無しさん
2009/06/22(月) 10:15:190853デフォルトの名無しさん
2009/06/22(月) 10:17:55そもそも今の会話からは符号付きかありかなんて読み取れないのに、
いきなり、>>841とかいいだすお前がおかしいわ。
0854デフォルトの名無しさん
2009/06/22(月) 10:20:37それを知らない時点で敗北決定
0855デフォルトの名無しさん
2009/06/22(月) 10:21:16>プログラムのバイナリデータではFF01という風に逆順に並んでいるんですが
ここでちゃんとWORDデータを変換すると言っているんだから
できるひとは>>834がすぐ出るでしょ
WORDデータに対してshort持ってきちゃうなんて世間知らずもいいとこだ
0856デフォルトの名無しさん
2009/06/22(月) 10:22:420857デフォルトの名無しさん
2009/06/22(月) 10:24:15どこだよっ
>>832をどう見ても符号付きか否かは不明。
0858デフォルトの名無しさん
2009/06/22(月) 10:26:570859デフォルトの名無しさん
2009/06/22(月) 10:30:360860デフォルトの名無しさん
2009/06/22(月) 10:32:04論破
0861デフォルトの名無しさん
2009/06/22(月) 10:37:24それはまだ蓄積や経験が足りない。わからなくなるのは管理が悪い。
名前の付け方に統一ルールを作り、長くなってもいいからわかりやすさを最優先に考える。
使い方をソースファイルの頭などにちゃんと書いておく。
過去の自分は他人。他人が見て使用法が理解できないソースは未来の自分にも理解できない。
「いちいち書くのがめんどくさい」「書かなくてもわかってる、覚えてる」は禁句。
まあ、35歳ぐらいになれば記憶力も衰えてくるし、10年以上の蓄積ができてるはずだから
身にしみてわかるようになるよ。
大多数の人間は経験から学ぶ愚者だからね。
0862デフォルトの名無しさん
2009/06/22(月) 10:42:49君おもしろいね
0863デフォルトの名無しさん
2009/06/22(月) 10:43:18見たまま0xFF01と解釈してるアホがいる
バイナリファイルをバイナリエディタで開いてみたことないんだろうな
0864デフォルトの名無しさん
2009/06/22(月) 10:49:20リトルインディアン?アメリカの子供に聞かせる歌でそんなのあったな
バイナリから取り込むわけだから、元データがOxFFFFの場合もあるかもしれないと
想定して作らないとだめでしょ?何で符号無しと決め付けるわけ?
思い込みは危険だよ
0865デフォルトの名無しさん
2009/06/22(月) 10:52:01http://j-ken.com/category/all/data/637100/
0866デフォルトの名無しさん
2009/06/22(月) 10:57:27今の質問だとどっちか分からないから、shortではなくushortにしなきゃならない
ってのは正しいかどうか確証はない。
shortじゃなきゃならない可能性もあるんだから。
符号に気をつけろだけなら異論はないが。
0867デフォルトの名無しさん
2009/06/22(月) 11:03:21その解釈が、件のデータが符号付きか符号なしかという問題に対して何か意味を持つとは思えないな。
0868デフォルトの名無しさん
2009/06/22(月) 11:05:12ushortじゃだめな理由なんてあるの?
0869デフォルトの名無しさん
2009/06/22(月) 11:16:180870デフォルトの名無しさん
2009/06/22(月) 11:18:20同じバイナリで表現される整数値の意味が変わるからだ。
知らないならC言語の初級からやりなおせ。
0871デフォルトの名無しさん
2009/06/22(月) 11:28:18なるほどそういうことか、難しいな
0872デフォルトの名無しさん
2009/06/22(月) 11:29:400873デフォルトの名無しさん
2009/06/22(月) 11:37:59アホ
0874デフォルトの名無しさん
2009/06/22(月) 11:46:45符号がどうとか
聞かれてもいないことに答えようとしている
おせっかいがたくさん
0875デフォルトの名無しさん
2009/06/22(月) 11:51:34普通に質問への答えに関わる事として重要なことだってのも分からんのか、
単に何か言いたいだけなのか、何なんだろうな。
0876デフォルトの名無しさん
2009/06/22(月) 11:55:46ToStringかけながらカンマ区切りで連結するのってどうやるんだろう?
できれば区切り文字はあとから変更できる形が望ましい。
.NET 3.5以降ならLinq付随のジェネリックテンプレートが使えるんだけど、
サポートOS(2000以降)の関係で.NET 2.0でお願いします。
0877デフォルトの名無しさん
2009/06/22(月) 11:58:59forでそれぞれToStringしながら配列に入れていく
String.Join
0878デフォルトの名無しさん
2009/06/22(月) 12:01:56あ、ConvertAllは配列にしてからじゃないとダメだったかな…
0879デフォルトの名無しさん
2009/06/22(月) 12:17:42なるほど……。そんな感じでやってみようかと思ったらStringBuilderを見つけて、
そっちで書いてみたら簡単だったのでコード片を載せておく。
IronPython.Runtime.List python_result;
var builder = new StringBuilder();
foreach(var e in python_result)
{
builder.Append(","+ e.ToString());
}
Console.WriteLine(builder.ToString().Substring(1));
>>878
対象がIronPython.Runtime.ListなんでConvertAllは使えないっぽいね……。
0880デフォルトの名無しさん
2009/06/22(月) 12:47:10ToArrayしてConvertAllしてJoinに渡す。
ってまあ別にベタで書いても全然構わないんだけど。
0881デフォルトの名無しさん
2009/06/22(月) 13:00:37枯れたライブラリならともかく、
こんなホットなもの相手に中のコードはいじりたくない。
C#は巨大な.NETクラスライブラリの関係で
同じことをやるのに方法がたくさんあるから、最適な方法を探すのが大変ですね。
0882デフォルトの名無しさん
2009/06/22(月) 13:05:47……XmlNodeListもそうなんだよな
0883デフォルトの名無しさん
2009/06/22(月) 15:31:14別に型が確定しなくても今回の質問には答えられる。
ちょっと注意書きを入れれば済むことだから両方書けばいいだけ。
BitConverter.ToUInt16() 符号無し
BitConverter.ToInt16() 符号あり
0884デフォルトの名無しさん
2009/06/22(月) 15:35:02DataGridView.Rows[].Cells[0]のことではないです。
0885デフォルトの名無しさん
2009/06/22(月) 15:51:39DataGridView.CellPaintingで
0886デフォルトの名無しさん
2009/06/22(月) 15:54:05DataGridView1.Rows[0].HeaderCell.Value
が、なぜか、マス目でいうと上から3つ目のところに表示されます
上から3つ目のマスが最初の行ということですか?
だとしたら、その上の行はなんなのか?あとインデックスって-1になるということ?
どうもよくわからない
0887デフォルトの名無しさん
2009/06/22(月) 16:00:27コーディングミスだろ。
http://www.dotup.org/uploda/www.dotup.org158297.png
0888デフォルトの名無しさん
2009/06/22(月) 16:08:24this.dataGridView1.Rows[0].HeaderCell.Value = "0";
�Bthis.dataGridView1.Rows.Add("1","2","3","4","5","6");
やってるのはこれだけなんですが、行のヘッダは3マス目に0が入り
�Bのデータはなぜか2マス目の行にデータが収まります
どうしてなんでしょうか?
0889デフォルトの名無しさん
2009/06/22(月) 16:24:38そのコードだけを書いたやつ実行してみなよ。
0890デフォルトの名無しさん
2009/06/22(月) 16:25:07人がわざわざ正しいやり方を示してくれているのに謝意も述べず、
自分勝手なやり方をしてそれがどういう結果をもたらすのか
自分で考えずに人に質問するような態度で、
答えを教えてもらえると思っているのか?
ちなみに887≠オレ
0891887
2009/06/22(月) 16:26:250892デフォルトの名無しさん
2009/06/22(月) 16:41:560893デフォルトの名無しさん
2009/06/22(月) 17:36:290894デフォルトの名無しさん
2009/06/22(月) 21:19:420895デフォルトの名無しさん
2009/06/22(月) 21:29:490896デフォルトの名無しさん
2009/06/22(月) 22:01:330897デフォルトの名無しさん
2009/06/22(月) 22:36:570898デフォルトの名無しさん
2009/06/23(火) 00:45:530899デフォルトの名無しさん
2009/06/23(火) 03:28:340900デフォルトの名無しさん
2009/06/23(火) 03:33:020901デフォルトの名無しさん
2009/06/23(火) 03:33:060902デフォルトの名無しさん
2009/06/23(火) 03:38:03みたいな感じです
バイナリエディタのようなものを作ろうとしているので
stirlingは左バイナリデータで右側にShift-Jis, ASCIIなどを表示してますよね?
そういう感じのものを作りたい
0903デフォルトの名無しさん
2009/06/23(火) 03:48:110904デフォルトの名無しさん
2009/06/23(火) 04:01:560905デフォルトの名無しさん
2009/06/23(火) 04:04:34http://dobon.net/vb/dotnet/string/getencoding.html
0907デフォルトの名無しさん
2009/06/23(火) 09:47:010908デフォルトの名無しさん
2009/06/23(火) 10:02:410909デフォルトの名無しさん
2009/06/23(火) 13:11:53Bio_100%の全盛期が重なってね。で、>>902から連想した。
あの頃はアセンブラが必須科目だったし、バイナリのデータ構造なんて
知ってて当たり前だった。ちょっと上の方で揉めてエンディアンの話とか。
0910デフォルトの名無しさん
2009/06/23(火) 13:16:26> 知ってて当たり前だった。
の割にはあまり刊行物では取り上げられなかったけどな。
0911デフォルトの名無しさん
2009/06/23(火) 13:21:59C/C++の入門書ならほぼ間違いなく取り上げてる話題なんだが、どうよ。
0912デフォルトの名無しさん
2009/06/23(火) 13:23:56悪い、勘違いした。
バイナリの構造って、たとえばPEヘッダとかそういうのだと思った。
0913デフォルトの名無しさん
2009/06/23(火) 13:31:43C#で作ったプログラムで他のモジュールを読み込む場合、
モジュールをサブディレクトリに置いた場合に
アプリケーション設定ファイル(*.exe.config)に
<probing privatePath="libs" />
といった形で検索パスを記入するが、他の方法はどういったものが挙げられるだろうか。
いいところ、悪いところなど教えてくれると助かる。
0914デフォルトの名無しさん
2009/06/23(火) 13:52:31API
0915デフォルトの名無しさん
2009/06/23(火) 14:05:15を踏まえた上での話?
0916デフォルトの名無しさん
2009/06/23(火) 15:09:070917デフォルトの名無しさん
2009/06/23(火) 15:18:16手に入らなかったような気がするけど。
0918デフォルトの名無しさん
2009/06/23(火) 17:58:25アセンブリ情報のGUIDってなんですか?
なんのためにあるんでしょう。
0919デフォルトの名無しさん
2009/06/23(火) 18:23:060920デフォルトの名無しさん
2009/06/23(火) 18:47:13{
webBrowser1.Url = textBox1.Text;
}
エラー 1 型 'string' を型 'System.Uri' に暗黙的に変換できません。
webBrouserのURLプロパティに文字列を渡したいのですがどうすればできますか?
0921デフォルトの名無しさん
2009/06/23(火) 18:49:350922デフォルトの名無しさん
2009/06/23(火) 18:52:30webBrowser1.Url = New Uri(textBox1.Text);
0923デフォルトの名無しさん
2009/06/23(火) 19:01:04何さらっと嘘書いてんだっ
0924デフォルトの名無しさん
2009/06/23(火) 19:11:56かなり前に使ったときは別の方法を取ったのですが…
もうひとつ質問なのですがJaneの板一覧とスレ欄の間にある移動可能な敷居?はなんという名前でしょうか?
0925デフォルトの名無しさん
2009/06/23(火) 19:15:12.NET 2.0のWinFormならSplitContainer
0926デフォルトの名無しさん
2009/06/23(火) 19:18:09ありがとう
0927デフォルトの名無しさん
2009/06/23(火) 23:35:140928デフォルトの名無しさん
2009/06/24(水) 00:33:30情報を調べても見つけれず、実際の動作調べてはみたものの、
状況次第で動作が変わっているようなのでちょっとキモチワルイです。
var src = { "Hoge", "Hage", "Huge" };
var dist1 =
from p in src
from q in src // pから取得した値以外をqの情報源にすると...
select new { P=p, Q=q }; // {Hoge,Hage,Huge}x{Hoge,Hage,Huge} 全組み合わせ9通りに展開される
var dist2 =
from p in src
from q in p // pから取得した値をqの情報源にすると...
select q; // 全pの中の全qの数だけ展開される。つまりH,o,g,e,H,a,g,e,H,u,g,eの12個
// {H,o,g,e,H,a,g,e,H,u,g,e} x {Hoge,Hage,Huge}の全組み合わせ36通りにはならない
0929デフォルトの名無しさん
2009/06/24(水) 00:46:240930デフォルトの名無しさん
2009/06/24(水) 00:48:02あぁ、なるほど、納得です。ありがとうございます。
0931デフォルトの名無しさん
2009/06/24(水) 03:31:23var r1 = src.SelectMany(_ => src, (p, q) => new { p, q });
var r2 = src.SelectMany(p => p);
こちらのほうが実際の動作イメージはつかみやすいと思う。
0932デフォルトの名無しさん
2009/06/24(水) 04:32:33いつまで経っても.NET 3.0〜3.5の世界に踏み込めないオレは
Linqなどグッジョブなテクノロジーがうらやましいぜ!
0933デフォルトの名無しさん
2009/06/24(水) 05:32:51ホビーグラマーだよね?
0934デフォルトの名無しさん
2009/06/24(水) 05:33:590935デフォルトの名無しさん
2009/06/24(水) 05:35:480936デフォルトの名無しさん
2009/06/24(水) 05:39:570937デフォルトの名無しさん
2009/06/24(水) 05:56:36雇ってください。年収200万で何でもします
0938デフォルトの名無しさん
2009/06/24(水) 06:02:420939デフォルトの名無しさん
2009/06/24(水) 06:28:20個人投資家ですが、ほんとうに200万でいいですか?
0940デフォルトの名無しさん
2009/06/24(水) 06:34:060941デフォルトの名無しさん
2009/06/24(水) 06:36:54子供の時は女の子に間違われていたのでカツラも用意していただければたぶん・・・
プログラミングは最近始めたので余りお役にいは立てません
0942デフォルトの名無しさん
2009/06/24(水) 06:43:12すでに死にかけですよ・・・orz
0943デフォルトの名無しさん
2009/06/24(水) 06:45:300944デフォルトの名無しさん
2009/06/24(水) 07:25:24そうなんですか?
メソッドみたいな短い命令文をクラスにして大量に作るって感じでしょうか?
0945デフォルトの名無しさん
2009/06/24(水) 07:32:49そうではなく、情報同士の依存性をなるべく減らすべき、ということ。
そして情報同士の関係性を形作る設計は、デザインパターンと呼ばれてカタログ化されている。
もっとも、.NET クラスライブラリみたいな巨大なツールセットが最初からあるから、
そもそもそのような複雑なことを考えるまでも無くかなりのことができてしまうわけだが。
0946デフォルトの名無しさん
2009/06/24(水) 11:31:18問題は大きさとか数じゃなくて、ちゃん整理されているかどうかだよ。
どちらかと言えば簡略化すべきはクラスじゃなくてメソッドだな。
単純で確実に動くメソッドは再利用もしやすい。
0947デフォルトの名無しさん
2009/06/24(水) 11:42:44概論や入門レベルの情報はたくさん見つかるんですが、応用というか
「こういう事もできますよ」といった感じの
0948デフォルトの名無しさん
2009/06/24(水) 11:43:38>>946
なんか奥が深そうですね
話は変わるけどプログラムする人は頭良さそうだけど
よくテレビでやってる能力テスト(知識を必要とするクイズとかじゃなくて)などはいい点取れるの?
関連のある図形を選びなさいとかの問題だとすぐ解けそうだね
0949デフォルトの名無しさん
2009/06/24(水) 11:48:160950デフォルトの名無しさん
2009/06/24(水) 11:57:53まさにその図形を選んだりする、子供の時やった知能テストみたいなやつだったな。
0951デフォルトの名無しさん
2009/06/24(水) 12:10:540952デフォルトの名無しさん
2009/06/24(水) 12:18:43いるいる
VISTA以降ならいらない
0953デフォルトの名無しさん
2009/06/24(水) 12:28:46.NetFrameWork6.7b以降が必要
なんてプログラムがでてきても
Vistaなら・・・Vistaならなんとかしてくれる!
0954デフォルトの名無しさん
2009/06/24(水) 12:30:05ご丁寧にありがとうございます
Cの勉強で頑張ってみたいと思います
0955デフォルトの名無しさん
2009/06/24(水) 12:30:24BitConverter.ToInt16(data,0);
これでバイナリデータを数値に変換できたんですけど
data[6]〜data[7]
だけを数値にしたい場合良い方法はないでしょうか?
必要なだけ空の配列に代入しながらするのは大変なのです
こんな感じでかなりの数があるので
data[8]〜data[10]
data[200]〜data[204]
data[1200]〜data[1204]
今はこんな感じで代入してます
num[0] = data[0x80];
num[1] = data[0x81];
0956デフォルトの名無しさん
2009/06/24(水) 12:32:54同じような処理は関数化すればいいでそ
0957デフォルトの名無しさん
2009/06/24(水) 12:35:22BitConverter.ToInt16(data, 8);
BitConverter.ToInt16(data, 200);
BitConverter.ToInt16(data, 1200);
0958デフォルトの名無しさん
2009/06/24(水) 12:36:170959デフォルトの名無しさん
2009/06/24(水) 12:36:23ウソ言うなやボケ。
XPであっても、VISTAであっても、7であってもランタイムは必要。
VISTAには2.0と3.0のランタイムがすでに入っているが1.1や3.5,4.0のランタイムは含まれていないので
別途インストールしないとだめ。
0960デフォルトの名無しさん
2009/06/24(水) 12:41:53private byte[] byteSpliter(byte[] data, int startIdx , int length)
なるほど、こんな感じかな?
>>957
これでいけましたw
それ以降全部数字に変換されると思ってました
ありがとうございます
0961デフォルトの名無しさん
2009/06/24(水) 13:02:51コミュニケーションができること。
あとは腰痛などの持病がないこと。
0962デフォルトの名無しさん
2009/06/24(水) 13:05:260963デフォルトの名無しさん
2009/06/24(水) 13:11:250964デフォルトの名無しさん
2009/06/24(水) 13:15:020965デフォルトの名無しさん
2009/06/24(水) 13:15:300966デフォルトの名無しさん
2009/06/24(水) 14:04:142年ぐらいやってもらって見込みがあれば社員にスカウト。
あとの3/4は新卒か転職組。
いきなり未経験でプログラマーの正社員は無理じゃね?
0967デフォルトの名無しさん
2009/06/24(水) 14:07:240968デフォルトの名無しさん
2009/06/24(水) 14:07:53うちも求人出してるし
0969デフォルトの名無しさん
2009/06/24(水) 14:10:050970デフォルトの名無しさん
2009/06/24(水) 14:20:120971デフォルトの名無しさん
2009/06/24(水) 14:42:490972デフォルトの名無しさん
2009/06/24(水) 14:47:000973デフォルトの名無しさん
2009/06/24(水) 16:35:180974デフォルトの名無しさん
2009/06/24(水) 16:38:05ケースバイケース
0975973
2009/06/24(水) 16:44:53平均的にはいくつぐらいになるのでしょうか 数十くらいですか?
0976デフォルトの名無しさん
2009/06/24(水) 16:45:030977デフォルトの名無しさん
2009/06/24(水) 16:45:040978デフォルトの名無しさん
2009/06/24(水) 16:46:34昔と違って並列で動作したり、C#レベルだとJITでの最適化などで
単純に測定できないことが分かると思うから。
0980デフォルトの名無しさん
2009/06/24(水) 16:50:21本気で聞いているの?
全体集合(比較可能な型の全ての集合)もわからないのに,平均ってなんぞい?
正確なクロック数はわからないけど,Step by Stepの利いていないCPUでWindows環境なら
数百万回くらい比較を行うループの実行時間とQueryPerformaceFrequencyからクロック時間が割り出せそう
もちろんスレッドのコンテキストスイッチなど目にも留まらぬ速さの場合
0981973
2009/06/24(水) 17:05:22厳密なクロック数が知りたい訳ではなく
数十なのか、数百なのか、数千なのか、
そのぐらいのレベルで知りたいんですが。
0982デフォルトの名無しさん
2009/06/24(水) 17:10:49CPUの命令レベルだったらだったら0〜2クロック。
分岐予測を失敗したらストールで数十クロックとか。意味ないっしょ。
cmp EAX, EBX
jne LABEL1
それからJITで特定の方向にしか分岐しないなら分岐命令自体が削除されることもある。
0983973
2009/06/24(水) 17:13:18ありがとうございました。
0984デフォルトの名無しさん
2009/06/24(水) 17:13:54今のCPUはパイプラインだし多重キャッシュだし投機だし、正確に計るのは無理というか、
前提条件が足りなさすぎ。
とりあえずコードが最適化されてて変数の内容が32bit以下の整数値なら
レジスタに入ってるはずだからifは単純にCMP reg,reg、JE xxxxあたりに置き換えられて
合計で1.0クロック。
スレッドの遷移はifの数百倍以上のコストがかかるから外部から調べるのは困難。
詳しいことは、ここにCPUのマニュアルがあるから嫁。
INSTRUCTION LATENCY AND THROUGHPUTのところ
http://www.intel.com/products/processor/manuals/index.htm
0985デフォルトの名無しさん
2009/06/24(水) 17:24:531億回ぐらいループ回して平均
該当部分の逆汗も頼むぜ
0986デフォルトの名無しさん
2009/06/24(水) 17:28:07俺からしたら宇宙語だわ
0987デフォルトの名無しさん
2009/06/24(水) 17:28:530988デフォルトの名無しさん
2009/06/24(水) 17:29:14言い出しっぺの法則
0989デフォルトの名無しさん
2009/06/24(水) 17:29:49うちはずっと規制中で手も足も出ん
0990デフォルトの名無しさん
2009/06/24(水) 17:31:12C#, C♯, C#相談室 Part53
http://pc12.2ch.net/test/read.cgi/tech/1245150671/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
http://pc12.2ch.net/test/read.cgi/tech/1245384489/
0991デフォルトの名無しさん
2009/06/24(水) 17:41:47それとも最初から基本クラスから考えて派生を作っていくんですか?
最低でも書く前にこれはベースにまとめていくのがいいと思って構造を作っていって、出来あがってからコード化するのが限界だと思うんですが
最初からベースクラスから考えられる人っているんですか?いるとしたら日本語から英語を勉強した人が頭で考えるのが英語になるぐらいすごいんですが
0992デフォルトの名無しさん
2009/06/24(水) 17:55:240993デフォルトの名無しさん
2009/06/24(水) 18:12:143行目から下、いらないと思うぞ。何が聞きたいのかポイントがボケる。
最初から継承ありきで考えるのは、大抵の場合、間違いのもと。
0994デフォルトの名無しさん
2009/06/24(水) 18:18:31最近は継承よりもそういうやり方の方が良いとされてる。
0995デフォルトの名無しさん
2009/06/24(水) 18:26:20オセロ作るときに初級AI、中級AIのために必要だなって思ったよ
でも、継承しなくてもできることはできるんだよねー
このときは継承じゃなきゃだめだってのがよくわからない
0996デフォルトの名無しさん
2009/06/24(水) 18:29:220997デフォルトの名無しさん
2009/06/24(水) 18:35:470998デフォルトの名無しさん
2009/06/24(水) 18:37:450999デフォルトの名無しさん
2009/06/24(水) 18:38:59実装の継承はまさに>>991のような難しさがあるから避けられる
そりゃControlみたいに完璧な設計ができるというならやればいい
1000デフォルトの名無しさん
2009/06/24(水) 18:39:3610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。