ふらっとC#,C♯,C#( ..
[2ch|▼Menu]
237:デフォルトの名無しさん
08/03/27 14:42:11
>>227
そもそも、DirectX自体がWPFとXNAに二分されて
フェードアウトするんじゃないか?
DirectShowなんか、既にWindows SDKに移住したし。

238:デフォルトの名無しさん
08/03/27 15:04:57
>>235
んなもん #if で終了だろ

239:デフォルトの名無しさん
08/03/27 16:36:39
型の使い分けについて教えて下さい。
int やlongの場合、intを使わずに全てlongで良いような気がするのですが、なぜintが存在しているのでしょうか?
素人考えだと、intで良い物はむやみにlongにするより、処理が早くてすむ、メモリの節約になる。
などの理由があるのかなと予想しているのですが。

240:デフォルトの名無しさん
08/03/27 16:43:01
>>239
>処理が早くてすむ、メモリの節約になる。

正解。


241:デフォルトの名無しさん
08/03/27 16:44:58
そうだよ?
誰もA1ノートなんて買わないだろ?使わないんだから

242:デフォルトの名無しさん
08/03/27 16:53:21
longよりintが先に存在したから

243:デフォルトの名無しさん
08/03/27 17:09:39
>>240-242
ありがとうございます。すっきりしました。

244:デフォルトの名無しさん
08/03/27 17:12:31
>>237
Direct3Dに関しては、WPFのブラシの一つとして実装されるのが一番綺麗だろうな。
逆にDirect3DのテクスチャとしてWPFがまた利用可能で、無限入れ子になってくれば汎用性も高そうな気がする。
消滅に関しては今更感があるので難しいかと。

245:デフォルトの名無しさん
08/03/27 17:15:00
>>239
現状だとCPUが32ビットで、複数回に分けて計算されるので
long だと、マルチスレッドではいちいちlockしないといけないのが面倒くさいという実務上の都合もあるな。

246:デフォルトの名無しさん
08/03/27 17:15:14
WPFのもっと低レベルな描画方法は欲しい

247:デフォルトの名無しさん
08/03/27 18:39:55
>>245
thx 参考になります。

248:デフォルトの名無しさん
08/03/27 19:12:38
tryの中で冷害が起きるとFにみちりりんの中は実行されるですか?

249:デフォルトの名無しさん
08/03/27 19:15:42
それ面白いと思って書いてるのかな。
ちっとも面白くないが、君が「オカシイ」奴だということだけはよくわかるよ

250:デフォルトの名無しさん
08/03/27 19:33:52
オーバーロードがないと叱られるのですが、どうしたら良いですか?

ToolStripItem.MouseUp += new EventHandler(fff);

private void fff(object sender, MouseEventArgs e)
{

}

251:デフォルトの名無しさん
08/03/27 19:36:16
ToolStripItem.MouseUp += new MouseEventHandler(fff);
または
ToolStripItem.MouseUp += fff;

252:デフォルトの名無しさん
08/03/27 19:41:18
>>251
ありがとうございます。

EventHandlerで全て処理するのかと思い込んでいました。
指摘されて電気が走りました・・・。

253:デフォルトの名無しさん
08/03/27 21:05:38
foreachの中で要素を消すのは違法ですか?

254:デフォルトの名無しさん
08/03/27 21:11:05
ダメ。ゼッタイ。

255:デフォルトの名無しさん
08/03/27 21:13:35
消すのイクナイ。

256:デフォルトの名無しさん
08/03/27 21:32:27
てかコンパイルエラー吐くだろ。設定で無視できるのか?

257:デフォルトの名無しさん
08/03/27 23:07:13
SplitContainerでdockをfillにしてフォームのサイズを変更するとラインの位置が比率?で
変わりますがこれをどちらかだけ固定する方法はないのでしょうか?

258:257
08/03/27 23:08:40
ありました・・・
今度は30秒待ってから書きますorz

259:デフォルトの名無しさん
08/03/27 23:36:55
フォームが非アクティブの時にもキー入力を取得したいのですがどうしたらいいんでしょうか?

260:デフォルトの名無しさん
08/03/27 23:38:15
ほっく

261:デフォルトの名無しさん
08/03/28 00:01:05
URLリンク(homepage3.nifty.com)
ここの「ホットキーを登録する」をコピペしたら動きました。
これから理解したいと思います。

262:デフォルトの名無しさん
08/03/28 02:34:15
初心者で申し訳ないんですが、ジェネリックの使い方がいまいち分かっていないようです
以下のような、任意のデータ方を扱えるconsを作りたいのですが、うまくいきません。ご教鞭願いたいです

class Cons<T,U>
{
  private T left;
  private U right;

  public T car
  {
    get { return left; }
    set { left = value; }
  }

  public U cdr
  {
    get { return right; }
    set { right = value; }
  }

  public Cons(T a,U b)
  {
    this.left = a;
    this.right = b;
  }

263:つづき
08/03/28 02:34:53
  public override string ToString()
  {
    return "(" + left.ToString() + "." + right.ToString() + ")";
  }

  static void Main()
  {
    Cons a = new Cons(10, "a");
    Console.WriteLine(a.ToString());
  }
}

264:デフォルトの名無しさん
08/03/28 02:36:54
プラスとして、恐らく上のままでは一旦
Cons a = new Cons(10,"abc");
などとして作った後、
a.car="foo";
とするとエラーになると思うのですが、解決策はあるでしょうか?

265:デフォルトの名無しさん
08/03/28 02:46:24
>>264
この2つを直せば動く。
1. ジェネリッククラス内にエントリポイントMainは置けない。
2. ジェネリッククラスを使うときには、Cons<int, string>のように
ジェネリックの引数を指定しないといけない。


266:デフォルトの名無しさん
08/03/28 03:02:32
ちなみに、
型推論を働かせたい場合、コンストラクタでは無理。

static partial class New
{
 static Cons<T, U> Cons<T, U>(T left, U right) { return new Cons<T, U> (left, right); }
}
みたいな static メソッドを書けば、
C# 3.0 なら
var a = New.Cons(10, "abc");
で、Cons<int, string> が作られたりはする。

