C#, C♯, C#相談室 Part61

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
前スレ
C#, C♯, C#相談室 Part60
http://pc12.2ch.net/test/read.cgi/tech/1277576240/

Visual C# 2010 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>1-5くらい
2デフォルトの名無しさん:2010/07/25(日) 11:28:02
何で前スレ落ちてんの?
3デフォルトの名無しさん:2010/07/25(日) 16:05:28
>>2
985辺りになると圧縮時に自動落ちする

>>1乙なんたらかんたら
4デフォルトの名無しさん:2010/07/25(日) 19:13:20
>>3
さんきゅーっす
5デフォルトの名無しさん:2010/07/26(月) 09:36:14
>>1
同一Panel上にある全てのコントロールに同じ処理をさせる方法を誰かご教授願います
例えば同一Panelにある全てのListBoxに同じアイテムを追加する、みたいな
6デフォルトの名無しさん:2010/07/26(月) 10:30:17
foreach (Control control in Panel.Controls) {
 if (control is ListBox) {
  ((ListBox) control).Items.Add();
 }
}
こんなんでいけない?
7デフォルトの名無しさん:2010/07/26(月) 19:01:51
IEnumerable<ListBox> query = Panel.Controls.OfType<ListBox>();
foreach(ListBox lbox in query){
lbox.Items.Add(item);
}
こう書けた
8デフォルトの名無しさん:2010/07/26(月) 21:55:51
下のような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 );
9デフォルトの名無しさん:2010/07/26(月) 22:02:24
書けない
10デフォルトの名無しさん:2010/07/26(月) 22:18:13
似たようなのは書けるでしょ。
11デフォルトの名無しさん:2010/07/26(月) 22:39:04
int系の似たようなものはひとつにまとめたかったのですが了解しました。
ありがとう。
12デフォルトの名無しさん:2010/07/27(火) 03:36:23
>>6
>>7
thx!
13デフォルトの名無しさん:2010/07/27(火) 09:22:02
>>8
(dynamic)v1 + (dynamic)v2
糞遅いけどもし後でホットスポットになったらそこだけオーバーロードに書き直せばいいと思う
14デフォルトの名無しさん:2010/07/28(水) 21:56:07
>>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);
共通する処理
}
15デフォルトの名無しさん:2010/07/28(水) 23:22:01
Action<int> intAction = (i) => { 何らかの処理 };
Action<string> stringAction = (s) => { 何らかの処理 };

intArray.ToList().ForEach(i => intAction(i));
stringArray.ToList().ForEach(s => intAction(s));
16デフォルトの名無しさん:2010/07/29(木) 00:29:30
ふむふむ。そういう書き方がありましたっか。
後で試して見ますが、上とあわせると・・・えーとこうなるのかな。

public static void Test<T,ActionT>(T[] array,ActionT){
 共通する処理
 ntArray.ToList().ForEach(i => ActionT(i));
 共通する処理
}


17デフォルトの名無しさん:2010/07/29(木) 18:48:07
smtpclientでメール送信する際に、
content transfer encodingがquated printableになってしまい困っています。

7bitにする方法を検索して、
http://dobon.net/vb/dotnet/internet/smtpmailquotedprintable.html
上のサイトにたどり着いたんですが、このコードを実際に書くと
メソッドのように使用することは出来ませんというエラーが出てビルドが出来ません。
7bitにして送信する方法を教えていただけないでしょうか。
18デフォルトの名無しさん:2010/07/29(木) 19:01:00
お願いします

http://hdl.handle.net/2237/10514

この記事の発生(Lシステム)の部分てどうやって作ればいいですか?
めんどくさかったらアプローチだけでも
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)の方法自体がダブルバッファリングと同等だから上記の設定は必要ない
でしょうか?

いろんなサイトを見ているうちに、頭が混乱して質問が要領を得ていないと思いますが
よろしくお願いします。
21デフォルトの名無しさん:2010/07/30(金) 16:19:11
>>19
ありがとうございます。
ただ、ヘッダにquoted printable も残ってしまい文字化けは治りませんでした。
22デフォルトの名無しさん:2010/07/30(金) 17:22:07
Cでランダムに値を1万個くらい発生させてそれをエクセルで表にしたいんですけど
コマンドプロンプトの画面では300行までしか表示されなくて、出た結果全てをエクセルに移したいんですけどどうすればいいでしょうか?
23デフォルトの名無しさん:2010/07/30(金) 17:29:09
リダイレクトでいったんテキストに書き出す。
24デフォルトの名無しさん:2010/07/30(金) 18:23:57
>>20
(a)の方法は二重にダブルバッファリングしていて無駄。
しかもやり方によってはAccessViolationExceptionや大量の描画が発生する
コントロールのダブルバッファリングを有効にした上で、OnPaintとかPaintイベントで
引数のe.Graphicsを使って描画するのが一般的かな
25デフォルトの名無しさん:2010/07/31(土) 01:29:02
>>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イベントハンドラで描画するのが吉のようですね。
27デフォルトの名無しさん:2010/07/31(土) 08:49:01
ちらつき以前に描画のもたつきが問題になりそう
DirectXやWPF使ったら
28デフォルトの名無しさん:2010/07/31(土) 09:04:59
MFCで似たようなソフトを作成した時は1万個程度の頂点の
表示はちらつきなしで問題なくリアルタイムに表示できました。
でも、C#だと遅くなるかなぁ。

DirectXの2Dは知らないけど、3Dでは直線を引く
という基本的な関数も用意されてません。OpenGLでは
用意されているかもしれませんけど。でも、今更、Win32API
やMFCはいじりたくないです。

WPFは...もうこれ以上、マイクロソフトが作ったライブラリに
付き合うのにもうんざりです。
29デフォルトの名無しさん:2010/07/31(土) 11:14:21
>>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メソッドは再描画の要求を行う。
3026:2010/07/31(土) 12:02:05
>>29


おーーっ! 非常に明快な説明、ありがとうございます。
31デフォルトの名無しさん:2010/07/31(土) 14:35:41
>>16
.ToList().ForEach(ActionT);
とか
Array.ForEach(ntArray, ActionT);
とかでいいじゃん。
32デフォルトの名無しさん:2010/07/31(土) 15:34:10
>>31
いや、出来ればジェネリック関数に引数だけを渡せば
ActionTを指定しなくても引数の型を判断させて
適切な関数を呼び出せるようにしたかったのです。
Test<T>の「共通する処理」を一箇所だけに書くようにして。

どうにもうまくいかなかったので教えてもらった方法でFunc
渡すことにしました。
ありがとう。
33デフォルトの名無しさん:2010/07/31(土) 16:24:52
>>32
いえいえ。
34デフォルトの名無しさん:2010/07/31(土) 17:18:29
object result = some_method();

こう↑書けるメソッドで、例外をキャッチしなければならない時って
こう↓書かなきゃいけないの?

object result = null;
try{
 result = some_method();
}catch{
 //処理
}

resultの宣言と代入が分離したり、宣言時にnullを代入しなければならなかったり、煩わしいんだけど。
いい方法ない?
35デフォルトの名無しさん:2010/07/31(土) 18:16:44
>>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);
共通する処理
}
登録はリフレクション使ったりして工夫すれば自動化できるはず
36デフォルトの名無しさん:2010/07/31(土) 18:24:45
>>34
たぶん一般的な方法じゃないと思うけど、
俺はメソッドで例外を投げる代わりに以下のようなメンバを持つFunctionResult<T>
みたいな型を作ってそれを返すようにしてる。

- bool Success { get; }
- Exception Exception { get; }
- T Result { get; }
- static implicit operator T(FunctionResult<T>) {}
37デフォルトの名無しさん:2010/07/31(土) 20:38:29
メンバ名はSuccessよりSucceededのほうがよろしいかと
38デフォルトの名無しさん:2010/07/31(土) 20:49:22
>>37
前は俺もそう思ってたんだけど、System.Text.RegularExpressions.Groupに
Successってメンバがあるのを発見してからは考えを改めた。
39デフォルトの名無しさん:2010/08/01(日) 09:07:06
プロパティ名には、名詞または名詞句を使用します。
Pascal 形式を使用します。
ハンガリー表記法は使用しないでください。
基になる型と同じ名前でプロパティを作成するようにしてください。
40デフォルトの名無しさん:2010/08/01(日) 09:16:43
それboolは例外だろ
IsEnabledとかHasValueとか普通にある
41デフォルトの名無しさん:2010/08/01(日) 12:51:07
ですね
42デフォルトの名無しさん:2010/08/01(日) 13:06:41
.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)
43デフォルトの名無しさん:2010/08/01(日) 13:07:42
つまりどういうことだってばよ?
44デフォルトの名無しさん:2010/08/01(日) 13:18:36
コピペ君って馬鹿だな、ってことだよ。
こういうコピペ君に限って間違いなくいまどろドヤ顔してるよw
45デフォルトの名無しさん:2010/08/01(日) 13:22:37
Bool型においては"Is"、"Can"、"Has"などのプレフィックスをつけることができる。
ただし冗長的になるため、能動態か受動態か、単数系か複数形かに注意して動詞で表現したほうが見通しが良い。

これにしたがって>>36を再度考えると
SuccessよりもSucceededのほうが良いな。

>>34から見るとインスタンスが生成されたかどうかをみたいようなので、アクセス可能かどうかって表現にしたほうがいいかもね。
46デフォルトの名無しさん:2010/08/01(日) 13:27:47
>>36
それ、Cとかの時代に逆戻りな気もするんだけどもなぁ。
戻り値うけた側で if (ret.Success) とかしないといけないの。
if 文書かなかった場合、たぶん ret.Result.Xxx() とかやった時にヌルポになって初めてエラーなの思い出すしわけだし。

Perl 6 でそれと同じような感じの例外構文追加されたらしいけども・・・
47デフォルトの名無しさん:2010/08/01(日) 13:48:43
>>46
それ、if云々をtryに置き換えてもまったく同じようなことが言えるのでは。
48デフォルトの名無しさん:2010/08/01(日) 13:57:10
C#の例外処理機構の問題点(っていうほど大げさじゃないけど)は、

 - ドキュメントを見ないとメソッドが例外を投げるかどうかすら分からない。

 - 例外の詳細(例外オブジェクト)が必要がない(失敗したら単にnullを返してくれればいい)
  ような場合でもtry{...}catch{...}を書かなければならないのは鬱陶しい。

だと思う。
>>36はそれに対する悪あがき。もちろんあんまりエレガントじゃないのは分かってる。
49デフォルトの名無しさん:2010/08/01(日) 14:00:51
null返してもらってifでnullチェックするとか言わないよな?
50デフォルトの名無しさん:2010/08/01(日) 14:01:58
言わないよな、とか誰に喧嘩売ってるんだこら
51デフォルトの名無しさん:2010/08/01(日) 15:02:24
>>48
前者はともかく、後者はよくわからないなあ。
それは、ようするに握りつぶしたいって要求に等しいよね。
例外オブジェクトが必要とかじゃなくて、処理に失敗したから例外を投げてるわけで。
もちろん、握りつぶしたい的なシチュエーションはあるけど、
それはTryParseのような成否を返すメソッドで作れって話だし。
52デフォルトの名無しさん:2010/08/01(日) 15:17:24
話の流れ切っちゃって悪いけど、
デバッグ時に外部のクラスライブラリのどのコードで例外が発生したかを調べるには、
外部のクラスライブラリのpdbファイルが必要?
53デフォルトの名無しさん:2010/08/01(日) 15:56:50
>>51
重要なのは、同じメソッドでも呼び出す側の都合によって
きちんと例外状況を把握したい(例外オブジェクトが欲しい)場合と、
単に成否のみ判定できればそれで必要十分な場合とがあるということ。
5451:2010/08/01(日) 16:34:02
>>53
その呼び出し側の都合で、ってのが握りつぶすに等しいわけで。
例外が出ても、成否のみで続行可能なら、メソッド側が
「ParseとTryParse」のように、二つのメソッドを用意しておくべき。
55デフォルトの名無しさん:2010/08/01(日) 16:41:59
>>47
少なくとも、try/if がなかった場合、例外が出る場所が問題の発生個所と一致する。
>>46 みたいなやり方だと、本来のエラーの場所と違う場所でヌルポ。

>>48
ドキュメント見ないとって問題はその通りだけど、
かといって throws 使うと catch(Exception) が横行するだけだしねぇ。

失敗時に null 返せばって話は、そういうメソッド書けばいいじゃない。
56デフォルトの名無しさん:2010/08/01(日) 17:39:16
以下のコードで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); // アクセスできてるのを確認
57デフォルトの名無しさん:2010/08/01(日) 18:38:29
HTMLソース読むとかFiddler使うとか
58デフォルトの名無しさん:2010/08/01(日) 19:55:52
>>52
そう
でもメソッド名くらいならスタックトレースに書いてある
59デフォルトの名無しさん:2010/08/01(日) 20:37:02
>>57
ありがとうございます。
ソースを解析することでうまくいきました。
60デフォルトの名無しさん:2010/08/01(日) 20:40:54
XElement.Parse メソッドで質問があります。
HTMLを上記のメソッドに渡すと
EntityName を解析中にエラーが発生しました
と例外が発生しました。
半角のスペースがタイトルに含まれていたからなのかなと推測しました。
一般的にこういう場合はどのようにしてXElementで解析したらよいのでしょうか?
61デフォルトの名無しさん:2010/08/01(日) 20:44:18
その原因に即して修正してから読み込むしかないだろ
一般的にはHTMLは正しいXMLじゃないんだから無理というしかない
62デフォルトの名無しさん:2010/08/01(日) 20:47:42
>>60
つSgmlReader
63デフォルトの名無しさん:2010/08/01(日) 21:05:07
>>54
>「ParseとTryParse」のように、二つのメソッドを用意しておくべき。
そういう「べき論」を唱えてもいいけど、何故そうすべきなのかと聞かれたときに
合理的な理由を与えられる?

ただの教条主義じゃないのそれ。
64デフォルトの名無しさん:2010/08/01(日) 21:12:30
>>55
論点がズレてるなあ。

そのメソッドは常に成功するとは限らない(例外が発生する可能性がある)
ことを示すためにわざわざ妙な値を返してるのに、それでもエラーを想定した
コートを書かない場合を想定しなければならない理由が分からない。

百歩譲ってそういう「馬鹿で怠惰な」プログラマを想定すべきだとして、
「例外が出る場所が問題の発生個所と一致」しないことが、あえて取り上げる必要がある
問題だろうか。
65デフォルトの名無しさん:2010/08/01(日) 21:14:46
>>60
HTMLのパーサを自前で書くべし
ttp://japan.internet.com/developer/20051115/25.html
66デフォルトの名無しさん:2010/08/01(日) 21:30:53
>>60
mshtml使う手もあるぞ
67デフォルトの名無しさん:2010/08/01(日) 21:40:03
>>64
うん、あえてどころか、まじめに取り上げるべき大問題。
68デフォルトの名無しさん:2010/08/01(日) 21:46:57
>>67
ではその理由をどうぞ。
どうして大問題なの?
NullReferenceExceptionが発生した理由を推定できないプログラマがいるから?

そんな奴はいないと思うが、いるとしてどうしてそんな「馬鹿でどうしようもないプログラマ」
を想定する必要があるのでしょう。
69デフォルトの名無しさん:2010/08/01(日) 21:56:56
距離はなれてたらしんどいよ。
あと、そんな馬鹿でどうしようもないプログラマも相手にするのがC#だろ。
70デフォルトの名無しさん:2010/08/01(日) 22:03:33
>>69
>距離はなれてたらしんどいよ
それは、そういうことが起こるとしたら変数の初期化(または変数への代入)と
その変数の使用を意味なく離して書く悪しきプログラミングスタイルに起因する問題であって、
>>36的な方法を取ったことに起因する問題ではないでしょ。

>そんな馬鹿でどうしようもないプログラマも相手にするのがC#だろ
もちろんフールプルーフに作ることは大事。
でも、フールプルールとは「ありえないような馬鹿を想定すること」ではないはず。
71デフォルトの名無しさん:2010/08/01(日) 22:11:06
>>58
ありがとうございます。
72デフォルトの名無しさん:2010/08/01(日) 22:48:26
>>65
.NETだけでやろうとした場合、自作しかないのでしょうか?
スペースなどの文字を&***のような形に変換するような
機能はないのでしょうか・・・

ダウンロードしたHTMLを解析するというのは
よくある要求だと思うのですが・・・
73デフォルトの名無しさん:2010/08/01(日) 22:49:54
>>72
普通にDOMでやれよ。
74デフォルトの名無しさん:2010/08/01(日) 22:50:17
htmlデコード
75デフォルトの名無しさん:2010/08/01(日) 23:03:10
>>73
domでやるとはどういう意味でしょうか?
ActiveXを使うということでしょうか?
76デフォルトの名無しさん:2010/08/01(日) 23:07:42
DOMでわかんないなら、初心者スレ行け。
77デフォルトの名無しさん:2010/08/01(日) 23:08:43
>>72
HttpUtility.HtmlEncode
78デフォルトの名無しさん:2010/08/01(日) 23:08:56
>>76
DOMは分かりますよ。
でも.NETとは無関係の一般的な用語ですよね。
79デフォルトの名無しさん:2010/08/01(日) 23:13:35
>>77
求めていたものにとても近いです。
ただタグの<などすべて変換されてしまうので
結局は解析してやらないといけないみたいです。
でもありがとうございました。
80デフォルトの名無しさん:2010/08/01(日) 23:25:55
81デフォルトの名無しさん:2010/08/01(日) 23:32:31
文字列の中に全角文字が含まれてたら削除したいのですが
何かよい関数ありますか?
82デフォルトの名無しさん:2010/08/01(日) 23:37:55
正規表現
83デフォルトの名無しさん:2010/08/01(日) 23:41:13
今の時代、全角文字ってどう定義していいのか微妙な気もするけど....
84デフォルトの名無しさん:2010/08/01(日) 23:42:25
>>80
まだ試していないのですが
読む限りまさにこれです。
助かりました、ありがとうございます。

というか最初のサンプリもここのサイトでした。
答えはすぐ近くにあったんですね・・・
85デフォルトの名無しさん:2010/08/01(日) 23:43:33
この人のレベルじゃRxは理解出来ない
86デフォルトの名無しさん:2010/08/02(月) 00:10:36
':' 文字、16 進数値 0x3A を名前に含むことはできません。
という例外が出ました
なかなか難しいものですね・・・
87デフォルトの名無しさん:2010/08/02(月) 00:12:13
せめてレス番名乗れよ。誰が誰だかわからないだろ。
88デフォルトの名無しさん:2010/08/02(月) 00:16:18
アプリケーションで例外を握りつぶすことが許容できるケースが存在はしますが、そのようなケースはほとんどありません。
例外を握りつぶすことを決めたならば、あなたが何がおかしくなるかを正しく理解していないことに気づくべきです。
それによって失われるアプリケーションの状態の一貫性を予測することは一般的に不可能だからです。
例外を握りつぶすことによって、一貫性の破綻に直面した状態で実行するリスクと、このアプリケーションドメインまたはプロセス内でコードを実行
し続けることによる価値のトレードオフを検討します。
その一貫性のない状態を利用してセキュリティ攻撃が行われる可能性もあります。
そのため、ここでの決断は奥の深いものです。
89デフォルトの名無しさん:2010/08/02(月) 00:19:47
・正確にどのコンポーネントが例外をスローしたのか、およびそのコントラクトはなにか(オブジェクトの状態はどうなったのか)
・スローしたオブジェクトと呼び出し元の間の完全な呼び出しスタック、およびスタック上のすべてのメソッドが正しくクリーンアップされ、
 返ってくる前にグローバル状態が変更されたかどうかの判断

これら2つの項目についてわからないのであれば、何らかのグローバル状態が"中途半端"な状態にあるかどうかがわからないため、
プログラムが実行を継続したときに奇妙なエラーを引き起こすことになります。
これは非常に多くの場所で発生しうる、OutOfMemoryException、StackOverflowException、またはThreadAbortExceptionのような
例外については本質に真です。
90デフォルトの名無しさん:2010/08/02(月) 00:41:35
>>81-83
Unicodeで文字幅が規定されているから、その定義を見て判定するだけだろ
文脈で幅が変化する文字とかあるから実装は面倒だけど
91デフォルトの名無しさん:2010/08/02(月) 16:58:35
>>35
おお、なるほど。こういう方法もありましたか。
ありがとう。

ジェネリックは中間言語になる時点でFunc<int>等を
Func<object>にして統一してるのかなと思ってたけど、
これが出来るってことはそいうわけじゃなかったんですね。
92デフォルトの名無しさん:2010/08/02(月) 18:28:03
Javaはコンパイル時に非ジェネリック型にコンバートしちゃうけど
C#のジェネリックは型情報を削除せずに、実行時にCLRの内部で構築されるようになってる。
93デフォルトの名無しさん:2010/08/02(月) 18:42:22
データベースをいじるのにVBかC#どっちがお勧めか?
94デフォルトの名無しさん:2010/08/02(月) 18:47:33
どっちも一緒
どっちかにこだわる人間になりたくなければまずはC#をやってから後でVBもやることをお勧めする
95デフォルトの名無しさん:2010/08/02(月) 18:58:56
C#は言語仕様自体が進化しているけれどVB.netも同じように変わっているの?
96デフォルトの名無しさん:2010/08/02(月) 19:06:20
VBも拡張されまくってるけど残念ながら新しいものは見向きもされない
97デフォルトの名無しさん:2010/08/02(月) 19:51:36
機能自体はC#とVB.NETは、まあ大体一緒なんだけど
近年の関数型に近づいた進化に対して、VBは構文の冗長さが際立ってきて結構しんどい。
98デフォルトの名無しさん:2010/08/02(月) 19:51:52
>>88
君さあ「例外をにぎりつぶす」っていう俺様用語を執拗に使ってるけど、
その意味厳密に定義できるの?

君ってそもそも例外処理の意味が分かってないでしょ。
99デフォルトの名無しさん:2010/08/02(月) 19:58:13
>>98
例外をキャッチしてそのまま処理を実行することじゃないの?
言葉通り見れば。
100デフォルトの名無しさん:2010/08/02(月) 20:01:44
なるほど、じゃあ例外をキャッチするか、もしくはそもそも例外をキャッチせずに
プログラムの実行をアボートするのが正しい作法なわけね。

面白い冗談だ

101デフォルトの名無しさん:2010/08/02(月) 20:08:36
>>92
そんな残念仕様と一緒にしないで。
意地でもバイトコードに修正入れたくなかったJavaと違って、
.NET は 2.0 の時に IL の仕様追加したんで。
102デフォルトの名無しさん:2010/08/02(月) 20:09:25
>>100
どしたー?熱中症にでもなったかー?

>>88が正しいとは言わないが
お前も十分おかしなこと言ってるぞ。
日本語不自由な人種か?
103デフォルトの名無しさん:2010/08/02(月) 20:17:02
>>102
否定は結構だがせっかくだからの君自身の見解も言ってみよう。
ではどうぞ。
104デフォルトの名無しさん:2010/08/02(月) 20:20:01
>>100
例外をその場ではキャッチせず、最上位で掴むってのはよくある作法だと思うのだけど。
105デフォルトの名無しさん:2010/08/02(月) 20:25:26
>>98
「例外を握りつぶす」って別に普通に使われてる表現
何で自分が無知なだけなのに、こうもひたすら強気に出れるのか不思議
106デフォルトの名無しさん:2010/08/02(月) 20:27:25
>>104
それはプログラマが想定してない例外をキャッチするためでしょ。

