C♯, C#相談室 Part32

このエントリーをはてなブックマークに追加
561デフォルトの名無しさん
Referer 情報を保持したいのですが
HttpWebRequest.Referer プロパティってどのように設定すればいいんでしょうか?
562デフォルトの名無しさん:2006/07/10(月) 00:16:31
どのようにと言われてもサンプルのようにとしか。
563デフォルトの名無しさん:2006/07/10(月) 00:18:16
文字列を代入するんだよ、そんなことも分からないんじゃプログラムを作るのはやめたほうがいい
564デフォルトの名無しさん:2006/07/10(月) 00:24:50
IntPtrってcでいうchar*、int*、void*とかのの総称でしょ?
名前からするとint*みたいな。
しかもなぜかISerializable。
565デフォルトの名無しさん:2006/07/10(月) 00:30:33
>>562
サンプルなんてありました?

CとPHPとアセンブラくらいしかやったことないので
まだオブジェクトっていう考え方よくわかってません・・・・

HttpWebRequest.Refere= "http://hoge_nurupo.com";
とこんな感じに指定はできないんではないですか?
566デフォルトの名無しさん:2006/07/10(月) 00:32:59
クラス、インスタンス、オブジェクトの関係を学んでください。

ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/
567デフォルトの名無しさん:2006/07/10(月) 00:40:36
>>566
どうもです
逝ってきます
568デフォルトの名無しさん:2006/07/10(月) 02:16:57
初歩的な質問ですがお願いします。

TabPageの派生クラスを作成しTabControlに追加したいのですが
デザイナで追加したTabPageの型をコードのほうで変更するやり方だと
デザイナで「変数が割り当てられていません」というエラーが出てデザイナが使用不能になってしまいます。
独自に作成したコントロールをデザイナで使用するためにはどうしたらよいのでしょうか?
569デフォルトの名無しさん:2006/07/10(月) 02:42:55
>>557-560
うざい
まともの答えれないなら書き込みするなよ
ゴミ以下だな
570デフォルトの名無しさん:2006/07/10(月) 03:33:39
>>569
今日は「ゴミ以下」が多いから気にするな
571デフォルトの名無しさん:2006/07/10(月) 06:47:58
すでに夏厨の季節か
572デフォルトの名無しさん:2006/07/10(月) 07:16:56
>>564
どっちかというとそういう名前の整数型と言う方が近いかもしれない。
Cでいうところのintptr_t。
573デフォルトの名無しさん:2006/07/10(月) 09:53:59
C#で明示的にSSEとかのSIMDを利用することってできますか?
574デフォルトの名無しさん:2006/07/10(月) 11:30:48
>>568
designの方のコードはいじらないで、まず派生クラスをつくってからコンパイル。
すると、ツールボックスに自作のコントロールが出てくるから、
それをポトペタ。


>>555
>>543に加えて
private void textBox1_DragEnter( object sender, DragEventArgs e )
{
 if( e.Data.GetDataPresent( DataFormats.Text ) )
  e.Effect = DragDropEffects.Copy;
 else
  e.Effect = DragDropEffects.None;
}

575デフォルトの名無しさん:2006/07/10(月) 11:56:11
TextBox.OnPasteをオーバーライドしてWndProcから呼ぶようにしたら、
貼り付け後のアンドゥができなくなってしまいました。どうしたら
いいですか?
OnPasteでは、貼り付け可能な文字かどうか判断して
SelectedTextを更新しているだけです。
576OnPasteって:2006/07/10(月) 13:43:32
すいません、下のソースを丸写ししててオーバーライドだと思ってました。
首吊ってきます。
ttp://jeanne.wankuma.com/library/maxbytelengthtextbox/source.html
577デフォルトの名無しさん:2006/07/10(月) 15:59:49
Problem
フォームに動的にコントロールを追加したい
ボタンのクリックイベントハンドラで以下のコードで実現できるが
この方法では作成したコントロールを別の場所から制御できない

Button btn = new Button();
//プロパティをいろいろ設定
this.Controls.Add(btn);

//この後ハンドラのブロックを抜けるためbtnはGCの対象になり、
//アクセスできなくなる

メインフォームクラスでprivate変数を持てばそれを通して別の
場所からもアクセスできるが、それではコントロールを数十個
追加するなどすれば破綻してしまう
578デフォルトの名無しさん:2006/07/10(月) 16:03:49
>>577 根本的にC#を判ってないと思う。
何で破綻するのか3行で書いてみ?
579577:2006/07/10(月) 16:10:45
はい
public class Form1 : Form
{
  private void button1_Click(object sender, EventArgs e)
  {
    Button btn = new Button();
    //btnのプロパティを設定
    this.btn = btn;
  }
  private Button btn;
}

これでインスタンス変数btnを通してあとからでもButtonをいろいろといじれる
でも、このままではButtonは一個しか増やせない。3個にしようと思えば
その分インスタンス変数を増やさないといけなくなる

あ、Buttonを格納できるコンテナを使えばいいのかな?
580524:2006/07/10(月) 16:13:54
http://msdn2.microsoft.com/ja-JP/library/za0zx9y0.aspx
ここを参考に無事出来ました。
ファイルのドロップで開く「DataFormats.FileDrop」は知っていたので
「DataFormats.Text」もインテリセンスで知って、真っ先に試してみたのですが、
何故か上手くできなくて、違うやり方があるのか無理なのかと思っていました。
581524:2006/07/10(月) 16:23:02
>>574さん、レスありがとうございました。
582デフォルトの名無しさん:2006/07/10(月) 16:28:02
>>579
最初に必要なだけ並べておいて全部Hide()
必要になったらShow()じゃダメ?
583デフォルトの名無しさん:2006/07/10(月) 16:53:21
>>579
this.Controls.Addしたんだから
this.Controlsの中に入ってるじゃんよーw
もっと単純にかんがえようよ(・∀・)
584583:2006/07/10(月) 16:58:55
インデクサ使えるよな・・・
(Button)this.Controls[n]でOKだよな・・・
585579:2006/07/10(月) 17:11:07
いいんです…
僕は頭が悪いんですから…
もういいんです…
ありがとうございました…
586デフォルトの名無しさん:2006/07/10(月) 17:14:15
>>585
お前は頭が悪いのか?
つまり>>582>>583を見ても解決できなかったということか?
もし解決できたんなら、それでいいじゃないか。
みんな、そうやって知識を蓄えて成長するんだよ。
解決できなかったなら頭悪い死ね。
587デフォルトの名無しさん:2006/07/10(月) 17:34:07
慰めてるのかけなしているのか
588デフォルトの名無しさん:2006/07/10(月) 17:44:33
Problem
TabControlのラベル部分の背景色を変更したい
TabControlのImageListプロパティを設定することで
ラベル部分にアイコンを表示することは出来るが、
背景色や文字色は変更できない
589デフォルトの名無しさん:2006/07/10(月) 17:58:38
590デフォルトの名無しさん:2006/07/10(月) 18:16:17
Click Event とかで特定の Tab を開かせるのは
どうやればいいですの
591デフォルトの名無しさん:2006/07/10(月) 19:06:04
>>590
意味ワカンネ

とりあえずTabControlなら
SelectedIndex やSelectedTab で設定できるけど。

まさかヘルプ読めば書いてあって気違いでも分かるような
超低能な質問するわけないよね?
592デフォルトの名無しさん:2006/07/10(月) 20:18:02
ピクチャーボックスにDrawRectancleした四角形をスムーズに移動させたいです。
いまは、前の位置を背景色で塗ってから新しい位置に四角を書いています。
もっとよいやり方があったら、ヒントをお願いします
593デフォルトの名無しさん:2006/07/10(月) 20:25:34
それでいんじゃね
594デフォルトの名無しさん:2006/07/10(月) 20:26:45
>>592
結局はそれと同じだけど、
http://msdn2.microsoft.com/ja-jp/library/ms172506.aspx
これは使ってる?
595592:2006/07/10(月) 21:03:45
いえ、使っていません
一気に1000個描画してから切り替えているようですが、移動させると考えると、その都度切り替えるということですかね?
596588:2006/07/11(火) 01:55:42
>>589
へぇぇオーナードローってのがあったんだ
勉強になりますありがとうございます
597デフォルトの名無しさん:2006/07/11(火) 02:36:38
Formのサイズを定数で指定したいです
InitializeComponent()の中でthis.Sizeなどをいじっても
いつのまにか初期設定にリセットされています
InitializeComponentのコメントにも

「デザイナサポートに必要なメソッドです。このメソッドを
コードエディタで変更するな」

と書かれています

かといってFormクラスのコンストラクタで

InitializeComponent();
の直後にサイズを変更するコードを書くのは
サイズの設定をわざわざInitializeComponentの中と外の
二箇所で指定することになりスマートじゃないです
598デフォルトの名無しさん:2006/07/11(火) 02:57:07
>>597
デザイナでサイズ指定しなきゃ良いじゃん
599デフォルトの名無しさん:2006/07/11(火) 03:05:46
作業ディレクトリの指定に関する質問です。

fileOpenDialogで実行ファイルまでのパスを取得した後に
Process.Start()で実行しようと思っています。
この際に実行ファイルがあるディレクトリをWorkingDirectoryにしたいのですがどういう方法があるでしょうか?
実行ファイルまでのパスから取得する方法はあるのか、或いはfileOpenDialogする際に取得する方法があるのか、
また他の方法があるのか教えてください。
600599:2006/07/11(火) 03:13:17
訂正:fileOpenDialogじゃなくてOpenFileDialogの間違いです
601デフォルトの名無しさん:2006/07/11(火) 06:31:12
System.IO.Path
602597:2006/07/11(火) 09:29:02
>>598
どういうこと?
デザイナでFormのSizeを0,0に設定するってこと?
603デフォルトの名無しさん:2006/07/11(火) 09:39:24
コンストラクタでやれ
604デフォルトの名無しさん:2006/07/11(火) 10:03:11
>>602
デザイナで好みのサイズにしたら、あとはサイズ変更しなきゃいいんじゃないの?
あとはFormBorderStyleを固定(Fixidが付いてるやつ)にして
MaximizeBoxにFalseを設定すりゃ、実行時もサイズは変更できないよ。