267:デフォルトの名無しさん
08/03/28 03:05:29
すみません、少し質問の仕方が悪かったですね。

・任意のデータ型を内包できるリスト構造を作れるか
・そのリストの要素をまた別の任意の型へ変換できるものが作れるか

この2点が知りたいです。
そんなに柔軟な型にこだわるならスクリプト言語でもいじってろと思うかもしれませんが・・・

268:デフォルトの名無しさん
08/03/28 03:07:09
>>266
なるほど、結構しんどくなってくるんですね・・・

269:デフォルトの名無しさん
08/03/28 03:22:08
自己解決しました。普通にobject型使えば一発でした。
吊ってきます。

270:デフォルトの名無しさん
08/03/28 06:42:43
>>268
横やりだけど、これって関数型言語のような事をしたいという意味に取れたのですが
もしそうだとしたら、プロパティーに set をつけること事態がよろしくないのでは?
と思ったりしたのですが・・・・
やるとすれば、たとえば string クラスや DateTime クラスのように
一回設定したら変更できないタイプのクラスに設計するのが美しいような予感がします。

271:デフォルトの名無しさん
08/03/28 07:11:04
自分が実装するなら・・・こうかな
public class Pair<T,U> {
 T left ;
 U right ;
 public T Left { return left ; }
 public U Right { return right ; }
 public Pair<T,U>(T l ,U r) { left = l ; right = r ; }
 public override string ToString() {
  return "(" + left.ToString() + "." + right.ToString() + ")";
 }
}
public static class Lisp {
 public static T Car<T,U>( this Pair<T,U> pair ) { return pair.left ; }
 public static U Cdr<T,U>( this Pair<T,U> pair ) { return pair.right ; }
 public static T SetCar<V,U>( this Pair<T,U> pair , V left ) { return new Pair<V,U>( left , pair.right ) ; }
 public static U SetCdr<T,V>( this Pair<T,U> pair , V right ) { return new Pair<T,V>( pair.left , right ) ; }
 public static Pair<T,U> Cons<T,U>( T left , U right ) { return new Pair<T,U>( left , right ) ; }
}
class MyClass {
 void Main() {
  var a = Lisp.Cons( 10 , "a" ).Car() ;
  var b = a.SetCar( "foo" ) ;
Console.WriteLine(a.ToString());
 }
}

272:デフォルトの名無しさん
08/03/28 07:26:52
まちがっている
 public static T SetCar<V,U>( this Pair<T,U> pair , V left ) { return new Pair<V,U>( left , pair.right ) ; }
 public static U SetCdr<T,V>( this Pair<T,U> pair , V right ) { return new Pair<T,V>( pair.left , right ) ; }
  ↓
 public static Pair<V,U> SetCar<T,U,V>( this Pair<T,U> pair , V left ) { return new Pair<V,U>( left , pair.right ) ; }
 public static Pair<T,V> SetCdr<T,U,V>( this Pair<T,U> pair , V right ) { return new Pair<T,V>( pair.left , right ) ; }
コンパイルしていないのでまだあるかも知れない。


273:デフォルトの名無しさん
08/03/28 08:27:11
public T Left { ... }

public T Left { get { ... } }

pair.left

pair.Left

あとはMainもおかしい
aはint

274:デフォルトの名無しさん
08/03/28 09:06:50
>>269
ジェネリックスはもともと関数型言語由来だから相性は悪くないはず
object などと妥協せずとことんやりこんでみる事をお勧めする。

275:デフォルトの名無しさん
08/03/28 10:39:38
lock(x)
{
}

を有効にするにはxオブジェクトを private static で修飾する、ということであってますか?

276:デフォルトの名無しさん
08/03/28 11:00:31
static が付くとは限らないんじゃないか
readonly をつけることは結構あるかも

277:デフォルトの名無しさん
08/03/28 12:31:07
>>275
日本語書け。

「有効にする」とはどういう意味?
あるいは、「有効にする」というからには「無効」という状態があるんだろうが
「lock(x)が無効」とは具体的にどんな事態のことを指してるの?

278:デフォルトの名無しさん
08/03/28 13:06:03
>>275
MSDNでlockのところ読んどけ

279:デフォルトの名無しさん
08/03/28 13:53:17
>>276
おぃ、なんちゅートンデモアドバイスを与えいるんだ?

280:デフォルトの名無しさん
08/03/28 19:04:42
Test

281:デフォルトの名無しさん
08/03/28 20:04:53
private string[] List_GetItem(string url)
{
foreach (string[] item in list_news) if (item[0] == url) return item;
return null;
}

こういう書き方ってきもいかな?

282:デフォルトの名無しさん
08/03/28 20:09:46
うん

283:デフォルトの名無しさん
08/03/28 20:12:14
foreachで回す必要なし

284:デフォルトの名無しさん
08/03/28 20:14:15
メソッド名がきもいです

285:デフォルトの名無しさん
08/03/28 20:19:08
つーか、メソッドにする必要なくね?

286:デフォルトの名無しさん
08/03/28 20:25:14
list_newsがList<string[]>なら、
list_news.Find(x => x[0] == url)
ですむんじゃまいか。

287:デフォルトの名無しさん
08/03/28 20:29:21
List_まではいいけど、GetItemがものすごく嫌だな
たぶん.NetFrameworkの上でなければ全然気にならないんだろうけどwww

288:デフォルトの名無しさん
08/03/28 20:36:40
TransparencyKeyで透過色を指定した後、
やっぱり透過をやめたい場合はどうすればいいんでしょうか??

289:281
08/03/28 21:11:32
みなさん、ありがとうございます
メソッド名がきもいのは許して・・・

>>286
こういう書き方ができるのですね
勉強になります

290:デフォルトの名無しさん
08/03/29 13:05:15
基底クラス内で宣言したクラスや構造体に
派生クラスからメンバを追加する方法ってありますか?

291:デフォルトの名無しさん
08/03/29 13:12:43
意味が分からん
具体的に何がしたい