その目的は対ユーザー向けに適切なメッセージを表示するためであって
プログラムの処理を継続するためのものではない(想定していない例外が
発生したのだから当然だが)だから、通常の例外処理ではない。
107デフォルトの名無しさん:2010/08/02(月) 20:28:30
>>105
くだらねえこと言ってないで定義してみたら?
まさかそれすらできないのに「強気」に出てるわけじゃないよね?
108デフォルトの名無しさん:2010/08/02(月) 20:29:55
悪い意味で使われる「例外を握りつぶす」というのは
通常の例外処理の範囲でとりあえず全部キャッチしてスタックトレース吐いてスルーすることだろ
Javaなんかだとキャッチが強制されるからそういうのが散見される
109デフォルトの名無しさん:2010/08/02(月) 20:32:23
>>103
>否定は結構だがせっかくだからの君自身の見解も言ってみよう。

自分が否定と煽りしかしてねーじゃねーかwww
110デフォルトの名無しさん:2010/08/02(月) 20:33:17
よくわからない・処理できない・続けた場合にどうなるかわからない
のにとりあえずキャッチして放置
111デフォルトの名無しさん:2010/08/02(月) 20:51:03
「例外を無かったことにする」でいいだろ
112デフォルトの名無しさん:2010/08/02(月) 20:59:23
想定していない例外はキャッチしないのが正しい
113デフォルトの名無しさん:2010/08/02(月) 22:23:55
想定してないサイズはキャッチアンドリリース
114デフォルトの名無しさん:2010/08/03(火) 01:12:15
>>88は公式本からの転載だろ・・・。
読んでないやついんのかよw
115デフォルトの名無しさん:2010/08/03(火) 01:30:22
読んだ方が少ないんじゃね
116デフォルトの名無しさん:2010/08/03(火) 01:48:51
例外って握りつぶすと変な汁でてきて手がベトベトになるよね。
117デフォルトの名無しさん:2010/08/03(火) 02:25:36
複数の値が欲しいときに out やref を使いますが
使い分けとかやってますか?
それともどちらかしか使用しないようにしてますか?

out を使う場合は try catch の
外で初期化しないと怒られてしまうので
階層をまたがって使うときに 関数ごとに
初期化を記述しないと駄目っぽいのですが
何か良い方法あるのでしょうか?
118デフォルトの名無しさん:2010/08/03(火) 02:59:53
>>117
>複数の値が欲しいときに out やref を使いますが
使いません

そういう用途にはクラスを使いましょう。
119デフォルトの名無しさん:2010/08/03(火) 04:54:09
TCP/IP接続利用した簡単なネット対戦ゲー(ターン制みたいなの)検討してるんだけど
C#でその手のネットワークプログラミングを詳しく取り扱ってるサイトか書籍ってないかしら
120デフォルトの名無しさん:2010/08/03(火) 10:05:23
>>118
お間が使わなくても
Framework自体が使ってるんだけどな。

こいつみたいにそれっぽいものを完全否定する
原理主義土方PGって頭でっかちで使えないんだよなー。
121デフォルトの名無しさん:2010/08/03(火) 10:14:19
はいはい、妄想はそれぐらいにしとけw
122デフォルトの名無しさん:2010/08/03(火) 10:21:25
>>121
TryParse
123デフォルトの名無しさん:2010/08/03(火) 10:22:03
>>117
> 使い分け
outputのみが目的ならばout。
inputとoutput両方が目的ならばref。
124デフォルトの名無しさん:2010/08/03(火) 10:27:29
>>122
どこが複数の値なんだか…
125デフォルトの名無しさん:2010/08/03(火) 10:28:43
outとrefは初心者程こだわる
得にrefを多様してる奴は間違いなく初心者
126デフォルトの名無しさん:2010/08/03(火) 10:38:06
はぁ
127デフォルトの名無しさん:2010/08/03(火) 10:52:32
.NET Framework 4.0環境ならTuple使えるから楽なんだけどな
128デフォルトの名無しさん:2010/08/03(火) 11:05:36
>>124
2つは十分複数だろ?

使いません

とか完全否定しちゃうステレオタイプは
いまさら複数とか認められないのかもしれないけどwwwww
129デフォルトの名無しさん:2010/08/03(火) 11:09:10
>>118
ゴミは黙ってろ
130デフォルトの名無しさん:2010/08/03(火) 11:34:01
>>125
もうちょっと詳しく聞きたいね。
どういうのが最善なのか。
131デフォルトの名無しさん:2010/08/03(火) 11:42:12
Tupleなんか使うなよ
あれはF#のために追加されただけ
タプルは (string name, int age) = GetPerson();みたいに使うものだけど
今のC#の構文ではサポートされてなくて受けるときの変数名が無いから可読性最悪
132117:2010/08/03(火) 12:48:08
>>118
そうなんですか。
静的関数を作成し依存しないように
していく考え方はもうあんまり利用されない
んですね

>>123
正しい使い分けですね。

>>125
こだわらなくて良いということでしょうか?

>>127
なるほど、4.0からはそのようなものがあるんですね。
133デフォルトの名無しさん:2010/08/03(火) 22:03:52
2っで複数ねぇ・・・.Netにいくつメソッドがあると思ってるんだ。
%単位で存在してるなら分かるが同意できねぇ。
134デフォルトの名無しさん:2010/08/03(火) 22:18:30
>>128
引っ込みが付かなくなってるのはお前だろw
TryParseがあるから複数の値が欲しいときに out やref を使うべきと?w
何その負け惜しみwwwwwww
135デフォルトの名無しさん:2010/08/03(火) 22:19:46
動けばいいからどうでもいい。
136デフォルトの名無しさん:2010/08/03(火) 22:20:59
涙拭いて黙ってろよ
137デフォルトの名無しさん:2010/08/03(火) 23:07:18
>>133
日本語ワカリマスカ?
複数なのはメソッドの数じゃねーよ。
「2っ」なんて日本人なら書かねー。


>>134
誰が「使うべき」なんて言ったよw
0か1かでしか物事を考えることができねーの?
どこの国の人ですか?
引っ込みつかなくなってるのはお前のことだろwww
負け惜しみってのはお前のレスのことだよwwwww
138デフォルトの名無しさん:2010/08/03(火) 23:31:27
>>137
ゴミは黙ってろ
139デフォルトの名無しさん:2010/08/03(火) 23:34:15
>>138
なんだ朝鮮人だったのかw
140デフォルトの名無しさん:2010/08/04(水) 01:04:43
とりあえず参照型にref付ける奴はうましかまで読んだ
141デフォルトの名無しさん:2010/08/04(水) 01:25:11
>>140
参照型にref付ける意味ってなにがあるの?
試してみたら付けれたんだけど。
142デフォルトの名無しさん:2010/08/04(水) 01:27:20
>>141
スワップみたいに新しく代入するときとか。
143デフォルトの名無しさん:2010/08/04(水) 01:28:26
>>141
stringみたいにイミュータブルなクラスなら値を変更するには別のインスタンスを代入するしかないから、
refを付ける必要がある。
ミュータブルなクラスでも、いろいろ面倒な配慮をしないと値を変更できず、newしちゃった方が
早いってこともあるかもしれない。そんな例思いつかないけど。

値型・参照型と値渡し・参照渡しの4通りの組み合わせを全部理解しておかないと。
144デフォルトの名無しさん:2010/08/04(水) 01:28:27
out refを乱用せずにクラス使っとけって話のどこに噛み付くような余地があるんだ?
キチガイの考える事はよう分からんわ
145デフォルトの名無しさん:2010/08/04(水) 01:31:58
>>137
半島人は黙ってろ
146デフォルトの名無しさん:2010/08/04(水) 01:32:28
>>144
使わないって完全否定してるアホが居たから
そいつが叩かれてるだけじゃないの?
147デフォルトの名無しさん:2010/08/04(水) 01:35:01
>>145
お前シナだったのかw
148デフォルトの名無しさん:2010/08/04(水) 01:45:58
>>138
ゴミは黙ってろ
149デフォルトの名無しさん:2010/08/04(水) 01:47:03
叩かれてるのは>>120から粘着して騒いでる奴だろ
150デフォルトの名無しさん:2010/08/04(水) 01:51:28
>>149
だから黙れよゴミ
151デフォルトの名無しさん:2010/08/04(水) 01:53:10
馬鹿は情勢が悪くなるとすぐ荒らすから分かりやすい
152デフォルトの名無しさん:2010/08/04(水) 01:56:06
自己紹介乙
153デフォルトの名無しさん:2010/08/04(水) 02:01:29
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
154デフォルトの名無しさん:2010/08/04(水) 04:08:23
コピペ君って馬鹿だな まで読んだ
155デフォルトの名無しさん:2010/08/04(水) 04:09:50
コピペ君って馬鹿だな まで読んだ まで読んだ
156デフォルトの名無しさん:2010/08/04(水) 08:27:58
>>141
メソッドの中で複数のインスタンスを new で返したいときとか・・・
って思ったけど、そりゃ out 使うとこだな。
確かに参照型に ref ってスワップ以外に用途思いつかない。
157デフォルトの名無しさん:2010/08/04(水) 09:28:00
参照型の参照渡しはVBだと平気で出てくるぞ
戻り値を使うっていう発想がないんだよね
158デフォルトの名無しさん:2010/08/04(水) 11:45:19
あー、複数の場合は構造体使えって言うならしっくりくるね。
クラスって言うからメソッド使って管理しろって意味だと思ってた。

refとかoutは例外出したくないとき便利じゃないかな
public bool GetData(out string data, string default)
string data;
GetData(out data, "default"); //失敗してもそのまま継続できるし成功の確認も出来る
159デフォルトの名無しさん:2010/08/04(水) 11:48:05
まぁTryParseなんかがまんまだな
160デフォルトの名無しさん:2010/08/04(水) 11:48:14
それをTryParseパターンと呼ぶんです
クラスライブラリのパブリックメンバなら例外を投げるバージョンも同時に用意する決まり
161デフォルトの名無しさん:2010/08/04(水) 11:52:21
へー、名前なんてあったんだ。勉強になった。
162デフォルトの名無しさん:2010/08/04(水) 11:54:47
俺が今名づけた
163デフォルトの名無しさん:2010/08/04(水) 11:56:19
MSDNに書いてある公式用語です
164デフォルトの名無しさん:2010/08/04(水) 12:05:15
プリミティブの変換だから特別にユーティリティ作りましただよな TryParse
でも、作るなら検証メソッドのほうが良かったのに・・・
165デフォルトの名無しさん:2010/08/04(水) 12:18:28
nullable使えばよかったのに
166デフォルトの名無しさん:2010/08/04(水) 12:36:02
は?
167デフォルトの名無しさん:2010/08/04(水) 12:49:17
ヌーブラ
168118:2010/08/04(水) 13:13:01
>>144が言っているように、>>117が不適切な用法をしているであろうと察して言ったのだが、めんどくさい奴が騒いでてワロタ。
>>117>>132読んだ感じじゃ読み通りout refを乱用してたみたいだな。

>>153
俺は>>118だけなんだが君は誰と戦ってるつもりなの?w
169デフォルトの名無しさん:2010/08/04(水) 13:25:45
もう好きにしろ
正しく動くコードが一番正しいんだ

どれも正しく動いてりゃ正解だよ

※メンテナンス性は除く
170デフォルトの名無しさん:2010/08/04(水) 13:29:21
スレチになりつつあるぞ
171デフォルトの名無しさん:2010/08/04(水) 14:06:55
メンテナンス性なんて飾りです。偉い人にはそれが分からんのです。
172デフォルトの名無しさん:2010/08/04(水) 14:31:52
敢えてメンテナンス性を排する事で逆コンパイル耐性をつけたのさ!
173デフォルトの名無しさん:2010/08/04(水) 14:49:29
昔からいるよな
「我が教義に従いさえすればあらゆる問題はたちどころに解決する」
とかほざく宗教者
オブジェクト指向辺りからか?この手の無能が湧き出したのって
174デフォルトの名無しさん:2010/08/04(水) 14:59:08
もっと前
SBの孫とかが有名
175デフォルトの名無しさん:2010/08/04(水) 15:02:42
>>173
自己紹介乙
176117:2010/08/04(水) 15:09:10
>>168
out/ref 乱用はしてません。
outしか今まで使用してなかったので
out/refの使い分けが知りたかったのです。
177デフォルトの名無しさん:2010/08/04(水) 15:19:27
それなら>>123で終わってるわけで、騒いでた奴は何だったのかねw
178117: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に赤色が点滅します

よろしくお願いします


180デフォルトの名無しさん:2010/08/04(水) 15:54:40
なにを?
181デフォルトの名無しさん:2010/08/04(水) 15:57:39
>>179
mixiにマルチ
182デフォルトの名無しさん:2010/08/04(水) 16:09:58
>>119だが俺のレスの直後に例の盛り上がりがあって流されてるな・・・
いいよいいよ、根気よく自力で探すよ(つдT)
183デフォルトの名無しさん:2010/08/04(水) 16:30:23
TcpListener使って低レベルの通信がやりたいのか、もっと高レベルの.NET Remotingなんかを使いたいのかで全然違うよ
後者のサンプルだとこんなのとかある。
http://codezine.jp/article/detail/530
184118:2010/08/04(水) 17:01:10
>>178
TryParseパターンのような制限付きの例外はあるにせよ
>静的関数を作成し依存しないようにしていく考え方はもうあんまり利用されない

この辺は別にC#だけに限った話じゃないな。
185デフォルトの名無しさん:2010/08/04(水) 17:22:19
>>183
うおお、thx!
ググっても他の言語のコードばっかりで困っていたんだ。とりあえず両方味見してみる
186デフォルトの名無しさん:2010/08/04(水) 18:08:42
最近だとWCFなんてのもあるが
困ったことにほとんどのサンプルがIIS前提なのよね・・・
もっと単純にPeerToPeerしたいだけなんだが大掛かりすぐる
187デフォルトの名無しさん:2010/08/04(水) 19:12:51
そりゃTCP/IPとかで新しいフレームワークなんて今更いらんから、新しいもの
といえば特定領域の実装を楽にするものしかないわな。
更に皮かぶせたもの無いか?なんて考えないで素直に System.Net.Sockets
使えばいいと思うよ。(プラットフォーム間の相互運用性も上がるし)
188デフォルトの名無しさん:2010/08/04(水) 19:57:55
>>179
夏休みの宿題は自分でやるべき。
http://ideone.com/EcOoS
189デフォルトの名無しさん:2010/08/04(水) 23:41:39
tes
190デフォルトの名無しさん:2010/08/04(水) 23:44:49
ref、outはMSがなるべく使わないでって言ってるよ。
きちんと理解してるなら使ってもよいぐらいの解釈でいい。
191デフォルトの名無しさん:2010/08/04(水) 23:58:09
相互運用では使いまくる。それ以外は稀にしか使わないな。
192デフォルトの名無しさん:2010/08/05(木) 00:18:35
ダブルポインタなんて ref IntPtr か out IntPtr にするしかないもんな。
193デフォルトの名無しさん:2010/08/05(木) 00:25:23
はじめは無理してそうやってたけど最近は気にせずポインタ使うようになった
IntPtrじゃ型分からないし扱いが回りくどいしで、余計に危険な気がする
結局やってることは一緒だし
194デフォルトの名無しさん:2010/08/05(木) 01:00:56
TryParse パターンの補足も入れとくか。
TryParse パターンが許容されるのは、Parse 可能かどうかの判定に Parse 本体と同程度の負荷がかかる場合ね。
可能性の判定を簡単にできる場合は、事前判定用の CanParse みたいなメソッドと、
例外投げる Parse を用意する方がいい。
(けど、文字列の Parse はたいがい可能性判定の負荷高いんで、TryParse にならざるを得ない)
195デフォルトの名無しさん:2010/08/05(木) 01:20:54
絶対現場主義の本がアルアルすぎておもしろかった
196デフォルトの名無しさん:2010/08/05(木) 01:23:40
なんぞそれ
197デフォルトの名無しさん:2010/08/05(木) 02:06:30
絶対現場主義Visual C#実践講座っていう本
たぶんプロなら共感出来ると思う
ある意味上級者向けの本w
198デフォルトの名無しさん:2010/08/05(木) 02:36:52
・カーソル移動はENTERキーでも移動できるように。(オペレータはテンキーしか使わないので。)
・業務アプリのWindowは画面一杯に表示して、閉じられないようにしてほしい。(業務アプリ以外の余計な操作はできないように。)
・テキストボックスの入力長は全角xx文字以内にしてほしい。 (もちろん、MaxLengthの設定だけじゃダメ。)

レビュー見てきた。あるあるw
199デフォルトの名無しさん:2010/08/05(木) 02:48:16
自分が無意識のうちに書いたのかと思ったw
200デフォルトの名無しさん:2010/08/05(木) 02:55:09
>>193
マジ、unsafeでダブルポインタ使えるの?
201デフォルトの名無しさん:2010/08/05(木) 03:11:55
うん
202デフォルトの名無しさん:2010/08/05(木) 09:23:23
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使わずにやるのは面倒だぞ
203デフォルトの名無しさん:2010/08/05(木) 11:39:23
DataGridView で特定のセルを選択状態にしない方法はありませんか?
そのセルがキーボードやマウスでクリックされても現在の選択状態
を維持したいです。
204デフォルトの名無しさん:2010/08/05(木) 12:22:35
セレクションモードセル単位にしてselectionの時の文字と背景の色一緒にしちゃえよwwww
俺はそれでごまかして逃げてる

点線の枠線は見えちゃうけどな・・・・
205デフォルトの名無しさん:2010/08/05(木) 15:12:40
DataGridViewを使ってるんですが
メインのフォームからボタンを使って新しいウィンドウを呼び出して
そこにメインのDataGridViewを別の値を代入して表示させたいんですが
上手く再表示してくれません。
メインのフォームのインスタンスを新しいウィンドウのコンストラクタに渡して
それを新しいウィンドウのDataGridViewのインスタンスに代入した後
.Update()をしてるんですが・・・

何かやりかたがマズイんでしょうか。
よろしくお願いします。
206デフォルトの名無しさん:2010/08/05(木) 15:22:45
何が言いたいのかさっぱりわからん
207デフォルトの名無しさん:2010/08/05(木) 15:23:47
コードうp
208デフォルトの名無しさん:2010/08/05(木) 15:32:51
>>205です

http://codepad.org/IMTznv50

こんなコードなんですけど・・・
209デフォルトの名無しさん:2010/08/05(木) 15:36:26
あ、すみません間違えました。
正確にはこっちです^^;

http://codepad.org/X3iUi8YZ
210デフォルトの名無しさん:2010/08/05(木) 15:38:03
で、form2DataGridViewを表示するコードはどこに隠してあるんだ?
211デフォルトの名無しさん:2010/08/05(木) 15:40:49
>>210さん
form2DataGridViewはデザイン画面で表示してるんで
InitializeComponent();
の部分で描画されてるかと・・・。

なので新しいウィンドウを開いた時にはもう表示されているんですが
メインの値の入ったものではないんです。空の奴です。

