ふらっとC#,C♯,C#(初心者用) Part31
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/09/29(月) 12:39:47「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part30
http://pc11.2ch.net/test/read.cgi/tech/1219220127/
0002デフォルトの名無しさん
2008/09/29(月) 12:40:21http://pc11.2ch.net/test/read.cgi/tech/1219481054/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
http://pc11.2ch.net/test/read.cgi/tech/1211453941/
Live2
http://pc11.2ch.net/test/read.cgi/tech/1203674757/
初心者のためのプログラミング言語ガイド Part11
http://pc11.2ch.net/test/read.cgi/tech/1218282605/
0003デフォルトの名無しさん
2008/09/29(月) 12:40:49http://www.google.co.jp/
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/
0004デフォルトの名無しさん
2008/09/29(月) 13:20:37ってゲームのセーブデータみたいな移動・コピー不可属性のことか?
あれは自分で好きにプログラム組めないからできる話。
0005デフォルトの名無しさん
2008/09/29(月) 13:24:490006デフォルトの名無しさん
2008/09/29(月) 13:30:13そこまで規制する必要ってのも無いとは思うけどなぁ。
機密文章の持ち出しを禁止するため?
簡単に破られても良いなら、ファイルパスがキーになってファイルの暗号化を解くとかその程度で良いんじゃないかな?
それにしても、NTFSにダビング10とかコピーワンスとかあったらいやだなぁ
保護されたファイルを開くと OSがそのプログラムを監視して そのファイルに類似したデータを作成させないようにしたりして
すごく息苦しくていやになるなぁ。
0007デフォルトの名無しさん
2008/09/29(月) 13:31:590008前スレ993
2008/09/29(月) 13:40:28そうです、フォルダ自身やファイル自身に属性があれば制限が可能になる
のだとは思うのですが、少なくともWindows系ではそういう制限はやはり
存在しない、ということですよね?
あればそれをそのフォルダやファイルの作成者が設定可能になっていれば
できると思うのですが、今後そういうものは追加される可能性はないでしょうか?
0009デフォルトの名無しさん
2008/09/29(月) 13:48:44コピー不可だろうがいくつでもコピーできちゃうでしょ、ここはプログラム板だよ?
ファイラーが提供されたものしかない世界じゃないと無理。
0010デフォルトの名無しさん
2008/09/29(月) 13:52:36> できると思うのですが、今後そういうものは追加される可能性はないでしょうか?
誰かエスパーのひと解読頼む
0011デフォルトの名無しさん
2008/09/29(月) 13:58:54>どこかに書き込みできる権限があれば、コピー不可だろうが
>いくつでもコピーできちゃうでしょ
だから、そのデータ(=フォルダ、ファイル)に色がついていて、
色がナンであるかで、書き込みを制限する属性があれば、という
ことですよ。
>>10
その属性を、それらデータ(=フォルダ、ファイル)の作成者が、
OSのサービス機能(プロパティ->セキュリティタブ、など)を使って
設定すればそれが有効になる、というような仕組みということです。
0012デフォルトの名無しさん
2008/09/29(月) 14:00:56その属性を律儀に守らないと無理だろ。
プログラム書いたことあるのか?
0013デフォルトの名無しさん
2008/09/29(月) 14:02:33だから、例えば、「複製作成」の許可と言った感じで、「削除」の許可
の次あたりに追加してあれば、それをチェックすることで、そのフォルダや
ファイルに色がつくわけで、
そのデータを「書き込み」する時点で、それを操作を制限する、という
仕組みということです。これが可能になれば、複製してほしくないフォルダや
ファイルというものを作ることが可能になるわけです。
0014デフォルトの名無しさん
2008/09/29(月) 14:04:20まあ、ですから、「書き込み」という操作にも影響が及ぶような
仕組みでないといけないわけではありますですが・・・。
0015デフォルトの名無しさん
2008/09/29(月) 14:04:56>>8 ooOO(ファッキュー)
ttp://www.nicovideo.jp/watch/sm2364432
0016デフォルトの名無しさん
2008/09/29(月) 14:05:58Explorerでのコピー操作ならそれでいいかもしれないよ?
でもさ、プログラム上、ファイルデータは単なるバイト配列として扱われるわけ。
で、単なるバイト配列を適当に作ったファイルに書き込むのを制限しようがないよね?
0017デフォルトの名無しさん
2008/09/29(月) 14:13:38確かに、どこまでのレベルで制限するのか、という問題はありますね。
ただ、ファイルシステム上の操作と言われる操作機能では制限される、
ということにしておけば、いわゆる 「ファイラ・ソフト」 レベルでは簡単
にはコピーされないで済む、という感じにではできないでしょうか。
ファイラを、そうやって原初レベルのI/Oの操作から作成されてしまえば
確かにできてはしまうのでしょうが・・・。
0018デフォルトの名無しさん
2008/09/29(月) 14:17:29や書き込みが失敗するように
またほかのプログラムとの通信までできないようにOS側で徹底
的に管理するのか
そこまでやったとしても抜け道は存在するような気がするが
0019デフォルトの名無しさん
2008/09/29(月) 14:18:08少なくとも、Win32APIや.NETFramework上のファイルシステム関係のメソッド
からは制限できる、といった感じで。それをやっても、制限としては価値は
ないでしょうか。
0020デフォルトの名無しさん
2008/09/29(月) 14:22:19フォルダやファイルのデータの中身そのもの仕掛けを作り、
それを所定のAPIやメソッドのコピー操作で書き込むときに
引っ掛ける、という感じまででいいかとは思っています。
0021デフォルトの名無しさん
2008/09/29(月) 14:28:25バックアップソフト作る会社が迷惑蒙るだけだろ
0022デフォルトの名無しさん
2008/09/29(月) 14:37:060023デフォルトの名無しさん
2008/09/29(月) 14:50:53わかりました。アドバイスくださり、
ありがとうございました。
0024デフォルトの名無しさん
2008/09/29(月) 15:15:280025デフォルトの名無しさん
2008/09/29(月) 15:16:590026デフォルトの名無しさん
2008/09/29(月) 15:29:33拡張子を.scrにしたらコピーできなくなるよ
0027デフォルトの名無しさん
2008/09/29(月) 18:14:40HttpWebResponse res = (HttpWebResponse)req.GetResponse();
さらに、webのURLが間違えていたり、たまたまサーバーがダウンしているときに
備え、try〜catchの例外処理を施そう試み
try
{
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
}
catch(Exception e)
{
・・・・・
}
Stream st = res.GetResponseStream();
StreamReader sr = new StreamReader(st, enc);
と記述し直しました。
ところがこの状態でコンパイルを試みると、Stream st = res.GetResponseStream();で
「エラー 1 名前 'res' は現在のコンテキスト内に存在しません。」
というエラーが帰ってきました。try〜catchの例外処理に何か間違いでもあったのでしょうか?
0028デフォルトの名無しさん
2008/09/29(月) 18:21:20それから、直接は関係ないがcatch(Exception)はやめたほうがいい。
0029デフォルトの名無しさん
2008/09/29(月) 18:21:28HttpWebResponse res;
ここだけ外に出してごらん。
003027
2008/09/29(月) 18:28:53HttpWebResponse res;
try
{
res = (HttpWebResponse)req.GetResponse();
}
と変更してみましたが、今度は同じく Stream st = res.GetResponseStream();の部分で
「エラー 1 未割り当てのローカル変数 'res' が使用されました。」
という違うエラーが帰ってくるようになりましたorz・・・
その後ものは試しとtry文の前の命令を
HttpWebResponse res = null;
と書き直してみたところエラーも発生することなくコンパイルが通りました。
これでよかったのでしょうか?
003127
2008/09/29(月) 18:29:37> それから、直接は関係ないがcatch(Exception)はやめたほうがいい。
そうするよう参考書に書かれていたんですが(´・ω・`)・・・
0032デフォルトの名無しさん
2008/09/29(月) 18:36:38本当はMSDNに書いてある形でキャッチするようにしないと
0033デフォルトの名無しさん
2008/09/29(月) 18:40:03それで未初期化のresを使う可能性があるという警告だよ。
tryブロックに入れるか、catchしたらres使う行に行かないようにしなくちゃ。
003427
2008/09/29(月) 19:04:09> 初心者向けの本なんだろうからしょうがない
> 本当はMSDNに書いてある形でキャッチするようにしないと
(WebException e)で受け取り、e.Messageあたりでエラーを表示するようにすればいいでしょうか?
>>33
なるほどresは全てtry文の中に収めたほうが堅牢性が増しましたか。
0035デフォルトの名無しさん
2008/09/29(月) 19:17:35自作?
0036デフォルトの名無しさん
2008/09/29(月) 19:23:25003727
2008/09/29(月) 19:24:30自作です。
よく考えたらStreamで受け取ったデータを見て、フォーマットが正しいか否かで
正しくデータを受信できたかどうか判定するのがいいかもしれません。
GetResponse();
の例外ってあまり使う機会は無いかも知れませんね。
0038デフォルトの名無しさん
2008/09/29(月) 19:30:32> の例外ってあまり使う機会は無いかも知れませんね。
や、普通は503返されたりとかしたときの対応が必要だと思うが
0039デフォルトの名無しさん
2008/09/29(月) 20:17:360040デフォルトの名無しさん
2008/09/29(月) 21:08:34生徒、Aさん Bさん Cさん.... がいます。
それぞれの人に、国語や数学のテストの成績があったとして、
(名前,科目,点数)
というようなデータを、それぞれの人がもつ変数に入れていくプログラムを作りたいと考えています。
ここで、(名前,科目,点数)のデータはイベントでランダムに送られてきます。
Aさん、Bさん、... は、生徒クラスを作成し、1人1インスタンスでnewしたとして、
問題1)Aさん、Bさん、... 別のインスタンスを作成する方法がわからない(それぞれにユニークなインスタンス名を与える方法?)
問題2)問題1が解決したとして、ランダムに送られてきたデータを、それぞれのクラスに振り分ける方法がわからない。
というよりも、なんかもっとスマートな解決策があると思うのですが、、、
0041デフォルトの名無しさん
2008/09/29(月) 21:10:430042デフォルトの名無しさん
2008/09/29(月) 21:11:36つかクラスに振り分けるって何よ
0043デフォルトの名無しさん
2008/09/29(月) 21:20:16「インスタンス名」とは変数名のことだと思うが、そんなものはユニークである必要どころか
名前をつける必要すらない。(データベースのレコードに名前なんて必要ないように)
単純化していえばデータ構造は「生徒クラス」のリストでよく、
要は名前なら名前からそれに一致する「生徒クラス」のインスタンスを
検索できる機能を考えればそれで済む。
それができれば問題2も自動的に解決するでしょ。
0044デフォルトの名無しさん
2008/09/29(月) 21:20:40class クラス:List<生徒> // 生徒Collectionでもおk
{ String 名前; int Get平均点(科目名 科目);}みたいなクラスにAddしていけばいいんじゃない?
0045デフォルトの名無しさん
2008/09/29(月) 21:20:51Data[] data = GetData();
foreach(Data d in data)
{
if(dic.ContainsKey(d.Name) == false)
{
dic.Add(d.Name, new Student(d.Name, d.Subject, d.Point));
}
else
{
dic[d.Name].AddResult(d.Subject, d.Point);
}
}
こんなんかね
0046デフォルトの名無しさん
2008/09/29(月) 21:29:46TeraPad風ですが、プラグインの追加機能などあります
http://www.dotup.org/uploda/www.dotup.org7215.zip.html
0047デフォルトの名無しさん
2008/09/29(月) 21:32:37>>41さん
すいませんでした。
>>42さん
プロパティに名前を入れておき、送られたデータに対して名前が一致するかしらべるメソッドを用意して、一致すれば科目データを入れるというやり方の場合、
すべてのインスタンスにデータを送る方法がわかりません。そして、そういう処理は効率が悪いと思います。
変な説明で申し訳ないです。
>>43さん
「生徒クラス」のリスト、という意味が分かりません。クラスのリスト?クラスをリストにする?っていう意味が・・・
リストの項目にクラスのアドレスを入れておいて呼び出す?
0048デフォルトの名無しさん
2008/09/29(月) 21:44:11そのStudentのコンストラクタ引数は不自然とおもふw
0049デフォルトの名無しさん
2008/09/29(月) 21:48:42こんな感じか
005040
2008/09/29(月) 21:51:08>>44さん
class クラス:List<生徒>
の意味が分かりません。すいません勉強不足です。
Listを継承してるというのは分かるんですが、<生徒>という部分がどういう意味なのか、、、
>>45さん
Dictionaryの次の< > でくくった部分の意味が44さんと同じくどういう意味を示すのか分かりません。
Data[] data = GetData(); の意味が分かりません。要素数を指定しない場合の配列は後で要素数をしていしないといけないのでは?
0051デフォルトの名無しさん
2008/09/29(月) 21:51:59馬鹿丸出しじゃないか
0052デフォルトの名無しさん
2008/09/29(月) 21:59:330053デフォルトの名無しさん
2008/09/29(月) 21:59:35まあしかし、そういうスレでしょ。
>>47
リストが分からないならとりあえず配列だと思えばいいよ。
「生徒クラス」の(インスタンスの)配列。
その配列の中から、名前なら名前を使って目的の「生徒クラス」のインスタンスを
検索する方法を考えればいい。
他の人が書いているようにList<T>とかDictionary<T>を使った方が簡単なんだけど、
いきなりそれらのクラスを理解しろって言っても無理っぽいからまずは配列で
やってみたら?
0054デフォルトの名無しさん
2008/09/29(月) 22:00:47http://ufcpp.net/study/csharp/
http://msdn.microsoft.com/ja-jp/library/618ayhy6.aspx
http://msdn.microsoft.com/ja-jp/library/67ef8sbd.aspx
0055デフォルトの名無しさん
2008/09/29(月) 22:01:080056デフォルトの名無しさん
2008/09/29(月) 22:03:48Dictionary
http://msdn.microsoft.com/ja-jp/library/xfhwa508.aspx
まあこれを読め
配列は
int[] array = GetArray();
...
int[] GetArray()
{
return new int[]{ 1, 3, 5 };
}
こんなことも出来るんだ
0057デフォルトの名無しさん
2008/09/29(月) 22:09:58いいの?
0058デフォルトの名無しさん
2008/09/29(月) 22:14:30複数の強化に対応できない、ってのは意味不明だけど、
>>40の話はとりあえず名前のみで検索できれば必要十分に聞こえるけど。
005940
2008/09/29(月) 22:16:46馬鹿丸出しで申し訳ないですが、みなさんのアドバイスが充分に理解できませんでした。
コメントや参照サイト先をじっくりと読んでみます。
解決の方法は示して頂きましたので、あとは自分で理解してみます。
こんな初心者の為に貴重な時間を裂いていただき本当にありがとうございました。
では
0060デフォルトの名無しさん
2008/09/29(月) 22:27:50それぞれの生徒が教科と点数のセットのコレクションを持てばいい
0061デフォルトの名無しさん
2008/09/29(月) 23:38:39Aさんの国語の成績、数学の成績ってデータが入ってきたら、「A」だけのキーでdicに
入れてたら、片方の成績しか入らないじゃん。
0062デフォルトの名無しさん
2008/09/29(月) 23:42:01* 1 1 *
Student ------ ExamResult ------ Exam
生徒 試験結果 試験
class Student {
public string Name;
// その他、付加情報 (e.g. 学籍番号, etc.)
public List<ExamResult> ExamResults;
}
class Exam {
public string Name;
// その他、付加情報 (e.g. 実施日時, etc.)
public List<ExamResult> Results;
}
class ExamResult {
public Exam Subject;
public Student Student;
public int Score;
}
List<Student> students;
var stu1 = students.Single(s => s.Name == "鈴木"); // 生徒の検索
stu1.ExamResults.Single(r => r.Subject.Name == "国語" && r.Subject.Date == new DateTime(2008, 7, 10)).Score; // 成績の参照
stu1.ExamResults.Add(new ExamResult { Subject = exam1, Score = 80 }); // 成績情報の追加
0063デフォルトの名無しさん
2008/09/29(月) 23:45:32は配列を入れてるZE
0064デフォルトの名無しさん
2008/09/29(月) 23:58:48いや意味わからんよ。
だからDictionary使うのであれば、Valueは「生徒(の成績)クラス」のインスタンスなんだよ?
0065デフォルトの名無しさん
2008/09/30(火) 10:46:45無理して使う位なら普通のクラスにしてインスタンス生成した方が
いいんでしょうか?
インスタンス生成しなくて良いという事位しか分かりません…。
0066デフォルトの名無しさん
2008/09/30(火) 10:57:37Mathとかね
まあ慣れん間はわざわざ作ることもないか
0067デフォルトの名無しさん
2008/09/30(火) 11:15:06分かり易いですね。参考になりました。有り難う御座いました。
0068デフォルトの名無しさん
2008/09/30(火) 13:19:51決してそのクラスがほかのクラスの参照を持つわけではなかったりした時
staticクラスにする方がいいの?
0069デフォルトの名無しさん
2008/09/30(火) 13:31:25007069
2008/09/30(火) 13:38:53同じメソッドを同じ引数で呼び出したらいつも同じ結果が得られるならstaticでおk
0071デフォルトの名無しさん
2008/09/30(火) 16:16:17どういうプログラムを組めばいいでしょうか?
req = (HttpWebRequest)WebRequest.Create("http://hoge.com/ahya.txt");
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
if ("http://hoge.com/ahya.txt".Equals(res.ResponseUri))
{
Console.Writeline("指定されたtxtファイルはありましたよ( ´∀`)b");
}
のようなプログラムを組めばよろしいでしょうか?
それとももっと適切なプログラムがありますか?
0072デフォルトの名無しさん
2008/09/30(火) 16:22:44res.StatusCode が200ならというだけじゃダメなのかな。
0073デフォルトの名無しさん
2008/09/30(火) 16:23:210074デフォルトの名無しさん
2008/09/30(火) 16:29:22FileNotFoundのときにリダイレクトで200 OKな404.html返してきたり
0075デフォルトの名無しさん
2008/09/30(火) 16:42:49それだと HTTP GET してしまうので
req.Method = "HEAD"; するとか
007671
2008/09/30(火) 16:54:42そうなんですよ。リダイレクトするサーバーだと指定したファイルが存在しない
違うページに飛ばされた上で200:OKが返されたりするんで判定に使うには
今一歩信頼性が無いんです。
0077デフォルトの名無しさん
2008/09/30(火) 17:02:39URL完全一致なの?
別の場所にリダイレクトするけど同じファイル名だったりするのはどうなの?
0078デフォルトの名無しさん
2008/09/30(火) 17:03:28リダイレクトされたら存在しないとするってんなら多少は簡単になるが
存在しなくても200 OKを返すって挙動も可能なんだし(負荷が大きくなるから普通はしないだろうが)
007971
2008/09/30(火) 17:08:26はい、指定した場所にURLが一致するファイルが存在しなければ
そのURLは無効というふうに判断したいです。
リダイレクトされた場合は存在しないと判断したいです。
0080デフォルトの名無しさん
2008/09/30(火) 17:14:07Uri uri = new Uri("http://hoge.com/ahya.txt");
if (uri.Equals(res.ResponseUri))
だろうなあ。
0081デフォルトの名無しさん
2008/09/30(火) 18:15:00それ無効にしといて、200帰るかどうかみりゃいいんじゃないのか。
0082デフォルトの名無しさん
2008/09/30(火) 18:18:29そんなのあったのか、知らなかった
0083デフォルトの名無しさん
2008/09/30(火) 19:00:040084デフォルトの名無しさん
2008/09/30(火) 19:07:210085デフォルトの名無しさん
2008/09/30(火) 19:08:130086デフォルトの名無しさん
2008/09/30(火) 19:11:020087デフォルトの名無しさん
2008/09/30(火) 19:12:52今は閲覧目的に限り無償一般公開されてるんだよ
0088デフォルトの名無しさん
2008/09/30(火) 19:52:540089デフォルトの名無しさん
2008/09/30(火) 20:07:15よろしければ御教授ください、お願いします。
0090デフォルトの名無しさん
2008/09/30(火) 20:09:220092デフォルトの名無しさん
2008/09/30(火) 20:31:23プロパティのことか?
強いて言うなら、変数っぽいメソッドを作るための仕様という感じかな?
C#の入門サイトで理解できなかったら、いっそうのこと他の言語のサイトも見てみると理解できることもあるかもしれない。
たとえばTextBoxでTextプロパティがあるけど、これをプロパティを使わないでやるとしたら
textbox1.SetText("hogera");
String hoge = textbox1.GetText();と書かなければならない。
もちろん
class TextBox
{
public String Text;
}
として公開してしまえばtextbox1.Text = "hogera";で書き込み読み込みができるが、
SetText(String value)
{ // ReadOnlyの時は変更禁止 (こういう処理を副作用と言う)
if (!this.ReadOnly) this.str = value;
}
というようなことはできなくなる。これをできるようにするためのものがプロパティ
public String str; // Textの実体。こんなダサイ名前をつけるのはよろしくないけど
public String Text{
get { return this.str;}
set { if (!this.ReadOnly) this.str = value;}
}
これでtextbox1.Text = "hoge"とかができるようになる。
また、副作用のないプロパティは(今後、副作用を設定するかもしれないので必要)
public String Text { get; set;}と書くことができる
009471
2008/09/30(火) 20:43:19どうもです。
req.AllowAutoRedirect = false;
でオートリダイレクトを拒否することができるようになりました( ´∀`)ノシ
0095デフォルトの名無しさん
2008/09/30(火) 20:45:20それだったらメソッドで書けばいいだろ
なんでプロパティ使うんだよ
0096デフォルトの名無しさん
2008/09/30(火) 20:46:52だったら、とはどういう意味?
0097デフォルトの名無しさん
2008/09/30(火) 20:47:170098デフォルトの名無しさん
2008/09/30(火) 20:54:380099デフォルトの名無しさん
2008/09/30(火) 20:55:500100デフォルトの名無しさん
2008/09/30(火) 21:00:250101デフォルトの名無しさん
2008/09/30(火) 21:22:37クリップボードからテキストボックスに文字を貼りつけています。
単に貼りつけると、テキストボックスで文字入力できなくなるので、
・クリップボードの文字をメモリーする。
・クリップボードの文字がメモリーと異なるときは、貼りつける。
・クリップボードの文字がメモリーとおなじときは、なにもしない。
という処理を考えました。
clipboardwatchtimer.Interval = 500;
clipboardwatchtimer.Enabled = true;
private void clipboardwatchtimer_Tick(object sender, EventArgs e){
if (Clipboard.ContainsText()) {
string clipboardTextBefore = (Clipboard.GetText());
System.Threading.Thread.Sleep(200);
string clipboardTextAfter = (Clipboard.GetText());
if (clipboardTextAfter != clipboardTextBefore)
{textBox1.Text = (Clipboard.GetText());}
}}
これで、4回は動くのですが、そのあとは取得できなくなってしまいます。
アドバイスお願いします。
0102デフォルトの名無しさん
2008/09/30(火) 21:27:030103デフォルトの名無しさん
2008/09/30(火) 21:38:31private void clipboardwatchtimer_Tick(object sender, EventArgs e){
if (Clipboard.ContainsText()) {
string clipboardTextAfter = (Clipboard.GetText());
if (clipboardTextAfter != clipboardTextBefore)
{textBox1.Text = clipboardTextAfter;
clipboardTextBefore = clipboardTextAfter}
}}
こうじゃないかな
タイマーの中でThread.Sleepとかやらん方がいいと思うよ
0104デフォルトの名無しさん
2008/09/30(火) 21:44:42何のための機構かよくわからないし
500msごとに200msストップするようなアプリケーションは糞過ぎて使い物にならないと思うんだが
>単に貼りつけると、テキストボックスで文字入力できなくなるので、
では聞くけど、今の状況ならまともに文字入力できるのですか?
何でも良いから適当に文字を入力してみてください。
>clipboardwatchtimer.Inter(ry
・500ms ごとに200msほどユーザの操作を無視する
・その200msの間にクリップボードがたまたま変更されていたら
_・textbox1.Textに入力した文字を削除してクリップボードの内容に置換する
何がしたいのかわからない。
ひょっとして
String clipboradTextBefore = "";
private void clipb(ry_Tick(Object Sender,EventArgs e)
{
if (Clipboard.ContainsText())
{
String clipboradTextNow = Clipboard.GetText();
if (clipboradTextNow != clipboradTextBefore)
{
textBox1.SelectedText = clipboradTextNow;
clipboradTextBefore = clipboradTextNow;
}}}} //行が長すぎるってしかられた
0105デフォルトの名無しさん
2008/09/30(火) 21:49:30なるほど。
ありがとうございました。
0106デフォルトの名無しさん
2008/09/30(火) 22:07:46ありがとうございました。
SelectedTextだと追記なんですね!
ちなみに、いまの状況でいちおう文字入力は試してうまくいってました。
0107デフォルトの名無しさん
2008/09/30(火) 22:13:33だからお前は基礎から学べと言ってるだろ
2度と来るな
0108デフォルトの名無しさん
2008/09/30(火) 22:30:510109デフォルトの名無しさん
2008/09/30(火) 22:42:470110デフォルトの名無しさん
2008/09/30(火) 22:50:13しかし、初心者っていっても程度問題だと俺も思うけどな。
確かに初心者って真面目に学習してても分からないところ出てきたりするから
そういうのを質問するスレ(つまりここ)があっていいと思うんだが、
最初から地道に学習することを放棄してる奴のケツを拭いてやるなんて作業は
普通の人間はお断りだろ。
それ以前に「日本語の文章表現の初心者」まで救ってやる必要なんてさらさらないと思う。
0111デフォルトの名無しさん
2008/09/30(火) 22:52:490112デフォルトの名無しさん
2008/09/30(火) 22:53:550113デフォルトの名無しさん
2008/09/30(火) 22:59:390114デフォルトの名無しさん
2008/10/01(水) 00:04:190115デフォルトの名無しさん
2008/10/01(水) 00:08:170116デフォルトの名無しさん
2008/10/01(水) 00:33:370117デフォルトの名無しさん
2008/10/01(水) 01:03:520118デフォルトの名無しさん
2008/10/01(水) 01:04:590119デフォルトの名無しさん
2008/10/01(水) 01:15:32�@どこに石をおけるかを調べる
置ける場所を保存
どこに置くか選ぶ
置いた場合どの石が裏返るから調べる
相手や自分の置いた石を盤面に反映する
�@ヘ
それぞれどのクラスに記述すればいいかわからなくなる
0120デフォルトの名無しさん
2008/10/01(水) 01:18:51オブジェクト指向な人々から見るといろいろ意見はあるんだろうけど、
あんまり気にせずまとめて作っちゃえばいいんでね?
0121117
2008/10/01(水) 01:20:21死亡フラグですよね?
0122デフォルトの名無しさん
2008/10/01(水) 01:21:16これ読めば?
コンピュータ麻雀のアルゴリズム―AIインターフェイスと思考ルーチンを作る (I/O BOOKS)
0123デフォルトの名無しさん
2008/10/01(水) 01:21:33うん。
0124デフォルトの名無しさん
2008/10/01(水) 01:21:45無理諦めろ
サボってたお前が悪い
0125デフォルトの名無しさん
2008/10/01(水) 01:23:13リバーシのアルゴリズム C++&Java対応―「探索アルゴリズム」「評価関数」の設計と実装 (I・O BOOKS) (単行本)
0126デフォルトの名無しさん
2008/10/01(水) 01:26:15簡単なのは、四隅、端、その他、って感じで順位づけをしておいて、
置けるときに置く、って感じかな。
0127デフォルトの名無しさん
2008/10/01(水) 01:28:39俺昔作った奴あるけど人類よりはるかに強いから
お前が作ったことにして提出したら不正がばれるだろ
0128デフォルトの名無しさん
2008/10/01(水) 01:29:05終盤はきちんと全幅探索して読み切る
0129規制解除ヒャッホーウ
2008/10/01(水) 01:29:11オセロ板クラス
どこに石が置いてあるか
石を置いて石が置ける場所じゃなかったらエラーを返すとかやるクラス
入出力はインデクサとか使って置いたり置いてあるのを調べたりとかか?
相手CPUクラス
石の置いてある箇所からどこに置くのか決めて適切な位置に置く
これが一番ムズそう
審判クラス
順番になったらイベントで通知してくれたり制限時間はかったり
先に謝っておこうなんていうかごめんなさい
0130デフォルトの名無しさん
2008/10/01(水) 01:30:27いいんだよ
0131デフォルトの名無しさん
2008/10/01(水) 01:31:21グリーンだよ
0132デフォルトの名無しさん
2008/10/01(水) 01:35:340133デフォルトの名無しさん
2008/10/01(水) 01:38:460134デフォルトの名無しさん
2008/10/01(水) 01:41:14アホだろ
0135デフォルトの名無しさん
2008/10/01(水) 01:43:210136119
2008/10/01(水) 01:44:23大体そんな感じだろうと思って作ってみたら
CPUクラスで盤面情報を取得したり、どこに置くか?置けるのか?
などが、オセロクラスと機能が微妙にかぶるんですよね
それでこんがらがっちょになるわけで。
よくあるオブジェクト指向の考え方の例で
人間クラス>学生クラス。名簿クラス。なんかがあるけど
こういう考えで作ろうと思うと、非常に難しい
どこに置けるかなどは、オセロ板が考えるんじゃなくて人間が考えるわけで
盤面の情報も頭の中にあるわけで、じゃあ、盤面は石の状態だけ保存させておいたほうがいいのか
とか考えて、でも、CPUクラスごとにルールクラスを保持させるのも変な感じだし
とまあ、こんな感じで途方にくれてます
0137デフォルトの名無しさん
2008/10/01(水) 01:52:17とりあえずCPUは後回しにして
人間二人が交互に打てるところまで作れば?
0138デフォルトの名無しさん
2008/10/01(水) 02:02:48>>131
どうも
>>136
どこに置けるか?とかは
オセロ盤クラスの置いてpublicにするかもわからんなー
そうすればCPU側やUI側(マウスが置けないマスに入ったら×マークを表示するとか)とかからも使えるような気がする
0139デフォルトの名無しさん
2008/10/01(水) 04:02:51dllで昆虫を作ってプログラマーが競い合うものなんだけど
0140デフォルトの名無しさん
2008/10/01(水) 04:16:08イベントはまだ実装してない(Trace.WriteLineしてるだけ)けど、
コメントほとんどなしの状態で240行程度
0141119
2008/10/01(水) 04:17:27Playerという基底クラスを作って
先手、後手の派生クラスを作って処理してみます
0142デフォルトの名無しさん
2008/10/01(水) 07:26:15他のフォームで使う予定はまったく無い、
といった場合、ユーザーコントロールを作るより、
フォームのファイル内に自作コントロール用のクラスを作ったほうがいいですかね?
0143デフォルトの名無しさん
2008/10/01(水) 07:32:46質問ついでに答えてみる。
OOPは、登場人物(モノも含む)を全て洗い出すことから始めてみるといい。
0144デフォルトの名無しさん
2008/10/01(水) 07:35:24いじったことないけど Terrarium?
0145デフォルトの名無しさん
2008/10/01(水) 09:39:46>人間クラス>学生クラス。名簿クラス。なんかがあるけど
ねーよ。
いや例はよくあるけど。
0146デフォルトの名無しさん
2008/10/01(水) 10:33:210147デフォルトの名無しさん
2008/10/01(水) 13:02:16それってコントロール派生?
私的にNativewindow使用が良いなー
0148デフォルトの名無しさん
2008/10/01(水) 16:33:12res = (System.Net.HttpWebResponse)req.GetResponse();
}
catch(WebException e)
{
}
でプロトコルエラー416:RequestedRangeNotSatisfiableが返されました。
この例外をcatchで受け、416が返ってきたときに特定の処理をさせたいと思っています。
catchの中身はどう記述すればよろしいでしょうか?
catch(WebException e)
{
if (e.Status == HttpStatusCode.RequestedRangeNotSatisfiable)
・・・・・
}
と記述したところ、e.StatusとHttpStatusCode.RequestedRangeNotSatisfiableは
型が違うと言われてコンパイルエラーになってしまいました・・・
0149デフォルトの名無しさん
2008/10/01(水) 16:37:390150デフォルトの名無しさん
2008/10/01(水) 16:48:45またかよ。少しはぐぐって自分で調べろ。
「WebException プロトコルエラー」 とかでぐぐっても
解決のヒントになるページがいくつも見つかるだろ。
0151デフォルトの名無しさん
2008/10/01(水) 16:49:01if (WebException.Status == WebExceptionStatus.ProtocolError)
{
if (((HttpWebResponse)e.Response).StatusCode == HttpStatusCode.RequestedRangeNotSatisfiable)
{
とかやるんでないの?
}
}
聞くより検索して、実際にやってみたほうがはやいぜ。
0152デフォルトの名無しさん
2008/10/01(水) 17:56:25System.Windows.Forms.Timerあたりのソースを参考に、
ComponentのサブクラスでNativeWindowを使用
一応、lock, PostMessageもしてるから、多分マルチスレッドでも使える
0153デフォルトの名無しさん
2008/10/01(水) 18:03:45ありがとうございますm(_ _)m
((HttpWebResponse)e.Response).StatusCode == HttpStatusCode.RequestedRangeNotSatisfiable
で通りました。Responseプロパティの中にさらにプロパティStatusCodeがある
とは思い至りませんでした(´・ω・`)
0154デフォルトの名無しさん
2008/10/01(水) 19:00:41要素の変更される処理を施すことは出来ますか?
0155デフォルトの名無しさん
2008/10/01(水) 19:01:19解説本を読む前に質問してます
class1.csってところを下記の様にしたんですけど
エラーになります
どうすればいいですか
Winsockで接続するテストです
何をどうしたらいいのかわかりません
よろしくお願いします
動くように書換えお願いします
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace winsock_tes
{
public class Class1
{string url = "http://www.yahoo.co.jp/";
System.Net.WebClient wc = new System.Net.WebClient();
wc.Encoding = System.Text.Encoding.GetEncoding(51932);
string src = wc.DownloadString(url);
wc.Dispose();
}
}
0156デフォルトの名無しさん
2008/10/01(水) 19:04:280157デフォルトの名無しさん
2008/10/01(水) 19:06:23まずはHelloWorldからやってみないか
0158デフォルトの名無しさん
2008/10/01(水) 19:10:57意味が分かりません
0159デフォルトの名無しさん
2008/10/01(水) 19:54:44マルチうざい
0161デフォルトの名無しさん
2008/10/01(水) 19:59:02マルチじゃないですよ
他すれで聞いたらここを紹介されたので改めてこちらで聞きました
よろしく
>>159
氏ねよ粘着
0162デフォルトの名無しさん
2008/10/01(水) 20:00:39おいおい
>>155は私ですよ
応援はありがたいけど
やりすぎです^^;
0163デフォルトの名無しさん
2008/10/01(水) 20:53:45Dictionary<T>なんてものはBCLに存在しません
0164デフォルトの名無しさん
2008/10/01(水) 20:58:16数字の添え字もNext系の操作も出来ないから無理だろ
0165デフォルトの名無しさん
2008/10/01(水) 21:03:14いまだchar型が存在する理由ってなんでしょうか?
CやC++に慣れ親しんだプログラマ用の救済措置ですか?
0166デフォルトの名無しさん
2008/10/01(水) 21:03:190167デフォルトの名無しさん
2008/10/01(水) 21:04:58パフォーマンスでしょ
文字列から一文字ずつ取り出すような処理を全部一文字のstringにしたら恐ろしいことになりそう
0168デフォルトの名無しさん
2008/10/01(水) 21:07:330169デフォルトの名無しさん
2008/10/01(水) 21:21:31C#ではcharもstringもみなクラス扱いされていますがそんなにパフォーマンスに
違いが出るものですか?
>>168
stringでも1文字だけ格納すれば実質的にcharと同じになると思うんですが。
0170デフォルトの名無しさん
2008/10/01(水) 21:23:380171デフォルトの名無しさん
2008/10/01(水) 21:25:01Charは整数型ですが
0172デフォルトの名無しさん
2008/10/01(水) 21:25:110173デフォルトの名無しさん
2008/10/01(水) 21:25:400174デフォルトの名無しさん
2008/10/01(水) 21:25:58なにw
ユーザー定義型ではない値型で実質プリミティブ型になる。
0175デフォルトの名無しさん
2008/10/01(水) 21:26:15charはクラスじゃねーよカス
処理速度も倍違う
>stringでも1文字だけ格納すれば実質的にcharと同じになると思うんですが。
ならねーよバカ
0176デフォルトの名無しさん
2008/10/01(水) 21:26:170177デフォルトの名無しさん
2008/10/01(水) 21:28:02stringは参照位置だけどcharはユニコードだろ?
0178デフォルトの名無しさん
2008/10/01(水) 21:32:330179デフォルトの名無しさん
2008/10/01(水) 21:33:29int[] だけあれば int もいらないな。
0180デフォルトの名無しさん
2008/10/01(水) 21:34:53stringって内部的にはやっぱりcharの配列なんだよ
fixed (char* p = str)でポインタ取れたりするw
0181デフォルトの名無しさん
2008/10/01(水) 21:36:590182デフォルトの名無しさん
2008/10/01(水) 21:38:020183165
2008/10/01(水) 21:40:110184デフォルトの名無しさん
2008/10/01(水) 21:40:49それは何か変だ。
札は束にしても額が変わるだけだけど。
char と string は点と線くらい違う。次元がそもそも違うというか。
0185デフォルトの名無しさん
2008/10/01(水) 21:43:00救済措置っつーか、C/C++やってて、文字型のない言語に移っても、べつになんにも困らんだろ。
0186デフォルトの名無しさん
2008/10/01(水) 21:43:23char=文字
これはなんでこうなるの?
0187デフォルトの名無しさん
2008/10/01(水) 21:44:030188デフォルトの名無しさん
2008/10/01(水) 21:44:45(という言い方が正しいかどうか分かりませんが)に書くことも、
フォームではない別のクラスに書くこともできると思います。
ある画面内で完結する機能はフォームのソースに書くとか
なるべくフォームのソースには書かないようにするとか
方針はいくつか考えられますが、
C#.NET ではどうするのが主流なのでしょうか?
アドバイスよろしくお願いします。
ちなみに、Javaでコンソールアプリを書いたことはありますが
その程度の経験しかありません。
0189デフォルトの名無しさん
2008/10/01(水) 21:46:000190デフォルトの名無しさん
2008/10/01(水) 21:48:01私も486DXで十分だと思っていた時がありました
0191デフォルトの名無しさん
2008/10/01(水) 21:51:45フォームとはイベントドリブンを処理するわけで条件反射みたいなもん
フォームに直接関係しない機能や重複した機能は別途クラスを用意する
0192デフォルトの名無しさん
2008/10/01(水) 21:52:55愚問だね。
OOPというかクラスを使ったプログラミングが分かればそんな疑問は持たない。
そんなウダウダ疑問を抱くのは一通り理解してからにすべきで、
物事の順序が違うんじゃないのかな?
0193デフォルトの名無しさん
2008/10/01(水) 21:54:12え( ´・ω・)?
0194デフォルトの名無しさん
2008/10/01(水) 22:00:000195デフォルトの名無しさん
2008/10/01(水) 22:00:17主流といえるほど主流な方法はないんじゃないかな
0196デフォルトの名無しさん
2008/10/01(水) 22:01:04�@ボタンが押された
�AFormクラスGUI-----処理するメソッドを呼び出し------>クリップボードを処理するクラス.GetText()
�BFormクラスGUI<-----------文字列を返す-----------クリップボードを処理するクラス
�CFormクラスGUI--------- 文字列を送る------------->テキストボックスに表示//Formクラス内で処理
クリップボードを処理するクラスを作ってしまえば、コンソールアプリにした場合も流用できる
0197デフォルトの名無しさん
2008/10/01(水) 22:13:390198デフォルトの名無しさん
2008/10/01(水) 22:18:000199デフォルトの名無しさん
2008/10/01(水) 22:22:520200デフォルトの名無しさん
2008/10/01(水) 23:55:340201デフォルトの名無しさん
2008/10/01(水) 23:59:130202デフォルトの名無しさん
2008/10/02(木) 00:00:21データに値を入れるときが面倒だなぁ
0203デフォルトの名無しさん
2008/10/02(木) 00:03:46引数のあるコンストラクタはいくつでも作れる
0204デフォルトの名無しさん
2008/10/02(木) 00:03:51メインメソッドに突っ込むってどういう意味ですか?
VC#2008を立ち上げて
ファイル→新しいプロジェクトを開くと
Windowsフォーム、クラスライブラリー、WPFアプリケーション、WPFブラウザ、コンソール、空のプロジェクトとあります
どこを開いてどうすればよいですか?
>>155を動くように教えてください
0205188
2008/10/02(木) 00:06:02フォームに直接絡む機能以外は別のクラスに書く、という感じのようですね。
0206デフォルトの名無しさん
2008/10/02(木) 00:09:02ネタ?
コンソールでプロジェクトを立ち上げると
static void Main(string[] args)
{
}
というのが自動で書かれているからその間に実行させたいものを書く
static void Main(string[] args)
{
Console.WriteLine("hoge");
}
0207デフォルトの名無しさん
2008/10/02(木) 00:09:50よくわからないけど
下記のようなエラーでました
エラー 1 プログラム 'C:\Documents and Settings\don\Local Settings\Application Data\Temporary Projects\Project1\obj\Debug\Project1.exe' は、エントリ ポイントに適切な静的 'Main' メソッドを含んでいません Project1
0208デフォルトの名無しさん
2008/10/02(木) 00:11:47ありがと
今からやってみます
コンソールですね
0209デフォルトの名無しさん
2008/10/02(木) 00:13:06引数は無理なのねーやっぱり
かといって、クラスで定義するといろいろ面倒だったり
例えばListViewのような構造をもった自作クラスを作った場合
listView1.items=listView2.items
なんてしてもsubitemsまではコピーされなかったり、
また、参照コピーになるから、これは参照しているだけだって意識しながら
やらないとどこかで値を変更されたりするし、かといって、privateにしたりすると
値をコピーしたい場合非常に面倒だし
だから、できるだけ構造体でやってるんだけど
みんなどうしてんのかな?構造体なんて数学的な関数以外使わない?
0210デフォルトの名無しさん
2008/10/02(木) 00:16:39最初はフォームに全部書いちゃって、あとで必要になったときに
バラす、ってので十分だろ。
0211デフォルトの名無しさん
2008/10/02(木) 00:17:23だって、Main メソッドがないじゃん。
0212デフォルトの名無しさん
2008/10/02(木) 00:22:02コンソールを開いて>>206さんに教えてもらった箇所に貼り付けました
デバッグしたところ黒色の画面が数秒間出て終わりました
エラー表示とかは無いです
これは成功しているのでしょうか?
下記のコードでは接続を確立しただけ?
それともリクエストしたけど
レスポンスを受け取れない?
どのような状態なのでしょうか?
static void Main(string[] args)
{
string url = "http://www.yahoo.co.jp/";
System.Net.WebClient wc = new System.Net.WebClient();
wc.Encoding = System.Text.Encoding.GetEncoding(51932);
string src = wc.DownloadString(url);
wc.Dispose();
}
0213デフォルトの名無しさん
2008/10/02(木) 00:24:24だからお前は概念から勉強しろと言ってるだろカス
0214デフォルトの名無しさん
2008/10/02(木) 00:24:49ブレイクポイントでもはって確認するか、src をコンソールに出力すれ
0215デフォルトの名無しさん
2008/10/02(木) 00:25:59正確な理由は中の人しか知らないけれど、普通に考えると引数なしの
コンストラクタを用意できると配列確保したとき要素数だけコンストラクタ
呼ばないといけなくなるから、こうなっていると思われる。
・・・というかむしろ 3.0 以降の初期化はイニシャライザのほうが推奨かな
という気がする
後その質問に関して言えば「非常に面倒」というほどでもないとしか。
気になるほどでかいデータセットになるとバインディング(+同期機構利用)前提
で考えるわけだし
0216デフォルトの名無しさん
2008/10/02(木) 00:28:31無駄なコピーが発生する
0217デフォルトの名無しさん
2008/10/02(木) 00:32:20何度もすいません
「C# src コンソールに出力」でググッたんですが
コンソールに出力されるって文字はいっぱい出てくるんですけど
コンソールへ出力の仕方わかりません
「srcをコンソールに出力」
↑これわかるかた教えてください
0218デフォルトの名無しさん
2008/10/02(木) 00:35:57Console.WriteLine(src);
参考書でも買った方が早いよ。俺はもうレスしないから。
0219デフォルトの名無しさん
2008/10/02(木) 00:37:34確かに構造体配列が問題なんだよねぇ。
.NETの規格上は構造体にも引数無しのコンストラクタが作れるんだけど、
配列確保のときには要素ごとにはコンストラクタが呼ばれない。
代わりにArray.Initializeメソッドを使うことになっている。
ttp://msdn.microsoft.com/ja-jp/library/system.array.initialize.aspx
0220デフォルトの名無しさん
2008/10/02(木) 00:37:34〜略〜
Debug::WriteLine(src);
0221デフォルトの名無しさん
2008/10/02(木) 00:43:48>>1
0222デフォルトの名無しさん
2008/10/02(木) 00:44:430223デフォルトの名無しさん
2008/10/02(木) 00:46:53下記のようにしてからデバッグするとエラーになりました手直しできる方お願いします
using System.Linq;
using System.Text;
// debugoncon.cs
using System;
using System.Diagnostics;
public class DebugOnConsole
{
static void Main()
{
Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
Debug.WriteLine("デバッグ・メッセージを出力");
}
}
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string url = "http://www.yahoo.co.jp/";
System.Net.WebClient wc = new System.Net.WebClient();
wc.Encoding = System.Text.Encoding.GetEncoding(51932);
string src = wc.DownloadString(url);
wc.Dispose();
}
}
}
0224デフォルトの名無しさん
2008/10/02(木) 00:49:561行命令文書く度に質問しているのかい?
ごくろうさま。死んでいいよ。
0225デフォルトの名無しさん
2008/10/02(木) 00:51:35サイトへの攻撃とみなして報告しておく
0226デフォルトの名無しさん
2008/10/02(木) 00:51:48そだよ
粘着キモイぞ氏ね
0227デフォルトの名無しさん
2008/10/02(木) 00:52:170228デフォルトの名無しさん
2008/10/02(木) 00:53:35実在するアドレス書いたら駄目だったのか
しらなんだ
これから気をつけるよ
あんまし細かいこと言ってたら神経性の病気になるよ
あなたも気をつけたほうがいいね
0229デフォルトの名無しさん
2008/10/02(木) 00:54:29質問回答以外はあおりですね
さよなら煽りくん
もうこなくていいからね
0230デフォルトの名無しさん
2008/10/02(木) 00:54:420231デフォルトの名無しさん
2008/10/02(木) 00:56:10質問回答以外はあおりですね
さよなら煽りくん
もうこなくていいからね
0232デフォルトの名無しさん
2008/10/02(木) 00:56:30それ>>155へのヒントですよね
メインってのを2個にすればいいんですか?
それとも現在2つあるので1つにすればいいですか?
何から何まですいません
よろしく^^
0233デフォルトの名無しさん
2008/10/02(木) 01:00:06氏ね低学歴。お前には一生プログラム無理
0234デフォルトの名無しさん
2008/10/02(木) 01:00:320235デフォルトの名無しさん
2008/10/02(木) 01:01:05お前は>>231を100万回読んでから氏ねカス
0236デフォルトの名無しさん
2008/10/02(木) 01:01:55質問回答以外はあおりですね
さよなら煽りくん
もうこなくていいからね
0237デフォルトの名無しさん
2008/10/02(木) 01:02:590238デフォルトの名無しさん
2008/10/02(木) 01:03:58お前が低学歴なのはこのスレの住民のせいではない
八つ当たりもほどほどにしておけよハゲ
お前はまず概念理解しろ
それすらもできない低学歴は2度と来るなカス
悔しいのか?悔しいから荒らすのか?
もっとポジティブな思考ができないのかねぇこの池沼はw
0239デフォルトの名無しさん
2008/10/02(木) 01:05:01解決したんじゃなかったのか?
0240デフォルトの名無しさん
2008/10/02(木) 01:06:02わかったよ
あんまし怒らなくていいだろ
仲良くしよう
これからも応援よろしく^^
0241デフォルトの名無しさん
2008/10/02(木) 01:11:26質問回答以外はあおりですね
さよなら煽りくん
もうこなくていいからね
0242デフォルトの名無しさん
2008/10/02(木) 01:14:34てゆーかソース自体に問題は無いような…
using namespace System;
using namespace System::Diagnostics;
using namespace System::Net;
using namespace System::Text;
int main(array<System::String ^> ^args)
{
String ^url = "http://www.yahoo.co.jp/";
WebClient ^wc = gcnew WebClient();
wc->Encoding = Encoding::UTF8;
String ^src = wc->DownloadString(url);
Console::WriteLine(src);
delete wc;
Console::WriteLine("エンターキーで終了。");
Console::ReadLine();
return 0;
}
0243デフォルトの名無しさん
2008/10/02(木) 01:18:34using System;
using System.Net;
using System.Text;
class GetTest {
public static int Main(string[] args) {
WebClient ua = new WebClient();
ua.Encoding = Encoding.UTF8;
string text = ua.DownloadString("http://www.yahoo.co.jp/");
Console.WriteLine(text);
return 0;
}
}
サイトにアクセスする前に Encoding 設定するのが良くないね
DownloadString じゃ無理なのかな
0244デフォルトの名無しさん
2008/10/02(木) 01:22:20>エラー表示とかは無いです
コンソールが勝手に閉じるからだろ
0245デフォルトの名無しさん
2008/10/02(木) 01:27:56>>243
お疲れのところ本当にありがとうございます
>>243さんのコードでエラーなくリクエスト送信は成功していることを確認できました
ありがとうございます^^
0246デフォルトの名無しさん
2008/10/02(木) 01:28:050247デフォルトの名無しさん
2008/10/02(木) 01:28:280248デフォルトの名無しさん
2008/10/02(木) 01:33:42GET するユーティリティの実装ってそうしてるのかな?
今回はとりあえずバイト列として読み込んでそのまま吐いて妥協
WebClient ua = new WebClient();
Stream stream = ua.OpenRead("http://www.yahoo.co.jp/");
StreamReader streamReader = new StreamReader(stream);
Console.WriteLine(streamReader.ReadToEnd());
stream.Close();
return 0;
0249デフォルトの名無しさん
2008/10/02(木) 01:35:35応援ありがとう
ヘッダから文字列取得は今日のところはやめておくよ
ここの>>155に貼り付けたのと
リクエスト成功した>>243さんのコードとの違いを調べてみるよ
ありがと
0250デフォルトの名無しさん
2008/10/02(木) 01:45:372度とくるなカス
0251デフォルトの名無しさん
2008/10/02(木) 02:06:270252デフォルトの名無しさん
2008/10/02(木) 02:59:46{
static void Main(string[] args)
{
Test t = new Test();
t.Str = new List<string>();
t.Str.Add("dsf");
t.Str = new List<string>();
Console.WriteLine(t.Str.Count);
}
}
class Test
{
public List<string> Str;
}
問)この場合コンソールには何が表示されるでしょうか?
0253デフォルトの名無しさん
2008/10/02(木) 04:07:180254デフォルトの名無しさん
2008/10/02(木) 04:24:170255デフォルトの名無しさん
2008/10/02(木) 06:21:08何かひねったのかと思いきや予想通り0なんだけど何が言いたいの…?
0256デフォルトの名無しさん
2008/10/02(木) 09:06:40http://msdn.microsoft.com/en-us/vstudio/products/cc948977.aspx
0257デフォルトの名無しさん
2008/10/02(木) 09:18:07それの日本語記事↓
http://itpro.nikkeibp.co.jp/article/NEWS/20080930/315630/
「詳細は,数カ月以内に発表する予定」だそうだ。
0258デフォルトの名無しさん
2008/10/02(木) 10:37:40とりあえず複数渡したい・返したいときは配列が速い
List<>を可視メンバの戻り値や引数にしたらマイクロソフトのガイドライン違反!
0259デフォルトの名無しさん
2008/10/02(木) 11:11:51最悪半分ぐらいの容量が使われてなかったりするし
気分的に嫌だから作業が終わったらすぐToArrayしちゃう
0260デフォルトの名無しさん
2008/10/02(木) 11:14:52せんせー、Enumerable.ToList がガイドライン違反ですー
0261デフォルトの名無しさん
2008/10/02(木) 11:15:22そういう意味合いだった気がするが
0262デフォルトの名無しさん
2008/10/02(木) 11:25:32自分の知らないところでListの中身が増えたり減ったりするのを許容するってことだろ
じゃあそのListを管理してるのは誰なのよという話になるだろ
0263デフォルトの名無しさん
2008/10/02(木) 11:35:26同じの作ってFxCopで検査したら違反になるよ
ToListやToDictionaryはコンストラクタのヘルパみたいなもんなんだから
>>261の意味合いから考えれば問題ない
0264デフォルトの名無しさん
2008/10/02(木) 11:36:56ToArrayにする作業のほうが時間がかかったりすることはないの?
>>258
可視メンバって、privateメソッドとか?
>>262
なるほど。それはありますね
追加などの作業が終わったら、配列に戻すのがいいのかな
でも、戻り値を配列にした場合、foreach内でそのメソッドを使用するとなると
AddRangeができないから、手間ですよね?
0265デフォルトの名無しさん
2008/10/02(木) 11:39:49publicな型のpublicメンバとprotectedメンバ
0266デフォルトの名無しさん
2008/10/02(木) 11:46:560267デフォルトの名無しさん
2008/10/02(木) 11:48:120268デフォルトの名無しさん
2008/10/02(木) 11:48:14publicで使っちゃだめなのかー
確かにわけわからなくなるもんなー
ガイドライン天才だなー
0269デフォルトの名無しさん
2008/10/02(木) 11:59:57Content.Loadってキャッシュでしょ?
弄る前提でList返すのはダメだろ
配列でも微妙だけど
0270デフォルトの名無しさん
2008/10/02(木) 12:10:27いや中身読んだら終わりなんだけど、中が配列の配列だったからさらに配列にしたくなかっただけ。
まあいったん配列にしますわ。
0271デフォルトの名無しさん
2008/10/02(木) 12:21:100272デフォルトの名無しさん
2008/10/02(木) 12:32:22フィールドじゃなくてプロパティを使うのは後で実装変えられるようにするためだけど、それと同じ
http://msdn.microsoft.com/ja-jp/library/ms182142.aspx
0273デフォルトの名無しさん
2008/10/02(木) 12:33:01List<>を返すということは元の値を直接操作してもいいよと言っているようなものだから
1人でプログラミングする分には覚えていればいいが、多分忘れる
0274デフォルトの名無しさん
2008/10/02(木) 12:50:200275デフォルトの名無しさん
2008/10/02(木) 12:58:11こういう場合どうすればいいんでしょうか?
あと、配列を初期化したい場合どうすればいいですか?
struct Point
{
public int X;
public int Y;
}
class Zahyou
{
public void GetArray()
{
List<Point> pList=new List<Point>();
.
.
return pList.ToArray();
}
}
class Main()
{
Point[] pArr;
foreach()
{
pArr=GetArray();
}
}
0276デフォルトの名無しさん
2008/10/02(木) 12:59:58そいつは新しいListを作り出すメソッドだから問題なし。
内部のListの参照をそのまま見せるのがいけない。
ただしプロパティの場合は予防的コピーを返すことも非推奨となっている。
0277デフォルトの名無しさん
2008/10/02(木) 13:10:590278275
2008/10/02(木) 13:19:15kitai内の座標を保存している配列にコピーしたいんだけど
やり方がわからないんです
foreach(Tekiki kitai in Guntai)
{
kitai.PArray=Zahyou.GetArray();
}
↑だとエラーがでる
Tekikiのデータ構造を
Point[] PArray
ではなくて
List<Point> PList
にすれば簡単に追加できるんだけど
でも、publicでListを返したらだめなんですよね?
こういう場合どうすればいいの?
0279デフォルトの名無しさん
2008/10/02(木) 13:29:42voidなのにreturnしてるとか、
foreachの中に何も書いてないとかは関係してないの?
0280デフォルトの名無しさん
2008/10/02(木) 13:30:170281デフォルトの名無しさん
2008/10/02(木) 13:39:58あとclass Main()ってのもおかしいな
0282275
2008/10/02(木) 13:46:33>>281
すいません。要点だけわかればと思って他はさらっと書いたので
foreach内は実際はいろいろ処理してます。
List<>を返して、AddRangeで追加していたときは普通にいけましたが
配列を返すようにしたら、どうすればいいかよくわかりません
エラー内容
'kitai' は 'foreach 繰り返し変数' であるため、このメンバを変更できません。
0283デフォルトの名無しさん
2008/10/02(木) 13:48:140284275
2008/10/02(木) 13:57:52struct Tekiki
{
public string Name;
public List<Point> pList;
}
class ShoriMain
{
public void SetZahyou()
{
foreach(Tekiki kitai in Guntai)
{
kitai.pList.AddRange(ZahyouKeisan.GetZahyou());
}
}
}
static class ZahyouKeisan
{
public static List<Point> GetZahyou()
{
List<Point> pList=new List<Point>();
//いろいろ計算
return pList;
}
}
こんな感じだとうまくいきます。
GetZahyouをList<>ではなく、配列で返す方法がわからないんです
0285デフォルトの名無しさん
2008/10/02(木) 14:00:56こんなんでいいだろ
AddRangeの中で内部のListのAddRangeを呼んでやればいい
0286デフォルトの名無しさん
2008/10/02(木) 14:07:26Javaとどっちが強い?
0288デフォルトの名無しさん
2008/10/02(木) 14:13:12当然Javaの方が主流。
ただし、Winアプリを作るだけならC#3.0の方が生産性が高い。
スキルとして持っていた方が有利なのはJava、
Winアプリのみを作る状況で生産性が高いのはC#。
Javaの求人の方がまだまだ多いな。
0289デフォルトの名無しさん
2008/10/02(木) 14:20:44linuxでもmacでも動くんだよね?
0290デフォルトの名無しさん
2008/10/02(木) 14:21:040291デフォルトの名無しさん
2008/10/02(木) 14:23:16コレクションなら全て入れられる
配列でもなんでも
0292デフォルトの名無しさん
2008/10/02(木) 14:54:19kitai.pList.AddRange(new List<Point>(ZahyouKeisan.GetToArray()));
適当に記述してたらこれでいけたっぽいんだけど、これでいいのでしょうか?
0293275
2008/10/02(木) 14:57:54struct Tekiki
{
public string Name;
public Point[] pArr;
}
static class ZahyouKeisan
{
public static List<Point> GetZahyou()
{
List<Point> pList=new List<Point>();
//いろいろ計算
return pList.ToArray();
}
}
こういう場合foreach内はどう記述すればいいですか?
0294デフォルトの名無しさん
2008/10/02(木) 14:59:56> エラー内容
> 'kitai' は 'foreach 繰り返し変数' であるため、このメンバを変更できません。
このエラーが重要。
foreach(Kitai kitai in Guntai){
kitai = Zahyou.GetArray(); // (A)
}
(A)のように、foreachの()内部で宣言した変数は
変更できない。だから、エラーがでてるんだと思う。
これが、
foreach(Kitai kitai in Guntai){
kitai.pArr = Zahyou.GetArray();
}
のように、変数のメンバーとかなら変更可能。
0295294
2008/10/02(木) 15:01:39メンバも変更出来ないんだっけ?
0296デフォルトの名無しさん
2008/10/02(木) 15:10:07foreach(var item in collection)
のitem変数はコレクション内のオブジェクトのコピーだから、
構造体配列等の値型のコレクションにおいてそれをやってもダメだよ〜って話。
変数のメンバといってもその変数自体がコピーされたものだから、メンバを変更しても
元のコレクションには当然反映されない。
参照型のコレクションだったらコピーされた変数はそのまま参照が渡されているので、
foreach内でメンバの変更が可能となる。
せっかくC#を使っているのにCでゴリゴリ書いているコードとレベルが変わらんぞ。
0297294
2008/10/02(木) 15:10:48だとすると、forで回すのがよさそう。
for(int i = 0; i < Guntai.Length; ++i){
Tekki kitai = Guntai[i];
kitai.pArr = ZahyouKeisan.GetArray();
}
0298デフォルトの名無しさん
2008/10/02(木) 15:13:19まずnew Listはいらない
kitai.pList.AddRange(ZahyouKeisan.GetToArray());
pListを直接公開するのはオススメしない
>>293
List<Point>を返すメソッドで配列を返しちゃいけない
AddRangeでPointを増やしていく予定があるならpArrは配列にすべきじゃない
あとZahyouKeisanクラスがkitaiの情報をもっていないのに
Zahyouを返せる理由が分からない
0300デフォルトの名無しさん
2008/10/02(木) 15:35:35どうしても配列でやりたいみたいだから書いてみた。
void ShoriMain(){
int now_enemyCount = enemy.pArr.Length;
Point[] tmpArr = ZahyouKeisan.GetZahyou();
int add_enemyCount = tmpArr.Length;
int new_enemyCount = now_enemyCount + add_enemyCount;
//配列の長さを変更
Array.Resize(ref enemy.pArr, new_enemyCount);
//新しい配列を末尾に追加
int count = now_enemyCount;
for (int i = 0; i < tmpArr.Length; i++)
{
count += i;
enemy.pArr[count] = tmpArr[i];
}
}
struct Tekiki{
public string Name;
public Point[] pArr;
}
static class ZahyouKeisan{
public static Point[] GetZahyou(){
List<Point> pList=new List<Point>();
//いろいろ計算
return pList.ToArray();
}
}
0301デフォルトの名無しさん
2008/10/02(木) 15:38:060302300
2008/10/02(木) 15:42:45Tekiki enemy = new Tekiki();
void ShoriMain(){
enemy.pArr.Concat(ZahyouKeisan.GetZahyou());
}
struct Tekiki{
public string Name;
public Point[] pArr;
}
static class ZahyouKeisan{
public static Point[] GetZahyou(){
List<Point> pList=new List<Point>();
//いろいろ計算
return pList.ToArray();
}
}
0303デフォルトの名無しさん
2008/10/02(木) 15:59:34struct Tekiki
{
public string Name;
public void AddPoints(IEnumerable<Point> newPoints){
this.pList.AddRange(newPoints);
}
private List<Point> pList;
public Point[] pArr{
get { return pList.ToArray(); }
}
}
class ShoriMain
{
public void SetZahyou(){
foreach (Tekiki kitai in Guntai){
kitai.AddPoints(ZahyouKeisan.GetZahyou());
}
}
}
static class ZahyouKeisan
{
public static List<Point> GetZahyou()
{
List<Point> pList = new List<Point>();
//いろいろ計算
return pList;
}
}
0304300
2008/10/02(木) 16:07:17当然GetZahyou関数がTekkiの座標計算関係のみに使うのであれば、
Tekiki構造体のstaticメンバにしてもっと簡潔に書くことも出来る。
struct Tekiki
{
public string Name;
public void AddPoints(IEnumerable<Point> newPoints){
this.pList.AddRange(newPoints);
}
private List<Point> pList;
public Point[] ZahyouArr{
get { return pList.ToArray(); }
}
public static List<Point> GetZahyou(){
List<Point> pList = new List<Point>();
//いろいろ計算
return pList;
}
}
class ShoriMain
{
List<Tekiki> Guntai = new List<Tekiki>();
public void SetZahyou(){
foreach (Tekiki kitai in Guntai){
kitai.AddPoints(Tekiki.GetZahyou());
}
}
}
0305デフォルトの名無しさん
2008/10/02(木) 16:50:39- GetZahyouメソッド
× 戻り値がList<T>
- ZahyouArrプロパティ
× 型が配列
× ToArrayが内部状態のコピーとみなせる
てか、それ以前に値型使ってること自体が不適切という指摘をしてあげないと
ttp://msdn.microsoft.com/ja-jp/library/ms229017.aspx
0306デフォルトの名無しさん
2008/10/02(木) 17:02:04javascriptトリガー用の"href=http://hoge.com/#"をクリックしたときにまでNavigate系のイベントが発生するようになるんだが、
コレは仕様なの?(登録先がBody又は対象のA要素のとき発生)
しかも結果的にナビゲートに失敗するから困ってる。
イベント登録しなければ発生しないみたい。
またハンドラの中身が空でもなるみたい。
誰か回避方法知らない?
0307300
2008/10/02(木) 17:47:30すまん良く分からないんだが、戻り値がList<T>の関数がガイドライン違反なのか?
リンク先を見てみたがその記述はどこにあるの?
この場合は特に問題ないと思うんだけどなあ。
ZahyouArrプロパティについても、配列を返すプロパティがもしかしてガイドライン違反?
っていうか俺よくList<T>のカプセル化のときにこういうプロパティをよく使ってた・・・
インデクサを使えってことなのかな。
仮に返されるものが参照型の配列だったりしたら内部を変更される可能性があって良くないとは思うけど、
この場合は構造体の配列だし、private List<Point> pListについては安全なように見えるんだけどな。
内部状態のコピーが危険なのは参照型コレクションだけとかではないの?
いまいち納得出来ん。
まあTekiki構造体についてはクラスにすべきだと言う意見は納得できる。
0308デフォルトの名無しさん
2008/10/02(木) 17:52:370309300
2008/10/02(木) 18:09:52配列を返す操作と内部状態のコピーの時はメソッドを使用して下さいと書いてあったな。
ZahyouArrプロパティ
の代わりに
public Point[] GetZahyouArr(){
return pList.ToArray();
}
とでもしておくか。
しかし戻り値がList<T>のメソッドは使うなという記事は見つけられんかった。
リンク先おせーてくれよ。
0310デフォルトの名無しさん
2008/10/02(木) 18:11:36〜Collectionってやつがうざい
0311デフォルトの名無しさん
2008/10/02(木) 18:22:46だめだというガイドラインがあるなら俺も知りたい
0312デフォルトの名無しさん
2008/10/02(木) 18:24:220313デフォルトの名無しさん
2008/10/02(木) 18:28:440314デフォルトの名無しさん
2008/10/02(木) 18:29:290315デフォルトの名無しさん
2008/10/02(木) 18:30:56http://msdn.microsoft.com/ja-jp/library/ms182142.aspx
Code Analysis Team Blog : FAQ: Why does DoNotExposeGenericLists recommend that I expose Collection<T> instead of List<T>? [David Kean]
http://blogs.msdn.com/fxcop/archive/2006/04/27/585476.aspx
だそうです。
0316デフォルトの名無しさん
2008/10/02(木) 18:31:05特別にいいもの教えてやる。
っ インデクサ
0317デフォルトの名無しさん
2008/10/02(木) 18:32:13ttp://blogs.msdn.com/kcwalina/archive/2004/03/15/89860.aspx
0318デフォルトの名無しさん
2008/10/02(木) 18:35:34それはprivateフィールドのList<T>を公開するなってことでしょ?
そんなことがまずいのはみんな知ってるだろw
static List<Point> GetZahyou()
{
List<Point> pList = new List<Point>();
//いろいろ計算
return pList;
}
このメソッドがガイドライン違反というのが納得できないだけ。
中でnewしたListをいろいろ計算して、その結果を返すメソッドがガイドライン違反という説明にはなってない。
0319デフォルトの名無しさん
2008/10/02(木) 18:41:49それをどういじくろうが誰も困らないし
0320デフォルトの名無しさん
2008/10/02(木) 18:45:040321デフォルトの名無しさん
2008/10/02(木) 18:46:050322デフォルトの名無しさん
2008/10/02(木) 18:49:40わざわざList<T>で返されたら追加することに意味があるのかと思っちゃうじゃないか……
0323デフォルトの名無しさん
2008/10/02(木) 18:54:56List<>を返すのも配列を返すのもかわらなくね?
結局どうすればいいんだろ
0324デフォルトの名無しさん
2008/10/02(木) 18:57:16で、引数や返り値の配列は変更しないというのは暗黙の了解にしとく
0325デフォルトの名無しさん
2008/10/02(木) 18:59:550326デフォルトの名無しさん
2008/10/02(木) 19:01:04だよね
わざわざ、ToArrayしてまたList<>にいれるわけでしょ?
変換するのは無意味な気がするんだが
0327デフォルトの名無しさん
2008/10/02(木) 19:03:32これが言い切れるようなinternalな場合はどうでもいいよ
0328デフォルトの名無しさん
2008/10/02(木) 19:03:520329デフォルトの名無しさん
2008/10/02(木) 19:19:570330デフォルトの名無しさん
2008/10/02(木) 19:21:550331デフォルトの名無しさん
2008/10/02(木) 19:25:540332デフォルトの名無しさん
2008/10/02(木) 19:27:010333デフォルトの名無しさん
2008/10/02(木) 19:34:11まともな設計をお願いします
0334デフォルトの名無しさん
2008/10/02(木) 19:41:17普通に考えたら全部同じ座標になるし、それなら何度もメソッドを実行する意味がない
0335デフォルトの名無しさん
2008/10/02(木) 19:58:19やっぱりガイドライン違反じゃないんだな
0336デフォルトの名無しさん
2008/10/02(木) 20:23:45引数無しなのは質問の要点をわかりやすくするために省略しただけ
実際は玉をよけたり、当たり判定だったりあるし、
敵機の目的地点までの経由地点の座標群を敵機ごとに保持しているだけ
「usingディレクティブがない」と揚げ足取るぐらい蛇足な指摘だと思うんだがな
0337デフォルトの名無しさん
2008/10/02(木) 20:29:41お前がそう思うんなら そうなんだろう お前ん中ではな
0338デフォルトの名無しさん
2008/10/02(木) 20:30:54怒るな
怒ったら負けだ
0339デフォルトの名無しさん
2008/10/02(木) 20:39:390340デフォルトの名無しさん
2008/10/02(木) 20:48:350341デフォルトの名無しさん
2008/10/02(木) 21:03:40作りやすい実装をお願いします
0342デフォルトの名無しさん
2008/10/02(木) 21:30:54IList<T>なら遥かにいいと思っているんだが違う?
0343デフォルトの名無しさん
2008/10/02(木) 21:49:22それを言ったらオブジェクトの中にList<T>が含まれてたら何にも返せなくなっちゃう
0344デフォルトの名無しさん
2008/10/02(木) 21:50:05ラッパを返せばいい
0345デフォルトの名無しさん
2008/10/02(木) 21:56:16ttp://msdn.microsoft.com/ja-jp/library/ms132474.aspx
0346デフォルトの名無しさん
2008/10/02(木) 22:04:540347デフォルトの名無しさん
2008/10/02(木) 22:10:430348デフォルトの名無しさん
2008/10/02(木) 22:14:52オブジェクトを返す場合メソッドを通して値のやり取りをしろってことでしょ?
0349デフォルトの名無しさん
2008/10/02(木) 22:28:04ところが、当然ボタンをクリックするときには、エクスプローラではなく、作っているプログラムがアクティブになってしまうので、アクティブにならないようにしてみました。
しかし、ボタンを押しても全選択はできないままです。
アドバイスお願いします。
namespace CtrlA {
public partial class CtrlA : Form {
const int WM_MOUSEACTIVATE = 0x0021;
const int WA_NOACTIVATE = 3;
public CtrlA() {InitializeComponent();}
protected override void WndProc(ref Message m){
switch (m.Msg) {
case WM_MOUSEACTIVATE:
m.Result = (IntPtr)WA_NOACTIVATE;
return;}
//Console.WriteLine(m.Msg);
base.WndProc(ref m);
}
private void CtrlA_Click(object sender, EventArgs e) { SendKeys.SendWait("^A") ;}
}
}
0350デフォルトの名無しさん
2008/10/02(木) 22:28:11そのリスクの管理ができていればどうしようとかまわないと思う。
ようは外部から参照経由で変更された場合に、
そのオブジェクトを内包させているクラスが
値が変わったことを知ることができないということ。
メソッドの場合はメソッド名で内部の参照をさらしているのか、安全なコピーを返しているのか
区別が付くような名前にしておくとか工夫して置けばよい。
プロパティの場合はメソッドを使うよりはいろいろルールがある。
0351デフォルトの名無しさん
2008/10/02(木) 22:34:21エクスプローラの画面のハンドルが必要になるような。
どうやるかはWin32APIの範疇になる。
0352デフォルトの名無しさん
2008/10/02(木) 22:38:51>そのリスクの管理ができていればどうしようとかまわないと思う。
そのリスクを減らすためのものがガイドラインでしょ?守らないと不幸なことが起きるかもしれないのがガイドライン。
俺仕様がしっかりしてるならそれでもかまわないが、それが通用しないところではガイドラインが役に立つ。
Delphiで言うと、クラス名はTうんちゃらで始めるという習慣があるが、厳密な言語仕様でもないので守る必要はない
ただ、守らない理由なんて無いけどな(Delphi.netは例外)
TTBaseって支援ソフトがあるんだが、これのプラグインSDKにはTTTBasePluginというクラスがあって、1カ所(ry
0353デフォルトの名無しさん
2008/10/02(木) 22:50:36何を継承して何をしたいのか知らんが、
>>344-345をするならAsReadOnly()呼ぶだけじゃん
0354デフォルトの名無しさん
2008/10/02(木) 22:57:18プロパティに関してはそういうガイドラインがあることは承知しているが、
通常のメソッドに関しては見たことがないな。
メソッドの場合は自己責任じゃないかと。
0355デフォルトの名無しさん
2008/10/02(木) 23:08:30ttp://www.amazon.co.jp/dp/0321545613
おk、アジソンからマージンゲット
0356デフォルトの名無しさん
2008/10/02(木) 23:18:33ライブラリにも MessageSecurityVersion とかいうネタクラスが
ありますよ。
この命名規則はさすがにどうなんだろうね
0357デフォルトの名無しさん
2008/10/02(木) 23:30:56あれはよくわからないけどWS-*とかSOAPとかのネーミングルールなんじゃない(笑
0358デフォルトの名無しさん
2008/10/02(木) 23:51:550359デフォルトの名無しさん
2008/10/02(木) 23:58:350360デフォルトの名無しさん
2008/10/03(金) 00:08:32>>315
0361デフォルトの名無しさん
2008/10/03(金) 00:09:20WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005
WSSecurityPolicy11BasicSecurityProfile10 プロパティとか。
ちなみにサンプルコード片。
CustomBinding binding = new CustomBinding();
binding.Elements.Add(
SecurityBindingElement.CreateMutualCertificateDuplexBindingElement(
MessageSecurityVersion.WSSecurity10WSTrustFebruary2005
WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10
)
);
横スクロールはいやというやむを得ない事情により改行を入れさせていただきました
本来識別子なので入れてはいけません
0362デフォルトの名無しさん
2008/10/03(金) 00:13:050363デフォルトの名無しさん
2008/10/03(金) 00:13:11なんだその記事w
日本語でおkなんだがw
0364デフォルトの名無しさん
2008/10/03(金) 00:13:47これはギャグなのか?w
0365デフォルトの名無しさん
2008/10/03(金) 00:15:30ネームスペースというのが使えるのにこれだけ長い名前になるんでしょ?
C言語時代のメソッドや変数の名前って相当長かったんだろうな
0366デフォルトの名無しさん
2008/10/03(金) 00:27:33036740
2008/10/03(金) 00:27:36@"c:\tmp\path"
というような書き方をしますが、 @ ってどういう意味ですか?
0368デフォルトの名無しさん
2008/10/03(金) 00:30:42http://ufcpp.net/study/csharp/st_embeddedtype.html
0370デフォルトの名無しさん
2008/10/03(金) 00:36:55\ -> \\
本来、文字列の中で \ はエスケープなので、\\ と書かなくちゃいけない。
それを \ で済ますことができるようになる
0371デフォルトの名無しさん
2008/10/03(金) 00:37:04「@文字列」ですな。
例えばファイルのパスを記述する時、「\」はエスケープ文字を意味する記号になるので
通常は「"C:\\Windows"」など[「\\」と\を2個記述しなければいけないのですが、
@を先頭に付ければ「\」を文字列として扱い、一つしか記述しなくても済みます。
0373デフォルトの名無しさん
2008/10/03(金) 00:43:01逆。昔はエディタの補完機能なんてのもないし、長い名前付けなかった。
ほんと大昔、初期の初期はプログラムの規模が小さいから
名前の衝突の危険性が低かったからいいんだけど、それはすぐに破たん。
結果どうなったかというと、意味のわからない頭文字略語だらけで、
書いた人にしか意味が分からない名前だらけに。
例えば、>>361 のコードなら、
cb_t b;
add(&b.elem, sbe_create_mcdbe(msg_sec_v10feb05, ws_sec_feb05_11b10)
とかになるんじゃないかと。
0374デフォルトの名無しさん
2008/10/03(金) 00:43:50[概要]タブを開くと、そのファイルの作成者やコメントなどの情報を設定したり
閲覧したりすることができます。これを何かの処置で非表示にすることは
可能ですか?設定は随時行い、表示はさせない、という使い方をしたい
のですが、方法についてご存知の方がいらっしゃいましたらご指導お願いします。
.NETからは、dsofile.dll というDLLで設定と参照ができることはわかったのですが、
これをそのファイルごとに非表示にしたり表示したりできれば思います。
0375デフォルトの名無しさん
2008/10/03(金) 00:48:040376デフォルトの名無しさん
2008/10/03(金) 00:50:550377デフォルトの名無しさん
2008/10/03(金) 00:51:130378デフォルトの名無しさん
2008/10/03(金) 00:53:15とかやっても動くぞ
二つ以上連続の\は勝手にOSが読み替えてくれる
0379デフォルトの名無しさん
2008/10/03(金) 00:54:41仕様です。
IE で見るのが苦痛なサイトを自前で作ってるって笑われてる。
0380デフォルトの名無しさん
2008/10/03(金) 00:55:43専門の校閲係とか雇って分かりやすくしとけよ
0381デフォルトの名無しさん
2008/10/03(金) 00:56:13プログラムというより、OS の設定の領域。
プログラム的には、シェルエクステンションの仕組みでうんぬんかんぬん・・・
0382デフォルトの名無しさん
2008/10/03(金) 00:59:37文字が小さくて
拡大すると、どうでも良い部分も拡大されて読めなくなるのは?
0383デフォルトの名無しさん
2008/10/03(金) 01:11:39仕様です。
JavaScript で文字調整やってやがるから、
フォントサイズいじっても無駄とかだと思う。
拡大鏡の類で拡大すればちゃんと大きくなると思うが。
0384デフォルトの名無しさん
2008/10/03(金) 01:18:44初期設定がアレなだけ
0385デフォルトの名無しさん
2008/10/03(金) 01:32:230386デフォルトの名無しさん
2008/10/03(金) 01:32:350387デフォルトの名無しさん
2008/10/03(金) 02:30:500388デフォルトの名無しさん
2008/10/03(金) 18:53:330389デフォルトの名無しさん
2008/10/03(金) 19:54:51Rubyのアレならこんなのが
ttp://grabbagoft.blogspot.com/2007/12/ruby-style-array-methods-in-c-30.html
0390デフォルトの名無しさん
2008/10/03(金) 20:57:23こんなんでどうだろ?
public static class IListExtensions {
public delegate void Fun<T>(T obj, int index);
public static void EachWithIndex<T>(this IList<T> lst, Fun<T> func){
int index = 0;
foreach (T obj in lst){
func(obj, index++);
}
}
}
class Program
{
static void Main(string[] args)
{
string[] strs = { "Foo", "Bar", "Zot" };
strs.EachWithIndex(
(name, index) => { System.Console.WriteLine("{0}: {1}", index, name); }
);
IList<string> lst = new List<string>();
lst.Add("Hoge");
lst.Add("Fuga");
lst.Add("Sugo");
lst.EachWithIndex(
(name, index) => { System.Console.WriteLine("{0}: {1}", index, name); }
);
System.Console.ReadLine();
}
}
0391デフォルトの名無しさん
2008/10/03(金) 20:58:07これIEnumerable<T>への拡張メソッドにしたほうがいいよね
回りくどくて格好悪い
0392391
2008/10/03(金) 21:07:27わざわざ余計なインスタンス作ってDo呼び出させる意味がわからない
0393デフォルトの名無しさん
2008/10/03(金) 21:13:01> I still like the "Do" keyword in Ruby to signify the start of a block
0394デフォルトの名無しさん
2008/10/03(金) 21:29:54Action<T, int>使えよ
0395390
2008/10/03(金) 21:33:47> Action<T, int>使えよ
おや。そんなものが?
じゃ、こうかな。
public static class IListExtensions {
public static void EachWithIndex<T>(this IList<T> lst, Action<T, int> func){
int index = 0;
foreach (T obj in lst){
func(obj, index++);
}
}
}
0396デフォルトの名無しさん
2008/10/03(金) 21:48:150397デフォルトの名無しさん
2008/10/03(金) 21:50:430398デフォルトの名無しさん
2008/10/03(金) 21:51:420399デフォルトの名無しさん
2008/10/03(金) 22:03:47そういうもん?
じゃ、これで。
public static class IEnumerableExtensions {
public static void EachWithIndex<T>(this IEnumerable<T> lst, Action<T, int> action){
int index = 0;
foreach (T obj in lst){
action(obj, index++);
}
}
}
0400デフォルトの名無しさん
2008/10/03(金) 22:11:48sourceだがここでもsourceでいいのかね
0401390
2008/10/03(金) 22:27:26valuesじゃ駄目だろうか?
public static class IEnumerableExtensions {
public static void Each<T>(this IEnumerable<T> values, Action<T> action) {
foreach (T obj in values) { action(obj); }
}
public static void EachWithIndex<T>(this IEnumerable<T> values, Action<T, int> action){
int index = 0;
foreach (T obj in values){
action(obj, index++);
}
}
}
0402デフォルトの名無しさん
2008/10/03(金) 22:29:27class Class1
{
public Class1 Owner { get{〜} }
}
class Class2 : そlass1
{
public Class2 Owner { get{〜} }
}
0403デフォルトの名無しさん
2008/10/03(金) 22:32:57メソッド名はForEachでいいと思う。
C#だとWithIndexみたいなのは付けずにオーバーロードを使うほうが自然。
public static class EnumerableEx
{
public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
{
foreach (var item in source)
{
action(item);
}
}
public static void ForEach<T>(this IEnumerable<T> source, Action<T, int> action)
{
int index = 0;
foreach (var item in source)
{
action(item, index++);
}
}
}
0404デフォルトの名無しさん
2008/10/03(金) 22:33:570405デフォルトの名無しさん
2008/10/03(金) 22:35:500406403
2008/10/03(金) 22:36:48参考までにこれも
ttp://msdn.microsoft.com/ja-jp/library/system.linq.enumerable.select.aspx
Enumerable.Selectにもインデックス付きのバージョンがあるんだけど
Enumerable.SelectWithIndexとはならない。
0407デフォルトの名無しさん
2008/10/03(金) 22:36:570408デフォルトの名無しさん
2008/10/03(金) 22:38:040409デフォルトの名無しさん
2008/10/03(金) 22:42:16public Class2 Owner1 { get{〜} }
( ^▽^)
0410デフォルトの名無しさん
2008/10/03(金) 22:45:43俺も>>403に一票。てか、俺が書いたとしてもforeachを一行で書くくらいの違いで
クラス名、変数名まで全く同じになりそう
あ、でも型パラメータは一応Enumerableに合わせてTSourceにしとくかな
0411デフォルトの名無しさん
2008/10/03(金) 23:10:13出てきたり、出てこなかったりするんだけど、
何が違うんでしょう?
同じソリューション内にa, b, zの3つのプロジェクトがあったとして、
aからはzのコメントが出てくるのに、bからだとzのコメントが出てこない、
みたいな状態です。
参照設定も同じようになってます。
0412デフォルトの名無しさん
2008/10/03(金) 23:25:52なるほどなるほど
0413デフォルトの名無しさん
2008/10/03(金) 23:32:32名前空間ってあるじゃないですか
あれって使わないものもusingで指定しても大丈夫ですか?
自分がちょっとテストしてみたところ問題ないような感じなんですよ
めんどくさいので全名前空間usingセット作っておいたら便利なのかと思うんです
何か不都合がおきますか?
0414デフォルトの名無しさん
2008/10/03(金) 23:37:32Timerなんか3つあるしな
0415デフォルトの名無しさん
2008/10/03(金) 23:39:39わかりました
横着は駄目ですね
ありがとうございました
0416デフォルトの名無しさん
2008/10/03(金) 23:43:330417デフォルトの名無しさん
2008/10/04(土) 00:06:480418デフォルトの名無しさん
2008/10/04(土) 15:17:260419デフォルトの名無しさん
2008/10/04(土) 15:17:440420デフォルトの名無しさん
2008/10/04(土) 15:26:44どこでも動くってことでおk?
0421デフォルトの名無しさん
2008/10/04(土) 15:28:06.NetFrameworkに限りません
0422デフォルトの名無しさん
2008/10/04(土) 15:44:150423デフォルトの名無しさん
2008/10/04(土) 16:06:44スーパーサイズで良いですか?マックマクにしてやんよ
0424デフォルトの名無しさん
2008/10/04(土) 17:48:38HTMLで好きなようにレイアウト組んで表示させたいんだけど、
WebBrowser使ってできるかな?
画像データはファイルに落とさないこと前提で。
0425デフォルトの名無しさん
2008/10/04(土) 18:02:57それで、<img src="foo:ID"/>とかできるとおもう。
IInternetProtocolとかでぐぐれ
0426デフォルトの名無しさん
2008/10/04(土) 18:07:150427デフォルトの名無しさん
2008/10/04(土) 18:25:09範囲選択、塗り潰し、グラデーションが上手くできなくて困ってる。
塗り潰しはピクセルごとに色を取得してクリックしたとこと同じなら…とやろうとしたがそれだと離れた場所にある同じ色のピクセルも色が変わってしまう。
グラデーションはLinearGradientBrushでやろうとしたが、グラデーションが繰り返されてフォトショとかみたいにならない。
初心者で悪いんだが、助言もらえると助かる。
0428デフォルトの名無しさん
2008/10/04(土) 18:25:210429デフォルトの名無しさん
2008/10/04(土) 18:32:05俺は見たことも使ったことも無いから参考になるかどうかは知らん
0430デフォルトの名無しさん
2008/10/04(土) 18:43:470431427
2008/10/04(土) 19:07:47前に見たんだが、ファイル数多くてどれがどれだか分からないし、さらに理解もできなくて…
オープンソースの奴がある程度は理解できるようにはならないと駄目だよな…
0432デフォルトの名無しさん
2008/10/04(土) 19:35:11ありがとう。
ググってみるわ〜。
むずそうだったらファイルに落とすか、
諦めてDataGridに表示とかにするわ。
>>426
全然おk
0433デフォルトの名無しさん
2008/10/04(土) 19:44:41を上下左右に再帰的に適応していけばできる気がするな
それよりもいい方法があるかもわからんけど
0434デフォルトの名無しさん
2008/10/04(土) 19:59:07極めて正しいが多分今のPCでは実用速度的に厳しいと思う
塗りつぶしは昔から研究されてるからちょっと調べればアルゴリズム色々転がってるよ
0435デフォルトの名無しさん
2008/10/04(土) 19:59:31そのまま再帰で書くとSystem.StackOverflowExceptionしそうだな。
多少きれいじゃなくなるけど、非再帰に書き直さないとな。
スタックを使えばできないこともないと思う。
それと、直接塗りつぶすんじゃなくて、
画像と同じサイズの配列(Bitmapでも可)を用意して 塗りつぶすところと塗りつぶさないところのフラグ(マスク)を作ってから
重ね合わせで塗りつぶせば、グラデーションやテクスチャの流し込みとかにも応用できそう。
あと、塗りつぶす前にマスクをぼかしておけば、よりきれいにぬれているように見えるはず
0436デフォルトの名無しさん
2008/10/04(土) 22:32:15C#はソースの場所と名前空間に特に関連が無いようですが、一般的に従うファイルの置きかたなどあるのでしょうか?
今はVC#がソースを置くディレクトリに全てのファイルをそのまま置いてます
また、クラスとファイルの関係ですが、どうするのが普通なのでしょうか?
Javaみたいに1個のpublic classに対して1個のファイルを作るのが普通でしょうか?
よろしくお願いいたします
0437デフォルトの名無しさん
2008/10/04(土) 22:34:420438デフォルトの名無しさん
2008/10/04(土) 22:37:45> C#はソースの場所と名前空間に特に関連が無いようですが、一般的に従うファイルの置きかたなどあるのでしょうか?
ありません。
> 今はVC#がソースを置くディレクトリに全てのファイルをそのまま置いてます
ファイル数が少ないときはそれでよいかと。
> また、クラスとファイルの関係ですが、どうするのが普通なのでしょうか?
> Javaみたいに1個のpublic classに対して1個のファイルを作るのが普通でしょうか?
一般的にはそんな感じですが、Java と違って、ひとつのファイルに複数のクラスが書けるので、
機能的にまとまったクラス群はひとつのファイルにまとめることもあると思います。
0439デフォルトの名無しさん
2008/10/04(土) 23:02:47レスありがとうございます
参考にさせていただきます
ついでに、もう1個質問です
C#にはパーシャル クラス機能があり、1個のクラスを複数のファイルに分割して記述できると知りました
しかし、使う場面が思いつきません
パーシャル クラスの一般的な使い方とかあるのでしょうか?
0440デフォルトの名無しさん
2008/10/04(土) 23:03:38VS でウィンドウアプリを作れば、プロジェクトがどういう風にパーシャルクラスを
使ってるかわかるよ
0441427
2008/10/04(土) 23:17:19レスThx、参考になった
塗りつぶしアルゴリズムでググってみたら良さげなのが出たからそれを利用してみる事にする。
続けてで悪いんだが、範囲選択はどうしたら出来るか助言を貰いたい。
0442デフォルトの名無しさん
2008/10/04(土) 23:38:10基本的に、機械生成コードと手書きコードを合わせて1クラスにするための機構。
0443435
2008/10/04(土) 23:47:52矩形だけなら始点(sx,sy)と終点(ex,ey)を保持するだけで良いが
それ以外を選択するには、Bitmapで形を保持すると良い
PictBearは選択範囲をBitmapで保存できたから、多分そんな形でやってるはず。
>>442
WPF,XAMLがある今、いらない子?
0444デフォルトの名無しさん
2008/10/04(土) 23:50:45いや、WPF 以外にもいろいろ使われてる。
WPF の XAML も、ビルドの途中で partial class を自動生成してる。
0445デフォルトの名無しさん
2008/10/04(土) 23:50:50形の保持ならGraphicsPathでよかろうよ
0446デフォルトの名無しさん
2008/10/05(日) 00:07:30αチャンネルで持つのが普通な気が。
0447デフォルトの名無しさん
2008/10/05(日) 01:03:010448デフォルトの名無しさん
2008/10/05(日) 01:04:240449デフォルトの名無しさん
2008/10/05(日) 01:05:07ubound
0450デフォルトの名無しさん
2008/10/05(日) 01:05:290452427
2008/10/05(日) 01:11:46教えてもらった方法をなんとか試してみる。
0453447
2008/10/05(日) 01:16:32uboundがVBかorz
0454デフォルトの名無しさん
2008/10/05(日) 01:25:10C#でできますか?
0455デフォルトの名無しさん
2008/10/05(日) 01:28:100456デフォルトの名無しさん
2008/10/05(日) 01:53:29レスありがとうございました
自分は今のところコマンドプロンプトで実行するアプリケーションしか作ってないので、そのうち勉強させてもらいます
すみませんが、またまた質問させてください。
今度は例外処理に関してです。
C#だと、例外は必ずしもtry~catchしなくて良いのでしょうか?
Encoding.GetEncoderメソッドを使うプログラムを考えているのですが、特に例外処理しなくても、コンパイルも実行もできてしまいます
おそらく、このメソッドは存在しない文字コードを指定すると例外を発生させますよね?
そのための例外処理が必要だと思うのですが、どうなってるんでしょ?
Javaで言うところのRuntimeExceptionが出ているのでしょうか?
APIを調べたのですが、ttp://msdn.microsoft.com/ja-jp/library/system.text.encoding.getencoder.aspxを読んでも、例外関係の情報が入手できません。
例外の基本的な処理の考え方や、ドキュメントからの例外情報の入手方法を知りたいです。
よろしくお願いいたします
0457デフォルトの名無しさん
2008/10/05(日) 01:59:56いちいち Java と比べるのはやめれ。
例外処理をしなければ、UnhandledException が出て、アプリが終了するだけ。
0458デフォルトの名無しさん
2008/10/05(日) 09:04:260459デフォルトの名無しさん
2008/10/05(日) 10:33:11すみません、自分はCとJavaとrubyくらいしか、経験が無いもので、、、^ ^;
>例外処理をしなければ、UnhandledException が出て、アプリが終了するだけ。
なるほど
しかし、いきなりアプリが終了するのは厳しいですな
>>458
間違えました
Encoding.GetEncoding(String);でした
ttp://msdn.microsoft.com/ja-jp/library/t9a3kf7c.aspx
見ると、例外の情報も載ってますね
申し訳ありませんが、さらに質問させてください
普通にVC#2008ExpressEditionを使っていると、例外処理を行わなくてもコードが書けてしまいますよね
これを、VC#2008ExpressEditionが自動的に全ての例外を処理しなければ警告を出すような設定にすることはできないのでしょうか?
あと、またまたJavaに例えてしまい申し訳ないのですが、各例外にExceptionとRuntimeExceptionのような違いはないのでしょうか?
よろしくお願いいたします。
0460デフォルトの名無しさん
2008/10/05(日) 10:34:34変な引数与えたときはたいてい ArgumentException。
Java と比べてってことは、「throws リストはないの?」ってことだろうけども。
あれは、「内部実装を外部に漏らしてしまう」って欠点がある割に、
どうせ「面倒だったらException型でcatchしちゃえ」って人が多くて
対して役に立たないから C# では採用しなかった。
0461デフォルトの名無しさん
2008/10/05(日) 10:38:38http://msdn.microsoft.com/ja-jp/library/system.exception_derivedtypelist(VS.80).aspx
例外処理の強要は、Java みたいに throws リストでやるんじゃなくて、
単体テスト書いて、ちゃんとコーナーケースのテストもして、
例外が出たらテスト通さないようにするのがいいと思う。
0462デフォルトの名無しさん
2008/10/05(日) 11:11:25フォームを作成すると、Form1.Designerに以下のような
コードが追加されますが、このSystem.ComponentModel
名前空間のインターフェース、クラスはどのような意味を
持つのでしょうか?ヘルプやHPで調べてもよくわかりません。
private System.ComponentModel.IContainer components = null;
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
}
このフォームにボタンを追加すると、InitializeComponentの
this.components = new System.ComponentModel.Container();
が消えてしまいます。
そこからさらにTimerを追加すると、
this.components = new System.ComponentModel.Container();
が復活し、
this.timer1 = new System.Windows.Forms.Timer(this.components);
が新たに追加されます。
アンマネージドリソースの破棄に関係しているのでしょうか?
詳しく解説しているHP等ありましたら、教えてください。
宜しくお願いします。
0463デフォルトの名無しさん
2008/10/05(日) 11:19:38消えるのは多分使ってないと判断されたから
追加されるのは使うから
IContainerはComponent派生クラスの後片付け(Dispose呼び出し)のルール
自分がDisposeされるときに自分の持ってるComponentもまとめてDisposeするため
0464デフォルトの名無しさん
2008/10/05(日) 11:42:59レスありがとうございます
確かにJava使ってたときもなんでもかんでもExceptionでcatchなさる御仁は多かったですね
うちの会社はルールが厳しくて許されませんでしたけど、下請けに出した古いコードはcatch(Exception e)の嵐…
しかも、何も処理して無いことも多いですし、酷いときはVMが突然終了するコードもありましたね
現実問題、例外処理はどうするもんなんでしょ?
たとえば、ArgumentExceptionとかはそもそもメソッドの使い方を間違えているわけだから、例外が出たらプログラマの責任でテスト失敗てのは納得できます
だから、ArgumentExceptionをcatchして例外処理を記述する必要は無いと思います
しかし、ファイル読み込みに失敗とかのケースはやはりcatchしてなんだかの処理をすべきですよね(少なくともアプリが突然終了はないですよね)
catchして処理すべき例外とプログラマの責任でそもそも例外が出ないようにテストする例外と、なんか、その辺を解説している記事とか本とかないですかね
0465462
2008/10/05(日) 11:43:51レスありがとうございます。
Component派生クラスのオブジェクトをFormの
System.ComponentModel.IContainer componentsに登録させておき、
フォームをDisposeするときに一緒にDisposeさせる…
上記のような処理のためcomponentsが存在している。
といった理解でよろしいでしょうか?
0466デフォルトの名無しさん
2008/10/05(日) 11:47:56うん
0468デフォルトの名無しさん
2008/10/05(日) 11:51:500469デフォルトの名無しさん
2008/10/05(日) 12:21:11親コントロールが子コントロールの領域を描画しなくなって
表示がおかしくなるのを防ぐために設定するのって何だっけ?
変な日本語ですまn
0470デフォルトの名無しさん
2008/10/05(日) 13:06:53厳密に言うとそれだけじゃなくて Container Site Componentの
結合のために存在している。
しかし、この辺は ComponentModel の基本的なことだから押さえた
ほうがいいともいえるけどコンポーネントを作るんじゃなく使うだけ
なら気にしなくてもいいからわかんなくてもいいかも。
0471469
2008/10/05(日) 13:12:09Win32で言うところの
WS_CLIPCHILDREN と WS_CLIPSIBLINGS
を外したいってことなんだが。
0472デフォルトの名無しさん
2008/10/05(日) 16:26:58static void Main(string[] args)
{
try{
//ほげほげ
}
catch(Exception){
MessageBox(e.ToString(), "えら〜");
}
}
0473デフォルトの名無しさん
2008/10/05(日) 16:28:360474デフォルトの名無しさん
2008/10/05(日) 16:32:190475デフォルトの名無しさん
2008/10/05(日) 16:32:58e
0476デフォルトの名無しさん
2008/10/05(日) 16:33:04適当とか未確定とかニュアンスでいいんじゃないでしょうか?
0477デフォルトの名無しさん
2008/10/05(日) 16:37:120478デフォルトの名無しさん
2008/10/05(日) 16:59:130479デフォルトの名無しさん
2008/10/05(日) 17:05:410480デフォルトの名無しさん
2008/10/05(日) 17:13:57普通に想定される処理続行可能な例外はその場でキャッチして適度に処理。
続行出来ないようなのはあえてキャッチせず最上位に任せるか、
ラップして再スローしてやっぱり最上位に任せる。
例外処理って、厳密にやろうとすると細かいルールばかりになって、
しかもかなり慎重に考えないと意味なかったりやたらコーディングが複雑になったりして、
結局シンプルに決めた方がましなことが多い。
0481デフォルトの名無しさん
2008/10/05(日) 17:37:48たとえば変数の場合は出だしが小文字でそれ以降は大文字
例) int variableNumber;
みたいな感じにするのが一般的とされていますが、これと似たような暗黙上のルールは
配列・リストにありますか?
0482デフォルトの名無しさん
2008/10/05(日) 17:54:20暗黙っていうか、それはcamelスタイルって名前がついてる。
MSのクラスライブラリ作成のガイドラインに、なににどのスタイルを使うとか書いてある。
0483デフォルトの名無しさん
2008/10/05(日) 17:58:110484デフォルトの名無しさん
2008/10/05(日) 18:02:200485462
2008/10/05(日) 18:10:02基本的なことなら理解したいのですが、
解説サイトとしてはMSDNの「Visual Studioによるコンポーネント」
のあたりを読むしかないですかね?
コンポーネントのありがたみというかコンポーネントでないと
出来ない事なんかがよくわかりません。
0486デフォルトの名無しさん
2008/10/05(日) 18:56:110487デフォルトの名無しさん
2008/10/05(日) 19:13:51やりたいのは、データをファイルに保存するクラスを作りたいのですが
テキストファイル形式で保存するんじゃなくて、テキストエディタで開いても
みれないデータ形式ありますよね?.exeとか
そんな感じで保存したいんだけどどういう知識が必要なのかな?
保存したいのは計算結果の数値や文字列データです
0488デフォルトの名無しさん
2008/10/05(日) 19:16:59好きにフォーマットを考えて、好きに読み書きすればよろし。
0489デフォルトの名無しさん
2008/10/05(日) 19:45:24だから、普通に書き込んだらテキストファイルで見れるから
そうならないように書き込みたいからやり方教えろって言ってるんだけど
お前メクラか?
0490デフォルトの名無しさん
2008/10/05(日) 19:50:210491デフォルトの名無しさん
2008/10/05(日) 19:52:47>>488は別に煽ってるわけでもないし、ましてメ○ラなわけでもない。
むしろ馬鹿でメ○ラでツ○ボでどうしようもないのは君の方だぞいやマジで。
0492デフォルトの名無しさん
2008/10/05(日) 19:54:08> だから、普通に書き込んだらテキストファイルで見れるから
ならない。
バイナリを見れる、って意味では見れるけどなw
0493デフォルトの名無しさん
2008/10/05(日) 19:59:26BinaryFormatterでシリアライズなんかどうかな
0494デフォルトの名無しさん
2008/10/05(日) 19:59:56count()を教えてもらったんだけどこの関数どうやって使うんですか…?
ググってもそれらしい構文が見つからなくて…
0495デフォルトの名無しさん
2008/10/05(日) 20:01:180496デフォルトの名無しさん
2008/10/05(日) 20:06:59だからお前はオブジェクト指向の概念から学べよ猿
あと、countだと、nullだった場合エラー出るからお勧めできない
countなんて薦めた奴はバカだから放置しろ
0497デフォルトの名無しさん
2008/10/05(日) 20:51:01その人、たぶん Length って言いたかったんだと思うよ。
VBとか他の言語がいろいろ混ざっちゃってたっぽいので。
Split の結果って配列だから、それの長さ調べろってこと。
0499デフォルトの名無しさん
2008/10/05(日) 21:10:30ある整数のセットに対して、最小値(か最大値)を配列で返す機能ってあります
でしょうか?ちょっと探してみたくらいじゃみつかりませんでした。
例
[3,3, 5, 2, 2, 4, 4, 7] => [2,2]
[7,2,3,4,1,,-1,-1,-3,5] => [-3]
0500デフォルトの名無しさん
2008/10/05(日) 21:11:320501デフォルトの名無しさん
2008/10/05(日) 21:15:56new[] { data.Max() }
0502デフォルトの名無しさん
2008/10/05(日) 21:20:37複数あったらその数だけ作るらしいぜ
var max = data.Max();
var result = Array.FindAll(data, x => x == max);
0503デフォルトの名無しさん
2008/10/05(日) 21:35:02var result = array.Where(n => n == min);
でもおk
0504デフォルトの名無しさん
2008/10/05(日) 21:35:34var result = data.Where(n => n == min);
0505デフォルトの名無しさん
2008/10/05(日) 21:41:21早速ためしてから感謝しようとおもっておりましたが、
int[] d = {11,11,22,33,10,10};
d.Min()がない。
というような状況です。もしかして2.0には、Min,Maxないんでしょうか
(Math.Min,Maxはありましたが)
0506デフォルトの名無しさん
2008/10/05(日) 21:55:20Min, Max は 3.0 から。
0507デフォルトの名無しさん
2008/10/05(日) 21:59:09.NET 3.5/C#3.0から
0508デフォルトの名無しさん
2008/10/05(日) 22:07:38{
int max, cnt;
if(arr.Length == 0)
{
return new int[0];
}
max = arr[0];
cnt = 1;
for(int i = 1; i < arr.Length; i++)
{
if(arr[i] == max)
cnt++;
if(arr[i] > max)
{
max = arr[i];
cnt = 1;
}
}
int[] result = new int[cnt];
for(int i = 0; i < cnt; i++)
result[i] = max;
return result;
}
こうかな?
0509デフォルトの名無しさん
2008/10/05(日) 22:10:48もう少し短くまとめろよ・・・情けない
0510デフォルトの名無しさん
2008/10/05(日) 22:17:36C# 3.0 使えという話ではある。
0511デフォルトの名無しさん
2008/10/05(日) 22:18:10double, floatなどでもつかえるようにしてみようとおもいましたが
==, >の比較ができなく困ってしまいました。
class MathEx
{
public static T[] Maxs<T>(T[] arr) where T : IComparable
{
T max;
int cnt;
省略
max = arr[0];
cnt = 1;
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] == max)
cnt++;
if (arr[i] > max)
{
max = arr[i];
cnt = 1;
}
}
T[] result = new T[cnt];
省略
}
}
もうちょい悩んでみます。
0512デフォルトの名無しさん
2008/10/05(日) 22:24:07if (arr[i].CompareTo(max) == 0)
cnt++;
if (arr[i].CompareTo(max) > 0)
0513デフォルトの名無しさん
2008/10/05(日) 22:24:08.CompareTo
0514デフォルトの名無しさん
2008/10/05(日) 22:27:46ありがとうございます。このスレでもでてきたEachForや今回のMaxsのような独自の便利
関数は、みなさんどのように管理されてるんでしょうか??なにかアドバイスあればお願い
します。
0515508
2008/10/05(日) 22:29:30public static int[] Maxs(int[] arr)
{
int max = Int32.MinValue;
int cnt = arr.Length == 0 ? 0 : 1;
foreach(int value in arr)
{
if(value == max)
cnt++;
if(value > max)
{
max = value;
cnt = 1;
}
}
int[] result = new int[cnt];
for(int i = 0; i < cnt; i++)
result[i] = max;
return result;
}
うーん、こうかな…
0516デフォルトの名無しさん
2008/10/05(日) 22:37:19まあ、まずまずだけど、ひとひねりほしいな
例えば再起処理を使うとかさ
forでやるのはダサイ
>>514
管理ってなんぞ?クラスで定義すればいいんじゃねーの?
0517デフォルトの名無しさん
2008/10/05(日) 22:40:250518508
2008/10/05(日) 22:41:450519デフォルトの名無しさん
2008/10/05(日) 22:55:13適当にinternal staticなクラス作って入れとく
よほど汎用的で便利なものでなければプロジェクトごとに書き捨て
0520デフォルトの名無しさん
2008/10/05(日) 22:58:440521デフォルトの名無しさん
2008/10/05(日) 23:00:22「検索」という意味合いのメソッドなら例外は投げない方がいいかも
0522デフォルトの名無しさん
2008/10/05(日) 23:00:59CodeProjectに登録
0523デフォルトの名無しさん
2008/10/05(日) 23:02:17なんという関数型脳w
0524デフォルトの名無しさん
2008/10/05(日) 23:06:52最小値、最大値のセットだけでなく
2番目、3番目、そして一番多くはいってる数とか
だそうとして、
ヒストグラムに一旦入れて、やってみてたけど、朝までかかり
そうなかんじなんで、つかーれたのでエロみてくる。
0525516
2008/10/05(日) 23:14:49まず、配列をList<>に入れる
その後。Sort()
あとは言わないでもわかるな?
0526デフォルトの名無しさん
2008/10/05(日) 23:18:270527デフォルトの名無しさん
2008/10/05(日) 23:25:43あるいはDictionary.TryGetValueみたいに可否と結果を別に表す方法もあるし。
0528デフォルトの名無しさん
2008/10/05(日) 23:26:18List<>に入れるときはforを使わず再帰処理を使うんですね
わかります
0529デフォルトの名無しさん
2008/10/05(日) 23:28:440530516
2008/10/05(日) 23:31:09その要素に-1を代入
また、要素から最大値を抜き出す
最初に取り出した最大値より小さい場合は
唯一の最初のが最大値
あとはわかるな?
0531デフォルトの名無しさん
2008/10/05(日) 23:32:19歪度とかCV、σとか無意味につけてしまった。
0532デフォルトの名無しさん
2008/10/05(日) 23:37:56整数だからマイナス数値ばっかのセットだってあるんだよね
0533デフォルトの名無しさん
2008/10/05(日) 23:42:09try
{
int index = 0;
for(;;)
{
if(name == list[index++].name)
{
break;
}
}
return list[index];
}
catch(ArgumentOutOfRangeException)
{
return null;
}
//int count = list.Count;
//for(int i = 0; count > i; i++)
//{
// if(name == list[i].name)
// {
// return list[i];
// }
//}
//retnrn null;
0534デフォルトの名無しさん
2008/10/05(日) 23:45:08foreachのほうが早い
0535デフォルトの名無しさん
2008/10/05(日) 23:52:39要素は全部0以上とか元の配列を破壊してもいいとか勝手な条件付けすぎ
0536デフォルトの名無しさん
2008/10/05(日) 23:53:23最大値が負の数だったら?
0537デフォルトの名無しさん
2008/10/06(月) 00:00:400538デフォルトの名無しさん
2008/10/06(月) 00:08:52>>536
屁理屈言うな
あくまで>>505の規格に即しただけ
誰が符号付整数なんて条件出したんだ?
0539デフォルトの名無しさん
2008/10/06(月) 00:11:540540デフォルトの名無しさん
2008/10/06(月) 00:12:050541デフォルトの名無しさん
2008/10/06(月) 00:18:21が教科書すら全部研究室おいたまま10年以上たっとるな。
0542デフォルトの名無しさん
2008/10/06(月) 00:36:00ArgumentOutOfRangeExceptionとか
InvalidOperationExceptionとか
中の人以外が勝手に使ってもいいの?
0543デフォルトの名無しさん
2008/10/06(月) 00:46:30そっちの方が悩ましい問題だ。
こんなのベタにやればいいだけじゃん。
間違いなく(負の数について簡単に説明してやりさえすれば)小学生でも書けるコードにしか思えないんだが。
0544デフォルトの名無しさん
2008/10/06(月) 00:47:13ApplicationExceptionは黒歴史になりました
0545デフォルトの名無しさん
2008/10/06(月) 00:51:22小学生でも書けるかもしれないが、万人が使いたくなるような
汎用的なもの、もしくは、ロジックがみためにも美しいもの
をつくるのは、難しいぞ。
そんなに簡単に書けるコードだというのなら、手本をみせてほしい。
ヒストグラムに入れるという方法が私には、なるほど!と思わせてくれた。
0546デフォルトの名無しさん
2008/10/06(月) 00:57:52何を言っているのか意味がわからん。
汎用的?
汎用的かどうかがコードの書法によって変わるとでも言うのか?w
0547デフォルトの名無しさん
2008/10/06(月) 01:02:27>>545は概念から学べ
0548デフォルトの名無しさん
2008/10/06(月) 01:04:260549デフォルトの名無しさん
2008/10/06(月) 01:06:42C#とは関係ない
0550デフォルトの名無しさん
2008/10/06(月) 01:13:31それ自体はいいと思うんだが、だからといって三平方の定理レベルの話題で
悩むのはヤバいだろう。
0551デフォルトの名無しさん
2008/10/06(月) 01:17:200552デフォルトの名無しさん
2008/10/06(月) 01:22:04メルセンヌツイスターなんていらんわ。
0553デフォルトの名無しさん
2008/10/06(月) 01:25:340554デフォルトの名無しさん
2008/10/06(月) 02:16:15メソッドオーバーロードで解決できるから
この質問いつも出るからテンプレに入れないか?
0555デフォルトの名無しさん
2008/10/06(月) 02:18:06C++もメソッドオーバーロードは実装してません?
0556デフォルトの名無しさん
2008/10/06(月) 02:21:44デフォルト引数なんていう分かりにくいものは使わないようにしようという方針
0557デフォルトの名無しさん
2008/10/06(月) 03:12:090558デフォルトの名無しさん
2008/10/06(月) 03:46:50多重定義もいいですけどコードが冗長になって保守・管理が面倒くさくなりそうですが・・・
0559デフォルトの名無しさん
2008/10/06(月) 08:35:26どっちがなんて議論じたい意味なし
それとシグニチャと呼び方もよろしくない、デフォルト引数は
0560デフォルトの名無しさん
2008/10/06(月) 08:49:34ある機能の説明がオーバーロードされたメソッドごとにあるから
必然的に重複が多くなるし
0561デフォルトの名無しさん
2008/10/06(月) 09:13:27単に、無い、という方が安全だよね。
0562デフォルトの名無しさん
2008/10/06(月) 10:05:260563デフォルトの名無しさん
2008/10/06(月) 10:16:24それを欠点と思ってるようじゃC#は向いてないよ
0564デフォルトの名無しさん
2008/10/06(月) 10:18:40・・・
}
で済むところを
public void foo(){
foo(true);
}
public void foo(bool bar){
・・・
}
なんてダラダラ書くのは無駄すぎるな
0565デフォルトの名無しさん
2008/10/06(月) 10:29:430566デフォルトの名無しさん
2008/10/06(月) 10:50:240567デフォルトの名無しさん
2008/10/06(月) 12:42:120568デフォルトの名無しさん
2008/10/06(月) 12:43:360569デフォルトの名無しさん
2008/10/06(月) 13:06:49C++ならもっと簡単に書けるのに、とか思ってしまう。
0570デフォルトの名無しさん
2008/10/06(月) 13:15:31C++の方が簡単に書けるならC++で書けばいい
DllImportだってC++/CLIによるラップだってできるんだから
0571デフォルトの名無しさん
2008/10/06(月) 13:20:35C#をコンソールからコンパイルする方法を知りたいです。
csc filename.cs
でよいらしいのですが、cscにパスが通っていないようです。
cドライブをcscで検索しても見つからないです。
どなたかご教示いただけないでしょうか。
0572デフォルトの名無しさん
2008/10/06(月) 13:25:26それのSDKコマンドプロンプト使え
0573デフォルトの名無しさん
2008/10/06(月) 13:43:18ないです。
Microsoft Visual C# 2008 Express Edition
はあります。
普通の(WindowsXP標準の)コマンドプロンプトではだめなんですか?
0574デフォルトの名無しさん
2008/10/06(月) 13:50:10コンパイラのパスは環境によって違うかも分からん
もしくは環境変数PATHにC:\WINDOWS\Microsoft.NET\Framework\v3.5をついかして
csc filename.cs
とかシステム環境変数に入れたくなければ
set PATH=C:\WINDOWS\Microsoft.NET\Framework\v3.5;%PATH%
みたいなバッチファイルを用意してそれを使うとか
0575デフォルトの名無しさん
2008/10/06(月) 13:51:35にあるからなあ、検索時Windowsのディレクトリは除外してたかな。
0576デフォルトの名無しさん
2008/10/06(月) 13:55:05探してパス通ったとこにコピーしておいてみては。
0577デフォルトの名無しさん
2008/10/06(月) 13:57:50あ、ありました。Prorgam Fliesばっかり探してました。
Windowsの下だったのですか。
検索はシステムファイルは除いていたかもしれません。
ありがとうございました。
0578デフォルトの名無しさん
2008/10/06(月) 16:31:50このメソッドは引数を取るようにすべきだと思う?
それとも必要ならクラス内のフィールドやプロパティを読めばいいわけだから
そもそもメソッドに引数なんて指定する必要も無いと思う?
0579デフォルトの名無しさん
2008/10/06(月) 18:12:140580デフォルトの名無しさん
2008/10/06(月) 18:19:10フィールドにあるものを利用するならわざわざ引数でやらなくてもいい
ほかのクラスやプロジェクトで利用するようなメソッドなら引数などを考えないといけないけどね
0581デフォルトの名無しさん
2008/10/06(月) 18:29:09VC#2008無料版をインストールしたのですが.netFramework SDKのインストールも必要ですか?
それともVC#導入時に組み込まれていますか?
0582デフォルトの名無しさん
2008/10/06(月) 18:35:03できればMSDN Library for Visual Studio 2008 SP1を
必要になったらMicrosoft Windows SDK for Windows Vistaを
0583デフォルトの名無しさん
2008/10/06(月) 18:41:17ありがとう
0584デフォルトの名無しさん
2008/10/06(月) 18:44:06メソッド間の引数のやりとりだけで実現可能な場合は
わざわざフィールドにする必要ないだろうか?
いまいち変数をフィールドで表現すべきか、メソッド間の引数のやりとりですます
べきかの使い分けが分からないんだが。
フィールドってある意味一昔前のグローバル変数みたいなものだから
安易に多用するのは慎むべきだよな?
0585デフォルトの名無しさん
2008/10/06(月) 18:51:59privateにしておけば問題ないはずだけど
多分、そのソースに必要な改良はクラスに分割することじゃないかな?
大部分のメソッドはそのフィールド変数を利用しないとするならば
そのフィールド変数は混乱の元だし、そのフィールドを必要とする
メソッドと一緒にクラス化するべき
引数を取るかどうかの判断は、そのメソッドをpublicにするかもしれない場合
0586デフォルトの名無しさん
2008/10/06(月) 18:58:12裏を返せばそのクラスのフィールドを使わないメソッドは積極的に
違うクラスに分離していけ、ということ?
0587デフォルトの名無しさん
2008/10/06(月) 19:16:360588デフォルトの名無しさん
2008/10/06(月) 19:18:29フィールドを使いたい、などとは思わないはず。
もしそんな欲求に駆られるとしたら何か考え方が間違ってると思うよ。
0589デフォルトの名無しさん
2008/10/06(月) 20:11:240590デフォルトの名無しさん
2008/10/06(月) 20:16:53public void Swap(int a,int b)
{
//abの値をスワップ
}
↑ならメソッドの機能を忘れてても直感的どういう動作をするのかわかる
public void Swap()
{
//フィールド変数のa,bの値をスワップ
}
↑これだとaとbはどういう型なのか、プログラム内でどういう意味を持つ変数なのか
毎回思い出したりしなければならない
0591デフォルトの名無しさん
2008/10/06(月) 20:20:50のちのち見返した場合わかりやすい
0592デフォルトの名無しさん
2008/10/06(月) 20:22:450593デフォルトの名無しさん
2008/10/06(月) 20:24:00どんな釣りだよ
0594デフォルトの名無しさん
2008/10/06(月) 20:39:560595デフォルトの名無しさん
2008/10/06(月) 20:42:270596デフォルトの名無しさん
2008/10/06(月) 21:01:180597デフォルトの名無しさん
2008/10/06(月) 21:23:11HTTPリクエストを飛ばしてレスポンスを拾うテストツールを作っています。
デバッグ用なので、生のリクエスト文字列を送り、生のレスポンスを拾いたいため、
TcpClientを使って、HTTPヘッダもユーザが入力できるようにしました。
そこで困っているのですが、TcpClientでの統合Windows認証のやり方がわかりません。
TcpClientで統合Windows認証は可能でしょうか?可能であればどのようにすれば良いのでしょうか。
不可能であればHttpWebRequest等の代替手段を検討しなければ行けないのですが、
統合Windows認証が可能で、ヘッダも含めた生のHTTPリクエストを設定し、生のHTTPレスポンスを
取得できるクラスのようなものはありますでしょうか。
よろしくお願いします。
0598デフォルトの名無しさん
2008/10/06(月) 21:24:25そこに記述したほうがいい?それともMain()関数があるところの下につらつら
クラスを追加していってもいいんだろうか?
0599デフォルトの名無しさん
2008/10/06(月) 21:29:400600デフォルトの名無しさん
2008/10/06(月) 21:30:090601デフォルトの名無しさん
2008/10/06(月) 21:31:17UMLとか覚えたほうがいいのかねぇ
0602デフォルトの名無しさん
2008/10/06(月) 21:38:35一つのクラス内でしか使わなくて外に見せる必要もない型って案外多いよ
0603デフォルトの名無しさん
2008/10/06(月) 21:49:260604デフォルトの名無しさん
2008/10/06(月) 21:56:32>>596
0605デフォルトの名無しさん
2008/10/06(月) 22:00:110606デフォルトの名無しさん
2008/10/06(月) 22:02:580607デフォルトの名無しさん
2008/10/06(月) 22:04:27どうも(*^ー゚)b
>>600
Javaって一つのファイル内にクラスをつらつら書き連ねていくの?
0608デフォルトの名無しさん
2008/10/06(月) 22:17:23それらをツリービューで表示されるから、どのクラスがどのクラスと関連があるのかとか
わからなくなるんだよね
関連図をUML風に表示する機能があればいいんだけど
プロエディションならあるんだっけ?
0609デフォルトの名無しさん
2008/10/06(月) 22:21:45HttpWebRequest なら CredentialCache か何か使って NTLM 認証が可能。
TcpClient を使うなら、パケットキャプチャしてやりとりを確認すれ。
でもさー。Proxy 通れないケースが多いから、インターネット経由だと
かなり厳しいと思うよ。
0610デフォルトの名無しさん
2008/10/06(月) 22:28:51デフォルトスコープ(internal相当)のクラスはその限りではない。
関連のあるデフォルトスコープクラスはまとめてよい。
ただ、public enumをいちいち別ファイルにさせられるのはちとつらいね。
C#の場合はpublicなenumやらdelegateやらいろいろあるから分けてられないよ。
0611デフォルトの名無しさん
2008/10/06(月) 22:36:33HttpWebRequestのCredentialCacheで認証して、
GetRequestStreamでStream取得してそこに書き込めばできそうですね。
ありがとうございます。
ちなみに、
>でもさー。Proxy 通れないケースが多いから、インターネット経由だと
>かなり厳しいと思うよ。
これってTcpClientに対してのコメントですか?
0612デフォルトの名無しさん
2008/10/06(月) 22:36:330613デフォルトの名無しさん
2008/10/06(月) 22:37:450614デフォルトの名無しさん
2008/10/06(月) 22:39:280615デフォルトの名無しさん
2008/10/06(月) 22:41:19Cが文法なら大まかに覚えてる〜程度の素人です
他は無知です
0616デフォルトの名無しさん
2008/10/06(月) 22:47:11preインクリメントとpostインクリメントのコストの違い
ttp://d.hatena.ne.jp/Seasons/20080527/1211911965
0617デフォルトの名無しさん
2008/10/06(月) 22:50:28スレタイぐらい見ろ
0618デフォルトの名無しさん
2008/10/06(月) 22:52:10すいません、HttpWebRequestのGetRequestStreamの使い方を調べてみたんですが、
ヘッダも含めて、直接HTTPリクエストを書き込める訳では無いみたいですね。
デバッグ用なので、中のデータがどうなっているのかを見るのが最優先なのですが、
そういうリクエストの指定ってできないものでしょうか。
0619デフォルトの名無しさん
2008/10/06(月) 22:56:02マイコミが初心者テキストとしてもリファレンスとしても使いやすい
マイコミが理解できるレベルならMSDNで十分だろう
0620デフォルトの名無しさん
2008/10/06(月) 22:57:120621デフォルトの名無しさん
2008/10/06(月) 23:00:010622デフォルトの名無しさん
2008/10/06(月) 23:00:16書き出す(読み出す)方法はありますか?
0623デフォルトの名無しさん
2008/10/06(月) 23:03:03「前置の時と」同じコードに最適化される
0624デフォルトの名無しさん
2008/10/06(月) 23:08:25違う。NTLM 認証の制限。ケルベロスならいけるのかもしれんけど、
試してないからわからん。
>>618
つかさ、デバッグ用なら、なんでパケットキャプチャしないの?
0625デフォルトの名無しさん
2008/10/06(月) 23:09:10どうまとめんのさ
複数フレームの画像ならTIFFとかGIF
単に詰め込むだけで良いなら適当なヘッダつけて突っ込んでけ
0626デフォルトの名無しさん
2008/10/06(月) 23:13:380627デフォルトの名無しさん
2008/10/06(月) 23:16:08任意の画像をそこに貼り付けて
適当に保存すればいいんじゃないの?
0628デフォルトの名無しさん
2008/10/06(月) 23:17:41話はややずれるけど
private int a, b;
public void Swap(int a,int b)
{
this.a = a
this.b = b
}
という書き方って推奨されている?本来は
private int a, b;
public void Swap(int _a,int _b)
{
a = _a
b = _b
}
という書き方の方が正しいのかもしれないけど・・・
0629デフォルトの名無しさん
2008/10/06(月) 23:20:59下はガイドライン違反
下のように書くとすれば、フィールドのa,bの方に_を付ける
「クラス外から見える名前が最優先」
0630デフォルトの名無しさん
2008/10/06(月) 23:23:110631デフォルトの名無しさん
2008/10/06(月) 23:27:42クライアント側で想定したリクエストを送れているかということと、
あるリクエストを送ったときのサーバ側の動作をみたいので。
前者だけならパケットキャプチャで拾えば良いと思いますけど、
後者のために任意のリクエストを送れるツールが欲しいのです。
0632デフォルトの名無しさん
2008/10/06(月) 23:29:24{
int tmp = a;
a = b;
b = tmp;
}
0633デフォルトの名無しさん
2008/10/06(月) 23:29:50IIS リソキに含まれてるツールでも使えばいいじゃん。
0634デフォルトの名無しさん
2008/10/06(月) 23:34:240635デフォルトの名無しさん
2008/10/06(月) 23:37:31要素自身が含むキーとして使える値を返す
0636デフォルトの名無しさん
2008/10/06(月) 23:38:45興味本位で調べただけだから外してるかも知れん。
NegotiateStreamってクラスがあるらしい。(.Net2.0から)
0637デフォルトの名無しさん
2008/10/06(月) 23:41:420638デフォルトの名無しさん
2008/10/07(火) 00:06:23Object b=a;
Object c=b;
の場合、cにはaの値のアドレスのコピーを持っているbの値が代入されるということですか?
つまり、cの値を得ようとすると、コンピュータは一旦bを経由してからaにたどり着くの?
もしそうなら、コピーするほど、処理が重くなる?
0639デフォルトの名無しさん
2008/10/07(火) 00:13:030640デフォルトの名無しさん
2008/10/07(火) 00:13:06全部同じ
0641デフォルトの名無しさん
2008/10/07(火) 00:22:10Object ^a = gcnew Object();
Object ^b = a;
Object ^c = b;
0642デフォルトの名無しさん
2008/10/07(火) 00:24:45ありきたりに、変数のアドレスってのを
コインロッカーのキー番号に例えると、
Object a = new Object();
の時点で、ロッカーを1箇所確保、そのキー番号を a に代入。
仮に、たとえば、そのキー番号が 5 (適当)だったとすると、
Object b = a; // キー番号 5 を b にコピー
Object c = b; // 同じく、5 を c にコピー
という状態になる。
a.Property も b.Property も c.Property も、
どれも 5 というキー番号を経由して、同じロッカーを参照。
0643デフォルトの名無しさん
2008/10/07(火) 00:51:04> 上が推奨
> 下はガイドライン違反
マジっすか( ´・ω・)!
上が推奨だったとは・・・
毎回下の方式でやってて、 _a とか tmp_a とか名前考えるのが面倒だったんだよ。
上でいいならこれからジャンジャン this. を使わせてもらうよ
0644デフォルトの名無しさん
2008/10/07(火) 00:54:250645デフォルトの名無しさん
2008/10/07(火) 00:58:01フィールドに毎回 this. つけるのって面倒だし見づらくない?
0646デフォルトの名無しさん
2008/10/07(火) 01:03:43フィールドであることを区別する意味ではありだと思う。
それを _ つけて区別するくらいなら、this の方がタッチタイプしやすい。
アンダーバーとかの記号は打ちにくいのよね。
0647デフォルトの名無しさん
2008/10/07(火) 01:08:30メソッドやプロパティにはどうする?
0648デフォルトの名無しさん
2008/10/07(火) 01:16:210649デフォルトの名無しさん
2008/10/07(火) 01:18:330650デフォルトの名無しさん
2008/10/07(火) 01:20:150651デフォルトの名無しさん
2008/10/07(火) 01:21:14もしその考え方が正しいとするならば、
Object a=new int[] {1,2,3};
Object b=a;
Object a=new int[] {4,5,6};
このときにbの値を得ようとしてint[] {4,5,6}を取得することになるよ?
んな馬鹿な話あるわけない。
つーか上記のテストコード書いて試したらすぐ確認とれるだろ。
なんでも質問するようではプログラミングなぞ向いていない。
これくらいの疑問なら自分の頭使って自力で解決できないとちと厳しいぞ。
0652デフォルトの名無しさん
2008/10/07(火) 01:24:48ありがとうございます。
ずっと疑問だったんで気になってました
高級言語になるほど、内部がどうなってるか見通し利かないでうよねぇ
0653デフォルトの名無しさん
2008/10/07(火) 01:26:42継承されたメンバにアクセスするときもthis付けるのかな
それともbase?
0654デフォルトの名無しさん
2008/10/07(火) 01:32:14それの場合新しいインスタンスを代入しているんだから
bの値を得ようとするわけないのはバカでもわかります
というか、テストコードってどう書くんですか?
cに入っているアドレスが、aの値のアドレスかどうかなんて
あのプログラム動かしただけではわからないはずですけどね
参照の「コピー」というぐらいだから、コピー用に新しくメモリが割り当てられているのでは
と思ったのが勘違いです。だから、cにはaの参照がコピーされたメモリへの参照のコピーと思ったしだいです
0655デフォルトの名無しさん
2008/10/07(火) 01:36:540656デフォルトの名無しさん
2008/10/07(火) 01:47:44{
public double X, Y, Z;
public double Length
{
get
{
return Math.Sqrt(X * X + Y * Y + Z * Z);
}
set
{
//現在の長さを取得
double lng = this.Length;
//成分を変更する
X *= value / lng;
Y *= value / lng;
Z *= value / lng;
}
}
}
サンプル用の自作ベクトル構造体
全部付ける派の人ってのはこれにも全部つけるの?
return Math.Sqrt(this.X * this.X + this.Y * this.Y + this.Z * this.Z);
とか激しくキモいんだが。
俺はプロパティとフィールドの違いを見るためにプロパティは付ける。
あとはローカル変数とフィールドの区別が必要なときにも当然付ける。
あとは付けない。
0657デフォルトの名無しさん
2008/10/07(火) 03:01:19int[] a;
HogeMethod( a );
「未割り当てのローカル変数 'a が使用されました。」
てなエラーが返されてしまう。
int[] a = null;
HogeMethod( a );
とすれば問題なくコンパイルは通るんだが、これって汚くない?
わざわざnullを割り当ててから参照渡しするのはどうも無駄なステップを
踏まされているように思えて仕方がないんだが。上のようなスマートな
方法も通用して然るべきだと思わん?
0658デフォルトの名無しさん
2008/10/07(火) 03:09:10こういう話じゃないの?
void HogeMethod(out int [] a) { a = new int [] { 1, 2, 3 }; }
int [] a;
HogeMethod(out a);
0659デフォルトの名無しさん
2008/10/07(火) 03:10:38バッチ大量データ登録時にトランザクション単位でエンティティビーン的な構造体に値を放り込む
→参照渡しでクエリ実行
→構造体はトランザクション単位でfinalyでnull設定
→パフォーマンスアップな上にメモリ節約できて(゜Д゜)ウマー
現状エンティティビーンクラスにclearメソッド用意してインスタンス使い回してますが、果たして、、
0660デフォルトの名無しさん
2008/10/07(火) 03:15:18いろいろ勘違いしている。Javaと同じでほとんどのケースでクラスを使うことになる。
0661デフォルトの名無しさん
2008/10/07(火) 03:19:57ああ、出力パラメータを指定するという方法もあったね。
でもメソッドを呼び出すときも
> HogeMethod(out a);
"out"キーワードを付けないといけないんだよね。
呼び出すときくらい"out"キーワードは無視させてくれてもいいと思うんだが。
0662デフォルトの名無しさん
2008/10/07(火) 03:22:57.NET Framework 開発者ガイド
クラスまたは構造体の選択
http://msdn.microsoft.com/ja-jp/library/ms229017.aspx
0663デフォルトの名無しさん
2008/10/07(火) 03:28:59ご教示ありがとうございます。
構造体はあまり使わない的な文献はよく見かけたのですが、初見なものでなんか使い道あるのでは、と考えましたが、まだ修行がたりないようでしたね、、。
0664659
2008/10/07(火) 03:50:03659の問題点は
・エンティティビーンで16バイト以下は現実的でない
・スコープ抜けたら勝手に解放されるのでnull設定は不要
・パフォーマンスとはそもそも関係ない
で合ってますでしょうか?
0665デフォルトの名無しさん
2008/10/07(火) 06:13:16WFetchでしたっけ?
あれはSJISのみ対応だったかと思うのですが。
UTF8なのです
0666デフォルトの名無しさん
2008/10/07(火) 07:23:11いろいろと制約が厳しいな。
HttpWebRequest の AddHeader でだめってことは、標準ヘッダを
ごにょごにょしたい、ってことかな?
リフレクションで一部書き換えられたようには思うけど、変に細かい技を
使うより、Tcp でちくちくやるのがよさげだね。
0667デフォルトの名無しさん
2008/10/07(火) 08:34:17ダメ。
メソッド呼びだした先で勝手に値が書き換えられるってのは嫌われる。
C++ でも、参照渡しがあるにもかかわらず、const 参照しか使わないって人多い。
出力パラメータとして参照渡ししたいときはポインタを使う。
0668デフォルトの名無しさん
2008/10/07(火) 08:41:53俺は全部付ける。
MS のガイドラインだと、特に this. つけるとはなってなかった気が。
でも、MS のソースコードの品質チェックツール通すと this. 付いてないと警告出た気が。
0669デフォルトの名無しさん
2008/10/07(火) 08:49:17今やっとツールの名前と使い方思い出して試してみたけど、
付けても付けなくても文句言われない。
ちなみに、StyleCop ってやつ。
http://code.msdn.microsoft.com/sourceanalysis
0670デフォルトの名無しさん
2008/10/07(火) 08:56:25かえって見づらい気がするのでつけないな
0671デフォルトの名無しさん
2008/10/07(火) 08:57:47MouseEnterでフォーカス移す以外であれば教えて(涙。
0672デフォルトの名無しさん
2008/10/07(火) 08:58:20むしろ無いと怖いでしょ
>>664
>null
基本的に値型にnullは入れられません
Nullableを利用するとNullにできるけど…
>パフォーマンス
GCのスキャンコストが減ります
用途によってはボクシング/アンボクシングでかえって遅くなることもあります
と、これ以上はよくわからん
パス
0673デフォルトの名無しさん
2008/10/07(火) 11:04:56そういう意味で参照渡しを前提とするパラメータには必ずrefかoutか付けないと
コンパイルが通らないようにすればいいと思ってるんだがC#はそうはなってない
んだよな。
値型の変数を参照渡しするときはoutなりrefなりつけないといけないが、参照型
の値を参照渡しするときは普通の変数のように渡せてしまう。
これじゃあとでコードを見たとき、この部分は参照渡しか値渡しなのか一目で
分からない。参照型の変数でも参照渡しするときはoutかrefを必須にすれば
よかったと思うんだがどうだろうか?
0674デフォルトの名無しさん
2008/10/07(火) 11:13:23参照型もref/outが無ければ値渡し。参照渡しするならref/outが必要。
それに値型のなかの参照型メンバの値を変更とか考えると意味が無い。
0675デフォルトの名無しさん
2008/10/07(火) 11:28:12自由なのは分かってるが一般的な付け方がしたいです
関数、プロパティ、名前空間、クラス名、定数は大文字から始める
MainForm、UpdateMenbers、LineMax
コントロールはプレフィックス(?)を付ける frmMain、btnCancel
ローカル変数は小文字から caption、changed
引数はローカル変数と同名を避けるためアンダーバーから _caption
大体こんな感じでいいのかな・・・
あと、引数付きプロパティが使えないが、Get〜とかSet〜ってやらないで、
インデクサ(?)付きクラスでも返した方がC#っぽい?
0676デフォルトの名無しさん
2008/10/07(火) 11:45:44> 参照型もref/outが無ければ値渡し。
え( ´・ω・)?
0677デフォルトの名無しさん
2008/10/07(火) 11:50:08http://msdn.microsoft.com/ja-jp/library/ms229002(VS.80).aspx
0678デフォルトの名無しさん
2008/10/07(火) 11:52:04その辺はCでもいっしょっしょ。
ポインタの指してる中身を書き換えるだけならポインタをそのまま渡せばいいが、
ポインタそのものを書き換え戻したいなら、ポインタのポインタを渡さないといけない。
0679デフォルトの名無しさん
2008/10/07(火) 11:59:31ああ、そういう意味か。
>>673で言いたかったことはメソッドに値を渡すとき、その値をコピーして
元の値は書き換えないのか、それとも書き換えるのかがメソッドの宣言を
見ただけでは識別しにくいってことなんだよね。
当然この型は値型だから渡しても書き換えされないはず、この型は参照型
だから渡せば書き換えられるはず、という知識を持っておけば分かるけど、
複雑なコードになるとそこらへんをうっかり間違えてしまいトラブルの元に
なるんじゃないかなと。
だから参照渡しをするときは値型だけでなく参照型の変数でもref/outを
必須にすればよかったのにと思ったわけ。
0680デフォルトの名無しさん
2008/10/07(火) 12:01:580681デフォルトの名無しさん
2008/10/07(火) 12:04:03参照の参照渡しだとrefrefキーワードが必要になるな
0682デフォルトの名無しさん
2008/10/07(火) 12:08:48普通にref/outしたい時に困るんじゃない?
0683デフォルトの名無しさん
2008/10/07(火) 12:14:15参照型の実体(格納してる変数は単なるメモリの番地)を知ってる人には
その通りだと思うんだが、そういうことを利用者に意識させないのがC#の
利点であることを考えると値型だろうと参照型だろうと参照渡しするときは
ref/outを必須にするように決めた方がいいと思うんだが。
そして参照型をref/out無しでメソッドに渡したら、その参照型のコピーが
メソッドに渡されるようにすればいい。つまりref/outなしで参照型の値を
メソッドに渡して書き換えられても、オリジナルの値にはなんら影響が
出ないようにすると。
これでユーザーがポインタを意識する必要は100%無くなる。
0684デフォルトの名無しさん
2008/10/07(火) 12:22:050685デフォルトの名無しさん
2008/10/07(火) 12:24:26refだらけになりそうだ
0686デフォルトの名無しさん
2008/10/07(火) 12:24:370687デフォルトの名無しさん
2008/10/07(火) 12:25:140688デフォルトの名無しさん
2008/10/07(火) 12:33:32C#は実際そう。参照渡しの語義を確認したほうがいい
ttp://ja.wikipedia.org/wiki/%E5%BC%95%E6%95%B0#.E5.8F.82.E7.85.A7.E6.B8.A1.E3.81.97
他の言語のスレでもこういう展開になることが多いんだけど
元凶はどこにあるんだろうね・・・
0689デフォルトの名無しさん
2008/10/07(火) 12:34:560690デフォルトの名無しさん
2008/10/07(火) 12:45:11できるよ。
以上。
↓次の方どうぞ
0691デフォルトの名無しさん
2008/10/07(火) 13:13:110692デフォルトの名無しさん
2008/10/07(火) 13:32:09できるよ。
意味不…
0693デフォルトの名無しさん
2008/10/07(火) 13:33:36それだったら、*のほうがマシだわ
0694デフォルトの名無しさん
2008/10/07(火) 13:35:21数値もポインタもいずれも「値」がメソッドに渡される、という意味ではC#は「値渡し」
になるんだろうけど数値が渡されるのかポインタが渡されるのかは型によって
まちまちなわけで、その違いをもっとユーザーに意識させる仕組みが組み込まれて
然るべきじゃないかなと言ったわけよ。
0695デフォルトの名無しさん
2008/10/07(火) 13:36:31フィールド全部再帰的になめるのか?
それでも駄目だけど
そしてrefだらけになると
あほかいな
0696デフォルトの名無しさん
2008/10/07(火) 13:38:48文字列がコピーされるからメソッド内でいくらいじくってもオリジナルの
文字列が変更されることはない。
でも文字列の配列(string[])をメソッドに渡すとメソッド内での操作が
オリジナルの文字列の配列にも反映される。
ここらへんのルールの違いをもっと明確にユーザーに伝わるような仕組みを
構築すべきじゃないかな?特にC#は後発の言語なんだから。
0697デフォルトの名無しさん
2008/10/07(火) 13:45:540698デフォルトの名無しさん
2008/10/07(火) 13:46:05stringは確かに不変オブジェクト扱いだけどこの場合何の関係も無いよ
単に自分自身を操作するメソッド/プロパティが無いだけなんだから
リフレクションで値書き換えればちゃんと呼び出し元でも変更される
0699デフォルトの名無しさん
2008/10/07(火) 13:49:15この型はメソッドに渡すと変更を受けるけど
この型はメソッドでいじくり回しても一切の変更を受けない。
こういう型が区別も無く平然と並んでいるのがユーザーの混乱を招くってことよ。
どれが参照型でどれが値型かなんて言語ごとに違って当然なんだから
それを曖昧なままごちゃまぜにしていればいつか間違いが発生する。
言語の進化というのはそういううっかりミスをなくす方向で発展していく必要が
あると思うんだよ。
0700デフォルトの名無しさん
2008/10/07(火) 13:56:000701デフォルトの名無しさん
2008/10/07(火) 14:00:00コードを見ただけで一発で判定可能にするってことか?
0702デフォルトの名無しさん
2008/10/07(火) 14:06:57値型的な扱いはintとstringだけなんだから
これを覚えるのに大した労力も必要としないだろハゲ
0703デフォルトの名無しさん
2008/10/07(火) 14:15:010704デフォルトの名無しさん
2008/10/07(火) 14:17:16だが現実にはC++やJava、VisualBasicと多岐にわたる言語を同時に扱うのが普通だろ。
記憶だけに頼る方式は後々重大なエラーを招く。
「てっきりstring型は呼び出したメソッド先での変更が反映されるものだと思っていました」
そう言いながら打ち上げロケットを派手に爆発させるミスが発生するかもしれない。
0705デフォルトの名無しさん
2008/10/07(火) 14:31:500706デフォルトの名無しさん
2008/10/07(火) 15:14:53参照型を含む値型の扱いはどうする?
0707デフォルトの名無しさん
2008/10/07(火) 15:17:57Stringでも他の参照型でも動作は共通してると思うが、>704の頭の中ではどうなってるんかが疑問だな・・。
Stringクラスの編集系メソッドはすべて新たなインスタンスを返してくるわけで、実体の操作は出来ないんだが。
つまり、参照型であっても、値渡しされたStringメソッドがその先で変更されることがありえないので誤解のしようがない。
ref指定した場合、「メソッド内での値の変更=新しいインスタンスを参照」になるだけ。一貫してると思うが。
0708デフォルトの名無しさん
2008/10/07(火) 15:21:040709デフォルトの名無しさん
2008/10/07(火) 15:34:56そういう人にはサンプルコード書かせると言い逃れできなくていいかもね
0710デフォルトの名無しさん
2008/10/07(火) 15:43:42他の言語のString型も同じだと言い切れるかな?
そしてもし他の言語のString型とC#のString型が違ったらどうするんだ?
という疑問を投げかけられて、
「そりゃそれぞれ違いを覚えるしかない」
と答えたらその時点でヒューマンエラーが紛れ込む余地が誕生したと思うべき。
近代の言語が、とくにC#がこの手のヒューマンエラーを極力排除することを
念頭に新たに作り直されたことを考えるとこの点に置いてC#は不十分な言語と
言わざるを得ない。
見方を変えればいまだにC/C++時代のポインタを引きずっているとも言える。
0711デフォルトの名無しさん
2008/10/07(火) 15:47:370712この話題にも飽きてきたが
2008/10/07(火) 16:23:06言語間の実装の違いや動作の相違は、そもそも無いほうがおかしい。
それより、言語内で一貫した基準があって、すべてのクラスがそれに則っていることが言語としては第一だろ。
C#の場合、引数は標準で値渡し、ref・outで参照渡し。それがすべて。そしてStringは参照型。
それを踏まえたうえで値渡しのStringが中で変更されると思うのは、参照のイメージが確立していないか、
Stringのメンバの使い方が分かってないかのどちらかじゃないか?
前者はマとして未熟。後者はウッカリというより、これから使うライブラリのリファレンスも見ない向こう見ずに思える。
皆、長文スマンな。
0713デフォルトの名無しさん
2008/10/07(火) 16:30:19string[]はどうなるんだ?
0714デフォルトの名無しさん
2008/10/07(火) 16:32:48string[]は参照型の値渡し
stringはmutable
string[]はimmutable
0715デフォルトの名無しさん
2008/10/07(火) 16:33:31stringはimmutable
string[]はmutable
0716デフォルトの名無しさん
2008/10/07(火) 17:10:42{
public IntPtr Ptr;
~TaskMem() { Marshal.FreeCoTaskMem(this.Ptr); }
}
[DllImport("hoge.dll")]
static extern int Foo(out IntPtr ptr); // int Foo(void** ptr);
TaskMem mem = new TaskMem();
Foo(out mem.Ptr);
とした場合、Fooから返って来てmem.Ptrに格納される間に例外が起きない事は保証されているのでしょうか?
それともCERで保護しないと駄目ですか?
0717デフォルトの名無しさん
2008/10/07(火) 17:17:25string[]を値渡しするのとref付けて参照渡しするのとで、結果は違ってくる?
どちらもメソッドでの変更が反映されるだけで動作は全く同じになると思うんだが。
0718デフォルトの名無しさん
2008/10/07(火) 17:23:26参照渡しと値渡しの違い分かってる?
0719デフォルトの名無しさん
2008/10/07(火) 17:26:11>>717
void f1(string[] a){ a = new []{"a","b"}; }
void f2(ref string[] a){ a = new []{"a","b"}; }
f1、f2が上のように定義されているとき、
string[] b = null;
f1(b); // bはnullのまま
f2(ref b); // bは{"a","b"}になる
0720デフォルトの名無しさん
2008/10/07(火) 17:27:13public static void hoge(string[] s)
{
s = new[] { "c", "d" };
}
public static void hage(ref string[] s)
{
s = new[] { "e", "f" };
}
static void Main(string[] args)
{
string[] s = { "a", "b" };
Console.WriteLine("{0} {1}", s[0], s[1]);
hoge(s);
Console.WriteLine("{0} {1}", s[0], s[1]);
hage(ref s);
Console.WriteLine("{0} {1}", s[0], s[1]);
}
0721デフォルトの名無しさん
2008/10/07(火) 17:41:25> void f1(string[] a){ a = new []{"a","b"}; }
> void f2(ref string[] a){ a = new []{"a","b"}; }
new演算子を使わずに
void f1(string[] a){ a = {"a","b"}; }
void f2(ref string[] a){ a = {"a","b"}; }
だったらどちらも結果は
bは{"a","b"}
にならない?
0722デフォルトの名無しさん
2008/10/07(火) 17:45:59コンパイルエラー
0723デフォルトの名無しさん
2008/10/07(火) 17:51:00いや、通ると思うんすけど・・・
0724デフォルトの名無しさん
2008/10/07(火) 17:57:100725デフォルトの名無しさん
2008/10/07(火) 17:57:41string[] b;
b = { "a", "b" }; //だめ
new[] を省略できるのは変数宣言の時だけだな
ちゃんとコンパイルして試してから言ってるのか?
0726デフォルトの名無しさん
2008/10/07(火) 17:58:540727デフォルトの名無しさん
2008/10/07(火) 18:00:41入れたり入れなかったりで挙動が変わるなんてこたあないんじゃないかな
0728デフォルトの名無しさん
2008/10/07(火) 18:04:31初心者を装ったものすごく巧妙な釣り師というか荒らしが常駐してる気がする
0729デフォルトの名無しさん
2008/10/07(火) 18:08:58質問するほうだって、これは知ってます、それも知ってますって一々言うわけに行かないし
0730デフォルトの名無しさん
2008/10/07(火) 18:10:250731デフォルトの名無しさん
2008/10/07(火) 18:11:06SafeHandle使えば悩む必要なかろ
outなら大丈夫だったとは思うが覚えてない
0732デフォルトの名無しさん
2008/10/07(火) 18:11:540733デフォルトの名無しさん
2008/10/07(火) 18:42:37いや別に他意(<=なぜか変換できない)はないんだけど。
0734デフォルトの名無しさん
2008/10/07(火) 18:49:45自由な職場っていいよね。
0735デフォルトの名無しさん
2008/10/07(火) 18:53:000736デフォルトの名無しさん
2008/10/07(火) 19:07:42鉄は熱いうちに打てじゃないが、structとemunは若いうちから慣れておいた方がいい。
なまじstructやemunを使わなくてもプログラムが書けてしまうだけに。
0737デフォルトの名無しさん
2008/10/07(火) 19:12:19わざわざstructを使う意義はほとんどない
0738デフォルトの名無しさん
2008/10/07(火) 19:15:110739デフォルトの名無しさん
2008/10/07(火) 19:16:560740デフォルトの名無しさん
2008/10/07(火) 19:27:40ref/out使わずに結果を取り出したいならstructも少しは役に立つんでね?
0741デフォルトの名無しさん
2008/10/07(火) 19:33:34言ってる意味が分からない。
いくらふらっとスレでもトンデモなことを言いすぎだろう。
使い分けないデメリット、なら話もわかるが使い分けるデメリットってどういう意味だよ。
あるいはどちらでも用が足りる用途なら迷わずクラスを選べ、
というのなら正しいし理解もできる。
だが構造体に存在意義がないかのような意見はおかしい。
0742デフォルトの名無しさん
2008/10/07(火) 19:55:10PointやRectangleをいちいちnewしなきゃならんのは実に面倒くさい
しかしform.Location.X = 100;みたいな記述を可能にするためには
Pointに親への参照が必要になってしまいかねないんだよな
なかなか難しい
0743デフォルトの名無しさん
2008/10/07(火) 19:57:510744デフォルトの名無しさん
2008/10/07(火) 20:06:08公共ラジオで丸一日垂れ流しする意味ねーじゃん
0745デフォルトの名無しさん
2008/10/07(火) 20:06:58まあPointにイベント(XChanged)を追加することでも可能だと思うけどね。
0746デフォルトの名無しさん
2008/10/07(火) 20:28:06もんだと思ってた。win form のrect とかpointが構造体なのはwin32の
ラッパだからしかたねーんだなと 勝手に思っていた…。
0747デフォルトの名無しさん
2008/10/07(火) 20:31:52構造体特有の注意点とか意識しないといけないとか、
そういう点をデメリットって言ったんだよ。
0748デフォルトの名無しさん
2008/10/07(火) 20:37:29基本的に使うな、の方が無難なことが多い。
ちゃんと分かってる奴だけが使うならいいが。
0749デフォルトの名無しさん
2008/10/07(火) 20:40:180750デフォルトの名無しさん
2008/10/07(火) 20:42:00Cから来た人たちが引っかかる罠なんだよね。
ユーザー定義の値型にstructのキーワードを当てはめたのが失敗だったといわれている。
0751デフォルトの名無しさん
2008/10/07(火) 21:05:16こうしろよってのがあれば教えて下さい。
private List<Data> list = new List<Data>();
struct Data
{
public string Key;
public string Value;
}
0752デフォルトの名無しさん
2008/10/07(火) 21:07:46そんな穴に落ちる奴はいないだろ。
入門者を斜め読みしただけで別物と普通は分かるよ。
「参照」って言葉の意味がC++と似てるけど別物だったりするのが落とし穴というのならわかるが、
構造体で引っかかる人間なんていないと思う。
0753デフォルトの名無しさん
2008/10/07(火) 21:10:10{
public readonly string Key;
public readonly string Value;
}
こうすべきじゃないかな
クラスまたは構造体の選択
http://msdn.microsoft.com/ja-jp/library/ms229017.aspx
0754デフォルトの名無しさん
2008/10/07(火) 21:15:23KeyやValueの値が可変なら、というか、readonlyだと駄目な状況では
構造体じゃなくクラスを使うべきなんですかね。
Listにクラスを放り込む場合どう書けば???
0755デフォルトの名無しさん
2008/10/07(火) 21:25:26{
public string Key;
public string Value;
}
こんな感じのクラスを用意して
Data data = new Data();
で初期化して使う感じでしょうか?
0756デフォルトの名無しさん
2008/10/07(火) 21:31:58IEquatable<T>.Equals(T o)と、大小比較する場合はIComparable<T>.CompareTo(T o)を実装すること。
そうしないと比較のたびにボクシングが頻発して悲惨なことになる。
もっとも基本配列であるListの場合はあまり問題ない。
実装しないなら非ジェネリックのコレクションの方が効率がいい。
登録時ボクシングは1回だけですむ。
0757デフォルトの名無しさん
2008/10/07(火) 21:51:59そんなことしたら使い方によってはおっそろしく遅くなるよ
0758デフォルトの名無しさん
2008/10/07(火) 21:58:05[TypeConverter(typeof(Design.DataConverter))]
struct Data : IEquatable<Data> {
public string Key { get; set; }
public string Value { get; set; }
public override int GetHashCode() {...}
public override bool Equals(object obj) {...}
public bool Equals(Data alt) { ... }
...
}
namespace Design {
class DataConverter : TypeConverter { ... }
}
0759デフォルトの名無しさん
2008/10/07(火) 22:00:44構造体に自動プロパティを使うのは良くない
コンストラクタ書けなくなる
0760758
2008/10/07(火) 22:01:420761デフォルトの名無しさん
2008/10/07(火) 22:06:00さすがに意味がわからない突っ込みだ。
そもそもパフォーマンスが重要な場面に適合的なケースの話はしてないと思うんだけど。
0762758
2008/10/07(火) 22:07:04こうすれば書ける。自動プロパティやめとけは同意
struct Data {
public Data() : this() { ... }
}
0763758
2008/10/07(火) 22:08:37struct Data {
public Data(string key, string value) : this() {...}
}
な
0764デフォルトの名無しさん
2008/10/07(火) 23:28:02>>763みたいにするべきなのでしょうか。
private List<KeyValuePair<string, string>> MainList = new List<KeyValuePair<string, string>>();
そもそもがstring同士なので大小比較なども行わないし、私の頭では
どうするのが一番良いのかイマイチ理解できない…orz
0765デフォルトの名無しさん
2008/10/07(火) 23:46:17・IL 上はだいぶ変わる(バイナリ互換の問題)
メソッドコールかフィールドアクセスになる
コード互換で言えば、ref で渡せるかどうか程度かな
・リフレクションもだいぶ変わる(バインディングで問題)
var props = TypeDescriptor.GetProperties(typeof(Data));
var prop = props["Key"];
・パフォーマンスかなと考えてもメンバ string だし
まとめると、少しでも変更に耐性のあるプロパティにしとけ
みたいな。というかフィールドにする意味ないなぁと
フィールドのほうが「あえて」立場なんだよ要するに
>>758 の例は struct 作るときに標準的にやっといたほうが
いい処理が含まれてる実装ですなただの
KeyValuePair 使うかどうかはそれ(表現したい対象)が
KeyValuePair の機能しか将来的にも持たないんなら
それでいいんじゃね
0766デフォルトの名無しさん
2008/10/08(水) 00:04:34で引数がList<T>にしてみたんだけど
void hoge( ref List<int> a )
{
List<int> a = new List<int>();
}
0767デフォルトの名無しさん
2008/10/08(水) 00:05:54void hoge( ref List<int> a )
{
List<int> a = new List<int>();
}
としてコンパイルしてみたところ
ローカルの変数 'a' をこのスコープで宣言することはできません。
これは、'親またはカレント' スコープで別の意味を持つ 'a' の意味が
変更されるのを避けるためです。
というエラーが返されてしまった。
ref→out
に変更しても同じエラーが返される。
なにかまずいことでもしちゃったかな?
0768デフォルトの名無しさん
2008/10/08(水) 00:08:21ローカル変数の宣言になっちゃってる
0769デフォルトの名無しさん
2008/10/08(水) 00:09:12{
a = new List<int>();
}
0770デフォルトの名無しさん
2008/10/08(水) 00:10:34おっ、サンクス(;^ω^)ノシ
>>768
(´;ω;`)ブワッ
0771デフォルトの名無しさん
2008/10/08(水) 00:12:46ちょっと言い訳がましいことを言わせてもらうとList<T>があまりにも最新の技術なもんで
手持ちの参考書に一言も触れられてないのね。暗中模索状態だからつまらないところで
ミスしてしまう(;^ω^)
ちなみに
a = new List<int>();
↑
この()の部分ってコンストラクタの()の名残という認識でok?
0772デフォルトの名無しさん
2008/10/08(水) 00:14:350773デフォルトの名無しさん
2008/10/08(水) 00:18:42new StringBuilder()
new List<int>()
ほら同じ
0774デフォルトの名無しさん
2008/10/08(水) 00:22:100775デフォルトの名無しさん
2008/10/08(水) 00:26:180776デフォルトの名無しさん
2008/10/08(水) 00:27:03ナカーマ
5-6年前に独習C#買って放置→最近また始めたら
ジェネリクスやらLINQやらとんでもないことになっててもうね
0777デフォルトの名無しさん
2008/10/08(水) 00:32:32int a = new int();
string b = new string();
もokだっけ?
0778デフォルトの名無しさん
2008/10/08(水) 00:34:20stringは引数なしコンストラクタが存在しないので無理だな
0779デフォルトの名無しさん
2008/10/08(水) 00:44:52System.IO.FileNotFoundException: 指定されたファイルが見つかりません。
ファイル名 'image\hoge.png' です。
デバッガ上での実行だと、↑みたいにFileNameが出力されるのに
実行ファイルを直接開くと無視されるのね。そんなものなの?
0780デフォルトの名無しさん
2008/10/08(水) 00:45:44言い訳が言い訳になってないのが滑稽。
0781デフォルトの名無しさん
2008/10/08(水) 00:52:390782デフォルトの名無しさん
2008/10/08(水) 00:55:00Windowsプロンプトから起動してみたけど
そんな感じのメッセージと一緒にスタックトレースが表示されるよ
0783764
2008/10/08(水) 07:50:28>>764の書き方だと全然>>751みたいな使い方は出来ないですね。
KeyValuePairって初期化すれば値を割り当てられると思ってました。
>>764は結局>>753と同じだという事が分かりました。
クラスにすると上手く動かないし、>>763を参考にしてみます。
0784783
2008/10/08(水) 08:46:30最終的に、クラスにしてKey、Valueのプロパティを持ち、その都度
インスタンスを生成する事で上手くいきました。
今の使い方ではあまりパフォーマンスにも影響は無さそうですが
今後の事を考えてクラスで運用します。
また、値型、参照型の違いが何となく分かった気がします。
有り難う御座いました。
0785デフォルトの名無しさん
2008/10/08(水) 10:53:020786デフォルトの名無しさん
2008/10/08(水) 10:54:250787デフォルトの名無しさん
2008/10/08(水) 11:30:38あえて言おう!違うと!
まず名前が違う!これだけでじゅうぶんだ。
0788デフォルトの名無しさん
2008/10/08(水) 11:34:190789デフォルトの名無しさん
2008/10/08(水) 11:34:300790タイマーについて
2008/10/08(水) 11:35:13います。
タイマにより一定時間間隔で処理を行うには?(Windowsタイマ編) − @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/372formstimer/formstimer.html
ここに書いてあるようなバグはFramework2.0以降は解決されているようでしたが、
タイムアップのイベントが立つたびに、I/Oのメモリー消費がちびっとずつ増えていく
ようなのですが、これはバグなのでしょうか。
0791デフォルトの名無しさん
2008/10/08(水) 11:35:370792デフォルトの名無しさん
2008/10/08(水) 11:54:12private void GetLogicalDiskRead()
{
this.listView1.Items.Clear();
foreach (string s in pcc.GetInstanceNames())
{
foreach (PerformanceCounter p in pcc.GetCounters(s))
{
if (p.CounterName == "Disk Read Bytes/sec" && p.InstanceName != "_Total")
{
this.listView1.Items.Add(new ListViewItem(new string[]{
p.CategoryName,
p.CounterName,
p.InstanceName,
p.NextValue().ToString()
}));
}
}
}
}
論理ディスクのReadを調べるためにこんなコードを書いたのですが、
エラーも何も無く実行できるものの値がずっと0になってしまいます。
これは何が問題なんでしょうか?
0793792
2008/10/08(水) 11:57:49private void timer1_Tick(object sender, EventArgs e)
{
GetLogicalDiskInfo();
}
0794デフォルトの名無しさん
2008/10/08(水) 12:53:59失礼しました、これはタイマーのTickイベントの中で、フォルダの存在を
チェックしていて発生していたようです。メモリの消費量がイベントのたび
に0〜5バイトぐらいずつ増えていくのでなんだろうと思いましたが、タイマー
とは無関係でした。すみません。
0795790
2008/10/08(水) 12:58:04ただ、Directory.Exists(_strDirectory)これを行うたびにI/Oのメモリが
消費されるというのは正常なのでしょうか?
0796デフォルトの名無しさん
2008/10/08(水) 13:07:58カウンタ毎回取得してたら駄目だろ
欲しいPerformanceCounterを保持しておく
0797デフォルトの名無しさん
2008/10/08(水) 13:13:48動く環境も。
0798デフォルトの名無しさん
2008/10/08(水) 13:13:50「I/Oのメモリ」って何?
0799デフォルトの名無しさん
2008/10/08(水) 13:41:01VC++みたいな独自のイベントってどうやって実装するんですか?。
VC++ならWM_USER以下にならない様な番号ふってWM_HAGEとか定義して
afx_msgにつけ加え定義
MESSAGE_MAPにつけ加えて
て感じだったと思うんですが
C#ではどうやるのでしょうか
0800デフォルトの名無しさん
2008/10/08(水) 13:50:580801デフォルトの名無しさん
2008/10/08(水) 15:06:27ttp://www.atmarkit.co.jp/fdotnet/dotnettips/467wndproc/wndproc.html
0802デフォルトの名無しさん
2008/10/08(水) 15:23:29色々と書き直してみてとりあえず動くようにはなったんですが
我ながら何をやってるのかよくわかって無いですorz
変なことやってないですかね?
private List<PerformanceCounter> prfList = new List<PerformanceCounter>();
private void Form1_Load(object sender, EventArgs e){
SetReadInfo();
GetLogicalDiskRead2();
}
private void SetReadInfo(){
foreach(string s in pcc.GetInstanceNames())
{
if (s != "_Total"){
PerformanceCounter p = new PerformanceCounter("LogicalDisk", "Disk Read Bytes/sec", s);
prfList.Add(p);
}
}
}
private void GetLogicalDiskRead2(){
this.listView1.Items.Clear();
foreach (PerformanceCounter x in prfList){
this.listView1.Items.Add(new ListViewItem(new string[]{
x.CategoryName,
x.CounterName,
x.InstanceName,
((long)x.NextValue()).ToString()
}));
}
}
0803デフォルトの名無しさん
2008/10/08(水) 16:32:30どんな方法を採用するのが推奨されていますか?GOTO文で関数の終わりの方まで一気に
飛ばすのはあまり推奨された方法ではないと聞きました。
void Hoge()
{
・・・・
tyr{(処理1)}
catch{・・・}
tyr{(処理2)}
catch{・・・}
・・・
}
0804デフォルトの名無しさん
2008/10/08(水) 16:35:03return;
0805デフォルトの名無しさん
2008/10/08(水) 16:37:46何やってるか分からないてのが一番まずいな
>>803
Microsoft曰く「内部実装なんてどう書こうが知らね勝手にしろ」
0806デフォルトの名無しさん
2008/10/08(水) 16:39:41こんな感じでいいでしょうか?
void Hoge()
{
・・・・
tyr{(処理1)}
catch{・・・; return;}
tyr{(処理2)}
catch{・・・; return;}
・・・
}
0807デフォルトの名無しさん
2008/10/08(水) 16:46:29catch{ ... ; throw ...}という手もある
0808デフォルトの名無しさん
2008/10/08(水) 17:52:560809デフォルトの名無しさん
2008/10/08(水) 18:02:31無知なのに上から目線ワロタw
0810デフォルトの名無しさん
2008/10/08(水) 18:22:240811デフォルトの名無しさん
2008/10/08(水) 18:24:070812デフォルトの名無しさん
2008/10/08(水) 18:32:26もう大人なんだからgotoの扱いは自分で責任をもてるだろってこと。
こういう考えでgotoを残してる言語はわりとある。
0813デフォルトの名無しさん
2008/10/08(水) 18:33:41throw・・・例外を投げるメソッドでしたっけ?
これをそこで使うことにはどういう意味があるんですか?
0814デフォルトの名無しさん
2008/10/08(水) 18:40:48場合によるけど何も考えずreturnよりは適切かも
0815デフォルトの名無しさん
2008/10/08(水) 18:45:33> 例外投げればとにかく処理は呼び出し元に戻せる
void Hoge()を呼び出した元にもtry&catchの構文を書いて
そこのcatchに例外をthrowするということですか?
0816デフォルトの名無しさん
2008/10/08(水) 18:46:56try{ void Hoge(); }
catch(Exception e){・・・・}
↑のcatch(Exception e){・・・・}に例外をスローすればvoid Hoge()を抜けられるという発想ですか?
0817デフォルトの名無しさん
2008/10/08(水) 20:18:340818デフォルトの名無しさん
2008/10/08(水) 20:34:29string folder = @"c:\folder";
string file = "test.dat";
string fullPath = folder + @"\" + file;
ここでもし人によってフォルダ名を
string folder = @"c:\folder\";
のように末尾に\マークを入れてしまう人がいるかもしれません。
フルパスを合成する前にフォルダ名の末尾に\マークがあるかないか場合分けする必要が
あるわけですが、C#のクラスにこのあたりの処理を自動化してくれるものはありませんか?
無ければフォルダ名の末尾に\マークがあるかないかで場合分けして対処する必要があります。
0819デフォルトの名無しさん
2008/10/08(水) 20:37:16できるかは知らないけどその辺に無かったら無い
0820デフォルトの名無しさん
2008/10/08(水) 20:47:14どうもです。調べてみますノシ
0821デフォルトの名無しさん
2008/10/08(水) 20:47:37それでも受け付けてくれる。
0822デフォルトの名無しさん
2008/10/08(水) 20:50:540823デフォルトの名無しさん
2008/10/08(水) 21:45:13そういうこと
抜けるだけならreturnを使うけど、例外の時はthrowを使うという手段もある。
特に、その関数無いでは対処仕切れない場合とか、例外の再throwをすることがある。
string GetMessage()
{ try {...} catch (ry) { return " tell a lie :p";} }
より
{ try {...} catch (ry) { throw (new Exception("ごごご、ごめんなさい");} }
のほうが良い
0824デフォルトの名無しさん
2008/10/08(水) 21:47:15それやるなら、前の例外も付けてやったほうがいいんじゃない?
catch(Exception e) {
throw (new Exception("ごごご、ごめんなさい", e);
}
0825デフォルトの名無しさん
2008/10/08(水) 21:53:090826デフォルトの名無しさん
2008/10/08(水) 21:56:20それもそうだな。ネタを考えてて変なことやっちゃったよ
0827デフォルトの名無しさん
2008/10/08(水) 22:21:57C#とJavaって言語だけ見るとダメで、
バックについてるのが Microsoft か SUN かという違いを見ないとダメ。
SUN がクソ。
0828デフォルトの名無しさん
2008/10/08(水) 22:35:02だから、おれんとこでは、クライアントアプリがC#、VBどとねと
でASPXより、Tomcat−JBOSS-Apatchがまだまだ主流だ。。。
業務サーバーとなれば、どうしてもDB+Unix系がまだまだ主流で
顧客に高級感という付加価値があびせれる。
制御系は、以外とWindowsOnlyでいけること多いんでCのDLL
をC#で呼び出す系統のものを提案できるな。
0829デフォルトの名無しさん
2008/10/08(水) 22:57:47制御の世界でも確かに.netで組む例多くなってきてるな。
ただ、制御もSWもわかる技術者をあつめるのが難しいから
IT側とコントローラ側を分離してるだけで決してwindows オンリーでいける
というわけではない。コントローラ側はむしろ組み込みの世界に近いと思う
0830デフォルトの名無しさん
2008/10/08(水) 23:14:55書いてくれるから、それ以降をやればいい。
電気回路、ロボット含めて全体を提案したいのなら、懇意の電気屋で全体
わかるやつと提案したほうが利益お互いとくする。
0831デフォルトの名無しさん
2008/10/09(木) 06:19:19でも結局Java仮想マシンが入ってないと動かないんでしょ?
じゃあWindowsでしか動かないとかと一緒で、Java仮想マシン上じゃないと動かないじゃん。
ただ違うのが多くの環境でJava仮想マシンをSUNが提供するよって事だけだよね?
0832デフォルトの名無しさん
2008/10/09(木) 06:26:24あの当時のSUNはほんとにすべての環境にJava VM作る気だったと思うよ。
一時は、Java バイトコードをネイティブ実行するプロセッサというか
ハードウェアアクセラレータまで考えられてたし。
実際のところ、「どこでも動く」を狙いすぎて、
コスト係りすぎと、パフォーマンス面での開発者の不満を招いただけな気が。
あと、「どこでも動く」であるためには pure Java である必要があって、
それがとにかく不評。
それに対する MS の答えが、言語間相互運用。
0833デフォルトの名無しさん
2008/10/09(木) 07:06:280834デフォルトの名無しさん
2008/10/09(木) 07:13:31それもね、SOLARIS 上では結構軽いらしいよ。
Windows の牙城を崩したいって思惑があったから
Windows 版最優先で開発しなかったのが痛い。
あと、IBM 版の Windows 用 VM はそれなりに軽快だったのに、
それすらも SUN は認めなかった。
0835デフォルトの名無しさん
2008/10/09(木) 08:33:38そもそも色んな環境があるってのも、それぞれ異なる目的に応じる為なわけで。
それを、全ての環境で共通なことしか出来ないよ、だと使えないよな。
0836デフォルトの名無しさん
2008/10/09(木) 09:13:56その同じ事が環境によって細々と差異が有って面倒くさかったから。
SUNの考え方もサーバーの世界に限れば非常に正しいことだけどね。
0837デフォルトの名無しさん
2008/10/09(木) 09:17:47あっそれから、繁盛するようならそっちからも集金するから(笑)
0838デフォルトの名無しさん
2008/10/09(木) 15:54:59void Method(ref StreamReader sr)
{
HttpWebRequest req = (HttpWebRequest) WebRequest.Creat("http://www.msn.co.jp");
HttpWebResponse res = (HttpWebResponse) req.GetResonse();
Stream st = res.GetResponseStream();
sr = new StreamReader(st);
}
あとは返ってきたStreamReader srを使って取得したデータを表示したり保存したり好きなように
使えるわけですが、上記のMethod関数で開いた
res
st
は同メソッド内で .Close() しておく必要は無いでしょうか?
ただ同メソッド内で .Close() してしまうと参照で呼び出したsrがそれ以降使えなくなって
しまう気がします。こういう時は放置してしまっても構わないでしょうか?
0839デフォルトの名無しさん
2008/10/09(木) 15:59:26Disposeが必要なオブジェクトは可能な限りスコープ小さくする
0840デフォルトの名無しさん
2008/10/09(木) 16:46:36> 一般的にはStreamReader引き回すなんてやらないんじゃないか
そうですか・・・
面倒でもいったんstringかなにかに保存して参照渡しし、その他のストリームは一切
Disposeするという方法が定石なんでしょうか?
0841デフォルトの名無しさん
2008/10/09(木) 16:54:27使う側でusingするとかかな
なんにせよ、ref と書くのは変だ
0842デフォルトの名無しさん
2008/10/09(木) 18:40:13>ストリームを閉じて、再使用のための接続を解放するために Stream.Close メソッドまたは
> HttpWebResponse.Close メソッドを呼び出す必要があります。
>Stream.Close と HttpWebResponse.Close の両方を呼び出す必要はありません。
>ただし、両方呼び出してもエラーは発生しません。ストリームを閉じないと、
>アプリケーションで接続が不足する原因となります。
>StreamReader オブジェクトと、その基になるストリームを閉じ、
>リーダーに関連付けられたすべてのシステム リソースを解放します。
ということでsrをCloseすれば連鎖的にCloseされるので問題なし。
それでも普通refは使わないぞっと。
StreamReader Method()
0843デフォルトの名無しさん
2008/10/09(木) 18:52:020844デフォルトの名無しさん
2008/10/09(木) 19:05:16> ということでsrをCloseすれば連鎖的にCloseされるので問題なし。
> それでも普通refは使わないぞっと。
> StreamReader Method()
return sr;
する前にsrをCloseしたらそもそもreturnするものが無くなるんじゃね?
かといってreturnしてメソッドを閉じた後にCloseしても意味無いしな。
0845デフォルトの名無しさん
2008/10/09(木) 19:13:110846デフォルトの名無しさん
2008/10/09(木) 20:52:19上のサイトのソフトなんですが、これはC++のソースをVB6.0に変換することができるのでしょうか?
0847デフォルトの名無しさん
2008/10/09(木) 21:22:300848デフォルトの名無しさん
2008/10/09(木) 22:01:28switch (hoge)
{
case 1:
・・・・
break;
case 2:
・・・・
break;
default:
if ( ・・・ )
{・・・}
else
{・・・}
break;
}
0849デフォルトの名無しさん
2008/10/09(木) 22:09:34君って誇張なしでどこか精神病んでるんじゃないの?
0850デフォルトの名無しさん
2008/10/09(木) 22:17:29最近いる概念理解できて無い君でしょ
いじめられたから荒らしに転じちゃったかなw
0851デフォルトの名無しさん
2008/10/09(木) 22:43:45>StreamReader オブジェクトと、その基になるストリームを閉じ、
2つ閉じないといけないんじゃないか?
0852デフォルトの名無しさん
2008/10/09(木) 22:52:52そいつはStreamReader.Closeの説明だ
0853デフォルトの名無しさん
2008/10/09(木) 23:00:210854デフォルトの名無しさん
2008/10/09(木) 23:15:18気持ちはわからんでもないが>>1
0855デフォルトの名無しさん
2008/10/09(木) 23:44:22Stream 系はよきに計らってくれないことがある。
ある意味仕方ないんだが
0856デフォルトの名無しさん
2008/10/09(木) 23:46:450857デフォルトの名無しさん
2008/10/10(金) 02:04:32一度StreamReaderにアタッチしちゃったらもうStreamもろともCloseされちゃうんだよね?
やっぱりStreamReaderを保持し続けるのかな?
0858デフォルトの名無しさん
2008/10/10(金) 02:26:53エラーが返ってきてしまいました。
コンストラクタでプロパティの初期値を設定しようという考えはまずいのでしょうか?
0859デフォルトの名無しさん
2008/10/10(金) 02:39:13StreamReaderはClose(=Dispose)しなければ勝手にBaseStreamを閉じたりしない
というか、その為のIDisposableだろ
0860デフォルトの名無しさん
2008/10/10(金) 06:17:28>>858
エラーの内容ぐらい書け
0861デフォルトの名無しさん
2008/10/10(金) 08:32:070862デフォルトの名無しさん
2008/10/10(金) 10:43:31構造体だろそれ
構造体のメンバをコンストラクタで初期化するときはプロパティは使えない
0863デフォルトの名無しさん
2008/10/10(金) 10:55:45なんでそういう仕様なの?
0864デフォルトの名無しさん
2008/10/10(金) 11:13:15すべてのメンバが初期化されるまでは使えない。
それは構造体の内部でthisを使うのも同じ。
0865デフォルトの名無しさん
2008/10/10(金) 12:09:440866デフォルトの名無しさん
2008/10/10(金) 12:10:17どの段階の初期化?
なんで自動でできないの?
0867デフォルトの名無しさん
2008/10/10(金) 12:20:38>>763みたいなことしたら二重の初期化で無駄
0868デフォルトの名無しさん
2008/10/10(金) 12:20:42クラスは
コンストラクタに入った時からthisが初期状態で出来上がるけど
構造体だと
コンストラクタを抜けるまでthisが出来上がらないから
コンストラクタ内部ではthisが使えない
……という意味? 間違った行間読みならスルーしてくれ
0869デフォルトの名無しさん
2008/10/10(金) 12:27:34初期化されてない構造体のインスタンスは「使えない」というのは、ほかのメソッドに渡せないということ
自身のインスタンスメソッドにthisとして渡すのも同じことだよ
0870デフォルトの名無しさん
2008/10/10(金) 12:52:50newするしないに関わらず。
0871デフォルトの名無しさん
2008/10/10(金) 12:58:46ってことは自動で初期化できているのは構造体じゃないの?
クラスはnewしないと初期化できないんだし
0872デフォルトの名無しさん
2008/10/10(金) 13:04:160873デフォルトの名無しさん
2008/10/10(金) 13:13:000874デフォルトの名無しさん
2008/10/10(金) 13:16:44されないよ。
C#じゃどの道コンパイルエラーになるから確認できないが。
0875デフォルトの名無しさん
2008/10/10(金) 13:26:53まともなgetter/setter書けないだろ
0876デフォルトの名無しさん
2008/10/10(金) 13:46:180877デフォルトの名無しさん
2008/10/10(金) 13:52:49構造体なんてどうせパフォーマンス目的のニッチで低レベルなものなんだから
0878デフォルトの名無しさん
2008/10/10(金) 15:57:450879デフォルトの名無しさん
2008/10/10(金) 16:17:21機能をシミュレートしようと思っています。
その場合、可能であればですが、エクスプローラが使っているDLLか
何かのファイルを横から使うことでも実現できるものでしょうか?その場合は
DLL内のAPIを使うために必要な知識としてはどんなものがあるでしょうか?
0880879
2008/10/10(金) 16:21:56また、もし .NETFramework のメソッドから可能であるとしたら、
レジストリーから行うことになりそうですが、
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew
という、途中の Discardable なるやっかいな代物を扱う必要が
ありそうでした。このキーはときどき何かの事情で削除されてしまう
場合があるもののようで、
無いときは自分で作成しなければならないようでした!この場合、
そうしたことを実際にしないといけないでしょうか?もし何かうまい
別法があるようでしたら教えて戴けないでしょうか、よろしくお願い
します!
0881デフォルトの名無しさん
2008/10/10(金) 17:14:310882デフォルトの名無しさん
2008/10/10(金) 17:24:110883デフォルトの名無しさん
2008/10/10(金) 17:48:37あるいは実現方法はありますでしょうか。
0884デフォルトの名無しさん
2008/10/10(金) 19:04:21interfaceにstaticメンバを書きたくなることならたまにあるけど
0885デフォルトの名無しさん
2008/10/10(金) 19:40:48A<T>を継承する制約をつけても、
A<T>のTに具体的な型を入れないとA<T>のメンバを呼び出せないので、
たとえ出来たとしても意味ないけど。
0886デフォルトの名無しさん
2008/10/10(金) 19:44:232.0 開発中の頃オペレータまわりの解決策でコネクト提案されたことが
あったんだけどふゅーちゃーばーじょんで考えるよとかえってきたんだっけかな
今考えると動的にごにょごにょ出来るし拡張メソッド出来たから必要か
どうかは微妙かなあ
0887デフォルトの名無しさん
2008/10/10(金) 19:48:19CodePlexとか見たら腐るほどある
0888883
2008/10/10(金) 20:14:05ありがとうございました。
0889デフォルトの名無しさん
2008/10/10(金) 20:23:25なんか代案が出るかもよ?
0890デフォルトの名無しさん
2008/10/10(金) 21:03:10@"input.txt"
この文字列の前にくっついてる@ってなに?
0891デフォルトの名無しさん
2008/10/10(金) 21:05:38http://up2.pandoravote.net/img/pandora00017620.gif
▼ 123 名前: 四十代(茨城県)[] 投稿日:2008/10/10(金) 20:40:21.77 ID:wpKX9nNW
>>121
マジキチ
▼ 130 名前: 米政府(岐阜県)[sage] 投稿日:2008/10/10(金) 20:41:08.60 ID:fem/bSGF
>>121
kwsk
とりあえず値段が知りたい。商品名もな
▼ 142 名前: 尿管結石(神奈川県)[sage] 投稿日:2008/10/10(金) 20:43:15.93 ID:kbe8vbE3
>>121
小せえw
南くんの恋人か
▼ 149 名前: 給食費未納者(高知県)[sage] 投稿日:2008/10/10(金) 20:44:44.29 ID:OD4/gqiJ
>>121
これはかなり危ない
詳細
表示レス数:5
0892デフォルトの名無しさん
2008/10/10(金) 21:08:030893デフォルトの名無しさん
2008/10/10(金) 21:27:06a = @"C:\HOGE\""FOO"""
b = "C:\\HOGE\\\"FOO\""
@付きの場合VBっぽいリテラルにできる。
ファイルのパスや正規表現のときに便利。
0894デフォルトの名無しさん
2008/10/10(金) 21:48:120895デフォルトの名無しさん
2008/10/10(金) 21:48:39何からしたらいいですか?
0896デフォルトの名無しさん
2008/10/10(金) 21:50:06そんな質問している時点でまず無理
0897デフォルトの名無しさん
2008/10/10(金) 21:51:22おねがいします。
0898デフォルトの名無しさん
2008/10/10(金) 21:53:000899895
2008/10/10(金) 21:54:17ありがとうございます。
処理系って何ですか?
0900デフォルトの名無しさん
2008/10/10(金) 21:58:30ググれ
0901895
2008/10/10(金) 21:59:27わかりました。ありがとうございます。
0902デフォルトの名無しさん
2008/10/10(金) 22:00:300903デフォルトの名無しさん
2008/10/10(金) 22:01:40Close とかそんなメソッドないか?
0904デフォルトの名無しさん
2008/10/10(金) 22:19:38やりたいことが多すぎて、背伸びしすぎてパニックになるぐらいが向いていると思う
0905デフォルトの名無しさん
2008/10/10(金) 22:27:58this.Close;
って書いたらエラーになる
0906デフォルトの名無しさん
2008/10/10(金) 22:34:40で?
どんなエラーかくらい書けよ
0907デフォルトの名無しさん
2008/10/10(金) 22:40:22エラー 1 割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクトの式のみがステートメントとして使用できます。 C:\(中略)Form1.cs 21 13 WindowsFormsApplication1
0908デフォルトの名無しさん
2008/10/10(金) 22:41:34this.Close(); な、
メソッドとプロパティの区別をつけよう。
あと、初心者がいきなりGUIは厳しい。
0909デフォルトの名無しさん
2008/10/10(金) 22:45:26ムカついたのでカッコの中に「笑」を入れたらエラーが出ました
this.Close(笑);
エラー 1 名前 '笑' は現在のコンテキスト内に存在しません。
0910デフォルトの名無しさん
2008/10/10(金) 22:49:16で、メニューバー貼り付けてメニュー周りからやってるんです
プロになるとかお金稼ぐとか関係無いですメモ帳まるパクリ作ってみたいだけなんです
0911デフォルトの名無しさん
2008/10/10(金) 22:50:05それがメソッド呼び出しであるという意味を与えている。
0912デフォルトの名無しさん
2008/10/10(金) 23:01:22がんばれ。
0913デフォルトの名無しさん
2008/10/10(金) 23:02:35多分完成はしないだろうけどな
0914デフォルトの名無しさん
2008/10/10(金) 23:03:410915デフォルトの名無しさん
2008/10/10(金) 23:06:53総合的な機能を持った一つのGUIアプリを作るということ自体が難しいんだ
テキストボックス貼り付ければ楽だけどな
0916デフォルトの名無しさん
2008/10/10(金) 23:07:31やばいなこれ
天才かもしれん
0917デフォルトの名無しさん
2008/10/10(金) 23:25:16・火村夕・・・妹を震災で亡くしており、当時の記憶を思い出させる優子を邪険にしていたが
優子がクラスで虐められている事や、義理の兄にレイプをされている事を聞き
少しずつ優子に心を開き始めることになる。
優子の死後は大学に進学しオーストラリアに日本の音羽と言う町と殆ど同じ町を作
るプロジェクトに携わる。
死んだ優子が日本の教会に居るという噂をミズキから聞き、日本の音羽に向かう。
・久瀬修一・・・心臓の病気で死が近づいている恐怖に怯えて生活している。
衰弱していくみっとも無い姿を見られたく無いので
前の彼女もレイプして追い出した。
そこで羽山ミズキという厄介な存在に出会ってしまう。
ミズキに絶縁を迫るが言う事を聞かなかったのでミズキをレイプする事に。
・雨宮優子・・・初恋の人と再会出来た嬉しさの裏に、希望の無い自分と比べると明らかに
恵まれていながら自分を不幸だと思っている火村を憎む事になる。
ある日上靴が盗まれ、その時火村が優しくしてくれたのでそれに漬け込む事にした。
靴をずたずたに裂いたのは自作自演。自分の傷を見せ、更にレイプされて
いた事も告白した。これで火村は何も出来ない自分の無力さに自虐し、火村に深い傷
を残させる事が出来るはずだった。しかし火村は自分を騙していた事に関しては
何も言わず、優子の事を守ってやると言ってくれたので優子はそれに頷き、
明良と戦う事を決意する。明良が死んだ後妊娠まで発展したが結局交通事故
で死ぬ。しかし奇跡が起きて優子は幽霊となって再び日本の音羽に現れる。
0918デフォルトの名無しさん
2008/10/10(金) 23:26:19自分の実の妹が死んだ事へのこの世の中への復讐と掛けて優子を
毎日暴行を加える事に。
そして優子が明良の実の妹と同じ年になったクリスマスの日に、
強引に優子の処女を奪った。それ以降、毎日優子をレイプした。
学校で火村と優子に責められたので自宅を放火し家ごと焼死。
・羽山ミズキ・・・家族一家で車ごと海に突っ込み自殺、母親に首を絞められ水を
あまり飲まなかったのでミズキだけが助かった。
又幼い頃に自分が車に轢かれそうな時に優子がかばってくれたおかげで
助かった。(その代わりに優子は死んだ)
そして中学3年の夏、ミズキはオーストラリアの音羽に行く。
そこで強がっていて気の弱い久瀬に恋をしてしまう。
ある日久瀬にレイプされしばらく久瀬と会わなくなるが、今死の恐怖から
久瀬を救えるのは自分しか居ないと思い再び久瀬の元へ復縁を求めに行く。
0919デフォルトの名無しさん
2008/10/10(金) 23:38:590920デフォルトの名無しさん
2008/10/11(土) 00:22:25元に戻すを複数回できるようにするのが難しいので諦めた。
軽いことが取り得のメモ帳なのに、起動が無茶苦茶遅いメモ帳ができた。
0921デフォルトの名無しさん
2008/10/11(土) 00:48:38メモ帳って検索とかアンドゥついてたっけ?と思ってしまった
0922デフォルトの名無しさん
2008/10/11(土) 00:51:18DelphiならTStringListそのままオブジェクトをつっこめるから
そこにTStringListを入れてた。
C#ならStack<String>を使えば楽ちんだな。(Delphiでもスタック的なものはあったはずだが、なぜか使わなかったな)
0923デフォルトの名無しさん
2008/10/11(土) 00:51:589xのは付いてなかったような気がする。
0924デフォルトの名無しさん
2008/10/11(土) 00:54:57読めるファイルのサイズの上限とANSIにしか対応してないの以外は
XPやVISTAのと違いはないでしょ。
0925デフォルトの名無しさん
2008/10/11(土) 01:09:190926デフォルトの名無しさん
2008/10/11(土) 01:10:11今ならもっと簡単にできるんだね。
遊びだしSDK1.1のままで十分だったけど勉強し直してようかな。
0927デフォルトの名無しさん
2008/10/11(土) 01:17:46stringってファイルサイズが5MBあったら
何か書くたびに5MB使用メモリが増えるのか?
0928デフォルトの名無しさん
2008/10/11(土) 02:47:390929デフォルトの名無しさん
2008/10/11(土) 04:54:550930デフォルトの名無しさん
2008/10/11(土) 05:32:390931デフォルトの名無しさん
2008/10/11(土) 06:03:330932デフォルトの名無しさん
2008/10/11(土) 07:25:350933デフォルトの名無しさん
2008/10/11(土) 09:03:29コマンドパターン使うとか
0934デフォルトの名無しさん
2008/10/11(土) 09:12:260935デフォルトの名無しさん
2008/10/11(土) 09:20:210936デフォルトの名無しさん
2008/10/11(土) 10:54:590937デフォルトの名無しさん
2008/10/11(土) 10:59:38Has○○とかIntersectsWithとかContainsとか
0938937
2008/10/11(土) 11:12:38とにかくboolを返すメソッドはs付ける
0939デフォルトの名無しさん
2008/10/11(土) 11:23:270940デフォルトの名無しさん
2008/10/11(土) 11:34:030941デフォルトの名無しさん
2008/10/11(土) 11:34:58そのsは三単現じゃなくて名詞扱いするためのsだから
0942デフォルトの名無しさん
2008/10/11(土) 11:35:000943デフォルトの名無しさん
2008/10/11(土) 11:35:360944デフォルトの名無しさん
2008/10/11(土) 11:39:57そのフォームが表示されたときにあるコンポーネントへ初期フォーカスをあてたい
のですが、
この場合、プロパティ?はどれになるんでしょうか
tabindexが若ければいいのかな、と思ってましたがいま3にフォーカスがいってて
1に初期にいってくれません
0945デフォルトの名無しさん
2008/10/11(土) 11:43:07>>942
おまえら英語もできないの?
0946デフォルトの名無しさん
2008/10/11(土) 11:44:360947デフォルトの名無しさん
2008/10/11(土) 11:51:42デバッグモード時にtry文の中で擬似的に例外を発生させたいです。
どうしたら可能でしょうか?
0948デフォルトの名無しさん
2008/10/11(土) 11:59:07static void DebugThrow<T>() where T : Exception, new() { throw new T(); }
こんなの用意しとけば
0949デフォルトの名無しさん
2008/10/11(土) 12:04:07どうもデシ( ´・ω・)ノシ
0950デフォルトの名無しさん
2008/10/11(土) 12:30:11クラス内にprivate変数で書くと他のメソッドでも使えてしまうので、
特定のメソッドだけで使えて自動で破棄されない変数を宣言したいのです。
0951デフォルトの名無しさん
2008/10/11(土) 12:33:470952デフォルトの名無しさん
2008/10/11(土) 12:36:33TabIndex最小でよかったと思うけどうまくいかないならFormのActiveControl
0954デフォルトの名無しさん
2008/10/11(土) 12:44:03そのメソッドで新しいクラス作れば
0955デフォルトの名無しさん
2008/10/11(土) 12:45:44メソッド内の処理をクラスとして括り出してし、
そのクラスのstaticメンバーにするとか。
0956デフォルトの名無しさん
2008/10/11(土) 12:46:27int x = 0;
this.Hoge = (args) =>
{
x++;
};
こういう変態的な方法もあるにはある
実質的には>>954と一緒
0957デフォルトの名無しさん
2008/10/11(土) 12:52:430958デフォルトの名無しさん
2008/10/11(土) 13:24:39class Hoge
{
public void Method()
{
new Foo().Do();
}
}
class Foo
{
private static int val;
public void Do()
{
// 元のMethod内処理をここで行う
}
}
0959950
2008/10/11(土) 13:35:23わざわざクラス作るんですかね…。
ただ何回メソッドが呼ばれたかのカウントすらそんなにめんどくさいなんて。
class Program
{
static void Main(string[] args)
{
Test o = new Test();
o.start();
}
}
class Test
{
public void start()
{
for (int i = 0; i < 3; i++)
{
f();
}
}
private void f()
{
Cnt c = new Cnt();
Console.WriteLine(Cnt.x);
c.Do();
}
}
0960950
2008/10/11(土) 13:36:06class Cnt
{
public static int x = 100;
public void Do()
{
x++;
}
}
ただf()内で何回呼ばれたのだけをカウントしたいのにこんな大事になっちゃいました\(^o^)/
F()の中でstatic int cnt;を宣言してcnt++したいだけなのに…。
0961デフォルトの名無しさん
2008/10/11(土) 13:50:50よろしくないコードなんだけどそういうの書く奴がいるの防ぐためかもね
0962950
2008/10/11(土) 13:57:57そうなんですか!
C/C++では破棄されたくない変数は普通にstaticにしてました…。
(メソッドの呼ばれた回数に応じて処理分岐させたりとか)
C/C++でもクラス生成してそのクラスのstatic変数を呼んだ方がいいのですね。
0963デフォルトの名無しさん
2008/10/11(土) 14:10:190964デフォルトの名無しさん
2008/10/11(土) 14:10:57分離したらいいじゃなく、それ等価コードだからコード分離しても関係なく
スレッドセーフじゃない
基本的に static 使うときにはスレッドセーフのことを考えたほうがいい
(逆にインスタンス変数はあまり考えなくていい場合が多い)。そうすると
同期がどうこうなってこれスコープ絞れなくねとなってまぁその機能あん
まりいらなくね?と個人的にはなるような気がする。
0965デフォルトの名無しさん
2008/10/11(土) 14:12:26名前の管理ができなくなるようなデカイクラスは作るなってこと。
VBには関数内の変数宣言にStaticが使えるけど、
C++と違い匿名のメンバなんで、勘違いしたPGがよくバグを作ってる。
0966デフォルトの名無しさん
2008/10/11(土) 14:15:53趣旨はスコープ絞るほどシンプルに収まる場合は少なくなるんじゃね?と
いうこと
0967デフォルトの名無しさん
2008/10/11(土) 14:16:09appendフラグをtrueにすればいいわけだけど、ファイルの末尾ではなくファイルの
先頭に追加書き込みしたい場合はどうすればいいと思う?
ログのメッセージとか新しい物をファイルのより先頭に記録しておきたいという需要は結構あると思う。
ざっと考えついた方法は、
既存のログファイルを全文StreamReaderクラスで読み込む
↓
記録した最新のログの末尾に、さっきファイルから読み取った過去ログを結合させる
↓
「新規書き込み」モードで結合したログ全文をファイルに書き込み
こんぐらいかな。
でもこの方法だとログファイルが巨大になっていけばいくほどメモリを馬鹿食いして
効率が悪くなるんだよね・・・。何かもっといい方法は無いだろうか?
0968デフォルトの名無しさん
2008/10/11(土) 14:19:570969デフォルトの名無しさん
2008/10/11(土) 14:20:42コミット時 に Move or Copy
0970デフォルトの名無しさん
2008/10/11(土) 14:21:480971デフォルトの名無しさん
2008/10/11(土) 14:23:15面倒くさそうだし、ひょんなことでプログラムが停止すれば意味不明なファイルが生成されたり
ログファイルそのものが消えてしまう悪寒・・・
0972デフォルトの名無しさん
2008/10/11(土) 14:23:55組み込みのライブラリとして使えるし。
0973デフォルトの名無しさん
2008/10/11(土) 14:24:390974デフォルトの名無しさん
2008/10/11(土) 14:25:45v古い方からログを削除
0975デフォルトの名無しさん
2008/10/11(土) 14:46:130976デフォルトの名無しさん
2008/10/11(土) 14:47:400977デフォルトの名無しさん
2008/10/11(土) 14:51:30まあファイルでやることじゃないな。
大体1行書く度に全部書き直しなんて使いもんになるかよって話だ。
0978デフォルトの名無しさん
2008/10/11(土) 15:20:06> ログのメッセージとか新しい物をファイルのより先頭に記録しておきたいという需要は結構あると思う。
それって、ログを表示する時のことじゃない?
だったら、別に逆順に表示すればいいだけだと思うが。
0979975
2008/10/11(土) 15:23:24ttp://www.fortify.com/vulncat/ja/vulncat/cpp/insecure_temporary_file.html
ツッコミありがとう。ファイル名を自前で用意したり
オープン時のモードに気を配ったほうがいいんだろうね
0980デフォルトの名無しさん
2008/10/11(土) 18:38:060981デフォルトの名無しさん
2008/10/11(土) 19:57:360982デフォルトの名無しさん
2008/10/11(土) 20:02:330983デフォルトの名無しさん
2008/10/11(土) 20:06:190984デフォルトの名無しさん
2008/10/11(土) 20:19:09辞書の定員は取得できないの?
↓
The capacity of the dictionary cannot acquire it.
↓
辞書の容量はそれを取得できません。
0985デフォルトの名無しさん
2008/10/11(土) 20:21:58ありがとうございます
0986デフォルトの名無しさん
2008/10/11(土) 20:24:110987デフォルトの名無しさん
2008/10/11(土) 20:24:570988デフォルトの名無しさん
2008/10/11(土) 20:31:211 〜 3 → 4
4 〜 7 → 8
9 〜 15 → 16
17 〜 31 → 32
32 〜 63 → 64
64 〜 127→ 128
128 〜 255 → 256
左の数を入れると右の数が出てくるf()は書ける?
0989デフォルトの名無しさん
2008/10/11(土) 20:35:45空で、指定した初期量を備え、キーの型の既定の等値比較演算子を使用する、
Dictionary クラスの新しいインスタンスを初期化します。
ありそうじゃね?
0990デフォルトの名無しさん
2008/10/11(土) 21:03:460991デフォルトの名無しさん
2008/10/11(土) 21:54:07いや、チェーン型のハッシュテーブルにキャパシティという概念はない。
そのコンストラクタの引数は"capacity"という名前だけど、
実際にはハッシュテーブルのバケットの数を決めるためのヒントに過ぎない。
0992デフォルトの名無しさん
2008/10/11(土) 21:55:200 → 0
1 〜 3 → 4
これに分岐がいる
0993デフォルトの名無しさん
2008/10/11(土) 22:13:49次スレ建てろ。
0:00までに建ってなかったら>>999が建てるように。
0994デフォルトの名無しさん
2008/10/11(土) 22:17:52こういう奴って恥ずかしいと思わないのかね。
それとも普段は人に抑圧されまくってる、気が弱くて小心者の自分を自分で語ってることが
自覚できないほど頭悪いのかな。
っていうか、人に命令してる間に自分でやったらどうかね。
0995デフォルトの名無しさん
2008/10/11(土) 22:21:570996デフォルトの名無しさん
2008/10/11(土) 22:24:37C#, C♯, C#相談室 Part48
http://pc11.2ch.net/test/read.cgi/tech/1219481054/
0997デフォルトの名無しさん
2008/10/11(土) 22:27:490998デフォルトの名無しさん
2008/10/11(土) 22:27:580999デフォルトの名無しさん
2008/10/11(土) 22:28:111000デフォルトの名無しさん
2008/10/11(土) 22:28:4510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。