292:デフォルトの名無しさん
08/03/29 13:13:08
class Base {
 //Nestedオブジェクトは常にこのメソッドを通して作ること!
 protected virtual Nested CreateNested() { return new Nested(); }
 protected class Nested { }
}
class Derived {
 protected override Nested CreateNested() { return new DerivedNested(); }
 class DerivedNested : Nested { public void NewMember() { } }
}
こういうことか?

293:デフォルトの名無しさん
08/03/29 14:13:59
たぶん例えばListViewItemを継承したクラスで、ListViewSubItemを継承したいとかそんなことだと予想。

最近何通りにも解釈できる短い日本語だけで、何も具体的に書かないのが多いな。
しかもそれに対して、こうでしたって書き込みがない。
釣りか?

294:デフォルトの名無しさん
08/03/29 14:26:27
釣りではないでしょ。
むしろこういうタイプの「彼」は、「俺様の意図が理解できないなら黙ってろよこの煽り厨房が」
ぐらいのことをリアルで思ってように感じられる。

295:デフォルトの名無しさん
08/03/29 14:28:16
お前ら偉そうだなっ!










これからも宜しくお願いしますm(_._)m

飛び入りです

296:デフォルトの名無しさん
08/03/29 14:38:30
お前ら偉そうだなっ!










これからも宜しくお願いしますm(_._)m

通りすがりです

297:デフォルトの名無しさん
08/03/29 14:55:22
若い人は特に言葉使いとか礼を述べる習慣がありませんからね
そういう教育をしてこなかった世代にも誤りがあります

298:デフォルトの名無しさん
08/03/29 15:05:13
>>297
礼儀の問題か。
説明能力の問題だろう。
まあ君の場合は理解力の問題でもある。

299:デフォルトの名無しさん
08/03/29 15:08:51
>>298
1から1000まで書かないと理解して貰えませんでしたか、とても残念です。

300:デフォルトの名無しさん
08/03/29 15:18:21
どんな幸せ回路内蔵してんだろコイツ

301:デフォルトの名無しさん
08/03/29 15:49:20
ただのバカですな、そのままの意味で理解するなら不可能とだけ答えて終わりにしておきませう。
きっと彼の想像するお望みの機能はあっさり実装できると思われますが。

302:デフォルトの名無しさん
08/03/29 16:09:21
ユーザーが指定した数だけ数字を入力できるプログラムを作りたいのですが、エラーが出て実効できません、どこがおかしいのかおしえてください
using System;

class aaa
{
public static void Main()
{
int a = int.Parse(Console.ReadLine());
int[] b= new int [a];
for(int c=0;c<=a;++c)
{
a[c] = int.Parse(Console.ReadLine());
}
}
}

303:デフォルトの名無しさん
08/03/29 16:12:04
c<=a  ←これがおかしい

304:デフォルトの名無しさん
08/03/29 16:24:42
なんでエラーメッセージを読みすらしないんだろう?

305:デフォルトの名無しさん
08/03/29 16:26:39
エラーメッセージよんでもわかりませんでした。
あと直す箇所はどうやってなおしたらいいかおしえてください

306:デフォルトの名無しさん
08/03/29 16:28:39
>>305
では、ここに来る前に入門書を購入してしばらくやってください。
ちょっと迷惑にもほどがありますね。

307:デフォルトの名無しさん
08/03/29 16:29:03
どう見てもs/a[c]/b[c]/だろ。
c=<aはおかしいがc<=aは正しい
aは配列じゃない云々言われたはずだが、どうして分からないとか言えるんだ?

308:デフォルトの名無しさん
08/03/29 16:31:13
すいません、もっとよく勉強してから来ます

309:デフォルトの名無しさん
08/03/29 16:32:32
DataSetを利用している人って多いい?

310:デフォルトの名無しさん
08/03/29 16:34:54
趣味の人は使わないと思うよ、実務系のひとなら大抵使っているかと。

311:デフォルトの名無しさん
08/03/29 17:18:12
TransparencyKeyで透過色を指定した後、
やっぱり透過をやめたい場合はどうすればいいんでしょうか??


312:デフォルトの名無しさん
08/03/29 17:56:25
C#で作成したアプリケーションをスタートアップに登録しても起動しないんですが、何が悪いんでしょうか?
OS起動後に実行すれば問題なく実行できます。
環境は
OS:WindowsXPSP2
IDE:Visualstudio2005pro
.netframework2
です。

313:デフォルトの名無しさん
08/03/29 18:05:51
>>312
当方まったく同じ環境ですが、問題なく起動しています。
別に原因があるんじゃないですかね?

314:デフォルトの名無しさん
08/03/29 18:07:40
他ユーザの場所に登録したんじゃないの?

315:デフォルトの名無しさん
08/03/29 18:12:23
>>311
Color.Empty でも指定すれば良いんじゃね

316:デフォルトの名無しさん
08/03/29 18:33:44
>>310
今までデータ管理は自分でやっていたから気にしてなかったのですがさっき自分が使いやすいように
固めて扱ってみたらわりと便利そうな感じです。これから設定などはこれを利用してみようと思います。

317:デフォルトの名無しさん
08/03/29 18:35:25
>>316
これからやるなら、せっかくだからLINQ攻めてみたらどうだい?

318:デフォルトの名無しさん
08/03/29 18:42:43
スレチすいません。
Visual Studio 2005のヘルプのようなヘルプを作りたいのですがどうすればいいのでしょう?

319:デフォルトの名無しさん
08/03/29 19:02:12
ウィンドウの最小サイズってどのくらいなんでしょう?
30*30に設定してもならないですし、
フォームにラベル貼ってAutoSizeで大きく表示したあと、そのラベルを30*30くらいまで下げると縦長のウィンドウになっちゃうし…。

320:デフォルトの名無しさん
08/03/29 19:11:13
>>316
sqlとの付き合いも長いからある程度は使えると思うのですがまだ利用のイメージが
わかないのです。あると便利なのはわかるのですがそれを有効に使うには結局、
メモリ以上に大量のデーターベースをおいて置かないといけないって事ですよね?。