これを更新させたいんですけど・・・
212デフォルトの名無しさん:2010/08/05(木) 15:44:17
表現を変えようか。form2DataGridViewに新しく代入されたインスタンスを表示するコードはどこに(ry
213デフォルトの名無しさん:2010/08/05(木) 15:49:28
public Form2(DataGridView form1dataGridView) {
InitializeComponent();
form2DataGridView = form1dataGridView;
}

form2DataGridView = form1dataGridView;
の部分なんですけどおかしいですか?
それぞれデザイン画面でメイン画面に表示されているDataGridViewをform1DataGridViewと名付け
新しいウィンドウの方をform2DataGridViewと名付けています。
コンストラクタで受け渡し代入をしてるつもりなんですが。
その後に.Update()をすれば表示も更新されると思ったんですが
214デフォルトの名無しさん:2010/08/05(木) 15:52:34
なんかラッパークラスを作ってやって、そこにメインのDGVの情報を格納して渡して
新しいウィンドウのDGVのvalueにそれぞれセットしてやれば解決する問題なんでしょうけど
そのままオブジェクトを代入しても、同じ事が実現可能だろうと思っていたんですけど
出来ないので・・・
215デフォルトの名無しさん:2010/08/05(木) 16:03:43
エクスプローラのコンテキストメニューについての質問です。

コンテキストメニューからの起動時に、1つのアプリで複数ファイルのパスが受け取れません。
レジストリのAllFileSystemObjects\shell\app\commandに登録したのですが、ファイル毎にアプリが起動してしまいます。
その際に登録したコマンドは「"アプリのパス" "%1"」です。
引数を%*に変更しても不可能でした。

1つのアプリが複数ファイルのパスを1度に受け取るにはどうすればよいでしょうか?
開発環境はVS2010の.net4.0で、Win7 64bitになります。
よろしくお願いします。
216デフォルトの名無しさん:2010/08/05(木) 17:00:46
4.0に対応したMSDN Libraryはまだかいのぅ
217デフォルトの名無しさん:2010/08/05(木) 19:34:54
>>197
その本の著者ってこの本の著者と同じだよね。
http://www.amazon.co.jp/C%E8%A8%80%E8%AA%9E%E6%92%83%E9%80%80%E8%AC%9B%E5%BA%A7-~K-R%E3%81%AF%E7%BD%AE%E3%81%84%E3%81%A6%E3%80%81%E4%BF%BA%E3%81%AE%E8%A9%B1%E3%82%92%E8%81%9E%E3%81%91-%E4%B8%B8%E5%B2%A1-%E5%AD%9D%E5%8F%B8/dp/477413533X

こっちの本のデタラメさ(ふざけてるという意味じゃなくて、どうしようもない
低レベルな間違いが多い)を見たら評価変わるかもねw

その本は知らんけど(上の著者だと知ってたから手に取る気にもならない)
こっちは本当に無茶苦茶酷いよ
218デフォルトの名無しさん:2010/08/05(木) 19:45:02
いや、そう言う真面目な本じゃないから…
「PCのコンセント抜いて電源が落ちるとこまるのでソフトで対応して下さい」
とかの要求をアルアルしながら読む本

つまり学生や客と退治しない請負には意味がわからん
上流及び客とマンツーでやった事のある経験豊富なプロにしか合わない本
219デフォルトの名無しさん:2010/08/05(木) 20:04:01
>>218
全然あるあるじゃないじゃんw

こちとら毎日のように客とやり合ってるけど、今日日そこまで酷い人はいないし、
常識で考えても「そこまでの馬鹿」がそうそういるわけない。

要するに、ネトウヨ的なうだつ上がらない奴が自分より下がいると思って
溜飲下げるタイプの本なのかね。
220デフォルトの名無しさん:2010/08/05(木) 20:06:39
>>218
最近は”蚊が嫌がる音を作業中は出して下さい”みたいなのが増えてるぜw
221デフォルトの名無しさん:2010/08/05(木) 20:29:18
>>218
対応すればいい
>>220
そんな音は存在しない
222デフォルトの名無しさん:2010/08/05(木) 20:34:52
まぁモスキート音のことなんだろうけど
223デフォルトの名無しさん:2010/08/05(木) 21:20:19
>>218-219
会議だけじゃなくて現場の作業者さんからも要望や使い勝手なんかを聞くのであるあるだなあ
WMとかのモバイルだと「充電するのも無線でやりたいんですが?!」とか日常茶飯事だし
224デフォルトの名無しさん:2010/08/05(木) 21:27:40
>>223
リニアカップリングとかでいけるんじゃね?
225デフォルトの名無しさん:2010/08/05(木) 21:32:38
>>217
ご多聞に漏れずでたらめだらけ。
自分で間違いを見つけられないとやばい。
続編(Webアプリ編だっけかな?)もでたらめだらけ。
226デフォルトの名無しさん:2010/08/05(木) 21:50:23
そんな客と対峙してる自分も同じ階層の住人なんだよなあ、と自戒を込めて思う。
227デフォルトの名無しさん:2010/08/05(木) 22:20:00
>>168
使いません って断言の仕方がまずかったんじゃね?
君が義務教育中なのか大学生なのか社会人なのかしらんけど
「乱用しないで適切に使う」というニュアンスが
「使いません」と同じ、という思考回路はものすごく危険
学生なら許されるのかもしれんが

答えとして
@乱用しないで適切に使う
A使います
B使いません

と3つあれば
@が正解、Aは間違いではない、Bは大変危険な間違い
となる

会社でそんな答えをしてたら間違いなく怒られるよ
228デフォルトの名無しさん:2010/08/05(木) 22:34:25
>>227
まあニュアンスの問題だけども、「乱用しないで適切に使う」よりも
「他に代替手段がない時のみ謙抑的に使う」の方が適切かと思う
229デフォルトの名無しさん:2010/08/05(木) 22:46:30
>>228
まあニュアンスの問題だけども、「他に代替手段がない時のみ謙抑的に使う」
だと、「代替手段がないから仕方なく使う」的なニュアンスが含まれるよね。
代替手段がないから使うってのは明らかに間違え。
ちゃんと使うべきだという理由があって初めて使うべき。
つまりは、>>194のようなことね。
だから「適切に使う」が正しい。

「使いません」は論外だが。
230デフォルトの名無しさん:2010/08/05(木) 23:02:47
>>228
謙抑的ってなんだろうと思って調べたら
へりくだるって意味が含まれるらしいんだが
そうだとすると使い方間違ってねーか?
無理して難しい単語使うと恥をかくね
正しかったらごめんね
231デフォルトの名無しさん:2010/08/05(木) 23:18:13
>>229
何を言ってるのまさにあれは「仕方なく使う」ものでしょ。
可読性を考慮すれば、まともなプログラマなら本来使いたくないんだからさ。

一応言っておくけど、ライブラリのメソッドのように"well-known"であることが
期待できるものについてはまた少し話しが違うけどね。
232デフォルトの名無しさん:2010/08/05(木) 23:20:42
>>230
webの辞書じゃなくて、ちゃんとした辞書引いてみ。
っていうか「謙抑(的)」で検索してもわかると思うが
233デフォルトの名無しさん:2010/08/05(木) 23:36:35
>>232
一言余計ではねーか?
234デフォルトの名無しさん:2010/08/05(木) 23:36:41
ちょっと質問させていただきます。

A,Bの以下のハードがあったとします。

・A

OS:Windows Vista
開発環境にVisualStadio2008がインストール済み。

・B

OS:Windows7 Starter
.NETFramework3.5インストール済み

二つのハードにVB6のDLLから関数を呼び出して使うC#のプログラムを実行します。
実行するプログラムは.NETFramework3.5で作成されています。

この時、BでしかDLLから呼び出せなかったんですが、なんででしょう?
開発環境であるXPマシンでは問題なかったのですが・・・
Vistaでは何か特別な処理をさせないといけないのでしょうか?
235デフォルトの名無しさん:2010/08/05(木) 23:38:08
エラーぐらい書けば?
236デフォルトの名無しさん:2010/08/05(木) 23:39:10
>VB6のDLLから関数を呼び出して使うC#のプログラム
誰か日本語に翻訳して
237デフォルトの名無しさん:2010/08/05(木) 23:43:14
エスパーすると、VB6のDLLからCOM相互運用に登録したC#アセンブリを呼び出してるな。
238デフォルトの名無しさん:2010/08/05(木) 23:43:37
Vista機が今手元にないのでうろ覚えなんですが、DLLImportで指定してあったVb6DLLの関数を
ボタンを押すと中で実行してくれるものでした。
しかし、処理を停止し始めて、VB6DLLの関数が呼び出せないという内容がダイアログボックスに
表示されたんです。

でも、手元の7機は動くし、どうなってるんだろうかと・・・
239デフォルトの名無しさん:2010/08/05(木) 23:46:10
あきらめろよ。

VB6で関数エクスポートなんて、まっとうにはできないし。
240デフォルトの名無しさん:2010/08/05(木) 23:48:21
自演
241デフォルトの名無しさん:2010/08/05(木) 23:48:41
>>238
VB6ランタイムを入れてない、なんて間抜けなオチじゃないよねまさか
242デフォルトの名無しさん:2010/08/05(木) 23:52:31
VistaにはVB6ランタイムがデフォルトで入ってるよ。
243デフォルトの名無しさん:2010/08/06(金) 00:06:25
なんかもうVista機に対応してたら時間かけるだけ無駄ぽいので
Vista機での運用はやめときます…スレ汚しスマソ
244デフォルトの名無しさん:2010/08/06(金) 00:16:20
>>231
>何を言ってるのまさにあれは「仕方なく使う」ものでしょ。
refが適切であれば仕方なくではなく胸を張って使う。
仕方ないとは思わない。
245デフォルトの名無しさん:2010/08/06(金) 00:20:45
なるほど、こういうセンスの人がウンココードをしこしこ製造するんだな。
煽るつもりもないがちょっと信じられないセンスだ
246デフォルトの名無しさん:2010/08/06(金) 00:20:54
>>232
刑法、道徳に関して使用する謙抑的と
その他の一般的に使われる謙抑はニュアンスが違う。
>>230が言っているように前者には「へりくだる」のニュアンスが薄いが
後者は>>230の言う意味で正しい。

前者の意味で使われることが多い単語なので
>>232はそれを見て知ったかしちゃったのかな?

つか、またニュアンスかよw
247デフォルトの名無しさん:2010/08/06(金) 00:22:35
× >>230が言っているように前者には
○ 前者は
248デフォルトの名無しさん:2010/08/06(金) 00:30:40
>>246
もういいからちゃんとした辞書引けよ。
俺も手元にないんで偉そうなことはいえんけどw

謙抑的って言葉は別に法律用語でもなんでもなく、「控えめに運用する」
目的語が法律や権力以外にあまりないだけ。
249デフォルトの名無しさん:2010/08/06(金) 00:51:21
>>238
VB6ランタイムを入れてない、なんて間抜けなオチじゃないよねまさか
250デフォルトの名無しさん:2010/08/06(金) 00:56:28
>>197
気になって社内を探したらこれあった
有名かどうかは知らんが結構どこにでもあるみたいだな
251デフォルトの名無しさん:2010/08/06(金) 00:58:36
>>249
コピペ君って馬鹿だな、まで読んだ。
252デフォルトの名無しさん:2010/08/06(金) 02:04:48
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がありませんと出てしまいます。

ダブルクリックによる起動と、ドロップによる起動では何が変わってくるのでしょうか?
またこの解決方法がありましたら合わせて教えてください。
253デフォルトの名無しさん:2010/08/06(金) 02:30:30
>>227
ていうかさ

>>複数の値が欲しいときに out やref を使いますが
>使いません
>そういう用途にはクラスを使いましょう。

複数の値が欲しいときに out や ref を使うかって言うと、
「使いません、クラスを使いましょう」って回答は正しいと思うのだが。

複数の値が欲しいときにoutやrefを使うべきではないって話をしてる時に、「Framework自体が使っている」なんて言い出した>>120の頭がおかしいだけではないのか。
254デフォルトの名無しさん:2010/08/06(金) 03:14:43
>>253
俺も>>227だと思うわ
255デフォルトの名無しさん:2010/08/06(金) 03:27:58
>>254
複数の値が欲しいときに out やref を使うの?酷い設計だな。完全に乱用してんじゃん
256デフォルトの名無しさん:2010/08/06(金) 04:02:11
>>255
>>TryParse
>どこが複数の値なんだか

以下無限ループ
257デフォルトの名無しさん:2010/08/06(金) 07:21:35
>>255
>>227には複数の値が欲しいときに使うなんて一言も書いてないじゃん
おそらく、>>168>>255も社会人じゃないだろ。
社会人になれば>>227の言ってる意味が分かるだろう。

>>253
気を付けないと自分の方が頭がおかしいと思われるよ。
258デフォルトの名無しさん:2010/08/06(金) 09:54:06
日本語の話題スレ違い。
259デフォルトの名無しさん:2010/08/06(金) 13:17:01
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です
ヒントなどありましたらご教授お願いします
260デフォルトの名無しさん:2010/08/06(金) 13:22:34
new Randomの位置
261デフォルトの名無しさん:2010/08/06(金) 13:30:24
>>259
Randomを似たようなシードで生成したら似たような乱数が出力されたって話だろ
適当なシードで生成した(同じひとつの)Randomオブジェクトから乱数を取得しろよ
262デフォルトの名無しさん:2010/08/06(金) 13:30:28
>>260
int seed = Environment.TickCount;
Random r = new Random(seed);
for (int i = 0; i < 50; i++){
   Console.Write(r.Next(100) + ", ");
}

こうしたらバラけた乱数が得られるようになりました
こんな初歩的な用法のミスをしてしまうとは…
ありがとうございました
263デフォルトの名無しさん:2010/08/06(金) 14:10:41
>>227>>257も「複数の値が欲しいときにoutやrefを使うべきではない」というのは否定していない。

>>複数の値が欲しいときに out やref を使いますが
>使いません
>そういう用途にはクラスを使いましょう。
どんだけごちゃごちゃ騒いでもこれは正しい事なので否定できない。だから言葉尻を捕まえて叩くしかできない。
>>118読んで>>120と誤読するような日本語の読めない馬鹿が居たからこんな面倒な事になったんだ。
264デフォルトの名無しさん:2010/08/06(金) 14:31:17
飽きたから後は好きなようにやっといて
265デフォルトの名無しさん:2010/08/06(金) 14:31:46
悔しいのはわかったから
もういいよ
266デフォルトの名無しさん:2010/08/06(金) 15:02:00
勝手に物事を決め付けて反論されるとムキになる
子供がいるスレはここですか
267デフォルトの名無しさん:2010/08/06(金) 15:17:56
お前毎回上げてんのな
268デフォルトの名無しさん:2010/08/06(金) 15:24:33
TryParseで反論されてムキになって・・・いや、何でもない
269デフォルトの名無しさん:2010/08/06(金) 15:26:37
今月はスルースキル習得月間になります。
270デフォルトの名無しさん:2010/08/06(金) 15:28:40
ム板はよく釣れる
271デフォルトの名無しさん:2010/08/06(金) 15:39:19
いつもMS系の板を荒らしてる奴が自演で荒らしてたりしてね
272デフォルトの名無しさん:2010/08/06(金) 15:51:30
>>259
ニュー速民?
乱数生成ネタでスレたったので同じようなこと俺もしてた
273デフォルトの名無しさん:2010/08/06(金) 15:56:13
横からだけど
そんなスレあったのか。見ときゃ良かった。
274デフォルトの名無しさん:2010/08/06(金) 16:04:06
>>252
起動方法によってカレントディレクトリが異なる
だからパスは全部フルパスで書け
275デフォルトの名無しさん:2010/08/06(金) 16:06:05
>>215
まず複数起動を禁止しろ
話はそれからだ
276デフォルトの名無しさん:2010/08/06(金) 16:13:01
>>213
コントロールにはそれぞれ紐付けられたウィンドウハンドルがある
だから別Formで一旦表示したコントロールをなんも考えずに移植しても上手く行く訳がない
大人しくNortifyしろ
277デフォルトの名無しさん:2010/08/06(金) 18:14:07
>>273
たいしたこと言ってないよw
プログラミングでは乱数の生成が意外と難しい
http://kamome.2ch.net/test/read.cgi/news/1280986663/
278デフォルトの名無しさん:2010/08/06(金) 18:40:07
ちゃんとした乱数作るのはマジ大変
お手軽にそれなりの作れるったらメルセンヌ・ツイスタかね
279デフォルトの名無しさん:2010/08/06(金) 18:46:47
金にならんからどーでもいい
乱数は学生のおもちゃ
280デフォルトの名無しさん:2010/08/06(金) 19:06:26
すげー。
プロの方々は乱数も自作されてるんだ。
流石だ・・・。
281デフォルトの名無しさん:2010/08/06(金) 19:06:55
基礎教養として学生の内におもちゃとして触っとけって話か
282デフォルトの名無しさん:2010/08/06(金) 19:09:38
学生のおもちゃどころか車輪の再発明
興味もつのは中二病かそれを専門で扱って金にしてる研究者
283デフォルトの名無しさん:2010/08/06(金) 19:11:50
まってたよ、この調子でどんどん頼む
284デフォルトの名無しさん:2010/08/06(金) 19:12:46
入れ食いですね
285デフォルトの名無しさん:2010/08/06(金) 19:53:14
まーだ顔真っ赤にしてるのか決めつけ君は
いつまで火病ってるんだよ
286デフォルトの名無しさん:2010/08/06(金) 20:27:20
.NET 標準の Random クラスはしょせん線形合同法だしねぇ。
軽いけどランダム性あんまりよろしくない。
287デフォルトの名無しさん:2010/08/06(金) 20:42:17
ttp://takel.jp/mt/
Artistic Licenseってなんお?
288デフォルトの名無しさん:2010/08/06(金) 21:06:08
普段使ってる擬似乱数がどうやって作られてるかぐらいは知っとくべきだろう。
暗号化に使えるぐらい厳密なやつが欲しいならRNGCryptoServiceProvider
289デフォルトの名無しさん:2010/08/06(金) 21:09:36
290デフォルトの名無しさん:2010/08/06(金) 22:08:05
291デフォルトの名無しさん:2010/08/06(金) 22:09:28
コピペ君って馬鹿だな、まで読んだ。
292デフォルトの名無しさん:2010/08/06(金) 22:21:56
乱数は自然界でも作るのは無理。
293デフォルトの名無しさん:2010/08/06(金) 22:57:59
>>275
複数起動は禁止しましたが、複数のパスは相変わらず受け取れません
294デフォルトの名無しさん:2010/08/06(金) 23:32:25
>>274
やはりそういうことですか。
ありがとうございます。
フルパスで書くことにしようと思います。

また追加で質問があるのですが、
MessageIDがyyyymmddhhmm.********@メールサーバ@マシン名
と@が2つついてしまいます。
SmtpClientでMessageIDの設定など出来ますでしょうか?
295デフォルトの名無しさん:2010/08/07(土) 00:12:17
296デフォルトの名無しさん:2010/08/07(土) 00:25:24
コピペ君って馬鹿だな、まで読んだ。
297デフォルトの名無しさん:2010/08/07(土) 00:29:54
298デフォルトの名無しさん:2010/08/07(土) 00:36:10
コピペ君って馬鹿だな、まで読んだ。
299デフォルトの名無しさん:2010/08/07(土) 02:07:51
同じ数字が何度か連続して出るのも乱数としては普通の動作なんだけど
合同法で出した乱数だと同じ数字の連続ってないよね
っつーか合同法で同じ数字が連続したら死ぬまでその数字しか出ないか
300デフォルトの名無しさん:2010/08/07(土) 02:19:58
どうでもいい
301デフォルトの名無しさん:2010/08/07(土) 02:26:21
同じ数字が出るのは死ぬまでか
死んだ後はどんな数字が出るんだろう
302デフォルトの名無しさん:2010/08/07(土) 02:28:47
壊れて出力がなくなる
303デフォルトの名無しさん:2010/08/07(土) 04:10:37
>>299
ふと思ってオリジナルのxorshiftでやってみたら
516320272回目に直前の値と一致した
304デフォルトの名無しさん:2010/08/07(土) 09:04:39
MemoryStreamのバッファの中身ってもしかして配列ですか…
305デフォルトの名無しさん:2010/08/07(土) 09:25:52
それ以外にどう実装しろと
マネージドな範囲では唯一の方法だろ
アンマネージメモリ使ったってメモリアクセスの速度自体は変わらないし
GCのパフォーマンスが悪くなるだけだしUnmanagedMemoryStreamがあるし
306デフォルトの名無しさん:2010/08/07(土) 09:35:58
そうですよね…
ありがとう

コピーがネック…
307デフォルトの名無しさん:2010/08/07(土) 09:39:08
>>306
とりあえず何がやりたいのか話してみろ。
308デフォルトの名無しさん:2010/08/07(土) 09:46:12
MemoryStreamはToArray以外はコピーしないぞ
何がやりたいのか知らないけど、ほんとにアプリケーションのパフォーマンスについて
コピーのコストがネックだと確認したの?
ほんとにそれがネックならいくらでも改善方法はあるだろうけど
アプリケーションとして動作した時の計測を行わずにパフォーマンスを気にするのは全く無意味
309デフォルトの名無しさん:2010/08/07(土) 10:11:01
今どきの乱数の実装じゃ、たとえ中身は線形合同法みたいなシンプルな方法のものでも、
ステートをそのまま出力しないものが多いんじゃない?
中間のビットを抽出してるとかさ。
そういうのだと、周期は結果のビットパターンより長くなるから、同じ数値が出ることもある。
310デフォルトの名無しさん:2010/08/07(土) 10:14:08
まあ、MemoryStreamが単純な配列実装だから、
バッファの拡張ではコピーが発生するというのはあるし、
サイズが大きくなるとOutOfMemoryExceptionが発生しやすかったりもする。
311デフォルトの名無しさん:2010/08/07(土) 10:14:19
お前は何を言ってるんだ
乱数なら試行を続けていれば連続で同じ数字が出て当たり前
312デフォルトの名無しさん:2010/08/07(土) 10:19:54
どういう意図でどれに突っ込んでるんだ…?
313デフォルトの名無しさん:2010/08/07(土) 10:21:47
MemoryStreamに向かない処理のために、固定長配列のリストで管理するような
メモリストリームを自作して使ったりすることもある。
314デフォルトの名無しさん:2010/08/07(土) 10:22:18
309だろ。
アンカー付けて喋れよ。
315デフォルトの名無しさん:2010/08/07(土) 10:37:41
>>311>>309に一体何を言いたいのかわからんな。
316デフォルトの名無しさん:2010/08/07(土) 10:56:28
コインの表裏を乱数としたとき、表の次が必ず裏では乱数になんないという話だよ。
317デフォルトの名無しさん:2010/08/07(土) 11:01:27
まぁそりゃあそうだね
318デフォルトの名無しさん:2010/08/07(土) 11:54:26
必ず表裏交互に出るなら確率はどこで切っても1/2だから
ばらつきに限って言えば優良な乱数ちうことな
319デフォルトの名無しさん:2010/08/07(土) 12:24:52
ばらつきに限れば

S(n+1)=(S(n)+1) mod 0x100000000

でもOKだな
320デフォルトの名無しさん:2010/08/07(土) 12:25:03
違う。毎回1/2で表裏が均等に事象が発生しなければ、過去の数列から予測
できてしまうため乱数ではない。

カウンティングできたら乱数として失格。
321デフォルトの名無しさん:2010/08/07(土) 12:27:53
線形合同法はカウンティングできますけどね
322デフォルトの名無しさん:2010/08/07(土) 12:37:52
だからこそ>>309
323デフォルトの名無しさん:2010/08/07(土) 12:37:59
やっぱモンテカルロ法最強屋根
324デフォルトの名無しさん:2010/08/07(土) 12:39:50
メルセンヌツイスタだってカウンティングできますけどね
325デフォルトの名無しさん:2010/08/07(土) 12:40:07
いい加減、最近習った事をここでギャーギャー語るのやめろよな
小学生かよ
326デフォルトの名無しさん:2010/08/07(土) 12:40:44
だからこそ>>309じゃね?
と書こうとした。
本当にそうなのかは想像なので確実じゃないけど、納得出来るから自分ならそうする。
327デフォルトの名無しさん:2010/08/07(土) 12:45:12
>>325
乱数の本でも読んで「俺ってばこんな本読んで頭良い!」ってやりたいんだろ
端から見れば滑稽なだけなのに気づいてもない
328デフォルトの名無しさん:2010/08/07(土) 13:00:19
とりあえず食い付きの良い餌のひとつであることは確認出来た
329デフォルトの名無しさん:2010/08/07(土) 13:05:21
>>327
正直、そういう僻みがましいタイプもかなり滑稽だぞw
自分が知らねえ、興味もねえことなら普通に無視して流せがいいのに、
自分の学力に自信がない僻み野郎に限ってノコノコでしゃばってきて、で
「俺のコンプレックスを刺激する奴って滑稽だよな(プ」とか言ってやがる。

滑稽なのはお前の方だろってw
330デフォルトの名無しさん:2010/08/07(土) 13:06:41
痛すぎワロタw
331デフォルトの名無しさん:2010/08/07(土) 13:07:30
乱数の話題に食いつかないなんて、どこのニワカだ。
332デフォルトの名無しさん:2010/08/07(土) 13:09:56
低学歴の乱数話
高学歴のマルチスレッド話
333デフォルトの名無しさん:2010/08/07(土) 13:11:19
むしろ逆。乱数は深いぞ。
334デフォルトの名無しさん:2010/08/07(土) 13:14:43
>>332
マルチスレッドというか並列計算は一部の人間しかついてこれなかったしなw
東大じゃ今は必須スキルなんだぜ
おっとこんな事言ったら俺の学歴がばれちまうなw
335デフォルトの名無しさん:2010/08/07(土) 13:15:35
F欄でしょ
336デフォルトの名無しさん:2010/08/07(土) 13:20:35
乱数が奥が深い?
馬鹿か
悪魔の証明を盾にあーだこーだ言ってるだけで実のない議論じゃねぇか
馬鹿学生の与太話は隔離スレでやれ
337デフォルトの名無しさん:2010/08/07(土) 14:08:37
線形合同法の弱点に気づきそこを突くカイジであった。
338デフォルトの名無しさん:2010/08/07(土) 15:21:34
C#で作ったDLL内のstatic変数は使用するアプリ毎に用意されるのでしょうか?
もしそうなら全てのアプリ共通にするにはどうすればよいのでしょうか?
339デフォルトの名無しさん:2010/08/07(土) 15:22:24
ファイルマッピングオブジェクトとかパイプに書き込んでおく
340デフォルトの名無しさん:2010/08/07(土) 16:02:42
じゃあアプリ毎なんですね。
必要なのはアプリ毎だったのでとりあえず安心しました。
ありがとう。
341デフォルトの名無しさん:2010/08/07(土) 16:32:30
リファレンス読んで分からなかったとしても、
それって試せばすぐ分かることじゃないのか

こんなところで質問する方がずっと面倒だと思うんだが....
342デフォルトの名無しさん:2010/08/07(土) 16:33:38
アプリ毎と言うよりはプロセス毎
多重起動させた同じアプリ間で共有するには>>339

一応誤解しないように補足
343デフォルトの名無しさん:2010/08/07(土) 16:34:38
>>341
質問スレや質問フォーラムはどこもそんな感じ
344デフォルトの名無しさん:2010/08/07(土) 16:52:24
どなたか>>215についてご存知ありませんか・・・?
345デフォルトの名無しさん:2010/08/07(土) 17:02:54
>>344
コンテキストメニューの当たり前の動作。
346デフォルトの名無しさん:2010/08/07(土) 17:12:08
>>215
正攻法じゃなくて対症療法なら知ってる。

VBには多重起動を禁止した上で、後から起動されようとした時に指定された
コマンドライン引数を横取りする仕組みがあるんだが、同じことがC#でも一応可能らしい。

多重起動禁止でもよいならこれで一応いけるのでは。

http://www.atmarkit.co.jp/fdotnet/dotnettips/663nextinstarg/nextinstarg.html
http://blogs.dion.ne.jp/anis7742/archives/6905607.html
347デフォルトの名無しさん:2010/08/07(土) 17:14:00
Silverlightでsqliteが使えるようだけど
これって全プラットフォームで使える物なのかな?
348デフォルトの名無しさん:2010/08/07(土) 17:22:24
csharp-sqliteベースなら使えるだろうけど
そう言ったら信用して使うの?w
まず自分で試せ
349デフォルトの名無しさん:2010/08/07(土) 17:26:33
>>348
信用するから聞いてるのさ
350デフォルトの名無しさん:2010/08/07(土) 19:48:39
>>344
多重起動禁止が出来ているなら答えは目の前にある
ヒント:プロセス間共有メモリ
351デフォルトの名無しさん:2010/08/07(土) 23:27:07
>>342
アプリケーションドメインごとじゃないのか
352デフォルトの名無しさん:2010/08/08(日) 00:24:55
>>344
質問だけしてトンズラとか、感じ悪い
353デフォルトの名無しさん:2010/08/08(日) 03:16:11
色々と回答ありがとうございます
今、出先なので帰ったらパイプでも使って実装してみますね
354デフォルトの名無しさん:2010/08/08(日) 21:24:57
C#では無いけど、例えば0以上なら0、0未満なら1もしくは-1にする
場合にifを使わないで計算で求めるにはどうすればよいでしょうか?
355デフォルトの名無しさん:2010/08/08(日) 21:26:57
caseつかえば?w
356デフォルトの名無しさん:2010/08/08(日) 21:28:16
C#でないならスレ違い。
357デフォルトの名無しさん:2010/08/08(日) 21:30:37
intなら unchecked((uint)x >> 31) とか
358デフォルトの名無しさん:2010/08/08(日) 21:31:00
やっぱりスレ違いですね。
こういう状況よくあるから制御文を使わないで計算だけで
済ませられないかと考えていました。
失礼しました。
359デフォルトの名無しさん:2010/08/08(日) 21:42:39
>>354
普通に比較をintにキャスト。
360デフォルトの名無しさん:2010/08/08(日) 21:48:56
質問の意図を誤解してなければmath.sign()がまんまではなくて?
361デフォルトの名無しさん:2010/08/08(日) 21:52:39
しかし、論理式で算術計算って大昔のインタープリターのBASICだな
362デフォルトの名無しさん:2010/08/08(日) 21:53:04
>>359
boolをintに直接キャストするには *(int*)(void*)&boolValue とする必要がある

>>360
Math.Signは0より大きい場合1だぞ
363デフォルトの名無しさん:2010/08/08(日) 21:55:10
>>362
1引いて2の商を取るだけでしょw
どんだけ知恵がないんだ
364デフォルトの名無しさん:2010/08/08(日) 21:57:02
まんまではないだろ
比較をメソッドに出してるだけだから答えになってないし
365デフォルトの名無しさん:2010/08/08(日) 21:59:01
>>364
C#は演算子を含め全ての操作はメソッドですw
366デフォルトの名無しさん:2010/08/08(日) 22:00:04
もしかしてInt32同士の加算がメソッドだと思ってるの?w
367デフォルトの名無しさん:2010/08/08(日) 22:02:34
>>366
確かに違うなw
すまんかった
368デフォルトの名無しさん:2010/08/09(月) 19:03:52
ちょっと質問というか疑問
List<T>コンストラクタにはIEnumerable<T>引数に取れる奴があるけども、
これでコピーされるのは参照だけ?
それともちゃんとTの複製が新たに作られるの?
369デフォルトの名無しさん:2010/08/09(月) 19:21:37
>>368
仮にTの複製を作ると仮定する。
TがIClonableを実装してなかったらどうするの?
そういうクラスのリストは作れません、ってか。

そんな不合理なことすると思います?
370デフォルトの名無しさん:2010/08/09(月) 20:00:57
>>368
ちょっと調子乗ったアホが高飛車に答えてしまったようですみませんなww
371デフォルトの名無しさん:2010/08/09(月) 20:03:04
ガキ臭。
馬鹿じゃないのか。
372デフォルトの名無しさん:2010/08/09(月) 20:07:04
3分で反応するってレスが帰ってくるの待ってたのか?暇人。
373デフォルトの名無しさん:2010/08/09(月) 20:08:15
不合理なことをすると思います?

っていう質問自体合理性を欠いてるんじゃあないのww
374デフォルトの名無しさん:2010/08/09(月) 20:08:58
仮定する。

面白いねーガキ臭いねー
馬 鹿 じ ゃ な い の
375デフォルトの名無しさん:2010/08/09(月) 20:09:49

  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーたはじまった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\
376デフォルトの名無しさん:2010/08/09(月) 20:36:11
テキストエディターを作ろうと思うんですが、よくキーワードに色つけてるじゃないですか?
あれってC#でも実現可能ですか?
でも、もしやるとしたら、リッチテキストとかではなく、
自分で直接描画とかそんな感じですかね?
377デフォルトの名無しさん:2010/08/09(月) 20:45:53
RichEditBoxでいいと思うけど、自力でやりたいならしたらいいさ。
378デフォルトの名無しさん:2010/08/10(火) 01:19:25
>>376
AzukiっていうC#で書かれたフリーのテキストエディタエンジンがあって
ソースも公開されているから、参考にしてみては?
379デフォルトの名無しさん:2010/08/10(火) 10:13:03
SharpDevelopのソースコードおすすめ
綺麗にコンポーネント分けされてて流用組み込みサンプルもたくさん付いててすばらしい
380デフォルトの名無しさん:2010/08/10(火) 10:33:07
だがGPL
381デフォルトの名無しさん:2010/08/10(火) 10:35:46
LGPLだからエディタのdllをそのまま使う分には本体には感染しない
ソースコード混ぜちゃダメ
382デフォルトの名無しさん:2010/08/10(火) 12:34:19
ライセンスなど無視してオーケー
文句言ってきたら「嫌ならソース公開すんなバーカ」と言えばヨシ
383デフォルトの名無しさん:2010/08/10(火) 12:43:36
まあ、自分で守るもんだからな。
384376:2010/08/10(火) 12:47:34
>>378
Azuki見てみました。API使って自分で描画してるみたいですね。
参考になりました。ありがとうがざいます。

>>379
これはすごいですね。
C#でここまでできますか!!
385デフォルトの名無しさん:2010/08/10(火) 12:58:54
VS2010だって大部分C#だぞ
386デフォルトの名無しさん:2010/08/10(火) 13:01:43
>>385 まじくそ?
387デフォルトの名無しさん:2010/08/10(火) 13:46:48
だいたいマネージコードなのは確かだよ
COM interopの化け物だけど
388デフォルトの名無しさん:2010/08/10(火) 21:16:52
>>386
マジもくそも、今 Windows 向けの GUI 書くならほとんど C#。
MS 製品もどんどん WPF 化されていってるし。
389デフォルトの名無しさん:2010/08/10(火) 21:54:42
病院いったら医者が使ってるアプリも(たぶん)WPFで書かれててびびったよ。
少なくともアイコンはVSデフォルトのへんなのだった。
390デフォルトの名無しさん:2010/08/10(火) 22:21:33
>>389
近所の病院ではVB6製のアプリが普通に動いている
391デフォルトの名無しさん:2010/08/10(火) 23:31:27
それは別に不思議じゃない
392デフォルトの名無しさん:2010/08/11(水) 01:20:55
VB6はWindows 7でも大丈夫らしいし。
393デフォルトの名無しさん:2010/08/11(水) 02:32:13
今、病院用のアプリをWPFで作ってる最中だぜ?
394デフォルトの名無しさん:2010/08/11(水) 09:20:42
WPFって使いづらくない?
スプリッタが使いづらいというかどういう風にやれば
Formの物と同じ使い方ができるかわからない

参考サイトないですか?
395デフォルトの名無しさん:2010/08/11(水) 09:42:57
見た目だけ作るなら使づらくはないと思うけど、それとロジックの連携がやりにくい
396デフォルトの名無しさん:2010/08/11(水) 10:20:13
なれるとWinFormでやるのがばからしくなるよ
凄く楽が出来る
397デフォルトの名無しさん:2010/08/11(水) 11:17:19
バインディングがすごく便利だけど、Windowsフォームで簡単に出来てたことが、WPFだと物凄くめんどくさいこともある
ほんと一長一短
俺はWindowsフォームアプリに一部WPFコントロールを貼り付けてる
398デフォルトの名無しさん:2010/08/11(水) 13:08:58
WPFで縦方向にスプリッタおいて
左にリスト、右にリッチテキスト置きたいだけなのにやり方が分かりません
両方ともスプリッタにドッキングさせて左を固定パネルにしたいです

なぜかグリッドスプリッタが長方形になって困っています
399デフォルトの名無しさん:2010/08/11(水) 22:49:15
グリッドを2列にしてリストとスプリッタとリッチテキストを配置すればいいだけのことだと思うが。
400デフォルトの名無しさん:2010/08/11(水) 22:57:14
たぶん>>398はGridSplitterの分もカラム確保してるだろ
リストと一緒のカラムにスプリッタ置け
401デフォルトの名無しさん:2010/08/12(木) 09:25:49
C#ってポインタないの?
402デフォルトの名無しさん:2010/08/12(木) 09:29:01
unsafeとかIntPtrにポインタ入れる場合もある
403デフォルトの名無しさん:2010/08/12(木) 10:04:46
tesu
404デフォルトの名無しさん:2010/08/12(木) 10:17:02
>>401
>>402 の言う方法で使えなくはないけど、ポインター使う場面ほとんどないよ。
ポインターの代わりになる機能がそろってる。
405デフォルトの名無しさん:2010/08/12(木) 21:46:01
Borland C++ Compilerを入手しようとしたんですが
いつの間にか登録必須になってました
できることなら登録せずにコンパイラを入手したいのですが
ミラーとかありますかね?検索してもなかなかヒットしなくて・・・
406デフォルトの名無しさん:2010/08/12(木) 21:49:35
>>404
ポインタは高速化したいときぐらいかな。
407デフォルトの名無しさん:2010/08/12(木) 21:54:25
>>405
ここはC#スレなんで、スレ違いです。
408デフォルトの名無しさん:2010/08/12(木) 22:04:41
BorlandがC#のネイティブコンパイラを出してるのかと思った
409デフォルトの名無しさん:2010/08/12(木) 22:07:04
昔C#Builderだかって出してなかったっけ?
410デフォルトの名無しさん:2010/08/12(木) 22:44:55
>>407
失礼
ガチで間違えました
411デフォルトの名無しさん:2010/08/12(木) 22:45:54
.NetFramework2.0のHttpWebRequestでGetResponseした際に以下のエラーが出るようになりました。

>基礎になる接続が閉じられました: 送信時に、予期しないエラーが発生しました。

どうにも本日適用されたWindowsUpdateが原因のようです。
WindowsUpdateを自動更新にしている自分のPCや友人の環境でも出ていますが、
WindowsUpdateを手動更新にしていてまだ更新を実行していないPCではエラーが発生しませんでした。
解決策をご存知の方がいらっしゃったらご教示いただけないでしょうか?
よろしくお願いします。


HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
WebResponse res = req.GetResponse();
412デフォルトの名無しさん:2010/08/12(木) 22:58:43
>>409
あったなー
ネイティブじゃないけど
413411:2010/08/12(木) 23:05:37
追記です。
プログラムの追加と削除からKB980436を削除したら>>411のエラーは出なくなりました。
しかし使ってる人全てにこれを削除してもらうわけにもいきません。
どなたか回避策をご存知ありませんでしょうか?
414デフォルトの名無しさん:2010/08/12(木) 23:13:18
SSLでやり取りをいい加減に処理してる部分(笑)を修正するプログラムのようだが…
415411:2010/08/12(木) 23:30:22
レスありがとうございます。
いくつか試してみたところ、特定のサイトのhttps通信のみでエラーが出るようです。
具体的にちょっと出してしまいますが

http://www.pangya.jp/
https://www.pangya.jp/
http://www.gamecity.ne.jp/
×https://www.gamecity.ne.jp/nolatweb/

一番下のサイトでだけ発生するみたいです。
ブラウザでは普通に表示できるのですが。
416デフォルトの名無しさん:2010/08/12(木) 23:34:27
ウィンドウメッセージを処理するプログラムを作成することになりました。
WM_PAINTやらWM_CREATEやらのメッセージIDが定義されているクラスライブラリがあれば使いたいのですが、
こういう場合、皆さんはどうされてます?&存在している場合はリンクを教えて頂きたいです。
417411: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();
418デフォルトの名無しさん:2010/08/12(木) 23:42:56
cのヘッダに正規表現で置き換えでも施せばいいんじゃあないでしょうか
419デフォルトの名無しさん:2010/08/12(木) 23:48:06
と思ったらpinvoke.netにあるね
これでいいんじゃあないでしょうか
420デフォルトの名無しさん:2010/08/13(金) 00:06:25
>>416
NativeMethods.cs
SafeNativeMethods.cs
UnsafeNativeMethods.cs
421416:2010/08/13(金) 00:44:48
>>419-420
書き込みありがとうございます。

>>419氏のpinvoke.netに、wmメッセージの変換コードがあったので、これを使いたいと思います。
ttp://www.pinvoke.net/default.aspx/Constants/WM.html

>>420氏のファイル名は検索してみたのですが、イマイチよく分かりませんでした・・・。
大抵は、そのようなクラス名のファイルに、ラッパー用のコードを書くという感じなのかな?という認識でいてますが

どうも有り難うございました。
422デフォルトの名無しさん:2010/08/14(土) 08:59:50
VS2008 C#でExcel2003上のCheckBoxの値(真・偽)はどうやって
取得できるのでしょうか?
御存じの方、お教え下さい。
423デフォルトの名無しさん:2010/08/14(土) 09:34:40
オートメーション
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"
のエラーが出てしまうのですが。
426デフォルトの名無しさん:2010/08/14(土) 11:16:11
エラーメッセージ見て、何すればいいんだかわかんないやつは、
初心者スレ行けよ。
427デフォルトの名無しさん:2010/08/14(土) 11:40:18
変数宣言する時にvar って何で使うのですか

可読性か著しく低いんですけど
428デフォルトの名無しさん:2010/08/14(土) 11:43:32
>>427
べつに低くはないだろ。
429デフォルトの名無しさん:2010/08/14(土) 11:43:53
LINQのクエリ保持する変数とか、引数の多いラムダ使う時に型を書きたくないから
430デフォルトの名無しさん:2010/08/14(土) 11:45:38
さらに匿名クラスは明示的に型を書くことすらできない
431デフォルトの名無しさん:2010/08/14(土) 11:46:48
もちろん使う必要がないのに無理に使う必要はない
432デフォルトの名無しさん:2010/08/14(土) 11:47:13
>>427

現在のソースコードは、普通のテキストエディタや、紙に印刷して読む時代ではありません。
読みたければVisual Studioをインストールしましょう。
433デフォルトの名無しさん:2010/08/14(土) 11:48:02
var hoge = "moge";

とか使うやつは、単なる馬鹿。
434デフォルトの名無しさん:2010/08/14(土) 11:50:08
>>433
やるだろ、普通に。
435デフォルトの名無しさん:2010/08/14(土) 11:51:01
型宣言のない動的型の言語で、型宣言のないのが欠点って言われることは
ないし、型推論のある言語はむしろそれが売りみたいに言われてるしな。

でもC#でvar使うと、そんなの知らないオッサンとか苦情言ってきて
コーディングルールで使用禁止とかされるのが目に見えるようだ。
436デフォルトの名無しさん:2010/08/14(土) 13:11:17
>>434
やらねーよ
437デフォルトの名無しさん:2010/08/14(土) 13:14:34
>>435
>型宣言のない動的型の言語で、型宣言のないのが欠点って言われることはないし
それはないw

っていうか君もそんなこと言ってるようじゃ、君自身が「そんなの知らないと苦情言うオッサン」
の仲間なんじゃないのか。
438デフォルトの名無しさん:2010/08/14(土) 13:26:00
>>437
言われないね。

動的型の言語で型宣言を追加したのって、センスないPHPくらいじゃないか。
ほかの言語は、そんなことまったく話題にならない。
439デフォルトの名無しさん:2010/08/14(土) 13:29:40
動的言語の欠点というよりは、それがために動的言語を採用できないプロジェクトがある
440デフォルトの名無しさん:2010/08/14(土) 13:31:15
var hoge = "moge";
var hage = 1;
とか、普通にやるね。
型を一々書くのが読みやすさにつながる思っていた時もありました。
実際にvarで徹底してみると、別に読みやすさに変わらない、
むしろ視覚上スッキリするので読みやすくなったと思った。

ScalaとかF#は全部型推論でやってるわけだし、
動的言語はもちろん型宣言なんてないわけだしねー。
441デフォルトの名無しさん:2010/08/14(土) 13:32:17
もう>>427の質問は解決しているのだから
しょうもない話を続けるの止めてくれないか?オッサン方
442デフォルトの名無しさん:2010/08/14(土) 13:35:16
結論は「好きなの使え」だな。
443デフォルトの名無しさん:2010/08/14(土) 13:37:46
>>438

 - 今更言っても仕方がない

 - そもそも型の区別を機械に頼らなければならなほど複雑なコードが従来
  書かれなかった。

というだけでしょ。
問題がないのではなく、問題が顕在化するような使い方がされない(あるいは
>>439が言うように「できない」)だけ。


>>441
お前さんの話がいちばん「しょうもない」
下らない奴だな
444デフォルトの名無しさん:2010/08/14(土) 13:40:27
意地になって話続けようとする奴の方が下らないと思うがな…。
現実でもそんな性格してるの?
445デフォルトの名無しさん:2010/08/14(土) 13:41:06
もちろん
プログラマは陰険だからな
446デフォルトの名無しさん:2010/08/14(土) 13:41:55
型推論さいこうやな。
動的型のような手軽さと、静的型の堅さを両方かねそなえてる。
447デフォルトの名無しさん:2010/08/14(土) 13:42:26
さて、死ぬまでこの話を続けようか
448デフォルトの名無しさん:2010/08/14(土) 13:44:39
条件演算子とかもいまだに、わかりにくいから使用禁止って言ってる
おっさんがうじゃうじゃいるから、C#の型推論も使うなっていうやつ
いなくならないだろな。
449デフォルトの名無しさん:2010/08/14(土) 13:49:26
インデントしろよ!!!!!!!!!!!!!!!!!!!!!!1111111111111111
450デフォルトの名無しさん:2010/08/14(土) 14:03:46
>>448
if(a==2)
{
a=3;
}
else if(a<2)
{
a=5;
}
else
{
a=7;
}
とか書くわけか
読みたくねぇ
451デフォルトの名無しさん:2010/08/14(土) 16:01:23
>>450
ガード句の名のもとに

void Hoge(
string arg1,
int arg2)
{
if(arg1 == null)
{
throw Exception
}
if(arg1.length == 0)
{
throw Excpetion
}
if(arg2 == 0)
{
throw Exception
}
if( // こんなのがいっぱい続いてる)

// 実際の処理はたったの一行
}

とかいう書き方する人がいて大変困ってたり。
コードが横に伸びるのを気にするくせに、縦に無駄に長いのは全く気にしない謎。
452デフォルトの名無しさん:2010/08/14(土) 16:02:16
>>450
それ条件演算子使って試しに書いてみな。
453デフォルトの名無しさん:2010/08/14(土) 16:06:02
varも条件演算子も、あるから常に使うのではなく、必要に応じて使うのが正しい。
454デフォルトの名無しさん:2010/08/14(土) 23:53:56
うんうん。
無理やり全部三項演算子使うのは馬鹿だと思うけど
絶対使うなってのも同じぐらい馬鹿だと思う。

var は初期化がセットになってない場合はなんだかわからんからキモいなあ。
455デフォルトの名無しさん:2010/08/15(日) 00:21:18
varって初期化と同時にしか使えなくね
456デフォルトの名無しさん:2010/08/15(日) 00:28:52
>>455
俺も思った。
457デフォルトの名無しさん:2010/08/15(日) 00:38:14
他の言語を含めてるのならきっとその限りではないが
まぁどうでもいいね…
458デフォルトの名無しさん:2010/08/15(日) 03:48:19
varが使えるところはすべてvarにした方がいい。
少なくともお前らより頭の良い人間がこれを実装したのだからな。
459デフォルトの名無しさん:2010/08/15(日) 04:15:27
読む人間はボクより馬鹿の可能性もあります
460デフォルトの名無しさん:2010/08/15(日) 04:23:26
馬鹿に合わせてコード書いてどうすんだ
461デフォルトの名無しさん:2010/08/15(日) 08:46:02
実装者のレベルに合わせてコード書くのは当たり前だろう。
本当にvar化ばっかりだな。
462デフォルトの名無しさん:2010/08/15(日) 09:08:28
463デフォルトの名無しさん:2010/08/15(日) 10:47:54
コーディングスタイルの問題で「お前の書き方ダサいよ」って言われた
やつって「ヘタクソにあわせて書いてるんだよ」
「下手には有効なスタイルなんだよ」みたいにいいわけをはじめるよな。

コーディングスタイルに上級者用、ヘタクソ用なんてないよ。

464デフォルトの名無しさん:2010/08/15(日) 10:50:57
いやあるだろ。
465デフォルトの名無しさん:2010/08/15(日) 10:55:13
>>463
君の場合は日本語のスタイルも見直した方がよさそうだな。
日本語が文字通りcodeになってるw
466デフォルトの名無しさん:2010/08/15(日) 10:58:33
fjの昔から、反論できないと日本語がおかしいとかいうやついたけど、
「おまえ日本語おかしい」だけしか言えないやつって、逆に頭悪そう。
467デフォルトの名無しさん:2010/08/15(日) 11:00:39
>>464
ないよ。
上級者→高度なわかりにくいコード
とか思ってる?

実際は上級者のほうが読みやすさに対して気をつかってるよな。
468デフォルトの名無しさん:2010/08/15(日) 11:02:13
>>466
反論、か。
素敵な幸せ回路をお持ちだな
469デフォルトの名無しさん:2010/08/15(日) 11:09:19
まあ、本題に触れなくて相手の人格攻撃に終始してるやつは
負けを認めてるも同然ですね。
470デフォルトの名無しさん:2010/08/15(日) 11:15:46
varーカ
471デフォルトの名無しさん:2010/08/15(日) 11:16:17
>>467
なんか違う話になってる。

高度でわかりにくいコードがあったとして、
上級者は理解できる、初心者は理解できない、とすると、
初心者にあわせて、「高度でわかりにくいコード」を禁止する、
というのは当然の話。
472デフォルトの名無しさん:2010/08/15(日) 11:19:31
それは上級者にしか分からない複雑な高度なコードを
どう初心者に分かりやすく書くかという話であって
ダサいとか綺麗とか言うのとは別の話
473デフォルトの名無しさん:2010/08/15(日) 11:21:11
>>471
「なんか違う話」をしてるのは君じゃないの?
>>463の"code"は「コーディングスタイル」の話じゃないのか
まあcodeだから違うのかもしれんがw
474デフォルトの名無しさん:2010/08/15(日) 12:00:20
>>467
あるよ。
コーディング規約に限らず、全ての物事に対応できる万全のものはない。
こう言う本質的なことを理解できないやつが多いな。
例えば、全員天才のプロジェクトだったら、
「コーディング規約を作らないのがコーディング規約」でもいいんだよ。
475デフォルトの名無しさん:2010/08/15(日) 13:30:00
上級者ほど読みやすさに気をつかってるんだよ!
→ラムダ式分からねーよ、デリゲート分からねーよ
→書き直せ
→forとifでダラダラと…… これ読みやすいのかね(初心者でも読めるのは確かだけど)

ということになったことがあるので、「読みやすさ」と漠然と言われても、
どこまでの初心者を指して合わせるべきなのか困るところではある。
デリゲートぐらいは、初心者を楯にしてないで勉強してくれ、と思った。
476デフォルトの名無しさん:2010/08/15(日) 13:43:12
夏なのに このスレだけ寒いなぁ
477459:2010/08/15(日) 13:52:13
>>475
おめーさん理想と現実のギャップに悩むタイプだな
人間が全員勤勉で誠実だったらいいよね
478デフォルトの名無しさん:2010/08/15(日) 13:59:02
>上級者ほど読みやすさに気をつかってるんだよ!

その読みやすさの感覚が普遍じゃないから規則があるんだよ。
規則以外の事書くなよって言うのと同時に、規則程度のことは覚えろやって言ってるんだよ。
そんなことも分からん時点で上級者じゃねーだろ。
下っ端じゃなくなってちょっと調子に乗り始めた馬鹿コーダーだ。
479デフォルトの名無しさん:2010/08/15(日) 14:07:59
なにこの小学生の煽り合いみたいな流れwww
480デフォルトの名無しさん:2010/08/15(日) 14:09:29
小学生みたいだけど、じつはイイ年したオッサンなんだよ
481デフォルトの名無しさん:2010/08/15(日) 14:27:02
Dictionary ジェネリッククラスで
値を元にキーを調べるのは
keyvaluepair を取り出して一つ一つ調べるしかないのかな
482デフォルトの名無しさん:2010/08/15(日) 14:28:43
Valueの重複はOKな以上そうじゃないの
483デフォルトの名無しさん:2010/08/15(日) 14:29:16
>>481
Dictionaryを2つ使ってどちらからも引けるクラスを作ってる
484デフォルトの名無しさん:2010/08/15(日) 14:35:51
>>483
あぁ、なるほど。そういう手もありますね。
485デフォルトの名無しさん:2010/08/15(日) 15:49:44
>>475
そういう時って、自分が分かってないくせに「読めないやつがいるから」って
他人事みたいにいうのな。

だめなヤツって表面的な理解しかできてないのにサンプルやらテンプレートを
あてがっておけば、それなりにコード書いちゃうから、逆に考えたら多少高度
なコードでも(そこらあたりのレベルで)適応できるはずだから、そんな気遣い
しなくていいのにな。
486デフォルトの名無しさん:2010/08/15(日) 15:51:57
ラムダ式に使いどころはよくわからないな
現状仕方なく使ってることの方が多い
487デフォルトの名無しさん:2010/08/15(日) 15:52:28
488デフォルトの名無しさん:2010/08/15(日) 15:57:08
厳密に言えばラムダでなければならない理由はないからね。
でもラムダのほうが楽じゃない?
489デフォルトの名無しさん:2010/08/15(日) 16:14:30
Javaもクロージャで揉めてることだしそれは確かだろう
490デフォルトの名無しさん:2010/08/15(日) 16:24:14
>>488
ラムダは遅延実行させるのが目的だから、上から下への実行順序の常識を覆すのが初めて使う人が面食らうんじゃないかな。
使い始めるとすごい便利なんだけどな。
491デフォルトの名無しさん:2010/08/15(日) 17:09:50
遅延実行は特性であって目的じゃないよね?
492デフォルトの名無しさん:2010/08/15(日) 17:35:47
今までエクセルで扱ってたデータをC#で扱いたいんですが、
データセットってどの程度の値の保持まで使えるんでしょうか。
具体的には5行10000列3シート分のデータを保持して色々加工できるようにしたいのですが、
この場合データセットに一括保持っていう考え方は一般的ですか。
493デフォルトの名無しさん:2010/08/15(日) 17:39:04
DBでするのが一般的です。
494デフォルトの名無しさん:2010/08/15(日) 17:41:43
何でもいいが行と列を逆に呼んでねえか
行が横だぞ
495デフォルトの名無しさん:2010/08/15(日) 17:45:33
俺もたまに迷う。
496デフォルトの名無しさん:2010/08/15(日) 18:01:49
普通はSqlServerCompact使うわな
497492:2010/08/15(日) 18:13:00
行列逆でした。
>>493
Visual Studio使ってるんですが、SQLサーバとか外部でDB作って、
それにC#で接続して加工するってことですか?
498デフォルトの名無しさん:2010/08/15(日) 18:30:36
そう。
Excelで使ってたデータがどんなのかは知らないけど、ちゃんと正規化するようにね。
499492:2010/08/15(日) 18:47:05
>>498
わかりました。色々とありがとうございました。
500デフォルトの名無しさん:2010/08/15(日) 19:25:49
10000行6列程度なら
楽勝だったと思う。
501492:2010/08/15(日) 20:33:49
>>500
そうなんですか。
ただ、3シート分あるので3倍はつらいですかね。

なるべくなら単純なのがいいので、データセットで作ってみて、
重かったら、DBを利用して組んでみたいと思います。
502デフォルトの名無しさん:2010/08/15(日) 20:36:15
配列じゃダメなん?
503デフォルトの名無しさん:2010/08/15(日) 20:40:07
あのさー。データセットでやったとして、永続化はどうすんの?
504デフォルトの名無しさん:2010/08/15(日) 21:13:36
データセットならXMLが楽だろ
505デフォルトの名無しさん:2010/08/16(月) 00:17:53
csvで運用だろ
506デフォルトの名無しさん:2010/08/16(月) 01:56:11
>>426
お前がバカ
>"HRESULT からの例外: 0x800A03EC"
これで原因が分かるやつはいない。
507デフォルトの名無しさん:2010/08/16(月) 05:54:29
それで何をすればいいんだかわからないなら、あきらめろよ。
508デフォルトの名無しさん:2010/08/16(月) 12:43:45
0x800A03ECでぐぐればいくつもヒットする。
これはマクロやオートメーションで何にでも現れる実行時エラー(1004エラー)で、
エラーコード以外に付加情報がテキストで返されている。
そのテキストの情報も〜の操作が失敗しました〜程度の情報で
あまり役に立たないことがほとんど。

この辺までたどれたならいいんじゃないか。
509デフォルトの名無しさん:2010/08/16(月) 16:09:24
ShiftJISで質問
Encoding.GetEncoding("shift_jis")でEncoding取得して、
1〜0xfffeまでGetString()で回して重複除くと9417文字
JIS X 213は11223文字なので1800文字ちょい足りない
この足りない分は自前でなんとかするしかない?
510デフォルトの名無しさん:2010/08/16(月) 20:10:36
0213じゃなくて、0208ベースだろ?
511デフォルトの名無しさん:2010/08/16(月) 23:22:16
>>509
文字数だけでカウントしてるけど、それ外字とかも含んじゃってない?

JIS第三水準第四水準(6000文字ぐらい)− IBM拡張文字(500文字ぐらい) = 5500文字ぐらい

になると思うんだけど。
512デフォルトの名無しさん:2010/08/17(火) 05:52:30
>>509
サロゲーションペアとかも入れなきゃ。
半角カナとか全角記号とかって確か、FFFEまでの範囲に入ってない。
513デフォルトの名無しさん:2010/08/17(火) 05:55:43
SJISにサロゲートペア?
514デフォルトの名無しさん:2010/08/17(火) 08:06:55
あー、GetByte の方と勘違いしてた。
515デフォルトの名無しさん:2010/08/17(火) 09:18:24
>>512
全角英数はU+FF01〜U+FF5Eあたり。
半角カナはU+FF61〜U+FF9Fあたり。
http://unicode.org/charts/PDF/UFF00.pdf
516デフォルトの名無しさん:2010/08/17(火) 12:25:42
>>510
JIS X 0213はシフトJISにもマッピングされたハズ
Encoding的には丸ごと違う領域に行かされたかも

>>511
Winはかなり初期からNEC拡張外字をデフォルトで持っている
NEC外字はIBM外字を含む
517デフォルトの名無しさん:2010/08/17(火) 13:37:46
>>516
>>511の言ってる外字ってのはSJISで0xF040〜0xF9FCまで、
UnicodeにするとPUAのU+E000〜U+E757に変換される部分だろ。

それと、文字集合としてはIBM拡張文字⊃NEC選定IBM拡張文字だから
NEC外字はIBM外字を含む、は間違い。
518デフォルトの名無しさん:2010/08/17(火) 13:54:41
C#5.0はどんな感じになりますか
519デフォルトの名無しさん:2010/08/17(火) 13:57:22
超!エキサイティイイイイイイイイイイイイイイイイイン!!
な漢字
520デフォルトの名無しさん:2010/08/17(火) 14:05:47
>>516
Shift_JIS-2004とかShift_JISX0213とかの事だろうけどWindowsではサポートしてない。
cp932と互換性ないから無駄な混乱引き起こすし。

誰かが作ったコンバータ拾ってくるか自前でやるしかない。
521509:2010/08/17(火) 16:42:16
色々ありがとう
結局自作しか無いか
522デフォルトの名無しさん:2010/08/17(火) 17:07:54
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;
つけてみたんだがこれで合ってますか。
523デフォルトの名無しさん:2010/08/17(火) 17:25:53
// 生成された XmlDocument を取得
XmlDocument convertedXmlDocument = converter.ToXmlDocument();

これじゃダメなの?
524デフォルトの名無しさん:2010/08/17(火) 17:35:33
>>523
それでやるとライブラリー内でArgumentExceptionが例外投げて止まってしまいます。
自分が悪いのか例文が悪いのかライブラリーがおかしいのかさっぱりです。
525デフォルトの名無しさん:2010/08/17(火) 17:38:11
ライブラリーがおかしいんだと思うわ
526デフォルトの名無しさん:2010/08/17(火) 17:42:51
もっとシンプルなサイトなりテキスト指定してみては
527デフォルトの名無しさん:2010/08/17(火) 17:46:29
HTMLをXMLへ変換する他の方法を提示してあげた方が解決が早そうだね
528デフォルトの名無しさん:2010/08/17(火) 17:47:47
ちょっとやってみたけど、codezine.jp以外ならほぼ動くなw
529デフォルトの名無しさん:2010/08/17(火) 17:49:04
なんじゃそら
530デフォルトの名無しさん:2010/08/17(火) 17:49:34
cssに弱い、事前に省けるのだろうか
531デフォルトの名無しさん:2010/08/17(火) 17:52:36
>>525
そうなんですかね。
CodeZineの記事になってるので自分の使い方が悪いんだと思ってました。

>>526
そうですね。ちょっと試してみます。
532522:2010/08/17(火) 18:11:20
複数のサイト試してみたら、変換出来るサイトと出来ないサイトがありました。

残念ながら自分の変換したいサイトは無理でした。
加工して使うか、別のライブラリ探してみます。
みなさん相談ありがとうございました。

ちなみにHTMLからXMLへ変換するライブラリで他に知っている人いますか。
533デフォルトの名無しさん:2010/08/17(火) 18:18:40
MS製のパーサが無かったっけ
InfoPathだかの…

まぁ自分は長年の付き合いでtidy使ってますが・・・
534デフォルトの名無しさん:2010/08/17(火) 18:51:43
zipファイル扱えるライブラリでおすすめはなんでしょう?
DotNetZipは日本語ファイル名で更新かけると書庫がブチ壊れるので除外で
535デフォルトの名無しさん:2010/08/17(火) 19:03:08
zipなんて大したフォーマットじゃありませんし手書きはどうですか
536デフォルトの名無しさん:2010/08/17(火) 19:05:53
一時的に日本語ファイル名から英米語ファイル名に変えればいいじゃないいいじゃない
537デフォルトの名無しさん:2010/08/17(火) 19:20:27
538デフォルトの名無しさん:2010/08/17(火) 19:37:12
>>518
今出てる情報だけだと何とも。

http://ufcpp.spaces.live.com/blog/cns!5C622397E11C979D!1127.entry
Compiler as a Service やるけどまだもうちょっとかかる
要望こんなの出てるけど、追加するかどうかは未決定
539デフォルトの名無しさん:2010/08/17(火) 20:19:59
>>538
Compilerが自作できるみたいな感じですかねすごいですね
ありがとうございます
540デフォルトの名無しさん:2010/08/17(火) 20:28:06
>>538
名前からすると拡張子csダブルクリックでコンパイルされて直接実行できるようになるとかw
541デフォルトの名無しさん:2010/08/17(火) 20:39:16
PowerShellがあまり良い感じじゃないから代わりにしたい
542デフォルトの名無しさん:2010/08/17(火) 22:02:14
>>540
新しいセキュリティーホールだぞそれ。
543デフォルトの名無しさん:2010/08/17(火) 22:07:58
csコンパイルして実行するだけなら今でも出来るやん
544デフォルトの名無しさん:2010/08/17(火) 22:10:32
>>542
具体的にどこら辺がセキュリティホールなの?
545デフォルトの名無しさん:2010/08/17(火) 22:29:21
>>539
C# とか VB のコンパイラーをとりあえず .NET 実装して、
内部的なデータとかまで含めてライブラリとして参照できるようにするとか。

>>541
コマンド呼び出すなら PowerShell 楽だけどもね。
スクリプト言語として使うといまいち・・・

>>543
cs ファイルのダブルクリックで直接実行ってことでしょ。

>>544
信頼されてないプログラムを意図せず実行しちゃう可能性上がるしね。
PowerShell もデフォルトでは書名のない ps1 ファイル実行できないし、
ファイルをダブルクリックするだけでは実行されないし。
546デフォルトの名無しさん:2010/08/17(火) 22:41:40
>>545
デフォルトの権限を適切にすれば、スクリプト言語と同じように使えるだろ。
547デフォルトの名無しさん:2010/08/17(火) 22:52:25
>>546
csダブルクリックで出来るん?おせーておせーて
548デフォルトの名無しさん:2010/08/17(火) 23:10:46
>>547
できるようにするのはプログラミングのたしなみがあるなら簡単だろ。
549デフォルトの名無しさん:2010/08/17(火) 23:39:17
ダブルクリックでコンパイルして実行なんて
要はファイルの関連づけでしょ。
インターネットでファイルダウンロードさせて
「開く」で開いたら「実行」されちゃうんだぜ。
550デフォルトの名無しさん:2010/08/17(火) 23:45:55
>>546
「できる・できない」と「する・しない」は別問題だろ。
PowerShell の厳しさ考えるに、するかどうかといわれるとしないんじゃね。
まあ、そこまで需要あるかがまずあやしいし<ソース配布・即実行。
551デフォルトの名無しさん:2010/08/18(水) 07:16:07
>>549
各種スクリプト言語やexeでそれができているのが問題ないなら問題ない。
問題あると思っているなら、現状に問題がある。
552デフォルトの名無しさん:2010/08/18(水) 11:48:00
セキュリティホールになりうるよ

exeだったら危ないかなと思って考えて実行するだろうけど
csファイルやvbファイルは気が緩む

一般人はCSファイルなんて知らないだろ?
553デフォルトの名無しさん:2010/08/18(水) 13:05:24
危惧していることは理解できるが
それをセキュリティホールとは言わねえだろ
554532:2010/08/18(水) 13:30:20
>>537
最近似たような質問あったのか。調べ足りませんでした。

SgmlReader使う方法で出来そうです。
教えてくれてありがとうございました。
555デフォルトの名無しさん:2010/08/18(水) 13:41:55
ヒューマンミスが一番怖い
556デフォルトの名無しさん:2010/08/18(水) 15:19:34
>>555
ヒューマンエラーは知ってるけど、ヒューマンミスは初めて聞いたわ。
また一つ知識が増えた。 さんくす。
557デフォルトの名無しさん:2010/08/18(水) 15:25:14
ミスが怖いのはもちろんだけど
だからと言ってミスが無くなることは「絶対に」ない

●ミスを出来るだけ起こさない仕組み
●もしミスが起こっても問題を最小限に食い止める仕組み
が必要
558デフォルトの名無しさん:2010/08/18(水) 22:15:22
>>553
セキュリティリスクだね。
559デフォルトの名無しさん:2010/08/19(木) 03:09:38
セキュリティホール

ヒューマンミス

わろす
560デフォルトの名無しさん:2010/08/19(木) 03:51:15
どんなバカでも誤動作しないのがいいソフト
例えば間違えて(注:1発だけなら誤射)うっかり核スイッチを
押しても発射されないのがいいソフト
561デフォルトの名無しさん:2010/08/19(木) 04:35:36
いまどきのスクリプト言語の実装はJITが入っていたりするので、csをスクリプト言語として使用するのと大して変わらない。
562デフォルトの名無しさん:2010/08/19(木) 07:08:50
スレ違いかもしれませんがDOMについて教えてください。
selectNodes("/hoge/fuga")
とすると複数の"fuga"ノードが返ってきますが
それを2個目の"fuga"ノードを取得するというのはどうすればいいでしょうか?
selectNodes("/hoge/fuga[2]")
こんな感じでできるとうれしいのですが。
563デフォルトの名無しさん:2010/08/19(木) 07:59:44
selectNodes("/hoge/fuga")[1]
564デフォルトの名無しさん:2010/08/19(木) 08:16:13
>>563
後出しですみません。
xpathのところで指定したいわけがありまして。
やはり無理ですかね。
565デフォルトの名無しさん:2010/08/19(木) 08:29:47
SelectSingleNode("/hoge/fuga[2]")
566デフォルトの名無しさん:2010/08/19(木) 08:38:54
>>565
できました。さんくす。
567デフォルトの名無しさん:2010/08/19(木) 15:57:49
DataGridView.CellPaintingイベントのDataGridViewCellPaintingEventArgs.CellBounds
と同じ値をDataGridViewを使って取得したいのですがどうすればよいのでしょうか?
DataGridViewCellのGetContentBoundsでは同じ値にならないようでした。
568567: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); //違う
}
569デフォルトの名無しさん:2010/08/20(金) 22:25:39
570デフォルトの名無しさん:2010/08/20(金) 22:33:41
みづれぇw
ぶん殴っていいよな
571デフォルトの名無しさん:2010/08/20(金) 22:33:44
だって川俣だしw
572デフォルトの名無しさん:2010/08/20(金) 22:57:01
>>569-571
趣旨を考えろよ。
馬鹿なのか?
573デフォルトの名無しさん:2010/08/20(金) 23:02:16
川俣おつw
574デフォルトの名無しさん:2010/08/20(金) 23:15:24
趣旨を明確に示すにふさわしいコードを書くべきだよねw
575デフォルトの名無しさん:2010/08/20(金) 23:40:07
これを馬鹿にしているのは馬鹿
576デフォルトの名無しさん:2010/08/20(金) 23:41:05
よぉバーカ
577デフォルトの名無しさん:2010/08/20(金) 23:44:13
DataGridViewの1つのセルにチェックボックス+文字を表示させる事は可能ですか?
578デフォルトの名無しさん:2010/08/20(金) 23:47:56
{
だけで一行潰しちゃうひとって
579デフォルトの名無しさん:2010/08/20(金) 23:49:56
>>578
GNUに喧嘩を売っているのか?
580デフォルトの名無しさん:2010/08/20(金) 23:54:42
まずParallel.InvokeとConsole.WriteLineの間に行間を空けて欲しいのだが
何をベーマガみたいな紙面節約してんの
581デフォルトの名無しさん:2010/08/20(金) 23:56:56
>>579
はぇ?
582デフォルトの名無しさん:2010/08/21(土) 03:41:22
改行なしbrace推奨なんてJavaぐらいだろ
583デフォルトの名無しさん:2010/08/21(土) 06:42:12
>>581
字下げスタイルでWikipedia引けばわかる。
584デフォルトの名無しさん:2010/08/21(土) 09:30:14
普通の配列処理にしとけばいいのに
585デフォルトの名無しさん:2010/08/21(土) 09:33:39
共有変数とロック用オブジェクトを渡したり
1024×1024の黒を数えるのに8秒もかかったり
わざわざ違和感ありそうなことをしてるな
586デフォルトの名無しさん:2010/08/21(土) 09:36:57
最初の2つなんてファイルキャッシュの差も入ってそうだし
587デフォルトの名無しさん:2010/08/21(土) 09:37:40
>>585
588デフォルトの名無しさん:2010/08/21(土) 09:40:06
やるにしてもせめてBitmapはCloneでコピーするとかさ

589デフォルトの名無しさん:2010/08/21(土) 09:45:05
各タスクに、特定の変数へのアクセス(しかも最後だけ)用のロックを渡すとか、普通はそんなことしない
とりあえずのコードってのはわかるけどさ
590デフォルトの名無しさん:2010/08/21(土) 09:48:26
>つまり、同じコアを複数のタスクで分割して利用してしまうと、コンテキスト・スイッチのオーバーヘッドだけ重くなるということだろう。
間違ってはいないけどこの例では多分Bitmapの再読み込みも遅い原因の気がする(キャッシュはきいてるにしても)。
591デフォルトの名無しさん:2010/08/21(土) 09:53:05
すべてstatic関数で済ませようとしているからだろうが、intの加算ならlockいらない。
教育用には、つけておいた方がいいだろうが。
592デフォルトの名無しさん:2010/08/21(土) 09:58:36
>>591
>intの加算ならlockいらない。
いやそれも間違ってるぞ。
ああ代わりにInterlocked使ったらって話か?

どっちにしても教育用コードで共有変数をタスクに参照渡しする時点で違和感ありありだけどね
593デフォルトの名無しさん:2010/08/21(土) 10:01:49
まあ普通ならpngファイルの読み込みは、読み込み済みビットマップの黒ピクセルを数えるよりは遅いわな
594デフォルトの名無しさん:2010/08/21(土) 10:06:54
>共有変数をタスクに参照渡しする時点で
ここでの共有変数とは、タスク間共有変数という意味あいね。
595デフォルトの名無しさん:2010/08/21(土) 11:01:11
>>592
C#は、intの演算はアトミックが保証されているんじゃなかったっけ。
596デフォルトの名無しさん:2010/08/21(土) 11:52:18
a += bは読み取り→加算→書き込み
それぞれのステップはアトミックだけど全体としてはそうじゃないから混同してはいけない
597デフォルトの名無しさん:2010/08/21(土) 12:16:21
どうでもいいけど C# 4 が気になる
.NETのバージョンは4.0からは.0が消えて4になったからそれと混同してるんだろうけど
C#は4.0が正しいはず
598デフォルトの名無しさん:2010/08/21(土) 12:21:29
>>596
intのincrement or decrementもアトミックでないんだな。はまりそうだ。
599デフォルトの名無しさん:2010/08/21(土) 12:49:04
>>596
機械語レベルでそんな単純な話とも思えんが....
例えば「読み取り」って言ったて変数のアドレスは固定じゃないわけで、
どうやったって変数のアドレスを取得する処理が入るはず
600デフォルトの名無しさん:2010/08/21(土) 13:41:52
アドレス取得はタイミングの影響無いんだから無視していいだろ。
機械語レベルでも、x86はリードモディファイライトの単発命令もあったりするから、
機械語レベルだと複数になるなんてのも実は本質じゃない。
たとえ単発命令になってもアトミックな保証はない。
601595:2010/08/21(土) 13:51:24
C#のlanguage specificationを見てきたが、アトミックではないとわざわざ決められていた。
602デフォルトの名無しさん:2010/08/21(土) 14:15:14
>>601
C#言語仕様では、参照型と32ビット以下のプリミティブ型およびそれらを基にした列挙型の
読み書きはアトミックでそれ以外は保証なし
実装がどうだろうと仕様は仕様
603デフォルトの名無しさん:2010/08/21(土) 14:18:30
短いプログラムなんだから、コードを張って批判しろよ。
604デフォルトの名無しさん:2010/08/21(土) 14:18:56
最初、加算がアトミックかどうかって話った気が・・・

>>602
それは、ld.locとかst.locがアトミックってことかな?<読み書きがアトミック。
605デフォルトの名無しさん:2010/08/21(土) 14:19:47
>>603
並列処理系の問題は実測難しいよ。
数百万回に1回しか起こらない問題とあったり、
稼働するCPUによってはそもそも起こらず、マシン変えたら起こるとかもあるし。
606デフォルトの名無しさん:2010/08/21(土) 14:45:20
>>604
C#の仕様だから、CLRの仕様は関係ない。
607デフォルトの名無しさん:2010/08/21(土) 14:51:08
>>604
スタックはスレッド別だからローカル変数の読み書きや加算演算自体にはそもそも問題自体が存在しない
わからないなら口出さなけりゃいいのに
608デフォルトの名無しさん:2010/08/21(土) 15:09:07
特定のクラスでしか使わない(といってもプロパティの設定などで外部からも利用する)ような列挙体は
そのクラスのパブリックメンバにするのがいいのかな。
609デフォルトの名無しさん:2010/08/21(土) 15:12:05
intがアトミックというのは、
スレッドAが変数Xを0から-1に書き換える時に、
スレッドBが並列でアクセスすると、
0か-1のどちらかの状態が読み取れることが保障されるというもの。
アトミックでないとするとそれはXが0xffff0000のように
半分だけ書き換わった状態がありえるということ。

スレッドAがXを0から-1に書き換えた直後に、
スレッドBかXを読み取った場合は
スレッドBが読み取ったXは0か-1であることは保障されるが、
確実に-1であるとは限らない。
610デフォルトの名無しさん:2010/08/21(土) 15:14:54
>>608
namespaceを共通にしていれば独立して宣言したほうが扱いやすいと思う。
611デフォルトの名無しさん:2010/08/21(土) 15:33:15
確かにた方が扱いやすそう。

クラス定義するソースファイルで宣言すれば
混乱することはないかな。
612デフォルトの名無しさん:2010/08/21(土) 15:34:23
やっちまった

×確かにた方が扱いやすそう。
○確かにて独立させて宣言した方が扱いやすそう。
613デフォルトの名無しさん:2010/08/21(土) 15:46:49
並列処理をするコードを書くとき、インクリメントがアトミックであることを前提とした実装はする。
C#では、その前提は使えないということ。
614デフォルトの名無しさん:2010/08/21(土) 15:50:12
C#をはじめとする.NETではしっかりlockするか、
Interlocked.Incrementを使うのが吉。
615デフォルトの名無しさん:2010/08/21(土) 15:57:12
マルチコアだとアセンブラでインクリメントを書いてもアトミックじゃないしな。
616デフォルトの名無しさん:2010/08/21(土) 16:28:51
>○確かにて

??
617デフォルトの名無しさん:2010/08/21(土) 16:34:10
ほとんどの言語はアトミックを保証してないと思うけどね。
618デフォルトの名無しさん:2010/08/21(土) 16:50:09

意味ないけど、空ループってラムダでどう書くの?

foreach (var x in Enumerable.Range(0, Int32.MaxValue))
;


System.Threading.Tasks.Parallel.ForEach(Enumerable.Range(0, Int32.MaxValue), ???);


???のとこ

619デフォルトの名無しさん:2010/08/21(土) 16:51:03
グリーンスレッド前提のものくらいじゃないかな。


x86の場合アセンブラレベルのincやaddで直接メモリに加算が出来るが、
この加算はスレッドに対して安全ではない。
inc DWORD PTR [ebp-4]
バスロックしてしまえば一応大丈夫なはずだけど、一般的なのかは知らない。
lock inc DWORD PTR [ebp-4]

620デフォルトの名無しさん:2010/08/21(土) 16:55:19
>>618
そこにはAction<T>が来るから、こんな感じかな、(o) => { }
621デフォルトの名無しさん:2010/08/21(土) 17:08:55
>>620
ありがとう。これで、パラレル処理がかけるわ。
622デフォルトの名無しさん:2010/08/21(土) 19:10:58
何をする気だよその止まらないループ
623デフォルトの名無しさん:2010/08/21(土) 19:31:55
>>618
質問と関係ないがParallelEnumerableってのもあるぞ。
624デフォルトの名無しさん:2010/08/23(月) 09:28:42
匿名メソッドまたはラムダ式の中でyield return 使いたいよぉ
いや、言ってみただけです・・・
625デフォルトの名無しさん:2010/08/23(月) 10:12:41
自動プロパティに初期値を指定することは出来ないのでしょうか?

public string Name { get; set; }
// ↑初期値をnullでなく空文字列にしたい。
626デフォルトの名無しさん:2010/08/23(月) 10:51:11
DefaultValueAttribute を使うとか?
627デフォルトの名無しさん:2010/08/23(月) 13:16:16
class Hoge
{
[DefaultValue("")]
public string Name { get; set; }
}
ではダメでした。

どうもコンストラクタで代入する以外にないようですね。

How do you give a C# Auto-Property a default value? - Stack Overflow
http://stackoverflow.com/questions/40730/how-do-you-give-a-c-auto-property-a-default-value
628デフォルトの名無しさん:2010/08/23(月) 13:20:21
>>624
コンパイラの負荷が大きくなりすぎるからやめた
らしい
629デフォルトの名無しさん:2010/08/23(月) 18:05:38
>>627
うん、コンストラクターで代入するしかない。
そしてその手は struct では使えない。

まあ、たびたび要望に上がるんで、将来のバージョンでプロパティの初期値設定構文追加されるかも。

>>628
なんせ、ラムダ式とイテレーターブロックはコンパイラが頑張ってコード生成してる機能の筆頭だもんね。
組み合わせると怖い。
630デフォルトの名無しさん:2010/08/23(月) 22:02:14
MSの中からもyield文の導入は失敗だったという声が聞こえてくる。
631デフォルトの名無しさん:2010/08/23(月) 22:49:12
>>630
ソース出せ
632デフォルトの名無しさん:2010/08/23(月) 22:50:30
それは言い過ぎじゃないかな
633デフォルトの名無しさん:2010/08/23(月) 23:11:37
匿名メソッドも失敗。
634デフォルトの名無しさん:2010/08/23(月) 23:31:43
>>630
void な yield return できないこととか、ラムダと組み合わせれないことを指してなら、
「悩んだ」的なコメントは出てたような。

>>633
まあ、ラムダ式導入された今となってはね。
635デフォルトの名無しさん:2010/08/24(火) 15:45:11
yieldはLINQの実装で使われまくってるだろ
実装に起因する変な制限を作ってしまったという意味では失敗
Javaのジェネリクスみたいなもんだな
636デフォルトの名無しさん:2010/08/24(火) 20:54:03
yieldのせいでresetが危険なメソッドになったな
637デフォルトの名無しさん:2010/08/24(火) 21:58:29
ちょっと考えただけで、yieldにはいろいろ問題がある。
実装が難しいからこの場所では使えないとか、設計に思慮がない。
アンダースは賛成したのか?
638デフォルトの名無しさん:2010/08/24(火) 23:11:20
多少くらい実装上の都合による直感的ではない制限があったとしても便利なら採用する。
別にC#では珍しいことではないんじゃない?
639デフォルトの名無しさん:2010/08/25(水) 00:59:44
>>638
目先の便利さに目を奪われて後で後悔するのがC#
640デフォルトの名無しさん:2010/08/25(水) 01:46:57
慎重派を気取って言語としてはどん詰まりになったのがJava
641デフォルトの名無しさん:2010/08/25(水) 05:44:11
>>638
yield以外になんかあるか?
642デフォルトの名無しさん:2010/08/25(水) 09:15:03
>直感的ではない制限

selectなどの順番がSQLと一致してない
643デフォルトの名無しさん:2010/08/25(水) 12:52:05
合理性からすると select は SQL が LINQ に合わせるべき
644デフォルトの名無しさん:2010/08/25(水) 13:09:39
sqlっぽくしたからしかたないけど、機能と名前が合わないと思う > select
645デフォルトの名無しさん:2010/08/25(水) 13:57:26
SQLには射影選択結合が基本的な機能としてあるけどさ
射影に使うのがSELECTで、選択に使うのがWHERE等の条件文なのな
批判するつもりはないがイミフ

射影する”要素を選んで”いるんだよキリ
646デフォルトの名無しさん:2010/08/25(水) 19:18:17
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です。
何か見落としている点がありましたらご指摘ください。
648デフォルトの名無しさん:2010/08/25(水) 22:12:10
WSAEADDRNOTAVAIL = 10049
有効なIPアドレスではありません
649647:2010/08/25(水) 22:52:45
>>648
ipconfigで確かめた、目的のNICのIPアドレスが入っているんですけどねぇ・・・。
650647:2010/08/26(木) 00:28:34
>>649
おっと、補足。ほぼ間違いなく「相手のIPアドレス」は間違っていません。
tcp = new TcpClient();
tcp.Connect(相手のIPアドレス, ポート番号);
だと繋がります。
651デフォルトの名無しさん:2010/08/26(木) 13:54:57
Graphics.DrawStringで背景を変更せず文字だけ描写するには
どうすればよいでしょうか?
652デフォルトの名無しさん:2010/08/26(木) 14:02:01
どのインターフェースを使うかはルーティングテーブルで決まるんじゃ?
653デフォルトの名無しさん:2010/08/26(木) 14:06:46
>>651
>背景を変更せず文字だけ描写するには
これがちょっと意味わからん
654デフォルトの名無しさん:2010/08/26(木) 14:08:24
Opaqueのことかと
655デフォルトの名無しさん:2010/08/26(木) 14:10:18
逆か、Transparentか
656デフォルトの名無しさん:2010/08/26(木) 14:16:22
重ね合わせは普通にできなかったっけ?
657651:2010/08/26(木) 14:16:34
申し訳ない。Graphics.DrawStringじゃなくてTextRenderer.DrawText
でした。
658651:2010/08/26(木) 14:29:56
BackColorをTransparentにしたら出来ました。
ありがとう。
659デフォルトの名無しさん:2010/08/26(木) 14:39:02
C#のコンパイルは何でやるのでしょうか?
gcc g++ ではできませんか?
660デフォルトの名無しさん:2010/08/26(木) 14:42:46
その並びで言うなら gmcs ?
661デフォルトの名無しさん:2010/08/26(木) 14:43:32
ちょっと面白い

MSのcsc
Monoのやつ
.GNU Portable.NET Projectのやつ

くらいだろうか
コンパイラは
662デフォルトの名無しさん:2010/08/26(木) 14:43:40
まあwinならcsc、それ以外ならmcs
663デフォルトの名無しさん:2010/08/26(木) 17:04:46
みなさんは自作structって使ってますか?
使って苦労したとかあれば知りたいです。
664デフォルトの名無しさん:2010/08/26(木) 19:20:02
C#触り始めて3日くらいのころプロパティに使って10分くらい苦労したな
665デフォルトの名無しさん:2010/08/26(木) 22:34:23
MDIでmenuStripをマージする際に、MergeActionにReplaceを使った場合、
ToolStripMenuItemではMergeIndexとTextプロパティの値で同じものを置き換えるようですが、
セパレーターが複数あると、MergeIndexを別々にしても一番上のものだけを置き換えます。
どうにかMergeIndexが同じものを置き換えるようにしたいのですが方法はありますか?
666デフォルトの名無しさん:2010/08/27(金) 00:29:38
>>665
何を言ってるのかよく理解できないけど、
とりあえずMergeIndexの意味は、マージされた時のリスト(ドロップダウン)内の位置であって、
それ以上の意味があるようにはMSDNの記述からは読み取れないけど。
667デフォルトの名無しさん:2010/08/27(金) 01:01:03
マージ前に子のメニューを適宜書き換える

というかMenuStripとかContextMenuStripとかって動作怪しくね?
668デフォルトの名無しさん:2010/08/27(金) 07:31:38
これ(http://msdn.microsoft.com/ja-jp/library/1c9txz50.aspx)の一般的な推奨事項の
・インスタンスをロックする場合 (たとえば、C# の lock(this)、Visual Basic の SyncLock(Me)) には注意してください。アプリケーション内の、その型以外の他のコードがオブジェクトをロックすると、デッドロックが発生する場合があります。

これってどういう状況で起こるか分かりますか?
669デフォルトの名無しさん:2010/08/27(金) 09:43:50
適当なたとえ

人が二人いてご飯を食べようとしています
ご飯を食べるには箸が2本必要です

この時一人が両方の箸を持てば、ご飯を食べることができます
食べ終わった後、箸を手放して適切に処置(洗う)すれば、もう1人もご飯を食べることができます

もし1本ずつ持ってしまったら相手が手放すのを待った状態でデッドロックしてしまいます
670デフォルトの名無しさん:2010/08/27(金) 09:48:22
それMSDNの例えの改変やがな
671デフォルトの名無しさん:2010/08/27(金) 09:55:34
>>669
その例えはこの話について何も語らないかと
672デフォルトの名無しさん:2010/08/27(金) 10:06:22
え?
673デフォルトの名無しさん:2010/08/27(金) 10:24:26
それはデッドロックってなあに?ってのの答えだろ。質問者も、デッドロックは分かっている。
674デフォルトの名無しさん:2010/08/27(金) 10:49:07
>>669
MSらしいアホな仕様だな
675デフォルトの名無しさん:2010/08/27(金) 11:16:09
>>674 アホがきた
676デフォルトの名無しさん:2010/08/27(金) 11:18:40
MSなんか全く関係ない。マルチスレッドをサポートしたすべてのメジャーな言語で一般的に起こりうる問題。
クラスBのインスタンスメソッドHogeの中でlock (this)が行われてるとして
利用者がBのHogeメソッドを呼ぶと、実質的にはlock (Bのインスタンス)を行ってることになるから
利用者がもしそのことを知らないとすると意図せずロックを取得してしまうことになる。
結果、デッドロックの危険性が高まる。
677デフォルトの名無しさん:2010/08/27(金) 11:44:44
678デフォルトの名無しさん:2010/08/27(金) 12:01:12
そいつはデッドロックが分かってないだけ

元の文夜見てみろ
679デフォルトの名無しさん:2010/08/27(金) 14:06:17
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() ); }
 }
}
680デフォルトの名無しさん:2010/08/27(金) 14:07:01
GO!GO!じゃねえよ
681デフォルトの名無しさん:2010/08/27(金) 14:09:53
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) { ...
と書く必要があるので目的がはっきりする。
682デフォルトの名無しさん:2010/08/27(金) 14:31:47
>アプリケーション内の、その型以外の他のコードがオブジェクトをロックすると
683デフォルトの名無しさん:2010/08/27(金) 14:41:19
そもそもクリティカルな部分しかロックしたらあかんでそ
684デフォルトの名無しさん:2010/08/27(金) 16:17:27
ビット演算使いまくるときにいちいちuncheckedで囲むのがめんどくさいしネストが増えてうざい
でもunchecked付けないでデバッグのときに他の部分のオーバーフローチェックが使えなくなるのは嫌
クラスやメソッド単位でunchecked付けるかプリプロセッサでまとめて指定させてほしい
685デフォルトの名無しさん:2010/08/27(金) 16:27:52
checkedで全部囲っといてそこだけunchekedで囲んでるの?
686デフォルトの名無しさん:2010/08/27(金) 16:33:52
コンパイルオプションをわざわざcheckedにしてるのかね。
687デフォルトの名無しさん:2010/08/27(金) 18:46:00
せっかくチェックできるんだから活かさないともったいない
デバッグのときだけチェックするようにしとけば意図しないオーバーフローを検出できるでしょ
オーバーフローするのわかっててuncheckedを付けないのは貴重なデバッグの手段の一つを丸々捨ててることになる
688デフォルトの名無しさん:2010/08/27(金) 19:39:05
御説ごもっともだけど、実際問題(意図しない)オーバフローによるバグが起こるようなコードって、
かなり奇特な分野のコードなんじゃないかとも思うけどね。
689デフォルトの名無しさん:2010/08/27(金) 21:08:18
>>688
なわけない。
690デフォルトの名無しさん:2010/08/27(金) 21:11:13
>>688ユトリプログラマー
691デフォルトの名無しさん:2010/08/27(金) 21:14:59
>>689-690
では具体的な実例をどうぞ。
しかし、いかにも馬鹿っぽい意見だな。
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
>>691
いかにもバカ
694デフォルトの名無しさん:2010/08/27(金) 21:25:42
正直使ったことないが、俺がいままでC#で作ったプログラムで
必要だったやつがあったかどうかわかんねーや。
695デフォルトの名無しさん:2010/08/27(金) 21:28:31
>>692
それが実例のつもりか?
どこの世界にわざわざcharを使う馬鹿プログラマがいるか。
8bitマイコンで洗濯機のプログラムでも書いてるのかよ
696デフォルトの名無しさん:2010/08/27(金) 21:37:11
俺ならチェックをかけないといけないような式があるとすれば、
都度処理をするがな。
デフォをchecked にしても対処できんと思うが。

697デフォルトの名無しさん:2010/08/27(金) 21:52:14
>>695視野狭すぎw
だが比較演算では何bitであろうが起こりうるのは事実だ。
とくにループ内で加算するような用途の変数ではな。

ゆとりもほどほどにしとけw
698デフォルトの名無しさん:2010/08/27(金) 21:54:10
また妙な流れ
699デフォルトの名無しさん:2010/08/27(金) 22:01:36
>>697
「起こりうる」ことは誰も否定してないの(当たり前)。
想定外のオーバーフローがバグの原因になるような場面の頻度を問題にしている。
断言するが、そんなものはそうはない。

しかし、ゆとりって言葉を安易に使う奴は例外なく馬鹿だな。
こういう奴は絶対に特亜がどうの創価がどうのマスゴミがどうの、
などとほざいている馬鹿でもあることは革新できる。

要するにアノミー君なんだな。
700デフォルトの名無しさん:2010/08/27(金) 22:01:39
2つのNTP時刻の中間を見つけようとして、足して2で割ったりするといかんな
何年か前にそんなニュースもあった
701デフォルトの名無しさん:2010/08/27(金) 22:06:56
制作者が想定していないような大きな数値をユーザが入力すると発生するというバグはよくある。
奇特なコードでなくともよい。
そうでなくても、
バッファのサイズの計算。
ファイルポインタ。
シリアル化したデータの読み込み。
unsignedとsingedの間でキャストをしている。(intとbyteの間でキャストをしている)
文字コードを数値として取り扱う。
Cと違って、checkedにしても別のところで落ちてくれるということは多いと思うが。
702デフォルトの名無しさん:2010/08/27(金) 22:09:29
>>699
そうはないことが起こるのがバグだろ。
ゆとりハ馬鹿は引くことをしらないんだね。

しかも余分なことまで書いてる、ほんと何と戦ってんだよ、この馬鹿ww
703デフォルトの名無しさん:2010/08/28(土) 01:30:37
687の最後の行が意味わからんのは俺だけか?
704デフォルトの名無しさん:2010/08/28(土) 01:55:23
かもね
705デフォルトの名無しさん:2010/08/28(土) 03:38:10
>>700
足したときにオーバーフローするからか
706デフォルトの名無しさん:2010/08/28(土) 09:52:43
>>703
ビット演算とかだと、意図的にオーバーロードさせることは普通にある。
その部分にuncheckedを指定するのを怠ると、コンパイラオプションでcheckedをデフォルトにしたときに
動作しないコードになる。
707706:2010/08/28(土) 09:53:38
訂正
オーバーフロー
708デフォルトの名無しさん:2010/08/28(土) 10:06:27
プログラム板って性格悪いの多いんだな
709デフォルトの名無しさん:2010/08/28(土) 10:09:59
http://rubykaigi.org/2010/live/1.html
Ruby会議の中継見てるけどキモい人たちの集まりに見える
710デフォルトの名無しさん:2010/08/28(土) 10:10:50
俺はすごいんだ!って思われたい人は多いね
ニコ動なんかで○時間で作ったとか見るとため息が出る
ただの反復作業なのにね
711デフォルトの名無しさん:2010/08/28(土) 10:14:26
>>710
ああテトリスとかのひとか
1時間で作れるようになるまでに何度も作り直してるって言ってて意味なさす
712デフォルトの名無しさん:2010/08/28(土) 10:31:12
プライドの高い人は成長しない
713デフォルトの名無しさん:2010/08/28(土) 10:44:06
そこそこの物を未経験未分野で一から組むと半年以上かかるし
そんな動画見たくないし

いや、ある意味みたいな・・・・
714デフォルトの名無しさん:2010/08/28(土) 10:45:04
プライドの無い人も成長しない
715デフォルトの名無しさん:2010/08/28(土) 10:50:12
プライドの無い人は成長するし出世する
716デフォルトの名無しさん:2010/08/28(土) 10:51:50
プライドが無い人がある程度出来るようになって
自分の技量を見せびらかすようになると成長はストップする
717デフォルトの名無しさん:2010/08/28(土) 10:53:13
プライドが無い人がある程度出来るようになって
自分の技量を見せびらかすようになって
成長はストップしたけど出生しちゃって
だけど独身だからちょっとした病気でリタイアする
718デフォルトの名無しさん:2010/08/28(土) 10:54:49
プライドが無い人がある程度出来るようになって
自分の技量を見せびらかすようになって
成長はストップしたけど出生しちゃって
だけど独身だからちょっとした病気でリタイアしたけど
以前作ったC#製のアプリが大ヒットして一生食べるに困らないお金を手に入れた

やっててよかったね!C#!!
719デフォルトの名無しさん:2010/08/28(土) 10:58:04
ipad用の が抜けてる
720デフォルトの名無しさん:2010/08/28(土) 11:00:18
C# 楽しいね。
こんな楽しみ、うつ病→統合失調症→引きこもりニートにならないと
出会えなかった。
721デフォルトの名無しさん:2010/08/28(土) 11:02:07
asp.netって生きてる?
2ちゃんにスレがないのだが…
722デフォルトの名無しさん:2010/08/28(土) 12:46:32
>>721
以前はネット関連のWebProg板にあったが今落ちてるのかな。
IISやネットワークの設定ではなくて、WebFormやADO.NETのような
プログラミング寄りの話題ならここでいいよ。
723デフォルトの名無しさん:2010/08/28(土) 15:04:27
>>721
生きてるよ・・・・
全国の図書館システムとして・・・w
724デフォルトの名無しさん:2010/08/28(土) 15:10:20
>>710
馬鹿だなあ
そういうのは思ってても黙ってるんだよ
おこぼれとかで十分役に立つんだし・・・・

おかげでC#版テトリスのソースが手に入るんだしw
http://cs2ch.blog123.fc2.com/blog-entry-82.html

検索して情報がでてくるのもある意味そういう人たちの
残したおこぼれなんだからさw
725デフォルトの名無しさん:2010/08/28(土) 18:00:03
726デフォルトの名無しさん:2010/08/29(日) 15:09:28
aspがらみでGPLライセンスのライブラリを使って頒布せず自鯖やレン鯖でサービス運用
ソース非公開でOK
これはわかる

でもaspがらみでGPLライセンスのライブラリを使って客先に頒布する時はどうなるの?
客先にソース付けないとだめ?
それとももっとオープンに公開しないと駄目?
727デフォルトの名無しさん:2010/08/29(日) 15:21:38
ASPはスレ違い。
728デフォルトの名無しさん:2010/08/29(日) 15:38:59
客先が再領布しないのであれば非公開で桶
729デフォルトの名無しさん:2010/08/29(日) 15:57:32
>>728
なるへそ!
さんくすこ!
730デフォルトの名無しさん:2010/08/29(日) 16:02:12
>>728
GPLってそうだった?組織が違えば公開必要じゃなかった?しかも客先に配布禁止条項をつけられないだろ?
731デフォルトの名無しさん:2010/08/29(日) 16:04:44
だめに決まってるじゃん。
732デフォルトの名無しさん:2010/08/29(日) 16:05:20
公開必須だと客に納める度にソース公開しないといけなくなるじゃん
733デフォルトの名無しさん:2010/08/29(日) 16:06:48
>>732
それがGPLというものだろ
734デフォルトの名無しさん:2010/08/29(日) 16:08:02
GPLは>>728の解釈で正しいよ
じゃねぇとMySQLと連携とれなくなるだろ
735デフォルトの名無しさん:2010/08/29(日) 16:10:23
    NowLoading...
GPLについて検索中です。
736デフォルトの名無しさん:2010/08/29(日) 16:10:34
>>734
具体的に条項をあげてくれ
737デフォルトの名無しさん:2010/08/29(日) 16:12:42
いろいろ抜け道はあるけどな。
738デフォルトの名無しさん:2010/08/29(日) 16:13:06
何にしても、ライセンスはスレ違いだろよ。
739デフォルトの名無しさん:2010/08/29(日) 16:13:24
自鯖かレン鯖において客に使わせればいいじゃん
740デフォルトの名無しさん:2010/08/29(日) 16:30:02
>>730
開発者ごと納品すればいい
741デフォルトの名無しさん:2010/08/29(日) 16:31:34
人類という一つの組織
742デフォルトの名無しさん:2010/08/29(日) 16:31:58
会社まるごと買い取ってもらったらいい
743デフォルトの名無しさん:2010/08/29(日) 17:28:53
客にソースコードを提供すればOK。ただし、その客がそのソースコードを再配布することを妨げることはできない。
744デフォルトの名無しさん:2010/08/29(日) 17:30:10
地球に生きとし生ける全ての生命は地球市民だから
745デフォルトの名無しさん:2010/08/29(日) 18:47:44
スケールが大きくなってきたな
746デフォルトの名無しさん:2010/08/30(月) 11:31:11
GPL混ぜちゃったら.NET標準のライブラリ以外はほぼすべて全滅じゃん
それどころかMSDNのサンプルコードすらGPLとは互換性無いよ(MS-LPL)
747デフォルトの名無しさん:2010/08/30(月) 14:30:12
TreeView で選択されているノードに
子ノードを追加して、SelectedNode に設定したんですが
そのノードを強調表示してくれません。
なにかほかに設定しないといけないことがありますか?
748デフォルトの名無しさん:2010/08/30(月) 14:36:14
>>747 はすぐ後で別のコントロールをいじったからでした。
すみません。
Select() し直したらきちんと表示されました。
ごめんなさい。
749デフォルトの名無しさん:2010/08/31(火) 16:45:06
ここに書いてあるWH_KEYBOARD_LLを利用してキーフックを行っています
http://azumaya.s101.xrea.com/wiki/index.php?%B3%D0%BD%F1%2FC%A2%F4%2F%A5%B0%A5%ED%A1%BC%A5%D0%A5%EB%A5%D5%A5%C3%A5%AF

ゲームや、Photoshopなどの特定のアプリの場合
キーフックが上手く作動しません

現状キーの監視(打ったキーを保存しておくだけ)しか行っていないです
考えられる原因と、その対処法何かないでしょうか……
750デフォルトの名無しさん:2010/08/31(火) 19:46:25
見たところDirectX系には対応してないふいんき
751デフォルトの名無しさん:2010/08/31(火) 22:04:13
>>750
なるほど
DirectInputのほうも監視すればいいんですね
ありがとうございます
752デフォルトの名無しさん:2010/09/01(水) 01:12:40
C#言語(というか.NET)では、文字列中にNULL文字(\x00)が入っても良いらしい。
つまり、
string s = "hoge\x00\x00";
s += "hoge";
とすると、変数sは"hoge\x00\x00hoge"となる。
が、この文字列に対して、
Debug.Print(s);
とすると、NULL文字以降が無視され、

hoge

としか出力しない。
良いのか?
753デフォルトの名無しさん:2010/09/01(水) 01:17:55
何言ってんの?
754デフォルトの名無しさん:2010/09/01(水) 01:42:08
良い
755デフォルトの名無しさん:2010/09/01(水) 03:07:26
文字列終端の管理方法が\0終端だけだと思ってる時点で…
756デフォルトの名無しさん:2010/09/01(水) 04:05:26
ヌルターミネートはCぐらいじゃないか?
757デフォルトの名無しさん:2010/09/01(水) 06:04:17
ユーザコントロールで画像をアップロードしたあと、その結果を
すぐに親画面に反映させたいのですが、自画面にリダイレクトする
以外で何か方法はないでしょうか?
親画面の表示内容を維持したいので、ポストバックで反映できると期待したのですが、
親のPage_loadがすでに終了していたので無理でした。
何かユーザコントロールからポストバックを再度実行できれば良いのですが・・・

以上、よろしくお願いします。
758デフォルトの名無しさん:2010/09/01(水) 12:14:23
>>757
asp.netはスレ違い
759デフォルトの名無しさん:2010/09/01(水) 14:54:43
スレ違いどころか板違い
760デフォルトの名無しさん:2010/09/01(水) 15:36:45
>>757
jQuery
761デフォルトの名無しさん:2010/09/01(水) 23:41:15
webprog板にasp.netってあったっけ?
762デフォルトの名無しさん:2010/09/02(木) 00:09:06
板違い…?

>>761
>>725
763デフォルトの名無しさん:2010/09/02(木) 01:08:23
なんといふ既視感
764デフォルトの名無しさん:2010/09/02(木) 01:41:16
デジャヴ
765デフォルトの名無しさん:2010/09/02(木) 06:15:54
déjà vue
766デフォルトの名無しさん:2010/09/02(木) 13:41:06
クラスMyClassがインターフェイスIMyInterfaceを実装してるんだけど
MyClassの派生クラスがIMyInterfaceを再実装するのを禁止する方法はある?
もちろんリフレクション使えばいいけど静的にできるなら教えてほしい
767デフォルトの名無しさん:2010/09/02(木) 14:00:35
>>766
該当メンバをseadedで修飾する。
768デフォルトの名無しさん:2010/09/02(木) 14:01:28
sealed override
769デフォルトの名無しさん:2010/09/02(木) 15:14:21
class MyDerivedClass : MyClass, IMyInterface {}

再実装というからには、これを禁止したいんじゃないの
オーバーライドなら再実装とは言わんし

結論としては、そんなことはできないし、する必要もない
770デフォルトの名無しさん:2010/09/02(木) 20:38:04
実装=overrideだと思うけどな
771デフォルトの名無しさん:2010/09/02(木) 21:02:13
勘違いでした
772デフォルトの名無しさん:2010/09/03(金) 20:52:47
>>753-756
Debug.Print の挙動がきもちわるいって話じゃないの?
773デフォルトの名無しさん:2010/09/04(土) 00:33:42
じゃあ messageBox.Show ならどうなると思う?
774デフォルトの名無しさん:2010/09/04(土) 03:36:00
1.キモイと思う。
2.イケメンと思う。
3.OKってボタンがでたよ?

選べ
775デフォルトの名無しさん:2010/09/04(土) 12:21:05
ガキ臭。
馴れ合いたい奴は馴れ合う為の場所にいってやれよ。
776デフォルトの名無しさん:2010/09/04(土) 13:25:17
Windows MobileでSMSを送受信するアプリを作りたいんですが、
出来ればサンプルソースとかがあれば教えていただけませんでしょうか。
なんかすぐ規制くらうんで、やっと書き込めた。
777デフォルトの名無しさん:2010/09/04(土) 13:26:06
371 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/09(月) 20:03:04
ガキ臭。
馬鹿じゃないのか。
778デフォルトの名無しさん:2010/09/04(土) 13:42:36
コピペ君って馬鹿だな、まで読んだ。
779デフォルトの名無しさん:2010/09/04(土) 13:43:15
371 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/09(月) 20:03:04
ガキ臭。
馬鹿じゃないのか。
780デフォルトの名無しさん:2010/09/04(土) 13:51:07
コピペ王に俺はなる、まで読んだ。
781デフォルトの名無しさん:2010/09/04(土) 14:02:03
>>773 どうなるの?(わくわく
782デフォルトの名無しさん:2010/09/04(土) 14:07:22
371 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/09(月) 20:03:04
ガキ臭。
馬鹿じゃないのか。
783デフォルトの名無しさん:2010/09/04(土) 14:15:59
コピペ君って馬鹿だな、まで読んだ。
784デフォルトの名無しさん:2010/09/04(土) 14:16:42
371 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/09(月) 20:03:04
ガキ臭。
馬鹿じゃないのか。
785デフォルトの名無しさん:2010/09/04(土) 14:20:10
相手すんなよアホ
786デフォルトの名無しさん:2010/09/04(土) 14:29:25
俺はアホだから相手しなきゃ
787デフォルトの名無しさん:2010/09/04(土) 14:31:53
じゃあ存分にやれアホ
788デフォルトの名無しさん:2010/09/04(土) 14:37:14
お前ら全員死ね。
789デフォルトの名無しさん:2010/09/04(土) 15:28:05
790デフォルトの名無しさん:2010/09/04(土) 17:39:55
口挿むだけで○○も作れもしない△△ならROMってろ。
元の話題は>>752だろ?脱線せんと軌道修正しようや
船には帰って来る港が必要だぜ?
791デフォルトの名無しさん:2010/09/04(土) 17:41:47
お前は帰ってこなくていいよ
漂流してろ
792デフォルトの名無しさん:2010/09/04(土) 18:09:14
Debug.Printで出力したときに\0以降が無視されるのはWindowsのコンソールの仕様だろ。
試しにC++のネイティブコードでやってみ
793デフォルトの名無しさん:2010/09/04(土) 18:24:11
Windowsのコンソールって何のことだよ。
何か思いっきり勘違いしてるとしか思えん発言だな
794デフォルトの名無しさん:2010/09/04(土) 20:32:14
Console.WriteLine だと\0以降もコンソールに出るしなぁ。
795デフォルトの名無しさん:2010/09/04(土) 21:45:49
標準のデバッグリスナとか何とかの仕様だろ
796デフォルトの名無しさん:2010/09/04(土) 21:49:24
メモ帳でも開けられるんだぜ
797デフォルトの名無しさん:2010/09/05(日) 22:42:38
Debug.Print こそ \0 だろうがなんだろうが出力して欲しいメソッドなのにね。
798デフォルトの名無しさん:2010/09/06(月) 10:21:38
DefaultTraceListenerのドキュメントにOutputDebugString使うと書いてあるだろ
勝手に\0除外してからOutputDebugStringに投げるとか余計なことされたらそれはそれで困るわ
799デフォルトの名無しさん:2010/09/06(月) 12:04:55
\0は\0のまま表示すりゃええ
800デフォルトの名無しさん:2010/09/06(月) 14:53:15
ままじゃないだろそれ
C系の言語では便宜的にそう書くだけ
801デフォルトの名無しさん:2010/09/06(月) 21:22:41
\0を\\0にすればいいだろ
802デフォルトの名無しさん:2010/09/06(月) 23:09:05
では\x0000ではどうだろう。C#の文字リテラルだし。
803デフォルトの名無しさん:2010/09/06(月) 23:12:55
っていうか、それもう C# 関係なくね?

Visual Studio に文字列投げるところまでは C# がやってるだろうけど、
そこから先、Visual Studio がもらった文字をどう扱うかは Visual Studio の勝手なわけで。
804デフォルトの名無しさん:2010/09/06(月) 23:36:46
制御コードを「文字列で」表示しろ、なんてアホ丸出しな要求にしか思えないけどな...
そんなもの、万人が納得する仕様なんか決められるわけがないし、
そんなどちらかと言えばかなりトリビアルな要求を満たすためにコストを掛けるのも馬鹿げてる。

そんなものはプログラマ自身が適当に工夫すれば必要十分だと思うがね。
例えば適当な文字に置き換えて表示するなんて猿でも思いつくし、
必用ならバイナリエディタライクに表示するビジュアライザを作ってもいい。
805デフォルトの名無しさん:2010/09/06(月) 23:54:33
PC-8001だと制御コードをVRAMに書き込むと、そのまま文字として表示できたんだけどねえ
806デフォルトの名無しさん:2010/09/07(火) 04:53:30
だから何レベル
807デフォルトの名無しさん:2010/09/07(火) 06:57:46
datagridviewで、グリフ(▼)だけを消したいんですが
どうすればいいんでしょうか?
808デフォルトの名無しさん:2010/09/07(火) 10:14:13
ソートを無効にすれば
809807:2010/09/07(火) 10:20:44
ソートは使います
810デフォルトの名無しさん:2010/09/07(火) 12:15:49
指で押さえれば消える
811デフォルトの名無しさん:2010/09/07(火) 12:30:56
おれはListViewにグリフつけるのに苦労したけどな
ソート使うのに消しちゃったら不便じゃないのかな?
812デフォルトの名無しさん:2010/09/07(火) 12:54:53
ソートグリフ用領域が表示されるのも嫌だろうから
各 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 なるものを無効にするうまい方法はあるでしょうか?
よろしく。
814813:2010/09/07(火) 21:53:12
補足
WebBrowserで検知できた場合でも、時すでに遅しで実際にはFocusが
奪われてしまっている場合もありました。

一度でもFocusが奪われると、たとえば他の操作をしているときに
Focusが奪われて入力などの手作業が中断してIME返還などがされずに
入力されてしまうなどの問題がありました。

これを防いで一度もFocusが奪われないようにしたいです。
815デフォルトの名無しさん:2010/09/07(火) 21:55:00
>>813
WebBrowserって単なるラッパーだったはずなのでaxWebBrowserの非同期動作が
関係してて取得できないかも・・・
816813:2010/09/07(火) 21:57:46
補足2
ページが表示されてすぐのFocusの場合なら問題はないようにも思われますが、
ものによっては定期的に自動でページを読み直して再表示されてしまい、
そのたびにFocusが奪われるので、他の作業中に邪魔が入る形になります。

こうしたことを防ぎたいのですが、良い方法があれば教えて頂きたく。
よろしくお願いします。
817813:2010/09/07(火) 22:04:24
>>815
どうもです。何か「原理的に無理」、みたいな感じですか。
818デフォルトの名無しさん:2010/09/07(火) 22:17:05
IE使って検索バー辺りで入力中でも再現するなら無理と考えて良いだろうね
819デフォルトの名無しさん:2010/09/07(火) 22:23:33
タイマーで無理やり戻せばいいんじゃw
820813:2010/09/07(火) 22:53:47
>>818
それやってみてました。どうもFocusが奪われないまま維持されてました。
別Formだからなのか・・・さらにチェックをして見ます。

>>819
一度でも奪われると、その瞬間にIMEモード入力が停止して入力欄に
ひらがなのまま入ってしまいます。その後で戻してもそのときには遅い、
ということなんです。>>814はそういう状況なのです。

うーん。
821デフォルトの名無しさん:2010/09/07(火) 23:06:12
再フォーカスってことはブラウザとしてはナビゲートしてるってことだから
一度ページが表示されたらナビゲートを停止させちゃえばいいだけかなあ?
ナビゲートキャンセルって確かできたなあ・・・
822813:2010/09/08(水) 01:28:33
いろいろやってみたところ、>>814は間違いのようでした、すみません。

ただし関係のありそうなコントロールでFocusを奪われたくないと思われる場合、
随時すべてそれを記憶し、SETFOCUSメッセージのときにそれらがあれば判断して
ブラウザコントロールへのFocusは無効にする、みたいな方法にすればできそうで、
これでやってみたいと思います。どうもでした!
823デフォルトの名無しさん:2010/09/08(水) 13:29:29
表を表示するためのコンポーネントでDataGridView以外に見栄えのいい物ってある?
商用以外で。
824デフォルトの名無しさん:2010/09/08(水) 14:11:39
HTMLのtable
825デフォルトの名無しさん:2010/09/08(水) 14:47:14
ListViewじゃだめなの?
826デフォルトの名無しさん:2010/09/08(水) 15:27:41
827デフォルトの名無しさん:2010/09/08(水) 15:44:39
ツリービューで質問です。
TreeView1.Width
ですとスクロールバーも含んだ横幅になってしまいます。
正味の横幅を取得するにはどうすればよいでしょうか?
828デフォルトの名無しさん:2010/09/08(水) 15:52:17
TreeView1.ClientSizeはどう?
829デフォルトの名無しさん:2010/09/08(水) 16:07:53
2003のせいかClientSizeがありませんでした。
830デフォルトの名無しさん:2010/09/08(水) 16:26:13
.NET Framework 1.1かいな
1.1試す環境無いなあ、、、APIでGetClientRect呼ぶとか?
831デフォルトの名無しさん:2010/09/08(水) 16:35:51
1.0からあるよClientSize
インテリセンスの候補に出てこないだけとかだろ
832デフォルトの名無しさん:2010/09/08(水) 17:25:28
>>831
そのとおりでした。サンクス。
833デフォルトの名無しさん:2010/09/08(水) 17:27:00
インテリセンスっていいんだけどさ
.net全般のプロパティとか多すぎてけっこうむずいんだよね
834デフォルトの名無しさん:2010/09/08(水) 18:56:05
>>825
それも検討してるんですが、使いにくいかなと
>>826
これDataGridViewですか?
835デフォルトの名無しさん:2010/09/08(水) 18:59:18
>>834
そう
836デフォルトの名無しさん:2010/09/08(水) 19:54:28
>>833
いや、だって、必要なんだもん。

あれでも、数多すぎると IntelliSense 見た瞬間くじける人が出て来るから
1クラスのプロパティ量減らせ、1名前空間のクラス量減らせってのが
Microsoft のコーディング規約にあるのよ。
それでもなおあの量。
837デフォルトの名無しさん:2010/09/08(水) 20:21:53
VBでは絞り込まれて表示されるけどな
C#にそれがないのはもちろんあえて付けてないわけなので
838デフォルトの名無しさん:2010/09/08(水) 20:26:15
そうかな?
触り始めたときは色んな機能用意されてるんだなーとわくわくしたけど
839デフォルトの名無しさん:2010/09/08(水) 20:26:22
>>835
DataGridViewも結構きれいにできるんですね。
こんな感じで描画するためのサンプルコードとかってどこかに上がっていますか?
840デフォルトの名無しさん:2010/09/08(水) 20:38:21
>>839
綺麗に見えるのは、行と列のヘッダの背景にグラデーションが掛けてある以外は、
要するに配色が上手いからでしょ。

どんな道具使っても、配色やデザインのセンスまでは面倒みてくれないよw
まあセンスがいいテンプレートがあったりする場合もあるけど。
841デフォルトの名無しさん:2010/09/09(木) 22:17:24
配列のチェックでnullもしくは要素数が0個かを一気にチェックする関数ってありませんか?
string.IsNullOrEmptyみたいな感じの関数があればいいのですが・・・

検索しても見付からなかったので無いような気はしますけど・・・
842デフォルトの名無しさん:2010/09/09(木) 22:19:35
lengthでだめ?
843デフォルトの名無しさん:2010/09/09(木) 22:45:10
>>842
nullだと落ちるよ
844デフォルトの名無しさん:2010/09/09(木) 22:52:16
落ちるんだったら
try〜catchでエラー取ればいい
845デフォルトの名無しさん:2010/09/09(木) 22:54:14
ない
わりと配列ってnullと要素数0はきっちり別物扱いすることが多いから必要性も高くないな
846841:2010/09/09(木) 23:02:26
そっかー。みんなありがとー。
try-catchは好きじゃないんで、地道にチェックします。
こうしとけば問題ないよね?

if (lists != null || lists.Count > 0)
{
 処理
}
847デフォルトの名無しさん:2010/09/09(木) 23:17:00
>>846
上の人も言ってるように、nullはありえない(もしnullの場合はバグ)
仕様にする方が簡単だと思うけどね
848841:2010/09/10(金) 00:58:25
>>847
nullを入れないようにして欲しいけど、規則がないからどうなるか分からなくてね・・・
先にnullチェックしとけば、Countまで見に行かないかなって思ってるんだけどだめかな?
849デフォルトの名無しさん:2010/09/10(金) 02:54:03
>>846
なんでだよw
850デフォルトの名無しさん:2010/09/10(金) 07:14:59
ORだったらCountの評価も走るからぬるぽでるわな。
lists の中味があったら処理する、ならこうじゃね?
if (lists != null && lists.Count > 0)
{
ほげほげ
}
851デフォルトの名無しさん:2010/09/10(金) 10:45:34
>>848
規則化したければ、

if(array == null) throw new ArgumentException();

の代わりに

System.Diagnostics.Contracts.Contract.Requires(array != null);

にでもしとけば OK。
852デフォルトの名無しさん:2010/09/10(金) 11:04:49
Contractなんか追加されてたのかー
試しに使ってみるか
853デフォルトの名無しさん:2010/09/10(金) 19:14:04
Pex?
854デフォルトの名無しさん:2010/09/11(土) 00:05:02
契約プログラミングはチームで開発するとき凄く便利
855デフォルトの名無しさん:2010/09/11(土) 01:52:22
盟約プログラミングは連盟で開発するとき凄く便利
856デフォルトの名無しさん:2010/09/11(土) 03:41:43
>>855
857デフォルトの名無しさん:2010/09/11(土) 04:04:17
倹約プログラミングはお金が無いとき凄く便利
858デフォルトの名無しさん:2010/09/11(土) 07:12:29
富豪プログラミングは、じじいがファビョる。
859デフォルトの名無しさん:2010/09/11(土) 07:18:32
それはシャレじゃなくマジだろ
860デフォルトの名無しさん:2010/09/11(土) 12:03:45
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}", 人.その家.姓, 人.名); }
}
}

