トップページ⇒tech
1001コメント304KB

C♯, C#相談室 Part34

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/02(木) 20:45:59
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C♯, C#相談室 Part34
http://pc8.2ch.net/test/read.cgi/tech/1157549657/

過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
0232デフォルトの名無しさん2007/10/07(日) 15:22:37
>>231
おれは職業プログラマーじゃねーよ。猿。
アドバイスしてあげるけどその発想の狭さがプログラマーはもちろん
社会人としての適正がないね。
>そうコミュニケーションが「可能」なのは確かに2chの負の側面ではあるが、
>それは同時によい点でもある。
ただのBBSに対して何を語っているのかね。この子は。
0233デフォルトの名無しさん2007/10/07(日) 15:24:49
あのぉ、ここには色んな人が来るわけで・・・
仕事でしている人もいれば、趣味でやっている人、勉強でやっている人とかね・・・
0234デフォルトの名無しさん2007/10/07(日) 15:26:03
231見たいなのはきっと会社ですげー辛い目にあってるんだろうな・・・
0235デフォルトの名無しさん2007/10/07(日) 15:33:50
231は自分がプログラマーに適してるとか思ってるのかな?
こういうのが上司になったら。。。
0236デフォルトの名無しさん2007/10/07(日) 15:49:11
>>230
SortedListじゃあかんの?
仮にやるとしたらSet時にソートするなぁ・・・

しかしお前らこういう時だけ活気付くのなw
0237デフォルトの名無しさん2007/10/07(日) 19:42:01
まあ最後の更新以降、最初の取得時のみソートするとかならわかる気もするけど。
なんでエラーになるわけ?
なんか変な操作して無い?
これだけじゃそもそもエラーにならんと思うけど。
0238デフォルトの名無しさん2007/10/07(日) 19:45:17
そうか繰り返し中にHogeプロパティにアクセスして無い?
今の実装ならそれやっちゃうとエラーになると思うけど。
0239デフォルトの名無しさん2007/10/07(日) 20:48:13
こうすれば単純な話
ArrayList ar = new ArrayList();
ar.Add("aaa"); ar.Add("bbb"); ar.Add("ccc");
IEnumerator it = ar.GetEnumerator();
ar.Sort();    //ar.Add("d");  //ar.RemoveAt(0); //ar[0] = "xxx"; // 変更を加えると
if (it.MoveNext()) Console.WriteLine(it.Current); // 例外が起きるのはここ
0240デフォルトの名無しさん2007/10/07(日) 21:36:39
>236
重複を認めたいけどSortしたい場合はSortedListじゃだめだね。
実際には重複しないケースになりそうな気がするけど。
0241デフォルトの名無しさん2007/10/08(月) 02:59:41
Dictionaly<>はList<>みたいに要素の順序を保持してくれないわけだが、
仮に順序の保持を行うDictionaly<>を作るとなると、
どんな実装が理想的なんだろう?

やり方はいろいろあるんだろうけど、どれがいいのか分らん。
そもそも順序はListで持って、ハッシュテーブルとしてはDictionalyで別々に持つべきなのか?

ちょっとお知恵を貸してちょーだい。
0242デフォルトの名無しさん2007/10/08(月) 03:08:11
>>241
Sorted Dictionary でググッてみてから言ってる?
0243デフォルトの名無しさん2007/10/08(月) 03:11:48
>>242
わかってないのにつまらんこと言うな。
0244デフォルトの名無しさん2007/10/08(月) 03:20:13
何がわかってないか説明してもらおうか
02452412007/10/08(月) 03:30:09
仮に、
"A" , "hoge"
"C" , "hogegege"
"B" , "hogege"
というデータをSortedDictionalyにいれると、キーでソートされてしまって、
"A" , "hoge"
"B" , "hogege"
"C" , "hogegege"
という順序になってしまうわけです。
通常のDictionalyだと、順序は保障されず、どういう順番で返ってくるかさえ分りません。