321:デフォルトの名無しさん
08/03/29 19:25:40
>>319
SystemInformation.MinimizedWindowSize
SystemInformation.MinWindowTrackSize
この辺じゃね?


322:デフォルトの名無しさん
08/03/29 20:01:01
>>320
そんな激しいもんじゃないよ、テーブルの定義がclassのフィールドもしくはプロパティーになって
その配列(シーケンスとよばれている)がテーブル
それに対してクエリを発行しましょうという物。
その テーブルの定義 == class に Sql やら XML やら、自作DBを関連付けて統一的に取り扱えるようにしましょうという物。

323:デフォルトの名無しさん
08/03/29 20:01:18
>>321
てことは30*30とかには変更できないって事ですね。
でもラベルのAutoSizeに合わせるとバグるのはなんでなんだろ

324:デフォルトの名無しさん
08/03/29 22:24:58
>>318
NDocは更新が止まっていた気がするので今だとSandcastle?

325:デフォルトの名無しさん
08/03/29 22:38:15
>>318
どこかで見かけたなと思って、スタートメニューの中をのぞいていたら HTML Help Workshop というのがあって
ためしにチョコチョコっと作ったらできた。
初代VS,2002,2003,2005,2008のどれかについてきたものだと思う、調べてみるといいかも。

326:デフォルトの名無しさん
08/03/29 22:52:17
Officeについていたりもするよ

327:デフォルトの名無しさん
08/03/29 22:57:05
チェックボックスやラジオボタンの状態を保存するのってどうすればいいのでしょうか?
誰か、暇だったら教えて下さい><

328:デフォルトの名無しさん
08/03/29 22:58:04
>>327
プロパティー読み出して適当な変数に保存しておればいいかと。
Checkedという名前だった・・・はず

329:デフォルトの名無しさん
08/03/29 23:11:32
>>328
ありがとうございます。明日起きたらやってみますzzz

330:デフォルトの名無しさん
08/03/29 23:12:05
Sandcastleだな。

331:デフォルトの名無しさん
08/03/29 23:38:32
オブジェクトのプロパティの値を全てTextWriterに書き出す標準の方法ってある?
自分でリフレクション使ってやらないといけない?

332:デフォルトの名無しさん
08/03/29 23:45:33
プロパティの値といわれると制限が強いがXmlSerializer
フィールドならIFormatterだが直接TextWriterは無理か

333:デフォルトの名無しさん
08/03/29 23:47:46
>>331
シリアライザを使ったらいいと思うよ。

334:331
08/03/29 23:49:48
すみません デバッグ用に書き出したいだけなんです
イミディエイトウインドウなんかだと自動でやってくれるので,
もしかしたら標準的な方法が用意されてるのかなと

335:デフォルトの名無しさん
08/03/29 23:54:09
>>334
URLリンク(www.codeplex.com)
commonsと比べると微妙だった気がするが・・・

336:デフォルトの名無しさん
08/03/29 23:55:08
使ったことはないけど、デバッグ用のがあったな・・・
最近見かけておやっ、あとで調べとかなきゃとか思っていたんだが2008専用かもしれん。
今、手元にないので駄目だが、ツールボックスか、プロジェクトの追加の所を調べてみるといい、たしか有ったぞ。

337:デフォルトの名無しさん
08/03/30 09:05:33
>>336
Visualizer(デバッガ ビジュアライザ)の事?
あれはTextWriterに書き出すのとは用途が違うからなぁ・・

338:デフォルトの名無しさん
08/03/30 10:21:33
[]でアクセスするプロパティは作れますか?

339:デフォルトの名無しさん
08/03/30 10:24:20
うん

340:デフォルトの名無しさん
08/03/30 10:28:43
どうするの?

341:デフォルトの名無しさん
08/03/30 10:38:09
インデクサでぐぐれ

342:デフォルトの名無しさん
08/03/30 12:36:40
クラスのパブリックメンバ(プロパティ)で、
単に
public int Member1;
とするのと、get setを使用する
public int Member1()
{
get{return _member1;}
set{_member1 = value;}
}
とするのとは同じものと考えていいのでしょうか?

343:デフォルトの名無しさん
08/03/30 12:37:46
いいえ。
前者はフィールドで後者はプロパティです。

344:デフォルトの名無しさん
08/03/30 13:06:52
やることは一緒だろ

345:デフォルトの名無しさん
08/03/30 13:21:59
>>344
本格的に使ってみればわかる、全くの別物。

346:デフォルトの名無しさん
08/03/30 15:43:06
プロパティの方は、set時に値チェックをするもよし、内部状態を更新するもよし、get時に状況に応じて別のフィールドの値を返すもよし、例外を投げるもよし

347:デフォルトの名無しさん
08/03/30 16:01:42
自分で作っている範囲なら、その程度の範囲かもしれないしが
例えば DataGridView とかプロパティーのみを表示するクラスとか色々あるだろ
デザイナ上でのユーザーコントロールもそうだし
そういった所まで使い始めるとどちらで設計するかが使い勝手の良さを決定的に変える。

348:デフォルトの名無しさん
08/03/30 16:02:45
>>346
例外を投げるとは具体的にどのように?

349:デフォルトの名無しさん
08/03/30 16:04:04
>>348
346では無いが、そのぐらいは自分で考えてみたらどうだい?

350:デフォルトの名無しさん
08/03/30 16:10:36
Class1 c1 = new Class1();
c1.exceptionMessage = "";
if (c1.exceptionMessage != string.IsNullOrEmpty)
{
MessageBox.Show(c1.exceptionMessage);
c1.exceptionMessge = "";
}

351:デフォルトの名無しさん
08/03/30 16:18:06
>>350
C++上のメタプログラミングみたいだな、けど・・・でき悪い、キモイよ
使用したいなら更なる改善を要求する

352:デフォルトの名無しさん
08/03/30 17:35:21
NetworkStream.Flash()で強制送信だと思うのですがサーバー側はどうやって分けて受信したら
良いのでしょうか?