夫婦別姓が施行された場合、どう書き換えればいい?
861デフォルトの名無しさん:2010/09/11(土) 12:08:48
class 人
  苗字
  名前

class 家
  人:住人

元のクラス設計が糞
862デフォルトの名無しさん:2010/09/11(土) 12:09:54
>>860
F姓
M姓
を保持してどっちを名乗ってるかを管理するとか?
863デフォルトの名無しさん:2010/09/11(土) 12:13:55
家に姓なんかもたせてたらルームシェアでも失敗する
864デフォルトの名無しさん:2010/09/11(土) 12:58:35
どうでもいいけど磯崎じゃなくて磯野だろ
865デフォルトの名無しさん:2010/09/11(土) 13:20:20
フグ山はいいのか?w
866841:2010/09/11(土) 15:14:16
>>849
個人的な視点だけど、美しくないからw

>>850
ORだとCountの処理も走るのは初めて知りました
ありがとう。今までの見直してAND処理使うようにしますね

>>851
例外は出したくないんで、自前でチェックしようと思います
でも、自作アプリでは使わせてもらいますねw

みなさん、ありがとう!
すごく勉強になります!
867デフォルトの名無しさん:2010/09/11(土) 15:36:33
なんか勘違いしてる気がする。
>>851みたいな例外は処理しなくていい。キャッチ禁止。
なぜなら、例外が発生するのは契約違反を意味するので即ちプログラムのミスだから。
nullが入ることが想定の範囲内なら自分でチェックするのは当たり前。Contractとか使っちゃダメ。
868デフォルトの名無しさん:2010/09/11(土) 16:56:22
>>866
>ORだとCountの処理も走るのは初めて知りました
>ありがとう。今までの見直してAND処理使うようにしますね