でも、直接いじったからって初期設定にいつの間にかリセットなんてされないはずだが・・・?
そのFormは継承Form?
605デフォルトの名無しさん:2006/07/11(火) 10:33:16
定数てのがミソなんでせう。
606デフォルトの名無しさん:2006/07/11(火) 10:42:39
SizeにしてもLocationにしてもコンストラクタ内で再設定しても
プロパティ自体は新しい値を保持するけど、実際に表示された
ときに、反映されるとは限らない。実際はデザイナの設定の
とおりに表示される場合がほとんど。
コントロールの表示属性を変更するような処理は
コンストラクタの中で書いちゃいけないのは常識。
Loadイベントの中で行うべし。
607デフォルトの名無しさん:2006/07/11(火) 10:43:34
>>597は「定数」の意味を理解していないに100ペソ
もしくはオレ流定義をしているに100ペソ
608デフォルトの名無しさん:2006/07/11(火) 10:45:26
>>597
ところで、「定数」はどこに定義してるの?
609デフォルトの名無しさん:2006/07/11(火) 10:50:21
デザイナでセットしても実行時にどっかでそれをセットしてるんだから祖こんところを調べろよ。
610デフォルトの名無しさん:2006/07/11(火) 12:06:37
System.Type A と System.Type B を与えられたときに、
「A から B に変換可能か?」という判断と
「可能ならば変換する」という処理をしたいんですが、
どうすればいいでしょうか?

Type は In32 とか Single とか基本的なクラス
のみでいいんですが。
611デフォルトの名無しさん:2006/07/11(火) 12:20:27
>>610
int とか float の相互の型変換は、C# 自体がその機構持ってるわけじゃなくて、
単にそれらの数値型に implicit なキャスト operator が実装されてるだけだった気が。
うろ覚えだから違うかもしれないけど。

なので、型変換可能かどうかという判断をするメソッドはないんだけど、
GetMethods とか使って、implicit キャストが実装されてるかどうかを検索すれば
多分可能だと思うけど、なんかそもそもの設計が変な気もする。
612デフォルトの名無しさん:2006/07/11(火) 13:02:06
>>610
「変換可能」の定義が曖昧
実数型を整数型にキャストして小数点以下が落ちるのは「変換可能」なの?
有効桁数を超えるキャストをして丸められたりするのは「変換可能」なの?
パターンを考えないと意図しない結果になると思うよ
613デフォルトの名無しさん:2006/07/11(火) 13:08:58
動的に数値型の型が不明っていうのはどういう場合なんだ?
614597:2006/07/11(火) 13:34:18
>>604
いいや勝手に書き換えられてるよ
ただ初期設定に書き換えられるというのは勘違いだったみたい
以下再現法
VC2005なんだけど
普通にWinアプリプロジェクト作成して、
デフォルトで作成されてるFormのInitializeComponent()の中
で、例えばFormのClientSizeが決定されたあとでそのForm.ClientSize
を使って別のコントロールのSizeを決定したくても、デフォルトで
作成されるFormの初期化では、例えばFormにButtonが一個
あるだけだと以下のようになっている。

//button1
this.button1.Size = new Size(30,30);
//Form1
this.Size = new Size(300,300);
で、これを以下のように変更する
//Form1
this.ClientSize = new Size(300,300);
this.button1.Size = this.ClientSize;
これでbutton1のサイズがFormのクライアント領域に合わされる
で、この後例えばFormのNameプロパティを変更したりすると、
なぜか上記のコードの変更が勝手に書き換えられる
以下のようになってしまっていた
//button1
this.button1.Size = thisl.ClientSize;
//Form1
this.ClientSize = new Size(300,300);
//あれここに書いていたはずなのに上に移動してしまっている
このままコードを実行すると、画面一杯になったButtonが一応表示される
しかし、例えばFormのSizeを400,400に変更したりすると、
Buttonは300,300のままで変化しない
615デフォルトの名無しさん:2006/07/11(火) 13:41:17
プロパティ変更してるじゃん……
616デフォルトの名無しさん:2006/07/11(火) 13:48:33
InitializeComponentはデザイナ用のコードなんだから当たり前
何のためにpartialになってると思ってんだ
617デフォルトの名無しさん:2006/07/11(火) 14:08:52
>>614
それ、>>597でやろうとしてることと違うじゃん。結局なにがしたいの?
定数で指定したいとか言ってたのに定数が見当たらないけど?
>>616も言ってるけど、InitializeComponentってのはデザイナ用のコードなんだ、
直接いじったあとに、デザイナーで何かしらいじれば、
デザイナがInitializeComponent内のコードを再び書き直すよ。
618デフォルトの名無しさん:2006/07/11(火) 14:19:07
617に書き忘れたけど、
ボタンのサイズをフォームと同じにしたいんなら
ボタンのDockプロパティにFillを設定してやれば解決だよ。
619デフォルトの名無しさん:2006/07/11(火) 14:29:39
要するにフォームの起動時の位置と大きさを設定したいなら
Loadイベントでやれってこった
保存するときはRestoreBounds を使えってこった
620デフォルトの名無しさん:2006/07/11(火) 14:49:05
>.NET Framework 2.0 の Form オブジェクトに RestoreBounds プロパティが追加されました。
>これは、フォームが最小化または最大化しているときでも、通常表示状態のフォームの位置とサイズを保持する Rectangle 型を返すものです。

うお、知らなかった。
今まで最小化最大化時は保存しないってことにしてたよ……
621デフォルトの名無しさん:2006/07/11(火) 15:02:00
オレ流コーディングを見せ付けるスレはここですか?
622デフォルトの名無しさん:2006/07/11(火) 15:04:42
>>619
コンストラクタのInitializeComponentの後の方が良くない?
StartPositionをCenterScreenにしてLoadイベントでSizeを変更すると画面中央にならないよ。
623デフォルトの名無しさん:2006/07/11(火) 16:35:38
>>619
オレも知らなかったよー
今まで
---
this.Opacity = 0;
this.WindowState = FormWindowState.Normal;
---
の後にサイズと位置を保存していた・・・
624デフォルトの名無しさん:2006/07/11(火) 16:39:29
でもさぁ、RestoreBounds ってどうゆうとき使うの?
最小化や最大化しちゃった後でもシステムが記憶してるじゃない
625デフォルトの名無しさん:2006/07/11(火) 17:07:17
最小化・最大化するとWidthやHeightの値はそれに合わせて変更される
その状態で元のサイズを知る方法が今まではAPIしかなかった

どういうときにつかうかといえば、フォームのサイズを記憶する必要があるソリューション
最大化のWidth/Height/Left/Topを保持し、次回起動時にそれを設定したら、最大化を解除しても画面いっぱいのままでしょ
それを防ぐには本来のサイズを保持して、最大化・最小化のステートとは別にしておく必要がある