353:デフォルトの名無しさん
08/03/30 17:47:39
分けて受信とかTCPにそんな機能無いから

354:デフォルトの名無しさん
08/03/30 17:50:29
>>353
そうするとデータの最後に何らかの〆データを付加するしかないのですね

355:デフォルトの名無しさん
08/03/30 17:58:46
>>346
getで例外投げるのはガイドライン違反

356:デフォルトの名無しさん
08/03/30 18:06:21
Nullable<>.Valueとか普通に例外投げてくるけどね

357:デフォルトの名無しさん
08/03/30 18:11:57
それはキャッチされることを想定してないから問題ないんじゃないの
javaでいうところのチェック済み例外みたいなのをgetが投げちゃダメって意味だと思う

358:デフォルトの名無しさん
08/03/30 18:50:09
ref class Anime
{
  private Dictionary<Int32, String> titles;
}

こんなクラスで

Anime ccs = new Anime();
ccs.Title[0] = "さくらと不思議な本"

Console.WiteLine(ccs.Title[0]);

みたいに使えるプロパティを作るにはどうすればいいですか?
上記以外のコレクションへの直接操作は出来ない感じで。

359:デフォルトの名無しさん
08/03/30 18:53:15
>>358
>>341

360:デフォルトの名無しさん
08/03/30 18:58:46
>>358
まずC#に ref classはないだろ

class Anime
[
private Dictionary<int,string> titles;

public Dictionary<int,string> Titles{ get{ return titles; } }
}

これで出来る

361:デフォルトの名無しさん
08/03/30 18:59:01
>>358
public Dictionary<int, string> Titles { get{ return this.titles; } }

362:デフォルトの名無しさん
08/03/30 19:03:48
>上記以外のコレクションへの直接操作は出来ない感じで。
インデクサを通さないと他の操作やりたい放題だよ
public string this[int index] {
 get { return titles[index]; }
 set { if(titles.ContainsKey(index))titles[index]=value;else titles.Add(index,value); }
}

363:デフォルトの名無しさん
08/03/30 19:05:50
それだと構文が異なるだろ。

C#は名前つきインデクサ作れないから、プロキシオブジェクトを返さないと無理だ

364:デフォルトの名無しさん
08/03/30 19:08:21
iterindexコードスニペットを使えば幸せになれるかも
インデクサ自体の実装は>>362みたいな感じで

365:デフォルトの名無しさん
08/03/30 19:11:05
そもそもそれ関数じゃだめなのか?

366:デフォルトの名無しさん
08/03/30 19:50:51
DictionaryBaseでも継承したネストクラスを作って公開するのが普通だろ

367:デフォルトの名無しさん
08/03/30 19:56:42
今更非ジェネリックは無いわ

368:デフォルトの名無しさん
08/03/30 20:18:48
こうだろ

class Anime
{
Dictionary<string,int> titles;
TitlesIndexer indexer;

public Anime()
{
titles = new Dictionary<string,int>();
indexer = new TitlesIndexer(titles);
}

public TitlesIndexer Titles{ get{ return indexer; } }

public class TitlesIndexer
{
Dictionary<int,string> titles;

public TitlesIndexer(Dictionary<int,string> titles)
{
this.titles = titles;
}

public string this[int index]{ get{ return titles[index]} } }
}
}

369:デフォルトの名無しさん
08/03/30 20:21:36
358 じゃないですが、プロキシオブジェクトと聞いて・・・
以前からある System.Collections.ArrayList.ReadOnly や System.Collections.ArrayList.Synchronized
に対応する
ジェネリックス版は無いのでしょうか?
見つからなくてとりあえず自作してしまっているので、あれば交換しておきたい所。

370:デフォルトの名無しさん
08/03/30 20:22:31
>>365
そんな最低な仕様は嫌だろ、Linqも何も使えなくなっちまう。

371:デフォルトの名無しさん
08/03/30 20:24:49
>>369
ないよ。なくなっちゃった。

372:デフォルトの名無しさん
08/03/30 20:30:53
List<T>.AsReadOnlyはある

373:デフォルトの名無しさん
08/03/30 20:38:24
>>372
ども、Asが付いたのか
なんとも実装が中途半端だな、問題が見つかったのだろうか?

374:デフォルトの名無しさん
08/03/30 20:38:54
System.Collections.ObjectModel.ReadOnlyCollection<T>ってのもある。
Synchronizedは・・・まぁ手抜きサービスとしてはあまりに
お粗末すぎるから廃止されたんじゃねーの?

375:デフォルトの名無しさん
08/03/30 20:41:39
>>358
敢えてタイトルの中身には突っ込まないでおこう。

376:デフォルトの名無しさん
08/03/30 20:59:46
オンラインMSDNが最近重いからオフラインにインストールしてみたのですが・・・
キーワード検索で「socket」って入れるとSystem.Net.Sockets.SocketExceptionしか出てこない
こんなものでしょうか?、それとも使い方を間違えているのでしょうか?

TcpClient tcp = listener.AcceptTcpClient();
このtcpからリモートのIPを調べる方法を知りたいのです


377:デフォルトの名無しさん
08/03/30 21:19:57
WindowsSDK入れたら表示できるようになったような気がする

378:デフォルトの名無しさん
08/03/30 21:27:27
>>376
TCPは知らないけど、
どのMSDNライブラリを入れたのか?
フィルタが設定されていないか?

これ入れた?
URLリンク(www.microsoft.com)

379:デフォルトの名無しさん
08/03/30 21:49:59
>>374
問題が分ってきた
使いにくい理由は、SyncRootをコンテナが持っているからで
外部から渡せば十分使い物になりそうな感じがするんだけどな。

380:デフォルトの名無しさん
08/03/30 22:36:06
>>377-378
VS2008ExpressJPNX1428694ってDVDでVCSやVCとかも入った物から入れました。
>>378のサイズを考えると上記のDVDには一部しか入っていないようですです。
ありがとうございます。

しかし2464.6 MBはADSLには辛い・・・。


381:デフォルトの名無しさん
08/03/30 23:32:42
>>358
IList<>とIDictionary<>のインデクサの汎用ラッパー作ってみた

