ふらっとC#,C♯,C#(初心者用) Part54
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/01/23(土) 17:44:07「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part53
http://pc12.2ch.net/test/read.cgi/tech/1263093575/
関連スレ
C#, C♯, C#相談室 Part55(実質56)
http://pc12.2ch.net/test/read.cgi/tech/1260111240/
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
http://pc12.2ch.net/test/read.cgi/tech/1261879110/
0002デフォルトの名無しさん
2010/01/23(土) 17:44:53http://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デフォルトの名無しさん
2010/01/23(土) 18:03:110004デフォルトの名無しさん
2010/01/23(土) 18:52:190005デフォルトの名無しさん
2010/01/23(土) 19:18:230006デフォルトの名無しさん
2010/01/23(土) 19:38:46なるべく広がらないで欲しい
0007デフォルトの名無しさん
2010/01/23(土) 21:27:37スレ立て乙
0008デフォルトの名無しさん
2010/01/23(土) 21:30:06http://uproda.2ch-library.com/207482XS8/lib207482.png
0009デフォルトの名無しさん
2010/01/23(土) 21:30:330010デフォルトの名無しさん
2010/01/23(土) 21:31:01なにこれ?
0011デフォルトの名無しさん
2010/01/23(土) 21:33:04PC用のフリック入力キーボードらしい
もうフリック動作はできててキー情報飛ばすだけとか
0012デフォルトの名無しさん
2010/01/23(土) 21:33:06前スレの消費スピードは糞レスに因るところ
0013デフォルトの名無しさん
2010/01/23(土) 21:53:040014デフォルトの名無しさん
2010/01/23(土) 22:13:310015デフォルトの名無しさん
2010/01/23(土) 22:16:20案件数No1のJava様に喧嘩売ってるのかお前
0016デフォルトの名無しさん
2010/01/23(土) 22:17:450017デフォルトの名無しさん
2010/01/23(土) 22:20:06納品するんだし
特定企業へ納品じゃないタイプのソフトは開発しやすいけど
解読もされやすいからなあ
0018デフォルトの名無しさん
2010/01/23(土) 22:21:39Vista以降は.NET2.0が標準で入ってるせいか風当たりが弱くなって良かった
0019デフォルトの名無しさん
2010/01/23(土) 22:22:360020デフォルトの名無しさん
2010/01/23(土) 22:23:47電子データにしないのが一番だ
0021デフォルトの名無しさん
2010/01/23(土) 22:24:360022デフォルトの名無しさん
2010/01/23(土) 22:24:46程度問題だが、それだって可能。C++用の難読化ツールもあるぜよ。
0023デフォルトの名無しさん
2010/01/23(土) 22:25:160024デフォルトの名無しさん
2010/01/23(土) 22:26:37別のフリーソフト探そうって気にはなるけど
別のフラッシュ探そうって気にはならないでしょ
代替がないし
0025デフォルトの名無しさん
2010/01/23(土) 22:28:080026デフォルトの名無しさん
2010/01/23(土) 22:28:45糞レス乙
0027デフォルトの名無しさん
2010/01/23(土) 22:30:020028デフォルトの名無しさん
2010/01/23(土) 22:31:170029デフォルトの名無しさん
2010/01/23(土) 22:32:090030デフォルトの名無しさん
2010/01/23(土) 22:34:42知らんかった…そうなのか
関係ないがプロじゃない俺にはココは本当に勉強になる
たまにおかしな人もいるけど、まあそんな人も含めてホントありがとう
日曜くらいはゆっくり体休めてつかぁさい
0031デフォルトの名無しさん
2010/01/23(土) 22:36:20アセンブリは読めなくても、C#のコードは読める、ってやつは多いし。
0032デフォルトの名無しさん
2010/01/23(土) 22:39:34ゆっくり休むことにするよ。ブリブリッ。
0033デフォルトの名無しさん
2010/01/23(土) 22:40:230034デフォルトの名無しさん
2010/01/23(土) 22:40:260035デフォルトの名無しさん
2010/01/23(土) 22:42:52フィールド名が残るのはJavaも同じ
0036デフォルトの名無しさん
2010/01/23(土) 22:43:19gotoを多用すればいい
0037デフォルトの名無しさん
2010/01/23(土) 22:43:250038デフォルトの名無しさん
2010/01/23(土) 22:44:400039デフォルトの名無しさん
2010/01/23(土) 22:45:030040デフォルトの名無しさん
2010/01/23(土) 22:45:12昔作った自分のプログラムのソースなくて実行ファイルから復元したら
本当にそっくりだった
0041デフォルトの名無しさん
2010/01/23(土) 23:09:170042デフォルトの名無しさん
2010/01/23(土) 23:10:110043デフォルトの名無しさん
2010/01/23(土) 23:12:100044デフォルトの名無しさん
2010/01/23(土) 23:13:120045デフォルトの名無しさん
2010/01/23(土) 23:13:550046デフォルトの名無しさん
2010/01/23(土) 23:14:290047デフォルトの名無しさん
2010/01/23(土) 23:16:060048デフォルトの名無しさん
2010/01/23(土) 23:16:15価値はどこで発生するかわからんしなあ
JaneStyleのようにオプソだったのがいきなり法人で面倒みるとかあるし
0049デフォルトの名無しさん
2010/01/23(土) 23:18:54オープンソースなのはJaneStyleの前身であるOpenJaneの話
そこからの派生は基本的に全て非公開
JaneStyleは元々●の収入が大きくなってきたから法人に移行したのだろうと言われている
その際NidaとViewの作者を抱き込もうとして失敗した
0050デフォルトの名無しさん
2010/01/23(土) 23:21:020051デフォルトの名無しさん
2010/01/23(土) 23:25:48こっちを楽しませて欲しいわな
0052デフォルトの名無しさん
2010/01/23(土) 23:27:300053デフォルトの名無しさん
2010/01/23(土) 23:41:05int* a,b,c;
ってやるとbもcもint*型になるんだな。
C言語だと
int *a, *b, *c;
とか全部に*必要でクソ面倒だったがC#は楽だな。
0054デフォルトの名無しさん
2010/01/23(土) 23:48:06int a, *b, c[5];
ってのはできんだろうし、そもそもunsafeブロックの中だけの話を持ち出してもしょうがなかろ
0055デフォルトの名無しさん
2010/01/23(土) 23:49:31って文法が複雑になるのを嫌った結果なんじゃないかと
0056デフォルトの名無しさん
2010/01/23(土) 23:51:11むしろCの宣言がおかしい
面倒とかそういうのじゃなくて
int型とint*型を同時に宣言とか・・・
0057デフォルトの名無しさん
2010/01/24(日) 00:04:110058デフォルトの名無しさん
2010/01/24(日) 00:08:56int x[5];でできた配列が
C#だと
int[] x=new int[5];
とか、new int[5]とか余計なものついてて面倒だな
一番最初にint[]っていってるんだからつぎにまたint[5]っていわなくても
int[]x =new[5]でいいじゃんw
0059デフォルトの名無しさん
2010/01/24(日) 00:12:080060デフォルトの名無しさん
2010/01/24(日) 00:13:32int[] x
これはいわゆるポインタだからなあ
0061デフォルトの名無しさん
2010/01/24(日) 00:16:410062デフォルトの名無しさん
2010/01/24(日) 00:20:55なんでnewしないといけないかというとCでいうところのポインターのような扱いということで
0063デフォルトの名無しさん
2010/01/24(日) 00:25:07int* x = (int*)malloc
の違いみたいなもんか。
確かに後者のようにかくのは文法的に間違いじゃないがしつこいものは嫌われるな。
C++だと(int*)ってかかないとエラーになるようになってて気持ち悪いけど。
0064デフォルトの名無しさん
2010/01/24(日) 00:27:47cのころもアセンブラレベルで考えると配列もたぶんポインター管理になってると思うよ
最近はおじゃましてないC/C++スレで定期的にこれで盛り上がるから(未定義と含めてw
0065デフォルトの名無しさん
2010/01/24(日) 00:27:57stackallocのような変なのは置いといて。
0066デフォルトの名無しさん
2010/01/24(日) 00:34:22class Personがあったとして
Person p,q,r=new Person();
だとp,qはnewならないのか。
いちいちq=new Person(),q=new〜〜
と書かないといけないなんて不便だね。
0067デフォルトの名無しさん
2010/01/24(日) 00:37:04寄りな不便な・・・を優先した結果がC特有のわかりにくさだと思うよ。
0068デフォルトの名無しさん
2010/01/24(日) 00:38:33init関数通して、初期化して、処理終わったらメモリ開放して・・・と
あれこれめんどくさいことから開放されてるのにトレードオフだよ
0069デフォルトの名無しさん
2010/01/24(日) 00:39:050070デフォルトの名無しさん
2010/01/24(日) 00:39:380071デフォルトの名無しさん
2010/01/24(日) 00:42:48p,qだけ空参照にするとき分けて書く方がめんどい
0072デフォルトの名無しさん
2010/01/24(日) 00:43:00そうともいうかも
アセンブラバリバリにやってたやつらが
こうすればいいんじゃね?で積み重ねた結果だと思うw
*とか->とか見てるともうね
0073デフォルトの名無しさん
2010/01/24(日) 00:53:260074デフォルトの名無しさん
2010/01/24(日) 00:58:100075デフォルトの名無しさん
2010/01/24(日) 00:59:110076デフォルトの名無しさん
2010/01/24(日) 01:04:09ですおね。
0077デフォルトの名無しさん
2010/01/24(日) 02:03:39object.Equals(x,y)
と
x==y
は同じものですか?
0078デフォルトの名無しさん
2010/01/24(日) 02:11:15生成されるコードも違う。
object.Equals(x,y) はできるだけやめとけ。無駄が多い。
0079デフォルトの名無しさん
2010/01/24(日) 02:35:14うん。
0080デフォルトの名無しさん
2010/01/24(日) 02:56:11String str = new String();
str = "hello";
XXX xxx = new XXX;
xxx.EatThis(ref str);
class XXX{
public XXX(){}
public void EatThis(ref String s){ m_str = s;}
private String m_str;
}
の場合、
「"hello"って文字列はXXXの中のm_strにコピーされる」の?
それとも
「メモリ上の実体は呼び出し側のstr(スタック上?)にあって、
そいつに対しての内部的なポインタ的なものがxxx.m_strに保持される。
且つ、実体の方は、実は参照カウントを持っていて参照カウントが+1されている。
だから仮にstrにnullをセットしても、xxx.m_strからの参照分のカウントが残ってるのでガベージされない。」なの?
COMオブジェクトとかも考えると、後者だと信じたい。
でも実際はどうなのですか?
0081デフォルトの名無しさん
2010/01/24(日) 03:06:460082デフォルトの名無しさん
2010/01/24(日) 03:32:37同じ名前なのにまったく別のことしたら名前から何をするメソッドなのか推測できなくて紛らわしいじゃん。
混乱の元だな。
ポリモーフィズムはスパゲティコードを書くための文法なのか
0083デフォルトの名無しさん
2010/01/24(日) 03:34:11どうなんでしょうね
0084デフォルトの名無しさん
2010/01/24(日) 03:39:11ありがとうございます!
0085デフォルトの名無しさん
2010/01/24(日) 03:56:140086デフォルトの名無しさん
2010/01/24(日) 04:00:530087デフォルトの名無しさん
2010/01/24(日) 04:02:23ですよね。
0088デフォルトの名無しさん
2010/01/24(日) 05:11:31double.ToString() ←これもポリモーフィズムだぞ。便利だろ?
0089デフォルトの名無しさん
2010/01/24(日) 05:24:080090デフォルトの名無しさん
2010/01/24(日) 05:25:43実装側が、自分の事情に合わせて自由かつ柔軟に解釈できる程度の曖昧さが残されている。
それが便利な場合もあれば混乱の元になる場合もあると思われる。
0091デフォルトの名無しさん
2010/01/24(日) 05:31:24少なくとも「まったく別のこと」をするための機能でないことは確かだ
0092デフォルトの名無しさん
2010/01/24(日) 05:35:22便利じゃない。
valueToStringとかのメソッドのほうがわかりやすい。
0093デフォルトの名無しさん
2010/01/24(日) 05:39:16Formクラスの変数だとToStringは
system.windows.forms.formとかいう文字列が返される
ならDateTime型の変数もToStringすると
System.DateTimeなどいう文字列が返されるのか思いきや
なんか2010/1/24みたいなのが帰ってくる。
これはまったく別の機能であり、大変まぎらわしい
違う機能ならValueStringみたいな名前をつけるべきだ。
同じ名前で別な処理をするしくみは
スパゲティの要因になることは明らかである。
0094デフォルトの名無しさん
2010/01/24(日) 05:55:59愚かだね。保守性も何もない。まあきみにはそういうスパゲッティがお似合いだよ。
0095デフォルトの名無しさん
2010/01/24(日) 05:59:12現在、C#を始めてからそんなに時間が経っていないので本当に初歩的なことですが、
デリゲートとイベントとはどのように使い分ければよいのでしょうか?
文法的な違いは分かるのですが、わざわざイベントなどを用意しなければいけなかった必然性がいまいち……
調べてみたところ「イベントは特定のケースに特化したデリゲートと考えればいい」などとありましたが、
どのような場合が特定なケースなのかがもうひとつうまくイメージできません。
ややこしいようでしたら、参考になるURLあたりでも提示していただければ幸いです。
0096デフォルトの名無しさん
2010/01/24(日) 05:59:430097デフォルトの名無しさん
2010/01/24(日) 06:01:270098デフォルトの名無しさん
2010/01/24(日) 06:41:03struct person{
private int age=30;
}
クラスだとできるのに構造体だとこれができない理由は何?
0099デフォルトの名無しさん
2010/01/24(日) 06:46:51struct person{
private int age;
public person(int x){
age=x;
}
}
こんなので、外部から
person p = new person();
クラスだったら引数0個のコンストラクタはありませんとかなるけど
structだとperson(int)しかないのにperson()ができちゃう理由を教えて。
0100デフォルトの名無しさん
2010/01/24(日) 06:58:590101デフォルトの名無しさん
2010/01/24(日) 07:17:33structは値型なので、newしなくても初期値をもつ。
なのでデフォルトのコンストラクタははじめからあるという考え方をしている。
0102デフォルトの名無しさん
2010/01/24(日) 07:19:08クラスは参照型、構造体は値型
これだわからなかったら、わからないところをまた質問しる
0103デフォルトの名無しさん
2010/01/24(日) 07:27:03struct ValueTypeA {
public ValueTypeA(int x, int y) { X = 99; Y = 88; }
public int X; public int Y;
}
ildasm で逆汗して、再アセンブル
// public ValueTypeA(int x, int y) { の部分を引数なしのコンストラクタに修正
.method public hidebysig specialname rtspecialname
instance void .ctor(int32 x, int32 y) cil managed
// 修正後
.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
0104デフォルトの名無しさん
2010/01/24(日) 09:02:160105デフォルトの名無しさん
2010/01/24(日) 13:47:13コモンラングエッジランタイム?
共通言語なんとか意味不明なんだよ
0106デフォルトの名無しさん
2010/01/24(日) 14:07:59CILを動かすためのランタイムの仕様を定めた仕様がCLIと呼ばれるもので
CLIをMSが.NET Frameworkのコアとして実装したのがCLR
0107デフォルトの名無しさん
2010/01/24(日) 14:30:32とりあえず、デリゲートはパブリックフィールド/プロパティにしないでくらはい
するときはイベント使ってくらはい
メソッドの引数{Sort(Comparison<T>)みたいな}にする場合はデリゲート使ってくらはい
0108デフォルトの名無しさん
2010/01/24(日) 14:38:38ワタシ男だけど
それさらっと言える人ってなんかちょっとかっこいいと思う。
0109デフォルトの名無しさん
2010/01/24(日) 14:53:200110デフォルトの名無しさん
2010/01/24(日) 14:56:48型システムの仕様を定めるのがCTSで
それらに加えてメタデータや実行環境の仕様もひっくるめた仕様がCLIで
それをMSが実装したのがCLR
0111デフォルトの名無しさん
2010/01/24(日) 14:57:400112デフォルトの名無しさん
2010/01/24(日) 15:04:04ほんの気まぐれでC#をメインで使っていて、昔VBで書いた部分をコピペしてC#に改変するとき
感じるなんとも言えない違和感は異常
0113デフォルトの名無しさん
2010/01/24(日) 15:08:44C++/CLIやJavaは最悪
0114デフォルトの名無しさん
2010/01/24(日) 15:17:550115デフォルトの名無しさん
2010/01/24(日) 15:41:26dim a as integer→int a;
end sub→}とか
byval sender as objectとか
インテリセンスを利用しても、コード書く時間がどうしても長くなる。
かといって初心者からみてもdim a as integerのほうが int aよりわかりやすいなんてことはまったく無く、無意味に冗長になってる言語
0116デフォルトの名無しさん
2010/01/24(日) 15:49:32IDEなければどっちもどっちですよ
C#だってMS製のコンポーネントはどれも名前長いですし
0117デフォルトの名無しさん
2010/01/24(日) 15:50:46「輪をかけて」って言葉分かるか?
0118デフォルトの名無しさん
2010/01/24(日) 15:53:21ああそこ重要ってことね
C#でVBライクな画面開発できるようになったので価値ないのは事実
サンプル探してぐぐった時にVB出てきたときのがっかりといったら
なんだあの見難い構文は
0119デフォルトの名無しさん
2010/01/24(日) 16:01:15ポトペタだってC#ですいすい作れるし。
0120デフォルトの名無しさん
2010/01/24(日) 16:39:20ショートカットキーとはまた別ですよね?)
0121デフォルトの名無しさん
2010/01/24(日) 16:42:440122デフォルトの名無しさん
2010/01/24(日) 17:30:040123デフォルトの名無しさん
2010/01/24(日) 17:32:020124デフォルトの名無しさん
2010/01/24(日) 17:34:300125デフォルトの名無しさん
2010/01/24(日) 17:46:29floatはSystem.Singleの別名
0126デフォルトの名無しさん
2010/01/24(日) 17:51:580127デフォルトの名無しさん
2010/01/24(日) 18:07:09intがないとC#自身でSystem.Int32を定義できない(System.Int32は実際にC#で書かれてる)
0128デフォルトの名無しさん
2010/01/24(日) 18:09:560129デフォルトの名無しさん
2010/01/24(日) 18:19:17いじられキャラの方が変なあだ名で呼ばれてるような感じか
0130デフォルトの名無しさん
2010/01/24(日) 18:24:15using Systemはデフォルトでいいじゃないか思ってたけど、そういう面もあるんだね。
0131127
2010/01/24(日) 18:28:37System.Int32でも通った
mscorlib.dllを参照しないようにしてSystem.Int32などの特殊な型を定義するときは
コンパイラが特別扱いして循環参照のエラーを出さないみたい
0132デフォルトの名無しさん
2010/01/24(日) 19:19:44VB6なら、チープな環境だと(起動時の)圧倒的な速度差があるけどね
もう少し起動が速くならない物か?
0133デフォルトの名無しさん
2010/01/24(日) 19:26:59えっと
マイクロソフトを止めれば良いんですよね?
無理!
>>115
激しく同意。あの構文は超糞
0134デフォルトの名無しさん
2010/01/24(日) 19:30:31逆にC++のインテリセンスは終わってる
Visual Studio前提だとC#になれちゃうとC++とかうざくて仕方ない。
0135デフォルトの名無しさん
2010/01/24(日) 19:34:500136デフォルトの名無しさん
2010/01/24(日) 19:39:51せめて色分けしてくれ
0137デフォルトの名無しさん
2010/01/24(日) 19:45:14Visual Studio 2010 ベータ2の話
0138デフォルトの名無しさん
2010/01/24(日) 20:06:570139デフォルトの名無しさん
2010/01/24(日) 21:18:57構造体の配列とった時に、領域の 0 クリアだけで済むように。
構造体のデフォルトコンストラクターで 0 クリア以外を認めると、
配列確保したときに要素数の分だけコンストラクター呼ばなきゃいけなくなる。
>>99
構造体の場合、デフォルトコンストラクターは 0 クリアって決まってる。
定義しなくてもいいというか、むしろ定義できなくなってるはず。
0140デフォルトの名無しさん
2010/01/24(日) 21:25:31他の言語でデフォルトコンストラクタが定義してあれば
C#でインスタンスを作ったときにもそのコンストラクタが呼ばれる
0141デフォルトの名無しさん
2010/01/24(日) 21:46:22仕様書からの該当項目の抜粋
ECMA-335 Common Language Infrastructure (CLI)
8,9.7 Value type definition
5. Unlike object types, instances of value types do not require a constructor to be called
when an instance is created. Instead, the verification rules require that verifiable code
initialize instances to zero (null for object fields).
0142デフォルトの名無しさん
2010/01/24(日) 21:46:57前に見たなその抜粋
0143デフォルトの名無しさん
2010/01/24(日) 21:51:150144デフォルトの名無しさん
2010/01/24(日) 21:53:570145デフォルトの名無しさん
2010/01/24(日) 21:57:06「値型はユーザー定義のデフォルトコンストラクタが呼ばれない可能性がある」が正しい。
CLIの仕様としては値型のデフォルトコンストラクタも存在するが、それが呼ばれるのは
システム定義のデフォルトコンストラクタ(0とnullに初期化する奴)が呼ばれない場合に限られる。
で、どうせ呼ばれないし、定義するだけ不毛なので定義できないようになってる。
0146デフォルトの名無しさん
2010/01/24(日) 22:29:17返事がおそくなり申し訳ありません
ありがとうございます!
0147デフォルトの名無しさん
2010/01/24(日) 22:34:10試すの面倒だからアセンブリうpってよ
0148デフォルトの名無しさん
2010/01/24(日) 22:34:180149デフォルトの名無しさん
2010/01/24(日) 22:35:20ValueTypeA [] b = new ValueTypeA[100];
b.Initialize();
0150デフォルトの名無しさん
2010/01/24(日) 22:38:23い や だ !
0151デフォルトの名無しさん
2010/01/24(日) 22:42:31>>103の方法で作れるからやってみるといい。
newしてもデフォルトコンストラクタは呼ばれない。
Array.Initializeでは呼ばれる。
0152デフォルトの名無しさん
2010/01/24(日) 22:46:590153デフォルトの名無しさん
2010/01/24(日) 22:57:36値型のインスタンス作成時はコンストラクタの呼び出しを必要としません。
代わりに検証コードはフィールドがゼロで(オブジェクトフィールドはnullで)初期化されることを検証します。
だろ?
0154デフォルトの名無しさん
2010/01/24(日) 22:59:54>C#でインスタンスを作ったときにもそのコンストラクタが呼ばれる
この部分がどっから来たのか説明が待たれる所ですね
0155デフォルトの名無しさん
2010/01/24(日) 23:06:020156デフォルトの名無しさん
2010/01/24(日) 23:06:42フカシこいたことは笑われるべきだが
0157デフォルトの名無しさん
2010/01/24(日) 23:08:090158デフォルトの名無しさん
2010/01/24(日) 23:10:40そして相手も英語読めないと思ったんだ
もうそれでいいだろ
0159デフォルトの名無しさん
2010/01/24(日) 23:17:50void func(const ref Object objDontTouchMe)
みたいにconst refとかできないの?
どうやって、「ただ見るだけだよ」って分からせられるの?
0160デフォルトの名無しさん
2010/01/24(日) 23:20:44const参照は存在しない
0161デフォルトの名無しさん
2010/01/24(日) 23:20:480162デフォルトの名無しさん
2010/01/24(日) 23:22:000163デフォルトの名無しさん
2010/01/24(日) 23:24:440164デフォルトの名無しさん
2010/01/24(日) 23:25:420165デフォルトの名無しさん
2010/01/24(日) 23:27:46しばらくっていうかAPI使った時以外使ってないかも
0166デフォルトの名無しさん
2010/01/24(日) 23:30:120167デフォルトの名無しさん
2010/01/24(日) 23:32:070168デフォルトの名無しさん
2010/01/24(日) 23:33:040169デフォルトの名無しさん
2010/01/24(日) 23:33:430170デフォルトの名無しさん
2010/01/24(日) 23:34:20発行してClickOnceの自動生成サイトからダウンロードしてもらいますが、
この発行時にWeb上に自動生成されるサイト(紺色のグラデーションの帯上にアプリケーション名が記載されているHTML)のデザインを、自分で変更することはできますでしょうか。
また、このHTMLの雛型がソリューション内のどこかにあると思うのですが、この雛型を変更したり、別の雛型を選択することは可能でしょうか。
よろしくお願いいたします。
0171デフォルトの名無しさん
2010/01/24(日) 23:35:530172デフォルトの名無しさん
2010/01/25(月) 01:02:00いろいろ考えてみたんだが、どうしても用途が理解できない。
0173デフォルトの名無しさん
2010/01/25(月) 01:12:330174デフォルトの名無しさん
2010/01/25(月) 01:14:17c++では値型と参照型という区別がないからね。
大きなクラスでも値型のように使える。
すると値型を参照渡ししたい場面はc#とかより普通にある。
0175デフォルトの名無しさん
2010/01/25(月) 01:16:030176デフォルトの名無しさん
2010/01/25(月) 01:31:340177デフォルトの名無しさん
2010/01/25(月) 01:37:58> let (b, v) = System.Int32.TryParse("123");;
val v : int = 123
val b : bool = true
0178デフォルトの名無しさん
2010/01/25(月) 01:42:42戻り値とoutで返すより、この方が明確でいいな
0179デフォルトの名無しさん
2010/01/25(月) 01:44:210180デフォルトの名無しさん
2010/01/25(月) 01:46:440181デフォルトの名無しさん
2010/01/25(月) 02:02:240182デフォルトの名無しさん
2010/01/25(月) 02:16:070183デフォルトの名無しさん
2010/01/25(月) 02:18:240184159
2010/01/25(月) 02:33:37>>160
refをつけないとオブジェクトのバイナリコピーが発生するのかな??って思ってたんですが
ちがいますのん?
>>162
そうだと自分でも思います。
0186デフォルトの名無しさん
2010/01/25(月) 03:19:56そんな事しなくても、クラスはコピーされない。
構造体はコピーされる。
プロファイルを取る前からパフォーマンス気にして、構造体がコピーされないようにref付けて…とかならやめとけ。
小さいならコピー作らせた方が早いし、万単位で呼び出さないと計測誤差程度にしか変わらん。
0187デフォルトの名無しさん
2010/01/25(月) 03:22:43構造体は値型
0188デフォルトの名無しさん
2010/01/25(月) 03:23:17なるほど。。ありがとうございます!
0189デフォルトの名無しさん
2010/01/25(月) 08:30:430190デフォルトの名無しさん
2010/01/25(月) 11:38:030191デフォルトの名無しさん
2010/01/25(月) 11:42:260192デフォルトの名無しさん
2010/01/25(月) 11:43:31A += new string(' ', n);
0193デフォルトの名無しさん
2010/01/25(月) 11:54:05その案、採用しました。
>>192
俺と同じレベルだなw
0194デフォルトの名無しさん
2010/01/25(月) 11:59:46String aaa = "test"
int n =10;
aaa = aaa.PadRight(aaa.Lenght + n);
とかとりあえず書いてみる
0195デフォルトの名無しさん
2010/01/25(月) 12:02:23普通はそういった処理は桁合わせをするために行うものなので、
194のやり方のほうが有用だと思うよ。
0196デフォルトの名無しさん
2010/01/25(月) 12:03:590197デフォルトの名無しさん
2010/01/25(月) 12:11:210198デフォルトの名無しさん
2010/01/25(月) 13:11:340199デフォルトの名無しさん
2010/01/25(月) 13:16:10アプリが特定の動作をした場合、キーボードの[半角/全角]キーなどでIMEをONにしたように
するにはどうすればいいんでしょうか?
またアプリ起動時からIMEの常態をモニターしたいのですがこれもよくわかりません。
モニターさえできればkeybd_eventで[半角/全角]キーが押されてように
振舞ってもいいですし
やってみたこと
Runtime.InteropServicesで
ImmGetContext <- 最初はthis(Form)
ImmGetOpenStatus
ImmReleaseContext
うまくステータスとれず
これってもしかして全プログラムの親(タスクバー?)にすればうまくいくんですかね?
その場合どれからハンドルとればいいのだろう・・・
0200デフォルトの名無しさん
2010/01/25(月) 14:22:35ユーザーの環境によっては半角/全角キーでIMEのオンオフじゃなかったり
そもそも半角/全角キーがなかったりすることもある。
そういう環境に依存するような実装は考えない方が身のためだよ。
0201デフォルトの名無しさん
2010/01/25(月) 14:34:48入力する時に必要なだけなきがするんだが
0202デフォルトの名無しさん
2010/01/25(月) 14:42:31と思ったが全角/半角エミュレートでいけるんなら違うか
0203デフォルトの名無しさん
2010/01/25(月) 14:51:01文字入力開始時にひらがなモードになってないと例えば
あ -> 3
とかでちゃうんでこれを回避できればなあと
0204デフォルトの名無しさん
2010/01/25(月) 15:39:040205デフォルトの名無しさん
2010/01/25(月) 15:55:340206デフォルトの名無しさん
2010/01/25(月) 16:33:260207デフォルトの名無しさん
2010/01/25(月) 17:18:320208デフォルトの名無しさん
2010/01/25(月) 17:36:56入力動作くらい誰にでも作れるんだぜ
問題はその後なんだぜ
0209デフォルトの名無しさん
2010/01/25(月) 17:49:32その後って?
0210デフォルトの名無しさん
2010/01/25(月) 17:54:00IMEに渡さないと漢字入力できない
0211デフォルトの名無しさん
2010/01/25(月) 17:56:40IMEさえ起動すれば勝手に拾ってくれるけど
IMEの起動と入力モード管理がしたいだけなんだよね
手動でIME起動してひらがな入力にしておけば普通に動くよ
0212デフォルトの名無しさん
2010/01/26(火) 00:55:49動かなかった・・・
0213デフォルトの名無しさん
2010/01/26(火) 01:31:49やはり不確定要素があって通常のアプリレベルでは処理しにくいと思う。
(ソフトウェアキーボードでIMEの操作するなんてぞっとするだろ)
ソフトウェアキーボードはひらがな/アルファベットの入力に留めて、
入力した文字列からの全文検索で全て処理できるように作るべきじゃないかな。
まあ最終的に作りたいものが何なのかによっても変わってくるけど。
0214デフォルトの名無しさん
2010/01/26(火) 01:36:43何でイベント送信してるの?
keybd_eventなら余裕で拾ってくれるけど
0215デフォルトの名無しさん
2010/01/26(火) 01:57:14# string name, int age
Taro, 19
Hanako, 21
Susumu, 34
Kyouko, 6
Hatoyama, 999
こんな感じで名前と年齢をペアでリストに追加していきたいと思っています。
0216デフォルトの名無しさん
2010/01/26(火) 02:02:123.5だったらKeyValuePair突っ込むなりしろ
0217デフォルトの名無しさん
2010/01/26(火) 02:07:050218デフォルトの名無しさん
2010/01/26(火) 02:08:25http://d.hatena.ne.jp/ufcpp/20071207/1197030259
匿名型リストっておいおい^^;
0219デフォルトの名無しさん
2010/01/26(火) 03:42:17> 3.5だったらKeyValuePair突っ込むなりしろ
KeyValuePair
これは初めて聞いたんですがどういう用途に使えるんですか?
0220デフォルトの名無しさん
2010/01/26(火) 03:48:370221デフォルトの名無しさん
2010/01/26(火) 04:17:540222デフォルトの名無しさん
2010/01/26(火) 05:57:26そのサイトは検索エンジン経由だけどお世話になってるがアニオタだよね
何かのサンプルソースの中に割りと普通な個人名があったので
調べたら声優だったw
と予断は置いといて、上記を逸するというかforeach考えると不思議じゃない機能だよね
ただ機能増やしすぎかなあ
また拡張拡張でおかしなことにならなければいいけど
0223デフォルトの名無しさん
2010/01/26(火) 07:14:200224デフォルトの名無しさん
2010/01/26(火) 07:20:170225デフォルトの名無しさん
2010/01/26(火) 07:23:44関数の型推論をするようになったら危ないとは思うが、
匿名型はクラスメンバーやメソッドの引数と戻り値には使えないという一線でガードされている。
気になるならLinq専用と割り切ってれば十分だと思う。
0226デフォルトの名無しさん
2010/01/26(火) 07:30:000227デフォルトの名無しさん
2010/01/26(火) 08:52:53Form アプリでボタンが押されたらメッセージボックスを出す、という処理を書きましたが
メッセージボックスのところでコンパイルエラーが出ます
MessageBox.Show("Test","Test",MessageBoxButtons.OK,MessageBoxIcon.Error);
>error C2143: 構文エラー : ';' が '.' の前にありません。
これはどういう意味なんでしょうか?
0228デフォルトの名無しさん
2010/01/26(火) 09:03:44コピペしたけどそんなエラー出ねえよ
どっか他が間違ってるんだろ
0229デフォルトの名無しさん
2010/01/26(火) 09:06:59て意味
単純にその前後に何か書いてるんじゃない?
その行だけコピペしたら100%うごくはずだし
0230227
2010/01/26(火) 09:11:11原因はしょうもなさすぎてとても言えないミスでした。。。
0231デフォルトの名無しさん
2010/01/26(火) 11:00:00もう来ない方がいいですよ
0232デフォルトの名無しさん
2010/01/26(火) 11:33:55そんなこと言うなよ、俺が変わりに暴露してやるから
CXXXXってcl.exeのエラーだよなw
0233デフォルトの名無しさん
2010/01/26(火) 15:32:56初心者スレに初心者が来なくてどうする
0234デフォルトの名無しさん
2010/01/26(火) 21:13:53outは初期化した参照でなくても渡すことが出来るという点でrefより融通が利くわけですが、
それでもなぜrefが存在しているのでしょうか?
outはダメでrefでなければならないというケースはどんなときですか?
0235デフォルトの名無しさん
2010/01/26(火) 21:16:190236デフォルトの名無しさん
2010/01/26(火) 21:19:52未初期化のローカル変数にアクセスできないのと同じ
0237デフォルトの名無しさん
2010/01/26(火) 21:42:020238デフォルトの名無しさん
2010/01/26(火) 21:45:550239デフォルトの名無しさん
2010/01/26(火) 22:26:37int a = 10;
と初期化済みの変数aをメソッドにout付きで渡したらどうなりますか?
0240デフォルトの名無しさん
2010/01/26(火) 22:29:19だから値を読もうとすると問答無用でコンパイルエラー
0241デフォルトの名無しさん
2010/01/26(火) 22:29:47なんでそんな、試せばすぐに分かることを人に聞くんだ。
自分でやってみて考えなさい。
0242デフォルトの名無しさん
2010/01/26(火) 22:31:530243デフォルトの名無しさん
2010/01/26(火) 22:39:18「なにこれ作ったやつバカじゃないの?」ってのはもう最悪に素質ないから趣味でも辞めろ。
仕様やライブラリを信用できなかったらなにもできない支那。
0244デフォルトの名無しさん
2010/01/26(火) 22:42:140245デフォルトの名無しさん
2010/01/26(火) 22:47:51ああお前のことね
0246デフォルトの名無しさん
2010/01/26(火) 22:50:17「バカじゃないの?俺ならこーする、こっちの方がこうこうこういう理由で合理的じゃん!」
ってやって皆に認められる言語やライブラリやフレームワーク作る人も居るとは思うけどね。
とはいうけど言ってることは基本的に同意で。
0247デフォルトの名無しさん
2010/01/26(火) 23:04:25参照渡しもポインタも使わずにどうプログラムを組めと
0248デフォルトの名無しさん
2010/01/26(火) 23:07:19理屈の上ではrefやoutも完全に代替できる
0249デフォルトの名無しさん
2010/01/26(火) 23:09:45初心者は極論持ち出さない方がいいよ
頭固くなるから
0250デフォルトの名無しさん
2010/01/26(火) 23:11:26それポインタじゃね?
0251デフォルトの名無しさん
2010/01/26(火) 23:13:38違うよ笑
0252デフォルトの名無しさん
2010/01/26(火) 23:21:370253デフォルトの名無しさん
2010/01/26(火) 23:21:46で、具体的にどんなコードだよ?
0254デフォルトの名無しさん
2010/01/26(火) 23:22:59配列には次の様に”数字.dat”という規則のファイル名が格納されており、
003.dat
01.dat
006.dat
0005.dat
これをソートして
01.dat
003.dat
0005.dat
006.dat
のように昇順で並び替えたいと思っています。
リテラルのソートをしてくれるクラス・メソッドはありますか?
もしそのようなクラス・メソッドが無い場合はどうすればよろしいでしょうか?
0255デフォルトの名無しさん
2010/01/26(火) 23:25:340256デフォルトの名無しさん
2010/01/26(火) 23:25:37メソッドとプロパティとdelegateとイベントハンドラでほとんどなんでもできる。
0257デフォルトの名無しさん
2010/01/26(火) 23:26:550258デフォルトの名無しさん
2010/01/26(火) 23:28:18Sort((a,b) => int.Parse(a.Replace(".dat","") - int.Parse(b.Replace(".dat","")));
0259デフォルトの名無しさん
2010/01/26(火) 23:29:220260デフォルトの名無しさん
2010/01/26(火) 23:32:48>まあ基本refやoutなんか使わないほうがいい
この発言の根拠がなにかってことじゃないのか?
0261デフォルトの名無しさん
2010/01/26(火) 23:34:300262デフォルトの名無しさん
2010/01/26(火) 23:35:030263デフォルトの名無しさん
2010/01/26(火) 23:37:37>>258
ありがとうございます。
その方法を調べてみます。
0264デフォルトの名無しさん
2010/01/26(火) 23:38:12置き換えるんならそのまま使った方がマシだろ。
0265デフォルトの名無しさん
2010/01/26(火) 23:40:17クラスライブラリでrefやoutを公開するのは非推奨
C#ならいいんだけどVBやC++/CLIから使う場合には区別がつかないから可読性の問題もある
0266デフォルトの名無しさん
2010/01/26(火) 23:41:100267デフォルトの名無しさん
2010/01/27(水) 00:04:240268デフォルトの名無しさん
2010/01/27(水) 00:08:110269デフォルトの名無しさん
2010/01/27(水) 00:08:370270デフォルトの名無しさん
2010/01/27(水) 00:14:27TryParse も out 使わずに実装しやがれ!
0271デフォルトの名無しさん
2010/01/27(水) 00:15:45ガイドラインがある
0272デフォルトの名無しさん
2010/01/27(水) 00:16:220273デフォルトの名無しさん
2010/01/27(水) 00:18:09例外は使いたくないな
だって、ジョエルが使うなって言ってるもん(;。;)
0274デフォルトの名無しさん
2010/01/27(水) 00:19:050275デフォルトの名無しさん
2010/01/27(水) 00:20:16お前オッサン臭がするぞ
オッサンだろ
0276デフォルトの名無しさん
2010/01/27(水) 00:22:44うまく書く方法はあるんか?
0277デフォルトの名無しさん
2010/01/27(水) 00:26:060278デフォルトの名無しさん
2010/01/27(水) 00:36:210279デフォルトの名無しさん
2010/01/27(水) 00:40:45true/falseの返り値チェックし忘れそうだし。
こんなメソッド提供する必要ない。
0280デフォルトの名無しさん
2010/01/27(水) 00:40:47間違ったコードは間違って見えるようにするって奴か
しかしながら俺は”他人が俺の拵えた関数のエラー値を正しくチェックしている”なんて信用していないんだ。
だから例外処理を強制する
0281デフォルトの名無しさん
2010/01/27(水) 01:13:320282デフォルトの名無しさん
2010/01/27(水) 01:35:16多値戻り値サポートしてれば out 要らないんだけどね。
あと、C# の場合は過去のしがらみ(COM 相互運用とか)で out が必要。
0283デフォルトの名無しさん
2010/01/27(水) 01:51:10なんでC#はサポートしなかったんだろう?
0284デフォルトの名無しさん
2010/01/27(水) 02:00:520285デフォルトの名無しさん
2010/01/27(水) 02:09:29関係性を定義するのは集合と写像が基本であり、
写像の典型例が関数だから。
0286デフォルトの名無しさん
2010/01/27(水) 02:16:37「エラーの際は○○を返却します」を読まないといけないから嫌じゃ。
マクロが使えるHRESULTとかだったらまだいいけどな、
ハンドルでNULLと0xFFFFFFFFが共存してるのはマジ死ねとしか言えない。
0287デフォルトの名無しさん
2010/01/27(水) 02:21:36死ね
0288デフォルトの名無しさん
2010/01/27(水) 02:55:210289デフォルトの名無しさん
2010/01/27(水) 03:01:35そんな旧式の動作をするようなクラスが.NETの基本クラスライブラリにどれだけあるか、例にあげてご覧よ。
0290デフォルトの名無しさん
2010/01/27(水) 03:08:270291デフォルトの名無しさん
2010/01/27(水) 03:59:57比較ごとに毎回replace*2、parse*2するのはコスト的に馬鹿らしくないか?
因みに、PenM 1.7GHzでreplaceとparseだけを2^21回実行したら1.5〜2秒くらいだった
(2^21回=要素数1024の最悪ケース=要素数65536の平均ケース)
0292デフォルトの名無しさん
2010/01/27(水) 04:04:52頻繁にやるようならキャッシュするけど
数回なら拘るのは馬鹿らしいのでしない
0293デフォルトの名無しさん
2010/01/27(水) 04:40:39最適化は質問者の仕事だろ
実際の流れが分からないと答えでないし
そもそもそこまでしてやる必要ない
0294デフォルトの名無しさん
2010/01/27(水) 05:59:38文法が似てるきがするのでC#もやってみたいんですが
いわゆるmainにすべての処理を書くようなプログラミングで(サブルーチン程度なら関数も使っていますが)
オブジェクト指向?構造体?コンストラクタ?みたいな状態なんですが(知らずに使っているかもしれませんが)
上記のようなことを知りたい場合におすすめな定番ページはありますか?
演算子、配列、構文などは分かってると自分では思います
0295デフォルトの名無しさん
2010/01/27(水) 06:01:170296デフォルトの名無しさん
2010/01/27(水) 07:37:17例えばhttp://www.microsoft.com/japan/msdn/vstudio/2008/product/express/install_vcs.aspxにある時計を表示するプログラムを書いて
これを実行するプログラムを作成するにはどうすればいいんでしょうか
ソリューションのビルドってやってもビルド正常終了ってなるだけで何もおきません
exeファイルは作れないのですか?
0297デフォルトの名無しさん
2010/01/27(水) 07:42:37自分でエクスプローラーでプロジェクトの場所開くなりして
DebugやReleaseフォルダ探せばEXEファイルが入ってるだろう
0298デフォルトの名無しさん
2010/01/27(水) 08:01:02オブジェクト指向頭になるとintだろうがなんだろうが基本的にはクラスで
抱える考えになるのでrefとかoutで悩むことはないはずなんだが
>>267
>>262のAPI使うときにないとこまる
用途はそれくらいだろ
0299デフォルトの名無しさん
2010/01/27(水) 08:03:43ビルドは作ってるだけだよ
その隣のデバックのところで動かせるし
exeそのものを取り出したいならプロジェクトのパスをたどって
binフォルダ->Releaseフォルダ->xx.exeと探すしかない
0300デフォルトの名無しさん
2010/01/27(水) 08:09:58きっと手をつけてないんだろうな。
でもま、そんなあなたに JScript.NET ! こっそり入ってます。
0301296
2010/01/27(水) 08:13:450302デフォルトの名無しさん
2010/01/27(水) 09:01:34自動的にデバッグビルドに切り替えるか、警告を出してくれるようなオプションはありませんか?
0303デフォルトの名無しさん
2010/01/27(水) 09:02:070304デフォルトの名無しさん
2010/01/27(水) 09:17:30object[]返してるようなもの?
0305デフォルトの名無しさん
2010/01/27(水) 09:23:07デリゲートとかいうやつなんでしょうか?
0306デフォルトの名無しさん
2010/01/27(水) 10:08:22C系の文法で書くなら、
Ret1, Ret2 Method(Arg1 x1, Arg2 x2)
ラムダ的に書くなら、
(x, y) => (x + y, x * y)
みたいなの。
C# 的にいうと、
void Method(Arg1 x1, Arg2 x2, out Ret1 r1, out Ret2 r2)
を
var r1, r2 = Method(x1, x2);
って書き方で呼べてもいいじゃないっていう。
0307デフォルトの名無しさん
2010/01/27(水) 10:09:07おおむねその通り。
関数ポインターよりはデリゲートの方が高機能だけど。
インスタンスメソッドも渡せたり、マルチキャストできたり。
0308デフォルトの名無しさん
2010/01/27(水) 10:18:51http://www.infoq.com/jp/news/2010/01/Mono-CSharp-Ex
複数戻り値も入っとるな、こっちはout引数がついた関数を特別な呼び方ができるやつ
じゃなくてタプルをアンパック代入できる方式だが
0309デフォルトの名無しさん
2010/01/27(水) 10:20:14値渡しは値渡し
ポインタの値渡しはあるが、参照の値渡しなんて概念がある言語ってあったか?
0310デフォルトの名無しさん
2010/01/27(水) 10:31:590311デフォルトの名無しさん
2010/01/27(水) 10:32:310312デフォルトの名無しさん
2010/01/27(水) 10:33:16じゃあ(ref object x)はなんと表現するんだ
0313デフォルトの名無しさん
2010/01/27(水) 10:37:031) 参照の(指している何か自体の)値渡し
2) 参照の(指している場所情報の)値渡し
だから何?
0314デフォルトの名無しさん
2010/01/27(水) 10:38:42http://img.f.hatena.ne.jp/images/fotolife/t/taka_2/20090528/20090528234725.jpg
0315デフォルトの名無しさん
2010/01/27(水) 10:50:09JavaとかC#の参照型って結局ポインターみたいなもんだからねぇ。
ポインターの値渡しに相当。
0316デフォルトの名無しさん
2010/01/27(水) 10:55:45「参照の値渡し」というのはVBの用語と考えた方がいいと思うが。
0317デフォルトの名無しさん
2010/01/27(水) 11:04:590318デフォルトの名無しさん
2010/01/27(水) 11:11:11c#だとクローンが参照の値渡しみたいなもんじゃね?
0319デフォルトの名無しさん
2010/01/27(水) 11:56:14参照の参照渡し
値型の値渡し
値型の参照渡し
0320デフォルトの名無しさん
2010/01/27(水) 11:59:58if (method(xxx)) { xxxxxx; } って書けないのはありがたみがないな
0321デフォルトの名無しさん
2010/01/27(水) 12:08:41成否判定だけ特別に扱える構文でも作ればよくね?
→ 例外が出来ました
ってのが元々なんだけど、C#では例外で処理フローつくるのはやめてねってことになってるんだよね。
だから検査例外が存在しない。(catchしなくてもコンパイル通る=処理しないといけないエラーは例外にすんな)
0322デフォルトの名無しさん
2010/01/27(水) 12:40:40ありがとうございます。
0323デフォルトの名無しさん
2010/01/27(水) 13:44:17うむ
0324デフォルトの名無しさん
2010/01/27(水) 14:10:07Formにダブルバッファ設定があったので試しましたがやはりちらつきます。
ゲーム関連のようにvsyncを待ってとかできれば一番いいのですが
0325デフォルトの名無しさん
2010/01/27(水) 14:12:140326デフォルトの名無しさん
2010/01/27(水) 14:16:18まあそんな感じですよね
ウインドウのシステム上完璧にってのは無理なんですかね・・・
あとvistaとか7は問題ないのかもしれないですけど古い2DドローシステムのXPはどうしても
0327デフォルトの名無しさん
2010/01/27(水) 14:50:59フォームのダブルバッファはあくまでもフォームに対する設定だからなぁ
そのコントロールを派生し、コンストラクタにおいて
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
this.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
をやってみるといい。
0328デフォルトの名無しさん
2010/01/27(水) 14:51:430329デフォルトの名無しさん
2010/01/27(水) 15:00:22おお、まったくちらつかないw
Direct2DでやれることはほぼできるしAAかけたりできるのにちらつきがあることで
あきらめてたのがあったんですがこれでできそうです
0330デフォルトの名無しさん
2010/01/27(水) 15:23:11感謝を忘れるんじゃねえw
0332デフォルトの名無しさん
2010/01/27(水) 15:46:56遅レスだけどStrCmpLogicalWというのがある。
0333デフォルトの名無しさん
2010/01/27(水) 16:04:56ラムダ書けるバージョンなら
tring[] dat = {"003.dat", "01.dat", "006.dat", "0005.dat"};
Array.Sort(dat, (a, b) => int.Parse(a.Replace(".dat", "")) - int.Parse(b.Replace(".dat", "")));
foreach(string s in dat)
{
Console.WriteLine(s);
}
0334デフォルトの名無しさん
2010/01/27(水) 16:07:16string[] dat = {"003.dat", "01.dat", "006.dat", "0005.dat"};
ね
0335デフォルトの名無しさん
2010/01/27(水) 16:20:17お前はレスの前後ぐらい追わんかい
>>258
0336デフォルトの名無しさん
2010/01/27(水) 16:20:18"Black"とかstringで保存しておいて、次ぎに読み込んだ時に、Color.Blackが簡単に実現できる方法はなんでしょうか?
もちろん色は任意の色ですが
0337デフォルトの名無しさん
2010/01/27(水) 16:21:41普通に
0338デフォルトの名無しさん
2010/01/27(水) 16:22:33名前のある色ばかりじゃないと思うんだが
0339デフォルトの名無しさん
2010/01/27(水) 16:26:200340デフォルトの名無しさん
2010/01/27(水) 16:27:02Color.FromNameで出来ると思われ。
0341デフォルトの名無しさん
2010/01/27(水) 16:30:36それ採用させていただきます
0342デフォルトの名無しさん
2010/01/27(水) 19:27:54それをこの前、別スレで言ったら思いっきりバカにされたよ。
0343デフォルトの名無しさん
2010/01/27(水) 19:39:51両方の意味で使うからややこしい
0344デフォルトの名無しさん
2010/01/27(水) 20:17:26英語でもそうなの?
お前が新用語つくっちゃえ!
0345デフォルトの名無しさん
2010/01/27(水) 20:41:05参照渡しは is passed by reference だからな。
英語レベルでも特に区別されてないのは確か。
出典はそれぞれこれ。
http://msdn.microsoft.com/en-us/library/14akc2c7.aspx
http://msdn.microsoft.com/en-us/library/t63sy5hs.aspx
0346デフォルトの名無しさん
2010/01/27(水) 21:01:42VBで作られたソフトからC#のソース抜き出すだけなのにうまくできない
0347デフォルトの名無しさん
2010/01/27(水) 21:02:440348デフォルトの名無しさん
2010/01/27(水) 21:08:310349デフォルトの名無しさん
2010/01/27(水) 21:38:44> JavaとかC#の参照型って結局ポインターみたいなもんだからねぇ。
> ポインターの値渡しに相当。
んな〜こったない。
ポインタの値渡しならポインタのポインタを渡すということも可能だが
C#の参照渡しはそんなことはできない。
まさに「参照渡し」そのものだ。
0350デフォルトの名無しさん
2010/01/27(水) 22:04:50終了
0351デフォルトの名無しさん
2010/01/27(水) 22:38:280352デフォルトの名無しさん
2010/01/27(水) 22:55:390353デフォルトの名無しさん
2010/01/27(水) 23:13:39クリックワンスという機能でインターネットからダウンロードできたのは良かったのですが、
バージョンが新しくなるたびに新しい世代の別ディレクトリを追加していくので、不要な古いフォルダやファイルが累積していくみたいです。
このファイル増殖を回避する方法を教えてください。
0354デフォルトの名無しさん
2010/01/27(水) 23:45:590355デフォルトの名無しさん
2010/01/28(木) 00:22:550356デフォルトの名無しさん
2010/01/28(木) 00:44:520357デフォルトの名無しさん
2010/01/28(木) 01:44:540358デフォルトの名無しさん
2010/01/28(木) 01:54:420359デフォルトの名無しさん
2010/01/28(木) 03:34:31その場合はまずテキスト全体をReadLineで行ごとに読み込み、
不要な行の部分をRemoveしたのち、あらためてWriteLineで
同名ファイルに「新規保存」をする手順を取る必要がありますか?
0360デフォルトの名無しさん
2010/01/28(木) 06:13:350361デフォルトの名無しさん
2010/01/28(木) 07:37:48C言語でint *p;と宣言したあとpに何も代入せずに
scanf("%d", p);などとしてpを使っていいのでしょうか?
それともint a;と宣言してp = &a;としてからではないといけないのでしょうか?
0362デフォルトの名無しさん
2010/01/28(木) 07:42:46C言語のスレッドへどうぞ
ここはC#だ
0364デフォルトの名無しさん
2010/01/28(木) 08:23:15まあ・・・許してやるよ
0365デフォルトの名無しさん
2010/01/28(木) 10:10:11TreeViewに相当するNodeを作らずに管理する方法はありますでしょうか?
渡したいのは
data1
data1_1
・・・・
data1_9
data2
data2_1
data2_2
data2_3
data3
data3_1
data3_2
というデータなんですが・・・
data
data1
data1_1
・・・・
data1_9
data2
data2_1
data2_2
data2_3
data3
data3_1
data3_2
こんな感じにするしかないのでしょうか?
0366デフォルトの名無しさん
2010/01/28(木) 10:27:570367デフォルトの名無しさん
2010/01/28(木) 10:51:300368デフォルトの名無しさん
2010/01/28(木) 10:58:50どうせNodesは取得専用だから同じ型を使ったところで無意味だし
0369デフォルトの名無しさん
2010/01/28(木) 11:06:18CheckedListBox.ObjectCollection, CheckedListBox.CheckedItemCollection?)
を保存し、次回の実行で内容を復元したいと考えています。
バインドすることが出来れば楽だったのですが、CheckedListBoxはデータバインドに対応していないらしく、
どのように実装するのが妥当だろうかと悩んでいます。
アプリケーション設定等に簡単に書き出す方法などあるでしょうか?
0370デフォルトの名無しさん
2010/01/28(木) 11:09:59のクラスをList<>にでも突っ込んでシリアライズ
復帰させる時にデシリアライズかけてListの上から項目突っ込んでチェックを設定
と安易にレスしてみる
0371デフォルトの名無しさん
2010/01/28(木) 11:16:550372デフォルトの名無しさん
2010/01/28(木) 11:22:27シリアライズはトラブルの元なのでお勧めしない
0373デフォルトの名無しさん
2010/01/28(木) 11:27:27Thread.Sleep(とかStreamReaderのclose(とかも
個別のtryとcatchで囲ってあるんです。
今まで、そんなこと考えたことも無かったんですが、
そうするべきなんですかね?
絶対に例外を投げないメソッドは存在しないのでしょうか?
0374デフォルトの名無しさん
2010/01/28(木) 11:35:19ただし,明らかにメソッドの使い方が間違っているために発生する類の例外は
キャッチ禁止
0375デフォルトの名無しさん
2010/01/28(木) 11:44:54それは分かるんですが、ドットネットフレームワークのメソッドが
例外を出す出さないはどのドキュメントに書いてあるのでしょうか?
StreamReaderのreadで何か起これば、例外は出るでしょうが、
closeでは出るかどうか‥‥。何が起こっても出ない気が‥‥
0376369
2010/01/28(木) 11:49:52XML出力時にチェック項目を他に一旦吐き出して−、ですか。
シリアライズやら、或いはItemsを一旦string辺りに吐き出して復帰、とベタにやるしかないですかね。
>>371
思いつきレスでもアイディア投げて貰えるだけでありがたいですし、
それを明記してくれてたら一層のこと、何も問題は無いです。
項目数自体は20程度なものなので、処理速度等で問題になることは無いのですが、
スマートな方法が無いものかと無駄に考え込んでしまいます。
0377デフォルトの名無しさん
2010/01/28(木) 11:54:45MSDNに書いてあるだろ。
結論から言えばClose()だけをtryで囲んでる奴はアホ。
using使え。
0379デフォルトの名無しさん
2010/01/28(木) 12:08:51TreeView.Nodesプロパティの型はTreeNodeではなくTreeNodeCollection。
ただ、ルートにList<T>などのコレクションを使うよりも
TreeNodeを使ったほうがコードは綺麗に書ける。(処理が共通になるから)
0380デフォルトの名無しさん
2010/01/28(木) 12:11:44なるほどそうですか
0381デフォルトの名無しさん
2010/01/28(木) 12:46:09こらこらw
お前はだれだw
>>379
なるほど
じゃあTreeNodeを構築する側でAddRangeでそのまま渡せる
ようにするくらいしかないんですね・・・
0383デフォルトの名無しさん
2010/01/28(木) 12:52:561つのみにするにはどうすれば良いですか?
0384デフォルトの名無しさん
2010/01/28(木) 12:55:18多重起動禁止
http://dobon.net/vb/dotnet/process/checkprevinstance.html
0385デフォルトの名無しさん
2010/01/28(木) 13:32:17for (int i = 0; i < 100; i++)
{
MyClass mc = new MyClass();
・・・・
(処理)
・・・・
}
と、for文の中でひたすらクラスを生成しつづけるプログラムはお行儀の悪いプログラムでしょうか?
for文の最後の方でクラスインスタンスmcを削除する必要はありませんか?
0386デフォルトの名無しさん
2010/01/28(木) 13:35:32勝手にGCされるので削除の必要もない
ところで、処理って何をするつもりなん
0387デフォルトの名無しさん
2010/01/28(木) 14:13:540388デフォルトの名無しさん
2010/01/28(木) 16:17:27気がつかなかったのですが、動的に自分で登録する際にTABキーx2回で
イベントハンドラの登録から関数部分の作成までやってくれるなかに
throw new NotImplementedException();
という一文が入るりますがこれはなんなのでしょうか?
0389デフォルトの名無しさん
2010/01/28(木) 16:26:060390デフォルトの名無しさん
2010/01/28(木) 16:26:42実装されていないことを示す例外とクラス名が示してるだろうが
インテリセンス表示してみろ
書いてあるだろうが
0391デフォルトの名無しさん
2010/01/28(木) 16:28:090392デフォルトの名無しさん
2010/01/28(木) 16:31:06とりあえず誤魔化すために例外投げてるんだよ
デリゲートが戻り値を持ってる場合は中身が空だとコンパイルエラーになってしまう
0393デフォルトの名無しさん
2010/01/28(木) 16:41:260394デフォルトの名無しさん
2010/01/28(木) 17:18:200395デフォルトの名無しさん
2010/01/28(木) 17:21:440396デフォルトの名無しさん
2010/01/28(木) 18:06:42他のプログラムで処理されている最中かどうかを調べるには
リードオンリーフラグ(FileAttributes.ReadOnly)
が立っているかどうかを調べれば判別がつくとおもってよろしいでしょうか?
もしこのフラグが立っているようでしたらそのフラグが消えるまでwhileループで待ち続け、
消えたことを確認した後でファイルにアクセスするようプログラムを書けば安全にファイル
アクセスできるようになりますか?
0397デフォルトの名無しさん
2010/01/28(木) 18:13:400398デフォルトの名無しさん
2010/01/28(木) 18:18:000399デフォルトの名無しさん
2010/01/28(木) 18:26:31それはWindowsのファイルの読み取り属性であって
ファイルの排他制御とは関係ない。
0400デフォルトの名無しさん
2010/01/28(木) 18:27:04それはファイルのプロパティで変更できる読み取り専用属性のことだよ
0401デフォルトの名無しさん
2010/01/28(木) 18:28:22http://dobon.net/vb/dotnet/file/fileshare.html
0402デフォルトの名無しさん
2010/01/28(木) 19:01:08そういうことでしたか、ありがとうございます。
0403デフォルトの名無しさん
2010/01/28(木) 22:34:06private string[] test()
{
string[] s = {"aa", "bb", "cc"}
return s;
}
最後の二行をもっと完結に一行にまとめることは出来ないでしょうか?
わざわざインスタンスsを宣言せずに済むようにしたいです。
0404デフォルトの名無しさん
2010/01/28(木) 22:36:50return new[] { "aa", "bb", "cc" };
省略せずに書けば
return new string[] { "aa", "bb", "cc" };
0405デフォルトの名無しさん
2010/01/28(木) 22:51:490406デフォルトの名無しさん
2010/01/28(木) 22:53:43コンパイル通りました。
ありがとうございました。
0407デフォルトの名無しさん
2010/01/28(木) 22:54:25すみません、下から2行目、セミコロンが抜けてましたね
0408デフォルトの名無しさん
2010/01/28(木) 23:25:020409デフォルトの名無しさん
2010/01/28(木) 23:29:130410デフォルトの名無しさん
2010/01/28(木) 23:45:590411デフォルトの名無しさん
2010/01/28(木) 23:46:31コワイネー
0412デフォルトの名無しさん
2010/01/29(金) 07:05:31いいこと知った
0413デフォルトの名無しさん
2010/01/29(金) 10:34:12初期のC#どころかCの時代からある構文だけど
今となっては浮いてるよな
0414デフォルトの名無しさん
2010/01/29(金) 10:40:15え
今でもintとかstringの場合使うけどな
まああまりにも初期化する項目増えるとなると外部ファイルに出すとかするけど
そういえばCのころのようにソースファイル1本がまるまる初期化の内容で
コンパイル時にプログラム内に埋め込むとかどうやるんだろう
0415デフォルトの名無しさん
2010/01/29(金) 10:53:410416デフォルトの名無しさん
2010/01/29(金) 10:55:05クラスが分かれるのが嫌ならpartial
class Hoge { string[] s = とか入れずに値だけ書きたいなら
外部のスクリプトをビルド前のイベントで走らせるとか
msbuildのタスク作るとかしてコードを生成する
0417デフォルトの名無しさん
2010/01/29(金) 10:56:11将棋のような打った手を通信する程度なら十分だけど、3Dゲームのようなものすごく短い時間での
通信を要求される場合は.netじゃあむりかも
0418デフォルトの名無しさん
2010/01/29(金) 10:57:55入り口と出口が.NETだったところでほとんど関係ない
0419デフォルトの名無しさん
2010/01/29(金) 10:58:450420デフォルトの名無しさん
2010/01/29(金) 10:58:55>3Dゲームのようなものすごく短い時間での通信を要求される場合は.netじゃあむりかも
XNAディスってるんですか?
0421デフォルトの名無しさん
2010/01/29(金) 11:30:40listboxではないと思うんですけど、ありますか?ツールボックスに、
教えてください
よろしくお願いします
0422デフォルトの名無しさん
2010/01/29(金) 11:34:34ListViewだよ
http://www.atmarkit.co.jp/fdotnet/dotnettips/258listviewadd/listviewadd.html
View を Details にしてカラムヘッダーに項目入れたあと
ListItem入れていけば表示されるよ
0424デフォルトの名無しさん
2010/01/29(金) 15:01:15ヒープが壊れてますって言われるんですけど
なにしたらヒープ壊れるの?
どこでエラーが起きてるかもわからないし困ってます
だれか助けて
0425デフォルトの名無しさん
2010/01/29(金) 15:08:04そうでないならMS社員にしかわからん
0426デフォルトの名無しさん
2010/01/29(金) 15:10:230427デフォルトの名無しさん
2010/01/29(金) 15:19:49マジ?一回もないんだけど たまになるんならこえぇな・・・
0428デフォルトの名無しさん
2010/01/29(金) 15:24:44アプリ書いたけどその手のはよくプロジェクトが壊れる
ひどいケースはプロジェクトを開く途中でIDEが不正終了起こして再起動とか
0429デフォルトの名無しさん
2010/01/29(金) 15:46:54なるほど完全なカスタムじゃなく継承元の動きを強引にいじろうとする場合どっかで不整合起きて落ちたりするような感じなのか・・・
気にとめとこう・・・・サンクス
0430デフォルトの名無しさん
2010/01/29(金) 18:09:01スクロール機能を実装しようと思うのですがAutoScroll = falseにすると
越えた部分は作られてないようでスクロールを受け付けません
別のスクロール機能というのはAPI経由でスクロールがあったよとメッセージを投げる形です。
対策としてはAutoScroll = trueにした上でAPIのShowScrollBarで大きさを変えるとかしか
方法はないのでしょうか?
0431デフォルトの名無しさん
2010/01/29(金) 19:49:25それ本当にカスタムコントロールを含むプロジェクト(じゃなくてソリューションだと思うが)
一般について言えることか?
間違いなく君の勘違いだと思うね。
少なくとも俺のところではそんな問題が起きたことは一度もないけど。
デザインモード時を意識しないアホなコード書いてるか、
そうじゃなきゃ環境そのものの問題でしょ。
0432デフォルトの名無しさん
2010/01/29(金) 20:05:18デザインモードもなにも一切デザインモードのお世話にならないコードでもそれだよ
たとえばLabelを継承したLabelExというクラスを作って自分がよく書くパターンコードを
仕込んでるだけだよ(たとえばマウスイベントで自分自身をつまんで移動できるとか
それをデザイナー使わずに動的に確保して親になるコントロールに追加してるだけだけど
0433デフォルトの名無しさん
2010/01/29(金) 20:08:100434デフォルトの名無しさん
2010/01/29(金) 20:28:10> string[] s = {"aa", "bb", "cc"}
今となっては浮いてるだ?
じゃああんたはどうやって宣言してるのか教えてくれ
0435デフォルトの名無しさん
2010/01/29(金) 20:40:32それ以外に考えられる初期化って、
string[] s = new string[] { "test" };
これしないと思う。
0436デフォルトの名無しさん
2010/01/29(金) 21:23:05例えば[4036]メインスレッドの4306です
ManagedThreadIdは全然違う数字でした
0437デフォルトの名無しさん
2010/01/29(金) 21:24:300438デフォルトの名無しさん
2010/01/29(金) 22:02:32AppDomain.GetCurrentThreadId()で取得できました
使うなっていわれるけれど・・・
0439デフォルトの名無しさん
2010/01/29(金) 22:05:310440デフォルトの名無しさん
2010/01/29(金) 23:43:53自分で各部位に散らばったコードをコメントアウトしたりコメントアウトを外したりするのは面倒なうえ
間違いのもとにもなります。
一括で各部位に散らばったコードを実行するかしないかを選べるようにしたいのですが
そういうときはみなさんならどうされますか?
0441デフォルトの名無しさん
2010/01/29(金) 23:44:520442デフォルトの名無しさん
2010/01/29(金) 23:45:210443デフォルトの名無しさん
2010/01/29(金) 23:45:360444デフォルトの名無しさん
2010/01/29(金) 23:50:280445デフォルトの名無しさん
2010/01/29(金) 23:56:050446デフォルトの名無しさん
2010/01/29(金) 23:58:17デザイナでの実行中に実行時と違ってハンドルがなかったりとか
違いがあるせいで例外起こしたりするとVS2008とかすぐ落ちることもある
まあ原因の99.9%は自分のコードにあるんで、デバッガからVS立ち上げて
カスタムコントロール貼り付けてステップ実行して原因調べるけどね
0447デフォルトの名無しさん
2010/01/30(土) 00:11:58早速使ってみますノシ
>>444
> if DEBUG以外でそういう組み方するのはいろいろやばそうなので根本的に改善する
if文を作って条件付き動作するべきでしょうか?
0448デフォルトの名無しさん
2010/01/30(土) 00:17:070449デフォルトの名無しさん
2010/01/30(土) 00:19:57ビルドし直してテスト、じゃ、カバレッジも上がらんし。
0450デフォルトの名無しさん
2010/01/30(土) 00:30:28その条件って何だ?単にテスト用とかじゃないなら
コメントアウトや#ifで制御するのはよくない。
0451デフォルトの名無しさん
2010/01/30(土) 00:31:270452デフォルトの名無しさん
2010/01/30(土) 00:35:39外部の設定ファイルとかプログラム自体の挙動を
変える必要のない方法でやるべき。
0453デフォルトの名無しさん
2010/01/30(土) 00:39:08単純な入出力変更なら起動時にスイッチでもつければいい
同じような機能だけど細部が違うというなら基本クラスと派生クラスを作ればいい
0454デフォルトの名無しさん
2010/01/30(土) 00:41:200455デフォルトの名無しさん
2010/01/30(土) 00:42:150456デフォルトの名無しさん
2010/01/30(土) 00:45:04そう?
そう言ってもらえるとなんだか元気が出てきた(゚∀゚)YO!
0457デフォルトの名無しさん
2010/01/30(土) 00:48:48メソッドの数が少ないかわりに、1つのメソッドが
数百行あるようなクラスこそ最悪
0458デフォルトの名無しさん
2010/01/30(土) 00:51:51メソッドの数とメソッド内の行数ってトレードオフの関係にないでしょ。
知ったようなこと言っちゃダメw
0459デフォルトの名無しさん
2010/01/30(土) 00:54:20それなりに綺麗なソースになると思うけどな
0460デフォルトの名無しさん
2010/01/30(土) 01:01:0230個ほどのメソッドは全て同じクラス内の他のメソッドを呼び出してたりするから
むげに他のクラスに追い出したりすることができないんだよね。
継承を使うという方法もあるけどそれだと親クラスのフィールド値とか直接アクセス
できなくなるから面倒なことになる。
というわけでメソッドは全て同じクラスに一緒くたにしてしまいましょうという現状に
落ち着いてしまった・・・
いいんだよね、これで(´・ω・`)
0461デフォルトの名無しさん
2010/01/30(土) 01:01:26大抵はトレードオフの関係にあるが?特に初心者のプログラマーなら
0462デフォルトの名無しさん
2010/01/30(土) 01:05:22たとえば、ログ出力するだけの単純なクラスだとしたら、30個のメソッドは多すぎる気がする。
0463デフォルトの名無しさん
2010/01/30(土) 01:06:250464デフォルトの名無しさん
2010/01/30(土) 01:08:19質問者は区別してなさそうだが
0465デフォルトの名無しさん
2010/01/30(土) 01:10:14どれだけ一つのクラスに動詞がつまっちゃってるの?とか思うw
0466デフォルトの名無しさん
2010/01/30(土) 01:10:34publicだったら10個くらいかな
0467デフォルトの名無しさん
2010/01/30(土) 01:12:370468デフォルトの名無しさん
2010/01/30(土) 02:06:23非アクティブ時にForm以外の部分にマウスイベントが送られたとき、
どうやってイベントハンドリングすればいいのでしょうか?
よろしくお願い致します。
0469デフォルトの名無しさん
2010/01/30(土) 02:11:330470デフォルトの名無しさん
2010/01/30(土) 11:41:23ログを表示させる場合はどうすればいいのでしょうか?
インスタンスを渡して書き込もうとしましたがエラーになってしまいました。
0471デフォルトの名無しさん
2010/01/30(土) 11:44:51C++とかでライブラリを作らないと行けないけど
マウスホイールならC#(CLR)で実行出来る不思議
0472デフォルトの名無しさん
2010/01/30(土) 11:45:000473デフォルトの名無しさん
2010/01/30(土) 11:46:57ありがとうございます。
0474デフォルトの名無しさん
2010/01/30(土) 11:53:43別スレッドからコントロール生成元のスレッドを経由して処理を行うにはInvoke()delegate()を使うよろし
0475デフォルトの名無しさん
2010/01/30(土) 12:09:10そういうことなんですね
おかげでログをtextboxに表示できました。
0476デフォルトの名無しさん
2010/01/30(土) 12:48:14コレクションが変更されない限り、List では、複数の読み込み操作が同時に発生しても問題ありません。
コレクションの列挙処理は、本質的にはスレッド セーフな処理ではありません。
まれに 1 つ以上の書き込みアクセスによって列挙処理で競合が発生する場合、確実にスレッド セーフにするには、
列挙処理が完了するまでコレクションをロックします。 <============== A
コレクションに対し複数のスレッドがアクセスして読み取りや書き込みを行うことができるようにするには、
独自に同期化を実装する必要があります。 <==================== B
AとBは同じ意味ですか?(つまりロックしろっていうこと?)
それともBはロックとはちがう方法で同期化しないといけないということですか?
0477デフォルトの名無しさん
2010/01/30(土) 13:23:08同じ意味
0478デフォルトの名無しさん
2010/01/30(土) 13:43:360479デフォルトの名無しさん
2010/01/30(土) 15:37:420480デフォルトの名無しさん
2010/01/30(土) 15:41:38"<"にはマッチするが"<<"にはマッチしない、その逆の
">"にはマッチするが">>"にはマッチしないという部分
がうまくいっていないようなんです。
どう記述すればいいですか?
if (Regex.IsMatch(str, "(!=|==|<[^<]|>[^>]|<=|>=)"))
{
//条件式です
}
else
{
//条件式ではありません
}
0481デフォルトの名無しさん
2010/01/30(土) 15:44:390482デフォルトの名無しさん
2010/01/30(土) 15:46:24これを()で囲む
0483デフォルトの名無しさん
2010/01/30(土) 15:49:140484デフォルトの名無しさん
2010/01/30(土) 16:32:12BeginInvokeでスレッド起動すれば大丈夫
0485デフォルトの名無しさん
2010/01/30(土) 16:33:39同じと言えばまあ大きいくくりでは同じと言えなくもないが
はっきり言って注意の観点が違うよ。
Bは分かりやすいが、AはBのような単純な解決はできない。
0486デフォルトの名無しさん
2010/01/30(土) 16:38:54使う側でロックという意味では同じだった。
Bはコレクション自体を同期化するとかの単純なやり方も可能。
しかしAはそうはいかない。
また、コレクションの使い方によってはBのような単純な同期化ではすまない場合もある。
0487デフォルトの名無しさん
2010/01/30(土) 16:39:210488デフォルトの名無しさん
2010/01/30(土) 16:40:340489デフォルトの名無しさん
2010/01/30(土) 16:45:220490デフォルトの名無しさん
2010/01/30(土) 16:49:290491デフォルトの名無しさん
2010/01/30(土) 16:51:43IEnumeratorの見りゃ列挙が実はコレクションクラスに書き込んでる(Reset/MoveNext)って分かるだろ
0492デフォルトの名無しさん
2010/01/30(土) 16:53:400493デフォルトの名無しさん
2010/01/30(土) 18:02:357つ。
0494デフォルトの名無しさん
2010/01/30(土) 18:17:480495デフォルトの名無しさん
2010/01/30(土) 18:19:410496デフォルトの名無しさん
2010/01/30(土) 18:32:530497デフォルトの名無しさん
2010/01/30(土) 18:43:060498デフォルトの名無しさん
2010/01/30(土) 18:51:510499デフォルトの名無しさん
2010/01/30(土) 19:03:08はい?
0500デフォルトの名無しさん
2010/01/30(土) 19:04:320501デフォルトの名無しさん
2010/01/30(土) 20:13:05<ResultSet xmlns="urn:yahoo:jp:jlp:KeyphraseService" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yahoo:jp:jlp:KeyphraseService http://jlp.yahooapis.jp/KeyphraseService/V1/extract.xsd">
<Result>
<Keyphrase>馴染み</Keyphrase>
<Score>100</Score>
</Result>
<Result>
<Keyphrase>会津若松</Keyphrase>
<Score>85</Score>
</Result>
<Result>
<Keyphrase>真なり</Keyphrase>
<Score>35</Score>
</Result>
</ResultSet>
からKeyphraseのみを抜き出すにはどうしたらよいですか?
XDocument xdoc = XDocument.Parse(html);
var query = from ResultSet in xdoc.Root.Elements()
select new{
Keyword = ResultSet.Element("Result").Attribute("Keyphrase").Value
};
string contents = "";
foreach (var q in query) {
contents += q.Keyword + "\r\n";
}
0502デフォルトの名無しさん
2010/01/30(土) 20:40:07・Keyphrase属性などどこにもない
・範囲変数ResultSetの中身がResultSet要素じゃない
0503デフォルトの名無しさん
2010/01/30(土) 21:02:08にしてデバッガで何が列挙されるか見てみたらいいよ
0504デフォルトの名無しさん
2010/01/30(土) 21:09:15<Element Attribute="attributeValue">elementValue</Element>
501が言ってるのは要素(Element)
0505デフォルトの名無しさん
2010/01/30(土) 21:39:380506デフォルトの名無しさん
2010/01/30(土) 22:51:54できた
グローバルフックって言ってくれたらすぐだったのにw
まぁありがとう
0507デフォルトの名無しさん
2010/01/31(日) 03:43:55せいぜい一つのクラスしか無いようなプログラムを書くことって可能だし
結構なケースでそれで十分だったりするよね。
でもこれってフィールドはC言語でいうところのグローバル変数みたいなものだし
メソッドもC言語でいう関数とほとんど変わらなくなってしまう。
クラスを使ったオブジェクト指向とは言っても実質的にC言語と何も変わってない。
こういうときってどうしたらオブジェクト指向言語にしたらいいんだろうか?
初心者向きのC#の解説書にはなかなか触れられていないから把握しにくい(´・ω・`)
0508デフォルトの名無しさん
2010/01/31(日) 04:38:03仕事とかでないのなら
0509デフォルトの名無しさん
2010/01/31(日) 04:39:22うまい人のコード読むのが一番勉強になる。
CodePlexとかに山ほどあるんで興味があるやつを読んでみたら?
0510デフォルトの名無しさん
2010/01/31(日) 04:53:28有名どころがいいだろうな。
0511デフォルトの名無しさん
2010/01/31(日) 04:57:570512デフォルトの名無しさん
2010/01/31(日) 06:22:25ここらへんで切り離そうかと思ってもやっぱり元のクラスのフィールドとかメソッドにアクセス
出来た方が便利だから元のクラスに入れておくままにしておくか、となる。
その結果がスパゲティコードよ(´・ω・`)
0513デフォルトの名無しさん
2010/01/31(日) 07:14:47プログラムの規模やら誰が使うのか、とかで変わってくる。
だから、自分でどんどん失敗して、自分なりの手法を見つけ出せばいいんだと思うよ。
0514デフォルトの名無しさん
2010/01/31(日) 07:25:30一応javaを大学で習ってたので条件分岐とか繰り返しとか配列とかはわかるけど
(と言っても最終課題で特殊なクラスインポートしてオセロ作った程度、特殊なクラスというのは大学固有のものみたい)
いくつかサイトまわったらjavaで中途半端に知識付いてるからか何がわかって何がわからないのかわからん
川俣晶さんの『究極のC#プログラミング』って本買ったら意味わからなくて泣きそうになった
いくつかのサイトまわった感じだと、クラスの継承とか値型参照型とか.NETとか良くわからなかったのでここも理解できる本がいいです
0515デフォルトの名無しさん
2010/01/31(日) 08:05:310516デフォルトの名無しさん
2010/01/31(日) 08:39:08Win32APIなどを呼び出すとき、デリゲートを渡すというのが良く分かりません
0517デフォルトの名無しさん
2010/01/31(日) 08:47:21C/C++ では、関数ポインタがコールバックに使えるけど、.NET ではデリゲートを使う、
って覚えとけばいいんじゃね?
0518デフォルトの名無しさん
2010/01/31(日) 08:56:470519デフォルトの名無しさん
2010/01/31(日) 09:44:19独習C#2版買ってみます
0520デフォルトの名無しさん
2010/01/31(日) 10:02:00あとは、必要に応じて足りないところを補っていけばいいんじゃない?
0521デフォルトの名無しさん
2010/01/31(日) 10:13:28持ってるから言える
0522デフォルトの名無しさん
2010/01/31(日) 10:42:500523デフォルトの名無しさん
2010/01/31(日) 11:06:02オブジェクト指向系の本読むとどの程度に機能分割すればいいか書いてあるよ。
本によっては酷いのもあるから良著って一般的に呼ばれてるのを最初に読んだ方が良いと思う。
・オブジェクト指向入門 原則/コンセプト
http://www.amazon.co.jp/dp/4798111112/
・オブジェクト指向入門 方法論/実践
http://www.amazon.co.jp/dp/4798111120/
ベタに書いちゃったプログラムを程良い粒度に変えていくための実践的な方法はこっち。
こっちは別に原典じゃなくても良いかもしれない。
・リファクタリング
http://www.amazon.co.jp/dp/4894712288/
余裕があったらCode Completeなんかも読んどくと良いと思う。
0524デフォルトの名無しさん
2010/01/31(日) 11:07:41こういう理由でこういう形にすべき、ってのがじゃんじゃか書いてあるし。
0525デフォルトの名無しさん
2010/01/31(日) 11:19:42なんで初心者向けの本を探してんのに究極とか書いてある本を買うんだよ。
0526デフォルトの名無しさん
2010/01/31(日) 11:23:33Javaの基本もろくにわかってないだろ。
JavaでもC#でもいいから、まずは基本をしっかり抑えろと。
0527デフォルトの名無しさん
2010/01/31(日) 11:28:020528デフォルトの名無しさん
2010/01/31(日) 12:04:17ありがとう、すげー高いけどそれだけの価値があるみたいなので買ってみます
>>526
そのとおりであります
0529デフォルトの名無しさん
2010/01/31(日) 12:09:37現状、体系的な勉強しようと思ったらやっぱ本じゃないと厳しいところがあるな。
0530デフォルトの名無しさん
2010/01/31(日) 12:10:55アプリの指定はProcess.MachineNameかMainWindowTitleあたりで起動中のアプリから探し出すとして、
メッセージはどうやったら引っ張ってこれるでしょうか?
キーボードのどのキーが押されたか?の情報は必要ないです。
マウスもクリックかスクロールされたときに拾ってくれればいいです。
調べると、SendMessageやらWin32APIを使うとかそういう話が出てきて
自分でコーディングするにはちょっと敷居が高い感じです。
で、グローバルフックで検索かけたら、指定アプリではなくとにかく全部フックしてくれるサンプルが見つかったんで、
これそのまま使って後はカレントウィンドウがどれかを調べればどこにメッセージが送られてるかは一応判断できるな、とは思ったんですが
もっと簡単で効率いいやり方ってあるのでしょうか
0531デフォルトの名無しさん
2010/01/31(日) 12:13:10ない
やりたいことに対する解決方法を見つけてる感じだけどそれを避けてとなるとあきらめろ
0532デフォルトの名無しさん
2010/01/31(日) 12:25:110533デフォルトの名無しさん
2010/01/31(日) 12:31:31うん
もうメッセージ監視のレベルがアプリじゃなくOSと同等のことをしないと無理
モニターしたい部品のハンドルなりを調べて、そこへ送られてくるメッセージを
常に監視もしく間に入ってモニターしながら透過的に送り届けるとかしないと
無理だろし
0534デフォルトの名無しさん
2010/01/31(日) 12:36:03MSDNって文章の書き方へただよね
0535デフォルトの名無しさん
2010/01/31(日) 12:38:03その作ろうと思うもの自体から間違ってると思うよ。それならまだ簡単なゲームのほうがまし。
0536デフォルトの名無しさん
2010/01/31(日) 13:41:03完全に個人的な好みだがこれがよかった
オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―
tp://www.amazon.co.jp/dp/4822281957/
0537デフォルトの名無しさん
2010/01/31(日) 13:54:410538デフォルトの名無しさん
2010/01/31(日) 14:05:39コントロール幅20
列1の幅10、
列2の幅10
にしています。スクロールモードはBothです。
もともとは2列ともコントロール幅に収まっていますが、列2のみ広げたい場合があります。
その際は列2の幅を右へドラッグして広げてもらい、スクロールバーを利用して閲覧してもらいたいのですが、列2の幅を広げることができません。
列1は広がります。
2つの列コレクションのプロパティに相違はありません。
どうすれば列2を広げることができるでしょうか。
よろしくお願いします。
0539デフォルトの名無しさん
2010/01/31(日) 14:05:55とりあえず継承やら委譲やらの基本的なことが理解できないらな
別なオライリー読んだ方が遠回りでも近道
0540デフォルトの名無しさん
2010/01/31(日) 14:51:340541デフォルトの名無しさん
2010/01/31(日) 14:53:40Form系のコントロールで考えるとよくわかると思うけど
hogohoge : Label
とあって何も追加コード書かなければ機能的にはLabelと同じクラスができる
0542デフォルトの名無しさん
2010/01/31(日) 14:55:190543デフォルトの名無しさん
2010/01/31(日) 14:58:57-> 簡単
・それで何ができるか?
-> まぁまぁわかる
・何のためにやるか? 効果的にやるためにはどうすればいいか?
-> この辺については難しい
ってことじゃね?
0544デフォルトの名無しさん
2010/01/31(日) 14:59:35継承は難解だと思ってる奴は初心者か上級者
0545デフォルトの名無しさん
2010/01/31(日) 15:00:46設計上の判断は難しいな
書いてる上でこれは多用するから継承クラス化した方がいいなとか
0546デフォルトの名無しさん
2010/01/31(日) 15:01:52どういう場合かを簡潔に述べられないからまだまだ初心者なんだけど。
0547デフォルトの名無しさん
2010/01/31(日) 15:03:30多用するだけなら委譲で充分
インターフェースの継承と実装の継承は分けて考えた方がよい
って教科書に書いてありましたー><
0548デフォルトの名無しさん
2010/01/31(日) 15:03:29見たことがある。
確かに「どうやったら継承ができるか」はわかってるんだろうけど、「継承の使いどころ」を
理解してない例。
0549デフォルトの名無しさん
2010/01/31(日) 15:03:490550デフォルトの名無しさん
2010/01/31(日) 15:04:15そのクラスをフィールドにもつクラスを作るか(しかしこれだと使いづらいかも)、
ヘルパークラスでしのぐか
0551デフォルトの名無しさん
2010/01/31(日) 15:04:580552デフォルトの名無しさん
2010/01/31(日) 15:08:57(2) 継承
(3) 委譲
(4) 侵略
(5) 奪回
(6) 奔走
(7) 実装
(8) 皇帝
0553デフォルトの名無しさん
2010/01/31(日) 15:14:05途端に継承という概念が理解できる。
0554デフォルトの名無しさん
2010/01/31(日) 15:14:19「使わずに実現できないか」を考えるようにすれば
「いつ使えばよいか」も自ずと絞られてくるのではないかな
0555デフォルトの名無しさん
2010/01/31(日) 15:15:54継承することを前提に作られたクラスからしか継承しない
これが一番無難
0556デフォルトの名無しさん
2010/01/31(日) 15:16:51神!神!もっと評価されるべき!!!!111
0557デフォルトの名無しさん
2010/01/31(日) 15:16:520558デフォルトの名無しさん
2010/01/31(日) 15:19:19ドメインモデルで設計するかあえてドメインモデル貧血症を選ぶかなんてのが最前線で盛り上ってるんだよな。
オブジェクト指向が銀の弾丸じゃないってのはもう完全に共通認識になってると思う。
0559デフォルトの名無しさん
2010/01/31(日) 15:22:090560デフォルトの名無しさん
2010/01/31(日) 15:23:50自分の会社との差があまりにもありすぎてどっか遠い国で起きてることにしか思えん。
DDDとかTiDDとか本当に仕事で使ってんの??
0561デフォルトの名無しさん
2010/01/31(日) 15:24:500562デフォルトの名無しさん
2010/01/31(日) 15:28:150563デフォルトの名無しさん
2010/01/31(日) 15:30:080564デフォルトの名無しさん
2010/01/31(日) 15:31:14それはインターフェイスにすると後でメンバを追加できないというバージョン管理上の問題から。
実装継承とインターフェイス継承の問題とは別。抽象クラスに実装が書かれてるからといって
実装継承というわけじゃない。
0565デフォルトの名無しさん
2010/01/31(日) 15:32:500566デフォルトの名無しさん
2010/01/31(日) 15:34:14実際に運用する段階になったら現実的じゃないと思うわ
C#で運用してる会社とかあるのかね
Railsとかそっち方面じゃないの
0567デフォルトの名無しさん
2010/01/31(日) 15:34:51でも決して「実装継承推奨」という意味ではない
0568デフォルトの名無しさん
2010/01/31(日) 15:42:00MSDNにはなんでも書いてあるね
0569デフォルトの名無しさん
2010/01/31(日) 15:47:55デザパタ自体を全て実践しろとは言わないが、クラスの使い方という意味で勉強になる
0570デフォルトの名無しさん
2010/01/31(日) 15:49:030571デフォルトの名無しさん
2010/01/31(日) 15:51:33今時完全にウォーターフォールでやってるとこの方が少なくない?
完全にアジャイル開発じゃなくても、一つのプロジェクトで数回リリースの形を取る
(=インテグレーションサイクル)方が多いと思うよ。
0572デフォルトの名無しさん
2010/01/31(日) 16:08:18上前提でできてるようなもんだよな
下にすると明らかにおかしいし
左右もなんで複数行を強いるんだとかさ
0573デフォルトの名無しさん
2010/01/31(日) 16:17:32君の説明能力も糞じゃないの?w
何がいいたいのかさっぱりわからん
0574デフォルトの名無しさん
2010/01/31(日) 16:18:32それはそうだろうけどアジャイルではないよね
XP見たいなプロジェクト管理者に責任だけを押しつけるようなやり方って
大規模な開発案件じゃ統制効かないような気がするんだけど
0575デフォルトの名無しさん
2010/01/31(日) 16:21:52windows2000もしくはそれと同等のUI設定なら特に問題はないんだが
XPのLunaなどを有効にするとタブの描画が上を前提にしてあるのが
タブとタブページの境目が変になるんだよ
こんなのは使ったことがあってかつ表示方法をいくらか試してないと気が付かない
わかってる人だけに伝わればいい
0576デフォルトの名無しさん
2010/01/31(日) 16:23:55前提にしてあるのか
0577デフォルトの名無しさん
2010/01/31(日) 16:51:44うん
0578デフォルトの名無しさん
2010/01/31(日) 16:52:50ですが、どなたか教えてください(T_T)。
リストビューでは、どの列も、リストビュー本体の幅を超えて列幅が指定できます。
ヘッダーの右端境界線を右へ右へドラッグすれば、スクロールバーも同調して広がり、各列の列幅を自由に広げることができます。
データグリッドビューについてもそれができると思ったら、ヘッダーの境界線を、データグリッドビューの視覚上の右端より右へドラッグして各列幅を広げることができないんです。
どうすればリストビューのように広げることができるでしょうか。
0579デフォルトの名無しさん
2010/01/31(日) 16:54:45<A HREF=http://headline.2ch.net/bbynamazu/>地震headline</A><br>
<A HREF=http://gimpo.2ch.net/namazuplus/>地震速報</A><br>
<A HREF=http://live24.2ch.net/eq/>臨時地震</A><br>
<A HREF=http://live23.2ch.net/eqplus/>臨時地震+</A>
上記のような文字列あった時。
板名とURLだけを取得するにはどうすればいいですか?
よろしくお願いします。
0580デフォルトの名無しさん
2010/01/31(日) 17:01:46正規表現かDOM
0581デフォルトの名無しさん
2010/01/31(日) 17:03:541行読んで先頭が <A HREF= と一致するかチェックする
一致したら最初に出てくる > を探す
最初に出てきた > の後ろからさらに</A>
・・・という風にやるか正規表現使うか
0582デフォルトの名無しさん
2010/01/31(日) 17:04:11お断りします(T_T)。
0583デフォルトの名無しさん
2010/01/31(日) 17:09:23XPは大規模開発には向いてないってどのアジャイル本にも解説してるぞ?
0584デフォルトの名無しさん
2010/01/31(日) 17:14:36言いたいことがやっとわかった
dataGridViewはカラム幅を変える際のマウスの移動範囲をクライアントサイズ内に限定してるのか
0585デフォルトの名無しさん
2010/01/31(日) 17:24:45あとはDataGridViewのソースを手に入れてカラムを摘んだ際のマウス移動範囲の
判定してるロジック部分をオーバーライドするとかで対応は無理・・・かな?
と思いつきで言ってみる
0586デフォルトの名無しさん
2010/01/31(日) 18:14:40と思いつきで言ってみる
0587デフォルトの名無しさん
2010/01/31(日) 18:35:23htmlの場合、正規表現しか駄目でしょ
0588デフォルトの名無しさん
2010/01/31(日) 18:37:20Elementで取得できると思ったけど
0589デフォルトの名無しさん
2010/01/31(日) 18:37:440590デフォルトの名無しさん
2010/01/31(日) 18:40:17 含まれてるだけで読めないとか面倒くせえんだよ
0591デフォルトの名無しさん
2010/01/31(日) 19:01:210592デフォルトの名無しさん
2010/01/31(日) 19:06:35タグならXmlの方でも読めなくはないんだろうけど
問題は階層になってないのが痛いな
0593デフォルトの名無しさん
2010/01/31(日) 19:13:10ttp://www.codeproject.com/KB/dotnet/apmilhtml.aspx
自分用だけど俺はこれ使ってる
HTMLの構文にエラーがあるとうまく動かないことがあったり
使いにくかったりするから少し修正と拡張してるけど
0594デフォルトの名無しさん
2010/01/31(日) 19:16:25組めないとsubject.txtとdatのような中途半端なタグが残った
文字データは処理できないぞ
0595デフォルトの名無しさん
2010/01/31(日) 19:16:490596デフォルトの名無しさん
2010/01/31(日) 19:19:140597デフォルトの名無しさん
2010/01/31(日) 19:19:53でも問題はDomで処理した場合<BR>はいいとして
<B>地震</B>
<A HREF=http://headline.2ch.net/bbynamazu/>地震headline</A><br>
この二つは同じレベルだからなあ
親 <B>地震</B>
子 <A HREF=http://headline.2ch.net/bbynamazu/>地震headline</A><br>
の関係なら解析させたあとBで列挙してもいいけどさ・・・
0598デフォルトの名無しさん
2010/01/31(日) 19:21:360599デフォルトの名無しさん
2010/01/31(日) 19:23:16http://uproda.2ch-library.com/209669XrW/lib209669.png
同列なんだよね
0600デフォルトの名無しさん
2010/01/31(日) 19:26:35<B><A HREF="...">...</A></B>とかならともかく。
0601デフォルトの名無しさん
2010/01/31(日) 19:26:390602デフォルトの名無しさん
2010/01/31(日) 19:26:45まああるにはあるんだけどさ・・・DLLとし
0603デフォルトの名無しさん
2010/01/31(日) 19:27:550604デフォルトの名無しさん
2010/01/31(日) 19:28:02言いたいことがわかってないようだ
BとAを別々に列挙した場合Bを大見出しでつけるのは多分不可能だと思うよ
0605デフォルトの名無しさん
2010/01/31(日) 19:32:120606デフォルトの名無しさん
2010/01/31(日) 19:33:12おー。理解できた。確かにそれはDOMじゃ不可能だね。
0607デフォルトの名無しさん
2010/01/31(日) 19:35:33わかってる
ただあえて2chのメニューを持ってきたところで深読みしつつ書いてるだけ
タダ単にURL欲しいなら正規表現で取り出すか>>581だ
俺が書いてるから
0608デフォルトの名無しさん
2010/01/31(日) 19:43:04未だにtidy使ってるわ
試してみようかな
0609デフォルトの名無しさん
2010/01/31(日) 19:47:350610デフォルトの名無しさん
2010/01/31(日) 19:52:07IEnumerable<T>使うと要らんものが増えすぎて嫌
0611デフォルトの名無しさん
2010/01/31(日) 19:54:31それだけだと足らないので、GetEnumeratorも書く。
それでforeach使えるはず。
0612デフォルトの名無しさん
2010/01/31(日) 19:57:090613デフォルトの名無しさん
2010/01/31(日) 20:00:02IEnumeratorインターフェースって要らねえの?
0614613
2010/01/31(日) 20:00:49IEnumerator ×
IEnumerable ○
0615デフォルトの名無しさん
2010/01/31(日) 20:02:400616デフォルトの名無しさん
2010/01/31(日) 20:06:33参考となる優良コードが見られるサイトって無いですか?
0617デフォルトの名無しさん
2010/01/31(日) 20:06:470618デフォルトの名無しさん
2010/01/31(日) 20:24:29http://www.monazilla.org/
0619デフォルトの名無しさん
2010/01/31(日) 20:39:12DOMにはHTML用の規定もあるのに何を
何の前置きもなく特定のパーサの実装に限定するなよ
>>604>>606
何でDOMだけA,Bを別々に列挙する話になっているんだよ
正規表現でもA,Bを抽出する正規表現で別々にマッチングして列挙したら同じだろ
0620デフォルトの名無しさん
2010/01/31(日) 20:49:09IEnumerableを実装するときでさえ、
あえてインターフェイス実装ではないGetEnumeratorを作ったりもする。
0622デフォルトの名無しさん
2010/01/31(日) 21:01:56もうじき死ぬのかもしれん。
0623デフォルトの名無しさん
2010/01/31(日) 21:41:100624デフォルトの名無しさん
2010/01/31(日) 21:44:100625デフォルトの名無しさん
2010/01/31(日) 21:44:25料理本?
0626デフォルトの名無しさん
2010/01/31(日) 21:46:380627デフォルトの名無しさん
2010/01/31(日) 21:49:370628デフォルトの名無しさん
2010/01/31(日) 21:58:560629デフォルトの名無しさん
2010/01/31(日) 22:36:190630デフォルトの名無しさん
2010/01/31(日) 22:53:36試しにやってみたけど確かにカーソルがコントロール範囲外に行かないね。
リストビューではできるのに、なぜなんだろ…。
0631デフォルトの名無しさん
2010/01/31(日) 23:04:58ColumnDividerとか言うらしいのでこいつ関連のイベントでクライアントの右端にマウスカーソルが
来たらカラムを広げてスクロールイベントを発生して・・・とか考えて調べてみたがろくな情報がなくて放置
0632デフォルトの名無しさん
2010/01/31(日) 23:56:50さあ
0633516
2010/02/01(月) 03:12:45>>518
なるほど
自動変換の規則がよく分かってないのかもしれません
例えば、stringはchar[]に自動変換できないくせに、
なぜかデリゲートで渡すときには
stringがLPCTSTRに変換できたりして
あと、IntPtrとint*の違いもよくわかりません
こういうのって体系的にまとまってないでしょうか?
0634516
2010/02/01(月) 03:13:530635デフォルトの名無しさん
2010/02/01(月) 03:18:18IntPtrとかrefあたりも自分たちがいじってる部分ではハンドラみたいな物でしょ
最終的な内部の方でDLLなんかとやり取りする部分ではじめてポインターとかに
化ける感じ
そこでしか必要ないもん
なので見た目上はint*と似てるけどぜんぜん違うと思うよ
0636デフォルトの名無しさん
2010/02/01(月) 04:18:28冷たいね、あなた。
0637デフォルトの名無しさん
2010/02/01(月) 10:30:19formのコントロールについて質問です。
vb6では各コントロールのTabIndexプロパティを0から振っていけば、起動
時には0にフォーカスが来ていたのですが、C#では上手くいきません。
TabIndexとは別のもので設定するのでしょうか?
0638デフォルトの名無しさん
2010/02/01(月) 10:54:54表示→タブオーダー
0639デフォルトの名無しさん
2010/02/01(月) 11:00:29コントロールにFocusしたりはした?
0640デフォルトの名無しさん
2010/02/01(月) 11:20:21ダブってたりすると、Contorl.Add()した順番が生きるみたいだけど。
0641デフォルトの名無しさん
2010/02/01(月) 11:34:56TabIndexではなくタブオーダーだったんですね。解決できました。
早く使い方になれないとまずいですね。
0642デフォルトの名無しさん
2010/02/01(月) 12:30:280643デフォルトの名無しさん
2010/02/01(月) 13:16:53ACCESSの1テーブルのデータをデータグリッドビューで表示することはできました。
データグリッドビューでの変更や行追加もできますが、テーブルにそれを反映できません。。
ACCESSのように即時変更や行追加できなさそうなことまでは調べがつき、
ボタンを押したときに以下のメソッドを順に呼び出しています(例外は発生しません)。
DataGridView.EndEdit();
BindingSource.EndEdit();
TableAdapter.Adapter.Update(DataSet.テーブル名);
何かが足りてないと思うんですが、八方塞がりになりました・・・ご教授くださいませ。
0644デフォルトの名無しさん
2010/02/01(月) 13:32:020645デフォルトの名無しさん
2010/02/01(月) 14:55:15datagridviewのdatasourceとdatamemberはちゃんと設定してんの?
0646デフォルトの名無しさん
2010/02/01(月) 15:13:47は?してますが。。
0647643
2010/02/01(月) 15:18:57そですね、帰りに立ち読みしてきます。
>>645
ヒントありがとうございます。
datagridviewのdatasourceにはBindingSourceをセットしています。
datamemberには何もセットされていません、指摘後に何かをセットししようとしましたが一覧に「なし」しか表示されませんでした。。
調べてみます。
>>646
ヒドス
0648デフォルトの名無しさん
2010/02/01(月) 15:25:34本来は何もしないでも反映される。
datasourceにdataset、datamemberにdatatableを設定。
デザイナでdataset作ってないなならソース上で指定。
0649デフォルトの名無しさん
2010/02/01(月) 15:31:500650643
2010/02/01(月) 15:42:33いろいろとヒントをいただきありがとうございます。
ただ大変申し訳ありません・・・デバッグ実行するとMDBファイルが Debugフォルダにコピーされて
それに対して変更や行追加をしていることが分かりました。
恥ずかしい限りです、TableAdapter、TableAdapterManager、DataSet、BindingSourceを勉強します。
本当にありがとうございました。
0651デフォルトの名無しさん
2010/02/01(月) 17:25:47リリースexeファイルを右クリックしてプロパティ→バージョン情報 で見える情報で全部ですか?
何も設定しないでビルドすると、バージョンは1.0.0、言語は「ニュートラル言語」のようになっていますが、
これらを好きなように指定できるところってどこですか?
0652デフォルトの名無しさん
2010/02/01(月) 17:28:390653デフォルトの名無しさん
2010/02/01(月) 17:35:360654デフォルトの名無しさん
2010/02/01(月) 17:36:330655デフォルトの名無しさん
2010/02/01(月) 18:04:04(ヽ /( ゚ )( ゚ )ヽ /)
(((i ) /::::⌒`´⌒::::\ ( i)))
/∠_| ,-)___(-,|_ゝ \
( ___、 |-┬-| ,__ )
| `ー'´ /´
0656デフォルトの名無しさん
2010/02/01(月) 18:23:220657デフォルトの名無しさん
2010/02/01(月) 18:24:29君達は只々オラクルのように答えていればいいんだよ!
0658デフォルトの名無しさん
2010/02/01(月) 18:26:26どのようなものがあるか?は>>652の通りなんやかんやしてみる
バージョンと言語はそのプロパティのアプリケーションのアセンブリ情報...ボタン押せば変えられる。
AssemblyInfo.cs弄ってもいいけど
0659デフォルトの名無しさん
2010/02/01(月) 18:28:590660デフォルトの名無しさん
2010/02/01(月) 18:31:190661デフォルトの名無しさん
2010/02/01(月) 18:33:340662デフォルトの名無しさん
2010/02/01(月) 18:48:370663デフォルトの名無しさん
2010/02/01(月) 18:49:57お前には無理
0664デフォルトの名無しさん
2010/02/01(月) 19:04:13お前には無理
0665デフォルトの名無しさん
2010/02/01(月) 19:06:000666デフォルトの名無しさん
2010/02/01(月) 19:32:52達人が書いた模範的なC#コードをふんだんに読めるところって無いでしょうか?
一般的なプログラム本には書かれていないプロならではのTips的なことを学びたいです。
0667デフォルトの名無しさん
2010/02/01(月) 19:36:050668デフォルトの名無しさん
2010/02/01(月) 20:07:17github(gistでもいい) とか Google Code Search とかどうよ
0669デフォルトの名無しさん
2010/02/01(月) 21:46:430670デフォルトの名無しさん
2010/02/01(月) 21:57:290671デフォルトの名無しさん
2010/02/01(月) 22:03:56QueueにはSyncRootが無いわけだが、単にlock(queueの参照)すると何か問題起こるだろうか?
別にobject Syncでも用意すべき?
0672デフォルトの名無しさん
2010/02/01(月) 22:06:27Queue<T>をICollection<T>にキャストしてみ。
SyncRoot使えるから。
0673デフォルトの名無しさん
2010/02/01(月) 22:07:470674デフォルトの名無しさん
2010/02/01(月) 22:08:08lockじゃ何がだめなんですか?
0675デフォルトの名無しさん
2010/02/01(月) 22:10:02コレクションクラスが持ってるlockステートメントでロックするための専用のメンバ。
結局lockで使うことに違いはない。
0676デフォルトの名無しさん
2010/02/01(月) 22:11:37オブジェクトならなんでもいいと思ってたorz
0677デフォルトの名無しさん
2010/02/01(月) 22:13:47スレッドの同期 (C# プログラミング ガイド)
http://msdn.microsoft.com/ja-jp/library/ms173179.aspx
に色々書いてあるけどどうも要領を得ない。
0678デフォルトの名無しさん
2010/02/01(月) 22:19:56そのラッパーの中でロックに使われてるオブジェクトを取得するためにSyncRootがある
.NET2.0以降のジェネリックコレクションではSynchronizedは無くなったので必要なくなった
0679デフォルトの名無しさん
2010/02/01(月) 22:22:310680デフォルトの名無しさん
2010/02/01(月) 22:24:320681デフォルトの名無しさん
2010/02/01(月) 22:26:100682デフォルトの名無しさん
2010/02/01(月) 22:28:320683デフォルトの名無しさん
2010/02/01(月) 22:32:24あるコレクションcと、それをラップしたコレクションw1、w2があるとして、
単純にw1、w2をロックしたのではcへのアクセスは同期されない
そこで、w1、w2のSyncRootがc.SyncRootを返すように実装されていれば、
w1.SyncRoot、w2.SyncRootをロックすればcへのアクセスは同期される
0684デフォルトの名無しさん
2010/02/01(月) 22:36:180685デフォルトの名無しさん
2010/02/01(月) 22:37:010686デフォルトの名無しさん
2010/02/01(月) 22:38:37C#は奥が深いな
なにこれ?
0687デフォルトの名無しさん
2010/02/01(月) 22:40:520688デフォルトの名無しさん
2010/02/01(月) 22:42:44同期したかったら各自で勝手にやれってこと
0689デフォルトの名無しさん
2010/02/01(月) 22:48:41そんな、呆れてないで教えてくださいよ、旦那
コレクションをラップってなーに?
0690デフォルトの名無しさん
2010/02/01(月) 22:52:370691デフォルトの名無しさん
2010/02/01(月) 22:53:28ジェネリックコレクションではそういうことはできなくなってる
コレクションをIList<T>などを通して扱う場合には意味がある(ラッパーが入る余地がある)けど
実際そういうのをロックすることはあんまり無いでしょう
0692デフォルトの名無しさん
2010/02/01(月) 23:03:23勉強中の初心者です。1行目までは一応理解できたつもりでいますが
ジェネリックコレクションではそういうことはできなくなってるというのが、なぜかわかりません。
ジェネリックコレクションではできない原因となる、古いコレクションとの差異をご教授下さい。
よろしくお願いします。
0693デフォルトの名無しさん
2010/02/01(月) 23:08:59だからジェネリックコレクションをインターフェイスを通したりせずに
List<T>やQueue<T>などとして明確に型指定して使う限りはラッパーは紛れ込まない
0694デフォルトの名無しさん
2010/02/01(月) 23:11:29fileSystemWatcherの中でForm上のコントロールを制御しても、動作が保証されないって書いてあって、さてどうしたらいいんでしょう?というのが質問です。
なにか簡単な方法はないでしょうか?
0695デフォルトの名無しさん
2010/02/01(月) 23:11:39ありがとうございました。
0696693
2010/02/01(月) 23:11:44System.Collections.Generic名前空間の主要なジェネリックコレクションに限った話ね
0697デフォルトの名無しさん
2010/02/01(月) 23:13:39補足どもです。勉強になりました。
0698デフォルトの名無しさん
2010/02/01(月) 23:39:25どこにどういう風に書かれてたのか知らないけど
InvokeかBeginInvokeしろとかって意味とは違うの?
0699デフォルトの名無しさん
2010/02/02(火) 00:23:26なんぞこれ.. ret には何が入るのさorz
0700デフォルトの名無しさん
2010/02/02(火) 00:29:000701デフォルトの名無しさん
2010/02/02(火) 00:33:38デザイナで作るとForm継承したクラスにずらずらと書きますがな
0702デフォルトの名無しさん
2010/02/02(火) 01:09:29最初のnullでないのが入る、全部nullなら空文字列
0703デフォルトの名無しさん
2010/02/02(火) 01:10:47ほとんど一字一句変わらないレスをしようとしてたw
0704デフォルトの名無しさん
2010/02/02(火) 02:12:53外観を統一するってレベルなら有りじゃないの
0705デフォルトの名無しさん
2010/02/02(火) 02:23:440706デフォルトの名無しさん
2010/02/02(火) 06:16:32と聞いてたのでダウンロードしてみたんだがEEバージョンユーザーなのに落ちてくるんだが
大丈夫なのか?
0707デフォルトの名無しさん
2010/02/02(火) 06:24:390708デフォルトの名無しさん
2010/02/02(火) 06:28:02http://www.atmarkit.co.jp/fdotnet/insiderseye/20080222sourcecode/sourcecode.html
>Visual Studio 2008(Express Editionは除く)でデバッガを使用する際に、クラス・ライブラリの
>メソッド内部までソースコード・レベルでのトレース(ステップ・イン実行)が可能になるというものだ。
デバックの際にトレースができないだけでExpress Editionでもソースは入手可能なのかね?
このやり方で落ちてくるんだが
http://blogs.yahoo.co.jp/kotomi_eternal/56577556.html
NetMassDownloader -d C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 -o [ローカルの保存先ドライブ]
0709デフォルトの名無しさん
2010/02/02(火) 06:37:510710デフォルトの名無しさん
2010/02/02(火) 06:39:020711デフォルトの名無しさん
2010/02/02(火) 07:07:280712デフォルトの名無しさん
2010/02/02(火) 07:09:45ソース見たらたまたま俺が書いたコードと一字一句違わなかったんだが
0713デフォルトの名無しさん
2010/02/02(火) 08:31:25どうしたらいいでしょうか?
0714デフォルトの名無しさん
2010/02/02(火) 08:40:530715デフォルトの名無しさん
2010/02/02(火) 08:41:20といいたいが、もっと詳しく書かないとだれも質問を理解できないと思うよ
0716デフォルトの名無しさん
2010/02/02(火) 08:42:06>>474のような感じで
0717694
2010/02/02(火) 08:55:560718デフォルトの名無しさん
2010/02/02(火) 10:31:56順番にピクチャーボックスに表示するプログラムを作ろうとしてい
ます。
ScrolBar1.Maximum = files.Count;
で画像の数をセットし
private void ScrolBar1_Scroll(object sender, ScrollEventArgs e)
{
PictureBox1.Image = Image.FromFile(files[ScrolBar1.Value].ToString());
}
でスクロールされる度に画像を表示したいのですが、ScrolBar1.Value
が常に0になってしまいます。どこか記述がおかしいのでしょうか?
0719デフォルトの名無しさん
2010/02/02(火) 10:47:11スクロールバーの代わりにトラックバーつかっとけ
そもそもスクロールバーはそういう用途に使うもんじゃない
0720デフォルトの名無しさん
2010/02/02(火) 11:06:120721デフォルトの名無しさん
2010/02/02(火) 11:17:23深く考えずにスクロールバーを選んだのですが、トラックバー
に変更してみます。
>>720
files.countは3で、ScrolBar1.Maximumにも3がセットされてい
るのですがダメなんです。
0722デフォルトの名無しさん
2010/02/02(火) 11:28:46LargeChangeの値がMaximum以上だとそうなるね
0723デフォルトの名無しさん
2010/02/02(火) 11:28:590724デフォルトの名無しさん
2010/02/02(火) 11:35:55http://gurizuri0505.halfmoon.jp/develop/csharp/netframework_scrollbar
0725デフォルトの名無しさん
2010/02/02(火) 11:37:47http://mag.autumn.org/Content.modf?id=20080920015329
0726デフォルトの名無しさん
2010/02/02(火) 12:03:15トラックバーに変えてみたりしていました。
LargeChangeの値を1にしたら上手く動作させることができました。
ありがとうございました。
0727デフォルトの名無しさん
2010/02/02(火) 14:42:34そうなるとVC++で書くとかになるんでしょうか?
0728デフォルトの名無しさん
2010/02/02(火) 14:44:25程度問題だからコストとつき合わせて考えろ。
0729デフォルトの名無しさん
2010/02/02(火) 14:46:52難読化ですか
確か無料版には付いてこない機能ですよね
外部の物もあるようですが無料は.netの対応バージョンが古かったりと
そういえばVC++も無料版だとMFCが付いてこないとか聞いたのですが
これが無いとwindowsの画面を作るのに支障があるんでしょうか?
0730デフォルトの名無しさん
2010/02/02(火) 15:00:34って気になってしまう…
0731デフォルトの名無しさん
2010/02/02(火) 15:04:06初心者スレで見下すのはどうかと
0732デフォルトの名無しさん
2010/02/02(火) 15:08:10ソースパクられるの心配とかならアホだぞ。
0733デフォルトの名無しさん
2010/02/02(火) 15:12:05絶対に君のソースを盗み見しようという人は現れないから安心しなさい
C言語だろうがJAVAだろうが、労力次第では解読されるけど
低能制作者・作、というのは最強の対策だからね
0734デフォルトの名無しさん
2010/02/02(火) 15:13:390735デフォルトの名無しさん
2010/02/02(火) 15:15:46やってみれば本人が一番実感できるようになるんじゃね?
別に初心者が難読化しちゃいけないわけじゃないし
0736デフォルトの名無しさん
2010/02/02(火) 15:16:430737デフォルトの名無しさん
2010/02/02(火) 15:26:32手始めにc#に手を出してたのですがリバースエンジニアリングの話もあったりしたので
どうせならC++でと思ったもので
0738デフォルトの名無しさん
2010/02/02(火) 15:27:52とりあえず、C++/CLIはやめといたほうがいいな。
0739デフォルトの名無しさん
2010/02/02(火) 15:36:490740デフォルトの名無しさん
2010/02/02(火) 15:38:58客向けにシステム一から組む人なんかは汎用的じゃないから心配いらんだろうけど。
0741デフォルトの名無しさん
2010/02/02(火) 15:39:00とりあえずageのは最初の質問だけにしろ。
0742デフォルトの名無しさん
2010/02/02(火) 15:42:550743デフォルトの名無しさん
2010/02/02(火) 15:59:19スレッドのurlを作りたいんですが、何かいい方法ありますか?
例えば
http://gimpo.2ch.net/namazuplus/subject.txt + 1265082300
↓
http://gimpo.2ch.net/test/read.cgi/namazuplus/1265082300/
よろしくお願いします。
0744デフォルトの名無しさん
2010/02/02(火) 16:01:59正規表現にかけて
http://gimpo.2ch.net/namazuplus/dat/1265082300.dat
にすればいいよ
0745デフォルトの名無しさん
2010/02/02(火) 16:03:23どっちにしろURLのパターンが決まってるなら正規表現かけたほうが早い
0746デフォルトの名無しさん
2010/02/02(火) 16:06:27今C#関連の本を読んでいて、Dispose関連の記述でどうもよくわからなかったんですが
マネージドリソースというのはCLRが管理するメモリ領域という理解で良いのでしょうか?
それから、アンマネージドリソースも、CLRの手が届かない領域…?とどうも理解が及びません。
このような素人用の解説をどなたかおねがいできませんでしょうか?よろしくお願いします。
0747デフォルトの名無しさん
2010/02/02(火) 16:25:45DragDropEffects dde = textbox1.DoDragDrop(textbox1, DragDropEffects.Move);
をtextbox1_MouseMoveに記述しているのですが、思うように動かす
ことができません。MouseDownで今の座標を取得してMouseUpで場所
を変更したいと思っています。
上記のコードの直後にddeを確認するとNoneが入ってしまっています。
どのように修正したらよいでしょうか?
0748デフォルトの名無しさん
2010/02/02(火) 17:03:09http://dobon.net/vb/dotnet/form/moveform.html
0749デフォルトの名無しさん
2010/02/02(火) 17:05:56http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34497&forum=7
0751デフォルトの名無しさん
2010/02/02(火) 18:21:20別にメモリやOSのハンドルなどに限らず,使い終わったらGC任せにしてないで
すぐに返さないと問題が発生するようなものの総称
仮にマネージコードだけで完結してるとしてもそういう状況はありうる
0752デフォルトの名無しさん
2010/02/02(火) 18:21:55ありがとうございました。このやり方でもできるんですね。
あとはPicturebox内でだけ動かせるような制限を考えなければ
0753デフォルトの名無しさん
2010/02/02(火) 19:27:180754デフォルトの名無しさん
2010/02/02(火) 21:44:17e.Graphics.PageUnit = GraphicsUnit.Millimeter;
を使って位置指定をミリメートルに設定したのはいいんですけど
.DrawLineで線を引くときに1ミリより細い線を引く方法が分かりません。。。
教えてください。
よろしくお願いします。
0755デフォルトの名無しさん
2010/02/02(火) 21:51:290756693
2010/02/02(火) 21:52:20普通に少数で指定すればいいんじゃないの
0757デフォルトの名無しさん
2010/02/02(火) 21:59:22普通にpenそのもの幅を設定するだけだと思うけど
0758デフォルトの名無しさん
2010/02/02(火) 22:00:33一瞬も表示しないウインドウを作りたいのですがどのようにすればいいでしょうか?
0759デフォルトの名無しさん
2010/02/02(火) 22:02:19浮動小数点(floatかdoubleかしらんけど)で指定可能なDrawLineもあるってことじゃないの?
そりゃGraphicsUnit.Millimeterで基準をミリメートルにした上でintで与えてたらそれ以下は
引けないわな
0760754
2010/02/02(火) 22:04:19で、0.5を1/2って入力したらいけましたw
ちょっと悲しいけどよかったです。
0761デフォルトの名無しさん
2010/02/02(火) 22:06:28Penでもfloat指定できるし、DrawLineも座標系にfloatあったぞ
0762デフォルトの名無しさん
2010/02/02(火) 22:06:56そもそもそうでなきゃ“Pen”がペンのメタファになってないじゃないか。
何をいってるんだよ本当。
0763デフォルトの名無しさん
2010/02/02(火) 22:08:58それでいけたんなら0になってんだろ
0764デフォルトの名無しさん
2010/02/02(火) 22:09:160765デフォルトの名無しさん
2010/02/02(火) 22:10:571.0とかそのまま指定するとdoubleと認識するようで1.0Fとかしないと
IDEがうるさいよ
0766デフォルトの名無しさん
2010/02/02(火) 22:12:050767デフォルトの名無しさん
2010/02/02(火) 22:12:160.5はdoubleだ
1/2はintだ
0768デフォルトの名無しさん
2010/02/02(火) 22:12:24http://uproda.2ch-library.com/210262X94/lib210262.png
0769デフォルトの名無しさん
2010/02/02(火) 22:12:270770754
2010/02/02(火) 22:13:34うわあああああああああああああ
Fつけたらいけました。
ありがとうございました。
他の人もありがとうございました。
VB6の感覚でやってたらダメだな・・・
0771デフォルトの名無しさん
2010/02/02(火) 22:13:52あなたはうるさいですね。。。
0772デフォルトの名無しさん
2010/02/02(火) 22:14:470773デフォルトの名無しさん
2010/02/02(火) 22:15:070774デフォルトの名無しさん
2010/02/02(火) 22:18:290775デフォルトの名無しさん
2010/02/02(火) 22:18:590776デフォルトの名無しさん
2010/02/02(火) 22:19:26というかエラーメッセージ読みなよ
キャストしないと駄目な際のメッセージと同じ警告でてるでしょうに
0777デフォルトの名無しさん
2010/02/02(火) 22:19:29ていうかまずエラーの中身確認しようよ
0778754
2010/02/02(火) 22:19:29こんなことで5時間は悩んだ気がする・・・
2ちゃんがあってよかったw
ふぅ
0779デフォルトの名無しさん
2010/02/02(火) 22:20:310780デフォルトの名無しさん
2010/02/02(火) 22:20:430781デフォルトの名無しさん
2010/02/02(火) 22:26:42レンダリングや印刷のところになるとfloatがでてくるのはDirectXなどのラッパーだからなのかね?
0782デフォルトの名無しさん
2010/02/02(火) 22:27:420783デフォルトの名無しさん
2010/02/02(火) 22:29:02ほぼDirect3D剥き出しなWPFでは逆にdoubleで統一されてる
0784デフォルトの名無しさん
2010/02/02(火) 22:29:55ManagedDirectXの事か?
0786デフォルトの名無しさん
2010/02/02(火) 22:33:320787デフォルトの名無しさん
2010/02/02(火) 22:34:440788デフォルトの名無しさん
2010/02/02(火) 22:50:58使わないともったいないぜ
0789デフォルトの名無しさん
2010/02/02(火) 22:55:02おもしろいけど、あれはさらにソースコードつけて配布してるような感じになってない?
Listをバインドすれば勝手にTreeViewに反映されるとか
0790デフォルトの名無しさん
2010/02/02(火) 22:58:50>あれはさらにソースコードつけて配布してるような感じになってない?
これの意味がわからん。
0791デフォルトの名無しさん
2010/02/02(火) 23:11:560792デフォルトの名無しさん
2010/02/02(火) 23:12:280793デフォルトの名無しさん
2010/02/02(火) 23:20:45そう言う人達にはWPFを使うのは辛いと思う
0794デフォルトの名無しさん
2010/02/02(火) 23:23:00Designer.csがXMLになっただけ
0795758
2010/02/02(火) 23:24:510796デフォルトの名無しさん
2010/02/02(火) 23:26:090797デフォルトの名無しさん
2010/02/02(火) 23:28:100798デフォルトの名無しさん
2010/02/02(火) 23:28:34MEFあたりの技術は知らない(わからない)人が更に多そう
0799デフォルトの名無しさん
2010/02/02(火) 23:29:440800デフォルトの名無しさん
2010/02/02(火) 23:32:130801デフォルトの名無しさん
2010/02/02(火) 23:32:13MEFってなに?
ぐぐったらメトロイーサネット・・・とかでてくるしw
0802デフォルトの名無しさん
2010/02/02(火) 23:32:57Managed Extensibility Framework
0803デフォルトの名無しさん
2010/02/02(火) 23:35:070804デフォルトの名無しさん
2010/02/02(火) 23:37:02そういう名前レベルの互換性ないよね
まるで俺が設計するクラスの名前のようだ
0805デフォルトの名無しさん
2010/02/02(火) 23:40:21Textじゃ何を指してるか曖昧すぎてわからないからね
0806デフォルトの名無しさん
2010/02/02(火) 23:43:470807デフォルトの名無しさん
2010/02/02(火) 23:45:000808デフォルトの名無しさん
2010/02/02(火) 23:48:04MSとしては何でもやれるように汎用性を持たせたかったんだろうけど
何でもやれる必要性がある人って少ないのよね。
特に移行段階では。
0809デフォルトの名無しさん
2010/02/02(火) 23:58:00ありがとう
面白そうです
勉強中の身でためになりました
あとDIコンテナというのもあるですね
0810デフォルトの名無しさん
2010/02/03(水) 00:22:040811デフォルトの名無しさん
2010/02/03(水) 00:43:22全てのクラスから参照できるよう全てのクラスの外で宣言すべきだと思う?
0812デフォルトの名無しさん
2010/02/03(水) 00:51:24必要な範囲から見えればそれでいいじゃねえか
0813デフォルトの名無しさん
2010/02/03(水) 00:52:58クラスいっぱいでよくわからん。MSDN見ても要領を得ない
0814デフォルトの名無しさん
2010/02/03(水) 00:54:230815デフォルトの名無しさん
2010/02/03(水) 01:26:280816デフォルトの名無しさん
2010/02/03(水) 03:07:23>>814
共通のemunを使うのはとあるクラスの中とメイン関数の中の二カ所。
これだったら全てのクラス外で宣言しないといかんかなぁ、と思って。
0817デフォルトの名無しさん
2010/02/03(水) 06:02:510818デフォルトの名無しさん
2010/02/03(水) 06:23:385万行くらいだけどファイル管理も楽だよ
0819デフォルトの名無しさん
2010/02/03(水) 08:38:060820デフォルトの名無しさん
2010/02/03(水) 09:39:300821デフォルトの名無しさん
2010/02/03(水) 09:53:44外から内部型にアクセスさせるのは原則ガイドライン違反だよ
0822デフォルトの名無しさん
2010/02/03(水) 10:03:42するなら最初からそのクラスの外側に並べて書けばいいわけだし。
0823デフォルトの名無しさん
2010/02/03(水) 11:52:08あれJaneに次スレ候補ボタンなんかあったっけ?
0824デフォルトの名無しさん
2010/02/03(水) 12:03:05想定されるライブラリ群)で同じ名前の型が存在するのはガイドライン違反だ
結局わかりやすくて区別しやすい名前を付けろということ
0825デフォルトの名無しさん
2010/02/03(水) 12:20:05System.Drawing.Font
SlimDX.Direct3D9.Font
普通にかぶってますがなにかー
というかほぼ同時に使うものだちゅうねんめどいわー
0826デフォルトの名無しさん
2010/02/03(水) 12:20:48基本的なクラス類が重複する場合はこまるよね
FormとMDX両方使いたいときに座標関連(Pointだっけ?)が両方で大量に定義されていて大変だったな
上のほうで座標が何でdoubleなのかって書いてあるけど答えはfloatだと精度不足だからです
昔からプログラムやってる人にはおなじみですが
float a = 0.0F;
for(int i=0;i<10;i++)
{
a += 0.1F;
richTextBox1.AppendText(a.ToString()+"\n");
}
で実行結果は
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8000001
0.9000001
1
0827デフォルトの名無しさん
2010/02/03(水) 12:21:28= http://gimpo.2ch.net/namazuplus/
stTarget.Replace("2ch.net/", "2ch.net/test/read.cgi/");
MessageBox.Show(stTarget);
結果: http://gimpo.2ch.net/namazuplus/
置換されてません どうすればいいでしょうか?
よろしくお願いします
0828デフォルトの名無しさん
2010/02/03(水) 12:24:03置換結果は戻り値です
string result = stTarget.Replace("2ch.net/", "2ch.net/test/read.cgi/");
MessageBox.Show(result);
2chブラウザ作ってるの?
0830デフォルトの名無しさん
2010/02/03(水) 12:31:04なんでdoubleかじゃなくてなんでGDI+でfloatなのかって話だったような
0831デフォルトの名無しさん
2010/02/03(水) 12:32:290.1は2進数では表現できないからね
結果の最後の1も1.0じゃないし…
(a==1.0F).toString()がfalseになる
0832デフォルトの名無しさん
2010/02/03(水) 12:34:29最近そっち方面やってないので忘れちゃったけど誤差吸収するための
なにかあったよね・・シグマじゃないや・・・
0833デフォルトの名無しさん
2010/02/03(水) 12:37:06そうだったのか orz
斜め読みすぎ
0834デフォルトの名無しさん
2010/02/03(水) 12:43:11EPSILONか
0835デフォルトの名無しさん
2010/02/03(水) 12:55:37誤差がどうとか、アホとしか言いようがない。
計算誤差が嫌ならdecimal型を使いなさい。
0836デフォルトの名無しさん
2010/02/03(水) 12:57:08俺も作ったけどデータ取ってきたり表示したりする部分は
どうにかなるが最後まで決まらないのがUIなんだよな・・
よく見るタイプ、ガジェットタイプ、proxyタイプ全部作ったけど
いまだに納得いくのができない
0837デフォルトの名無しさん
2010/02/03(水) 12:58:20その辺は許容誤差と計算速度のトレードオフでは?
0838デフォルトの名無しさん
2010/02/03(水) 12:59:38UI以外の部分、公開して
0839デフォルトの名無しさん
2010/02/03(水) 13:01:100840デフォルトの名無しさん
2010/02/03(水) 13:02:34WPFではコントロールのレイアウトやアニメーションの計算なども
全て一貫して小数でやってるから精度が必要
0841デフォルトの名無しさん
2010/02/03(水) 13:03:00がんばれ
0842デフォルトの名無しさん
2010/02/03(水) 13:06:24初歩もいろいろあるからなあ
他言語で開発経験があってC#という道具の使い方をマスターしてない初歩な人か
多言語すら経験のないC#が処女言語な初歩じゃあ偉い違う
俺は前者だけど2chとのやり取りについてまとめたサイトがあることを知らないで
やったのでView部分は別にして内部の処理は1週間くらい
0843デフォルトの名無しさん
2010/02/03(水) 13:08:43うん。がんばる。。
0844デフォルトの名無しさん
2010/02/03(水) 13:09:020845デフォルトの名無しさん
2010/02/03(水) 13:09:44普通に
0846デフォルトの名無しさん
2010/02/03(水) 13:10:40HTML、CSS、Javascript、正規表現とwebに関する知識もいる
こいつらとIEコンポーネントの癖も知らないといけない
proxyやるならIEとFireFoxで動かないスクリプトの書き方があるとかも
理解してないと問題の切り分けすらできないけどね
0847デフォルトの名無しさん
2010/02/03(水) 13:12:45単精度なんてその程度。仮数部23bitsだと10進数で小数点以下6.9桁分の情報しかない
ttp://www.google.co.jp/search?hl=ja&q=log+2^23&btnG=%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=
>>831
「有限桁で」という文言を入れよう
0848デフォルトの名無しさん
2010/02/03(水) 13:14:130849デフォルトの名無しさん
2010/02/03(水) 14:57:45WebBrowserコントロールでブラウザ機能を内蔵したプログラムを作成しているのですが、
「履歴に残さない」「キャッシュからリードしない」という指定を付けてブラウジングする方法を探しています。
検索して探した結果、
.Net2.0の時点では、navigate2メソッドにて引数を渡すことで実現できたように書いて有りますが、
http://capsulecorp.studio-web.net/tora/cs/mshtml/WebBrowser.html
現行のVisual C# 2008(.Net3.5)ではnavigate2メソッドは無いようです。
同じようなことを実現剃る方法ってありますか?
0850デフォルトの名無しさん
2010/02/03(水) 15:27:54同じようにやれば
navigate2メソッド
使える
0851デフォルトの名無しさん
2010/02/03(水) 15:33:45{ を入力すると対応する } を自動で挿入してくれる機能は設定にありますか?
コード入力時に { を入力すると } を入力するまでずっとエラーメッセージがでるのがうざいです。
eclipse だと { や ( ” などを入力すると自動で閉じる側も入力されるので、同様な操作にしたいのです。
0852デフォルトの名無しさん
2010/02/03(水) 15:44:02{を書いた時点で}も書けばいいじゃん
{} って書いて→ { 間に書き足す }
0853デフォルトの名無しさん
2010/02/03(水) 15:46:500854デフォルトの名無しさん
2010/02/03(水) 15:51:57つかってみる
0855デフォルトの名無しさん
2010/02/03(水) 18:13:50自動でブロック作ってくれるじゃん
メソッド定義や配列などの初期化なんかそこまで頻繁に使うものじゃなし
0856デフォルトの名無しさん
2010/02/03(水) 19:44:46そのユーザーコントロールから、メインのプログレスバーを利用したい場合は、どうしたらいいのでしょうか?
0857デフォルトの名無しさん
2010/02/03(水) 19:57:42メインのプログレスバーのインスタンスをユーザーコントロールに渡せばいい。
0858デフォルトの名無しさん
2010/02/03(水) 20:00:52ありがとうございます。早速ためしてみます。
0859デフォルトの名無しさん
2010/02/03(水) 21:55:55List<string>型の配列は既にソートがかけられているものとします。
【方法1】
.RemoveAll() にdelegate関数を引数として渡して特定の文字と一致する項目を削除させる。
【方法2】
.BinarySearch() で特手の文字と一致する配列のインデックス番号を調べ、
.RemoveAt() でそのインデックス番号の配列を削除する。
とではどちらの方がより高速に処理できますか?
0860デフォルトの名無しさん
2010/02/03(水) 22:01:090861デフォルトの名無しさん
2010/02/03(水) 22:28:08でもマジレスすると>>859みたいなところがボトルネックになることはまず無いので気にしないのが正解
0862デフォルトの名無しさん
2010/02/03(水) 22:40:020863デフォルトの名無しさん
2010/02/03(水) 22:53:05チューニングに浪費した時間プライスレスですね分かります
0864デフォルトの名無しさん
2010/02/03(水) 23:02:05全く意味がない
0865デフォルトの名無しさん
2010/02/03(水) 23:24:480866デフォルトの名無しさん
2010/02/03(水) 23:38:530867デフォルトの名無しさん
2010/02/03(水) 23:42:20#名前、 性別、 年齢、 毛色数
たま、 ♂、 5、 2
ミーちゃん、 ♀、 2、 3
田子作、 ♂、 13、 1
・
・
・
・
こんな感じでざっと1000匹に対応して1000個のクラスオブジェクトを作るとする。
上記の属性はテキストファイルにでも保存するとして、問題はそれを読み込んでヌコクラスの
オブジェクトを作る際なんだけどみんなならどうやる?
Main()メソッドの中でテキストから読み込んでNukoクラスのオブジェクトをfor文で回して作る?
それともテキストを読み込んでNukoクラスを1000個生成するのに専用のクラスを別途作成する?
どういう流儀でやるべきか、そこんところがよう分からんのよ(´・ω・`)
0868デフォルトの名無しさん
2010/02/03(水) 23:48:47別の専用のクラスを作るとしてもそのクラスの中でやることは同じだろ
アプリケーションの規模や、その処理をどう使うかなどによるので一概には言えない
0869デフォルトの名無しさん
2010/02/03(水) 23:50:100870デフォルトの名無しさん
2010/02/03(水) 23:53:22そう。画像というかサムネールなんだけどね。バイナリでバーっとファイルに落とすのも今ひとつだし、なにか便利な物があるのかなーと思って。
0871デフォルトの名無しさん
2010/02/03(水) 23:53:440872デフォルトの名無しさん
2010/02/03(水) 23:53:55メソッドの外に戻ったときそれぞれの値は変更されていますか?それとも渡したときのままですか?
0873デフォルトの名無しさん
2010/02/03(水) 23:54:34前者変わらない、後者変わる
0874デフォルトの名無しさん
2010/02/03(水) 23:54:51何したいのかも分からんのよ(´・ω・`)
0875デフォルトの名無しさん
2010/02/03(水) 23:55:190876デフォルトの名無しさん
2010/02/03(水) 23:55:290877デフォルトの名無しさん
2010/02/03(水) 23:56:200878デフォルトの名無しさん
2010/02/03(水) 23:57:49それをCSV形式用のクラスやXML形式用のクラスなどが継承するようにすると
いろんなフォーマットに対応したりできる
そういうのが必要なければ読み込みメソッド1個で十分
結局使い方による
0879デフォルトの名無しさん
2010/02/03(水) 23:57:51別のクラスつくってそこで読み込みメソッドを新たに作る?
読み込んだあと1000個からなるNukoクラスの配列を作って
実際に処理するところにコピーするわけ?
うーむ・・・
0880デフォルトの名無しさん
2010/02/03(水) 23:58:38やーだお(´・ω・`)
0881デフォルトの名無しさん
2010/02/03(水) 23:58:50少なくとも使い回ししないのならクラス作る意味が無い
メソッドで十分
0882デフォルトの名無しさん
2010/02/04(木) 00:01:370883デフォルトの名無しさん
2010/02/04(木) 00:03:03なるほど・・・
Main()メソッドの隣に読み込み専用のReadText()メソッドでもstaticで作ってそこで読ませると。
ReadText()メソッドは引数としてNukoの配列を参照渡ししてそいつに読み込んで生成したオブジェクトを
返させるわけね、こんな感じに↓
static void ReadText( Nuko [] nukkonuko )
{
・・・・
}
0884デフォルトの名無しさん
2010/02/04(木) 00:04:15練習中に流儀とか気にしなくていいから心の赴くままにやりなさいよ
0885デフォルトの名無しさん
2010/02/04(木) 00:04:49DataTable.ReadXml(
for(
new nuko( row[ i ] );
くらいで十分じゃないか? 確かこんなのがあったよね。
0886デフォルトの名無しさん
2010/02/04(木) 00:04:56{
・・・・
}
それならこっちの方がいい
読み込む前に配列の要素数とか決められないだろ
0887デフォルトの名無しさん
2010/02/04(木) 00:06:41> 読み込む前に配列の要素数とか決められないだろ
そっか、だったら param を追加すべきだったか(´・ω・`)
static void ReadText( param Nuko [] nukkonuko )
{
・・・・
}
0888デフォルトの名無しさん
2010/02/04(木) 00:08:29using(FileStream stream = File.OpenRead("nukonuko.txt")){
Xmlserializer serializer = new XmlSerializer(typeof(Nuko));
return (Nuko[])serializer.Deserialize(stream);
}
}(FileNotFoundException){ return new Nuko[0]; }
0889デフォルトの名無しさん
2010/02/04(木) 00:09:060890デフォルトの名無しさん
2010/02/04(木) 00:09:25おい
0891デフォルトの名無しさん
2010/02/04(木) 00:09:59(´・ω・`) ?
0892デフォルトの名無しさん
2010/02/04(木) 00:10:280893デフォルトの名無しさん
2010/02/04(木) 00:11:17漢なら10000でもCSV
0894デフォルトの名無しさん
2010/02/04(木) 00:11:42もしネタじゃなくて本気で言ってるんだったら、当分クラスなんか忘れて今すぐ超入門書に戻りなさい
0895デフォルトの名無しさん
2010/02/04(木) 00:12:09おい
0896デフォルトの名無しさん
2010/02/04(木) 00:12:230897デフォルトの名無しさん
2010/02/04(木) 00:13:23やーだお(´・ω・`)
0898デフォルトの名無しさん
2010/02/04(木) 00:13:58シリアライズ用のクラスを別途用意することになったりして扱いにくい
0899デフォルトの名無しさん
2010/02/04(木) 00:14:18クソして寝ろ
0900デフォルトの名無しさん
2010/02/04(木) 00:20:190901デフォルトの名無しさん
2010/02/04(木) 00:21:34> intは値型だがint[]は参照型だから変わるよ
なんとorz
それ知らないでプログラム組んだら偉いことになりますね
参照型はref/outの接頭語を付けて受け渡しすることを厳守する、という決まりを貫かなかったのはなぜでしょう?
0902デフォルトの名無しさん
2010/02/04(木) 00:24:140903デフォルトの名無しさん
2010/02/04(木) 00:25:430904デフォルトの名無しさん
2010/02/04(木) 00:26:130905デフォルトの名無しさん
2010/02/04(木) 00:26:330906デフォルトの名無しさん
2010/02/04(木) 00:28:280907デフォルトの名無しさん
2010/02/04(木) 00:29:270908デフォルトの名無しさん
2010/02/04(木) 00:30:58参照の値渡し
参照の参照渡し 要ref/out
値型の値渡し
値型の参照渡し 要ref/out
この程度のことを何度も何度もいい加減ウザイんだが
0909デフォルトの名無しさん
2010/02/04(木) 00:33:19人聞きの悪い。
0910デフォルトの名無しさん
2010/02/04(木) 00:37:50ListView.DrawSubItem イベントハンドラにおいて、非選択状態・選択状態・選択状態(非アクティブ)の
三つの状態を判定して、前景色と背景色を変更して描画しています
それと同時に、項目ごとに水平方向の配置を StringAlignment.Far などと設定しているんですが
例えば StringAlignment.Far だと右側にベターっとひっつきます
オーナードローでなくお任せの場合や、DrawString ではなく DrawText で表示する場合は
テキストの右側に少し余白がいい感じで表示されます
この余白を DrawString でも表示したいんですが、どうしたら良いでしょうか?
0911デフォルトの名無しさん
2010/02/04(木) 00:41:380912デフォルトの名無しさん
2010/02/04(木) 00:44:01小さなプログラムを作って練習していますが、
新しく作成するたびにいちいちプロジェクトを作成するのは面倒です。
そこでコマンドプロンプトからコンパイラを呼び出そうとしましたが、
それがどこにあるかわかりませんでした。
皆さんは例えばhello worldレベルの小ささのプログラムを作成するとき、
いちいtプロジェクトを作成して対処していますか?
それともIDEを使わずに対処していますか?
0913デフォルトの名無しさん
2010/02/04(木) 00:45:380914デフォルトの名無しさん
2010/02/04(木) 00:45:470915デフォルトの名無しさん
2010/02/04(木) 00:49:050916デフォルトの名無しさん
2010/02/04(木) 00:51:27知らんけどStringFormat.MeasureTrailingSpaces
0917デフォルトの名無しさん
2010/02/04(木) 00:53:020918デフォルトの名無しさん
2010/02/04(木) 00:54:530919デフォルトの名無しさん
2010/02/04(木) 00:55:500920デフォルトの名無しさん
2010/02/04(木) 01:02:360921デフォルトの名無しさん
2010/02/04(木) 01:04:33ありがとうございました
0922デフォルトの名無しさん
2010/02/04(木) 01:09:460923デフォルトの名無しさん
2010/02/04(木) 01:11:150924デフォルトの名無しさん
2010/02/04(木) 01:11:460925910
2010/02/04(木) 01:17:59ありがとうございます
ちょっとやってみましたが変化なしです
ただ、正しく理解していないせいかもしれませんので
もうちょっと調べてみます
0926デフォルトの名無しさん
2010/02/04(木) 01:39:230927デフォルトの名無しさん
2010/02/04(木) 01:44:39trueにしたときはならないのね・・・
0928デフォルトの名無しさん
2010/02/04(木) 01:49:300929910
2010/02/04(木) 01:53:33報告しようとしたら既にレスが
ご指摘の通り、右寄せと左寄せの項目に関しては
Rectange の Reft と Left の値を調整して DrawString するようにして
希望する動作を得ました
ありがとうございました
0930デフォルトの名無しさん
2010/02/04(木) 02:48:00調べてみたらデザイナで一つのコントロールのEnableをfalseにして
それをコピーしてたからEnableがtrueなのとfalseなのがまざってたよ・・・
ありがとう
0931デフォルトの名無しさん
2010/02/04(木) 03:39:45参照の値渡し → int[]
参照の参照渡し 要ref/out → ???
値型の値渡し → int
値型の参照渡し 要ref/out → ref/out int
上から2番目の用途って何ですか?
0932デフォルトの名無しさん
2010/02/04(木) 03:52:23var x2 = new int[] { 1,2,3 }; test2(ref x2);
void test1(int[] d) { d = new int[]{ 3,4,5 }; }
void test2(ref int[] d) { d = new int[]{ 3,4,5 }; }
0933デフォルトの名無しさん
2010/02/04(木) 04:01:11> void test1(int[] d) { d = new int[]{ 3,4,5 }; }
> void test2(ref int[] d) { d = new int[]{ 3,4,5 }; }
どっちも結果は同じですか?
0934デフォルトの名無しさん
2010/02/04(木) 04:05:410935デフォルトの名無しさん
2010/02/04(木) 04:08:22値渡しと参照渡しの区別が付くようになったら分かるよ。
0936デフォルトの名無しさん
2010/02/04(木) 04:18:40void test1(int[] d) { d = { 3,4,5 }; }
void test2(ref int[] d) { d = { 3,4,5 }; }
こうしたらどっちも結果は同じじゃね?
0937デフォルトの名無しさん
2010/02/04(木) 04:37:56お前もう死ね
0938デフォルトの名無しさん
2010/02/04(木) 09:50:02現在のアプリケーションの更新方法は、
・アプリケーションが実行されるたびに更新バージョンがないか確認する。
・確認するのはアプリケーション開始後
にしています。
ここで、次のようなことは可能でしょうか?もし可能でしたらどのようにすればよろしいでしょうか。
・アプリケーションの起動時に更新バージョンがないか確認する。
・ただし、更新バージョンがないか確認する通信中のステータスを表す小窓は表示しない。(毎回この小窓が表示されるのが煩わしいと思うユーザーがいるため)
・更新バージョンがあるときは、メインフォームのステータスバーに「新しいバージョンがあります。再起動してください。」と表示させる。
お手数ですが、よろしくお願いいたします。
0939デフォルトの名無しさん
2010/02/04(木) 10:08:17いや、それを自動でやってもらうためのClickOnceなんだが……。
毎回起動のたびに配信サーバーにバージョンチェックしに行ってるだろ?
0940デフォルトの名無しさん
2010/02/04(木) 10:12:17バージョンチェックしに行ってますが…何か?
0941デフォルトの名無しさん
2010/02/04(木) 10:19:100942デフォルトの名無しさん
2010/02/04(木) 10:19:11移動できるプログラムを作ろうとしています。
以前教えてもらったサイトを参考に下記のようにコードを書きました。
Point mouseDownPoint = Point.Empty;
private void PictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
Rectangle moveRect = new Rectangle(0,0,240,320);
//ドラッグとする移動範囲を超えたか調べる
if (moveRect.Contains(e.X, e.Y))
{
PictureBox1.Location = new Point(PictureBox1.Location.X + e.X - mouseDownPoint.X, PictureBox1.Location.Y + e.Y - mouseDownPoint.Y);
}
}
}
_MouseDown()でx軸y軸を取得、Rectangleで親のサイズを指定して動きを
限定したかったのですが、親サイズから出て(隠れて)しまいます。
コードをどのように修正すれっば良いのでしょうか?
0943デフォルトの名無しさん
2010/02/04(木) 10:27:100944デフォルトの名無しさん
2010/02/04(木) 10:31:51>>938です(※>>940の人は別人です)。
わがままかもしれませんが、
・起動時に裏で配信サーバーにバージョンチェックをしに行く。
・その際に通信ウィンドウを出さない(毎回表示されるとユーザーがいい印象を持たないかもしれないため)。
また、その時点では最新バージョンへの更新を行わない。
・新しいバージョンがあればフォームのステータスバーに
「最新のバージョンがあるので再起動してください。」と表示させる。
・再起動時に自動で最新バージョンを取得する。
という流れを描いているのですが、無理でしょうか…。
0945デフォルトの名無しさん
2010/02/04(木) 10:37:310946デフォルトの名無しさん
2010/02/04(木) 10:58:42つーかそんなせんでもいい行儀の悪いことをわざわざすんな。
# 通信ウィンドウを表示しないとか。
# 表示するのがClickOnceという仕組み。
# 元々サーバー上にあるソフトウェアをオフラインにダウンロードして実行するという形式だから
前のバージョンからの更新分の表示については、こんな方法はどうだ?
・更新履歴の情報をリソースに蓄えておく
・アプリケーション設定ファイルに前回起動した自分自身のバージョンを記録しておく
・前回起動したバージョンと今のバージョンが違う場合には、差分範囲の更新履歴を起動時に表示する
0947デフォルトの名無しさん
2010/02/04(木) 10:58:590948デフォルトの名無しさん
2010/02/04(木) 11:07:10picturebox2(子)
と仮定すると
picturebox2.Parent.Locationとか
picturebox2.Parent.ClientRectangleとか
したほうがいいかもね
picturebox2の親がなんであろうがOKになる
ただしControls.Addしておかないと親が居ないのでこけるけど
0949デフォルトの名無しさん
2010/02/04(木) 11:34:24親の表示範囲(ClientRectangle)から子を出したくない場合は
子の左上頂点が親の範囲表示範囲内にいるかどうか判定して
居なければその範囲内に戻せばいいだけ
まず左上付近の判定
多分左上が(0,0)はいじれないと思うので
>>948の例だとpicturebox2.Topとpicturebox2.Leftがマイナスになってれば0に戻す
//左上処理
if(picturebox2.Left < 0) picturebox2.Location = new Point(0,picturebox2.Top);
if(picturebox2.Top < 0) picturebox2.Location = new Point(picturebox2.Left,0);
//右下の処理
int AW = picturebox2.Parent.Width - picturebox2.Width;//もしかしたら幅なので座標系として見る場合は-1いるかも
int AH = picturebox2.Parent.Height - picturebox2.Height;//もしかしたら高さなので座標系として見る場合は-1いるかも
if(AW > picturebox2.Left) picturebox2.Location = new Point(AW,picturebox2.Top);
if(AH > picturebox2.Top) picturebox2.Location = new Point(picturebox2.Left,AH);
0950デフォルトの名無しさん
2010/02/04(木) 11:35:36//右下の処理
int AW = picturebox2.Parent.ClientRectangle.Width - picturebox2.Width;//もしかしたら幅なので座標系として見る場合は-1いるかも
int AH = picturebox2.Parent.ClientRectangle.Height - picturebox2.Height;//もしかしたら高さなので座標系として見る場合は-1いるかも
0951デフォルトの名無しさん
2010/02/04(木) 11:51:39>>945さん
>>946さん
ありがとうございます。
立ち上がったままPCを操作するような慌ただしい状況下にあるユーザーが多いので、起動時の通信ウィンドウを出さずに更新情報を見に行き、
リアルタイムにより新しいバージョンがあることを通知したかったんです。
コードで最新バージョンが何かをサーバー上(レンタルサーバー上にアップしています)
に見に行く方法があったりもするのでしょうか。
APIの命令を記述することは今までやったことがないのですが、
何か良い参考書やサイトはありますでしょうか。
たびたびすみません、よろしくお願いします。
0952デフォルトの名無しさん
2010/02/04(木) 11:54:02フォーム上に印刷プレビューコントロールを配置してプレビュー表示したいと思っていますが、
印刷プレビューダイアログボックス内の虫眼鏡による拡縮機能を利用するにはどうすればよいでしょうか。
0953デフォルトの名無しさん
2010/02/04(木) 12:11:37ごめん
>>948>>949は参考程度にしておいてくれ(不等号の向き間違ってたりする、恥ずかしいw
windowsの場合はMouseイベントは純粋に移動だけ行って
pictureboxのLocationChangedイベント内で下記処理を行ったら思うように動いた
void picturebox2_LocationChanged(object sender, EventArgs e)
{
int wPic2Left = picturebox2.Left;
int wPic2Top = picturebox2.Top;
//wPic2Left += e.X - mousePoint.X;
//wPic2Top += e.Y - mousePoint.Y;
//左上処理
if (wPic2Left < 0) wPic2Left = 0;
if (wPic2Top < 0) wPic2Top = 0;
//右下の処理
int AW = picturebox2.Parent.ClientRectangle.Width - picturebox2.Width;//もしかしたら幅なので座標系として見る場合は-1いるかも
int AH = picturebox2.Parent.ClientRectangle.Height - picturebox2.Height;//もしかしたら高さなので座標系として見る場合は-1いるかも
if (AW < picturebox2.Left) wPic2Left = AW;
if (AH < picturebox2.Top) wPic2Top = AH;
picturebox2.Location = new Point(wPic2Left, wPic2Top);
}
0954デフォルトの名無しさん
2010/02/04(木) 13:09:25>>953
レスありがとうございました。この方法で親の枠内でだけ子が動けるよ
うになりました。
この時、枠から外に出ようとすると子枠のちらつきが起きてしまいます。
子のlocationが枠から出たら戻すので起こるのかなと思いましたが
_mousemoveに移動してみたりrefreshを入れてみたりしていますが、とて
も難しいです。
0955デフォルトの名無しさん
2010/02/04(木) 13:14:26LocationChangedじゃなくLocationChangingイベントがあれば
Locationを変更しようとしたときに干渉できるのでその後起こる
であろう描画イベント前に位置補正できるんだろうけどね
LocationChangedイベントだとLocationを変えた後一旦描画して
から呼ばれる感じなのでどうしてもねえ
Paintイベントで補正もやってみたけど余計変になった
0956デフォルトの名無しさん
2010/02/04(木) 13:36:58それを他に作ったユーザーコントロールから使うと、ダイアログは出るんだけど、バーが表示されません。
どうしたらよいでしょうか?
0957デフォルトの名無しさん
2010/02/04(木) 13:41:310958デフォルトの名無しさん
2010/02/04(木) 13:42:21いらっしゃい
0959デフォルトの名無しさん
2010/02/04(木) 13:43:36その周辺のコード書け
0960デフォルトの名無しさん
2010/02/04(木) 13:50:49を解説したサイトとかありますでしょうか
たぶんメモリ関連が一番の注意事項だと思うのですが
よくわかりません
0961デフォルトの名無しさん
2010/02/04(木) 13:53:32用意しないならx86で作る、じゃないかなあ。
0962956
2010/02/04(木) 13:56:47DoEventsを通っていませんでした。
0963デフォルトの名無しさん
2010/02/04(木) 13:58:540964デフォルトの名無しさん
2010/02/04(木) 14:09:38Any CPUというのがよくわからないのですがx86(つまり32bitDLL)として作っておいて
OSやCPUの32bit互換機能に頼って使えるようにしておくということですかね?
Any CPUに関してはVS2010になるとexeに関してはx86とするとか
あまりいい検索結果はなかったので結構重要なことなんですね
0965デフォルトの名無しさん
2010/02/04(木) 14:16:33別解
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
mPos = e.Location;
Point p = this.PointToScreen(pictureBox1.Location);
p.Offset(e.Location);
Cursor.Clip = new Rectangle(p, new Size(pictureBox1.Width - pictureBox2.Width + 1, pictureBox1.Height - pictureBox2.Height + 1));
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (mPos == Point.Empty) return;
pictureBox2.Left += e.X - mPos.X;
pictureBox2.Top += e.Y - mPos.Y;
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
Cursor.Clip = Rectangle.Empty;
mPos = Point.Empty;
}
0966デフォルトの名無しさん
2010/02/04(木) 14:28:46PageDownが効くようにするにはどうすればいいでしょうか。
0967デフォルトの名無しさん
2010/02/04(木) 14:35:30ぐぐればOK
0968デフォルトの名無しさん
2010/02/04(木) 14:36:450970デフォルトの名無しさん
2010/02/04(木) 15:07:45レスありがとうございました。思ったとおりの動きができました。
>Point p = this.PointToScreen(pictureBox1.Location);
>p.Offset(e.Location);
>Cursor.Clip = new Rectangle(p, new Size(pictureBox1.Width - pictureBox2.Width + 1, pictureBox1.Height - pictureBox2.Height + 1));
ここは初めてみるものなので、これから調べてみます。
本当にありがとうございました。
0971デフォルトの名無しさん
2010/02/04(木) 15:17:22なるほど
ボタンを押してる間はマウスの移動範囲を限定するわけか
0973デフォルトの名無しさん
2010/02/04(木) 15:31:28マウスジェスチャーに反応するランチャーに一旦アクティブを取られた場合に
限定したクリップが解除されるな
ランチャーの設定はマウスジェスチャーで呼び出しできて
カーソルがランチャー上から外れたら自動でたたむという感じ
なのでボタンは押したままなんだよね
0974デフォルトの名無しさん
2010/02/04(木) 16:04:16そうですよ。
0975デフォルトの名無しさん
2010/02/04(木) 16:08:160976デフォルトの名無しさん
2010/02/04(木) 16:22:380977デフォルトの名無しさん
2010/02/04(木) 17:30:000978デフォルトの名無しさん
2010/02/04(木) 18:00:06http://uproda.2ch-library.com/210576Dva/lib210576.png
まあその分中のソースもコンパクトでリバースエンジニアリングされちゃうと
終わっちゃうけどw
0979デフォルトの名無しさん
2010/02/04(木) 18:02:260980デフォルトの名無しさん
2010/02/04(木) 18:04:37既存のブラウザの検索機能の一部が気に入らないんだけど
一から書くのが面倒な人とかにすれば.netのexeはオープンソースで
やってるのも変わらないからねえ
使ってもらう楽しみじゃなくソースありがとうじゃあねじゃちょっと寂しい物があるよね
0981デフォルトの名無しさん
2010/02/04(木) 18:05:41そういえばJaneはメニュー部分もつまんで動かせるけど、.NETのだと出来ないっぽい?
一番上固定はいいとしても、右の空いたスペースにアドレスバーとか詰め込みたくなるね
0982デフォルトの名無しさん
2010/02/04(木) 18:07:38どうにでもできる
部品としては使いこなしてないので上ででてるコントロールを摘んで・・・という
コード書いちゃう気がするけど所詮はFormの上のパーツだからねえ
DockStyleをNoneにして摘んだ際の移動コード書けばなんでも動くよ
0983デフォルトの名無しさん
2010/02/04(木) 18:15:32http://dobon.net/vb/dotnet/links/dockingwindow.html
自前で書いてたよorz
0984デフォルトの名無しさん
2010/02/04(木) 18:26:09の管理なんだよな・・・
0985デフォルトの名無しさん
2010/02/04(木) 18:37:55初めからオープンソースでやればいい話じゃない?
何せこい話してるんだか
0986デフォルトの名無しさん
2010/02/04(木) 18:38:550987デフォルトの名無しさん
2010/02/04(木) 18:49:52難読化されてるとはいえクラスの形とか元に戻るんだから
機械語で解析する苦労を考えると楽だろう
復元したソースをコンパイルすることだってできるんだか
0988デフォルトの名無しさん
2010/02/04(木) 19:01:060989デフォルトの名無しさん
2010/02/04(木) 19:32:56e.Graphics.PageUnit = GraphicsUnit.Millimeter;
e.Graphics.FillRectangle(new SolidBrush(Color.LawnGreen), 30, 40, 150, 6);
5mmくらい右にずれたんですけど、これはプリンタの余白が5mmくらいあって
ずれたということですか?
どう考えていいのか・・・
よろしくお願いします。
0990デフォルトの名無しさん
2010/02/04(木) 19:37:55とりあえず前提となる数字データ
A4 - ISO 216 用紙サイズ(210mm×297mm)
eの元は何なの?
関連しそうなので思いつきだがPaddingとかあったね
0991デフォルトの名無しさん
2010/02/04(木) 19:41:15自分で作ったほうが早いな
昔VB6で作ったけど簡単だった。たいした機能なかったけど。
0992デフォルトの名無しさん
2010/02/04(木) 19:41:15ありがとうございます。↓です。
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
0993デフォルトの名無しさん
2010/02/04(木) 19:45:40この辺かね?
http://dobon.net/vb/dotnet/graphics/printdocument.html
0994デフォルトの名無しさん
2010/02/04(木) 19:57:00e.MarginBounds.Leftは100になってて、100×0.254=25.4mmだから印刷できる範囲に入ってるんですよね・・・
0995デフォルトの名無しさん
2010/02/04(木) 20:07:37第一プリンタの設定なんて個々で違うから下記のようなテストコード書いてどうなってるか見てみないとわかんないよ
PrintDocument pd = new PrintDocument();
textBox1.AppendText(pd.DefaultPageSettings.PaperSize.ToString() + Environment.NewLine);
textBox1.AppendText(pd.DefaultPageSettings.Bounds.ToString() + Environment.NewLine);
textBox1.AppendText(pd.DefaultPageSettings.Margins.ToString() + Environment.NewLine);
textBox1.AppendText(pd.DefaultPageSettings.PrintableArea.ToString() + Environment.NewLine);
textBox1.AppendText(pd.DefaultPageSettings.PaperSource.ToString() + Environment.NewLine);
textBox1.AppendText(pd.DefaultPageSettings.HardMarginX.ToString() + Environment.NewLine);
textBox1.AppendText(pd.DefaultPageSettings.HardMarginY.ToString() + Environment.NewLine);
textBox1.AppendText(pd.DefaultPageSettings.Landscape.ToString() + Environment.NewLine);
textBox1.AppendText(pd.DefaultPageSettings.PrinterResolution.ToString() + Environment.NewLine);
こんな感じで今試した
http://uproda.2ch-library.com/210608eQU/lib210608.png
0996デフォルトの名無しさん
2010/02/04(木) 20:11:190997デフォルトの名無しさん
2010/02/04(木) 20:13:18struct person{
private int age=30;
}
クラスだとできるのに構造体だとこれができない理由は何?
0998デフォルトの名無しさん
2010/02/04(木) 20:13:38結果は↓でした。
[PaperSize A4 Kind=A4 Height=1169 Width=827]
{X=0,Y=0,Width=827,Height=1169}
[Margins Left=100 Right=100 Top=100 Bottom=100]
{X=13.33333,Y=11.66667,Width=800,Height=1137.667}
[PaperSource オートシートフィーダ Kind=AutomaticFeed]
13
11
False
[PrinterResolution Medium]
0999デフォルトの名無しさん
2010/02/04(木) 20:15:02で?
1000デフォルトの名無しさん
2010/02/04(木) 20:18:09このスレの98辺りから読め
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。