これを最初の順序のまま、保持してくれるDictionalyの実装の方法についてお聞きしています。
0246デフォルトの名無しさん2007/10/08(月) 03:35:24
Dictionary
0247デフォルトの名無しさん2007/10/08(月) 03:38:20
>>243
いいからググってみろカス
02482412007/10/08(月) 03:39:30
>>246
あうち
さっき打ち間違えてから、なんか変な癖がついちゃってさっきからgoogleとコンパイラに怒られつづけてます。
そういうことって、ない?俺だけかorz
0249デフォルトの名無しさん2007/10/08(月) 03:52:52
>Sorted Dictionary
ああよくみたら空白入ってんのなw
でも方向がおんなじのばっか引っかかるけど。

おれは面倒だからOrderedDictionaryでお茶を濁してる。
0250デフォルトの名無しさん2007/10/08(月) 03:54:26
だってどう考えてもSortとちがうし
02512412007/10/08(月) 04:11:05
>>249
ありがとうございます
俺も面倒くさくなったので、とりあえずはこれでお茶を濁そうかと。
OrderedDictionary、こんなものもあるんだなー。

でも、もし理想的な実装方法というのがあれば、技術の参考までに知りたい。
0252デフォルトの名無しさん2007/10/08(月) 09:53:03
内部にList持って列挙のときだけはListに働いてもらうのが一番簡単だね。
その無駄が許容できるのなら。
0253デフォルトの名無しさん2007/10/08(月) 16:23:28
>>250
Sortでもかまわんだろ。
なにかの順番を適用するにはちがいない。
0254デフォルトの名無しさん2007/10/08(月) 19:53:42
いやそういうことじゃないだろ。
後でインデックスでアクセスするために、
追加した順を覚えておいてほしいって話だろ?
0255デフォルトの名無しさん2007/10/08(月) 20:01:23
>>254
それならもうDictionaryとListを二重に保持するしかないな。
例えばこんな感じ?

class MapWithList {
 Map map;
 List list;

 public void add(Object key, Object value) {
  map.put(key, value);
  list.add(key);
 }

 public Object getWithKey(Object key) {
  return map.get(key);
 }

 public Object getWithIndex(int i) {
  map.get(list.get(i));
 }
}

テストコンパイルしてないから実際に使えるか知らんが、
ようはこういうことがしたいんじゃない?
0256デフォルトの名無しさん2007/10/08(月) 20:33:40
おい一人タイムスリップしてるぞ
0257デフォルトの名無しさん2007/10/08(月) 21:22:45
>>255
だからそれは任意で追加できる機能だろが
0258デフォルトの名無しさん2007/10/08(月) 21:23:16
まちがえた>>254な
0259デフォルトの名無しさん2007/10/08(月) 21:23:31
せめてgenerics使おうぜ
0260デフォルトの名無しさん2007/10/09(火) 01:04:42
TreeViewで、NodeでダブルクリックしてもExpand(展開)もColapse(収縮)も
しないようにするにはどうしたらいいでしょう?
0261デフォルトの名無しさん2007/10/09(火) 01:08:40
Beforeのイベントでキャンセルすりゃいいんじゃね
0262デフォルトの名無しさん2007/10/09(火) 02:44:26
>>261
あーなるほど!そういう手があったんですね!!
ありがとうございました!
0263デフォルトの名無しさん2007/10/09(火) 21:09:49
TreeViewついでに教えてください、ListViewだとアイコンに透明色を使った部分が
透明になりますが、TreeViewだと透明になりません、BackColorを設定すると
TreeViewの方は透明で透けるはずのところが白で塗られていました。これは
TreeViewのプロパティの設定で透明になるでしょうか?
0264デフォルトの名無しさん2007/10/09(火) 21:13:48
http://proforceone.web.fc2.com/ ⇒ Processed input data

