プロパティって変数をread only publicにする以外に使い道あるの?
>>5 getterだけならほぼそうだけど、setterを実装すれば入力チェックなどの機能が付けられる。
getterだけにしても、実際にプロパティがアクセスされたときにプロパティの値を用意すればいいから、あまり使われない値をあらかじめ生成しておかなくて済む。
日本語が変になってしまって申し訳ない。
>>5 初回呼び出しで初期化したりできる
あとDBの接続処理とかをそこで行うとか
プロパティを書き込んだ時に変更を通知したりとか
応用が利く
自動実装プロパティとパブリックフィールド変数との違いが判らない
public virtual string AAA{get;set;}とか
プロパティの方があとからロジック足せていい。 設計に変更が一切ないって言いきれるなら差はないかも。
public Hoge Hoge{get;private set;}が便利
最近、そればっかり使うな。
簡単なプロパティって JIT でインラインしてもらえるのかな。 自動実装プロパティとかインラインして欲しいんだが。
自動実装プロバティーは初期化できないのが難点だな 例えば hoge{get;set; default=1;} なら良いんだが 後、イベントはフィールドで実装することが多いかも プロバティー使うのはカスケードさせる時くらい
>>11 多分これがプロパティの一番の利用方法だろうな
LengthとかアクセスするのにLength()とは書きたくない
でもpublic変数にはしたくない(代入できてしまうから)
プロパティとして操作させたいけれどsetterしか呼ばれない、って場面ない? void SetHoge( Hoge h ){} みたいにするか、それとも Hoge Hoge{ set; } にするか、もったいないけど Hoge Hoge{ get;set; } にするか どれがいい?
素直に関数使えよ
俺が3番といったら、3番にしてくれるんだろうな?
プロパティセットするとかだけなら public static Hoge CreateHoge(引数) みたいにする時もあるかなぁ
ガイドラインなんか守っている会社あるの?
いや、普通は可能な限り守るだろ
フィールドの代替だからねえ フィールドを書き込み専用にしたいと思ったことはないだろう?
>>23 javaのSetter Getterの進化版だと思っていたが
ただ、readonlyは割と便利だが、writeonlyにしても何の役にも立たないよな
プロパティは「オブジェクトの属性」を表すセマンティクスなんだから、書き込み専用って言うのは自己矛盾に近い
意味がないとは言え、イベントの自動実装がないのは気持ち悪いな
27 :
デフォルトの名無しさん :2012/01/27(金) 23:09:55.83
あるよ。普通のフィールド形式のイベントがまさにイベントの自動実装。 addとremoveとバッキングフィールドが自動生成される。
プロパティ設定の構文 obj.prop = xx でメソッドを駆動するためにwriteonly propertyにしてる市販ライブラリがあったなあ Form.BackColor = Red みたいな
VB6の時代のCOMコンポーネントは、それどう考えてもメソッドだろっていうのが プロパティーになってることがよくあったなあ。 ところでsetterのみのプロパティーって、何か適用できる場面があって2,3度使った 記憶があるんだが、どういう場合だったか思い出せないな。
目的: fxCopに使ってない呼び出しは削除せよと怒られないようにするため
31 :
デフォルトの名無しさん :2012/01/30(月) 18:57:18.77
WebBrowser.DocumentTextプロパティで取得した文字列を使って何度も処理する場合 Foo(webBrowser.DocumentText); Foo(webBrowser.DocumentText); Foo(webBrowser.DocumentText); と直に使うのと string s = webBrowser.DocumentText; Foo(s); Foo(s); Foo(s); と一旦保存するのとではどちらが速いでしょうか? DocumentTextプロパティが単に参照を返すのか、オーバーヘッドがかかるのかリファレンスにも書いていなかったもので・・・
書いてないことを保証するのは難しい 計ってみりゃいいじゃん
あんまりかわらないんじゃないの?
内部処理はどっちも一緒でしょ
.netreflector
ふつうに考えてプロパティにアクセスするたびCOMにアクセスするだろうから 変更がないのが明白ならキャッシュした方がいいだろ
俺くらいになるとプロパティ名が長いというだけの理由で一時変数を用意するな
何で測ればすぐ済むことまで聞こうとするのかね
ラリーウォールだから
犬みたいな顔してるよな。
やはり醜男ほど人生の満たされないものを別の何かに求めるために天才になるのだろう つまり俺は天才になるべく生まれてきた男
天才ってのは生まれつきの才能の事を言うんだ なるもんじゃない
privateなメソッドって大文字で始めるのがいいのか小文字で始めたほうがいいの? ぐぐってもさっぱりわからん。小文字派が多いように見える
publicにするかもしれないので大文字でもいいんじゃね?
Microsoft的には外から見えない物は好きにしろ 俺はメソッドプロパティは全部大文字開始派
何回も呼び出される物じゃないのなら長めの日本語名メソッド最強 コメント適当でも何しているか判りやすい インテリセンスで引っかける予定がある時はちょっと辛いが
小文字だとローカル変数と見分けがつかなくてうざい
> Microsoft的には外から見えない物は好きにしろ それで、m_のやつと_のやつと何も付けない奴が混在してんのか
まぁ基本的にDLLとかならどうでもいいわな 自分がわかっていれば チームで開発する時とか他人が修正する可能性があるなら 命名規則くらいはすり合わせてほしいけど。
俺はフィールド変数は_小文字から メソッドは全部大文字からにしてる
俺もフィールド変数は_小文字 メソッドは公開非公開問わず全部大文字から メソッド名は動詞を先頭に 基本的にやってるルールってこれくらいかな
おれはノールール。そのときの気分次第w
俺は男の子人格の時はm_で女の子人格の時はf_をつけてる
ロシアやドイツ人は中性も必要なのか?
初歩的な質問なのですが、 VC++(CLR)で作成したdllは VCランタイムが無いとC# からでは参照 できないのでしょうか?よろしくお願いいたします
/MDか/MDdでコンパイルしてるならそうでしょうよ その辺はVC++と同じ
よろしくお願いいたしますって英語でなんていうのだろう?
Your sick oh neigh guy it a sim us.
Ohio goes I'm ass.
C#からC++で作られたDllのメソッドなどはDllImportを使用して 使えるのですが、そのDll内にクラスがあり、そのクラスをインスタンス化 して、インスタンスメソッドを呼びたいのですがどうすればいいでしょうか? C++ のDll一部抜粋 class Test { public: int GetXXX(void); }; extern "C"{ Test* __stdcall CreateTest(void); }
DllImportのCallingConvensionをThisCallにして 第一引数にthisとなるポインタを挿入
65 :
63 :2012/02/01(水) 13:25:47.75
以下のようにしたのですが、エントリポイントが見つかりませんとなりました。。使い方間違っているのでしょうか? [DllImport("XXX.dll")] static extern IntPtr CreateTest(); [DllImport("XXX.dll", CallingConvention = CallingConvention.ThisCall)] static extern int GetXXX(IntPtr pointer); main() { var pInstanc = CreateTest(); var value = GetXXX(pInstanc); }
・__declspec(dllexport)でクラスごとエクスポートしてる ・defファイルで修飾名付きでエクスポートしてる ・dllは変更できない →dumpbin /exportsで調べてその修飾名そのままDllImportのEntryPointに指定する
Dllの変更は出来ないのでdumpbinからnameを取得しました。 =>DllMain と CreateTest が出てきたので以下の通りにしました。 エントリポイント〜のエラーが出なくなったのですが、うまく機能しません。 期待戻り値が5のintを返すメソッドを呼んでも常に1を返し、 また、DllImportのメソッド名を変更してもエラーになることなく呼び出せてしまいます。 ↓↓ C#の記述 ↓↓ [DllImport("XXX.dll", CallingConvention = CallingConvention.ThisCall, EntryPoint = "DllMain")] static extern int GetXXX(IntPtr pointer); [DllImport("XXX.dll",EntryPoint = "CreateTest")] static extern IntPtr CreateTest(); main() { var pInstance = CreateTest(); int result = GetXXX(pInstance); } ↓↓ C++の記述 ↓↓ class Test { public: int GetXXX(void); }; extern "C"{ Test* __stdcall CreateTest(void); }
DllMainはどうやってもDLL自体のエントリポイントだろ… C++のリンク時に特に指定してない場合は ?GetXXX@Test@@なんとかかんとか になる
色々調べてみたもののdumpbinで出てくるEntryPointは変わらないです。 インターフェースの仕様はあるので推測で?GetXXX@Test@@という風に試して 見たのですがダメでした。 インターフェースとDllがある状態でC#から使うには他にどのような方法があるので しょうか?ちょっと挫折気味orz
直接使えないのならクッション入れるとかはどうなの? C++/CLIだっけ? 後はDLLを呼び出すC/C++のアプリを書いてC#からはテキスト通信するとか
ふむ・・・C#では使えそうもないのかなorz CLIはVC++のランタイムをインストールまたはマニフェストを 使用してリンクさせないとだめなので使えないです。。。 VC++のクッションDllを自作して呼び出せるようにするしか ないのかなぁorzあんまりスマートじゃないけど。。。 他に方法があればよいですが・・・
解放用のメソッドが用意されてるか気になる
73 :
デフォルトの名無しさん :2012/02/01(水) 19:27:32.29
C向けのフラットなラッパーを書くのが普通だな
74 :
63 :2012/02/01(水) 21:12:49.90
たびたびすいません。。。 CLRでDllを作成した場合にVCランタイムをインストールしなくても 済む方法にMSVCR100をexeの隣に置けばいいというのを小耳に はさんだのですが(嘘か真か不明ですが)出来るのでしょうか? またMSVCR100は.NET4以上じゃないと動作しないのでしょうか?
どっちみちDLLは一個増えるんだし大して手間変わらんからC向けラッパー作ったほうがいいよ C++/CLIだと.NET2.0〜.NET3.5か.NET4かでバイナリ互換性がなかったりするしインテリセンスもないし
前相談した同じ変数名を別の型に使いまわすやつ dynamic r; r = 3.30; ... r = new ring(); みたいにやればできますね 変数名は一文字がいいのでちょっとやってみたかったのです
数年後メンテしてみてくれ 己の愚かさにへどが出そうになるから
84 :
78 :2012/02/02(木) 19:25:44.60
まあ実用的な場面はあまりないでしょう
{ var a = new Hoge(); } { var a = new Foo(); } これで十分だろ
new Foo().Bar();でいいよ
2つのコレクションが同じ物を含んでいるかチェックしたい場合はこんな感じでいいんでしょうか? もっと短い適切な書き方とかありますか? bool flag = !collection1.Except(collection2).Any();
89 :
デフォルトの名無しさん :2012/02/02(木) 22:40:47.18
>>88 ExceptじゃなくてIntersect
92 :
デフォルトの名無しさん :2012/02/02(木) 23:07:19.73
C♯##
C++で作成したdll内の画像(Bitmap)をC#で使用するにはどのように 受け渡しをしたらいいのでしょうか?一旦ファイルに落とすことなく 実装したいのですが思いつきません・・・よろしくおねがいします><
これが初心者でないと誰が認めるというのか DLL側でLoadImageして、ビットマップハンドルをC#に渡せよ Bitmapはハンドルから作れるだろ
つーか最近C++C++ってうるせーけど同じ人なの?
だったら何だというのか。
多分二人いると思う 一人はまあまあ知ってる風の三流の人 もう一人は完全に素人
俺は11人いると思う、そのうち一人は教官だな
11人もいる!
イヤーン
どれが本物か分かるまい
オレは残像だ!
11人もいたらサッカー出来るな 相手がいないけど…
じゃあ出来ないね
WPFを使いましょう
実行時型情報を使ってDataGridViewにインスタンスを放り込んだら int bool string の変数をすべてDataGridViewから編集可能にしてくれるクラスとか関数とか作りたいんですけど 実行時型情報をうまく扱えません 具体的には配列とかうまくFieldInfoが取得できないみたいです なにかいいサンプルやらやり方やらないでしょうか?
自分でカスタムコントロールとかで作ればできなくはないけどな・・
折りたたみ可能なコントロールは難しくないが、 難しそうなのはそのコンテナの方だなあ
汎用化しようとするととたんに面倒になるんだよな その場だけでその動きはするよ、でもデザイナでは使えません、という条件なら作りはするが
俺は
>>105 じゃないけど
jQueryみたいに簡単な仕組み作ってくれればいいのに
〜.slide()と書いたらスライドしてくれたりで手軽
MSもjQueryの開発に加わってるのにな
WPFは鬼のようにめんどくさくて嫌だなあ
雨の日も風の日も他人任せ〜
先輩諸兄はWindowsFormアプリケーションでのFormのサイズや位置はどのように保存しているのですか? レジストリなどに値を保存しているのでしょうか?
115 :
デフォルトの名無しさん :2012/02/04(土) 19:27:32.75
XML にシリアライズ
XMLにシリアライズということはXmlSerializerを使うのでしょうか? メインフォームの他に各種ダイアログなどを作っていく予定です それぞれについて位置とサイズを保管するのは大変ではないでしょうか? よく使われる機能だと思いますが、ライブラリのサポートはないのでしょうか?
あるよ。アプリケーション設定。 ただFormの位置やサイズを保存する場合は注意が必要だけどね。 っていうか、そのぐらい質問する前に自分で調べられるだろ。 @ITのTIPSにも普通に載ってるぞ。
ありがとうございます、@ITの記事を調べてみます
「 む し ろ ウ ィ ン ド ウ の 位 置 サ イ ズ な ん て 保 存 す る な 」 という主義の人もいるし
>>119 『俺の話を聞けぇ〜』系の人?w
そういうの自分で書いてて気味が悪いと思わないのかよ。
リモートの画面が小さいノートからアクセスしたら ウィンドウが見えなくて一瞬困惑したことはある
位置を保存するオプションを用意すると便利だよね。 ただ、モニタの状態が変わったときに、画面外に平気で出てしまうような 作りになってしまうアホアプリがあることが問題なわけで。
WMPはカレントスクリーンに入りきら無い場合位置とサイズを修正してるな
当然だろう そこまで発想の至らない奴が位置保存とかするなよ
そう思うだろ? でもWMPはつい最近まで画面外とか関係なく位置サイズ復元してたんだぜ
当然とも思わんけどね。
>>124 はGUIのソフト作る時には、起動中常に解像度とモニタ数の変更を監視して
対応する処理を入れてるんだろうか?w
そこまで発想が至らない奴って誰のことだろうな
愚かな実装ですねえ。
>>126 起動時に復元しないのならプログラム再起動すればいいだけじゃね。
起動中常に監視している必要性はないよw
>>128 そういうのを一般にはご都合主義といいます
起動時から起動中に話が大きくなってまいりました 次は何?
次は一般でした
次は「宇宙的」ですかね。 LUNA SEAですね。
C#5.0っていつから使えるんです? VS2010.net4で使える?
使えない Monoは使えたような気がするぞ
使えないすか あぁはやくVS11でないかなぁ
136 :
デフォルトの名無しさん :2012/02/04(土) 23:10:12.16
nplotってグラフをかけるライブラリあるの知ってますかね? これで軸を対数軸にするにはどうしたらよいですか? そもそも出来ますか?
vs11ベータ版持ってるけど、普通にねーのか?
リストビューのLabelEditプロパティをTrueにして編集可能にしています。 同時に、Deleteキーに「選択項目を削除」というイベントを割り当てています。 リストビューの項目を編集しているときにDeleteキーを押すと、 そのアイテム自体削除されてしまうので困ってます。 リストビューが編集されている、という状態を取得できれば回避できるのですが、 その方法がわかりません。何かないでしょうか? その他の方法でも構いません。 よろしくお願いします。
DataGridView使え、捗るぞ
142 :
139 :2012/02/05(日) 11:48:05.33
>>140 もうほとんどできてしまっているので今から変えるのはちょっと・・・
でもデータ管理とか簡単そうなので、DataGridView使えば良かったと後悔してます。
>>141 こんなイベントがあったんですね、ありがとうございます。
どうやって使うのかわからないですが、試してみますね。
編集中かどうかを表すフラグもっといて beforでon、afterでoffしとけば編集中かどうかわかる
144 :
139 :2012/02/05(日) 12:39:22.02
>>143 その方法で実現できました!
と言いたいところなのですが、僕のキーイベントの設定方法がおかしかっただけみたいですw
いずれにせよ勉強になりました。ありがとうございます。
その「ほとんどできてしまっている」というのがそういう無駄な努力のことなんだったら DataGridViewに変えればほとんど無駄になるぞw
>>129 徒労だろ。最初から最適化に拘ったコード書くアホと同じ。
>>146 だからそう言ってるんだけど....
馬鹿なのか?
ListViewとDataGridViewはいまいち見た目も感触も違うからなぁ DataGridViewはマネージド臭がするネ
DataGirdViewはプロパティを弄ってコレクションをBindingList<T>に入れてDataSourceに突っ込むだけで作業がほぼ終了するから困る
>>147 ご都合主義だって言った事にレスしたんだけど、
どこに向かって言ってる?
>>149 でも、コンボ列の使い難さは異常
いったい、何回クリックすりゃいいんじゃ
>>150 馬鹿なくせに上から目線で物を言うから困るね馬鹿は。
起動時に前回起動時のウィンドウの位置が無効になっていることを想定しないのは
手落ちまたは手抜きだが、それを言うなら実行時に同じことが起こることを想定しないのも同じこと。
>>128 は前者を叩いて後者を黙認している。だからご都合主義。
手抜きは良くない、でもある程度の手抜きは容認されるべきでもどっちの立場でもいいけど一貫しろって。
よそでやれよ おまえらの自意識についたウンコのなすり合いなんか他人に見せるな
許容できる手抜きならバンバンしたらいいよ
今度は諌め役が出てきました 次は何?
どんな手抜きでもまず完成させることが大事ということを学びました
157 :
デフォルトの名無しさん :2012/02/05(日) 19:53:38.87
質問です。 user.configを保存するディレクトリですが、製品名にハッシュ値が付かないディレクトリにすることは可能でしょうか? あるとしたら、どのような方法がありますか?
名前を付けて保存するときに 製品名にハッシュ値が付くディレクトリにしか保存できませんとか そんな馬鹿な仕様を言ってきたら、ぶん殴るかもしれない
名前を付けて保存させなければいい
設定プロバイダ差し替えて保存場所変更できたような気がする
>>158 ですよね
他の市販製品のほとんどが付いてないので可能だとは思うんですが、やり方が判らなくて…
ググり方が悪いみたいなので、もう少し探してみます
ありがとうございました
>>159 ,160,162
ありがとうございます。
教えて頂いた情報をもとにもう少し調べてみます。
using System.Windows.Forms; class WinMain : Form{ public void _save(System.Object obj, System.EventArgs e){ //google [c# .net 保存] SaveFileDialog sfd = new SaveFileDialog(); sfd.FileName = "hoge.txt"; //最初の名前 sfd.InitialDirectory = "C:\\"; sfd.Filter = "画像とか(*.jpg;*.bmp)|*.jpg;*.bmp|すべてのファイル(*.*)|*.*"; sfd.FilterIndex = 2; //最初は2つめの sfd.Title = "保存するファイル名を選択"; sfd.RestoreDirectory = true; //ダイアログボックスを閉じる前に現在のディレクトリを復元 if(sfd.ShowDialog() == DialogResult.OK){ //sfd.FileNameでファイル名取得 Text = sfd.FileName; } else{ } } public WinMain(){ MainMenu mm = new MainMenu(); MenuItem[] items = { new MenuItem("save", new System.EventHandler(_save), Shortcut.CtrlS), }; mm.MenuItems.Add(new MenuItem("ファイル(&F)", items)); this.Menu = mm; } public static void Main(string[] args){ WinMain wm = new WinMain(); Application.Run(wm); } }
このプログラムをhoge.csに書いて、 C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:winexe hoge.cs とコンパイルして実行しても動きません。 sfd.ShowDialog()のところでこのアプリケーションが完全にフリーズしてしまいます。 何故なんでしょうか?
[STAThread]
大きいソース貼る時は
>>1 のコード貼りサイト使ってくれよ
あと[STAThread]
正規表現で ${aaa} に一致して、 ${aaa } に一致させないようなパターンはどうやって書けばいいのでしょうか? \$\{([^}+)]\} だと、2つ目のパターンでaaa\r\nを取得してしまいます。宜しくお願いします
正規表現は使えるけどその辺はperl5互換になるので 専門スレで聞いた方がいいんじゃね?
ありがとうございました 専門スレに行ってみます
シングルラインモード解除
餅は餅屋だな 402 名前:デフォルトの名無しさん[sage] 投稿日:2012/02/06(月) 19:18:16.22 中身 .*?
>>173 あそこを薦めたのはここほど人はいないけど
人さえ居れば的確な答えくれるからなあ
普段は60kb/sの速度のネット通信を、そのプログラムが起動してる間は20kb/sに制限するというプログラムを作りたいのですが、ネットの通信の速度を制限するためには何を使えばよいのでしょうか? 特定のアプリケーションの通信だけ、などではなく、全体においての通信量(通信速度)を制限したいのです。
c#とは関係ないだろ 海外ソフトでそういうのはあるけどc#とは無関係
177 :
175 :2012/02/06(月) 22:11:12.16
>>176 すいません言葉が足りませんでした
C#で作るとしたらどのような関数などを使えばいいのでしょうか、という意図の質問でした
すいません
ウィンドウズフィルタリングプラットフォームにコールバック登録して適宜パケット捨てればいい
実際に試したことがあるので可能であるとは言い切れるが C++のヘッダーしかない挙句に物凄い共用体と構造体の山なので 地獄のようなバインディング作業が必要になる 諦めるのが無難
>>178 一応調べてみます
>>179 マジすか・・・
多分あきらめると思いますが一応調べてみます
>>180 ちょっと見てみましたけどさっぱりでしたww
ありがとうございました
>>179 て言うか、C# で実装できるんだっけ?
>>107 自己レス
GetFieldsとGetPropertysの両方をなめないと
すべてのメンバ変数を見ることができない?仕様だった
作った奴に「バーカ!」って言いたい
>>184 馬鹿って言ったほうが馬鹿なんだぞ!
バーカ!バーカ!
そもそもこんなうんこっこな仕様なら参照型とか値型とか作らんで 裏仕様でポインタもうけとけよ っていうか一部の馬鹿な奴のためにポインタは回避するとこじゃねぇよ言語として 余計複雑だろが!死ね!
言葉が汚くて内容が稚拙な罵倒を見るとげっそりする 願わくば俺以外のやつもこいつのレスをあぼーんしていますように
Cのヘッダーファイルから.NET用にバインドしてくれるツールなかったっけ? 昔どこかのサイトで見たような
GUIの単体テストでいい方法ないですかね nUnitはかなりいい感じなのですが、ダイアログのようなものをうまくテストする方法が思いつきません 起動前にデリゲートで操作内容を渡して、Loadイベントで実行し結果をテストするような感じになるのでしょうか
MVPにしたら
>>191 MVCですが、分離できそうな部分はもう分離してしまっていて、
残りはUIのDataGridViewの列が正しく表示されているかどうかとかそういう部分なのです
メッセージボックスの親も指定できない (しかもそのおかげでたまにメッセージボックスがウィンドウの後ろにいって操作不能になる致命的欠陥) 奴等が作ったもんなんてこの程度
SQLiteをC#から使おうと思い、Dllimportを使い アンマネージDLLを実行ファイルを同じフォルダに入れて動かしているのですが 別環境のPC(仮想PC上)などで実行しようと思うとDLLが見つかりませんと言われてしまいます 開発環境では問題なく動いているので、何処が悪いのかまったくわからない状況です ちなみに他のアンマネージDLLも試してみたのですが駄目でした 何か対処法などはありませんでしょうか? ちなみにSYSTEM32に入れるなどの方法では駄目でした
タブコントロールの動作おかしくね? タブコンの上にユーザーコントロールおいてその上にコントロールおいてるんだけど ユーザーコントロールのフォントサイズがコントロールに反映されるような動作するようになる タブコンの上においたときだけw つかこれマジバグってんだろ?
WinFormsはもう放置されてるんだから文句言うな 時代はWP…WTLなんだよ!
タブコンはオワコン
>>198 間違えた
ユーザーコントロールのフォントサイズがコントロールのサイズに反映されるようになるんだ
なんかタブコンの上に載せたコントロールのサイズが色々おかしくなんだけど?
それはやっぱりタブのフォントをでかくしてるから?
他のコントロールもこうだっけ?
作りにくいからこれはなくていい動作なんだぜ
さらにタブコンの上に載せたユーザーコントロールの上に
載せたDataGridViewのカラムのフォントサイズがまったく変わらないってのもあったりする
めちゃくちゃ作りにくいよ
バージョン上げるときにバージョン番号切ってるんだから
あとくされなくスパっと直しちゃってよ
メッセージボックスの親指定も含めてさ
>>200 人に質問するのにタブコンとか俺様用語使うのはどうかと思うよ。
別にマナー云々とかいう教条主義的な話じゃなくて何言ってるのか読み取れない。
TabPageのこと?
読んでるこっちにいろいろ推論させるなよと思う。
とりあえずアンビエントプロパティーって概念を知らないなら知っとくべき。
もう直らないって言ってんじゃん 腐れてるのお前だけだしな
>>201 てめーはいじったことねぇんだから知らないことにクビ突っ込まなくていいんだよ
知らないなら無理してレスつけるなよ
1度でもいじったことがあれば予想がつくから詳細はいらねぇんだよ
他のスレでもそうだけど知らないのにいちいちレスつけたがる奴ってなんなの?
お前となんか会話したくないよ
どうせ知らないんだから
あぼーん報告いいですか?
言っていることは正しいが口調が暑苦しい
会話相手が選びたければこんな場に来てんじゃねーよタコス野郎
WinFormsで細かい見た目を改善しようとすると大改修が必要になる一例
いやいやただ知らないだけだろ 指定してなければ親から値取るって…
どっかに書いてなかったっけ
Control.Font プロパティ コントロールによって表示されるテキストのフォントを取得または設定します。 Font プロパティはアンビエント プロパティです。 アンビエント プロパティは、コントロール プロパティです。 設定しない場合は、親コントロールから取得されます。 たとえば、Button は、既定では親の Form と同じ BackColor を持ちます。 アンビエント プロパティの詳細については、AmbientProperties クラスまたは Control クラスの概要を参照してください。
>>200 タブは関係ないよ
フォントは自分で指定しなければ親コントロールの値が適用される
winformsでもWPFでも同じ
試し方
新規フォーム作る
適当にフォーム自体のフォントのサイズを変える
ボタンを置く
そのボタンの文字は親フォームのフォントと同じサイズになってるだろ
そこで親フォームのフォントサイズを変えてみるとボタンの文字サイズも変わっている
>DataGridViewのカラムのフォントサイズがまったく変わらない
それは自分でフォントを変えたからじゃないかな?
なんでこうなっているかといえば
親のフォントを変えておけば後から追加する部品のフォントを変えなくてもいいから
非常に便利な機能です
この仕様は10年後も同じだと思うよ
長文ごめんね
知ってる限りQtもGTKもSwingもTkも同じ仕様 どこから来たのか知らないけど俺常識撒き散らさないで貰えます?
> つかこれマジバグってんだろ? 初心者はなんでもバグという > めちゃくちゃ作りにくいよ どのフレームワークにでもある普遍的な機能すら使いにくいという 結論 ふらっとにいけ
>>211 意味わかんない
>それは自分でフォントを変えたからじゃないかな?
なんのフォントを?
俺はDataGridViewのカラムのフォントをいくら設定しても変わらないって言ったんだけど?
もう馬鹿はレスするなよ
変わらないのはカラムヘッダーだな やってみたところいくら設定してもユーザーコントロールのフォントサイズが適用される
>>211 はそもそも検証がおかしい
>>200 はユーザーコントロールを使っているんだから
タブコントロールだけじゃなくて他のコントロールにもおそらく使うのが目的だろう
なのに直接タブにボタンをおいていることから
あまり検証レスをしないほうがいいスキルレベルだと思われる
変わらないって事は、ColumnHeadersDefaultCellStyleが使用されてるってことかな DataGridView.Fontが変更されると、DefaultCellStyle.Fontにも変更が伝わるから ColumnHeadersDefaultCellStyleを設定した後に、どこからかDataGridView.Fontを設定されているなら ありえない話ではない、かも
バグだろ? とぎゃーぎゃー騒ぐ輩の言うことをいちいち検証していたら 時間がいくらあっても足りないということをこのスレの住人なら身をもって知っているはず
別に暇を持て余してるからいいですよ
>載せたDataGridViewのカラムのフォントサイズがまったく変わらないってのもあったりする 最初のはバグじゃないけどこれはバグ
>>218 意味が解らなければ無理にレスしなくてもいいですよ
このスレにも定番ワードが生まれそうな予感
>>222 最初のってバグじゃないのか?
フォントサイズ替えるとコントロールのサイズ(フォントサイズではない)まで影響うけるんだけど?
ちょっと文字の大きさだけ変えたいなぁってほうが圧倒的に多いと思うんだが・・・
もう触んなくていいからね
アンビエントプロパティーがどういうものか理解できていれば恥ずかしくて人に言えない内容。 それを、何も分かってない自分を棚に上げて「触れば分かる!」だからな。 こういう人間は何やっても駄目だと思う。
もう触んなくていいっていってんだろ殺すぞ
いやーん。
WebBrowserに直接テキストファイルを読み込ませた時のフォントって変更できませんか?
>>230 の追加です
テキストファイルがShiftJisだと小さいフォント、UTF8だと大きいフォントになってしまって非常に見苦しいです・・・
Urlプロパティにローカルファイル名を直接指定しています
宜しくお願いします
232 :
デフォルトの名無しさん :2012/02/11(土) 15:51:58.57
IEの規定の動作だと思うから無理じゃね? 嫌ならナビゲートじゃなくてテキスト読んでHTMLに変換して書き込めばいいと 思うよ
string text = "<html><head></head>" + "<body><basefont face='MS Pゴシック'>"; text += "";//表示したいテキスト text += "</body></html>"; WebBrowser.DocumentText = text; こうやって流し込んでもhtmlとして解析してくれる あとはhtmlを勉強してくれ
>>236 ちゃんと<とか&なんか変換してやらないと・・・
htmlエンコードの話は別だよ
>>227 必要ない機能だな
OFFにできるならさっさと設定してしまいたいぐらいいらない
>>240 そういう人間的にしょぼいあなたが可哀想
半分以上煽りなんだから触るなってばさ
ID欲しいね
実を言うと話がかみ合ってないんだよ 横から見てるとなんとなくわかる 質問者?のたどたどしい文章のおかげで伝わってないんだろうな
文章が稚拙だから(原因)誤解されている(結果)のではないね。 頭が悪いから(原因)文章が稚拙だし(結果)、アンビエントプロパティーの 意図と必要性が理解できない(結果)でしょ。
TabContrlとTabPageの区別もついてないようだから、たぶんコンテナも理解できてないんだろうな。 その分際で「俺が要らないって言ったら要らんのじゃ!」(笑) こんな人は工場で単純作業でもすべき。
まあ、でも必要ないってひとのためにOFFにする機能があってもいいよね
>>247 まだ言ってるのかよ。
どのプロパティーだろうと必用ならば任意の値を指定できる(当たり前だが)の
分かってそれ言ってるんだろうな。
>>248 意味わかんないっす
とりあえず下のフォントサイズ替えると上のコントロールのサイズが
変わっちゃう機能をOFFにすることはできますか?
折角ボタンのサイズをアプリケーションで統一した値にしてるのに この機能をOFFにできないおかげで手間が逆に増えるのはたしかだな OFFにできない機能ってのはどんなに便利な機能だろうと呪いになりうるな
言われてもまだ上とか下とか俺様用語を平気で使ってるし。 だから、コンテナと同じフォントを使いたくないなら何でもお好みのフォントを指定しろって。
フォントを指定するかAutoSizeをfalseにしろよ
>>245 横から再びだけど
誤解しているのは君だ
アンビエントプロパティについてじゃないよ
>>253 ひょっとするとアンビエントプロパティの動作以外のことにも言及している(少なくとも本人はそのつもり)
のかもしれないが、彼がアンビエントプロパティーの 意図と必要性を理解してないのは確か。
どっちにしろ、全ての元凶は彼が頭が悪いことにある。
文章が稚拙なのはその結果の一つに過ぎず、別に文章が稚拙だから誤解されてる訳ではない。
>>254 もうチョイで家につくからそこで正解らしきものを提示できるかもしれない
>>256 それはOSのDPI設定にあわせて画面をスケーリングするための機能で、
彼が恐らく言わんとしている現象とは関係ない。
まあ何言ってるのか読み取れないから何ともだけどね
あ、一応補足しとくと、OSの言語設定によってもスケーリングが変わったりするから DPIにだけ影響されるわけじゃないんだけどね。
続きです 指が動きませんのでご容赦を 新規のフォームにボタンを縦にならべたとします この後formのFontを72ptなど大きなものに変えるとフォントサイズを変えると どうなると思いますか? 実はボタン自体が大きくなります さらにボタンだけ大きくなるとボタンが重なるので配置位置も変わります フォントを変えると ボタンのサイズも配置位置も変わります 彼の言ってることと符合が合います 意図せずに配置もサイズも変わってしまうので 知らない人が実際に試すとびっくりすると思います
>>259 × 知らないとびっくりする
○ びっくりするのは知らないから。
ロジックが倒錯してるって。どんだけ自己中なんだよ
俺もパソコン始めてみたときはびっくりしたけどそんなもんでしょ 死にはしねえよ
どちらにしても知らない人が多いの事実です
どこの事実よ
It's a small world
君の主張はよくわかった、わかったからコテつけてくれ
ポトペタしかできない人でもフォームデザイナの右側のプロパティにその項目があるではないですか AutoScaleModeってね。 さらにその下の方の説明には知的障害者にも分かるように 「解像度またはフォントが変更されたとき、フォームまたはコントロールのサイズ変更方法を決定します」 てあるからゾウリムシ以下の下等生物でもたぶん理解できるはずだよ
AutoScaleModeこれ試してみたけど Noneにしてもコントロールのサイズが変更されないだけで FontはコンテナのFontになっちゃうね 質問者への回答としては 「コンテナに乗ってるコントロールのフォントを個別に指定してください」 でいいんじゃないの
そうだね
そやね
こんな動作するならいっそなんにもしてくれないほうがよかった 会社で組むときは試験項目1つ1つやってくしかないから連動して動かれると迷惑なんだよ
そうっすね
ですね
だよね
というわけでマイクロソフトの開発者さんこの機能いらないのでとっちゃってくだちい
はい
YESNO枕
メッセージボックスの親指定もできるようにしてくれないと困ります 具体的にはこれがあると自動テスト(UWSCやsilkテスト)で メッセージボックスがメインウィンドウの後ろいって動作不能になります
.NET2.0以降WinFormsは放置だから C#と.NETが消滅する方が先か
困るね
ふらっとでやれ
>>277 メッセージボックスはIWin32Windowを引数に取るはずだが
記憶が確かなら、フォームのthis食わせれたと思うけど。
this直接は無理だがthis.Handleは渡せる まあ浅知恵で喋ってる人間の知識なんてこんなものですよ
えへへ。
>>283 >>281 が書いてる通りthisも渡せる。
しかしなんかもう恥知らずな奴が多過ぎだな今日は
2chの恥はかきすて
ID出ないからね
>>285 いや、それは動いてねぇよ
親に指定したウィンドウの真ん中にでてこねぇ
もともとオーナーを指定した所でそんな動作は保障されていないと思うが
それが動くかどうかしらんが 親を指定すること、と、親(っぽい)ウィンドウの真ん中に表示されること は、同じ事なのかね?
試しにVC++でMessageBox呼んでみたけど、hWndの中央に出てくるって動作はしないね。
てか、腐ってるのは.netFrameworkだからVC++でそれ呼んでも意味ねーぞ ちゃんとMFCだかWin32のやつ呼ばないと そこはおk?
夢でも見たか あるいはフックなんかでメッセージボックスの位置を弄ってるアプリケーションは存在するから、それの印象が強く残っていたか 昔はそういう動作をしていたとか(憶測)
寝る
親を指定してモーダルウィンドウを表示した時の動作と勘違いしてるんじゃないのかね。 あの場合もStartPositionの値を事前に設定しておく必要があるんだけど。 しかし、昨日からの恥知らずな流れはもういい加減にして欲しいもんだね
結論としてはwindowsはクソでいいのか?
それは同意
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200404/04040025.txt えんどう 2004/04/14(水) 14:06:19
AfxMessageBox()でメッセージボックスを表示したのですが
表示する位置をかえるにはどうしたらよいでしょうか?
ダイアログ上にコマンドボタンを配置して
このコマンドボタンをクリックしたときに
表示するメッセージボックスの位置が
ダイアログ上の真中に表示されるので
この位置をずらしたいのです。
επιστημη [E-Mail] [HomePage] 2004/04/14(水) 14:37:11
ソースを読めばわかるけど、AfxMessageBoxは最終的には
Win32-API MessageBox で実現しています。
で、MessageBox-APIには位置指定の術がないはず。
どうしてもやりたければ自前でこしらえるが吉かと。
こういう動作をするはず
>>301 そもそもMessageBoxに親なんて用語ねえんだよ
「オーナー」だ
int MessageBox(
HWND hWnd, // オーナーウィンドウのハンドル
LPCTSTR lpText, // メッセージボックス内のテキスト
LPCTSTR lpCaption, // メッセージボックスのタイトル
UINT uType // メッセージボックスのスタイル
);
オーナーの指定は第一引数だ
ウィンドウプロシージャのhWndにはメッセージが発生したウィンドウのハンドルが入っている
このウィンドウプロシージャはメインウィンドウにしか登録していない
ここまで説明しねえと駄目なんか?
マジ死んでくんない?
苦しんで死ねよ
本当に酷いな…
頭に欠陥抱えてそうな感じだな 正しいMessageBoxでの親の指定方法でも御教示願いたいもんだ
>>305 だからMFC使ってると親の中央に表示される
不意にMonoはどうなんだろうって思った。 どうもWindowsの話をしてるかすら怪しいじゃん。
一番下に書いてあるじゃんか 凸凹 2003/04/10(木) 12:13:35 MFC も フックとサブクラス化で MessageBox API のメッセージボックスを 親の中央に表示してます。 フックプロシージャ:_AfxCbtFilterHook() サブクラスのウィンドウプロシージャ:_AfxActivationWndProc() のようです。
>>309 お前だろ
オーナーの指定方法は合ってんだからよ
余計なことするなと騒ぐ奴がいたと思ったら 今度は余計な動作をしないから糞だと騒ぐ奴がいたり…
謎が解けたところでどうオチつけるかね?
規定のMessageBoxの動作では、オーナーがどのウィンドウであれデスクトップの中央に表示される
MFCは規定の動作を弄ってオーナーの中央に表示するようにしている
.NETは規定の動作をしている
オーナーを指定した所で、MFCという限定された環境でなければ
>>277 の要望は満たせない
以上
>>313 MFCが余計な動作してるのが悪い
こんな動作するならいっそなんにもしてくれないほうがよかった
無知でも馬鹿でもいいけどせめて自覚が欲しいよな。
>>288 みたいに間違いを指摘されても素直に認めるどころか論点そのものを
こっそり変えちゃう奴とか何なんだろうね。
名無しでIDすらない掲示板でそんなに自分に固執したいのか。
それ(=MFCの動作)が標準だと勘違いする輩が出るって理由で機能を削るのはアリ…かなと思えてきた。
そんなに困るなら自分で書けばいいのに MessageBoxくらいなら手間はかからんし一回作れば使いまわせるんだから
つまり状況としては過去のMessageBoxの不具合を引き継いだ形になってしまったということだな メインウィンドウの後ろにいってしまうのはバグだろう その後完全に動作不能だしな
マイクロソフトに直接メールしてください。 ここでグダグダ文句いってても何にもならないので
安心しろすでにおくってある
MFCの余計な動作のせいでくだらない戯言に付き合わされたなw
KFCの悪口は
白いおじさんが見ている
なんで肉の話が出てくるんだ
一人でシコシコプログラム書いている時は脂が欲しくなる
じゃあ、脂食えよ 肉には手をつけるな
バグということにしておかないと自我が保てない しょっぺえアイデンティティしか持ち合わせていない
では、メインウィンドウの後ろにメッセージボックスが隠れてしまって 強制終了をせざるをえないのは正しい動作なのか?っていうとそれもまた違う気がするな
>>329 メッセージボックスはIWin32Windowを引数に取るはずだが
今時ブロッキングなダイアログなんて
MFCや.NETのバグであることがはっきりしましたね もっと早くわかればうれしかったのですが
MFCもバグなの??
規定外動作なら紛れもないバグだろ
今度はMFCがバグとか言い出したな ここのスレはレベルの低いのばっかだな
MFCを規定の動作と勘違いして 正しい使い方を「親指定してないじゃん」ってのたまう方は さぞかしレベルたけーのでしょうね
MFCちゃんはがんばっただろ!!!
KFCのバグ まで読んだ ………ゴッキー!?
ハイレベルすぎてオーバーフローして負のレベルなんだよ。
KFCの厨房にいるゴッキーなら美味しいんじゃないかな、いいもの食べてるし
ここの厨房はおいしいですかね
ここまで俺の自演 釣られてレスした奴は猛省するように
HAHAHA!冗談が美味いな、ジョニー! 釣られてレスした奴まで含めてお前の自演だろ?
>>337 でもそうなるとMessageBoxがメインウィンドウの後ろにまわっちゃって
強制終了必須になっちゃう動作を正しい動作とするのはどうだって話になっちゃう
もうお前ら部屋に引きこもってないで現実世界で釣りでもしてこい
結局、なんにも確認しないでwin32と同じだから変な動作してても正しい=.netにバグはない とか変な確認しちゃったのが間違いのはじまりなんだろうな ソースや試験項目は使いまわせても試験結果は使いまわせないよねっていういい例でした! あざーす!
>>345 レベルたけーんなら自分で解決しろよアホ
>>348 勤務中に書き込んでんじゃねぇ。。
どんだけ酷い会社なんだよ。
折角だからMSのサポートをコキ使ってみようよ .net出た頃から指摘してるけどちっとも直らないな MessageBoxの1つも直せないなんて金返せレベル
DataGridViewのカラムのフォントの件も送ってみたけど これが直るのはいつだろうか?
直るって前提はどこから来るんだ 10年放置されているのなら今後10年放置される可能性のほうが高いだろ
>>354 おまえあほなの?w
勤務中だとほざいてるやつがいるからだろ
>>348 休日出勤して書き込みとか会社からみたらただの穀潰し
>>345 よしんばその状態になったとしてもAlt+スペースで移動できるから問題ない
つーかキーは効くだろEsc押せばいいじゃん
勤務態度に異常に拘る奴はだいたい無能 本当に優秀な奴は息をするように規則正しい生活をしてる
>>356 やってみた?
なんもきかなかったと思ったけど?
もしかしてメッセージボックスがどうとかじゃなくて アプリが糞でフリーズしてただけなんじゃね?
いや、確実にメッセージボックス 違うプロセスからID指定して殺してみたら復活したから間違いない
親指定するか自作すれば済む話をいつまで引っ張るの?ステマなの?
いや、別にマイクロソフトの売上あげるつもりはないけどw
ステマって何? c#と関係あるのかよ?
最近覚えたんでしょう
ステマなんて今に始まった話じゃないんだから、黙っててくれ
MFCを規定の動作と勘違いして 正しい使い方を「親指定してないじゃん」ってのたまうような さぞかしレベルたけー方はステマなんてしません 彼ならこう言います 「それは、バグだよ」
最初はメッセージボックスがメインウィンドウの裏に行っちゃってモンキーテストし難いって話だったのに、 いつの間にかフリーズがどうこう言い出してて、何言ってんだこいつって感じ。
IDの見えないスレで主張の一貫性を求められても困る 途中から別人、あるいはすべて別人という可能性も
モンキーの操作が届かなくなってることをフリーズと称してるんじゃないの
>>367 「最初は」そんな話じゃないけどねw
何れにせよ、そもそもMessageBoxのオーナーが指定できない、なんていう話そのものが
事実誤認なんだから、無知を誤魔化すためでなければ何のために言ってる話なのか良く分からない。
そもそも、モーダルウィンドウが操作できない状態に陥るなんて環境依存の現象だと思う。
オーナーを明示的に指定するかどうかとは、恐らくそもそも無関係。
MessageBoxが裏にまわって操作できないなんて経験ないなぁ
途中からはMFCの動作の方があるべき姿だから、元の動作はバグに等しい MSは修正すべきって論調にシフトしたしな どこまで安いプライドしてんだよワロタ
>>371 自分の作ったアプリではないけど、そうでない奴なら結構経験あるぞ。
このスレにいる奴らが作ったのかな?
モンキーテストで遭遇したことあるような奴がまさに量産してるんだろ アホかい
>>371 なったことはあるなぁ
毎回発生するなら調査できるけど、ほんとにまれだから困る
ListView に大量のデータを追加すると、画面がちらつくんですが、 何か良い方法はないでしょうか? ダブルバッファリングを有効にすれば良いと思うんですが。 ListView を xaml で定義しているので、ダブルバッファリング を有効にできません。
BeginUpdate()とかで画面更新を抑止できたはずだが
とりあえず、メッセージボックスが裏にまわって操作不可能になるって現象の 再現検証コードだしてくれ。話はそれからだな
いやもう結構です "まれ"とか言ってご丁寧に予防線張ってくれてるじゃん 雑魚は喋るなっつんだよ
今日はこの辺で勘弁しといたるわ、まで読んだ。
>>379 UWSCで自動テスト作ればすぐになるぞ
それはつまりUWSCがおかしな事してるんじゃないのかね
>>383 手動だとちょっと出しにくい
テキストの入力ミスってメッセージボックス出すような動作するアプリならすぐに出てしまうんだが・・・
一番楽な再現方法はUWSCでメッセージボックスだしてOKボタン押させるようなテストを作ること
だから、環境依存でしょって。 SPY++使ってると同様の状況に陥ることがあるようだから、 グローバルフックを使う常駐ソフトでも入ってる環境だと起こるんじゃない?
そのすぐに出てしまうアプリ持って来いよ UWSCとか御託は聞き飽きたからさ
環境依存? いや、結構どこでもボコボコおきちゃいますけど・・・ このPCじゃないと・・・ってのはいまのとこないな
そのボコボコおきちゃうアプリを持って来いよ お前の御託はどれだけありがたいんだヴォケ
来なくていい。妄想が実体化するわけがない。
>>388 やり方は出したんだからとりあえずやってみろよ
UWSCが一番楽だっていってんだからとりあえずやってみて出なかったら文句言えよ
昨日試したのに親指定してないじゃんとか難癖付けられたから 逃げられないように手前が書けや糞ムシ
やったらやったでやり方が違うとか言うんでしょお お上手よねえ
>>391 おおー、それにUWSCでメッセージボックス出してOKボタン押すテスト書いて
何百回かループさせればそれで完成なんだけどな
だから、お前がテストケース書いて提出しろ 検証してやる
根に持ってるなあw
2〜3日どっか行っててくんねえ? お互いにその頃には腹の虫も収まるだろ?
>>394 会社いかないとUWSCのコードなくて面倒くせぇw
ボタン押す処理と
ウィンドウの名前指定してウィンドウ確定する処理があればできるんだけど
サンプルがでてこねぇw
って状況
昨日のアレに謝罪するまでは絶対に許さない 取り付く島も与えない
>>398 でも再現方法は提示したんだからそっから先のやるやらないは君の了見だよね
それならお前の妄想で全て終了するだけだ 何の問題もなくな
>>401 いいよ別に
こっちは起こるの知ってるし
別に嘘もいってないから痛くもかゆくもないものw
そうか、じゃあ死ねよ
24時間以上粘って最後は痛くもかゆくもないものwだって。
MSもこんなのすぐ直しちゃえばいいのにね なんで2.0から延々放置してるんだろう
愚民の不毛なやり取りおもすれー
>>405 初心者のパヲソタが粋がって嘯くセリフそのものだねw
少なくともオーナーを指定せずにMessageBoxを表示するだけではそのような現象は
再現しないから、それは問題を起こす十分条件じゃないのは確か。
それどころか必用条件である証拠すらない。
単に騒いでる彼の思い込みである可能性は否定できない。
>>408 まあ、勝手に思ってていいと思うよ
俺にはなんの影響もないしw
今日はこの辺にしといたるわ。 大事なことだから二回言いました、まで読んだ。
影響があって困ってるから愚痴り始めた癖にこれですよ 面の皮が厚いのも才能だね
俺には何の影響もないわー。マジ影響ないわー。 惚れさせww
な、やるやらないはお前等の自由だろ?w
やったらやり方が違うと来るんじゃあ意味ないからな。
やる方法は提示したんだし 後は自由だよ お前等のやり方が悪かったとしても俺はなんもいわんよ
言ったじゃん 昨日
バージョンが悪いとか言い出すんでしょ。 分かってるってw
スーパーフリーとかありましたね
>>418 いやぁ、2,3,4と全部おきるよ
ちゃっちゃとやんな
影響ないのにして差し上げる理由もない罠
IWin32Window渡しても起きるの?
検証コードださないでバグだのなんだの言っても説得力のかけらもありゃしねえぞ
なんだまだ不毛な喧嘩をしているのか
ラリホーラリホーラリルレロン
426 :
84 :2012/02/13(月) 09:23:49.62
日経ソフトウェア3月号の漫画インターン女子c#を学ぶ、コマ割りがバグってる
まああまり実用的な漫画ではないでしょう
Linqで最後の一つの要素だけ取り除きたい時、 Reverse().Skip(1).Reverse()でできなくはないのですが、もうちょっとスマートなやり方はないでしょうか?
bool first = true; T prev = default(T); foreach (var item in source) { if (first) first = false; else yield return prev; prev = item; } これでよくね より遅延評価な動作になるしバッファ要らないし
まあまじめに実装するならcountで場合分けするだろね
ReverseってToList().Reverse()に近い動作なんだよな(実行されるのは列挙開始時だけど) うっかりするとものすごい効率悪いクエリになる
>>429 わざわざありがとうございます
使わせて頂きます
>>429 見ただけじゃ意味がわからなくてステップ実行してしまった
よくこんなややこしいコードかけるなぁ
書けるけど読めない類のコードだと思う
こういうコードを書ける人はゲームのSpaceChemとか得意なんじゃないかと思う
ジェネリクス。。。
しつもーん。
初めて拡張メソッド書いてみたんだけど、これ、あってる?
ttp://ideone.com/FfRKI 配列の要素が動的に変わったらダメなのはわかってるけど、foreachはそれ禁止してるよね?
っていうか、IEnumなんとかってforeach以外で使うもの?
まず引数名にEnumerableとかクソ紛らわしいからやめろ foreachでダメなのはforeachで列挙してる途中で元のコレクションを変更すること
質問するなら「なんとか」は止せ
まず、namespaceに全角使ってるのうざいからやめろ
>>439 あーごめん。アッパーキャメルなのは地だ。
さて、と言うことは、拡張メソッドが自分のスコープ内でIEnumerableを増減させる以外で要素数が変わることってあり得る?
あるなら、それはどういうときだろう??
>>440 ごめんなさい。
>>441 自分はテストコードはふざけた名前にする習慣なんだ。
ファイル名をふざけた名前にするとIDEがネームスペースもイジっちゃうからこまったね〜。
そういうわけで、ごめんなさい。
何を問いたいのか分からん 取り敢えずマルチスレッド
foreachの中で元のListにAddしたりRemoveしたりすれば要素数変わるだろ
446 :
438 :2012/02/14(火) 02:13:50.17
>>444 それは、ロックしなかったら何でも不味いんでは・・・。うーん。
>>445 それ、例外とばないの?
だから何を問いたいのか分からんってばよ
448 :
438 :2012/02/14(火) 02:21:57.31
>>447 あー、えーっと。
>>438 に書いた拡張メソッドが通常使用で大丈夫かどうか。不味いなら何が不味いか。
ホント初めて書いたから勝手がわからないのです。
別に拡張メソッドだからって条件は一切無い ただの静的メソッドの呼び出しに解決されるんだから 強いて言うならループ2回回すことになって無駄が多い
あ、Count()はICollectionが渡るとCountプロパティ返すようになってるから この場面だけならCount()でループは一応回らない
滅多にあることじゃないが、列挙するたびに 結果の要素数も結果の中身も変わるIEnumerableがあっても別にかまわないので enumerable.Count()で取得した要素数とそのあとで列挙される要素数は必ずしも等しいとは限らない そうなった場合、Enは無効化されて動作は未定義
yieldで中断してそこから再開ですよね・・・。あるぅぇ〜??
>>449 了解です〜。
しかし、無駄って何のことかわからないので、自分、まだ修行が足りないみたいです。
>>450 for文にあえてしなかったんですけど、正解なのかな・・・。
Countが取れないと厳しいですねぇ。
あと、拡張メソッドなのは普段からこうなのです。。。
>>451 それは乱数的な何かでしょうか・・・。カオスすぎます。
でも、動的に要素数変わるとかはあるんですねぇ・・・。
うーん。うまい方法がないな〜。
453 :
438 :2012/02/14(火) 03:12:33.75
はいー。どうもー。 そろそろいい時間なので引っ込もうと思います〜。 今日は大変勉強になったので皆様どうも有り難う。 それではー。
Count()使うならyield使う意味が全くないな Take(Count() - 1)で終わり
構ってちゃんの気配がする
456 :
438 :2012/02/14(火) 03:32:01.68
>>454 すげー。そんな便利関数あったのか。
うーむ、奥が深いね。Orz
と、いう訳でほんとに引っ込む!衝撃でした!!
毎回結果のシーケンスが変わるようなソースを考慮するならTake(Count() - 1)でも正しく動くとは限らんけどな 少なくとも未定義動作にはならないけど
COMのインターフェイス定義で int Hoge( ULONG* pHoge ); みたいな感じでULONGを返すけど、いらないときはNULLにしろって場合あるじゃないですか あれを実現するには int Hoge( IntPtr pHoge ); にして自分で4バイトなり確保して渡すかIntPtr.Zeroを渡すか、みたいな方法しかないんですか?
適当な変数渡して使わないだけで良くない?
short Hoge(out uint pHoge);
pHogeがNULLかどうかでHogeの動作(pHogeに値を返すかどうか以外)が変わるんならIntPtr.Zero
IEnumerator<T>はIDisposableだからusingを忘れないように!
はい
COMインターフェースだとオーバーロードって手は使えないのか。
ドロップダウンボタンを作成(カスタムコントロール)したいのですが、 Buttonから派生させて作りたいのですがどのようにすればよいでしょうか? 一度コントロールの高さ等を変更した後、オーナー描画するしかないのでしょうか?
CodeProjectとかに転がってないの?
馬鹿には無理
オーナー描画ってよく聞くけどどういう意味? paitイベントとかでGraphicsつかって描画するのとは別物?
コントロールなどをオーナーが頑張って書き換える。 コントロールってだいたいオブジェクトになってて、描画系とかもパックされてるけど、 それが気に入らないオーナーが独自に書き換える。 オーナーは親ウインドウだったり、ユーザーコード書いてるプログラマだったりする。
>>466 何が聞きたいのかよく分からない。明確じゃない質問には誰も回答できんと思うよ
っていうか、なぜComboBoxじゃなくてButtonなの?
>>471 VSのファイルダイアログにあるような右側に▼が付いててコマンド選べるボタンのことだろ
>>472 そこは普通に分かるよ。
はっきりドロップダウンボタンと言ってるじゃないかw
不定長の文字列(1行)を固定サイズのBitmap内に収まるよう描画したいです それができるメソッドは何かあるでしょうか?
>>476 俺が知ってる範囲だとGraphicPathを使う方法だと可能かな
MeasureStringしてからScaleTransformで
改行ありならDrawStringで矩形していすればいける
480 :
476 :2012/02/16(木) 18:22:41.59
皆さんありがとうございます
折角のプロポーショナルフォントなので、まずは
>>477 の方法を試してみようと思います
無条件だとwinformsなんだなw
482 :
477 :2012/02/16(木) 19:06:16.74
初期化の次に g.SmoothingMode = SmoothingMode.AntiAlias; って入れれば文字が綺麗になる
484 :
476 :2012/02/16(木) 19:50:47.94
>>482 わざわざありがとうございます
おおむね期待通りの動作なのですが、何故か後ろに謎の空白が発生しています
MeasureString絡みで末尾空白どうこう見たような記憶がありますので、その辺調査しようと思います
485 :
476 :2012/02/17(金) 16:56:21.20
どうもMeasureStringでは上手く行かないのでGraphicsPath.GetBound()でサイズを取ることにしました ただし、普通にWidthとHeight使うのではダメで、LeftとTopをそれぞれに足さないといけないようです ともあれこれで完全に意図した通りになったので事後報告
486 :
477 :2012/02/17(金) 17:13:07.55
emSizeとか普段使わない数値がでてくるから俺もその辺は曖昧なんだよなw
そういえば、WinFormでもWPFのパーツは使えるんだよな・・・?では、最初からWPFを使う利点って何?
なんかアホっぽい質問
public partial class Form1 : Form { int formWidth; int formHeight; public Form1() { InitializeComponent(); formWidth = Width; formHeight = Height; } private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.FillRectangle(new SolidBrush(Color.Black), 0, 0, formWidth, formHeight); } } 描画範囲がフォームぴったりにならない(フォームのサイズより大きく描画される) なんで?
ClientWidth/ClientHeight使う あといちいちformWidthとかいらん。面倒なだけだから必要なときにプロパティでアクセスすればいい。 もしも激しいループがあってプロパティアクセスで重くなるようなら(まずありえないが) そのメソッドの入り口でローカル変数にキャッシュするだけで十分。
>ClientWidth/ClientHeight使う ありがとう!
ListViewコントロールが「View = LargeIcon、VirtualMode = true」 のときに、 ・Itemが現在表示されているか ・表示されているIndexの最小値と最大値 どちらかを取得する方法を教えてください。
多分ないはず Positionで場所をいじれるから
そうですか、残念。
会社でReSharper便利なんで自宅用に買おうと思うんだが、 基本デスクトップでごく偶に出先でノートに使う場合(同時使用しない) ってライセンス2ついる? ライセンスには、同時アクセスは無理って書かれてるだけっぽいから1個でよさげなんだけど
質問内容はわからないけれどReSharperはすごくいいね いい情報をありがとう
498 :
495 :2012/02/20(月) 17:53:07.70
>497 それだいぶ古いですね。6.1でてるし 今はもっと多機能になってます。 VSは、この手のリファクタ機能がないから有料で買うしかないのが…
>>495 どっかのブログにひとつでいいって書いてたよ
500 :
495 :2012/02/20(月) 20:12:30.37
>499 よかった。200$で済むのか。 ありがと
実行時に任意のメソッドの呼び出しと与えられた引数を監視記録 したいのですが、いい方法はありませんか?
502 :
デフォルトの名無しさん :2012/02/20(月) 21:55:19.61
IDEのブレーク機能を使う もしくはメソッドのコードを自分で書いてるなら メソッドの最初にログを書き込むコードを入れる
スレの上の方でロガーに関する話題がちょっとあったな
log4netとか使うのおすすめ
ひーん
507 :
デフォルトの名無しさん :2012/02/21(火) 16:43:20.73
string[] FileList=Directory.GetFiles(filepath); CI_file = new C_file[ThreadList.Length]; インスタンスが作成されないのですがどうしたらいいでしょうか?
508 :
デフォルトの名無しさん :2012/02/21(火) 16:45:46.31
意味がわかりません
久々に笑えるな
510 :
デフォルトの名無しさん :2012/02/21(火) 16:56:58.16
string[] FileList=Directory.GetFiles(filepath); CI_file = new C_file[FileList.Length]; すいません、こうでした。 CI_fileにFileListの数の分だけ配列を用意して同時に初期化したいです。
>>510 じゃあ初期化したものを配列に入れろよ
つーかフラットって言う初心者用スレに行けよ
フラット → × ふらっと → ○
CI_fileって自前のクラスでいいのかな? でどのインスタンスがないの? インスタンスが無いとどうやって判断したの?
そういえばフォルダ内のファイルの列挙を遅延実行でやってくれるメソッドなかったっけ? 名前が思い出せない
516 :
デフォルトの名無しさん :2012/02/21(火) 18:29:12.34
CI_file' は現在のコンテキスト内に存在しません ってビルドエラーがでます
最初は真面目に本をよむなり初心者向けのウェブサイトみるなりして勉強しろよ それがいやなら諦めろ
ToolStripButtonの座標を取得したいのですがどうすればいいでしょうか
クライアント座標かね? スクリーン座標かね?
520 :
518 :2012/02/22(水) 11:13:53.59
ToolStripButton.Bounds.Location
522 :
518 :2012/02/22(水) 11:31:51.35
523 :
デフォルトの名無しさん :2012/02/23(木) 00:21:27.80
リビルドするたびに実行ファイルのバイナリが違ってしまいます。 ソースに変更がない場合は同じバイナリになるようにしたいのですが どのようにすればよいでしょうか?
んなばかな。んなわけない。以上
>>523 そりゃ日時とかそういう情報埋め込む場合は多少変わる可能性はあるね
バージョン番号が上がってるからアセンブリの完全限定名でアクセス出来ないとかそんなんじゃないの?
527 :
523 :2012/02/23(木) 00:41:57.37
ビルド時間のようなものは埋め込んでいないつもりなのですが、 どこかにそのような設定があるのでしょうか? プロジェクトのプロパティをみてみましたが、それっぽいのは見当たりませんでした。
バージョン指定でビルドするたびに自動的にカウントアップするのがあったような
デバッグ情報なしでバージョンも同じバイナリで比較してみたが ヘッダーみたいな部分と、コンパイラーが生成したかと思われるメソッドの名前のGUIDみたいな部分が 変わっていたよ
改竄防止用のハッシュもあったはず
532 :
523 :2012/02/23(木) 22:52:40.07
バイナリが変更されないようにするのはできそうにないですかね バイナリをバージョン管理していて 本当に変更があったときと区別がつかないので 何か方法があればとおもったのですが
PEヘッダ辿ってけ
>>532 意味が解らん
配布するときにそのままハッシュ取ればいいのに
リリースビルドでもないバイナリをバージョン管理するって意味が分からん
svnだとtrunk, branches, tagsってあるじゃん そのなかにプロジェクトの成果物のexeが並んでるのを見たことある? 俺はないな
スンデ(ザンチュンドン)250g
http://www.amazon.co.jp/%E3%82%B6%E3%83%B3%E3%83%81%E3%83%A5%E3%83%B3%E3%83%89%E3%83%B3-%E3%82%B9%E3%83%B3%E3%83%87-250g/dp/B004Q52O22/ref=pd_sim_sbs_fb_1 食糞は韓国が世界に誇る独自の伝統文化です
スカトロジーが文化なのです
世界唯一ですw ぜひ世界中に韓国のこの貴重な伝統文化を知ってもらいましょう
・「嘗糞(しょうふん、??)」とは、人間の糞を舐めて、その味が苦ければその人物の体調は良くなっており、甘ければ体調が悪化していると判断する。
・「嘗糞憂心」、父親が病気になったので帰郷すると医者に、糞を嘗めて見ないと状態が解らないと言われ、その味が甘かったので憂いたと言う故事。
・こうした風習は朝鮮時代まで続き、日韓併合後に禁止された。
・「嘗糞遊戯」、嘗糞が娯楽化し、人の糞を舐めてその味で誰の糞であるか当てる遊び
・嘗糞は「お世辞の言葉」としても使われ、お世辞の度が過ぎる輩の事を「嘗糞之徒」と言う。
・「人中黄」、冬期に竹筒に人糞と甘草を交ぜ地中に埋め、夏期に取り出し乾燥させて粉末にしたもの
・朝鮮王の中宗は、解熱剤として人糞を水で溶いたものを飲んでいたという(東亜日報 2005年8月22日)。
・20世紀に入っても人間の大便を民間医術に使用する例があり、『最近朝鮮事情』には重病人に大便を食わせる例が載せられている。
・栄養不良の際には、十二・三歳の童の小便を服する
・内臓病には犬の糞水を1日二三回服用する、または農家にて永年使用せし小便溜の桶を煎じて飲ませる(排泄物に神秘性を感じる風潮の影響)
・高熱の場合には、解熱剤として野人乾水(大便を水で溶いた物)を飲用する(李氏朝鮮時代・中宗)
・梅毒の場合には、竹筒に焼酒(焼酎)を入れ、注ぎ口を蝋で塞ぎ、便壺の中で半年間漬け込む。便壺から取り出し竹筒をよく洗い、中の酒を飲用に用いる。半年以上の服用が理想的。
・肌荒れには、小便を肌に塗り込む、特に小児の小便を重用する
・精力強化のためには、カイコの糞を食べる
・早漏の対策には、馬糞を食べる(馬の精力にあやかった呪術的意味合いが濃い)
・ホンタク、ガンギエイの人糞漬け
538 :
デフォルトの名無しさん :2012/02/24(金) 11:00:26.52
接続文字列を保存したい がソースに書くのは嫌だ 暗号化してもキーコンテナに格納するにしてもそもそもパスワードをどのタイミングで格納するんだ? インストール時か?それとも別の設定アプリを作らねばならぬのか パスワードの類ってどうやって管理してます? こんなことならテーブルでユーザ作らず、データベースでユーザを作ったほうが良かったのかな
>538 接続文字列なんかはアプリケーション設定に突っ込んでる パスワードは保存しろと言われたら、適当な共通鍵アルゴリズムで暗号化したパスワードをユーザ設定に突っ込んでることがおおいかな ただ単純に暗号化だけだと、上設定ファイル奪われたらパスワード盗まれたのと同じだから、 セキュリティ云々言ってくる場合はパスワードは絶対保存しない というか、 テーブルでユーザを作る →データベースにユーザ情報をつくり、そこにハッシュ化したパスワードのテーブルがあり、その情報で認証 データベースでユーザを作る →各ユーザごとに接続ユーザを作成し、データベースの認証を利用 でいいの?もしそうならデータベースの認証を利用だとロールの設定とかめんどくさくないか? 人数少ないから別に問題なしみたいな感じ?
VistaでVisual C# 2010 Expressを使っています。 ファイル→新しいプロジェクト で Windowsフォームアプリケーション を選んで、 ボタンを1つ配置し、そのClickイベントに次の1行を書く。 MessageBox.Show(System.Net.Dns.GetHostEntry("127.0.0.1").HostName); (127.0.0.1の部分はなんでもいい) いったんプロジェクトを保存しておく。 「デバッグ開始」では問題が起きないが、「ソリューションのビルド」で作ったexeファイルを実行すると ボタンをクリックした瞬間にノートン(Norton Internet Security 2012)のSONARが反応する。 このexeファイルをノートンで「信頼」しても、たとえばソースコードに改行を1つ追加して再度ソリューションをビルドして exeファイルを実行すると、再びSONARが反応する。(やっていることは同じはずなのに…) ノートンを使っていて同じ症状になる人はいますか?
int main() { return 0; } これGCCでコンパイルするとavastが反応するってのは聞いたことある
実行ファイルの作成日時とかを見て別バージョンとみなされてるんじゃないの?
Windowクラス名見てんだろ .netだとクラス変わるからなあ
実行ファイル名指しだと問題になるのなら取り合えずは プロジェクト全体のフォルダごとでもいいので例外許可しておけよ
自分の場合、Dns.GetHostEntryを使ったソリューションをビルドするとほぼ確実に誤反応をくらって困ってます
自分のコンパイル環境だけで起こる問題なのか切り分けたいので、他の人が同じプログラムをビルドするとどうなるのか知りたいです
>>541 単純なプログラムで誤反応されるのは困ります…
>>542 バイナリ比較してみたんですが、ソースが同じでもバイナリとしては毎回違うものが出来あがっているようで
>>545 まあそりゃそうだ
実行ファイルと言えど中身は処理コード以外に情報埋め込んでるからなあ
windows用exeをdosモードで実行するとメッセージ出すような仕組みも入ってるし
dosの実行部分のコードはずっと変わってないでしょー borlandのを逆アセしてみると律儀で笑える
548 :
540 :2012/02/24(金) 21:40:36.84
一度、ノートンにこのテストコードをfalse positive報告してみたところ
「対応したので定義ファイル更新してね」(大意)と言われたんですが、同じコードで再ビルドしたら結局また反応してしまいました。
うちのC#/ノートンだけに問題があるのか、それともノートンが反応するようにC#のDns.GetHostEntryに潜在的なリスクがあるのか、
ノートンのSONARがタコなのか…
このスレにもしノートンユーザがいたら、
>>540 を試していただけると助かります。
>>544 自分の環境だけでexeファイルを実行するのなら除外設定する手もあるんでしょうが
プログラムを配布しようと思っているので…
>>548 お使いのウイルス対策ソフトの設定でフォルダごと除外にしてくださいって
書いとけばいいだろw
オンラインゲームなんてそれしないとだめなことが多い
ランチャーから実行ファイルに見えないファイルを起動して・・・とかやってるから
>>545 実行ファイルとはそういうものなのだよ
ソースなんか同じでもまったく同じものは2度とできない
覚えておきたまへ
はい
>>527 君は入れてなくても、PE ヘッダーに入れることになってるから。
>>536 >そのなかにプロジェクトの成果物のexeが並んでるのを見たことある?
うちは tags には入れてる。
tagsは更新しないんだからあってもおかしくないよね 「俺はないな」 プッ
554 :
523 :2012/02/26(日) 10:44:02.15
>>552 なるほど。PEヘッダですか。
バイナリ作成日時が記録されているようなので、これが原因のようですね。
ほかにもあるかもしれませんが、いずれにせよ同じバイナリにするのは
難しそうですね。
バイナリをバージョン管理することに関してですが、
メインとなるプロジェクトのバイナリを生成するための
ユーティリティツールが多数存在しており、
そのビルド環境を全員が持っているわけではないので、
ユーティリティツールのバイナリそのものをバージョン管理しています。
ユーティリティツールがコミットされると依存するデータが再コンバートされてしまうので
同じバイナリにならないかと考えた次第です。
必要ないリビルドをしなければいいだけじゃないのか?
556 :
523 :2012/02/26(日) 11:51:39.81
>>555 1)
Aさんが変更したソースとバイナリをコミット。
2)
Bさんが作業コピーを更新。
ソースが更新されているのでビルドされる。
本来なら問題ないが、バイナリだけ更新された状態になる。
といったかんじでしょうか。
ああ、なるほど。 普通にタグ打つ時にだけ実行ファイルを含めればいいだけじゃないの?
・まっとうな構成なら、utility.sln, app.slnとか分けてるはず → 変更するつもりがないなら、utility.slnを開かなければ良い ・ちゃんと考えていれば、ビルドの出力先はバージョン管理下ではないはず → 変更した人が./src/.../tool.exeから./toolsとかにコピーする
参考になるかは知らない /project/firmware/trunk/build/ ← ビルド環境 /project/firmware/trunk/src/ ← ファームのソースツリー /project/firmbuilder/trunk/src/ ← ビルド環境のソースツリー /project/firmbuilder/tags/1.0.0/ ← ビルド環境(古い) /project/firmbuilder/tags/1.0.1/ ← ビルド環境(最新) 以前の勤め先ではこういう感じになっていた で、firmbuilderのtagsが更新されると、firmwareのbuildも更新されるようになっている firmware/trunk/buildはfirmware/buildだったかもしれない 微妙に覚えていない
リビルドかけたらびびるど
びびるびるびる
>>556 必ず2回ビルドしてもらってそのときのexeとっておけばいいじゃない
その2つを比較して出る差分以外の部分が変わってたら何か変わったって判断できるんじゃない?
そこまでするなら、コンベアツール作ればいいだけだと思う。
ICryptoTransform.CanReuseTransformプロパティの説明の >現在の変換を再利用できるかどうかを示す値を取得します。 の「現在の変換を再利用」とは具体的にどういう事なのでしょうか。
インスタンス使い回しのことのような気がするが詳しい人を待とう
MD5CryptoServiceProviderのCanReuseTransformは常にtrueって書いてあるけど TransformFinalBlockした後はTransformBlockできなくなる… そういう意味じゃないのかな
>>540 試しに俺の作成中のをexeから実行してみたらavastが反応して強制終了させやがった
Dns.GetHostEntryも使ってないし起動した瞬間反応するし場所特定難しすぎる
今日からVisual C# Expressを使い始め、チュートリアルをやっているところなのですが、 チュートリアルの説明文にマウスポインタが乗ると原文が表示されるため他の文が隠れてしまい、見難いです。 原文を表示させない方法はありますか?
VC#関係ないウェブページのHTMLの話だな javascriptでも切ったら? ページの右上に設定アイコンあるから
>>570 ありがとうございます
すごく快適になりました
進捗状況がわからないときバーが流れるだけのProgressBarってありますか?
ふらっと行けよ
はい、自分が使ってるクラスのメンバすら確認してない
ありがとうございました! 初心者スレがあるんですね!次からはそちらに行きます
577 :
540 :2012/03/01(木) 01:21:41.80
>>568 ちなみに、そのプログラムってネットにアクセスするような機能を含んでますか?
Dns.GetHostAddressesの引数にIPアドレスでなくホスト名を指定した場合も
>>540 と同じようにノートンのSONARが誤反応しました
どうもうちの環境では、ホストを正引きするコードを含むリリースビルドに引っかかっているような気がします
しかし不思議なのが、VB.NETで同じメソッドを使っても誤反応しないんですよね…
誤反応はavast先生のお家芸だしな
>>577 含んでないですね。ローカルでのファイル管理ソフトなのでSystem.Net関係は一切使ってないです
心当たりはFileIndex使ってアクセスしたファイルやフォルダのID管理をDBでしているあたりかな
あとプロパティのデバッグのホスティングプロセスを切るとC#上でも出てくる
580 :
540 :2012/03/01(木) 21:23:24.26
>>579 ネット関係じゃないんですね
>あとプロパティのデバッグのホスティングプロセスを切るとC#上でも出てくる
これ、自分も試してみたら同じようにデバッグでも誤反応しました
C#でプログラムを書くのにVisaulStudioとMonoではどれぐらい差が出ますか?
かなり差がでますよ
Monoは開発環境ではなく実行環境 たとえばVisualStudioで書いてMonoで動かすことも可能 MonoDevelopのことなら、VSにも無料版あるからどうしてもLinuxで開発したいんでなければVSを選びましょう
Monoは消しゴム
MONOはOEMと聞いてがっかりした
VBやC#からWScriptShellでcmdに投げた処理をキャンセルしたい場合ってどうしたらいいんでしょうか? C#ならBackgroundworkerでCancelAsyncで拾えるんですけど、Runメソッドでcmdに処理を投げちゃうと動きっぱなしでVSで停止するしかない状態なんです・・・
名前付きのmutexとかを使って、ループの内部で別プロセスからのキャンセル指示をチェックするとかどう?
588 :
534 :2012/03/02(金) 01:50:59.89
RegularExpressions.Regex("\\d+") 0からの数値が取れる正規表現なんですが、うごきません。 どうしたらいいですか?
まずは日本語を勉強しろよ
System.Text.RegularExpressions.Regex rx = new System.Text.RegularExpressions.Regex("\\d+"); if (rx.IsMatch("123")) { System.Console.WriteLine("success"); } else { System.Console.WriteLine("failure"); }
>>586 COMのScriptControl使えばいいのに
592 :
デフォルトの名無しさん :2012/03/02(金) 14:43:19.94
うひょー
C#で他アプリ上のコントロールの値を取得するツールを作っています。 EnumChildWindows() とコールバック関数ですべてのコントロールについて処理を行いたいのですが コントロールがSpyで見て階層構造(対象ウィンドウから見て孫ウィンドウ)になっているものは コールバック関数が二回呼ばれます(同一ウィンドウハンドル)。 対象ウィンドウの直下にあるコントロール(子ウィンドウ)については、正しく一回だけ呼ばれます。 これはこういう仕様なんでしょうか? Win32APIの問題かとも思いましたが、Win32API質問箱スレはどうも機能していないようなので こちらで質問させて頂きました。 よろしくお願い致します。
EnumChildWindowsを再帰的に呼び出したりしてないか?
595 :
593 :2012/03/02(金) 17:23:36.87
>>594 ズバリそうでした・・・
何故かコールバック関数の最後で、意味もわからず EnumChildWindows() をまた呼び出してました。
その処理を削除したら正常に動作しました。
ピンポイントで的確なご指摘、ありがとうございました。
いえいえ
System.Uriってやばくない? いろんな所に使われてるのに validな文字列をちゃんとパースしてくれなかったりする だいたいNTFSの有効なパスを完全カバーしてるのかな
あ、おれのコードが糞だっただけだ ごめんねUriちゃん
糞はいつもそう言う
600 :
糞 :2012/03/03(土) 06:13:28.18
あーでも、例えば C:\#1\foo.bar みたいなシャープが含まれてる有効なNTFSパスを解釈できないじゃないか どうすんだこれ。教えて偉い人
601 :
糞 :2012/03/03(土) 06:45:31.39
いや違う Uriちゃんが悪いんじゃなくてWPFのMediaElement.Sourceがおかしいんだな Uriは正しいんだがMediaElementがもとのファイルのパスを復元できないらしい 復元できないパスの一例 \\server\AlbumName#2\AlbumNmae#2 - SongName.mp3
System.Web.HttpUtility.UrlDecode
Backgroundworkerについて質問があります。 最も基本的なForm1のボタンを押してプログレスバーのあるForm2を表示して進捗状況を表示してるんですが Form2にBackgroundworkerコントロールを設置せずにコードだけで実現する方法ってありますか?
まず理由を聞こう
>>603 こういうこと?
private void button1_Click(object sender, EventArgs e)
{
var form = new Form();
form.Show();
var backgroundWorker = new BackgroundWorker();
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.DoWork += (a, b) =>
{
for (int i = 0; i < 5; ++i)
{
backgroundWorker.ReportProgress(i * 20);
System.Threading.Thread.Sleep(1000);
}
};
backgroundWorker.ProgressChanged += (a, b) =>
{
form.Text = string.Format("{0} %", b.ProgressPercentage);
};
backgroundWorker.RunWorkerCompleted += (a, b) =>
{
form.Close();
};
backgroundWorker.RunWorkerAsync();
}
>>605-606 ありがとうございます!
VSで動かしてじっくり勉強させていただきます!
>>604 Form2にBGWコントロールを設置すると処理毎にForm2にコーディングする方法でないとスコープの関係でうまくいかないヘボなので・・・
処理後とにBGWのインスタンスを作成できればスマートに書けるんじゃないかと思ったもので
BackgroundWorker使う必要ないような .NET3.5以前ならThreadPool、.NET4ならTaskを使うのがいいと思う
>>608 ThreadPoolからのUIスレッドへのマーシャリングとかめんどくさい処理を全部やってくれるから超便利だよ
UI使わないならその通りだけど
C#5.0になればasync/awaitでBackgroundWorkerもお役御免だな
通知があるから微妙な気がする async awaitで進捗通知出せるか?
using (var fileStream = ...) // Open local file for writing using (var ftpStream = ...) // Open FTP stream { while (true) { var bytesRead = await ftpStream.ReadAsync(...); if (bytesRead == 0) return; await fileStream.WriteAsync(...); if (progress != null) progress.Report(bytesRead); } すっげえ微妙
その処理が丸々DoTaskの中に押し込まれていたと考えればそのまんまでしょ んでprogress.Report(bytesRead)の代わりにReportProgressが呼ばれていたと
while (true) とは泣ける
while (true)と書いた時の敗北感は異常 でも無理して条件文押しこむとコード汚くなるよね・・・
do { ... } forever; というのはどうか。
フォーエヴァーとかカッコいいな
ラベルとか
じゃあ男らしくgotoで。 しかし、昔から無限ループにwhile使うなってお説教があるけど、個人的にはよく意味が分からん。 分からんというか、言ってる奴の中二病的なこだわりとしか思えんね。
なに、FTPからダウンロード中は無応答なアプリ作るの?
623 :
デフォルトの名無しさん :2012/03/04(日) 02:08:57.58
ダウンロード系って非同期を実装してなかったっけ?
>>622 非同期処理が無限ループの中に入っているように見えるんだけど・・・
awaitだけは説明読んでもよくわからないなぁ コンパイル結果をReflectorで確認しつついろいろ実験しないと理解できなさそう
>>624 元のソース見れば分かるが、そのループもさらにasyncな親メソッドに覆われているので
そのawaitは親メソッドの呼び出し元まで遡って処理を続行する
だから無限ループ内で問題ない
for(;;)は?
無限ループにすると抜け出せなくなる可能性がでてくるからな だが100万回までとか適当な上限書くのもかっこ悪い
無限ループって怖くね?
ノ´⌒ヽ,, : : γ⌒´ ヽ, //""⌒⌒\ ) : 無限ループ怖い・・・ : / ") / ー ヽ ) / / (>)` ´(<i〈 : : 〈 〈 U (__人_) | 〉 \ \ ' // : : 〉 / / / 〈  ̄ ̄)  ̄) 7 / /
BackgroundWorkerをフォームに貼ってイベントハンドラ設定して開始したら無限ループなのか?w 無限ループといってもそれと同じだろ
634 :
デフォルトの名無しさん :2012/03/04(日) 11:59:14.71
>>605 ラムダ式を使わないコードを書いてもらえませんか?
調子に乗るなよ
ラムダ式を使わないコードが怠くて書いていられない体になってしまった・・・
仕事ではずっと .NetFramework 1.1 を使っていたけれど、ようやく 4.0 を使えることになりそうだ…
匿名関数ならOKかな?かな?
匿名掲示板のように次の処理の意見がバラバラになる
640 :
デフォルトの名無しさん :2012/03/04(日) 16:16:33.43
Labelにボタンを押す度、文字を表示したいんですが 押すと 新しい文 古い文 古い文 のように新しいのを上に表示できないでしょうか?
int i = 0; private void button1_Click(object sender, EventArgs e) { label1.Text = (i++).ToString() + "\r\n" + label1.Text; } みたいなのじゃ駄目なの?
Environment.NewLine使えよ
643 :
デフォルトの名無しさん :2012/03/04(日) 19:47:15.36
おかげさまで表示できました。 助かりました本当にありがとうございます。
ソフトを起動する時に、PCに必要な.NETランタイムがインストールされているかどうか確認することはできますか?
できますよ
647 :
デフォルトの名無しさん :2012/03/06(火) 09:24:02.44
フリー、シェアで評判の良いパターンマッチングのライブラリを教えてください。 画像解析って日本語ドキュメント少なすぎますよね・・・
c#じゃないけどOpenCV使え
1時〜2時までの間動作を行わないみたいな感じにプログラムしたいのですが たとえば13時〜1時みたいに翌日の時刻まで指定したい場合どうすればいいでしょうか? 定期的に繰り返すので日付指定はできません
650 :
デフォルトの名無しさん :2012/03/06(火) 12:07:42.81
>定期的に繰り返すので日付指定はできません こっちはどのくらいのサイクルなの?
時間を24時間表示で取得して if(now<1 || now>=13) return; みたいな
652 :
デフォルトの名無しさん :2012/03/06(火) 12:21:30.06
まああまりあれこれ拘らないで作るとなるとTimerで1secサイクルくらいで 判定式動かしてればいいかもね〜 PC起動してていいのなら PCを起動していたくないのなら時間をチェックして今度復旧して欲しい 時間に処理が繰り返されるようにタスクスケジューラーなどにセットするしかないんじゃないの? というかタスクスケジューラーってスタンバイからの復旧とかできたっけ?
待機を始めた時間からn時間
スタンバイ復帰できるタイマーはWaitable Timerなんかもあるかな
決まった時刻に、産業ロボットにenter key押させたらどうだろう?
どうだろうって、ギャグ(のつもりだと思う)としての評価を下せばいのか?
不合格
猫の手を借りる
659 :
デフォルトの名無しさん :2012/03/06(火) 14:36:24.34
タスク推奨 別アプリかにするか引数タスク用の処理を作るとかでいいじゃない? サービスやアプリで時刻監視ってのもありだけど、いろいろ不安だよね
>>649 開始時間のDateTimeを算出して時間数を指定したTimeSpanを足すだけだろ・・
どういう処理かわからんけど1secで時間チェックしてもCPUはほとんど使わないよw
いや、質問者そんな難しいこと言ってねーじゃん > たとえば13時〜1時みたいに翌日の時刻まで指定したい場合 これに答えればいいだけだろ?? なんで1secごとにチェックとか言ってんの?
663 :
デフォルトの名無しさん :2012/03/06(火) 14:51:39.30
>>662 >定期的に繰り返す
でも途中の時間は止めたい
じゃあ難しく考えないでTimerdで1sec単位で動かして時間チェックして
所望の時間だけ処理すればいいんでないのって話
シンプルにね^^
もっとほかにやりたいのならいろいろ方法はありますよと
でも
>定期的に繰り返す
これがどういうのかわからんから質問者の返答待ち
>>663 例えば起動した時、動かしたい時間まで3時間なら、タイマーに3時間セットすればいいだろ
1sec毎チェックする意味が判らん
>>664 質問者のレベルを質問内容から読み取れよ
>>649 を見てあまり変わったことはしないでベタな処理書いたほうがよさそうだなあってだけ
一定サイクル部分は1secなどで固定して後は自分が何かを処理したい時間になったら
処理すればいいだけ
もっと高度なことが出来る人なら
>>649 な質問にはならないと思うよ
666 :
デフォルトの名無しさん :2012/03/06(火) 15:04:14.13
当然実行サイクルがもっと長いなら1分とかに設定すればいいだけ
普通にタスクスケジューラー様に頼れよ^^
みなさまありがとうございます 具体的にはユーザーにx時からy時までの間処理停止 のxとyの部分を設定してもらうのですが y時がx時の翌日まで及ぶ場合どのように処理させれば良いのかわからなかったためです 毎日x時からy時まで動作を停止するという意味で定期的にという言葉を使用させて頂きました 言葉足らずですみません・・・
話が違ってきたなw
>>668 時間だけを指定させるならx,yの大小で場合分けすればいいんじゃない。
つまり 1)x == y 2)x > y 3)x < y を考えればいいだけだよね 1)はOKなのかよくわからんが3)はまあ問題ないと思うし 気になってるのは日付をまたぐ2)だよね
>>671 x==yのときはどうしたいのさ。
yを翌日とみなすなら2)をx >= yにする。
DateTime構造体に突っ込んで引き算すれば楽勝。
var start = new DateTime(2012, 1, 1, x, 0, 0);
var end = new DateTime(2012, 1, 2, y, 0, 0); で、
end - start とすれば差分はでてくるぞ。
673 :
デフォルトの名無しさん :2012/03/06(火) 15:48:45.85
失礼・・・私が質問者だ・・・
質問者だけど質問ある?
>>661 そういうのは質の悪いアプリケーション扱いだけどね。
CPU時間だけですむと思ってるのもおめでたい。
>>676 話の流れを読めよ
質問者のレベルに合わせただけってなってるだろ
まず誰もふらっと行けって言わねえのな
あ、てっきりふらっとだと思ってたわ。
オレオレも
浴槽の蓋
湯船入らない習慣がついちまった
風呂を洗うときの話じゃねえよ
そくそういう話をするね
どうですかこの見え透いたお寒い自演
よくそういうくだらない事思いつくね。
691 :
デフォルトの名無しさん :2012/03/07(水) 21:49:42.11
iTextSharpを最近知ったんですが、ググってもPDFの作成ばかりでPDFファイルの各種情報を取得するドキュメントがぜんぜんなく困っています・・・ PDFの総枚数、ビット深度(色深度)、ページサイズの取得メソッドをどなたか教えて頂けないでしょうか、お願いします。
GPLだけどいいのか? .NETでGPLとか使い物にならんぞw 自分がソース晒す気があってもライブラリがどうしようもない
自分で使うだけなんじゃないの?
GPLとか無視してりゃいいんじゃないの? 無視したら何か問題があるの?
696 :
デフォルトの名無しさん :2012/03/08(木) 10:32:37.31
i.TextSharp以外にC#から利用できるPDFのライブラリってありますか?
ライブラリのために多言語学習っていうのもありだな
>>695 バイナリの配布を受けた奴がバイナリをネットで公開する(止められない)
それを落とした俺がお前にソースの開示を要求する(断れない)
断れないっていうけど何か制裁措置的なものはあるの?
>>699 作者に対する批判的な意見の蔓延
作者に対するいやがらせ、誹謗中傷
作者のブログ・twitterへの放火炎上
haru free pdf
GPLに違反した時点で元のGPLソフトウェアを利用する権利が無くなるので それでもなおそのGPLソフトウェアを含んだものを配布するのは ソフトの海賊版を配ってんのと一緒
以降その作者はそういう目で見られ続ける
ま、実際屁でもないけどな
693が指してるライブラリってどのライブラリの話?
GPLと矛盾するライセンスを持つ他のライブラリでしょ
.NETでGPL〜と言ってるから、何か特有な事でもあるのかと思ったのよ 矛盾するライセンスとの競合は.NETに限らないと思うし
Javaに比べるとGPLで使えないライブラリばっかりなのは事実だと思う 公式のサンプルソースがMSPLだったりするし
匿名で配りまくればいいだけだな よしガン無視で行こう
匿名で配られてるソフトなんて誰が使うの?という疑問はある。
自分がつかってるソフトで作者の住所氏名などがわかってるものってあまり無いな
どこの誰かも分からない奴が書いた高速化記事やハック実行して PCが調子悪くなったんで助けてください …なんて質問はPC一般板やWindows板では3日に1回見るくらいありがち 信じられないくらい不用心なものだ
ライセンス守れないようなお子様が作ったソフトがまともに動くとは思えんなw せっかく作っても、誰も受け取ってくれないんじゃ無駄手間だね。
>713 それとこれとは全く関係なくね? むしろみんながライセンスを守っている中、 一人だけコード盗みまくって圧勝したソフトなんかよくあるじゃん
例えば?
たまーにGPLのコードが入ってたと話題になるけど、盗みまくって圧勝したソフトねぇ…? そう言われても思い浮かばないな。 よくあるって言うなら何があるかいくつか教えてよ。
ヒント:脳内妄想
煽るなよ 提示してくれることを祈って気長に待とうぜ
var hoge = new Hoge(); // Thread.MemoryBarrier(); Task.Factory.StartNew(() => /* hogeを使うコード */ ); この場合弱いメモリモデルの環境では hogeへの代入、またはHogeのコンストラクタ起動が Taskの生成・実行以降に行われる可能性があるので コメントの位置にメモリバリアを入れる必要がある。 という認識で合ってますか?
違うよ
721 :
デフォルトの名無しさん :2012/03/11(日) 14:32:47.40
32歳の日曜プログラマーなんですが 社内でちょっとしたツールを作ってる程度のど素人が今から職業プログラマー目指すのは無謀でしょうか?
大丈夫 履歴書には社内システムを作成・保守してましたとか書いとけ でもスレ違いつーか板違いだから続きやりたいならよそでな
まさに日曜日
やっぱ作者はVectorかどっかで公開するだけじゃなくて HP持ったりメアド公開やブログやコメント許可して声が欲しいもんか 公開だけなら炎上も何もないと思うが 2chでスレでも作られるのか
外人のとりあつかいが面倒くさい 英語できないってわけじゃないけど、スラスラって書けるわけじゃないレベルの俺にはストレスの原因だった
初期値がnullとnullでない場合の違いとは? 例えば Size nullでない int nullでない Font null
初心者用で聞け
値型か参照型か 値型は変数自体が値なので何も指していない状態とか存在しない
730 :
デフォルトの名無しさん :2012/03/11(日) 22:36:40.64
Sizeは構造体だっけ?
>>727 質問の意図を明確にしないと回答もらえるどころか煽られて終わるよ。
っていうか、その文章で他人に通じると思える感覚、おかしいだろ
構造体だよ?
733 :
デフォルトの名無しさん :2012/03/11(日) 22:37:57.49
ホントだ。感覚おかしいとか煽られたね。
結論はふらっと行けだばかやろう
参照型だよ 論じるに値しないから消えろ
?
素直にふらっとスレ行けばいいのに、なぜここで無知をさらそうとするのか。
740 :
デフォルトの名無しさん :2012/03/11(日) 22:48:23.31
>>736 参照でしょ
文字列なんて1文字もあればもっとたくさん保持してることもあるのに
値型なんてありえない
string test = "はこ"; AA(test); ここで"はこ2"になってない public void AA(string test) { test ="はこ2"; }
以降こいつに触った奴は処刑しますのでご了承下さい
さわんなばかやろう
教えたがりにも困るよな 便利なのは職場の中だけにしてくれよ
第一Cの文字列とC#のstringは扱いがぜんぜん違う
プログラミング.NETFrameworkの中から5ページも読めば値型と参照型の違いなんか把握できるのに本買うほどのやる気ない奴は本当に邪魔
本至上主義 新聞読んでない奴は馬鹿や小説読んでない奴は馬鹿とかテレビ見てる奴は馬鹿とか
>>749 新聞、小説、テレビと学術参考書を同列にするとか、脳味噌に寄生虫でも湧いてるんじゃないか?
まるで本買えばこの世のすべてが解決しそうなくらい思ってそうだな それとも否定されて悔しかったのか
本なんかGNU makeしか持ってない
プログラミング.NET Frameworkは良書だから会社に置いてあるの読んで損はないぞ?
会社は組み込み系なんで
>>751 レスのどこにも書いてない内容をでっち上げてまで反論するほど悔しかったのかよw
確度の不確かなWeb上の情報を集めて言語学習とか効率悪い
リファレンス読めば十分だろ
他の環境に比べれば情報の面でC#はすごく恵まれてるよ。
確度で言えば仕様書が一番なのは確かだなw
学習に適してるかどうかとは別だけどな。
C#はオブジェクト指向を知るにはかなり良い言語。 でも、GUIではデザイナとコードの結びつきがわからないとゴミになってしまう。 初心者は大体Viewから入るので、難関すぎる。
>>761 MVC知らない人はみんなその罠に嵌まるよな
全コードがForm1.csに入ってるフリーソフトとかよく見る
難関ってw
>>762 そうそう。そこからオブジェクト指向に発展すれば楽しい未知がアルんだけど。
>>763 一回知ってしまえば、応用でドウにでもなるんだけどね。
ちゃんとコードが読めることと、若干の勘を持ってないとはじかれる。
動けばいい
まぁ、それも正義だ。
学習能力が無い人はどの言語もだめじゃないかと
それは言えてる。
全コードがForm1.csに入ってたっていいじゃない
MVCは関係ないと思うよ。 っていうかそもそもMVCがそんなに良いとも思わない。 むしろWindows FormみたいにVとCを分けない方が直感的。
V、Cを分けたらVを使い回せない、Vを交換できない そんなこともわからないならそもそもMVC使ったことないんだろ
そしてCだけが残った
ちょっと何言ってるのかわか(
むしろ、VとCを分けずにどうやってVを使い回すのかと。 MessageBoxは典型的なVだから使い回しが効く。Cがくっついてたら邪魔。
Cって具体的には何をするトコなの?
UIのまうすとか?
最近はこんな初心者スレみたいな話題がよう続くな
Windows Formで言えば、Formのサブクラスにユーザーが自分で追加するコードがCでしょ。 ベースクラス(Form)とデザイナが自動生成したコードがV。 これらを別のクラスに分割した方がわかりやすい....って人はちょっとズレてると思う。
よほど心酔する誰かに吹き込まれたか 変な本つかまされたか
>これらを別のクラスに分割した方がわかりやすい....って人はちょっとズレてると思う。 この考えがズレてね?
Unityスレ気持ち悪いからここにきた あいつらクズなのにがんばってて痛いわ Unity使ってるやつの偉いやつでもカスだったし 布教活動に釣られてるそのUnity使いもどうでカスだろうな上がカスだから あいつらウザいな ゲームエンジンバカ さっさと死ね 凄いやつはUnityなんて使わなくても 昔からゲーム作ってたしな 死ね
ガキはこのスレでも引き取ってない お帰り願おう
なぜこっちにかいたし。
C#つながりとか?w
>>775 基本的には、ルーティング。
どこ押したらどのメソッドを呼ぶかとかの関連付けのみ。
ウェブだとわかりやすいんだけど、
URLをデコードして、モデルのメソッド呼んで、どのビュー返すか選ぶ。
リッチクライアントだと、1つのページ/ウィンドウ内でころころステートが変わるんで、
データバインディングみたいな仕組み使わないと大変。
それ違うと思うけど.... 妙に狭義に解釈しすぎなんだよそれ。 狭義に解釈してる、というより、言葉のもともとの使われ方を知らずに の自分の現場のやり方を語ってるだけ
キリスト教ユダヤ教 両方死ね
>>786 もともとの定義通りだとフォームはどう設計すればいいの?
妙に狭義っていっても、それほど外れてない気がするけど。
最近はc++最強厨やpython厨が来なくなったな つまらんね
c++MFC最強厨の間違いでした
メッセージボックスガチュウオウニデナイー バグバグー
C#も機能が極まってきたあたりでグーグルみたいな掌返ししそうで怖い Java最強伝説あるで
向こうはすでに覚醒したボラクルがおるやろ
Java最強はないだろ。既にJavaはC#のマネばかりだし。
しかも標準化する気は無いようだし 特許チラつかせて迫ってくるし
>>795 売るならロイヤリティ寄越せって時代が来てもぜんぜんおかしくないよな
JavaMEは既に取ってるだろ Androidから取れないから今取ろうとしてるし
マジかよ、Javaも悪い奴なのかよ、残るはC++しかないのか
Dも残ってるぞ
Dは良い奴だが突然の仕様変更が怖すぎる。
今時、C++MFCなんて使う理由がないでしょ?
ATL先生を忘れてもらっちゃ困る
803 :
デフォルトの名無しさん :2012/03/15(木) 19:50:44.91
C#って結局どこで使い道があるのか未だに不明なんですが・・・
業務システム C#に限らずメジャーな言語なんてほとんどそうだから
業務アプリだと、C# 飛び越えて VB.NET が多かったりするけどな
日本ほどのVB天国はねえよ こんなところもガラパゴス
業務アプリはなぜかVB多いな 昔VBで凄まじいゴミコードの塊になってるプロジェクトあったわ 女ばっかでやってたけどみんなもの凄い顔して淡々と作業してたのが印象的だった
一説には業務アプリケーションの30だか40%をVB6が占めてると聞いたわ そらVB6のサポートがあるかないかで必死になるよな
809 :
デフォルトの名無しさん :2012/03/15(木) 20:37:30.21
検索くんか こんなとこに貼るなよ
マクロの知識と組み合わせられるからだろう
組み合わせられるんじゃなくて新しいこと勉強しなくていいからだよ
何言ってるのかなと思ったらVBAのことか
814 :
デフォルトの名無しさん :2012/03/15(木) 21:29:56.44
日本人は過去からの継続が美徳だからな 単なる怠慢っていえるけどw
でもプログラマなんて常に新しい知識を仕入れなきゃいけないものなんだけどな
816 :
デフォルトの名無しさん :2012/03/15(木) 21:33:49.96
>>815 そういう職業に日本式糞ルール入れるからIT業界全般糞なんだよw
817 :
デフォルトの名無しさん :2012/03/15(木) 22:00:36.26
VisualStudio の単体テストで byte[] expected = Encoding.Unicode.GetBytes("test data"); byte[] actual ; actual = targetClass.TargetMethod(); Assert.AreEqual(expected, actual ); とかやると、 System.Byte[] が期待されるところに System.Byte[] が返された云々といった ようなエラーで失敗するのですが、バイト配列の比較にAreEqual() は使えないのでしょうか?
使えるか使えないかはその型において等値がどう定義されているかによる お察しの通りByte[]には使えない
Byte[]には使えないって言うと語弊があるな すべて同じ要素かどうかの検証には使えない
CollectionAssert.AreEqual()ならできる
SequenceEqualも使える
822 :
デフォルトの名無しさん :2012/03/16(金) 00:31:46.42
javaの説明ページ探せ
>>822 >iText で PDF のすべてをサポートしているわけではない。より特殊な機能については、ここでは説明しない。
>そが、iText で実装済みかどうかは、メーリングリストに質問を入れるべきである。
>>816 奴隷に言語の選択権なんてないし勉強する機会も与えず少しでも多くの成果を上げなきゃいけないので
ブラック企業なんですね・・・
ログ出力画面についてよいアイディアを探しています? 現在 string ログ += 新しいログ でおこなっているのですが それだと高速な処理が必要なときにログ表示部分がボトルネックになって しまっています。(つど文字列を生成しているのだからあたりまえですが・・・) そこでList<string>に追記していく方法にしてDataGridViewに表示したいのですが Addする度にDataGridView->DataSourceに入れると遅くなってしまいます・・・ 参照だけ渡してBindingしようかと思ったのですがINotifyPropertyChangedを実装しても 変更通知が出来ず途方に暮れていますorz なにかよいアイディアかBinding後にソース更新を通知する方法はないのでしょうか?
言っておくが、バインディングができるようになったらなったでボトルネックになるぞ 追加のたびに文字だけじゃなくレイアウトの更新処理も走るんだから
StringBuilderって最近だと使われないの?
使うよ。でも、つどToStringしてたら+=と大差ないよね。
そして最終的には同じスレッドに置かないことに帰着する
TextBoxにはそういう処理のための内部StringBuilderが入ってるからその機能使えば?
833 :
デフォルトの名無しさん :2012/03/16(金) 21:22:00.95
速度が気になるのに、.NETを使うのはなぜ?
NETだから
そこにあるからさ
836 :
デフォルトの名無しさん :2012/03/16(金) 21:54:45.89
>>824 いや、サンプルはC#の構文なんですが・・・
このスレの人ではわからないってことでよろしいでしょうか?
では別スレで質問させて頂きます、お騒がせしました。
.NetFrameWork3.5のWindows.Forms.TextBoxで、TextChangedイベントが ・キー入力(BackSpaceやDelete含む)で呼ばれたのか ・オートコンプリートの選択で呼ばれたのか を判定する方法はありますか?
強いて言うならいきなりTextChangedが発生するのがオートコンプリートで KeyDownとかが先に発生するのがキー入力だけど そんなので判定とか無理だろうね ペーストとかもあるし
839 :
デフォルトの名無しさん :2012/03/16(金) 22:33:26.57
>>832 AppendTextのことだろうか?これってたんに+=してるんじゃないの?
>>838 オートコンプリートの候補表示中は、アローキー上下でKeyDownが呼ばれて無いようなので、
それで判定に使えるかな?ペーストもCtrl+Vの場合だけなら大丈夫そう。
いろいろ試してみます。ありがとうございました。
TextBoxの内部はコモンコントロールだろうから そんなレベルの話じゃないような
843 :
デフォルトの名無しさん :2012/03/17(土) 15:59:33.46
色深度取得できました みなさんたいしたことないですねw
昔は即答できたものだが、膝に矢を受けてしまってな・・・
全部のライブラリの使い方マスターしてたら神だわ 特に態度が気に入らない奴の為に調べて教えるなんてしたくもないし
画面描画について質問させてください。 読み込んだ画像ファイルの上に半透明な枠を表示し、その枠に沿ってトリミングするアプリを作っています。 半透明な枠はマウスでサイズを変えたり掴んで画像上を移動させたいのですが、 読み込む画像ファイルが大きくなると半透明な枠の動きがカクカクになってしまいます。 以下のソースは該当箇所の作りだけを抽出した 読み込んだ画像上を半透明な枠がマウスにくっついて動くソースなのですが、 カクカクせずに枠を動かすにはどう改善するべきでしょうか? private Bitmap canvas = null; private Bitmap original = null; private void Form1_Load(object sender, EventArgs e) { original = new Bitmap("C:\\123.jpg"); canvas = new Bitmap(original.Width, original.Height); pictureBox1.Image = original; } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { Graphics g = Graphics.FromImage(canvas); g.DrawImage(original, 0, 0, original.Width, original.Height); Brush brush = new SolidBrush(Color.FromArgb(128, Color.Green)); g.FillRectangle(brush, new Rectangle(e.Location.X - 50, e.Location.Y - 50, 100, 100)); pictureBox1.Image = canvas; }
つ winformでやるな
848 :
847 :2012/03/17(土) 16:46:45.76
改善するかどうかわからんけどひとつ思いついた方法としては 今のようにoriginalをマウスを操作するたびに転送するんじゃなく originalはそのままpictureBox1.Imageに渡したままで FillRectangleの表示はpictureBox1のPaintで描画するといいかも
849 :
デフォルトの名無しさん :2012/03/17(土) 16:48:46.80
>>847-849 ご指摘ありがとうございます。
PaintメソッドでpicutreBox1のGraphicsオブジェクトを
直接描画することでヌルヌルに動くようになりました。
折角なので改善後のソースを残しておきます。
private Bitmap canvas = null;
private Bitmap original = null;
private int x = 0;
private int y = 0;
private void Form1_Load(object sender, EventArgs e)
{
original = new Bitmap("C:\\123.jpg");
canvas = new Bitmap(original.Width, original.Height);
pictureBox1.Image = original;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
x = e.Location.X;
y = e.Location.Y;
pictureBox1.Refresh();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Brush brush = new SolidBrush(Color.FromArgb(128, Color.Green));
e.Graphics.FillRectangle(brush, new Rectangle(x - 50, y - 50, 100, 100));
}
851 :
デフォルトの名無しさん :2012/03/17(土) 19:13:44.89
煽りじゃなくて教えててください ↑のソースはPaintインベントハンドラ内で毎回 new SolidBrushを行うっていいのでしょうか? brush.Dispose()を行わなくてもいいのでしょうか? まぁ、そのうちに、GCによって回収されるのでしょうけど、 セオリ的にはどうするのが良いのですか?
もちろんusing
まあスコープをひとつ上に上げてイベントハンドラの外においておけばいいんでないの?
854 :
850 :2012/03/17(土) 19:17:16.09
上のソースは必要箇所だけ抜き出すために即興で作ったので細かい粗があります。 綺麗に書くならメンバとして定義するなりして 毎回インスタンスの生成は避けるべきですね。
んで、これは中級者の質問なの?
どうかんがても超初心者だろ?
ブラシの生成くらい屁でもねぇよ 毎回生成してDisposeしようよ WM_PAINTうんちゃらでCreateBrushしてDeleteObjectするのと同じだよ
新鮮なブラシの方が艶が出るしな
つやのない色を表現したい場合は古いブラシを使い回せばいいですか?
860 :
デフォルトの名無しさん :2012/03/17(土) 22:42:06.85
C#ってちょっとしたアプリでも 20MB近いメモリを食うのはなぜ?
861 :
デフォルトの名無しさん :2012/03/17(土) 22:46:20.84
失うものは大きいのよ
搭載メモリが256MBの時代じゃないんだからさ、富豪的にメモリを使ったって良いじゃない。
使用メモリは少なければ少ないほどいい 効率悪くても常時1ビットずつしかメモリ経由しないソフトこそ最高だ
865 :
デフォルトの名無しさん :2012/03/17(土) 23:40:55.29
winformだけでもどれだけメソッドなんかを抱えてるんだよ winformを形成するだけでもどれだけのクラスを中でインスタンスにしてるかわからんし
867 :
デフォルトの名無しさん :2012/03/17(土) 23:46:50.15
そこまでグチグチいうのならVC++でやれよ
メモリに余裕があり過ぎてなかなかGCさんが本気出してくれない。
Windowsのシステム自体ファイルダイアログ表示するだけで20個近くスレッド作るらしいじゃないか(非.NETでも) スレッドコンテキストだけでお腹一杯になるよ
870 :
デフォルトの名無しさん :2012/03/18(日) 00:23:45.57
C#使ってて速度はすごく重要だと感じるけど メモリ使用量が多いとは画像処理してても感じないな そもそも画像処理する端末で今時メモリ4GB積まないとかありえないだろ InDesignはマルチコアと4GB以上のメモリ必須だし
871 :
デフォルトの名無しさん :2012/03/18(日) 00:26:00.51
ウィザードと呼ばれるほどのプログラマーなら話は別だが 俺みたいな底辺には豊富なライブラリとサンプルコードはめちゃめちゃありがたいよ そもそも日本にウィザードと呼べるほどのエンジニアなんているのか?
↑ なにが言いたいのか、wkwk
俺くらいのホットドガーになれば、なんでも余裕なんだけどね
配列の要素を2倍したい時にこう書くと値が書き変わらないんだけどなぜ? Array.ForEach (matrix, m => m*= 2); どうやって書くのが正しい?
for(int i=0;i<Array.Length;i++) { Array[i] = Array[i] * 2; }
んで、これは中級者の質問なの?
今後は毎回単語を変えながら中級者の質問か確認するようにするよ 俺の質問には初心者用行けとか言いやがって
なんだよ そんなにいじけんなよ 回答者だって色んな奴がいるさ みんなマニュアルにしたがって統一されてるわけじゃない おにーさんはできる範囲で答えるよ
881 :
874 :2012/03/18(日) 11:41:07.41
>>875-876 問題のレベルが把握できないなら無理にレスしないでもらえますか?
これはそういうレベルの低いことを聞きたいのではなく
delegateとか無名関数とかそういう事を聞いているのです
お前の質問どれだよ。 答えてやるから二度と来るな。
>>881 値型だからデリケートの引数に渡したときにコピーされちゃってるだけだよ
メソッドの引数に代入しても値型だと外部に影響しないだろ
まさにそれ
思いっきりレベルの低いことを聞いてるよな。
初心者向け
いいかお前ら、名前のあるメソッドを使うのが初心者で、 匿名メソッドを使うのが中級者なんだよ 分かったか
こーゆーのでいいのかね。 自分で書くの面倒だから検索したのをそのまま張ってみるけど。(所要時間1分未満) int[] ary1 = { 0, 1, 2, 3, 4 }; int[] ary2 = Array.ConvertAll<int, int>(ary1, delegate(int i) { return i + 1; });
内部的にはforループなのに、あえて そう書く理由がわからん
というより、それは単に888がfor使う方により馴染みがあるからそう感じるってだけの話。
891 :
デフォルトの名無しさん :2012/03/18(日) 13:45:37.45
forで回すより高速だとか思ってる奴も居そうw
副作用だからなあ 関数型脳の人ならむしろループの方を好むんじゃない
893 :
デフォルトの名無しさん :2012/03/18(日) 15:53:53.94
Aero Glassを利用した半透明ウィンドウってみんな使ってる? フォントやコントロールを全部手動で描写するの超絶めんどう・・・ なんかいいライブラリないかな
894 :
デフォルトの名無しさん :2012/03/18(日) 16:05:43.52
お前らまだループイヤンくん相手してたのか
ループ嫌といいつつ一番ルーピーなんだから放置しとけw
>>893 つWPF
かっちょいいと思ってはじめAero多用してたけど 結局視認性とか考えるとイマイチなんだよね
結局Windows95の頃からのスタンダードな作り方が一番いいよな Skypeのインターフェイスとかもどこクリックしていいかわからなくて使いにくい
俺が(操作上)やろうとしていることを妨げなければ何でもいいよ 貼り付け無効になってるだけでそんなもの二度と使わない
x使わない o使い方がわからない
「使わない」が×ということは、使うということだ。
!使わない という意味か、勉強になる
>>897 -replace "使わない","使い方がわからない"
ListView にデータを追加するとちらつきが発生します。 初めのうちはちらつかないんですが、データをどんどん追加し、ListView の枠をはみ出すと、スクロールバーが表示されずにちらつきが発生します。 ListView の中に EditBox を定義し、DataContext で追加を行うという仕組みです。 スレッドとかBeginInvokeとか色々と試しましたが、どれも上手くいきませんでした。どうすれば良いでしょうか? ちなみにWindows Form ではないので、BeginingUpdate などは使えません。
903 :
デフォルトの名無しさん :2012/03/19(月) 19:37:28.34
winformは仕組み上配下のコントロールのチラつきを 完全に抑制はできないんじゃないかな
ダブルバッファとか設定してみれば。
フォームを終了した場合、ログを吐くようにしたいのですが、 FormClosedイベントにログ出力処理を書いたところ 出力されたりされなかったりします。 画面終了時にFormClosedイベントが呼ばれない事ってあるのでしょうか?
closing
>>905 書き込んだ内容がFlushされる前にプログラムが終了してる
>>906-907 ありがとうございます。
Closedは画面終了後、必ず実行されるものだと思ってました。
Closingを使うように変更します。
なんで最近初心者多いの? ふらっとC#っていう初心者スレがあるんだからそっちに書いてくれ
いや毎回書くからね 態度を改めるまですっこみません
病院行け
C#ってどこからダウンロードするんですか? 無料で使えます?
これってふらっとでするようなしつもんじゃないですかねはぁーん
ここに書き込みできるのは自称中級者以上だということをきちんと辨えて欲しい
>>914 ありがとうございます
ダウンロードしてみます
男割りだ!!!!
920 :
902 :2012/03/20(火) 21:23:20.79
ダブルバッファとかも試してみたんですが、うまくいかないんです。 多少のちらつきならまだ仕方ないかもしれないんですが。 データの追加量が画面からはみ出ると、表示データが物凄いスピードで 上下にぶれだすんです。
我等要求素巣高度圧付労出度
922 :
デフォルトの名無しさん :2012/03/20(火) 21:29:32.76
DataGridViewに代えて仮想アップデートとか試してみれば?
仮想化するといろいろ自分でやらないといけないみたいなのを 以前どこかでみたけどどうなの?w
WinFormじゃないってことは何? WPFかSilverlight?
926 :
デフォルトの名無しさん :2012/03/20(火) 21:49:57.69
>>902 >ちなみにWindows Form ではないので、BeginingUpdate などは使えません。
なになにじゃないから
ではなくて
なになにだから
という情報が必要だと思うんだが
ティアリングとかそう言う話ではなく なんかの具合で高速上下スクロールになってるように聞こえる
aa
3つ作らなきゃいけないアプリケーションがあるとして、それぞれ別の人が担当してる。 3つのアプリケーションの中で共通で行う処理があって(重複する処理)、それをまず作らなきゃいけない。 たぶんクラス3つ程度のものなんだが、そういうのってCSファイルぽいっと渡して使ってねーって感じでいいの? それともビルドして1つのdllファイルにしたほうがいいの?
ソースコード渡したらビルド通らない時にカスタムされちゃって収集がつかなくなったりしないのかな。
あれしてないの? 差分管理とか
まぁ普通Subversionとか使うよね そこまでする気ないならdllをみんなで使って、リリースするときだけソースファイル使えば?
>>930 dllとかした場合
dll更新したらその3つのアプリはすべて更新しなければならないのだろうか?
この場合dllにバージョンをもたせて不具合がおこってるアプリとそうでないアプリとで
更新をしたりしなかったりするんだろうか?
dllを作成すると間違いなくdllのバージョン管理が必要になる
この共通の仕方もノーコストってわけにはいかなそうだよね
dllのバージョン管理をいい加減にして使ってるdllのバージョンがわからなくなったら
dllはとたんに爆弾にかわる
3つそれぞれにもたせたほうが後の更新はいくらか楽かな?
どっちでもいいから好きにしろ
936 :
デフォルトの名無しさん :2012/03/21(水) 00:46:01.16
ここで相談されてもなあw
リポジトリを3つのアプリ+共通部分とか作っちゃうと またどれかのアプリのために更新した共通部分と 残り2つのアプリのためにある古い共通部分とでもめる この問題が起こるぐらいなら 俺は全部に同じソースをもったほうがいいと思う んでアプリごとカリカリチューニング 共通部分は思い切ってすてる 共通部分のバージョン管理のコストがクラスたった3つじゃ割りに合わない
みんなありがとう。
svn使ってるよ。
>>934 そう。その共通処理で不具合あったら、3つのアプリは全部更新しないといけない。
だから共通処理として分離させといたほうがいいと思うんだけど、3つのアプリに渡すのってdllなのかな
CSファイルなのかなってとこで悩んでた。
>>937 なるほど。
そういう考え方もあるのか。はじめに共通処理は作るけど、それぞれのアプリに組み込んだ後は、
それぞれで管理してねって感じか。変更も自由。共通処理でバグあったら教えてねみたいな感じかな。
C#始めてまだ2日くらいですが、困ったので質問です。 private void button1_Click(object sender, RoutedEventArgs e) { MessageBox.Show("test"); } これでbutton1のオブジェクトをクリックするとメッセージボックスが表示されるのですが なぜEventArgsの部分をRoutedEventArgsにするとこれだけで{}内が実行されるのでしょうか? イベントハンドラで button1.Click += new RoutedEventHandler(button1_Click);と{}内の最初の行に入れた場合は button1というオブジェクトを指定してるので、そのオブジェクトがClickされた時イベントbutton1_Clickを 実行するっていうのは分かるのですが、上の場合でなぜオブジェクトを指定していないのに実行されるのか分かりません。 また10行くらいのコードだと上記のボタンクリックのイベントがどちらも成功するのですが 100行くらいのコードだとどちらにしてもボタンクリックのイベントが実行されません。 エラーもないのにクリックしてもイベントが実行されなくて困ってます。 この場合どこに問題があると思われるでしょうか?
winformなのかWPFなのかSilverLightなのか
10行と100行の中身の違いは言わないの? 行数の違いだけ言うということはC#は行数によってエラーかそうでないか変わってくるということ? 10行と100行はすべてコメントでも同じ結果になった? エラーがないと言い切ってるなら問題ないんじゃない?
>>938 >そう。その共通処理で不具合あったら、3つのアプリは全部更新しないといけない。
>だから共通処理として分離させといたほうがいいと思うんだけど、3つのアプリに渡すのってdllなのかな
だから?って接続詞の意味がわからない
100行のコードが駄目なら1000行書けばいいんじゃない
10行のコードは多分XAMLの方に関連づけがあるんだろ
946 :
939 :2012/03/21(水) 09:17:53.98
>>941 すみません、実際恐らく行数の違いは関係ないと思います。
中身の違いですが、10行の方はボタン1個とテキストボックス1個配置した簡単なやつで
100行くらいの方はボタン6個とテキストボックス1個配置してちょっとレイアウト変えたりしてみました。
10行の方ではちゃんとボタンをクリックしたら実行してくれるのですが、100行くらいの方はどれもボタン反応しません。
ボタンのイベントの方では10行の方も100行の方も同じprivate void button1_Click(object sender, EventArgs e)のあとに
button1.Click += new RoutedEventHandler(button1_Click);を入れたものを使ってます。
(100行の方はボタンが6個あるので、button1_Clickなどの部分はボタンごとに変えてます)
ボタン1個だけ見れば全く同じコードなのになぜか動かなくて困ってる状況です。
> ボタンのイベントの方では10行の方も100行の方も同じprivate void button1_Click(object sender, EventArgs e)のあとに > button1.Click += new RoutedEventHandler(button1_Click);を入れたものを使ってます。 なんか気になるんだけど、ひょっとして private void button1_Click(略) { button1.Click += new RoutedEventHandler(button1_Click); MessageBox.Show("click"); } とか書いてるわけ?
winformsとWPF系がごっちゃになってるな。 あとイベントの基本が分かってないっぽい XAMLエディタ(ボタン等を配置する画面)でイベントをくっつけると <Button Name="button1" (中略) Click="button1_Click" /> となるだろ? このClick="..."のところでイベントハンドラと関連づけてるの。 あとはふらっとスレでやろうぜ、と言いたいがちょうど向こうも新スレのタイミングだな
>>948 最初に指摘された
>>940 ことをいわないしね
相手する必要ないよ
C#使ってればすべて同じと思ってるし
たぶんそれすらも分からない素人さんなんでしょ
951 :
939 :2012/03/21(水) 15:51:12.79
>>947 そう書いてます。
>>948 XAMLの方にイベントハンドラと関連付けるやつがあったんですね。
気づいてませんでした。これで一つ目の疑問は解決しました。
ありがとうございました。
>>949 ごめんなさい、
>>940 が自分宛だと思ってませんでした。
>>950 のおっしゃるとおりでwinformsとかここで初めて聞いたレベルですが、
おそらくSilverLightってやつだと思います。
初心者用のふらっとC#スレがあったんですね。
もう少し調べてから出なおしてきます。
.Net4.5っていつの間に出てたの?
953 :
デフォルトの名無しさん :2012/03/21(水) 16:57:42.42
Wikipediaには4.5の記述はないね 4がVS2010だから次のVSで対応か?
次はasyncか もうCファミリーとは呼びにくい言語になったな
>SilverLightってやつだと思います。 お前がわかってないのに他人がどうやって判断するんだよw 言語とか以前の問題だろ
WinForm以外ははっきり分かってると思うから わからんやつの大半はFormだと思うがなあw
WPFとSLは似てる部分もあるけど違うところもあるんだよな それになんで質問が糞なのに回答者が想像をめぐらせて答えないといけないんだw
ふらっとスレでエスパー能力を磨くといいと思うよ
能って磨くとツルツルになるの?
ピカピカになるよ
ピカドン
アウト
XMLシリアライザーを使ってデシリアライズしたいのですが、 空のDateTime型のデシリアラズがうまくいきません。 nullableにしても駄目、XmlElementAttribute属性を設定しても 駄目でした。。。文字列で受け取るしかないのでしょうか?
空のDateTimeってなによ DateTime.MinValueが入ってるはずだろ
細々とした制約が鬱陶しくなるので最終的にXDocumentを使うようになる
>>965 同感
IXmlSerializableインターフェイスとかまめに実装してた時期もあったけど
XDocumentで一瞬で書けるようになってから使わなくなったな
つーかDateTimeなんて何も考えずにSerialize/Deserializeできるが
シリアライズからなら全く気にすることはないが すでにあるXMLからオブジェクトに起こそうとすると面倒が多い ISO8601じゃないとダメだったりな
むしろXLINQのDateTimeへの明示的キャストみたいなやつの方が不安だろ >属性または要素から DateTime にキャストする場合の動作は緩やかです。 >属性または要素の値が厳密に W3C 仕様に従って書式設定されていなくても、 >値は適切に DateTime に変換されます。 曖昧どころか仕様が無いw
世界最古の土器 1988年、青森県の大平山元遺跡で見つかった土器が、世界最古の土器という事になっています。 1万6500年前(縄文時代前)のものと言われています。 これは、中国や他の国で発見されているものと比較して、群を抜いて古いものです。 発掘がすすめば、さらに古い土器が発見されるかもしれません。 世界最古の木造建築 奈良の「法隆寺」の建築物群。国宝にも指定されています。 法隆寺は、推古天皇や聖徳太子によって建立されたと言われています。日本最古の木造建築として日本の国宝に指定されているだけでなく、世界最古の木造建築としても認知されています。 また、日本を代表する木材「ヒノキ」で造られており、1993年12月には、日本で初めて世界文化遺産に登録されました。 世界最古の王室 現存する世界で一番長い歴史を有する世界最古の王室「天皇家」 海外では歴史や伝統に重い価値を置いています。 世界での天皇家の地位は絶大です。 世界の権力図を示すとこんな感じ。 天皇陛下≧ローマ法王>英国女王>アメリカ大統領etc>日本国首相etc ローマ教皇と同等かやや上回るか。 世界2トップのうちの一人です。 これは日本の宝として大切にしないといけませんね。
971 :
デフォルトの名無しさん :2012/03/23(金) 22:20:58.58
どこの誤爆だよ
ageるわ触るわ碌な事しないな
973 :
デフォルトの名無しさん :2012/03/23(金) 22:31:23.63
ageデフォなんだよ
プーッ
基本嫌儲だからな むしろなんでsageなあかんの? とりあえず理由が聞きたい
>>969 別に不安でもないよ、ただのDateTime.Parseだから広範に変換できるというだけで。
お前のような馬鹿にスレを発見されて馬鹿なコメントをされたりコピペや荒らしがやってくるから わかったらパソコンをフォーマットして窓から投げ捨てろ
>>976 そうだとしても保証はないよねそれ
文書化されてない仕様を当てにしてコード書くことになるわけで
>>969 >日付と時刻の内容を格納する属性または要素の値空間は、ISO 8601 で規定されている日付と時刻に密接に関連しています。
>日付と時刻の内容を格納する属性または要素を作成する場合、その属性または要素の値は W3C 仕様に従って書式設定されます。
>詳細については、W3C 仕様を参照してください。
一部分だけ恣意的に切り取るような引用するな。不安ならISO8601だけ使っとけ。
>>978 日付の解釈を変えるような互換性に重大な影響を与える変更をそうそうやるとは思えんなぁ
十分に枯れたDateTIme.Parseを捨てる理由がない。
そんな事まで心配してたら何も作れんだろうに
1,2,3は何年何月何日だ?
馬鹿者ね?
答えられないってことはパースしたことないんだな
983 :
902 :2012/03/24(土) 10:37:05.71
遅くなりましたが、無事解決しました。皆さんありがとうございました。
>>983 解決策も置いてってくれ、一応まじめに考えてくれた人もいるんだし
うめ
うめ
スレは大切にしろよ
だな、まだ質問の2つくらいは受けられるだろ 減速しろ
粘着質すぎワロタw 放置した奴だってとっくに忘れてるだろうに2週間ずっとイライラしてたのかw
粘着乙
つぎおつ
>>990 そんなものは無い って結論出てるじゃないか。
まーたEqualsで書くべきところ==にしてデバッグ30分
Equalsで書くべきところってどんなところ?
Equalsオーバーライドしたクラスの比較
Equalsって視認性が悪いから超嫌い
なぜ視認性が悪いのか不明 そんなんいうなら、お得意の演算子のオーバーロードしちゃえばいいじゃない
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。