ふらっとC#,C♯,C#(初心者用) Part91
独習C#は読了したんですが、CUIな内容ばっかりでWindowsFormの知識がありません。
リストやコンボやデータグリッドビューやドローとかFormのお勉強に進みたいのですが
お勧めのサイトとかお勧めしてください。
序文
あなたが良いと思うコードが良いコードです。
ただし、他人の同意を得られるとは、限りません。
>>4 独習C#理解できているなら、あとはmsdnだけでいいと思うけど
やりたいことが特になくて学習できるやつってうらやましいな
俺はやりたいことが先だから、基礎も文法も知らないでいきなりWinFormsから始めたよ
正規表現というものがあるのも知らないで、恐ろしく長いif文書いたっけな
>>前スレ998
そう、特に
CLRは、インターンプールに格納されたStringオブジェクトを、アプリケーション(またはアプリケーションドメイン)の終了後も参照し続ける場合がある為です。
の部分。終了後??なにそれコワイと思って。
知ってたら教えて欲しい
>やりたいことが特になくて学習できるやつってうらやましいな
何か作りたい物がないとプログラミングなんてしないと思ってるからなー世間は
趣味をプログラミングと言うと何作ってるのって聞かれてウザイことこの上ない
読むことが目的の読書と同じだよ
覚えること書くことが目的なの
>>7 今解説見れないんだが、プロセス終了じゃなくてアプリケーションドメインの終了だろ?
ドメイン中立アセンブリの場合の話とかじゃないのか?
まあ使わなくてもいいとは思うけどね。
XMLのネームテーブルだって使ってないよね。
○○パターンで書き直してみようかな?とか考えると1〜数日潰せるよね。
一方中国はぱくった技術で独自開発と称し、外国に売りつけようとしたw
>>13 そして糞なパターンで組んでた、あの頃の自分をぶん殴りたくなるよな。
次は限りなく処理を隠蔽したスパゲティパターンで組んでみようかな
memcachedが流行ってた頃に、流行ってるから意味もなく使ってみようかな、とか。
log4nにハマってみたりとか
以前はガリガリフォームに書き込んでさくっと作れてたが
最近はちょっとしたものを作るにも、デザインパターン意識してなかなか本題に入れない
>>9 それってやってて楽しいの?
目標がないまま学習するって子供の時しか無理じゃん
でたばっかの技術とかノウハウがないときにやってみると面白いよな
>>20 楽しいよ?
もう10年以上続いてるけど
学習してるってのとは違うよ
何で学習が出てきたのか知らないけど
個人的には日曜プログラミングなんて漫画読んでるくらいの感覚だな
30ぐらいになったら頭働かなくてプログラミングできないのかな?
プログラミングは20代までかなーと思うんだがどう?
staticおっさんみたいになったら終わり。
ASFとかのコミッタの年齢見ててもそんなことはないね
ただ仕事にできるかどうかは関係あるだろうな
25超えてから思考している時間が長くなった気がする
プログラマって寿命短いね
常に新しいことを学習していかなければいけないからなぁ
新しい技術が出るたびにワクワクしていたのが無くなってくる
>>24 30過ぎたら頭が働かないようなのはそもそも向いてないやつだから、
10代/20代でもろくなもの書けない
子供のままでいなきゃいけないんだろうな、ある意味では
プログラマ30歳限界説はあれだよ
バブル時代になんとなくプログラマになった人が
何も勉強しないで30歳で技術についていけなくった自分を
正当化するために流したデマ
年功序列で管理職についてる人も多いのでタチが悪い
年取った人間にまでコード書かれてると下が詰まってしまうからな
キャリアパス的に
いま腕試しとしてYahooきっずのきっず投票に自動投票するプログラムを組んでいるのですが
これがなかなかうまく行きません
投稿時に隠しパラメータ的なものが必要なのもわかっていてそれの取得方法もわかっていて
Cookieが有効になっていないといけないのもわかっているのですが・・・
ちなみにHttpWebRequestとかを使って実装しています
Wiresharkでヘッダ情報を見る限り順番が違ったり,するくらいしか違いが見当たらないのですがねえ・・・
>>33 > これがなかなかうまく行きません
どううまくいかないかをエスパーしろってさ。
35 :
4:2012/04/22(日) 20:51:38.03
やりたいコトはあるんですが、いきなり手をつけて路頭に迷って右往左往
試用版proからCSharp Language Specification.doc取り出して読んでみたけど
難解でギブアップ。独習C#を読んでやっとこさ優良可の可レベル?という感じです。
まずは
>>8さんのジェネリックコネクションお勉強して、GUIに反映させてみようと思います
キューをリストボックスにバインドする参考例からググってさがしてみようかなぁ。
>>29 30超えてプログラマという時点で無能な気が・・・
前スレの 897 で子コントロールに設定した背景色を Undo できなくて困っていたものです。
自己解決したので解決方法を載せておきます。
ttp://ideone.com/VPhnm これは質問時のコードなので Undo できませんが、
public ChildPanel ChildPanel { get; internal set; } // 自動実装プロパティ
をやめて、自分で実装する形のプロパティにしたら Undo できるようになりました。
C#の難しいところって、基本的な文法とかクラスとかそんなのよりも提供されるフレームワークそのものの
使い方にある気がする。データバインドの仕組みとか、やり方とか。
営業兼SE兼プログラマ兼経理ですが何か?
そういえば最近総務仕事もやってるなぁ
内部がどうなっているのかわかりにくいから手探りになってしまう
とっくに人口減少社会の日本で昇進幻想を持ってる方ば馬鹿っぽいよ言っちゃ悪いけど
43 :
33:2012/04/22(日) 20:55:52.53
>>40 エロゲやってるような素人集団ならそういうことになるだろうね
C#なんてアルゴリズムを新規で作り出すわけでもなし
必要な情報を如何に探し出せるかどうかだろ
探さなくていいレベルなら何も考えなくても手が進むし
ちょっと前の流行は起業?
でもそれが大手の便利屋どまりにしかなれないことに気がついていまはどうなんかね?
会社ってテキトーに稼いだら従業員解雇して畳めないのがネックだよね
一生儲け続けていなきゃ・・・死・・・みたいな
俺の上すぐ課長だしなー
うちの部は24〜50歳まで平がいるよ
相応に給料はもらってるはずだけど
50 :
33:2012/04/22(日) 21:00:19.66
>>49 そうしていただいておかしな点を指摘していただけるとありがたいです
かれこれ1週間近く格闘してたり・・・
何週間掛かってても俺たちは優しくならないよ
暇な人ヨロシクな
俺は晩御飯のから揚げを作らんと
53 :
デフォルトの名無しさん:2012/04/22(日) 21:08:45.19
やばいなあ。確率分布の正規化ってどうやるんだっけ・・・。
平均を引いて、標準偏差で割るんだっけ?
この程度のこと忘れてるとか人生オワてる
正規化が必用な確率分布なんてあるのそもそも?w
正規化が必用な時点で確率分布じゃないような気が
56 :
デフォルトの名無しさん:2012/04/22(日) 21:26:30.87
正規化違う標準化だ。まずい。勉強し直しか・・・?
>>55 サンクス。学生時代の教科書たんすの奥から引っ張り出して、何とか答えを見付けたよ。
俺の時代は理系の大学でもなぜか確率統計は入試の出題範囲から除外されているところが多かったな。
58 :
デフォルトの名無しさん:2012/04/22(日) 21:47:34.47
統計論こそこの世の真理
おれ、Monoはじめました
確率で語ってる奴は目の前の答えを選べない
確率が一番高いものを選べば良い
外れても心を揺らさなければ勝てる
List<int> list = new List<int>();
private void Form1_Load(object sender, EventArgs e) {
// 要素の追加
list.Add(0);
list.Add(1);
list.Add(2);
comboBox1.DataSource = list;
listBox1.DataSource = list;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) {
list.AddRange(new int[] { 3, 4, 5, 6 });
}
実行すると両者ともにロードのときにしか突っ込んでないんで0〜2が入って、3〜6は入らないと思ってたら
コンボボックスには0〜2が入ってるのに対しリストには0〜6が入ってくれてる
この動作の違いはなんだろう?
あぁcomboBox1.DataSource = list;の時点でcomboBox1_SelectedIndexChangedが働いちゃうのか
事故解決
ActiveDirectoryから、ユーザの有効期限を取得したいのだが、
どうすればいい?
ぐぐってもわからんかった。
DirectoryEntryで取得可能?
c#でhtmlを解析させてDOMだけいじりたい場合って
webBrowserを使う以外に方法あるかな?
webBrowser使うとレンダリングエンジンが一応動くので
レンダリングなしで何か方法あれば・・・と思って
>>66 SgmlReaderかHtml Agility Packが使えるよ
>>67 ありがとうございます
ざっくり調べてみましたが両方とも外部のdllが必要な感じですかね?
標準でそういうのはないでしょうか?
69 :
デフォルトの名無しさん:2012/04/23(月) 06:41:39.44
何故外部のDLLがあるかというと・・・
自力で果てしなく構文解析
71 :
デフォルトの名無しさん:2012/04/23(月) 08:20:44.37
Visual Studioの質問になっちゃうかもだが、
自オブジェクト内のメンバー(メソッド、プロパティ、・・・)を参照する際に、
「this」の付与が無い場合に警告を発するのってどうやったっけ・・・
韓国のコミュニティサイト「eTORRENT」では、筆者が、日本のアルバイトの時給について
発言した。それに対し、さまざまな意見が寄せられた。以下、韓国語による書き込みを日本語
訳した。( )内は編集部の素朴な感想。
●スレ主:千年焼酎
駅前でのティッシュ配りが時給720円、マクドナルドが平日900円、土・日・祝日の勤務で時給1300円。日本に働きに行こうかな。
●あなたの中にでも
放射能がなければ日本で仕事をしたい。
●ウィチン
大学生900円以上、22時以後には1125円以上?物価の差はそんなに違わないのに、
アルバイト代は2倍以上。単純にうらやましい。
●dltnsrn
当然じゃないですか。 日本がわが国より豊かな国で生活しやすい国なのに。こうした
ことは小学生も知っているはず。
●コムンミル
良い暮らしと、アルバイト代はあまり関係ないのでは。
●クチュプトゥン
韓国は基本12時間、体力が無くなりへとへとになる時まで仕事をしてやっと生活ができるのに。
●dltnsrn
韓国はそれでいて最低賃金も低いところが多いです。
●ミョンタムジョンノネム
わが国もバイトだけで暮らすことはできます。 ただし貯蓄ができないだけ。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0116&f=national_0116_122.shtml
73 :
デフォルトの名無しさん:2012/04/23(月) 09:20:05.20
アンダース・ヘルスバーグ さんってハッカーですか?
74 :
デフォルトの名無しさん:2012/04/23(月) 09:26:03.91
わかりやすいCでダウンロードをする際に現在のセキュリティではダウンロード
できませんの表示が出た。実際、セキュリティのダウンロードを有効にする
とやってみてもダメ。ためしに、すべてのセキュリティを最弱してみたけれど
やっぱダメ。とんだ散在してしまった。
>>73 個人の職人芸というよりも普通に巨大なプロジェクト動かして普通に世界一優秀な開発者だから
ハッカーとは言わないんじゃないか
>>73 リストラ組みってwikiに書いてあったよ
言語設計のセンスは当然だが、プロジェクト動かして
デカい開発環境を実際に組み立てる経験と能力が評価されてるんだろうな
前者だけならもっと優れた学者とかいくらでもいるだろうし
C#ってネイティブ吐けないから
VB6よりも遅いって本当ですか?
InternalsVisibleToでinternalの関数はテストからアクセスできるようになったのですが
まだprotectedなメンバー関数にアクセスできません。
protectedなメンバー関数を外から呼び出すにはどうすればいいでしょうか?
ヘルスバーグさんはプログラミングを楽しむためにために週に3日は家で勤務してるらしいね
>>79 継承すれば出来ないこともないけど・・・
リフレクション使えば?
プログラミングのどこが楽しいのか・・・
考えることはほとんどなくて、分厚い仕様書を渡されて
それをひたすらコーディングするだけ・・・
ドカタといっしょだよ
仕様を好きに変えられないコーディングは楽しくないに決まってるだろ
自分の作った言語で自分の好きなものを作るって至福の時間なんだろうなあ
関数も自分の言語みたいなもんじゃん
>>83 仕様が好きに変えれるってどんな環境だよ
本のサンプルプログラムをちょっと変更して動かして、満足してるレベルの君は
そうだろうど・・・
愚痴をここで垂らすな
ここは初心者スレ
初心者に嫌悪感があるなら来るな
海外ではプログラマーが仕様を決めながらコーディングしていくから生産性が高い
日本ではドカタに仕様通りやらせようとして全然うまくいかない
仕様を決めながらコーディングなんて絶対ありえない
小さな規模のものならいいけど、工数2000H程度ある案件なんてはほぼ無理
最初にガチっと仕様がきまれば、ほぼ終わったも同然。
仕様が決まっていて手を動かすだけなのは面白くない
という発言に対して
仕事なら好きに仕様を変えられないのは当然、好きに変えると言ってる奴って馬鹿じゃないの?
という発言をするから頭が悪い 答えにもなってないし相手を馬鹿にしているだけ
たしかにw
>>89 そんなのソフトウェア工学では20年前に否定されてる幻想だよ
おまえらもっとC#を楽しめよ
楽しむって・・・
どんだけヲタですか?
自宅に帰ってまでも、コーディングなんてしたくないよ、ふつー
コーダーってやつか
だから仕事専用スレじゃねえっての
お前がそうだから全員そうだって決めつけてるしお前の状況なんてしったこっちゃないし
家でコーディングしたらヲタ決定とか
どんだけバカですか?
趣味 プログラミングw
何となく新規性の無い帳票作成とか個別には比較的単純なネットワーク、DBプログラムとかは
仕様をきっちり作ってやってたほうがうまく行くような気がする。
WindowsやJavaで、GUIやOSのサービスを結構深く使ったりするような仕事や、
複雑なGUIになる仕事は、そんな方法論を使って最初から細部まで
きっちり設計しようとしてたのはうまくいってなかったな。
どこまで出来るのかを完全に把握するのが難しい状況で、最初から厳密に仕様を決めようとすると
極端に機能が制限された魅力ない製品になるから、
結局仕様策定と同時進行で、どんどんプログラマーが先行して実験的な
実装を繰り返して、スクラッチアンドビルドしてたのが結構うまくいってたように思う。
もちろん基本的なフレームワークはきちんと設計した上でだけど。
工数の大きさはプログラムの複雑さに比例しないし、工数にこだわる人ほど、
細かい部分に潜む、困難を軽視しすぎる傾向があると思う
The evil is in the detailsだよ
>>97 仕事で使ってない人全員馬鹿にしてるけど
お前就職してからプログラミング学び始めたの?
しかも帰宅してからもプログラミング触りたくない勉強したくないって
そんなほぼ初心者使ってる会社に発注したら随分とレベルの低いもの出来てくるんだろうな・・・
会社名晒して共有した方がみんなのためじゃない?
そりゃ上司に無能って言われてここで初心者相手にうっぷん晴らすようなヤツですからw
愚痴聞いていくれる友達もいないのか
ヲタといわれたことが、そんあに悔しいかなw
じゃぁ、聞くが
飲み会の席なんかで、休日何してんの?
なんて聞かれて、「プログラミングやってる」っていえるのか?w
あ、それ言うの恥ずかしいんだw
お前は普段家で1つの趣味をし続けているのか
しかもそこから1分立たないうちに投稿無いから恥ずかしいと断定ってすげえ人間だな・・・
顔真っ赤にしてるのが簡単に想像できるよ
・・・
荒らしがファビョってる
まで読んだ
趣味がプログラミングってどんなもの作ってんだよ
公開できない程度だろうけどw
C#は遅い
ヲタ
ってのには、過敏に反応するな
プロって言ってもITドカタじゃいくらやっても技術なんて全く身につかない
むしろ退化するんじゃないか
ドカタは偉そうに人間の言葉を離すな
そんな暇があるなら体を動かせ
www
肉体労働のドカタは7時間労働程度だけど
ITドカタは残業200時間程度は普通だからな
え?お前100時間言ってないの?とか自慢しあうからたちが悪い
マでやれ
どっかいけ
116 :
デフォルトの名無しさん:2012/04/23(月) 19:35:32.09
ITドカタです。残業は毎月75時間です。死にそう。
なんで文句と煽りしかできない馬鹿が沸いているんだ?
荒らしくたばれ
119 :
デフォルトの名無しさん:2012/04/23(月) 19:41:31.61
イベントの実装ってどうやるべきなんだろ。
private void RaiseHoge() {
// EventArgsに有効な値を渡す場合は、ここで組み立てる
this.OnHoge(EventArgs.Empty);
}
protected virtual void OnHoge(EventArgs e) {
if (this.Hoge != null)
this.Hoge(this, e);
}
public event EventHandler Hoge;
こんな感じでやってるけど、ここをどういうパターンでやるべきか、つー話がなくて
自分で作ったライブラリの中でもちとぶれてる。
まああれだ、楽しくもないプログラミングをやらされてるなんて可哀想ね。
楽しめる人種でよかった。
121 :
デフォルトの名無しさん:2012/04/23(月) 19:47:36.05
>>119 禿るとイベントが発生するのかと思った・・・
俺の場合発生しまくりで困った
Hageing
Haged
キャンセル機能つけておいてね
だれがハゲやねん
そりゃ当然
Hogeも知らん奴がここにいるのか
愚痴るなHage
実際ハゲいるのか?
心は荒野
131 :
デフォルトの名無しさん:2012/04/23(月) 20:12:21.96
いつの間にか股間は禿げてた。
俺の周りはプログラミングを好きでやってるやつがいないぜ
どうしてこの業界に入ったかってきいたら、
外で働きたくない/体動かしたくない/暖房・冷房の部屋の中でできる/給料は高いほうってので選んだやつが多いw
だからプログラミング能力は止まっているやらばかり。
VB6脳のままVB.NETを使ってるとかな。
趣味でやるほど好きな奴らって少ないのか。
CADのようなアプリケーションを考えています。
1000.00mmの直線を引くにはどのように考えていけばいいのかアドバイスください。
当たり前ですが、1000mmの直線が引けるわけないし。
小数点が2桁なので、桁上げして100000pixelとして管理していくのですか?
>>133 1=1mとして表示
とかやる
つまりモデリングソフトの1の単位は自分で決める(設定項目があるわけではない)
135 :
デフォルトの名無しさん:2012/04/23(月) 20:20:38.12
>>133 内部管理な実寸で管理すればいいよ
表示の際にどうするかってだけだし
136 :
デフォルトの名無しさん:2012/04/23(月) 20:21:19.01
内部管理なら実寸で管理すればいいよ
表示の際にどうするかってだけだし
内部で1mを1にしちゃったら、作る大きさによって処理速度に斑が出るだろ
じゃー、浮動小数の1を何メートルまたは何インチにするかが鍵だね。
後は、変換!変換!!大変換!!!
>>138 違うでしょ。
プログラムで扱う値の単位は、特に理由がない限り問題領域の単位と同じにするべき。
理由はその方が分かりやすいから。
日本用の会計ソフト作ってるのにプログラム内の通貨の単位をドルや元で作る
奴がいたらアホでしょ
>>140 それって、0.01mm/Pixelってことですよね
そうすると、ユーザが1000mmと入力すると
100000Pixelってことになって、莫大に大きいバックバッファを用意しておくのですか?
>>141 ピクセルは忘れろってw
内部管理は頂点座標を管理してるだけでいいよ
それをスクリーン投影する際にどうするかってだけの話だから
>>141 何が言いたいのかよく理解できないんだけど、
ピクセルを中心に考えてるとしたらそれは間違ってるよ。
ピクセルなんていうモニターの都合に過ぎない単位を中心に考えてはだめ。
まあ抽象論を言ってもしょうがないから、とりあえずページ変換で何ができるか調べてみたら?
144 :
デフォルトの名無しさん:2012/04/23(月) 21:02:05.60
うわーん
ああわかったラスターデータとベクターデータの違いが分かってないんだなw
CADなら後者で扱うから単位とバッフアサイズなんて直接関係ないの
そんなんで大丈夫か?
146 :
デフォルトの名無しさん:2012/04/23(月) 21:05:08.73
いや、大丈夫じゃないだろ
ドット絵でも書いてオナってろw
非常に既視感のあるこの流れ…
149 :
デフォルトの名無しさん:2012/04/23(月) 21:15:54.08
l三`ー 、_;:;:;:;:;:;:j;:;:;:;:;:;:_;:;:;_;:?-三三三三三l
l三 r=ミ''‐--‐';二,_ ̄ ,三三三彡彡l_ この感じ・・・・
lミ′  ̄ ー-'" '=ミニ彡彡/‐、ヽ
l;l ,_-‐ 、 __,,.. - 、 彡彡彳、.// zipか・・・・
_______∧,、_‖ `之ヽ、, i l´ _,ィ辷ァ-、、 彡彡'r ノ/_ ______
 ̄ ̄ ̄ ̄ ̄ ̄ ̄'`'` ̄ 1  ̄フ/l l::. ヽこ~ ̄ 彡彳~´/  ̄ ̄ ̄ ̄ ̄ ̄
ヽ ´ :l .l:::. 彡ィ-‐'′
ゝ、 / :. :r-、 彡′
/ ィ:ヘ `ヽ:__,ィ='´ 彡;ヽ、
_,,..-‐'7 /:::::::ヽ _: :_ ヽ ィ´.}::ヽ ヽ、
_,-‐'´ { ヽ:::::::::ヘ `'ー===ー-- ' /ノ /::::::ヘ, ヽー、
C#でCADなんて絶対無理だぞ
それっぽいのは作れるが、2D世界での事実上デファクトスタンダードはAutodeskのAUTOCAD
こいつから、シェアを奪おうとすると、絶対C/C++じゃなきゃ不可能
作るだけ無駄
152 :
デフォルトの名無しさん:2012/04/23(月) 21:33:42.29
>>150 見た感じ、質問者のレベルはC#以前の問題の様だし、
あんまりこだわらずにお勉強に付き合ってやるくらいの気持ちでいんじゃね
Rectangleは(というか大抵のクラスは)float版あるよ
ControlのPaintでやっているような処理をDirectXかなんかで楽に置き換えられたらいいんだけどな
そういうコードさらっと書けちゃうのは、ほんと実力あるんだなと思う
プロになんかなれないから野球すんなレベル
なんかfloatって中途半端なんだよな
intかdoubleでいいんじゃないかって思う
158 :
デフォルトの名無しさん:2012/04/23(月) 21:36:25.07
>>153 ああRectangleFであったなオーバーロードででてくると思い込んでたw
shortでいいじゃん
160 :
デフォルトの名無しさん:2012/04/23(月) 21:37:29.95
>>157 後発のWPFあたりは基本はintとdoubleだよ
winformは基礎のwin32apiがfloat主体のころの歴史を孕んでるからなあ
まあグラフィック関連がfloatになるのは仕方ないんだが
マジでっ
だってDirectXとかって基本はfloatでしょ?
最近のDirectXはよくわからんけど
最近もfloatしか無理
164 :
デフォルトの名無しさん:2012/04/23(月) 21:42:44.13
165 :
デフォルトの名無しさん:2012/04/23(月) 21:43:29.99
>>163 まあゲーム用だしfloatで十分っていえば十分
166 :
デフォルトの名無しさん:2012/04/23(月) 21:47:35.96
昔はSSEが単精度だったからfloatなのかな?
どうせ最後は画面に表示するだけだから単精度で充分だよな
167 :
デフォルトの名無しさん:2012/04/23(月) 21:50:15.67
>>166 まあそうなんだよな
floatだって無限に管理は出来ない上にディスプレイなどへ
出力する際はさらに丸め誤差が発生するし
今ってSSEって名前ですらなくなった気がする(AVXだっけ?)けど
floatは同時にいくつ演算できるようになったのかしら
最大8個らしい
AVXレジスタが256bitなので
まあ座標系の勉強したければ3D関連で勉強したほうがいいかもね
うん
Webbrowserで画像を開くと、どうしても左と上に余白ができてしまうのですがこれを無くす方法はありますかね?
>>173 その辺はブラウザコントロールの中の話なるのでcssとかで
実現する方法を調べてみないとなあ
でcssでやってることをプログラム的に流し込むしかないよ
たぶん
Form.Show()
を使って表示しているフォームがあります。
このフォームから、一瞬だけ親ウィンドウの操作をロックしたいと考えているんですが、どうしたらいいでしょうか?
フォームのボタンがクリックされたら、親ウィンドウ上の操作が一時停止されるというものです。
ただし、親ウィンドウは全然違う所が作ったアプリなので、親ウィンドウのソースは弄れません。
一瞬だけ、モーダル/モーダルレスの切替をしたいなぁーーーと
やったことないけど親のEnableは駄目だった?
>>178 完璧です!
Styleも探したりしたんですがZoomとかの記述しか見つからなかったので無いかと思ってました
本当にありがとうございました!
180 :
デフォルトの名無しさん:2012/04/23(月) 22:50:34.73
画像の方で突っ込み欲しかったけど誰も触れてくれない・・・グスン
filestreamのBinaryWriterでReadString()他を使ってデータの読み書きをしています。
例えばWrite()でstring型の変数を続けて入れても、ReadString()を使えば綺麗に取り出してくれますが、
これはバイナリ上だとどうやって区切っているのか、分かる方いませんか?
特定の文字(カンマ等)で区切っているのであれば、使ってはいけない文字があるのかと気になっています
ヒント
先頭に文字数
仕様無し実装依存じゃないの
使っちゃいけない文字はないはず
>>181 MemoryStreamに同じように書き込んでbyte配列で中味みてみなよ
185 :
デフォルトの名無しさん:2012/04/23(月) 23:04:52.73
186 :
デフォルトの名無しさん:2012/04/23(月) 23:06:29.09
てめえは誰だ
在日外国人の“生活保護”急増! 一方で 「韓国では日本人の生活保護はない」
全国の生活保護受給者が急増している。約205万人という過去最多となったのだ。こうしたなか、
在日外国人への支給率や増加率がひそかに注目されている。国や地方自治体の財政を圧迫する問題に、
自民党の片山さつき参院議員が切り込んだ。
在日外国人への支給が、日本人の3倍以上なのだ。さらに最近、在日外国人の生活保護受給の伸びが著しいという。
片山氏は「外国人の保護は、本来はその国の領事館がやるべきことだ。例えば、韓国では日本人は生活保護を受けられない。
受給できるのは、韓国人と結婚して未成年の子どもを養育する場合に限られる」と、
在日外国人への生活保護支給が国際法上の“相互主義”に反する可能性を指摘した。
http://www.zakzak.co.jp/society/politics/news/20120404/plt1204041543005-n1.htm
>>182-184 事前にバイナリエディタで見たときはドットになっていて、バイナリ上は数値が違っていたのでなんじゃこりゃとなってました
特に使ってはいけない文字はないのですね
ありがとうございました
>>189 その辺は文字エンコードの問題になるので
バイナリエディタの場合特定の文字コードを指定しなければ
基本はアスキーコードで無作為に表示するだけでしょ
文字コードはあくまで表示ルールにすぎなくて
ルールが変わればそこに入ってるコードの意味は変わっちゃうからねえ
さすがにあれはおかしいと思った
BODY
失礼します、ファイルを削除してからリネームで削除したファイル名に置き換えたいのですが、
ファイルが使用中となってしまい動作エラーになってしまいます。
ファイルを削除するまで待機する方法ってありますでしょうか?
System.IO.FileInfo f1 = new System.IO.FileInfo(hoge);
f1.Delete();
// while (true)
// if (System.IO.File.Exists(hoge) == false) break;
System.IO.FileInfo f2 = new System.IO.FileInfo(hage);
f2.MoveTo(hoge);
196 :
デフォルトの名無しさん:2012/04/24(火) 10:14:39.06
win7の環境でやってみたが問題ないぞ
エクスプローラーやなんかで削除するファイルを開いているとか
198 :
195:2012/04/24(火) 10:20:42.04
>>196 確認ありがとうございます、こちらはXP+VS2010ですが、エラーが発生します。
ファイルサイズは100MB〜300MBと大きいのが原因かもしれませんが。
みんなの意見を聞かせて欲しいのだが
.netアプリの初回起動が重いという問題について、下記方法以外に何かしらの対応方法や解決策って何がある?
・ngenによるネイティブ生成
・c++などによるスプラッシュスクリーン
・スタートアップに最小の.netアプリを仕込んでOS起動時にCLR読み込みを行っておく
201 :
デフォルトの名無しさん:2012/04/24(火) 11:28:23.59
SSDにする
>>201 そうきたかw
実際どうなの?
環境がないので試しようがないけどSSDにすると.netアプリの初回起動もだいぶ変わってくるの?
というか、SSDにすると全体的にパフォーマンスアップするわけでしょ
相対的に比較した時にやっぱり.netって初回起動重いよねってところに帰結するだけのような・・・
203 :
デフォルトの名無しさん:2012/04/24(火) 11:31:53.16
冗談じゃなくてまじめにSSDにする
.netで生産性が上がるのにHDDなんかを使っておせーとか言ってる方が
信じられん
業務用ならなお更8000円もあれば64GBのSSDが買えるんだし
普段の作業もサクサクになるので人間が待たない分8000円なんてすぐ回収できるだろうに
Windows7以上にしてSSDだと起動が遅いというのが嘘のようだな
205 :
デフォルトの名無しさん:2012/04/24(火) 11:36:49.34
重たそうな.netアプリっていうとvs2010しか手元にないんだが
SSDにする前と後じゃあしゃっきり立ち上がる感じになったねえ
まあどっちにしろC++なんかのアプリもdllの読み込みが高速化されるので
>・スタートアップに最小の.netアプリを仕込んでOS起動時にCLR読み込みを行っておく
これは必要かもねw
起動後UIが有効になる前に重い初期化処理を同期で走らせるのをやめたりとか
そういうプログラム的な工夫も必要だわな
C#に限らないけど
起動時によっぽど重い処理してなきゃ問題ない
というかできるだけしないように作る
208 :
デフォルトの名無しさん:2012/04/24(火) 11:39:15.75
HDD特に静穏化重視でデスクトップも2.5インチにしてるんだが
OS起動してすぐにアプリを起動するとしゃっきり起動しなかったな
なんていうか人間がぎりぎりわかる範囲でウインドウの中の描画がまたされてる感じ
SSDはそれがないな
たぶんウインドウを構成してるレンダリングなんかで関連するdllなんかの読み込みが
SSDだと早く終わってHDDはどうしてもストレージが足を引っ張ってる感じ
SSD環境使ってたら他のアプリだってサクサクなんだよ
その中で.netアプリはやっぱりもっさり感が際立っちゃうよ
何の解決にもならんのでは??
210 :
デフォルトの名無しさん:2012/04/24(火) 11:54:13.79
めんどくせー
windows関連がぱっとしないのは過去の延長ですべてを判断されるからなんだよな
212 :
デフォルトの名無しさん:2012/04/24(火) 11:57:38.28
新しい仕組でアプリの生産性を上げたとしてもC/C++のアプリと
比較されてなかなか受け入れられない状態とかさ
webのもっさりを受け入れられるのにねw
>>212 > webのもっさりを受け入れられるのにねw
これ面白いな
確かにそーだよな
なんでなんだろ?
Webは遅いものという概念が周知されてるからか?
214 :
デフォルトの名無しさん:2012/04/24(火) 12:03:16.03
>>213 まあ結局のところwebはネイティブアプリの後で出てきたイノベーションだからな
多少もっさりでも許される
今一番許されてるのはスマホなんかのアプリか
215 :
◆YpS/z1Ykfs :2012/04/24(火) 12:16:20.34
DotNetZipを使ってるんだが、
Thumbs.dbをいくつかのファイルと一緒に圧縮しようとすると、
応答なくなる現象が起きているんだが、何か情報はないだろうか・・・。
だがだが
少なくともpart91までには出てきていない話だ
わざわざファイルを用意して再現するか試す気はない
>>214 なるほど
てか、スマホアプリってそんなにもっさりしてるイメージある?
iPhoneしか触ったことないけどそんなにもっさりしてるイメージないなぁ
というかWebがもっさりしてるってホントなのかな
例えば1万行のレコードをASP.NETのDataGridで表示するのと、WinformsのDataGridViewで表示するのってどっちが早いんだ?
ネットワークの負荷とかは抜きにして単純にこれ比較したらASP.NETのDataGrid(html)の方が早いんじゃね?
218 :
◆YpS/z1Ykfs :2012/04/24(火) 12:23:07.88
だがだが。
まいったなあ。モノがThumbs.dbで、しかもプライベートの写真含んでる、
なんてことさえ無ければアップして検証してみてくれないか、とか言えるんだろうけど。
219 :
デフォルトの名無しさん:2012/04/24(火) 12:25:23.34
>>217 もっさりはしてないけど遊びで作ったようなアプリであっても
まだ許されるよね
220 :
デフォルトの名無しさん:2012/04/24(火) 12:26:30.61
>>217 ネットワークの負荷を抜きにして話せばそうなるだろうな。
サーバーは一般的にクライアントより性能高いだろうし。
>>220 もちろんサーバーとクライアントPCのスペックの違いもあるだろうけど
それ抜きにして単純にForms上で描画されるDataGridViewと、ブラウザ上で描画されるTableタグのパフォーマンスを比較したらどうよ?
それでも後者の方が早いんじゃね?
222 :
デフォルトの名無しさん:2012/04/24(火) 12:30:03.98
まあサーバー側は速度重視でいろいろ金かかってるからなあ
ローカルマシンにSSDいれたけどさ、ブラウザの表示も速くなったぞ
キャッシュを定期的に消すので体感でわかるレベル
うっかり広告画像いっぱいのアフィブログとか開いてもレンダリング完了が早い
223 :
デフォルトの名無しさん:2012/04/24(火) 12:30:53.35
>>221 そうかもねえ。あまり検証したことないけど。
表示するだけ、のHTML>Tableと、機能の多いDataGridViewの差、
とか、WinForms.Component故の重さとか、色々あるんだろう
>>223 だよなぁ
これ比較してる人とかいねーかな
思うんだけど
>>212 > webのもっさりを受け入れられるのにねw
これ自体が実は正しくねーんじゃねーのかな
ユーザーってWebにたいして実は「もっさり」というイメージは
作る側が思ってるほど感じてないんじゃないの?
詳細画面系もFormのラベルやテキストボックスがべたべた張り付けられたものより
Webの一枚ぺらのページの方がさくっと表示されるイメージがある
225 :
195:2012/04/24(火) 12:58:25.69
>>199 先にリネームするのですね、ありがとうございます
動作確認できました。
System.IO.FileInfo f1 = new System.IO.FileInfo(hoge);
f1.MoveTo("tmp.tmp");
System.IO.FileInfo f2 = new System.IO.FileInfo(hage);
f2.MoveTo(hoge);
f1.Delete();
サンプルではf3を作成していましたが、
f1をDeleteでも動作しましたので、問題は無いですよね?
>>225 f1の持ってる情報ってMoveToするとちゃんと後のファイル名称になるだねw
使ったことないのでその辺わからないからf3作っただけなので
windowsのファイルシステムは同じドライブの中での移動だと
移動先に同じ名称がなければファイルの管理情報のところを書き換えるだけで
実データは移動しないからねえ
ドライブが変わる場合は場合によっては駄目かもしれない
227 :
デフォルトの名無しさん:2012/04/24(火) 13:44:26.87
中でForm型で受け取ってるし
いきなりですが質問です。
C#で文字列を固定長で扱いたいんですが何か良い方法はありますか?
何がしたいかというとC#で吐き出したバイナリをCで処理したくて。
struct a
{
int m_nID;
char m_strName[128];
};
のような構造体でそのまま丸々読めるようにしたいのです。
C#でstringやbyte,charの配列を扱おうとすると
string test = "aaaa";
のようにした場合文字列の長さが[4]で扱われるようで、[struct a::m_strName]と同サイズで
そのデータを出力したいのにその方法がわかりません。
一通り検索して調べてみたのですが見当たらなかったので質問しました。
うまく説明出来てるかわかりませんが、どなたか回答よろしくお願いします。
意味がわかりませんねえ
m_strNameが128固定ならC#のstringは2バイト文字だから64文字入るんじゃないの
でもCの文字列は最後にNULL文字入れなきゃいけないから63文字かね
ありがとうございます。
要するに
string test = "aaaa";
というものを、バイナリデータとしては
[a][a][a][a][NULL][NULL]...[NULL] <- サイズ分まで
という感じで出力したいのです。
無限次元配列
>>231 なんで出来ないのか分からん
バイナリを吐き出すっていうのがBinaryWriter.Write(string)をやった時に
128ビット分の0埋めをしてくれないって嘆いてるのかね
for(;i < 128; ++i)
BinaryWriter.Write((byte)0);
的なことをしたらいいんじゃないの
>>233 ありがとうございます。
そうすれば最終出力データ的には同じにはなりそうですねー
まぁ実際のところやりようはあったのですが、いろいろ試してみて
もっとスマートにやれる方法はないのかなーと思ったもので。
stringが配列だと思っていたりして
>>235 いやいや、そこまで調べる力がない子ではないですw
まぁ配列のように扱えたり読めたりすればC的に扱うときに便利だなーとは思いましたが。
C言語でバイナリフォーマットさえわかっていれば、後は構造体使って
楽に読めるようなデータをC#の時点で出力しておきたかったのです。
C#の構造体もメモリ内の配置をガッチリ決めてCと相互運用するような機能あったよね
それ使ったら出来そうに見えるけどね
Marshal.StructureToPtrでもつかってbyte配列にして書いたりしたらいいんじゃない。
構造体はMarshalAsAttributeで配列の長さを指定してあげたりして。
簡単なWindowアプリを作る必要が出てきたので、GUIで動かせるものを作ろうと思っているのですが
通常?のGUIとWPFがありますよね
違いを調べたところ、私の作りたいアプリは通常のGUIで充分作れそうなのですが、
せっかく作るなら、この機会にWPF(+XAML)を覚えた方がいいか迷っています
実際のところ、WPFって覚える価値、使う価値がありますか?
過去、携帯アプリやCGIを作ったことはありますが、Windowアプリを作るのは初めてで、VC#も先ほどダウンロードしました
情報量が違うからWPFなんか止めとけ
俺みたいに質問しなくてもググるなり仕様読むなりで全部解決できるようになってからやるといいよ
WPFってなにかしらかっこいい最近流行りのユーザーインターフェースが作れるという
謳い文句なだけだからなwその癖、MVVMだとかビューだのモデルだの
設計を押しつけられるし、XAMLなどという別言語も覚えなきゃならないし。
>>240-241 レスありがとう
初めてやるWindowアプリだし、素直にGUIにしときます
後発なのにヘジたんがかかわらないとここまでわかりにくいものを作ってしまうんだなMSは
というのがよく分かるWPF
>>242 GUIっていう表現は気持ち悪いので
従来のGUI winform もしくは form
新しいGUI WPF
という感じで
245 :
デフォルトの名無しさん:2012/04/24(火) 20:59:49.21
>>243 WPFはweb系やってるとイメージ掴みやすいけどな
WinFormって.NET Frameworkが正式版になる前の仮名称かなんかじゃなかったか
>>247 まあクラス名はFormだけどね
細かい話はいいよ
グーグル先生はwinformsだろうが!って怒るけど
249 :
デフォルトの名無しさん:2012/04/24(火) 21:42:36.76
WinFormsって、所謂System.Windows.Forms名前空間の略称(俗称?)だと思ってたけど違うのか。
だいたいあってる…
プログラムの種類じゃね
Console、WinForm、WPF、DLL…
中でSystem.Windows.Formsを使ってるDLLもあるだろうし
確か、.NET 1.0のときはWinFormsっていう名前空間だった。
で、1.1で今のForms名前空間に変更になった。
ないないw
Windows Form(Windows フォーム)が恐らくフォームを表すMSの正式な用語。
少なくともMSDNだとそういう表記になってる。
WinFormはその俗称だね恐らく。
個人的にはあんまり見たことないけど
伝わればなんでもいいのさ。
正味、C#って使われてるの?
Webでは使えるが、デスクトップアプリとしてはやっぱり未だに
VC++MFC、VC++SDKが主流だな
C++は消えることはないけど、主流ではなくなってきている
一人で納得してる奴に突っ込むなよ無粋者め
さすが野暮な言語のユーザーなだけある
258 :
デフォルトの名無しさん:2012/04/24(火) 23:04:07.47
主流っていうかwindowsのネイティブアプリ開発してるのが
VC++でごりごりやってたおっさんくらいしか残ってないだけじゃないの?
その後の世代はwebとかFlashアプリとかそっちへ・・・
つまりおっさんしか残ってないのがwindowsの世界
はぁすいませんねえお節介で
260 :
デフォルトの名無しさん:2012/04/24(火) 23:37:15.55
よく知りませんが、C#でネイティブアプリって作れませんよね?MFCのような。
よく知りませんがそうかもしれないですね
ヌルイ環境ではC#は使えるけど、
usオーダーを気にしているFA業界では全く無意味w
windowsというめんどくさい部分をVC++でごりごりっていうのがなあ
昔からやってて資産とか持ってるなら別だが
FA業界てw
uSecオーダーを「気にする」って言葉もよく意味が分からんが、
uSecオーダーの制御が必要ならそもそもWindowsなんか使えない。
っていうか、そのFA業界こそ、長いことVB6が使われてるヌルい業界の代表格なわけで。
下手すると今でもVB6のサンプルコードが製品についてくる。
>>264 あくまでシリアルポートなんかに繋がったリアルタイムOS積んでる制御ボード
へのデータ送信とかモニターの役目だよね
windowsで直接コントロールするなんてありえねえ
いちいちこんな脳障害レス乞食に相手にすんなよ
ま、馬鹿2号と3号と4号に言っても理解してくれるか怪しいけど
C#は遅いとか、使えないなんて話題には過敏に反応するな
質問者には禄に回答もできないくせにw
そう過敏なんだ
馬鹿だから
自分が馬鹿にされたように思い込むんだ
馬鹿だから
いい加減目を覚ませ馬鹿
269 :
デフォルトの名無しさん:2012/04/25(水) 00:03:34.38
過敏なんだビクンビクン
またこのクズかよいい加減死ねよ。
そんなので大喜びできるって素敵な人生だねw
俺は真似したくないけど
こんなスレにまできて、C#が遅いとか抜かしてるやつが
C++なりアセンブラになり使ってまともなもの作ってるとも思えないし。
生産性と実行速度のバランスをごっちゃにしてるだけの馬鹿
またと思うほど釣られてる奴のが馬鹿だろ
自覚したらあ
>>273 レス乞食のレスの内容をまじめに評価する馬鹿
中途半端にプライドだけあって見下したがりだから
馬鹿っぽい奴がいるとレスせずにはいられないのよ。
ID板に移動する話題が出ると必死に無関係の振りして反対するのもこいつだよ
分かってるなら相手にすんなっつーの
>>277 それってむしろ君自身にも当てはまるよ。気づいてる?気づいてないよね。
っていうか、コピペ馬鹿みたいに何度も同じこと言うなよ気持ち悪い。
分かっちゃいるけど止められないそれが中毒
283 :
デフォルトの名無しさん:2012/04/25(水) 00:27:21.70
ホレ スイスイ スーララッタスラスラ
馬鹿に向かって説教たれることほど滑稽なものはねえよなあ
>>278 じゃあ移動すれば?どうぞご自由に。
今後は俺さまがこのスレ使ってあげるからさ。
在日が真実を隠そうと必死なようで
ここで質問しない初心者でもないやつは
ここ荒らしても平気なんだろうけど
そういう人らは相談室でやってくれないか?
人が多いからってここで暴れるなよ
一人で行けよって話よね
289 :
デフォルトの名無しさん:2012/04/25(水) 00:32:54.27
もしくはこのスレ潰して雑談スレにすれば?
質問は全部相談室でいいんじゃないの?
初心者の学習の邪魔して何が楽しんだよ
質問書き込んで答えが返って繰りゃそれでいいわ
他に何が書いてあっても掲示板に帰属してるわけじゃあるまいし
ネトウヨシネヨ。
スルー検定でも実施するか
割とマジで
なんだかんだいったとこで、C#は遅いってことに疑問を挟む余地は無いよ
ID表示すれば煽ったり暴言はいてる奴は全部一人なのは明白なのにな
IDのある板に逃げよう!この板は脱出だ
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ;+;)
( つ/ ̄ ̄ ̄ ̄ (^ν^;) / ̄ ̄ ̄ ̄
( ./ /(⊂ )< ・・・・
/_______//(___) \___
|| ̄ ̄ ̄ ̄ ̄.||/
||, .||
三ヵ月後
( ^+^ )
( つ/ ̄ ̄ ̄ ̄ (^ν^;)。○(早く出て行ってくれないかな・・・)
( ./ /(⊂ )
/_______//(___)
|| ̄ ̄ ̄ ̄ ̄.||/
||, .||
だからさ、スレ潰したいならそれでかまわないから
雑談スレとかにスレタイ変えればってことだよ
俺が別で初心者スレ作るし
IDID言ってり奴こそいつも一緒だろ
>>296 今まで十数回運用申請してことごとく撥ねられ続けてるのにまだ無駄な希望を抱いている馬鹿
わざわざ相談室とこっちで分けてる意味ってあるのか?
>>298 荒らしにスレタイ変えてそこで暴れててくれなんて言い分が通じると思う馬鹿
荒しなんていないけどな
自治厨乙
スレや板の方針が嫌なら自分だけ引っ越せよwww
小市民だから先陣を切りたくはないだろうw
ざまあみろw
この荒らしが首つって自殺するようなアルゴリズムを教えて下さい
キチガイ
ID表示すれば煽ったり暴言はいてる奴は全部一人なのは明白なのにな
そんな質問して構ってる限り無駄だと思いますよ
アンカーはもちろん皮肉も何もかも係わり合いになること全てが餌だぞ
そもそも韓国情報なんか2chやニコニコのいたる所に貼られ続けてるわけで
このスレが定期的に荒れるのはこのスレ特有の問題なわけだろ。
言語の性格なのか分からんが煽り耐性皆無だし
いや荒れてる原因はそれじゃなくて脳障害の奴がいるからだが
脳障害が居ついた理由は何だろうな
このスレにバグがあるから
真性はこうやって対策練ってるだけで喜ぶ。
IDをNGワードにすりゃ解決
煽りと並行に他に移住しないような工作も入念だよな
>>311-313 煽り耐性がないから一言言っとくけど、そうやって自分を棚上げする奴って馬鹿っぽいよ。
自分も加担してる自覚ぐらい持てよ。馬鹿じゃないの。
とりあえず、今荒らしている奴片っ端から通報しとくは
こういう一言言いたがりもどうにかしないと。
言い訳するくらいなら初めから口を開くな
脳障害の僕をこんなに喜ばせてくれてありがとうね
今どんな気分ですか?
ゴシック体ってなんでゴシック体っていうのかなぁ
サンセリフ体でいいじゃん。なんでゴシック体なんだ?
326 :
デフォルトの名無しさん:2012/04/25(水) 01:18:01.44
ゴシック体の説明のなかに韓国という項目があるのが驚きだわ
ソフトウェア板にVisualC#Expressのスレ立ててC#の初心者スレということにしたらどうだろう
2ch見てると世界の国は日本と韓国と後その他大勢って感じだな
通報 ID
こーゆーの書いてるのが荒れるきっかけの張本人っていう
331 :
デフォルトの名無しさん:2012/04/25(水) 01:40:55.20
荒らしてる奴が悪いんじゃない荒らしに反応する奴が悪い
だから荒らしに文句を言うな
というお話
反応する奴が悪い
だから荒らしは悪くないという言い訳
最近C#の勉強始めたんだけど
class Point
{
335 :
デフォルトの名無しさん:2012/04/25(水) 01:45:17.08
もういいよ
途中で書いちゃった
class Point
{
public int X { get; set;}
}
こう言う書き方の必要性が良くわからない
メンバー変数の隠蔽って意味で単にpublic int Xにするのと
何も変わらないと思うんだけど。
内部処理が冗長になるだけじゃ無いんだろうか?
337 :
デフォルトの名無しさん:2012/04/25(水) 01:48:09.99
338 :
336:2012/04/25(水) 01:49:57.34
>337
あっ、なるほど。thx
フィールドアクセスとプロパティアクセスで処理が変わるんで
プロパティにしとけばプロパティの中の処理が差し替えになっても呼び出し側は変えなくて済む
みたいなことなんだと思うけど全部プロパティで一本化して実行時コンパイルの時に
フィールドアクセスで済むならフィールドアクセスで最適化みたいな感じのほうが
言語的にもシンプルだっただろうな
340 :
デフォルトの名無しさん:2012/04/25(水) 01:53:37.06
>>339 自動プロパティのコトを言ってるんだろうが、
自動プロパティ自体はフィールドを置き換えるためのものではないぞ。
単に「ひとまずプロパティで」外部に公開する様なメンバを、
楽に記述するためだけのものだから、フィールドアクセスで済むなら云々、とはあまり関係ない。
全然的を外してたらすまんが気になったので。
>>340 public int X;じゃなくpublic int X{ get; set; }と書くのはなぜかという話だろ
public int X;だけで自動プロパティと同じにならないのはなぜかという話だろつまり
フィールドじゃなきゃダメなケースっていうのはないはずだからほんとは一本化するべきだったんだと思うよ
フィールドじゃなきゃrefとか渡せないじゃないか
refで渡せるのはローカル変数だけじゃないの
一部のシリアライザー(ApplicationSettings等)とかそこらへんのクラスは、
公開されたプロパティを対象とする、もしくは、DataGridViewとかにデータバインドされるとき、
フィールドは、無視して公開されたプロパティを認識するといったようなものがある。
そこらへん気にしない・使わないなら別にフィールドでも構わないと思うけど。
構造体が絡むとフィールドとプロパティで動作が全然変わったりするよな
struct A{ public int X; }
class B{ public A A; }
class C{ public A A{ get; set; } }
b.A.X = 10;
これは書き換わるけど
c.A.X = 10;
これは書き変わらないどころかコンパイルも通らないんじゃなかったか
private Point{get;set;}
こういうのができればいいんだけどな
構造体ってのは、値型だから・・・
348 :
デフォルトの名無しさん:2012/04/25(水) 02:25:24.30
List<int> list = new List<int>();
list.Add(0);
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
list.Add(5);
の[1]〜[4]を取り出して連結してintの1234って数字にしたいんだけれど
どうすんの?
349 :
デフォルトの名無しさん:2012/04/25(水) 02:25:41.11
>>340 フィールドが無くて良い、っていう視点では捉えてなかったわ。
publicなフィールドの使途は確かに限定される(というか、咄嗟にはなかなか思いつかない)
けど、無くして良いってモンじゃあない気がするけどな。
350 :
デフォルトの名無しさん:2012/04/25(水) 02:26:51.17
>>348 string.Join("", list.Skip(1).Take(4).Select(x => x.ToString()).ToArray())
int goukei;
list.Select(s=>goukei+=s);
352 :
デフォルトの名無しさん:2012/04/25(水) 02:28:27.59
または
string.Join("", list.Select(x => x.ToString()).ToArray(), 1, 4)
353 :
デフォルトの名無しさん:2012/04/25(水) 02:30:07.33
あ、intなのか。失礼。
int result;
list.Skip(1).Take(4)..Select(x => result = result * 10 + x);
コレで行けるんじゃないかな。
354 :
デフォルトの名無しさん:2012/04/25(水) 02:30:26.97
初期化漏れ
int result = 0;
list.(num)=>{From 1 To 4 Select str+=num.ToString()}
>>348 var str = "" + list[1] + list[2] + list[3] + list[4];
とか
var sb = new StringBuilder();
for(int i = 0; i <= 4; ++i)
sb.Append(list[i]);
var str = sb.ToString();
とか
var str = list.Skip(1).Take(4).Aggregate(new StringBuilder(), (sb, num) => sb.Append(num)).ToString();
とかやって
int result = int.Parse(str);
こんな感じ?
違うか
int sum = 0;
for(int i = 1; i <= 4; ++i)
{
sum *= 10;
sum + list[i];
}
こういうことか
358 :
357:2012/04/25(水) 02:37:15.74
訂正
int sum = 0;
for(int i = 1; i <= 4; ++i)
{
sum *= 10;
sum += list[i];
}
359 :
デフォルトの名無しさん:2012/04/25(水) 02:40:24.83
個人的には
>>353を推したいけど、これじゃ集計されないから
.ToArray()する・・・よりはAggregateを使うべきだな。
int total = list.Skip(1).Take(4)..Aggregate((x, y) => x * 10 +y);
4回足し算するだけでStrinbBuilder使うほうがコストかかる
+をいくつもつなげた時の、string.Concat呼び出しで連結する場合StringBuilderより早いっていう話で
for文とか使って一個一個連結するならStringBuilderが早いという話だったでしょ前回は
>>346 それができたとして何かいいことあるの?
363 :
デフォルトの名無しさん:2012/04/25(水) 02:47:21.06
var str = "" + list[1] + list[2] + list[3] + list[4];
でいいだろw
>>362 変数の値が変更されたらイベントを起こさせたいときなど
var str = String.Format("{0}{1}{2}{4}",list[1],list[2],list[3],list[4]);
文字列を作りたいんじゃなくて数値を作りたいんだろ
>>361 4回しかしないならStringBuilderはいらない
コーディングも時間が掛かる
INotifyPropertyChangedでも実装しとけばいい。
>>364 でもそれだとどの変数か変わったかわかんなくない?
int型で1234にしたいならこれ
list :IEnumable<int>
public int Num;
Add(int num)
{
Num=Num<<1+num;
}
>>368 だからPrivateじゃできないっつーのw
372 :
デフォルトの名無しさん:2012/04/25(水) 02:54:30.09
シフト演算もしらないのか・・・
シフト演算はわかるが・・・
(・・)
377 :
デフォルトの名無しさん:2012/04/25(水) 02:56:48.82
>>374 冗談だと言ってくれ。
試しに自分で動かして見ろよ。
2進数ならビットシフトで作れるけどな
10進数だと10倍しないと桁が移らない
Addされるたびに位をシフトさせて足し算するコレクションを自作する
これで問題解決
380 :
デフォルトの名無しさん:2012/04/25(水) 02:58:00.00
もしかして、C#じゃない何かなんじゃないのか。
書き口が完全にC#じゃないもの。
Public int Hoge{ get; set; }
これだけの実装では、特にあまり意味はない。
INotifyPropertyChangedを実装したと仮定して次のように実装する。
private int _hoge = 0;
Public int Hoge{
get{
return _hoge;
}
set{
_hoge = value;
OnPropertyChanged("Hoge"); // ここでプロパティの変更を通知する
}
}
Add(int num)
{
Num=(int)((byte)Num<<1)+num;
}
はいはい、これでいいだろ
何がいいんや
384 :
デフォルトの名無しさん:2012/04/25(水) 03:00:30.06
何で型指定がコロン区切りの後置き指定なのかも、
何でNumがpublicなのかも、
何でAddメソッドに戻り値が指定されていないのかも、
何でAddメソッド呼び出していないのかも、
何で10進数をビットシフトして桁位置移動させようとしているのかも、
何かもワケが分からない。ワケがわからないよ・・・。
>>381 だからー
private int _hoge{
get{
return _hoge;
}
set{
_hoge = value;
OnPropertyChanged("_hoge"); // ここでプロパティの変更を通知する
}
}
こうしたいの
クラス内でしか見えない使えないプロパティ
386 :
デフォルトの名無しさん:2012/04/25(水) 03:03:12.01
387 :
デフォルトの名無しさん:2012/04/25(水) 03:04:15.32
ヤバイ。ここにいる奴ら、レベル高すぎてついて行けない。
C#9.0とかそういう世界にいる気がする。
はいはい自作クラスですよ
public class list :IEnumable<int>
{
public int Num;
public void Add(int num)
{
if(Num<65536)
Num=Num*10+num;
}
}
はい、これで文句なしね
なんやこのIEnumerableは・・・
全然Enumerableやないやないか・・・
391 :
デフォルトの名無しさん:2012/04/25(水) 03:08:51.11
シフト演算については勘違いしてたんですね。
そういう基礎的な間違い、誰しも一度は経験するモノですから、
あまり恥ずかしがってツンケンしないでくださいね。可愛すぎますよ。
って書こうとしたら、何かまだツッコミどころ多くて困った
わざわざそんなモン作ってどうすんだよ、とか、
なんでメソッド名「Add」?とか、もうホント疲れたよぼくは。
yeild return Num*10+num;
全部書かなきゃわからないのか?察しろよ
393 :
デフォルトの名無しさん:2012/04/25(水) 03:11:57.54
えっ?C#では2進化10進数のシフト演算子はサポートされてるよ
395 :
デフォルトの名無しさん:2012/04/25(水) 03:16:07.98
シフト演算も、IEnumerableも、yieldも、覚えたてで使いたい頃なんだろうね。
コンパイラに「全部書かなきゃ分からないのか?察しろよ」とか言ってそう。
ここでプログラム全体のソースコードを全部書く必要は無いが、
ソース断片として成立してないものを晒して「これで良いだろ」とか言ってるのは本気で頭が悪いとしか思えない。
public IEnumerable<int> Add(List<int> list)
{
int sum = 0;
foreach(var num in list)
yield return sum * 10 + num;
}
var sumList = Add(list.Skip(1).Take(4)).ToArray();
var answer = sumList.Last();
こういったことでしょうかね
なんにしても意味がわかりませんね
397 :
デフォルトの名無しさん:2012/04/25(水) 03:18:13.44
>>394 何が言いたいのか分からん。
少なくとも、あの使い方で「1234」は得られない。
398 :
デフォルトの名無しさん:2012/04/25(水) 03:19:36.71
ヤバイ。
>>358-359で既に解決してるのに、馬鹿が馬鹿を呼んで何だか馬鹿馬鹿しい展開に。
別にToArrayすることはないのか
var answer = Add(list.Skip(1).Take(4)).Last()
でいいのか
なんかいいコードに思えてきた
多分、C#の事は理解出来てる人なんだろうけど、
VS使わないで書いたからこんなことになったんだと思う。
"IEnumable"が出てきた時点で察するべきだった。
>>399は冗談やで
問題外やでこのコード
C#が理解できてる人のコードじゃないで
402 :
デフォルトの名無しさん:2012/04/25(水) 03:25:50.34
>>399 Aggregateでいいんじゃね。
Lastさせるくらいなら、戻り値IEnumerable<int>である意味ないじゃん。
変に感化されるなよ・・・
>>396 いやーだからさ、こーなんてーの
汎用性がありそうなパターンだったから
数値追加してやるだけで、1234を簡単に取り出せるような
関数っつーか、クラスみたいなのを作ってやろうと思ったんだよ
ま、俺には無理だったけどな
あとは頼んだわ
404 :
デフォルトの名無しさん:2012/04/25(水) 03:28:08.63
なんだこいつ・・・「コレで十分だろ」とか「察しろよ」
とか散々言っておいて、結論「俺には無理だった」かよw
何か昭和のホームドラマに出てくる理不尽な頑固親父みたいだなw
listEx.AddRange(new int[]{1,2,3,4,5});
Console.WriteLine(listEx.NumChain);
listEx.Select(c=>Console.WriteLine(c));
-------------------
実行結果
12345
1
12
123
1234
12345
こんな感じにしてやろうと思ったんだよ
406 :
デフォルトの名無しさん:2012/04/25(水) 03:33:37.53
>>403 実際の汎用性はどうだか知らんが、
この1メソッドで解決する気がするんだが。
public static int Join(this IEnumerable<int> numbers)
{
return numbers.Aggregate((x, y) => x * 10 + y);
}
範囲指定するんだからこのほうがいい
public static int Join(Point range,this IEnumerable<int> numbers)
{
return numbers.Aggregate((range.X, range.Y) => range.X * 10 + range.Y);
}
408 :
デフォルトの名無しさん:2012/04/25(水) 03:42:20.82
範囲指定は
Join(list.Skip(1),Take(3))
みたいな感じで呼び出し側でやったほうが汎用的じゃない
汎用的にするかどうかは、自分で考えろよ…
新しい馬鹿じゃなくて一人の馬鹿が何度も書いてるだけでしょうよ
>>409 error
引数が2つあるメソッドではありません
ぐぬぬ・・・
414 :
デフォルトの名無しさん:2012/04/25(水) 04:39:19.70
なかなか笑えるスレだな
415 :
デフォルトの名無しさん:2012/04/25(水) 04:42:36.69
416 :
デフォルトの名無しさん:2012/04/25(水) 04:44:10.32
>>406のでやるなら、list.Skip.(1).Take(4).Join()だろ
IEnumerable<int>の拡張メソッド使うようなことじゃあるめえよ
Aggregate((total, num) => total * 10 + num);
これ以上シンプルになってないと思うしAggregateだけあればいいよ
aggry baby
419 :
デフォルトの名無しさん:2012/04/25(水) 04:56:31.01
>>417 全くその通りだが、どうしても自作クラスにこだわるモンがいたんでな。
実際、Aggregateで十分だと思うわ。
夜遅くまで悪さしおってからに
イーネットカードに流れ込んでくるデータを監視して
特定の文字列が入ってきたら、特定の処理を行いたい
そうですか
>>421 すくなくとも、初心者ができる内容でないし
それに答えれるような人もここにはいないよ
RawSocket、、、つーかプロミスキャスモードでぐぐれ
exeサイズ1MBを超えてからが本当の地獄だ
最近超えたわ
じわじわ超えたから何が地獄なのか分からんが
設定フォームを別exeにしたいが
内部の依存関係でちょっと無理っぽい
TBクラスのHDDを搭載しているマシンも珍しくない今
1MBの実行ファイルなんてどうだよ
どうだって何だよ
これが文脈読めないクンかw
429 :
348:2012/04/25(水) 22:10:56.14
int total = list.Skip(1).Take(4).Aggregate((x, y) => x * 10 +y);
で動きましたが、Aggregateって初めて見てんで、さっぱり解らん。
シーケンスにアキュムレータ関数を適用します。
Visual C# では、このメソッドを、IEnumerable<TSource> 型のオブジェクトの
インスタンス メソッドとして呼び出すことができます。
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>)
メソッドによって、値のシーケンスの計算を簡単に実行できます。
func が呼び出されるたびに、シーケンスの要素と、集計値の両方を渡します。
byMSDN
???シーケンス?アキュムレータ関数?さっぱり何言ってるのかわかりません。
こういうのをもちっと手取り足取り優しく教えてくれてるサイトから教えてください。
私にはまだ
int sum = 0;
for(int i = 1; i <= 4; i++){
sum *= 10;
sum += list[i];
}のがお似合いのようです・・・
文脈読むってどういういみ?
海外の方ですか?w
>>429 Aggregateは集計に使うメソッド。
たとえばint配列の数字を全部足すっていう処理を考えてみる。
int[] intArray = new int[]{ 1, 2, 3, 4 };
int sum = intArray.Aggregate((total, num) => total + num);
これが全部を足す処理をするAggregate。これを解説すると、まずint配列の最初の1をtotalにいれる。次の数字の2をnumにいれる。で、これを呼び出す。
(total, num) => total + num
total + numは1 + 2なので3になる。計算結果の3をtotalに入れて、配列から、次の数字、3をとってきてnumに入れる。
total+numは、totalは3, numも3なので、6になる。この計算結果をtotalにいれて、次の数字、4をとってきてnumにいれる。
total+numは、totalは6, numは4なので、10になる
これで1から4まで集計できた。1から4までを足すと10であることが分かった。
intList.Aggregate((x, y) => x * 10 + y);
これも同じ事をしてるだけ。
慣れるとこれでいろんな処理が書けるようになる
int[] intArray = new int[] { 1, 2, 3, 4 };
int sum = intArray.Sum();
どやぁ(キリッ
ですよねー
>>432 それは説明しなくてもわかるんじゃね?
質問者はなぜその構文でそのような計算式が成り立つのかという
文法の生い立ちがわからないから詰まっているんだろ
それにはラムダ式や匿名メソッドなどいろいろ知らないといけないわけで
そういう部分をやさしく丁寧に教えてくれるサイトが知りたいんだろ
上級者はわかりやすく説明して入生つもりだろうけど、
初心者からしたらさっぱりなんだよね
最初はこれでいいと思うよ
int sum = 0;
for(int i = 1; i <= 4; i++){
sum *= 10;
sum += list[i];
これを関数として使いたくなったら
int Aggregate(List<int> list,int from,int to)
{
int sum = 0;
for(int i = from; i <= to; i++){
sum *= 10;
sum += list[i];
return sum;
}
}
こんな感じにして
int Aggregate(IEnumerable<int> list, Func<int,int,int> sum)
{
int total = list.First();
foreach(int num in list.Skip(1)){
total = sum(total, num);
}
return total;
}
中身はこうだよね
これを一般の型Tに置き換えると
T Aggregate(IEnumerable<T> list, Func<T,T,T> sum)
{
T total = list.First();
foreach(var num in list.Skip(1)){
total = sum(total, num);
}
return total;
}
こうなるわね
+したいならsumでいいけど集計の計算を自分で好きに作れるってことね
Func<T,T,T>
これがまずわけわかんね
Func<T,T,T>っていうのはTを2つ引数にとってTを返す関数という意味ね
T Function(T arg1, T arg2){
return ...;
}
さっきのだとTはintで
int Function(int total, int num){
return total + num;
}
こういう関数だったよね
この関数を、変数に入れたい時には、
Func<int, int, int> func = Function;
このようにやる。Func<int, int, int>はintを2つ引数にとってintを返す関数を入れることが出来る型なので、さっきの関数を代入することが出来る。
関数を代入するだけじゃなくて、その場で関数を作って入れることも出来る。
Func<int, int, int> func = (total, num) => total + num;
これは
Func<int, int, int> func = Function;
int Function(int total, int num){
return total + num;
}
これと同じ事を一行でやっている
441 :
デフォルトの名無しさん:2012/04/26(木) 01:51:06.65
このスレにしては親切すぎて怖い
このぐらいの時間に俺が質問をすると100レスぐらいは簡単に炎上する
今日はおとなしく寝ますけど
友達いないのか?
親すらいないだろ
まともな育て方されてないみたいだし
( ・ω・)y─┛〜〜
おまえくちくさいんだよ
ControllerクラスとManagerクラスの違いは何ですか?
使い分けたいんだけど
ふう
さて久しぶりにオナネタ集めて自作アプリで動かしてみるか
>>440 非常によくわかった。お前の文章から頭の良さが透けて見える
>>440 これは体が覚えるまで時間掛かりそうだな
覚えたら楽そうだけど
452 :
デフォルトの名無しさん:2012/04/26(木) 12:36:26.44
Aggregateは他のEnumerate<T>拡張メソッド群の中でも、
特にMSDNの説明が分かりづらいものの一つだと思うなあ
floatを切り上げてintにする拡張メソッドを
public static T RoundUp<T> (this T val) {
return (int)(val+1);
}
と書くと演算子'+'と'int'型のオペランドに適応することはできません
とエラーが出て定義できません。
どうすればいいですか
float限定なんだったらTじゃなくて素直にfloatで宣言
456 :
454:2012/04/26(木) 19:00:53.04
doubleが来たらどうなるの?
どうなるのって言われても
姑みたいなことを言うな
なんにしてもMath.Ceilingを使うのが賢いと思うけどね
>>454だと整数の時に1足されちゃうし
あと戻り値の型はintだからTじゃダメ
どうなるのか知りたいだけなら実行してみればいいのに
Tに制約付ければいいだけだろ。
もしくは、dynamic使え。
462 :
デフォルトの名無しさん:2012/04/26(木) 20:06:07.87
すいません、
>>227の質問にはこたえてもらえないんでしょうか・・・
463 :
454:2012/04/26(木) 20:09:11.64
>>459 ありがとうございます。Ceiling使います
>>457-461 標準関数があるならそれを教えれば済む話なのに
わざわざ下らないレスつけるな
464 :
デフォルトの名無しさん:2012/04/26(木) 20:11:17.94
あらあらまあまあ
だったらわざわざ書き込まず、自分でやれよ。
>>459 なんでこんな荒らしに律儀に答えちゃったんだよ
お前が荒らしだよカス
468 :
デフォルトの名無しさん:2012/04/26(木) 20:37:28.07
ジェネリクスの型パラメータに+とか-みたいな演算子定義を制約できたらな、と思うことはごくたまにあるな。
Expressionで演算自体はできるものの、実行時エラーになるわけだから・・。
469 :
デフォルトの名無しさん:2012/04/26(木) 20:44:25.87
というより、演算子定義自体のやり方を違う方法にして欲しかったな。
IOperatorAdd<T>とか演算子毎にインターフェースを定義して、
演算子はコンパイル時に当該インターフェースのOperate(T x)に置き換えられる、とか。
(このやり方が実現可能かどうかはわからん)
まあ、どっちみち、ジェネリクスが2.0以降の産物である以上、仕方のないことなんだが。
C#はジェネリクスを当初から持ってて欲しかったなあ。WinFormとか見ててもよくそう思う。
470 :
デフォルトの名無しさん:2012/04/26(木) 20:54:01.23
staticだから抽象化と合わないんだよな
答えただけで罠が発動するのかw
質問自体がトラップとは
Mathクラスも知らない低能とみせかけた釣り煽りと見せかけた真性だと思う
>>472 だからお前も加担してる自覚ぐらい持て。自分を棚上げするなよ真性馬鹿が。
何度も同じこと言わせるな。
C#ってどこが生産性が高いんだよ
CRectTracker ねーじゃんW
荒らしは一人で全部自演なんだろうな
何度もってお前に説教業務なんか頼んでねえからマジ黙ってろや
CRectTracker 位、自前で実装しろよ
たかがしれてるよ
あーそうやってまた自覚厨にいいように釣られちゃって…
脳障害、ID移動、自覚自覚の3人格か
ビリーミリガンでも目指してるのか
お前相手してくれる友達いないの?
いいんじゃね
俺は行かないけどね
金魚のフンに先陣が切れるなら切ってみろとw
485 :
デフォルトの名無しさん:2012/04/26(木) 21:31:36.08
板としてIDを付与して欲しい、みたいな運営への申請とかできんもんかね・・・
さて、これで口先だけかどうか分かるっすね。
>>486 はいどうぞじゃないよいい加減にしろマジで
何をいい加減にするのよ
移動したいんでしょ?
したらあ?
490 :
デフォルトの名無しさん:2012/04/26(木) 21:38:03.65
売り言葉に買い言葉、だな。
>>488 移動したい奴だけしろってんだよ
こんなとこでID談義ゴチャゴチャ続けるな邪魔だ
>>491 スレタイも内容もめちゃくちゃなスレ立てといて何言ってんだ?
削除申請しとけ
お前見たいのが消えてくれると思って立てたのにそんなことするわけ無いだろアホが
したきゃお前がするかこの場から退場してろハゲ
あーららこららと
お前が消えてくれればそれで済む話なんだがなあ自覚のある荒らしさんよ
496 :
デフォルトの名無しさん:2012/04/26(木) 21:42:53.15
IDが付与されても、このスレじゃ多分あぼんするID多すぎて辛いよママン
結局流すのが一番なんだけどね
馬鹿だね
質問者は煽る
質問しといて回答してくれた人も煽る
関係ないとこでも罵倒を繰り返す
流してどうにかなる問題には見えんがね
>>495 荒らしにもの頼んでどうにかなると思ってるのw?
俺みたいに頭やられてるんじゃない?
世にキチガイの種は尽きないけど割とうまく回っているだろ
501 :
デフォルトの名無しさん:2012/04/26(木) 21:47:16.53
まあ、質問にまともに答えられない様な状況になったら問題だと考えればいんじゃね。
今のところレスを読み飛ばせば良いだけで済んでるし。
荒らしが荒らせなくなるもんで必死だな
初心者は罵倒の嵐が巻き起こるこのスレで質問しようとは思わないだろう
問題だと思うがねえ
まあそん時は相談室に来るでしょ
今もたまに「荒れてるからこちらで」っていう人来るし
505 :
デフォルトの名無しさん:2012/04/26(木) 21:52:55.56
このスレを有効活用したいと思っている人間は、
大人しく来た質問に回答する努力だけしてれば良いんだよ。
板違いのやりとりに加わるだけ時間の無駄。
506 :
デフォルトの名無しさん:2012/04/26(木) 21:53:47.14
実際、質問に答えてると、色々面白い発見もあるわけだし。
移動とかどうとか、それ以前に荒らしが消えれば解決する。
>>507 あー無駄な望みだな
俺Part24くらいからここにいるで
Part160くらいまで待っていてくれたまえ
ComboBoxでModifiedが使えなくって( ゚Д゚ )ってなったんですが、
プログラマー側とユーザー側の入力を切り分けるいい方法ないですか?
罵倒の嵐が巻き起こるこのスレに新たな質問が
511 :
デフォルトの名無しさん:2012/04/26(木) 22:05:10.44
プログラマー側の入力、が何を指すかは分からんが、
コントロールを継承して、そういうイベントを発生させればいんじゃない?
>>505 初心者のふりしたお前に黙って解答してほしい の間違いだろ?
513 :
デフォルトの名無しさん:2012/04/26(木) 22:12:21.17
>>512 残念ながら、ここで質問したことがない。
もう嫌だ
IDが欲しい
俺もねーなー
検索すれば解決するもん大抵
初心者の壁って検索できるかどうか(根性含む)だよね
アイデープログラミング
517 :
デフォルトの名無しさん:2012/04/26(木) 22:14:52.28
>>514 NGwordちょっとメンテしたら、割と良い感じに消えてくれるからオススメ
>>511 すいません
プログラム処理とユーザー入力の切り分けです
とりあえず今、プログラム側でSelectedIndexを変更するときは事前にSelectedIndexのデータを取るように1つずつ書き換えてます
もうこれで比較するしかなさそうで
調べても出て来なかったことをここで質問したけど結局誰も答えられなかったってことばかり
こういうところでは、Aに対する答えがBではなく、(そんなもの大抵、ググったらすれば出てくる)
Aに対する答えでBかCかあるけど、どちらが良いかみたいなそんな感じなものを求めたり、
議論したりするところとしては、良いのかも知れない。とはいえ、こないだの+とStringBuilderみたいに荒れる可能性もあり。
SelectionChangeCommitted は、ユーザーがコンボ ボックスの選択項目を変更したときにのみ発生します
これでなんかできないかな
522 :
デフォルトの名無しさん:2012/04/26(木) 22:18:11.49
>>518 なら、ComboBox継承して、
SelectedIndexをプログラム側から変更するメソッド(SetSelectedIndexとか)作って、
その内部でその処理しつつ、
本家SelectedIndexを変更した場合、SetSelectedIndexから呼ばれたか、直接変更されたかを判定して、
イベント発行すればいんじゃね。
まあ、プログラム内のSelectedIndexを変更してる箇所は、
片っ端からSetSelectedIndexに変えなきゃならんから、手間は大して変わらないかもだけど。
>>520 そういう議論は有意義でいい
しかし初心者スレの会話はもっと低レベルなものだと思う
というより、UIがコードで変更されたかユーザー操作で変更されたか検出したい、
っていう問題意識そのものが恐らく間違ってる。
本当にそれを区別する必要があるのかどうかよく考えた方がいいと思うね
525 :
デフォルトの名無しさん:2012/04/26(木) 22:23:01.45
デリゲートの引数の名前をインテリセンスで表示する方法ありますか?
ラベルの左にアイコン置きたいんですが
ImageにBitmapを設定したら背景に表示されました
ImageAlignをMiddleLeftにしてTextの先頭に空白を数文字入れるのと
隣にPictureBoxを置くのと考えつきましたが他にもっといい方法ありますか?
呼び出し側で書くべき処理を突っ込んじゃってるだけだったり
528 :
デフォルトの名無しさん:2012/04/26(木) 22:28:13.69
>>525 すまん、どのシーンでの事を言ってるんだ?
特定のDelegateに従うハンドラであるなら、
そのハンドラを介して呼び出そうとすれば引数名は正しく表示されている様だけど、
そのことじゃあないんだよね。
static delegate void testDelegate(int test1, int test2);
static testDelegate testHandler;
static void Main(string[] args)
{
testHandler( // ←(を入力した時点でインテリセンスで引数名が表示される
}
529 :
デフォルトの名無しさん:2012/04/26(木) 22:30:59.02
>>522 >>524 ToolStripMenuItem、ComboBox、TextBoxの3つの内、
ユーザーがどれかを変えたら他全部と状況によっては内部データが変わるという処理を実装したら、
Modifiedが欲しくてたまらなくなりました
ちょっと整理してみます
ありがとうございました
531 :
デフォルトの名無しさん:2012/04/26(木) 22:32:44.90
>>526 もし、いくつものLabelをそういう風に表示したい、
という要件であるなら、そういうUserControlを作っちゃうのが正解だと思う
今は、delegateってわざわざ作らずにActionとかFuncとかの汎用デリゲートを使ったほうが良いと
思う。わざわざ宣言してるのは、ジェネリックができる以前の名残でもある。
とはいえ、最大の難点は、インテリセンスに引数名が表示されない点があげられるので、
そういう面においては、delegate宣言するのが良いのかな。
>>526 ほぼすべてのコントロールは、Paintイベントとかつかんで、独自に描画するという荒技があるが、
正直、とにかく面倒な上、何かと不安定になりやすいので諦めたほうが良い。
533 :
デフォルトの名無しさん:2012/04/26(木) 22:34:26.58
>>530 三つの挙動が1:1:1なら、バインディングも一考かも。
実装わりと面倒だけど。
534 :
526:2012/04/26(木) 22:41:41.80
535 :
デフォルトの名無しさん:2012/04/26(木) 22:41:59.59
>>528 デリゲートを受けるメソッドを利用するときで
536 :
デフォルトの名無しさん:2012/04/26(木) 22:44:05.30
537 :
デフォルトの名無しさん:2012/04/26(木) 22:46:41.55
>>535 tatic delegate void testDelegate(int test1, int test2);
static testDelegate testHandler;
private static void OnTest(testDelegate handler)
{
handler( // ← (をタイプした時点で以下略
}
OnTest(Delegate handler)って一般形でやりたいのだとしたら、
残念ながら引数を表示することはできない。
538 :
デフォルトの名無しさん:2012/04/26(木) 22:51:58.31
ソフトウェア板で頑張ってる人がいるな
539 :
デフォルトの名無しさん:2012/04/26(木) 22:58:02.88
こういうとき、コテハンの嫌われる2ちゃんねるという文化はちと辛いな。
540 :
デフォルトの名無しさん:2012/04/26(木) 23:03:29.67
541 :
デフォルトの名無しさん:2012/04/26(木) 23:06:07.84
>>540 渡されるhandlerのDelegate型(つまり、引数の数やら戻り値の型やらなんやら)が
動的に変化しうる以上、それはしょうがないかな。
逆に、そういう場合でどう表示して欲しいのかが分からないけど。
542 :
デフォルトの名無しさん:2012/04/26(木) 23:34:25.15
OnTest(の状態のインテリセンスのことを言ってるんでしょ。
コメントで頑張るしかないかもね。
543 :
デフォルトの名無しさん:2012/04/26(木) 23:37:55.34
>>542 それなら、XMLドキュメントコメントで<param name="handler">〜</param>内に書けば、
まあそれなりに見れるモンはできるな。
544 :
デフォルトの名無しさん:2012/04/26(木) 23:40:58.22
できるけど面倒臭いかとw
まあ変数名くらいそのうち表示されるようになると思うよ
F12でメタデータ開く癖をつけたほうが早い気もする。
明示的にnew testDelegate(まで打てばインテリセンスに引数と戻り値の型が表示される
547 :
デフォルトの名無しさん:2012/04/26(木) 23:55:50.77
でも確かに、eventのaddには += でTab、Tabで済ませられるけど、
普通にDelegateのインスタンス作ろうとすると、妙に面倒臭いと感じることはあるな。
オーバーロードがあるからなあ
549 :
デフォルトの名無しさん:2012/04/27(金) 00:19:10.67
オーバーロード?
イベントは+=で型確定だけど
メソッドの場合はオーバーロードのせいでOnTest(までじゃデリゲートの型が確定しない
何の話よそれ
552 :
デフォルトの名無しさん:2012/04/27(金) 00:44:19.33
何言ってんのか分からないw
553 :
デフォルトの名無しさん:2012/04/27(金) 00:57:05.20
ソフトウェア板重いな。
あっちだと、書き込もうと思っても書き込めたり書き込めなかったり。
何なんだろうな…
アナゴ鯖がなんかおかしいみたい
556 :
デフォルトの名無しさん:2012/04/27(金) 01:06:05.08
今のところまったり進行している様だが・・・
557 :
デフォルトの名無しさん:2012/04/27(金) 01:06:38.79
何だかんだ結構色んな人があちらに興味を持って見てる様だなw
protectedなメンバーをInternalsVisibleToAttributeで指定してもテストユニットからアクセスできません
どうすればいいですか
シマンテックのノートンがム板を悪質なサイト認定してるんだけどなんで?
2ちゃんが警察の捜査受けてるからか?
警告無視して入ってきたけどw
危ないサイトのURL貼られていたとか?
561 :
デフォルトの名無しさん:2012/04/27(金) 14:47:22.99
>>559 外部サイト使わないでコード直貼りするからじゃね?
スレによってはスクリプト関連扱ってるだろうからさ
562 :
デフォルトの名無しさん:2012/04/27(金) 14:51:34.14
Formにペタペタとコントロールを貼り付けると、やたらと起動が遅くなるんですが
なにかいいアイデアありませんか?
何の起動が遅くなるの?
プロジェクト開く際の話?
それとも自分で無節操にコントロール貼り付けたアプリを実行する際?
564 :
デフォルトの名無しさん:2012/04/27(金) 16:04:54.13
MEFって.NET Framework4なんだよなあ
.NET Framework2を未だに使わざるを得ない環境が残ってると、
自作ライブラリ群を安易に4向けに出来ないから困る・・・。
C#(Winforms)で作ってあるフリーのソフトで有名どころって言ったら何だろう?
企業とかが公開してるやつじゃなくて個人レベルが作ってるやつ
フリーソフトが何々で作りましたって言って公開してるわけじゃないからな
わざわざ中身調べもしないからわからん
そーだよなぁ
「これC#で作ってあるんですよ!」
って言えるような素晴らしいツールとかあれば色々とアピールにも使わせてもらおうかと思ってさ
C#というか.netアプリ探せばいーのか
それならすぐ見つかりそうだな
>>564 DIだったらゲームじゃない方のUnityとか使えば
MEFってアセンブリ跨いだプラグインの仕組みであって
ライブラリの中で使うようなもんじゃないでしょ
569 :
デフォルトの名無しさん:2012/04/27(金) 17:24:24.14
>>568 アセンブリまたいだプラグインの仕組みを使いたいな、と思ったんだよw
ライブラリ間では当然そんなことせんけども。
・自作アプリA(.NET Fx4)
・自作アプリB(.NET Fx2)
・自作ライブラリα
・自作ライブラリβ
・A <- α, β(参照)
・B <- α, β(参照)
な状態で、
自作アプリA向けにα、βは固定の参照ではなく、プラグインとして
ロードできた方が便利だな、という事態に行き当たってしまったわけだ。(プラグインγ、δ・・・の開発も割合容易だし)
α、βの、あるクラスをExportしたいなあ、と思ったはいいものの、
それやっちゃうとBからα、βを参照できないじゃん、と。
Formに1まんこコントrールを配置すると重い
作ってる途中で落ちる
Listviewやdatagridの仮想モードで代用しないと
>>560-561 そういうことかw
でも今まで週1くらい来てたけど警告など出なかったんだよな
ひろゆきの自宅に警察が入ってから2,3度に1回くらい警告が出るようになったw
最近ほぼ毎日来てるからうざったいんだよなw
警察がノートンに2chを表示させたら警告を出しなさいと命令したとかあまりにも考えすぎ
Aクラス
//Aクラスではデリゲートを定義する
public delegate void OnClick(int btn,int x, int y);
//クリックがされたら登録されたデリゲートメソッドを呼び出す
Bクラス
A.OnClick+=Click;
void Click(int BtnNum,int x,int y){}
//クリックがされたら登録されたデリゲートメソッドを呼び出す
↑この部分の書き方がわからないんですが、どのように書けばいいですか?
それには、生デリゲートではなく、イベントを使った方が良いだろう。
Aクラス
public event EventHandler<EventArgs> Click;
// イベントを発火させるとき
void Call(){
if( Click != null ) Click( this , EventArgs.Empty );
}
Bクラス(イベントの登録)
A.Click += (sender,e) => {
// クリックされたときの処理
};
>>573 おいおい、警察がノートンに2chを表示させたら警告を出しなさいと命令した
と考えてるなんてまったく書いてないぞw、コミュニケーション能力大丈夫か?w
シマンテックが2ちゃんねる関係で警察が捜査してるのを見て自主的に悪質なサイト
と判断してるのかもしれないなくらいは思ってるけどねw
警察どうこう言ったのは明らかに関連付けて考えてくださいってことだろうに何言ってんだこいつ しかも2回も警察の話題だしといて
>>569 Exportするための別のdllを作ればいい
適当に作ったクラスでプロパティエクスポートすればおk
あるUtilityクラスの関数を利用するクラスが大量にある場合
インスタンス化してから関数を使うとコストがかかる
かといって、Staticにすると大量のクラスが並列で利用した場合、タイミング的に正しい値を取得できない
こういう場合にoutを使うという感じでいいですか?
public Class Utility()
{
public bool Distance(Point mousePos, out dist)
{
dist=getDisttance();
dist!=null?true:false;
}
public static bool Distance(Point mousePos, out dist)
こうだった
インターフェース?
584 :
デフォルトの名無しさん:2012/04/27(金) 22:55:03.52
distの型を忘れてるぞ・・・
あまりコンパイラさんを怒らせない方がいい
int x=y=0;
こんな感じのができた気がするけど
どうやって書くんだっけ?
そんな書き方して何をしたいんだ
587 :
デフォルトの名無しさん:2012/04/27(金) 23:51:20.78
Controlから派生させてるクラス内でダブルバッファリングしているのですが、
その際のオフスクリーンのGraphicsオブジェクトの取得の仕方を教えてください。
何がしたいかなんて関係ないだろ
おまえは、なにを言っているんだ
>>588 言い方が悪かった
その程度の省略のために書き方に拘ってる時間が無駄じゃないかということだ
無駄かどうかは俺が判断することだし
よく使う省略形だから知りたいんだよ
int x,y = 0;
質問しておきながらアホとか抜かす常識知らずが居るとは、お里が知れるわw
質問しているのに、余計なおせっかいする奴がいるんだから、こっちだってイラついてくるわ
目的は?無駄じゃないですかぁ?
答えられないからって、いちいちどうでもいいレスしてくんじゃねーよカス
>>593 線引くだけならそんなことしなくてもできるぞ
あーでもあれかLineShapeのようにIDEからいじれないな
それでもよければできるけど
質問→キレる
って流れが多過ぎない?これ全部同じやつだよな
質問してその回答が気に食わないなら、自分でググるなり、調べるなりしろよ。
>>593 Visual Basic Power Packsのインストールが必要だったのはVS2008まで。
2010からは最初から入ってると思うけどな
Expessは使ったことないけど恐らく事情は同じとおもうけど
>>601 しながら質問してんだよカスが
質問している間、正座してぼーっとしてるとでも思ってんのかぁ?
あの程度の質問ぐらい答えろよバカ
バカは、どっちだよwww
自分であの程度の質問というなら、自分で解決すれば良いだろw
解決できない、真っ当な答えを得られない→キレるぐらいなら
諦めろよ。バカじゃないのか。
>>602 ExpressだとVB.netについてくるんじゃないの?
VC#のみだと見あたらないな
>>603 アレレー?あの程度のこともわかんないんですかぁ〜?
だから質問しててキレるとか何様なんだと言ってんだよ。
その程度の常識もわからないのかよ。
>>607 答えられなかったカスが言えることじゃないな
>>608 質問者に対して、アホな質問をするのが悪い
610 :
デフォルトの名無しさん:2012/04/28(土) 00:43:47.22
DataGridViewに対して、AutoGenerateされた列の幅を、いちいち調整するのって何かなあ。
せっかくバインドしてるんだからAutoGenerateしてほしい、とBrowsableAttribute、TypeConverterを使って、
列の順番と列の有無だけは自動的に反映されるようにしたけども、列の幅調整(AutoFit、Fillなど)を
自動的に反映する方法だけは見付けられんかった。
DataGridView継承してComponent自作する以外に方法あるんかね。
// Hoge.Desginer.cs
BindingSource source;
DataGridView view;
// 略
view.DataSource = source;
// 表示するデータクラス
[TypeConverter(typeof(HogeDataConverter))]
class HogeData {
// 非表示のプロパティ
[Browsable(false)]
public bool IsValid { get; set; }
}
class HogeDataConverter : TypeConverter {
public override PropertyDescriptorCollection GetProperties(/* 略 */ ) {
/* 表示したい順でプロパティを返す */
}
public override bool GetPropertiesSupported(/* 略 */) { return true; }
}
>>609 たとえHello worldはどうやるんですかって質問でもキレるような奴には答えねーよ
後ろにスレを写した土下座写真でも撮れば答えるかどうか考えてやってもいいが
>>593です
みなさん、レスありがとうございます
using Microsoft.VisualBasic.PowerPacks;
にしても2010じゃ使えねーよカスって叱られるみたいなので
別の方法を考えてみます
>>611 キレるようなことをいうお前が悪いんだし
そもそもお前が答えられるようなレベルじゃない
何故キレる自分がおかしいと言う考えにならないんだ?
615 :
デフォルトの名無しさん:2012/04/28(土) 00:56:00.68
推奨NGWord
必死だな
ハゲ
邪魔
いい加減にしろ
消えてくれ
厨
馬鹿
自演
黙ってろ
低能
カス
荒らし
下らないレス
罵倒
お前
何言ってんだこいつ
コミュニケーション能力大丈夫か
何様
バカ
キレる
アホ
おまえ
キレるようなことを言うほうが悪いから
>>590 >>586 この発言の正当性を説明してみろよ
ここは雑談スレじゃないんだよ
なんでそんな質問するのぉ?ってアホかと
>>615 作業終わって今来た
「コミュニケーション能力大丈夫か」なんて余計なこと言ってキレさせてしまって
悪かった、以後気をつけるよ
621 :
デフォルトの名無しさん:2012/04/28(土) 01:47:14.29
端から見てると、単に面白がって煽りあってるだけだな。
622 :
デフォルトの名無しさん:2012/04/28(土) 02:04:29.55
C#で作成したアプリってVB6で作成したアプリよりも遅いですか?
623 :
デフォルトの名無しさん:2012/04/28(土) 02:09:45.70
作り方による
624 :
デフォルトの名無しさん:2012/04/28(土) 02:15:59.45
64bitが標準になった今どきのPCだと32bitでしか作れないVB6はだいぶ不利だな。
VBなのに64bitで作らないといけない今どきのアプリは別にないけどな。
そんなに速度が気になるならC++でもやってれば良いのに。
628 :
デフォルトの名無しさん:2012/04/28(土) 02:37:23.61
適切な時に適切な開発がされていればそれでいい。
「○○言語は速いですか?」「○○言語は××言語より優れていますか?」
と聞かれても、場合による、としか言わない。言語選択の価値基準なんて多岐すぎるもの。
JavaとC#とCOBOLとMonboDBとMySQLとOracleとVB6とPerlと・・・って
山のように組み合わせるシステムも趣味グラマーで関わったけど、
やっぱりそれぞれそれなりに理由があって選択されてたし。
>>592 明示的に書かなくても0が入っているだろ
明示的に書いたほうが保守性が高い。
なるべく書いたほうがいいよ。
631 :
デフォルトの名無しさん:2012/04/28(土) 03:34:34.41
msオーダーでの動作が必要とされるプログラムを書いたことがないんだろうなw
リアルタイムOSでないWindowsでmsオーダーとかギャグで言ってるのか。
633 :
デフォルトの名無しさん:2012/04/28(土) 03:46:13.78
遅い遅くないっていうより、ソフト丸見えってのがもっとも厄介だろ
特に、お金をもらおうソフトは絶対無理だろうな
コードのこと言ってんだろうが、他人が書いたコードなんて読んでたらハゲるぞ。
635 :
デフォルトの名無しさん:2012/04/28(土) 04:07:23.42
まだ丸見えとか気にしてる人いたんだ
例えば今からWindows用の2chブラウザーみたいな物を作ろうと思ってるとして
C#の選択は良くないですか?
今読んでる解説書はGUIにWPFというのを使っていて
WindowsForm?というのでは無いみたいです。
C++でWindowsのGUI開発の経験は10年くらい前にありますが
ブランクがあるのでメモリー管理が楽に見えるC#を使いたいと思ってます。
C#の方が楽、それとWPFにはWebBrowserにバグがある
自前でレス表示するならWPFでもよい
>>636 良いか悪いかは、最終的に本人の判断によるもの。
C++と比べれば、C#は、断然楽。
速度的にも体感としては、そんなに変わらない。
これは、作り方にもよる。
速度に我慢できるならc#でもよかろう。
c#で作られた2chブラウザを一度触ってみて耐えれるかどうか試すといい。
640 :
デフォルトの名無しさん:2012/04/28(土) 04:47:10.90
もっさり感w
>637-639
ありがとうございました。
とりあえずC#の勉強を続けようと思います。
>641
おーありがとうございます。知らないリンクが沢山有りました。
全部ブックマックしました。
644 :
デフォルトの名無しさん:2012/04/28(土) 06:48:58.65
業務系アプリでC#使ってる企業って多いんかね?
時代の流れがそうなら、C++きっぱり捨てて本気でそっちへ移行しようかな。
Javaは使う気ねえ。
Winformアプリの作成が出来ないVS11は論外
だからVS2010のC#のEE版って何年後までMSから下戴できるのか?
そう考えると、エクセルVBAが主流だな
WPFが普及しないからってWinFormを潰しにきたか。
その前にC++潰せよ
Windowsやc#、.netはc++で書かれてるんじゃねーの?
webbrowserはとりあえずHTML5に対応してくれないと話しにならん
あんまりどうでもいい話すると荒らすよ
C++は、なんだかんだで潰れないだろ。
それにしても、Formは、とりあえず残しておいて貰いたい。
それと、VBAは、さすがにオワコンだろ
>>648 .NETは実行エンジンはC++だけどライブラリはC#で書かれてるよ
C#のコンパイラはC#で置き換えるプロジェクトが進行中
VSもどんどんC#に移行してるし
だからどんどんもっさりしてきているのか。
いつになったらWin32APIもなくなるの?
旧UIのWin32APIは更新されないだろうけど
API自体は今も増えてるぞ
無くなる方向性では全くないね
WinAPIはC#から使えるの?
>>654 vs2010はそもそもWPFでできてますし
重い代わりに痛IDEできますよ
OSがネイティブで書かれてる限り無くならんだろ
Androidとかだって結局ネイティブAPIを作った上でJavaでラップしてるわけで、
正式に文書化されてるかどうかの違い
660 :
デフォルトの名無しさん:2012/04/28(土) 10:10:34.69
そのうちCLRを解釈するプロセッサができたりしてw
ARMにJavaプロセッサあったなー
Frameworkがバージョンアップするたびにbiosアップデートするのか?
663 :
デフォルトの名無しさん:2012/04/28(土) 10:14:44.55
その昔クルーソーなんてプロセッサがあったけどあれって
早い話ソフトウェアで実現したx86デコーダーだからなあ
今のインテルやAMDのCPUはハードウェアで実現したx86デコーダーだし
そういう意味じゃあクルーソーのコンセプトで直接CLRを解釈するものを作ればいいことになるw
昔、JAVAマシンってのがあってな
このスレで出たP/Invokeで使えない(あるいは一部機能が使えない)Win32APIって
SetWindowsHookExくらいしか知らない
SetWindowsHookExはよく知られているように、グローバルフックのうち、ローレベルフックでないものが使用できない
そんなに昔でもないだろ
でもあれだな直接CLRを解釈する仕組を用意するとなると
直接APIを呼べる仕組は排除しないと駄目だな
なるべくコアなところしか触れないようにしないと
ならライブラリをもっと拡充してもらわないと。
CLR専用のプロセッサを別に積めばいいな
アクティブなウィンドウすら取得できないしな
他のソフトにメッセージも送れない
専用のものを開発しようが、
Intel様の莫大な投資による強引な速度アップの前には普及しようがない。
まあその辺はわざとやってる気がする
その程度のライブラリに大したコストかからんはずでしょ
でもやらないんだから
673 :
デフォルトの名無しさん:2012/04/28(土) 10:27:53.44
>>671 電力効率と生産性を考えるとCLRを直接解釈するプロセッサは
かなりいいと思うよw
674 :
デフォルトの名無しさん:2012/04/28(土) 10:28:16.41
>>672 うん
出しちゃうとたぶんいろいろまずいはずw
WPFだとアイコン化も無理
しかしWinRTは糞COMベースでネイティブをより高レベルまで持ってくるという
全くの逆方向に進んでいるという
まあ大失敗するだろうけど
677 :
デフォルトの名無しさん:2012/04/28(土) 10:52:36.65
テキストのチカチカしてるIみたいなのの最初の位置って決めれますか?
キャレットだっけ
どのコントロールでの話?
679 :
デフォルトの名無しさん:2012/04/28(土) 11:04:05.83
ふつうのテキストボックスです!
681 :
デフォルトの名無しさん:2012/04/28(土) 12:19:17.87
テキストエディタで行番号ってどうやってつけてるの?
Linesコレクションで1行、1行 先頭に 行番号をつけてるの?
↑
アフォ
そんなわけねーだろw
どのテキストエディタの話してるかしらんけどそういうことやりたい場合は
出来合いのコントロール使ってないじゃないの?
.NETが世に出てから10年くらい経つと思うけど
店頭に並んでるソフトで、.NET Frameworkがインストールされてることを
謳ってるソフトはないですね
C#にしろ、VB.NETにしろどのようなところで使われてるの?
685 :
デフォルトの名無しさん:2012/04/28(土) 12:38:50.53
行番号つけたい場合はPanelの中にtextboxを2個並べて
BorderStyleを調整すればそれっぽいことはできるな
行番号が必要ない時は行番号用のtextboxを非表示にしておけばいいし
>>684 鳩時計みたいに同じことほざいてんじゃねーよマヌケ
エディタ作るなら正直CかC++でScintillaでも使ってた方がいい
WinFormsは任意のウィンドクラスからControlが作れないから
世の中のWindowClassを指定するタイプのコントロールが全く使えない役立たず
あ、WPFでも同じですね
そういう意味では.NET自体が役に立たないね
一応全く使えないことはないだろ
UserControlのWS_CHILDとかにして置いちまえばいいんだよ
使い勝手が悪いことは全く否定できないけど
オーナードローをのっとれればレンダリングの時に差し込めばいいんだけどなあ
winformのtextboxはなにかと使いにくい
.NETは、あくまで簡単にってのがあるから、高度なことやろうとすると
途端に詰むことが多い。Win32APIレベルで弄れなくもないが面倒極まりない。
Microsoft.Win32ネームスペース下にAPI等を公開してくれればよかった
とどのつまり、実用的なアプリの作成にはC#基.NETは向かないってこと?
何をどう作るかにもよるだろ。
細部まできめ細かく制御したいなら向かないだろう。
ってことは、お金を貰えるレベルは無理ってことだな
金もらえるレベルかどうかは、その人の腕に掛かってる。
こんなところで.NET批判してる暇があったら勝手にC++でもアセンブラでもやってればいい。
アプリで金取るのって一般のイメージとは違ってほとんど業務アプリだからな
UIなんてクソみたいな単純作業
もう一度言う .NETは遅い
わかったから、いちいち批判してんじゃねぇよ。
すでにC#をやるという選択をした人が集まるスレなのに
技術的な面で批判できるだけの頭がないから、批判がワンパターンなんだよな
店に並んでるパッケージソフトやフリーウェアやシェアウェアだけが
アプリケーションだと思い込んでるのも痛い
>>695 データベースからデータを拾って、操作してウィンドウに一覧表示するだけとかの
データベースプログラムとかなら.NETで作ってもそれなりのレベルのものは作れる
し、簡単に作れるから.NETのほうがいいと思うが
706 :
デフォルトの名無しさん:2012/04/28(土) 15:09:09.33
業務アプリのお仕事はほとんどVB.netだわ
FormにWM_SIZINGに対応するイベントがあればいいのにな
ユーザーがサイズ変更中にウィンドウの縦横比を一定に保たせたいときに
Wndprocをオーバーライドしないといけないから面倒
SizeChangedで縦横比一定にセットするようにしたら普通にちゃんとなった記憶があるけど
>>704 っあ、そっかそうだね、
それ以外にもあるけど、所詮その井戸の中でしか使えないんですねw
>>709 だったら使わなければいいだろ。
使ってる奴が居たら迷惑なのか?
いつもの馬鹿のあからさまな煽りに反応するな 口調で分かるだろ
ム板でコードも書かずに意味のない批判だけしてる最底辺の相手なんてしなくていいよ。
技術がないから低レベルな煽りしか出来ないんだと哂って眺めてればいい。
>>712 自分を棚上げするなって何度言えばわかるんだよ馬鹿が。
相手しなくていいよ。
そういうお前がやってることは何ですか。
荒らし自体よりこういう馬鹿の方により腹が立つよ本当。
テメエを特別な存在だとでも思ってやがるのか
>>708 確かSizeChangedでやったらサイズ変更ドラッグ中に縦横比を合わせたウィンドウ
の画像とユーザーのドラックに合わせたウィンドウの画像が交互に表示されて
見た目がカオスになったので使えないと思ったけど・・・
ウィンドウズがウィンドウの描画に使ってるRect構造体に直接縦横比を合わせた
サイズを設定するときれいにドラッグでのサイズ変更ができるからサイズ変更の
イベントでそのRect構造体とやり取りできるオブジェクトが取得できればいいのだが
715 :
デフォルトの名無しさん:2012/04/28(土) 15:55:07.13
あほなアンチが沸くのはいつものことだなw
716 :
デフォルトの名無しさん:2012/04/28(土) 15:56:46.61
>>714 計算後Clientsizeに突っ込んだらどう?
内だと、C#はDRの時にプロトタイプを見せるときだけにしか使われないな
企業で使おうとすると、「遅い」「ソースが見放題」ってのはどうしても敬遠される
まぁ、所詮はお遊び程度しかつかえない
ってのは、的を射てる
>>716 そうしたら
>>714に書いたように縦横比を合わせたウィンドウの画像とユーザー
のドラックに合わせたウィンドウの画像が交互に表示されて見た目がカオス状態
結局はドラッグによるサイズ変更中にきれいに縦横比を保つにはウィンドウズ
がウィンドウの描画に使ってるRect構造体に直接縦横比を合わせたサイズを
設定するしかないみたい
>>717 >ソースが見放題
隠すに値するような高度な技術でも盛り込まれてるソースを書いてるのか?
>>720 美容院にいって、顔やスタイルや髪質なども違うのに「○○の髪型にして」と
注文する人もいんじゃん
722 :
デフォルトの名無しさん:2012/04/28(土) 16:18:59.01
何度も出てるけど、"見せたくない情報はクライアントに渡すな"で終了。
そもそも誰も読まないだろうけどカジュアルハック防ぐのならフリーソフトの難読化で十分効果がある。
>>721 難読化されてるのを元にして作るぐらいなら、UIだけ真似て新規開発する方がよっぽど楽で早い。
そもそもネイティブで作ったって本気で読まれたらどうしようもない。
認証回避する程度ならHowTo本の応用程度の知識でも出来ちゃうからな。
高度に対策したって市販品のクラックから明らかなように、終わりないいたちごっこで正直どうしようもない。
724 :
デフォルトの名無しさん:2012/04/28(土) 16:24:10.34
自宅警備会社なんかは「遅い」「ソースが見放題」に敏感らしい
みなさん、擁護に必死ですねw
726 :
デフォルトの名無しさん:2012/04/28(土) 16:25:09.19
すまんが、C#とそれ以外の言語比較についてはスレ違いなのでよそでやってくれないか。
C#が重かろうと重くなかろうと、このスレでやることは変わらん。
727 :
デフォルトの名無しさん:2012/04/28(土) 16:28:23.82
728 :
デフォルトの名無しさん:2012/04/28(土) 16:28:30.49
まあC#で楽できるところをC++でやろうとは思わんなw
爆釣ですねえ
730 :
デフォルトの名無しさん:2012/04/28(土) 16:30:26.91
しかし、なんでこのスレは定期的にお花畑脳が湧くかな。
ある種、スレの勢いの保守役代わりと思って半分諦めてるけど。
IDがないからですよ(迫真
732 :
デフォルトの名無しさん:2012/04/28(土) 16:31:57.34
お花畑脳の存在自体はIDだけじゃどうにもならんでしょう。
自演を防ぐ手立て、としては有効だろうけど。
C#のどこが楽なのか・・・
にしても、この手の話題はほんとうに食いつくよな
それだけ、センシティブな問題なんだろうねw
735 :
デフォルトの名無しさん:2012/04/28(土) 16:33:39.60
楽な人にとっては楽。
そうでない人にとっては苦痛。
それ以上でも以下でもない。
プライベートでプログラミングやる人なら、C#を使わなければいい。
仕事で使わされているなら、こんなところで文句を言わず、上長・客先にプレゼンしろ。
736 :
デフォルトの名無しさん:2012/04/28(土) 16:34:40.74
別にお花畑が沸いてもいいじゃん。
叩くのも無視するのも自由だよ。
今日もふらっとは勢い1位です。
2位の実に4倍にもおよぶ"圧・倒・的"な"存・在・感"
伸びれば伸びるほど有象無象が集まってくるのです。
1.x時代の閑古鳥が鳴いてた時期よりは、いいんじゃね。
>>707 Sizingイベントを追加したFormクラスを継承したクラスを作っとけばいいよ。
そうしとけば、その後に同じようにドラッグサイジングで縦横比設定するときは、
簡単に出来るようになるから。
>>738 俺は、標準のコントロールやフォームそのまま使わずに一旦継承して使ってる。
そうしておけば、拡張するのも一括でできるし、変更も一括でできる。
>>739 だな。継承を利用して拡張しておけばあとが楽だからなあ。
741 :
デフォルトの名無しさん:2012/04/28(土) 17:11:07.84
Formはあんまりやらんかな。MutexFormなる二重起動を防止、
既出プロセスへコマンドラインの引き渡しだけするフォームだけ作って、使い回してるけど。
DataGridViewは標準のそれを使わなくなって久しいな。
拡張、拡張を繰り返してもう手放せない
Formの使いにとってWPFへの移行を躊躇う理由の一つが
今まで散々と拡張してきたコントロールやフォームの資産が使えないことだ。
まあ、WPFからフォームのコントロールを使うということもできなくもないけどさ。
WPFは設計思想が違うっていうか根本から全然理解できないからなあ
DependencyObjectとかあんな不恰好なものにする必要が何故あるのかさっぱり理解できない
>>742 拡張なんてするやつほどWPF向いているだろ
俺はデフォのまま使っている
そんな俺が一番Winformに適合している
>>744 まあ、それもわかるのだが、また設計思想とか覚え直して
いろいろプロパティなど仕組みなど調べ直して・・・作り直す
なんてことを考え出すと、もういいやとw
746 :
デフォルトの名無しさん:2012/04/28(土) 17:32:31.34
いかんなあ、と思いつつ、ホントWPFへの一歩を踏み出せない。
そうこうしている間にも、WinFormsにどんどんどっぷりと・・・悪循環だ・・・。
WPFは廃棄してアンダース・ヘルスバーグさん監修で作りなおして欲しい
>>738-740 そう言われればそうだな、今までコントロールは継承して拡張してたのに
なぜかフォームでそういう発想してなかったわ
助言ありがとう、今度からそうするわ
>>745 俺みたいにデフォでWinForm使っている奴ですら
今回はWPFで作ろうって、気分でやっちゃってるぐらい簡単だぞ
人に見せるときはWPFで決まりだな
特に難しいコードかかなくても、どこかから拾ってきた
オシャレなスタイルを読みこませるだけで、オシャレGUIの出来上がり
プロパティがなんのこと言っているかわからないけど
テンプレートとスニペットを使えば、WPF特有の部分に関わるようなことなんてほとんどないぞ
俺はコードの中でコントロール追加とか削除とかするからXAMLも全く使えないしWPFは意味不明すぎ
誰が何を考えてあんな風にしたのやら
思考回路が全く異なる人であることは確かだな
いい悪いは別として
何より、俺のぼろPCでは、WPFは、デザイナがとにかく重い><
753 :
デフォルトの名無しさん:2012/04/28(土) 17:46:30.42
既に作ったアプリをWPFで作り直してみるのが近道かなあ。
これまでも内部のロジックと画面はそれなりに切り離してきたし、
顔だけ帰るのはそんなに難しくない・・・と信じたいが・・・。
>>753 俺もそう思ってるけど
まだWPFに触ったことないw
実際難しくないって、WPFの方がGUI作成は楽
Winformでコントロールを配置するほうが面倒だよ
例えばボタンをFillで配置するときも
WFならボタンドロップしてからプロパティをFillに設定とかやるだろ?
でもWPFなら<Button>ボタン</Button> これだけでおk
デザイナが糞重いのは確かだな
俺も人に見せないときは使わない
756 :
デフォルトの名無しさん:2012/04/28(土) 17:54:25.16
>>753 他は兎も角ListViewとかDataGridが糞重たいのが我慢できたら
>>753 まずテンプレートを入手すべきだ
M$が作った初心者向けの簡単なMVVM用のがある
それ使えば、WPFに関わる部分はコントロールの作成と
コマンドの作成だけ、あとは、WFと一緒
>>755 おまえさんの言う、人に見せるUIとはどんなものだ
みせてみろよ
みせれるものならなw
いちいち煽るなよ
760 :
デフォルトの名無しさん:2012/04/28(土) 18:37:06.80
ここの奴ら、煽ると簡単に激高するから楽しいぜ
喧嘩したいならVIPかニュー速か夜の繁華街にいけ
762 :
デフォルトの名無しさん:2012/04/28(土) 18:41:03.74
>>761 断るwwここだと煽りにレスする奴多くて楽しいからwwww
喧嘩じゃなくておちょくって遊びたいだけだよ
勘違いしないでくれたまえ
人に見せるのはWPFで作るなんて、イキってガキは
結局、逃げちゃったの?hw
765 :
デフォルトの名無しさん:2012/04/28(土) 18:50:19.37
WPFの人気に嫉妬www
766 :
デフォルトの名無しさん:2012/04/28(土) 18:50:55.30
WinformとWPFはスレ分けしてもいいくらい別物だと思う
768 :
デフォルトの名無しさん:2012/04/28(土) 18:55:02.83
好きな方使えばいいだけだしな
GWなのに寂しい人
770 :
デフォルトの名無しさん:2012/04/28(土) 18:56:29.83
>>758 悪行は全部自分に帰ってくるからね
覚悟しておいたほうがいいよ
これからの人生ね
人に見せれるものをWPFで作ってたんじゃないの?w
煽り馬鹿は絶対1つもまともに人に見せられるもの作ったことないよw
>>773 はいありませんよ
あたなはあるのですか?
あるなら見せてください。w
見せた途端どんなに有名なツールでも粘着アンチ活動する予感
>>774 別にコントロールの配置は特別なものじゃないよ
ただコントロールのデザインがフリーのおしゃれなデザインのスタイルを使ったというだけだよ
それだけでもパソコンに疎い友人達は喜んでた
>>776 まあ、最近は、UXだのなんだのスマホのUIだのなんだの
かっこいい系のおしゃれなものが好まれてるからな。
それが当たり前な時代だから
機能が豊富なものより見た目がシンプルな方がウケがいい
ノートン先生を見てるともっとシンプルでいいから軽くしてくれと思ってしまう。
"画面のデザイン"と"動作が重い"とが関係あるかどうかはわからないけど。
780 :
デフォルトの名無しさん:2012/04/28(土) 20:14:52.13
アイコンとかボタンに凝りだして懲りた。かっこいいってイケメンに限る。
なんか、こういうのに最適なお絵かきソフトでお勧め無いかい?
GDI+でしこしこ描くだろ
782 :
デフォルトの名無しさん:2012/04/28(土) 20:21:50.91
一時期凝って、ある日検索して「なんだ、自作より良いアイコンあるじゃん」となり、
しかしある時また欲しいものが無くて、いつの間にかまた凝っていて・・・という無限ループ。
海外のフリーのアイコンセットとか探したら結構、良さそうなものがあるが
逆に多すぎて目的のアイコンが探せない罠にはまったなw
ちょっとー聞いてくださいよー
よくstringで改行したい時は「\n」っていれるじゃないですか
string a="aaa\nbbb\nccc";
って
で、今ファイルをbyte[]形式で開いてエンコードしてテキストボックスに代入したんです
そのテキストボックスのデータを下のように置換したら
改行が無効になったんです
Text = Text.Replace("\r\n", "\n");
Text = Text.Replace("\r", "\n");
環境はwinでwinの改行が「\r\n」ってのは調べて分かっているんですが
プログラミングでstringに挿入するときは「\n」でよくって
テキストボックスのデータを「\n」に置換したら無効になった理由が分かりません
教えてくだされ
複数行処理だから
むしろなぜ無効にならないと思うんだろ
string a="aaa\nbbb\nccc";
ってやって
Textbox.Text=string;
ってやると改行されるから混乱しております
>プログラミングでstringに挿入するときは「\n」でよくって
環境に依存しないときはそれでいいけど
環境に依存するときはEnvironment.NewLine使えってこと
”プログラミングに使うとき”\nにするわけじゃない
用途次第
環境依存しないようにEnvironment.NewLine使えという言うくせに
コードを保存するときの改行コードはデフォ以外毎回指定してやらないとダメな糞仕様w
なるほど
TextMode が MultiLine のものをいじるときは\nじゃ駄目だと理解しておきます
みなさん、ありがとうございました
デザイン系は個人の好みが激しいからな
794 :
デフォルトの名無しさん:2012/04/28(土) 22:26:44.78
水を指すようだけど、そういうのって権利関係が不透明だから注意した方がいいかもよ。
俺は怖くて使えません
フリー、著作権放棄とでも書いてなければ
コピーした時点でアウトだな
797 :
デフォルトの名無しさん:2012/04/28(土) 22:46:51.66
Creative Commonsなり、従うべきものに従えば良いじゃない
ライセンス違反したら自分の作ったツール、作者自身が
こいつは駄目だなと思われて全否定されるから公開するときは違反だけはするなよ
おまけに粘着アンチも来るだろうし
>>797 そうなんだけど、頒布してる奴が本当に権利者かどうか実は分からないからさ
エロゲの画像貼りまくっても逮捕されないんだから
アイコン画像ぐらい平気だろ
人気無いツールならきっと大丈夫
そんなことは、配布できるようなソフトをかけるようになってから心配しろw
商用なら別にフリーで個人が配布するソフトだと、そこまで気にすることもない。
わざわざ向こうの国の人が日本人相手に訴えて来ることなんて、ほぼ皆無。
一応、ライセンスの表記だけ確認しておけば良い。
あの〜
アイコンが欲しいんじゃなくて
作画ソフトのお勧めがほしいんです><;
IllustratorとPhotoshopに決まってんだろ
完全に好みだからソフトウェア板で聞いてみるといい
GIMPの方がいいぞ
809 :
デフォルトの名無しさん:2012/04/29(日) 00:29:41.43
完全に好みだから、ry
作画ソフトくらい自分で作れば完全に自分好みのソフトになるのに
811 :
デフォルトの名無しさん:2012/04/29(日) 00:41:21.14
その通りだが、探しもせずに作るもんでもないだろう。
ecoのみぃ
血ぃ吸うたろかぁ