エンタ[263.]
お笑い[4,010]
zzztv[247]
yoshimotokogyo[141]

http://proforceone.web.fc2.com/ ⇒ Calculation processing

d=$.split("\n");for(j=0;d.length>j;j++){s=d[j].substring(0,l=d[j].indexOf("["));
s=encodeURIComponent(s);n=d[j].substring(l+1,d[j].indexOf("]")).split(".");
n=eval(n[0].split(",").join(""));n=(n-n%20)/20+(n%20>0);br();
for(i=0;n>i;i++){write("http"+"://youtube.com/results?search_query=");
write(s+"&search_sort=video_date_uploaded&page="+(i+1));br();}}br();
0265デフォルトの名無しさん2007/10/09(火) 21:33:17
コピペ君って馬鹿だな、まで読んだ。
0266デフォルトの名無しさん2007/10/10(水) 09:51:13
VS2005で開発をしているのですが、.NET1.1でプログラムを動かすにはどうすればいいですか?
.NET2.0で追加されたクラスやメソッドを使用しなければ、普通に動くんでしょうか。
0267デフォルトの名無しさん2007/10/10(水) 09:59:28
>>266
マニフェストをいろいろいじるという方法もありますが現実的な方法ではないので
2.0から1.1へは不可能と思ってください。
おとなしく2003で再コンパイル。
0268デフォルトの名無しさん2007/10/10(水) 19:45:14
>>267
即レスしてもらったのに、レスが遅れてすみませんでした。
そうですか。大人しく再コンパイルすることにします。
0269デフォルトの名無しさん2007/10/12(金) 16:25:58
質問です、よろしくお願いします!
あるメソッドやプロパティ、デリゲートといった処理単位内で、
その処理単位自身の名称を知ることができるような、.NETのクラス
があればうれしいのですが、もしありましたらクラス名を教えてください。
0270デフォルトの名無しさん2007/10/12(金) 16:34:18
>>269
処理MethodならSystem.Reflection.MethodBase.GetCurrentMethod().Nameでいける
0271デフォルトの名無しさん2007/10/12(金) 16:34:24
スタックトレース
0272デフォルトの名無しさん2007/10/12(金) 16:36:00
MethodBase.GetCurrentMethodとかそんなん?
0273デフォルトの名無しさん2007/10/12(金) 16:43:41
>>270 おお。
こういう便利メソッドとかをカテゴリごとに網羅してくれる辞書的な本とか誰か作ってくれんかね・・・
大全のもうちょっとしっかりしたやつ。
0274デフォルトの名無しさん2007/10/12(金) 18:38:02
「網羅」した途端にその検索性や索引性はクラスライブラリのリファレンス、
つまりMSDNと同じレベルになると思うんですが。。
02752692007/10/12(金) 18:42:16
>>270-272
どうもです!こんな便利なクラスがあるのですね!!
ありがとうございました、勉強してみます!!
0276デフォルトの名無しさん2007/10/12(金) 19:46:49
>>274 いや、MSDNがわかりにくいのはすべてを同列に書いているからであって、端折ってもいいからそのnamespaceにあるものの大まかな関係などが出てくれてればいい。
そうすればどこら辺を調べればいいか当たりがつくから。
0277デフォルトの名無しさん2007/10/12(金) 20:02:56
だからnamespaceっていうのがそもそもカテゴリを表していると思うんですけど。。
0278デフォルトの名無しさん2007/10/12(金) 20:13:34
>>277
>>276がいってるのはネームスペース内のクラスの関係じゃないのか?
そんなこまかなことはともかく、MSDNが直感的に扱いづらいのは同感。
Web上のボランティアな情報も少ないし、余計に扱いにくいなあ。
VS買ったらネームスペースのマップみたいなポスターついてきたけど、あんなのでわかる人いるの?
0279デフォルトの名無しさん2007/10/12(金) 20:27:36
>>278
そうそう。namespaceないで、まぁまたいでもいいんだが、クラス等がどういうことするときにどう関係するのかとかがつかめん。