public static class Indexer {
public static DictionaryIndexer<TKey, TValue> GetIndexer<TKey, TValue>(this IDictionary<TKey, TValue> dict) { return new DictionaryIndexer<TKey, TValue>(dict); }
public static ListIndexer<T> GetIndexer<T>(this IList<T> list) { return new ListIndexer<T>(list); }
}

public sealed class DictionaryIndexer<TKey, TValue> {
private IDictionary<TKey, TValue> dict;
internal DictionaryIndexer(IDictionary<TKey, TValue> dict) { this.dict = dict; }
public TValue this[TKey key] { get { return dict[key]; } set { dict[key] = value; } }
}

public sealed class ListIndexer<T> {
private IList<T> list;
internal ListIndexer(IList<T> list) { this.list = list; }
public T this[int index] { get { return list[index]; } set { list[index] = value; } }
}



382:デフォルトの名無しさん
08/03/30 23:40:27
C#+ASP.NETの学習で何か良書はありませんでしょうか?
(値段、初心者向け問わず、なるべく内容の濃いもの)

383:デフォルトの名無しさん
08/03/31 15:40:49
C#で
URLリンク(www2s.biglobe.ne.jp)
のような処理を行いたいのですがどうすればよいのでしょうか?
ヒントでも構いませんのでご教授いただければ幸いです。

384:デフォルトの名無しさん
08/03/31 15:49:26
>>383
シェル拡張したいってことかな?
↓こんな話が。
URLリンク(blogs.wankuma.com)

385:デフォルトの名無しさん
08/03/31 16:34:10
>>384
シェル拡張ではない気がします......
キーボードフックでF2キーを監視しているのでしょうか?

386:デフォルトの名無しさん
08/03/31 16:40:49
普通にサブクラス化してるだけじゃないの?

387:デフォルトの名無しさん
08/03/31 17:12:17
配列の中にある数字をすべて足すにはどうすればいいですか?
ちなみに配列は一次配列で内容はint型の整数です。

388:デフォルトの名無しさん
08/03/31 17:20:23
var arr = new { 1, 2, 3 };
var total = arr.Sum();

.NET 3.0かそれ以前なら普通にループ。

389:デフォルトの名無しさん
08/03/31 18:20:39
>>385
見るからにシェル拡張に見えるよ

390:デフォルトの名無しさん
08/03/31 19:13:52
>>388
new[]だろ?

391:デフォルトの名無しさん
08/03/31 20:45:58
C++から移行してきたんですが、C++用のDLLってC#で使えますか?
MFCに依存しないWin32 DLLです

392:デフォルトの名無しさん
08/03/31 20:49:51
C++特有の機能を使っていないただの関数ならできる。
あとはCOMになっているやつもいける。

393:デフォルトの名無しさん
08/03/31 20:52:06
>>389
どうもありがとうございます。
シェル拡張部分をCやC++で書いて処理部分をC#で書く、と言う形になるのでしょうか?


394:デフォルトの名無しさん
08/03/31 20:53:57
>>392
てことは、クラスとかは無理ってことでしょうか

395:デフォルトの名無しさん
08/03/31 20:58:54
C++/CLIつかえばいいよ

396:デフォルトの名無しさん
08/03/31 21:07:27
IDisposable実装してDisposeしたいのですが、メンバのすべてを
自分で明示的にクリアしなければならないですか?
たとえば、プロパティ用の一時変数とかも含めて。

public List<int> hoge;
private string _piyo;
private int _fuga;

↑がある場合は、↓みたいに全てクリアが必要なのでしょうか?

hoge = null;
_piyo = null;
_huga = 0;

397:デフォルトの名無しさん
08/03/31 21:26:14
unmanagedなリソースだけでいい

398:デフォルトの名無しさん
08/03/31 21:37:07
別にIDisposable実装したからってGCに特別な影響があるわけじゃないよ
使い終わったら実行してほしい普通のメソッドを実装するだけ

399:デフォルトの名無しさん
08/03/31 21:39:58
フィールドにDisposeメソッド持っているやつがいたら
そいつは呼んでおけ。

400:396
08/03/31 22:02:30
>>397-399
はい、わかりましたー。

401:デフォルトの名無しさん
08/03/31 22:08:03
>>393
というか要するに複数バージョンのCLRが同一プロセスで動けないのが
問題なわけさ。エクスプローラは単一プロセスにシェル拡張読み込む
ので別バージョンのCLR使うシェル拡張読み込んだ瞬間クラッシュしちまう


それが解決出来るのならなんでもいい。といってもC++ネイチブ使ってアウト
プロセスにしちまうくらいしか思い付かないがまあ確かに出来そう。

402:デフォルトの名無しさん
08/03/31 22:37:24
MSDN引きながらちょろちょろ半分コピペしながら書いてるけど
量が多すぎてC# .Net Frameworkがわかった気がしない・・・。
しかも、なにかやりたいことがあって、それが可能か不可能か
を調べるのに、MSDNに記載されている箇所を正しく見つける
ことができずに、ぐぐって見つけたどこかの海外のフォーラム
とかブログの記事なんかで推測する始末・・・。

403:デフォルトの名無しさん
08/04/01 00:03:34
>>402
量が少なく過ぎよりははるかにマシだから。

404:デフォルトの名無しさん
08/04/01 00:07:43
どのみち外部参照するなら量がすくないほうが無駄時間へって親切

405:デフォルトの名無しさん
08/04/01 00:10:25
MSDNって日本語で読むと混乱するよなw

406:デフォルトの名無しさん
08/04/01 00:12:41
>>404
WPFの適当なドキュメントを見てみろ
今までなんだかんだいって頼りにしてたんだなと痛感する

407:デフォルトの名無しさん
08/04/01 00:13:40
MidPointRoundingの説明なんて誤訳に近いよな。

408:デフォルトの名無しさん
08/04/01 00:14:10
外部でさがすんだろ?
ならないほうがいいじゃん

409:デフォルトの名無しさん
08/04/01 00:19:46
英語読めね

