ふらっとVisual C#,C♯,C#(初心者用) Part107
1 :
デフォルトの名無しさん :
2013/09/25(水) 20:02:22.30
なんかideone使いにくくなってね? てか、run code無効にできなくね?
だってcodepad.orgはC#使えないんだもん
前もbootstrap使ってたっけ 今は使ってるって一目で分かるな
前はチェックボックスむき出しだったから使ってないんじゃない。 量産型オサレになりましたね。
コンパイルエラーが出るようになってむしろどこがおかしいのかまで分かるようになったから ある意味コンパイラを持ってない人には親切かも ついでに5桁のIDが6桁に増やされたな
SingletonのクラスをアプリのSettingデータとしてもってますが、 これを、設定画面でBindingしたいのですか、DataContextに普通にいれても無理でした。 どうやればいいでしょうか?
9 :
デフォルトの名無しさん :2013/09/26(木) 02:56:36.52
みなさん質問ですがWPFのデータ接続ってなにつかってますか?データセット?エンティティ?それともLINQ? 必死こいてエンティティでのバインド覚えようと思ってるけどどうもうまくいかなくて
>>7 EnumerateFiles使うなっていってんだろ
980 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/25(水) 12:24:09.75
>Directory.EnumerateFiles
これ中、再帰だろ、ボケ。
995 名前:デフォルトの名無しさん[] 投稿日:2013/09/25(水) 12:49:14.90
>>992 EnumerateFiles で見つかるのは名前だけだろ
そんな単純なもの以外に対応させるためには使えない
EnumerateFiles 使わずに書いてみてよ
FindFirstFile使え
http://ideone.com/opyS8O
前スレの糞みたいな流れを持ち込むんじゃねーよこの糞が 死ね
糞スレに誘導したのに、勝手にスレ立てんな、糞ども。
14 :
デフォルトの名無しさん :2013/09/26(木) 18:35:58.41
同じクラスあり過ぎてコンパイラが怒ってる public Form1() { Bitmap ... ... ... this.FormClosing += ... ←上のにまとめてここをコピー new FormClos... } 上のForm1の }から 下の class Form1 : Form()までの行を消しちゃえ
書き直すわ Form1とpublic Form1()が2つずつあるよな? これがいけない public Form1()の閉じ括弧 } ←これ から public Form1()の始まり括弧 { までを選択してバックスペースキー使って消したらいけるはず
17 :
デフォルトの名無しさん :2013/09/26(木) 19:06:18.13
ClosingイベントやLoadイベントのハンドラーが登録されていない
19 :
デフォルトの名無しさん :2013/09/26(木) 19:51:54.76
色んな所で検索してイベントのハンドラーを調べてみて 色々実行してみたんですが いまいち解決法が見つかりませんでした・・・ よろしければ、具体的な方法を教えていただけますか?
根本的にForm1じゃなくてFormのインスタンスnewしてるじゃないか そりゃそうだよ
>>18 適当なこと言ってんじゃねーぞコラ?
>>19 Mainメソッドの
>Form form = new Form();
を
Form1 form = new Form1();
に修正してみそ
オブジェクトがnullだった時のメソッド呼び出しをエラーにしない方法ないですか oppai.Momu(); この呼び出しがoppaiがnullの時でも例外を発生せずに単に無視して欲しい。
エラーにしない方法はないです
>>22 oppaiを何かのクラスでラップしてnullを返さないようにするとか
class Hoge
{
public Oppai Oppai
{
get
{
if( oppai == null )
{
oppain = new Ginyu();
}
return oppai;
}
}
}
class Ginyu : Oppai
{...}
26 :
デフォルトの名無しさん :2013/09/26(木) 21:07:31.58
27 :
デフォルトの名無しさん :2013/09/26(木) 21:09:05.98
>>25 if(Oppai != null)
{
}
で囲む以上のコードを書いたら意味ないだろ
28 :
8 :2013/09/26(木) 21:13:36.61
>>9 さんありがとう、Bindingうまくいくようになりました。
原因は、TextBoxに値を表示してたのですが、
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged
の追加で理想なうごきになりました。
29 :
22 :2013/09/26(木) 21:21:44.02
>>22-25 それでは駄目です
oppai.GetChikubi().Nameru().MomuMomu();
みたいに関数呼び出しがチェーンします、そのうちの一部がnullでもエラーにならないようにしたいのです
一行で。
お帰りはあちら
間違った人は間違った方向に努力する典型と言わざるを得ない
駄目なのはお前だと
Objective-Cでもやれば
System::Windows::Forms::Show(NULL,L"C++/CLIも忘れんな",L"Win32APITest",MB_OK);
>>29 public static class Ext {
public static TOutput Do<TInput, TOutput>(this TInput obj, Func<TOutput> method) {
return obj == null ? default(TOutput) : method();
}
}
oppai.Do(GetChikubi).Do(Nameru).Do(Momu);
ぐらいで我慢しとけ
これは難しい暗号だ。
中途半端に代替案提示してやろうとするから食い下がるんだよ 有無を言わさず打ち砕け
>オブジェクトがnullだった時のメソッド呼び出しをエラーにしない方法 ← ここが間違いの根本 コンポジションしたメソッドチェーン対応クラスでも書くのが正解
39 :
35 :2013/09/26(木) 21:54:19.91
色々問題があったけどまあいいや
言語機能に付いてないんだから諦めろとしか どうしても自分でやりたいなら リフレクションで全てモックオブジェクト返すようなNullableでも作ればいい
Roslynでも使えばいいんじゃない? nullチェックの数千倍敷居が高いけど
42 :
22 :2013/09/26(木) 22:09:29.11
オブジェクト指向の関数の呼び出しはthisポインターの省略に過ぎないわけで 関数には言ったら if (this == null){ return; } と書ければ一発で解決することがなぜできない
ようするにnullの時には、何もしない、という処理をしたいわけだ。 だから、>26が書いてるようにNullオブジェクトパターンで、 そもそものnullを、何もしない処理を実装したNullオブジェクトに置き換えればいいだけ。 Strem.Nullフィールドもそのパターンだな。
>>22 無理じゃねーの?
.NETがメソッドテーブルか型情報持ってるかは知らんけど、
抽象メソッドinvokeすんのに何かしらのポインタもってないとダメだろ
そんなこんなでnull大丈夫なんて前提作れないだろ
インスタンスないから関数にも入れないじゃん
解説すると。 Stream stream = null; だと、 stream.ReadByte(); で例外になる訳だ。 これをNullオブジェクトパターンにすると、 Stream stream = Stream.Null; stream.ReadByte(); 値は読めないが、例外で落ちることは無い。
そんなこと誰でも知ってるが、それは何もしないオブジェクトをNull Objectと 呼んでいるだけのこと。 連想ゲームじゃねえんだから、名前にnullが付いてるからってnullと関係ないから。 試したわけじゃないけど、使うメソッド全てをあえて拡張メソッドで実装すれば 質問者の希望するような動作が可能かも知れないが、たとえ可能でもそんなアホなことするなと。 間違った方向に労力を投入するのはただの馬鹿
>>45 C++は変態言語の名に相応しく、呼び出せるんだよなーこれが
もちろんthisにアクセスしたらアクセス違反だが
ScalaのOptionがほしいんだろ? 型情報読み取って、その場で動的に作ればいい どう見ても実用的じゃないが
>>48 そんな事してまで呼び出してどうするんだと
どうせvirtualじゃ無い物限定だろ
>>48 変態もクソもチェックしてないだけだぜ
ILならnullのインスタンスメソッドは呼べるし呼べるのが自然だが、
わざとチェック入れて例外を発生させてる
>>47 別に名前なんてどうでもいいよ。
この質問者の目的をシンプルに解決する方法として、
Nullオブジェクトパターンと呼ばれている方法がいいんじゃないか、
というだけ。
シンプルに解決できないだろ。
>>47 が言うように実装全部を変更する羽目になる。
55 :
デフォルトの名無しさん :2013/09/26(木) 23:08:58.83
>>21 おおおお!
原因はいまいち分かりませんができました!
ありがとうございます!
頑張ってソフトウェア完成させます!
56 :
22 :2013/09/26(木) 23:14:07.39
>>53 くだらない事でクラス数を増やしたくないのでNullオブジェクトパターンは無理です
ただ単にnullのオブジェクトの関数を呼び出して何もしたくないだけなんですがね
はぁ、何故こんな簡単なことが書けないんだC#は
C#たんはダメな子なんです 我慢してください
F#でも使えばいいんじゃねーの? できるかしらんけど
正常系でnullを返す自分の設計が糞なんだ
そういえばそうだな。 null返さなければいいだけだ。
nullなのにメソッド呼びたいとか考えたことなかった
まずこの議論がくだらない
疑問は(絶望的な方向に)解決したし、これ以上愚痴りたいなら穴掘ってどうぞ。 ここでやらないでね。
>>56 だから、書くだけなら拡張メソッドでいけるよ。
ところで、NULLはオブジェクトなのか?
var o = oppai; if(obj != null) o = o.GetSize(ref size); if(obj != null) o = o.Lick(); if(obj != null) o = o.UseCandle(true); if(obj != null) o = o.AttackBySperma(); if(obj != null) o = GoToHeaven();
var o = oppai; if(o != null) o = o.GetSize(ref size); if(o != null) o = o.Lick(); if(o != null) o = o.UseCandle(true); if(o != null) o = o.AttackBySperma(); if(o != null) o = GoToHeaven();
68 :
デフォルトの名無しさん :2013/09/27(金) 07:20:37.93
wpfのListBoxで、画面に見えていないアイテムを表示させようとしているんだが ItemContainerGenerator.ContainerFromIndexでListBoxIemを拾おうとしても、一度表示するまではnullが返ってくる 何とかなりませんか?
確か仮想化を切ればいいはず
70 :
デフォルトの名無しさん :2013/09/27(金) 09:13:15.41
>>69 ありがとう、おかげで何とかなりました
<ListBox VirtualizingStackPanel.IsVirtualizing="false" って書けばいいなんて判るかよ!
失礼します。 Win7 64bitで作成しているのですが複数のdllを使用する時、一つでもx86用しか無い場合は 全てx86で使用するのが無難でしょうか?
無難もなにも混在などできない
>>72 返事ありがとうございます。
AnyCPUもどちらが動くかわからないから止めた方が良いと以前このスレで見かけましたので
ターゲットプラットフォームをx86で作るしか無さそうですね。
nullをオブジェクトで扱うべきという議論は他でもあって、 関数型言語などではSOME/NONE型として扱ってる C#の場合は拡張メソッドでどうよ? FooクラスにHelloIfNotNullを書けない所にまだ良心が残ってるといえよう class Foo { public void Hello() { Console.WriteLine("Hello Wolrd !"); } } static class FooExtentions { public static void HelloIfNotNull(this Foo o) { if (o != null) o.Hello(); } }
76 :
デフォルトの名無しさん :2013/09/28(土) 17:31:45.92
コピペマン参上!まで読んだ。
C#はさ永遠とToString().ToString().ToString()....ってできるところがいいよね
そんなに釣り要素満載だと胃もたれしてしまうよ
80 :
デフォルトの名無しさん :2013/09/29(日) 15:26:33.18
動的に作成したコントロールに引数を追加する方法を探しています。 int i = 0; while(true) { panel[i] = new Panel(); label[i] = new Label(); panel[i].Controls.Add(label[i]); panel[i] += new EventHandler(panel_Click); label[i] += new EventHandler(panel_Click); this.Controls.Add(label[i]); this.Controls.Add(panel[i]); i++; } panel_Clickにiを渡したいのですが、方法がわかりません。 どうすれば出来ますか?
> panel_Clickにiを渡したい そんなことは出来ないので、iをTagに入れるか、 またはFormのコードなどでコントロールをキーにするDictionaryを持つようにする
ソフトウェア板で答えたと思ったらマルチされてたでござるの巻
83 :
デフォルトの名無しさん :2013/09/29(日) 15:30:39.12
c#6.0ってどうなってますか?
どうでしょうなあ・・・
マルチスレッドは簡単らしいです。
>>80 panel[i].Click += ( sender, e ) => MessageBox.Show( i.ToString() );
とか?w
動的にコントロール生成って、どうしても初心者の方がやりたくなってしまう魅力があるのかな
async/awaitより楽な非同期が思いつかない
>>87 そのiはいつ評価されるの?
初心者に魅力って、お前同じコントロール100個あってもデザイナで頑張って張りつけるの?
そっちの方が初心者くさいと思わん?
10個くらいなら普通に貼り付けてるな
同じコントロール100個も貼らなくていいようにUI設計する
同じコントロール100個貼り付けるってどんなプログラムだよ
グリッドみたいなものを作るときによくやるよね
テキストボックスだけで作るグリッド
VB6のコントロール配列は良かった
>>89 いいからサラのWindowsフォームアプリケーション作成して
コンストラクタに
public Form1()
{
InitializeComponent();
int i = 0;
this.Click += ( s, e ) => MessageBox.Show( ( i++ ).ToString() );
}
って書いたらデバッグ実行してクリックしまくってみろ
>>96 ループ内に書かないと。
int i = 0;
while (i < 10)
{
if (i == 5)
this.Click += (s, e) => MessageBox.Show(i.ToString());
i++;
}
推測されにくいIDってどうやって発行するのがいいでしょうか? GUIDだと推測されやすいですか?
誕生日に1足すだけで推測されにくいよ。
101 :
デフォルトの名無しさん :2013/10/02(水) 18:30:19.05
一般的な話だが、IDはユニークであれば推測されても問題ありません
GUIDだったら推測は不可能に近いな 最近はIDも隠す傾向にあるよ。ユーザー入力のID&パスを使ってると、パス使い回し馬鹿が不正アクセスされるからw
で最大長のランダムなパスワードにしてたら、パスワードを手入力を強制する糞サイトがあった。
>>100 馬鹿
>>101 「推測されにくいID」という要件を無視して自説を垂れ流す無能
>>102 推測という言葉の定義によるからお前の意見にはノーコメント
ただ他人のGUIDを手に入れることは難しくないという事実だけは書いておく
>>103 コピペ禁止のJavaScriptすら外せない無能
このスレのプログラマがIDを取り扱うシステムを作るとこういうことになるんだろうな。
iPhoneアプリ「電波チェッカー」がUDID偽装可能だったことが発覚してからのまとめ
http://togetter.com/li/28715 > 実際にUDIDがあればその人の登録位置情報を地図上で閲覧できてしまうことを確認しました。
> 知人のiPhoneに私のUDIDをセットして電波チェッカーを起動したところ、私の自宅等の位置が現れました。
それは本来パスワードで保護すべきものを(利便性のために)してなかったってだけじゃん…
>>98 発行方法なら
>>99 で終了。GUIDもランダム文字と取れなくはないからその手の用途ならGUIDでもいいと思う
一般的には
>>101 、垢ハックが頻繁に起こりえるシステムなら
>>102 iPhoneアプリ「電波チェッカー」がUDID偽装可能うんぬんはIDとまったく関係なし
マルチスレッド簡単君うざい。
112 :
デフォルトの名無しさん :2013/10/02(水) 23:18:08.61
Cのポインタみたいな使い方って、C#ではどうやるのでしょう? struct aa { char a; char b; short c; }; struct bb { char a; char b; char c[2]; } みたいな構造体があったとして、データの中身を見ないとどっちかわからない。 aが1なら構造体aaを、そうでないならbbを使っている約束がある場合、 aの値を見てどちらかの構造体 aa と bb のポインタにキャストして使いたい のですが。 このような場合、C#ではどうやればよいのでしょう? MSDNのチュートリアルでを読んでみたのですが、参考になるような記述がなくて困っています。 よろしくお願いします。
マーシャリング
>>112 [StructLayout(LayoutKind.Sequencial)]を使う(C# 共用体 でググれ)
もしくはCと同様にポインタを使って
unsafe {
aa x = getaa();
bb* y = (bb*)&x;
Console.WriteLine(y->c[1]);
}
やってることは結局同じなのでわざわざマーシャリングAPIなんて面倒なものを使う必要はない
>>114 訂正
LayoutKind.Explicit
あとC#では char c[2]; は構造体にunsafe付けて fixed char c[2]; な 変数2つ並べてもいいけど
117 :
デフォルトの名無しさん :2013/10/02(水) 23:41:51.57
マーシャリングと structlayoutですか。 調べるキーワードがわかり、助かります。 ありがとうございました。ちょっと調べてみます。
単純な受け渡しはマーシャリングでいいけど、構造体のレイアウトが絡んでくると C#ならもうunsafeでCみたいなもの書けばいいと思うわ 複雑なマーシャリングでミスしやすくなるだけだよ遅いし
まあしかし、データの中身みないと型が分からないとか、設計間違ってると すくなくともC#でやるべき事じゃないと思う
C#で完結する環境でやってたらただの馬鹿だが、ほかの環境のデータ読み込みだろ。こんなのはよくあるわ
WinAPI使っててもあるね
122 :
デフォルトの名無しさん :2013/10/03(木) 09:24:00.86
1. WinFomsのComboBxをフォームに貼り付け、Itemsに"abc"を追加しておく 2. そのコンボボックスのAutoCompleteModeプロパティをNone以外にする 3. 実行してコンボボックスに"ABC"と入力する 4. コンボボックスからフォーカスを他に移すと、アイテム"abc"が勝手に選択されてしまう。 もちろんTextプロパティも"abc"を返す これってほとんどバグだと思うんですけど 回避策をご存知の方いらっしゃいませんか?
オートコンプリートがcase-insensitiveであるのは仕様です ご理解のほどよろしくお願いいたします
125 :
123 :2013/10/03(木) 10:14:18.87
AutoCompleteSourceに"abc"があるわけでもないし そもそもAutoCompleteSourceを設定していなくても発生するんですよねー よくある名前の変更ダイアログを想定してるんですが 履歴をコンボボックスとオートコンプリートの両方に入れていると Caseを変更して保存できなくなるわけで……
>>119 TCP/IPのパケットとか、地デジのTSパケットとか全部その設計だが。
マルチスレッド簡単君うざい。
70まで読んだ
マルチスレッド簡単君は無職なのか。
トイレで隠れて書き込むなよみんな気づいてんぞww
TableLayoutPanel をデザイナーから追加すると 2列2行が自動で追加されます。 追加されないようにするには? 毎回手動で消すのが面倒になってきた
どうすんだろうな 70なら分かると思うけど
136 :
デフォルトの名無しさん :2013/10/03(木) 23:35:31.01
太陽系のシミュレーションを行おうとしているのですが, まずdouble型で基本的なアルゴリズムを完成させました。 しかし太陽系の実際の質量などを代入するのには桁が足りません いいライブラリをご存じないですか? BigIntegerというのもありますが,できれば実数がいいです。
doubleで足りないわけないだろ 10の±300乗だぞw まさか精度が足りないとか? 太陽の質量が有効数字16桁で足りないとか人類の観測技術も進歩したもんだなww
実数って何なんだろう πとか代入されたら何桁まで格納されるのかなw
太陽の質量に比べたら惑星の質量なんて誤差みたいなもんだろ って話ではないのか
140 :
デフォルトの名無しさん :2013/10/04(金) 01:04:57.13
>>137 今コンパイルが終わった
普通に出来てた
thxです
何を言ってんだぁああああああああああああああああああああああ
>>139 相互作用は積の形だからオーダー違いでも情報落ちはしないはず
awkは、2^200を計算できないのですが、 bcコマンドは出来ます Pythonは、2の1万乗、つまり3千桁も計算できる
値の範囲と桁数は別ですよ 指数表記や有効数字を使ったことがない文系か
short、int、long、たくさん
for(int i=0; i<10 ; i++) hoge(i) このhoge(i)をTaskでやらせたい場合、どうやってiを渡せばいいの?
キャプチャすればいいだけだがそれよりParallel.For使えYo
新しい並列処理ってTaskだけじゃなかったのね、ありがとうございます。
C#はマルチスレッドが簡単ですね。
ここから70の自演
マルチスレッドは楽だよC#では
種まき中
実際C#のマルチスレッドは初心者でも簡単に扱えるよう設計されているよ
水やり
70ちゃんは間違いを指摘しろって言いつつ全然動かないコードを書いて、 whileとかbreakを追加して3度目でやっと動作するようになったけど当初の論点とは全然関係なくて、 MSの中の人のブログからパクって来たら速攻ばれたところがかわいかった
拡散波動砲エネルギー充填
160 :
デフォルトの名無しさん :2013/10/04(金) 21:25:45.72
助さん拡散懲らしめてやりなさい
変数は全部volatileつけといたらええねん
162 :
デフォルトの名無しさん :2013/10/04(金) 23:00:17.65
マルチスレッド簡単君うざいよ。
いままで使った中でマルチスレッドが難しかった言語なんてVB6だけだが
このスレの70マジ被害者
166 :
デフォルトの名無しさん :2013/10/05(土) 12:27:54.53
GitHubはもともとRubyディスで 言語選定は十分に検討すべきって事例だった フレームワークがよくても基本性能は補えない
その状況に対して危機感を隠せない男がいた このままではマイクロソフトに覇権を奪われてしまう…!! 「お前には二度とGitの名前は使わせねぇッ!」 こうして GitHubはその名前すら変える羽目となり ユーザー流出は留まるところを知らなかった…
169 :
sage :2013/10/05(土) 16:22:04.59
マルチスレッド簡単君はずっとこのスレを監視してるんだね。 一体過去に何があったんだ。
>>70 は1人だが、マルチスレッド簡単君()は複数
MVVMはMVCよりマルチスレッド簡単
174 :
デフォルトの名無しさん :2013/10/05(土) 21:14:56.02
最近C#を勉強し始めた高校生です TabContainerを使い簡単なTabbrowserを作っています Button1でTabPageを追加、Button2でアクティブのタブを削除までは出来たのですが、更新、進む、戻るの指示がなかなか出せません・・・ 教えていただけたら嬉しいです
その質問は実装に全く触れてないから推測しかできんよ WebBrowserならGoBack,GoForward,Refreshあたり
HTMLパーサーを作るなんて無謀なことを高校生がせんだろ
Tabオブジェクトがブラウザのプロキシになって 各タブにコマンド発行するみたいな形が定石じゃね?
179 :
デフォルトの名無しさん :2013/10/05(土) 22:56:29.95
>>178 WebBrowserで面倒なのは
MouseDown このコントロールでは、このイベントはサポートされていません。(WebBrowserBase から継承されます。)
ここら辺だよ
>>179 本当にハマるのはBSキーの扱い。勝手に消すなよ
WebBrowserだとマルチスレッドで管理するのが難しい。
否定しない
WebBrowserはDocumentText使うと重い
否定できない
bool Func(BinaryReader reader, int[] a) { foreach (var n in a) if (reader.ReadInt32() != n) return false; return true; } って書いたら、ReSharperに、 bool Func(BinaryReader reader, int[] a) { return a.All(n => reader.ReadInt32() == n); } って書けるよと言われたんですが、Allって先頭から順番に検査することが保証されてるんですか?
当然だけど評価順はforeachと等しいよ
つかそれ、先頭から順番に「検査」する必要も保障もいらないんじゃないかと
188 :
デフォルトの名無しさん :2013/10/06(日) 21:43:16.02
つか、これほど無駄なLinqも珍しいw
またなんか生産性のない書き込みをしてるのか 生産性の高い言語使ってても意味ないな
190 :
710 :2013/10/06(日) 22:58:46.83
何それ自戒?
LINQ脳ならBinaryReaderをyield使ってIEnumerableでラップした上でSequenceEqualだろ
マルチスレッド簡単君。いいかげんにしなさい。
拡張メソッド脳だから IEnumerable<T> BinaryReader.Enumerate<T>()を作るね
framework4.0から4.5でマルチスレッド何か良くなった?
フォームのTreeViewの一番上にTreeNodeを追加しようとすると、 型 'int' を型 'System.Windows.Forms.TreeNode' に暗黙的に変換できません。 ってエラーになるのはどうして? var root = treeView.Nodes.Add (new TreeNode ("World")); root.Nodes.Add (new TreeNode ("World")); 1つ下の階層なら追加できる。 ルートノードだけ特殊なの????
AddとInsert間違えてない?
198 :
196 :2013/10/07(月) 11:57:53.98
AddもInsertも同じでしょ。Insertの方は、 型 'void' を型 'System.Windows.Forms.TreeNode' に暗黙的に変換できません。 って出てきます。何でやーー
日本語にすれば違いがわかるような
voidをなんちゃらってことは Add(返値がvoidのメソッド()) ってやってるってことだろ コード見直せ
>var root = treeView.Nodes.Add (new TreeNode ("World")); >root.Nodes.Add (new TreeNode ("World")); Add(TreeNode)の戻値はintだぞ Insert(index,TreeNode)の戻値はvoid
はい解散 関係者は後片付けしとけ
205 :
196 :2013/10/07(月) 12:58:31.07
すみません私がアホの子でした、生きていてすみません。
>>203 が正解です
前スレに書いてあったマルチコアのための非同期/並列処理プログラミング買ってみた。 内容はC#で検索して出てくる有名サイトレベルだからここで質問に答えてる人には不要だけども、 framework別に読みやすく書いてあるから、とりあえずC#がなんとなく書けるようなってきたけど このバージョンだと何使ったらいいの?って感じの初心者さんなら良いかも。
70、出番
>>195 MSのマルチスレッドライブラリ開発者の解説では、
多くの最適化が外され遅くなりましたが、多くのバグが取り除かれました。
マルチスレッドするなら4.5一択です。
210 :
112 :2013/10/07(月) 22:13:45.96
>>126 ホントはそれです。
socket通信の割と単純なプログラムなんですが、これをC#でやってほしいという要望があって、わりと弱ってます。
Cしか知らないから、C#で見栄えに関係するところだけごまかして、後はCでDLL作ってごまかしちゃおうかとも思い始めてます。
unsafeコードでfixed使いまくるとなんとか私でもできそうですが。
いわゆるCの構造体を扱うような、メモリとデータの使い方はC#ではやらないということみたいですね。
不勉強で、ここで質問できるレベルにも達していないというのがよくわかりました。
ありがとうございました。
>>187 ReadInt32() を呼ぶ順番で違う結果になるんじゃないの?
>>210 Cに慣れてんなら構造体に頼らなくてもバイト配列をビット演算すればいいだろ?
Cでもエンディアンを考慮する場合はそうやるでしょ
BinaryReaderを使ってもいいが多分君には合わない
バイト配列の中身見てから各構造体にコピーするだけやん。
バイト配達
>>214 そんなことはみんなわかってんだよ。その上でCにありがちな方法はって言ってるんだろ
ならC++.net + unsafeにすればいい。
無碍で悪いがちょっと静かにしてて、君
70だろ。何言っても無意味
普通かどうかわからないけど 構造体の代わりにクラス作って まとめて代入するメソッドとか 好みの形式で取り出すメソッドとか書くよね?
そのクラスの中でやってる取り出し方の話
DataTableの特定のカラムに格納されている文字列が特定の文字数の項目の行のみを抽出して、新しいDataTableに全てのカラムを含めて該当する行をコピーしたいのですが、どんな感じに記述すればいいでしょうか。 こんな感じです(果物名が3文字の項目だけ取り出して、新しいDataTableにコピーしたい)。 DataTable1 ID|果物名|個数|単価… 0 |りんご|10 |100 1 |かき |7 |50 2 |ぶどう |5 |300 3 |なし |15 |120 DataTable2 ID|果物名|個数|単価… 0 |りんご|10 |100 2 |ぶどう |5 |300
マルチスレッド簡単君にCの話は無理だよ。
>>224 ・DataTable1の全アイテムを取り出す
・取り出したアイテムから名前を取り出して比較する
・DataTable2にアイテムを追加する
・DataTable1で見つかったアイテムをDataTable2に追加する
順番にやってけば完成するだろ
>>224 DataTable.Selectして、既にテーブルがあるならDataTable.ImportRow、ないならCopyToDataTableとか
private void hoge(int i, out double[] aa, out double[] bb); 上記をデリゲートにして、aaとbbの二つの配列に値が入るまで待ってから 値を取り出すにはどのようにしたら良いのでしょうか?
229 :
デフォルトの名無しさん :2013/10/08(火) 15:18:51.82
折り畳めないがタブコントロールに放り込む
231 :
デフォルトの名無しさん :2013/10/08(火) 15:25:29.73
code projectで探せば多分ある 見た目は違うが、XPのエクスプローラの左側にあるやつっぽいのは見た覚えがある
>>228 > aaとbbの二つの配列に値が入るまで待ってから
意味が分からん
delegate void HogeCallback(int i, out double[] aa, out double[] bb);
として
HogeCallback callback = hoge;
なcallbackを使うなら
double[] aa, bb;
callback(i, out aa, out bb);
Debug.Print("{0}", aa[0]);
にするだけだろう?
233 :
229 :2013/10/08(火) 15:59:30.09
>>230-231 標準のVisualStudioでは作れないと言うことでしょうか
だとしたらUnity社はどうやって
>>229 みたいな物を作れたのでしょうか
頑張ればできそうなきがするのですが
当然作れるが、自分で自作コントロール作りたいのか。 MSのサンプルあったと思う。
>>232 言葉足らずですいません。
Labelコントロールにて表示しているので、それを行うとInvalidOperationExceptionが発生していますのでInvokeで使おうとしたら受け取り方がわかりませんでした。
よろしくお願いします。
>>233 FlowLayoutPanelでそれっぽくできそうな気はする
237 :
229 :2013/10/08(火) 16:30:57.16
折りたたむのは無理
double[] aa = null, bb = null; await Task.Run(() => method(i, out aa, out bb)); label1.Text = BitConverter.ToString(aa); 4.5だとこうか
239 :
228 :2013/10/08(火) 17:12:20.75
>>238 VS2010なんで、4.5で書けないんです・・・。
TaskScheduler.FromCurrentSynchronizationContextとTask.Factory.StartNewとTask.ContinueWithで代用
241 :
228 :2013/10/08(火) 18:09:18.98
>>240 Taskを使用するとなかなか大変になりそうですね・・・。
MSDNや解説しているサイトで勉強してきます。
ありがとうございました。
いや、むしろ簡単になるんだが…
244 :
デフォルトの名無しさん :2013/10/08(火) 18:34:09.53
マルチスレッド簡単君うざいよ。
お、70
なにがあったか知らんが未だに粘着してるってよほど悔しかったんだな。
マルチスレッドが絡んでそうな質問内容
「
>>70 臭」への素早い反応
これは当たりかもな
なるほど。マルチスレッドで論破されたのか。知ったかでもしたのか?
【レス抽出】
対象スレ:ふらっとVisual C#,C♯,C#(初心者用) Part107
キーワード:
>>70 抽出レス数:13
どんだけキチガイ粘着してんだよwwww
そいつ他スレでも
>>70 言ってる基地だぜ。関わるとさらに暴れる。
他人のふり他人のふりww
自己レスが始まったぞ 今回も長引くな
自演始まったwww
なんかよく分からんがこれだけ粘着されるのは凄いな
なんかわからんが〜とか、〜でもしたのか?とか いま初めて知った風な書き込みが20分で3回も
このスレの
>>70 は無関係なのに可哀想
マルチスレッド簡単君うざい
なんか分からんが会話のレパートリーがないんだろ
なんか分からんがそういうことだな
24時間監視してる無職らしい。アニメの放送時間は書き込まないらしい。 まどきまぎかの人形をもってるらしい。猫好きらしい。すぐ沸騰するらしい。 分かってるのはここまで。
なんか分からんが祐輔に似てるな。
1)WPFでWindowsFormsHostでFormsのコントロールを配置している。 2)XAMLでContextMenuを作成した。 3)1のFormsコントロールのContextMenuに2を追加したいのですが、 当然FormsとWPFのContextMenuだから、だめでした。 どのようにすればいいのでしょうか?
Formsコントロールの右クリックイベントで コードからWPFのContextMenuを開けばいいんじゃないの
それはやってみたのですが、メニューが灰色表示のままで選択ができない状態になってしまいました。 これの原因もちょっと調べているところですが、判明しません。
空域のせいだろ 逆にWinFormsのContextMenuをWPFの上で開くのはできるんじゃない? それか枠のないウィンドウを開いてその中でWPFのContextMenuを開くとか
空域ですか? CommandBindingでCanExecuteとか書いてるので、 枠のないウィンドウでWPFのContextMenuを開く方法をためしてみます。 ちょっと、自分にかけるか疑問ですが。 ありがとうございました。つまずいたらまた来ます。
268 :
デフォルトの名無しさん :2013/10/08(火) 22:39:44.51
コントロールの設定がぐちゃぐちゃになってしまったんだけど これ全てのプロパティを初期値に戻すボタンないの? もう無理
全リセットなら消して新しいのを貼ればいいだろ
全部張ったら一度コミット 当然の行い
271 :
268 :2013/10/08(火) 23:11:55.85
.Designer.csをテキスト編集
なら、諦めろ。
俺は
>>272 でやってるな
プロパティを変更してる行を削除すればいいことだから
.NETってLinuxとMacでは動かないじゃないですか そこでmonoっていうのがあるじゃないですか ぼくはWindows XPしかもってませんがMacかUbuntuを使うかもしれません そこでWindowsでもmonoで作っておけばコードを修正しなくてもクロスプラットフォームにプログラムは動かせるでしょうか? あとお金がないというかそこまでレベルが高いわけじゃないので無料版のVC#2010 Expressを使ってるんですが monoはVC#2010 ExpressでもF5でデバッグしたりF6でリリースしたり、コードを保管したりしてくれるのでしょうか? 基本的に.NETで書いたコードは修正しなくてもmonoで動きますか?
死ね
待っている間に入れて確認した方が早いかもな
> ぼくはWindows XPしかもってませんがMacかUbuntuを使うかもしれません 使うことはなさそうだ
plamo linux の話はどこできけばいい?
>>279 google先生にどこにスレがあるか聞け。もしくは氏ね
SSD買っちゃった これでIDEもさくさくかな
残念なことに容量が小さくて不便なだけだ
久しぶりにみたらVSってもう2013になってるのか・・・ 未だに2010使ってたわw
284 :
デフォルトの名無しさん :2013/10/10(木) 09:32:19.84
8.1は来週なんだよな。てか、Windows8はマウスのホイールクリックあたりにウインドウズキーを割り当てるとwin7より快適だろ
285 :
デフォルトの名無しさん :2013/10/10(木) 11:46:48.34
ネイティブのDLLを含むカスタムコントロールを作って、 ツールボックスの所からフォームにドラッグ&ドロップすると DLL 'csfml-graphics-2' を読み込めません: 指定されたモジュールが見つかりません。 (HRESULT からの例外: 0x8007007E) って出てDLLがロードできないのですが、このDLLはプロジェクトのどこのフォルダーに置けばいいのでしょうか。 このDLLはLoadイベントで使用されて普通は bin/Debug の下に置いておけばロードしてくれます
そのDLLをプロジェクトに含めておいて常にコピーするっていう 設定をしておけばいいよ
DevEnvから読めるところでないかい?
288 :
285 :2013/10/10(木) 14:50:32.40
>>286 それではダメです。
もともとそういう設定になっていて通常アプリではネイティブDLLのロードは出来ています。
ただ単にツールボックスのカスタムコンポーネントをドラッグ&ドロップでフォームに追加しようとすると
このDLLを見つけられなくて(というかそもそも探しに行ってない雰囲気)
>>285 のエラーが出ます
>>287 よくわからないので今調べています
>それではダメです。 ワロタwww 素直に従っておけよ
290 :
285 :2013/10/10(木) 16:03:28.54
そもそもカスタムコントロール(のコンストラクターとLoadイベント?)で 外部のネイティブDLLをロードする事が可能かどうかが知りたいのです。 昼間からググってますが全然情報がないです。もしかして絶対に不可能なことをやろうとしてるんじゃ・・・
ネイティブDLLをロードできんかったら.NETそのものが成り立たんだろ 適当にPATH通しておけ
PCのどこにあるかもわからんDLLを適当に検索して勝手に使われる方が怖すぎるはw
デリゲートする処理の中に別のデリゲート入れると、暴走しやすくなります?
C#を勉強するときに読んだほうがいい最強の書籍を教えてください 10日で覚えるとかそういうのはクソでうs
>>293 もちっと具体的に。
イベントの再入のこと?それとも非同期イベントかな?
マルチスレッドじゃないかぎりトラブリようないと思うけど。
暴走するかどうかは組み方次第
1コアのCPUだとマルチスレッドで動くようにコード書いても意味ないですか?
299 :
285 :2013/10/10(木) 17:58:53.73
>>291 あなたは問題を理解していないです。
普通に.NetアプリからネイティブDLLを使うのは問題ありません。
基本は実行ディレクトリにDLLを置いておくだけです。
ここで問題にしているのはツールボックスに表示する時にVisualStudioが
該当するコントロールのコンストラクターとLoadイベントを実行しますが、
その時の実行ディレクトリがわからずDLLもロード出来ないことです。
ちなみにプロジェクトの全てのディレクトリにDLLをコピーしてみましたが
やはりDllNotFoundExceptionが発生しました。
VisualStudioの仕様でどうやっても無理な気がします。
何をどういう目的でマルチスレッドするかによる
>>299 あなたは問題を理解していないです。
ネイティブで「コントロール」ということは問題のDLLはActiveXコントロールなのでしょう
COMは登録されていればレジストリにパスが入っているのでDLLが見つからないということは起こりません
debugフォルダに入れて動いたというのならば、debugフォルダにコピーされるように設定すればいいでしょう
あなたの頭ではどうやっても無理な気がします。
>>299 そのコントロールでカレントディレクトリをログに出してみればいいのではないか
>>295 すいません、自分で書き換えておいて忘れてました。
ParallelForで同時に呼び出した関数それぞれをTaskで処理し、その中でLabelコントロールに計算結果を表示する為にデリゲートをInvokeで呼び出しているのですが
表示を入れるようになってから動作が不安定になってきています。
とりあえず何故ParallelFor→Taskなんて無駄なことを
>>301 他の人間は状況理解してるようだけど、お前は理解してないな
ユーザーコントロールから例えばqt.dllを使ってるとか、そういう話だろ? 理解し難い所なんてないと思うが。
>>305 Control.Invokeの呼び出しやその他のGUI同期用の手段を講じていないだけじゃない?
面倒だからVSのフォルダに全dllを入れてしまえ
ループ厨は黙ってろよ。
いやSystem32だろ
ActiveX厨も静かにし給え。
70のご登場〜
なんだ70か。
まだ粘着してるwww キモッwww
なにがあったか知らんが未だに7070連呼してるってよほど悔しかったんだな。
マルチスレッド簡単君よ、他のスレまで荒らしてんじゃねーぞ、キチガイが。
なんかよく分からんが荒れそうだな
322 :
285 :2013/10/10(木) 19:06:24.02
>>310 とっくにやった
>>321 とっくにやった
よく読め
どうも無理みたいなのでフォームのコンストラクターでDLLを必要としないように改造します
すこし弄ってみたら出来そうだったので、たぶんこれが一番エレガントな解放
みなさんいろいろありがとうございました。
糞の役にも立ちませんでした。
はい、さようなら。
>>322 >糞の役にも立ちませんでした。
自分の未熟さに気付けただろ?良かったじゃん。
326 :
デフォルトの名無しさん :2013/10/10(木) 19:30:32.95
bin\debugにコピーしても無駄なんだけど、そこら辺判らなかったんだろうな
単に必要な DLL ってのを勘違いしてるだけに思えるんだが。
一生終わった話に突っ込み続けて末永くお幸せに
くやしいのうwww
331 :
305 :2013/10/11(金) 09:26:45.58
>>306 なんか速くなりそうかなと思って色々追加している内に無駄なことをしてしまったようです。
Taskをやめて普通に関数呼び出しにしたら安定しました。
ありがとうございます。
すんごい初歩的な質問で申し訳ないですが 読み取り専用プロパティの存在意義がよくわかりません public readonlyで宣言すればいいんじゃないかと思ってしまいます
public readonlyを一般的な方法でオーバーライドしてみろ
遅延初期化できない
コピーを返せない
337 :
デフォルトの名無しさん :2013/10/11(金) 22:26:26.59
>>333 読み取り専用プロバティーとはクラスが外からは設定できないが、内部の情報を渡すときに使う
例えばプロバティーAとBを掛けたものをCで返すクラスが有ったとすると、AとBは書き込みできるが
結果を表すCは設定する必要がないから読み取り専用プロバティーにする
って事で一度しか設定できないreadonlyとはおもいっきり違います
public readonlyは読み取り専用プロパティで代用できるけど、 読み取り専用プロパティはpublic readonlyで代用できない
public type property { get; private set; } は便利だろ VBじゃできないんだぜ
ここまで言語でバラバラだと気にするのが面倒だから全部publicでok
VBでカプセル化? ご冗談をw
>>340 それはC#と同時に出来るようになってるw
>>344 VBはわざわざこうしなきゃいけない
しかも書込と読込のアクセッサが異なる
Public Readonly Property [property] As type
Get
Return _property
End Get
End Property
Private _property As type
347 :
346 :2013/10/11(金) 23:32:15.07
すまんReadOnly限定の話か
VBは自動プロパティの初期化が出来るから我慢汁 public property XXX as string = "abc"
VB.NET, C++/CLI: C#に比べて構文が簡潔で宣言時初期化が可能 C#: getとsetでアクセスレベルを変えられる どっちのメリットが多いかというと微妙なところだなあ VBはカプセル化?何それ?な使い方をされることが多いから、ほぼpublicフィールドと 変わらない扱いができてそれよりはマシな選択肢を用意するのは適切な判断なんだろうけど
そんなに優位に立たないと気が済まないのか、君らは
自動実装プロパティの制限に文句を垂れるよりは「フィールドのカプセル化」のショートカットキーを覚えたほうがはるかに生産的だぞ
コボラーの発想だな
C#でゲーム作るならXNAって奴がスタンダードなんですか?
以前はそうでした
XNAは終了(公式) C#でやるなら迷わずUnityだ 今やUnityはゲーム製作のデファクトスタンダード
などと今なおマカーはステマを続けており、 早急にも精神科の治療を要する状況である。
XNAは今後サポートないって公式に宣言してるし 今の流行りはUnityだし間違いではないでしょ
一応C#だしなあ .NETではないとはいえ、C#がC++からゲーム製作言語の座を奪ったんだから大したもんだよ
unityって趣味でゲーム作るなら最強環境だけど、実際に商品として作ろうと思ったら最悪だよな ゲーム部分以外が作れねー
平日:人生ゲーム業務 休日:アマチュア無線業務
老人乙
>今の流行りはUnityだし間違いではないでしょ おまえの中ではな。
363 :
デフォルトの名無しさん :2013/10/12(土) 23:37:25.59
マカーなんでこんなところに。
むしろ何か流行ってるの?
sharpdx
なんでUnityだとマカーなんだろう 普通にWindowsで使ってる人の方が多いだろ デプロイもPC向けならほぼ100%Windows向けだろうし
どうせ>70だろ。気にすんな
激しく板違いだな。マカーはゲーム製作技術板に池よ。
370 :
デフォルトの名無しさん :2013/10/12(土) 23:59:23.70
まさかマルチスレッド簡単君がアニメ好きのマカーだったとはな。
.
>>70 はどんなネタにも無知なまま突っ込んでくるなww
キチガイ荒らし
>>70 連呼がはじまりました。
みなさんそろそろ寝ましょうか。
急にレスの流れが速くなると間違いなくマルチスレッド君がいるよな。 沸点低いから。
他人を装って連投するなら文体変えた方がいいよ
70って2スレくらい前のじゃない?病気だね
こういう奴は冗談抜きでストーカーと同じ。 ストーカーの特徴は他人から自分がどう見えるかを想像する能力が壊れてることと、 自分が他人から拒絶されることを受け入れることができないことだが、 そっくりそのまま彼(ら)にも当てはまる。 恐らくこのスレでこういう流れを面白いとか、あるいは誰かが(俺が)煽られてるとか 思ってる人は彼(ら)以外に一人もいないと思うんだけど、彼(ら)にはそれが理解できない。 まず間違いなく、自分と同じ感じ方がみんなに共有されてると思ってる。 ストーカーと同じようにね。
378 :
デフォルトの名無しさん :2013/10/13(日) 02:34:06.19
379 :
デフォルトの名無しさん :2013/10/13(日) 02:53:35.09
いやー、Ubuntuいいわー お前らもLinux使ってみろよ な?
MonoじゃなくてVisualStudioで開発したい
381 :
デフォルトの名無しさん :2013/10/13(日) 03:41:14.84
>日本製Monoの入手方法を知りたいですか?(Y/n)
70連呼の馬鹿は面白いと思ってんのかな
383 :
デフォルトの名無しさん :2013/10/13(日) 11:34:00.42
>>381 トンボのアレね
実はSEEDのOEMだったりするが
>>379 Ubuntu無料なこと以外はあんま好きじゃないな
余計な手間はコストだからなあ 学生には理解できないだろうけど
手間を楽しめるうちはいいよ
Red Hat系以外のLinuxなんて都市伝説レベルでしか見ない
centとdebian以外要らん コミュニティの分散を止めろ
public class A { public void Test<T>() {} } というジェネリックメソッドがあるとして、 これを別のクラスから A a = new A(); a.Test<this.GetType()>(); みたいな感じに型パラメータを動的に指定したいんだけどいい方法ありますか?
それもうジェネリックにする意味ないよね
thisの型に制約があるならそのスーパークラスなりインターフェース与えればいいし そうでないならそもそも束縛する意味なし
>>390 typeof(A).GetMethod("Test").MakeGenericMethod(this.GetType()).Invoke(a)
俺も意味ないと思うけど、メタプログラミングっぽいことをやってると稀に必要なこともないこともない
thisがstructなら候補は1つしかないし、classなら動的にジェネリック型を構築するメリットがない気がする
C#のジェネリックって継承やインターフェースの実装しなきゃメソッド呼び出しすらできないから不便だよね C++のテンプレートみたいな仕様にした方が面白いのに
ありがとうございます
設計が悪いみたいなのでまず見なおしてみます
>>393 reflectionってやつですかね
ちょっと強引な印象ですが最終手段として考えてみます
>>395 メモリ食うしリフレクションもできないよ
アセンブリをまたがってインスタンスの受け渡しをするときにも問題出そう
テンプレートは出来合いのものを使うときにもソースコードが必要だから無理 コンパイル済みのライブラリを一切使わないで常にソースから全部ビルドするならいいけど そういうわけにはいかんだろ もし.NETでやるとしたらアセンブリにソースコードを丸ごと埋め込むことになるね
Formsアプリは死滅しちゃうの?
VB6は生きている あとは分かるな
C#やめてVB6やれってことだな
生きてると言ってもゾンビみたいなものだろ
403 :
デフォルトの名無しさん :2013/10/14(月) 09:38:15.52
標準のコントロールだけで組めば良いシステムは幾らでもあるし その範囲なら直感的なGUIであるFormsは優秀だ Windowsが大きく変わるまでは現役だろうね
UIはビジネス層とキッチリ分離してあればだけど、別になんでもいいだろ その時代にあったアーキテクチャでUIを組めばいいし、必要ならUIだけ別のアーキテクチャに乗り換えればいい UIに関してだけ言えば後ろを振り向いちゃいけないその場その場でしのぐべき
Consoleアプリが死なないのに、Formsアプリが先に死ぬわけないだろ
CUIは開発に欠かせないから無くなることはない GUIはエンドユーザの都合で作ってるだけだから需要がなくなれば死滅する
開発に欠かせない?
408 :
710 :2013/10/14(月) 11:42:29.14
WPFってまだ息すらしてないのに。
あと二年以内に新規案件のuiはhtml5に置き換えられる
おれも10年ぐらい前には同じようなこと思ってたよ。でもuiがhtmlに完全に置き換わることは当分ないだろ
原理的にグラフィックを使用せざるを得ないブラウザや画像編集ソフトを除けば、 CUIとGUIをどちらも選べる状況ならCUIの方が使い勝手がいい
マクロ機能があるならGUIでもいいかな
今更CUI環境でソース書きたくないよ
極端な奴だけどちらかに拘ってればいいんだよ大マヌケ
マウスに触りたくないとか言っちゃうワガママユーザ向けにスクリプティング環境を用意しないとね
HTML5の普及が始まりそうな気配も感じないよ
Flashを代替するって息巻いてた割にスマホ用とPC用で住み分けただけだったな 俺は夢想家と違ってこれは予測してたよ
ほーん。で?
HTML5は船頭多くして船山に登るってパターンらしいね。 っていうか、最近の規格物っていつもこれだな。 規格なんかバザール方式みたいなノリでやってもうまくいくはずないっていい加減学習すりゃいいのに。 日本人は学習能力がなくて同じ失敗を何度も繰り返すって批判されるけど外人もたいがいだな。 どっかのブログか何かで規格をまとめる能力(だけ)は日本の家電メーカーの方が 上だったと書いてる人がいたけどそうかもしれん。
空気を読み強いものには意見しないからね そりゃ強いものが出した仕様がすんなり通るんだから 外からみたらまとめるのがうまいと錯覚してしまう
javascriptみたいなゴミの中のゴミじゃなくてC#にしてくれれば使うのに
(ヾノ・∀・`)頼んでない頼んでない
char[]かStringBuilderからしか直接stringが作れないっていうのもアレだけど StringBuilderにICollection<char>とかをInsertするのも無理とかなんかおかしくない? stringはメモリ使いまくるからパフォーマンス上の問題になりやすいのに融通が効かなさ過ぎ パフォーマンスを求めるとstringやstringbuilderやその他全てのstringに依存したフレームワークを捨てて 自前文字列型を使った一大フレームワークを作るハメになる
うんMSに要望すれば うん作れば ふーん。で?
賛同して欲しいだけのネタだろうに何いちいち突っ込んでんの カスかお前
stringを作業データとして使っちゃってるかわいそうな子かな?
429 :
デフォルトの名無しさん :2013/10/14(月) 20:07:17.06
>>426 多分「はい、シルバーライト」って渡されると思うわ
ペンライトの方が役に立ちそうだなー(棒
BYTE配列…
>>425 そもそもcharのコレクションなんて使うか普通?w
std::stringでも使ってろ
CLIなら使えるんだっけ
2012EEインスコした デスクトップアプリを開発しようとした ウィンドウズフォーム WPF どっち選べばいい?
すいません、C#でWebサイトの掲示板にPOSTデータを送信して、 戻り値(書き込みました、みたいな移動先ページのhtmlソース?)をreq.GetResponse()で受け取ろうとしてるのですが、 書き込みは出来ても受け取りができません。 次にコードを書くのでどこがおかしいか見てアドバイスいただけないでしょうか、よろしくおねがいします。
437 :
続き :2013/10/15(火) 06:21:47.51
try{
System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
HttpWebRequest req = WebRequest.Create("
http://hoge.com/index.cgi ") as HttpWebRequest;
Encoding enc = Encoding.UTF8;
string param = "";
Hashtable ht = new Hashtable();
ht["text"] = "hoge";
ht["text2"] = "hogehoge";
foreach (string k in ht.Keys) {
param += String.Format("{0}={1}&", k, ht[k]);
}
byte[] postDataBytes = Encoding.ASCII.GetBytes(param);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postDataBytes.Length;
Stream reqStream = req.GetRequestStream();
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
reqStream.Close();
using (WebResponse res = req.GetResponse())
{
Stream st = res.GetResponseStream();
StreamReader sr = new StreamReader(st, enc);
Debug.Log(sr.ReadToEnd());
st.Close();
sr.Close();
}
Debug.Log("posted");
}catch (WebException ex){
Debug.Log("ERROR");
}
AutoRedirect
UrlEncode
>>438 ?
req.AllowAutoRedirect = true;
みたいなコードを書いておけばリダイレクト先のページ(書き込みました)のソースを取得出来るんでしょうか?
というか今はリダイレクト前?のページも何も取得できずに、Debug.Log("ERROR")だけが返ってくるのですが…
>>435 クラスライブラリで機能だけ作る
あとは適当に試して自分に会う奴を使う
>>439 あ、抜けてましたけど
ht["text"] = "hoge";
ht["text2"] = "hogehoge";
にはUrlEncodeかけてます、すいません
なので書き込みは問題なく行えてます
すみませんがちょっとの間眠らせていただきます
>>441 その機能がうまくいっているかを見るためには何を使えばいいですか?
CLIですか?
> というか今はリダイレクト前?のページも何も取得できずに、Debug.Log("ERROR")だけが返ってくるのですが… そこはERRORって文字列を出すところじゃない ex.ToString()を出すところだ というかステップ実行して例外の詳細を調べろ
WPFはいまだに理解できないから使わないほうがいいと思うわ
(自分が)WPFをいまだに理解できないから(自分は)使わないほうがいいと思うわ
WPFはかにかく客の評判が悪い。 客はUIのかっこよさは求めてない。
どんなソフトでどんな客層かなどによるだろ。いつものことだがバカだな
>>448 その中学生みたいな反論されてもね。自分で統計とってみ。
Ubuntuはシェアが激減したし、Win8は糞呼ばわりでWin7から移行する馬鹿もいない。 どんな客層向けに開発したUIなのか。実務をしないマカーだね。
明らかに統計が出てバルマーも失敗だと認めて退任するし、 UI責任者は責任を取って退職したんだから、今更WPF押ししても仕方ないじゃない。
見慣れないUIの時点で普通は警戒されるからな 使い勝手も変わるし その上プログラミングしてても意味不明だし 誰得感満載だなWPF
Formsでいい
むしろForms最高。
456 :
デフォルトの名無しさん :2013/10/15(火) 17:02:34.60
>>453 xmlでUI作れるってところだけでも価値はあると思うけどな
XML自体XHTMLで混乱を巻き起こしてHTML5で切り捨てられるような 人が読み書きするのに適してない形式じゃない
UIをHTMLやXMLで書けるっていうのはそれだけでメリット大きい 老害なみの頭の硬さじゃデメリットしか見えないだろうがwww
まあ書けないよりは書けた方がいいだろうけど それしか使えないのは何だかなあ、って感じ
バージョン管理で差分が取れるのは大きいな
htmlはともかく、xamlは別に必須じゃないが…。
xmlで書けるのはいいがxamlはコンパイル必要な時点でゴミ
xmlが糞遅いんだから仕方がない。
464 :
デフォルトの名無しさん :2013/10/15(火) 18:48:40.02
オーナードローに比べたらコントロールテンプレートで弄れるのは楽になったよな サイズの計算などやらなくていいし
つまりhta最強伝説
インターフェイスに互換性を求めるクズは惨殺されてギリギリ生き残ればいい 一生苦しんでしまえばいいんだ
メトロUI信者乙。
インターフェースって互換性が最も重要じゃないの? CUIのプログラムでバージョンごとにコマンドの仕様がコロコロ変わったら嫌だろ
win32apiがバージョン毎にコロコロ変わったのは嫌だったろ
ケースバイケースだな 互換性に拘るばかりに要らない制限できることあるし
いやMSの後方互換性重視は基地外レベルだろ WinAPIとか何十年前からだよ
ゲイツが説いたのはUIの統一性な。 ゲイツが退いてからのUIは右往左往しすぎ。
FormsとWPFだとどっち使う人が多いの? 多いほうが情報多そうだから多い方にする
ドウ考えてもform
今からやるんならASP.NET MVCにしとけ
WEBなんてやらんのだが
じゃあFormsで
Formsだな
でもWPFでオシャレなGUIにしたい気持ちもあるのよね あのFORMsのメニュー欄のポッコリ感とか ボタンのポッコリ感がめちゃくちゃダサいし でも、マークアップとかバインディングとか分けわからなすぎるし どうせ作るならオシャレにしたいじゃん?
お前は何を言っているんだ
そうして独自UIの糞アプリが出来上がりましたとさ
WPFはOSに合わせたテーマにもできるぞ Win8ならWinFormsでもポッコリしないが、WPF使えばWin7でもWin8風の見た目にできる
ゆーじんがWPFはWindows7のデザインにあってないとか言い出した
校内写生なつかしいな
Form使うくらいならMFCでネイティブでいけよ オシャレなGUIにしたいから、もっさり.NETでも仕方ないか・・・ って感じだろ
その発想、どっちも使えなさそうだなw
いい加減GDIはやめようぜ
CPUとSSDを同時に新調したんだけど IDEが一瞬で起動される どっちのおかげかはわからんがw
SSDだろうな。 SSDのノート買ったら、Win7が電源ONから10秒でログイン画面になったのには驚いた。
IDEなんて起動に何分かかったっていいだろ。一ヶ月に何度も落とすことないもんだし
毎日落とさないのか
win7のエクスプローラーのように動画をプレビューしたいんだけど 簡単にできますか?
静止画でいいならシェルから取れるよ。 IThumbnailCache
495 :
493 :2013/10/17(木) 18:48:01.66
裏で動画開いて使いたい場所のキャプチャ撮って使え
新規ならそのまま再生するだけでいいだろ。
C#の主舞台は業務システムですよ C#に限らずまともな言語は全部そうだけどね
ふーん具体的には?
荒れる流れの兆候
企業の中で動いてるやつだよ お前も病院とか図書館とか行ったら見覚えのないソフトがPC画面に写ってるのを見たことあるだろ? あれだよ
業務でC#? ありえない。
プロダクト名とかサービス名で挙げてくんない? 資料に書いて一発で分かる奴にしてくれ
計測器のクライアントソフトとかか?
煽り段階に突入しつつある
C#ってもともと業務向けの言語だろ 業務用じゃなかったらデーターベースとの連携を強化するようなことはしないだろ
何用とかねえから 森羅万象万物の記述に適してる言語
こんなフワフワとしてるから笑われるんだな
StackOverflowはC#/ASP.NETらしいね
そうそうそういうので頼むよ で、主舞台まだ?
StackOverflow産のDapperにはいつもお世話になってます
仕事したこと無い奴がいるみたいだなw
へえそれは大変だ ところで、主舞台まだですかね?
うぜーー
ほとんどの業務ソフトよりゲームの方が技術力を必要とする現実
大手運送会社の端末、ATM、病院なんかはC#だな C++より信頼できるのは確かだな
vb.netの間違いだろ。
LLしか使えない低能には敷居が高いだけ
C#ってLL並みに学習しやすくね 初めて触った時なんやこの使いやすさと思ったで
LLの中だと設計思想がPythonに近い感じだな 日本ではあまり人気が高くなかったり、超汎用的だけどWebだと今ひとつパッとしないあたりも
525 :
デフォルトの名無しさん :2013/10/18(金) 01:11:14.22
ASP.NETが気軽にLinuxに入れられるようになったら一般に普及しそうだがね ホスティングの選択肢がないからなー
linuxは一般に普及しまくってんじゃん 女子高生でもガシガシいじってるし 俺はiphoneだが・・・(´・ω・`)ショボーン
>>518 ゲームに技術力ってどの辺が?
ライブラリを作ってる側は技術力はいるだろうが、
ライブラリを使うだけの側に技術力も糞もないと思うがな
基地外はスルーしとけよw
100レスくらいの言い争いになると思ったのに意外と伸びないな
HTML5はダメ Flashは開発中止となれば これからはSilverlightの時代だよな
VS2013で何が変わったん?
だって煽っている奴が無知なんだから 荒れようがないww
533 :
デフォルトの名無しさん :2013/10/18(金) 15:20:53.18
>>531 ソリューションエクスプローラのアイコンが変わっているな
VS2012オワタ
いい加減デバッガからイベントハンドラーを呼び出せるようにして欲しい
VS2013はWPFもWinFormsも変化なし?
537 :
デフォルトの名無しさん :2013/10/18(金) 17:10:51.40
64 ビットのエディット コンティニュのサポートって書いてあるな
>>525 ASP.NET MVCの方は公式のがオープンソースだからMonoで使えるよ
MVCじゃない方はどうせイントラが主だからLinuxのニーズはそれほど大きくないのでは
539 :
デフォルトの名無しさん :2013/10/18(金) 22:46:43.91
>>538 やー、yum install aspnetとかで簡単に入れられないと流行らないかなと
>>476 その理由は何なんでしょ
頑張ればページ更新を軽くできるから?
PHPとかと考え方が同じだから?
541 :
デフォルトの名無しさん :2013/10/19(土) 20:40:36.33
>>540 476氏じゃないけどポストバック方式はオワコンというか
最近のAjax系のテクノロジーと相性が悪い。
出た当時はVB6のポトペタでWebアプリが出来上がるから
優れたテクノロジーだったけど
>>541 ありがとん、次の作業からMVCでいくわ
経験をつむために、練習で データベースを使ったWindowsフォームアプリケーション を作りたいのですが、ネタが思いつきません。 今までに作ったのは、スケジュール管理と家計簿です。 どなたかアイデアください。
そんなの窓の杜に腐るほどあんじゃん それらに勝つのは難しいから購入したほうが早いぞ しかも、ネイティブなんでC#みたいにもっさり感が無いw
経験、練習のためにって書いてるのに、勝つって何だよ
DB使うソフト(アイデア)なんて窓の杜に腐るほどあるじゃん ってことかと思って、確かにそうだよな、なんて思ってたらアホなこと言ってるだけだった
練習と書いてあるのに窓の杜とか、アホはどこにでもいるんだな。
>>543 スケジュール管理と家計簿できてるなら、簡単な DB 処理はできてるんだよね。
個人だと、住所録とか蔵書の管理とかかな。
日本語ネイティブじゃねえんだろ 察してやれ
成程
MSは.NETを推しているようだが なぜにoffice等のMSソフトは未だにネイティブで書かれているのですか?
551 :
543 :2013/10/20(日) 14:49:16.28
>>547 アイデアありがとうございます。
他の方もお願いします。
やはりどこか違和感のある言い回しだな 真っ当な教育は受けていないのだろう
>>550 高速化だろ
Visual Studio本体はネイティブだがヘルプビュワーはマネージだ
マネージは遅いってこと???
出来る奴のネイティブ>>出来る奴のマネージ>>>>>出来ない奴のネイティブ≒出来ない奴のマネージ 俺も含めてほとんどは「出来ない奴」側だから、マネージだろうがネイティブだろうが速度は変わらん
>>554 遅くない訳が無いじゃん
そんなことも分からないの?
センスないね、君
>>551 定期的に株価取りに行って溜めたデータでチャート書いたりするとか
これは伸びる・・・か?
出来るマネージってアンセーフは含むの?API使いまくり?
560 :
デフォルトの名無しさん :2013/10/20(日) 15:27:12.98
// 初期化 int div = 3; int[] array = new int[10000000]; Random random = new Random(); for (int i = 0; i < array.Length; i++) { array[i] = random.Next(); } { @ int[] ct_mods = new int[div]; for (int i = 0; i < array.Length; i++) { ct_mods[array[i] % div]++; } } { A int[] ct_mods = new int[div]; foreach (var x in array) { ct_mods[x % div]++; } } @、Aのように中括弧をこんな感じで使うことってあるんでしょうか? またこの場合の中括弧は無視されるということでしょうか? 調べようと思ってもどういったキーワードで調べればいいのかわからなかったので質問しました
もちろんあるわよ
窓の社のような万人向けのソフトほど使わない機能が多いし 必ず不満は出てくるでしょ いいところだけ盗んで自分に合ったツール作ればいいんだよ でも公開はしないようにね
>>556 なるほど、
>>550 を考慮すると
.NETはMS公認でドン臭いアプリケーションしか書けないってことねw
そりゃ、CADやCGで使えないのも無理は無いw
>>563 > .NETはMS公認でドン臭いアプリケーションしか書けないってことねw
はい、そうです。
君にはね
言っちゃなんだけどいちいちそんなの相手にする君もかなり可哀想なお方だと思うよ。 馬鹿じゃないの
はいはい一歩引いた視点で書き込む俺カッケーですね 言っちゃなんだけど、なんて予防線張ってるところがまた臭い なんなら初めから書くな馬鹿が
もういいから死ねよ って書くと殺してみろって言い出すだろうから住所書け 殺してやる
沸点低すぎwwwww
釣り客←センス君 ↑ 理解力君 ↑ 何なら君 ↑ カッケー君 どこまで伸びますかね
幼稚な言語にお似合いなユーザーの皆様ですね。 世間に出てこないでね。
>>560 >中括弧をこんな感じで使うことってあるんでしょうか
同名の変数を使うためならあまりすべきではないね
キーワードとしてはスコープ
switch文内で各caseで使い捨て変数がかぶるとめんどくさいので使っちゃうときはあるけど
初心者が勘違いすると可哀想だから一応突っ込んでおくけど、 そもそもC系の言語でブロック(つまり{...})の使い方にあんな感じもこんな感じもありませんw 質問者は恐らく、BASICみたいな言語のノリでifやfor等のキーワードの後に ぶら下がってる{...}を構文の一部だと思い込んでるんだと思うが、それは勘違い。
ブロックの先頭じゃないと変数宣言できない古い言語ならともかく C#ではあまりやらないかな スコープの制限って意味でも
おれは変数使ってる範囲が目でわかるようにカッコ使ってるな
書き捨てするようなプログラムの場合はたまに使うかな 一定範囲コピペして繰り返すような場合に。 まともに書く場合は関数にして分割するけどね
みんなどんなファイラ使っているの? プログラマが使うファイラがしりたい win7のエクスプローラはxpよりはマシになったけどまだ無駄が多いし 移動繰り返したりするときに面倒くさくなる で、最近あふwというのを知って気に入っているんだけど
本職だと変に環境弄れないからエクスプローラそのまんまでしょ
会社のWin7マシンはもうエクスプローラで事足りてる 言うほどファイル操作しないし 私用マシンは主にランチャ目当てでまめFile
バージョン管理するとファイル操作も気軽にやれなくなるしな 決まりきった操作を繰り返すなら自動化するし
いろいろ使ったけどUltraExplorerが最強だったね。 とっくに開発者トンズラしちゃったけど しかし、Vista以降のエクスプローラの、田ミ + Eで起動した直後にフォルダツリーに 入力フォーカスが当たってないふざけた仕様、いい加減改善しないかね。 MSとGoogleは何考えてるのか理解に苦しむ改悪が多すぎる。
糞ファイラにファイル壊されてからはエクスプローラー一筋
純正が安心だからエクスプローラそのまんま
モニタの一つは全部開いたフォルダで埋めてるからそもそも移動しない
エクスプローラとxcopy派
587 :
デフォルトの名無しさん :2013/10/20(日) 22:50:25.66
Cloverのお気に入りは便利だったけど若干不安定 そういやいつの間にかプログラミング.NET Framework新しくなってたな 高い。。。
お、いい話聞いた 今年の図書購入費はこれとnginx本にしよう
本なんて金の無駄だろ
static void Main(string[] args) { using (var sw = new StreamWriter(@"D:\hoge.txt", Encoding.Default)) { /* hogefuga */ } } ってコードを書いたら 'System.IO.StreamWriter.StreamWriter(string, bool)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。 とか言われたんだけどなんでよ
訳すと「Encoding.Defaultがboolじゃねーぞ。氏ね」
同じ内容でもネットより紙面で見たほうが頭に入りやすい
引数のStringとStreamを間違えてるに一票
if(typeof( Encoding.Default)==bool)) return;
(string, Encoding)をとるコンストラクタがないんだろう エンコーディングがデフォルトなら(string)だけでいいんじゃねえの
597 :
デフォルトの名無しさん :2013/10/21(月) 21:24:25.45
GetType()が無いオブジェクトでPropInfoが欲しいのですがどうすればいいですか 動的に決まるのでtypeof()も使えません
598 :
デフォルトの名無しさん :2013/10/21(月) 21:26:23.87
インテリセンスに出てこないだけで普通に使えました ありがとうございました
dynamicに使おうとしてるの?
600 :
デフォルトの名無しさん :2013/10/21(月) 21:42:32.49
いえ DbContext です 何で表示されないのかは知りません
坊やだからさ
charさんちーっす
あるスレで神扱いされている人のツールの機能を包括して機能アップしたものを そのスレに投下して邪魔するのが楽しすぎるwww 大抵そういうことしているのは学生で、しょぼいツールだから余裕で勝てるwww
ニートお疲れ様
気絶するほど悩ましいぜ
脳内スレ
知りすぎると死ぬぞ
愛されてばかりいると
vs2013 RTW落としたけど、標準で付いている黒のテーマいいね 他のソフトも全部黒を基調にしてほしいな なんで背景白なんだよ
2012からは淡色で使うのが辛い てか無理 カーソル行が見づらいし線が見づらいし眩しいし
確かにVSの黒いテーマは神 いろんなIDEやエディタを触ってきたけど、 それら全てのプリセットの配色の中でトップの出来だわ
>>611 だから、黒(というか濃色)の背景は目に悪いから。
伊達や酔狂で白背景がデフォになってるわけじゃないんだよ。
久々にこの話題か。目に悪いソースは?w
VisualStudioスレでやれよ それとも頭が病気か?治療が必要か?
極端に言えば、真っ暗闇からいきなり太陽を直視したようなもんだな 暗闇だと瞳孔は広がり光を多く吸収しようとする そんなときに明るいものをいきなり見る(別のソフトや画面に切り替える)などしたらどうか 網膜に傷をつけてしまうおそれがある いきなりはならないがその蓄積がやがて黒斑として現れるだろう
宗教でもやってんのか
直感的には黒背景も白背景も目に悪そうだけどそれをきちんと証明してるのは見つからないな
黒のほうが目が疲れないなんてのはIT土方なら誰でも知ってるだろ。実体験で。
黒の方が見やすい
熟練した秀丸ユーザーはもちろん灰色背景に黒文字だよな
x 実体験 o 大量人体実験
目が疲れる=目に悪いの?
黒背景に白文字は疲れるわ
映画に出てくるハッカーもみんな黒背景。
実体験()ばらばらワロタ
書類も書籍も背景白だけど目は疲れないな 明るいところなら背景白でも目は疲れない 暗がりで背景白にするから疲れるんだよ 瞳孔が開くかどうかは黒目の周りの光センサーで判断しているからな 本を読むときは明るいところで見なさい アニメを見るときは部屋を明るくしてみましょう 子供でも知っていることだぞ
一日16時間読書する馬鹿はいないが、土方は画面を見続けるのだよ。
つまり
>>70 は暗いところで16時間見続けてる土方か
631 :
デフォルトの名無しさん :2013/10/24(木) 04:20:13.78
VS標準の背景黒は文字が暗すぎて読みにくい
>>626 あれは単に歴史的背景ってやつだ。
昔のモニタはああいう配色しかなかったんだよ。
ブラウン管やプラズマや有機ELなどの発光系は黒が主体の方が効率的 初期の反射型液晶などの遮断型は白の方が効率的 バックライト型液晶だと制御によって変わってくる
液晶の黒画面だと画面にキモい顔が映り込むからだろう
グレア液晶使ってるプログラマいるのか?
普通に考えているだろ
グレア使って目が痛いとか言っているアホはどうしようもないな ゲームや動画を綺麗にみたいなら別途PC組めよ
いったい何のスレなんだよ死ねよ
オッケー死ぬよ
オッケーデスよ
WebBrowserのドキュメントの現在のスクロール位置を取得するためにWebBrowser.Document.Body.ScrollTopで取得と設定をしているんですが0が設定or取得されます どうすればいいんですか?
過去ログに同じ質問あったと思う。前スレかな?
過去ログの方を閲覧し実行しましたが無理でした 試しにScrollIntoViewもやりましたが無理でした
WebBrowser.Document.Body.ScrollTopでぐぐったらそれっぽいのがトップに出てきたけど 過去ログのとかぶってたりするのかな
あの質問したの俺だけどもらった回答じゃできなくて ググったら分かったので出来たと書いただけだから 参考にならないと思う。
ひでーwww
答え教えてやれよ・・・
ググれば解決するって事実が分かっただけでも収穫だろ
649 :
デフォルトの名無しさん :2013/10/25(金) 19:09:31.77
WebBrowser.Document.Body.ScrollTopでもう一度やってみたらできました
それだけでは不完全だよ
無駄にThread.Sleep(850)も挟んでしまいました
「これがないとなぜか動かない」ってコメント入れとけよ
しっかり書いてあります
uint u = 0xF0000000; int i = 123; var a = u & i; aの型は何だと思います? つーかどうしてこうなるの?
そういう仕様だからだ。
自分で試してみればいいじゃ。 ちなみに Int64 だった。
uint の範囲と int の範囲の両方を表現できる型で最も小さいのが Int64 だからでしょ。
なるほろ
数字リテラルって123u みたいに書いたほうが速いの? 123って書いてもコンパイル時に最適化してくれる?
リテラルはリテラルのままで埋め込まれて実行時に型が決まると思ってんじゃないの 違います
別にリテラルで処理が停止するくらい遅くても仕様どおり
何のめたにサフィックスがあると思ってんだ。
嵌りたくなかったらint以外はとにかくサフィックスつけろ、var使うな。これにつきる。
>>660 コンテキストによる。代入ならしてくれる。演算ならしてくれない。
implicit operatorがあったりすると処理が変わってくることもあるな
俺intも出来るだけInt32使ってるはw
intに関してはむしろintの方がInt32よりも実際の意味を正しく表してるけどな Int32のエイリアスだと言いながらも実際にはint/Int32は特別扱いされるので厳密に言えばInt32型になるわけじゃない Parseとか呼ぶときは実際にInt32のメソッドを呼んでるのでInt32が自然だけど
型としてのintとInt32は同じ意味で、どちらもInt32じゃなくて特別なプリミティブ型(int32)になる メソッドを呼ぶ時だけはInt32型として扱われる だったはず
どう特別なんだよ
>>671 コンパイル結果をildasmして見てみればわかるが、ILのプリミティブ型になる
intとshortってshortの方が速度早いの? あまり変わらないって聞いたんだが
>>673 intの方が通常速いよ
ガチな数値計算で大きな配列に繰り返しアクセスするようなケースで
メモリアクセスがボトルネックになっているときは、
キャッシュに乗りやすい分shortの方が速くなるかも
バイナリIOに時間がかかっているときは極力サイズを削った方が当然速くなる
8bit CPUでも使わない限りたいした差ないだろ。あれ8bitのC#プラットフォームないか
少なくともx86だとワードだろうがロングワードだろうがメモリアクセスも演算も 速度一緒じゃないの?
乗り遅れてる話に参加しなくてよい
WCFってこれSystem.Netじゃ駄目なの? Configファイルがあったりと逆に面倒そうなんだけど
x86の15ビットだとレジスターが16ビットだから、shortとlongは速度差が相当あった windowsの32ビット対応は95からだし、本格対応は2000から
>>677 メモリアクセスは配列の連続アクセスとかなら当然サイズ小さいほうが速いよ
eventを含むインターフェースを明示的に実装する場合、eventを自動実装できないんですか?
そだよ
なんで自動実装してくれないんだろう。 何か技術的な問題があるのかな?
同名のイベントを持つ複数のインターフェイスを実装する interface IHoge { event EventHandler Piyoed; } interface IFuga { event EventHandler Piyoed; } public class Foo : IHoge, IFuga { public event EventHandler Piyoed; event EventHandler IFuga.Piyoed; } そうするとIFuga.Piyoedを発生させることができないんだな ((IFuga)this).Piyoed(this, EventArgs.Empty); と書けるように思えるかも知れないけど、 自動実装されたイベントデリゲートはこういう呼び出し方が許可されてない
ひょっとして.NETが時代遅れになったら土方はCOMと.NETと新しい技術を相互運用しないといけないのか? 嫌になるね。レガシーアーキテクチャへの保証なんかさっさと切り捨てればいいのに
お金になるんで
689 :
デフォルトの名無しさん :2013/10/29(火) 19:29:07.85
COBOLみたいな存在になんの?
>>687 すでにstoreアプリのwinmdが次世代COMって位置づけになってるね
desktopアプリにも落ちてくるかな
>>681 ストレージならそうだけどメモリは違うでしょ。
DMAみたいのはどうだか知らないがCPUが自分で読む限り同じなはず
その辺にしておかないと恥かくぞ
何のこっちゃ。 馬鹿はいつもそれだな
メモリアクセスだって時間かかるんだぞ。ストレージだったら時間かかるってのが分かって、 なんでメモリで時間かからないと思うんだよ。黙っとけってwww
x86のアーキテクチャーを詳しく知ってるわけじゃないが、普通に考えれば ワード命令もロングワード命令も実行時間は変らないはず。 これは今時のCPUでないと思うが、むしろワードだとアドレスが4n+2の時 上位と下位のワードをスワップする必要があってむしろ遅くなる可能性すらある。
>>695 が言ってるのはCPUがボトルネックの場合の話だろ
メモリがボトルネックなら配列要素のサイズが小さければ
連続アクセスのキャッシュミスが減って速くなる可能性があるよ
x86ではlongはmov二回になるよ。
ガチな数値計算だと、連続してアクセスされやすい領域をわざわざソートしてまとめて キャッシュに乗りやすくすることでメモリアクセスを速くしたりするんだぜ CPUのキャッシュを考慮するのはHPCでは普通に行われる最適化
>>697 ワードは16ビット、ロングワードは32bitのつもりで使ってる。
妙な用法だけどx86の世界では伝統的にそうだったと思ったけど。
x86ならword、dword、qwordと言え。
IDが見えない板で紛らわしいオレオレ用語を使うんじゃねえよ
>これは今時のCPUでないと思うが、むしろワードだとアドレスが4n+2の時 >上位と下位のワードをスワップする必要があってむしろ遅くなる可能性すらある。 64bitCPU時代にInt32は終わったな。
703 :
デフォルトの名無しさん :2013/10/30(水) 05:06:15.20
ID強制表示にするだけでだいぶまともになると思うんだけどなこの板
VC#2010Expressを使っているんですが F5でデバッグ開始してプログラムが起動しているときに Console.Writeで指定した変数の中身をどこかに出力させて確認する方法ありませんか? ブレークポイントだと一回一回処理が止まってしまうので困ります 現状はTextBoxを配置して、textBox1.Text += hensuu+"\n"みたいな感じで出力させています
ConsoleWriteはIDEの出力ウインドウに出る
>>704 stackoverfrow を allocconsole で探す
そういうウィンドウがあるのはじめて知りました デバッグ->ウィンドウ->出力でウィンドウが表示されました ありがとうございます
allocconsoleっていうのも調べてみます
あとSystem.Diagnostics名前空間のDebugとかTraceとかも使うと良い
今まで出力見ないでデバッグしてたのか
なんでお前らそんな詳しいんだよ
3年ROMってろ いや割りとマジで
初心者専用スレなので今日はじめたばかりの方も大歓迎です。 質問はデバックからマルチスレッドまでなんでもok。
>>710 >現状はTextBoxを配置して、textBox1.Text += hensuu+"\n"みたいな感じで出力させています
まあこれはこれで新しいバグのもとになったりするが
趣味の範囲ならデバッガ脳でいいんだよね?
網目、ネットを表現するデータ構造ってどれですかね?
自分で作れ
719 :
デフォルトの名無しさん :2013/10/31(木) 10:45:06.22
フィールドで以下のような宣言があるのですが static TestClass testClass; クラスを型として扱ってるんですか? 何でググればいいかわからなかったので質問しました
クラスが型でなければ何なんだ 質問の意図が分からん…
そりゃクラスは型ですから 型を型として扱って何があかんのですか
そういう疑問に至った前提が知りたいなあ C#初めて?オブジェクト指向は?今までどんな言語を?
初期化子が無いのを気にしてるんじゃ無いのかな static TestClass testClass = new TextClass(); とか static TestClass testClass = null; なら納得するとか
型って値型、参照型のこと言ってんのか?
そんな高級な話じゃなくて、変数ってなに? みたいな話じゃねーの
Javaと違うって話じゃねーの
TestClass testClass ↑これは型(クラス) ↑あれ?これもテストクラスって名前。型なの??? ってことだろ
つまりそれはTestClass型の変数testClassだよって言えばよかったのかな
大文字小文字区別する言語ってのはさすがに知ってるだろ! とはいっても TestClass TestClass; 型名と変数名を同じにすることは許可されてるからなぁ
初心者用とは書いてあるけど 初心者に毛の生えた連中がたむろする場所じゃないぞ
わからないことをネットで検索して調べると偏った知識になるからな 基礎をしっかり学ぶにはやっぱり入門書1冊購入することをすすめるよ ほんとに1冊それだけでいいんで、あとはぐぐっていけばなんとかなるし ある程度プログラム組めるようになっても 「オブジェクト指向とは何か?」 という問いかけに答えられない奴がいたりする おそらくここの半数の人間は答えられないだろうね
趣味プログラマはやりたいことを優先するから行き詰まるんだよね 学校の勉強でもそうだろ? 目的の前にまず基礎を学ばせる 多くの人はなぜこんな勉強しなければいけないんだと思って脱落するんだけど ここをしっかり学習しておくと、目的を達成することができるようになる こういうことは大学行けるぐらいの知能があればわかることなんだが そういうこともわからない人が多いよね
( ´,_ゝ`)プッ
あほが来たなw
空気脳のご意見有難うw
>>733-734 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
>>739 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
>>740 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
空気脳が必死の自演w
>>742 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
あほなだけじゃなくて基地外だったなw
745 :
デフォルトの名無しさん :2013/10/31(木) 17:05:01.91
仕事のプログラマより趣味グラマのほうがレベルは高い これが真理
趣味グラマはネット上で大きな淘汰圧に晒されるけれど 職業プログラマはリアル世界で雨後の竹の子のごとく現れるからな
マ板行け
>>748 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
>>745 趣味だと大規模ネットワークとかコスト的に無理じゃん
そういう経験ない素人を技術力あるとは言えないな
nyの奴とか趣味で大規模p2p作ってんじゃん
.Net4.0と.Net4.5は共存できないのですが .Net4.5で作ったプログラムはNet4.0の環境では動かないのでしょうか?
ほぼ動く
>>755 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
>>756 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
>>757 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
>>758 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
幼稚だね
>>760 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
マ 板 で や れ
>>762 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
うざっ
>>764 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
強制ID早く来ないかなー
>>766 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
趣味でコード書いてる奴は中高でソフ開受かっちゃうし。
あんなもんそこそこの大学出た文系学生が未経験でIT入って一、二年目で取れる
>>769 こういうこと言うやつってプライドが無駄に高いから分からないことがあっても人に聞かず、
知識はあっても実際のプログラミング能力がプライドほど高くないからソースが書けない
職場にいたら迷惑な存在だよな
ちゃんと全レスしろ
Int128 作りたいんだけどんな感じに実装すればいいんでしょうか。
class Int128 { int64 nhigh,nLow: } って感じに
Decimal使ってろ
>>772 除算の実装だけはちょっと面倒だけど他はどうってことない猿仕事だと思うけど
Int512作りたいんだけど
固定長にこだわりすぎだろ
Int1028作りたいんだけど
それじゃ4ビット足りなかったんだろw
win32apiを呼び出す時にたまにvoid**を引数に取るメソッドが ありますが、あれはC#では、どう書いたら良いでしょうか 一応、自分はプログラミング言語はC/C++から入ったので ポインタのアドレスを渡すのは解るんですが C#での書き方がわかりません。 どなたかご教示願います。
複数の書き方があって場合による ポインタを受け取るためならout IntPtrが基本
>>750 大規模ネットワーク (某キャリアの呼制御) やってたけど、一人が全部やる訳じゃないし、そもそも信頼性が要求されるから、技術的に最先端とかやらない。
枯れた技術でこつこつ積み重ねる。
職業プログラマーなら誰でも知ってることだよ。
むしろ、規模は大きくないけど大学とかの研究室に納めるような機器の方がずっとレベルが高い。
>>781 そのapiの仕様によるかな。
他のパラメータで返ってくる値の型が決まるなら、
DllImportの宣言で型指定した専用の宣言をしてしまったり。
>>786 どこから "数学" なんて出てくるんだよ。
ひょっとして、難しいこと ≡ 数学 って言う、数学コンプレックスなの? (w
なんで==演算子とEquals(object)、Eauals<T>の三つもあるんですか?
>>788 最近C#さわってなくてjavaさわってるけど
==は、インスタンスのハッシュ値が同じなら
trueで、equalsは独自でoverrideして定義する。
カスタムイベントがわからん
何が分からんのか分からん
コントロールとか コントロールのプロパティやアイテム などを変更したり追加したりする場合、 Form1.csに全部書くとメンテナンスしにくいので それぞれ別ファイルに分けたいのですが こういう場合はどうやるのでしょうか?
splitContainerやTabControlを削除する場合、その中に含まれるコントロールを先に削除し解かないとメモリ上に残り続けますか? 一応、含まれるコントロールを全て削除してからsplitContainerやTabControlを削除してますが・・
別のcsファイル作って public partial class Form1 : Form {} って実装書いてやっても動くよな だけど、フォームデザイナがその追加した方のcsファイルだと誤動作するw
フォームデザイナー便利なんだけど勝手に変なことするのやめて欲しい
>>794 親コントロールをDisposeすると子コントロールもDisposeされる仕組み。
Panel p = new Panel();
Control c = new Control();
p.Controls.Add( c );
p.Dispose();
bool f = c.IsDisposed; //true
あと一般的に参照が切れればいつかはガベコレされる
ガベコレ=ガーターベルトコレクション
そうでしたか 親コントロール消すときは無駄なことをしないようにします
あ、TabControlでtabをremoveした場合も当てはまりますか?
button1.Tagにnew object{1,2,3}を代入したんですが button1.Tag[0]で値が取れるのかなと思ったら >角かっこ [] 付きインデックスを 'object' 型の式に適用することはできません ってエラーになります どうやってTagに代入した値を取得できますか?
object[]にキャストしないと
おおおできましたありがとうございます object[] Tag1 = (object[])button1.Tag;って書いたら Tag1[0]で取得できました でもなぜか (int)(object[])button1.Tag[0]とか (int)((object[])button1.Tag[0])だとダメなようで一度変数に格納しないとダメなんですが書き方間違ってますか?
演算子の優先順位考えないと駄目 (int)((object[])button1.Tag)[0] C#のキャスト演算子は順位が低めだ
おおなるほど、勉強になりました
演算子使う時にカッコ付けない奴は信用出来ない 必ずミスが人より多いからプロジェクトから排除した方がいい
((a + (b * c)) - d)
((((;゚Д゚))))
((L + (^ * ^)) - d)
(*)
C:\a\b\dir (dirはフォルダ) C:\a\b\file.txt こういうパスから最後の dir file.txt を取得したいのですが \で分割して、配列のサイズから1引いた数をインデックスにして値を取得するっていうのは思いついたんですが 標準ライブラリでこういうのを取得できるメソッドを教えてください
System.IO.Path
Path.GetFileNameでできました
Uriも一応使える
Entity to SQL で単純なカウントする場合、context.TableName.Count()ってしてるんだけど、このカウント処理って .NET側で実行されてる? それとも"select count(*) from TableName"が実行されてる?
何のためのQueryable.Countだと
win7のエクスプローラの↓のアドレスのようなのはどうやって作るのですか? コンピュータ▼D▼音楽▼
ボタンやメニューをオーナードローして組み合わせたコントロールをゴリゴリ作るか、 Win7限定でいいならもしかしたらIDeskbandか何かでwindowsのコントロールをそのまま再利用できるかもな
すでにその型なのに同じ型でCastしちゃうと処理が重くなったりするんですかね?
重くなってから判断すれば?
無駄キャストは最適化を許可してなくても最適化されてILから消える 実行速度には全く関係ない
かゆいところはoverrideしないとダメなのって面倒くさいんですが MSはそういうの改善してくれないんですか?
>>824 ここに書いてもMSには伝わらないだろうが
改善案があるなら教えてくれ。興味がある。
汎用ライブラリが俺仕様になってないから改善しろっていうわけ? 病院いけ
シェルで採用してるUIぐらい標準コントロールで用意しろってことだろ UIの統一性って意味合いからしてもそっちの方がいい
アドレスバーはoverrideしてどうにかなるレベルじゃないから別の話だろ
標準ライブラリに含めるほど汎用性のあるものとも思えんけどね。 どのみちあのUIの登場はWindows Formが事実上メンテモードに入った後だから 少なくともWindos Formに追加はまずありえない。 というか、WPFならテンプレートの再帰的適用を使えば簡単にできそうだな
一応言っておきますけどアドレスバーの質問した僕と
>>824 は別人ですよ
>>830 そんなこと別に誰も聞いてねえよ
優等生タイプかよ4ね
api code packはオワコンなの?
833 :
デフォルトの名無しさん :2013/11/02(土) 18:22:07.09
インボケーションリストってなんですか?
デリゲートが実際にどのインスタンスのどのメソッドをどんな順番で呼び出すかのリスト
向こうでは答えてもらえなさそうなのでこちらで コントロールのスタイルをいじっているんですがうまくできません ComboBoxやListBoxでマウスオーバーのとき青いハイライトになります なぜスタイルの設定が反映されないんでしょうか?
でも756はスルーするんだね
見てきたけどあんなんじゃ分からんよ 悪いけどここでも無回答だ
スタイル設定してもOSのデフォルトのハイライトが優先されるんです 多分WPFをそこそこやっている人ならだれでも知っていることなんでしょうけど それの対処方がネットで探しても情報が少なくてわかりません
向こうに書いたけど基本的にStyleで大したことができると思うな ControlTemplate使え
WPFはこういうところが回りくどくて嫌だな
やらしい顔w
C#はAnyCPUでコンパイルすると32bitと64bitどちらでも動きますが なぜなんでしょうか?
JITコンパイルでググれ
そっかJITだからか ありがとう
ある意味インタプリタなんだからそりゃ動くだろ
どんな意味でもインタープリタじゃないからアホか
ある意味ネイティブだからな
ある意味ある意味
851 :
デフォルトの名無しさん :2013/11/04(月) 17:22:49.91
クラス名にSharpという単語を使っている例をたまに見ますが どういう意味で使っているんですか?
「誠意と創意」 Wikipediaより引用
853 :
851 :2013/11/04(月) 17:39:02.18
>>852 誠意をもって創ったクラスということですね
ありがとうございました!
笑わせるな
真面目に教えてやれよ
エスパーさん出番ですよ
VM起動してるからじゃねーの
速度の差はCと比べて1.3倍しかないぞ
最初はじっとしてるからだよ
審議中
1.3倍遅くなる内訳ってどんなもの?
1.3倍だけど適当にforでしか試してない すべて足し算で C++/CLIだと1.15倍
もっと何かMSが出してるデータでも出てくるのかと思った 拍子抜けと失望感
所詮便所だと思いねえ
c#で速度気にするとコードがc++よりはるかに汚くなる。
C#とかでポインタ使いたくない
ボトルネックになるならCで書きますしおすし
ですよねーFFI万歳
1.3倍というののうちわけで思いつくもの ロードするDLLやサブシステムが多くて初期起動に時間がかかるとか じっさいJITにかかる時間よりこっちの方が時間食ってる グラフィックにGDI+系の重たいの使ってるからその分重く感じるとか C++でもGDI+使えるからそれ使えばほぼ同等 .NET4以降だいぶ改善されたんだけど、コードセキュリティモデル(CAS)がらみの オーバーヘッドが大きかったり ほか細かいのの積み重ねだね JITとGCのせいだけじゃないよ この2つは意外と軽い
長時間起動できるプロセスならその辺を償却して限りなくCに近くなるって認識でよいのかなん?
あとは最適化の問題ぐらい
最適化っていえば今のJITって使えるならSSE4とかAVX使うようになってんの? VC++は確か2012からデフォルトでSSE2になったんだったか
874 :
デフォルトの名無しさん :2013/11/04(月) 20:22:24.47
enum型と列挙型って同じ意味ですか?
あとngen.exeとかってようわからんのだが
>>873 まだベクタ化はサポートしてないから、SSE2のスカラサポートどまりじゃないかな
自動ベクタ化するかMonoみたくSystem.Simdでベクタ型を導入するか悩ましいとこだろう
>>874 そうだよ
>>875 JIT相当の処理を事前に済ませておくツール
JITに対してAOT(ahead of time)と呼ばれる手法
コンパイルしたものはユーザーが触らないように妙な場所妙な名前で保存される
期待するほど起動が早くならないのは
>>870 のとおり
ngenで起動が速くなるのは起動に必要なコードだけを優先的に読みこむよう 最適化が行われるからだよ IOに比べればJITのコストは無視出来るので、実はJITと起動時間は一般的に信じられているほどは関係無かったりする
最適化の小細工なしだとngenの方がバイナリサイズが膨らんで ディスクからの読み込みが増えて逆に起動遅くなったりする
すいません、ちょっと教えてください
エラーが出ていますが大まかに以下のようなプログラムを書いています
ttp://ideone.com/OZOusC 9行目のwhileループの中でキー入力待ちとなりますが、
この時に押した文字が18行目のConsole.ReadLineに入力されてしまうのですが
これを入力させないようにするにはどうすればいいでしょうか?
今の状態だとDを押し、12行目のif文に入ると
-----
Dが押されました
d(入力待ち)
-----
と入力待ちにdが表示されてしまいます
これを
-----
Dが押されました
(入力待ち)
-----
という状態にしたいのですが
意味が分からんが、入力されたキーをコンソールに表示させたくないってことでいいのか? Console.ReadKeyで表示させないようにはできるが
KeyDownじゃなくれReadKey使ってエコーバック防止しろ
Windowsサービスのngenは無差別にngenかけるサービス?
すいません、何分素人なもんでうまく伝えられてないかもしれません ReadKeyですか、やってみます。ありがとうございました
うーん、確かにConsole.ReadKey(true);で文字はでなくなりましたが 実際のwhileループ内では他の処理も行っているので、 処理がそこで止まってしまうReadKeyはちょっと使えませんでした 何か他に手段はありませんでしょうか?
別のスレッドでやれ
マルチスレッドしろ
スレッドを分けるしかないですか ありがとうございます、やってみます
スレッドを分けるしかないですかって スレッドわければいいだけなんだから つべこべ言わずやれよ
酷いなお前w
>>892 クッソワロタwwwwwwwwwwwwww
くっさ
くっさ
くっさクッソワロタもやめろ ここはVIPじゃねーんだぞボケが
答え教えろやボケェ!
自己解決しました もうお前らには頼みません さようなら
ソースレベルで展開してくれるテンプレートないの? Genericsは制限多くてまもとに書けない。
>>884 GACにあるやつで更新されたものだけネイティブイメージ作成するんじゃね?
どれぐらいの規模のツールを作るときにWPFでやろうって思う? 例えばテキスト検索ツールを作る場合WPFで作ります?
>>890 IsKeyDownがSTAでしか使えないので、マルチにするとなると手直しする場所が多く
ためらっていました。申し訳ありません
>>892 ありがとうございます、参考にさせていただきます
マルチでもSTAいけるよ
gacとネイティブイメージキャッシュは別
なんで static virtual とか static override とか static abstruct とかできないのん?
なんだGACは関係ないのか ようするに自前でやらないといけないってことか WindowsUpdate後にガリガリ始まるのは更新があった場合 更新のインストーラーがキューに追加してるってことかな
bを変えるとsenderも変わる理由が分かりません。 private void button1_Click(object sender, EventArgs e) { Button b = (Button)sender; b.Text = "hoge"; } 下の書き方だとaは変わらないのでキャストすると参照渡しになるのでしょうか。 string a = "fuga"; string b = a; b = "hoge"; よろしくお願いします。
上と下は全く違うだろ Button a = new Button(); Button b = a; b = new Button(); とか言ってるようなもんだぞ・・・
おれも衝撃的だったな。リードオンリーにする方法がないんだから。
>>913 Button a = new Button(); と
Button a = (Button)sender; の違いがわかってないんだと思います・・・
>>912 キャストがあろうがなかろうが同じだよ
private void Hage( Button button )
{
Button b = button;
b.Text = "hoge";
// button.Text も "hoge"
}
private void ChangeText( Button button ) { button.Text = "hage"; } private void ChangeButton1( Button button ) { button = new Button(); } private void ChangeButton2( ref Button button ) { button = new Button(); } private void ChangeValue( Point pnt ) { pnt.X = 123; } private void ChangeValue2( ref Point pnt ) { pnt.X = 123; } さあどうよ
Buttonがゲシュタルト崩壊したは ぶっとん……
>>917 >>918 理解出来ました。
分かり易いコードありがとうございます!
a.Text = "hage"; と
a = new Button(); は確かに全然違いますね・・・
>>912 hogeなんて使うから、筋金入りのC/C++屋かと思いきやw
public Action Foo() { string s = this.Text; return () => { sを参照するコード } } 最適化でsが削除されて、this.Textに直接アクセスするような最適化が起こる可能性はありますか? 要はFooを呼んだ時点でのTextの値をデリゲートで使用したいのですが それは保証されるのか知りたいです。
最適化に関する質問は専任の担当者がお答えします
なんで英単語を中途半端に日本語に訳すんだろうな Classをクラスって訳したり、Classのままでいいだろ Delegateをデリゲート まあここまでは日本人が聴きやすい発音に変えただけでまだましだが こういうのも実は嫌い、英語で話すときに日本語訛りになる原因だからな namespace 名前空間 こんなの訳す意味あるのか?小学生で覚える単語だろ それに名前空間の方が打つのも発音するのも時間がかかるし 訳す意味がわからない 日本人って大変だと思うわ namespace ネームスペース 名前空間 3つの表記を覚えなきゃならないんだから
922は最近オブジェクトのコピーオンライト実装を 教えて貰ったので調子に乗って 「おまえらが知ってるかどうかテストしてやる(w」 って書き込んだ厨
実装ってなんですか?
>>924 おじいちゃんが読めないとゴーサイン出ないから仕方ない
>>924 楽譜もそうなんだよな、、、
日本語と英語とドイツ語とイタリア語が混在することが多いw
Comparer<自作クラス>.Default から 自作クラスComparer を取得したい場合ってどういう風に実装すればいいの?
class 自作クラス : IComparable<自作クラス> ってことじゃなくて?
Comparer<自作クラス>.Default.GetType()ってことか? 知っても何の意味もないとは思うが
>>929 Defaultを使ってる既存のクラスに自作Comparerを食わせたいってことか?
普通IComparer<T>使うときは引数にIComparer<T>を受け取るようにしておいて
オーバーロードで void Hoge() { this.Hoge(Comparer<T>.Default); } とするもんだ
これ以外のComparer<T>.Defaultのユースケースは無いと言ってもいい
設計ミス
>>932 そういうこと
例えば、new List<自作クラス>.Sort()とかで、引数の指定を省略できないかなと・・
IComparableだとnull時の比較ができないし
やっぱ無理か
IComparable側で同じロジックを使うようにしとけ
935 :
932 :2013/11/05(火) 22:09:39.30
思いついたんだが、拡張メソッド使ったらできそうだな Sortとかのインターフェースがないからクラス毎の実装になるけど
936 :
デフォルトの名無しさん :2013/11/05(火) 23:10:14.65
>>924 ,927,928
明治くらいからの先陣の流れかねえ
Delegateは委譲で理解の助けになったけど
未だに慣れないのは可用性availabilityだな
楽典だとメロディ、リズム、ハーモニーが旋律、律動、和声だっけ?
Square Waveが矩形波、Saw Waveが鋸歯状波とかイメージできないね
流石にそれはイマジネーション不足じゃないかと
>System.OutOfMemoryException: 種類 'System.OutOfMemoryException' の例外がスローされました。 x64にしたら解決しますか?
残念なことにメモリ不足とは限らないので絶対じゃない
x64にしてもダメでした。8GBメモリがあるのに3.6GBで落ちました。
OutOfMemoryException 翻訳「おめえにやるメモリはねえよハゲが」
x64にしてもあっちこっちに32bit制限があるから無理みたいだね。
4ギガあると2ギガ以内で落ちるから大体半分くらいで落ちるんじゃないだろうか
16GBなら8GBくらいまで使えるん?
たぶん
Listや配列を二分割にすればいけるのかな?
947 :
デフォルトの名無しさん :2013/11/06(水) 11:51:45.96
4GBあっても4GBフルに使えるわけじゃないからな
x86でも64bitOSなら3GB以上使えるってことで良いのかな?
特に設定してなきゃ2GB上限だと思うが
950 :
デフォルトの名無しさん :2013/11/06(水) 13:17:21.14
相手のIPアドレスがわかれば そいつの回線に対して負荷かけることって可能? スレチなのはわかってる
952 :
デフォルトの名無しさん :2013/11/06(水) 14:03:35.96
.NET4.5(64bit版)からの機能で 2GBより大きい配列を有効にするというものがある。 参考までに。 ただし配列要素の最大数はUInt32.MaxValueで変更なし。 *.exe.configの<configuration><runtime>で <gcAllowVeryLargeObjects enabled="true" />
954 :
デフォルトの名無しさん :2013/11/06(水) 15:40:18.07
超絶初心者です TextBoxクラスはTextプロパティをオーバーライドしていますが public override string Text { get; set; } msdnでTextBoxが継承しているTextBoxBase クラスのプロパティを見ても Textプロパティが見つかりません 一体全体どこのやつをオーバーライドしてるんですか?
>>954 TextBoxBaseは何かを継承してるだろ
継承関係をどんどんたどって行け
TextBoxBase.Text プロパティ あった・・ 早とちりしました・・
Control.Text プロパティが 最終地点でした ありがどうございました
overrideがついてるものは さらにoverrideできるってことですね なるほどなるほど 勉強になりました
959 :
デフォルトの名無しさん :2013/11/06(水) 17:55:48.18
C#初心者です。 配列などをなどを使用している訳ではないのですが、 process is terminated due to stackoverflowexceptionといったエラーが 起きてプログラムを実行できません。 何か解決策など無いでしょうか。
おそらく無限ループ 自分自身を呼んでるか、交互に呼びあって一向に抜けない状況だろう。
とりあえず呼び出し履歴ってウィンドウを開け
>>950 受信より送信帯域の方が低いから相手に負荷掛けてるつもりが
相手は余裕、こっちが先にダウンってオチ。だから複数から同時に攻めなきゃ
ウィルスとか使って他のホストを乗っ取って攻撃に使うのが定石だよ いわゆる踏み台攻撃ってやつだ
くだらないことを教えなくてよろしい
やろうとしてることが既にウィルス並にやっちゃ行けないことなんだが。気が付いてないのか?
図書館に1Hzでアクセスするだけで犯罪者の世の中なら大差ない
127.0.0.1に攻撃する気なんだろ
ニコ生関連のツールはこぞってC#製なんだけど、何か理由でもあるの? ログインライブラリがC#で作られているからかな
C#でVMWareみたいなアプリを作りたいのですが どこから調べていけばいいの? 仮想OSを動かすようなコントロールがどこかにあるんですか?
ツマンネ
アセンブリでも勉強してろ
どうしてもわからないので教えて下さい DataGridViewでキーボードの↓を押すと選択が移動しますが 選択はそのままでフォーカスだけ移動するようにしたいのですが どのようにすればいいですか? ↓、Space、↓、↓、Space このようなキー操作で2行目と4行目を選択状態にしたい
Ctrl
Crtl+↓のことを言っているんでしょうか? 最後の行に飛ぶだけでした
アセンブリにバージョンがある クラスにはバージョンを指定する属性ってないの?
作ればあるよ 認識してどうこう動作するってのは無いが
980 :
デフォルトの名無しさん :2013/11/07(木) 18:45:37.64
初心者です。 Button.Click イベント Button コントロールがクリックされたときに発生します。 とありますが 発生とは具体的に何が行われているんですか?
普通のデリゲート実行とおんなじ
そこらはウィンドウプロシージャでも調べろ
Button.OnClickメソッドが呼ばれたに決まってるだろ! jk!
984 :
980 :2013/11/07(木) 21:18:23.63
うまく説明できませんが メソッド呼ぶときはTest();というように書くので クリックイベントはClick();がどこかで呼ばれてるんですか?
然様
このスレ役に立たないね 虫けらが初心者いじめて楽しむだけの陰気なスレ
987 :
デフォルトの名無しさん :2013/11/08(金) 00:05:28.83
981の言う通りだぞ もしWinFormsを使ってるならDesigner.csファイルをのぞいてみろ イベントハンドラの仕組みをデリゲートを利用して実現してるが 簡単に言うとシステムから呼ばれてる
>>987 ちげーよ
フレームワークじゃん
嘘教えんなよ
WndProcの非常に薄いラッパーなので、 システムというのもあながち間違いではない
つか、奴は
>>986 を言いたいだけのいつもの屑だろ
.NETはWin32APIのラッパーじゃないの? WndProcにDefWndProcまであるし 少ししか触ったことないがJavaにはそういうのないよね?
SWTにはあるよ
次スレはよ
この説明の下手さ加減といったら・・・ C#のデリゲートを説明するのにC++やJAVAを例えに出すのと同じ ボタンのイベントってなんですか?レベルの人にデリゲートだWndProcとか言って 説明できたつもりなのかよ・・・ プログラマってコミュ力低いなとつくづく思う
俺がわかりやすく答えよう
>>980 イベントはチャイムみたいなものだよ
チャイムが鳴った場合、どう対応するか?
その部分を自分で書くことになるわけ
コントロールがあるイベント(ボタンクリックイベントなど)が発生したことを通知してくれるお陰で
プログラマはそのイベントにあった処理書いて実行することができる
でも必ずイベントが発生するとは限らない
ユーザーがボタンを押すとは限らないし、どのタイミングで押すかどうかもわからない
仮に押されたとしても何の機能も用意していなくてもエラーにならないようにしたい
そういうときにイベントというものが使われる
996 :
デフォルトの名無しさん :2013/11/08(金) 03:05:45.25
先にも述べたようにコントロールとコード間はイベントで対応できるわけだが コード同士でもそういった機能を使いたいときがある 例えば、「Delegate」という文字列を検索するクラスを作り それを別のクラスから利用する場合を考えてみよう 当然のごとく検索方法をいろいろ変えてみたくなるだろう 大文字小文字を区別させたい、正規表現を使いたいなど その場合、検索クラスを直接書き換えることで対応もできるが 他のプロジェクトからもその検索クラスを利用していた場合、 検索クラスのコードを変えてしまうとエラーやバグの原因になる 結局他のプロジェクトも書き換えないといけなくなるハメになる しかし別のクラスから検索する方法を与えることができれば、検索クラスはいじらなくて済むようになる 検索クラスを直接いじらなくても、検索方法を変えられるようになれば どのプロジェクトからも利用できる。つまり再利用性が高いと言える もちろん検索方法を変えないで、デフォルトの検索方法を使ってもいい このようにコード間である機能を与えたりするときにデリゲートを使う ○具体的なプログラムの流れ 1.メインクラスで検索クラスの検索メソッドを実行する 2.検索クラスは検索方法が新たに登録されているかどうかを確認する(ここはボタンクリックイベントが発生する部分に該当) 3.登録されている場合、検索クラスはそちらに検索の方法を任せることにする(委譲する) 4.メインクラスで検索方法を示したコードが実行される(クリックイベントハンドラに該当) 5.検索クラスはメインクラスで示した検索方法に基づき検索された結果の値をメインクラスに返す
例えばイベントやデリゲートに該当する機能がなかったとする この場合どういうことが起きるか マイクロソフトはボタンコントロールを設計する段階で クリックされるとどのような振る舞いをするのかを予めプログラムしておかなければいけなくなる 当然すべてのケースを見越してプログラムすることは不可能 これは検索クラスを作る時点であらゆる検索方法をすでに記述しているのに該当する (まあただ検索する程度なら予め記述しておいてもいいだろうけど) あらゆる機能を盛り込んだ複雑なクラスを作るより、 必要なときに必要な機能だけをあとで追加できる柔軟で簡潔なクラスを作ったほうが楽なのは言うまでもない 初心者はとりあえずこういうものなんだと頭の片隅においておくだけでいいと思う 疑問が次々浮かぶだろうけどその度に立ち止まるより、とりあえずひと通り学習したほうがいいと思うよ
コールバック あらかじめ関数に、独自の処理を書いておいて、 それをいづれかのタイミングで、OSから呼び出してもらう
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。