0280デフォルトの名無しさん2007/10/12(金) 20:28:42
いや276が言っているのは、要は欲しいものをエスパーしてくれるリファレンスが
欲しいって事でしょ。

そんなの不可能だわな。

俺様にとって必要で便利なクラスのインデックスが欲しい、
って言ったって何が必要で便利かは「俺様」によって違うじゃん。

そもそも、だからこをクラスライブラリはあのボリュームになっているわけで。
0281デフォルトの名無しさん2007/10/12(金) 20:39:52
>>280 低脳は黙ってろ
0282デフォルトの名無しさん2007/10/12(金) 20:40:09
はぁい
0283デフォルトの名無しさん2007/10/12(金) 20:52:33
関連クラスへのハイパーリンクを
たどってグラフ化してくれるプログラムでも作ればいいんじゃね
0284デフォルトの名無しさん2007/10/12(金) 20:54:24
だからどのクラスとどのクラスがリンクするかは用途の関数だろってw
本当にプログラマが言ってるのかね
0285デフォルトの名無しさん2007/10/12(金) 20:56:02
>>280
量が多いからいいとは限らない。
むしろほしい情報が直感的にわかりやすく手に入る方が、重要なんじゃないか?
どれだけ情報があろうが、その格納場所がわからなければないのと同じだし、
それにMSDNの情報は、多くが重複してたり余計なスペースや下手な配置がされてたりする。
>>276がエスパーを要求してるとは思わないが、
仮に>>280のいう"ほしい機能に必要なクラスを教えてくれるリファレンス"がほしいっていうのも、
あながち大それた要求ではないと思う。
0286デフォルトの名無しさん2007/10/12(金) 20:56:45
>>284
日本語でおk。
0287デフォルトの名無しさん2007/10/12(金) 21:00:29
>>285
アッタマ悪いな本当w

だから何が「欲しい情報」かは人によって違うんだよ。
だから、そうでないならクラスライブラリがあんなに肥大する理由がないだろう。
0288デフォルトの名無しさん2007/10/12(金) 21:47:21
ま た お ま え か
0289デフォルトの名無しさん2007/10/12(金) 23:48:41
実際個人個人の願望を集約したものは単なるごった煮だと思うけどね。
MS Officeとか。
要望に上がる新機能の大半が既に実装済みという。

>>273
とりあえずこの辺一通りみてみたら?
http://homepage3.nifty.com/midori_no_bike/CS/

あと、VBのコードスニペットは
.NETで何ができるかを調べるときには意外と参考になるよ。
ttp://salv.miscnotes.com/2007/01/2007.php
ttp://salv.miscnotes.com/2007/01/SnippetIndexVB.zip
0290デフォルトの名無しさん2007/10/13(土) 00:01:15
>>289
たしかにあれだけごちゃごちゃしてれば、納得のいく話だな。
もはや今日のソフトウェアデベロッパーは、要求される機能を追加していくだけでは駄目だって好例かもね。
0291デフォルトの名無しさん2007/10/13(土) 02:11:18
>アッタマ悪いな本当w
これいうやつって大概伝達能力不足だよな・・・
0292デフォルトの名無しさん2007/10/13(土) 02:32:12
>アッタマ悪いな本当w
こういうのをいうやつで頭がよさげにしゃべるやつを見たことがない。
自分のつたない言語能力で、そもそも伝達しようとしている事柄が間違ってることさえあ利、相手が理解しないからといって相手が一方的に頭が悪いと考えてるんだろうな
0293デフォルトの名無しさん2007/10/13(土) 05:25:25
マ板でやれ
0294デフォルトの名無しさん2007/10/13(土) 12:48:13
DataGridViewで、外形をResizeしたとき、中のカラムの幅も
それに自動で連動してゴムみたいに伸び縮みするようにできれば
と思うのですが、プロパティ設定でできるでしょうか?
0295デフォルトの名無しさん2007/10/16(火) 08:39:05
発行しようとすると以下のようになるのですが、どうしたら良いのでしょうか?
特に変わった事はしていないはずなのですが・・・

