4 :
デフォルトの名無しさん :2012/12/23(日) 22:22:11.40
プロセスごと止めるという設計というか発想そのものを考え直したほうが良いと思うけど? (そんなクズみたいな設計は止めて俺の提案に従うべきだろう。 でなければこのスレで回答される権利はないと思え)
>>7 そもそも質問者はそんなこと言ってないという
当スレ回答者の立場上の驕り昂ぶりが現れた言葉遣いが随所にあり、重ね重ねお詫び申し上げます。
リンク切れのチェックくらいしろやあああああああああああああああああああああ
じゃんぬねっと
別プログラムをhiddenで起動したり停止したりできるかどうかってことだろ
過ぎた話題にゴタクを抜かさないでもらえる? お前のような粘着がいるから話が終わらねえんだよ 今日くらい嫁とどっか行け
ここで粘着してるような奴に嫁がいると思うか?
二次元嫁でも良いんじゃね 余計に虚しくなるか?
空気嫁だろ普通
大恥かいて早く流したいのにね
ここで質問する奴は他の掲示板で相手にされないようなやつばかりだ トイチの金貸しにしか金を借りることができない奴と一緒だ
ここで回答する奴 の間違いだろ低能キチガイニート
トイチの金貸しでも金は持ってるわな。お前等は何持ってんの?
>トイチの金貸しでも金は持ってるわな。 意味が分からん
簡単な比喩も通じないのか 読解力なさすぎ
頭の設計見直した方がいいね
どっちもな
お前がな
暖房切らないからゴキブリがいなくならないだろ 節電しろよ
人生の電源でも切ってろ
ゴキブリホイホイ 反応するってことはゴキブリって自覚はあるんだなw
仕様の範囲内です
質問者カモン 自称上級者の皆様がヒマを持て余してらっしゃいます
tes
tes
35 :
!fujianasan :2013/01/08(火) 21:29:59.60
test
ストアアプリを作ってるんだが、 フォントの大きさや座標を自動で調整させる方法(設定?)を教えてください。 画像は自動でサイズが変わるのにどうやれば・・・
Javaのジェネリクスは、コンパイルしたら、型パラメーターが全て消えますが C#は保存されるんですよね? その型情報はどこからとれるんですか?
リフレクションならType.GetGenericArguments()
>>37 typeof(T)で取れる
List<string>のTypeオブジェクトからStringのTypeを取得したい場合は
>>38
Javaのジェネリックは、所詮、objectとして持って暗黙的にキャストしてるだけで C#のジェネリックは、それぞれ別々の型として定義される。 って認識でおk?
>>40 実行時に別々の型として展開される
実際には、本当に特殊化したコードを生成するのは型引数が値型の場合だけで
参照型の場合は共通のコードを使いまわすようになってるんだけど、
プログラマから見れば常に本当に特殊化されているのと区別できない
もちろんstaticフィールドも別々
Javaがウンコすぎるだけ。VM弄る金がないのに無理にC#に対抗しようとして 取り返しのつかないことになってしまった。 サンが一年早く潰れてくれてればなあ
ウンコのまま広まってしまって既存のVM弄れないんだろ。
>>44 そんなもん言い訳だよ。事実、オラクルに買収されたとたんにVMに手が入れられた。
以前のクラスライブラリと互換性があるならともかくクラスライブラリはどうせ別物だし、
そもそもJavaは標準化されてるわけじゃなくて公式Java以外のJavaは無いことになってるんだから
それを公式がどう弄ろうが勝手なはず。
独自コンテナコントロールのControlDesignerを書いてるんですけど 子コントロールが追加された場合にcontrol.Controls.Add(control)ではなく TableLayoutPanelのようにcontrol.Controls.Add(control, col, row)で追加するコードを デザイナに書かせるにはどうすればいいんですか? 引数にcolとrowを渡してもデザイナが吐くコードがAdd(control)にしかならないんですけど 何か特別な事をしないといけないんでしょうか ちなみにControlDesigner中で追加位置のcolとrowを決める計算はできています またcolとrowを渡すコードをデザイナでなく手動で書いたら動いています
訂正 追加する子コントロールは親とは別のインスタンス control.Controls.Add(control) control.Controls.Add(control, col, row) ↓ container.Controls.Add(control) container.Controls.Add(control, col, row)
パケット見れる状況ならパケット見ろ サーバーのログ見れる状況ならログ見ろ
画像のトリミングをするだけのソフトを作りたいのですが マウスで囲って左上のx座標y座標 囲った範囲のwidth、heightはどのように取得すればいいのでしょうか・・・ ライブラリのようなものはありませんか。
そんな誂えた様なライブラリありません。 靴屋じゃないんだから。
そんなもんライブラリ入れて使い方調べてる間に自分で書ける
すみません・・・ではこのような画像処理について解説しているようなウェブサイトはありませんか
画像処理なんていう大げさな話じゃないだろ 1. マウスでドラッグしたときに開始点と終了点の座標を取得する 2. 開始点と終了点を対角の頂点とする矩形(x, y, width, height)を求める ここまでは画像とは全く関係ない。その上で 3. その矩形に対応する部分を画像から抜き出す で出来上がり。個別に調べれて組み合わせれば難しいことは何もない。
System.Diagnotice.Process.GetProceses()で取得したProcess[]はきちんとDispose()しないとだめ? Process.GetProcesses().Where(p=> p.MainModule.FileName.Contain("hoge"))的な事をやりたいんだけど
取得したあとにプロセスハンドルを取得するような操作するならしないと駄目なんじゃね?
どうでもいいけど、
>>55 のコードは、ほぼ確実に落ちる。
なぜなら、MainModuleにアクセスしたとき、アクセス権が足りずに例外が発生したりする。
Processクラスってそういうところで例外投げてくるから妙に使いにくい。
58 :
55 :2013/01/11(金) 22:30:58.52
>>57 ところがどっこい、32bitアプリから64bitアプリのモジュールにアクセスするなって怒られた。
参照してるDLLの関係上、64bitとして動作出来ないから今System.ManagementでWMIを使って
プロセス一覧を取得してるが…ぶっちゃけメンドクセ('A`)
妙に頑固、そのくせマヌケ それが、MSクオリティ
>>58 P/InvokeでWIN32API定義して実装したほうが楽な気がする。
まあ.NETも人ごとではない
一昔前は脆弱性と言えばFlashだったが、Javaにその座を明け渡した感があるな ああもちろんMSは殿堂入りとして
CodeRedとかBlaster、Sassar、SQLSlammer、Nimdaと、いろいろやってくれてるからな
>>61 これからはC#&Monoの時代
>>50 SnippingTooに何か不満でも?
自身のクラス名を指すようなキーワード作ってほしい 先頭大文字でThisとか
>>66 自分自身のインスタンスを指すthisはすでにあるけど
要するにthis.GetType()ではなく、typeof(This) とかをしたいということか?
static This FromFile(string filename) とか使い道はあって便利だとは思うが
IDEのリファクタリング機能が強力だからまず要らんな。あっても困らんが。
ただ、全部小文字が良いな。
C#のデメリットってMS製品でマルチプラットフォームに弱いってことだと思うんですが マルチプラットフォームのC#実行環境のMonoって使い物になりますか?
今どきC#なんてどこの環境でも動くだろ
>>69 .net 2.0以前しか使えないWindows 2kさんをなめんな
VSで作ったGUIアプリをそのまま動かしたいとか思ってるなら使い物にはならないかもね MonoはGUIの互換性を重視してないからな Mono自体の完成度は高いけど、基本的にJavaみたいなWrite Once Run Anywhere(笑)思想とは違い、 プラットホーム固有のAPIを積極的に使って、ある程度プラットホームごとに個別に対応するもんだ
>>66 >>67 var name = this.GetType().Name;
一応これでクラス名というか型名は、取れるけど
お前それスタティックメンバーでも同じこと言えんの?
using This = このクラス; これでいいじゃないか
typeof( T ).Name
selfとかmeとかclassとか
定数とかstaticメソッドとかインテリセンスで参照しやすくなるな
ボラクールはJavaの心配だけしてろよ デフォルトOFFの風潮に向かってるぞ
win8ではHTMLをUIで作ってロジックをC#に任せることはできるのかねえ・・・
HTMLをUIで作る方法詳しく
何ってそのまんま
えっ?
C#でアプリケーションを作る方法詳しく
HTMLでUI作れるようになるとか、 XAMLとはいったい何だったんだ?
>>82 俺も「UIをHTMLで作る」じゃなくて「HTMLをUIで作る」方法を詳しく教えてほしい
Expression Webが無料化されただろ?
>>88 UIとHTMLが逆という日本語の間違いを指摘してるんだろう
ああそう・・・
クルクルパーばかり
↑クルクルパー
>>89 >>80 は「UIをHTMLで作る」っていうよりは「HTMLをGUIデザイナーで作る」って意味じゃね?
あ、まだ続いてたんですか?
だったらはじめからWYSIWYGって言えよw
C#側からWebViewで表示を行い、HTML内のイベントを拾えばいいってことかいな?
本人不在で話す無意味さ
あるディレクトリ以下の全てのファイルを取得したいと思っています。 ファイルの完全な一覧が作成されるまで待たずに処理するには .NET4以降ではEnumerateFilesが使えますが、.NET3.5でも利用可能な方法はありますか?
Win32APIのFindFirstFile(Ex)/FindNextFile使う
>>101 EnumerateFilesがわからない馬鹿は黙ってろ
( ^ω^)・・・
いつから素人が回答するスレになったんだい
メトロって結局WPFなん?それとも軽量版のSLなん??
>>99 backgroundworkerで再帰的に取得しながらCollectionに追加
メインスレッドのwhileでColloectionのカウントを監視しながらカウントが増えたら順次処理
backgroundworkerが終了したらwhileを抜ける
>>99 3.5で4のクラスを使う方法?
頭大丈夫か?
┐('〜`;)┌
クルクルパーばかり
>>107 WPFはほぼ全てがマネージオブジェクト
SLはC++で実装したGUIフレームワーク+マネージコードのラッパー
MetroはC++で実装したGUIフレームワーク+COM interop
だんだん退化していってるなw
WPFに慣れたらMetroも簡単?
ある文字列にハングルが含まれているかどうか判定する方法を 教えてください。
煽ると顔真っ赤になるからすぐわかるよ
char c = '?'; if( '\uAC00' >= c || '\uD7A3' < c ) { Console.WriteLine("チョン死ねwww"); }
if (string.Fuck().Color == Color.Red) { // ハングルが含まれている } else { // ハングルは含まれていない }
>>119 それは処女膜破ったか、ならす前に突っ込んだからケツが切れただけだろ。
>>117 &&っしょ 文字範囲は確認してないけど
個人的には範囲を判定する場合
c <= '\uAC00' || '\uD7A3' < c
という風に書きたい。
cみたいな奴だと、代入と比較の間違いをなくすために、リテラル値を左に書くというルールがあるのかもしれないが。
>>121 等号的に考えて、ハングルを含まれてない場合じゃね?
System.IO.Logが意味不明なんだが ちゃんと解説してくれてるサイト(英語可)はない?
>The System.IO.Log namespace defines an interface for logging to a record-oriented sequential I/O system. >System.IO.Log の名前空間はレコード指向の順次 I/O システムにログインするためのインターフェイスを定義します。 ロギングとログイン間違えてるェ・・・
機械翻訳だし仕方ない
むしろ機械翻訳だったら間違えないタイプの誤訳じゃないかw
ロジックを担当してる人が値がなんであろうと引数の型を全部Stringしてて半端なく殺意を覚えるんだがどうしたらいい?
レビューで殺せばいいじゃない
>>128 その理由を聞けばいいんじゃないかな? 何か理由があるんだろ。
その理由が妥当でなければ変更する必要があるし、妥当であればそうせざるを得ない。それだけだと思うが。
頻繁に呼ぶところじゃなければパフォーマンス的には無視できる場合が多いし。
ところでおまいらはDoubleとdouble、Stringとstringどっちを使ってる?
データを文字列型にするのはパフォーマンスを劣化させるのはもちろん、 実装コストを押し上げた挙句バグの温床となる非常に愚かな行為
>>128 >>130 と同意見だな、そんなんで殺意を覚えてたらやってけんぞ
stringも万能だしそんなに悪いことか?
こいつ損してるなとは思うけどさ
日本以外でも使うならやめさせた方がいいと思うけどね
>>130 Double, String, Int32, Int64, Byte・・・見易いので。
>>130 変数の型としては組み込み型扱いで小文字、静的メソッドの呼び出しはクラス扱いで大文字
実際Decimal以外はIL上で思いっきり特別扱いされてるからな
実装を反映するという意味では
>>134 が自然
ILのint32がInt32として扱えるのって、そう見えるようにライブラリとコンパイラで誤魔化してるだけなんだよね 実際にInt32として扱われるのはメンバを呼ぶ時だけ
>>129 ,131
当たり障りなくレビューで殺す方法ないのかな・・・。
実装について指摘すると目を剥いて自己正当化してくる人だから触りたくなくて困ってる。
これなら誰もが納得する言い回しってなんかないっすか?
>>137 わざと効率コード書いて文字列変換をボトルネックにすりゃいい
あらゆる数値書式についての膨大なテストケース書いて渡してやれ
>>137 stringの弊害を説明すればいいだけだろ?
たとえば単体試験で増えるコストを全部引き受けてもらえばいいんじゃね。
まあ絶対的な弊害はないからねぇ。
int32 で十分でしょと言っても、将来的を考えると文字列の方が柔軟性が云々とか
屁理屈言うタイプなんだろ。
多分、論理は通じないから、そいつの上司とかに陳情するのが早いと思うが
>>137
>>137 >目を剥いて自己正当化してくる人
さあ?些細なことで感情的になる人ならそれだけでチームでの仕事に不適格と言える
そういう事実をもって上位のPMなりディレクターなりに相談したら?
あるいは、こっちが巻き込まれずに済む範囲内で好きにやらせて自滅させる
もちろん責任追及のためのログはこまめにとって残しておく
>>132 安易に参照型を使うと同一のオブジェクトへの参照を複数の異なるスレッドコンテキストが
握っている状況になったりしがちで、するとマルチスレッド状況ではかなりヤヴァイ
>>137 まあ説得しようなんて思わないことだろうね。
むしろ相手にこちらを説得する義務があることをまず理解させることが重要。
それが変則的な方法であることは恐らく99%の人間は認めると思うから、
そうであるなら説明する責任を負ってるのは、普通に考えれば変則的な方法を
あえて使ってる人間だということで。
で、普通はあえてstringを使う合理的な理由なんてあるはずがないから 恐らく勝手に自爆してくれる
>>143 >安易に参照型を使うと同一のオブジェクトへの参照を複数の異なるスレッドコンテキストが
>握っている状況になったりしがち
なんでもstringに賛同するわけじゃないが、stringはイミュータブルだから複数のスレッドに握られてても問題ないだろ
それならもう、stringは、やめて全部object、または、dynamic にしてやればいいww 恐らく、Actionscriptとかjavascriptなんかの基本的に文字列がすべて・・の言語から入った奴なんだろう。
・第一にstringにしたところで得られる拡張性なんて極限定的な物でしかないこと ・更にstringにする事で得られる限定的な拡張性を必要とする箇所も限定的で現実的にそれが必要となる箇所は1%どころか0.1%にも満たないだろうこと ・その上で、将来有るかどうかも分からない拡張性の為に、今現在の堅牢性、生産性、パフォーマンスを全て投げやるのは馬鹿未満の所業であること これらを本人に言って聞く耳持たないなら同じ事を上司に言ってやめさせろ 上司に相談してもダメなら、そのアホより偉くなるまで我慢するか転職すれ
システム開発をやっている人が書いたC#の本に 「実務では日付のデータはstringで処理する」ようなことが書かれていた。 せっかく日付用のデータ型があるのにありえないわ、と思った。 日付をstringで処理って受託開発ではほんとうに一般的なの?
全部CSVテキストファイルで管理し易いようにとか、そんな感じなのかねぇ?
日付としてはありえない日付もデータとしては持ちたいのかもしれない 例えば2013/01/32とか
そういう間違った認識こそバグの温床
実務といっても幅広いだろ
年月日までで、時間以下を扱いたくない時とか? それでもDateTime使うけど 妥協して年月日それぞれ数字でもつか プログラムのインターフェイスにstringはないな 入力欄のコントロールのプロパティやCSV読むところは別として
webbrowserコントロールについて質問です webbrowserコントロールをひとつつけただけのプログラムを作ってあるページを表示させ、 そこのformをsubmitしても処理されません(ページ遷移が起きません) IEでは問題なく処理されます 原因として何が考えられますか?
そのページのURL貼れ
ログインが必要なページなので貼っても見れないとおもいます すいません
じゃあ貼れ
知らん PCに異常がありますが原因として何が考えられますか?って問いとほぼ同義だ もう少し絞り込んで来い
IEのバージョンとかで処理蹴ってるだけの予感 ていうかネットワーク関連なら話はパケットキャプチャしてから
>>160 なんとなくやりたいことわかるけどやめたほうがいいぞ
ガールフレンド(仮)って奴で深夜に自動でゲージマックス時バトルとランニングするCUI作ったけど
あっさりBANされたわw
そのゲームは知らんが俺の場合はWebRequestでUA偽装しただけだったな
Clone()について Bitmap bmp=new bitmap(フルパス); Bitmap nextbmp=bmp.Clone(); nextbmp.Save(同じ名前); これやると、GDI汎用エラーがでます。フルパスのファイルがロックされているからだと思います。 Bitmap bmp=new bitmap(フルパス); Bitmap nextbmp=bmp.Clone(); Bitmap hogebmp=new bitmap(nextbmp); hogebmp.Save(同じ名前); をやると、GDIエラーでません。 なぜですか?
たまたまだろ
bmpがファイル開いたままだろ 上書きする前に破棄しろ
disposeしろ
168 :
164 :2013/01/22(火) 18:16:13.84
//クローンすると、bmpをdisposeしてもSaveでGDI+一般エラーでる。 //Bitmap bmp = new Bitmap(@"C:\Documents and Settings\user\デスクトップ\無題.gif"); //Bitmap temp = (Bitmap)bmp.Clone(); //bmp.Dispose(); //temp.Save(@"C:\Documents and Settings\user\デスクトップ\無題.gif");//上書きしたい。
Bitmap bmp = new Bitmap(new MemoryStream(File.ReadAllBytes(path))); ってやっとけ
Saveは元StreamがDisposeされてると例外吐くからね
ばかばっか
でたらめ吹聴すんなよ
参照してる状態と生成された状態の区別がつくようになってから答えろや 馬鹿は黙ってろな
ファイルをいったんメモリに読み込んで、それを元にBitmapを作ればOK。 using (var ms = new MemoryStream(File.ReadAllBytes(フルパス)) using (var bmp = (Bitmap)Image.FromStream(ms)) { bmp.Save(フルパス); }
>>161 GIFアニメーションが止まったりするんでwebbrowserコントロールの問題じゃないのかな?と思ってるんですが
>>163 tool作ってるんじゃないんで怖くないですw
次の仕事が.NET 3.5なんだけど今市場に出回ってる書籍の大半が4.0対応のものばかりです 3.5と4.0では大幅に仕様が変更されたのでしょうか? 4.0で追加された機能だけ読み飛ばせば問題無いのでしょうか?
177 :
170 :2013/01/23(水) 00:42:19.55
問題ある
>>178 そうですか
中古も含めて検討してみます
>>177 馬鹿が沸くと初心者が混乱するからやめろや
>>176 C#3->4はほとんど変わらん
dynamicとオプション引数が増えたくらい
183 :
164 :2013/01/23(水) 11:16:48.00
サンキュー、やってみるよ。
184 :
164 :2013/01/23(水) 12:15:26.25
これ、もっと簡潔に書けませんか? ideone.com/v1VUQr
めんどくせえ!ちゃんとリンク貼れクズが!!
全部コメントじゃねえか死ね!!!!!!!!!
bUpとかbDownってなんだよ死ねよ
ああああああああああああああああああああイライラするな!!
ワロタ
190 :
164 :2013/01/23(水) 13:03:19.60
bが付くのはbool変数。 コメントは無視してください。 bitmap.Clone()の引数として使うrectangul変数を作ろうとしている仮定です。 なんか、知能レベルが低い人が書いたようなソースで、どうにかしたいんやけど。
rectangul ←実際に知能レベル低いから諦めろ
192 :
164 :2013/01/23(水) 14:00:41.50
rekutoanguru
「いう」を「ゆう」って書く奴増えている気がするが、どの辺からそういう間違いが生まれるのか。
子供の言動に違和感感じるのは年を取った証拠だってさ
196 :
164 :2013/01/23(水) 15:13:09.66
>>194 志村けん世代からだと思うよ。
醤油
ラー油
アイラブユー
知ってる?よね??
198 :
164 :2013/01/23(水) 18:21:46.00
誰か184答えてやれよ
誰か184答えてやれよ
嫌よ♪嫌よ♪嫌よ♪うっふん
今2人でプロジェクトまわしてんだけどさ、俺が後から入って先にいたリーダーが本当に使えないカスで困る。 PG暦10年選手だって聞いてたから色々と教えてもらえるんだろうなーって期待してたら、PG歴2年程度の俺の質問には答えられず、挙げ句に俺に質問して教えてもらうとか糞すぎるだろ。 出来上がったコードは本人以外は目が拒否する糞コード、引数全部Stringとか死ねよ。 本人の成果物が糞すぎて何も吸収できないうえに、人の成果物だけはつまんでいきやがる、しかも人の成果でドヤ顔すんなボケ。 なんだろうな、レベル高いところだとついていけないし、低いところはストレス溜まるし、どうやってキャリアアップすりゃいいんだ、師匠がほしいわ
良かった。貧乏くじ引いたのが俺じゃなくて。
俺は家でニートしながら独学でやってるよ
SQL ServerConnectionとかのインスタスってどっかにstaticで生成しておいて アプリが開くのと同時に全箇所からアクセスできるようにするべきなんでしょうか?
SqlConnectionは勝手にプールされるから使い捨てでいい
ありがとうございます 使い捨てします
>>202 お前上司に、こいつもカスだしクソカスとペアで隔離しよう、って見捨てられたんだけど分かってんの?
使えないクズにはゴミな仕事回すしか使い道ないからな
一度そういう役押し付けられたらもうその会社にいたら一生出世できないよ
マジに転職をオススメする
どこへ行っても糞は糞だろ 何をやっても糞は糞 もう人生つんでるだろ
どこに出しても恥ずかしくない、立派な給料泥棒になりたいと思います 仕事はないならないだけいいを合言葉に 目指せプレミアムシート、窓際の席
どうせおまえらが作ったシステムなんて数年で使い捨てられるんだから クソみたいなコードでも心配するな
数年でダメになって作り直すビジネスモデルだからプロフェッショナルなんて要らないんだよな
そう言い聞かせて無能な自分を慰めてるんだろ?
test
.netでmp3に保存されている歌詞を読み書きする方法ってある? Shell32.dllをつかってみたがわけわかめ 教えていただきたく候
バイナリ見ればわかるよ
>>216 ファイルを右クリックでみれるぐらいなんだから書き出せるだろきっと頑張れ
>>216 自力でID3タグを読み書きする方法と
ID3タグを扱えるライブラリ拾ってきてそいつ経由で読み書きする方法とある
Shell32.dllってのはatmarkitの記事かい? あの程度でわけわかめだと先は長いな
PTLおもしれぇ はまる。 んで、Parallel.ForEachとPartitioner.Createでコレまで作った数値計算ライブラリとか書き直してるけど、 無駄にタスク生成させるParallel.Forって意味あるの?
PTLじゃなくTPLか
>>219 公開されてる誰が作ったかわからないライブラリは作りたくないから
win32apiでできるならそれを使いたい
Shell32.dllはアーティストとかは取れたけど
歌詞が取れなかったから別の方法なのかなと思う次第であります
なんかいいアイディアあったらおしえてください
DataGridView が BindingSource を介して DataSet とつながっています。 BackGroundWorker を使ってデータを検査し、エラーのあるデータはDataGridViewのCellのErrorTextにエラーメッセージをセットしたいのです。 このときBackGroudWorkerのDoWorkイベントハンドラではUIオブジェクトであるDataGridViewの操作はできないので BindingSourceを使ってデータを見ています。このやりかたは問題ないのでしょうか? BindingSourceはUIオブジェクトなのでしょうか? DataSetであれば、UIオブジェクトではないので、問題ないと思いますが、DataSet(内のDataTable)のRowが、 DataGridView側ではどのRowに対応するのかわかりません。何か方法があるのでしょうか?
>>220 並列化は粒度を考慮しろ。一回の繰り返しにほとんど時間がかからないループを
一回一コンテキストで並列化したら逆に遅くなるのは当然。
可能な限り処理の上の方で並列化するのは基本として、小さいループを並列化するしかない場合は
int tnum = コア数;
Parallel.For(0, tnum, tid => {
for (int i = tid; i < N; i += tnum) {
処理(i);
}
});
数値計算だとループをこんな風に回したりする
>>222 自力で抽出したら?
曲と同期する分アーティストとかよりは難しそうだけど
>>223 BindingSourceは、UIスレッドで扱わないとまずい。
>>224 >並列化は粒度を考慮しろ。
あのさ。
粒度以上に、無駄なタスクを生成しないのがParallel.ForEachとPartitioner.Createでしょうが。
考慮しないParallel.Forをうれしそうにまわして馬鹿かお前。
どのくらいにPartitionを割ればいいか分からん時のためのもんでしょう 個別のタスクに掛かる時間が不定な場合とかね
Partitionerによるスケジューリングやデリゲート呼び出しのオーバーヘッドが無視できないような
粒度の小さいループを並列したい場合は
>>224 のような使い方もアリだ
OpemMPなんかと違ってライブラリ実装だからどうしてもオーバーヘッドはある
そんなに気にする程のことか? 何を作るかにもよるんだろうけど… ただ無駄なタスクは、作りたくない。
>>230 数値計算ならわりとあると思うよ
普通のアプリならIOメインだからコア数とかあんまり関係ないだろうけど
MSはデータの並列化とか何のメリットも無い脳内概念をほざいてる罠 コア数以上のデータの並列化なんてなんの意味も無いと思われ
>>233 んなことはない
IOがメインなら待ってる間に他のことできるからコア数超えても速くなることはある
235 :
228 :2013/01/26(土) 18:31:45.22
アクセスの遅いIOのポーリンツを場合によってはコア数以上の複数のタスクに任せるってのは単なるタスクの並列化の話だろ データの並列化でMSが用意した実例は2つの配列の加算で。個々の要素の加算等、 極めて軽い処理をデータの並列化の実例としてる
>>235 見識が狭いのはMSの資料を読んでないお前
昔サンプルコードは実用的にしろとケチつけてた奴と同じ臭いがする
>>235 見識の広い君
データの並列化とタスクの並列化の違いを是非明示してくれたまえ
複数のファイルに対してループで同じ処理を行ってるのを並列化したらデータ並列だよ
例が配列を使っていれば配列に使うものだと思い込むのだろう そんなバカな
お前こそデータとタスクの区別付いてるのかと聞きたい
WCFでネットワーク越しに複数のサイトに処理を要求した場合もタスク並列でしょうか??
M$がデータの並列化をほざこうが実際、タスクを起床させてるだけで、 タスクの並列化とデータの並列化の区別なんて一切無いのが実態
単なる御託野郎だったか 付き合って損した
なけりゃないで文句言うんだろ とりあえず用意しておけば馬鹿が喜んで使うからいいんだよ
能書きばかりで実際にものを作ったことのないような人ばかりだよね 使ってみれば議論するまでもなく答えが出てるはずなんだけど(
>>226 と言うことは、BackgroundWorkerではDataSetを扱うことになるでしょうか。
DataSetのDataTableのrowから、対応するDataGridViedのrowを知る方法はあるでしょうか?
BackgroundWorkerの前にUIスレッドでコピーしておくしかないでしょうか?
250 :
デフォルトの名無しさん :2013/01/27(日) 23:29:52.21
一度しか書かないだろうから、ベタ書きしても変わらないであろう文字列ですが、 それらをまとめてどっかに書くことはConst専用のクラスを作るべきでしょうか それともSettingに書くべきですか?
日本語でおk
ベタ書きしろ
馬鹿が無駄にかしこまるとおかしな日本語になるんだよな
せいぜい、クラス冒頭あたりに constかreadonlyで書いておけばいい。
馴れ馴れしいのよりはマシ
そうだね
>>253 >>254 ありがとうございます
その文字列が使われるクラスにベタ書きします
そうなると、Settingファイルって何を書くべきなんでしょうか?
これまで、SQL文やConnectionStringを書く以外の使用用途を知らないのですが
>>257 ユーザーが変更可能な設定の初期値を定義しておいたりするためのもの。
プロジェクトのプロパティから設定を編集した結果は、hoge.exe.config にXMLで吐き出されるから
コンパイルした後でもユーザーが.configを編集することは、できる。
コンパイル後や出荷後に将来的に変更する可能性のあるURLなどの文字列を定義しておいたりかな。
>>258 ありがとうございます
するとDBのアドレスとかパスとかを書くのはいいのですが
SQLを書くのはあんま良くないんですね・・・
ユーザーが自分でSQL更新するならともかく
NTT DATAとか仕事だしたら未だにiniファイルで初期化とか仕込んでくるんだがw
>>260 いいじゃない。
複雑じゃなければxmlよりもiniの方が手で編集しやすいし。
INIファイルはUnicode使えないから糞
ここのやり取り見てググってたらPropertyBindingなるものを始めて知った 知らずに今までひとつひとつ書き込んでたわ...
>>259 SQLは俺はASPやWebサービスの場合はsettingとかに保管フォルダのパスを書いといてそこにファイルで置いてる
クラサバの場合は個別ファイルにかいて、リソースに突っ込んでる
前者のがファイルだけ差し替えられるから便利なんだが、クライアントアプリでそれするとさすがにセキュリティ的にやばすぎるし
LINQやEntity Framework使わない場合にもっといい方法ないのかなあ?
切ない。あまりに切ない話だ。
266 :
565 :2013/01/28(月) 03:50:52.25
乱暴に言うとユーザーがバカだから誰でも知ってる仕組み(iniファイル)、エンコーディング(SJIS)がいい
便乗して乱暴に言うと、 馬鹿なユーザーをターゲットにするなら馬鹿でも設定できるGUIから設定できるようにするべきだろw
いまどきGUI以外からユーザーに触らせるとかゴミ過ぎるだろ
XMLが一番簡単だと思うけどなー
使うほうは馬鹿だからねXMLなんか与えると意味を考えちゃうんだよ 味気ないINIで正解
XMLだろうがINIだろうが生の設定ファイルを馬鹿が扱えるわけないだろw
VC#だろ? setting使えよ
settingってデフォルトだとバージョンに依存したりするからいや
前バージョンの設定コピーするようにしたらいいじゃん
バージョンに依存する上、勝手なフォルダ名とかファイル名を生成されるんだよな。 デフォルトは、使いにくすぎる。
わざわざ前バージョンからコピーなんかやってられるかよ…
XMLならリストも持てるし
お前ら仕事は?
>>279 学生か趣味グラマの暇人(金と時間がある)しかここにはいない
本職は奴隷だから仕事に関係ない雑談でWebサーフィンとか許されないからね
282 :
565 :2013/01/28(月) 15:03:15.44
>>278 これはある
iniでやろうとすると面倒だね
こんにちは 社内ニートです
はい、こんにちは 自宅警備員です
Reflectionで詰まってます 参照している自作DLLのメソッドにネイティブコードのコールバックさせたいクラス・メソッドをGetType().Fullnameで文字列を渡して、DLLで Type t = Type.GetType(Fullname);してるんですが、tがnullなんです。 this.GetType().Assembly.CodeBaseのURIだと実行ファイル指定になるし、どうやったらクラスを参照させられるんでしょうか
まずもうちょっと文章ちゃんとしてくれ FullNameじゃなくてAssemblyQualifiedName渡したら?
だいたいなんでそんなまどろっこしいことする必要があるんだ? デリゲートかイベントかインターフェイスでいいだろ
>>273 >setting使えよ
Configurationでいいだろ。このxmlファイル見て悩む馬鹿はPC触るな
290 :
デフォルトの名無しさん :2013/01/29(火) 06:37:01.11
リソースに実行ファイルを埋め込んでそれを実行したいのですが 以下のように書くとBadImageFormatException例外が出てしまいます。 Assembly asm = Assembly.GetExecutingAssembly(); Stream st = asm.GetManifestResourceStream("mytest.test.exe"); byte[] b = new byte[st.Length]; st.Read(b, 0, b.Length); Assembly.Load(b); どうすればよいでしょうか?
一般論としてStream.Readは戻り値を見ながらループしないとダメ
>>220 マルチコアなら速くなる場合もあるだろ
ベンチマーク取ってみろ
>>292 一般に無駄にスレッド沢山使って速くなるのはIOが主体でシングルコアでも速くなるケース
CPU100%使うガチ計算だとコア数超えると確実に遅くなる
>>293 生のスレッドだとそうだろうけど、
CLI標準のスレッドプールを使ってるから、
それほど悪い数字でないんだよね。
このスレッドプールの仕組みは汎用で
いろいろなケースでまあまあの性能が出る。
よほどシビアなケース以外では問題ないことが多い。
まず、タスクとスレッドは異なるプログラム単位ってことは理解しようか。
まず、そのタスクとは何かをはっきり定義しといてくれ
タスク≒プロセスって感じ?
タスク☆プロセス
>>298 違う。∪タスク == プロセス これは組込み系もMSの定義もおなじだが
MSの定義と組込み系み込み系の定義は基本分けて考えた方がいいと思う。
MSもIntelもスレッドという処理単位を持ち出したからややこしくなった。、
組み込み系はプロセスが一つしか無いことと、スレッドという概念は普通持ち出さない。
MSの定義は
∪スレッド == プロセス
であって、
∪タスク == プロセス
でもある。
スレッドに代わる処理単位としてタスクをTPL以降持ち出してきた
∪タスク == スレッドと紹介してるようなサイトもあるがあまり正しくなくて、タスク == 軽いスレッドで、
タスク、スレッド間の包含関係を設定するのは適切じゃ無いと思う。基本的にスレッドよりタスクの方が軽い
>>300 >∪スレッド
UIスレッドのこと?
OSや実行基盤で言葉の定義が変わるのは普通のことだね。
遺物のメインフレーム出身の俺は、
いまだにマルチタスクをマルチプログラミングといってしまう。
UたすくのUはユーザーのU?
>>301 >>∪スレッド
>UIスレッドのこと?
便所ハイターでも飲んで死ね
こんな馬鹿でもプログラム書いてるのかよorz まさか理系じゃないよな
>>302 さすがに字面だけ見て文字コードの判別は難しいよ。
記号なのはわかったけど、ぐぐれる程度に読み砕いてくれ。
中卒に理系も文系もねーだろ
いいから死ぬまでPartition使って配列の処理してろ
>>302 僕も分かりません。
コピペって具具っても「∪ に一致する情報は見つかりませんでした。」ってなります。
∪(和集合) これですむことを延々と・・
タスクは、比較的短時間で完了する程度の処理。 Webページを取得する等のI/Oのほとんどは、比較的短時間で完了するがUIスレッド上で行うには、 ネットワークの混雑、回線の速度や状態でUIを止めてしまう(応答なし)可能性がある。 このような場合にUIスレッドとは、別のスレッドを作成または、再利用してUIスレッドを止めない程度の ちょっとした処理を裏でやらせるのがタスク。.NET 3.5までは、スレッドプール。.NET 4.0からは、Task。4.5でasync/awaitが相当する。 一方、スレッド(Thread)は、比較的長時間、起動から終了まで裏で居座っているような処理を示す。
ふーんどこの権威のある文章からの引用? それともお宅の妄想?
間違いがあればどうぞ訂正を。
総和としての∪っていきなり書いて良いような記号か? 集合を明示せずに接頭辞的に使うのは相当違和感がある ていうかコンポジションでいいだろ
>>314 誤)
スレッド(Thread)は、比較的長時間、起動から終了まで裏で居座っているような処理を示す
正)
スレッド(Thread)は、比較的長時間、起動から終了まで裏で居座っているような処理での使用が推奨されている
で、結局タスクの定義はどうなってるの?
>>319 タスクではないがTaskクラスの説明は
The System.Threading.Tasks namespace provides types that simplify the work of writing concurrent and asynchronous code.
The main types are System.Threading.Tasks.Task which represents an asynchronous operation that can be waited on and cancelled
非同期デリゲート、非同期I/O、BackgroundWorker、TPL、Parallel Linq、async/await はすべてThreadPoolをベースにしている。 ただし、非同期I/Oはキューが別。
>>320 お前が>296なのか?
だったらここで言うタスクとはSystem.Threading.Tasks.Taskクラスのことです
って言えば済むことなんだが
TPLのTaskクラスはThreadPoolが管理する複数のスレッドの下で、 複数のスレッドで並列に実行される可能性と 同じスレッドで直列、つまり順番に処理される可能性がある。
この仕掛けのおかげで、 Parallel.ForEachとPartitioner.Createで実現する 並列化と直列化は、ThreadPoolに任せても実現できる。 Partitionerを使うほどきちんとした管理は出来ないので、 パフォーマンスは落ちるかもしれないが、コーディングの手間と相殺で Partitionerを使わないParallel.Forも意味があるというのが自分の見解。
データの並列化じゃないのがタスクじゃありませんでしたか(小声)
>>300 >スレッドに代わる処理単位としてタスク
>基本的にスレッドよりタスクの方が軽い
つまりより軽量なスレッドがタスクだって主張に見えるんだが、それでいいの?
馬鹿が馬鹿の発言を蒸し返すから続く
だって馬鹿の隔離スレだもの
>>328 馬鹿の隔離スレは、ふらっとのほうだろ?
こっちも対して変わらんかw
>>325 MSのいうところのデータ並列化を良く理解してないので
まったくの感想ですが、
依存関係のない大量のデータを処理する場合、
パーティションで並列+直列化するのも、
キューで並列+直列化するのも、
手法が違うだけで目的も結果も同じ、
データ並列は結局タスク並列の特殊形に
すぎないのではと思っております。
>>330 スレッド使うのはまあそう言えなくもないけど
さすがにSIMDやGPU処理をタスク並列の特殊な形というのは無理があると思う
なんで?
MSのいうところのデータ並列化ってよく知らないんですけど言質が取れた一次資料とかあります?
クソカスどもめ
>>330 逆だ。手法は関係なくて目的が違うんだよ。
一つの処理をデータで分割して速くするのがデータ並列。異なる複数の処理を同時に行うのがタスク並列。
Hadoopにでかいデータ投げ込んで分割されたらデータ並列ですタスク並列です?
以下、どこまでを一つの処理と呼ぶかの定義
なんか哲学めいてきたな。久々に面白い流れかも。
>>335 スレの流れ見て勘違いしていたようです。
Parallel.ForEach+Partitioner.Createがデータ並列、
Parallel.ForやParallel.ForEach−Partitioner.Createなしがタスク並列
と思い込んでいましたが、MSのサイトでは、
データ並列向きのファンクションがParallel.ForEach、Parallel.For
タスク並列向きのファンクションがParallel.Invoke他になってました。
Partitionerは小さいループ本体を高速化する手段ということでした。
>>336 の言うとおりで、その説明でつじつまが合います。
スレの流れ見て勘違いて。 お前の読解力がないからだろ。人のせいにスンナ
おおっとXNAが花開く前に死亡、死亡です
XNAはなんで死ぬのん?
MSが飽きたからに決まってるだろ
むしろ型の違いに気付かず、致命的なバグを後になって残すぐらいなら コンパイラにお節介なまでに警告されたほうがマシだと思う。
その文章どこからつながるの? 応援に行ってやるよ
これはふらっとだろw
あれ、ふらっとのスレ閉じてて気づかんかったw
そして読んでみると明らかに釣りだろハゼかお前らって感じ
竹中も小泉政権の時はま標準的な意見をいう経済学者だったけど、 最近はリフレに媚びてちょっとおかしなこと言ってるな
画像処理に詳しい人教えてほしいんだが HTTPで流れてくる画像バイナリをSystem.Net.WebClient > Stream > Bitmapで受け取るのと libjpeg等のライブラリ使・自作でヘッダー読み込んでデコードするのとどっちが速くて正確なの?
正確って観点が分からん どういう状況でどういう風になると正確じゃないの? ビット欠落しても無理やりデコード続けようとするとかそういう話? まあlibjpegとか使う方をお勧めする Bitmapだと一度全部読み込まないと処理できないから
こんなことで迷う奴に libjpegが使いこなせるわけがない。 周りに迷惑かけないよう 標準ライブラリにしとけ。
まあ確かに エラーハンドリングが基本setjmpに頼ることになるし ちょっと扱いにくいかもね
>>354 正確っていうのは、今標準ライブラリで実装してるんだけど、画像が乱れてたり、0バイトで保存されるんです。
なので負荷が少なく情報の欠損がない状態で保存したいんです。
>>355 LibtiffやPDFsharpは使いこなしてますよ
ちなみにStreamをそのまま保存した場合は正確なんですか
>>357 > 画像が乱れてたり、0バイトで保存されるんです。
こういう人って、自分のバグの可能性を1_も疑わないよな。
(俺はそこまで言っていないのだが・・・)
var inputType = new []{".png",".jpg","jpeg",".gif"}; Directory .EnumerateDirectories(args[0], "*.*", SearchOption.TopDirectoryOnly) .Where(f => inputType.Contains(Path.GetExtension(f).ToLower())) ..... こういう書き方ってあり?それともすべきじゃない?
DirectoriesとFiles間違えた ディレクトリに拡張子とかあり得ないよね(´・ω・`)ショボーン
XPで.{****.***.....}みたいに書いていくとフォルダ見えなくなるっていうのあったよね
EnumerateDirectories をLINQと組み合わせて使うのはアリだろう。 というか、LINQのために新設されたメソッドなんじゃないか?
小文字にするとアクセント記号が消える文字があるってことかな?
>>366 ってコードの問題というよりはMSがお前のコードの仕様書はクソだと言ってるわけだよな
コード解析で文句言われてもどうしようもないようなw
このケースなら、比較対象が inputType に含まれる文字列のみとわかっているから 小文字に正規化しても問題ないよな。無駄な警告はポイーで。
気になるから実例出してよ〜
>>357 0バイトになるというのをエスパーすると
Streamの現在の場所が末尾なのではないか!
根拠は最近おれがそれではまったからorz
>>357 >LibtiffやPDFsharpは使いこなしてますよ
ならc++使いにラッパーを作って貰いな。
このままだとどうせ「libjpegの
XXオプションはどこですか」と
質問するんだろうから。
落ち着けよ 反応が無い相手に粋がるな
374 :
370 :2013/02/03(日) 21:05:06.20
2バイトで表現可能な0000〜D7FFとE000〜FFFFの文字について調べてみたよ 先にUpperした方が戻らない字が多い??? .ToLower().ToUpper()したら違う文字になったもの İ(0130)->i(0069)->I(0049) Dž(01C5)->dž(01C6)->DŽ(01C4) Lj(01C8)->lj(01C9)->LJ(01C7) Nj(01CB)->nj(01CC)->NJ(01CA) Dz(01F2)->dz(01F3)->DZ(01F1) ϒ(03D2)->υ(03C5)->Υ(03A5) ϓ(03D3)->ύ(03CD)->Ύ(038E) ϔ(03D4)->ϋ(03CB)->Ϋ(03AB) ϴ(03F4)->θ(03B8)->Θ(0398) ẞ(1E9E)->ß(00DF)->ß(00DF) Ω(2126)->ω(03C9)->Ω(03A9) K(212A)->k(006B)->K(004B) Å(212B)->å(00E5)->Å(00C5)
375 :
370 :2013/02/03(日) 21:09:18.09
貼れないのか
ファイル名の比較は正規化すればいいと思ってたけど、これを見ると不安になってくるな。
これはja-JPでの結果でInvaliantCultureを与えるようにしたらどちらも0件になったよ
>>377 あれ?日本語実行環境下だとInvaliantCultureてja-JPじゃないのけ?
今外でMSDN見てないので何か勘違いしてるかも知れないが
InvariantCultureはカルチャ不変
質問があります RxのOvservable.Intervalを使って非同期処理を実装しているんですが 複数の非同期スレッドを同時に実行したい場合はどうすればいいのでしょうか 具体的には8つのスレッドを同時実行で回したいんです
Javaの匿名クラスが外部変数にアクセスするにはfinalつけないといけませんが、C#の匿名クラスからアクセスするときは、readonlyだのつけなくていいのはなぜですか?
クロージャの話を始めると長くなるのだがどうしたものか(´・ω・`) Javaはクロージャについてのいろいろな面倒を避けるため 簡単・単純化にしたとだけいっておこう。
ローカル変数は普通はブロックを抜けたら消滅するけど、 クロージャの中で使用されてる外側のローカル変数はいつどこで使われるかわからないから 単純にスタックに作るわけにはいかない。だからC#ではそういうローカル変数はヒープに確保する。 Javaはそういうの面倒だからと単純にその時の変数の値をコピーする方法を取った。 だから後で変数の中身が変更されると辻褄が合わなくなるの。
.NET4.5からWeakEventManager.AddHandlerが追加されてますが 単純にハンドラを弱参照で持ってるわけでは無さそうです。 どうやっているのでしょうか?
>>384 C++なんかラムダ式でキャプチャされてる変数も有無を言わさず消滅するよな。
>>385 VMじゃないよ。C#のクロージャはコンパイラレベルで実装。
キャプチャされてるローカル変数をフィールドとして持ち、クロージャの本体をインスタンスメソッドに持つ
クラスを自動生成するわけだ。
>>366 うわー。ファイル名比較以外でもString.ToLower()/ToUpper()を何も考えずに使ってたよ。
ちなみにGet/EnumrateFilesでは複数指定出来ないようです
"*.ogg|*.flac" -> 例外出る
"*.ogg;*.flac" -> マッチしなくなる
>>389 うまく動くようにCurrentCultureがデフォルトな訳だから頭の隅にいれとけばいいよ
例えばstring.Compareなんかは日本語環境下で円記号とバックスラッシュを一致と見做す
エディタの検索機能などであればこの方が都合がいい
逆にファイルパスをバックスラッシュでSplitしディレクトリ名を得ようとすると円記号までデリミタ扱いされてバグとなる
あぁこれはちょっと気をつけた方がいいかも
ファイルの同一性はファイル名だけ比較してもわからないから、ファイルIDでやってる。
ファイルIDって何ちょ? ITEMIDLISTのこと?
GetFileInformationByHandleで取れる奴
おいカスさっさと初心者スレ立てろや 初心者様がご質問できないだろうが!
395 :
Roche :2013/02/07(木) 19:10:37.10 BE:209492238-PLT(45072)
うむ、ごくろう
全然相談でもなんでもない独り言だけど、 VSのC#エディタって[ctrl] + L実行するとクリップボードの内容が消えるんだね。 なんでこんな嫌がらせみたいな仕様になってるんだろうか。
編集.行の切り取り (Ctrl+L (テキスト エディター)) クリップボードにコピーされなかったら詐欺だな
>>398 なるほどそういうことかw
ずっとカーソルのある行を削除するものだと思い込んでた。
Eclipseか何かのショートカットキーとごっちゃになってたかも知れない。
viでvlllllyした後に、貼り付け位置前後でddとかxしてクリップボードの中身が消えて萎えたこと思い出した。
vが使えるなら複数アンドゥできるんじゃね?
クリップボード監視ソフト作れよ 50回分くらい保存しとくと捗るぞ
enum Sex { Male, Female, } static void Main(string[] args) { Enum male0 = Sex.Male; Enum male1 = Sex.Male; Enum female0 = Sex.Female; Enum female1 = Sex.Female; Console.WriteLine(male0 == male1); Console.WriteLine(male0 != male1); Console.WriteLine(female0 == female1); Console.WriteLine(female0 != female1); Console.WriteLine(Enum.Equals(male0, male1)); Console.WriteLine(Enum.Equals(female0, female1)); Console.ReadLine(); } 知らんかった・・・
System.Enumへのキャストがナンセンスということかな?
>>403 ソースコード内でsexとかなんか恥ずかしくないか
性別はgenderと書いている
enum MakeLove { ... }
enumの使い方を知らなかっただけだろ
>>403 のライフはもうゼロ
↑アホ
その型で演算子のオーバーロードが無いから当然っちゃ当然
演算子オーバーロードじゃなくて単なる数値比較と同じで言語仕様な
Enumは数値型ではないのだが
>>411 アップキャストしないで列挙型を普通に比較したときの話
↑アホ
object x = 1; object y = 1; Console.WriteLine(x == y); // False Console.WriteLine(object.Equals(x, y)); // True 原理的にはこれと変わらないのかな。 enumをSystem.Enumにアップキャストするとboxingされる。
簡単な多次元ArrayListみたいなのの使い方おしえろや
List<List<T>>
多次元Listが使いづらすぎてPHPが恋しくなるわ
>理解しやすく使いやすい構文でジェネリック型を指定することで、習得に必要な時間が短縮され、 >新しいライブラリの採用率が向上します。 確かにライブラリ使おうとして引数や返り値にDictionary<String, List<List<T>>>とか出てきたら投げ捨てるな
でも、Dictionary<string, List<T>>はわりとよく使う
うい。 if( !dic.ContainsKey( str ) ) { dic[str] = new List<T>(); } みたいな感じで
家の中で何しようが勝手だが外で恥部を露出するなよ
>>424 ち、恥部って具体的になんすか?どこっすか?///
とは言っても、データの種類毎にいちいちCollectionクラス作るのは結構メンドイ
>>426 なら直接インスタンスメソッドにすりゃいい
外にDictionary公開するようなクソコードはだいたいそれで回避できる
MSのライブラリって利用者の利便性を最重要視してるから、コレクションをクラス外に公開してることがよくあるけど 自分で作るときはCollection<T>継承したりするよりも AddHoge(Hoge hoge), GetHoge(int index) みたいなメソッドを本当に必要なものだけクラスに直接実装して公開したほうがいい Java的なやり方だけどその方がずっとシンプルだし扱いやすい
has-aで済むときはhas-aで済ましましょう、と。
というか階層掘るのはやめなさいってやつだな テストしづらくなるし実装変更も大変になる
>>422 つLookup<TKey, TElement>
と思ったけどこれってLinqの結果参照用なんだよな
こんなところで質問してる最底辺のカスの糞コードなんぞ誰も利用することはありえないから好きに書けばいい
人もどきは日本語がおかしいからすぐにわかる
List<T>とかDictionary<T,V>を露出させたがる奴は、作りっぱなしで保守したことがないんだろう。 もしくは、スレッドを意識したコードを書いたことがないかだろう。
全てのクラスがスレッドセーフである必要はないので、2行目に関しては完全な言いがかりだ 実際にクロススレッドで使っているのならともかく
MSのガイドラインのList<T>やDictionary<T>を公開するなインターフェイスかCollection<T>使えっていうのが かえって誤解を与えてる気がするな あれはライブラリ作って売るときのガイドラインだから利便性が重要なので仕方なくコレクションを公開するときに せめて実装変更が可能な方法で公開しろって話で、普通は中のコレクションを外にそのまま見せること自体避けるべき その方が楽だし
んで、結局Tのコレクションをプロパティにしたい時どう書けばいいの 何かをgetのみで公開して追加はAddRange?
IList<T>公開しとけ
gnuplotやkaridagraphみたいにグラフをプロットするコントロールて有りますか? あまり高機能なものじゃなくていいです
>>437 しなくていいい
追加したいなら追加するためのメソッドを定義する
取得したいなら取得するためのメソッドを定義する
>>439 System.Windows.Forms.DataVisualization.Charting
List<T>を公開した時の弊害>その追加実装の工数+バグのリスク って事? Control.Controlsみたいに(まぁあれはList<T>では無いけど)しとけばいいんじゃ無いの?
>>442 public void AddPerson(Person person) { persons.Add(person); }
public IEnumerable<Person> GetPersons() { return persons.AsReadOnly(); }
これだけのことだよ
理解できてないような気が MSのガイドラインはList<T>は拡張性に問題があるんで Collection<T>とかIList<T>にしとけって話
List<T>にするとList<T>もしくはその派生クラスに限定されてしまうので インターフェースであるCollection<T>やIList<T>にしておくとよい。 ということ?
>>444 やってることは同じ。
>>443 は必要に応じて動作を変えられる。でも利用者からするとコレクションの方が使いやすいから
代わりにCollection<T>やインターフェイスを使って実装入れ替えられるようにしておくんだよ。
Collection<T>やIList<T>を使うかどうかは外でコレクションとして扱える必要があるどうかによる。
カプセル化の観点からは
>>443 で十分。
最終的には、あくまでもMSの言い分なんであなたが義務感を覚える必要は無いです
なんとなく分かってきたわ 確かにオブジェクトの状態をList<T>で設定出来ちゃうとListの変更をトリガーとした処理が書けなくて困るよね
>>448 でも、そうしないと、やれ「低能」だの「底辺」だの言われてへこむんです。
IList<T>にしろList<T>にしろ、どっちもリストの項目を追加・削除・クリアできることからして 公開した際の副作用(危険性)は、変わらない。 IList<T>だろうと、公開されれば外部からリストを操作できる。 何らかのメソッドを通してList<T>にアクセスすべき。 その何らかのメソッドを通すことでクラス内で変更があった場合の特定の処理を挟んだり、比較的安全にlockしたりできる。
ちゃんとオブジェクト指向するんならコレクションを操作するという発想自体が間違ってる そのコレクションを使った処理はコレクションを持ってるクラスのインスタンスメソッドにするべき
自分で何を言ってるのか、わかってないんだ。 それこそオブジェクト指向じゃなくて手続き指向だなw そもそも今ここの話と全然噛み合ってないのに
451それこそ用件次第だろ アホか
ちゃんとオブジェクト指向とか意味不明な発想はいらん 必要なときに必要なパラダイムを使えばいい パラダイムを選ぶためにやり方が束縛されるなんて機械に操られた人間じゃあるまいし
なにいってんだ支配者層以外の人間は集金システムの一部だよ
せっかくいいとこ取りの言語なのに、自ら縛りプレイとか笑っちゃうよね。
やれ「低能」だの「底辺」だの言ってる層って確実にこのスレにいるよね
可能ならそうすべきと必ずそうすべきの区別が必要だなー。
>>443 なんでCollection<T>派生って選択肢がないの?
クラスを自由に増やせない土方なの?
>>463 だからとか言われても困るが、俺は「無意味な独自性が呼び出し側に負担をかけている」と言いたい
>>443 はCountもまともに取れないんだが、
「中身はIList<T>だからEnumerable.Countを使ってください」とでも説明すんのか?
463は誤爆じゃないかと思う 443はイテレータ返してるのにわざわざAsReadOnlyしたりよく分からんねえ
それはピンポイントな誤爆ですね
誤爆というか相手を間違えてるというか?
CountとかLinqで取れるだろ。馬鹿か
イテラブルが返ってるけど中身はリストだと思うのでCountのコストはO(1)だ って予想してくれるならいいけどな そんな内情予測しないと使えないんじゃインターフェースの意味ねーだろ
n番目にアクセスするのもLINQでできるだろとか言い出しそう できるけどさあ…
つかAsReadOnlyするならそれ公開しとけばいいじゃねえか 何の不都合もおこんねえよ
Enumerable.Countを知らない
>>468 ちゃんはクエリ構文でLINQ書いてそう
かわいい
>>451 >IList<T>だろうと、公開されれば外部からリストを操作できる。
ReadOnlyCollecion<T>をIList<T>として公開してたらどうでしょうか
別に禁じられちゃいないと思いますが
>>464 馬鹿じゃないの。
>>443 は列挙可能であることのみが要求されるケース(Countが必用でないケース)
を想定しているのだから話が噛み合ってない。
言ってもわからないと思うけど、
>>443 は論点を明確にするための単なるサンプルでしょ。
その論点というのは、契約は必要最小限の緩いものの方が好ましいということ。
ライブラリの返値の型なんか、いったん公開したら簡単に変更できないのだから
ライブラリの保守性の観点から言えばなるべくインターフェイス、それも継承階層の
根本に近いものの方が有利。
>>465 ダウンキャストすれば変更できてしまうからAsReadOnlyは必要だ
まあ変更不能にするならIList<T>でいいと思うが
つか必要ならIList<T>を公開したらいいってのは
>>447 で言われているな
>>451 はちょっとよく分かんないけど
インターフェースを返してダウンキャストされるってのは想定すべきことなんだろうかね インターフェースが契約なら契約の外の扱いだよねそれは
>>451 もコレクションが外から変更されることによる害を言ってるだけであって
読み取り専用コレクションをIList<T>で返すことは別に否定してないだろう
>>443 を理解してないバカが引っ掻き回してるだけ
要するMSの作ったコレクションインターフェイスたちがいまいちということでok?
>>475 俺は何が必要か決めるのはクラス設計者じゃないと言ってる
>>481 それ言い出したらキリがない。いちいちあらゆる状態変更に対して辻褄合わせしてらんないから
イミュータブルなクラスとか使うわけだし。
>>482 だからCollection<T>を使うんだよ
最小限の追加実装で辻褄が合わせられるから
>>478 しなくていいと思うよ
想定外の使い方する方が悪いんだから
で突っぱねられれば仕事は楽なんだけどなー
実際は想定外の使い方をしてる癖にバグっただの何だので調査させられるんだよなー
なので想定するに一票だな
リフレクションでアクセスされる事を考慮するか云々と限度はあるだろうけどね
馬鹿の壁って言葉を発明した人は偉大だw
言葉を発明ってどんな日本語だよ
普通に使わないか? まあ、「考え付いた」ぐらいの意味だけど。
使うね 言葉を生み出したとか発明したとか 単語単位で使うよ
まさにバカの壁
そんなに気に入ったの?
DictionaryとComboBoxを組み合わせたコントロールの名前が決められません なにか良い名前ないですか
MankoBox
cmbDictionaryだろ
DictionaryComboBoxでいいじゃん
どういう見た目のコントロールなんだ?
ComboBoxにkeyとvalueを持たせただけですよ 見た目はComboBoxのままです
KeyValueBox
>>497 表示されている文字列がkeyで、
SelectedItemがvalueって感じか?
DictionaryComboBoxが一番無難だな
コントロールだったら初めの文字で何のコントロールか判断できたほうがいいからcmbから初める cmbまで打てばコンボボックスが全部出てくるじゃん
クラス名だろ
DictionaryComboBox, KeyValueComboBox あたりが無難か
一番多かったDictionaryComboBoxにしようと思います ありがとうございました
いくつか候補があがったらググって件数で選べばいい
KeyChainComBox(ボソ
まあご本人が回答に満足してるようだし、それならそれで結構なことだけど、 ComboBoxのようなコレクションの中からユーザーが1つのアイテムを選択するコントロールが KeyとValueを持ってるって意味不明としか思えないんだけど
そうか? ComboBox の項目に付加情報を付けたいってのは 往々にしてあるというか、ほぼ100%くらいだと思うんだが ComboBox で表示するためだけに 付加情報のクラスに ToString() をオーバーライドするのは良くないので 結局付加情報を内包し、ToString() をオーバーライドしたクラスを突っ込むのはよくやってる 付加情報から表示文字列を作れない場合は、表示文字列を一緒に内包する DictionaryComboBox の場合は付加情報から表示文字列を生成できないケースで便利だと思う
>>509 何を言っているのかちょっと良く理解できないけど、
(1)ComboBoxで選択するオブジェクト、と
(2)それをComboBoxに表示する時の文字列
の対応表は、(1)のラッパークラス(ComboBoxのItemsに食わせるオブジェクト)
を生成する何者かが知っていれば済むことで、ComboBoxにそんな対応表の機能まで
持たせる設計はどうかと思うんだけど
>>509 はほぼ100%ラッパクラスを作るんだから
ComboBoxに対応表の機能が最初からついてりゃ便利なんじゃねという事
データから生成した方がいいケースでは動的な表示の変更がし辛いので良くないが
対応が決まっている場合はいいんでないの
Dictionaryのkeyを可視化してユーザが選択できるようにしただけのことだろ 難しく考えんなよ
採用されなかった名前の奴がふぁびょってんのか?
cmbDictionaryが暴れてんのか
コントロールのインスタンス名ならともかく、クラスの名前にハンガリアンはない。
まあこれも馬鹿の壁かな。
こういうネタになると、世の中になんで意味不明な設計のコードが溢れてるか
よくわかる気がする。
っていうか、馬鹿はまだ許せるけど
>>514-515 みたいなこういう幼稚は嫌だね。
コントロールを継承したクラスを作るのは、フォームのコード量を減らすのが一番の目的だと思いますの。
データバインディングってどうなるんだろう
バカの壁を知らない馬鹿が勝手に脳内変換して吹聴するなよ
なんで今頃バカの壁? また流行ってんの? 子供には新鮮なのか?
チョベリバなんですけど
MoguMoguCombo
>>517 再利用しなければフォームのコードがコントロールに移るだけでコード量(合計)は減らない
コードを移すのが目的じゃなくて動作の責任を移すために使うもの
>>497 ComboBoxのDataSourceにDataTableを割り当て、ComboBoxのDisplayMemberとValueMemberを指定する。
のと何が違う?
何が違う?クラスが違うだろボケ
お前ら屁理屈がすきだなぁ
なんだかしらんがやたら悔しさが滲み出たレスばかりだな 見てるほうが悲しくなるぞ
お前がな
いやいやおれが
いやいやおまえが
533 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/02/12(火) 22:01:13.02
C#でネイティブアプリ開発できるって本当ですか?
できません
JITだもんね〜。
MonoにAOT版があったと思う
興味深い話ではあるが読み辛い・・・・・・・・
c#で出来たオープンソースの専ブラってないですか?
twintail
C#しか出来ない奴が次覚えるとしたら何の言語が良いですか?
CかLLのいずれか
常識としてHTML+CSS+JS
C#とhtmlは全然違うじゃん・・・
似たような言語をやっても似たような言語しかできないままなので
でもhtmlは違うだろ プログラミング言語ではない
それはXAMLがプログラミング言語と違うと言うのと同じじゃないのか
今の時代webアプリが作れないのはイマイチだね
こういうこと言い出すから「好きなようにしろ」、が正解 自分で決められないならすぐにPC叩き壊して寝ろ
PHPとJavaScript
地獄で使ってるプログラミング言語は何でしょうね それを覚えて旅立てや
IronPython
で結局C++最強伝説に落ち着くのかorz
肝心のMSが迷走してるからな .net戦略もどうなるの?ってレベルだし
迷走もクソもMSはWebで大成功してますがな
Linus「C++はウンコ」
RAIIに頼ってるくせに自分でメモリ管理してるだとか最強だとか片腹痛い
558 :
デフォルトの名無しさん :2013/02/15(金) 02:25:41.40
>>555 webで大成功といっていいかはわからないけど、
過去1年でWeb serverのシェアでIISが大幅に伸びているらしい
asp.net MVCとEntity FrameworkとC#が評価されつつあるということだと思う
>>541 JSは必須として
Web系ならC#, Java, Scalaが最強3言語だろう
今時Javaはねえよ
>>559 Javaは言語はクソだけど高速だし、エコシステムが強いんだよ
オープンソースでよいものがたくさんあるのがつよい
それとScalaを使うにはJava(のライブラリ)の知識が必要
サーバーサイドなら>558の3言語よりよいものないだろ。
type-safeで高速といったら、C#, Java, Scala
F#はしらんw
旧ASPスタイルで書かれたASP.NETのメンテナンスや 拡張ばかりめぐり合うのだが、 WebFormやasp.net MVCはどのくらい使われてるのだろう。
>>560 Javaは、黒魔術的なテクニックとか、syntax sugarとか無いに等しいから、
コードにクセが出にくくて
メンテナンスの引継ぎがし易いんだよね。
563 :
デフォルトの名無しさん :2013/02/15(金) 16:11:44.33
bool flag WaitCallback task = (obj) => { flag = true while (flag) { } } これで外部から flag = falseにしたらタスクが止まると思ったんですが、止まりません なぜなんでしょうか?
sleepを入れないとだめだよ
whileの中にThread.Sleepいれましたが、止まりません flagにvolatileもつけましたが、やはり止まらないです‥‥‥ 加えて、デバッグしたら、flagの値はちゃんとtrueになってました‥デバッグ
flagがtrueなら止まらないんじゃない?
SpinWait.SpinUntilを使うといいらしい
BeginInvoke等でスレッドを起動した直後に flag=false; してるとか?
>>566 falseの間違いでした
>>567 それ使ったら止まりました
ありがとうございました
>>568 いえ、ThreadPool.Qうんたらでタスク走らせたあとに、手動でボタンを押してflag = falseにしてました
で、何故なんだ 巻き上げ最適化でもされてんのか
とりあえずミニマムのコードを用意してみた。 using System; using System.Threading; class Test { bool flag; //volatile bool flag; public void Test1() { ThreadPool.QueueUserWorkItem( o => { flag = true; Console.WriteLine("Start"); while (flag) { }; Console.WriteLine("End"); }); Thread.Sleep(3000); Console.WriteLine("Request Cancel"); flag = false; Console.ReadLine(); } static void Main() { new Test().Test1();} }
やめれw 実体参照使えなくなった件を差し引いても あれ半角空白と文字コード違うから混乱のもとだ
すまん、なんか見にくいね。スペースリプレースで頼みます_(._.)_ volatileなしでcsc /debugの場合は正常。 csc /o の場合は発生。 volatileありの場合は最適化デバッグの有無にかかわらず正常。 でした。
using System; using System.Threading;class Test { bool flag; //volatile bool flag; public void Test1() { ThreadPool.QueueUserWorkItem( o => { flag = true; Console.WriteLine("Start"); while (flag) { }; Console.WriteLine("End"); }); Thread.Sleep(3000); Console.WriteLine("Request Cancel"); flag = false; Console.ReadLine(); } static void Main() { new Test().Test1();} }
改行が変になった using System; using System.Threading; class Test { bool flag; //volatile bool flag; public void Test1() { ThreadPool.QueueUserWorkItem( o => { flag = true; Console.WriteLine("Start"); while (flag) { }; Console.WriteLine("End"); }); Thread.Sleep(3000); Console.WriteLine("Request Cancel"); flag = false; Console.ReadLine(); } static void Main() { new Test().Test1();} }
すいません、諸先輩方に質問です うちのPMがソース読めば理解できるだろ?ソース読めば書けるだろ?って言ってくるんですが。 ノウハウがないのにソース読んで理解できるんでしょうか? 例えばニッチな分野で、その分野の専門知識やフレームワークの知識が必要なのに、ソースが閲覧できるならすべて理解できてコーディングもできるって論法なんです。 だったら公開されてるUnixやLinuxのソース読んで新しいOS作れるんですか?って反論したいんですが、この考え方間違ってますかね? ソースさえ見られればなんでも理解できてすぐ作れるなら私はAppleやGoogleで働けるんじゃないかと思うんですが・・・
ソース読んでわからないのは基本的に技術不足のせいだし、 極論で反論しようとするのは人として間違ってるし、 質問すべき板も間違えてるし
資料があるなら資料読んだ方が明らかに効率がいいけど ない場合はソース解析になるかな それこそニッチな分野だと 資料が少なくてソースを解析するしか無いってケースもなくはない 難しい場合は理解できない事もあるだろうから まあどこまで理解できるかはケースバイケースだな
580 :
569 :2013/02/15(金) 23:20:33.77
すいません。これが具体例です。意図どおりであれば、5〜6のところでaが終わるはずなんですが。 class Program { static void Main(string[] args) { new Program().test(); Console.ReadLine(); } private volatile bool stop; private void test() { stop = false; WaitCallback a = (o) => { int i = 0; while (!stop) { for (i =0; i < 10; i++) Thread.Sleep(1000); } Console.WriteLine("a ends at " + i.ToString()); }; WaitCallback b = (o) => { Thread.Sleep(5000); stop = true; }; ThreadPool.QueueUserWorkItem(a); ThreadPool.QueueUserWorkItem(b); } }
>>580 そりゃ
for (i =0; i < 10; i++)
Thread.Sleep(1000);
で10秒かかるから 10 になるに決まってんじゃん
for (i = 0; i < 10 && !stop; i++) にしないと
本当にこれが具体例だとズコーじゃ済まないぞ
てかwhileとか要らなくて for (i = 0; !stop; i++) Thread.Sleep(1000); で良くね?
>>581-583 その前のスコープでwhile (式) { }とやっているんだから、その(式)が偽になったらその場で終わると思ったんですが・・・・違ったんですか
それじゃwhileとforが並列で動いてる事になるでしょw スレッド使ってる割りにその認識はヤバい
なぜこういう発想に至ったのかよく分からないな そんな言語ほかにも無いだろう
と、いうわけで。 ∧∧ ヽ(・ω・)/ ズコー \(.\ ノ 、ハ,,、  ̄
まだマルチスレッドは早いわ
スレッド以前に制御構造の認識としてもまずい。 その理屈で行くとこれどうなると思う? stop = false; while (!stop) { Console.WriteLine("1"); Console.WriteLine("2"); stop = true; Console.WriteLine("3"); Console.WriteLine("4"); Console.WriteLine("5"); }
まあまあもうそのくらいにしておいてあげよう
池乃めだかか
>>583 逆だ。そういう書き方するならfor使わずにwhileだけで済ますだろ。
>>580 5,6ってどの場所だよ。どこにもそんな箇所見当たらないぞ。何行目だ?
5~6秒と言いたいのだと思いますよ
>>585-589 なるほど。
・・・確かに中のループの繰り替え条件に外の条件が関係しないほうが自然かもしれませんね・・・
ありがとうございました。
ちょっとしたカルチャーショックだった
598 :
592 :2013/02/16(土) 00:12:36.55
>>593 「5〜6のところ」 理解したw
出力結果が
a ends at 6
になるはずだって事ね。これはズコーだわw
>>595 >>589 の言ってること理解出来てる?どの時点で!stopは評価されるか理解出来てる?
そういえば、ループ条件満たさなくなったとたん途中でも強制的にbreakさせられる言語とかあったっけ?
マルチスレッドの話、、、だったのか?
XDocument.LoadってValue内の&を&に自動的に変換してくれないの?
XmlReaderのSettingで何かしないと駄目だった気がするな
お前ら今日はやけにやさしいじゃねーか
常に同じ人が回答してると思ってるのか?
読解力もボキャブラリーも無いカスはくせぇからすっこんでろ
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘
ガンオンやってるけどさ・・・ サンデープログラマーが.netで組んだんじゃないかって くらいひどいありさまだよw あんなのが大手メーカーの製品として出荷される日本って なんなんだろうなw
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘
いきなりガンオンとか言って理解されるとか思っちゃう程度の人たちが作ったんじゃね? なんのことか知らないけど
ネトゲ中毒のプログラマーもどきでも雇ってんじゃね
俺もそろそろインタプリタのひとつやふたつ作ってみるかな プログラミングを極めるにはインタプリタとOSを作らないと だめらしいし。
>>610 アセンブラは俺の嫁だから勝手に作るなよ。
おまえはバイアスやディレクトリあたり作って嫁にすれば?
バイアスってなに?
下駄をはかせること。
色眼鏡
麻宮騎亜の漫画ネタじゃないの?
test
拡張メソッドで、ポリモフィズムは出来ないかと思い、以下のようなサンプルプログラムを作ってみましたが、出来ませんでした。 tp://ideone.com/ADeFlj 拡張メソッドで、ポリモフィズムってできますか?
できぬ
とりあえずurlの頭を削ったり全角にしたりする人には無理じゃない?
多分忍法帳のレベルが足りなくてURL貼れなかったんだと思うよ
ある文字列が、YYYY/MM/DDだったらtrueを返すメソッドを作りたいんですが、 特定の文字列のフォーマット調べる関数ってありますか?
正規表現
DateTime.TryParseExact 13月とかを許す必要があるなら正規表現
2013/02/29
簡単な方法があるのに回りくどいやり方で説明してんなと思ったら不具合も考慮したうえでの説明だったとはな 見直したぞdobon先生
他アプリケーションが使用しているprivateなメモリの値を読み取ることは可能でしょうか?
privateの意味による
テキストボックス上でCtrl + 任意のキーを押した時にビープ音を 鳴らないようにしたいんですけども、何か方法ってありますか?
"c# キー ビープ音" これだけではいて捨てるほど引っかかるわ
>>631 確かにEnter、Escapeを押下した時は、そのページの内容で対応できるのですが
例えば、Ctrl + Kキーをテキストボックス上で押下するとビープ音が
鳴ってしまうので困っています。
検索も使いこなせない馬鹿がプログラミングなんて出来るのかよ
まるまるコピペして出来ませんとかほざいてる馬鹿に教えるだけ無駄
サンプルが何をしてるか考えろウンコクズ
人並みの頭が無いからこんなところで質問するしかないんだろ それがわからない奴は回答しなくて良いよ
対象のキーに割り当てられている操作を握りつぶしてるだけだかんな その辺頭に入れておけよ
ハンドル奪ってるだけだろ 握りつぶすならOnKey***でbaseを殺せ
お前らなんで糞フォーム前提なんだよ 早く捨てた方がいい
Form最高 何もかもこいつにぶち込んで作るの最高
フォームが楽だからC#使ってんのに WPFとか面倒すぎてマジ糞
Silverlight最強!!!
WPFの方が手間がかかるとか嘘だろ。
単に
>>643 が一度覚えたフォーム以外の
フレームワークを勉強することをしてないだけ。
簡潔性と表現力のどちらに於いても
WPF >>> WinForm
つーかWinFormだとdpi非依存とか無理
WPFは挙動がクソ
思想家が多くてクソ
適材適所 WPFの適用が少ないというだけの話
WPF好きだけど.NET4以降でないと使い物にならないのがなあ 不特定多数向けならどうしてもFormsになってしまう
不特定多数が使うソフトの場合、XP世代のPCのシェアが10%切らないと ビジネスでは採用しづらいだろうね。 XPは今でも40%ぐらいシェアがあるそうだから、これが毎年10%ずつ減少すると 楽観的に仮定してもあと3年はかかる計算か。
来年でXPのサポート切れるけど、 なんだかんだで以降しない奴とかいるだろうしな。
TcpClientのテストをしたいのですが、ipとポート番号を指定する必要があります 自分のローカル環境とかで使うには、どうすればいいのでしょうか・・・
常識的にループバックアドレスを使う
private static TcpClient client = new TcpClient("127.0.0.1", 80); これを書いたら、 以下の様なメッセージがでてきました {"対象のコンピューターによって拒否されたため、接続できませんでした。 127.0.0.1:80"}
IISを立ち上げておけよ
もしかして:IISを有効にしていない
それで駄目ならセキュリティ設定の関係なので自分で環境見直してください やれないようなら貴方にソケットプログラミングはまだ早いです
Apacheは有るんですけど
あるのはいいけど起動してるのか 80番ポートでちゃんと待ってる根拠はあるの
660 :
デフォルトの名無しさん :2013/02/23(土) 15:26:45.99
IISをインストールしたら無事にいけました ありがとうございました。
Windowsファイヤウォールの設定もしておけよ
Task.Factory.StartNew( ()=> hoge() ).ContinueWith( (t)=> gNuNu(), TaskScheduler.FromCurrentSynchronizationContext() ); hoge()だけじゃなくてgNuNu()で例外が発生しても AggregationExceptionになるの? UIスレッドで実行されるから普通にスローされるだけかと思ったら GCがなんちゃらファイナライズした時に問答無用でプロセスが落ちるわ
>Task.ContinueWith メソッド >ターゲットの Task が完了したときに非同期に実行する継続タスクを作成します。 UIスレッドではなくねえか
>>662 そりゃ非同期なんだからUIスレッドでもUIスレッドのどこで例外が飛んでくるかはわからんわな
Application.UnhandledExceptionで捕まえられるんじゃないの
665 :
デフォルトの名無しさん :2013/02/24(日) 17:37:54.46
自動で2chに書き込むプログラムはどのように作りますか?
帰って、どうぞ
V2Cでも逆コンパイルすれば
Twintailって無かったっけ あれのソース読めよ
IE操作でいいじゃん
C#のtoolstripにテキストボックスを置いているんですが、プロパティにAnchorが無いのでウィンドウサイズを変更したときに自動で伸ばすことができません Anchorで左右を指定したときのようにするにはどうしたらいいのでしょうか
>>670 プロパティーの設定だけでは無理でしょ。
switch文で呼び出すクラスを選択して、インスタンスを生成して呼び出すようにしているのですが、もっと短い書き方がないかと悩んでいます。 現在は switch(aaa){ case 1: Class1 c1 = new Class1(); c1.method(); break; case 2: Class2 c2 = new Class2(); c2.method(); break; } のように書いています。 クラス内には他にもいくつかメソッドがあり、一度クラスを選んだ後は、クラスの変更をすることはありません。 ですが、今のままだとメソッド毎に上記のswitch文を書く必要が有り、非常に面倒です。 希望としては、以下の様に、クラスのインスタンスを共通の変数に入れ、そこからmethod()を呼び出すようにしたいと思っています。 var c; switch(aaa){ case 1: c = new Class1(); break; case 2: c = new Class2(); break; } c.method(); このような書き方は出来ないのでしょうか。
普通にinterfaceなりActionデリゲートなり使えば良いんでないの
duck typingやりたいならvar じゃなくて dynamic使う方法があるが、 methodをメンバーにもつinterface使うのが普通だろう。
なるほど!interface使ってやってみます!
つーか普通に継承の適用箇所だろ abstract class 作って各ケースごとに派生クラスをプロパティなりコンストラクタなりに渡せば
>>673 その為のvirtual関数では・・・?
スコープが小さすぎると思います インターフェイス適用したところで無駄です
もともと case 1: Class1 c1 = new Class1(); c1.method(); break; の間しか生きてないんだからその都度オブジェクト作るのって無駄です
文盲
いやインターフェースでいいよ
スコープ広げてインスタンスを全体で使いたいんだけどどうすればいいですか><って質問だろ?
>>680 は何言ってんの?
面倒くせえから反応すんな 流せ
インターフェースか抽象クラスだな
はい以後レスしないように
インターフェイスと抽象クラスの使い分けってどうすんの?
690 :
デフォルトの名無しさん :2013/02/27(水) 00:39:39.24
誰かlibjpegのC#ラッパー作ってる人いたらいただけませんか? Image.saveだとjpegの画質が酷いのでjpegの保存だけlibjpeg使いたいんです たのんます
691 :
デフォルトの名無しさん :2013/02/27(水) 00:45:29.38
ビルドしろとまでは言わないがdllの形で入手してdllimportくらいは自分で書け Cのヘッダも読めない奴が画質が酷いだの文句を抜かすな
>>692 むしろヘッダーファイル渡すとDllImportを並べたstaticクラスを生成してくれるツールがほしい
アンマネージドいやずら
697 :
デフォルトの名無しさん :2013/02/27(水) 18:22:29.56
クラスの説明として親切丁寧な説明を追加したいのですが<include>タグを使って読み込むのはわかったのですが、 その書式というかXML?, XPathで書き方がわかりません。 どういうエディター?もしくはVSプラグインを用意すればいいのでしょうか?
namespaceで使う方のusingについて using d = System.Drawing; と書くことによって d.Bitmap()のようにクラスを使うことが出来るのですが、メソッド内で 何らかの方法でdに別の名前空間を設定することは出来ませんか? クラスより外でなければエラーが出てしまいます。
>>698 XMLとXPathそのものの解説が必要なら、ググるなり自分で資料を当たるなりしてくれ
C#のドキュメントコメントで使えるタグと使い方は、
>>699 のリンクにある
誤解しているような気がするが、includeタグを使わなければならないわけではない
VisualStudioを使っているなら、ソースコード内の適当なメソッド宣言の上で///と打てば補完が働くだろう
とりあえずそのsummaryの中に書けばいい
702 :
697 :2013/02/27(水) 21:21:20.10
>>700 <summary>の中に書ききれないから<include>を使うわけで。
例えば本文中に画像を差し込んでセンタリングする為のタグがない
できれば直接タグ打ちではなくGUIエディターで編集したい
どうすればいいですか
提供されてない機能を使う魔法でもあると思ってんのかな。
Sandcastleのエディタ探した方が早いんじゃないかな
>>702 一応聞いておくけど、その「説明」を読む人は、なんのアプリケーションを使って読む予定なんだい?
707 :
697 :2013/02/27(水) 21:46:02.55
>>704-706 すみませんタグをつけた後はSandCastleでWindows標準のMSヘルプにします。
今調べていますが生のHTMLファイルをSandCastleプロジェクトの下に入れておくと
とりあえず表示できましたが(目次の表示が文字化けしたが)この方向で無理ですかね
スコープを狭めるだけの無意味なステートメントってありませんか? while(true){ ~~~ ~~~ break; } これと同じような意味になるものです
{}
{ }
それだけでいいんですか!ありがとうございます
C++やVBの千行クラスの糞関数を移植するときにしか使ったことないわ そんなものを使う必要があるほど長いメソッドを書かないのが一番
メソッド小分けしたほうが見通しがいい
switchのcaseラベル下で同じ名前のローカル変数を使いたいとき switchの外に定義するのも面倒なとき使ったわ
そのwhileってbreakで途中抜けしたいから使うんじゃないんかな
そんなとこでローカル変数使うなんて邪道
じゃあどうすればいいかコードで示してくれ
男は黙ってグローバル
大人女子なあたしは可愛くローカル変数で決めちゃう☆
>>715 gotoじゃん
それやるんだったらむしろgotoの方が見やすいと思う
gotoはいかん goto使ってるソースだけは読みたくない
goto不要原理主義なんかまだ居たのか さっさと使いどころ覚えればいいのに
後の処理を飛ばすために while(true) { ... if (cond) break; ... } なんて使うよりは ... if (cond) goto EXIT; ... EXIT: の方が可読性が高いし変な誤解を招かない ただし上向きにgotoする奴は死ぬべき
設計が悪い場合にのみ必要になる
それは全くの誤解
726 :
723 :2013/02/28(木) 12:09:02.51
訂正 while(true) { ... if (cond) break; ... break; } もしくは do { ... if (cond) break; ... } while (false);
まあどっちにしてもスコープのためには使わんね、C#に限らず
JavaScriptではスコープのために (function() { var x = 1; })(); こんなことするけどね
しない
どこぞの言語みたいにbreakにラベル指定できたらオールOKなだけな気もする あれは脱出専用goto(かつ絶対に上向きには飛ばない)だから
なるほど、2重ループとか、ループ内のswitch caseから一気に抜ける手段が あるのはいいな。
関数化してreturn
多重ループ抜けられないのは困るよな goto使わざるを得ない 全部関数化してられないし
いまだに軽々しくgoto不要論唱える奴は自分の不勉強を反省する事
goto要らないよ 必要だといっているのはプログラミング能力が低い証拠
自分で使うことはまず無いけど、他人のソース見て ここでgoto使えばかなりすっきりするのになー、と思うことはある。
goto要るよ 不要だといっているのはプログラミング能力が低い証拠
かなりすっきりするなら使えばいい
scalaにはbreakもcontinueもない
代替手段の有無ではなく便益の問題だよ。
後藤さん涙目
多重break以外でgoto必要になることはそうそうないと思うが。
743 :
デフォルトの名無しさん :2013/02/28(木) 18:22:55.10
漏洩事件で特捜が尾行しています。今の彼の後がまにするつもりらしい。共産党に助けてもらっていいですか?
goto 今まで使った事がない 仕事で goto 使うとエライめんどくさい事になるから、 どんなに煩雑で重複コードになったとしても代替で do-break-while か try-catch を使ってるよ 同僚の脊髄反射的な議論に付き合うのがめんどくさい
例外使って制御するのってMSの規約違反だろ
と言う、実りのない言い合いが面倒くさくて使ったことないな。
じゃあなんでApplicationExceptionがあるんだよ!
例外を制御に使うということは つまるところ設計ができない無能の証明
普通の制御に例外使うなって意味だよ それはともかく、ApplicationExceptionは設計ミスということで.NET2.0から非推奨だ
世の中馬鹿が多くて大変だなw
例外処理重いし使うべきじゃないでしょ
まあ、周りにそう言う事を吹っ掛けて来るやつがいれば、使わないよ めんどくさいから でも、goto の使い処も基本的にはエラーケースなので、例外に置き換えてもおかしくはないと思う 大体 goto だってフロー制御に使ったらスパゲx(ry
本当に例外的な状況で使うものだから重くはならないよ 重くなるほど例外が乱舞するならそれは例外的な状況ではない
決定権ない奴らはツラいもんだな ウチはこの俺が許可してるからウチに来るといいよ
例外使ってフロー制御とか普通ならネタだと思うところだろうが、 たぶんここの彼はマジで言ってるんだろうなw
多段breakがわりに throwってやつかw
gotoも御せぬようではプログラマ失格やで
libjpegのソースにgrepしたら906個出てきたわ
ApplicationExceptionは派生させるなって言ってるだけだろ try{ while(true){ while(true){ if(業務エラー?) throw new ApplicationException("えらーだよ!"); } } }catch{ } は十分あり。見易いし。
それを、エラーじゃなくてループ抜けに使うのがキモだろ
ところで、ApplicationExceptionから派生する事の是非はともかく > For .NET Framework version 1, it was recommended to derive new exceptions from ApplicationException. > The recommendation has changed and new exceptions should derive from System.Exception or one of its subclasses in the System namespace. ApplicationExceptionもSystem名前空間のサブクラスの1つじゃないのかね
だから何?
768 :
デフォルトの名無しさん :2013/03/01(金) 01:07:39.41
DataGridが4列あって、1列だけDBからデータを取得し、 1列は遠隔地のハードウェアからデータを取得し、残りの2列はユーザー編集用なのですが、 この4列を一つのModelクラスで定義しました。 しかし、DB接続メソッドとハードウェアからのデータ取得メソッドをこのModelクラスのメソッドとして定義してしまいました。 つまり、DBに接続することのない列のインスタンスもDBに接続できてしまいます。 どうするべきなんでしょうか。 わざわざDB接続する列のために、派生クラスを作り、そこでDB接続メソッドを作るべきでしょうか。
>new exceptions should derive from System.Exception or one of its subclasses in the System namespace. なるほど ApplicationExceptionから派生することもなお変更後の推奨事項の範囲内なんだな
じゃあかつての推奨が推奨でなくなっただけで 不使用を推奨してるわけじゃないって事かな?
現実見ろよ
>>768 4カラムで一つのクラスなんだろ
列のインスタンスってなんだよ?
>>768 そんな実装に左右されるモデル自体ゴミだろ
>>768 4列のデータを保持するクラスと、DB に接続するクラスと、ハードに接続するクラスに分けるべきなんじゃね。
列で分けて、行でも分けられてたりするのかなぁ。
DB接続するクラスと ハードウェアからデータを取得するクラスと ユーザー編集用クラスを作る 既にあるクラスから機能を分割して派生クラスを作るのは容易い
>>772 >>775 すごい大きな間違いでした
行です
DataGridの各列に対応するプロパティを持っているクラスがあるんです。
4行あるので、4つのインスタンスが作られます
| 列A | 列B | 列C | 列D | 列E |
| | | | | |
とあったら
class Model
public string A { set; get; }
public string B { set; get; }
public string C { set; get; }
public string D { set; get; }
public string E { set; get; }
みたいな風になっているってことです。
>>773 そうかもしれません
DBアクセスはいわゆるControllerではなくてModelにつけるべきだと聞いたのでModelにつけちゃいました
>>774 その方法だと、DBに接続するクラスに、DBからデータを取ってくるわけではない行のインスタンスを
渡してしまう可能性がないこともない・・・のが少し欠点です。
>>776 その3つは、継承して作るべきなんでしょうか。クラス数がやや増えてしまうのがネックですが・・・
そもそもDBに接続できると何か問題があるのか
クラス数が増えると何か問題があるのか
久しぶりにCLRProfiler使ってみたら動かねえええええええええええええええ いらんけど
.NETのバージョン違うと動かないよ。確か1.1用だった記憶が。
手元には4.0用があるな と思ったらVS2010で再ビルドしたんだった
CLR2用と4用もある
なるほどソースからコンパイルすればいいのか
全部ソースからビルドしても動かんかったわ
786 :
782 :2013/03/01(金) 15:27:38.68
俺はEQATEC使ってる
プロジェクト全体のusingの整理や、フォーマットは出来ないのでしょうか? ドキュメント単位でしか出来ず困っています・・・。
>>788 CodeMaidのCleanup All Codeだと駄目なのかな
ネタだろうな
ずっとすべて折りたたむ/展開するを使ってた時に「定義に折りたたむ」を発見した時には感動した
○質問:
C#,ASP.NET未経験(というかVS含めてWindowsプログラミングほとんど無し)です。
今度C#とASP.NETのチームに移ることになったので、良い本を教えてもらえませんか?
ASP.NETには、WebFormとMVCがありますが、そのチームの人から
「いまはWebFormでつくっているけど、そのうちMVCに移行しようと思っているので、勉強するならMVCでいいよ」と言われています。
あと、VS2010を使っているそうです。
当面、Windowsデスクトップアプリは作る予定はないらしい。
○自分の経験:
自分はJavaのイントラweb業務アプリがメインでした。
・Java:10年ぐらい。JDK付属の標準クラスライブラリのソース,SpringなどのOSSは読める。Javaならそれなりのことはできるつもり。
・1999-2000ごろ、WinNT4.0の頃のASPはけっこうやった。
・Ruby/Rails:1年
・Objective-C:1年
・PHP/Perl:キャリアとしてあげるほどではないが、簡単なチーム内ツールの作成(テストデータ投入スクリプトなど)や、OSSのCMSをいじるぐらいはできる。
○本屋とamazonを見たところ、以下がいいかなと思ったのですが、ほかにいい本があれば教えてください。
●C#
〔速攻入門〕 C#プログラミング すぐに現場で使える知識
http://www.amazon.co.jp/dp/4774150169 猫でもわかるC#プログラミング 第2版
http://www.amazon.co.jp/dp/4797361344 ●ASP.NET MVC
(下の2つ本のレビューが良さそうだったのだが、両方ともちょっと古い?)
ひと目でわかるASP.NET MVCアプリケーション開発入門 (MSDNプログラミングシリーズ)
http://www.amazon.co.jp/dp/4822294382 ASP.NET MVC 2 プログラミング リソース (Programmer’s SELECTION)
http://www.amazon.co.jp/dp/479812110X
10年以上やってて入門書探す事すら人任せなの? 今時本なんて要らないよ 詰まった所でググれ
猫でも分かるC#はやめとけ Webで読めるというのもあるけど、VisualStudioを使ったC#らしいソースの書き方に真っ向から反する あとは、VisualStudioが初めてなら IDEの使い方なんかを1から解説してる本には目を通しておいたほうがいいと思う そういう意味ならMSDNの本かなぁ
IDEの解説本なんか読む奴いるのか?ふつう使いながら覚えるだろ。
ASP.NET MVCってどんどんバージョン上がるし毎回結構変わってるよ
テキストファイルに1行1行書き込んでいくのとデータベースに登録していくのってどっちが高速? データベースはSQLserverかaccess使うつもり
テキストファイルの圧勝。
書き込むだけならテキストファイルに書く方が圧倒的に高速 その後の使い方による
テキストファイルか、ありがとう
速度気にするような大量のデータ書き込むのか 1万行とかでも一瞬だぞ
\r\nだけなら一瞬だわなw
ややこしいことやらなきゃテキストファイルで十分なんだよなw
804 :
デフォルトの名無しさん :2013/03/04(月) 20:47:03.29
*
>>797 お前のウンコードのほうがボトルネックだからそんなとこ気にするだけ無駄
クソースにウンコード 仲良く喧嘩しな
うるさいゴミ
ゴミに話しかけてるお前は糖質か何か?
レスを文字通りにしか理解できない=アスペ
はい語り始めましたー
812 :
デフォルトの名無しさん :2013/03/04(月) 21:18:20.64
キチガイばっか
今話題の遠隔操作ウィルス事件で片山容疑者は、 CとJAVAは出来るけど、C#では書けないから、 C#で書かれたiesys.exeも作れないと主張している みたいなんだけど、 CとJAVAが出来る人が、C#マスターするのに どれくらい時間がかかるものなの?
委細承知
>>813 クソみたいな探偵ごっこしてないで英語でも学んでろチンカス
816 :
デフォルトの名無しさん :2013/03/04(月) 21:22:58.76
>>813 習得スピードは人による
そんなことも分からないの?
頭悪すぎ
俺C++専門なんだけど、 ツール程度のGUIアプリで、 初めてのC#で1ヶ月くらいかかったなー
うわっ雑魚wwwwwwwwwww
何が不快ってこの手の野次馬が不快
お前が不快だろうとどうでもいいんだよ 個人的な感想はブログに書いてろゴミ
ゴミに話しかけてるお前は糖質か何か?ってループさせんだろ お前の程度は読めてる
阿呆を釣るのって簡単だなw
まず1匹目w→
>>822
>>822 何が言いたいかよく分からないけど、ここが感想スレッドになってもいいってこと?
それとも「ぉ前のコトゎ知ってるぞっ☆」とかやりたいだけ?
あーお前らにダーウィン賞やるよ
俺はダウン症をやろう
827 :
デフォルトの名無しさん :2013/03/04(月) 22:02:01.73
ラフレシア食ったことある奴いる?
101匹食った
調理法は?てんぷら?
続きません
キチガイ多すぎだろ
↑とかな
CとJavaが出来てC#が出来ない人を見たことがない IDEの使い方がわからんとかじゃない限りソフト起動したら2chに書き込み位調べながら反日でできるわ
妄想は秘密の日記帳に書いとけ
/j /__/ ‘, // ヽ ‘, 、 // ‘ ! ヽ …わかった この話はやめよう /イ ‘, l ’ iヘヘ, l | ’ | nヘヘ _ | | l ハイ!! やめやめ | l_| | | ゝ ̄`ヽ | |〈 ̄ノ ゝソノノ `ー‐’ l ! ¨/ n/7./7 ∧ j/ / iヽiヽn |! |///7/:::ゝ r===オ | ! | |/~7 i~| | | ,’ ’/:::::::::::ゝ、 l_こ./ヾ.. nl l .||/ | | | | l {‘:j`i::::::::::::::::`ーr ‘ ||ー?{ | ‘” ̄ ̄iノ .l::::::::::::::::::::::∧ | ゝ ‘, , 一 r‐‐l γ /、::::::::::::::::::::::::〉ー= ___ ヘ ヽ } / o |!:::::} / o` ー 、::::::::::::i o ,’:::::::{`ヽ ヘ ノ / o ノ:::::∧ /ヽ o ヽ::::::::| o i::::::::ヽ、 / / / ノ::::::/ /::::::::ヽ o ヽ:::| o {::::::::::::::Υ /
836 :
デフォルトの名無しさん :2013/03/05(火) 07:51:54.75
キチガイ多すぎだろ
ゾフィである意味がよくわからない。
じゃあタロウならいいのか
AA貼る奴は面白いと思ってやってるんだから、突っ込んじゃ駄目。
キチガイ多すぎだろ
バカの一つ覚えみたいに連呼すんな
C#は危険だ
C#規制、やりましょう!
C#厨を野放しにするな!
春休みだから学生が増えたのか?いろんなスレに変なやつらが湧いてるな・・・
seikyou.ne.jpが規制中なのにね 一人で暴れているのがバレバレだよ
キチガイ多すぎだろ
せやな
seikyouはお試し●使ってるから規制中でも書けるよ。
>>850 それは信じて大丈夫なんけ?
それっぽいのが出てきても実際は動かないっていうのが山ほどある気がする
C#もJavaも元はC++だからな
他言語やってたなら2週間で遠隔ソフトくらい作れるようになる もっと短いかもな
ポインタのないCみたいな文法の言語は腐るほどあるよ。 なんだかんだ結構優れてるのだろう。 C#の元はJavaのように見せかけて、実はDelphiというのは公然の秘密。
C++とJava書ければC#はすぐにわかる、、けど 全てをC#で書きたくなるあの魅力は何なんだろう 他の言語ではあまり感じない
俺はN-BASICが最初だからVBが好き
C#の書きやすさとサンプルコードの多さ
最初からjavaでiesys作ればよかったじゃんwww C#作れないって言い訳をしたかったからC#に変換したの?無理あるよね
インストールベースが違いすぎるからそれはどうかな
小さな探偵さんには一生わからんよ
>>858 J#のランタイムを追加インストールしないといかんから、
マルウェア向けじゃないな。
それにiesysはWindows Form使ってるみたいじゃない。
try catchが思いって本当? 例外スローされなくてもtrycatchを置くだけで重くなる?
試してみたか? 試して差が分からないなら忘れろ
計測したらわかるがキャッチしたら重い try-catchありとなしの差は誤差の範囲
try catchでエラー処理を書けばif文書くより遅くなる。
ifとtrycatchじゃ100倍の差だよ
キャッチが遅いんじゃなくて例外の生成が遅いんじゃないかと思うんだが
例外の生成try-catchの前に行って実験すれば catchが遅いかどうかは一目瞭然
870 :
デフォルトの名無しさん :2013/03/06(水) 23:55:36.95
C++/CLIでDLLを作成して、C#からusingで参照してるんだけど、参照エラーが出て困ったよ。 ヘッダにStatic作ってcppにnamespace::class::methodじゃなくてexturn "C"でdllimportが一般なん? だれかぼすけて
>>870 C++/CLIでどのタイプのDLL作ってるかが問題だな。
usingは参照設定じゃない。 /*-- bar.cpp cl /clr /Ox /LD bar.cpp */ using namespace System; namespace Bar { public ref class Hoge { public: String^ GetMsg() { return "C++/CLI"; } }; } /*-- foo.cs csc /o foo.cs /r:bar.dll */ using System; using Bar; class Program { static void Main() { var hoge = new Hoge(); Console.WriteLine(hoge.GetMsg()); } }
873 :
デフォルトの名無しさん :2013/03/07(木) 00:44:35.94
なんかリンク貼れない・・・ はてなのC++/CLIで作成した関数をC#やVB.NETで呼び出す。っていう記事を読んで書いたんですけど、あんまり良くないっすか?
そうっすね〜
>>872 ウジ虫並の知能しかないhoge厨は来なくていいよ
C++/CLIで作ろうがVB.NETで作ろうが 出来たのが.netのアセンブリなら参照の仕方は同じでっしょ
C++/CLIはオワコン
879 :
デフォルトの名無しさん :2013/03/07(木) 13:13:15.38
あるインスタンスのプロパティの値を、プロパティ名の文字列から、取得したいんですが、可能ですか? GetType().GetProperty("プロパティ名")は、なんかPropertyInfoとかを返すだけでした
不可能
PropertyInfoからGetValueするんだよ
883 :
880 :2013/03/07(木) 13:33:32.45
GetValueがありました すいませんでした
884 :
880 :2013/03/07(木) 13:33:53.62
885 :
870 :2013/03/07(木) 14:17:02.62
やっと原因がわかった。 DLLの.NET frameworkバージョンがなぜか4だったから、c#が3.5だったんでエラーに・・・ これプロパティからC++/CLIの.NET frameworkバージョン変更できないんだけど・・・
.vcxproj直接書き換えれ
<PropertyGroup Label="Globals"> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkProfile>Client</TargetFrameworkProfile> </PropertyGroup> ここを書きかえるだけで動作するのに、CLIだけなんでプロパティで対応させなかったんだろうね?
MsScriptControlからMicrosoft.JScriptに移行したいのですが、 ScriptControl.AddObject("name", obj, true) に相当するものは Microsoft.JScriptにはないのでしょうか? JSObject.SetMemberValue2とVsaEngine.PushScriptObjectで C#からオブジェクトを渡せるのは分かったのですが、 そのメンバをグローバルレベルにするにはどうしたらよいのでしょうか?
889 :
デフォルトの名無しさん :2013/03/08(金) 12:22:10.19
C#は危険だ
excel起動で11.0と8.0参照したんだけど excelってとこに赤波がでてきえない 他参照しないとってのある?
日本語でOK
using Excel = Microsoft.Office.Interop.Excel; は?
今日は危険日だ
今日も危険
F#なら多い日も安心
低俗
C++とJavaが使えるならC#くらい余裕ですよね
まあIDEの補完とGoogleがあればいきなり書けるだろうけど 書けることと書いてることとは違うしな
プログラム書く癖ってあるし過去のソースと比べればいいのに
癖はちょっと出てるね。 メンバー関数が小文字で始まってる。
メンバー関数という用語も癖の一種と言えるでしょうか。
ジェネリックで3個の型引数を使う宣言をしてるんですが、 全域で固定なので、万が一修正する時は1ヶ所で済ませたいです。 C++ typedef Base<int,int.int> A; ←これをやりたい C# using B = Base<int,int,int>; ←これだとファイル内でしか使えない class C : Base<int,int,int>{}; ←オブジェクト参照の際にダウンキャストが欠点 他に良い方法ありますか?
>>904 [方法1]
>>904 の3番目の方法。ただしBase<int,int,int>は使わずに済ます。
[方法2]
>>904 の3番目の方法で、
public static implicit operator Base<int,int,int>(C c){...}
を書く
[方法3]
「万が一修正する時は1ヶ所で済ませたい」を諦める
修正の際は一括置換すればいいだけのような
自分の環境だけなのか妙なことが起こります win7hp vs2010 新規WPFウィンドウプロジェクトに ListBoxを追加して下記のコード追加 public MainWindow() { InitializeComponent(); //ここから追加 var list = new string[] { "1", "2", "3", "4", "5", "6", "1", "2", "3", "4", "5", "6" }; listBox1.ItemsSource =list; } 実行後一番下の項目"6"をクリックすると 選択が2番目の6だけじゃなく一番目の6も選択されます 他のも順番にクリックしていくと選択がおかしくなります listviewでも同じ?です ソースに同じ値を指定してはいけないのでしょうか
>>905 [方法2]は知らなかった、やってみるありがとう
>>906 using UserId = Base<int,int,int>;
using Score = Base<int,int,int>;
なときに、Scoreだけ変えたいときにちょっと手間かなぁ
>>907 ItemsSource の意味を理解せよ
>>907 うん、駄目
適当に匿名クラス作るなりしてDisplayMemberBinding使う
回答ありがとうございます なぜ同じ値の物がダメなのがいまいち理解できませんがそういうものなんですね
質問です!C#では関数の中に関数は作れないんでしょうか void hoge { sub(0); sub(1); sub(2); void sub( int a ) { Debug.Log( a ); } } hoge関数内でしか使わないsub関数は、 このように記述したいのですが・・・
できない ラムダで似たようなことはできるが、無駄だから他の言語のこと思い出すのを止めるか、元の言語にもどれ
>>912 こんな感じでどうでしょう?
void hoge()
{
Action<int> sub = (a) => {
Debug.Log(a);
};
sub(0);
sub(1);
sub(2);
}
CLR版のDelphiがかつてあったな。
ラムダ式の場合関数のインライン最適化が効かないから、 クラスのプライベートメソッドで我慢するのが吉だ。
917 :
912 :2013/03/14(木) 10:34:58.42
>>913-916 回答ありがとうございます。
この記述に慣れてしまっていたんで
気持ち悪いけど慣れるしかないですね・・・
そんなのよりメソッドスコープの静的変数がほしぃよぉ
ラムダ式の引数ないときのシンタックスが気持ち悪いです ()=> ちんちんに見えませんか?
本物との比較画像がないとわからん
童貞板に行けば山ほどうpされてるぞw
スレチごめん、童貞板ってどこ?
>>919 眺めてるとだんだん河童に見えてきたので、これからはカッパ式と呼ぼう
<=3
C++.11でもラムダ式導入されたんだな. しかし,wikiとか見てるともう泥縄だな
sender.イベント += listener.はんどらー ここで、listener側から、イベントの受信をやめさせる方法はあるんでしょうか? sender.イベント -= listener.はんどらー と明示的に書くか、listenerがガベコレされるのを待つしかないんでしょうか?
>>926 どういう方法を期待してるの?
何が言いたいのか全然わからない
まず在チョンは日本語をしっかり学習してからね
明示的に解放しないと、listnerはいつまでも生き続けるんじゃないの?
え、聞きたいのはそっちなの?
>>926 イベントに登録されてる間はlistnerがガベコレされることはないよ。
明示的というより、「-= listner.handler」以外の方法はない。
その sender のクラスを自作するか継承させて、 listener クラスのプロパティなりを参照してイベントの伝達を止められるようにすればいいんじゃねーの。
なにをしたいのか次第でしょ。 オブジェクトがイベントを吐くのを止めたいだけなら -= で止めればいいだけだし、 オブジェクトそのものを破棄したいんだけどイベントが残って困るのなら、 イベントを止めてオブジェクトの終末処理をするメソッドでも作ればいい。
-=はイベントハンドラがいっこだけって前提だよね いちおう確認。
ねえよそんな前提
937 :
926 :2013/03/16(土) 22:52:49.76
ありがとうございました。 やりたいことは、オブジェクトAを監視するオブジェクトBがあって、 それをコントローラーみたいなクラスで、 オブジェクトA.イベント += オブジェクトB.ハンドラーと行う訳ですが、 Bの寿命はAより短いし、数多く生成されるので、 B側からAの監視をやめることができたらいいなと思ったんです。 BにAの参照持たせるなりして、-=させるしかないんですね・・・
>B側からAの監視をやめることができたらいいなと思ったんです。 >BにAの参照持たせるなりして、-=させるしかないんですね・・・ これって同じことだろ? 意味がわかんない
あ、別に説明してくれなくてもいいですよ 多分思考が違うからだと思うので
オブジェクトAの存在を一切無視して、オブジェクトB側だけでイベント伝達を止めたいってことなんでそ。 では、オブジェクトBにオブジェクトAの参照でも渡して、オブジェクトBの破棄時とかに勝手に -= をさせればいいじゃん。 正道かどうかは知らんけど。
>>937 だから何を言ってるのか訳がわからんよ。
>B側からAの監視をやめることができたらいいな
どう考えても
>オブジェクトA.イベント -= オブジェクトB.ハンドラー
これがその「B側からAの監視をやめること」そのものなんだけど。
そもそもイベントの利点は、イベントをブロードキャストする側はリスナーのことを
知らなくてよい点なのだから、
オブジェクトA.イベント -= オブジェクトB.ハンドラー
このコードはBの中にあるに決まってる。
もしこれをA側に書いてるのなら、そのこと自体が根本的に間違ってる
Aの中に書かないのはわかるけど、 Bの中にあると決まってはないと思う。
べき論から相手の意図を推測しようとするのなら、 そのこと自体が根本的に間違ってるなw
>>942 イベントハンドラをpublicで外に公開するコードなんて見たことない
見たことなくても世の中にはきっとあるんだよ。
もしかして弱参照イベントのことを言いたいのでは。 WeakEventManager/IWeakEventListenerはWPF専用だったっけ。
それならしっくりくるか
Action Reg(XEvent e, XListner o) { e += o; return () => e -= o; } o.Unreg = Reg(e, o);
なんて読みにくいんだ。これがC#か。
書く人で変わるがな
C#のPerl化が止まらない JavaScriptみたいなシンプルな言語が何で人気になるのか よく考えた方が良いな プログラム言語は手段であって、自分を賢そうに 見せるためのオナホールじゃないんだから
JavaScriptがシンプルって何かのギャグ?
学び始めて1週間くらいなんじゃないの
言語を触れたぐらいでしっかり書いたことない人が
>>951 みたいな事よく言ってる。
lispがシンプルって言うようなもんだろ 仕様はコンパクトだが実際はS式とマクロでドロドロ
>>951 さりげなくPerlさんを貶すのはやめろ!
コンパイラにとっては型推論は楽勝だろうが、 他人の書いたコードの型を推論するのは苦痛だよな。他人のコードはほんと読みたくない。 ほんと馬鹿な機能を入れたものだ。
cが一番だよ シンプルでパワフル 他になにが必要だと言うのか
そして地獄のメモリ破壊デバッグとセキュリティホールw
そんなもんペーペーの素人しかやらかさないよ
いろんな製品でしょっちゅうバッファオーバーランの修正パッチが出てるのに?
型推論できないならIDE使えばいいだけの話
読む速度にIDEがついてこれない。 おれは高速スクロールでソースを読むタイプ。
化石PCで長ったらしいソース読んだらそうなるわな
スパコンで開発
>>958 現状のCでタスクより小さいプログラム粒度でマルチコアが有効利用できるならいいけどな。
ループをコアに均等に割り当てるなんてのは現状のCだと無理だから。
ラムダ式の威力
ま、CはC#以上に必須だとは思う。けど、C++は決して大規模プログラミングに向いてないしもはや不要だと思われ。
CやC++は他の言語の処理系を書くのに必要
何か作るのに一つのプログラム言語で作るのはちょっと^^;
Windowsなら C,C#,PowerShell で十分 あとPerlが使えりゃどの環境でもほぼ問題ない 強いて言うならVerilogにSystemVerilog
言語というかツールとしてはMathematica/Maple/Matlabは触れるようにしとくのが吉
使うにしてもVisual Studio並の支援機構がなしにC++なんて苦痛以外の何ものでも無い。 EmacsでC++書いてたときもあるけどもうやりたくない。 じゃ,WinでC++かと言えばもっと生産性の高いC#があるしC++はもうイラン ジェネリックにおける演算子の多重定義だけなんとかならんか?
Cは言語仕様が貧弱過ぎ C使うくらいならC++使うわ
それをいうならC++は言語使用がもうツギハギ過ぎててわけわからん状態だろ C#もLINQが入ってきてすごく混沌としてきたように見えるけどな。 LINQで書かれた部分は別言語と感じる
ゲロくせえ言語談義はお外かあの世でやってくれません?
やってくれませんよ
linqの専用構文はぶっちゃけ不要だと思うな。 .Where().Select()のメソッド形式で十分だと思う。 しかしそれでも奇怪だとおもうw xmlをはじめとするデータ吸い込んで加工して別形式に吐き出すときとかあほみたいに楽になるんだが 小手先のバッドノウハウの塊になってるw
ゲロ以下のゴミがほざきおる
↑話についていけなくて悔しがるゴミ
単発が湧いてきたな
そもそもIDが
ワロタ
>>976 Joinだけ専用構文が好きだからいつもどちらで書くか悩む
C#のLINQやラムダ式が異質なのは構文が汚いからだな Task.Factory.StartNet(()=> { });
ここで文句垂れてもどうにもならんぞ 黙ってdelegateでも使ってろ
ラムダ式は中カッコの場所のグローバルスタンダードがどこか分からないからしっくりこないんだな あれがビシっと決まれば最高に気持ちいい構文
あ
確かに }); の気持ち悪さははんぱないんだが、 こいつのおかげで、パラレル構文とか、本来は言語使用に深く絡みそうな部分でも、 仕様制定のグダグダ会議の結果を待たずに、ライブラリの提供だけで簡単に実装できるようになった。 for文が簡単にParallel.ForとかParallel.Foreachに置き換えられるのは素晴らしい。とオモ。 ラムダ式がなければ、くり返しループの並列化なんて無理だし。
メモリ管理をしなくていい → アプリのメモリ使用量の増大化、ブラウザひとつで数百メガなんて当たり前。 マルチスレッドを管理しなくていい → スレッド大量生成で、同期で大渋滞。逆に激遅に。
えーっ、そんなん作ったんですか?
さすが経験者は語るね
991 :
デフォルトの名無しさん :2013/03/18(月) 20:25:00.23
992 :
デフォルトの名無しさん :2013/03/18(月) 20:25:31.61
993 :
デフォルトの名無しさん :2013/03/18(月) 20:26:09.51
うめ
うめうめ
MCSD Windows Store Apps Using C#
997 :
デフォルトの名無しさん :2013/03/19(火) 00:03:49.98
俺の子供を産め
998 :
デフォルトの名無しさん :2013/03/19(火) 00:04:43.83
梅干し
999 :
デフォルトの名無しさん :2013/03/19(火) 00:07:04.48
1000なら全人類滅亡
1000 :
デフォルトの名無しさん :2013/03/19(火) 00:09:36.93
1000なら地球資源の枯渇
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。