Countの処理まで走るかどうか以前に、ORじゃロジックがおかしいだろ。
論理演算を勉強しなおせ。
869デフォルトの名無しさん:2010/09/11(土) 18:42:35
>>866
>>849はロジックがおかしいところに突っ込んだんだよ。

>ORだとCountの処理も走るのは初めて知りました
>ありがとう。今までの見直してAND処理使うようにしますね
いやそういう問題じゃなくて、普通に考えてみようよ。
870デフォルトの名無しさん:2010/09/11(土) 21:45:50
>>866
if 文を日本語で読むんだ!
871841:2010/09/12(日) 02:17:54
そう言われるとたしかに
何も考えずにANDでと同じ感覚で使ってた・・・
872デフォルトの名無しさん:2010/09/12(日) 02:23:44
えー…
873デフォルトの名無しさん:2010/09/12(日) 02:43:36
A || B == ! ( (!A) && (!B) )
これで解決!(違)
874デフォルトの名無しさん:2010/09/12(日) 03:04:17
De Morgan 律子
875868:2010/09/12(日) 06:36:10
>>866
>個人的な視点だけど、美しくないからw
>>841は明らかに、コードの美しさを論じるようなレベルじゃない。

>でも、自作アプリでは使わせてもらいますねw
今回は自作アプリじゃないってことは、まさか仕事なのか…
違うと言ってほしい。
876デフォルトの名無しさん:2010/09/12(日) 10:59:33
>>860
姓を使わないで
構成員に姓名を書くだけ
877デフォルトの名無しさん:2010/09/12(日) 12:30:32
職業プログラマにも結構酷いの沢山生息してるからなぁ。
878デフォルトの名無しさん:2010/09/12(日) 13:18:40
C#用のJSONのparserを探しているんですが、何か良い物はないでしょうか。
要件はJSONの配列も扱える事、ソースが読める事です。
879デフォルトの名無しさん:2010/09/12(日) 13:26:09
JayRock が完成度が高かった
880デフォルトの名無しさん:2010/09/12(日) 14:45:10
>>878
LitJson。ソース短いから簡単に追えるよ。
881デフォルトの名無しさん:2010/09/13(月) 16:31:48
普通にWCFのシリアライザ使えばいいじゃん
一応ソースは公開されてるはず
882デフォルトの名無しさん:2010/09/14(火) 21:55:42
toolstripが突然消失