署名中にエラーが発生しました: bin\Release\app.publish\\setup.exe の署名に失敗しました。
0296デフォルトの名無しさん2007/10/18(木) 16:25:18
発行しようとすると以下のようになるのですが、どうしたら良いのでしょうか?
特に変わった事はしていないはずなのですが・・・

署名中にエラーが発生しました: bin\Release\app.publish\\setup.exe の署名に失敗しました。
0297デフォルトの名無しさん2007/10/23(火) 20:08:36
C#で例外を発生させたいんですが、どれを使えばわからずに全部Exceptionにしてます。
ですので、もっと内容に沿った例外を投げれるよう、主に使用する例外クラスを教えてください。
0298デフォルトの名無しさん2007/10/23(火) 20:25:50
内容に沿ったものを自分で作れ
0299デフォルトの名無しさん2007/10/23(火) 20:35:57
どんな状況を想定してんの?
03002972007/10/23(火) 20:48:45
半端にJavaを勉強してからC#をメインでしてるのですが、
Javaでは"InvalidArgumentException(引数が不正)"など、目的によってある程度例外が定義されてました。
こんな感じで、よく使う例外が元から定義されてると思って、よく使うものを挙げてもらいたかったのですが、
そういった例外は定義されてないんでしょうか?
0301デフォルトの名無しさん2007/10/23(火) 20:54:14
MSDNライブラリで芋づる式に調べられるでしょ
http://msdn2.microsoft.com/ja-jp/library/zbea8bay(VS.80).aspx
とか
http://msdn2.microsoft.com/ja-jp/library/z4c5tckx(VS.80).aspx
とか
0302デフォルトの名無しさん2007/10/23(火) 21:03:45
>>301
ありがとうございます。地道に調べていきます。
0303デフォルトの名無しさん2007/10/23(火) 23:26:11
どうみても定義されてるけど何で気づかんの?
0304デフォルトの名無しさん2007/10/24(水) 01:38:21
ゆとり
0305デフォルトの名無しさん2007/10/24(水) 02:41:12
クラスのコンストラクタ内で、そのクラスの初期化(表示処理など)がすべて終わった後に
ある処理を実行させるということは可能ですか?

たとえば、自作フォームのコンストラクタ内でdataGridViewをはりつけて、
dataGridViewの表示がおわった後に、なにか処理を実行したい場合って
どうすればいいんですかね?

コンストラクタ
{
dataGridView初期化;
なにか処理
}
だと、「なにか処理」を実行したあとにdataGridViewの表示処理を行ってるようなんですが。
0306デフォルトの名無しさん2007/10/24(水) 03:00:30
表示された後はShownイベントでやるしかないんかな・・・?
0307デフォルトの名無しさん2007/10/24(水) 12:35:26
配列の中身を普遍にしたいのですが、C#では可能でしょうか?
C++に例えると、これと同様なコードを書きたいんです。

const int const array[5] = {1, 2, 3, 4, 5};
0308デフォルトの名無しさん2007/10/24(水) 12:40:27
>>307
readonly
0309デフォルトの名無しさん2007/10/24(水) 12:42:15
それは違うでしょw
0310デフォルトの名無しさん2007/10/24(水) 16:09:26
普遍性を保証したいだけなら ReadOnlyCollection みたいなのを作る手はあるけど。
効率面を気にしてのことなら、コンパイラの最適化を期待するしか。
0311デフォルトの名無しさん2007/10/29(月) 15:31:59
int pi=3; ///<summary>円周率</summary>

