5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C♯相談室 Part5

1 :名無しさん♯:02/04/23 12:52

   ∧_∧____
  /(#゚ー゚) ./\
/| ̄∪∪ ̄|\/    C#,.NET関連の話題はこちらでどうぞ。
  |____|/
   ,,,,∪∪,,, ,,


過去スレ・関連リンクは>>2-10あたり

2 :名無しさん♯:02/04/23 12:52

C♯相談室 Part4
http://pc.2ch.net/test/read.cgi/tech/1016597767/
C♯相談室 Part3
http://pc.2ch.net/test/read.cgi/tech/1009473982/ (現在dat落ち)
C♯相談室 Part2
http://pc.2ch.net/test/read.cgi/tech/1002468050/ (現在dat落ち)
C#相談室
http://pc.2ch.net/tech/kako/977/977112364.html

ソース置き場.NET
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049

3 :デフォルトの名無しさん:02/04/23 13:01
関連スレ

VisualStudio.Net SP4/*.NETなんて、好きだー!!*/
http://pc.2ch.net/test/read.cgi/tech/1017674939/

お前ら頃し合いしてください
http://pc.2ch.net/test/read.cgi/tech/1013093589/

4 :デフォルトの名無しさん:02/04/23 13:03
MSDN Online Japan
http://www.microsoft.com/japan/msdn/default.asp

Insider.NET
http://www.atmarkit.co.jp/fdotnet/

5 :デフォルトの名無しさん:02/04/23 13:51
>>1 スレ立てお疲れ様です。しぃ#タン ハァハァ。

6 :デフォルトの名無しさん:02/04/23 16:51
C#StandardとSDKの違いって何?
C#品切れだったので入荷するまで
とりあえずSDKを使ってみようと思ったけど、
これからプログラミングを始める者なのでよくわからない。

7 :デフォルトの名無しさん:02/04/23 17:10
プロジェクトフォルダに作成される
<VSMacros>ってなんだい?
消してもまたはえてくるけど。

8 :デフォルトの名無しさん:02/04/23 17:21
>>6

○C#Standard 統合開発環境
エディタ・テンプレートなどなど。当然便利な機能あり
この環境からは言語自体はC#しか使えない(下に説明するSDKも入っている)
びぢゅあーるな環境でウィンドウズあっぷりけーしょんなどを開発できる。
クラスライブラリ・自前コンポーネント作成用の環境はない(単体C#の機能制限)。
入門者向けテキスト等も同梱。金かかる。

○SDK 統合じゃない開発環境
C#に限らずなんでもできるがコマンドラインから操作せねばならん
ものが多いなどめんどい。
実はびぢゅあーるな感じでの
ウィンドウズあっぷりけーしょん開発ツールも入ってる。
クラスライブラリ・自前コンポーネントはきっと作れる(謎
金かからん。

金あるひとは上、ない人(品切れで買えない人)は下かと。


9 :デフォルトの名無しさん:02/04/23 17:24
>>7
文字通りマクロの保存場所。
VS.NETはOfficeみたいにマクロを使えるよ。しかもコードはVB.NET。

10 :デフォルトの名無しさん:02/04/23 17:27
>>9
マクロか、そっかそのまんまだね。研究してみる。サンキュー。

11 :名無しの高校教師でごわす:02/04/23 22:14
>8
実はC#とC++のスタンダード版を買ってしまった高校教師です。
アカデミック版を買えるのですが、例のアクティべーションとかいうものの
正体がわからないので躊躇して買わなかったのです。買うべきでしょうか
クラスライブラリが作れないとは痛かったです。でも、すでに膨大なクラス
が用意されているので必要はないかなとも思うのですが。。。

アクティべーション自身を詳しく(裏事情も含めて)教えてください。
私はしょっちゅう環境を全部消してはまた再インストールするのです。MSから
つけねらわれるのでしょうか?

12 :デフォルトの名無しさん:02/04/23 22:15
>>11
こっちで聞いた方がいいんじゃない?
http://pc.2ch.net/test/read.cgi/tech/1017674939/l50

13 :名無しの高校教師でごわす:02/04/23 22:18
>12
いや、ここで聞きたいのです。

14 :デフォルトの名無しさん:02/04/23 22:20
つか、別にスタンダード版買ったのならそれでいいじゃん。

15 :デフォルトの名無しさん:02/04/23 22:20
再インストールにしてもパーツ変えたにしても、電話するだけでオッケー
せっかく学生なんだから特権使ってVS.NET買えばいいのに、
おれだったらそうするね。

おれは、貧乏なC#Stdユーザーだけどな。

16 :名無しの高校教師でごわす:02/04/23 22:21
C++を使ってみた結果、やりたいことはほとんどC#で実現可能だと
いうことが分かりました。お金がない人はVC++を買う必要はまったく
ありません。

17 :名無しの高校教師でごわす:02/04/23 22:24
>15
アドバイスありがとうございます。
私は貧乏な「40歳」の高校教師です。学生ではありません。
統合開発環境はなんだかごちゃごちゃしていてまだ勝手がわかりません。
とりあえず、csc.exeで一通りC#の言語体系を眺めてみている最中です。

18 :8を一生懸命書いたやつ:02/04/23 22:34
買ったんならそれ使えばええじゃんかー。
これからプログラミング始めるって書いてあるっしょ、
ならライブラリなんぞ作るのは当分さきじゃんかよ〜ぐわー
次のバージョンのときVS買ってもいいだろ〜あ〜?

19 :デフォルトの名無しさん:02/04/23 23:43
>>18
同意。
初期のソースなんて汚くてあとで使いまわしするのに耐えないことが多いんだし。

20 :デフォルトの名無しさん:02/04/24 00:29
高校教師うざ、、、VS.NETスレ逝け。

21 :デフォルトの名無しさん:02/04/24 00:39
明日VB.NETカンファレンス行く人。。。いる?

22 :学習がはかどらない男:02/04/24 01:54
ねぇねぇ、あんたら今なにつくってんの?
もしくは
どんな感じで勉強してる?
ねぇ。

>>21
C#のカンファレンスはないのん?

23 :デフォルトの名無しさん:02/04/24 02:06
>>22
アリを眺めてる


24 :デフォルトの名無しさん:02/04/24 02:43
マジで教師ならそんなやつの授業うけたかねー!!
失せろ!バカ教師!

25 :学習がはかどらない男:02/04/24 02:47
あ、なんか生態系つくって闘わせるやつかえ?
レベル高いのぅ。。。

26 :開発もはかどらない男:02/04/24 02:51
んーなんか違うような気がしてきた・・・
アリは肉食動物なの?


27 :デフォルトの名無しさん:02/04/24 03:24
雑談は他でやってくれる?独り言も他でね。
新手の荒しだな。放置しよ。俺もな。スマソ。

28 :独り言すらはかどらない男:02/04/24 03:49
へいへいスンマセンでした。

29 :デフォルトの名無しさん:02/04/24 06:43
オハヨーゴザイマス

しっつもーん。

//////////////////////////////
switch(なんとかかんとか)
{
case 1:
int hogehoge;
....
break;
case 2:
hogehoge = 765;
....
////////////////////////////////

この場合のhogehogeはcase 1:で定義されてるけど、
case 2:などなど、switchスコープ内なら使いまわせるんだよね?
(C++とかでもできたっけ?)

30 :デフォルトの名無しさん:02/04/24 07:02
>>29
気持ち悪い感じだけど、できるね。
C++だと出来ないよね。

31 :デフォルトの名無しさん:02/04/24 07:19
>>30

即お返事サンキュー
WinTalkって、SDKだかのサンプルにでてきたのん。
今読んでるとこ。
気持ち悪いか、そういわれればそうですねぇ。

C#って愉快。

32 :デフォルトの名無しさん:02/04/24 08:05
>>11
もーおそいだろうけど。学生・教員ならアカデミックパック買うよりもアカデミックオープンライセンスで買うほうがよい。
アクティベーションなくなるし、若干安いし。

その代わり初回に5ライセンス分(別のソフトとあわせてでもいいが)買わなきゃいけないのが難点だが、
一緒に買う仲間を募ればどうにかなるし。

33 :デフォルトの名無しさん:02/04/24 09:22
属性として指定するFlagsAttributeって実際どんな効能があるんでしょう?
たとえば、enumの値がOR出来るように割り当ててくれるわけでもないようだし・・。

34 :デフォルトの名無しさん:02/04/24 10:10
ファイルから一行ずつ読み込むにはどうしたらいいのでしょうか。
Readとかで読んで、改行をサーチしないとダメですか?


35 :デフォルトの名無しさん:02/04/24 11:29
>>34
ReadLine

36 :34:02/04/24 11:51
>>35
できました。ありがとうございます。


37 :デフォルトの名無しさん:02/04/24 20:35
C#の本に、「単一文字からなる文字列は文字リテラルと異なる。例えば、'k'と"K"は違う」とあるんですが、
これはどういう意味なんでしょうか。
例で示してもらえると助かります。

38 :デフォルトの名無しさん:02/04/24 20:53
>>37
型の取り扱いが違うということでは。

Console.WriteLine( 'k'.GetType() );
Console.WriteLine( "k".GetType() );

39 :名無しの高校教師でごわす:02/04/24 21:05
>32
ありがとうございました。店頭には見あたらなかったので
店員と相談します。

40 :デフォルトの名無しさん:02/04/24 21:36
初心者、他力本願の方にやさしいスレですね。
以後、利用させていただきます。

41 :中日ファン@横浜さんが好きモード ◆DRAG8zBg :02/04/24 21:39
>>40
自分で調べた方が早く、結局は楽に、身に付きますよ

42 :デフォルトの名無しさん:02/04/24 21:43
>40 ワラタ

43 :デフォルトの名無しさん:02/04/25 05:19
>>37
>>38さんも答えてるけど、
'k'は文字で、"k"はたまたま一文字な文字列。

ちなみに独習C#ですな?私も昨日読み始めた。

44 :40:02/04/25 09:36
プログラミングはコミュニケーションも必要とせず
閉鎖的な環境の中で一人黙々とやっていくものなのですね。
以後、引きこもります。

45 :pと:02/04/25 13:59
私16歳の女子高生。田舎の高校に通っています。(恋人募集中!)
質問ですが、C#の「#」って、本当は「C」の右肩に上付きでつけるもの
だと聞きました。本当ですか?



46 :デフォルトの名無しさん:02/04/25 14:11
>>45
あなたに興味があります。
#についてあなたと一緒に語り明かしたいです。

47 :デフォルトの名無しさん:02/04/25 14:14
こんにちは、45を監禁しているものです。
あれほど大人しくしてろと言ったのですが、勝手に漏れのパソコン使いやがって、
しかも、こんな糞レスさせてしまって申し訳ございません。
これから外出するときは、縄で縛って天井に吊るしておきます。

48 :デフォルトの名無しさん:02/04/25 15:11
またほのぼのとしたやりとりを……。


49 :pと:02/04/25 15:20
ちょっと、まじめなレスを期待しているのです。

今、先生の目を盗んで授業中に書き込んでいます。今、英文Eメールの
作文練習時間です。田舎(福島)だけど、オーストラリアに姉妹校?があるのです。
パソコン教室に20台のパソコンがありますが、全然台数が足りません。
部活はもち!物理電算部です。白々しいけど将来の夢はIBMかマイクロソフトの
バリバリのOLを希望しています。ちなみに応援団もかけ持ちで入団しています。
すみません。自己紹介してしまいました。
C#好きです。がんばってください。さようなら。 近藤実華

50 :デフォルトの名無しさん:02/04/25 16:09
バカなの?

51 :デフォルトの名無しさん:02/04/25 19:48
>50
ワロタ

52 :デフォルトの名無しさん:02/04/25 19:58
こんばんは、>>49の主治医です。
病院から抜け出したのを今取り押さえたところです。
彼女は幼いころに両親にひどい仕打ちを受けたのです。
父からは毎日のようにレイプされ、母からも暴行を繰り返されてきました。
入院してからは、日に日に良くなっていき、だいぶ精神状態も落ち着いてきたようなので
外出を許した途端逃げ出してしまいました。
私の担当不行き届きです。皆様にはご迷惑をお掛けしまして誠に申し訳ございません。
以後、浣腸してベッドに縛りつけておきます。


53 :デフォルトの名無しさん:02/04/25 20:00
所詮C#はこうなる運命か。


54 :同じ女子高生として我慢できません:02/04/25 23:34
で、結局「#」は右上に字上げするのが正式な書き方なのかどうか

答え: 違います。文字の大きさは「C」といっしょです。

たぶん音楽記号的な発想からきたとのだと思いますが、これは元々はC++のジョークみたいな
発想で「さらに1つ追加」という考えから++++が変形してできました。

55 :54:02/04/25 23:38
>49
私は部活は文芸部ですが、創作はパソコンで執筆するように決められています。
うちはパソコン部とか物理電算部はありません。でも何故かパソコンの
台数は100台近くあります。それなのにインターネット出来ないので、
ネット上での活動は個人のパソコンを使っています。
がんばってください。

56 :デフォルトの名無しさん:02/04/25 23:42
製品のロゴでは右上にあるぞ。

http://www.microsoft.com/japan/msdn/vcsharp/

57 :デフォルトの名無しさん:02/04/26 00:08
下のfor文はsという文字を打ったらエスケープする仕組みなんですが、
例えば1とか打った場合、3回ループされます。
CRとLFのぶんも回してるっぽいんですが、forの判定条件にRead()と書いただけで
内部ポインタ(?)みたいなものを進めてくれるんでしょうか。

for(int i = 0; (char)Console.Read() != 's'; i++)
Console.WriteLine("Pass #" + i);


58 :中日ファン@今日はお休みモード ◆DRAG8zBg :02/04/26 00:53
>>57
1 s Enter(CR LF) と入力すると1回
1 s 2 Enter でも1回
1 Enter だと3回で入力待ちのまま

Consolw.Read()は
「入力ストリームの次の文字。または次の文字がない場合は -1。」
を(1文字ずつ)戻すから動作として正常なんだと思います

59 :中日ファン@今日はお休みモード ◆DRAG8zBg :02/04/26 00:56
×Consolw
○Console

60 :デフォルトの名無しさん:02/04/26 08:53
Mono for Windows

http://www.superin.formativ.net/mono/getstart.htm

61 :デフォルトの名無しさん:02/04/26 09:10
SharpDevelopのバージョンが上がってた。

http://www.icsharpcode.net/OpenSource/SD/Download/default.asp

62 :デフォルトの名無しさん:02/04/26 09:41
Monoって何?

63 :デフォルトの名無しさん:02/04/26 09:56
>>62
http://go-mono.com/

64 :デフォルトの名無しさん:02/04/26 11:44
>>54
C#の#は、音階のド(C)の一つ上(1オクターブは12段階)のド#と
言う意味でC#なんだと思うよ。
そういう意味では、C++と似た感じでパロディだね。

65 :デフォルトの名無しさん:02/04/26 13:00
>>64
おいらは、C++の「++」を近づけて「#」になったと聞いたけどな。
この説はここではでないね。

66 :中日ファン@通常モード ◆DRAG8zBg :02/04/26 13:17
>>65
吉爺が「気づくのに0.2秒も掛かってしまった」とか書いてたやつだね
俺もそう思ってた

67 :デフォルトの名無しさん:02/04/26 13:35
>>65
C#が出たての頃、M$のデモでそういうの見せてたよ。
会場に(うゎ、くだらねー!・・・)って空気流れたけど。

68 :デフォルトの名無しさん:02/04/26 13:36
WebアプリケーションからWebサービスに対し、とあるファイルをバイナリ(byteの配列)のまま渡したいのですが、どのようにしたらよいでしょうか?
そのとあるファイルは、Webアプリのあるマシンではなく、クライアントのファイルシステムにあるファイルです。

69 :デフォルトの名無しさん:02/04/26 13:48
>>68
そのまんまやん。aspxで受け取ったbyte[]をasmxに渡せばええのんとちゃう?

70 :デフォルトの名無しさん:02/04/26 13:50
>>68
base64に変換して渡してみたら?
Convert.ToBase64String、Convert.FromBase64String参照。

71 :70:02/04/26 13:54
byte[]そのままでやり取りできた。すまん。

72 :デフォルトの名無しさん:02/04/26 15:53
>>69
質問の仕方が悪かったですね。Webフォームで、<INPUT type="file">みたいなものを置いて、それをWebサービスに渡したいのですが、textboxでは「参照」ボタンを表示できないし・・・。

73 :デフォルトの名無しさん:02/04/26 16:21
>>72
だから、Webフォームに<input type="file" runat="server">をおいて、
あがってきたFileStreamをbyte[]にして、SOAPでasmx呼び出せばいいんじゃないの?

WebサービスにはUIなんかないぜ、サービスなんだからさ。UIは各自が勝手に作るもの。

74 :デフォルトの名無しさん:02/04/26 17:01
C#のGUIプログラミングってVC++と同じような感じなのですか?
それともJavaのSwingに似ているとかあります?


75 :デフォルトの名無しさん:02/04/26 17:04
>>74
VBに似ています。

76 :デフォルトの名無しさん:02/04/26 17:05
>>74
VJ++にソクーリです

77 :中日ファン@もうすぐ連休モード ◆DRAG8zBg :02/04/26 17:12
サブクラスでベースクラスのメソッドをnewで隠蔽した場合
ベースクラスの変数に格納して多態のつもりで呼び出しても
ベースクラスの方のメソッドが呼び出される
(同じケースでoverrideの場合は当然サブクラスの方が呼び出される)

これは仕様なんでしょうか

78 :デフォルトの名無しさん:02/04/26 17:30
>>77
仕様。

79 :デフォルトの名無しさん:02/04/26 17:32
>>77
仕様っていうかまさにそれをやるのがnewの目的なんだけど?

80 :中日ファン@もうすぐ連休モード ◆DRAG8zBg :02/04/26 17:37
>>79
多態には使うなということですか・・・
「ベースクラスのメソッドを隠蔽するため」
だと思ってたのに、隠蔽されるどころかしゃしゃり出てくるので
なんとも違和感があるのですが・・・

パラメータが同じなら素直にoverrideなんでしょうね

81 :中日ファン@もうすぐ連休モード ◆DRAG8zBg :02/04/26 17:41
要するにnewで宣言したメソッドを使う場合は
ベースクラスの変数に格納するなということですか

82 :78:02/04/26 17:58
仮想メソッドの呼び出しでは、実際に呼び出されるメソッドの実装は、呼び出しが行われるインスタンスの<b>実行時の型</b>によって決まります。非仮想メソッドの呼び出しでは、インスタンスの<b>コンパイル時の型</b>によって決まります。

これが仕様です。

83 :デフォルトの名無しさん:02/04/26 18:04
>>82
でもさ、別にnewつけたからってvirtualはvirtualなんだけど。だからあなたがいう
その「仕様」はnewには当てはまってないよね。newのメソッドをそのさらに派生型で
overrideできるんだし。

newはさ、同じ名前の新しいvirtualメソッドをもう1つ作れるようにする機能なんだよね。
継承関係をいったん断ち切って、自分が新しい基底型(そのメソッドに限ってだけど)に
なるのがnewの機能。だから、どの型の変数を使っているかによってvtblが変わるって
ことだよね。

84 :中日ファン@もうすぐ連休モード ◆DRAG8zBg :02/04/26 18:15
>>78(=82)-79
レスありがとうございます

あるメソッドが 親(abstruct)-子(override)-孫(new) の場合
親の変数で孫を作成すると
コンパイルの段階で親に近い、子のメソッドが呼び出されるのでしょうね

85 :中日ファン@もうすぐ連休モード ◆DRAG8zBg :02/04/26 18:16
>>83
>どの型の変数を使っているかによってvtblが変わるってことだよね。
はっきりと分かりました、ありがとうございます

86 :78:02/04/26 18:26
>>83
C#標準リファレンスのP313からP319あたりまでしっかり読んでごらん。詳しく書いてあるから。

87 :デフォルトの名無しさん:02/04/26 18:45
すみません、おっしゃる意味がわかりません。
その本は持ってないのでなんて書いてあるのかわかりませんが、
newをつけると非仮想メソッドになるので、コンパイル時に型が決定するって書いてあるんですか???
それならその説明が*間違い*です。鵜呑みにするのはやめましょう。今出ている大抵の.NET本には
1つや2つ間違いがあるものです。

私は、newをつけてもvirtualはvirtualなのだから、82に書いてある
>非仮想メソッドの呼び出しでは、インスタンスの<b>コンパイル時の型</b>によって決まります。
っていうのは今回の中日ファンさんの例には当てはまっていないと主張しているのですよ。

実際overrideとnewの2つのメソッドを基底型の変数から呼び出すコードを書いて、
生成されたILをしっかり眺めてごらん、正しく書いてあるから。

(あー、またクソ本が一冊世の中に出回ったってことなのかしら。。。)

88 :78:02/04/26 19:10
>>87
using System;

class A {
public virtual void F()
{
Console.WriteLine("A.F");
}
}
class B : A {
public new void F()
{
Console.WriteLine("B.F");
}

static void Main()
{
A a = new B();
a.F();
}
}

の実行結果は
A.F
と理解して私は書いているのだけど。つまり、Bのインスタンスで、A.Fが呼び出されているのですが、なんか私は勘違いしているのでしょうか?
aのコンパイル時の型はAで間違いないと思いますが。
ちなみにB.Fがoverrideだったら、あなたのおっしゃるとおりB.Fですよ。

89 :中日ファン@もうすぐ連休モード ◆DRAG8zBg :02/04/26 19:23
私からもソースを書き込みます・・・興味のある方はお試しください
using System;
public abstract class Shape{
private string petName;
public Shape(string name){petName = name;}
public abstract void Draw();
public string PetName{get { return petName; } set { petName = value; }}
}
public class Ring : Shape{
public Ring(string name) : base(name){}
public override void Draw()
{Console.WriteLine("Drawing Ring named {0}", PetName);}
}
public class Ellipse : Ring{
public Ellipse(string name) : base(name){}
public override void Draw()
{Console.WriteLine("Drawing Ellipse named {0}", PetName);}
}
public class Circle : Ellipse{
public Circle(string name) : base(name){}
public new virtual void Draw()
{Console.WriteLine("New Drawing Circle named {0}", PetName);}
}
public class ShapesApp{
public static int Main(string[] args){
Shape[] shapes = {new Ring("Rinda"), new Ellipse("Elly"), new Circle("Cindy")};
foreach(Shape s in shapes){s.Draw();}
Circle c = new Circle("Cuty");
c.Draw();
return 0;
}
}

90 :デフォルトの名無しさん:02/04/26 19:33
>>88
実行結果はそのとおりです。
でもその実行結果が得られる理由は、あなたが82に書いたこととは何の関係もないと言っています。

で、もしもその本とやらに、この理由が82にあなたが書いたようなこととして説明されているのなら、
それはクソ本だとも言っています。でも、たぶん本にそう書いてあるわけじゃなくてあなたが勘違い
しているだけなんだろうな、とも思います。

91 :78:02/04/26 19:38
>>90
はいはい、もうなんとでも言ってください。ぜーんぶ、あなたのおっしゃるとおりですよ。

92 :デフォルトの名無しさん:02/04/26 20:10
>>91
なんかキレたようだけどさ、本当に俺が言うとおりなんだからしょうがないよな、この場合。
もっとがんばって勉強しような、お互い。あと、本に書いてあることは鵜呑みにしない方がいいぞ。

93 :デフォルトの名無しさん:02/04/26 20:47
粘着ハケーン {{゚д゜}}ブルブル


94 :デフォルトの名無しさん:02/04/26 21:37
この動作原理を教えてください(何故3回回るのか)。

do
{
ch = (char)Console.Read();

Console.Write(">>" + ch + "<<");
Console.Write("debug");
} while(ch != 'q');

95 :デフォルトの名無しさん:02/04/26 21:52
>>94
sscliのソースを読めばわかる

96 :中日ファン@もうすぐ連休モード ◆DRAG8zBg :02/04/26 22:01
>>94(=57さん?)
using System;
class TestApp
{
public static void Main()
{
char ch;
do
{
ch = (char)Console.Read();
Console.WriteLine("Read {0:X2} ", (byte)ch);
} while(ch != 'q');
}
}
↑自分はこれで納得しましたけど・・・

97 :デフォルトの名無しさん:02/04/26 22:17
>>83

> newはさ、同じ名前の新しいvirtualメソッドをもう1つ作れるようにする機能なんだよね。

サンクス!
漏れの持ってる糞本「C#入門」はC#入門というよりプログラミング入門というべき低レベル本(簡単なクラスを作って満足して終わる)で(interfaceなんてキーワード自体1回も出てきません(;´Д`))、C#固有の文法にはほとんど触れてないんだよねぇ。
(今まで買ったプログラム言語の本の中では最低ランクに位置づけさせてもらったよ。)
newとか(特にnewという名前の理由)よくわかってなかったんだけどこの一言で氷解した。

98 :中日ファン@延長になると弱いぞモード ◆DRAG8zBg :02/04/26 22:18
ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/frlrfSystemConsoleClassreadTopic.htm
↑戻り値と解説を読むと理解できるかと・・・

99 :デフォルトの名無しさん:02/04/26 22:25
>>94
Console.Readは1文字だけ入力を受け付けるっていうイメージじゃなくて、
ReadLineでバッファにためて、そのバッファを1文字走査するという感じ。

100 :94:02/04/26 23:18
みなさんリプライありがとうございます。
色々と試してみたんですが、
Read()は、1文字Enter押したとしても内部的には
キー、CR、LFとストリーム上に残るということなんでしょうか。
(その間、>>96さんの例だとwhile条件を抜けない…?どうもここらへんがよくわかりません)

101 :中日ファン@延長になると弱いぞモード ◆DRAG8zBg :02/04/26 23:36
>Read()は、1文字Enter押したとしても内部的には
>キー、CR、LFとストリーム上に残るということなんでしょうか。
その通りだと思います

>while条件を抜けない…?
q Enter で抜けるはずですけど・・・

102 :94:02/04/27 00:11
>q Enter で抜けるはずですけど・・・
あ、すいません。そうですね。

103 :デフォルトの名無しさん:02/04/27 00:38
ウインドウでタイトルバーを消す方法はどうやるのでしょうか?

最小化・最大化ボタンはプロパティで消せるんですが、
Windows.Forms.Formでは無理ですか?

104 :デフォルトの名無しさん:02/04/27 00:42
>>103
Form.FormBorderStyleプロパティ

105 :デフォルトの名無しさん:02/04/27 01:15
>>104
FormBorderStyle.Noneでタイトルなど表示されなくなり思いどうりにできました。
ありがとうです。

106 :デフォルトの名無しさん:02/04/27 09:15
アクセスのレポートをC#から印刷してみたいんですけど
できます??


MSACC9.tbl を.net形式にしたDLLを
ディレクティブに加えた後どうすりゃいいのかわかりません。

using AccessObject;

AccessObject.ReportClass Report = new AccessObject.ReportClass();

107 :デフォルトの名無しさん:02/04/27 09:24
>>106
ゆり子?

108 :デフォルトの名無しさん:02/04/27 09:29
DirectXを使ったアプリケーションを作ろうと思ってますが、
これからの配布形態を考えるとやっぱり.netで作ることを
考えるべきでしょうか?

109 :デフォルトの名無しさん:02/04/27 23:48
DirectX9まで待つことになるぞ

110 :デフォルトの名無しさん:02/04/27 23:58
オレってWin32APIにやたらと詳しくてちょっと自慢なんだけど、
せっかくC#なんだからAPIなしで書きたいじゃん?
APIから先に発想して「C#ではどうするんだ?」ってときは、
どういう方法で探せば良いんだろう?

111 :デフォルトの名無しさん:02/04/28 00:00
>110
おまえには無理

112 :デフォルトの名無しさん:02/04/28 00:52
>110
toriaezu shine!

113 :デフォルトの名無しさん:02/04/28 01:27
>>110
最初はどうやってAPI探したんだよ、お前さんは。

114 :デフォルトの名無しさん:02/04/28 02:40
やっぱさ、時代は 100% pure .NET だと思うのよね。

115 :デフォルトの名無しさん:02/04/28 04:43
VC#.NETPro版がでるらしいよ
VC#.NETstdからのアップグレード版もでたらいいなあ

116 :デフォルトの名無しさん:02/04/28 04:44
ソースは?

117 :デフォルトの名無しさん:02/04/28 05:40
Thread.Sleep( time );したスレッドを無理やり再開できませんか?
Resume();じゃだめなんですよね。

118 :デフォルトの名無しさん :02/04/28 07:53
>>117
それはコールバックを使うのがいいと思うけど

119 :デフォルトの名無しさん:02/04/28 08:18
ちょっとコールバック使ってどうやればいいのか思いつかないですが、
ヒントいただけませんか?教えて君で申し訳ない。

120 :デフォルトの名無しさん:02/04/28 09:39
>>117
Thread.Sleep(int) の代わりに
System.Threading.ManualResetEvent の WaitOne(int, bool) じゃだめ?

121 :デフォルトの名無しさん:02/04/28 09:53
class <class name>{
}
という形式にする設定項目はあるのでしょうか?

ウィザードが作るコードは全て

class <class name>
{
}
なんですよね

122 :デフォルトの名無しさん:02/04/28 10:18
>>121 あるよ。テキストエディタ −>C#ー>フォーマットあたりに
あったと思う。

123 :デフォルトの名無しさん:02/04/28 11:02
>>122
それ、ウィザードには影響しない。

124 :121:02/04/28 11:48
>>123
ですよね。

update待ちですね。
.netになって、ショートカットの設定とかめちゃくちゃやりづらくなりましたね。

125 :デフォルトの名無しさん:02/04/28 12:49
>>123
Ctrl+A → Ctrl+X → Ctrl+V

126 :デフォルトの名無しさん:02/04/28 12:58
>>125
いちいちやってられっか。(w

127 :デフォルトの名無しさん:02/04/28 18:00
ログ出力に関してなんだけど、#define使えないC#でどうやって
デバッグ用のコード埋め込んでる?もしかしてif文でやってるとか?
Javaとかやってた人はどうやってたんだろ。

128 :デフォルトの名無しさん:02/04/28 18:03
#define 使える

129 :デフォルトの名無しさん:02/04/28 18:22
>>128
あ、ホントだ。失礼。
それにしても.netはこんなに早くからドキュメントを翻訳して
無料で配布してくれるのはさすがという感じだね。もっとよく読まないと。

130 :デフォルトの名無しさん:02/04/28 20:42
http://piza.2ch.net/tech/kako/973/973322234.html
#さん発見

131 :デフォルトの名無しさん:02/04/28 20:59
>>130
なんかスレの流れがJAVAからC#に向かってってるのがワラタ。
前半でみんな無料なら使うって言ってたけど、ただで出ちゃったからね。

132 :デフォルトの名無しさん:02/04/28 22:02
>Ctrl+A → Ctrl+X → Ctrl+V
これって何のコマンド?

ところで、コード補完機能が上手く働かなくなってしまった場合
つまり、Ctrl+スペースを押してもリストの中に含まれていないのですが、
おそらくクラスの構造を解析していない状態だと思うのですが
更新する方法はありますか?

133 :デフォルトの名無しさん:02/04/28 22:05
全選択→切り取り→貼り付け

134 :デフォルトの名無しさん:02/04/28 22:05
>>132
> これって何のコマンド?

ソースをすべて選択 → 切り取り → 貼り付け。
これでソースが再整形される。

> ところで、コード補完機能が上手く働かなくなってしまった場合

ソースに文法ミスがある可能性大。
いったんビルドしてみるべし。

135 :デフォルトの名無しさん:02/04/28 22:06
C#の勉強できるスレ教えてください。もしくはそういうのが集まってる
スレでもいいです。

136 :デフォルトの名無しさん:02/04/28 22:09
>>135
勉強できるスレ=勉強できるHP

です

137 :デフォルトの名無しさん:02/04/28 22:12
>>136
言語仕様がWEBで公開されてた気がする。

138 :デフォルトの名無しさん:02/04/28 23:06
MDI子フォームが閉じるとき、親フォームが閉じる子を特定する方法を教えてください。
親にメソッドを作って子から呼ぼうと思ったのですが、
静的とか動的とか参照とか叱られてビルドできず、
引数をどう書いて良いかいまいちわかりません。
よろしくお願いします。


139 :デフォルトの名無しさん:02/04/28 23:08
>>138
残念だなぁ(´ー`)
もしそのエラーをちゃんと書いてたらもっと早くレスがつくのに。

140 :138:02/04/28 23:19
親に、
public void removedForm( System.Windows.Forms.Form targetForm)
{

}
とし、子で、
private void Form2_Closed(object sender, System.EventArgs e)
{
Form1.removedForm(this);
}
等とやっています。
エラーはF1でヘルプを見ても全然理解できません。

141 :138:02/04/28 23:43
((Form1)MdiParent).removedForm(this);
でできました。ありがとうございました。
スミマセンでした。

142 :デフォルトの名無しさん:02/04/29 00:17
>>120 できました。WaitOne( time , true );で止めて
Set()で再開ですね。ありがとうございました。


143 :120:02/04/29 00:36
>>142
そういえばリセットする手間のいらない AutoResetEvent の方がよかったかな。

144 :デフォルトの名無しさん:02/04/29 01:19
C#の文字列では設定された文字列の値を変更できないとのことですが、
これは例えば、

string strSql = "select"; を
strSql = "insert"; に変えたとき、実体が変更されるのではなくコピー
されてるっていうことなんでしょうか。
また、そうであれば、何でこのような動作をするんでしょうか。





145 :デフォルトの名無しさん:02/04/29 01:23
>>144
stringが参照型だから


146 :デフォルトの名無しさん:02/04/29 01:27
SDKの再頒布パッケージ インストしたらcscとかのパスとおります?
うちどうもインスト失敗したっぽくてパスは通ってないは、
削除はできないで、、、パスとおってないのが正常ならいいんですが。

147 :デフォルトの名無しさん:02/04/29 02:09
今の再配布版にコンパイラついてるの?

148 :デフォルトの名無しさん:02/04/29 02:22
>>146
通らないみたい。再配布版でコンパイルしたければ、自分でPATHを切る必要があるよ。

>>147
含まれてる。だから、Windows 98で開発することも、一応可能。

149 :デフォルトの名無しさん:02/04/29 03:43
>>148 146です。そうなんですね。ありがとうございました。

150 :デフォルトの名無しさん:02/04/29 10:05
>>145
理由がちょいと違いますね。stringはimmutableだから、が正解。
immutableにすることでinternなどのテクニックが使えるようになり、
パフォーマンスが向上する。Javaと同じ理由だーね。

151 :デフォルトの名無しさん:02/04/29 11:26
DelphiでのMemoコンポーネントってC#ではTextBoxだと思うんですけど、
Memo1.Lines.Addに相当する操作ってどうやったらいいですかねえ。
TextBox1.Linesは単なるstring[]?

厨な質問でスマソ。SDKのみです。

152 :デフォルトの名無しさん:02/04/29 11:48
>>151
Memoは知らないけど textBox.AppendText の事?


153 :デフォルトの名無しさん:02/04/29 12:51
>>150
144の例は明らかに参照型だからジャン。
あれはただの代入だよ。

154 :デフォルトの名無しさん:02/04/29 12:59
レスthx. 説明が足りなかったので自分が悪いのですが、求めているものと微妙に違うようです。
DelphiのMemoのLinesプロパティはAddしたときに自動的にstring配列を拡張してくれるので、
それに近いものをさがしているのでした。

現在のLinesより一つ大きいstring[]を確保して、そこにLinesをコピーして、そのあと参照先を変えるってのが
正攻法なんでしょうか?

155 :デフォルトの名無しさん:02/04/29 13:00
あ、>>154>>152に対するものです。すんまそ。

156 :デフォルトの名無しさん:02/04/29 14:43
>>153
へ?
string s; s = "age";

string s = new String("age");
ってな意味だよ。代入じゃありませんよ。もちろんnew Stringはコンパイルできませんけどね。
immutableの意味がわかってませんね?

157 :デフォルトの名無しさん:02/04/29 14:49
>>154
textBox1.AppendText("\r\nほげほげ");

こういう感じでいいんじゃないの?

158 :デフォルトの名無しさん:02/04/29 15:20
すんませんが・・・

DirectoryInfo dir = new DirectoryInfo(@"\\Server-1\test");
この引数の頭についてる@はなんですか?

159 :さっき誤爆しちまったかも・・・:02/04/29 15:58
>>156
(´ー`)。o○(あんたほんとにimmutableわかってる?)

160 :デフォルトの名無しさん:02/04/29 16:15
>>159
あー、わかってるよ。一度作ったら中身が不変だってことだ。
だから、一見中身が変えられているような次のコード
string s = "age"; s = "sage";
は実は新しいstring(sage)を作って、sの参照先を変えているだけだってことだ。

これは型が参照型かどうかとは関係ない。不変の値型だってつくれるぜ。意味ないけど。

それじゃ応用問題だ。stringが不変であるメリットは何だ?ヒントはすでに
おれが言った。

161 :デフォルトの名無しさん:02/04/29 16:22
(´ー`)。o○(開発者側のメリットなんてないよ)

162 :デフォルトの名無しさん:02/04/29 16:28
>>160
・・・アフォ?
s = "sage";がsの参照先を変えるのはsが参照型だからだぞ?

> それじゃ応用問題だ。stringが不変であるメリットは何だ?

はぁ?何で俺がそんな事に答えにゃならんのよ。┐(´ー`)┌
あえて言うならそれはメリットがあるからじゃなくて必要条件だったからなんだがな。

163 :デフォルトの名無しさん:02/04/29 16:40
>>158
@がないと
DirectoryInfo dir = new DirectoryInfo(@"\\\\Server-1\\test");
と書かなきゃいけないから。

164 :デフォルトの名無しさん:02/04/29 16:42
>>163
@消し忘れ。

165 :デフォルトの名無しさん:02/04/29 17:44
>>164
あ、しまった。ごめんなさい。

166 :デフォルトの名無しさん:02/04/29 18:34
JavaからC#に引っ越してきたものなんですけど
ソーリューションって言う概念や単位?がいまいちわからんです

167 :デフォルトの名無しさん:02/04/29 18:41
>>161
そう思う?ならどうしてstringは不変でStringBuilderなんちゅうクラスを作ったんだろ。
Javaにも同じ関係があるよね。おっと、たとえばパフォーマンスなんてのは
開発者のメリットじゃないって言いたい?

>>162
>s = "sage";がsの参照先を変えるのはsが参照型だからだぞ?
お前は参照型のオブジェクトとオブジェクトへの参照の区別がついてないな。
やり直し。

>あえて言うならそれはメリットがあるからじゃなくて必要条件だったからなんだがな。
なんで必要条件なんだよ。string(もどき)が不変じゃない言語なんていくらでもあるぞ。

開発するならこういうこと知っておいたほうがいいと思うんだけどなぁ。
しょせん小手先テクニックの魅力には勝てないか、こういう話題は。

168 :デフォルトの名無しさん:02/04/29 18:51
Dr.GUIでも読んで頭冷やせよ。┐(´ー`)┌

169 :デフォルトの名無しさん:02/04/29 18:56
>>166
プロジェクトってのが、実行単位というか、出力単位というか、
1つのEXEやDLL,Webサービスのことで。
ソリューションってのはそれをひとまとめにしたものかなぁ。

製品が複数のEXEやDLLからなってることもあるでしょ。
この製品がソリューションで、
EXEやDLLがプロジェクト。

170 :デフォルトの名無しさん:02/04/29 19:18
>>169
なるほど、ありがと

171 :koubouV:02/04/29 19:19
C#ってなんて読むのが正しいんですか??


172 :デフォルトの名無しさん:02/04/29 19:27
拡張子が.csですので、シーシャープで宜しいかと思います。

173 :koubouV:02/04/29 19:32
シーシャープでいいらしい(調べたところによると
しかしなぜシャープでないのにシーシャープ
#もシャープ(♯)なのか・・・・・(意味不明

174 :デフォルトの名無しさん:02/04/29 19:34
>>173
気づかなかったYO!
#と♯って別物だったんだ・・・

175 :koubouV:02/04/29 19:34
>>172
すいません。文読む前にヘンなこと言っちゃいました。
ほんとすいません。

どうもありがとうございます。

176 :デフォルトの名無しさん:02/04/29 19:35
房らしい疑問だな

177 :koubouV:02/04/29 19:38
出直してきます・・・・(鬱

178 :デフォルトの名無しさん:02/04/29 19:42
>>157
望む動作になりました。どうもです。

TextBoxのLinesプロパティがただのstring[]なのは理由があるんですかね?
自分の愚考ではVectorとか(Delphiの)TStringListみたいにしておいたほうが便利な気がするんですけど。

179 :デフォルトの名無しさん:02/04/29 19:46
なんでもかんでもDelphiと比較すんなや

180 :デフォルトの名無しさん:02/04/29 19:53
>>179
ごめん。Del経験者だとついDelのクラス名から機能を推測したりするのよ。
ヘジさんがかかわってるだけあって? かなりVCLに似てるもんで。
どっちが優れているとかは考えてもしょうがないんで、他意はないです。

181 :デフォルトの名無しさん:02/04/29 20:36
  ,.-''"¨ ̄¨`' ‐ 、
 (,,(,,i,,,i,,,,,,,,i,,,,i,,),,)
    )  (       
    ( #゚ー゚) < いっちゃえ!

182 :デフォルトの名無しさん:02/04/29 21:36
C#スタンダードかてきたー。
ヘタレプログラマーの俺も、ついにC#使いに。
よろすく。

183 :デフォルトの名無しさん:02/04/30 09:12
age

184 :デフォルトの名無しさん:02/04/30 11:42
DirectoryInfo.CreateSubdirectory が IOException を catch
しないんですが・・・

try
{
testdir.CreateSubdirectory("Test");
testdir.CreateSubdirectory("Test2");
}
catch(IOException e)
{
Console.WriteLine(e.Message);
}
としててTestもTest2も存在してるんですけど

185 :デフォルトの名無しさん:02/04/30 11:55
今までVBしかやってなかったんだけど、
C# ムズい…

186 :184:02/04/30 12:41
Exceptionしてみたけどなんも拾わない・・
ダレカタスケテー

187 :184:02/04/30 12:55
報告
ディレクトリ名を長くしたところPathTooLongException は catch できました
他のはやっぱり拾わないですね
ドキュメントの例外のところにIOExceptionやArgumentExceptionも
記載されてるので拾うと思ったのですが

188 :デフォルトの名無しさん:02/04/30 14:29
NET SDkのCLRのリファレンスが見れない。
開こうとすると「インストールします」とかいってででくる。
そんでできない。
全インストールしたんだけど??。

189 :デフォルトの名無しさん:02/04/30 14:44
もしかしてこのスレ死んでる?

190 :デフォルトの名無しさん:02/04/30 14:45
C#は死にました。

191 :デフォルトの名無しさん:02/04/30 14:52
>>188
オフィス入れてる?

192 :184:02/04/30 14:55
シンデルッポイネ・・・
未だに俺はエラーチャッチできないし
と言うかスローされて無いっぽい・・・どうするべ
>>188
トピックの階層はどこですかね

193 :デフォルトの名無しさん:02/04/30 15:09
>>184 よく読め
解説
path の一部が無効でない限り、path に指定したすべての
ディレクトリが作成されます。path パラメータでは、ファイル
パスではなく、ディレクトリ パスを指定します。
既存のサブディレクトリがある場合は、このメソッドは何も実行しません。

DirectoryInfo di = new DirectoryInfo("TempDir");
 if (di.Exists == false)
 di.Create();
これでいいんじゃないか?

194 :188:02/04/30 15:11
リファレンス->クラスライブラリ
以下全部です。

195 :188:02/04/30 15:14
reinstしたら直りました

196 :デフォルトの名無しさん:02/04/30 15:16
>>184
ちなみに存在しないDirectoryInfoのオブジェクトに対して
CreateSubdirectoryを読んだときにだけIOExceptionを投げるみたい。

197 :184:02/04/30 15:31
>>193 196
どもすまんです

つまりDirectoryInfo自体が無効でないとIOExceptionやArgumentException
を投げないと言うことですかね?
とすると単純にディレクトリの存在をIOExceptionで確認することはできないわけですね
ArgumentExceptionはどうしよう

198 :デフォルトの名無しさん:02/04/30 15:35
C#の#って+が4つってこと?
C++++ってこと?

199 :デフォルトの名無しさん:02/04/30 15:50
C♯==D(elphi)♭

200 :デフォルトの名無しさん:02/04/30 15:56
>>197
いろいろ試してみたけど、
・DirectoryInfoのコンストラクタやCreateSubdirectoryメソッドに対して
ファイルシステムと矛盾するようなディレクトリ名の指定
  ArgumentException
・指定したディレクトリに対して同名のファイルがある場合
  IOException

こんな感じかな?
おとといから.netを始めたばっかだから間違ってるかもしれないけど

201 :デフォルトの名無しさん:02/04/30 16:00
>>197
存在チェックなら、DirectoryInfoのExistsがあるのだからいいんじゃない?

202 :デフォルトの名無しさん:02/04/30 16:55
俺もIOExceptionやArgumentExceptionがスローされない
ドキュメントにも
既存のサブディレクトリがある場合は、このメソッドは何も実行しません。
とあるのでスローもしないのだと思うが
例外の欄に
IOException
path に指定された名前のファイルまたはディレクトリが既に存在しています

とある理由がわからない
ま、判定にはCreateSubdirectoryは使うなという事なのかもしれんが

ArgumentExceptionに関しては実際無効な名前でテストしてみると(/を入れてみた)
ディレクトリは作成されないがスローもされずに最後まで走る

おれもC#初心者なんだけどね
分けわからんですな
もう少しこの辺をいろいろ試してみる

203 :デフォルトの名無しさん:02/04/30 17:18
>>202
作ろうとしているサブディレクトリと同名のファイルが既に存在する場合は、
例外がスローされるね。

204 :デフォルトの名無しさん:02/04/30 17:29
>>203
だね これはこれで実際同ディレクトリ内に作成不可なので
スローされていいわけですな

ということはドキュメントの
path に指定された名前のファイルまたはディレクトリが既に存在しています
と言う部分はCreateSubdirectoryに関しては
path に指定された名前のファイルが既に存在しています
と解釈すればいいと言うことかな


205 :デフォルトの名無しさん:02/04/30 18:08
Directory.CreateDirectoryのほうのIOExceptionもスロー条件は同じ
しかしドキュメントは更に謎
path によって指定されたディレクトリが、読み取り専用であるか、空ではありません。
だってさ
ためしに指定するパスのディレクトリを存在させて読取専用属性をつけてみた
IOExceptionどころかどの例外もスローされずにコードが走りました
対象のディレクトリはそのまま

206 :デフォルトの名無しさん:02/04/30 18:09
分からないことがあったらsscliのソースを読むのが近道。

207 :デフォルトの名無しさん:02/04/30 18:16
System.IOならsscliに頼らずとも.NET Frameworkのソースがほぼ読めるという罠

208 :デフォルトの名無しさん:02/04/30 18:17
うむ ドキュメントおかしすぎ
C# または C++ の場合:

Directory::CreateDirectory("Public\\Html");


だってさ

209 :デフォルトの名無しさん:02/04/30 18:19
ドキュメントよりもソースを信じよう。

210 :デフォルトの名無しさん:02/04/30 18:20
原文もそうなのか、誤訳なのかどちらだろうね。

211 :デフォルトの名無しさん:02/04/30 18:21
原文。
http://msdn.microsoft.com/library/?url=/library/en-us/cpref/html/frlrfSystemIODirectoryInfoClassCreateSubdirectoryTopic.asp?frame=true

212 :デフォルトの名無しさん:02/04/30 18:23
A file or directory
原文もそのままっぽいね

213 :デフォルトの名無しさん:02/04/30 18:28
ドキュメントのフィードバックする人ってどれくらいいるのだろう

214 :デフォルトの名無しさん:02/04/30 18:31
In C# or C++:
Directory::CreateDirectory("Public\\Html");

こういう間違いって見てマジ萎える



215 :デフォルトの名無しさん:02/04/30 21:38
STLの<algorithm>みたいなのってありませんか?

216 :デフォルトの名無しさん:02/04/30 23:15
C#でメッセージループみたいな物を書くにはどうしたらいいですか?
ウインドウ開いてもすぐに終了しちゃうんですが

217 :デフォルトの名無しさん:02/04/30 23:16
>>216
激しくガイシュツだが。
[STAThread]
static void Main() {
Application.Run(new Form1());
}

218 :デフォルトの名無しさん:02/04/30 23:29
[assembly: 〜]
↑これ、何でしょうか?
.NET SDKのドキュメントのどのセクションを読めばいいのか教えてもらえませんか?
assemblyで検索するとVB.NETのドキュメントしか出てこないので・・・

219 :駆け出し初心者:02/05/01 00:36

>>202
気になったので試してみました
論点はズレてるかもしれんが...

using System;
using System.IO;
namespace test{
  class test{
    static void Main(string [] args)
    {
      DirectoryInfo testdir = new DirectoryInfo(".");
      try
      {
        testdir.CreateSubdirectory(args[0]);
      }
      catch(Exception e)
      {
        Console.WriteLine(e.ToString());
      }
    }
  }
}


上のソースをコンパイル後の名前をaとして

C:\>a A/   エラーにらずカレントディレクトリに"C:\A"ディレクトリが作成される。
C:\>a B/B  エラーにらずカレントディレクトリに"C:\B\B"ディレクトリが作成される。

結果を見てみるとUNIXのディレクトリ表記と同じにみえる
結論、.NETはUNIXも当然守備範囲に入れている?

同じく"\"も試してみたが同じ様にサブディレクトリが自動的に作成される。
考えようによっては、楽チンかも


220 :デフォルトの名無しさん:02/05/01 00:42
>>218
アセンブリに適用する属性。「属性」とかで引いてみるべし。

221 :デフォルトの名無しさん:02/05/01 00:53
>>220
ありがd調べてみます

222 :デフォルトの名無しさん:02/05/01 00:59
Math.Power(double a,double b)は
aのb乗ですが
5の1.5乗っていうのはどういう計算なんですか?


223 :デフォルトの名無しさん:02/05/01 01:08
>>222
ぁ?
非自然数の階乗の計算方法がわからないのか?

224 :デフォルトの名無しさん:02/05/01 01:16
また階乗かよ・・・(;´Д`)

225 :デフォルトの名無しさん:02/05/01 01:18
>>222
中学生からやり直せ

226 :デフォルトの名無しさん:02/05/01 01:18
それはC#以前の問題かと

227 :デフォルトの名無しさん:02/05/01 01:20
>>223
中学生からやり直せ

228 :デフォルトの名無しさん:02/05/01 01:20
∧∧  / ̄ ̄  
(*゚ー゚)< マターリシマショ。
UU  ̄ U U\__  

229 :デフォルトの名無しさん:02/05/01 01:24
>>227


230 :デフォルトの名無しさん:02/05/01 01:27
>>229
累乗

231 :202:02/05/01 01:29
>>219
ヒント有難う
というか俺がボケあがってますね
テストに/を使うのがバカでした
/が単純にディレクトリ名に使えないと思いついて試したんです、、、(恥
再度 < や > などで試すとちゃんと ArgumentException がスローされました
これでほぼ問題解決です


232 :デフォルトの名無しさん:02/05/01 01:32
教えて下シャア〜
C#のコンパイラは
C言語もできますか?

233 :デフォルトの名無しさん:02/05/01 01:39
>>232
何ですか〜?

234 :デフォルトの名無しさん:02/05/01 01:43
>>233
多分Visual C#のコンパイラでCのソースもコンパイルできるかどうか聞いているんだと思う。

235 :デフォルトの名無しさん:02/05/01 01:49
>>234
なるほど〜

>>232
できませんよ〜CとC#の関係はCとC++の関係とは違いま〜す
似てるようだけど〜全然別の言語だと思ってくださ〜い

236 :デフォルトの名無しさん:02/05/01 12:16
>>225,227
累乗も階上もならうの高校だぞ。

>>222
http://www.google.com/search?hl=ja&lr=lang_ja&q=指数関数

237 :デフォルトの名無しさん:02/05/01 16:58
Visual Studio.Netはアカデミックパックで大体いくらですか?

238 :デフォルトの名無しさん:02/05/01 17:02
知らん。

239 :237:02/05/01 17:09
自分で調べました。

240 :デフォルトの名無しさん:02/05/01 17:16
書く前に調べようね。

241 :237:02/05/01 17:35
自分で調べるんじゃ、質問する意味無いじゃん。

242 :デフォルトの名無しさん :02/05/01 17:36
人生って孤独だよな・・・

243 :デフォルトの名無しさん:02/05/01 17:38
少し調べれば分かるようなことを聞くな。

244 :デフォルトの名無しさん:02/05/01 17:52
http://www.geocities.co.jp/SiliconValley/3657/oshiete.html

245 :デフォルトの名無しさん:02/05/01 17:52
少し調べれば分かるかどうかが分からないから聞いてるのだ。

246 :デフォルトの名無しさん:02/05/01 18:04
まず少しは調べろよ。



247 :237=241:02/05/01 18:16
>>245
おまえ、誰だよ

248 :237=245:02/05/01 18:17
>>247
おまえこそ、誰だよ

249 :デフォルトの名無しさん:02/05/01 18:20
全然 C# の話題じゃねえな。


250 :デフォルトの名無しさん:02/05/01 19:02
>>237
今日、アカデミック買ってきてやったよ。
秋葉のソフマップ1号館では22800円だたよ。

251 :デフォルトの名無しさん:02/05/01 19:12
2マンちょっとだったら買える値段だけど、ハードウェアがなあ…;−;

252 :デフォルトの名無しさん:02/05/01 20:19
MSDNプロに入ったんだけど、各種ダウンロードできるOSって、
全部CDで送られてくるの?それとも自分でダウンロードしなくちゃ
いけないの?

253 :デフォルトの名無しさん:02/05/01 20:27
おくられてくるしおとせるしすれちがいだしいたちがいかもしれない

254 :デフォルトの名無しさん:02/05/01 20:31
ステータスバーに追加したパネルをバーの右端に表示したいのですが、
どのプロパティで設定したら良いのでしょうか?

255 :デフォルトの名無しさん:02/05/01 23:00
今月からプログラミング始めました。
一定時間ごとに指定した音声ファイルの音を鳴らすようなプログラムは
どう書けばいいのでしょうか?
タイマーコントロール?を使えばいいのでしょうか。使い方がよく分かりません。

256 :_:02/05/02 00:25
>255
やる気があるのでしたら、以下のサイトのサンプルを作ってみましょう
宇宙仮面のC#プログラミング
ttp://isweb41.infoseek.co.jp/computer/ukamen/

ほとんどVBサンプルをC#に移植したようなものですが、本当の初心者さん
でしたら、非常に良いかと。

257 :デフォルトの名無しさん:02/05/02 00:42
.NET環境で(COM Interopなしで)PDF出力するコンポーネント探してます。。。
有料でもおk。どなたかご存知ありませんでしょーか?

258 :デフォルトの名無しさん:02/05/02 00:48
ほんとに初心者ならGUIなんて無視してファイルのIOからはじめて見ては

259 :デフォルトの名無しさん:02/05/02 00:56
C#Magazineみたいのは出ないのかな。

260 :デフォルトの名無しさん:02/05/02 01:05
ヘッダーコントロールを使いたいのですが、やはりAPIを直接呼ばないと無理でしょうか?

261 :デフォルトの名無しさん:02/05/02 03:54
Windows FormsでHtmlを表示する方法ってないでしょうか?
MFCのChtmlView OR ChtmlEditViewのような感じの。


262 :デフォルトの名無しさん:02/05/02 09:37
>>255
いきなり欲張る奴はたいがい挫折する.

263 :デフォルトの名無しさん:02/05/02 10:04
>>262
それがプログラミング的に欲張っているのかどうかわかんないんだよ。
ユーザからみたこの仕様はぜんぜんショボイもん。

264 :デフォルトの名無しさん:02/05/02 10:08
タイマーコントロール使えばいいとわかってるのに
使い方がわからないというのは要勉強だね。

265 :デフォルトの名無しさん:02/05/02 10:10
>>257
使えるかどうか全く分からないけど、名前から推測するに
http://sourceforge.net/projects/pdflibrary/
あたりはどうだろう?

266 :デフォルトの名無しさん:02/05/02 10:25
>>263
じゃあ
>今月からプログラミング始めました。
なんて書くなよ(w

そんな奴が
>ユーザからみたこの仕様はぜんぜんショボイもん。
なんて議論できんのかよ(W

267 :デフォルトの名無しさん:02/05/02 10:39
>215
STL関連ってそりゃC#にはまだtemplateがないんだから無理でしょ
早くC#にtemplateが実装されないかなぁ
開発中らしいけど
俺自身はまだC#環境持ってないんだけど、Delphiの開発者と同じ
人だからおそらくListというクラスはあるんでしょ
Delphiの時はListクラス使いまくりだったけど、今のC#もそうなの
でしょうか?

268 :デフォルトの名無しさん:02/05/02 11:26
>>267
System.Collections ネームスペースにいろいろある。


269 :デフォルトの名無しさん:02/05/02 11:41
データ構造は一通り揃ってるからあまり困らないね。

270 :263:02/05/02 12:41
>>266
ワシは255じゃないよ。勘違いしないでね。

271 :デフォルトの名無しさん :02/05/02 12:54
C#のテンプレートは実行時に解決するような手段にしてほぢい

272 :デフォルトの名無しさん:02/05/02 15:29
実行時に解決するなら別にテンプレートじゃなくてもよくないかなぁ?

273 :257:02/05/02 15:44
>>265
ありがとう!いまダウソしたんで試してみます。


274 :デフォルトの名無しさん:02/05/02 16:21
COMにアクセスするにはどうしたらいいんでしょうか?

275 :デフォルトの名無しさん:02/05/02 16:33
>>274
tlbimp.exeでラッパークラスを作る。

276 :デフォルトの名無しさん:02/05/02 16:51
実行時に解決するならどうせ型安全じゃないからテンプレートの意味無いよね。
テンプレートを実行時に解決する、のが具体的にどういう事かわからんけど。

277 :デフォルトの名無しさん:02/05/02 17:02
なんか初代スレの話題をぶり返してるような・・・。

278 :デフォルトの名無しさん:02/05/02 17:21
ms-help://MS.NETFrameworkSDK.JA/vcmxspec/html/vcmg_AccessingCOMObjectsfromtheRuntime.htm

279 :デフォルトの名無しさん:02/05/02 22:33
システムメニューをカスタマイズしたいんですが、
どうすりゃいいんでしょう。

280 :デフォルトの名無しさん:02/05/02 22:55
>>271
http://research.microsoft.com/projects/clrgen/generics.pdf
↑によると、C#のテンプレートは実行時に解決するみたいよ。

>>272
キャスト演算の手間とかが減って、効率あがるし、バグも減る。


281 :デフォルトの名無しさん:02/05/02 23:17
//どう間違ってるのでしょうか。悩んでます、教えてください。
public struct Hoge{
 public int X;
 public int Y;
}
class Foo{
 Hoge[] m_points = null;
 public Foo(){}
 public void init(){m_points = new Hoge[10];}
 public void func(){
  foreach(Hoge ip in m_points){
   ip.X=0;//ここエラー
  }
 }
}
//: 代入式の左辺には変数、プロパティ、またはインデクサを指定しください。


282 :デフォルトの名無しさん:02/05/02 23:19
initを呼んでいないに100万ペニシリン

283 :デフォルトの名無しさん:02/05/02 23:22
いや、コンパイルが通りません。

284 :デフォルトの名無しさん:02/05/02 23:23
つーか、なんでコンストラクタで初期化しないわけ?

ところで100万ペニシリンって何ユーロ?

285 :デフォルトの名無しさん:02/05/02 23:26
あぁ、
Hogeがstructジャン。

286 :デフォルトの名無しさん:02/05/02 23:26
うぇーん
C#からDirectDraw使いたいけどわからないよー


287 :281:02/05/02 23:37
ああいう場合はforeach使えないんですね。了解しました。

288 :デフォルトの名無しさん:02/05/02 23:37
>>281
structで引数なしコンストラクタは無理よ。

289 :288:02/05/02 23:39
おおっと、関係なかったか。スマソ

290 :デフォルトの名無しさん:02/05/03 00:36
>>281
init()を↓にしてみたら?
 public void init()
 {
  m_points = new Hoge[10];
  for(int i=0; i<m_points.Length; i++)
  {
   m_points[i] = new Hoge();
  }
 }

291 :デフォルトの名無しさん:02/05/03 01:00
スタンダード版で作成できないクラスライブラリってなんのことをさしているのでしょうか。
自前のクラスは作成できるんですよね?
DLLなどがつくれないということでしょうか?
お恥ずかしい質問ですが、よろしくお願いいたします。

292 :デフォルトの名無しさん:02/05/03 02:04
>>291
VS.NET Pro版の場合
新しいプロジェクト - Visual C# プロジェクト に出てくるテンプレートは
・Windows アプリケーション
・クラス ライブラリ
・Windows コントロール ライブラリ
・ASP.NET Web アプリケーション
・ASP.NET Web サービス
・Web コントロール ライブラリ
・コンソール アプリケーション
・Windows サービス
・空のプロジェクト
・空の Web プロジェクト
・既存フォルダ内の新しいプロジェクト
ですけど、他の版ではどうなんでしょう

293 :デフォルトの名無しさん:02/05/03 02:13
ちなみに
・クラス ライブラリ
で作成されるのは「シングルファイル アセンブリ」で
.NETのDLLが作成されます

294 :デフォルトの名無しさん:02/05/03 02:43
>潜入 女子更衣室「女子更衣室にカメラを仕掛け盗撮。オッパイや下着、オxxコまではっきり見える」
よくあるAVの広告のコピーだろうが
これって、どうやってオxxコが見えるのか知りたい。

それとは別にC#に将来はあると思いますか?

295 :デフォルトの名無しさん:02/05/03 05:22
>>291
VS.NET Standard版の場合
新しいプロジェクト - Visual C# プロジェクト に出てくるテンプレートは
・Windows アプリケーション
・ASP.NET アプリケーション
・ASP.NET Webサービス
・コンソールアプリケーション
の4つかな。
うちのWin2000にはIISが入ってないので、本当は他にもあるのかも。


296 :デフォルトの名無しさん:02/05/03 07:37
クラスライブラリ作成のテンプレートって、一体どんなものなんでしょうか?
ただ普通にクラスを作ってDLLにするのとは違うものがあるんですか?

297 :VB厨:02/05/03 13:16
こんにちわVB厨ですが、C#かVB.NETかで迷っています。
VBマガジンでは、VB.NETを記事にしていますが、
どっちが優れているのでしょうか?
私が知る範囲では書き方が違うだけなのですが、
それなら2種類も言語を用意する意味が無いと思うのです。
そんなの混乱するだけです。
.NET FrameworkやVB.NETの文法はVB6とは全く別物で
C#にVB6のへんちくりんな「ぬいぐるみ」を着せているようで
気持ち悪いのです。
話は脱線しましたが、マジでどっちを選べばこの先、楽が出来るのでしょうか?

298 :デフォルトの名無しさん:02/05/03 13:21
とりあえずC#の方が楽なことは確かでしょう。

299 :VB厨:02/05/03 13:24
>>298
お返事有り難うございます。
なぜC#の方が楽なのでしょうか?
私は、制御のCとASMならやったことがあります。

300 :デフォルトの名無しさん:02/05/03 13:38
言語仕様としてはC#の方が評価が高く、MSの扱いもC#の方が上だと思うからです。
覚える為の労力はC#もVB.NETもあまり変わらないと思いますし、後々楽ではないかと。

301 :デフォルトの名無しさん:02/05/03 13:56
ゼロから物作りするならC#でしょう。
CLIを前提に作ってるから素直な仕様だし。

でも仕事でVB資産を持ってるなら、VB.NETもやらざるを得ないでしょう。
といっても、C#を覚えとけば簡単に併用できると思うけど。

302 :デフォルトの名無しさん:02/05/03 14:05
>299
> それなら2種類も言語を用意する意味が無いと思うのです。
.NETが今後普及し、定着していくと、マイクロソフトもそう考えるかも知れません。
そうすると立場が不利なのはVB.NETの方だと考えられます。

C#を身につけておけば、いざという時、Java等他のオブジェクト指向型言語に移ることも
比較的簡単にできると思います。

どちらをやるにしても、VB6からだとOOPの概念は覚えないといけないので、
どうせならバッサリC#に移行するのもアリだと思います。

303 :デフォルトの名無しさん:02/05/03 16:24
>>297
Microsoftは複数の言語に対応できると言ってるが実質は
他の言語を C#化してるだけのような気がするよ。

C#・JavaScript.NET・VB.NETの言語仕様見てみたけどそんな感じしないか?
おそらく、Perl.NETがでても似たようになるんじゃないか思えるほど。

304 :デフォルトの名無しさん:02/05/03 16:46
そんなもんだろ。
好みの言語の構文で同じ機能を実現するだけ。
そのうち、C#->VB.NETトランスレータとかも出てくるんじゃないのか?

305 :デフォルトの名無しさん:02/05/03 17:44
>>304
VB.NETの逆コンパイラ作ればいいだけじゃん。
どうすればどの言語からもVB.NETソースに変換できる。

306 :デフォルトの名無しさん:02/05/03 17:50
最適化されている可能性もあるから逆コンパイラは不可能

307 :デフォルトの名無しさん:02/05/03 20:46
すみません、2つ質問させてください。
・textboxに入力した数値を演算するにはどのようにしたらいいのでしょう。
int ans;
ans = this.textbox1.text * 2;
にすると型が違うというメッセージが表示させて演算できません。

・もう一つですが、Communicationコントロールについてですが、
例えば、16進数の「81」を出力するにはどのようにすればいいのでしょう。
this.axMscomm1.output = 0x81;
ではエラーになっていまいます。

どなたか教えて頂けませんでしょうか。お願いします。

308 :_:02/05/03 22:21
>307
サンプルソースなどに、以下のような記述を見たことはありませんか?
int intTest;
intTest = (int)this.txtNumber.text;
"型変換"、"キャスト"などで検索をしてみる事をオススメします。

309 :デフォルトの名無しさん:02/05/03 22:29
text->int変換が標準で出来るのか?

310 :デフォルトの名無しさん:02/05/03 22:40
VB.NETだと思いっきりできるな。怖・・・。

311 :デフォルトの名無しさん:02/05/03 23:42
Int.fromString()みたいなのが勝手に呼ばれてると思えば・・・
でもキモいねえ

312 :デフォルトの名無しさん:02/05/04 00:01
>>308
その方法で型変換してコンパイルすると
"型stringを型intに変換できません" となってエラーとなります。
私も型変換だと思ってその方法を試しましたが、ダメでした。
どうしてでしょう。

313 :デフォルトの名無しさん:02/05/04 00:06
うむ、安心したぞよ

314 :デフォルトの名無しさん:02/05/04 00:07
>>312
>>311がヒントになっております

315 :デフォルトの名無しさん:02/05/04 00:29
>>308,311,314
Convertクラスを使ってできました。ありがとうございました。



316 :308:02/05/04 00:29
>310
そうなんですよね、VB.NETでできちゃうからC#でもできると思ってました。鬱。

>314
こんな感じ?間違ってましたらツッコミお願いします。
public int SFStoI(string value) {
try {
int i = int.FromString(value);
return (i);
} catch {
return (0);
}
}
あ、これだと"0"を渡すと意味不明だ(w

317 :デフォルトの名無しさん:02/05/04 00:30
RichTextBox(かTextBox)で指定した行の文字列を得るにはどうしたらいいですか?

318 :manko chinko:02/05/04 00:36
最強のmankoプログラムを組んでみました

class Manko{static void Main(){System.Console.WriteLine("manko daisuki");}}

319 :デフォルトの名無しさん:02/05/04 00:45
それが?

320 :317:02/05/04 00:48
string s = rtBox.Lines[行]
で解決しました。。。鬱

321 :119:02/05/04 01:27
>>318
↓これでも見て、いいかげんに目を覚ませ
http://www.freepornpage.com/kkoo8va/58.jpg

322 :デフォルトの名無しさん:02/05/04 01:37
>>321 119は間違い・・・スマソ

323 :デフォルトの名無しさん:02/05/04 01:45
たびたびすみません。
こちらのほうもご存じの方教えてください。

Communicationコントロールについてですが、
例えば、16進数の「81」を出力するにはどのようにすればいいのでしょう。
this.axMscomm1.output = 0x81;
ではエラーになっていまいます。



324 :デフォルトの名無しさん:02/05/04 03:10
>>323
ms-help://MS.VSCC/MS.MSDNVS.1041/jpkbvb/vb/J0417_98.htm
ちょっと古いけど、まぁなんとかなるだろ。

#ここはC#スレだし、VB.NETの話は他でやったら?

325 :デフォルトの名無しさん:02/05/04 03:33
323じゃないけど
>#ここはC#スレだし、VB.NETの話は他でやったら?
???C#でもaxMSCommは使えるんじゃないかと思うけど

それよりもせっかくの.NETでActiveXを使うというのが良く分からない
ActiveXを使いたいのなら旧VSの方が自然なのではなかろうか

326 :デフォルトの名無しさん:02/05/04 03:36
漏れの環境ではmscomm32.ocxが見つからない。VS.NETフルインストなのに。
本気でCOMをあぼーんする気だな。

327 :デフォルトの名無しさん:02/05/04 11:59
>>325
axMSCommは置いておいても、まだ使いたいコンポーネントもあるな。

328 :デフォルトの名無しさん:02/05/04 12:47
正直、OCXなんて使いたくないけど・・・・・・・・・。
なんでわざわざ。

329 :デフォルトの名無しさん:02/05/04 13:38
323じゃないけどC#とかVB.NETで
RS232Cシリアル通信のプログラム作る時って何を使うの?

330 :デフォルトの名無しさん:02/05/04 13:44
API

331 :デフォルトの名無しさん:02/05/04 14:01
>>330
じゃあ、msCommよりも難しくなったっんだね。
msCommは使い方楽だったげと・・・

332 :デフォルトの名無しさん:02/05/04 14:16
難しくなったというか枠組みは用意されてるのだから・・・。
Streamから継承すればすぐじゃん・・・。
そうすれば使い勝手はmsCommより格段に良くなると思う。

333 :デフォルトの名無しさん:02/05/04 19:26
Formの裏で別のスレッドがあって、そのスレッドから非同期デリゲートで
新しいフォームを表示しています。コードは下みたいな感じです。

//ShowForm()で新しいフォーム表示。
ShowFormDelegate showFormDelegate = new ShowFormDelegate( ShowForm );
AsyncCallback cb = new AsyncCallback(CallBack);//CallBack(){}
IAsyncResult ar = showFormDelegate.BeginInvoke( cb ,null);

このままだとDragDropの登録ができないんで
[STAThread]属性をデリゲートの呼び出し先とかにつけてみたんだけど
うまくいきません。どうしたらいいでしょう?

334 :デフォルトの名無しさん:02/05/04 19:52
>>333
Main()にSTAThreadはつけてないの?

335 :デフォルトの名無しさん:02/05/04 19:55
>>334 ありがとうございます。もちろんつけています。

336 :デフォルトの名無しさん:02/05/04 19:58
>>335
ならば別スレッドもSTAになってない?
Thread.ApartmentStateでも調べてみて。

337 :デフォルトの名無しさん:02/05/04 20:10
>>336 MTAのようです。

338 :デフォルトの名無しさん:02/05/04 20:16
Apartmentは一度セットされたら変更不可能・・・

339 :デフォルトの名無しさん:02/05/04 20:19
>>337
MTAか。不思議だ・・・。Unknownならまだ分かるけど。

340 :デフォルトの名無しさん:02/05/04 20:42
>>339 調べてみましたが、
スレッド開始時にはSTAに変更できますが、
変更してもデリゲートで呼ばれたShowForm()内では
MTAになってしまい変更もできないようです。


341 :デフォルトの名無しさん:02/05/04 20:53
>>333
メインフォームのUIスレッドがあって、その裏にワーカースレッドがあって、
そのワーカースレッドから新たにUIスレッドを立てようとしてるの?
なぜそんなことをしようとしてるのかよくわからん。
もっと詳細な情報があれば解決策なり代替案なり出るかもしれん。

342 :デフォルトの名無しさん:02/05/04 21:11
というか、MTA上にフォーム作ってることには誰も突っ込まんのか・・・。

343 :デフォルトの名無しさん:02/05/04 21:19
>>341 そのとおりです。ワーカースレッドはループを回してネットから
パケットを受け取り、あるパケットがきた時にダイアログや操作フォーム
を開くようにしています。
その場合、非同期デリゲートを使わないと、フォームを閉じるまでワーカースレッド
はShowDialog()した時点でとまった状態になります。
なので非同期デリゲートを使い対処していました。
今回は操作するフォームにドラッグドロップ操作を加えたかったのですが
STAスレッドでないため、例外を吐きフォームを開くことができなっかので
質問させていただきました。
ネットワークプログラミングは初めなものでとんでもないことしてるのかも
しれまん、、、

344 :デフォルトの名無しさん:02/05/04 21:37
>>343
ワーカースレッドから作るウィンドウはメインフォームの子ということでいいの?
それだったら、子ウィンドウを表示するメソッドをメインフォームクラスに書いて、
ワーカースレッドからForm.BeginInvokeでそのメソッドを呼び出せばいいと思われ。

345 :デフォルトの名無しさん:02/05/04 21:40
>>344 そうしているところもあるのですが、そうしたくない部分を
非同期デリゲートにしています。
ご指摘どおり、control.BeginInvoke()を使った方がいいのかもしれません。

346 :デフォルトの名無しさん:02/05/04 22:01
ワーカスレッドがUIを直にいじるのはよくないと思う...

347 :333:02/05/04 22:37
素直にform.BeginInvoke()で実装したらうまくいきました。
数々のアドバイスありがとうございました。

348 :デフォルトの名無しさん:02/05/05 22:29
VSのマクロとか、C#でも書けるかと思ったが、
結局VB.NETで書くのか……
(期待しすぎ?)

349 :デフォルトの名無しさん:02/05/06 00:05
>>348
そそ、そのへんちょっと不満。
やはり、Office.NETとかで、
VBA.NETって具合になるのだろうか?

350 :デフォルトの名無しさん:02/05/06 00:09
>>348
C#だとレイトバインドとかパラメータ省略ができないから、
マクロ書くにはちょっとめんどいでしょ。

351 :デフォルトの名無しさん:02/05/06 00:24
超初心者質問なんですが、C#で cout みたいな簡単に入出力できる方法ってないんでしょうか?
Console.Write って書くのにちょっと疲れ気味・・・


352 :デフォルトの名無しさん:02/05/06 00:31
>>351
文法的には遙かにそっちの方が気持ちいいけどね・・・。
関数ポインタ作ってConsole.Write放り込む。

353 :デフォルトの名無しさん:02/05/06 00:42
>>351

using System.Runtime.InteropServices;

class Hello
{
  public static void Main() {
    printf("Hello World!!\n");
  }

  [DllImport("msvcrt.dll")]
  public static extern int printf(string s1);
}

354 :デフォルトの名無しさん:02/05/06 01:13
>>353
それやるくらいだったら↓でいいと思われ。

class Hello
{
  public static void Main() {
    printf("Hello World!!\n");
  }

  public static extern int printf(string format, params object[] args)
{
Console.Write(format, args);
}

  public static extern int puts(object obj)
{
Console.Write(obj);
}
}


355 :デフォルトの名無しさん:02/05/06 01:36
>>351
>Console.Write って書くのにちょっと疲れ気味・・・
どういうのを書きたいのか、知りたいですけど

完備とはいえないかもしれないけど
Console.Writeでもある程度のフォーマットは可能だから
({0:C}とか{0:D9}とか{0:F3}とか{0:X}とか)
今後のことも考えればこちらに慣れておくのが最善かと・・・

356 :デフォルトの名無しさん:02/05/06 03:07
std版ではクラスライブラリが作成できないみたいですが、
コマンドラインから csc /t:library でDLLを直接つくってやれば問題ない気がするのですが・・・?

357 :デフォルトの名無しさん:02/05/06 03:59
データの保存(MFCでいうところのWriteProfileInt()みたいなの)ってどうやるのかしらん?

358 :デフォルトの名無しさん:02/05/06 04:07
>>357
Microsoft.Win32.Registry

359 :デフォ名無し:02/05/06 04:15
C#の標準にはGUIが含まれてないってほんとですか?

360 :デフォルトの名無しさん:02/05/06 06:41
>>356 >>359

その通り。当たり前。

361 :359:02/05/06 06:56
当たり前?
JavaはGUIも、あまつさえWebアプリケーションの標準化もこころみてたというのに?

362 :359:02/05/06 06:57
ということはFreeBSD版のC#ではウィンドウは表示できないですか?

363 :デフォルトの名無しさん:02/05/06 07:33
言語自体の標準でGUIが関係あるのかと、小一時間、、

364 :デフォルトの名無しさん:02/05/06 07:45
std版はウィザードがついてないだけと思います。

365 :デフォルトの名無しさん:02/05/06 07:54
ファイル名から、
・拡張子だけを取得する
・拡張子以外を取得する
といった関数はありませんでしょうか?

366 :デフォルトの名無しさん:02/05/06 08:19
>>365 PathかFileInfoあたりにあったとおもう。System.IOみてみ。
これから外出だからヘルプで確認してない。違ってたらゴメン。

367 :デフォルトの名無しさん:02/05/06 08:29
>>366
ありがとん。System.IO.Pathにありますた。
System.IO.FileHogeHogeばかり見てますた。

・拡張子だけを取得する -> GetExtention(string);
・拡張子以外を取得する -> GetFileNameWithoutExtention(string);

368 :367:02/05/06 08:31
>Extention×
Extension

369 :デフォルトの名無しさん:02/05/06 09:43
INIファイルの代わりとしてXMLファイルを使おうとしてます。

まず、サンプルから適当に抜いてXMLを作成してみました。
XmlTextWriter myXmlTextWriter = new XmlTextWriter ("SaveData.xml", null);

myXmlTextWriter.Formatting = Formatting.Indented;
myXmlTextWriter.WriteStartDocument(false);
myXmlTextWriter.WriteStartElement("ApplicationData");
  myXmlTextWriter.WriteStartElement("Position", null);
    myXmlTextWriter.WriteElementString("x", "10");
    myXmlTextWriter.WriteElementString("y", "10");
  myXmlTextWriter.WriteEndElement();
myXmlTextWriter.WriteEndElement();
myXmlTextWriter.Flush();
myXmlTextWriter.Close();

作成されたファイルはこんな感じ。
<?xml version="1.0" standalone="no"?>
<ApplicationData>
 <Position>
  <x>10</x>
  <y>10</y>
 </Position>
</ApplicationData>

これでxとyの値を、xml回りのクラスを使って読むにはどうしたらいいのでしょうか?

#過去スレにsampleがあった気がするのですけど、dat落ちしてて調べられない。

370 :デフォルトの名無しさん:02/05/06 09:54
INIファイルのように使うには次のようなXMLファイルを作る。

<?xml version="1.0" encoding="shift_jis"?>
<configuration>
<appSettings>
<add key="x" value="aaa" />
<add key="y" value="bbb" />
</appSettings>
</configuration>

そしたら、System.Configuration.ConfigurationSettings.AppSettingsで簡単に読めるよ。

371 :デフォルトの名無しさん:02/05/06 09:58
>>365
しかし、そんなもんファイル名が分かっているのなら自分で簡単に書けそうだが。
ファイル名の末尾から.までだろ?

372 :デフォルトの名無しさん:02/05/06 10:01
>>370
AppSettingsは読めても書けないらしいんだけど、なんでぇ??

373 :デフォルトの名無しさん:02/05/06 10:07
>>370
ありがとうございます。今からやってみます。

374 ::02/05/06 10:13
ブラクラ張ってください!
願いします!!

375 :デフォルトの名無しさん:02/05/06 10:14
http://www.ruby-lang.org/

376 :370:02/05/06 10:16
>>372
AppSettingsはなぜか書き換えできないんで、保存するときはXMLファイル開いて処理してます。
書き換えできりゃ楽なんだけどね。

377 :デフォルトの名無しさん:02/05/06 10:21
>>374
http://java.sun.com/

378 :デフォルトの名無しさん:02/05/06 10:25
二番煎じは詰まらん

379 :デフォルトの名無しさん:02/05/06 10:31
>>378
変なプログラムを「インストールしますか?」って聞いてくる分たちが悪い。

380 :デフォルトの名無しさん:02/05/06 10:44
>>369 前すれPart2の258辺りが参考になると思われ。
しかし、最近#さんみないね。


381 :名無しさん♯:02/05/06 11:38
>>380
いるよー。ヽ(´ー`)ノ

っていうか、最近はほとんど名無しカキコ。
コテハンは主にスレ立て屋で使おうかと。

寺利編むのAPI Doc作ったり、他スレでもいろいろやってます。

382 :デフォルトの名無しさん:02/05/06 11:58
>>381 お、おられましたかヽ(´ー`)ノ  口調変えてるのね。
いるのかわからなかったよ。涙ぐましい(笑 ちと安心。
>>380 まだhtml化してないみたいだね。
ソース置き場にハリコしたほうがええかな。
 

383 :367:02/05/06 12:13
>>371
実際、レスが帰ってくるまでに書いたよ。
でも既存の関数があればそれを使うだけ。

384 :367:02/05/06 12:14
関数あるのはわかってたからね

385 :369:02/05/06 12:20
>ソース置き場にハリコしたほうがええかな。
できたら、お願いできませんか(^^;
あさってなコードを書いてるっぽいです(鬱

386 :デフォルトの名無しさん:02/05/06 12:30
>>385 貼りました。#さんのサンプルです。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=40



387 :369:02/05/06 12:51
>>386 & #さん
ありがとうございます〜。これ元にコード書き直しに逝ってきます。

388 :名無しさん♯:02/05/06 14:06

うえーん、>>386は今見るとすごく恥ずかしいよー
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ∧_∧
          ( ´Д⊂ヽ
          ⊂    ノ
           人  Y
          し (_)


今ならこんな風にやるかも。ちょっと遅くなるけど。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=41

389 :デフォルトの名無しさん:02/05/06 14:13
>>388 シリアライズ使うのか〜。
なるほどパブリックなプロパティ用意すればよかったんだ。
ああこっちの方が全然簡単でいいね。
全然思いつかなんだ。こんなの。さすが。

390 :デフォルトの名無しさん:02/05/06 14:24
>>381
ドキュメント作った人の正体は#さんだったんだ。ありがとー。

391 :369:02/05/06 15:30
できました〜。ちゃんとXMLで読み書きできました。ワーイ
XmlSerializer使った方がswitch文の煩雑さが無くてウットリ

392 :デフォルトの名無しさん:02/05/06 16:58
これってpublicなプロパティを勝手に探してget/putしてくれるってこと?
すげえなこりゃ。java beansもビックリだ。

393 :デフォルトの名無しさん:02/05/06 17:16
>>392
javaでもできるっつの。

394 :デフォルトの名無しさん:02/05/06 17:41
class >>393 {
 private 糞 糞;
 public 糞 get_糞() {
  return 糞;
 }
 public void put_糞 (糞 糞) {
  this.糞 = 糞
 }
}

なんて美しいんだ

395 :デフォルトの名無しさん:02/05/06 18:22
>>394
あのー、リフレクションの話なんですが。。。プロパティの構文の話ではありませんよ。。。

396 :デフォルトの名無しさん:02/05/06 18:30
>>394 そのコードだとスタックオーバーフローするぞ(ワラ

397 :デフォルトの名無しさん:02/05/06 18:39
>>394
putじゃねえ。setだ。
あと、いらんアンダーバーつけんな。

398 :デフォルトの名無しさん:02/05/06 18:42
3匹釣れたところでオシマイにします。ありがとうございました。

399 :デフォルトの名無しさん:02/05/06 19:14
ナイス負け惜しみ。(w

400 :デフォルトの名無しさん:02/05/07 00:37
Study: Microsoft's C# gaining ground
http://zdnet.com.com/2100-1104-899493.html

401 :デフォルトの名無しさん:02/05/07 11:43
お馬鹿な質問で恐縮ですが…
SharpDevelopで適当にFormsにパーツをくっつけてたんですけど、
Frame
MainMenu
ToolBar(DockはTop)
StatusBar(DockはBottom)
Panel(DockはFill)
GroupBox(DockはLeft)
GroupBox(DockはFill)
Splitter(両方のGroupBoxを結合)
としたんですけど、どのGroupBoxにTextBoxを貼り付けても
ToolBarの下に潜り込んで正しく表示されません(TextBoxの
上が削れてる)。
toolbar(Top)
panel(Fill)
StatusBar(Bottom)
Panel(Fill)
GroupBox(Left)
GroupBox(Fill)
Splitter(両方のGroupBoxを結合)
とやっても結果は同じでした。どうしてでしょうか?

(大人しくVisualC# Standard買ってこようかな……)


402 :デフォルトの名無しさん:02/05/07 11:45
あぁぁぁ。御免なさい。Tabのままでした……。書き直しです。

Frame
  MainMenu
  ToolBar(DockはTop)
  StatusBar(DockはBottom)
  Panel(DockはFill)
    GroupBox(DockはLeft)
    GroupBox(DockはFill)
    Splitter(両方のGroupBoxを結合)
としたんですけど、どのGroupBoxにTextBoxを貼り付けても
ToolBarの下に潜り込んで正しく表示されません(TextBoxの
上が削れてる)。
  toolbar(Top)
  panel(Fill)
    StatusBar(Bottom)
    Panel(Fill)
      GroupBox(Left)
      GroupBox(Fill)
      Splitter(両方のGroupBoxを結合)
とやっても結果は同じでした。どうしてでしょうか?


403 :デフォルトの名無しさん:02/05/07 11:46
>>401
なんでFillが2つもあるの?

404 :403:02/05/07 11:47
>>402
了解。

405 :403:02/05/07 11:56
>>401
VS.NETでは問題ないけど・・・。
ソース載せた方が早いかも。

406 :デフォルトの名無しさん:02/05/07 12:22
>>402
Control.BringToFront();
Control.SendToBack();

407 :406:02/05/07 12:27
>>406 書き忘れた、コントロール追加する順番変えてみてもできる。
プロパティで直にいじれたかは忘れた。

408 :デフォルトの名無しさん:02/05/07 12:37
charles petzoldのC#の本を読んだ人はいますかー?
【Programming Windows(r) with C#】
http://www.amazon.com/exec/obidos/ASIN/0735613702/

C#の本を何か一冊欲しいのだけどこれはどんなもんでしょ

409 :デフォルトの名無しさん:02/05/07 12:42
どの程度削ればいいかわからなかったんで、鯖たてました。
http://218.227.169.154

ちょっと追加する順番いじってみます。

410 :デフォルトの名無しさん:02/05/07 12:54
あぁぁぁ。出来ました。
DockStyleで、TopやBottomなど「Fill以外のもの」より、まず
Fillのものを作れば良いということでしょうかね?そのようにやれば
出来たようです。

BringToFront()やSendToBack()等では何も変わりませんでした(涙)。

お騒がせしました(−−;

411 :デフォルトの名無しさん:02/05/07 13:08
>>409
なんか面白そうなもの作ってるね。
完成したら公開して。

412 :デフォルトの名無しさん:02/05/07 13:12
スレ違いだったらすみません。
Cって、0から勉強して、一通り覚えられるまでどのくらいかかりますか?

413 :デフォルトの名無しさん:02/05/07 13:14
>>412
プログラミング初心者かそうでないかによる。

414 :デフォルトの名無しさん:02/05/07 13:14
>>412
C#じゃなくて?

415 :デフォルトの名無しさん:02/05/07 13:20
作ろうとしてたのは、情報整理ソフトみたいなものです。
構造はXMLで組み上げて、それぞれのNodeには情報
へのリンクだけ。情報そのものには任意の個数のタイトル、
テキスト、リンクなどをたたき込めるようにしようと。
IEと連携できたら、結構おもしろいブラウザになるかも(
ネット上へのリンクと、ローカルに*.mhtで保存してる
ファイルへのリンクを同じ情報に置いたり、あるお気に入りの
親を複数持たせたり…)とか、創作物の構想練るとき
とかに使えるかなと。
(いままでネットで見かけた情報でも、簡単に頭から
すり抜けたりしてるもので…)

その前段階として、とりあえずXMLエディタでも作って
みようとしてたところでした。できたら公開します。
(元ヘタレC++Builder使いでしたが、UNICODEの扱いが面倒
だったのでC#に移行中です。)

416 :デフォルトの名無しさん:02/05/07 13:22
>>413
VBをほんの少しだけ、したことがある程度です。
>>414
すみません。C#です。

417 :デフォルトの名無しさん:02/05/07 13:22
.NET製の公開アプリが増えることは喜ばしいことだ。

418 :デフォルトの名無しさん:02/05/07 13:32
みんながんばれ!

419 :デフォルトの名無しさん:02/05/07 14:17
クラスライブラリだけじゃタイトルバーを消すのは無理かな?

420 :デフォルトの名無しさん:02/05/07 14:26
>>419 タイトルバーが何なのか分からんが
Formのタイトルバーのことだとしたら、
Form.FormBorderStyle FormBorderStyle.Noneにすればいい。

421 :デフォルトの名無しさん:02/05/07 14:28
>>420 訂正
Form.FormBorderStyle = FormBorderStyle.None;

422 :デフォルトの名無しさん:02/05/07 14:47
>>420
ありがとう。
おれいにあなたのことを考えながらオナニします!

ちなにみどのタイミングでFormの表示を変更するのが
正しいのでしょうか?OnPaint内だと再びここに入って
来てしまいます。GUIプログラミングは正直なところ
初めてなのでよく分かってません。

423 :デフォルトの名無しさん:02/05/07 16:09
>>420
すみません。勘違いしてました。

protected override void OnPaint(PaintEventArgs e) {
  Graphics g = e.Graphics;

とGraphicsオブジェクトを取得するしかないと思ってました。
単純にstaticなGraphics.FromXXXメソッドで取得できるんですね。
どうもすみません。

424 :デフォルトの名無しさん:02/05/07 18:41
>>423
GDI+のドキュメント読む方が分りやすいよ

425 :デフォルトの名無しさん:02/05/07 20:58
C#には標準でINIファイルを扱うクラスは無いのでしょうか?
ヘルプやネット検索した限りでは無いようなので、正規表現で
INIファイルに検索かけて扱うのでしょうか?

426 :デフォルトの名無しさん:02/05/07 21:10
INIファイル自体、Win32APIに依存したアプリぐらいしか使わないから
APIをそのまま使うのがいいんでないの?

427 :デフォルトの名無しさん:02/05/07 21:21
>>426
.NETのLinuxへの移植作業も行われてることですし…。

428 :デフォルトの名無しさん:02/05/07 21:35
>>427 LinuxでINIファイル使う気なの?ふつう.confでないかい?
.NET的にはXMLで設定保存がいいと思うんだけどね。

429 :デフォルトの名無しさん:02/05/07 21:52
>>428
単純な定義さえできたらいいので、INIで良いかなと。Linuxなら
INIファイルは避けるべきだという理由も思いつきませんし。
けど、このスレの方が作ったXML形式のサンプルもありましたし、
そっちでやってみようかなと思います。


430 :デフォルトの名無しさん:02/05/08 00:14
#さんのソースですけど、「as演算子」なんてのがあったんですね。
初めて知りました。
Configuration config = serializer.Deserialize(reader) as Configuration;
一瞬、頭の中がVB.NETになったけど、キャストしてるんだ。奥が深い。


431 :デフォルトの名無しさん:02/05/08 00:17
>>430
Delでもそうなので、珍しくないというか
あ、荒らしじゃないので・・・どぞよろしく

432 :デフォルトの名無しさん:02/05/08 00:20
>>430
キャスト → 失敗すると例外が飛ぶ
as演算子 → 失敗すると null が返ってくる

微妙に違うよ。

433 :デフォルトの名無しさん:02/05/08 00:25
const int a = 0;



static readonly int a = 0;

ってどう違うんですか?機能的に。

434 :デフォルトの名無しさん:02/05/08 00:32
>>433
初期化できる場所。

435 :デフォルトの名無しさん:02/05/08 00:33
>>434
いや、どっちもクラス変数になれるでしょ?

436 :430:02/05/08 00:34
>>431,432
確かに、ただキャストするのとは違いますね。
でも、VBが嫌いなので、asは抵抗あるなあ(笑)

ところで、皆さんの赤本、黄色本の評価はいかがでしょうか。
赤本の下巻は値段が高くて、目玉が飛び出る思いをしたけど、
下巻に限っては、赤本はなかなかいいですよね。

437 :デフォルトの名無しさん:02/05/08 00:35
いっしょじゃね?
詳しくはワカンネ。

438 :デフォルトの名無しさん:02/05/08 00:36
>>433
ええと・・・
constで指定された値はコンパイル時に解決され
staticでreadonlyなフィールドは実行時に解決されます

439 :デフォルトの名無しさん:02/05/08 00:42
>>436
赤本、黄色本ですか・・・
黄色本って「標準 C#.NET プログラミング」?

まだ1の方しか完全に読んではいないのですが
1の最後の「7章」は間違い探しを楽しめました(w
全体的には分かりやすかったですよ

440 :デフォルトの名無しさん:02/05/08 00:52
CD?

441 :デフォルトの名無しさん:02/05/08 01:45
C#はじめて2週間、だいぶ覚えて来たぞ〜
とこれで、だれか .NET Framework のリファレンスにできるような本紹介してくれませんか?
オンラインヘルプは目がちかちかしてきます。


442 :デフォルトの名無しさん:02/05/08 01:47
全ページ印刷しる!

443 :朝までC#:02/05/08 02:16
デリゲートには、System.EventHandlerとかが使われていますが、
実装したいメソッドのポインタを呼び出し元のイベントに定義するのに、
System.Windows.Forms.ToolBarButtonClickEventHandlerとか、
いろんなポインタの変換みたいなのがあるのは何故ですか?

メソッドのポインタをコントロールに教えるだけなら
System.EventHandlerの1種類だけでいいような気がするのですが、
いろいろあるのは何か理由があるのでしょうか?

引数のデーターベースになっていてそれぞれ固有の情報を
渡しているとする割には、コントロールとデリゲート用の
なぞの変換関数?のネームスペースが違っていて
夜も眠れません。

444 :デフォルトの名無しさん:02/05/08 03:26
>>442
俺はチャレンジしたけど400ページくらいで諦めた。。。

445 :デフォルトの名無しさん:02/05/08 03:28
>>444
バカハケーン

446 :デフォルトの名無しさん:02/05/08 04:47
黄色本、標準 C#.NET プログラミングだけど
ま、訳書独特の文なのは仕方ないとしても一つ一つの説明がくどい感じがする
その聖で要点がボケしまってる気がしないでもない

ドキュメントの?な部分を分かりやすく書き直したAPIリファレンスみたいな本が欲しいかな

447 :デフォルトの名無しさん:02/05/08 04:50
言語仕様の本ならともかく、
クラスライブラリまで解説した本は出ないだろ

448 :デフォルトの名無しさん:02/05/08 06:03
>>447
オライリーがJavaの出してるジャン。
あんな感じのあったらおれも欲しいな。
.net frameworkのクラスライブラリは
これから何年も付き合うものだからね。
本があってもいいと思うんだけど。

449 :デフォルトの名無しさん:02/05/08 06:27
>>443 そらイベントプロパティの型が色々あるからでは?

450 :デフォルトの名無しさん:02/05/08 06:29
お前ら、今DirectXを.netから使うとしたらやっぱりDLL関数を直接コールが
一番ですか?

451 :デフォルトの名無しさん:02/05/08 06:56
           ♪ シィシィシィ ♪
      ∧∧       
     (゚ー゚#)      
 ((( ;;"~;;;"~゛;;)  
  . ミ;,,_,ミ;,,_,,;ミ     

           ♪ シィシャープ ♪
      .∧∧       
      (#゚ー゚)      
    (;;"~゛;;;~゛;; )))  
    . ミ;,,_,,;ミ,_,,;ミ    


452 :デフォルトの名無しさん:02/05/08 06:59
Hashtable
  String
  Hashtable
    String
    String
みたいに2層のデータ構造作ったんだけどXmlSerializerで
Serializeできない…。出来る物なの?


453 :デフォルトの名無しさん:02/05/08 07:24
ArrayListの要素をfor文でアクセスするとき
((Hoge)ar[i]).xx = yy;
とかなって見にくくなるんですけど何か方法あるんですか?
(foreach文除く)

454 :デフォルトの名無しさん :02/05/08 07:44
450の自己レスです。
こんなのがありました。
http://sunlightd.virtualave.net/Windows/DirectX.NET/
これを試してみます。

455 :452:02/05/08 07:57
Hashtableそのものが無理っぽいな…。

456 :デフォルトの名無しさん:02/05/08 08:03
>>455 ISerializable実装してるからできるんじゃない?やってないからわからんけど。


457 :デフォルトの名無しさん:02/05/08 08:06
>>448
ワニ本のことかな?

http://www.oreilly.co.jp/BOOK/jexam2/

458 :デフォルトの名無しさん:02/05/08 08:10
逆にドキュメントを丸々プリントアウトしたような本はカンベンだね

459 :デフォルトの名無しさん:02/05/08 08:12
2 in 1 で印刷しる

460 :デフォルトの名無しさん:02/05/08 10:09
>>456
ISerializableとXmlSerializerは関係ないよん。
吉松さんが1年前に解決してたよ。。。ヽ(´ー`)ノ
http://discuss.develop.com/archives/wa.exe?A2=ind0108B&L=DOTNET&D=0&P=12453

461 :デフォルトの名無しさん:02/05/08 10:24
>>460 なるほどねぇ、、出来ないときは素直にIFormatterでSerialize
するほうがいいのかな、無理やり出来そうだけど激しく面倒そう、、

462 :452:02/05/08 10:28
こちらでしょうかね。
http://www.xmlrpc.com/discuss/msgReader$1350?mode=topic


463 :デフォルトの名無しさん:02/05/08 10:54
>>462
それだとSOAPになっちゃうんだよね。。。

464 :452:02/05/08 10:55
SoapFormatterで出来たことは出来たけど…。
>>452で書いた形式のデータ一つだけで、1.59KBいったよw。
ソースコードは短くて楽なんだけどなぁ。


465 :デフォルトの名無しさん:02/05/08 17:45
ControlのTextプロパティに"&Hoge"と設定するとHにアンダーバーがつくけど
これをやめたい。Controlクラスを継承したクラス内でStringformatの
HotkeyPrefixプロパティを変更するとできそうなんだけどやり方がわからない。
だれか良い方法知ってます?
あ、"&&Hoge"ってのは無しにして。

466 :デフォルトの名無しさん:02/05/08 17:51
UseMnemonic=falseじゃなかったっけ?

467 :465:02/05/09 09:25
>>466
LabelクラスにはUseMnemonicあるんだね。なんで他のにないんだろ?

468 :FERC.NET:02/05/09 13:06
>>465
こんな感じでしょうか?
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) {
  e.Graphics.DrawString(text, this.Font, SystemBrushes.WindowText, this.ClientRectangle, new StringFormat());
}


469 :デフォルトの名無しさん:02/05/09 19:17
すみません。

C#標準リファレンスのクラスの所に

internal:アクセスはこのプログラムに制限される。

とのことなんですがいまいちよくわかりません。
教えてもらえないでしょうか?

470 :デフォルトの名無しさん:02/05/09 19:18
数学関係のパッケージはsdkには含まれていないのでしょうか
行列はクラスがあったんですがベクトルとか複素数は見つかんないです.
自分で作れちゅうことですか?

471 :デフォルトの名無しさん:02/05/09 19:22
>>470
>ベクトルとか複素数は見つかんないです.

贅沢だと思う。
クラスライブラリに溺れすぎないようにがんばろう!

472 :470:02/05/09 19:30
>>471
確かにそのとおりですね.ただ,自分の探し方が悪いのかなと思ったので聞いてみたんです
モジュールを作る練習を兼ねて自作してみようと思います

473 :デフォルトの名無しさん:02/05/09 19:33
>>472
http://www.google.co.jp/search?hl=ja&q=C%23+%95%A1%91f%90%94&lr=lang_ja

一応ね。

474 :デフォルトの名無しさん:02/05/09 19:41
>>469
同一アセンブリからアクセス可能という意味です。

475 :デフォルトの名無しさん:02/05/09 19:52
>>474
AをBの1モジュールとしたときBからAのinternalなメソッドなりプロパティにはアクセス出来ないんですか。
具体的な使い方がいまいちわかりませんが何となく概念はわかりました。


476 :デフォルトの名無しさん:02/05/09 20:21
>>475
リフレクションを使わないと無理。
こういうときVB.NETが最強。

477 :470:02/05/09 22:06
>>473
どうもです.とりあえずのベクトルのクラスができたので.次はそこを参考に
複素数クラス作ろうと思います.
その前にコメントから生成されるxmlから,テストケースを作るプログラムに挑戦してみようかな..


478 :470:02/05/09 22:14
「xmlから,テストケースを作るプログラム」じゃなくて
「xmlから,テストケースのソースを吐き出すXSL」の方がいいのかな
知ったかぶりな書き込みしてスミマセン

479 :デフォルトの名無しさん:02/05/10 11:42
C#スタンダードを購入してDBとWEBの連携を勉強しようと思ってます。
DBはAccessとかMySQLを考えているのですが、
C#スタンダードでもWebDBアプリは開発は可能ですか?
DBを使って単純な掲示板みたいなプログラムから始めようと思ってます。

480 :デフォルトの名無しさん:02/05/10 11:48
>>479
(Accessはもちろん使えるけど・・・)
MySQLって使えるんでしょうか?
一度確認の必要がありそうですね

481 :デフォルトの名無しさん:02/05/10 11:58
MSDEでいいんでないの?

482 :479:02/05/10 11:59
まだ実装したことが無いので詳しくないのですが、
ODBC経由で使用したいと考えていました。
(他にWin環境でもっと良いインターフェイスがあるのでしょうか?)
ODBC経由のAccessがOKならMySQLもOKかなって思っています。

483 :479:02/05/10 12:04
MSDEならOKということですか。

ttp://www.microsoft.com/japan/msdn/vstudio/productinfo/featureview.asp
に表示されているデータベースツールの項目の内容を誤解していたようです。

484 :デフォルトの名無しさん:02/05/10 12:15
>>482
>ODBC経由のAccessがOKならMySQLもOKかなって思っています。
今のところParadoxとFirebirdはODBCドライバがあるにも関わらず
.NETでは使用できていないので.NET対応のドライバが必要になると思います

485 :デフォルトの名無しさん:02/05/10 12:42
>>480
使えるよん。ODBC.NET + MySQL で実験した結果おっけーだった。

486 :デフォルトの名無しさん:02/05/10 12:45
>>485
おお、サンクス

487 :デフォルトの名無しさん:02/05/10 12:45
>>485
#さん?

488 :デフォルトの名無しさん:02/05/10 12:59
>>479
ちなみにMySQLのADO.NETドライバもあるよん。漏れは試してないけど。
http://discuss.develop.com/archives/wa.exe?A2=ind0205A&L=DOTNET&P=R23601

489 :デフォルトの名無しさん:02/05/10 13:03
やっぱ、#さんか(w いつもお世話になってます

490 :479:02/05/10 13:03
.NETファミリー製品別機能一覧表では

・データベースの作成、クエリ (MSDE)
・データベースの作成、クエリ (SQL Server)
・SQL スクリプトの作成

この3つの項目はC#スタンダードはサポートされていませんでした。
この3つの項目ってどういう機能なんでしょうか?

491 :デフォルトの名無しさん:02/05/10 13:06
>>490
「鯖側の機能は無し」ということでしょうね

492 :デフォルトの名無しさん:02/05/10 13:27
>>489
違うよ。

493 :479:02/05/10 13:56
レスしてくださった方々、ありがとうございました。
私が希望していることはC#スタンダードで問題無さそうなので
購入することにします。

494 :デフォルトの名無しさん:02/05/10 18:30
パス(C:\hoge\hoge)から、それがファイルなのかディレクトリなのか判別する
にはどうしたらいいでしょう。
System.I0探してみたんですが、見つからない、鬱。

495 :名無しさん♯:02/05/10 18:39
>>487
>>489
両方ともちゃいますよん。
っていうか、漏れでも見分けがつかない。(藁

496 :デフォルトの名無しさん:02/05/10 18:51
>>494
Console.WriteLine(Directory.Exists("c:\\temp"));
Console.WriteLine(File.Exists("c:\\temp"));
これでいけたよ。

497 :デフォルトの名無しさん:02/05/10 20:27
>>496 ありがとうございます。うまくいきました。

498 :朝までC#:02/05/10 20:59
「標準C#.NET 1」と言う黄色い本でC#を勉強しています。
P78〜79のサンプルでよくわからないところがあります。

using System;
class ObjTest
{
〜中略〜
ObjTest c1 = new ObjTest();
〜中略〜
ObjTest c2 = c1;
Object c =c2;
〜以下略
c2への参照の代入は型が合っているので納得できるのですが、
cへの参照の代入は、System.Objectクラスの参照型への代入なので
エラーになるように思えます。
何故なのでしょうか?

たしかにVBではObject型に好きなオブジェクト型をいれれたので、
それと同じといえば同じですが、もっと型に厳しい言語ですよね?
ここだけアバウトなのでしょうか?

499 :デフォルトの名無しさん:02/05/10 21:01
>>498
すべてのオブジェクトはSystem.Objectから継承されている。
子の型は親の型の参照型変数に代入できる。

500 :デフォルトの名無しさん:02/05/10 21:02
>>498
オブジェクト指向の基礎を学べ。

501 :朝までC#:02/05/10 21:06
>>499 >>500
回答ありがとうございます。
すべての元でToString()とかもここから来ているのは
わかっていましたが、より源流?のオブジェクト型に下流?の型の
代入が出来るのですね。ありがとうございます。

502 :デフォルトの名無しさん:02/05/10 21:08
>>501
そのためのオーバーライドですw。

503 :デフォルトの名無しさん:02/05/10 21:12
オブジェクト配列もオブジェクトに代入できてしまうのはなんか違和感がある・・・。

504 :デフォルトの名無しさん:02/05/10 21:18
>>498
そいつは「ポリモーフィズム」という機能だ。




・・・というか、黄本って、その辺の説明ないんか…

505 :デフォルトの名無しさん:02/05/10 21:44
>>503
まぁ,配列も Array クラスだし...

506 :デフォルトの名無しさん:02/05/10 21:49
>>505
インデクサ大活用って感じですか。

507 :デフォルトの名無しさん:02/05/10 22:18
>>504
黄本の「はじめに」に書いてある対象読者は
・何らかの最新のプログラミング言語(C++、Visual Basic、Javaなど)の知識を
 持つ経験のあるソフトウェアのプロフェッショナルであること
・オンラインヘルプを調べることに抵抗がないこと(さらに、恥ずかしがること
 なく、よく調べること)
となっているから

オブジェクト指向の基礎くらいは当然分かっているというのが前提と思われ
(ソフトウェアのプロフェッショナルなんだから)

508 :デフォルトの名無しさん:02/05/10 22:19
>>507
3つ中2つがオブジェクト志向型言語だもんね(後1つは敢えて認めません)。

509 :デフォルトの名無しさん:02/05/10 22:21
>>508
ヴァカ?

510 :デフォルトの名無しさん:02/05/10 22:23
recvした内容をデコードする標準関数ってないの?

511 :デフォルトの名無しさん:02/05/10 22:32
>>508
確かにC++は違うよな。

512 :朝までC#:02/05/10 22:34
VBからC#に行く人の多くは、VBでのObject型に
いろんなオブジェクトを入れることが出来たのを、
オブジェクト指向の基礎とは思ってないと思うよ。
VB自体のいろんなところに偽物オブジェクト指向が満載だから、
C#に移ったときにどれが偽物でどれが本物だったかを確認することに
なるのです。C++やJava、Delphiから入る人は
そうじゃないのかもしれないけどね。

513 :デフォルトの名無しさん:02/05/10 22:36
>>512
VBのObjectってvoid *みたいなもんじゃないの?

514 :デフォルトの名無しさん:02/05/10 22:37
>>512
Variantはpolymorphicだ!とか言ってみるテスト。

515 :朝までC#:02/05/10 22:37
うん、そんな感じ。

516 :朝までC#:02/05/10 22:40
>>514
なるほど・・・Integerやfloatの親だったのか!!
VB設計したのは、ObjectやVariantにそう言う意味を
込めて実装したのでしょうか?

実は昔の宣言なしな何とでもなる昔のBASIC
の名残ですよね。

517 :デフォルトの名無しさん:02/05/10 22:41
C#もすべての値型もSystem.Objectから派生している罠。

518 :デフォルトの名無しさん:02/05/10 22:55
インターフェースと強く型付されていない「何でもバケツ」なんて最悪。
おまえらアホか。社会人 PG 何年やってんだ。

519 :デフォルトの名無しさん:02/05/10 23:06
ところでC#のメーリングリストでいいとこある?

520 :デフォルトの名無しさん:02/05/10 23:15
>>519
↓いくつか引っかかったけど・・・
http://www.google.com/search?q=ML+C%23&btnG=Google+%8C%9F%8D%F5&hl=ja&lr=lang_ja&num=20

521 :デフォルトの名無しさん:02/05/10 23:17
一番上のでいいんじゃない?

522 :朝までC#:02/05/10 23:19
当然、なんでもバケツが良いとは思ってないよ。
すでに書いているように昔のBASICの悪習の名残だと思っている
書いているようにね。

523 :デフォルトの名無しさん:02/05/10 23:42
>>522
そうか、安心した。
いや、ちょっと Java の使い方覚えたのプログラマ連中が Object 型や
そのコレクション使いまくって悲惨なことになったプロジェクトのケツ
拭いた事あるもんでな。

524 :デフォルトの名無しさん:02/05/10 23:44
まぁ抽象性を高めるのと曖昧性を高めるのとじゃまったく逆方向だって
言いたかっただけ。OO やってる誰もが通る道なんだろうけど。

525 :デフォルトの名無しさん:02/05/11 00:28
>>521
つーか、一番上の以外ほとんど投稿なかったと思われ。
ついでに言うと、一番上のも今一盛り上がってなかったり。
このスレの方がよっぽどいい情報そろってる。


526 :朝までC#:02/05/11 00:37
なるほど・・・C#のObjectは、params修飾子とかで
使えるわけですね。
これはこれでワイルドな感じですが、
よくあるConsole.WriteLineの引数は、良い実装例ですね。

527 :デフォルトの名無しさん:02/05/11 11:39
現在のキー状態を取得するにはGetAsyncKeyStateを使わなきゃだめですか?
.NET Frameworkの範囲でどうにかなりますか?

ヘルプ検索してもうまく出てこない知っている人いたら教えて。

528 :デフォルトの名無しさん:02/05/11 11:42
>>527
C#で出来る−>.NETの範囲じゃないの?

529 :デフォルトの名無しさん:02/05/11 11:50
>>527に便乗で、
マウスの状態を取得する方法、わからないです。
だれか教えてください。

530 :デフォルトの名無しさん:02/05/11 11:53
>>529
お前らさぁ。Form使ってるかどうかも書かないでよくもまぁぬけぬけと。

531 :デフォルトの名無しさん:02/05/11 12:59
昼間っから何度もぬけぬけと。

532 :デフォルトの名無しさん:02/05/11 15:30
全然関係ないですけど、
.NETフレームワークって雑誌のCDとかに付いてないですかね?
WindowsUpdate↓でこんなことになってるんで
メンドクサイです。とくに時間が・・・

Microsoft .NET Framework 日本語版
22170 KB/ ダウンロード所要時間: 5 時間 54 分
.NET Framework は、Windows の新しい機能です。
.NET Framework を使用して作成したアプリケーションは、
信頼性と安全性がより高くなります。
.NET Framework は、.NET Framework が必要な
ソフトウェアを使用する場合にのみ、インストールする必要があります。
最初にお読みください


533 :デフォルトの名無しさん:02/05/11 15:31
>>532
ブロードバンドしてない人は死ぬ運命です。

534 :デフォルトの名無しさん:02/05/11 15:34
あのー日本ではブロードバンド人口って
言うほど多くないんですが・・・・


535 :デフォルトの名無しさん:02/05/11 15:39
>>534
あの会社はアメリカ中心です。

536 :デフォルトの名無しさん:02/05/11 15:41
winXPのSP1には添付されるんじゃないかなあ。
つまりそれ以降にPC購入した人には自動的に入ると。

537 :デフォルトの名無しさん:02/05/11 15:57
ブロードバンド率ってアメリカより日本の方が上じゃなかったっけ?

538 :デフォルトの名無しさん:02/05/11 16:29
>>537
ウリナラが世界一ニダ

539 :デフォルトの名無しさん:02/05/11 16:38
IE コンポーネントを使用しているのですが,BeforeNavigate2 イベントが発生されなくないですか?
もしかしたら漏れだけなのかな...

540 :527:02/05/11 16:42
あー、失礼。コンソールアプリなのでFormのOnKeyDownとかは使えないのです。
Console.ReadとかだとEnterキーが押されるまで待ってしまうので、WindowsAPIのGetKeyState等を使えば
できるのはわかっているのですが、.NET Frameworkの中に関数としてないかな?と思いまして。
なるべくWinAPIを直接呼ぶのは避けたいもので。

541 :デフォルトの名無しさん:02/05/11 16:44
>>540
getchar

542 :539:02/05/11 16:50
http://news.devx.com/cgi-bin/dnewsweb.exe?cmd=article&group=csharp.general&item=3155&utag=
検索したら一発で出て来ちゃった...
スレ汚しスマソ

543 :デフォルトの名無しさん:02/05/11 16:54
>>539
ほんとだ。呼ばれないね。

544 :デフォルトの名無しさん:02/05/11 16:59
Winでぐりぐり動くゲーム作れますか?
描画ライブラリとかに簡単にアクセスできますか?


545 :デフォルトの名無しさん:02/05/11 17:00
>>544
Terrarium 3世代目 tabataって死滅しちゃうの?
http://pc.2ch.net/test/read.cgi/tech/1020339546/l50

このスレ>>1から参加していけば真実がわかる。

546 :539:02/05/11 17:07
IE コンポーネントでリンクをクリック

それを標準のブラウザで表示させるために BeforeNavigate2 イベントで Process.Start(e.uRL); としたい

呼び出されない

ガ━━Σ(゚д゚lll)━━ン

うーむ,どうしたものか...

547 :539:02/05/11 17:39
デキタ━━━━━━(゚∀゚)━━━━━━!!

http://www.syncfusion.com/FAQ/WinForms/FAQ_c100c.asp#q842q

548 :デフォルトの名無しさん:02/05/11 18:29
>>547
なんかVJ++の頃を思い出す泥臭さね。(藁

549 : :02/05/11 19:27
Double scale = 80/96;

でやると0が入ってきてしまいます。
どうして?

550 :デフォルトの名無しさん:02/05/11 19:30
int/int = int だから。

551 : :02/05/11 19:30
どうしたら結果が入りますか?

552 :デフォルトの名無しさん:02/05/11 19:31
80.0/96

553 :デフォルトの名無しさん:02/05/11 19:37
C# で 定数テーブルを作りたいんだけど、どうすればいいのか、わからないです。

c/c++でかけば、
const int table[5] = {1,4,9,16,25} ;
こんな感じのもの。



554 :デフォルトの名無しさん:02/05/11 19:53
>>553
static readonly

555 :デフォルトの名無しさん:02/05/11 21:16
あの〜かなり初歩的なんですが
文字列が数字として認められるか(変換できるか)判断するにはどうしたら
IsNumeric関数みたいなやつ

556 :デフォルトの名無しさん:02/05/11 21:19
>>555
ToStringにかけると例外出ちゃったりする?

557 :朝までC#:02/05/11 21:35
たとえば、intならIntのParseメソッドかな?

558 :半分ネタだが:02/05/11 21:55
bool b1 = Microsoft.VisualBasic.Information.IsNumeric("10");
bool b2 = Microsoft.VisualBasic.Information.IsNumeric("a");

559 :デフォルトの名無しさん:02/05/11 22:01
>>558
そのnamespace自体がネタでしょ。

560 :デフォルトの名無しさん:02/05/11 22:06
>>559
ちゃんとコンパイル通るよ。

561 :朝までC#:02/05/11 22:08
それは、旧VB互換のやつですね。・・(^^; 実在するしちゃんと動くと思うけど。

562 :デフォルトの名無しさん:02/05/11 22:09
>>561
Framework2.2で推奨されなくなりFramework2.5から実装されなくなる罠w

563 :朝までC#:02/05/11 22:10
私は気持ち悪いので使わないけど、それ本当ですか?

564 :デフォルトの名無しさん:02/05/11 22:14
>>563
いや、果てしなく冗談です。
でも、ありえないとh(略

565 :デフォルトの名無しさん:02/05/11 22:20
というかVBプログラマをどこまであまやかさせるんだろ>ms
たまには厳しさを見せるのも親心ってもんだ。

566 :555:02/05/11 22:22
たとえば入力された値が数字かどうか判断したいんす
エラーチェックとして
みなさんどうなさってるんでせうか

567 :デフォルトの名無しさん:02/05/11 22:25
>>566
関数がなければ文字コード調べる。

568 :朝までC#:02/05/11 22:29
独立したエラーチェックなしで、Parseメソッドで
いきなり変換をかけて駄目だったらエラーをcatchする。

569 :555:02/05/11 22:30
>>567
やはり1文字ずつチェックするしかないのですか...鬱だ
チェック用のクラスでも作るか

570 :朝までC#:02/05/11 22:33
1文字づつチェックする方法なら正規表現のクラスが
あるのでそれで確認するとちょっと楽かも?

571 :デフォルトの名無しさん:02/05/11 22:34
C#のライブラリ、バグだらけ。
使い物にならん。

572 :デフォルトの名無しさん:02/05/11 22:37
>>571
具体例挙げない場合は言われなき誹謗中傷と見なします。


573 :デフォルトの名無しさん:02/05/11 22:37
根拠のない煽りは放置

574 :デフォルトの名無しさん:02/05/11 22:38
>>571
最初の1行だけで初心者かどうかが分かるね(藁

575 :デフォルトの名無しさん:02/05/11 22:51
string s1 = "test";
string s2 = "てすと";
Console.WriteLine(s1[1]+s2[1]);

とやると 12478という数字が出力されるんだけどバグかな?

Console.WriteLine(s1[1]);
Console.WriteLine(s2[1]);

はそれぞれe, す とうまく出力されます。

576 :デフォルトの名無しさん:02/05/11 22:52
>>575
ごめん、もしかして+演算子の動作を誤解してたかな?調べてきます。

577 :575:02/05/11 22:54
単にchar型だから足し算されただけか…吊ってきます

578 :デフォルトの名無しさん:02/05/11 22:56
>>575
s1[1]ってchar(16bit)じゃないの?

char + char = int

579 :デフォルトの名無しさん:02/05/11 22:57
>>575
で、君は>>571で良いのかな?
だったとしたら今すぐMSに謝れ!

580 :デフォルトの名無しさん:02/05/11 22:58
C#の言語仕様、嘘だらけ。
シャレにならん。

581 :575:02/05/11 22:59
蛇足ですが、意図したように動かすには
Console.WriteLine(new string(s1[1],1) +s2[1]);
ですね。

582 :朝までC#:02/05/11 23:05
>>581
それは、文字列は変更できない、変更後のオブジェクトを
用意しないと駄目だってやつですね。
そのために、自在に文字列の編集をしたいときは、
StringBuilderオブジェクトに入れないとだめ・・
と勉強しながらですが、これでいいですか?

583 :デフォルトの名無しさん:02/05/11 23:06
うぜえ、隔離スレに逝け

584 :デフォルトの名無しさん:02/05/11 23:19
>>581
表示したいだけだったらこれでいけるよ。

  Console.WriteLine( new char[] { s1[1], s2[1] } );

585 :デフォルトの名無しさん:02/05/11 23:21
>>575
素直にコレじゃいかんの?

Console.WriteLine(s1+s2);


586 :デフォルトの名無しさん:02/05/11 23:23
>>585
仕様変わってますがな。

587 :デフォルトの名無しさん:02/05/11 23:33
>>586
スマン
よく読んでなかった

588 :585:02/05/12 00:03
>>587

お詫びにこんなんどうすか?
あんま綺麗じゃないけど

Console.WriteLine(s1[1].ToString() + s2[1]);

589 :585:02/05/12 00:05
うう

>>587 じゃなくて >>586 です

鬱だ

590 :デフォルトの名無しさん:02/05/12 00:06
>>588
なるほど。いろんな方法がありますなあ。
ところで
s1[1].ToString() + s2[1]

では+の左側がstringなので右側もstringに変換されますよね?
なのにcharをstringにキャストすることはできない……なぜ?

591 :デフォルトの名無しさん:02/05/12 00:16
charは文字列関連メソッドを持った数値であり値、Stringは参照。
charどうしだと、数値の足し算。Stringを混ぜるとStringの演算子の
オーバーロードで文字列の結合が発生するのかな?


592 :デフォルトの名無しさん:02/05/12 00:17
>590
char.ToString じゃ駄目なの?

593 :デフォルトの名無しさん:02/05/12 00:17
charは単なるunsigned shortだととらえたほうがいいと思うがなあ

594 :デフォルトの名無しさん:02/05/12 00:18
>>590
ボクシングは出来そうだけどね。

595 :デフォルトの名無しさん:02/05/12 00:20
>>593
System.UINT16の別名で良いの?ushortもcharも。

596 :590:02/05/12 00:23
自動的な型変換が起こるときは裏でキャストされているのかな、と思っていたのですが、
キャストとも違う処理が行われているんでしょうか。

597 :朝までC#:02/05/12 00:24
>>595
ちがうよ。charは、ユニコード用のメソッドとかが追加されている。

598 :デフォルトの名無しさん:02/05/12 00:26
>>597
しかし、operator +()はushortな動きをするのね。

まぁ、そっちの方が

data[i] + '0';

とかするのに都合は良いか。

599 :デフォルトの名無しさん:02/05/12 00:28
みなさーん、バカ↓が湧き出してきました
John ◆0z.4Is5E
いろんな板で誹謗を繰り返しています。
よっぽど自分に自信が無いんですね。

放置よろしくお願いします。


600 :デフォルトの名無しさん:02/05/12 00:28
みなさーん、バカ↓が湧き出してきました
         >>599


601 :デフォルトの名無しさん:02/05/12 00:30
>>599-600
誰でもいい、荒らすな。

602 :朝までC#:02/05/12 00:31
>>598
今調べたらStringで演算子のオーバーロードがかかっているのは、
=と!=だけだった。まだまだ謎がありますね。

>data[i] + '0';

たしかにこれは使いたい。

603 :デフォルトの名無しさん:02/05/12 00:33
Console.WriteLine(s1[1] + s2[1]);

(s1[1] + s2[1]).ToString() が表示される。だから char + char で数値のまま。

Console.WriteLine(s1[1].ToString() + s2[1]);

( s1[1].ToString().Concat(s2[1]) ).ToString()が表示される。だから連結文字列になる。

604 :603:02/05/12 00:38
IL見たらちょっと違ってた。ごめんちゃい。

( String.Concat(s1[1].ToString(), s2[1]) ).ToString() みたいね。

605 :デフォルトの名無しさん:02/05/12 00:40
>>603
つまり、string型が要求されるところにstringが来ると、自動的にToStringが呼ばれるわけですよね。
それ以外の自動型変換、たとえば
int i; double d; で i + d とか書いたときはキャストが起きているのでしょうか。
stringの場合だけToStringを呼ぶような仕組みになってんのかな。

606 :デフォルトの名無しさん:02/05/12 00:41
>>605
打ちミスった。string型が要求されるところにstring型以外の変数が来ると、
の間違いです。

607 :デフォルトの名無しさん:02/05/12 00:49
>>605
stringかどうかということよりは、ただ単にobject.ToString()を呼んでるだけだと思われ。

ちなみに、Console.WriteLine(i + d); は
( (double)i + d ).ToString() ね。

608 :デフォルトの名無しさん:02/05/12 00:53
>>607
Object.ToStringって何してるの?オーバーライドされる前は。

609 :デフォルトの名無しさん:02/05/12 00:56
>>608
ほい。Object.ToString() のソース。

  public virtual String ToString()

  {

    return GetType().FullName;

  }

610 :デフォルトの名無しさん:02/05/12 00:57
>>609
あーあー、改行コード変になちゃーた・・・。

611 :607:02/05/12 01:00
>>606
スマソ。正解です。
stringにはわざわざ ToString() してない模様。

612 :明日から(今日から)C#:02/05/12 01:00
>>609
なる。Object(System.Object?)って文字列が帰るのか。

ソースって何に付いてくるんですか?
次から自分で調べようと思います。

613 :朝までC#:02/05/12 01:02
うーむ なるほど。 >>609 さんの情報ソースはどこですか?

614 :デフォルトの名無しさん:02/05/12 01:03
>>612
http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/901/msdncompositedoc.xml

615 :デフォルトの名無しさん:02/05/12 02:06
>>565 俗に言う「囲い込み」というやつかと

616 :朝までC#:02/05/12 10:47
デザインパターンと呼ばれる「良くあるパターン」の辞書みたいなのが、
C++などであるようですが、C#の場合は、
それに関するツールのようなものが存在するのでしょうか?
それとも、デザインパターンは概念であり言語に依存しないので
しょうか?

617 :デフォルトの名無しさん:02/05/12 10:49
>>616
依存しないと思うぞ。

618 :◆Hqkk7dyk :02/05/12 11:25
さっき初めてC#で書いてみたけどアプリの起動がやたら遅く感じる
のは俺だけですか?コンパイルは早いけど・・・

619 :朝までC#:02/05/12 11:38
>>617
ありがとうございます。と言うことは安心してデザインパターンの本を買えますね。
ここ最近、VBからC#へ移行として勉強して思ったんですが、
旧来のベテランがやっていた工夫を言語のほうが合わせたって感じですね。
オブジェクト指向を知らなくてもベテランにとっては、
ややこしく工夫していたところを簡潔に書けるように
なっただけで、初心者にはベテランの工夫を言語で矯正すると
いった感じに感じました。
当然、新しい言語仕様だから出来る機能もありますが・・

>>618
開発環境での起動はめちゃめちゃ遅いのでマシンを買い換えました。
実行ファイルだけだとそうでもないでしょ?

620 :デフォルトの名無しさん:02/05/12 11:40
>>619
>開発環境での起動はめちゃめちゃ遅いのでマシンを買い換えました。

元のスペックと新スペックを教えてください。

テラリウム見てる分には割と軽いですね。(Duron 900)

621 :朝までC#:02/05/12 12:11
元は、セレロン566でメモリー256MBでした。
今は、P4 2Gでメモリー1GBです。

実行ファイルの方が早いと思うけど本格的なサイズのは
まだ作ってないので実行ファイルについてはなんとも言えないです。

622 :デフォルトの名無しさん:02/05/12 12:26
>>621
う〜む、Duron900は判断が出来かねますな。
仕方がないので人柱になります。情報助かりました。

623 :デフォルトの名無しさん:02/05/12 13:14
起動時にフォームアプリを起ち上げたり、ASP.NETのページにアクセスしておくと
その後は初回起動も速くなるよ。
要はネックはJITコンパイルじゃなくてランタイムのロードの方だから、
あらかじめキャッシュしておくと。
将来のWindowsは.NETアプリだらけになるだろうから、自然にこのキャッシュ効果が
出て初回起動の遅さはそんなに気にならなくなるだろうね。

624 :デフォルトの名無しさん:02/05/12 14:01
漏れの場合、Duron800/640MBだったころは、
初回起動に15〜20秒ぐらいかかってたかな。
二度目からは平均5秒ぐらいだったよ。

#A1800+に移行してるんだけど、環境戻しで
#トラブってるんでまだテストできてません。

625 :デフォルトの名無しさん:02/05/12 14:13
>>616
依存しないけど、一部はライブラリに取り込まれてたり、ライブラリの他の機能で代替できる
のもあるよん。

VBやってたなら、VB/VB.NET用のデザインパターンサンプルを見てみると吉。

626 :デフォルトの名無しさん:02/05/12 14:17
俺はPenV650/256MBだけど (゚ε゚)キニシナイ!!


627 :デフォルトの名無しさん:02/05/12 14:23
PenV1G,512M起動遅し・・

628 :デフォルトの名無しさん:02/05/12 15:13
C#から作成したEXEって、
Win32ネイティブにできないんだよな?

629 :朝までC#:02/05/12 15:18
やったことないけど、ハードディスクに落とす瞬間にコンパイル
されてしまう方法があるそうだよ。(実行時ではない。)

頒布は環境に非依存でハードディスクに置けばネイティブって
ことかな?

>>625
ありがとう調べてみます。

630 :朝までC#:02/05/12 15:30
IEnumerableインターフェース(発音がわからない)についてですが、
IEnumerableで、GetEnmumeratorを実装させて、
戻り値のインターフェースのIEnumeratorで、
本当に欲しい機能であるReset,MoveNext,Currentを
再度インターフェースしているわけですが、なぜこんな2段が舞えに
しているのでしょうか?

IEnumeratorだけを実装してIEnumeratorであるかどうかだけを
チェックしてからreset....などのメソッドを使えばいいはずですよね?


631 :デフォルトの名無しさん:02/05/12 15:49
同じ名前のメソッドでかぶったら面倒だぞう。

632 :デフォルトの名無しさん:02/05/12 17:40
ちょっと面白かったので紹介。

C# FAQ
http://www.geocities.com/csharpfaq/

アンチな人のページなので心して読むべし。

633 :デフォルトの名無しさん:02/05/12 18:02
>>632
面白かった。

634 :デフォルトの名無しさん:02/05/12 18:28
>>632
まあJava厨も必死だなというか何というか。
IBM、Oracleが.NETに力を入れ出したので焦ってるのだろうけど。

635 :デフォルトの名無しさん:02/05/12 18:29
>>629
それは無理。中間コードも必要になるしね。

636 :デフォルトの名無しさん:02/05/12 21:38
>>630
それだとEnumerableな型自身がEnumeratorも実装しなければならない。
Enumerableな型が自分の列挙を他の列挙子に頼むことは十分考えられる。

637 :デフォルトの名無しさん:02/05/12 21:46
PenII 233MHz、160MB めっちゃ重い。
でもキャッシュされるとかなりいい。
Javaの糞さに比べたらはるかにまし。

638 :デフォルトの名無しさん:02/05/12 23:31
>>630
そりゃあんた、例えばさ、C++だとポインタ使って

int array[N];
int* end = array + N;
for(int* p=array; p!=end; ++p)
{
for(int* q=array; q!=end; ++q)
{
//何らかの処理
}
}

ってやるだろ。
この int* p, q みたいに、現在どこを指してるかを保存しとく変数が必要なんよ。
それを用意するのが Enumerator の役目。


639 :デフォルトの名無しさん:02/05/12 23:32
カーソルともいいますかね

640 :デフォルトの名無しさん:02/05/12 23:35
>>638
スタックで言うところのスタックポインタですな。

641 :デフォルトの名無しさん:02/05/13 00:36
ComboBoxにに入力した文字を、カーソルで選択したいのですが、できません・・・。
どのようにすれば良いのでしょうか?ご存知のかた、よろしくお願いいたします。

642 :デフォルトの名無しさん:02/05/13 01:44
/docで出力されるXMLのために,元のソースに勝手に新しいXMLタグを
追加するのはまずいですか?

643 :デフォルトの名無しさん:02/05/13 10:08
>>641 あれなんでだろうね。使いにくいったらありゃしない。
漏れも未だに分からず。。

644 :デフォルトの名無しさん:02/05/13 10:12
実行ファイルのパス名を取得したいのですが、
VC++でのGetModuleFileName
VBでのApp.Path
に当たる物は何でしょうか?

645 :デフォルトの名無しさん:02/05/13 10:46
.NETでは「アセンブリ名」になるよ。アセンブリを読み込んで実行する
主体は AppDomain なので、AppDomainから辿ってみてください。

646 :デフォルトの名無しさん:02/05/13 11:56
>>631 >>636 >>638 みなさま解説ありがとうございます。
>>638 さんの言われるようにEnumerator がコレクションを
管理する情報が入っているのはわかりますが、
それを実装するクラスの宣言にIEnumerableもIEnumeratorも両方とも
入れてしまっているので、>>631 と >>636 さんの言われるメソッドが
被る件については、どのみちインターフェースを指定して
アクセスしているのでは無いでしょうか?


647 :デフォルトの名無しさん:02/05/13 11:56
MSDN見てて思ったんだけど
SByte ←何でInt8じゃないんですか(;´Д`)
Int16
Int32
Int64

648 :デフォルトの名無しさん:02/05/13 12:00
>>647
C++よりはましなんだから (゚ε゚)キニシナイ!!

649 :デフォルトの名無しさん:02/05/13 12:00
Bitmapクラスから生成した8bitインデックスカラーのビットマップ
における各ピクセルのインデックス値ってゲットできないんですか?
もしかしてLockBitsしてバイト単位で見ないとダメ?
なんかGDI+って256のイメージ扱おうとすると
ものすごく不便なんですが・・・

650 :デフォルトの名無しさん:02/05/13 12:02
それと、ベースクラスを直接使う必要はほとんどないでしょ

651 :朝までC#:02/05/13 12:05
みなさん、コメントはどうされていますか?
いままで、
//===============================================================================
// ××定数定義
//===============================================================================
とか、そんな感じで付けていたのですが、
黄色本「標準C#.NETプログラミング1」のP299によると
ソース中にXMLを書いてVS搭載のWebページビルドで
ドキュメント化が可能だと言うことがわかりました。
やってみたのですが、それをやるとタグがうるさくなってかっこわるいです。
int i; //ループ変数
もうちょっとスマートに自動でドキュメントを作成したいのですが、
良いアイディアはありますか?
VBの頃はHotDocumentを使ってソースから
ドキュメントを生成していました。(無意味にデカイドキュメントが出る)

出来たらコメントからテスト仕様書(チェックリスト)とかも
出るようにしていきたいなぁ

652 :デフォルトの名無しさん:02/05/13 12:16
コメント無しでも理解できるコードを書くのが基本。

653 :デフォルトの名無しさん:02/05/13 12:19
>>652
そういう問題じゃなくて。

654 :デフォルトの名無しさん:02/05/13 12:24
>>653
いや、なにぶん示された例が
> int i; //ループ変数
だったもので。

655 :朝までC#:02/05/13 12:25
>>652
個人的には、ソースはきれいでかつコメントが十分ついていて、
ソースさえあればドキュメント少なくていいようにしたいです。
(それが一番わかりやすいしバグも少ない。)
ドキュメントは概念図とテーブル設計書、プロトコル関係、
取り扱い説明書だけで終わることを目指しています。
それ以外に、より便利にするために活用したいと思っています。


656 :デフォルトの名無しさん:02/05/13 12:26
>>631
メソッド名がかぶっても明示的に実装すれば問題ないよん。

interface Foo1
{
  void Bar();
}

interface Foo2
{
  void Bar();
}

// explicit implementation. (問題なし)
class FooImpl1 : Foo1, Foo2
{
  void Foo1.Bar() {
  }

  void Foo2.Bar() {
  }
}

// implicit implementation. (やや問題あり)
class FooImpl2 : Foo1, Foo2
{
  public void Bar() {
  }
}

657 :デフォルトの名無しさん:02/05/13 12:33
>>655
賛否両論だと思うけど、
コメントがついてる=コメント無しじゃわかりにくいコード
ということは頭の片隅においておいたほうがいいかも

658 :朝までC#:02/05/13 12:36
コメント無しでも判るがコメントも付いているを目指します。
判りやすい・判りにくい と コメントが付いている・付いていない
は別だと思います。

659 :デフォルトの名無しさん:02/05/13 12:41
>>657
コメントなしで分かりやすいプログラムにコメントをつけると分かりにくくなる理由とはなんでしょうか?


660 :デフォルトの名無しさん:02/05/13 12:43
>>659
必ずしもわかりにくくなるわけじゃないけど、修正を加えていくことでコメントとコードの
整合がとれなくなったりすることが多いね。

661 :デフォルトの名無しさん:02/05/13 12:50
たとえば関数のインターフェイスとか利用方法のコメントなんですが、
これはいくら変数名を工夫したからといって、
付けてもらわないと困るとおもうのは私だけだろうか・・・・
いちいち全部関数の本体読めってか、やだなぁ


662 :朝までC#:02/05/13 12:50
>>660
慣れれば、ちゃんと合ってないといられなくなるよ。

663 :デフォルトの名無しさん:02/05/13 12:51
>>659
別に俺はそんなこと言ってないけど。
本当にわかりやすいコードはコメントをつける必要なんてないってこと。
でもいつもそんなコードが書けるわけじゃないからコメントが必要になるけど。
コード無しでも十分わかりやすいコードにコメントをつけるとしたら、それは無駄な作業だと思う。

664 :デフォルトの名無しさん:02/05/13 12:52
>>661
それはコメントしておいていい部分だと思うよ。
もちろんドキュメント化も。

665 :朝までC#:02/05/13 12:54
>>661
同感です。
実はコメントネタが終わったら、その時の終わり方次第ですけど、
変数名などのプレフィックス?(int intPtrBuff;とか)
についてもみんなどんな工夫をしているのか聞くつもりでした。

666 :デフォルトの名無しさん:02/05/13 12:54
関数の機能くらいは大抵コメントしておくでしょ

問題はその中身にどこまでコメントをつける必要があるかということだよね

667 :デフォルトの名無しさん:02/05/13 12:57
>>666
そそ。
コメントには2種類あって、
コードを読み飛ばすためのものと、コードを読むときの助けになるもの。
前者は大いに書くべき、いちいちコードを読み直すのは無駄。
後者も書くべきだけど、まず書かずに済む方法を考えたほうがいい。

668 :デフォルトの名無しさん:02/05/13 13:00
>>658-659
657じゃないけど、
↓みたいなコメントは、蛇足でしょ。そう言うプログラムを目指せってことかな。
 // リストにオブジェクトを追加
 list.add(object);
もちろん、
 // リストにオブジェクトを追加
element = new ListElement();
 element.value = object;
 element.next = list.top;
 list.top = element;
にコメントを付けるなという意味ではない。
(こうするくらいなら、手続きにまとめて上のようにしろって事)

この例では、低レベルな処理を例としたけど、
もっと抽象どの高いレベルでもそうしたほうが良いでしょうという話。
まぁ、当然のことを言ってるだけなんだけど(でも守るのは意外と難しい)

669 :657:02/05/13 13:04
>>668
YES!!

670 :C ◆JhEYj/RI :02/05/13 13:06
コメントを書くということは、プログラムに、関数のシグネチャやコード自体を
見ただけでは分からない(分かりにくい)、処理や機能が含まれているということですな。
そう言うのは少なくしたほうが、結局は読みやすくなる。


671 :デフォルトの名無しさん:02/05/13 13:06
>>665
自分の場合は
・英語の綴りは、慣用となっているものを除き、原則として省略しない
・引数であることを関数内部でも分かりやすくするためかならず頭に a をつける
 (例:int aMemberID)
ですけど

672 :デフォルトの名無しさん:02/05/13 13:13
>>671
俺はCで引数は常にconstにして引数以外の目的で使われることを防いでたんだけど、
C#ではこれ出来ないの?

673 :デフォルトの名無しさん:02/05/13 13:18
>>672
別のキーワードがあったはず。

674 :デフォルトの名無しさん:02/05/13 13:33
>>673
う〜〜ん言語仕様も見てみたんだけど無いっぽい・・・?

675 :デフォルトの名無しさん:02/05/13 14:08
C#のパラメータの修飾子を見ると
呼び出し側の便宜を図ることだけを考えているみたいだね

ref:参照呼出し→パラメータの中身は変更される可能性があるよ
out:出力専用呼び出し→パラメータは初期化しなくてもいいよ
という感じなのに対して

値渡しの場合は
呼び出し側から見れば内部でどう変えられようと構わないから
わざわざ変更不可を指示する必要もないかな・・・という具合

676 :デフォルトの名無しさん:02/05/13 14:21
ローカル変数にも使えない模様
リファクタリングにけんか売ってますか?

677 :644:02/05/13 15:37
>>645
ありがとうございます、出来ました。

678 :sage:02/05/13 16:25
初歩的な質問で恐縮ですが、
Imageクラスを継承したMyImageクラスを作ろうとしたら
System.Drawing.Image.Image()はアクセスできない保護レベルになっています。
って怒られて出来ません。
ソースは
public class MyImage : System.Drawing.Image
{
ってやってるだけですが、こういうのは出来ないのでしょうか?

679 :デフォルトの名無しさん:02/05/13 16:28
>>678
System.Drawing.Imageがsealされてるとか。

680 :デフォルトの名無しさん:02/05/13 16:30
>>678
Imageクラスのコンストラクタはinternalなので、
同一アセンブリ(System.Drawing.dll)内でないと
たとえ子クラスでもアクセス不可。

681 :678:02/05/13 16:57
>>680
なるほど。そうでしたか。
要するに出来ない様にしてあったワケですね。
どうもありがとうございました。

682 :デフォルトの名無しさん:02/05/13 17:52
>>672-674 readonly っすか?見当違いならスマソ


683 :デフォルトの名無しさん:02/05/13 18:00
>>682
あれってstatic以外にも使えるの?

684 :デフォルトの名無しさん:02/05/13 18:10
それ以前にローカルやパラメータには使えないじゃん>static, readonly

685 :682(見習い Lv.0x01):02/05/13 18:14
>>683
>>683 使える…と思う(自信なし)

赤本(「実践〜」のP129)みたら、
こんなコード↓載ってたよ。

public class Account
{
 public readonly string sortCode;

 public Account(string code)
 {
  sortCode = code;
 }
}


686 :682:02/05/13 18:23
>それ以前にローカルやパラメータには使えないじゃん>static, readonly

       》
     Λ《Λ  < そーでした。ちと吊ってきますー
    ( / ⌒ヽ
    ノノ   ノ     (´´;;;    (´
    (ノ  /ノ  ≡≡≡≡   (´´
    ノ ノノ ≡≡≡≡(´⌒(´⌒;;≡≡
   (ノノ     (´⌒(´⌒;;
    ̄ ̄ ̄ ̄ ̄ ̄

# ref/out かなぁ…

687 :682:02/05/13 18:26
>>675でref/outがいしゅつだった…スンマセン…

688 :デフォルトの名無しさん:02/05/13 21:06
VS.NETスレで同じ質問をした者ですが
こちらの方が良いと言われ、参りました。
マルチポストになってしまいますがどうかご容赦ください。


C++とC#のコードを連携させようと思い
C#アプリとManaged C++ライブラリを
一つのソリューション内に作って
C#アプリがC++ライブラリを参照するようにしたのですが、

LNK1104: コンパイラは、ファイル 'xxx.dll' を開くことができません。
(xxx.dllはC++ライブラリの名前)

と出てライブラリが更新できないのです。

VSがxxx.dllとリンクして解放しないようなので
仕方なく、IDEを終了してxxx.dllを削除することで
改めて一回ビルドできるようにしているのですが、
何か解決策はないでしょうか?
よろしくお願いします。

689 :デフォルトの名無しさん:02/05/13 21:16
C#を使い始めて4日ですが、分からない事があるので教えてください。

C++では他の人が作ったライブラリを使う場合でも、クラス情報はヘッダで
提供されますけど、C#ではdllに埋め込まれているからヘッダは必要ないん
ですよね?

その場合にdllから人間が読める形でクラス情報を抜き出す方法はあるので
しょうか?

ちなみにFrameworkSDKを利用していて、統合環境は無いです。

690 :デフォルトの名無しさん:02/05/13 21:27
>>688
こっちでは再現しない。どんなコード?

>>689
ildasm.exeを探して起動してみよう。

691 :689:02/05/13 21:49
>>690
素早い回答ありがとうございました。感動して鼻汁でました。
これはいいですね。

692 :デフォルトの名無しさん:02/05/13 22:00
>>691
Ildasmだと、その名のとおりILレベルなので、Decompilerとか使うと吉。

693 :デフォルトの名無しさん:02/05/13 22:29
>>692
ILが読めることは大事なことだから、おれはildasmを薦めるな

694 :デフォルトの名無しさん:02/05/13 22:41
>>693
もしかして、青(以下略)・・・

695 :   :02/05/13 22:51
ニューヨークはチャートを見れば分かるとおり下げ基調継続。

696 :デフォルトの名無しさん:02/05/13 22:53
>>695
誤爆?

697 :デフォルトの名無しさん:02/05/13 22:55
●●●欧米株スレ69●●●
http://money.2ch.net/test/read.cgi/stock/1021058122/l50

ここらへん↑に落とすつもりだったと予測してみるテスト

・・・つうか、株板とここ掛け持ちしてる奴がおるんか・・・

698 :デフォルトの名無しさん:02/05/13 23:22
socket を非同期で受信して,受信したデータに応じてフォームを表示したいと考えています。
そのフォームには IE コンポーネントをおいているため,STA スレッドで呼び出さないといけないのですが...
Main に STAThread 付けておいても非同期受信で呼び出される関数では MTA のようなのです。(例外が投げられる)
何とかして STA にする方法はないのでしょうか?
(同期受信にしろというのはなしで...)

699 :デフォルトの名無しさん:02/05/13 23:24
>>698
この質問、前にも見たような・・・。

700 :デフォルトの名無しさん:02/05/13 23:27
過去ログの番号が分らないのなら無視すれば?>>699

701 :デフォルトの名無しさん:02/05/13 23:30
>>699 私が過去に質問したのですが、>>698は私じゃないよ。
333から読んでね。

702 :698:02/05/13 23:32
・゚・(ノД`)・゚・ ウワーン
ごめんなさい,見落としてました...
逝ってきます...

レスthx >>699-701

703 :688:02/05/14 00:06
>>690
レスありがとう。

元のソリューションはちょっと複雑だったんですが、
簡単なコードでも再現できました。

方法
1,空のソリューション作成
2,その中にC# WindowsアプリケーションとManaged C++ クラスライブラリのプロジェクトを作成
3,「参照の追加」でC#アプリケーションからC++ライブラリを参照するようにする
4,ビルドする
5, 一回IDEを終了してから改めてIDEを起動

これで、以後C++ライブラリを更新しようとすると
エラーになってしまいます。

704 :デフォルトの名無しさん:02/05/14 00:20
ビルドの順番変えてみたら?

705 :デフォルトの名無しさん:02/05/14 00:28
>>703
やはり再現しない・・・。

706 :デフォルトの名無しさん:02/05/14 00:29
>>703
3. のときに、プロジェクトを参照してる?

あと、プロジェクトの依存関係を設定したほうがいいかも。

707 :688:02/05/14 00:33
>>704
依存関係を変えてビルドの順番を変えようとしても
「この依存関係は、プロジェクト システムによって追加されたため、削除することができません。」
と出てダメでした。
ちなみに現在の順番は
ライブラリ→アプリ です。

それに、ライブラリだけをビルドしようとしてもエラーになるし、
VS起動中はエクスプローラでもDLLが削除できないので
順番を変えても変わらないような気がします。

708 :688:02/05/14 00:41
>>705
うらやましい。
うちは何度やっても5の後、リビルドでエラーが....。

>>706
はい。
「.NET」「COM」「プロジェクト」の三つのタブの
一番右の「プロジェクト」タブで選択して追加しています。

709 :デフォルトの名無しさん:02/05/14 00:52
>>708
やってみたけど、こちらも駄目でした。VB.NETとかだと問題なくできるのに・・・

710 :デフォルトの名無しさん:02/05/14 10:53
簡単なゲームみたいなものを作っているのですが、
任意のタイミングでキーボードの状態を取得する方法がわかりません
KeyDownとKeyUpを片っ端から捕まえてフラグを立てたり降ろしたりすれば
できそうな気もしますが、もうちょいスマートなやり方を知っている方
いましたら教えてください m(_ _)m
一応DllImportでGetAsynkeyState,GetKeyboardState等試しましたが
無理でした

711 :デフォルトの名無しさん:02/05/14 11:46
ツールバーのボタンの間隔を調整したいのですが、
なんか左端からズラズラと並んじゃってカッコ悪いです。
どうすればいいのでしょうか?


712 :デフォルトの名無しさん:02/05/14 13:16
C#でWebDBのシステムを構築してみようと考えてます。
C#もASPのようにWWWサーバーはIISでないとダメなのでしょうか?
できればApacheで構築したいです。

713 :デフォルトの名無しさん:02/05/14 13:40
>>712
ApacheでCGIならできるよ。

714 :デフォルトの名無しさん:02/05/14 14:11
>713
ありがとうございます。
Apache+.NET Frameworkの環境で実行可能ということですね?
ということは、.NET FrameworkはTOMCATのようなコンテナに
あたる物と考えてOKなんでしょうか?

それと、ASPのようにIISに組み込んで動作するような仕組みには
なっていないのですね?

715 :デフォルトの名無しさん:02/05/14 14:57
ASP.NETでページ間の移動をする際に
Server.Transfer("hogehoge.aspx",true);
ってやると、

このページの ViewState は無効です。壊れている可能性があります。

って言われるんだけど、何が原因だと思う?

716 :デフォルトの名無しさん:02/05/14 15:01
>>712
WinでApacheを使うつもりなの・・・?
珍しい人もいるものだ・・・

717 :デフォルトの名無しさん:02/05/14 15:42
Apacheも色々とパフォーマンスに関しては言われてたけど、
2.0になって良くなったんだろうか?

718 :デフォルトの名無しさん:02/05/14 17:55
>>716
プププ

719 :デフォルトの名無しさん:02/05/14 18:11
>>716=学生


720 :デフォルトの名無しさん:02/05/14 18:26
>>719
で、君は窓際か。

721 :デフォルトの名無しさん:02/05/14 18:28
窓際いいよね。
窓際地方公務員、憧れるなぁ。

722 :デフォルトの名無しさん:02/05/14 18:42
>>721
仕事しなくて良いわリストラされないわか。
いいな。

723 :デフォルトの名無しさん:02/05/14 18:54
それで2chばっかやってるわけか

724 :デフォルトの名無しさん:02/05/14 19:13
個人的には、WindowsプラットフォームでApache使おうとは
思わないんだけど、Apacheにする理由って、何だろう・・・?

#単にApache使いこなせてないだけだけど、(自嘲
#*仮に*使いこなせても、Win上ではIIS選ぶと思う…

ってか、こういう質問とか議論って、どの板でやれば委員だろーか?
(多分ここだと「板違い」だよね、スマソです…)

725 :デフォルトの名無しさん:02/05/14 19:19
>>724
index.html.ja
とか便利だと思った。
まぁ、今はASP.NET使うためにIISだけど。

726 :デフォルトの名無しさん:02/05/14 19:25
Apacheは使わんなー。Tomcatは使うけど。

727 :デフォルトの名無しさん:02/05/14 20:29
>>711
間隔の微調整は無理だと思われ。
ツールバーもどきのコントロールを自作すべし。

>>714
コンテナに相当する機能がデフォルトでついてて、IISと連携して動く。

728 :デフォルトの名無しさん:02/05/14 21:36
>>724
Windowsサーバー運用スルとかいうのがあったと思う...

729 :デフォルトの名無しさん:02/05/15 02:52
過去スレがようやく見れるようになったね

730 :デフォルトの名無しさん:02/05/15 09:30
>724
業務では個々の開発用にWin+Apacheの環境で使うことよくあるよ。
Solarisとかの案件の為だけにLinuxなんか使ってられないしね。

731 :デフォルトの名無しさん:02/05/15 11:15
入門用の書籍でお勧めってありますか?

732 :デフォルトの名無しさん:02/05/15 11:39
>>731
出始めだからない。

733 :デフォルトの名無しさん:02/05/15 11:40
>>731
クソ本ならうなるほどある

734 :731:02/05/15 11:40
事故レス
関連すれありましたね、失礼しました。

735 :731:02/05/15 11:41
>>733>>734
そうですか・・・ じゃ待ちですね。
ありがとうございます!

736 :デフォルトの名無しさん:02/05/15 11:43
>>733
でも、それすら読まないといけない状況が今。

737 :デフォルトの名無しさん:02/05/15 14:41
ところでさ。
以前のVC++6の時代って

EXE ファイルのデフォルトの配置場所 (0x00400000)
DLL ファイルのデフォルトの配置場所 (0x10000000)

だったと思うけど
C#のプロジェクトって、DLLも、EXEも (0x11000000)が
初期値なのね。

結局DLLはずらしてやるんだけど、単純に今までのMS推奨の
リベーシング規則に従っていいものかな。

DLL の先頭文字 開始アドレス
A-C 0x60000000
D-F 0x61000000
G-I 0x62000000
J-L 0x63000000
M-O 0x64000000
P-R 0x65000000
S-U 0x66000000
V-X 0x67000000
Y-Z 0x68000000
*同じ先頭文字の場合は上位三桁をずらす。
例:0x61000000,0x61100000

MFC DLLを使用しているなら、
ベースアドレスは0x5F400000〜0x5FFFFFFF以外を使用すること

.NET Frameworkがどの範囲を抑えてるか書いた資料
どこにあるか誰か知らない?
全部のMANIFEST見るのも手ではあるが・・・。




738 :デフォルトの名無しさん:02/05/15 16:54
>>737
CLIのドキュメント Partition II Metadata の第24章・・・じゃあまり役に立たないか。

739 :デフォルトの名無しさん:02/05/15 20:18
ダイアログのフォームに付けたスクロールバーが変です。
ステータスとかツールボックスとか巻き込んでスクロール
してくれちゃってます。
そもそも、縦のスクロールバーがステータスバーとツールボックスの
上に重なって表示されちゃってるよ。
どうしたらいいの?

740 :デフォルトの名無しさん:02/05/15 20:21
>>739
オーナーが変?

741 :デフォルトの名無しさん:02/05/15 20:29
>>739
ほんとだ。(w

742 :741:02/05/15 20:31
>>739
パネルをフォームにDockStyle.Fillで貼りつけるよろし。

743 :デフォルトの名無しさん:02/05/15 20:50
button.OnClick += new EventHandler( this.ButtonClick );

を、デザイナ以外から追加するにはどのようにすれば良いのでしょうか?
(自作クラスへのイベントハンドラ追加の際など)

手動で追加するしかないのでしょうか?
オーバーロードは、ソリューションウィンドウから行えるのですが・・・

744 :デフォルトの名無しさん:02/05/15 20:52
>>731
独習C#おすすめするね。後はアスキーの出たばっかのがWindowsアプリ組む
のにはわかりやすいと思う

745 :デフォルトの名無しさん:02/05/15 21:14
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4091-2.html

↑これ?

746 :デフォルトの名無しさん:02/05/15 21:23
関数直下に using を使うと、どうもエラーがでるようなのですが、
C# の using ディレクティブの配置位置は限定されているのでしょうか?
それとも記述が間違っているのでしょうか?
ご存知の方おられましたら教えてください。

これは OK
using System;
using System.IO;

namespace bin2asm {
  class Class1 {
    static void Main() {
      FileStream s2 = new FileStream( "test.txt" , FileMode.Open , FileAccess.Read , FileShare.Read ) ;
    }
  }
}

これは NG
namespace bin2asm {
  class Class1 {
    static void Main() {
      using System;
      using System.IO;
      FileStream s2 = new FileStream( "test.txt" , FileMode.Open , FileAccess.Read , FileShare.Read ) ;
    }
  }
}



747 :デフォルトの名無しさん:02/05/15 21:26
>>746
それでエラー吐くのか。
こういうことができないんじゃ、Cのプリプロセッサ以下だな。

748 :デフォルトの名無しさん:02/05/15 21:28
>>747
あなた口だけだね。

  ∧_∧  
 (  ∀ )   むぅ!
 (    )
 | | |    Σ ∩∩ 
 (__)_)    (゜x゜ )○


749 :デフォルトの名無しさん:02/05/15 21:28
>>746-747
はぁ?usingに何を期待しているのですか?単なるプレフィックスの省略なんですけど?

750 :デフォルトの名無しさん:02/05/15 21:30
これで解決
namespace bin2asm {
  class Class1 {
    static void Main() {
#include <System>
#include <System.IO>
      FileStream s2 = new FileStream( "test.txt" , FileMode.Open , FileAccess.Read , FileShare.Read ) ;
    }
  }
}

751 :デフォルトの名無しさん:02/05/15 21:31
>>746
コンパイルユニットの先頭か、ネームスペース本体の先頭にしか使えない。
↓の C.2.6 参照。

ms-help://MS.NETFrameworkSDK.JA/csspec/html/vclrfcsharpspec_C.htm

752 :デフォルトの名無しさん:02/05/15 21:31
>>749
M$に躍らされたバカ一人、と。

753 :デフォルトの名無しさん:02/05/15 21:32
>>752←1年後、一人だけ踊ってないバカ。

754 :デフォルトの名無しさん:02/05/15 21:34
>>747
意外と言語仕様汚いよね。後発なくせに

755 :デフォルトの名無しさん:02/05/15 21:35
>>754
論拠なしの批評はネタと見なされます。

756 :デフォルトの名無しさん:02/05/15 21:36
>>755
なんでそんな神経質なの?

757 :デフォルトの名無しさん:02/05/15 21:37
クソなだけに煽られるのが怖いのさ(プププ

758 :デフォルトの名無しさん:02/05/15 21:38
>>751
サンクス!
できればブロックの先頭でも指定できると便利なんですが・・・
まあ、そのうちできるようになる事を期待しましょう。


759 :デフォルトの名無しさん:02/05/15 21:38
>>758
そういう事はリリースする前に言えっての(w

760 :not 755:02/05/15 21:40
>>756 過去に何度かそういう理由でスレが荒れたから、かも。

761 :デフォルトの名無しさん:02/05/15 21:42
Delphi戦争はDelphi厨とVB厨の和解という意外な結末で幕を閉じた。
VB.NET厨(書けるかどうかも怪しいが。通称、このスレの癌さん)が目を付けたのがC#
VB.NETと似たようなレベルの言語仕様。これなら煽りがいあるんじゃない?
癌さんの自作自演は今日も続く・・・。

762 :デフォルトの名無しさん:02/05/15 21:45
つーか隔離スレでやれよ。本スレ荒らしていいならこっちも出向くぞ。

763 :739:02/05/15 21:58
>>742
なるほど、パネルにスクロールバーを付けろと。
どうもありがとう。解決しました。

764 :デフォルトの名無しさん:02/05/15 22:09
>>758
using System;
using System.Reflection;
using System.Windows.Forms;
using System.IO;
:
FileStream fs;

ってなってるとき、コンパイラがFileStreamを解決できないのでusingを順番に引っ張ってきて、
System.FileStream・・・×
System.Reflection.FileStream・・・×
System.Windows.Forms.FileStream・・・×
System.IO.FileStream・・・キタ━━(゚∀゚)━━ !!
ってやるだけ。だからブロックとか全然関係ない。さよーなら。

765 :デフォルトの名無しさん:02/05/15 22:56
C#の配列って、どっからどうみてもCのポインタだよね。
Cでいう配列は、C#ではどうやって利用するの?

766 :デフォルトの名無しさん:02/05/15 22:59
>>765
>C#の配列って、どっからどうみてもCのポインタだよね。
?まぁ、オブジェクト扱いになったけどね。

int[] a = new int[];

javaやってるとあんまり違和感ないと思うけど。

767 :デフォルトの名無しさん:02/05/15 23:12
配列がクラスになったのはセンセーショナル




でもない

768 :758=746:02/05/16 00:50
>>764
よく分からないです・・・(^^;


769 :デフォルトの名無しさん:02/05/16 11:24
C#で、SOAP+HTTPS(HTTP+SSL)をサポートすることは簡単なのでしょうか?

770 :デフォルトの名無しさん:02/05/16 12:35
ArrayListって、リンクドリストじゃなくて、配列ですよね?
リンクドリストってないんですか?

771 :朝までC#:02/05/16 16:26
うーん 黄色い本のデリゲートの説明がよくわからない。
優しい説明のある本かURLをご存じないですか?

772 :デフォルトの名無しさん:02/05/16 16:37
>>771 優しいかどうかは各自判断よろ。
http://black.sakura.ne.jp/~third/cs54.html

773 :朝までC#:02/05/16 16:49
普通にメソッドやプロパティ参照は、電話を書けて情報交換みたいなもので、
デリゲードやイベントなどのコールバックは、
「なんかあったらこの関数を呼び出してくれ」と
伝えておけば、なんかあったときに呼んでもらえる
んですよね?
this.Resize += new System.EventHandler(this.ExTextBox_Resize);
と、書くのは、ユーザーコントロールの大きさの変更があったら
呼んでやるぞリスト(左の項)に追加(おそらく演算子のオーバーライド)
する形になっていて、そういった呼び先(関数へのポインタ)は、
System.EventHandlerの戻り値が関数へのポインタのようになっていて、
引数のthis.ExTextBox_Resizeを登録してやる

しかし、この関数へのポインタへ変換するらしきものが
System.EventHandlerだけじゃなくて、
System.Windows.Forms.LayoutEventHandlerとか
他の種類もあるのは何故ですか?

そしてこれらは、デリゲートなどの機能と密接に
関わっているんですよね?うーん。

たとえば、
TextBoxをユーザーコントロールでくるんで、
TextBoxのChengeイベントを、拾って文字の長さを
1文字にしてからそれを張っているフォームに
Chengeイベントを中継する場合の流れで
教えていただけませんか?


774 :デフォルトの名無しさん:02/05/16 17:10
>>773 本読むのもいいけど、コード書いみた?
EventArgsの派生型の種類が多数あって
デリゲートの型が当然違ってくるからいくつもいるの。
別にイベントにsender とEvetnArgsの派生型がいるわけじゃない。
自分で書いてみりゃわかるって。



775 :デフォルトの名無しさん:02/05/16 17:11
>>773
まったく解読できん。(w

776 :773:02/05/16 17:13
>>774 タイプミスりまくりだな。スマソ

777 :774:02/05/16 17:14
>>776 つか名前までミスった。ちと寝る はぁ、、

778 :デフォルトの名無しさん:02/05/16 17:20
774 さんが退出されました

779 :デフォルトの名無しさん:02/05/16 18:32
Delegateって+=演算子使えますけど複数のデリゲートを代入して一気に実行とか出来るんですか?

イベントハンドラに複数のメソッド割り当ててみたり。

780 :デフォルトの名無しさん:02/05/16 18:44
>>779
delegateキーワードで作ったのはデフォルトでマルチキャスト。

781 :デフォルトの名無しさん:02/05/16 18:50
>>773
この人↓に聞いてみれば。
http://www.atmarkit.co.jp/fdotnet/technology/index/index.html
「また、本稿に関するご質問、ご意見、取り上げてほしいテーマなどがあったら、
ぜひ掲示板(Insider.NET会議室)の方に書き込みをお願いしたい。
特に.NET Frameworkに関する情報では、WhatやHowが紹介されているだけで、
Whyが解説されていないものがほとんど、というのが筆者の現在の率直な感想だ。
筆者は本稿で、できるだけWhyを解説したいと思っているので、
もし知りたいWhyがあったらぜひ教えていただきたい。一緒に考えてみよう。」

782 :デフォルトの名無しさん:02/05/16 18:52
>>781
C#入門やってたあの人には聞かないのか?(w

783 :デフォルトの名無しさん:02/05/16 18:55
>>782
聞きたくないだろ?君も。(w

784 :デフォルトの名無しさん:02/05/16 21:05
>>781
漏れはAppDoaminをキボン。
プロセスでもなくスレッドでもなく、どうしてAppDomainという単位が必要なのか。

785 :デフォルトの名無しさん:02/05/16 21:35
AppDomain間の通信ってどうやるのか例示キボン

786 :デフォルトの名無しさん:02/05/16 22:01
>>785
ん?Remotingのことかな?

787 :デフォルトの名無しさん:02/05/16 22:05
>>786
あ、適当言ってみただけっす
プロセス間通信よりも低コストで通信できるのなら
AppDomainの価値があるかなあとか思って...

788 :デフォルトの名無しさん:02/05/16 22:14
>>787
Remotingも一応プロセス間通信だよ。

789 :デフォルトの名無しさん:02/05/16 23:24
>>788
AppDomainが同一プロセスにある場合は、なんらかの最適化が
行われるんでしょうか?

790 :デフォルトの名無しさん:02/05/16 23:29
すいません。質問君です。unsafeなコードを書かずに、
ROPを使ったBitblt相当の画像処理はできないのでしょうか。
リファレンスを探したんですが、そういった機能が見つからないんです。

791 :デフォルトの名無しさん:02/05/16 23:30
>>790
論理演算くらい自前でやるのも吉。
Frameworkに頼るのも吉。

792 :デフォルトの名無しさん:02/05/16 23:30
GDI+ってダメなん?

793 :デフォルトの名無しさん:02/05/17 00:20
GDI+はいろいろ面白い機能があるみたいなんですが、
ROPはサポートしていない?ぽいので。
自前でやるか、GDI呼び出すか考えてみます。

794 :デフォルトの名無しさん:02/05/17 00:20
>>785
AppDomain越しのメソッド呼び出しのサンプル作ってみた。
こちらはHello.dllで。

using System;

public class Hello : MarshalByRefObject
{
  public string SayHello() {
    return "Hello World!!";
  }
}

795 :794:02/05/17 00:21
こっちが呼び出し例。
AppDomainのアンロード後、もう1度呼び出そうとしても例外が起きるのを確認してちょ。

using System;

class Test
{
  public static void Main() {
    try {
      AppDomain domain = AppDomain.CreateDomain("MyDomain");

      Hello h = domain.CreateInstanceAndUnwrap("Hello", "Hello") as Hello;
      Console.WriteLine( h.SayHello() );

      AppDomain.Unload(domain);

      // AppDomainをアンロード後、もう1度呼び出してみる。
      Console.WriteLine( h.SayHello() );
    }
    catch (Exception x) {
      Console.WriteLine("例外 : " + x.Message);
    }
  }
}

796 :794:02/05/17 00:22
んで、確認できたらさらにこういうケースで確認してちょ。

1. Helloクラスをただのクラスにした場合どうなるか。

  public class Hello

2. HelloクラスをMBROじゃなくて値渡しにしたらどうなるか。

  [ Serializable ]
  public class Hello

3. AppDomainを作らず、CurrentDomain上で今までのコードを動かしたらどうなるか。

このへんって.NETでも半端じゃなくむずかしい分野なのよねえ...。

797 :デフォルトの名無しさん:02/05/17 00:50
>>794
スバラシイ!早速試してみます!
しかしこりゃあ難しそうですね、COMのアパートメントでも見たような...

>Hello h = domain.CreateInstanceAndUnwrap("Hello", "Hello") as Hello;
>Console.WriteLine( h.SayHello() );

別ドメインでインスタンス作って
そのインスタンスのメソッドを呼び出すんですか・・・
頭クラクラしてきました(笑)

>このへんって.NETでも半端じゃなくむずかしい分野なのよねえ...。

AppDomainに何か惹かれるモノを感じたので、
なんとか理解してみたいと思います。

798 :デフォルトの名無しさん:02/05/17 03:54
>>795
AppDomainとHelloオブジェクトが__TransparentProxy型とかいうのになってるね。
何か壮大な仕掛けがあるのか・・・。

799 :デフォルトの名無しさん:02/05/17 04:07
いまだにAppDomainがなんなのかよくわからない。。。ウワァァン…

800 :デフォルトの名無しさん:02/05/17 08:22
>>799
ここ見るよろし。

ms-help://MS.NETFrameworkSDK.JA/cpguidenf/html/cpconapplicationdomains.htm

801 :デフォルトの名無しさん:02/05/17 09:01
>>792
GDI+ってWindows2000にはなかったんじゃ?
OFFICEXPを入れると無理やり入ってくるみたいだけど。

802 :デフォルトの名無しさん:02/05/17 10:30
.NET Frameworkについてくる

803 :デフォルトの名無しさん:02/05/17 11:30
VisualC#Standerdについている
これから始めるC#
という小冊子の使用感ははいかがなものでしょうか?


804 :デフォルトの名無しさん:02/05/17 16:12
>>803
漏れもチラッと目を通した程度なんだが、
「これから始める」と書いてる割には他のプログラミング言語の経験者でないとちょっと読めなさそうな感じ。

805 :デフォルトの名無しさん:02/05/17 16:31
>>804
便乗。VC# STDもライセンスは1ユーザで複数マシンにインストール可能なんですか?

806 :デフォルトの名無しさん:02/05/17 16:42
>>805
購入者のみが使用するならOKなんじゃない?

807 :803:02/05/17 16:54
確かに付属の小冊子はまったくの0からは厳しいのかも。
と、VC#買ってきて思った。
でも、CとC++の構文くらい知っていれば何とかなるかも、と思ったりして。

また、インストールの件は1人が使うならコピーして使っても良いとは使用許諾書に書いてある。
企業でも1人に対してとなっております。
複数台のPCにインストールしてもいいのでは、とは思います。

808 :デフォルトの名無しさん:02/05/17 23:00
>>801
> GDI+ってWindows2000にはなかったんじゃ?
えっ、ネイティブに半透明に対応してるんでWin2000は入ってるんじゃないの?

809 :デフォルトの名無しさん:02/05/18 12:43
Socketについてわかりやすいサイトとか書籍とかない?
(書籍はないか・・・)

810 :デフォルトの名無しさん:02/05/18 13:07
>>808
半透明サポート = GDI+搭載
ではないでしょ。

>>809
http://pc.2ch.net/test/read.cgi/tech/1006258198/

811 :810:02/05/18 13:09
あ、C#でのSocketの使い方という事か。勘違いした。スマソ。

812 :808:02/05/18 17:20
>>810
ttp://www.interq.or.jp/jupiter/philsci/iw-html-02/shell-06a.html
に出てくる
『月刊ASCII DOS/V ISSUE』の記事を読んで勘違いしてました。
正直すまん。

WindowsXPには付属。
.NET 又は OfficeXPをインストールすると GDI+が入る。
と言うことですね。

813 :デフォルトの名無しさん:02/05/18 23:32
=?iso-2022-jp?B?GyRCNjUkKCRGJC8kQCQ1JCQhIxsoQg==?=

↑メールのこういう文字列をデコードしたいんですが
どっかにサンプルコードが掲載されてたりしませんでしょうか?

814 :813:02/05/18 23:33
age忘れた…
どなたかお願いします。

815 :デフォルトの名無しさん:02/05/18 23:33
>>813
BASE64?

816 :813:02/05/18 23:42
>>815さん
BASE64関連は System.Convert にあるものが使えそうなのですが
Quotedエンコードな場合もあるみたいなので…。よくわからん。
結構汎用的なコードだと思うんで、もし前に誰かが書いたものが
あるなら、是非裾分けしてもらたい次第であります。

817 :デフォルトの名無しさん:02/05/18 23:44
>>816
後、uencodeとか。

818 :デフォルトの名無しさん:02/05/19 14:29
C#から、unlha32.dllのUnlhaFindNextを呼び出すと、1回目から-1(検索終了)が返ってきてしまいます。
誰か試したことある人います?


819 :デフォルトの名無しさん:02/05/19 16:15
マシン共有してて、C#使う場合はどうすんだ?
共有してるのは外注同士で、
完全に別プロジェクト。他人。無関係。
同じ日に作業する事は無い。
予算が無いのでマシンを分けられません?
ユーザー毎にC#インストールできんの?


820 :デフォルトの名無しさん:02/05/19 16:19
何が言いたいのか良くわからないけど、普通マルチユーザー対応では。

821 :デフォルトの名無しさん:02/05/19 17:51
WinXP対応を謳っている場合はマルチユーザー対応ですね。

822 :デフォルトの名無しさん:02/05/19 17:51
構造体をbyte[]に変換したいのですが、どうすればいいんでしょうか…

823 :デフォルトの名無しさん:02/05/19 17:52
>>818
冷静に考えて先にFindFirst呼ぶべきではないかと?

824 :初心者:02/05/19 17:59
C♯かjavaどっちを始めればいいと思いますか?
プログラムは組んだことありません。

825 :デフォルトの名無しさん:02/05/19 18:00
>824
外出だがジャヴァ

826 :デフォルトの名無しさん:02/05/19 18:01
819=824?
目的にもよりますが、学習のためであるならどちらでも構いません。
今のところJavaのほうがいい本が多いので、そちらをすすめます。

827 :デフォルトの名無しさん:02/05/19 18:01
>>824
まず、ObjectPascalかC++を覚えて、作ったオブジェクトは必ず解放しなければならないことを学んで下さい。

C#/Java -> C++ -> 恐ろしい量のメモリリーク -> クビ

828 :824:02/05/19 18:10
>825,826,827
ご丁寧なレスありがとうございます。
C#はC++の改良版でJavaとC++のいいとこ取りという話を
雑誌で見かけたのですが、この解釈で正しいのでしょうか?


829 :デフォルトの名無しさん:02/05/19 18:11
いいとこと思うか悪いとこと思うかは人それぞれ

830 :デフォルトの名無しさん:02/05/19 18:14
>>828
C++のしがらみだらけの機能を整理し、特に重要でない機能を省いたもの。
だからC# -> C += 0.5

831 :デフォルトの名無しさん:02/05/19 18:17
>>828
すみません、その手の発言はフレームが発生するので避けてくださいな。
初歩的な学習のうちはC#もJavaも変わりませんよ。

832 :デフォルトの名無しさん:02/05/19 18:19
>>827
なんか凄く同意
メモリリークをまったく知らないプログラマは
いざ別の言語を使おうとするとパニックになりかねない

C++のようなGCのない言語の仕事が金輪際なくなるのなら話は別だけど

833 :デフォルトの名無しさん:02/05/19 18:20
空のImageオブジェクトを作成する方法がわかりません。
どなたかご存知ありませんか。


834 :デフォルトの名無しさん:02/05/19 18:21
>>831
揚げ足取る気はないが文章全体痛いから敢えて潰す。
フレームって何だ?

835 :デフォルトの名無しさん:02/05/19 18:21
>>833
Image img;

836 :824:02/05/19 18:22
>829,830,831
質問ばかりしてすいませんでした。どうもありがとうございました。

837 :デフォルトの名無しさん:02/05/19 18:23
>>834
おまえのほうが痛い。

838 :デフォルトの名無しさん:02/05/19 18:29
>>835
Imageは抽象クラスなので単独でインスタンスは作成できません。
CreateImage(幅,高さ)みたいなメソッドを探しているのですが、見つかりません。

無理やりビットマップをメモリに作って、ストリームからロードするしかないのでしょうか。


839 :デフォルトの名無しさん:02/05/19 18:33
>>838
継承して仮想関数何とかしてオーバーライドする。

と言うのが教科書的答え。



840 :デフォルトの名無しさん:02/05/19 18:35
>>834
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=flame&sw=0

841 :デフォルトの名無しさん:02/05/19 18:36
>>832
オブジェクトに関して生成後は無責任でいれるのがGCの良いところ。やるだけやって後はぽい。
GCの無い言語は中絶(不謹慎な例えスマソ)まで確実に女の名前を覚えていなければならない。

ヤリ逃げC#と責任感の固まりのC++が同じ生きかたをしているとは到底思えない。

842 :デフォルトの名無しさん:02/05/19 18:37
Imageは継承できないとかいう話だった記憶
Bitmap使え

843 :デフォルトの名無しさん:02/05/19 18:40
>>839
Imageオブジェクトは継承できないようになっているようです。
なぜなら一切ビット配列にアクセスできるようなインターフェイスが含まれていません。

独自のエンコーダー/デコーダーすら書けそうにありません。
なんでこんな糞仕様なんでしょうか。


844 :デフォルトの名無しさん:02/05/19 18:40
>>841
GCがある方が安全だというのはその通り

ただ世の中には自分で言語を選べない状況というのもあるから
「使ったメモリは不要になったら開放しなければならない」
ということは体験的に知っておいたほうがいいと思われ
(頭で分かったつもりになるのではなく、実際にそういうコードを書くということね)

845 :843:02/05/19 20:41
なぜImageにビット配列のアクセスがないか解りました。
Imageはピクセルベースのグラフィックと、ベクトルベースのグラフィックを統一的に扱うための
アダプタなわけですね。
ピクセルへのアクセスはインスタンスを調べてBitmapにキャストしてから行うべきなのですね。
謎が解けました。

ただ、やはりBitmapを直接作成する方法も用意されていないようです。
Win32APIでCreateBitmapしてからハンドルを渡たすしかないのでしょうか、
あまりWindowsハンドル関係は抽象度が下がるので使いたくはないのですが。


846 :843:02/05/19 20:51
すみません勘違いでした。
Bitmapはインスタンスが直接作成できるのですね。

Bitmap = new Bitmap(幅,高さ);

で解決しました。
お騒がせしました。


847 :デフォルトの名無しさん:02/05/19 20:52
よくわからない使用ですね。
Bitmapまで直接作成できないとは。

848 :デフォルトの名無しさん:02/05/19 20:52
>>846

あなたのオブジェクト指向結構独特っぽい。


849 :843:02/05/19 20:58
>>848
えっとどういう意味ですか。


850 :デフォルトの名無しさん:02/05/19 21:13
>>849
>>848 ではないけど、そう思いますよん。派生クラスだけで解決すればよいと思いますです。

851 :デフォルトの名無しさん:02/05/19 21:21
なんか急に厳しいスレになったなぁ・・

852 :デフォルトの名無しさん:02/05/19 21:22
>>851
>独自のエンコーダー/デコーダーすら書けそうにありません。
>なんでこんな糞仕様なんでしょうか。

自分の力不足をライブラリに転嫁する様な人間に優しくしろと?

853 :818:02/05/19 21:34
>>823
すいません。省略してましたが、UnlhaFindFirstはもちろん先に呼んでます。
長くなるけど、ソースをアップしたほうがいいですかねえ?

854 :デフォルトの名無しさん:02/05/19 21:42
C#ってさ、なんかC++っぽくなったVBってかんじ。

855 :デフォルトの名無しさん:02/05/19 21:45
JavaっぽいDelphiと言ってくださいw

856 :デフォルトの名無しさん:02/05/19 21:53
C#(&VB &Delphi)の共通点

厨にうける取っつき安さ
とことん作り込むには向かない

857 :デフォルトの名無しさん:02/05/19 21:54
C丼、汗だくで。

858 :843:02/05/19 21:54
>>850
派生クラスだけで解決するというのはどういうことですか?

>>852
いくら力があっても、肝心の部分を抽象化して隠蔽されたのでは何もできないでしょ。
昨日VS.NETを買ってきたばかりなので、ついImage、Graphics関係を見たときに、
実態のないJavaのImageクラスを思い浮かべて失望してしまったのです。
C#にはLock/Unlock,SetPixel/GetPixelがあってホッとしましたけどね。

それに実際問題、独自のエンコーダー/デコーダーを追加できるような仕様にはなっていないように見えますが。


859 :デフォルトの名無しさん:02/05/19 21:58
>>858
>肝心の部分を抽象化して隠蔽
オブジェクト指向の肝。

860 :デフォルトの名無しさん:02/05/19 21:58
>>856
C++でC#で作ったぐらい作りこんでください。

861 :デフォルトの名無しさん:02/05/19 22:01
>>860
日本人に理解できるくらい、文章を作りこんでください。

862 :デフォルトの名無しさん:02/05/19 22:05
>>861
外人は国へ変えれ。

863 :デフォルトの名無しさん:02/05/19 22:08
まあC#は、出来合いの物を、組み合わせてありがたく使わせてもらう、
デパチカの総菜みたいなもんだな。適度な負担で、ある程度の物を。
手抜き主婦には愛されるが、一流シェフには無縁の物。

864 :デフォルトの名無しさん:02/05/19 22:11
>>862

おれもC#を擁護したいが・・・ あんたの日本語は良くわからん

865 :デフォルトの名無しさん:02/05/19 22:12
独自のエンコーダー/デコーダー
System.Drawing.Imaging.ImageCodecInfoあたりかな名前だけ見ると

866 :843:02/05/19 22:13
>>859
確かに抽象化は肝ですが、
派生クラスにすら内部へのアクセスを許さない仕様だと、
結局与えられたこと以外何もできないライブラリへと成り下がります。

Javaなどは結局少し凝ったことをしようと思うと、
すべてint配列上で自前で処理してからImageを作成するという非常に効率の悪い方法しか取れませんでした。


867 :デフォルトの名無しさん:02/05/19 22:13
>>866
>結局与えられたこと以外何もできない
オブジェクトの肝

868 :843:02/05/19 22:15
>>865
もちろん自分もその辺は調べたのですが、どこにも実体が見えないのです。
どうもWindowsが標準で提供するCodecしか使えないみたいにも読めます。


869 :デフォルトの名無しさん:02/05/19 22:15
>>867
ギャクだよね?

870 :デフォルトの名無しさん:02/05/19 22:24
C++が鉄の中華鍋なら、C#はテフロン加工の鍋。
どちらがいいかは、使う人間により違う。
単純に鍋だけ比べてもねぇ。

871 :843:02/05/19 22:25
>>867
標準ライブラリとしては失格かと。


872 :デフォルトの名無しさん:02/05/19 22:36
843さん、C#は用意されている物を組み合わせて、ソフトを作るもんです。
用意されていない物を無理につくりこんでも、まともな速度では動かないでしょう。
他の言語を使用するか、他の言語でコンポーネントを作成して、C#から使いましょう。

873 :デフォルトの名無しさん:02/05/19 23:03
テフロン鍋に多くを期待するべきではないでしょう。
でもImageはC#じゃなくて.NET Class Libraryの話なので、
他の言語でも同じことでしょう。

874 :デフォルトの名無しさん:02/05/19 23:21
Yahoo KoreaのC#カテゴリ
http://honyaku.naver.co.jp/ktj.cgi?trn=1&frmbar=0&url=http://kr.dir.yahoo.com/Computers_and_Internet/Programming_Languages/C_/

875 :デフォルトの名無しさん:02/05/19 23:24
ヒョンゼチァングage

876 :デフォルトの名無しさん:02/05/19 23:30
>>874
ブラクラ似、注意

877 :デフォルトの名無しさん:02/05/20 03:01
IEnumeratorをコピーしたくて、以下のコードを書いたのですが、
これでいいのでしょうか?もっとスマートな方法があるような気がして・・・。

IEnumerator p,q;
〜中略〜
q = (IEnumerator)((ICloneable)p).Clone();


878 :デフォルトの名無しさん:02/05/20 03:15
pは無理にIEnumerator型で宣言しないで、具体的なクラス型でいいのでは?
そうすれば q = (IEnumerator)p.Clone(); で済むし。

879 :デフォルトの名無しさん:02/05/20 03:18
なんか勘違いしていると思われ。Cloneされるのはclassのインスタンスで、interface
なんざ、クローンしようがない。
だから、
q = (IEnumerator)p.Clone();
で十分じゃないの?
そもそも
class X : IEnumerator {
...
}
X p = new X();
X q = (X)p.Clone();
foreach (Y y in q) {
 ...
}
でいいんじゃないかい?

880 :デフォルトの名無しさん:02/05/20 03:52
>>878さん、>>879さん、レスありがとうございます。
けど、ダメでした。
「'System.Collections.IEnumerator' に 'Clone' の定義がありません。」
とエラーが出てコンパイルできませんでした。



881 :デフォルトの名無しさん:02/05/20 09:50
using System.Collections;
しているにも関わらず、

public Specialized.StringCollection Msg;

ではコンパイルが通らず、

public System.Collections.Specialized.StringCollection Msg;

と、しないと動きません。

using以外にすべきことがあるのでしょうか?

882 :デフォルトの名無しさん:02/05/20 10:21
>>881
using System.Collections.Specialized;
して、
public StringCollection Msg;
じゃない?

883 :デフォルトの名無しさん:02/05/20 10:24
>>882
例えば

using System

なら、Systemを省略して書けるんですよね。
じゃあ、

(System.)IO.File

とかも出来そうな。

なんかいまいち概念がわからない。。。

884 :デフォルトの名無しさん:02/05/20 10:42
>>883
using System;は
Systemを省略可能にするんじゃなくて
System名前空間内の名前にSystem.をつけずにアクセスできるようにするだけ

885 :デフォルトの名無しさん:02/05/20 10:50
>>884
usingしてもその名前空間に従属する名前空間にはアクセスできないと。
楽しようと思ったらusingだらけにしなきゃいけないのか。なるほど。

886 :デフォルトの名無しさん:02/05/20 11:10
実際に見ていないし、目次もないのでよーわからんが、
雑誌でこんなのがあった。

日経BPパソコンベストムック
始めよう!C#
.NETと新言語C#をすぐに体験
http://store.nikkeibp.co.jp/item/main/148222168960.html

887 :デフォルトの名無しさん:02/05/20 11:18
>>886
体験版ほしさに買った。
内容は・・・雑誌のDelphi始めよう!みたいなレベル。

888 :デフォルトの名無しさん:02/05/20 18:29
さすがartonさん。この本はお勧め。
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4091-2.html

889 :デフォルトの名無しさん:02/05/20 18:30
artonって誰?

890 :デフォルトの名無しさん:02/05/20 21:17
Ruby使いだろたしか。どうでもいいな。しかし。

891 :デフォルトの名無しさん:02/05/20 22:18
>>890
いや、Ruby使いだろうがなんだろうが、この本はC#初心者のキラー本だ。

892 :デフォルトの名無しさん:02/05/20 22:30
>>891
確かにね。
今日、同僚が買ってきてたのを読ませてもらった。
黄色本とあわせて読むといい感じだな。
イベントやデリゲートのあたりは特にこっちかな。
ただ、ページの割に密度が濃いので、若干読みにくいけどね。
あとは、「入門」ってことだが、完全なプログラミング初心者には
多分辛い。すでに別の言語やった人にとっての「入門」て感じだった。

893 :デフォルトの名無しさん:02/05/20 22:34
こういうメソッドを作りました。

//2文字以上のセパレータに対応したSplit
static public StringCollection SplitEx(String Src,String Sep)
{
StringCollection dat = new StringCollection();

Src += Sep;

do
{
dat.Add(Src.Substring(0,Src.IndexOf(Sep)));
Src = Src.Remove(0,Src.IndexOf(Sep) + Sep.Length);
}
while(Src.Length != 0);

return dat;
}

そこに、
Src = "1021649890.dat<>゜。゜。゜。゜。゜。゜。゜。゜。゜。゜ (31)";
Sep = "<>";
と言う値を与えても文字列が分割されません。
(dat[0] == "1021649890.dat<>゜。゜。゜。゜。゜。゜。゜。゜。゜。゜ (31)<>")
他の文字列ではうまくいくのですが。
問題点があれば指摘して下さい。
なお、問題はラウンジのスレッド名です。




894 :デフォルトの名無しさん:02/05/20 22:57
>>893
解答じゃないけど、Regex.Split の存在はご存知か?

895 :デフォルトの名無しさん:02/05/20 23:11
>>894
ありがとう、十二分すぎる回答です。

「ああ、正規表現が使えれば・・・」

と、ため息をつきながらコーディングしていた自分も今では良い思い出です。

896 :デフォルトの名無しさん:02/05/21 00:57
以前、classの中のプロパティをXMLで一気にシリアル化する美しいコードの
サンプルを拝見したのですが、プロパティを配列にしたい場合には、
どうするのが一番スマートなのでしょうか。
(WindowのPositionやSizeを覚えこませるのと同じように、
ListBoxに表示していたものを保存したいのです)

違うclassにして、インデクサにした場合、シリアル化できるのかな。
もうちょっと調べないと。
それとも同じclass内に、うまく書く方法があるのでしょうか。

それにしても、レジストリに変わる、読み書き可能な動的プロパティ
のクラスをどうして作ってくれなかったのかなあ。

897 :デフォルトの名無しさん:02/05/21 11:16
サイズ可変のダイアログを、指定したクライアントサイズ
でサイズの変更を止めたいのですが、やり方がわかりません。
MaximumSizeにクライアントサイズ+枠サイズをいれるのだと
思うのですが、枠の大きさがわからないです。
しかも、ステータスとかツールバーとかつけたらそのサイズも
計算しないといけない気がするし。
なにか方法あるんですか?

898 :デフォルトの名無しさん:02/05/21 11:48
>>893
はっはっは、何を馬鹿なことを・・・と思ったらホントだ・・・
>゜ ←この組み合わせが文字列検索素通りするみたい。

899 :デフォルトの名無しさん:02/05/21 16:19
>>896
配列でもArrayListでも問題なくシリアライズできたよ。

900 :デフォルトの名無しさん:02/05/21 16:25
>>897
System.Windows.Forms.SystemInformation を元に計算するとか。

901 :デフォルトの名無しさん:02/05/21 17:25
AppSettingsReader r = new AppSettingsReader();

*.configファイルの場所はどうやって設定すればよいのでしょうか?

902 :デフォルトの名無しさん:02/05/21 17:30
>>898
MSに連絡すべきでしょうかねぇ・・・。
結局正規表現で回避しましたが。

903 :デフォルトの名無しさん:02/05/21 17:32
>>901
configファイルはexeと同じディレクトリにある (exe名).config しか受け付けないよ。

904 :デフォルトの名無しさん:02/05/21 17:50
>>902
結構深刻かもな。
エラー処理してないASP.NETのプログラムを例外で落としたりできそうだ。

905 :デフォルトの名無しさん:02/05/22 01:04
C#でURLエンコーディングを行うにはどのような手段がありますか?

906 :デフォルトの名無しさん:02/05/22 01:11
>>905
System.Web.HttpUtilityクラスを参照してちょ。

907 :デフォルトの名無しさん:02/05/22 04:36
using System;
using System.Text;
using System.Web;

class A
{
 static void Main() {
  string url = "ttp://www.google.co.jp/search?hl=ja&q=%90%B3%82%B5%82%A2%83I%83i%83j%81%5B%82%CC%8Ed%95%FB";
  Console.WriteLine(HttpUtility.UrlDecode(url, Encoding.Default));
 }
}


908 :デフォルトの名無しさん:02/05/22 06:46
>>906-907
助かりました。
皆さんクラスライブラリは何で調べてますか?

909 :デフォルトの名無しさん:02/05/22 11:53
>>908
オンラインドキュメントを使いこなすことが大事。
インデックス、検索、全文検索。これらを使いこなすことも、
プログラミングする上で大切だよ。
本やサンプルコードを見ることもいいけど、それは効率が悪い。

910 :デフォルトの名無しさん:02/05/22 23:39
ワーカースレッドからイベントハンドラを削除すると処理がそこで
止まってしまう現象に悩まされています。
例外などではなく、全てのスレッドの処理がそこで停止してしまいます。

複数のスレッドがハンドラ追加したり削除したりしたりするものですが、
BeginInvokeなど試してみたんですが原因がいまいちわかりません。
なにか情報ありませんでしょうか?

911 :デフォルトの名無しさん:02/05/23 02:31
>>910 自己レスです。原因らしきものはわかりました。
別のスレッドがイベントハンドラを追加しようとする時に
別のスレッドがハンドラを削除しようとすると起こるみたいです。
全てが止まってフリーズしたみたいになるので、
正確なところはわかりませんが、、、

912 :デフォルトの名無しさん:02/05/23 03:18
>>911 また自己レスですが原因は違うところみたいです。
スレ汚してしまい、申し訳ない。

913 :デフォルトの名無しさん:02/05/23 04:04
C#、J#と来て、次はF#が。(藁

http://research.microsoft.com/projects/ilx/fsharp.htm

914 :デフォルトの名無しさん:02/05/23 08:38
早く・・・早くP#を・・・。

915 :デフォルトの名無しさん:02/05/23 09:43
>>913
この文章で出てくる「ML language」ってどう解釈したらいいの?

916 :デフォルトの名無しさん:02/05/23 11:59
NT Technology

917 :朝までC#:02/05/23 15:49
ユーザーコントロールでTextBoxを拡張しようとしています。
以下のようにTextプロパティをオーバーライトしたのですが、
拡張TextBoxを張った先のコードからは、Textプロパティが
見えるのですが、デザインのプロパティ一覧にはTextがありません。
よく考えるとユーザーコントロール自体がTextを持っているようなんですが、
最初からデザインからはTextが見えてなかったのです。
ちなみに、オーバーライトせずにExTextプロパティと
別の名前でプロパティを作ると問題有りません。
これはどうなっているのでしょうか?

private string strText;
public override string Text
{
get
{
strText = txtCtl.Text;
return strText;
}
set
{
strText = value;
txtCtl.Text = strText;
}
}


918 :デフォルトの名無しさん:02/05/23 16:13
>>917
txtCtlとは何ぞや?

919 :朝までC#:02/05/23 16:23
説明不足ですみません。TextBoxコントロールです。
ユーザーコントロールのソースです。

920 :デフォルトの名無しさん:02/05/23 17:11
public class TextBoxEx: TextBox
{
public override string Text {
get{
return base.Text;
}
set {
base.Text = value;
}
}

じゃないの?

921 :朝までC#:02/05/23 17:29
クラスのファイルを作ってやってみましたけど、
ツールボックスに乗っかりません。
GUIのデザイナで使えるようにするのにどんな条件があるのかな?
理屈でいうとユーザーコントロールに乗せるよりそれが一番素直な書き方
なんだけどなぁ・・・
TextChangeイベントもぶつかってる・・・うーむ。修行が足りない。

922 :デフォルトの名無しさん:02/05/23 17:33
>>921
>ツールボックスに乗っかりません。

それは自分から追加しないと駄目。

923 :デフォルトの名無しさん:02/05/23 18:02
>>921
>TextChangeイベントもぶつかってる・
嫌ならnewしなされ。って言うか親クラスのメンバくらい確認しながら実装しなされ。

924 :朝までC#:02/05/23 18:07
>>922
ありがとうございます。ううう・・・いままでユーザーコントロールを
使っていたのがアホみたいです。なんとも悔しい。これもVBの呪いか?

>>923
>>922 さんに指摘の方法でも同様の問題が出ると思われますので、
NEW で上書き実装してみます。・・・ってこの場合もイベントを
オーバーライドできるかもしれないので調べます。


925 :デフォルトの名無しさん:02/05/23 18:18
>>924
>いままでユーザーコントロールを使っていたのがアホみたいです。

これはMS推奨の正攻法なのでアフォじゃないと思われ。

overrideするかbaseのイベントにわたされたでぇがてを+=

926 :朝までC#:02/05/23 19:25
>これはMS推奨の正攻法なのでアフォじゃないと思われ。

複数のコントロールの組み合わせだとコンテナが無いと困るので、
やり方を統一しているのでしょうね。
単純にTextBoxを拡張したいだけなら教えて頂いた方法が
さっぱりしてていいです。・・・しかし。
普通にイベントを追加したら当たり前だけど、TextBoxのTextChaneイベントが
子である。ExTextBoxクラスと、それを貼り付けたフォームの両方に
イベントが行くようになりました。
しかし、ExTextBoxクラス中のTextChangeでBase.Textを変更すると
2回目のイベントが発生してフォーム側にも2回のイベントがいます。
オーバーライドしていないので当たり前ですね。
overrideしたりNewで新しいもので書きつぶしたりして
横取りすればいいのは判るのですが、基本がわかってないせいか、
あちこちにキーワードを入れてみても上手くいきません。
フォームで += とかで関数へのポインタを登録するときに、
その登録先をオーバーライドすれば良いと思って。
ExTextBoxクラスにて、
public override event System.EventHandler TextChanged;
で良いと思ったのですが上手く行きません。
何が間違っているのでしょうか?

927 :デフォルトの名無しさん:02/05/23 19:42
>>926
オーバーライド。
で、baseの処理を初めに済ます。
その後にbaseのイベントにNULLいれる。
その後に自分のイベントメソッド登録。



928 :デフォルトの名無しさん:02/05/23 19:53
>>926
何を言ってるのかさっぱり分からんぞ

929 :朝までC#:02/05/23 20:41
判りにくくてすみません。
イベントにNullを入れるとはどのような記述になるのでしょうか?
base.TextChanged に呼び出し先が入っているのでこれの中身を
編集するのでしょうか?
そして、それからExTextBoxが発信元の新しいTextChangedを
発行をすると言う意味でしょうか?
この方向で模索してみます。

やりたいことは、TextBoxを継承したExTextBoxを
作り、TextBoxの内容が変更されたらExTextBox内でそれを修正して、
その後に、ExTextBoxを貼り付けたフォームへTextChangedを
送りたいです。
ExTextBox内でのTextBox.Textへの修正作業によるTextChangedイベントは
ExTextBox内で止めてしまってExTextBox自身は普通のTextBoxと
互換の振る舞いをしたいと思っています。


930 :デフォルトの名無しさん:02/05/23 22:10
String型の文字列をSJISのByte[]に変換したいのですがEncordingの使い方がいまいちわかりません。
参考になる情報は無いでしょうか?

931 :デフォルトの名無しさん:02/05/23 22:36
>>917
Textプロパティをわざと隠してるのだと思われ。
見せるようにするにはattributeをつければよろし。

  [ Browsable(true) ]
  public override string Text
  {
    ...

932 :デフォルトの名無しさん:02/05/23 22:44
>>929
というか、どっちの方法でやってるの?
どっちにも読めてしまうので。

a) 継承

  public class ExTextBox : TextBox

b) コンポジション

  public class ExTextBox : UserControl
  {
    private TextBox textBox1;

933 :デフォルトの名無しさん:02/05/23 22:50
>>930 Encoding.GetEncoding(932).GetBytes( "foo");

934 :デフォルトの名無しさん:02/05/23 23:30
MemoryStream m = new MemoryStream();
BinaryWriter b = new BinaryWriter(m);
b.Write(ArrayList.Count);
for(int i = 0 ; i > ArrayList.Count ; i++){
  b.Write((byte[])ArrayList[i]);
}

上記のようにArrayListの内容をMemoryStreamに書き込んで

MemoryStream m = new MemoryStream(hoge);
BinaryReader b = new BinaryReader(hoge);
int ct = b.ReadInt32();
for(int i = 0 ; i < ct ; i++){
  ArrayList.Add(b.ReadBytes(sizeof(ArrayList内のオブジェクト)));
}

こんな感じで復元したいのですが、sizeof使うと怒られます。(unsafeには出来ない)
何か良い方法無いでしょうか?

935 :デフォルトの名無しさん:02/05/23 23:35
>>933
助かりました。精進します。

936 :デフォルトの名無しさん:02/05/24 00:04

WebBrowserにファイル経由ではなくStreamを使ってHTMLを流し込み
たいのです。

http://members.jcom.home.ne.jp/monazilla/document/directwrite.html

ここで照会されているのは、delphiでの方法ですがこれをC#で実現する
にはどうすればよいのでしょうか?

System.Messaging.ActiveXMessageFormatterのInitStreamedObject メソッド
周辺にヒントがありそうなのですが、よくわかりません。

よろしくお願いします。


937 :デフォルトの名無しさん:02/05/24 00:14
>>934
BinaryFormatter使った方が楽だと思われ。

938 :デフォルトの名無しさん:02/05/24 00:26
>>936
これかな。
http://discuss.develop.com/archives/wa.exe?A2=ind0103D&L=DOTNET&D=0&P=37862

939 :デフォルトの名無しさん:02/05/24 00:33
>>936
こんなのもあるよん。
http://discuss.develop.com/archives/wa.exe?A2=ind0202c&L=dotnet&F=&S=&P=13944

940 :936:02/05/24 00:55
ありがとうございます。>>938 and >>939
MSHTMLを使うんですね。

こんなのも見つけました。

http://www.csharphelp.com/archives/archive146.html


941 :デフォルトの名無しさん:02/05/24 09:56
Petzold, Richter 発売日予定がでた!
http://www.microsoft.com/japan/info/press/vs_net/vs_net.asp

942 :朝までC#:02/05/24 11:48
>>931 attribute の件ありがとうございます。

>>932 当初は、ユーザーコントロールを使った
コンポジションでしたが、>>920 さんのアドバイスを受けて
継承でやっています。
あのあと、@ITのC#入門のイベントの説明を読んで
勉強したのですが、書いてあることは理解したつもりですが、
(勉強になりました。)やりたいことの方は出来ていません。
ExTextBox内で
public override event EventHandler TextChanged;
とeventをオーバーライトしても

「C:\Org\dev\Menogaia\SangatuControlLibrary\ctlExTextBox.cs(36):
'SangatuControlLibrary.ExTextBox.TextChanged' : 継承メンバ
'System.Windows.Forms.Control.TextChanged' は、virtual、abstract、
または override に指定されていないので、オーバーライドできません。」

とエラーになります。



943 :デフォルトの名無しさん:02/05/24 12:19
>>942
Control.TextChangedイベントはvirtualではないので書き換え不可。
こういうときはControl.OnTextChangedメソッドの方をoverrideするよろし。

944 :デフォルトの名無しさん:02/05/24 19:23
net.sdkをdlしたんだけど、なんか使い方がいまいちわからないんです。
これってdosまどでやるんですか?

945 :デフォルトの名無しさん:02/05/24 20:36
>>944
コードはメモ帳とかで書いてください。
コンパイルするにはDOS窓を開いてcsc sourcefile.csとでもやってください。
コンパイル終わるとexeファイルができますので、それをWクリックするなりして起動してください。
なお作成したexeファイルは.NET Frameworkがインストールされている環境でないと動きません まる。

946 :デフォルトの名無しさん:02/05/24 22:05
>>945
優しすぎ。

947 :デフォルトの名無しさん:02/05/25 00:48
C#でCoCreateInstanceExに相当する関数は何ですか?


948 :デフォルトの名無しさん:02/05/25 00:55
>>947
Type.GetTypeFrom〜でTypeを取って、Activator.CreateInstance。

949 :947:02/05/25 01:09
>>948
Activator.CreateInstanceでリモートマシン名を指定できるんですか?


950 :名無しさん♯:02/05/25 01:19
次スレです。

C♯相談室 Part6
http://pc.2ch.net/test/read.cgi/tech/1022257078/l50

951 :デフォルトの名無しさん:02/05/25 01:20
>>949
Type.GetTypeFrom〜の方で指定できるよん。

952 :デフォルトの名無しさん:02/05/25 01:35
1ヶ月で消費か。

953 :947:02/05/25 01:47
>>951
どうもありがとう!

954 :デフォルトの名無しさん:02/06/02 01:28
保守

955 :朝までC#:02/06/09 00:37
保守


956 :デフォルトの名無しさん:02/07/07 21:08
保守

957 :デフォルトの名無しさん:02/07/07 22:35
保守


958 :デフォルトの名無しさん:02/07/07 22:39
補習

959 :デフォルトの名無しさん:02/07/07 22:43
♯さん、コテハンで活動してくれよ

960 :デフォルトの名無しさん:02/07/16 04:57
保守

220 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)