といっても、プロパティなどから
存在していることの確認はできています
なのに、デザイン上に表示されません
どういうことか、教えてください
883デフォルトの名無しさん:2010/09/14(火) 22:02:21
神隠し
884デフォルトの名無しさん:2010/09/14(火) 22:28:21
DockがFillのコントロールを最前面とか最背面とかにしてみたら?
885デフォルトの名無しさん:2010/09/14(火) 23:55:21
SNSのコミュニティに存る特定のスレッドのソースを取得したいです。
通常のサイトであればDownloadStringを使えば取得できるのですが
SNSなので普通にアクセスするとログインページにリダイレクトされてしまいます。

そこで、少し調べてみたところttp://neue.cc/2009/12/17_230.htmlの記事を見つけました

しかし、この記事の通りに行ってもmixiへのログインに失敗するようです。


また、私が取得したいSNSはmixiではないのですが、その場合この記事でいうところの {"next_url", "/home.pl"},は何にすればいいのでしょうか。
886デフォルトの名無しさん:2010/09/15(水) 00:05:14
スレ違い
887デフォルトの名無しさん:2010/09/15(水) 10:23:33
>>885
コードに落とす前にログイン時のHTTPの動きを調べるべき
888デフォルトの名無しさん:2010/09/15(水) 11:17:59
tooltipに表示させる文字列で、特定の文字列のみ太字に表示する方法はございませんか?
HTMLのタグが使えて↓みたいに書けたら最高なんですが・・・