つか少しは考えろよ
626デフォルトの名無しさん:2006/07/11(火) 17:10:16
デレツン
627デフォルトの名無しさん:2006/07/11(火) 17:16:11
構造体のEmptyフィールドって、
public static readonly StructA Empty = new StructA();
とすればいいの?
628デフォルトの名無しさん:2006/07/11(火) 17:25:41
Xpマシンに.NET2003(C#)で作ったAP入れて動かしてるんだけど、
ごく稀にForm上に設置した特定のラベルコントロールが赤×表示されてしまう
事があります(赤×表示=ラベル一杯にバッテンが赤線で表示される)。
Webで調べたんだけど、日本サイトでは何も見つからなくて、海外サイトでは
何やら同様の現象について議論は交わされてるんだけど、はっきりとした
原因・解決策が載った所に行き着きません。。。
どなたか経験者・有識者の方、アドバイス下さい。
629デフォルトの名無しさん:2006/07/11(火) 17:30:27
>>628
そのコントロールのPaintで失敗してるんじゃないかな
630デフォルトの名無しさん:2006/07/11(火) 18:20:41
>>629
返信ありがとうございます。
確かにPaintに失敗してるとは思うのですが、原因と解決策がわからんのです。
再現も出来ないんで、五里霧中状態です。。。
631デフォルトの名無しさん:2006/07/11(火) 18:32:30
>>630
そうですか。としか言いようがないが。

ソースか実行ファイルうp
632デフォルトの名無しさん:2006/07/11(火) 18:46:56
>>628
あー、それ俺も Release バージョンでよくなる。
なにか例外が発生しているようで例外ダイアログボックスが出るんだけど、
そのダイアログ上のコントロールも全部赤×で表示されてるので詳細がわからない。
Application.Run を try ... catch ... で囲ったり AppDomain.CurrentDomain.UnhandledException を
設定たりしてるけどトラップされていない模様。
一度それが発生するとメニューバー・ツールバー・ステータスバーなどが赤×で表示される。

再現方法もわからないしなんの解決にもなってないけど報告まで。
633デフォルトの名無しさん:2006/07/11(火) 18:48:14
>>627
new する必要もない。
構造体なら宣言だけしとけば自動的にインスタンスが作られる。
// new で初期化するのとじゃちょっと意味合いが変わったような希ガス
634デフォルトの名無しさん:2006/07/11(火) 18:50:35
サスペンドから戻った時に、

System.NullReferenceException:
 オブジェクト参照がオブジェクト インスタンスに設定されていません。

てな実行時エラーを出す常駐ものがあって、なんとなくFormに貼り付
けたタイマーあたりでエラーが起きてるぽいんだけど、サスペンド対応の
定石みたいなものってあったりする?いったんタイマーを停止させない
といけないとか。
635デフォルトの名無しさん:2006/07/11(火) 19:32:28
VC#2005 Expressでプロパティウィンドウの下に
説明が表示されるじゃないですか。
何かの拍子でこれが消えて項目だけになるのですが、
なにか解決方法とかってあるのでしょうか?
636デフォルトの名無しさん:2006/07/11(火) 19:39:15
>>635
あーなるなる。2003の時もそうだった。
消えるというか説明の領域が最小になるんだよね。
その都度領域を広げなおすしかないんじゃない?
そんなに手間でもないしね。
637デフォルトの名無しさん:2006/07/11(火) 19:48:08
>>634
何となくとか言わず原因を追及しろよ。

サスペンドや休止はハードウェアやドライバの依存が強くて困るんだよな。
638デフォルトの名無しさん:2006/07/11(火) 19:49:29
>>636
ステータスバーとプロパティウィンドウの間にカーソルを持って行くと
カーソルが境界線っぽい形になるけど
何故か摘もうとすると矢印状態に戻って上手く摘めません

で、今さっき、右クリック->コマンドにチェックを入れたら
コマンドの領域と一緒に説明パネルが出てきました
前はその辺りを弄っても変化なしだったような気がするけど
一応解決なのかな?
639デフォルトの名無しさん:2006/07/11(火) 20:05:52
VC#EE重くない?タイプしていっても表示が追いついてない感じ
640デフォルトの名無しさん:2006/07/11(火) 20:14:55
いや、全く
641デフォルトの名無しさん:2006/07/11(火) 20:18:28
重い。
がしかしそれは私の環境が貧弱なせいなのは明らかだ orz
642624:2006/07/11(火) 20:51:40
>>625
あ、そうか。 ありがとね(・∀・)
643デフォルトの名無しさん:2006/07/11(火) 23:23:00
C#ってアロー演算子ある?
644デフォルトの名無しさん:2006/07/11(火) 23:27:11
そんなもの、あろうはずもなく。
645デフォルトの名無しさん:2006/07/11(火) 23:35:54
>>643
あるおー
646デフォルトの名無しさん:2006/07/11(火) 23:56:02
どっちですかー
647デフォルトの名無しさん:2006/07/12(水) 00:01:04
言語仕様読めよ
648デフォルトの名無しさん:2006/07/12(水) 00:47:34
ねーよ
649デフォルトの名無しさん:2006/07/12(水) 00:47:42
ヒント:読めない事情がある
650デフォルトの名無しさん:2006/07/12(水) 01:15:23
メンバにアクセスするには "." を使う。

ポインタが使えるのはunsafeコードだけ。
ポインタには->演算子が使える。

いじょ。
651デフォルトの名無しさん:2006/07/12(水) 03:00:24
おk、把握した
652デフォルトの名無しさん:2006/07/12(水) 08:16:45
なつかしいな ->演算子
Cやってた頃よく使ったなぁ・・・
653デフォルトの名無しさん:2006/07/12(水) 13:39:25
>>631
> >>630
> そうですか。としか言いようがないが。
> ソースか実行ファイルうp

返事遅れましてすいませぬ。
ソースですが、内容を以下に簡単に書きますと、
@Form上にLabel生成(サイズ、色等以外のプロパティはほぼデフォルト)
 ※InitializeComponentsで。
AFormLoadイベント時に、Labelのtextプロパティに外字をコードで設定
といったところです。他のLabelコントロールと違うのはAの処理くらいで、
それ以外では特に操作・描画は行っていません。。。
654デフォルトの名無しさん:2006/07/12(水) 23:59:15
構造体に関する質問です。

public struct ST
{
 int Val
}

public class TestApp
{
 public static void Main()
 {
  ST s;
  s.Val = 1;
// 代入
  object o = s; // --- (A)
  // 関数の引数 object として渡す
  Func(s);
 }

 public static void Func(object o)
 {
  // -- (B)
 }
}

上記 (A) で構造体 ST の実態 s を object の参照 o に代入した場合に
BOX化というのが行われるとあるのですが、objectの参照に何が入るのかがわかりません。
構造体 ST をラップした無名のクラスのインスタンスとかが生成されるのでしょうか?
また、上記 (B) の個所で Main の構造体の実態 s は変更不可なのでしょうか?
655デフォルトの名無しさん:2006/07/13(木) 00:04:53
何と言われてもオブジェクトはオブジェクトだよ。ボクシングされた。
ローカルスコープで宣言された値型は値がスタックという領域に取られる。
参照型は参照がスタックに、値はヒープに取られる。
ボクシングされると値のコピーがヒープに作られ、その参照がスタックに残る。
アンボクシングされるとヒープからスタックに値が再びコピーされる。

> また、上記 (B) の個所で Main の構造体の実態 s は変更不可なのでしょうか?
無理だね。
やりたきゃ ref/out を使うんだが、まあそう言う場合大抵は構造体を使うべきところじゃない場面だ。
656デフォルトの名無しさん:2006/07/13(木) 00:49:22
>>655
よくわかりました。ありがとうございます。
>>654の場合 (A) が実行されるとスタック上の s と o が参照するヒープ上のインスタンスが存在して
これらは、まったくの別物って考えなんですね。

逆に、(A) の後に
ST s2 = (ST)o;
を実行した場合、スタック上に値 s2 が確保されて o が参照するヒープ上のインスタンスの
内容をコピーするということになるんですかね?

しかし、値のコピーをヒープに作って、その参照を保持なんて器用なことをしているとは・・・
C#・・・あなどれん・・・
657デフォルトの名無しさん:2006/07/13(木) 05:22:10
658デフォルトの名無しさん:2006/07/13(木) 08:35:38
漏れ、構造体って最初の頃は使ってたけど、
今は全然使わなくなったな。
構造体でできることはすべてクラスでできるし、
さいしょは構造体として設計しても
結局、「クラスにしときゃよかった」ってことになる
ことが多くて、今じゃさいしょからクラスにしている。
659デフォルトの名無しさん:2006/07/13(木) 09:07:14
Cのときしか使ってない
660デフォルトの名無しさん:2006/07/13(木) 09:13:08
>>658
レベルが上がってくると最適化で必要になる。
661デフォルトの名無しさん:2006/07/13(木) 09:13:44
漏れはあえて区別してる orz
662デフォルトの名無しさん:2006/07/13(木) 09:14:06
俺が低レベルだとーぷんすかぽんぽんっ!
663デフォルトの名無しさん:2006/07/13(木) 09:52:28
萌えた
664デフォルトの名無しさん:2006/07/13(木) 10:38:35
俺は変数3つぐらいの構造体をよく使うな
665デフォルトの名無しさん:2006/07/13(木) 11:16:27
ベクトルとかは構造体にしてる
666658:2006/07/13(木) 11:19:00
>>660
漏れ、レベル下なのかよ・・・orz
667デフォルトの名無しさん:2006/07/13(木) 11:29:34
その最適化でどれだけスピード上がるのかと。その部分案マネージにしたほうが委員ジャマイカ?
668デフォルトの名無しさん:2006/07/13(木) 11:31:18
結構変わるぜよ
669デフォルトの名無しさん:2006/07/13(木) 11:47:30
>>667
レベルが上がってくると高速化以外の最適化も必要になる。
670デフォルトの名無しさん:2006/07/13(木) 11:57:07
メモリ?
671デフォルトの名無しさん:2006/07/13(木) 11:58:02
>>667
stringを連結しまくるのじゃなくてStringBuilder使うとかなり速くなるだろ。

スタックに積まれるのも重要ではあるんだが配列時のほうがクリティカル
になりやすくこっちのが重要。

意味的には既定動作がコピーというのは値として扱うのに向く。
672デフォルトの名無しさん:2006/07/13(木) 12:25:14
そしてジェネリックじゃないコレクションに巨大な構造体を大量に…
なんてのがあった。
高速化のためだそうだw
673デフォルトの名無しさん:2006/07/13(木) 12:28:11
>>671 あまりそういうところでクリティカルになったことなかったけれど今度試してみるわー
674デフォルトの名無しさん:2006/07/13(木) 15:36:42
メンバ変数の数というか、トータルバイト数が4とか8以下の物で、
仮想関数絶対使わない確証あるときだけ構造体にしてる。
他はクラス。

>>672
速度比較検証でもしてやったらいいんじゃないか?
675デフォルトの名無しさん:2006/07/13(木) 16:01:21
ジェネリック使ったほうが速いよね・・・
676デフォルトの名無しさん:2006/07/13(木) 16:06:50
>>672
具体的に何をしてるかわからないとコメント出来ないね。
677デフォルトの名無しさん:2006/07/13(木) 16:42:18
>>675
えっと、でっかい構造体 HugeStruct とかがあったとして、

HugeStruct[] a = new HugeStruct[N];
a[0] = new HugeStruct();
HugeStruct b = a[0];

だといちいちでっかいデータのコピーがあって糞重たいはず。

要素として object 型を取るような非ジェネリックコレクション(例えば System.Collections.ArrayList) 使う場合、

ArrayList a = new ArrayList();
a.Add(new HugeStruct());
a[0] = new HugeStruct();
HugeStruct b = (HugeStruct)a[0];
だと、いちいち boxing, unboxing、キャストが必要だから、その分遅い。

ジェネリックコレクション使えば、boxing, unboxing、キャストが不要な分だけは早くなる。
678デフォルトの名無しさん:2006/07/13(木) 16:43:25
あっ、>>677 の最後の行、
ジェネリックコレクションでも boxing, unboxing はなくならないか。
679デフォルトの名無しさん:2006/07/13(木) 16:48:05
なくなるよ。
680デフォルトの名無しさん:2006/07/13(木) 17:00:06
ジェネリックコレクションって内部でキャストしてるんじゃないの?
681デフォルトの名無しさん:2006/07/13(木) 17:02:01
>>679
じゃあ、糞でかい構造体に対して、ジェネリックな
ArrayList<HugeStruct> とか使うと非ジェネリック ArrayList 使うよりやばい?
682デフォルトの名無しさん:2006/07/13(木) 17:03:58
コレクション自体をCloneする場合以外は別にboxingなんてないほうがいいに決まってるだろ
683デフォルトの名無しさん:2006/07/13(木) 17:05:19
ブラウザでリンク先が指定されているボタン等を、自分のアプリにドロップされた時に
そのリンクの文字列(例えば "http://2ch.net")を取得したいんですが、
どうすればいいんでしょうか。
684デフォルトの名無しさん:2006/07/13(木) 17:10:14
>>680 キャストしないですむようにコードを生成するんだよ。
>>681 頻繁にソートと化するのなら関係あるかもしれんね。試したことナイから知らん。
685デフォルトの名無しさん:2006/07/13(木) 17:25:41
>>683
OK in English
686デフォルトの名無しさん:2006/07/13(木) 17:33:58
>>683
エスペラント語でおk
687デフォルトの名無しさん:2006/07/13(木) 17:36:02
まずボタンをドロップどうやってするのかとこ一時間
688683:2006/07/13(木) 17:36:50
そんなにおかしな日本語だったかなぁw

リンク先が指定されているボタン等を、webブラウザ上からから自分のアプリに
ドラッグ&ドロップされた時に ・・・

ということでお願いします
689デフォルトの名無しさん:2006/07/13(木) 17:37:19
単純に、値の意味を持たせたい時に構造体にすると思うが。
690デフォルトの名無しさん:2006/07/13(木) 18:31:05
>>680 >>681
調べてみたらジェネリック用にILを拡張してるようで、
ILレベルで<T>のまま情報を保持しててJITで型ごとに別のネイティブコードを生成してるようだ。
確かに馬鹿でかいValueTypeだと非ジェネリックコレクションよりやばいかも知れない。
マニュアルのこの記述には従ったほうがいいかもしれんね。
>struct 型は、通常、四角形の座標や在庫品目の特性など、関連のある変数の小さなグループをカプセル化するために使用します。
691デフォルトの名無しさん:2006/07/13(木) 19:26:35
http://msdn2.microsoft.com/ja-JP/library/b5bx6xee.aspx
>ArrayList よりも安全であるだけでなく、
>特にリスト項目が値型のときには処理時間が大幅に縮小するリストを作成できます。
692691:2006/07/13(木) 19:34:52
文脈を間違えた
馬鹿でかい値型だと遅くなるよ、当たり前だけど
693デフォルトの名無しさん:2006/07/13(木) 20:20:08
694デフォルトの名無しさん:2006/07/13(木) 21:54:18
屏風の虎を捕まえろって言われたときに、
それではまず虎を屏風から追い出してください、って言うのと似てるね


695デフォルトの名無しさん:2006/07/13(木) 21:57:01
       ,′ 
       l   ファイル名を日付順で取得する方法を
        ',   教えておくれよ。にょろ?
        〉
        l          _ノ
        \ ___ノ` ── ′
         {/
            ______
         _.:.:´:.:.:.:.:.:.:.:.:.:.:.:\
       /.:/.:/ ヽ:.:.:i:.:.:.:.:.:.ヽ
       {:.:/:./     l:.:.j:.:.:.:.:.:.:.
       ∨!/  ⌒  |:./:.:|:.:.:.:.:
        |′  ● jイ:.:.:.|__:.:.:
        |! r‐‐v (_) |:.:.:.| }:.:.
        ハヽ ノ   |:.:.:.|ノ:.:.:
        (` = -r-rム:.:.:|:.:.:.:.:
        ト、  | / | |:.:.∧:.:.:.:
        |:.:.:T7_/_,j .|:./  ヽ:.:.
696デフォルトの名無しさん:2006/07/13(木) 21:59:26
>>693
ん?「ボタン」がわからないのか?それとも「ドロップ」がわからない?
697デフォルトの名無しさん:2006/07/13(木) 22:00:57
>>695
取得してからソートじゃだめ?
698デフォルトの名無しさん:2006/07/13(木) 22:03:48
>>695
なんのためにDateTime構造体に<演算子や>演算子があると思ってるのよ
プンプン
699デフォルトの名無しさん:2006/07/13(木) 22:05:42
>>696
どっちも単体ではよく分かるんだが、組み合わせると途端に難解になるな
700デフォルトの名無しさん:2006/07/13(木) 22:06:43
>>698
比較演算以前に DateTime は IComparable だから……
701デフォルトの名無しさん:2006/07/13(木) 22:20:46
>>699
もっとわかりやすく言わないとダメだと思う

だから>>696氏ねwww
702デフォルトの名無しさん:2006/07/14(金) 00:46:27
MacみたいなButton,Radioボタンコントロール知りませんか?

有料でも可っす
703デフォルトの名無しさん:2006/07/14(金) 08:22:45
UseControlから自分で作れ
704デフォルトの名無しさん:2006/07/14(金) 11:25:41
Mac使えば
705デフォルトの名無しさん:2006/07/14(金) 11:29:19
Mac風なVisualStyle使えば
706デフォルトの名無しさん:2006/07/14(金) 11:33:40
Vista使えば
707デフォルトの名無しさん:2006/07/14(金) 11:36:18
>>696のセリフ笑えるw
708デフォルトの名無しさん:2006/07/14(金) 15:15:13
Manko使えば
709デフォルトの名無しさん:2006/07/14(金) 18:35:41
StringBuilderクラスについての質問です。
>連結する String オブジェクトの数が決まっている場合は、String クラ
>スを使用した方が効率的です。この場合、個々の連結演算は、コンパ
>イラによって 1 つの演算に結合されます。

MSDNによると、上記のようにStringクラスが効率的とあるのですが
Stringオブジェクトの個数によって、Stringクラスを使用するか判断する
点がわかりません。

個人的には、連結文字列がバッファ容量のInt16に対して多いかどうかで
使用を判断するように思えるのですが。

教えてください。
710デフォルトの名無しさん:2006/07/14(金) 18:44:17
コンパイル時に、連結する String オブジェクトの数が静的に定まる場合という意味だと思う
711デフォルトの名無しさん:2006/07/14(金) 19:00:12
>>710
レスありがとう御座います。
もう少し考えてみます。
712デフォルトの名無しさん:2006/07/14(金) 19:13:15
ILを見てみると文字列の結合にSystem.String#Concat 使ってる。こっちのほうが効率がいいのかな。
string a = "aaaaa" + "bbbbb" + c + "ddddd" + "eeeee" + c; だとこんな風に展開されてる。
string a = System.String#Concat("aaaaabbbbb", c, "dddddeeeeee", c);
713デフォルトの名無しさん:2006/07/14(金) 19:27:21
>>712
Javaと同じでこうゆう処理をやってるのかと思ってた。
string a = new System.Text.StringBuilder("aaaabbbb").Append(c).Append("ddddeeee").Append(c).ToString();
714デフォルトの名無しさん:2006/07/14(金) 19:29:14
ループで大量の文字列を結合するのでなければコンパイル時の最適化がきくから
StringBuilderよりstringの結合のほうが効率いいよ
715デフォルトの名無しさん:2006/07/14(金) 20:45:54
>>712-713
超予測だけど、string#Concatは一気に引数を渡すから必要なLengthが分かるけど、StringBuilderは初期値で固定されてしまうという点で高速化に繋がる予感
716デフォルトの名無しさん:2006/07/14(金) 22:58:37
717デフォルトの名無しさん:2006/07/15(土) 00:27:51
string str = "123456789012345678901234567890";
for (int i=0; i<100000; i++) {
/* パターン1 */string s = new System.Text.StringBuilder().Append(str).Append(i).Append(str).Append(i).Append(str).ToString();
/* パターン2 */string s = string.Concat(str, i, str, i, str);
}

1 : 453ms
2 : 297ms
718デフォルトの名無しさん:2006/07/15(土) 03:07:48
>>717
毎周newするのは不利なんじゃなかろうかと。
719デフォルトの名無しさん:2006/07/15(土) 05:22:34
>>718
Concatも内部でnewしてますが
720デフォルトの名無しさん:2006/07/15(土) 08:10:18
StringBuilder の場合でも ToString で string を new してるだろ
721デフォルトの名無しさん:2006/07/15(土) 08:41:20
StringBuilder 使う時はインスタンス作成時にキャパシティ明示するのも重要だぜ。
特に717みたいなパターンだと。
722デフォルトの名無しさん:2006/07/15(土) 08:46:39
>>717は例としてのコードが不適切
StringBuilderはループに入る前に外側でnewするべきだし
ToStringは不要
723デフォルトの名無しさん:2006/07/15(土) 08:47:46
じゃ、やってみてよ
724デフォルトの名無しさん:2006/07/15(土) 08:47:50
暗黙的キャストで ToString を呼んでいるだろうから
ToString があろうがなかろうが変わらんだろ
725デフォルトの名無しさん:2006/07/15(土) 09:34:33
そもそもキャストできたっけ?
726デフォルトの名無しさん:2006/07/15(土) 09:38:31
VBならそうだがC#は暗黙のキャストは無かったはずでstringに変換するにはToStringが必要。
ループの外でStringBuilderのインスタンスを作ればstring#Concatと同等以上になるのは確かだが、
>>717は測定可能なようにループを使ってるだけで例とし適切である。

もし、ループの外でStringBuilderのインスタンスを作るのを基準としてstring#Concatを比較するなら
object [] buf = new object[400000];
buf[0] = str;
buf[1] = 0
:
buf[399998] = str;
buf[399999] = 399999;
string s = string.Concat(buf);
と比較しなければならない。
727デフォルトの名無しさん:2006/07/15(土) 10:35:25
てか不適切だから。
728デフォルトの名無しさん:2006/07/15(土) 11:03:59
>>722
StringBuilderやConcat()の連結速度を計るなら確かにそうだが、現実的に100000個ものstringやintなどを連結する機会はある?
717のように、だいたい5個、多くて十数個くらい連結するのが普通だと思うのだが。
729デフォルトの名無しさん:2006/07/15(土) 11:09:05
ボタンをドラッグしたいんだけど
730717:2006/07/15(土) 11:09:36
暇だし、せっかくだからいろいろ条件を変えて計測してみたけども、スレに書き込むには長すぎるし、こういうのを貼る良い場所ない?
731デフォルトの名無しさん:2006/07/15(土) 11:39:29
WindowsFormのComboBox。
矢印ボタン押すと普通は文字列の候補が出てきますが
これを例えば(枠なしの)カラー選択ダイアログなどを出したいのですがどうすればよいでしょう?
どっかでMSのサンプル見たのですがご存知ないでしょうか
732デフォルトの名無しさん:2006/07/15(土) 11:45:29
>>730
無料のWikiなりBlogなりホームページなりにアカウント取ってリンク張ればいいじゃない
733デフォルトの名無しさん:2006/07/15(土) 12:34:37
>>731
DrawModeをOwnerDrawVariable等にして、
DropDownイベントでダイアログをオープンしたらいいんじゃね?
734デフォルトの名無しさん:2006/07/15(土) 12:35:14
>>731
だったらComboBoxでなくただのボタンでいいんじゃないか?(・∀・)
735デフォルトの名無しさん:2006/07/15(土) 13:34:29
MSのサンプルで
型による処理の振り分けで
Dictionary<Type, object>を使えばいい(と思う)のに、わざわざDictionary<string, object>にして
辞書からinstance.GetType().ToString()のようにキーを生成してアクセスしてるところがあるんですけど
型でリファレンスを持つと何かマズイことでもあるのでしょうか?
736デフォルトの名無しさん:2006/07/15(土) 14:04:50
VS2005のmenuStripをMDIフォームに使うと
子フォームに水色の帯が残るんだけど
バグ?
737デフォルトの名無しさん:2006/07/15(土) 14:20:36
(・∀・)←これって流行ってるの?
738デフォルトの名無しさん:2006/07/15(土) 14:29:00
シラネ(´・Ω・`)
739デフォルトの名無しさん:2006/07/15(土) 14:35:52
740デフォルトの名無しさん:2006/07/15(土) 15:39:43
>>735
問題ないはず
741デフォルトの名無しさん:2006/07/15(土) 16:22:30
>>732
無料Wikiというものがあるのか。知らなかった。
http://www3.atwiki.jp/cs/pages/5.html
742デフォルトの名無しさん:2006/07/15(土) 17:33:41
>>741
おつかれ〜
ちなみに、StringBufferを再利用するときはこれでいいですよ。
stringBuilder.Length = 0
743デフォルトの名無しさん:2006/07/15(土) 17:41:14
>>735
MSのサンプルはあくまでさらっと参考にするくらいの方がいいかも…
おいおいな感じのサンプルも多いから。
744デフォルトの名無しさん:2006/07/15(土) 17:42:40
>>740サンクス
オブジェクトのGetTypeが違う参照を返すことでもあるのかと思ったらそうでもなかったし、
なんでstringにしてたんだろう。
745デフォルトの名無しさん:2006/07/15(土) 17:47:34
>>744
たぶん深い意味はない。
746デフォルトの名無しさん:2006/07/15(土) 18:15:23
連結する個数が分かっているならString#Concat、つまり+の連結で十分ということか。
しかしint to stringは激重だな…
747デフォルトの名無しさん:2006/07/15(土) 18:42:59
string#concatは引数4つまではそのままオーバーロードがあるけど、
string#concat(string)
string#concat(string, string)
string#concat(string, string, string)
string#concat(string, string, string, string)
5つ以上になると配列を作ってしまう。4つまでならConcat推奨。
string#concat(params string[] values)
748デフォルトの名無しさん:2006/07/15(土) 19:14:05
ベンチを見るとObjectの配列を作る方が(引数を5つ並べるより)かなり速いようだけど…
749デフォルトの名無しさん:2006/07/15(土) 20:08:56
ベンチにコードが無いからなんともいえないけど、次の二つは同じILを生成してて結果も同じ。
string s = string.Concat("aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"); 
string s = string.Concat(new string [] {"aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"}); 

ところでベンチのWIKIに次の記述があるが誤記だよな?
string.Concat(str + i + str + i + str); 
750デフォルトの名無しさん:2006/07/15(土) 20:50:04
ObjRefを自分でシリアライズ、デシリアライズしたら
勝手に透過プロキシに変換までされたんだけど、そういうもん?
透過プロキシへの変換は手でやるもんだと思ってたんだけど。
751デフォルトの名無しさん:2006/07/16(日) 01:44:43
>>742
サンクス。速くなった。
>>747-749
StringBuilder消すのを忘れていた…
ちゃんと同じバイナリが生成されて同じ速度になった。
+はどう見ても写し間違いです。本当にありがとうございました。

752デフォルトの名無しさん:2006/07/16(日) 09:46:15
整数と文字列が+演算子で結べることを俺は知らなかったぞ!!!
今まで何回ToString()書くのめんどくせえなあと思ったことか・・・
753デフォルトの名無しさん:2006/07/16(日) 09:55:40
>>752
Format使った方がよかですよ
754デフォルトの名無しさん:2006/07/16(日) 11:44:13
>>752
できたとしてもToString()ちゃんと書いた方がいいですよ。
VS だったら .T ぐらいまで打てばインテリセンスがよろしくやってくれるでしょ。
755デフォルトの名無しさん:2006/07/16(日) 11:46:47
>>754
>できたとしてもToString()ちゃんと書いた方がいいですよ。

理由は?何のためにToString()はObjectにあるんだ?
756デフォルトの名無しさん:2006/07/16(日) 11:53:28
1 + "たす" + 1 + " は" + (1 + 1) + "です"
こういうとき紛らわしいからじゃないの?
757デフォルトの名無しさん:2006/07/16(日) 11:55:27
>>756
読めるよね。普通に
758デフォルトの名無しさん:2006/07/16(日) 12:02:28
変なコメントが入ってるだけで可読性が下がるとか言うのにね
759デフォルトの名無しさん:2006/07/16(日) 12:06:36
>>758
可読性を下げるような妙なコメント書くからだと思うが。
760デフォルトの名無しさん:2006/07/16(日) 12:08:17
文字列連結はD言語やBASICみたいに別の記号のほうがいいなあ
761デフォルトの名無しさん:2006/07/16(日) 12:12:34
いちいちToString()したら無駄なstring生成しまくりじゃん
こういう時こそString.ConcatやStringBufferを使うべきじゃないの
762デフォルトの名無しさん:2006/07/16(日) 12:14:14
>>761
一行のメッセージにそんなもん持ち出す方が面倒だ。
763デフォルトの名無しさん:2006/07/16(日) 12:16:35
StringBufferはStringBuilderの間違い。

生成しまくりというのはint2stringのことね。念のため。
>>760
同意
しかしPerlみたいにいまさら変更されるのも困るなあ
764デフォルトの名無しさん:2006/07/16(日) 12:18:34
o(n)
765デフォルトの名無しさん:2006/07/16(日) 13:38:26
もはや余ってる演算子が…
766デフォルトの名無しさん:2006/07/16(日) 13:44:22
C#使ってるような奴が可読性とか言っちゃってるよ(プ
767デフォルトの名無しさん:2006/07/16(日) 13:55:31
(ププッ
768デフォルトの名無しさん:2006/07/16(日) 15:10:23
string s1 = s2;
って、s1とs2に同じポインタが入るのじゃないのか?
769デフォルトの名無しさん:2006/07/16(日) 15:16:11
>>765
->とか>>とかasとかinおとかもOKなんだからさと。
770デフォルトの名無しさん:2006/07/16(日) 15:16:41
>>768
文字列の場合はコピーじゃないですか?なんとなく。
771デフォルトの名無しさん:2006/07/16(日) 15:31:12
>>770
>>768が正解。コピーがデフォならStringBuilderはいらない。
772デフォルトの名無しさん:2006/07/16(日) 15:36:39
>>771
コピーと追記じゃ訳が違うのでどっちにしろStringBuilderは必須。
773デフォルトの名無しさん:2006/07/16(日) 15:45:01
VB6とそれ以前がそんな構造だが、StringBuilderなぞないよ?
774デフォルトの名無しさん:2006/07/16(日) 15:49:09
>>773
だから遅いんでしょ。
775デフォルトの名無しさん:2006/07/16(日) 17:14:34
CSV形式に成形するメソッドなんか見ると
全レコード文字列としてくっつけて返すやつなんかある。
ああいうのは連結のしかたで大きく負荷が変わるが、
その前にその仕様変えろといいたくなる。
776デフォルトの名無しさん:2006/07/16(日) 17:26:52
>>753
string#Formatのベンチマークも取りました
# 盲点だった
777デフォルトの名無しさん:2006/07/16(日) 17:36:51
>>775
じゃあどうすればいいの?
interface ICSV{public string this[col][row];}とか?
778デフォルトの名無しさん:2006/07/16(日) 18:36:38
Builderを引数とか、Stream形式とか。一行に対してIEnumerableとかじゃない?
779デフォルトの名無しさん:2006/07/16(日) 19:27:09
用途の柔軟性から行けばTextWriterあたりがいいかな。
Streamのオーバーロードもあってもいいか。
ま、まず9割くらいはTextWriterでいい気がする。
780デフォルトの名無しさん:2006/07/16(日) 20:28:28
char型の配列で終端に\0でも入れて、
自分で文字列を扱えば、全て解決。
781デフォルトの名無しさん:2006/07/16(日) 20:45:01
??
782デフォルトの名無しさん:2006/07/16(日) 21:25:51
Regex.Replace(line, "(", "(");
のように半角"("を全角に置換えしたいのですが
エラーがでてしまいます。うまく動作させるにはどのように記述すれば
よいでしょうか?
783デフォルトの名無しさん:2006/07/16(日) 21:33:13
エラーが出るキタ━━━━━━(゚∀゚)━━━━━━!!!!
784デフォルトの名無しさん:2006/07/16(日) 21:35:09
(をエスケープしとけ
785782:2006/07/16(日) 22:09:06
>>784 ちゃんと動作しました。ありがとうございました。
786デフォルトの名無しさん:2006/07/16(日) 22:22:57
正規表現の意味ねぇ━━━━(´・ω・`)━━━━ッ!!
787デフォルトの名無しさん:2006/07/16(日) 22:27:10
確かに言われてみればStringクラスで事足りるな
788デフォルトの名無しさん:2006/07/16(日) 22:37:23
ブラウザの「リンクバー」みたいなのはどういうコントロールで
実現できるのでしょうか?
789デフォルトの名無しさん:2006/07/16(日) 23:52:00
Visul C# EEで、デザイナいじるたびに
DataGridViewのカラムの順番が勝手に変わるんですが
なんとかなりませんかね?
790デフォルトの名無しさん:2006/07/17(月) 03:01:48
>>771
ソースある?俺は普通にs2と同じポインタがs1に入ると思ってたんだが。
791デフォルトの名無しさん:2006/07/17(月) 08:05:49
ポインタじゃなくて参照な。
771 も参照の代入であると言ってるようだが?
792デフォルトの名無しさん:2006/07/17(月) 10:04:34
リファレンスじゃないの?
793デフォルトの名無しさん:2006/07/17(月) 10:08:48
>>792
リファレンスは日本語に直したら参照だろ?
単語すらわからないんだったらプログラムやめたほうがいいんじゃね?
794デフォルトの名無しさん:2006/07/17(月) 10:09:31
正直どうでもいい
795デフォルトの名無しさん:2006/07/17(月) 10:17:25
>>793
そんなつまらない所であげ足取るくらいなら人間辞めた方がいいんじゃね?
796デフォルトの名無しさん:2006/07/17(月) 10:27:30
100MBぐらいの文字列で試せばすぐ分かるだろ
797デフォルトの名無しさん:2006/07/17(月) 10:28:04
つまらないところって>>792の言ってることの全否定なんだが。
798デフォルトの名無しさん:2006/07/17(月) 10:33:05
>>796
そんな必要ないだろ
799デフォルトの名無しさん:2006/07/17(月) 10:52:06
D♭
800デフォルトの名無しさん:2006/07/17(月) 11:32:30
100MBの文字列を確保しようとしたらOverflowExceptionが出たよママン
801デフォルトの名無しさん:2006/07/17(月) 11:44:19
>>791
すまん、俺>>771の発言を勘違いしてたのかorz
802デフォルトの名無しさん:2006/07/17(月) 12:04:00
嘘つけ
803デフォルトの名無しさん:2006/07/17(月) 12:05:42
>>802>>800に対してね
804デフォルトの名無しさん:2006/07/17(月) 13:29:56
805デフォルトの名無しさん:2006/07/17(月) 13:40:54
いや、reference を参照と訳すのは C# に限らず特に所謂 IT 系で広く使われてるが……。
806デフォルトの名無しさん:2006/07/17(月) 13:45:25
>>804 2番目に参照とあるのに何をもって無理やりといってるのかと
807デフォルトの名無しさん:2006/07/17(月) 13:48:07
>>806
「参照すること」

参照すると言う動詞を無理矢理名詞化してるんですな。
訳したらなるだろぼけ!とまで言えるほど大きな顔が出来る単語でもなし。
808デフォルトの名無しさん:2006/07/17(月) 13:50:44
ごめん何がいいたいのかわからない
809デフォルトの名無しさん:2006/07/17(月) 13:57:09
参照(すること)
何のための括弧だよ
810デフォルトの名無しさん:2006/07/17(月) 14:16:37
ワロリン
811デフォルトの名無しさん:2006/07/17(月) 14:27:13
>>807
英訳とか出来なさそうだな。
812デフォルトの名無しさん:2006/07/17(月) 14:35:37
英語を訳すときに大事なのは厳密な解読じゃなくてフィーリングだぞ
813デフォルトの名無しさん:2006/07/17(月) 14:42:44
>>811
すんません、旧帝大 英IIです。
814デフォルトの名無しさん:2006/07/17(月) 14:44:18
そもそも外国の言葉が自国の言葉に一対一対応するわけでもないし自国の言葉すら各人の対応する概念が一致してるとは必ずしも言いがたい。
815デフォルトの名無しさん:2006/07/17(月) 14:48:13
>>814
極論とか論理の飛躍とか好きじゃないです。
816デフォルトの名無しさん:2006/07/17(月) 14:50:35
いったい何が言いたいんだ。
817デフォルトの名無しさん:2006/07/17(月) 14:54:56
ネタがないからくだらない言い合いしてるだけだ
818デフォルトの名無しさん:2006/07/17(月) 15:10:34
C#で有名な曲っていうと、ヴィヴァルディの「四季」より「春」 ってのがあるな。
819デフォルトの名無しさん:2006/07/17(月) 15:34:41
あらかじめ100MBの文字列 st1 を用意しておいて、
st2 = st1;
を何回やってもメモリ使用量は増えない。
しかし、
st2 = st1;
st2 += "s";
だと当然メモリ使用量は増える。

あと、100MBの文字列を作るときにStringBuilder使ったんだけど、
st1 = sb.ToString();
だとメモリ使用量は増えないのね(sbはStringBuilder)
820デフォルトの名無しさん:2006/07/17(月) 15:37:18
>>819
>だと当然メモリ使用量は増える。
気になるなら手動でGCすればいいですよー。
821デフォルトの名無しさん:2006/07/17(月) 15:38:30
あほす
822デフォルトの名無しさん:2006/07/17(月) 15:43:25
>>820
お前は何を言ってるんだ?日本語が読めないのか
824デフォルトの名無しさん:2006/07/17(月) 16:14:57
お前は、何を、言ってるんだ?、日本語が、読めないのか、
825デフォルトの名無しさん:2006/07/17(月) 16:44:43
百回死ね
826デフォルトの名無しさん:2006/07/17(月) 16:56:45
まあC#しか知らない糞ガキどもだから
827デフォルトの名無しさん:2006/07/17(月) 16:59:26
どうやったら100回死ねるの?
828デフォルトの名無しさん:2006/07/17(月) 17:07:55
知らんがな(´・ω・`)
829デフォルトの名無しさん:2006/07/17(月) 18:48:28
とりあえず1回から試してみるといいよ
830デフォルトの名無しさん:2006/07/17(月) 19:31:15
D♭っていうセンスは好き。
831デフォルトの名無しさん:2006/07/17(月) 19:34:54
Cωはどうなった?
832デフォルトの名無しさん:2006/07/17(月) 19:47:11
Cω→WinFX XAML→.Net3.0→あぼーん
833デフォルトの名無しさん:2006/07/17(月) 20:00:29
CωはC#3.0に取り込まれる。
元々世に出す予定はない。
834デフォルトの名無しさん:2006/07/17(月) 20:16:23
Cちんこ
835デフォルトの名無しさん:2006/07/17(月) 21:43:43
ふぐりだろ
836デフォルトの名無しさん:2006/07/17(月) 21:52:38
すほうれいこだよ
837デフォルトの名無しさん:2006/07/17(月) 22:21:49
このスレレベル低すぎw
838デフォルトの名無しさん:2006/07/17(月) 22:22:57
だからVB.Netを使えとあれほど・・・
839デフォルトの名無しさん:2006/07/17(月) 22:23:12
つうか、きくならVSUGかgetDotNet、その他メーリングリストのほうがまし。
840デフォルトの名無しさん:2006/07/17(月) 22:30:14
Cωの次はCυ(しーいぷしろん)
これでちんことまんこが完成!
841デフォルトの名無しさん:2006/07/17(月) 22:31:27
>>840
それニュー
842デフォルトの名無しさん:2006/07/17(月) 22:43:07
C z → C z zwei
でいいじゃん
843デフォルトの名無しさん:2006/07/17(月) 22:58:48
初心者スレの方がよっぽどレベル高いな
844デフォルトの名無しさん:2006/07/17(月) 23:06:20
マ板にはめずらしいVIPクオリティーを感じるスレ
845デフォルトの名無しさん:2006/07/17(月) 23:07:36
>>838
だが既にVB.NETは死んだ!
846デフォルトの名無しさん:2006/07/17(月) 23:09:14
ここは相談室。相談しない方にはお引き取りねがいたい
847デフォルトの名無しさん:2006/07/17(月) 23:37:21
愛は死にますか?
848デフォルトの名無しさん:2006/07/17(月) 23:44:44
もちろんです
849デフォルトの名無しさん:2006/07/17(月) 23:54:35
触り始めたところなんだけど、もしかしてC#ってconst参照渡しとかconst関数とか存在しない?
850デフォルトの名無しさん:2006/07/17(月) 23:56:05
C# というか .NET に存在しない
851デフォルトの名無しさん:2006/07/18(火) 00:04:01
マジか。困ったな。死ねばいいのに。
852デフォルトの名無しさん:2006/07/18(火) 01:47:34
.NETでC++のconst同様のことをするならget専用のinterfaceを公開するって感じになる?
でも値の変更を許可しないことを言語がサポートしてくれるわけじゃないからな…
853デフォルトの名無しさん:2006/07/18(火) 04:28:53
>>850 そりゃ言語の範疇だろう。.netかんけいない。
854デフォルトの名無しさん:2006/07/18(火) 09:14:59
>>853
C#はCILを生成するのでCIL上に存在しない=.NETに存在しないって
表現は正しい。
まぁなんだ、実装見せたくないのと参照がメンバの中心になるんで
意味がないのと、リフレクションにはまったく無力だし、そもそも
delegateやevent先なんて追跡可能じゃねーよなぁとか考えると
あんまりいい実装思いつかないし、仕方ないと思うよ
855デフォルトの名無しさん:2006/07/18(火) 09:25:37
>>854 いや.NET上でなくても、言語上でconstの仕様をコンパイル上でチェックすることは可能でしょう。またそれで十分かと。
856デフォルトの名無しさん:2006/07/18(火) 09:41:29
アンマネージはどうするの?
857デフォルトの名無しさん:2006/07/18(火) 09:48:14
せめてCLSの範囲内でないと無理がある。
858デフォルトの名無しさん:2006/07/18(火) 09:53:33
>>855
だからな、constを保証するためには自身のメンバの型のconst保証したメタデータの
マークがなけりゃできないだろ。CILのメタデータ表現としてそんなものないのに
C#コンパイラがどうやって検証するんだよ。
中身みて分析でもするか?コンパイルにどれだけかかるんだろうな?
外部型情報使用したらconst禁止にするか?使える場面まったくなくなるな。
859デフォルトの名無しさん:2006/07/18(火) 10:04:20
>>858 んじゃ、C++で同様のことどうやってると思ってるんだ?
860デフォルトの名無しさん:2006/07/18(火) 10:12:34
最初はconst無くて不便と思ったがだんだんどうでもよくなってきた。
861デフォルトの名無しさん:2006/07/18(火) 10:19:34
正直、C++のconstは俺には複雑すぎて使いこなせてない。
const char * くらいだなC++で使ってるのは。C#ではstringがimmutableだから問題ないしな。
862デフォルトの名無しさん:2006/07/18(火) 10:52:45
readonlyマンセー
863デフォルトの名無しさん:2006/07/18(火) 10:52:50
>>859
ネイティブC++に関して言えば型情報にconstがあるからだ
「CILにそういう型情報がないからC#が簡単にどうこうできる問題でも
ない」って言っているんだが理解しているか?
この制限は言語に依存せず、実際同じCILの型情報を使うC++/CLIの
マネージ型ではconstは使えない。VB.NETもな。

何で.NETにないのかといわれればこれは俺の考えだが、C++とは激しく
状況が異なるからだ。とても実現可能に見えない。
864デフォルトの名無しさん:2006/07/18(火) 10:56:20
わかんないんです><
865デフォルトの名無しさん:2006/07/18(火) 10:57:46
>>863 あーconstめんばへんすうはむりね。
それほとんど使わないから気にしてなかったすまん祖。
866デフォルトの名無しさん:2006/07/18(火) 11:09:46
const メンバ変数なんて使った事ない気がするなあ。
static const メンバ定数しか使わない。
867デフォルトの名無しさん:2006/07/18(火) 11:54:53
>ネイティブC++に関して言えば型情報にconstがあるからだ
じゃ型情報無効にしたらconstつかえないのか?
単にヘッダ見てるだけじゃないか?
868デフォルトの名無しさん:2006/07/18(火) 17:38:27
>>867
ヘッダに型情報が書いてあるのがC++なのに型情報無効にして
ヘッダ参照って何?
869デフォルトの名無しさん:2006/07/18(火) 19:05:51
.NETは関係なし言語側(C#)の問題だ、と言ってるヤツの根拠が全くなく思いつきだけだな
870デフォルトの名無しさん:2006/07/18(火) 19:11:44
>>869
そんなやついた?
871デフォルトの名無しさん:2006/07/18(火) 19:15:40
他モジュールの面罵constを実現できないだけで、ほかのconstは言語側で実現できるでしょ。
872デフォルトの名無しさん:2006/07/18(火) 19:21:28
C#って、TestClass.Item[i]みたいな感じで使える配列プロパティみたいなものって
インデクサを使ったTestClass[i]っていう形式の1つしか作れないの?
873デフォルトの名無しさん:2006/07/18(火) 19:53:57
>>872
[ ] のオーバーロードは不可で、インデックサでのみ使用可能。( )で代用するか、
コレクションやインデックサを持ったクラスを作って
それを返すプロパティを設ければいいんじゃない。
874デフォルトの名無しさん:2006/07/18(火) 20:01:05
>>872
いわゆる「名前付きインデクサ」って奴ね。
IL 的には名前付きインデクサも作れるみたいだけど、C# では無理。

多分、コレクションを返すプロパティと区別が付かないのが嫌だったんだと思う。
>>873 の言うように、インデクサを実装したクラスを1個余計に作って、
それを返すプロパティを作るのが C# 的には正しい。
875デフォルトの名無しさん:2006/07/18(火) 20:04:33
>>871
>他モジュールの面罵constを実現できないだけ
これがconst機構上致命的なんだが…
これがないと、それこそconst参照渡されても何もできない(getterにさえ
アクセスできない)

class Foo { private: int x; public : int getX() /* const */ { return x; } };
void Bar(const Foo& value) {
 int x = value.getX(); //コンパイルエラー
}
876デフォルトの名無しさん:2006/07/18(火) 20:17:08
今日のテーマは『C#がこの先生きのこるには』です。
877デフォルトの名無しさん:2006/07/18(火) 20:18:37
キノコヾ( ゚д゚)ノ″キノコ
878デフォルトの名無しさん:2006/07/18(火) 20:22:21
どうせC#は日曜プログラマ限定でしょ
879デフォルトの名無しさん:2006/07/18(火) 20:59:45
>>876

      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      | ( ゚Д゚)  <C♯きのこる!
      |(ノ  |つ    
      |.先生.|
      ヽ _ノ
       U"U
880デフォルトの名無しさん:2006/07/18(火) 21:05:34
>>873-874
ありがとう。インデクサを持ったプロパティを別に作るのは思い浮かばなかった。
その方向でいくことにするよ
881にゃんぽん:2006/07/18(火) 23:40:04
こんにちは。
どうか、Windowのリサイズについてご教授ください。

画像を表示するプログラムを作成しています。
画面をマウスドラッグでサイズ変更をしているとき、
マウス移動の間、図形を連続的に再描画(縦横比を一定)しようとしています。

FormPaint内でClientWidth とClientheightの設定をしてもうまくいきません。

いい方法がありましたらご教授願います。
882デフォルトの名無しさん:2006/07/18(火) 23:40:31
>>875
属性で拡張すれば言語レベルで対応できると思う。
C#にない理由は実装が手間なわりに効果が薄いとみなされたためだろう。
同じ理由で多重継承やC++タイプのFriendも削除されたり単純化されている。
883デフォルトの名無しさん:2006/07/18(火) 23:45:51
多重継承の実装の面倒くささは桁違いだろ。

ついでに言うとfriendはinternalが相当すると言えるかもしれない。
884デフォルトの名無しさん:2006/07/19(水) 00:14:20
>>878
俺は業務で使ってるが。
885デフォルトの名無しさん:2006/07/19(水) 00:31:29
簡単につれるね
886デフォルトの名無しさん:2006/07/19(水) 00:39:26
>>882
その対応だと使えるクラスと使えないクラスができてしまって激しく
気持ち悪いんだが。
ついでにいうと、動的機能を使用することが常態になっている.NETで
静的に閉じたconstなんか採用したら抜け道だらけで収拾がつかなくなる。
System.ComponentModelが動的(いわゆるリフレクション)を基礎として
構築されていることは分かっているよね?
887デフォルトの名無しさん:2006/07/19(水) 00:41:02
日曜に仕事してるのか
888デフォルトの名無しさん:2006/07/19(水) 01:22:35
なんかもうC#が気になりまくりだけど、移行できないJava厨が多くて嫌だね
Javaなんて、あと3年で消えるのに
889デフォルトの名無しさん:2006/07/19(水) 01:39:19
世界観の狭い人だね
890デフォルトの名無しさん:2006/07/19(水) 01:43:18
3年で消えるんならもう終焉気味じゃないとおかしいぞ
891デフォルトの名無しさん:2006/07/19(水) 02:52:08
J#に謝れ
892デフォルトの名無しさん:2006/07/19(水) 03:28:17
おまえら!
System.ComponentModelが動的(いわゆるリフレクション)を基礎として構築されていることは分かっているよね?
893デフォルトの名無しさん:2006/07/19(水) 03:34:46
つーかComponentModelが何なのか今市よく分かってない
894デフォルトの名無しさん:2006/07/19(水) 03:47:10
>>892
またそれか
895デフォルトの名無しさん:2006/07/19(水) 05:55:51
>>886
>その対応だと使えるクラスと使えないクラスができてしまって激しく
>気持ち悪いんだが。
それ以前の問題としてintすら外部アセンブリなんだけどね!
最低限CTSに手を加えないで、C#だけでどんなクラスが作れるのか
おじさん知りたいな!
896デフォルトの名無しさん:2006/07/19(水) 06:17:44
おじさん乙
897デフォルトの名無しさん:2006/07/19(水) 11:06:39
おじさん萌え
898デフォルトの名無しさん:2006/07/19(水) 11:08:26
使用済み男根
899デフォルトの名無しさん:2006/07/19(水) 12:32:18
ComponentModel名前空間は自分から使ったことないな
900デフォルトの名無しさん:2006/07/19(水) 12:38:04
で?
901デフォルトの名無しさん:2006/07/19(水) 12:40:50
ComponentModelってCOMがらみ?
902デフォルトの名無しさん:2006/07/19(水) 13:48:25
ちがう
903デフォルトの名無しさん:2006/07/19(水) 14:37:33
IContainerくらいは使うでしょ
904デフォルトの名無しさん:2006/07/19(水) 15:38:25
Javaって死滅しちゃうのぉ?
905デフォルトの名無しさん:2006/07/19(水) 16:17:29
>>904
javaの命運はお前にかかっている
906デフォルトの名無しさん:2006/07/19(水) 16:59:25
おれが救ってやる
907デフォルトの名無しさん:2006/07/19(水) 17:41:56
JavaもC#も死んでVBとC++だけが残る
908デフォルトの名無しさん:2006/07/19(水) 17:46:54
C#は、生きてるというレベルにすらまだなってない
909デフォルトの名無しさん:2006/07/19(水) 18:02:35
生きろ
910デフォルトの名無しさん:2006/07/19(水) 20:32:05
結局VB.NETのほうが生き残るんですね、VBの書き方苦手なんだよな・・・慣れの問題かもしれんが
911デフォルトの名無しさん:2006/07/19(水) 20:46:52
釣れますか?
912デフォルトの名無しさん:2006/07/19(水) 21:45:25
C#でもVB.NETでもどっちでもいいじゃん、何をそんなに気にしてんの?
漏れはそのときの気分によって使い分けてるよ。開発上どっちかの言語に
有利なアプリケーションなんて別に無いしな。
913デフォルトの名無しさん:2006/07/19(水) 21:54:53
ネタにマジレス
914デフォルトの名無しさん:2006/07/19(水) 21:59:46
夏休みのためかすっかり雑談スレになってるが、ご相談の方も遠慮なくどうぞ。
915デフォルトの名無しさん:2006/07/19(水) 23:09:57
C#でテンプレートつけてくれればあまり文句ないんだが・・・
916デフォルトの名無しさん:2006/07/19(水) 23:11:04
>>915
Genericsで不満なとこあるんか?
917デフォルトの名無しさん:2006/07/19(水) 23:18:14
タイプパラメータを継承元とできない点

コンストラクタやenum等の制約がかけれない点
918デフォルトの名無しさん:2006/07/19(水) 23:20:45
型を指定しないとメソッド呼べないところ。
C++みたいになんでもありありにしてほしい。
919デフォルトの名無しさん:2006/07/19(水) 23:23:33
ILとの兼ね合いからそこまでは難しいと思う。
それよりもやっぱりtypedefが欲しい。
920デフォルトの名無しさん:2006/07/19(水) 23:24:05
だったらC++をやれと…
安全性と自由度はトレードオフだっつーのよ
921デフォルトの名無しさん:2006/07/19(水) 23:27:25
readonlyのローカル変数が使えないのは何でだぜ?
922デフォルトの名無しさん:2006/07/19(水) 23:28:32
>>920 行為売れすする人って例外なく頭悪いよね
923デフォルトの名無しさん:2006/07/19(水) 23:54:19
変換くらいちゃんとしろ
924デフォルトの名無しさん:2006/07/20(木) 00:28:12
>>918
あれをやろうと思ったら、C++ みたいに、
ジェネリッククラスを実体化するたびに別のクラスのコードが生成されて、
コンパイル結果が爆発的に肥大化するから駄目なんじゃ。

>>920
安全性だけじゃなくて、↑みたいな効率の問題も大きいよ。
925デフォルトの名無しさん:2006/07/20(木) 00:33:59
>>924 でもそのおかげで総称性にかなり制限が加わってる。
926デフォルトの名無しさん:2006/07/20(木) 01:15:51
しかしC#は硬くしたおかげで、推論しても大丈夫な世界を構築しているから
難しいところだよ。本来ならこっちのほうが正統な発展な希ガス。
明示を何とかせんと応用が利かんぞっつーのは確かにあったわけで。

whereの表現力が低いっつーのとinterfaceの表現力が低いっつーのは
(そしてそれが現状の不満につながっているのは)認めるところだが、
これは別の解決策があるだろうと思うし。C++の方法は何か違う。
927デフォルトの名無しさん:2006/07/20(木) 12:53:41
.NET1.1ネイティブなJPEG2000のライブラリを教えてください。
既に動いているノータッチデプロイメントのシステムなのですが、
「JPEG->JPEG2000によせ」という要求がきて困ってます。
928デフォルトの名無しさん:2006/07/20(木) 13:08:06
ClickOnce にしちゃえば
929デフォルトの名無しさん:2006/07/20(木) 13:10:09
.net別の名前にしてくれないかな・・・・
検索しづらくてたまらん・・・orz
930デフォルトの名無しさん:2006/07/20(木) 13:19:48
あるあるw
931デフォルトの名無しさん:2006/07/20(木) 13:22:32
932デフォルトの名無しさん:2006/07/20(木) 13:56:43
こんにちは。当方 .NET2003、.NET Framework1.1 を使用しているのですが、
comboBox(テキストボックスでもいい)でAutoCompleteを実現するのは無理なのでしょうか・・・?
無理でしたら、代替としてどのような方法があるでしょうか?
お願いします。

参考:
http://itpro.nikkeibp.co.jp/article/COLUMN/20060616/241092/?ST=itprotech
http://www.atmarkit.co.jp/fdotnet/dotnettips/423autocompsource/autocompsource.html
933デフォルトの名無しさん:2006/07/20(木) 13:59:46
お前がどこで躓いているかが理解できない
934932:2006/07/20(木) 14:08:30
ありがとうございます。

System.Windows.Forms.ComboBox' に 'AutoCompleteMode' の定義がありません。
と出てしまうので、1.1じゃ無理なのかと思ったのですが…
935デフォルトの名無しさん:2006/07/20(木) 14:09:21
>>932
上段のurlの対応バージョンがうそっぽいな
MSDNでComboBox.AutoCompleteSource をみると次のように赤字で表示される。
>メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。 
936932:2006/07/20(木) 14:22:02
>>935
ですよね。

どうやって実現すればいいでしょうか。
937デフォルトの名無しさん:2006/07/20(木) 14:29:16
そんぐらい自分で実装したまへよ
938デフォルトの名無しさん:2006/07/20(木) 14:30:51
>>936
サポートしてないのなら対応は限られるだろう。
1.あきらめる
2.VS2005にかえる
3.KeyPressイベントあたりに自分でたくさんコードを書く
4.同等の機能を持った市販かネットで入手可能なコントロールを探す(あるかどうかは知らん)
939932:2006/07/20(木) 14:34:03
>>937>>938
そうですね。自分でたくさんコードを書いてがんばろうと思います。
ありがとうございました。
940デフォルトの名無しさん:2006/07/20(木) 15:20:22
すいません。誰かこの質問に答えられるひといますか?
C#のFormをコピーしてwordなどの文章に貼り付けることは可能ですか?
941デフォルトの名無しさん:2006/07/20(木) 15:21:27
>>940
PrintScreenで好きなだけどうぞ
942デフォルトの名無しさん:2006/07/20(木) 15:26:57
>>940ありがとうございます。
PrintScreenの使い方がよくわからないのですが、
紹介しているサイトとかご存じですか!?
943デフォルトの名無しさん:2006/07/20(木) 15:30:06
944デフォルトの名無しさん:2006/07/20(木) 15:57:47
誰か、PrintScreenの使い方教えてください。
945デフォルトの名無しさん:2006/07/20(木) 16:03:54
Windowsキーを押してキーボードのUを連打
946デフォルトの名無しさん:2006/07/20(木) 16:12:56
Windows+R
regedit Enter

どれか好きなのを右クリック-削除
947デフォルトの名無しさん:2006/07/20(木) 17:10:57
VC#2005EEでManagedDirectXをいじってるんですが
FormのOnSizeChangedで勝手にDevice.Reset()を呼び出すのが激しくウザいです。
なんとか勝手に呼び出すのをやめさせる方法はないでしょうか?
948デフォルトの名無しさん:2006/07/20(木) 19:02:47
>>940
自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
言葉が足りないからです。

C#のFormをコピーって意味が分かりません。

スクリーンショットを貼り付けたいのですか?
それを動的にプログラムで実現したいのですか?
Form上のテキストを貼り付けたいんですか?
wordのドキュメント内部でFormを実現したいのですか?
それとももっと想像を絶するようなことですか?

949デフォルトの名無しさん:2006/07/20(木) 19:04:45
普通に推測できますが。
950デフォルトの名無しさん:2006/07/20(木) 19:05:12
お前はエスパーだからな
951デフォルトの名無しさん:2006/07/20(木) 19:28:36
おそらく「もっと想像を絶するようなこと」だな
952デフォルトの名無しさん:2006/07/20(木) 19:42:34
ム板に来る前にパソコン初心者スレ行くべきだな
953デフォルトの名無しさん:2006/07/20(木) 19:49:51
推測できた内容書いてくれよエスパー
954デフォルトの名無しさん:2006/07/20(木) 19:53:22
PrintScreenすら知らないヤツって・・・
知らなくてもググるとかしろよ
955デフォルトの名無しさん:2006/07/20(木) 19:56:32
>>928
クライアントに.NET1.1で動く別システムが入っている為、
「NTDが動かなくなるので.NET2.0は使うな」と言われており
ClickOnceは使えません。
956デフォルトの名無しさん:2006/07/20(木) 20:41:06
>>955
.NET 1.0 1.1 2.0 はSxSで混在可能なのだが、よほど妙な作り方をしてるのだろうか。
957デフォルトの名無しさん:2006/07/20(木) 20:47:18
>>948
>自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
>言葉が足りないからです。

それは多分あなたのことです。

分かっているのなら、多分解決出来ています。
何故なら、調べるにしても簡単に調べられるからです。

分からないから的確なキーワードも分からず、調べるにも、なかなかヒットしません。

何が分からないのかを適切に聞き出せないなら、同じように社会生活で苦労します。
それは、言葉が足らないからです。
958デフォルトの名無しさん:2006/07/20(木) 20:52:02
プログラム言語学ぶ前に日本語学んで来い
959デフォルトの名無しさん:2006/07/20(木) 20:58:11
推測できた内容書いてくれよエスパー
960デフォルトの名無しさん:2006/07/20(木) 21:04:53
>>959は出来るだけ死体が見つからない方法を考え、2日後に自殺する。
961デフォルトの名無しさん:2006/07/20(木) 21:17:26
誤差2ms以内でスレッドを管理したいのですが
Thread.Sleepが20msほど帰ってきやがらないので辟易しています。
C++/Win32APIならtimeBeginPeriod(1)で環境によっては
Sleep(1)が1msで帰ってくるようになりますが、Thread.Sleepは
独自処理らしくwinmm.dllをインポートしてtimeBeginPeriod(1)しても
相変わらず20msほど処理が戻ってきません。
SpinWaitは半端な知識で使うのは危なそうだし何か良い方法はないでしょうか。
962デフォルトの名無しさん:2006/07/20(木) 21:22:43
当たり前
Windows 自体そんな精度出せない
963デフォルトの名無しさん:2006/07/20(木) 21:27:49
>>962
いや…C++/Win32APIで書いたものは精度出てるんですけど…
964デフォルトの名無しさん:2006/07/20(木) 21:35:26
timeBeginPeriod(1)をしてsleepするアンマネージなDLLを用意するしかないんじゃない?よくわからんけど
965デフォルトの名無しさん:2006/07/20(木) 21:35:31
MM系のtimeBeginPeriodはSleepにも影響するの?
966デフォルトの名無しさん:2006/07/20(木) 22:06:12
で、推測できた内容はまだか?
967デフォルトの名無しさん:2006/07/20(木) 22:52:20
>>966
質問の回答が得られないからって自演で煽ってるヤツなんかと仲良くしちゃいけませんっ
968デフォルトの名無しさん:2006/07/20(木) 23:21:40
>>948
相手の言っていることがわからなくて社会生活で苦労したりしませんか?
IQが足りないからです。
969デフォルトの名無しさん:2006/07/20(木) 23:28:23
で、推測できた内容はまだか?
970デフォルトの名無しさん:2006/07/20(木) 23:39:50
何がそんなに悔しかったんだろう?
971デフォルトの名無しさん:2006/07/20(木) 23:56:04
型を示す文字列(例、"System.Windows.Forms.Form","System.Drawing.Font")から
その型のインスタンスを作成する方法ってありますでしょうか?
972デフォルトの名無しさん:2006/07/20(木) 23:59:43
973デフォルトの名無しさん:2006/07/21(金) 00:48:33
そこの説明だめだめだからやめた方がいい。
974デフォルトの名無しさん:2006/07/21(金) 00:57:59
ま、System.Windows.Forms.Form だけでは型を示すには不足だな。
975デフォルトの名無しさん:2006/07/21(金) 01:44:44
文字列からソースを作ってビルドして動的にリンク
976971:2006/07/21(金) 07:05:42
>>972-974
Assembly が取得できれば CreateInstance できるということですね。
その方向で、作ってみます。
ありがとうございました。

>>975
ちょっと方向性が違うのでその方向はミリ
977デフォルトの名無しさん:2006/07/21(金) 08:56:59
質問です。
テキストのログファイルを作成するに当たって、ファイルを回帰的に使用したいと
考えています。
指定行にテキストを書き込む方法(ヒント)を教えてください。
978デフォルトの名無しさん:2006/07/21(金) 09:00:46
>>977
System.IO
979デフォルトの名無しさん:2006/07/21(金) 09:07:14
>>978
すいません、できればクラスまでお願いします。
さらにできたらメソッドまで。
980デフォルトの名無しさん:2006/07/21(金) 09:09:04
>>979
ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/
981979:2006/07/21(金) 09:10:39
ふらっとC#スレへ異動します
982デフォルトの名無しさん:2006/07/21(金) 12:53:42
>>956
通常なら混在可能だが、NTDは2.0入れたらダメじゃなかったか?
983デフォルトの名無しさん:2006/07/21(金) 22:35:12
質問失礼します。

初めて C# DirectX でソフトを作成した者です。
ソフトを作成し、開発マシンで正常に動作するのを確認しました。
が、いざ配布してみると「共通言語ランタイムデバッグサービス アプリケーションで、ハンドルできない例外が発生しました。」
という警告ダイアログが出て動作しないマシンがあると判明しました。
問題のマシンでは .Net Framework 1.1 及び、DirectX は導入済みである事を確認しております。

原因はおろか原因を特定する方法すら全く分からない状態です。
分かる方お願いします。

開発マシン
WinXP Home
VS2003 C#
DirectX 9.0

問題のマシン
WinXP Home
984デフォルトの名無しさん:2006/07/21(金) 22:39:58
デバック版配布してみれば?
985デフォルトの名無しさん:2006/07/21(金) 22:46:50
例外の内容次第だよなぁ
NullReferenceException と FileNotFoundException じゃ全然違うし
986983:2006/07/21(金) 22:51:16
返答ありがとうございます。

>>984
渡して起動してもらったのですが、結果は同じでした。

>>985
内容ですが、
処理 ID=0x2d0(720)、スレッド ID=0x7a4(1956)
となってました。
Exception云々ではなく、それ以前の起動時にこけてる印象を受けます。
987デフォルトの名無しさん:2006/07/21(金) 23:30:51
>>983
DirectXは機種によって動作しない場合があるね。
988デフォルトの名無しさん:2006/07/21(金) 23:53:25
ハンドルされてない冷害を処理するハンドラ登録できたと思うのでそこでみてみそ。
書き方は忘れた。ぐぐれ
989デフォルトの名無しさん:2006/07/22(土) 01:03:09
>>983 こっちのスレの方がいいんじゃなかい

C#でDirectX9 初心者の館 2頂点目
http://pc8.2ch.net/test/read.cgi/tech/1103998649/
990デフォルトの名無しさん:2006/07/22(土) 09:20:32
C丼
991デフォルトの名無しさん:2006/07/22(土) 09:25:03
銀座 天國

A丼〔海老2尾・きす・イカかき揚・野菜2点〕. 1470円.
B丼〔海老2尾・イカかき揚・ 穴子・野菜2点〕. 2100円.
C丼〔海老2尾・きす・文甲イカ・大海老・野菜2点〕. 2835円
992デフォルトの名無しさん:2006/07/22(土) 09:30:41
C丼高級だな
993デフォルトの名無しさん:2006/07/22(土) 10:15:04
次スレは?>>994が立てる?
994デフォルトの名無しさん:2006/07/22(土) 11:05:49
Java最強!!
995デフォルトの名無しさん:2006/07/22(土) 11:08:04
スレ違い
996デフォルトの名無しさん:2006/07/22(土) 11:26:31
>>992
B丼の方が好みだな。
997デフォルトの名無しさん:2006/07/22(土) 11:41:37
よーし
このスレはJavaが頂いた
C#なんて、誰も使ってないから必要無いだろ?wwwwww

Java最強!!!!!!!!!!!!!!1111
998デフォルトの名無しさん:2006/07/22(土) 11:58:39
次スレ

C♯, C#相談室 Part33
http://pc8.2ch.net/test/read.cgi/tech/1153537081/
999デフォルトの名無しさん:2006/07/22(土) 12:00:23
?
1000デフォルトの名無しさん:2006/07/22(土) 12:00:42
1000?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。