410:デフォルトの名無しさん
08/04/01 00:21:52
勉強するだけでOK

411:デフォルトの名無しさん
08/04/01 00:25:28
いやMSDNを超軽くしてくれればそれだけでいい・・・。あの重さは凶悪だろ・・・。
あれだけで引く気がうせる。

412:デフォルトの名無しさん
08/04/01 00:31:23
ローカルな MSDN はいいんだが、
ネット上の MSDN は最悪だな。

413:デフォルトの名無しさん
08/04/01 00:33:37
まちがって最初にネット検索に設定してからローカルのMSDNをみることができない
だれか助けて><

414:デフォルトの名無しさん
08/04/01 00:43:38
メモリ1Gしか積んでないからかもしれないけど、
ローカルでもSystem.Windows.Forms名前空間みたいに
でかいページを表示しようとするときと移動するときは重い

415:デフォルトの名無しさん
08/04/01 00:49:44
MSDNライブラリのためにPCを買い換えなければならんとは。くちおしや。

416:デフォルトの名無しさん
08/04/01 09:05:42
typedefはないの?

417:デフォルトの名無しさん
08/04/01 09:34:04
要らないの

418:デフォルトの名無しさん
08/04/01 09:50:39
listview+= mouseclickはアイテムが存在しない所では発生しないみたいですが、
これをlistview内であれば発生するようにしたい場合はどうしたら良いでしょうか?

419:418
08/04/01 09:54:13
mousedownか、コントロールとコンポーネントの違いすら理解していなかったorz

420:デフォルトの名無しさん
08/04/01 16:34:24
DataTable.PrimaryKeyを設定したものをWriteXmlした時にファイルの内容を見てみると
プライマリーキーらしい情報が見つからないのですがこれは先頭にあるカラムが自動的に
プライマリーとして扱われるという認識で合っていますか?

421:デフォルトの名無しさん
08/04/01 16:58:56
合ってない。
プライマリキーの情報を書き込みたいなら XmlWriteMode.WriteSchema が必要。

422:デフォルトの名無しさん
08/04/01 17:01:03
クラスなんかC++同士でも怪しいだろ

423:デフォルトの名無しさん
08/04/01 19:28:25
>>406
同感、なんだかんだいってもMS頑張ってるよ、もっともっと頑張って欲しいが
WPFにしてもLINQにしても、めちゃめちゃ使えるのに、リバースエンジェニアリング的なことまでやらないと理解できないのはあまりに寂しい。

>>393
マネージドコードが使えるシェル拡張が強く欲しいよな
しかし、現状では素直にComで作っとけ。

424:デフォルトの名無しさん
08/04/01 20:53:24
listboxでアイテム削除を繰り返しているとインデックスがずれるらしいのですが、どうすれば良いですか?
たぶんこんな感じにずれてます。
index 値
1 AAA
2 BBB
3 CCC

2番を消すと
1 AAA
2 CCC

425:デフォルトの名無しさん
08/04/01 21:25:35
どうと言われてもそういうものだから仕方がない。
何をしたいのか具体的に書いてくれないと、書きようがない。
ヒントとしてはItemsに設定できるのはObjectで、
SelectedItem系でそのObjectが取得できるってこと。

426:デフォルトの名無しさん
08/04/01 21:56:48
わかりました。
ありがとうございました。

427:デフォルトの名無しさん
08/04/01 22:16:12
やっぱり分かりませんでした。
自己定義のクラスのオブジェクトを渡すと、クラス名が表示されてしまいます。
表示名を設定する方法を教えて下さい。

428:デフォルトの名無しさん
08/04/01 22:18:18
自己解決しました。


429:デフォルトの名無しさん
08/04/01 22:31:13
菅直人「1+1は、いったい何なんですか?」
小泉 「2です」
菅直人「ですから、1+1なんですよ。質問に答えてください」
小泉 「2ですね」
菅直人「全く質問に答えていない。国民が聞きたいのは1+1なんですよ!」
小泉 「どうあっても2です」
菅直人「全く説明になっていません」
小泉 「誰が何と言おうと2です」
菅直人「うまく逃げましたね。あなたはいつもそうだ」
小泉 「……?」
菅直人「あまり国民をなめないで頂きたい!」
小泉 「ですからねぇ・・・原則として、1+1は2、
     これは揺らがない、私はずっとそうお答えしています」
菅直人「いいでしょう、最後に私は、小泉総理は1+1について
     国民をあざむいたと、そう申し上げて答弁を終了します」

430:デフォルトの名無しさん
08/04/01 22:35:43
コピペ君って馬鹿だな、まで読んだ。

431:デフォルトの名無しさん
08/04/01 22:53:45
updateで古い物を上にしてソートしたいのですがキャストに失敗してしまいます。
order.Field<DateTime>("update")でフィールドとDateTimeとしてソートしてくれる
のではないのでしょうか?。updateにはDateTime.Now.toString();が入っています。

EnumerableRowCollection<DataRow> query = from order in table.AsEnumerable()
orderby order.Field<DateTime>("update")
select order;

>>421
ありがとうございます。

432:デフォルトの名無しさん
08/04/01 23:23:16
列updateはstring型じゃないのか?
だとすれば、こうだろ

order.Field<string>("update")

433:431
08/04/01 23:32:17
日付としてソートしたかったのですがDateTime.Nowの形ではだめなんですね
カラムの設定を指定したらいけそうです。

434:デフォルトの名無しさん
08/04/02 03:07:56
最近C#の入門書を購入したのですが、やはり内容を丸暗記したほうがいいのでしょうか?(猫でもわかるC#プログラミングという本で400ページくらいのものです)
グーグルで検索してみると、暗記しろと書いてあるところもあれば
必要最低限のところだけ覚えればいいと書いてあるところもあり
どうしたものかと右往左往しています

もし仮にこの本を丸暗記したとして次のステップアップはどのようにすればいいのでしょうか?

435:デフォルトの名無しさん
08/04/02 03:42:13
猫プログラミングに載ってるぐらいの初歩的な内容は覚えておいて損はない
とは言えると思うけど、余程暇で無い限り丸暗記する必要はない。
(こんな機能があるってだけ覚えておけば、必要な時に思い出したり調べることが出来る)