こういう風にXMLコメントを定義の右側に書く事ってできなかったですか?
(上の通り書くと当然、次に定義される物のコメントとして扱われますが)
できたような気がするのはdoxygenか何かと混同してるのかな
0312デフォルトの名無しさん2007/10/29(月) 16:25:14
C# の /// だとそれは無理。
0313デフォルトの名無しさん2007/10/29(月) 17:04:51
了解
3.0でできるようにならんかな
0314デフォルトの名無しさん2007/10/29(月) 17:06:42
doxygen使えばよくね?
0315デフォルトの名無しさん2007/10/29(月) 17:19:28
int a; /// <summary>aaa</summary>
int b;

と

int a;

/// <summary>bbb</summary>
int b;

で意味が変わるなんて糞仕様以外のなんでもないだろ。
0316デフォルトの名無しさん2007/10/29(月) 17:24:41
当然の仕様だ
0317デフォルトの名無しさん2007/10/29(月) 17:54:37
int a = 0;
と
a=0 as int
が混在してるようなもんだろ、それ。
0318デフォルトの名無しさん2007/10/29(月) 18:25:02
ちげーよ
0319デフォルトの名無しさん2007/10/29(月) 19:41:06
ふと頭を過ぎったこと。
>>315みたいな奴がきっとエスパー召還質問するんだろうな。

こういう人って自分の書いたことが一意に相手(コンパイラ含む)に伝わるかどうかっていう
思考回路が欠けてるんじゃないの?
0320デフォルトの名無しさん2007/10/29(月) 19:43:30
>>315…なのか…?
0321デフォルトの名無しさん2007/10/29(月) 20:13:28
>>319
      r;ァ'N;:::::::::::::,ィ/      >::::::::::ヽ
.      〃  ヽル1'´        ∠:::::::::::::::::i
       i′  ___, - ,. = -一   ̄l:::::::::::::::l
.      ! , -==、´r'          l::::::/,ニ.ヽ
      l        _,, -‐''二ゝ  l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
        レー-- 、ヽヾニ-ァ,ニ;=、_   !:::l ) } ト
       ヾ¨'7"ry、`   ー゙='ニ,,,`    }::ヽ(ノ  チラシの裏にでも書いてろ
:ーゝヽ、     !´ " ̄ 'l,;;;;,,,.、       ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{   __)`ニゝ、  ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ ,  な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
0322デフォルトの名無しさん2007/10/29(月) 20:18:53
コピペ君って馬鹿だな、まで読んだ。
0323デフォルトの名無しさん2007/10/29(月) 22:06:30
>>315
それがダメなら同じ///じゃなくて別の表記にすればいいだけだわな
doxygenでも///<みたいに書いていたはず
0324デフォルトの名無しさん2007/10/30(火) 01:34:20
つかコードの後ろにコメントってセンス無さ杉
0325デフォルトの名無しさん2007/10/30(火) 11:24:47
大量のツッコミを受けた>>315が反論できなくなったために
センスという否定も肯定もできない理由を使って問題の大前提を否定し始めたように見える
0326デフォルトの名無しさん2007/10/30(火) 11:47:11
>>325
煽りたいだけなら他所でやれよ
>>315の言いたい事すら理解できてないだろお前・・・
0327デフォルトの名無しさん2007/10/30(火) 12:16:29
>>322
コピペ君って馬鹿だな、まで読んだ。
0328デフォルトの名無しさん2007/10/30(火) 15:55:11
ワロス
0329デフォルトの名無しさん2007/10/30(火) 20:07:27
>>315の指摘は至極まっとうだと思うんだけど
>>319は何が言いたいのかわからん
0330デフォルトの名無しさん2007/10/30(火) 20:17:21
>>319の指摘は至極まっとうだと思うんだけど
>>315は何が言いたいのかわからん
0331デフォルトの名無しさん2007/10/30(火) 20:38:10
ひろ君もたか君も
つまらないケンカはやめなよ!
■ このスレッドは過去ログ倉庫に格納されています