こんにちは<b>サンプル</b>です
889デフォルトの名無しさん:2010/09/15(水) 11:40:51
WPFなら
<ToolTip><TextBlock>abc<Bold>de</Bold>fg</TextBlock></ToolTip>
だけど、一般のコントロールだとどうだろな
890デフォルトの名無しさん:2010/09/15(水) 11:59:47
OwnerDrawでDrawイベントで頑張って自前で描画する
891デフォルトの名無しさん:2010/09/15(水) 12:45:50
>>889-890
ありがとうございます
WPFのほうが簡単そうですねWPFでやってみます
892889:2010/09/15(水) 12:51:24
そして後悔するのであった
893デフォルトの名無しさん:2010/09/15(水) 12:53:49
部分的だったら自分でやった方がいいかもね

あとはオフメモリにbmp作って描画したデータを表示とか(tooltipってbmp表示できたか忘れた)
894デフォルトの名無しさん:2010/09/15(水) 14:17:48
>>886
おめえうぜえわ
分からないならいちいちレスすんなks
895デフォルトの名無しさん:2010/09/15(水) 20:21:16
凄い自己矛盾
896デフォルトの名無しさん:2010/09/15(水) 20:57:19
いいからwiresharkでも落として調べるニダ
897デフォルトの名無しさん:2010/09/16(木) 03:12:35
>>887
ブラウザコントロールで解決しました。
結局普通にポストすることにしました。