次のステップは・・何を作りたいかによって全然違うから何とも言えない。

436:434
08/04/02 04:28:06
>>435
ありがとうございます

本に書いてあることさらっと全部やってみて、大事そうなところをあとから復習してみようと思います

437:デフォルトの名無しさん
08/04/02 10:47:50
よく使うものはその気がなくても気が付いたら覚えている。
けど大事なところは思い出せないんだけどね。

438:デフォルトの名無しさん
08/04/02 11:22:19
MessageBoxのボタンを英語で表示する方法って無いでしょうか
キャンセル→Cancel
みたいな

FormのLanguageを英語にしてみたけど日本語のままだったorz

439:デフォルトの名無しさん
08/04/02 11:29:16
>>438
CurrentUICultureを英語にしてみるとか。

440:デフォルトの名無しさん
08/04/02 11:37:46
リンクではないブラウザに表示されている画像をD&Dする方法はあるのでしょうか?
DragEnterを書き換えないと無理だとハードルが高すぎるのですが・・・

441:デフォルトの名無しさん
08/04/02 12:15:48
>>440
ファイルパスが含まれてるならキャッシュから持ってこれるかもしれない。
DeviceIndependentBitmapとか持ってたらそれから作れるな。面倒だけど。
DragEnterの書きかえって何?

442:デフォルトの名無しさん
08/04/02 12:31:43
>>436
っていうか今時のプログラミング関係の本の読み方は基本は「乱読」だと思うよ。
一冊の本を熟読なんていう受験勉強スタイルは時間のムダだと思う。

これ一冊読んでおけばOK、なんて網羅的は本はないし、
書くほうも恐らく精読されることを想定して書いてない。

あと個人的意見として、「猫でも〜」の著者の本はウンコだと思う。

443:デフォルトの名無しさん
08/04/02 12:33:43
>>441
それがブラウザ上の画像からD&DをしようとするとDragEnterイベントが起きないのです。
こういう場合はDragEnterをオーバーライド?とかしないといけないのでしょう?。

444:デフォルトの名無しさん
08/04/02 12:45:08
>>443
ドラッグできないものならドロップ先でなにしようがD&Dできない。
ドラッグできるものならドラッグ元が制限かけない限りDragEnterは発生する。
何をドラッグさせるかはドラッグ元次第。
まずドラッグできてるのかってところから確認。

445:デフォルトの名無しさん
08/04/02 14:40:19
ていうかブラウザから画像D&D出来るよ

446:デフォルトの名無しさん
08/04/02 15:16:00
HttpWebRequestでHTMLを取得・解析するプログラムを作っているのですが、
あるサーバーのHTTPヘッダーが
本来CRLFでなければならない部分がLFLFになっているらしく、
アクセスすると「サーバーによってプロトコル違反が発生しました. Section=ResponseStatusLine」
というエラーが出て落ちてしまいます

これを回避するにはどうしたらいいでしょうか?
よろしくお願い致します。

447:デフォルトの名無しさん
08/04/02 15:34:30
構造体作るたびにEquals(構造体),Equals(object),==,!=,GetHashCode実装するのが
面倒なんだけど何とかならない?

448:デフォルトの名無しさん
08/04/02 15:45:04
>>446
HttpWebRequest使うのを諦めてSocket or TcpClient使う

449:デフォルトの名無しさん
08/04/02 15:47:10
>>448
ありがとうございます。
TcpClientは使ったことないですがやってみます

450:デフォルトの名無しさん
08/04/02 15:59:48
>>446
UseUnsafeHeaderParsing
でどうにかならんかな?

451:デフォルトの名無しさん
08/04/02 18:04:44
>>450
ありがとうございます
System.Configuration.dllをアセンブリ参照に追加して、
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
SettingsSection section = (SettingsSection)config.GetSection("system.net/settings");
section.HttpWebRequest.UseUnsafeHeaderParsing = true;
で行けました。

452:デフォルトの名無しさん
08/04/02 19:09:26
VS2008を使って.net framework3.5で開発してたんですが
2.0対応にしようと思って、プロジェクトのプロパティのアプリケーションタブの対象フレームワークを2.0にして
3.5及び3.0をアンインストールしてからソリューションを開いてみたら、
version3.5のmicrosoft.build.engineがありません、と言われて起動出来ませんでした。
なにかアドバイスもらえませんか?


453:デフォルトの名無しさん
08/04/02 19:14:06
ターゲットバージョンを指定できるとはいえ、ビルドに使ってるのは3.5のコンパイラだし。
2008に必要なランタイム削れば、そら動かんのは当たり前だろ。

2008のIDEだけ欲しかったとか? あてが外れたね。

454:デフォルトの名無しさん
08/04/02 19:23:06
開発者がランタイム嫌うとかアホかと

455:デフォルトの名無しさん
08/04/02 19:48:58
>>438
最悪、Win32 APIのMessageBoxExか自前でやるか。

456:デフォルトの名無しさん
08/04/02 19:49:03
いつもの人なんだろうな、もうプログラム組むのあきらめたら?

457:デフォルトの名無しさん
08/04/02 20:14:38
>>444-445
これだと画像を引っ張った時に e.Effect = DragDropEffects.None;の状態になるので
イベントが起きていないと勘違いしていました。すいません。
でも、e.Data.GetDataPresent("UniformResourceLocator")にマッチするのに何故でしょう?。
イベントが二回起きているからなのかな?。

private void treeView_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent("UniformResourceLocator") || e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Link;
}
else if (e.Data.GetDataPresent(typeof(ListViewItem)))
{
e.Effect = DragDropEffects.None;
}
else
{
e.Effect = DragDropEffects.None;
}
}

458:457
08/04/02 20:18:32
お騒がせしました。
画像の場合、DragDropEffects.Linkだとだめなのですね。
e.Effect = DragDropEffects.Copy;にしたら上手く行きました。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4333日前に更新/161 KB
担当:undef