何で前スレ落ちてんの?
>>2 985辺りになると圧縮時に自動落ちする
>>1 乙なんたらかんたら
>>1 乙
同一Panel上にある全てのコントロールに同じ処理をさせる方法を誰かご教授願います
例えば同一Panelにある全てのListBoxに同じアイテムを追加する、みたいな
foreach (Control control in Panel.Controls) { if (control is ListBox) { ((ListBox) control).Items.Add(); } } こんなんでいけない?
IEnumerable<ListBox> query = Panel.Controls.OfType<ListBox>(); foreach(ListBox lbox in query){ lbox.Items.Add(item); } こう書けた
下のようなC++のコードはC#のジェネリックではどう書けばいいのでしょうか? template<typename T> T plus( T v1, T v2 ) { return v1 + v2; } int i1 = 1, i2 = 2 int i_result = plus( i1, i2 ); short s1 = 1, s2 = 2 short s_result = plus( s1, s2 );
書けない
似たようなのは書けるでしょ。
int系の似たようなものはひとつにまとめたかったのですが了解しました。 ありがとう。
>>8 (dynamic)v1 + (dynamic)v2
糞遅いけどもし後でホットスポットになったらそこだけオーバーロードに書き直せばいいと思う
>>13 なるほど。参考にします。
ありがとう。
またジェネリックなんですが、これは出来るでしょうか?
それともこういったテンプレートパターンは捨てるべきなんでしょうか・・・。
public void Func(int data){ 何らかの処理 }
public void Func(string data){ 何らかの処理 }
・・・
型違いのFuncがいっぱい
・・・
public static void Test<T>(T[] array){
共通する処理
foreach (T item in array)
Func(item);
共通する処理
}
Action<int> intAction = (i) => { 何らかの処理 }; Action<string> stringAction = (s) => { 何らかの処理 }; intArray.ToList().ForEach(i => intAction(i)); stringArray.ToList().ForEach(s => intAction(s));
ふむふむ。そういう書き方がありましたっか。 後で試して見ますが、上とあわせると・・・えーとこうなるのかな。 public static void Test<T,ActionT>(T[] array,ActionT){ 共通する処理 ntArray.ToList().ForEach(i => ActionT(i)); 共通する処理 }
17 :
デフォルトの名無しさん :2010/07/29(木) 18:48:07
18 :
デフォルトの名無しさん :2010/07/29(木) 19:01:00
19 :
デフォルトの名無しさん :2010/07/30(金) 13:49:53
>17 (→[
20 :
デフォルトの名無しさん :2010/07/30(金) 15:50:48
あるサイトで this.SetStyle(ControlStyles.DoubleBuffer, true); this.SetStyle(ControlStyles.UserPaint, true); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); の設定をしておくとOnPaintメソッドでの描画がダブル・バッファリングされるとあります。 そこで、3つほど質問があります。 質問 (1) 上の設定で次の2つの描画方法でもダブル・バッファリングは有効でしょうか? (a)PitureBox1と同サイズのBitmapオブジェクトを作成してPictureBox1.Imageに設定して おき、Bitmapオブジェクトに図形を描画したのちrefresh()を呼び出す。 (b)Paintイベントで呼び出されるハンドラPictureBox1_Paint内で図形を描画する。 つまり、 (a)ではrefreshの中でOnPaintが呼び出されるかどうか?、 (b)ではPictureBox1_Paintが呼び出された後にOnPaintが呼び出されるかどうか? ということです。 質問(2) (a)(b)の方法でOnPaint自体は呼び出されるが、OnPaintをOverride してここに図形を描画しないかぎり、ダブルバッファリングは有効にならない でしょうか? 質問(3) (a)の方法自体がダブルバッファリングと同等だから上記の設定は必要ない でしょうか? いろんなサイトを見ているうちに、頭が混乱して質問が要領を得ていないと思いますが よろしくお願いします。
>>19 ありがとうございます。
ただ、ヘッダにquoted printable も残ってしまい文字化けは治りませんでした。
22 :
デフォルトの名無しさん :2010/07/30(金) 17:22:07
Cでランダムに値を1万個くらい発生させてそれをエクセルで表にしたいんですけど コマンドプロンプトの画面では300行までしか表示されなくて、出た結果全てをエクセルに移したいんですけどどうすればいいでしょうか?
リダイレクトでいったんテキストに書き出す。
>>20 (a)の方法は二重にダブルバッファリングしていて無駄。
しかもやり方によってはAccessViolationExceptionや大量の描画が発生する
コントロールのダブルバッファリングを有効にした上で、OnPaintとかPaintイベントで
引数のe.Graphicsを使って描画するのが一般的かな
>>23 調べたらできました。ありがとうございます!
26 :
デフォルトの名無しさん :2010/07/31(土) 08:44:27
>>24 >>20 です。ありがとうございます。返事が遅くなってすみません。
教えて君で申し訳ないですが、さらに確認させてください。
>(a)の方法は二重にダブルバッファリングしていて無駄。
これは
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
を設定したときの話でしょうか? つまり
>>20 の質問(3)はyesでしょうか?
>コントロールのダブルバッファリングを有効にした上で、OnPaintとかPaintイベントで
>引数のe.Graphicsを使って描画するのが一般的かな
OnPaintはPaintイベントが発生した時やRefreshが呼び出されたときに
呼び出されると考えてよいでしょうか?
描画したいのは頂点(黒丸)と辺(直線)からなる3次元フレームワーク(グラフ構造)
です。図形データはList<T>などで管理しておき、これに基づいて描画しなければ
なりません。さらにマウスでこのフレームワークを回したり(視点を変更する)、
拡大縮小するので画面のチラツキがないようにしなければなりません。
>>20 の(a)の方法でフレームワークを描くことも可能でしょうが、やはり
OnPaintとかPaintイベントハンドラで描画するのが吉のようですね。
ちらつき以前に描画のもたつきが問題になりそう DirectXやWPF使ったら
28 :
デフォルトの名無しさん :2010/07/31(土) 09:04:59
MFCで似たようなソフトを作成した時は1万個程度の頂点の 表示はちらつきなしで問題なくリアルタイムに表示できました。 でも、C#だと遅くなるかなぁ。 DirectXの2Dは知らないけど、3Dでは直線を引く という基本的な関数も用意されてません。OpenGLでは 用意されているかもしれませんけど。でも、今更、Win32API やMFCはいじりたくないです。 WPFは...もうこれ以上、マイクロソフトが作ったライブラリに 付き合うのにもうんざりです。
>>26 もういらんかもしれんけど
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
はコントロールまたはシステムが実装しているダブルバッファリング機能を有効にしている。
その上でBitmapに描画してからコントロールに転送すると(手動でダブルバッファリングすると)、
描画⇒バッファ(Bitmap)→コントロールによるイメージの検証→バッファ(コントロールまたはシステム、複数の可能性あり)→バッファ(画面)
みたいな流れになってしまい、トリプル以上のバッファリングになる。ってことで質問(3)はyes
でもダブルバッファを有効にしなくてもImageプロパティに設定した内容はちらついたりしないから上記コードがなくてもImageプロパティからの
転送はダブルバッファされているかもしれない(内部の実装は知らん)
OnPaintの説明見ると「Paintイベントを発生させます」とか書いてるけど、
再描画の要求→OnPaint→Paintイベントの発生
って感じになっている。
RefreshとかEndUpdate、Updateメソッドは再描画の要求を行う。
30 :
26 :2010/07/31(土) 12:02:05
>>29 おーーっ! 非常に明快な説明、ありがとうございます。
>>16 .ToList().ForEach(ActionT);
とか
Array.ForEach(ntArray, ActionT);
とかでいいじゃん。
>>31 いや、出来ればジェネリック関数に引数だけを渡せば
ActionTを指定しなくても引数の型を判断させて
適切な関数を呼び出せるようにしたかったのです。
Test<T>の「共通する処理」を一箇所だけに書くようにして。
どうにもうまくいかなかったので教えてもらった方法でFunc
渡すことにしました。
ありがとう。
34 :
デフォルトの名無しさん :2010/07/31(土) 17:18:29
object result = some_method(); こう↑書けるメソッドで、例外をキャッチしなければならない時って こう↓書かなきゃいけないの? object result = null; try{ result = some_method(); }catch{ //処理 } resultの宣言と代入が分離したり、宣言時にnullを代入しなければならなかったり、煩わしいんだけど。 いい方法ない?
>>32 こういうアプローチが一番近いと思う
class FuncHolder<T> { public static Action<T> Func; }
public void Func(int data){ 何らかの処理 }
public void Func(string data){ 何らかの処理 }
FuncHolder<int>.Func = Func;
FuncHolder<string>.Func = Func;
public static void Test<T>(T[] array){
共通する処理
foreach (T item in array)
FuncHolder<T>.Func(item);
共通する処理
}
登録はリフレクション使ったりして工夫すれば自動化できるはず
>>34 たぶん一般的な方法じゃないと思うけど、
俺はメソッドで例外を投げる代わりに以下のようなメンバを持つFunctionResult<T>
みたいな型を作ってそれを返すようにしてる。
- bool Success { get; }
- Exception Exception { get; }
- T Result { get; }
- static implicit operator T(FunctionResult<T>) {}
メンバ名はSuccessよりSucceededのほうがよろしいかと
>>37 前は俺もそう思ってたんだけど、System.Text.RegularExpressions.Groupに
Successってメンバがあるのを発見してからは考えを改めた。
プロパティ名には、名詞または名詞句を使用します。 Pascal 形式を使用します。 ハンガリー表記法は使用しないでください。 基になる型と同じ名前でプロパティを作成するようにしてください。
それboolは例外だろ IsEnabledとかHasValueとか普通にある
ですね
.NETのクラスライブラリ設計P.57より オプションで、付加価値がある場合のみですが、Boolean型のプロパティにプレフィックス"Is"、"Can"、または"Has"を使用することも可能です。 たとえばCanReadはReadableよりも理解しやすいものです。 しかしながら、Createdは実際にIsCreatedよりも読みやすいものです。 プレフィックスを持つことは多くの場合、特にコードエディタ内でIntelliSenseに表示される時に、冗長すぎ、かつ不要です。 MyObject.Enabled= と入力してIntelliSenseでtrueまたはfalseを選択するのと、MyObject.IsEnabled=と入力するのは、明白さではどちらも同じ程度ですが、 後者の名前のほうが冗長です。 Boolean型のプロパティおよび関数に対する名前の選択において、ifステートメント内でのAPIの一般的な使用方法のテストを検討します。 そのような使用方法のテストは、API名の単語の選択および文法(たとえば、能動態か受動態か、単数形か複数形かなど)が英語の フレーズとして意味があるかどうかを明らかにするでしょう。たとえば、以下の2つは、 if(collection.Contains(item)) if(regularExpression.Matches(text)) は以下の2つよりも自然に読むことができます。 if(collection.IsContained(item)) if(regularExpression.Match(text)) 同様に、それ以外のすべてについても、受動態よりも能動態を優先して選択すべきです if(stream.CanSeed) //こちらのほうが良い if(stream.IsSeekable)
つまりどういうことだってばよ?
コピペ君って馬鹿だな、ってことだよ。 こういうコピペ君に限って間違いなくいまどろドヤ顔してるよw
Bool型においては"Is"、"Can"、"Has"などのプレフィックスをつけることができる。
ただし冗長的になるため、能動態か受動態か、単数系か複数形かに注意して動詞で表現したほうが見通しが良い。
これにしたがって
>>36 を再度考えると
SuccessよりもSucceededのほうが良いな。
>>34 から見るとインスタンスが生成されたかどうかをみたいようなので、アクセス可能かどうかって表現にしたほうがいいかもね。
>>36 それ、Cとかの時代に逆戻りな気もするんだけどもなぁ。
戻り値うけた側で if (ret.Success) とかしないといけないの。
if 文書かなかった場合、たぶん ret.Result.Xxx() とかやった時にヌルポになって初めてエラーなの思い出すしわけだし。
Perl 6 でそれと同じような感じの例外構文追加されたらしいけども・・・
>>46 それ、if云々をtryに置き換えてもまったく同じようなことが言えるのでは。
C#の例外処理機構の問題点(っていうほど大げさじゃないけど)は、
- ドキュメントを見ないとメソッドが例外を投げるかどうかすら分からない。
- 例外の詳細(例外オブジェクト)が必要がない(失敗したら単にnullを返してくれればいい)
ような場合でもtry{...}catch{...}を書かなければならないのは鬱陶しい。
だと思う。
>>36 はそれに対する悪あがき。もちろんあんまりエレガントじゃないのは分かってる。
null返してもらってifでnullチェックするとか言わないよな?
言わないよな、とか誰に喧嘩売ってるんだこら
>>48 前者はともかく、後者はよくわからないなあ。
それは、ようするに握りつぶしたいって要求に等しいよね。
例外オブジェクトが必要とかじゃなくて、処理に失敗したから例外を投げてるわけで。
もちろん、握りつぶしたい的なシチュエーションはあるけど、
それはTryParseのような成否を返すメソッドで作れって話だし。
話の流れ切っちゃって悪いけど、 デバッグ時に外部のクラスライブラリのどのコードで例外が発生したかを調べるには、 外部のクラスライブラリのpdbファイルが必要?
>>51 重要なのは、同じメソッドでも呼び出す側の都合によって
きちんと例外状況を把握したい(例外オブジェクトが欲しい)場合と、
単に成否のみ判定できればそれで必要十分な場合とがあるということ。
54 :
51 :2010/08/01(日) 16:34:02
>>53 その呼び出し側の都合で、ってのが握りつぶすに等しいわけで。
例外が出ても、成否のみで続行可能なら、メソッド側が
「ParseとTryParse」のように、二つのメソッドを用意しておくべき。
>>47 少なくとも、try/if がなかった場合、例外が出る場所が問題の発生個所と一致する。
>>46 みたいなやり方だと、本来のエラーの場所と違う場所でヌルポ。
>>48 ドキュメント見ないとって問題はその通りだけど、
かといって throws 使うと catch(Exception) が横行するだけだしねぇ。
失敗時に null 返せばって話は、そういうメソッド書けばいいじゃない。
以下のコードでmixiにログインしてhtmlを取得できるようですが、
他のサイトでも同様にログインしてhtmlを取得したい場合、
「ここの部分」場所の値はどのようにして取得したらよいのでしょうか?
もちろんIDとかパスは分かっています。
class CustomWebClient:WebClient
{
private CookieContainer cookieContainer = new CookieContainer();
// WebClientはWebRequestのラッパーにすぎないので、
// GetWebRequestのところの動作をちょっと横取りして書き換える
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = cookieContainer;
}
return request;
}
}
// WebClientを継承してちょっと書き換えてやれば一番簡単
var cwc = new CustomWebClient { Encoding = Encoding.GetEncoding("euc-jp") };
cwc.UploadValues("
https://mixi.jp/login.pl ", new NameValueCollection
{
{"next_url", "/home.pl"}, //ここの部分
{"email", "める"}, //ここの部分
{"password", "ぱす"} //ここの部分
});
var result = cwc.DownloadString("
https://mixi.jp/show_log.pl ");
Console.WriteLine(result); // アクセスできてるのを確認
HTMLソース読むとかFiddler使うとか
>>52 そう
でもメソッド名くらいならスタックトレースに書いてある
>>57 ありがとうございます。
ソースを解析することでうまくいきました。
XElement.Parse メソッドで質問があります。 HTMLを上記のメソッドに渡すと EntityName を解析中にエラーが発生しました と例外が発生しました。 半角のスペースがタイトルに含まれていたからなのかなと推測しました。 一般的にこういう場合はどのようにしてXElementで解析したらよいのでしょうか?
その原因に即して修正してから読み込むしかないだろ 一般的にはHTMLは正しいXMLじゃないんだから無理というしかない
>>54 >「ParseとTryParse」のように、二つのメソッドを用意しておくべき。
そういう「べき論」を唱えてもいいけど、何故そうすべきなのかと聞かれたときに
合理的な理由を与えられる?
ただの教条主義じゃないのそれ。
>>55 論点がズレてるなあ。
そのメソッドは常に成功するとは限らない(例外が発生する可能性がある)
ことを示すためにわざわざ妙な値を返してるのに、それでもエラーを想定した
コートを書かない場合を想定しなければならない理由が分からない。
百歩譲ってそういう「馬鹿で怠惰な」プログラマを想定すべきだとして、
「例外が出る場所が問題の発生個所と一致」しないことが、あえて取り上げる必要がある
問題だろうか。
>>64 うん、あえてどころか、まじめに取り上げるべき大問題。
>>67 ではその理由をどうぞ。
どうして大問題なの?
NullReferenceExceptionが発生した理由を推定できないプログラマがいるから?
そんな奴はいないと思うが、いるとしてどうしてそんな「馬鹿でどうしようもないプログラマ」
を想定する必要があるのでしょう。
距離はなれてたらしんどいよ。 あと、そんな馬鹿でどうしようもないプログラマも相手にするのがC#だろ。
>>69 >距離はなれてたらしんどいよ
それは、そういうことが起こるとしたら変数の初期化(または変数への代入)と
その変数の使用を意味なく離して書く悪しきプログラミングスタイルに起因する問題であって、
>>36 的な方法を取ったことに起因する問題ではないでしょ。
>そんな馬鹿でどうしようもないプログラマも相手にするのがC#だろ
もちろんフールプルーフに作ることは大事。
でも、フールプルールとは「ありえないような馬鹿を想定すること」ではないはず。
>>65 .NETだけでやろうとした場合、自作しかないのでしょうか?
スペースなどの文字を&***のような形に変換するような
機能はないのでしょうか・・・
ダウンロードしたHTMLを解析するというのは
よくある要求だと思うのですが・・・
htmlデコード
>>73 domでやるとはどういう意味でしょうか?
ActiveXを使うということでしょうか?
DOMでわかんないなら、初心者スレ行け。
>>72 HttpUtility.HtmlEncode
>>76 DOMは分かりますよ。
でも.NETとは無関係の一般的な用語ですよね。
>>77 求めていたものにとても近いです。
ただタグの<などすべて変換されてしまうので
結局は解析してやらないといけないみたいです。
でもありがとうございました。
81 :
デフォルトの名無しさん :2010/08/01(日) 23:32:31
文字列の中に全角文字が含まれてたら削除したいのですが 何かよい関数ありますか?
正規表現
今の時代、全角文字ってどう定義していいのか微妙な気もするけど....
>>80 まだ試していないのですが
読む限りまさにこれです。
助かりました、ありがとうございます。
というか最初のサンプリもここのサイトでした。
答えはすぐ近くにあったんですね・・・
この人のレベルじゃRxは理解出来ない
':' 文字、16 進数値 0x3A を名前に含むことはできません。 という例外が出ました なかなか難しいものですね・・・
せめてレス番名乗れよ。誰が誰だかわからないだろ。
アプリケーションで例外を握りつぶすことが許容できるケースが存在はしますが、そのようなケースはほとんどありません。 例外を握りつぶすことを決めたならば、あなたが何がおかしくなるかを正しく理解していないことに気づくべきです。 それによって失われるアプリケーションの状態の一貫性を予測することは一般的に不可能だからです。 例外を握りつぶすことによって、一貫性の破綻に直面した状態で実行するリスクと、このアプリケーションドメインまたはプロセス内でコードを実行 し続けることによる価値のトレードオフを検討します。 その一貫性のない状態を利用してセキュリティ攻撃が行われる可能性もあります。 そのため、ここでの決断は奥の深いものです。
・正確にどのコンポーネントが例外をスローしたのか、およびそのコントラクトはなにか(オブジェクトの状態はどうなったのか) ・スローしたオブジェクトと呼び出し元の間の完全な呼び出しスタック、およびスタック上のすべてのメソッドが正しくクリーンアップされ、 返ってくる前にグローバル状態が変更されたかどうかの判断 これら2つの項目についてわからないのであれば、何らかのグローバル状態が"中途半端"な状態にあるかどうかがわからないため、 プログラムが実行を継続したときに奇妙なエラーを引き起こすことになります。 これは非常に多くの場所で発生しうる、OutOfMemoryException、StackOverflowException、またはThreadAbortExceptionのような 例外については本質に真です。
>>81-83 Unicodeで文字幅が規定されているから、その定義を見て判定するだけだろ
文脈で幅が変化する文字とかあるから実装は面倒だけど
>>35 おお、なるほど。こういう方法もありましたか。
ありがとう。
ジェネリックは中間言語になる時点でFunc<int>等を
Func<object>にして統一してるのかなと思ってたけど、
これが出来るってことはそいうわけじゃなかったんですね。
Javaはコンパイル時に非ジェネリック型にコンバートしちゃうけど C#のジェネリックは型情報を削除せずに、実行時にCLRの内部で構築されるようになってる。
93 :
デフォルトの名無しさん :2010/08/02(月) 18:42:22
データベースをいじるのにVBかC#どっちがお勧めか?
どっちも一緒 どっちかにこだわる人間になりたくなければまずはC#をやってから後でVBもやることをお勧めする
C#は言語仕様自体が進化しているけれどVB.netも同じように変わっているの?
VBも拡張されまくってるけど残念ながら新しいものは見向きもされない
機能自体はC#とVB.NETは、まあ大体一緒なんだけど 近年の関数型に近づいた進化に対して、VBは構文の冗長さが際立ってきて結構しんどい。
>>88 君さあ「例外をにぎりつぶす」っていう俺様用語を執拗に使ってるけど、
その意味厳密に定義できるの?
君ってそもそも例外処理の意味が分かってないでしょ。
>>98 例外をキャッチしてそのまま処理を実行することじゃないの?
言葉通り見れば。
なるほど、じゃあ例外をキャッチするか、もしくはそもそも例外をキャッチせずに プログラムの実行をアボートするのが正しい作法なわけね。 面白い冗談だ
>>92 そんな残念仕様と一緒にしないで。
意地でもバイトコードに修正入れたくなかったJavaと違って、
.NET は 2.0 の時に IL の仕様追加したんで。
>>100 どしたー?熱中症にでもなったかー?
>>88 が正しいとは言わないが
お前も十分おかしなこと言ってるぞ。
日本語不自由な人種か?
>>102 否定は結構だがせっかくだからの君自身の見解も言ってみよう。
ではどうぞ。
>>100 例外をその場ではキャッチせず、最上位で掴むってのはよくある作法だと思うのだけど。
>>98 「例外を握りつぶす」って別に普通に使われてる表現
何で自分が無知なだけなのに、こうもひたすら強気に出れるのか不思議
>>104 それはプログラマが想定してない例外をキャッチするためでしょ。
その目的は対ユーザー向けに適切なメッセージを表示するためであって
プログラムの処理を継続するためのものではない(想定していない例外が
発生したのだから当然だが)だから、通常の例外処理ではない。
>>105 くだらねえこと言ってないで定義してみたら?
まさかそれすらできないのに「強気」に出てるわけじゃないよね?
悪い意味で使われる「例外を握りつぶす」というのは 通常の例外処理の範囲でとりあえず全部キャッチしてスタックトレース吐いてスルーすることだろ Javaなんかだとキャッチが強制されるからそういうのが散見される
>>103 >否定は結構だがせっかくだからの君自身の見解も言ってみよう。
自分が否定と煽りしかしてねーじゃねーかwww
よくわからない・処理できない・続けた場合にどうなるかわからない のにとりあえずキャッチして放置
「例外を無かったことにする」でいいだろ
想定していない例外はキャッチしないのが正しい
想定してないサイズはキャッチアンドリリース
>>88 は公式本からの転載だろ・・・。
読んでないやついんのかよw
読んだ方が少ないんじゃね
例外って握りつぶすと変な汁でてきて手がベトベトになるよね。
117 :
デフォルトの名無しさん :2010/08/03(火) 02:25:36
複数の値が欲しいときに out やref を使いますが 使い分けとかやってますか? それともどちらかしか使用しないようにしてますか? out を使う場合は try catch の 外で初期化しないと怒られてしまうので 階層をまたがって使うときに 関数ごとに 初期化を記述しないと駄目っぽいのですが 何か良い方法あるのでしょうか?
>>117 >複数の値が欲しいときに out やref を使いますが
使いません
そういう用途にはクラスを使いましょう。
TCP/IP接続利用した簡単なネット対戦ゲー(ターン制みたいなの)検討してるんだけど C#でその手のネットワークプログラミングを詳しく取り扱ってるサイトか書籍ってないかしら
>>118 お間が使わなくても
Framework自体が使ってるんだけどな。
こいつみたいにそれっぽいものを完全否定する
原理主義土方PGって頭でっかちで使えないんだよなー。
はいはい、妄想はそれぐらいにしとけw
>>117 > 使い分け
outputのみが目的ならばout。
inputとoutput両方が目的ならばref。
outとrefは初心者程こだわる 得にrefを多様してる奴は間違いなく初心者
はぁ
.NET Framework 4.0環境ならTuple使えるから楽なんだけどな
>>124 2つは十分複数だろ?
使いません
とか完全否定しちゃうステレオタイプは
いまさら複数とか認められないのかもしれないけどwwwww
>>125 もうちょっと詳しく聞きたいね。
どういうのが最善なのか。
Tupleなんか使うなよ あれはF#のために追加されただけ タプルは (string name, int age) = GetPerson();みたいに使うものだけど 今のC#の構文ではサポートされてなくて受けるときの変数名が無いから可読性最悪
132 :
117 :2010/08/03(火) 12:48:08
>>118 そうなんですか。
静的関数を作成し依存しないように
していく考え方はもうあんまり利用されない
んですね
>>123 正しい使い分けですね。
>>125 こだわらなくて良いということでしょうか?
>>127 なるほど、4.0からはそのようなものがあるんですね。
2っで複数ねぇ・・・.Netにいくつメソッドがあると思ってるんだ。 %単位で存在してるなら分かるが同意できねぇ。
>>128 引っ込みが付かなくなってるのはお前だろw
TryParseがあるから複数の値が欲しいときに out やref を使うべきと?w
何その負け惜しみwwwwwww
動けばいいからどうでもいい。
涙拭いて黙ってろよ
>>133 日本語ワカリマスカ?
複数なのはメソッドの数じゃねーよ。
「2っ」なんて日本人なら書かねー。
>>134 誰が「使うべき」なんて言ったよw
0か1かでしか物事を考えることができねーの?
どこの国の人ですか?
引っ込みつかなくなってるのはお前のことだろwww
負け惜しみってのはお前のレスのことだよwwwww
とりあえず参照型にref付ける奴はうましかまで読んだ
>>140 参照型にref付ける意味ってなにがあるの?
試してみたら付けれたんだけど。
>>141 スワップみたいに新しく代入するときとか。
>>141 stringみたいにイミュータブルなクラスなら値を変更するには別のインスタンスを代入するしかないから、
refを付ける必要がある。
ミュータブルなクラスでも、いろいろ面倒な配慮をしないと値を変更できず、newしちゃった方が
早いってこともあるかもしれない。そんな例思いつかないけど。
値型・参照型と値渡し・参照渡しの4通りの組み合わせを全部理解しておかないと。
out refを乱用せずにクラス使っとけって話のどこに噛み付くような余地があるんだ? キチガイの考える事はよう分からんわ
>>144 使わないって完全否定してるアホが居たから
そいつが叩かれてるだけじゃないの?
叩かれてるのは
>>120 から粘着して騒いでる奴だろ
馬鹿は情勢が悪くなるとすぐ荒らすから分かりやすい
自己紹介乙
118 デフォルトの名無しさん[sage] 2010/08/03(火) 02:59:53
>>117 使いません
120 デフォルトの名無しさん[sage] 2010/08/03(火) 10:05:23
>>118 お間が使わなくてもFramework自体が使ってるんだけどな。
121 デフォルトの名無しさん[sage] 2010/08/03(火) 10:14:19
はいはい、妄想はそれぐらいにしとけw
122 デフォルトの名無しさん[sage] 2010/08/03(火) 10:21:25
>>121 TryParse
124 デフォルトの名無しさん[sage] 2010/08/03(火) 10:27:29
>>122 どこが複数の値なんだか…
128 デフォルトの名無しさん[sage] 2010/08/03(火) 11:05:36
>>124 2つは十分複数だろ?
133 デフォルトの名無しさん[sage] 2010/08/03(火) 22:03:52
2っで複数ねぇ・・・.Netにいくつメソッドがあると思ってるんだ。
134 デフォルトの名無しさん[sage] 2010/08/03(火) 22:18:30
>>128 引っ込みが付かなくなってるのはお前だろw
TryParseがあるから複数の値が欲しいときに out やref を使うべきと?w
137 デフォルトの名無しさん[sage] 2010/08/03(火) 23:07:18
>>133 複数なのはメソッドの数じゃねーよ。
>>134 誰が「使うべき」なんて言ったよw
コピペ君って馬鹿だな まで読んだ
コピペ君って馬鹿だな まで読んだ まで読んだ
>>141 メソッドの中で複数のインスタンスを new で返したいときとか・・・
って思ったけど、そりゃ out 使うとこだな。
確かに参照型に ref ってスワップ以外に用途思いつかない。
参照型の参照渡しはVBだと平気で出てくるぞ 戻り値を使うっていう発想がないんだよね
あー、複数の場合は構造体使えって言うならしっくりくるね。 クラスって言うからメソッド使って管理しろって意味だと思ってた。 refとかoutは例外出したくないとき便利じゃないかな public bool GetData(out string data, string default) string data; GetData(out data, "default"); //失敗してもそのまま継続できるし成功の確認も出来る
まぁTryParseなんかがまんまだな
それをTryParseパターンと呼ぶんです クラスライブラリのパブリックメンバなら例外を投げるバージョンも同時に用意する決まり
へー、名前なんてあったんだ。勉強になった。
俺が今名づけた
MSDNに書いてある公式用語です
プリミティブの変換だから特別にユーティリティ作りましただよな TryParse でも、作るなら検証メソッドのほうが良かったのに・・・
nullable使えばよかったのに
は?
ヌーブラ
168 :
118 :2010/08/04(水) 13:13:01
もう好きにしろ 正しく動くコードが一番正しいんだ どれも正しく動いてりゃ正解だよ ※メンテナンス性は除く
170 :
デフォルトの名無しさん :2010/08/04(水) 13:29:21
スレチになりつつあるぞ
メンテナンス性なんて飾りです。偉い人にはそれが分からんのです。
敢えてメンテナンス性を排する事で逆コンパイル耐性をつけたのさ!
昔からいるよな 「我が教義に従いさえすればあらゆる問題はたちどころに解決する」 とかほざく宗教者 オブジェクト指向辺りからか?この手の無能が湧き出したのって
もっと前 SBの孫とかが有名
176 :
117 :2010/08/04(水) 15:09:10
>>168 out/ref 乱用はしてません。
outしか今まで使用してなかったので
out/refの使い分けが知りたかったのです。
それなら
>>123 で終わってるわけで、騒いでた奴は何だったのかねw
178 :
117 :2010/08/04(水) 15:37:14
>>177 ただ、自分も118さんがout/ref を使わずに何でもかんでも
クラスを使うっていうは本当なのか知りたいです。
179 :
デフォルトの名無しさん :2010/08/04(水) 15:44:23
はじめましてC#で野球のストライク、ボール、アウトの表示のやつを作りたいんですが誰が助言をください 例 S ●● B ●●● O ●● 見たいな感じです 入力方法は ●●●●● ● ボール ●○○○● ○ ストライク ●○○○● ●○○○● ●●●●● の25分割radioButtonにチェックする アウトは別に他のアウト専用のチェックボタンを作っています で○の所をチェックするとSに黄色●にチェックするとBに青 アウトにチェックするとOに赤色が点滅します よろしくお願いします
なにを?
>>119 だが俺のレスの直後に例の盛り上がりがあって流されてるな・・・
いいよいいよ、根気よく自力で探すよ(つдT)
184 :
118 :2010/08/04(水) 17:01:10
>>178 TryParseパターンのような制限付きの例外はあるにせよ
>静的関数を作成し依存しないようにしていく考え方はもうあんまり利用されない
この辺は別にC#だけに限った話じゃないな。
>>183 うおお、thx!
ググっても他の言語のコードばっかりで困っていたんだ。とりあえず両方味見してみる
最近だとWCFなんてのもあるが 困ったことにほとんどのサンプルがIIS前提なのよね・・・ もっと単純にPeerToPeerしたいだけなんだが大掛かりすぐる
そりゃTCP/IPとかで新しいフレームワークなんて今更いらんから、新しいもの といえば特定領域の実装を楽にするものしかないわな。 更に皮かぶせたもの無いか?なんて考えないで素直に System.Net.Sockets 使えばいいと思うよ。(プラットフォーム間の相互運用性も上がるし)
tes
ref、outはMSがなるべく使わないでって言ってるよ。 きちんと理解してるなら使ってもよいぐらいの解釈でいい。
相互運用では使いまくる。それ以外は稀にしか使わないな。
ダブルポインタなんて ref IntPtr か out IntPtr にするしかないもんな。
はじめは無理してそうやってたけど最近は気にせずポインタ使うようになった IntPtrじゃ型分からないし扱いが回りくどいしで、余計に危険な気がする 結局やってることは一緒だし
TryParse パターンの補足も入れとくか。 TryParse パターンが許容されるのは、Parse 可能かどうかの判定に Parse 本体と同程度の負荷がかかる場合ね。 可能性の判定を簡単にできる場合は、事前判定用の CanParse みたいなメソッドと、 例外投げる Parse を用意する方がいい。 (けど、文字列の Parse はたいがい可能性判定の負荷高いんで、TryParse にならざるを得ない)
絶対現場主義の本がアルアルすぎておもしろかった
なんぞそれ
絶対現場主義Visual C#実践講座っていう本 たぶんプロなら共感出来ると思う ある意味上級者向けの本w
・カーソル移動はENTERキーでも移動できるように。(オペレータはテンキーしか使わないので。) ・業務アプリのWindowは画面一杯に表示して、閉じられないようにしてほしい。(業務アプリ以外の余計な操作はできないように。) ・テキストボックスの入力長は全角xx文字以内にしてほしい。 (もちろん、MaxLengthの設定だけじゃダメ。) レビュー見てきた。あるあるw
自分が無意識のうちに書いたのかと思ったw
>>193 マジ、unsafeでダブルポインタ使えるの?
うん
MyStruct[] values = new MyStruct[10]; MyStruct*[] pointers = new MyStruct*[10]; fixed (MyStruct* p = values) { for (int i = 0; i < pointers.Length; i++) { pointers[i] = &p[i]; } fixed (MyStruct** pp = pointers) { ポインタの配列を引数に取る関数(pp); } } こういうのunsafe使わずにやるのは面倒だぞ
DataGridView で特定のセルを選択状態にしない方法はありませんか? そのセルがキーボードやマウスでクリックされても現在の選択状態 を維持したいです。
セレクションモードセル単位にしてselectionの時の文字と背景の色一緒にしちゃえよwwww 俺はそれでごまかして逃げてる 点線の枠線は見えちゃうけどな・・・・
DataGridViewを使ってるんですが メインのフォームからボタンを使って新しいウィンドウを呼び出して そこにメインのDataGridViewを別の値を代入して表示させたいんですが 上手く再表示してくれません。 メインのフォームのインスタンスを新しいウィンドウのコンストラクタに渡して それを新しいウィンドウのDataGridViewのインスタンスに代入した後 .Update()をしてるんですが・・・ 何かやりかたがマズイんでしょうか。 よろしくお願いします。
何が言いたいのかさっぱりわからん
コードうp
で、form2DataGridViewを表示するコードはどこに隠してあるんだ?
>>210 さん
form2DataGridViewはデザイン画面で表示してるんで
InitializeComponent();
の部分で描画されてるかと・・・。
なので新しいウィンドウを開いた時にはもう表示されているんですが
メインの値の入ったものではないんです。空の奴です。
これを更新させたいんですけど・・・
表現を変えようか。form2DataGridViewに新しく代入されたインスタンスを表示するコードはどこに(ry
public Form2(DataGridView form1dataGridView) { InitializeComponent(); form2DataGridView = form1dataGridView; } の form2DataGridView = form1dataGridView; の部分なんですけどおかしいですか? それぞれデザイン画面でメイン画面に表示されているDataGridViewをform1DataGridViewと名付け 新しいウィンドウの方をform2DataGridViewと名付けています。 コンストラクタで受け渡し代入をしてるつもりなんですが。 その後に.Update()をすれば表示も更新されると思ったんですが
なんかラッパークラスを作ってやって、そこにメインのDGVの情報を格納して渡して 新しいウィンドウのDGVのvalueにそれぞれセットしてやれば解決する問題なんでしょうけど そのままオブジェクトを代入しても、同じ事が実現可能だろうと思っていたんですけど 出来ないので・・・
エクスプローラのコンテキストメニューについての質問です。 コンテキストメニューからの起動時に、1つのアプリで複数ファイルのパスが受け取れません。 レジストリのAllFileSystemObjects\shell\app\commandに登録したのですが、ファイル毎にアプリが起動してしまいます。 その際に登録したコマンドは「"アプリのパス" "%1"」です。 引数を%*に変更しても不可能でした。 1つのアプリが複数ファイルのパスを1度に受け取るにはどうすればよいでしょうか? 開発環境はVS2010の.net4.0で、Win7 64bitになります。 よろしくお願いします。
4.0に対応したMSDN Libraryはまだかいのぅ
いや、そう言う真面目な本じゃないから… 「PCのコンセント抜いて電源が落ちるとこまるのでソフトで対応して下さい」 とかの要求をアルアルしながら読む本 つまり学生や客と退治しない請負には意味がわからん 上流及び客とマンツーでやった事のある経験豊富なプロにしか合わない本
>>218 全然あるあるじゃないじゃんw
こちとら毎日のように客とやり合ってるけど、今日日そこまで酷い人はいないし、
常識で考えても「そこまでの馬鹿」がそうそういるわけない。
要するに、ネトウヨ的なうだつ上がらない奴が自分より下がいると思って
溜飲下げるタイプの本なのかね。
>>218 最近は”蚊が嫌がる音を作業中は出して下さい”みたいなのが増えてるぜw
まぁモスキート音のことなんだろうけど
>>218-219 会議だけじゃなくて現場の作業者さんからも要望や使い勝手なんかを聞くのであるあるだなあ
WMとかのモバイルだと「充電するのも無線でやりたいんですが?!」とか日常茶飯事だし
>>223 リニアカップリングとかでいけるんじゃね?
>>217 ご多聞に漏れずでたらめだらけ。
自分で間違いを見つけられないとやばい。
続編(Webアプリ編だっけかな?)もでたらめだらけ。
そんな客と対峙してる自分も同じ階層の住人なんだよなあ、と自戒を込めて思う。
>>168 使いません って断言の仕方がまずかったんじゃね?
君が義務教育中なのか大学生なのか社会人なのかしらんけど
「乱用しないで適切に使う」というニュアンスが
「使いません」と同じ、という思考回路はものすごく危険
学生なら許されるのかもしれんが
答えとして
@乱用しないで適切に使う
A使います
B使いません
と3つあれば
@が正解、Aは間違いではない、Bは大変危険な間違い
となる
会社でそんな答えをしてたら間違いなく怒られるよ
>>227 まあニュアンスの問題だけども、「乱用しないで適切に使う」よりも
「他に代替手段がない時のみ謙抑的に使う」の方が適切かと思う
>>228 まあニュアンスの問題だけども、「他に代替手段がない時のみ謙抑的に使う」
だと、「代替手段がないから仕方なく使う」的なニュアンスが含まれるよね。
代替手段がないから使うってのは明らかに間違え。
ちゃんと使うべきだという理由があって初めて使うべき。
つまりは、
>>194 のようなことね。
だから「適切に使う」が正しい。
「使いません」は論外だが。
>>228 謙抑的ってなんだろうと思って調べたら
へりくだるって意味が含まれるらしいんだが
そうだとすると使い方間違ってねーか?
無理して難しい単語使うと恥をかくね
正しかったらごめんね
>>229 何を言ってるのまさにあれは「仕方なく使う」ものでしょ。
可読性を考慮すれば、まともなプログラマなら本来使いたくないんだからさ。
一応言っておくけど、ライブラリのメソッドのように"well-known"であることが
期待できるものについてはまた少し話しが違うけどね。
>>230 webの辞書じゃなくて、ちゃんとした辞書引いてみ。
っていうか「謙抑(的)」で検索してもわかると思うが
ちょっと質問させていただきます。 A,Bの以下のハードがあったとします。 ・A OS:Windows Vista 開発環境にVisualStadio2008がインストール済み。 ・B OS:Windows7 Starter .NETFramework3.5インストール済み 二つのハードにVB6のDLLから関数を呼び出して使うC#のプログラムを実行します。 実行するプログラムは.NETFramework3.5で作成されています。 この時、BでしかDLLから呼び出せなかったんですが、なんででしょう? 開発環境であるXPマシンでは問題なかったのですが・・・ Vistaでは何か特別な処理をさせないといけないのでしょうか?
エラーぐらい書けば?
>VB6のDLLから関数を呼び出して使うC#のプログラム 誰か日本語に翻訳して
エスパーすると、VB6のDLLからCOM相互運用に登録したC#アセンブリを呼び出してるな。
Vista機が今手元にないのでうろ覚えなんですが、DLLImportで指定してあったVb6DLLの関数を ボタンを押すと中で実行してくれるものでした。 しかし、処理を停止し始めて、VB6DLLの関数が呼び出せないという内容がダイアログボックスに 表示されたんです。 でも、手元の7機は動くし、どうなってるんだろうかと・・・
あきらめろよ。 VB6で関数エクスポートなんて、まっとうにはできないし。
自演
>>238 VB6ランタイムを入れてない、なんて間抜けなオチじゃないよねまさか
VistaにはVB6ランタイムがデフォルトで入ってるよ。
なんかもうVista機に対応してたら時間かけるだけ無駄ぽいので Vista機での運用はやめときます…スレ汚しスマソ
>>231 >何を言ってるのまさにあれは「仕方なく使う」ものでしょ。
refが適切であれば仕方なくではなく胸を張って使う。
仕方ないとは思わない。
なるほど、こういうセンスの人がウンココードをしこしこ製造するんだな。 煽るつもりもないがちょっと信じられないセンスだ
>>232 刑法、道徳に関して使用する謙抑的と
その他の一般的に使われる謙抑はニュアンスが違う。
>>230 が言っているように前者には「へりくだる」のニュアンスが薄いが
後者は
>>230 の言う意味で正しい。
前者の意味で使われることが多い単語なので
>>232 はそれを見て知ったかしちゃったのかな?
つか、またニュアンスかよw
×
>>230 が言っているように前者には
○ 前者は
>>246 もういいからちゃんとした辞書引けよ。
俺も手元にないんで偉そうなことはいえんけどw
謙抑的って言葉は別に法律用語でもなんでもなく、「控えめに運用する」
目的語が法律や権力以外にあまりないだけ。
>>238 VB6ランタイムを入れてない、なんて間抜けなオチじゃないよねまさか
>>197 気になって社内を探したらこれあった
有名かどうかは知らんが結構どこにでもあるみたいだな
Form1にドロップされたテキストファイルのパスをForm2に渡して ファイルを開いて、Form2のテキストボックスに表示し、 ボタンを押したらメール送信されるシステムを作成しています。 exeファイルにドロップしても同じように出来ると便利だと思い機能追加しようとしてるのですが、 詰まったので質問させてください。 メール送信時に同じディレクトリにあるAccessのデータベースファイルに アクセスするのですが、exeファイルにドロップして起動させた場合、 データベースファイルのパスが変更されてしまい、データベースを参照することができません。 データベースにアクセスする文字列は dbConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data source=MailInfo.mdb"; なのですが、ドロップして起動した場合、 C:\Documents and Settings\user_name\MailInfo.mdbがありませんと出てしまいます。 ダブルクリックによる起動と、ドロップによる起動では何が変わってくるのでしょうか? またこの解決方法がありましたら合わせて教えてください。
>>227 ていうかさ
>>複数の値が欲しいときに out やref を使いますが
>使いません
>そういう用途にはクラスを使いましょう。
複数の値が欲しいときに out や ref を使うかって言うと、
「使いません、クラスを使いましょう」って回答は正しいと思うのだが。
複数の値が欲しいときにoutやrefを使うべきではないって話をしてる時に、「Framework自体が使っている」なんて言い出した
>>120 の頭がおかしいだけではないのか。
254 :
デフォルトの名無しさん :2010/08/06(金) 03:14:43
>>254 複数の値が欲しいときに out やref を使うの?酷い設計だな。完全に乱用してんじゃん
>>255 >>TryParse
>どこが複数の値なんだか
以下無限ループ
日本語の話題スレ違い。
int seed = Environment.TickCount;
for (int i = 0; i < 50; i++){
Console.Write((new Random(seed++)).Next(100) + ", ");
}
乱数を使おうと思っているのですが、このコードを実行すると
> 20, 72, 24, 76, 29, 81, 33, 85, 38, 90, 42, 94, 46, 99, 51, 3, 55, 8, 60, 12, 64,
> 17, 69, 21, 73, 26, 78, 30, 82, 35, 87, 39, 91, 44, 96, 48, 0, 53, 5, 57, 9, 6,
> 2, 14, 66, 18, 70, 23, 75, 27, 79, 続行するには何かキーを押してください . . .
こんな感じでかなり規則的な数列が毎回出てきてしまいます。
規則的というのは
・隣の数との差が約50
> 【20, 72】, 【24, 76】, 【29, 81】…
・一つおきに約5ずつ加算されて、100を超えると0に戻る
> 【20】, 72, 【24】, 76, 【29】, 81…【91】, 44, 【96】, 48, 【0】
ネット上のサンプルではseedは+1していくだけでバラけた乱数が得られているようですが、
http://www.atmarkit.co.jp/fdotnet/dotnettips/035random/random.html 自分の環境では何度やっても+Nしていく限りは規則的な乱数になってしまいます
.NETのバージョンは4です
ヒントなどありましたらご教授お願いします
new Randomの位置
>>259 Randomを似たようなシードで生成したら似たような乱数が出力されたって話だろ
適当なシードで生成した(同じひとつの)Randomオブジェクトから乱数を取得しろよ
>>260 int seed = Environment.TickCount;
Random r = new Random(seed);
for (int i = 0; i < 50; i++){
Console.Write(r.Next(100) + ", ");
}
こうしたらバラけた乱数が得られるようになりました
こんな初歩的な用法のミスをしてしまうとは…
ありがとうございました
>>227 も
>>257 も「複数の値が欲しいときにoutやrefを使うべきではない」というのは否定していない。
>>複数の値が欲しいときに out やref を使いますが
>使いません
>そういう用途にはクラスを使いましょう。
どんだけごちゃごちゃ騒いでもこれは正しい事なので否定できない。だから言葉尻を捕まえて叩くしかできない。
>>118 読んで
>>120 と誤読するような日本語の読めない馬鹿が居たからこんな面倒な事になったんだ。
飽きたから後は好きなようにやっといて
悔しいのはわかったから もういいよ
266 :
デフォルトの名無しさん :2010/08/06(金) 15:02:00
勝手に物事を決め付けて反論されるとムキになる 子供がいるスレはここですか
お前毎回上げてんのな
TryParseで反論されてムキになって・・・いや、何でもない
今月はスルースキル習得月間になります。
ム板はよく釣れる
いつもMS系の板を荒らしてる奴が自演で荒らしてたりしてね
>>259 ニュー速民?
乱数生成ネタでスレたったので同じようなこと俺もしてた
横からだけど そんなスレあったのか。見ときゃ良かった。
>>252 起動方法によってカレントディレクトリが異なる
だからパスは全部フルパスで書け
>>215 まず複数起動を禁止しろ
話はそれからだ
>>213 コントロールにはそれぞれ紐付けられたウィンドウハンドルがある
だから別Formで一旦表示したコントロールをなんも考えずに移植しても上手く行く訳がない
大人しくNortifyしろ
ちゃんとした乱数作るのはマジ大変 お手軽にそれなりの作れるったらメルセンヌ・ツイスタかね
金にならんからどーでもいい 乱数は学生のおもちゃ
すげー。 プロの方々は乱数も自作されてるんだ。 流石だ・・・。
基礎教養として学生の内におもちゃとして触っとけって話か
学生のおもちゃどころか車輪の再発明 興味もつのは中二病かそれを専門で扱って金にしてる研究者
まってたよ、この調子でどんどん頼む
入れ食いですね
まーだ顔真っ赤にしてるのか決めつけ君は いつまで火病ってるんだよ
.NET 標準の Random クラスはしょせん線形合同法だしねぇ。 軽いけどランダム性あんまりよろしくない。
普段使ってる擬似乱数がどうやって作られてるかぐらいは知っとくべきだろう。 暗号化に使えるぐらい厳密なやつが欲しいならRNGCryptoServiceProvider
コピペ君って馬鹿だな、まで読んだ。
乱数は自然界でも作るのは無理。
>>275 複数起動は禁止しましたが、複数のパスは相変わらず受け取れません
>>274 やはりそういうことですか。
ありがとうございます。
フルパスで書くことにしようと思います。
また追加で質問があるのですが、
MessageIDがyyyymmddhhmm.********@メールサーバ@マシン名
と@が2つついてしまいます。
SmtpClientでMessageIDの設定など出来ますでしょうか?
コピペ君って馬鹿だな、まで読んだ。
コピペ君って馬鹿だな、まで読んだ。
同じ数字が何度か連続して出るのも乱数としては普通の動作なんだけど 合同法で出した乱数だと同じ数字の連続ってないよね っつーか合同法で同じ数字が連続したら死ぬまでその数字しか出ないか
どうでもいい
同じ数字が出るのは死ぬまでか 死んだ後はどんな数字が出るんだろう
壊れて出力がなくなる
>>299 ふと思ってオリジナルのxorshiftでやってみたら
516320272回目に直前の値と一致した
MemoryStreamのバッファの中身ってもしかして配列ですか…
それ以外にどう実装しろと マネージドな範囲では唯一の方法だろ アンマネージメモリ使ったってメモリアクセスの速度自体は変わらないし GCのパフォーマンスが悪くなるだけだしUnmanagedMemoryStreamがあるし
そうですよね… ありがとう コピーがネック…
>>306 とりあえず何がやりたいのか話してみろ。
MemoryStreamはToArray以外はコピーしないぞ 何がやりたいのか知らないけど、ほんとにアプリケーションのパフォーマンスについて コピーのコストがネックだと確認したの? ほんとにそれがネックならいくらでも改善方法はあるだろうけど アプリケーションとして動作した時の計測を行わずにパフォーマンスを気にするのは全く無意味
今どきの乱数の実装じゃ、たとえ中身は線形合同法みたいなシンプルな方法のものでも、 ステートをそのまま出力しないものが多いんじゃない? 中間のビットを抽出してるとかさ。 そういうのだと、周期は結果のビットパターンより長くなるから、同じ数値が出ることもある。
まあ、MemoryStreamが単純な配列実装だから、 バッファの拡張ではコピーが発生するというのはあるし、 サイズが大きくなるとOutOfMemoryExceptionが発生しやすかったりもする。
お前は何を言ってるんだ 乱数なら試行を続けていれば連続で同じ数字が出て当たり前
どういう意図でどれに突っ込んでるんだ…?
MemoryStreamに向かない処理のために、固定長配列のリストで管理するような メモリストリームを自作して使ったりすることもある。
309だろ。 アンカー付けて喋れよ。
コインの表裏を乱数としたとき、表の次が必ず裏では乱数になんないという話だよ。
まぁそりゃあそうだね
必ず表裏交互に出るなら確率はどこで切っても1/2だから ばらつきに限って言えば優良な乱数ちうことな
ばらつきに限れば S(n+1)=(S(n)+1) mod 0x100000000 でもOKだな
違う。毎回1/2で表裏が均等に事象が発生しなければ、過去の数列から予測 できてしまうため乱数ではない。 カウンティングできたら乱数として失格。
線形合同法はカウンティングできますけどね
323 :
デフォルトの名無しさん :2010/08/07(土) 12:37:59
やっぱモンテカルロ法最強屋根
メルセンヌツイスタだってカウンティングできますけどね
いい加減、最近習った事をここでギャーギャー語るのやめろよな 小学生かよ
だからこそ
>>309 じゃね?
と書こうとした。
本当にそうなのかは想像なので確実じゃないけど、納得出来るから自分ならそうする。
>>325 乱数の本でも読んで「俺ってばこんな本読んで頭良い!」ってやりたいんだろ
端から見れば滑稽なだけなのに気づいてもない
328 :
デフォルトの名無しさん :2010/08/07(土) 13:00:19
とりあえず食い付きの良い餌のひとつであることは確認出来た
>>327 正直、そういう僻みがましいタイプもかなり滑稽だぞw
自分が知らねえ、興味もねえことなら普通に無視して流せがいいのに、
自分の学力に自信がない僻み野郎に限ってノコノコでしゃばってきて、で
「俺のコンプレックスを刺激する奴って滑稽だよな(プ」とか言ってやがる。
滑稽なのはお前の方だろってw
痛すぎワロタw
乱数の話題に食いつかないなんて、どこのニワカだ。
低学歴の乱数話 高学歴のマルチスレッド話
むしろ逆。乱数は深いぞ。
>>332 マルチスレッドというか並列計算は一部の人間しかついてこれなかったしなw
東大じゃ今は必須スキルなんだぜ
おっとこんな事言ったら俺の学歴がばれちまうなw
F欄でしょ
乱数が奥が深い? 馬鹿か 悪魔の証明を盾にあーだこーだ言ってるだけで実のない議論じゃねぇか 馬鹿学生の与太話は隔離スレでやれ
線形合同法の弱点に気づきそこを突くカイジであった。
C#で作ったDLL内のstatic変数は使用するアプリ毎に用意されるのでしょうか? もしそうなら全てのアプリ共通にするにはどうすればよいのでしょうか?
ファイルマッピングオブジェクトとかパイプに書き込んでおく
じゃあアプリ毎なんですね。 必要なのはアプリ毎だったのでとりあえず安心しました。 ありがとう。
リファレンス読んで分からなかったとしても、 それって試せばすぐ分かることじゃないのか こんなところで質問する方がずっと面倒だと思うんだが....
アプリ毎と言うよりはプロセス毎
多重起動させた同じアプリ間で共有するには
>>339 一応誤解しないように補足
>>341 質問スレや質問フォーラムはどこもそんな感じ
どなたか
>>215 についてご存知ありませんか・・・?
>>344 コンテキストメニューの当たり前の動作。
Silverlightでsqliteが使えるようだけど これって全プラットフォームで使える物なのかな?
csharp-sqliteベースなら使えるだろうけど そう言ったら信用して使うの?w まず自分で試せ
>>344 多重起動禁止が出来ているなら答えは目の前にある
ヒント:プロセス間共有メモリ
>>342 アプリケーションドメインごとじゃないのか
色々と回答ありがとうございます 今、出先なので帰ったらパイプでも使って実装してみますね
C#では無いけど、例えば0以上なら0、0未満なら1もしくは-1にする 場合にifを使わないで計算で求めるにはどうすればよいでしょうか?
caseつかえば?w
C#でないならスレ違い。
intなら unchecked((uint)x >> 31) とか
やっぱりスレ違いですね。 こういう状況よくあるから制御文を使わないで計算だけで 済ませられないかと考えていました。 失礼しました。
質問の意図を誤解してなければmath.sign()がまんまではなくて?
しかし、論理式で算術計算って大昔のインタープリターのBASICだな
>>359 boolをintに直接キャストするには *(int*)(void*)&boolValue とする必要がある
>>360 Math.Signは0より大きい場合1だぞ
>>362 1引いて2の商を取るだけでしょw
どんだけ知恵がないんだ
まんまではないだろ 比較をメソッドに出してるだけだから答えになってないし
>>364 C#は演算子を含め全ての操作はメソッドですw
もしかしてInt32同士の加算がメソッドだと思ってるの?w
ちょっと質問というか疑問 List<T>コンストラクタにはIEnumerable<T>引数に取れる奴があるけども、 これでコピーされるのは参照だけ? それともちゃんとTの複製が新たに作られるの?
>>368 仮にTの複製を作ると仮定する。
TがIClonableを実装してなかったらどうするの?
そういうクラスのリストは作れません、ってか。
そんな不合理なことすると思います?
>>368 ちょっと調子乗ったアホが高飛車に答えてしまったようですみませんなww
ガキ臭。 馬鹿じゃないのか。
3分で反応するってレスが帰ってくるの待ってたのか?暇人。
不合理なことをすると思います? っていう質問自体合理性を欠いてるんじゃあないのww
仮定する。 面白いねーガキ臭いねー 馬 鹿 じ ゃ な い の
/\___/\ / / ヽ ::: \ | (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ,,ノ(、_, )ヽ、,, | < まーたはじまった | ,;‐=‐ヽ .:::::| \_______ \ `ニニ´ .:::/ /`ー‐--‐‐―´´\
テキストエディターを作ろうと思うんですが、よくキーワードに色つけてるじゃないですか? あれってC#でも実現可能ですか? でも、もしやるとしたら、リッチテキストとかではなく、 自分で直接描画とかそんな感じですかね?
RichEditBoxでいいと思うけど、自力でやりたいならしたらいいさ。
>>376 AzukiっていうC#で書かれたフリーのテキストエディタエンジンがあって
ソースも公開されているから、参考にしてみては?
SharpDevelopのソースコードおすすめ 綺麗にコンポーネント分けされてて流用組み込みサンプルもたくさん付いててすばらしい
だがGPL
LGPLだからエディタのdllをそのまま使う分には本体には感染しない ソースコード混ぜちゃダメ
ライセンスなど無視してオーケー 文句言ってきたら「嫌ならソース公開すんなバーカ」と言えばヨシ
まあ、自分で守るもんだからな。
384 :
376 :2010/08/10(火) 12:47:34
>>378 Azuki見てみました。API使って自分で描画してるみたいですね。
参考になりました。ありがとうがざいます。
>>379 これはすごいですね。
C#でここまでできますか!!
VS2010だって大部分C#だぞ
だいたいマネージコードなのは確かだよ COM interopの化け物だけど
>>386 マジもくそも、今 Windows 向けの GUI 書くならほとんど C#。
MS 製品もどんどん WPF 化されていってるし。
病院いったら医者が使ってるアプリも(たぶん)WPFで書かれててびびったよ。 少なくともアイコンはVSデフォルトのへんなのだった。
>>389 近所の病院ではVB6製のアプリが普通に動いている
それは別に不思議じゃない
VB6はWindows 7でも大丈夫らしいし。
今、病院用のアプリをWPFで作ってる最中だぜ?
WPFって使いづらくない? スプリッタが使いづらいというかどういう風にやれば Formの物と同じ使い方ができるかわからない 参考サイトないですか?
見た目だけ作るなら使づらくはないと思うけど、それとロジックの連携がやりにくい
なれるとWinFormでやるのがばからしくなるよ 凄く楽が出来る
バインディングがすごく便利だけど、Windowsフォームで簡単に出来てたことが、WPFだと物凄くめんどくさいこともある ほんと一長一短 俺はWindowsフォームアプリに一部WPFコントロールを貼り付けてる
WPFで縦方向にスプリッタおいて 左にリスト、右にリッチテキスト置きたいだけなのにやり方が分かりません 両方ともスプリッタにドッキングさせて左を固定パネルにしたいです なぜかグリッドスプリッタが長方形になって困っています
グリッドを2列にしてリストとスプリッタとリッチテキストを配置すればいいだけのことだと思うが。
たぶん
>>398 はGridSplitterの分もカラム確保してるだろ
リストと一緒のカラムにスプリッタ置け
C#ってポインタないの?
unsafeとかIntPtrにポインタ入れる場合もある
tesu
>>401 >>402 の言う方法で使えなくはないけど、ポインター使う場面ほとんどないよ。
ポインターの代わりになる機能がそろってる。
Borland C++ Compilerを入手しようとしたんですが いつの間にか登録必須になってました できることなら登録せずにコンパイラを入手したいのですが ミラーとかありますかね?検索してもなかなかヒットしなくて・・・
>>404 ポインタは高速化したいときぐらいかな。
BorlandがC#のネイティブコンパイラを出してるのかと思った
昔C#Builderだかって出してなかったっけ?
.NetFramework2.0のHttpWebRequestでGetResponseした際に以下のエラーが出るようになりました。 >基礎になる接続が閉じられました: 送信時に、予期しないエラーが発生しました。 どうにも本日適用されたWindowsUpdateが原因のようです。 WindowsUpdateを自動更新にしている自分のPCや友人の環境でも出ていますが、 WindowsUpdateを手動更新にしていてまだ更新を実行していないPCではエラーが発生しませんでした。 解決策をご存知の方がいらっしゃったらご教示いただけないでしょうか? よろしくお願いします。 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); WebResponse res = req.GetResponse();
413 :
411 :2010/08/12(木) 23:05:37
追記です。
プログラムの追加と削除からKB980436を削除したら
>>411 のエラーは出なくなりました。
しかし使ってる人全てにこれを削除してもらうわけにもいきません。
どなたか回避策をご存知ありませんでしょうか?
SSLでやり取りをいい加減に処理してる部分(笑)を修正するプログラムのようだが…
415 :
411 :2010/08/12(木) 23:30:22
ウィンドウメッセージを処理するプログラムを作成することになりました。 WM_PAINTやらWM_CREATEやらのメッセージIDが定義されているクラスライブラリがあれば使いたいのですが、 こういう場合、皆さんはどうされてます?&存在している場合はリンクを教えて頂きたいです。
417 :
411 :2010/08/12(木) 23:40:57
解決しました。
以下のソースでエラーが発生しなくなりました。
ヒントをくださった
>>414 さんありがとうございます。
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;
WebResponse res = req.GetResponse();
cのヘッダに正規表現で置き換えでも施せばいいんじゃあないでしょうか
と思ったらpinvoke.netにあるね これでいいんじゃあないでしょうか
>>416 NativeMethods.cs
SafeNativeMethods.cs
UnsafeNativeMethods.cs
421 :
416 :2010/08/13(金) 00:44:48
422 :
デフォルトの名無しさん :2010/08/14(土) 08:59:50
VS2008 C#でExcel2003上のCheckBoxの値(真・偽)はどうやって 取得できるのでしょうか? 御存じの方、お教え下さい。
オートメーション
424 :
デフォルトの名無しさん :2010/08/14(土) 10:08:49
422です。 OLEオートメーションですね。 Excel.OLEObject chk1 = (Excel.OLEObject)oSheet.CheckBoxes("CheckBox1"); でしょうか?
425 :
デフォルトの名無しさん :2010/08/14(土) 10:11:00
追加です。 "HRESULT からの例外: 0x800A03EC" のエラーが出てしまうのですが。
エラーメッセージ見て、何すればいいんだかわかんないやつは、 初心者スレ行けよ。
変数宣言する時にvar って何で使うのですか 可読性か著しく低いんですけど
LINQのクエリ保持する変数とか、引数の多いラムダ使う時に型を書きたくないから
さらに匿名クラスは明示的に型を書くことすらできない
もちろん使う必要がないのに無理に使う必要はない
>>427 現在のソースコードは、普通のテキストエディタや、紙に印刷して読む時代ではありません。
読みたければVisual Studioをインストールしましょう。
var hoge = "moge"; とか使うやつは、単なる馬鹿。
型宣言のない動的型の言語で、型宣言のないのが欠点って言われることは ないし、型推論のある言語はむしろそれが売りみたいに言われてるしな。 でもC#でvar使うと、そんなの知らないオッサンとか苦情言ってきて コーディングルールで使用禁止とかされるのが目に見えるようだ。
437 :
デフォルトの名無しさん :2010/08/14(土) 13:14:34
>>435 >型宣言のない動的型の言語で、型宣言のないのが欠点って言われることはないし
それはないw
っていうか君もそんなこと言ってるようじゃ、君自身が「そんなの知らないと苦情言うオッサン」
の仲間なんじゃないのか。
>>437 言われないね。
動的型の言語で型宣言を追加したのって、センスないPHPくらいじゃないか。
ほかの言語は、そんなことまったく話題にならない。
動的言語の欠点というよりは、それがために動的言語を採用できないプロジェクトがある
var hoge = "moge"; var hage = 1; とか、普通にやるね。 型を一々書くのが読みやすさにつながる思っていた時もありました。 実際にvarで徹底してみると、別に読みやすさに変わらない、 むしろ視覚上スッキリするので読みやすくなったと思った。 ScalaとかF#は全部型推論でやってるわけだし、 動的言語はもちろん型宣言なんてないわけだしねー。
もう
>>427 の質問は解決しているのだから
しょうもない話を続けるの止めてくれないか?オッサン方
結論は「好きなの使え」だな。
>>438 - 今更言っても仕方がない
- そもそも型の区別を機械に頼らなければならなほど複雑なコードが従来
書かれなかった。
というだけでしょ。
問題がないのではなく、問題が顕在化するような使い方がされない(あるいは
>>439 が言うように「できない」)だけ。
>>441 お前さんの話がいちばん「しょうもない」
下らない奴だな
意地になって話続けようとする奴の方が下らないと思うがな…。 現実でもそんな性格してるの?
もちろん プログラマは陰険だからな
型推論さいこうやな。 動的型のような手軽さと、静的型の堅さを両方かねそなえてる。
さて、死ぬまでこの話を続けようか
条件演算子とかもいまだに、わかりにくいから使用禁止って言ってる おっさんがうじゃうじゃいるから、C#の型推論も使うなっていうやつ いなくならないだろな。
インデントしろよ!!!!!!!!!!!!!!!!!!!!!!1111111111111111
>>448 if(a==2)
{
a=3;
}
else if(a<2)
{
a=5;
}
else
{
a=7;
}
とか書くわけか
読みたくねぇ
>>450 ガード句の名のもとに
void Hoge(
string arg1,
int arg2)
{
if(arg1 == null)
{
throw Exception
}
if(arg1.length == 0)
{
throw Excpetion
}
if(arg2 == 0)
{
throw Exception
}
if( // こんなのがいっぱい続いてる)
// 実際の処理はたったの一行
}
とかいう書き方する人がいて大変困ってたり。
コードが横に伸びるのを気にするくせに、縦に無駄に長いのは全く気にしない謎。
>>450 それ条件演算子使って試しに書いてみな。
varも条件演算子も、あるから常に使うのではなく、必要に応じて使うのが正しい。
うんうん。 無理やり全部三項演算子使うのは馬鹿だと思うけど 絶対使うなってのも同じぐらい馬鹿だと思う。 var は初期化がセットになってない場合はなんだかわからんからキモいなあ。
varって初期化と同時にしか使えなくね
他の言語を含めてるのならきっとその限りではないが まぁどうでもいいね…
varが使えるところはすべてvarにした方がいい。 少なくともお前らより頭の良い人間がこれを実装したのだからな。
読む人間はボクより馬鹿の可能性もあります
馬鹿に合わせてコード書いてどうすんだ
実装者のレベルに合わせてコード書くのは当たり前だろう。 本当にvar化ばっかりだな。
コーディングスタイルの問題で「お前の書き方ダサいよ」って言われた やつって「ヘタクソにあわせて書いてるんだよ」 「下手には有効なスタイルなんだよ」みたいにいいわけをはじめるよな。 コーディングスタイルに上級者用、ヘタクソ用なんてないよ。
いやあるだろ。
>>463 君の場合は日本語のスタイルも見直した方がよさそうだな。
日本語が文字通りcodeになってるw
fjの昔から、反論できないと日本語がおかしいとかいうやついたけど、 「おまえ日本語おかしい」だけしか言えないやつって、逆に頭悪そう。
>>464 ないよ。
上級者→高度なわかりにくいコード
とか思ってる?
実際は上級者のほうが読みやすさに対して気をつかってるよな。
>>466 反論、か。
素敵な幸せ回路をお持ちだな
まあ、本題に触れなくて相手の人格攻撃に終始してるやつは 負けを認めてるも同然ですね。
varーカ
>>467 なんか違う話になってる。
高度でわかりにくいコードがあったとして、
上級者は理解できる、初心者は理解できない、とすると、
初心者にあわせて、「高度でわかりにくいコード」を禁止する、
というのは当然の話。
それは上級者にしか分からない複雑な高度なコードを どう初心者に分かりやすく書くかという話であって ダサいとか綺麗とか言うのとは別の話
473 :
デフォルトの名無しさん :2010/08/15(日) 11:21:11
>>471 「なんか違う話」をしてるのは君じゃないの?
>>463 の"code"は「コーディングスタイル」の話じゃないのか
まあcodeだから違うのかもしれんがw
>>467 あるよ。
コーディング規約に限らず、全ての物事に対応できる万全のものはない。
こう言う本質的なことを理解できないやつが多いな。
例えば、全員天才のプロジェクトだったら、
「コーディング規約を作らないのがコーディング規約」でもいいんだよ。
上級者ほど読みやすさに気をつかってるんだよ! →ラムダ式分からねーよ、デリゲート分からねーよ →書き直せ →forとifでダラダラと…… これ読みやすいのかね(初心者でも読めるのは確かだけど) ということになったことがあるので、「読みやすさ」と漠然と言われても、 どこまでの初心者を指して合わせるべきなのか困るところではある。 デリゲートぐらいは、初心者を楯にしてないで勉強してくれ、と思った。
夏なのに このスレだけ寒いなぁ
477 :
459 :2010/08/15(日) 13:52:13
>>475 おめーさん理想と現実のギャップに悩むタイプだな
人間が全員勤勉で誠実だったらいいよね
>上級者ほど読みやすさに気をつかってるんだよ! その読みやすさの感覚が普遍じゃないから規則があるんだよ。 規則以外の事書くなよって言うのと同時に、規則程度のことは覚えろやって言ってるんだよ。 そんなことも分からん時点で上級者じゃねーだろ。 下っ端じゃなくなってちょっと調子に乗り始めた馬鹿コーダーだ。
なにこの小学生の煽り合いみたいな流れwww
小学生みたいだけど、じつはイイ年したオッサンなんだよ
Dictionary ジェネリッククラスで 値を元にキーを調べるのは keyvaluepair を取り出して一つ一つ調べるしかないのかな
Valueの重複はOKな以上そうじゃないの
>>481 Dictionaryを2つ使ってどちらからも引けるクラスを作ってる
>>483 あぁ、なるほど。そういう手もありますね。
>>475 そういう時って、自分が分かってないくせに「読めないやつがいるから」って
他人事みたいにいうのな。
だめなヤツって表面的な理解しかできてないのにサンプルやらテンプレートを
あてがっておけば、それなりにコード書いちゃうから、逆に考えたら多少高度
なコードでも(そこらあたりのレベルで)適応できるはずだから、そんな気遣い
しなくていいのにな。
ラムダ式に使いどころはよくわからないな 現状仕方なく使ってることの方が多い
厳密に言えばラムダでなければならない理由はないからね。 でもラムダのほうが楽じゃない?
Javaもクロージャで揉めてることだしそれは確かだろう
>>488 ラムダは遅延実行させるのが目的だから、上から下への実行順序の常識を覆すのが初めて使う人が面食らうんじゃないかな。
使い始めるとすごい便利なんだけどな。
遅延実行は特性であって目的じゃないよね?
今までエクセルで扱ってたデータをC#で扱いたいんですが、 データセットってどの程度の値の保持まで使えるんでしょうか。 具体的には5行10000列3シート分のデータを保持して色々加工できるようにしたいのですが、 この場合データセットに一括保持っていう考え方は一般的ですか。
DBでするのが一般的です。
何でもいいが行と列を逆に呼んでねえか 行が横だぞ
俺もたまに迷う。
普通はSqlServerCompact使うわな
497 :
492 :2010/08/15(日) 18:13:00
行列逆でした。
>>493 Visual Studio使ってるんですが、SQLサーバとか外部でDB作って、
それにC#で接続して加工するってことですか?
そう。 Excelで使ってたデータがどんなのかは知らないけど、ちゃんと正規化するようにね。
499 :
492 :2010/08/15(日) 18:47:05
>>498 わかりました。色々とありがとうございました。
10000行6列程度なら 楽勝だったと思う。
501 :
492 :2010/08/15(日) 20:33:49
>>500 そうなんですか。
ただ、3シート分あるので3倍はつらいですかね。
なるべくなら単純なのがいいので、データセットで作ってみて、
重かったら、DBを利用して組んでみたいと思います。
配列じゃダメなん?
あのさー。データセットでやったとして、永続化はどうすんの?
データセットならXMLが楽だろ
csvで運用だろ
>>426 お前がバカ
>"HRESULT からの例外: 0x800A03EC"
これで原因が分かるやつはいない。
それで何をすればいいんだかわからないなら、あきらめろよ。
0x800A03ECでぐぐればいくつもヒットする。 これはマクロやオートメーションで何にでも現れる実行時エラー(1004エラー)で、 エラーコード以外に付加情報がテキストで返されている。 そのテキストの情報も〜の操作が失敗しました〜程度の情報で あまり役に立たないことがほとんど。 この辺までたどれたならいいんじゃないか。
ShiftJISで質問 Encoding.GetEncoding("shift_jis")でEncoding取得して、 1〜0xfffeまでGetString()で回して重複除くと9417文字 JIS X 213は11223文字なので1800文字ちょい足りない この足りない分は自前でなんとかするしかない?
0213じゃなくて、0208ベースだろ?
>>509 文字数だけでカウントしてるけど、それ外字とかも含んじゃってない?
JIS第三水準第四水準(6000文字ぐらい)− IBM拡張文字(500文字ぐらい) = 5500文字ぐらい
になると思うんだけど。
>>509 サロゲーションペアとかも入れなきゃ。
半角カナとか全角記号とかって確か、FFFEまでの範囲に入ってない。
SJISにサロゲートペア?
あー、GetByte の方と勘違いしてた。
>>510 JIS X 0213はシフトJISにもマッピングされたハズ
Encoding的には丸ごと違う領域に行かされたかも
>>511 Winはかなり初期からNEC拡張外字をデフォルトで持っている
NEC外字はIBM外字を含む
>>516 >>511 の言ってる外字ってのはSJISで0xF040〜0xF9FCまで、
UnicodeにするとPUAのU+E000〜U+E757に変換される部分だろ。
それと、文字集合としてはIBM拡張文字⊃NEC選定IBM拡張文字だから
NEC外字はIBM外字を含む、は間違い。
C#5.0はどんな感じになりますか
超!エキサイティイイイイイイイイイイイイイイイイイン!! な漢字
>>516 Shift_JIS-2004とかShift_JISX0213とかの事だろうけどWindowsではサポートしてない。
cp932と互換性ないから無駄な混乱引き起こすし。
誰かが作ったコンバータ拾ってくるか自前でやるしかない。
521 :
509 :2010/08/17(火) 16:42:16
色々ありがとう 結局自作しか無いか
HTMLをXMLへ変換する自作クラス
http://codezine.jp/article/detail/448?p=2 これ使いたいんだけどサイトの使用例
// コンストラクタ ( System.Uri 型を使用 )
HtmlConverter converter =
new HtmlConverter( new Uri( "
http://codezine.jp/ " ) );
// 生成された XmlDocument を取得
HtmlConverter convertedXmlDocument = converter.ToXmlDocument();
そのままビルドすると暗黙的な変換はできませんって怒られて、
XmlDocument型にすると例外で止まるんだけど、なんで駄目だかわかる人いますか。
環境はvs2008スタンダードで.NET Frameworkとかは最新アップデード済
ライブラリの呼び出し方よくわかってなくてネットで調べて、
using Cafera.Net11.Library.Text.Html;
つけてみたんだがこれで合ってますか。
// 生成された XmlDocument を取得 XmlDocument convertedXmlDocument = converter.ToXmlDocument(); これじゃダメなの?
>>523 それでやるとライブラリー内でArgumentExceptionが例外投げて止まってしまいます。
自分が悪いのか例文が悪いのかライブラリーがおかしいのかさっぱりです。
ライブラリーがおかしいんだと思うわ
もっとシンプルなサイトなりテキスト指定してみては
HTMLをXMLへ変換する他の方法を提示してあげた方が解決が早そうだね
ちょっとやってみたけど、codezine.jp以外ならほぼ動くなw
なんじゃそら
cssに弱い、事前に省けるのだろうか
>>525 そうなんですかね。
CodeZineの記事になってるので自分の使い方が悪いんだと思ってました。
>>526 そうですね。ちょっと試してみます。
532 :
522 :2010/08/17(火) 18:11:20
複数のサイト試してみたら、変換出来るサイトと出来ないサイトがありました。 残念ながら自分の変換したいサイトは無理でした。 加工して使うか、別のライブラリ探してみます。 みなさん相談ありがとうございました。 ちなみにHTMLからXMLへ変換するライブラリで他に知っている人いますか。
MS製のパーサが無かったっけ InfoPathだかの… まぁ自分は長年の付き合いでtidy使ってますが・・・
zipファイル扱えるライブラリでおすすめはなんでしょう? DotNetZipは日本語ファイル名で更新かけると書庫がブチ壊れるので除外で
zipなんて大したフォーマットじゃありませんし手書きはどうですか
一時的に日本語ファイル名から英米語ファイル名に変えればいいじゃないいいじゃない
>>538 Compilerが自作できるみたいな感じですかねすごいですね
ありがとうございます
>>538 名前からすると拡張子csダブルクリックでコンパイルされて直接実行できるようになるとかw
PowerShellがあまり良い感じじゃないから代わりにしたい
csコンパイルして実行するだけなら今でも出来るやん
>>542 具体的にどこら辺がセキュリティホールなの?
>>539 C# とか VB のコンパイラーをとりあえず .NET 実装して、
内部的なデータとかまで含めてライブラリとして参照できるようにするとか。
>>541 コマンド呼び出すなら PowerShell 楽だけどもね。
スクリプト言語として使うといまいち・・・
>>543 cs ファイルのダブルクリックで直接実行ってことでしょ。
>>544 信頼されてないプログラムを意図せず実行しちゃう可能性上がるしね。
PowerShell もデフォルトでは書名のない ps1 ファイル実行できないし、
ファイルをダブルクリックするだけでは実行されないし。
>>545 デフォルトの権限を適切にすれば、スクリプト言語と同じように使えるだろ。
>>546 csダブルクリックで出来るん?おせーておせーて
>>547 できるようにするのはプログラミングのたしなみがあるなら簡単だろ。
ダブルクリックでコンパイルして実行なんて 要はファイルの関連づけでしょ。 インターネットでファイルダウンロードさせて 「開く」で開いたら「実行」されちゃうんだぜ。
>>546 「できる・できない」と「する・しない」は別問題だろ。
PowerShell の厳しさ考えるに、するかどうかといわれるとしないんじゃね。
まあ、そこまで需要あるかがまずあやしいし<ソース配布・即実行。
>>549 各種スクリプト言語やexeでそれができているのが問題ないなら問題ない。
問題あると思っているなら、現状に問題がある。
セキュリティホールになりうるよ exeだったら危ないかなと思って考えて実行するだろうけど csファイルやvbファイルは気が緩む 一般人はCSファイルなんて知らないだろ?
危惧していることは理解できるが それをセキュリティホールとは言わねえだろ
554 :
532 :2010/08/18(水) 13:30:20
>>537 最近似たような質問あったのか。調べ足りませんでした。
SgmlReader使う方法で出来そうです。
教えてくれてありがとうございました。
ヒューマンミスが一番怖い
>>555 ヒューマンエラーは知ってるけど、ヒューマンミスは初めて聞いたわ。
また一つ知識が増えた。 さんくす。
ミスが怖いのはもちろんだけど だからと言ってミスが無くなることは「絶対に」ない ●ミスを出来るだけ起こさない仕組み ●もしミスが起こっても問題を最小限に食い止める仕組み が必要
セキュリティホール ヒューマンミス わろす
どんなバカでも誤動作しないのがいいソフト 例えば間違えて(注:1発だけなら誤射)うっかり核スイッチを 押しても発射されないのがいいソフト
いまどきのスクリプト言語の実装はJITが入っていたりするので、csをスクリプト言語として使用するのと大して変わらない。
スレ違いかもしれませんがDOMについて教えてください。 selectNodes("/hoge/fuga") とすると複数の"fuga"ノードが返ってきますが それを2個目の"fuga"ノードを取得するというのはどうすればいいでしょうか? selectNodes("/hoge/fuga[2]") こんな感じでできるとうれしいのですが。
selectNodes("/hoge/fuga")[1]
>>563 後出しですみません。
xpathのところで指定したいわけがありまして。
やはり無理ですかね。
SelectSingleNode("/hoge/fuga[2]")
DataGridView.CellPaintingイベントのDataGridViewCellPaintingEventArgs.CellBounds と同じ値をDataGridViewを使って取得したいのですがどうすればよいのでしょうか? DataGridViewCellのGetContentBoundsでは同じ値にならないようでした。
568 :
567 :2010/08/19(木) 17:18:34
試したコードはこんな感じです。 使い方間違ってるのでしょうか? private void DataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { DataGridView grid = sender as DataGridView; Rectangle rect1 = e.CellBounds; Rectangle rect2 = grid .GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex,true); //違う Rectangle rect3 = grid .GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex,false); //違う Rectangle rect4 = grid[e.ColumnIndex, e.RowIndex].GetContentBounds(e.RowIndex); //違う }
みづれぇw ぶん殴っていいよな
だって川俣だしw
川俣おつw
趣旨を明確に示すにふさわしいコードを書くべきだよねw
これを馬鹿にしているのは馬鹿
よぉバーカ
DataGridViewの1つのセルにチェックボックス+文字を表示させる事は可能ですか?
{ だけで一行潰しちゃうひとって
まずParallel.InvokeとConsole.WriteLineの間に行間を空けて欲しいのだが 何をベーマガみたいな紙面節約してんの
改行なしbrace推奨なんてJavaぐらいだろ
>>581 字下げスタイルでWikipedia引けばわかる。
普通の配列処理にしとけばいいのに
共有変数とロック用オブジェクトを渡したり 1024×1024の黒を数えるのに8秒もかかったり わざわざ違和感ありそうなことをしてるな
最初の2つなんてファイルキャッシュの差も入ってそうだし
やるにしてもせめてBitmapはCloneでコピーするとかさ
各タスクに、特定の変数へのアクセス(しかも最後だけ)用のロックを渡すとか、普通はそんなことしない とりあえずのコードってのはわかるけどさ
>つまり、同じコアを複数のタスクで分割して利用してしまうと、コンテキスト・スイッチのオーバーヘッドだけ重くなるということだろう。 間違ってはいないけどこの例では多分Bitmapの再読み込みも遅い原因の気がする(キャッシュはきいてるにしても)。
すべてstatic関数で済ませようとしているからだろうが、intの加算ならlockいらない。 教育用には、つけておいた方がいいだろうが。
>>591 >intの加算ならlockいらない。
いやそれも間違ってるぞ。
ああ代わりにInterlocked使ったらって話か?
どっちにしても教育用コードで共有変数をタスクに参照渡しする時点で違和感ありありだけどね
まあ普通ならpngファイルの読み込みは、読み込み済みビットマップの黒ピクセルを数えるよりは遅いわな
>共有変数をタスクに参照渡しする時点で ここでの共有変数とは、タスク間共有変数という意味あいね。
>>592 C#は、intの演算はアトミックが保証されているんじゃなかったっけ。
a += bは読み取り→加算→書き込み それぞれのステップはアトミックだけど全体としてはそうじゃないから混同してはいけない
どうでもいいけど C# 4 が気になる .NETのバージョンは4.0からは.0が消えて4になったからそれと混同してるんだろうけど C#は4.0が正しいはず
>>596 intのincrement or decrementもアトミックでないんだな。はまりそうだ。
>>596 機械語レベルでそんな単純な話とも思えんが....
例えば「読み取り」って言ったて変数のアドレスは固定じゃないわけで、
どうやったって変数のアドレスを取得する処理が入るはず
アドレス取得はタイミングの影響無いんだから無視していいだろ。 機械語レベルでも、x86はリードモディファイライトの単発命令もあったりするから、 機械語レベルだと複数になるなんてのも実は本質じゃない。 たとえ単発命令になってもアトミックな保証はない。
601 :
595 :2010/08/21(土) 13:51:24
C#のlanguage specificationを見てきたが、アトミックではないとわざわざ決められていた。
>>601 C#言語仕様では、参照型と32ビット以下のプリミティブ型およびそれらを基にした列挙型の
読み書きはアトミックでそれ以外は保証なし
実装がどうだろうと仕様は仕様
短いプログラムなんだから、コードを張って批判しろよ。
最初、加算がアトミックかどうかって話った気が・・・
>>602 それは、ld.locとかst.locがアトミックってことかな?<読み書きがアトミック。
>>603 並列処理系の問題は実測難しいよ。
数百万回に1回しか起こらない問題とあったり、
稼働するCPUによってはそもそも起こらず、マシン変えたら起こるとかもあるし。
>>604 C#の仕様だから、CLRの仕様は関係ない。
>>604 スタックはスレッド別だからローカル変数の読み書きや加算演算自体にはそもそも問題自体が存在しない
わからないなら口出さなけりゃいいのに
特定のクラスでしか使わない(といってもプロパティの設定などで外部からも利用する)ような列挙体は そのクラスのパブリックメンバにするのがいいのかな。
intがアトミックというのは、 スレッドAが変数Xを0から-1に書き換える時に、 スレッドBが並列でアクセスすると、 0か-1のどちらかの状態が読み取れることが保障されるというもの。 アトミックでないとするとそれはXが0xffff0000のように 半分だけ書き換わった状態がありえるということ。 スレッドAがXを0から-1に書き換えた直後に、 スレッドBかXを読み取った場合は スレッドBが読み取ったXは0か-1であることは保障されるが、 確実に-1であるとは限らない。
>>608 namespaceを共通にしていれば独立して宣言したほうが扱いやすいと思う。
確かにた方が扱いやすそう。 クラス定義するソースファイルで宣言すれば 混乱することはないかな。
やっちまった ×確かにた方が扱いやすそう。 ○確かにて独立させて宣言した方が扱いやすそう。
並列処理をするコードを書くとき、インクリメントがアトミックであることを前提とした実装はする。 C#では、その前提は使えないということ。
C#をはじめとする.NETではしっかりlockするか、 Interlocked.Incrementを使うのが吉。
マルチコアだとアセンブラでインクリメントを書いてもアトミックじゃないしな。
616 :
デフォルトの名無しさん :2010/08/21(土) 16:28:51
>○確かにて ??
ほとんどの言語はアトミックを保証してないと思うけどね。
意味ないけど、空ループってラムダでどう書くの? foreach (var x in Enumerable.Range(0, Int32.MaxValue)) ; System.Threading.Tasks.Parallel.ForEach(Enumerable.Range(0, Int32.MaxValue), ???); ???のとこ
グリーンスレッド前提のものくらいじゃないかな。 x86の場合アセンブラレベルのincやaddで直接メモリに加算が出来るが、 この加算はスレッドに対して安全ではない。 inc DWORD PTR [ebp-4] バスロックしてしまえば一応大丈夫なはずだけど、一般的なのかは知らない。 lock inc DWORD PTR [ebp-4]
>>618 そこにはAction<T>が来るから、こんな感じかな、(o) => { }
>>620 ありがとう。これで、パラレル処理がかけるわ。
何をする気だよその止まらないループ
>>618 質問と関係ないがParallelEnumerableってのもあるぞ。
匿名メソッドまたはラムダ式の中でyield return 使いたいよぉ いや、言ってみただけです・・・
自動プロパティに初期値を指定することは出来ないのでしょうか? public string Name { get; set; } // ↑初期値をnullでなく空文字列にしたい。
DefaultValueAttribute を使うとか?
>>624 コンパイラの負荷が大きくなりすぎるからやめた
らしい
>>627 うん、コンストラクターで代入するしかない。
そしてその手は struct では使えない。
まあ、たびたび要望に上がるんで、将来のバージョンでプロパティの初期値設定構文追加されるかも。
>>628 なんせ、ラムダ式とイテレーターブロックはコンパイラが頑張ってコード生成してる機能の筆頭だもんね。
組み合わせると怖い。
MSの中からもyield文の導入は失敗だったという声が聞こえてくる。
それは言い過ぎじゃないかな
匿名メソッドも失敗。
>>630 void な yield return できないこととか、ラムダと組み合わせれないことを指してなら、
「悩んだ」的なコメントは出てたような。
>>633 まあ、ラムダ式導入された今となってはね。
yieldはLINQの実装で使われまくってるだろ 実装に起因する変な制限を作ってしまったという意味では失敗 Javaのジェネリクスみたいなもんだな
yieldのせいでresetが危険なメソッドになったな
ちょっと考えただけで、yieldにはいろいろ問題がある。 実装が難しいからこの場所では使えないとか、設計に思慮がない。 アンダースは賛成したのか?
多少くらい実装上の都合による直感的ではない制限があったとしても便利なら採用する。 別にC#では珍しいことではないんじゃない?
>>638 目先の便利さに目を奪われて後で後悔するのがC#
慎重派を気取って言語としてはどん詰まりになったのがJava
>直感的ではない制限 selectなどの順番がSQLと一致してない
合理性からすると select は SQL が LINQ に合わせるべき
sqlっぽくしたからしかたないけど、機能と名前が合わないと思う > select
SQLには射影選択結合が基本的な機能としてあるけどさ 射影に使うのがSELECTで、選択に使うのがWHERE等の条件文なのな 批判するつもりはないがイミフ 射影する”要素を選んで”いるんだよキリ
DataGridView - BindingSource - List<MyClass> みたいな感じで、データバインドさせています。 DataGridView をいじった時は、List<MyClass> のほうに変更が反映されますが、 List<MyClass> のデータをいじると、BindingSource.EndEdit() を 呼ばないと変更が反映されません。 List<MyClass> の行を追加・削除した時は、 BindingSource.DataSource に再設定しないと、 変更が反映されません。 こんなものなのでしょうか、それとも私のやり方が間違っているのでしょうか。
647 :
デフォルトの名無しさん :2010/08/25(水) 22:06:29
ソケット通信で、複数NICが存在する場合、明示的にどれを使うかを選択するにはどうすればいいでしょうか?
http://msdn.microsoft.com/ja-jp/library/3bsb3c8f.aspxを見て 、
tcp = new TcpClient(new IPEndPoint(IPAddress.Parse(使いたいNICのIPアドレス), 0));
tcp.Connect(相手のIPアドレス, ポート番号);
としたのですが、Connect時にSystem.InvalidOperationExceptionが発生します。
ErrorCodeは10049です。
何か見落としている点がありましたらご指摘ください。
WSAEADDRNOTAVAIL = 10049 有効なIPアドレスではありません
649 :
647 :2010/08/25(水) 22:52:45
>>648 ipconfigで確かめた、目的のNICのIPアドレスが入っているんですけどねぇ・・・。
650 :
647 :2010/08/26(木) 00:28:34
>>649 おっと、補足。ほぼ間違いなく「相手のIPアドレス」は間違っていません。
tcp = new TcpClient();
tcp.Connect(相手のIPアドレス, ポート番号);
だと繋がります。
Graphics.DrawStringで背景を変更せず文字だけ描写するには どうすればよいでしょうか?
どのインターフェースを使うかはルーティングテーブルで決まるんじゃ?
653 :
デフォルトの名無しさん :2010/08/26(木) 14:06:46
>>651 >背景を変更せず文字だけ描写するには
これがちょっと意味わからん
Opaqueのことかと
逆か、Transparentか
656 :
デフォルトの名無しさん :2010/08/26(木) 14:16:22
重ね合わせは普通にできなかったっけ?
657 :
651 :2010/08/26(木) 14:16:34
申し訳ない。Graphics.DrawStringじゃなくてTextRenderer.DrawText でした。
658 :
651 :2010/08/26(木) 14:29:56
BackColorをTransparentにしたら出来ました。 ありがとう。
659 :
デフォルトの名無しさん :2010/08/26(木) 14:39:02
C#のコンパイルは何でやるのでしょうか? gcc g++ ではできませんか?
その並びで言うなら gmcs ?
ちょっと面白い MSのcsc Monoのやつ .GNU Portable.NET Projectのやつ くらいだろうか コンパイラは
まあwinならcsc、それ以外ならmcs
みなさんは自作structって使ってますか? 使って苦労したとかあれば知りたいです。
C#触り始めて3日くらいのころプロパティに使って10分くらい苦労したな
MDIでmenuStripをマージする際に、MergeActionにReplaceを使った場合、 ToolStripMenuItemではMergeIndexとTextプロパティの値で同じものを置き換えるようですが、 セパレーターが複数あると、MergeIndexを別々にしても一番上のものだけを置き換えます。 どうにかMergeIndexが同じものを置き換えるようにしたいのですが方法はありますか?
>>665 何を言ってるのかよく理解できないけど、
とりあえずMergeIndexの意味は、マージされた時のリスト(ドロップダウン)内の位置であって、
それ以上の意味があるようにはMSDNの記述からは読み取れないけど。
マージ前に子のメニューを適宜書き換える というかMenuStripとかContextMenuStripとかって動作怪しくね?
668 :
デフォルトの名無しさん :2010/08/27(金) 07:31:38
適当なたとえ 人が二人いてご飯を食べようとしています ご飯を食べるには箸が2本必要です この時一人が両方の箸を持てば、ご飯を食べることができます 食べ終わった後、箸を手放して適切に処置(洗う)すれば、もう1人もご飯を食べることができます もし1本ずつ持ってしまったら相手が手放すのを待った状態でデッドロックしてしまいます
それMSDNの例えの改変やがな
>>669 その例えはこの話について何も語らないかと
え?
それはデッドロックってなあに?ってのの答えだろ。質問者も、デッドロックは分かっている。
MSなんか全く関係ない。マルチスレッドをサポートしたすべてのメジャーな言語で一般的に起こりうる問題。 クラスBのインスタンスメソッドHogeの中でlock (this)が行われてるとして 利用者がBのHogeメソッドを呼ぶと、実質的にはlock (Bのインスタンス)を行ってることになるから 利用者がもしそのことを知らないとすると意図せずロックを取得してしまうことになる。 結果、デッドロックの危険性が高まる。
そいつはデッドロックが分かってないだけ 元の文夜見てみろ
thisが外部から見えlock出来てしまうからだろ。 うっかりHoge1のインスタンスを外部でlockした場合に予期せぬデットロックが起きる。 using System; using System.Threading.Tasks; class Hoge1 { public void Go() { lock(this) { Console.WriteLine("Go Go !"); } } } class Program { static void Main() { var hoge = new Hoge1(); lock (hoge) { Parallel.Invoke( () => hoge.Go() ); } } }
GO!GO!じゃねえよ
MSの推奨としては、lockをクラスないだけで使用し外部から使わない場合。 class Hoge2 { private readonly object syncroot = new object(); public void Go() { lock(syncroot) { Console.WriteLine("Go Go !"); } } } 外部からも使いたい場合はlock用のObjectと分かるようにプロパティする。 class Hoge3 { private readonly object syncroot = new object(); public object SyncRoot { get { return syncroot; }} public void Go() { lock(SyncRoot) { Console.WriteLine("Go Go !"); } } } 外部から使う場合 lock (hoge.SyncRoot) { ... と書く必要があるので目的がはっきりする。
>アプリケーション内の、その型以外の他のコードがオブジェクトをロックすると
そもそもクリティカルな部分しかロックしたらあかんでそ
ビット演算使いまくるときにいちいちuncheckedで囲むのがめんどくさいしネストが増えてうざい でもunchecked付けないでデバッグのときに他の部分のオーバーフローチェックが使えなくなるのは嫌 クラスやメソッド単位でunchecked付けるかプリプロセッサでまとめて指定させてほしい
checkedで全部囲っといてそこだけunchekedで囲んでるの?
コンパイルオプションをわざわざcheckedにしてるのかね。
せっかくチェックできるんだから活かさないともったいない デバッグのときだけチェックするようにしとけば意図しないオーバーフローを検出できるでしょ オーバーフローするのわかっててuncheckedを付けないのは貴重なデバッグの手段の一つを丸々捨ててることになる
御説ごもっともだけど、実際問題(意図しない)オーバフローによるバグが起こるようなコードって、 かなり奇特な分野のコードなんじゃないかとも思うけどね。
690 :
デフォルトの名無しさん :2010/08/27(金) 21:11:13
692 :
デフォルトの名無しさん :2010/08/27(金) 21:21:15
unsinged char a = 128; unsinged char b = 128; if( 255 <= (a+b) ) printf("xxxx"); a と b は事前の処理によって値が変る。 255か以上ならprintfを呼びたいが、 aとbを足しが結果が255以上の場合は呼ばれない。
693 :
デフォルトの名無しさん :2010/08/27(金) 21:22:31
正直使ったことないが、俺がいままでC#で作ったプログラムで 必要だったやつがあったかどうかわかんねーや。
>>692 それが実例のつもりか?
どこの世界にわざわざcharを使う馬鹿プログラマがいるか。
8bitマイコンで洗濯機のプログラムでも書いてるのかよ
俺ならチェックをかけないといけないような式があるとすれば、 都度処理をするがな。 デフォをchecked にしても対処できんと思うが。
697 :
デフォルトの名無しさん :2010/08/27(金) 21:52:14
>>695 視野狭すぎw
だが比較演算では何bitであろうが起こりうるのは事実だ。
とくにループ内で加算するような用途の変数ではな。
ゆとりもほどほどにしとけw
また妙な流れ
>>697 「起こりうる」ことは誰も否定してないの(当たり前)。
想定外のオーバーフローがバグの原因になるような場面の頻度を問題にしている。
断言するが、そんなものはそうはない。
しかし、ゆとりって言葉を安易に使う奴は例外なく馬鹿だな。
こういう奴は絶対に特亜がどうの創価がどうのマスゴミがどうの、
などとほざいている馬鹿でもあることは革新できる。
要するにアノミー君なんだな。
2つのNTP時刻の中間を見つけようとして、足して2で割ったりするといかんな 何年か前にそんなニュースもあった
制作者が想定していないような大きな数値をユーザが入力すると発生するというバグはよくある。 奇特なコードでなくともよい。 そうでなくても、 バッファのサイズの計算。 ファイルポインタ。 シリアル化したデータの読み込み。 unsignedとsingedの間でキャストをしている。(intとbyteの間でキャストをしている) 文字コードを数値として取り扱う。 Cと違って、checkedにしても別のところで落ちてくれるということは多いと思うが。
702 :
デフォルトの名無しさん :2010/08/27(金) 22:09:29
>>699 そうはないことが起こるのがバグだろ。
ゆとりハ馬鹿は引くことをしらないんだね。
しかも余分なことまで書いてる、ほんと何と戦ってんだよ、この馬鹿ww
687の最後の行が意味わからんのは俺だけか?
かもね
>>703 ビット演算とかだと、意図的にオーバーロードさせることは普通にある。
その部分にuncheckedを指定するのを怠ると、コンパイラオプションでcheckedをデフォルトにしたときに
動作しないコードになる。
707 :
706 :2010/08/28(土) 09:53:38
訂正 オーバーフロー
プログラム板って性格悪いの多いんだな
俺はすごいんだ!って思われたい人は多いね ニコ動なんかで○時間で作ったとか見るとため息が出る ただの反復作業なのにね
>>710 ああテトリスとかのひとか
1時間で作れるようになるまでに何度も作り直してるって言ってて意味なさす
プライドの高い人は成長しない
そこそこの物を未経験未分野で一から組むと半年以上かかるし そんな動画見たくないし いや、ある意味みたいな・・・・
プライドの無い人も成長しない
プライドの無い人は成長するし出世する
プライドが無い人がある程度出来るようになって 自分の技量を見せびらかすようになると成長はストップする
プライドが無い人がある程度出来るようになって 自分の技量を見せびらかすようになって 成長はストップしたけど出生しちゃって だけど独身だからちょっとした病気でリタイアする
プライドが無い人がある程度出来るようになって 自分の技量を見せびらかすようになって 成長はストップしたけど出生しちゃって だけど独身だからちょっとした病気でリタイアしたけど 以前作ったC#製のアプリが大ヒットして一生食べるに困らないお金を手に入れた やっててよかったね!C#!!
ipad用の が抜けてる
C# 楽しいね。 こんな楽しみ、うつ病→統合失調症→引きこもりニートにならないと 出会えなかった。
asp.netって生きてる? 2ちゃんにスレがないのだが…
>>721 以前はネット関連のWebProg板にあったが今落ちてるのかな。
IISやネットワークの設定ではなくて、WebFormやADO.NETのような
プログラミング寄りの話題ならここでいいよ。
723 :
デフォルトの名無しさん :2010/08/28(土) 15:04:27
>>721 生きてるよ・・・・
全国の図書館システムとして・・・w
724 :
デフォルトの名無しさん :2010/08/28(土) 15:10:20
aspがらみでGPLライセンスのライブラリを使って頒布せず自鯖やレン鯖でサービス運用 ソース非公開でOK これはわかる でもaspがらみでGPLライセンスのライブラリを使って客先に頒布する時はどうなるの? 客先にソース付けないとだめ? それとももっとオープンに公開しないと駄目?
ASPはスレ違い。
客先が再領布しないのであれば非公開で桶
>>728 GPLってそうだった?組織が違えば公開必要じゃなかった?しかも客先に配布禁止条項をつけられないだろ?
だめに決まってるじゃん。
公開必須だと客に納める度にソース公開しないといけなくなるじゃん
GPLは
>>728 の解釈で正しいよ
じゃねぇとMySQLと連携とれなくなるだろ
NowLoading... GPLについて検索中です。
いろいろ抜け道はあるけどな。
何にしても、ライセンスはスレ違いだろよ。
自鯖かレン鯖において客に使わせればいいじゃん
人類という一つの組織
会社まるごと買い取ってもらったらいい
客にソースコードを提供すればOK。ただし、その客がそのソースコードを再配布することを妨げることはできない。
地球に生きとし生ける全ての生命は地球市民だから
スケールが大きくなってきたな
GPL混ぜちゃったら.NET標準のライブラリ以外はほぼすべて全滅じゃん それどころかMSDNのサンプルコードすらGPLとは互換性無いよ(MS-LPL)
TreeView で選択されているノードに 子ノードを追加して、SelectedNode に設定したんですが そのノードを強調表示してくれません。 なにかほかに設定しないといけないことがありますか?
>>747 はすぐ後で別のコントロールをいじったからでした。
すみません。
Select() し直したらきちんと表示されました。
ごめんなさい。
見たところDirectX系には対応してないふいんき
751 :
デフォルトの名無しさん :2010/08/31(火) 22:04:13
>>750 なるほど
DirectInputのほうも監視すればいいんですね
ありがとうございます
C#言語(というか.NET)では、文字列中にNULL文字(\x00)が入っても良いらしい。 つまり、 string s = "hoge\x00\x00"; s += "hoge"; とすると、変数sは"hoge\x00\x00hoge"となる。 が、この文字列に対して、 Debug.Print(s); とすると、NULL文字以降が無視され、 hoge としか出力しない。 良いのか?
何言ってんの?
良い
文字列終端の管理方法が\0終端だけだと思ってる時点で…
ヌルターミネートはCぐらいじゃないか?
ユーザコントロールで画像をアップロードしたあと、その結果を すぐに親画面に反映させたいのですが、自画面にリダイレクトする 以外で何か方法はないでしょうか? 親画面の表示内容を維持したいので、ポストバックで反映できると期待したのですが、 親のPage_loadがすでに終了していたので無理でした。 何かユーザコントロールからポストバックを再度実行できれば良いのですが・・・ 以上、よろしくお願いします。
スレ違いどころか板違い
webprog板にasp.netってあったっけ?
なんといふ既視感
デジャヴ
déjà vue
クラスMyClassがインターフェイスIMyInterfaceを実装してるんだけど MyClassの派生クラスがIMyInterfaceを再実装するのを禁止する方法はある? もちろんリフレクション使えばいいけど静的にできるなら教えてほしい
sealed override
class MyDerivedClass : MyClass, IMyInterface {} 再実装というからには、これを禁止したいんじゃないの オーバーライドなら再実装とは言わんし 結論としては、そんなことはできないし、する必要もない
実装=overrideだと思うけどな
勘違いでした
じゃあ messageBox.Show ならどうなると思う?
1.キモイと思う。 2.イケメンと思う。 3.OKってボタンがでたよ? 選べ
ガキ臭。 馴れ合いたい奴は馴れ合う為の場所にいってやれよ。
Windows MobileでSMSを送受信するアプリを作りたいんですが、 出来ればサンプルソースとかがあれば教えていただけませんでしょうか。 なんかすぐ規制くらうんで、やっと書き込めた。
371 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/09(月) 20:03:04 ガキ臭。 馬鹿じゃないのか。
コピペ君って馬鹿だな、まで読んだ。
371 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/09(月) 20:03:04 ガキ臭。 馬鹿じゃないのか。
コピペ王に俺はなる、まで読んだ。
371 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/09(月) 20:03:04 ガキ臭。 馬鹿じゃないのか。
コピペ君って馬鹿だな、まで読んだ。
371 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/09(月) 20:03:04 ガキ臭。 馬鹿じゃないのか。
相手すんなよアホ
俺はアホだから相手しなきゃ
じゃあ存分にやれアホ
お前ら全員死ね。
口挿むだけで○○も作れもしない△△ならROMってろ。
元の話題は
>>752 だろ?脱線せんと軌道修正しようや
船には帰って来る港が必要だぜ?
お前は帰ってこなくていいよ 漂流してろ
Debug.Printで出力したときに\0以降が無視されるのはWindowsのコンソールの仕様だろ。 試しにC++のネイティブコードでやってみ
Windowsのコンソールって何のことだよ。 何か思いっきり勘違いしてるとしか思えん発言だな
Console.WriteLine だと\0以降もコンソールに出るしなぁ。
標準のデバッグリスナとか何とかの仕様だろ
メモ帳でも開けられるんだぜ
Debug.Print こそ \0 だろうがなんだろうが出力して欲しいメソッドなのにね。
DefaultTraceListenerのドキュメントにOutputDebugString使うと書いてあるだろ 勝手に\0除外してからOutputDebugStringに投げるとか余計なことされたらそれはそれで困るわ
\0は\0のまま表示すりゃええ
ままじゃないだろそれ C系の言語では便宜的にそう書くだけ
\0を\\0にすればいいだろ
では\x0000ではどうだろう。C#の文字リテラルだし。
っていうか、それもう C# 関係なくね? Visual Studio に文字列投げるところまでは C# がやってるだろうけど、 そこから先、Visual Studio がもらった文字をどう扱うかは Visual Studio の勝手なわけで。
制御コードを「文字列で」表示しろ、なんてアホ丸出しな要求にしか思えないけどな... そんなもの、万人が納得する仕様なんか決められるわけがないし、 そんなどちらかと言えばかなりトリビアルな要求を満たすためにコストを掛けるのも馬鹿げてる。 そんなものはプログラマ自身が適当に工夫すれば必要十分だと思うがね。 例えば適当な文字に置き換えて表示するなんて猿でも思いつくし、 必用ならバイナリエディタライクに表示するビジュアライザを作ってもいい。
PC-8001だと制御コードをVRAMに書き込むと、そのまま文字として表示できたんだけどねえ
だから何レベル
datagridviewで、グリフ(▼)だけを消したいんですが どうすればいいんでしょうか?
ソートを無効にすれば
809 :
807 :2010/09/07(火) 10:20:44
ソートは使います
指で押さえれば消える
おれはListViewにグリフつけるのに苦労したけどな ソート使うのに消しちゃったら不便じゃないのかな?
ソートグリフ用領域が表示されるのも嫌だろうから 各 DataGridViewColumn の SortMode を NotSortable にして、 ソート自体は DataGridView.ColumnHeaderMouseClick で自分で記述する
813 :
デフォルトの名無しさん :2010/09/07(火) 21:47:39
http://masha.maakikaku.jp/2007/05/post_15.php こんな感じでスクリプトで勝手にFocusされている場合に、
ブラウザ・アプリケーション側ではFocusを取られたくない場合があります。
ただWebBrowserなどのブラウザ・コンポーネントへのSETFOCUSメッセージ
が来るかと思ってWndProc()をチェックしてみましたが検知できないようでした。
このスクリプトでの self.focus なるものを無効にするうまい方法はあるでしょうか?
よろしく。
814 :
813 :2010/09/07(火) 21:53:12
補足 WebBrowserで検知できた場合でも、時すでに遅しで実際にはFocusが 奪われてしまっている場合もありました。 一度でもFocusが奪われると、たとえば他の操作をしているときに Focusが奪われて入力などの手作業が中断してIME返還などがされずに 入力されてしまうなどの問題がありました。 これを防いで一度もFocusが奪われないようにしたいです。
815 :
デフォルトの名無しさん :2010/09/07(火) 21:55:00
>>813 WebBrowserって単なるラッパーだったはずなのでaxWebBrowserの非同期動作が
関係してて取得できないかも・・・
816 :
813 :2010/09/07(火) 21:57:46
補足2 ページが表示されてすぐのFocusの場合なら問題はないようにも思われますが、 ものによっては定期的に自動でページを読み直して再表示されてしまい、 そのたびにFocusが奪われるので、他の作業中に邪魔が入る形になります。 こうしたことを防ぎたいのですが、良い方法があれば教えて頂きたく。 よろしくお願いします。
817 :
813 :2010/09/07(火) 22:04:24
>>815 どうもです。何か「原理的に無理」、みたいな感じですか。
IE使って検索バー辺りで入力中でも再現するなら無理と考えて良いだろうね
タイマーで無理やり戻せばいいんじゃw
820 :
813 :2010/09/07(火) 22:53:47
>>818 それやってみてました。どうもFocusが奪われないまま維持されてました。
別Formだからなのか・・・さらにチェックをして見ます。
>>819 一度でも奪われると、その瞬間にIMEモード入力が停止して入力欄に
ひらがなのまま入ってしまいます。その後で戻してもそのときには遅い、
ということなんです。
>>814 はそういう状況なのです。
うーん。
821 :
デフォルトの名無しさん :2010/09/07(火) 23:06:12
再フォーカスってことはブラウザとしてはナビゲートしてるってことだから 一度ページが表示されたらナビゲートを停止させちゃえばいいだけかなあ? ナビゲートキャンセルって確かできたなあ・・・
822 :
813 :2010/09/08(水) 01:28:33
いろいろやってみたところ、
>>814 は間違いのようでした、すみません。
ただし関係のありそうなコントロールでFocusを奪われたくないと思われる場合、
随時すべてそれを記憶し、SETFOCUSメッセージのときにそれらがあれば判断して
ブラウザコントロールへのFocusは無効にする、みたいな方法にすればできそうで、
これでやってみたいと思います。どうもでした!
表を表示するためのコンポーネントでDataGridView以外に見栄えのいい物ってある? 商用以外で。
HTMLのtable
ListViewじゃだめなの?
ツリービューで質問です。 TreeView1.Width ですとスクロールバーも含んだ横幅になってしまいます。 正味の横幅を取得するにはどうすればよいでしょうか?
TreeView1.ClientSizeはどう?
2003のせいかClientSizeがありませんでした。
.NET Framework 1.1かいな 1.1試す環境無いなあ、、、APIでGetClientRect呼ぶとか?
1.0からあるよClientSize インテリセンスの候補に出てこないだけとかだろ
インテリセンスっていいんだけどさ .net全般のプロパティとか多すぎてけっこうむずいんだよね
>>825 それも検討してるんですが、使いにくいかなと
>>826 これDataGridViewですか?
>>833 いや、だって、必要なんだもん。
あれでも、数多すぎると IntelliSense 見た瞬間くじける人が出て来るから
1クラスのプロパティ量減らせ、1名前空間のクラス量減らせってのが
Microsoft のコーディング規約にあるのよ。
それでもなおあの量。
VBでは絞り込まれて表示されるけどな C#にそれがないのはもちろんあえて付けてないわけなので
そうかな? 触り始めたときは色んな機能用意されてるんだなーとわくわくしたけど
>>835 DataGridViewも結構きれいにできるんですね。
こんな感じで描画するためのサンプルコードとかってどこかに上がっていますか?
>>839 綺麗に見えるのは、行と列のヘッダの背景にグラデーションが掛けてある以外は、
要するに配色が上手いからでしょ。
どんな道具使っても、配色やデザインのセンスまでは面倒みてくれないよw
まあセンスがいいテンプレートがあったりする場合もあるけど。
配列のチェックでnullもしくは要素数が0個かを一気にチェックする関数ってありませんか? string.IsNullOrEmptyみたいな感じの関数があればいいのですが・・・ 検索しても見付からなかったので無いような気はしますけど・・・
lengthでだめ?
落ちるんだったら try〜catchでエラー取ればいい
ない わりと配列ってnullと要素数0はきっちり別物扱いすることが多いから必要性も高くないな
846 :
841 :2010/09/09(木) 23:02:26
そっかー。みんなありがとー。 try-catchは好きじゃないんで、地道にチェックします。 こうしとけば問題ないよね? if (lists != null || lists.Count > 0) { 処理 }
>>846 上の人も言ってるように、nullはありえない(もしnullの場合はバグ)
仕様にする方が簡単だと思うけどね
848 :
841 :2010/09/10(金) 00:58:25
>>847 nullを入れないようにして欲しいけど、規則がないからどうなるか分からなくてね・・・
先にnullチェックしとけば、Countまで見に行かないかなって思ってるんだけどだめかな?
ORだったらCountの評価も走るからぬるぽでるわな。 lists の中味があったら処理する、ならこうじゃね? if (lists != null && lists.Count > 0) { ほげほげ }
>>848 規則化したければ、
if(array == null) throw new ArgumentException();
の代わりに
System.Diagnostics.Contracts.Contract.Requires(array != null);
にでもしとけば OK。
Contractなんか追加されてたのかー 試しに使ってみるか
Pex?
契約プログラミングはチームで開発するとき凄く便利
盟約プログラミングは連盟で開発するとき凄く便利
倹約プログラミングはお金が無いとき凄く便利
富豪プログラミングは、じじいがファビョる。
それはシャレじゃなくマジだろ
using System; using System.Linq; class 家 { public string 姓; public string[] 構成員; } class Program { static void Main(string[] args) { 家[] 家々 = { new 家() { 姓 = "磯崎", 構成員 = new [] { "波平", "フネ", "カツオ", "ワカメ"}, }, new 家() { 姓 = "フグ山",構成員 = new [] { "サザエ", "マスオ", "タラオ"}, }, }; foreach (var 人 in from その家 in 家々 from 名 in その家.構成員 select new { その家, 名 }) {Console.WriteLine("{0}{1}", 人.その家.姓, 人.名); } } } 夫婦別姓が施行された場合、どう書き換えればいい?
class 人 苗字 名前 class 家 人:住人 元のクラス設計が糞
>>860 F姓
M姓
を保持してどっちを名乗ってるかを管理するとか?
家に姓なんかもたせてたらルームシェアでも失敗する
どうでもいいけど磯崎じゃなくて磯野だろ
フグ山はいいのか?w
866 :
841 :2010/09/11(土) 15:14:16
>>849 個人的な視点だけど、美しくないからw
>>850 ORだとCountの処理も走るのは初めて知りました
ありがとう。今までの見直してAND処理使うようにしますね
>>851 例外は出したくないんで、自前でチェックしようと思います
でも、自作アプリでは使わせてもらいますねw
みなさん、ありがとう!
すごく勉強になります!
なんか勘違いしてる気がする。
>>851 みたいな例外は処理しなくていい。キャッチ禁止。
なぜなら、例外が発生するのは契約違反を意味するので即ちプログラムのミスだから。
nullが入ることが想定の範囲内なら自分でチェックするのは当たり前。Contractとか使っちゃダメ。
>>866 >ORだとCountの処理も走るのは初めて知りました
>ありがとう。今までの見直してAND処理使うようにしますね
Countの処理まで走るかどうか以前に、ORじゃロジックがおかしいだろ。
論理演算を勉強しなおせ。
>>866 >>849 はロジックがおかしいところに突っ込んだんだよ。
>ORだとCountの処理も走るのは初めて知りました
>ありがとう。今までの見直してAND処理使うようにしますね
いやそういう問題じゃなくて、普通に考えてみようよ。
871 :
841 :2010/09/12(日) 02:17:54
そう言われるとたしかに 何も考えずにANDでと同じ感覚で使ってた・・・
えー…
A || B == ! ( (!A) && (!B) ) これで解決!(違)
De Morgan 律子
875 :
868 :2010/09/12(日) 06:36:10
>>866 >個人的な視点だけど、美しくないからw
>>841 は明らかに、コードの美しさを論じるようなレベルじゃない。
>でも、自作アプリでは使わせてもらいますねw
今回は自作アプリじゃないってことは、まさか仕事なのか…
違うと言ってほしい。
>>860 姓を使わないで
構成員に姓名を書くだけ
職業プログラマにも結構酷いの沢山生息してるからなぁ。
C#用のJSONのparserを探しているんですが、何か良い物はないでしょうか。 要件はJSONの配列も扱える事、ソースが読める事です。
JayRock が完成度が高かった
>>878 LitJson。ソース短いから簡単に追えるよ。
普通にWCFのシリアライザ使えばいいじゃん 一応ソースは公開されてるはず
toolstripが突然消失 といっても、プロパティなどから 存在していることの確認はできています なのに、デザイン上に表示されません どういうことか、教えてください
神隠し
DockがFillのコントロールを最前面とか最背面とかにしてみたら?
SNSのコミュニティに存る特定のスレッドのソースを取得したいです。
通常のサイトであればDownloadStringを使えば取得できるのですが
SNSなので普通にアクセスするとログインページにリダイレクトされてしまいます。
そこで、少し調べてみたところ
ttp://neue.cc/2009/12/17_230.htmlの記事を見つけました 。
しかし、この記事の通りに行ってもmixiへのログインに失敗するようです。
また、私が取得したいSNSはmixiではないのですが、その場合この記事でいうところの {"next_url", "/home.pl"},は何にすればいいのでしょうか。
スレ違い
>>885 コードに落とす前にログイン時のHTTPの動きを調べるべき
888 :
デフォルトの名無しさん :2010/09/15(水) 11:17:59
tooltipに表示させる文字列で、特定の文字列のみ太字に表示する方法はございませんか? HTMLのタグが使えて↓みたいに書けたら最高なんですが・・・ こんにちは<b>サンプル</b>です
WPFなら <ToolTip><TextBlock>abc<Bold>de</Bold>fg</TextBlock></ToolTip> だけど、一般のコントロールだとどうだろな
OwnerDrawでDrawイベントで頑張って自前で描画する
>>889-890 ありがとうございます
WPFのほうが簡単そうですねWPFでやってみます
892 :
889 :2010/09/15(水) 12:51:24
そして後悔するのであった
893 :
デフォルトの名無しさん :2010/09/15(水) 12:53:49
部分的だったら自分でやった方がいいかもね あとはオフメモリにbmp作って描画したデータを表示とか(tooltipってbmp表示できたか忘れた)
>>886 おめえうぜえわ
分からないならいちいちレスすんなks
凄い自己矛盾
いいからwiresharkでも落として調べるニダ
>>887 ブラウザコントロールで解決しました。
結局普通にポストすることにしました。
>>886 すいません。
ネット系に質問すればよろしかったですか?
てst
てst
c#の質問の前に書き込みてst ノtasukeruyo
C#で作ったものって基本的にXP〜Vista〜7の32・64bitで普通に動くものですか?
基本的に 普通に はどの辺を指すのさ
XPは.NET標準で入ってたっけ?
ファイルを開くダイアログを出したり乱数を発声させたりMessageBox.Showで表示したりなどです 32bitや64bitに依存するようなDLLなどは使ってないです XP以降なら.NETさえ入れればどうなんでしょう
対象のバージョンの.NETさえ入ってれば環境にかかわらず動く .NET不要でランタイム5MBくらいのSilverlightというのもある
XPは2.0が標準で入ってたはず
標準で2.0はVistaだったと思う
>>906 XPは2.0が標準で入ってるんですね
ありがとうございます
ここはWindows板です
確か違ったような気がしないでもないです
よかった パソコンが1台しかないので助かりました SilverLightってwebページ向けだと思ってましたがいろんな事ができるんですね SilverLightも導入したいと思います みなさま本当にありがとうございます
913 :
デフォルトの名無しさん :2010/09/16(木) 19:34:23
private Vector2 position; public Vector2 Position { get { return position; } set { position = value; } } ↑を定義したクラスを継承したクラスに Position.X += 10;←ココ とやるとココに 変数ではないため、戻り値を変更できません と出てくるのですがなぜでしょう? Vector2はXNAのクラスです。
クラスじゃねーよよく見ろ そのエラーもVector2がクラスじゃないことに起因するものだ
お前らちょっと待てw
C#スレに居るのに何で把握してないんだw
Vistaは3.0
Win7は3.5SP1
XPで1.0がプリインストールされてるのは後から発売されたTablet PCとMedia Center
>>906 .NET 2.0が出たのは2005年末なのに、.NET 1.0すら出てない2001年発売の無印XPに乗ってるわけないじゃないか…。
ドナルドは仕事に使ってるわけじゃないから興味がないんだ
ドナルドもC#使ってるのか…
XPはもうSP3として考えていいと思う
.net freamwork 2.0以降でメニューをコピーする方法はない? ある項目にあるものすべてをコンテキストメニューで表示したいんだが、TooStripMenuItemを使用している場合の方法だけはなぜか見つからなかった
920 :
デフォルトの名無しさん :2010/09/16(木) 21:15:38
>>919 たぶんない。
良く使う処理だから、俺は俺様ライラリに入れてるよ
なんだか年齢計算でググるとアフォみたいなアルゴリズムいっぱい出てくるな
>>921 突然唐突なことを言い出す自分に疑問を感じないようなら、
マジで一度精神科を受診した方がいいんじゃないのか。
は? ふつう初対面の人にそんなこと言わないだろ お前が病院行くべき
日付計算はVBの花形ですから
これのことか DateTime birth = new DateTime(year, month, day); int age = (new DateTime((DateTime.Today - birth).Ticks)).Year - 1;
>>922 いるんだよね他人の初人に対して唐突とか突然何言ってんのってイチャモンつける奴がね
ニコ生とかでもそういう奴いるわ
掲示板やらチャットで唐突な事が気になるのはお前が鬱病なんだよ
自分のタイムラインに相手もいると思ってんだろね
好意的にとらえると
>>921 はtwitter向き書き込み
>>926 そこまで幸せ回路全開だと、逆に「清清しい」な。
まあ、俺はそんな「清清しい」人間になりたいとは絶対思わないがw
一応真面目なことも書いておくけど、そういう他人の視線に過剰に鈍感な感受性って、
公共の場で平気で鼻糞ほじったり屁をこいたりするオッサンや、道端に座り込んでる餓鬼の
感受性と同じじゃないのか。
俺の感覚じゃ、そんなのは最早動物以下で人間と思えないね。
うちのワンコだって人の目を気にするぞ
>>923 ここはパスワード式の仲良し掲示板じゃないから突然唐突な話題が出ることもあるよ
2ちゃん初心者なのかな?
>>922 =
>>929 だとしたら君が最初にケンカを吹っかけてきてるわけなのに
>一応真面目なことも書いておくけど、そういう他人の視線に過剰に鈍感な感受性って、
>公共の場で平気で鼻糞ほじったり屁をこいたりするオッサンや、道端に座り込んでる餓鬼の
>感受性と同じじゃないのか。
自分を棚に上げててフイタ
つか初心者用スレでキチガイだと叩かれてた奴っぽい。 あまり真面目に触らないのが吉。
安価番号ずれてないか?
俺は931じゃないけど合ってると思うなww
>>922 の書き込み内容からしてスレを私物のように扱ってるのが気に食わない
ここは人格否定板じゃないので続けるなら他所行け。
>>937 そっちのスレでも「例外をにぎりつぶす」に絡んでるんだな
一月前にこのスレでも叩かれたのに
本当に馬鹿じゃないの
どうでもええがな。
>>938 きっと言っても無駄だと思うが、
その君の「俺が」叩いているという主観的事実に過ぎないものと、
議論している主張が正しいか否かという客観的な問題を混同していることに
疑問を感じない感性って、本当にセカイ系のそれそのものだわ。
狂ってるとしか思えん。狂ってると言って悪けりゃ、幼児的。
スレタイ読めないキチガイ君がなんか書いても誰も読まんわ
これは香ばしい。
>>922 の精神科ってキーワードはそもそもプログラミングと関係ないからNGワード登録しといた
プログラム板にも「そんなことよりクワガタの話しようぜ」的な定型句が欲しいところだな。
そんなことよりエディタの背景色の話しようぜ
グラマって変な正義感を持った奴が多いよなw 間違った考えの奴は俺が正す!(キリッみたいな思考の押し付けが多い希ガス 他人のコーディングルールを直しまくる病気みたいな人に多い 小さな親切、大きなお世話w
そんなことよりインデントの文字数の話しようぜ
昆虫(Bug)の話でいいと思うんだ
949 :
デフォルトの名無しさん :2010/09/17(金) 12:26:33
>>947 インデントは最小限に抑えましょう。
elseはやっつけ仕事以外では禁止です。
そんなことよりM$の.netでもSIMD使えるように圧力かけようぜー
951 :
デフォルトの名無しさん :2010/09/17(金) 13:15:56
使えるAPIはいふしてなかったか?
>>920 ないのか自前でゴリゴリ書けということか…
テキストは黒背景に緑文字に限る
imeの再変換を行うライブラリはありますか? API叩かないと無理ですかね?
標準ライブラリにはないな
TSF for .NETとか誰か書かないかな
ラッパーはNyaRuRuちゃんが昔書いてたかもしれない
ぐぐるこーどに、出てくるのを期待だ。
SIMDはJITレベルでサポートする必要があるからMSの外の人がどう頑張っても無理。 もちろんラッパー書いてプラットフォーム呼び出しすればできるはずだけど速度的なメリットがなくなるから全く意味なし。 Mono.Simdというのがあるらしいが、当然Monoの実行エンジンで動かさないと効果はない。 どうしても使いたかったらある程度の大きい単位でまとめてC++で書くのが現実的。
うおっしゃああああ連休だああああああああ
>>952 ゴリゴリって程の処理じゃないんじゃない?
こういうことじゃないの?
void MoveAllItems(ToolStripItemCollection src, ToolStripItemCollection dst)
{
var temp = new ToolStripItem[src.Count];
src.CopyTo(temp, 0);
src.Clear();
dst.AddRange(temp);
}
昨日の人物だと思われる人間が初心者スレで暴れてるので引き取りに着てください
>>963 お前もこのスレの人間なら自分で連れて来いよ。
Vistaでも動かなかった
通知しない設定になってるとか おいらのところでは問題なかった
>>968 逆に何が分からんの?
それに同意するかどうかはともかく、何を言ってるかは普通に分かるでしょ
DateTimePickerのような親フォームをはみ出して使用できるコントロールを作りたいです 要件は 1.親フォームからはみ出せること 2.ポップアップしたウィンドウをクリックしても親フォームがアクティブであること 3.マウス、キーボードでの操作が出来ること です。 どうすればこのような機能を実現できますか?
現状では西側資本主義社会はもはや崖っぷちに立たされている そして我がソ連は常に彼らよりも一歩先を進んでいる。
むしろ >ラムダ式を使えば、実はラムダ式内から変数taskは参照できてしまうのだ。 > それにもかかわらず、このパターンを使うのは・・・(略)・・・変数taskにアクセスできなくなるからだ。 が我田引水自画自賛が過ぎる気がする。 ここは普通なら変数taskにはアクセス出来ないから、Func<Task, TResult>を渡す設計に なっていると解釈すべきじゃないのか? むりやりラムダ式を使っておきながら、「同じ内容を示す名前が2つもあるのは美しくない」も ないと思うんだが。まあ川俣だし。
>>970 ShowWithoutActivationがtrueを返す枠無しForm
WM_MOUSEACTIVATEでアクティブにしない
取り敢えずこんだけか
Webに載せるためのコードでvar使うのって何なの? こっちは前提知識もインテリセンスもないんだから読んでて戻り値の型分からないんだけど
>そうまでして継承を減らしてデリゲート型で拡張性を持たせるような態度は、決して多数派ではないだろう むしろこの場面でわざわざ継承を使うやつがいるのか聞きたい。
object o = new object(); foreach (var n in q1) { lock (o) { Console.WriteLine("sum={0}×{1}+{1}", sum, n); sum = sum * n + n; } } いくらなんでもこれはないだろw
どっかの言語だとAction1個のために継承したりするね
>>976 マルチスレッドの問題点を示すためによく出てくる例を無理矢理PLINQにしたみたいだが
例としては極めて不適切だな
全く並列処理の意味がない
979 :
970 :2010/09/18(土) 01:29:24
>>973 ある程度希望した動きになりましたが、キーボードやマウスホイールでの操作が出来ません。
呼び出し元でポップアップウインドウの制御をするしか手はないのでしょうか。
>>976 川俣だとなぜか鬼の首取ったように揚げ足取りみたいな批判をする奴もいるけど
これは確かに何のこっちゃ訳わからんなあ....
っていうか@ITもこういう時のためにコメント欄ぐらい付けて欲しいもんだな
考えるな 感じるんだ tanasinnはいつもあなたのそばに
>>976 可換じゃない写像計算してるだけじゃん。
何に文句付けてるんだ?
>>979 そのポップアップウィンドウの持ち主のコントロールはフォーカスを持ってる
状態のはずなんだから、そいつが必用なユーザー入力をポップアップウィンドウに
通知すれば良いだけじゃないの?
ComboBoxのドロップダウン部分みたいなのを持つカスタムコントロールを
作ってるんだよね?
広く、といっても資格の勉強などはおすすめしません。資格というのはあくまで仕事に直結したものを取るべきです。 採用時に資格は一切評価しないといった建前も世間ではよく耳にしますが、折角の機会ですから本当の事を言います。評価します。マイナスの評価です。 仕事に就いていないのに資格の取得などに時間を浪費していたという事実は、少なくとも一分一秒を争う企業活動への参加を目指すなら、悪です。 学生時代のいまから時間の使い方をしっかり意識して生活してください。 社会に出れば仕事を覚えるために学生時代の10倍も20倍もハードな勉強が求められます。 もちろん必要な資格があればその中で取得します。しかしその学習量は社会人が仕事の中で日々習得する知識量のうちのほんのごく一部に過ぎません。 学生が資格の勉強に貴重な時間を費やすのは、子供が折角もらったお年玉を老後の生活資金に貯めておくようなものです。 子供のお小遣いと大人の生活費では一円の重みが違います。同様に、学生と経験を積んだ社会人とでは同じ一時間でも脳の仕事量が全く違うのです。
コピペじゃないのかよ。びっくり。
え、コピペじゃないの・・・?
コピペじゃないなら縦読みするところがあるからよく探しなさいってじっちゃんが言ってた。
C#/VS2008 でテストプログラムを作ったところ int[] array1 = new int[0x20000000]; で OutOfMemoryException が出てしまいました。テスト環境は 2008R2/X64 メモリ 16G 積んでいます。 配列の要素数を以下のように半分にすると、配列を六つ確保しても例外を起こしませんでした。 int[] array1 = new int[0x10000000]; テスト実行時に IntPtr.Size が 8 かどうか確認して、64ビット環境で動作していることは確認できています。 どうも x64 環境下でも一つのオブジェクトは 4G の制限があるようです。 Array.Capacity とかの型が int / 32bit のままなので、そういうものの気もしますが、何か間違えているでしょうか。 および C#/.NET 環境下で 4G byte を越えるオブジェクトを扱う方法をご存じでしたら教えてください
989 :
デフォルトの名無しさん :2010/09/18(土) 10:06:10
>>988 詳しくはないけどAnyCPU、x86,x64で切り替えたらどうなるかな・・・
ども。 AnyCPU, X64 とも変化有りませんでした。
>>989 関係ないだろ。
>int[] array1 = new int[0x10000000];
int[] array1 = new int[0x10000001];
だとやっぱエラーになるわけ?
って、あれ?桁違うのはそんでいいの?
993 :
デフォルトの名無しさん :2010/09/18(土) 10:39:27
>>991 関係ないかどうかはやってみないとわからん
vs2008はデフォルトでAnyCPUだったはずなので
32bitにあわせてそういう制限があるのかもしれないし
やってみた結果として64bit限定にしてもかわらなかったと・・
>>988 暫定対策としてはlistとかそういうので代用するしかないんじゃないの?
それか
int[] array1 = new int[0x10000000];
これを複数個管理するクラスを作ってやりくりするとか・・・
とりあえずやった範囲で。 int[] array1 = new int[ 0x20000000-15]; は確保できました。実行可能。 int[] array1 = new int[ 0x20000000-14]; だと、実行時にこの行で OutOfMemoryException が発生。です。 int の大きさは常に 4 byte であることから、2G に壁が有るのでしょうかね。 System.Collections.Generic.List も同じような壁があることは確認しています。 Capacity が 31bit (signed int) ですし、大きめの数字を指定すると OutOfMemoryException が 出てしまいます。 >複数個管理するクラスを作ってやりくり ええ。よく分かりますが,,,, 避けたいです。
配列取るのは実装だけど、操作するクラスかぶせてあたかも大容量とすれば 問題なんてないんじゃ? そろそろ次スレ立ててくるね。
997 :
デフォルトの名無しさん :2010/09/18(土) 10:59:25
>>995 容量+速度ぽいけどね>質問者の理想
ちょっとかぶせるだけでもそんなに速度変わるかなあ
クラスをかぶせるのがいやならクラス作らないでやるしかないね・・・
>>988 メモリを確保するには連続した空き領域が必要。
たとえ8GBの空きメモリがあっても、連続していなければ8GBのメモリを
一括で確保する事は出来ない。大量のメモリを必要とする場合には、
小さいサイズのメモリを多数取得するような方法が一般的。
>4G byte を越えるオブジェクトを扱う方法
どうしても必要なら、Unmanagedコードを書いたらいい。
俺が999だ!
1000 :
デフォルトの名無しさん :2010/09/18(土) 11:13:47
うめ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。