>>886
すいません。
ネット系に質問すればよろしかったですか?
898ノtasukeruyo:2010/09/16(木) 14:09:17
てst
899デフォルトの名無しさん:2010/09/16(木) 14:10:04
てst
900デフォルトの名無しさん:2010/09/16(木) 14:10:49
c#の質問の前に書き込みてst
ノtasukeruyo
901デフォルトの名無しさん:2010/09/16(木) 17:50:48
C#で作ったものって基本的にXP〜Vista〜7の32・64bitで普通に動くものですか?
902デフォルトの名無しさん:2010/09/16(木) 17:56:03
基本的に 普通に はどの辺を指すのさ
903デフォルトの名無しさん:2010/09/16(木) 18:01:15
XPは.NET標準で入ってたっけ?
904デフォルトの名無しさん:2010/09/16(木) 18:04:47
ファイルを開くダイアログを出したり乱数を発声させたりMessageBox.Showで表示したりなどです
32bitや64bitに依存するようなDLLなどは使ってないです
XP以降なら.NETさえ入れればどうなんでしょう
905デフォルトの名無しさん:2010/09/16(木) 18:09:40
対象のバージョンの.NETさえ入ってれば環境にかかわらず動く
.NET不要でランタイム5MBくらいのSilverlightというのもある
906デフォルトの名無しさん:2010/09/16(木) 18:15:27
XPは2.0が標準で入ってたはず
907デフォルトの名無しさん:2010/09/16(木) 18:20:13
908デフォルトの名無しさん:2010/09/16(木) 18:20:43
標準で2.0はVistaだったと思う
909デフォルトの名無しさん:2010/09/16(木) 18:25:09
>>906
XPは2.0が標準で入ってるんですね
ありがとうございます
910デフォルトの名無しさん:2010/09/16(木) 18:39:26
ここはWindows板です
911デフォルトの名無しさん:2010/09/16(木) 18:51:57
確か違ったような気がしないでもないです
912デフォルトの名無しさん:2010/09/16(木) 18:57:21
よかった
パソコンが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のクラスです。
914デフォルトの名無しさん:2010/09/16(木) 19:37:05
クラスじゃねーよよく見ろ
そのエラーもVector2がクラスじゃないことに起因するものだ
915デフォルトの名無しさん:2010/09/16(木) 19:37:29
お前らちょっと待て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に乗ってるわけないじゃないか…。
916デフォルトの名無しさん:2010/09/16(木) 19:39:22
ドナルドは仕事に使ってるわけじゃないから興味がないんだ
917デフォルトの名無しさん:2010/09/16(木) 19:45:05
ドナルドもC#使ってるのか…
918デフォルトの名無しさん:2010/09/16(木) 19:49:09
XPはもうSP3として考えていいと思う
919デフォルトの名無しさん:2010/09/16(木) 20:16:33
.net freamwork 2.0以降でメニューをコピーする方法はない?
ある項目にあるものすべてをコンテキストメニューで表示したいんだが、TooStripMenuItemを使用している場合の方法だけはなぜか見つからなかった
920デフォルトの名無しさん:2010/09/16(木) 21:15:38
>>919
たぶんない。
良く使う処理だから、俺は俺様ライラリに入れてるよ
921デフォルトの名無しさん:2010/09/16(木) 22:04:39
なんだか年齢計算でググるとアフォみたいなアルゴリズムいっぱい出てくるな
922デフォルトの名無しさん:2010/09/16(木) 22:12:33
>>921
突然唐突なことを言い出す自分に疑問を感じないようなら、
マジで一度精神科を受診した方がいいんじゃないのか。
923デフォルトの名無しさん:2010/09/16(木) 22:14:26
は?
ふつう初対面の人にそんなこと言わないだろ
お前が病院行くべき
924デフォルトの名無しさん:2010/09/16(木) 22:15:50
日付計算はVBの花形ですから
925デフォルトの名無しさん:2010/09/16(木) 22:22:18
これのことか

DateTime birth = new DateTime(year, month, day);
int age = (new DateTime((DateTime.Today - birth).Ticks)).Year - 1;
926デフォルトの名無しさん:2010/09/16(木) 22:44:05
>>922
いるんだよね他人の初人に対して唐突とか突然何言ってんのってイチャモンつける奴がね
ニコ生とかでもそういう奴いるわ
掲示板やらチャットで唐突な事が気になるのはお前が鬱病なんだよ
927デフォルトの名無しさん:2010/09/16(木) 22:47:42
自分のタイムラインに相手もいると思ってんだろね
928デフォルトの名無しさん:2010/09/16(木) 22:57:52
好意的にとらえると
>>921はtwitter向き書き込み
929デフォルトの名無しさん:2010/09/16(木) 23:12:28
>>926
そこまで幸せ回路全開だと、逆に「清清しい」な。
まあ、俺はそんな「清清しい」人間になりたいとは絶対思わないがw

一応真面目なことも書いておくけど、そういう他人の視線に過剰に鈍感な感受性って、
公共の場で平気で鼻糞ほじったり屁をこいたりするオッサンや、道端に座り込んでる餓鬼の
感受性と同じじゃないのか。

俺の感覚じゃ、そんなのは最早動物以下で人間と思えないね。
うちのワンコだって人の目を気にするぞ
930デフォルトの名無しさん:2010/09/16(木) 23:14:26
>>923
ここはパスワード式の仲良し掲示板じゃないから突然唐突な話題が出ることもあるよ
2ちゃん初心者なのかな?
931デフォルトの名無しさん:2010/09/16(木) 23:16:10
>>922=>>929だとしたら君が最初にケンカを吹っかけてきてるわけなのに

>一応真面目なことも書いておくけど、そういう他人の視線に過剰に鈍感な感受性って、
>公共の場で平気で鼻糞ほじったり屁をこいたりするオッサンや、道端に座り込んでる餓鬼の
>感受性と同じじゃないのか。

自分を棚に上げててフイタ
932デフォルトの名無しさん:2010/09/16(木) 23:18:29
つか初心者用スレでキチガイだと叩かれてた奴っぽい。
あまり真面目に触らないのが吉。
933デフォルトの名無しさん:2010/09/16(木) 23:54:09
安価番号ずれてないか?
934デフォルトの名無しさん:2010/09/16(木) 23:55:13
俺は931じゃないけど合ってると思うなww
935デフォルトの名無しさん:2010/09/16(木) 23:58:29
>>922の書き込み内容からしてスレを私物のように扱ってるのが気に食わない
936デフォルトの名無しさん:2010/09/17(金) 00:00:05
ここは人格否定板じゃないので続けるなら他所行け。
937デフォルトの名無しさん:2010/09/17(金) 00:03:51
938デフォルトの名無しさん:2010/09/17(金) 00:12:27
>>937
そっちのスレでも「例外をにぎりつぶす」に絡んでるんだな
一月前にこのスレでも叩かれたのに
本当に馬鹿じゃないの
939デフォルトの名無しさん:2010/09/17(金) 00:20:11
どうでもええがな。
940デフォルトの名無しさん:2010/09/17(金) 00:24:03
>>938
きっと言っても無駄だと思うが、
その君の「俺が」叩いているという主観的事実に過ぎないものと、
議論している主張が正しいか否かという客観的な問題を混同していることに
疑問を感じない感性って、本当にセカイ系のそれそのものだわ。

狂ってるとしか思えん。狂ってると言って悪けりゃ、幼児的。
941デフォルトの名無しさん:2010/09/17(金) 01:31:29
スレタイ読めないキチガイ君がなんか書いても誰も読まんわ
942デフォルトの名無しさん:2010/09/17(金) 11:21:54
これは香ばしい。
943デフォルトの名無しさん:2010/09/17(金) 11:26:09
>>922の精神科ってキーワードはそもそもプログラミングと関係ないからNGワード登録しといた
944デフォルトの名無しさん:2010/09/17(金) 11:58:37
プログラム板にも「そんなことよりクワガタの話しようぜ」的な定型句が欲しいところだな。
945デフォルトの名無しさん:2010/09/17(金) 12:05:54
そんなことよりエディタの背景色の話しようぜ
946デフォルトの名無しさん:2010/09/17(金) 12:06:48
グラマって変な正義感を持った奴が多いよなw
間違った考えの奴は俺が正す!(キリッみたいな思考の押し付けが多い希ガス
他人のコーディングルールを直しまくる病気みたいな人に多い
小さな親切、大きなお世話w
947デフォルトの名無しさん:2010/09/17(金) 12:14:42
そんなことよりインデントの文字数の話しようぜ
948デフォルトの名無しさん:2010/09/17(金) 12:16:53
昆虫(Bug)の話でいいと思うんだ
949デフォルトの名無しさん:2010/09/17(金) 12:26:33
>>947
インデントは最小限に抑えましょう。
elseはやっつけ仕事以外では禁止です。
950デフォルトの名無しさん:2010/09/17(金) 13:14:55
そんなことよりM$の.netでもSIMD使えるように圧力かけようぜー
951デフォルトの名無しさん:2010/09/17(金) 13:15:56
使えるAPIはいふしてなかったか?
952デフォルトの名無しさん:2010/09/17(金) 13:58:01
>>920
ないのか自前でゴリゴリ書けということか…
953デフォルトの名無しさん:2010/09/17(金) 14:32:12
テキストは黒背景に緑文字に限る
954デフォルトの名無しさん:2010/09/17(金) 14:32:38
imeの再変換を行うライブラリはありますか?
API叩かないと無理ですかね?
955デフォルトの名無しさん:2010/09/17(金) 14:49:00
標準ライブラリにはないな
956デフォルトの名無しさん:2010/09/17(金) 14:52:37
TSF for .NETとか誰か書かないかな
957デフォルトの名無しさん:2010/09/17(金) 14:54:21
ラッパーはNyaRuRuちゃんが昔書いてたかもしれない
958デフォルトの名無しさん:2010/09/17(金) 16:16:59
>>951
kwsk
959デフォルトの名無しさん:2010/09/17(金) 16:20:00
ぐぐるこーどに、出てくるのを期待だ。
960デフォルトの名無しさん:2010/09/17(金) 18:04:05
SIMDはJITレベルでサポートする必要があるからMSの外の人がどう頑張っても無理。
もちろんラッパー書いてプラットフォーム呼び出しすればできるはずだけど速度的なメリットがなくなるから全く意味なし。
Mono.Simdというのがあるらしいが、当然Monoの実行エンジンで動かさないと効果はない。
どうしても使いたかったらある程度の大きい単位でまとめてC++で書くのが現実的。
961デフォルトの名無しさん:2010/09/17(金) 18:17:45
うおっしゃああああ連休だああああああああ
962デフォルトの名無しさん:2010/09/17(金) 20:06:49
>>952
ゴリゴリって程の処理じゃないんじゃない?
こういうことじゃないの?
void MoveAllItems(ToolStripItemCollection src, ToolStripItemCollection dst)
{
  var temp = new ToolStripItem[src.Count];
  src.CopyTo(temp, 0);
  src.Clear();
  dst.AddRange(temp);
}
963デフォルトの名無しさん:2010/09/17(金) 21:58:28
昨日の人物だと思われる人間が初心者スレで暴れてるので引き取りに着てください
964デフォルトの名無しさん:2010/09/17(金) 22:00:25
>>963
お前もこのスレの人間なら自分で連れて来いよ。
965デフォルトの名無しさん:2010/09/17(金) 22:14:00
Windows7 で
http://ideone.com/oPuOp
を動かすと、BalloonTip が出せないんですが、なにか設定とかあるでしょうか?

XP では動いていました。(これは最小コードで、実物はもっと複雑ですが)
966デフォルトの名無しさん:2010/09/17(金) 22:21:06
Vistaでも動かなかった
967デフォルトの名無しさん:2010/09/17(金) 22:57:28
通知しない設定になってるとか
おいらのところでは問題なかった
968デフォルトの名無しさん:2010/09/18(土) 00:02:11
ttp://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_03/csharp4_03_01.html

>しかし、そうまでして継承を減らしてデリゲート型で拡張性を持たせるような態度は、決して多数派ではないだろうと思っていた。
>だから、こうして同じような設計のクラスを、しかも.NET Frameworkの中に見たときは目が点になったのである。
>意外と筆者は、勝手に進んでいるようでトレンドを外していないらしい。

全然意味が分からないんだけど誰か解説して。
969デフォルトの名無しさん:2010/09/18(土) 00:08:02
>>968
逆に何が分からんの?
それに同意するかどうかはともかく、何を言ってるかは普通に分かるでしょ
970デフォルトの名無しさん:2010/09/18(土) 00:16:52
DateTimePickerのような親フォームをはみ出して使用できるコントロールを作りたいです

要件は
1.親フォームからはみ出せること
2.ポップアップしたウィンドウをクリックしても親フォームがアクティブであること
3.マウス、キーボードでの操作が出来ること
です。

どうすればこのような機能を実現できますか?
971デフォルトの名無しさん:2010/09/18(土) 00:26:47
現状では西側資本主義社会はもはや崖っぷちに立たされている
そして我がソ連は常に彼らよりも一歩先を進んでいる。
972デフォルトの名無しさん:2010/09/18(土) 00:29:51
むしろ
>ラムダ式を使えば、実はラムダ式内から変数taskは参照できてしまうのだ。
> それにもかかわらず、このパターンを使うのは・・・(略)・・・変数taskにアクセスできなくなるからだ。
が我田引水自画自賛が過ぎる気がする。
ここは普通なら変数taskにはアクセス出来ないから、Func<Task, TResult>を渡す設計に
なっていると解釈すべきじゃないのか?
むりやりラムダ式を使っておきながら、「同じ内容を示す名前が2つもあるのは美しくない」も
ないと思うんだが。まあ川俣だし。
973デフォルトの名無しさん:2010/09/18(土) 00:34:35
>>970
ShowWithoutActivationがtrueを返す枠無しForm
WM_MOUSEACTIVATEでアクティブにしない
取り敢えずこんだけか
974デフォルトの名無しさん:2010/09/18(土) 00:38:40
Webに載せるためのコードでvar使うのって何なの?
こっちは前提知識もインテリセンスもないんだから読んでて戻り値の型分からないんだけど
975デフォルトの名無しさん:2010/09/18(土) 00:39:41
>そうまでして継承を減らしてデリゲート型で拡張性を持たせるような態度は、決して多数派ではないだろう

むしろこの場面でわざわざ継承を使うやつがいるのか聞きたい。
976デフォルトの名無しさん:2010/09/18(土) 00:50:25
object o = new object();

foreach (var n in q1)
{
lock (o)
{
Console.WriteLine("sum={0}×{1}+{1}", sum, n);
sum = sum * n + n;
}
}

いくらなんでもこれはないだろw
977デフォルトの名無しさん:2010/09/18(土) 00:52:41
どっかの言語だとAction1個のために継承したりするね
978デフォルトの名無しさん:2010/09/18(土) 00:58:19
>>976

マルチスレッドの問題点を示すためによく出てくる例を無理矢理PLINQにしたみたいだが
例としては極めて不適切だな
全く並列処理の意味がない
979970:2010/09/18(土) 01:29:24
>>973
ある程度希望した動きになりましたが、キーボードやマウスホイールでの操作が出来ません。
呼び出し元でポップアップウインドウの制御をするしか手はないのでしょうか。
980デフォルトの名無しさん:2010/09/18(土) 01:30:23
>>976
川俣だとなぜか鬼の首取ったように揚げ足取りみたいな批判をする奴もいるけど
これは確かに何のこっちゃ訳わからんなあ....

っていうか@ITもこういう時のためにコメント欄ぐらい付けて欲しいもんだな
981デフォルトの名無しさん:2010/09/18(土) 01:33:00
考えるな
感じるんだ
tanasinnはいつもあなたのそばに
982デフォルトの名無しさん:2010/09/18(土) 01:41:12
>>976
可換じゃない写像計算してるだけじゃん。
何に文句付けてるんだ?
983デフォルトの名無しさん:2010/09/18(土) 01:45:52
>>979
そのポップアップウィンドウの持ち主のコントロールはフォーカスを持ってる
状態のはずなんだから、そいつが必用なユーザー入力をポップアップウィンドウに
通知すれば良いだけじゃないの?

ComboBoxのドロップダウン部分みたいなのを持つカスタムコントロールを
作ってるんだよね?
984デフォルトの名無しさん:2010/09/18(土) 01:49:11
広く、といっても資格の勉強などはおすすめしません。資格というのはあくまで仕事に直結したものを取るべきです。
採用時に資格は一切評価しないといった建前も世間ではよく耳にしますが、折角の機会ですから本当の事を言います。評価します。マイナスの評価です。
仕事に就いていないのに資格の取得などに時間を浪費していたという事実は、少なくとも一分一秒を争う企業活動への参加を目指すなら、悪です。
学生時代のいまから時間の使い方をしっかり意識して生活してください。
社会に出れば仕事を覚えるために学生時代の10倍も20倍もハードな勉強が求められます。
もちろん必要な資格があればその中で取得します。しかしその学習量は社会人が仕事の中で日々習得する知識量のうちのほんのごく一部に過ぎません。
学生が資格の勉強に貴重な時間を費やすのは、子供が折角もらったお年玉を老後の生活資金に貯めておくようなものです。
子供のお小遣いと大人の生活費では一円の重みが違います。同様に、学生と経験を積んだ社会人とでは同じ一時間でも脳の仕事量が全く違うのです。
985デフォルトの名無しさん:2010/09/18(土) 01:53:40
コピペじゃないのかよ。びっくり。
986デフォルトの名無しさん:2010/09/18(土) 01:59:22
え、コピペじゃないの・・・?
987デフォルトの名無しさん:2010/09/18(土) 02:27:49
コピペじゃないなら縦読みするところがあるからよく探しなさいってじっちゃんが言ってた。
988デフォルトの名無しさん:2010/09/18(土) 09:59:50
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で切り替えたらどうなるかな・・・
990デフォルトの名無しさん:2010/09/18(土) 10:26:21
ども。
AnyCPU, X64 とも変化有りませんでした。
991デフォルトの名無しさん:2010/09/18(土) 10:27:33
>>989
関係ないだろ。

>int[] array1 = new int[0x10000000];
int[] array1 = new int[0x10000001];
だとやっぱエラーになるわけ?
992デフォルトの名無しさん:2010/09/18(土) 10:33:10
って、あれ?桁違うのはそんでいいの?
993デフォルトの名無しさん:2010/09/18(土) 10:39:27
>>991
関係ないかどうかはやってみないとわからん
vs2008はデフォルトでAnyCPUだったはずなので
32bitにあわせてそういう制限があるのかもしれないし

やってみた結果として64bit限定にしてもかわらなかったと・・


>>988
暫定対策としてはlistとかそういうので代用するしかないんじゃないの?
それか

int[] array1 = new int[0x10000000];

これを複数個管理するクラスを作ってやりくりするとか・・・
994デフォルトの名無しさん:2010/09/18(土) 10:47:24
とりあえずやった範囲で。

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 が
出てしまいます。

>複数個管理するクラスを作ってやりくり
ええ。よく分かりますが,,,, 避けたいです。
995デフォルトの名無しさん:2010/09/18(土) 10:55:11
配列取るのは実装だけど、操作するクラスかぶせてあたかも大容量とすれば
問題なんてないんじゃ?

そろそろ次スレ立ててくるね。
996デフォルトの名無しさん:2010/09/18(土) 10:57:41
さくさく作成。

C#, C♯, C#相談室 Part62
http://hibari.2ch.net/test/read.cgi/tech/1284775031/
997デフォルトの名無しさん:2010/09/18(土) 10:59:25
>>995
容量+速度ぽいけどね>質問者の理想

ちょっとかぶせるだけでもそんなに速度変わるかなあ
クラスをかぶせるのがいやならクラス作らないでやるしかないね・・・
998デフォルトの名無しさん:2010/09/18(土) 11:00:27
>>988
メモリを確保するには連続した空き領域が必要。
たとえ8GBの空きメモリがあっても、連続していなければ8GBのメモリを
一括で確保する事は出来ない。大量のメモリを必要とする場合には、
小さいサイズのメモリを多数取得するような方法が一般的。

>4G byte を越えるオブジェクトを扱う方法
どうしても必要なら、Unmanagedコードを書いたらいい。
999デフォルトの名無しさん:2010/09/18(土) 11:12:36
俺が999だ!
1000デフォルトの名無しさん:2010/09/18(土) 11:13:47
うめ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。