トップページ⇒tech
963コメント280KB

C♯相談室 Part5

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん♯NGNG

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


過去スレ・関連リンクは>>2-10あたり
0002名無しさん♯NGNG

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
0003デフォルトの名無しさんNGNG
関連スレ

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

お前ら頃し合いしてください
http://pc.2ch.net/test/read.cgi/tech/1013093589/
0004デフォルトの名無しさんNGNG
MSDN Online Japan
http://www.microsoft.com/japan/msdn/default.asp

Insider.NET
http://www.atmarkit.co.jp/fdotnet/
0005デフォルトの名無しさんNGNG
>>1 スレ立てお疲れ様です。しぃ#タン ハァハァ。
0006デフォルトの名無しさんNGNG
C#StandardとSDKの違いって何?
C#品切れだったので入荷するまで
とりあえずSDKを使ってみようと思ったけど、
これからプログラミングを始める者なのでよくわからない。
0007デフォルトの名無しさんNGNG
プロジェクトフォルダに作成される
<VSMacros>ってなんだい?
消してもまたはえてくるけど。
0008デフォルトの名無しさんNGNG
>>6

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

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

金あるひとは上、ない人(品切れで買えない人)は下かと。
0009デフォルトの名無しさんNGNG
>>7
文字通りマクロの保存場所。
VS.NETはOfficeみたいにマクロを使えるよ。しかもコードはVB.NET。
0010デフォルトの名無しさんNGNG
>>9
マクロか、そっかそのまんまだね。研究してみる。サンキュー。
0011名無しの高校教師でごわすNGNG
>8
実はC#とC++のスタンダード版を買ってしまった高校教師です。
アカデミック版を買えるのですが、例のアクティべーションとかいうものの
正体がわからないので躊躇して買わなかったのです。買うべきでしょうか
クラスライブラリが作れないとは痛かったです。でも、すでに膨大なクラス
が用意されているので必要はないかなとも思うのですが。。。

アクティべーション自身を詳しく(裏事情も含めて)教えてください。
私はしょっちゅう環境を全部消してはまた再インストールするのです。MSから
つけねらわれるのでしょうか?
0012デフォルトの名無しさんNGNG
>>11
こっちで聞いた方がいいんじゃない?
http://pc.2ch.net/test/read.cgi/tech/1017674939/l50
0013名無しの高校教師でごわすNGNG
>12
いや、ここで聞きたいのです。
0014デフォルトの名無しさんNGNG
つか、別にスタンダード版買ったのならそれでいいじゃん。
0015デフォルトの名無しさんNGNG
再インストールにしてもパーツ変えたにしても、電話するだけでオッケー
せっかく学生なんだから特権使ってVS.NET買えばいいのに、
おれだったらそうするね。

おれは、貧乏なC#Stdユーザーだけどな。
0016名無しの高校教師でごわすNGNG
C++を使ってみた結果、やりたいことはほとんどC#で実現可能だと
いうことが分かりました。お金がない人はVC++を買う必要はまったく
ありません。
0017名無しの高校教師でごわすNGNG
>15
アドバイスありがとうございます。
私は貧乏な「40歳」の高校教師です。学生ではありません。
統合開発環境はなんだかごちゃごちゃしていてまだ勝手がわかりません。
とりあえず、csc.exeで一通りC#の言語体系を眺めてみている最中です。
00188を一生懸命書いたやつNGNG
買ったんならそれ使えばええじゃんかー。
これからプログラミング始めるって書いてあるっしょ、
ならライブラリなんぞ作るのは当分さきじゃんかよ〜ぐわー
次のバージョンのときVS買ってもいいだろ〜あ〜?
0019デフォルトの名無しさんNGNG
>>18
同意。
初期のソースなんて汚くてあとで使いまわしするのに耐えないことが多いんだし。
0020デフォルトの名無しさんNGNG
高校教師うざ、、、VS.NETスレ逝け。
0021デフォルトの名無しさんNGNG
明日VB.NETカンファレンス行く人。。。いる?
0022学習がはかどらない男NGNG
ねぇねぇ、あんたら今なにつくってんの?
もしくは
どんな感じで勉強してる?
ねぇ。

>>21
C#のカンファレンスはないのん?
0023デフォルトの名無しさんNGNG
>>22
アリを眺めてる
0024デフォルトの名無しさんNGNG
マジで教師ならそんなやつの授業うけたかねー!!
失せろ!バカ教師!
0025学習がはかどらない男NGNG
あ、なんか生態系つくって闘わせるやつかえ?
レベル高いのぅ。。。
0026開発もはかどらない男NGNG
んーなんか違うような気がしてきた・・・
アリは肉食動物なの?
0027デフォルトの名無しさんNGNG
雑談は他でやってくれる?独り言も他でね。
新手の荒しだな。放置しよ。俺もな。スマソ。
0028独り言すらはかどらない男NGNG
へいへいスンマセンでした。
0029デフォルトの名無しさんNGNG
オハヨーゴザイマス

しっつもーん。

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

この場合のhogehogeはcase 1:で定義されてるけど、
case 2:などなど、switchスコープ内なら使いまわせるんだよね?
(C++とかでもできたっけ?)
0030デフォルトの名無しさんNGNG
>>29
気持ち悪い感じだけど、できるね。
C++だと出来ないよね。
0031デフォルトの名無しさんNGNG
>>30

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

C#って愉快。
0032デフォルトの名無しさんNGNG
>>11
もーおそいだろうけど。学生・教員ならアカデミックパック買うよりもアカデミックオープンライセンスで買うほうがよい。
アクティベーションなくなるし、若干安いし。

その代わり初回に5ライセンス分(別のソフトとあわせてでもいいが)買わなきゃいけないのが難点だが、
一緒に買う仲間を募ればどうにかなるし。
0033デフォルトの名無しさんNGNG
属性として指定するFlagsAttributeって実際どんな効能があるんでしょう?
たとえば、enumの値がOR出来るように割り当ててくれるわけでもないようだし・・。
0034デフォルトの名無しさんNGNG
ファイルから一行ずつ読み込むにはどうしたらいいのでしょうか。
Readとかで読んで、改行をサーチしないとダメですか?
0035デフォルトの名無しさんNGNG
>>34
ReadLine
003634NGNG
>>35
できました。ありがとうございます。
0037デフォルトの名無しさんNGNG
C#の本に、「単一文字からなる文字列は文字リテラルと異なる。例えば、'k'と"K"は違う」とあるんですが、
これはどういう意味なんでしょうか。
例で示してもらえると助かります。
0038デフォルトの名無しさんNGNG
>>37
型の取り扱いが違うということでは。

Console.WriteLine( 'k'.GetType() );
Console.WriteLine( "k".GetType() );
0039名無しの高校教師でごわすNGNG
>32
ありがとうございました。店頭には見あたらなかったので
店員と相談します。
0040デフォルトの名無しさんNGNG
初心者、他力本願の方にやさしいスレですね。
以後、利用させていただきます。
0041中日ファン@横浜さんが好きモード ◆DRAG8zBg NGNG
>>40
自分で調べた方が早く、結局は楽に、身に付きますよ
0042デフォルトの名無しさんNGNG
>40 ワラタ
0043デフォルトの名無しさんNGNG
>>37
>>38さんも答えてるけど、
'k'は文字で、"k"はたまたま一文字な文字列。

ちなみに独習C#ですな?私も昨日読み始めた。
004440NGNG
プログラミングはコミュニケーションも必要とせず
閉鎖的な環境の中で一人黙々とやっていくものなのですね。
以後、引きこもります。
0045pとNGNG
私16歳の女子高生。田舎の高校に通っています。(恋人募集中!)
質問ですが、C#の「#」って、本当は「C」の右肩に上付きでつけるもの
だと聞きました。本当ですか?

0046デフォルトの名無しさんNGNG
>>45
あなたに興味があります。
#についてあなたと一緒に語り明かしたいです。
0047デフォルトの名無しさんNGNG
こんにちは、45を監禁しているものです。
あれほど大人しくしてろと言ったのですが、勝手に漏れのパソコン使いやがって、
しかも、こんな糞レスさせてしまって申し訳ございません。
これから外出するときは、縄で縛って天井に吊るしておきます。
0048デフォルトの名無しさんNGNG
またほのぼのとしたやりとりを……。
0049pとNGNG
ちょっと、まじめなレスを期待しているのです。

今、先生の目を盗んで授業中に書き込んでいます。今、英文Eメールの
作文練習時間です。田舎(福島)だけど、オーストラリアに姉妹校?があるのです。
パソコン教室に20台のパソコンがありますが、全然台数が足りません。
部活はもち!物理電算部です。白々しいけど将来の夢はIBMかマイクロソフトの
バリバリのOLを希望しています。ちなみに応援団もかけ持ちで入団しています。
すみません。自己紹介してしまいました。
C#好きです。がんばってください。さようなら。 近藤実華
0050デフォルトの名無しさんNGNG
バカなの?
0051デフォルトの名無しさんNGNG
>50
ワロタ
0052デフォルトの名無しさんNGNG
こんばんは、>>49の主治医です。
病院から抜け出したのを今取り押さえたところです。
彼女は幼いころに両親にひどい仕打ちを受けたのです。
父からは毎日のようにレイプされ、母からも暴行を繰り返されてきました。
入院してからは、日に日に良くなっていき、だいぶ精神状態も落ち着いてきたようなので
外出を許した途端逃げ出してしまいました。
私の担当不行き届きです。皆様にはご迷惑をお掛けしまして誠に申し訳ございません。
以後、浣腸してベッドに縛りつけておきます。
0053デフォルトの名無しさんNGNG
所詮C#はこうなる運命か。
0054同じ女子高生として我慢できませんNGNG
で、結局「#」は右上に字上げするのが正式な書き方なのかどうか

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

たぶん音楽記号的な発想からきたとのだと思いますが、これは元々はC++のジョークみたいな
発想で「さらに1つ追加」という考えから++++が変形してできました。
005554NGNG
>49
私は部活は文芸部ですが、創作はパソコンで執筆するように決められています。
うちはパソコン部とか物理電算部はありません。でも何故かパソコンの
台数は100台近くあります。それなのにインターネット出来ないので、
ネット上での活動は個人のパソコンを使っています。
がんばってください。
0056デフォルトの名無しさんNGNG
製品のロゴでは右上にあるぞ。

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

for(int i = 0; (char)Console.Read() != 's'; i++)
Console.WriteLine("Pass #" + i);
0058中日ファン@今日はお休みモード ◆DRAG8zBg NGNG
>>57
1 s Enter(CR LF) と入力すると1回
1 s 2 Enter でも1回
1 Enter だと3回で入力待ちのまま

Consolw.Read()は
「入力ストリームの次の文字。または次の文字がない場合は -1。」
を(1文字ずつ)戻すから動作として正常なんだと思います
0059中日ファン@今日はお休みモード ◆DRAG8zBg NGNG
×Consolw
○Console
0060デフォルトの名無しさんNGNG
Mono for Windows

http://www.superin.formativ.net/mono/getstart.htm
0061デフォルトの名無しさんNGNG
SharpDevelopのバージョンが上がってた。

http://www.icsharpcode.net/OpenSource/SD/Download/default.asp
0062デフォルトの名無しさんNGNG
Monoって何?
0063デフォルトの名無しさんNGNG
>>62
http://go-mono.com/
0064デフォルトの名無しさんNGNG
>>54
C#の#は、音階のド(C)の一つ上(1オクターブは12段階)のド#と
言う意味でC#なんだと思うよ。
そういう意味では、C++と似た感じでパロディだね。
0065デフォルトの名無しさんNGNG
>>64
おいらは、C++の「++」を近づけて「#」になったと聞いたけどな。
この説はここではでないね。
0066中日ファン@通常モード ◆DRAG8zBg NGNG
>>65
吉爺が「気づくのに0.2秒も掛かってしまった」とか書いてたやつだね
俺もそう思ってた
0067デフォルトの名無しさんNGNG
>>65
C#が出たての頃、M$のデモでそういうの見せてたよ。
会場に(うゎ、くだらねー!・・・)って空気流れたけど。
0068デフォルトの名無しさんNGNG
WebアプリケーションからWebサービスに対し、とあるファイルをバイナリ(byteの配列)のまま渡したいのですが、どのようにしたらよいでしょうか?
そのとあるファイルは、Webアプリのあるマシンではなく、クライアントのファイルシステムにあるファイルです。
0069デフォルトの名無しさんNGNG
>>68
そのまんまやん。aspxで受け取ったbyte[]をasmxに渡せばええのんとちゃう?
0070デフォルトの名無しさんNGNG
>>68
base64に変換して渡してみたら?
Convert.ToBase64String、Convert.FromBase64String参照。
007170NGNG
byte[]そのままでやり取りできた。すまん。
0072デフォルトの名無しさんNGNG
>>69
質問の仕方が悪かったですね。Webフォームで、<INPUT type="file">みたいなものを置いて、それをWebサービスに渡したいのですが、textboxでは「参照」ボタンを表示できないし・・・。
0073デフォルトの名無しさんNGNG
>>72
だから、Webフォームに<input type="file" runat="server">をおいて、
あがってきたFileStreamをbyte[]にして、SOAPでasmx呼び出せばいいんじゃないの?

WebサービスにはUIなんかないぜ、サービスなんだからさ。UIは各自が勝手に作るもの。
0074デフォルトの名無しさんNGNG
C#のGUIプログラミングってVC++と同じような感じなのですか?
それともJavaのSwingに似ているとかあります?
0075デフォルトの名無しさんNGNG
>>74
VBに似ています。
0076デフォルトの名無しさんNGNG
>>74
VJ++にソクーリです
0077中日ファン@もうすぐ連休モード ◆DRAG8zBg NGNG
サブクラスでベースクラスのメソッドをnewで隠蔽した場合
ベースクラスの変数に格納して多態のつもりで呼び出しても
ベースクラスの方のメソッドが呼び出される
(同じケースでoverrideの場合は当然サブクラスの方が呼び出される)

これは仕様なんでしょうか
0078デフォルトの名無しさんNGNG
>>77
仕様。
0079デフォルトの名無しさんNGNG
>>77
仕様っていうかまさにそれをやるのがnewの目的なんだけど?
0080中日ファン@もうすぐ連休モード ◆DRAG8zBg NGNG
>>79
多態には使うなということですか・・・
「ベースクラスのメソッドを隠蔽するため」
だと思ってたのに、隠蔽されるどころかしゃしゃり出てくるので
なんとも違和感があるのですが・・・

パラメータが同じなら素直にoverrideなんでしょうね
0081中日ファン@もうすぐ連休モード ◆DRAG8zBg NGNG
要するにnewで宣言したメソッドを使う場合は
ベースクラスの変数に格納するなということですか
008278NGNG
仮想メソッドの呼び出しでは、実際に呼び出されるメソッドの実装は、呼び出しが行われるインスタンスの<b>実行時の型</b>によって決まります。非仮想メソッドの呼び出しでは、インスタンスの<b>コンパイル時の型</b>によって決まります。

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

newはさ、同じ名前の新しいvirtualメソッドをもう1つ作れるようにする機能なんだよね。
継承関係をいったん断ち切って、自分が新しい基底型(そのメソッドに限ってだけど)に
なるのがnewの機能。だから、どの型の変数を使っているかによってvtblが変わるって
ことだよね。
0084中日ファン@もうすぐ連休モード ◆DRAG8zBg NGNG
>>78(=82)-79
レスありがとうございます

あるメソッドが 親(abstruct)-子(override)-孫(new) の場合
親の変数で孫を作成すると
コンパイルの段階で親に近い、子のメソッドが呼び出されるのでしょうね
0085中日ファン@もうすぐ連休モード ◆DRAG8zBg NGNG
>>83
>どの型の変数を使っているかによってvtblが変わるってことだよね。
はっきりと分かりました、ありがとうございます
008678NGNG
>>83
C#標準リファレンスのP313からP319あたりまでしっかり読んでごらん。詳しく書いてあるから。
0087デフォルトの名無しさんNGNG
すみません、おっしゃる意味がわかりません。
その本は持ってないのでなんて書いてあるのかわかりませんが、
newをつけると非仮想メソッドになるので、コンパイル時に型が決定するって書いてあるんですか???
それならその説明が*間違い*です。鵜呑みにするのはやめましょう。今出ている大抵の.NET本には
1つや2つ間違いがあるものです。

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

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

(あー、またクソ本が一冊世の中に出回ったってことなのかしら。。。)
008878NGNG
>>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ですよ。
0089中日ファン@もうすぐ連休モード ◆DRAG8zBg NGNG
私からもソースを書き込みます・・・興味のある方はお試しください
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;
}
}
0090デフォルトの名無しさんNGNG
>>88
実行結果はそのとおりです。
でもその実行結果が得られる理由は、あなたが82に書いたこととは何の関係もないと言っています。

で、もしもその本とやらに、この理由が82にあなたが書いたようなこととして説明されているのなら、
それはクソ本だとも言っています。でも、たぶん本にそう書いてあるわけじゃなくてあなたが勘違い
しているだけなんだろうな、とも思います。
009178NGNG
>>90
はいはい、もうなんとでも言ってください。ぜーんぶ、あなたのおっしゃるとおりですよ。
0092デフォルトの名無しさんNGNG
>>91
なんかキレたようだけどさ、本当に俺が言うとおりなんだからしょうがないよな、この場合。
もっとがんばって勉強しような、お互い。あと、本に書いてあることは鵜呑みにしない方がいいぞ。
0093デフォルトの名無しさんNGNG
粘着ハケーン {{゚д゜}}ブルブル
0094デフォルトの名無しさんNGNG
この動作原理を教えてください(何故3回回るのか)。

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

Console.Write(">>" + ch + "<<");
Console.Write("debug");
} while(ch != 'q');
0095デフォルトの名無しさんNGNG
>>94
sscliのソースを読めばわかる
0096中日ファン@もうすぐ連休モード ◆DRAG8zBg NGNG
>>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');
}
}
↑自分はこれで納得しましたけど・・・
0097デフォルトの名無しさんNGNG
>>83

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

サンクス!
漏れの持ってる糞本「C#入門」はC#入門というよりプログラミング入門というべき低レベル本(簡単なクラスを作って満足して終わる)で(interfaceなんてキーワード自体1回も出てきません(;´Д`))、C#固有の文法にはほとんど触れてないんだよねぇ。
(今まで買ったプログラム言語の本の中では最低ランクに位置づけさせてもらったよ。)
newとか(特にnewという名前の理由)よくわかってなかったんだけどこの一言で氷解した。
0098中日ファン@延長になると弱いぞモード ◆DRAG8zBg NGNG
ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/frlrfSystemConsoleClassreadTopic.htm
↑戻り値と解説を読むと理解できるかと・・・
0099デフォルトの名無しさんNGNG
>>94
Console.Readは1文字だけ入力を受け付けるっていうイメージじゃなくて、
ReadLineでバッファにためて、そのバッファを1文字走査するという感じ。
010094NGNG
みなさんリプライありがとうございます。
色々と試してみたんですが、
Read()は、1文字Enter押したとしても内部的には
キー、CR、LFとストリーム上に残るということなんでしょうか。
(その間、>>96さんの例だとwhile条件を抜けない…?どうもここらへんがよくわかりません)
0101中日ファン@延長になると弱いぞモード ◆DRAG8zBg NGNG
>Read()は、1文字Enter押したとしても内部的には
>キー、CR、LFとストリーム上に残るということなんでしょうか。
その通りだと思います

>while条件を抜けない…?
q Enter で抜けるはずですけど・・・
010294NGNG
>q Enter で抜けるはずですけど・・・
あ、すいません。そうですね。
0103デフォルトの名無しさんNGNG
ウインドウでタイトルバーを消す方法はどうやるのでしょうか?

最小化・最大化ボタンはプロパティで消せるんですが、
Windows.Forms.Formでは無理ですか?
0104デフォルトの名無しさんNGNG
>>103
Form.FormBorderStyleプロパティ
0105デフォルトの名無しさんNGNG
>>104
FormBorderStyle.Noneでタイトルなど表示されなくなり思いどうりにできました。
ありがとうです。
0106デフォルトの名無しさんNGNG
アクセスのレポートをC#から印刷してみたいんですけど
できます??


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

using AccessObject;

AccessObject.ReportClass Report = new AccessObject.ReportClass();
0107デフォルトの名無しさんNGNG
>>106
ゆり子?
0108デフォルトの名無しさんNGNG
DirectXを使ったアプリケーションを作ろうと思ってますが、
これからの配布形態を考えるとやっぱり.netで作ることを
考えるべきでしょうか?
0109デフォルトの名無しさんNGNG
DirectX9まで待つことになるぞ
0110デフォルトの名無しさんNGNG
オレってWin32APIにやたらと詳しくてちょっと自慢なんだけど、
せっかくC#なんだからAPIなしで書きたいじゃん?
APIから先に発想して「C#ではどうするんだ?」ってときは、
どういう方法で探せば良いんだろう?
0111デフォルトの名無しさんNGNG
>110
おまえには無理
0112デフォルトの名無しさんNGNG
>110
toriaezu shine!
0113デフォルトの名無しさんNGNG
>>110
最初はどうやってAPI探したんだよ、お前さんは。
0114デフォルトの名無しさんNGNG
やっぱさ、時代は 100% pure .NET だと思うのよね。
0115デフォルトの名無しさんNGNG
VC#.NETPro版がでるらしいよ
VC#.NETstdからのアップグレード版もでたらいいなあ
0116デフォルトの名無しさんNGNG
ソースは?
0117デフォルトの名無しさんNGNG
Thread.Sleep( time );したスレッドを無理やり再開できませんか?
Resume();じゃだめなんですよね。
0118デフォルトの名無しさん NGNG
>>117
それはコールバックを使うのがいいと思うけど
0119デフォルトの名無しさんNGNG
ちょっとコールバック使ってどうやればいいのか思いつかないですが、
ヒントいただけませんか?教えて君で申し訳ない。
0120デフォルトの名無しさんNGNG
>>117
Thread.Sleep(int) の代わりに
System.Threading.ManualResetEvent の WaitOne(int, bool) じゃだめ?
0121デフォルトの名無しさんNGNG
class <class name>{
}
という形式にする設定項目はあるのでしょうか?

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

class <class name>
{
}
なんですよね
0122デフォルトの名無しさんNGNG
>>121 あるよ。テキストエディタ −>C#ー>フォーマットあたりに
あったと思う。
0123デフォルトの名無しさんNGNG
>>122
それ、ウィザードには影響しない。
0124121NGNG
>>123
ですよね。

update待ちですね。
.netになって、ショートカットの設定とかめちゃくちゃやりづらくなりましたね。
0125デフォルトの名無しさんNGNG
>>123
Ctrl+A → Ctrl+X → Ctrl+V
0126デフォルトの名無しさんNGNG
>>125
いちいちやってられっか。(w
0127デフォルトの名無しさんNGNG
ログ出力に関してなんだけど、#define使えないC#でどうやって
デバッグ用のコード埋め込んでる?もしかしてif文でやってるとか?
Javaとかやってた人はどうやってたんだろ。
0128デフォルトの名無しさんNGNG
#define 使える
0129デフォルトの名無しさんNGNG
>>128
あ、ホントだ。失礼。
それにしても.netはこんなに早くからドキュメントを翻訳して
無料で配布してくれるのはさすがという感じだね。もっとよく読まないと。
0130デフォルトの名無しさんNGNG
http://piza.2ch.net/tech/kako/973/973322234.html
#さん発見
0131デフォルトの名無しさんNGNG
>>130
なんかスレの流れがJAVAからC#に向かってってるのがワラタ。
前半でみんな無料なら使うって言ってたけど、ただで出ちゃったからね。
0132デフォルトの名無しさんNGNG
>Ctrl+A → Ctrl+X → Ctrl+V
これって何のコマンド?

ところで、コード補完機能が上手く働かなくなってしまった場合
つまり、Ctrl+スペースを押してもリストの中に含まれていないのですが、
おそらくクラスの構造を解析していない状態だと思うのですが
更新する方法はありますか?
0133デフォルトの名無しさんNGNG
全選択→切り取り→貼り付け
0134デフォルトの名無しさんNGNG
>>132
> これって何のコマンド?

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

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

ソースに文法ミスがある可能性大。
いったんビルドしてみるべし。
0135デフォルトの名無しさんNGNG
C#の勉強できるスレ教えてください。もしくはそういうのが集まってる
スレでもいいです。
0136デフォルトの名無しさんNGNG
>>135
勉強できるスレ=勉強できるHP

です
0137デフォルトの名無しさんNGNG
>>136
言語仕様がWEBで公開されてた気がする。
0138デフォルトの名無しさんNGNG
MDI子フォームが閉じるとき、親フォームが閉じる子を特定する方法を教えてください。
親にメソッドを作って子から呼ぼうと思ったのですが、
静的とか動的とか参照とか叱られてビルドできず、
引数をどう書いて良いかいまいちわかりません。
よろしくお願いします。
0139デフォルトの名無しさんNGNG
>>138
残念だなぁ(´ー`)
もしそのエラーをちゃんと書いてたらもっと早くレスがつくのに。
0140138NGNG
親に、
public void removedForm( System.Windows.Forms.Form targetForm)
{

}
とし、子で、
private void Form2_Closed(object sender, System.EventArgs e)
{
Form1.removedForm(this);
}
等とやっています。
エラーはF1でヘルプを見ても全然理解できません。
0141138NGNG
((Form1)MdiParent).removedForm(this);
でできました。ありがとうございました。
スミマセンでした。
0142デフォルトの名無しさんNGNG
>>120 できました。WaitOne( time , true );で止めて
Set()で再開ですね。ありがとうございました。
0143120NGNG
>>142
そういえばリセットする手間のいらない AutoResetEvent の方がよかったかな。
0144デフォルトの名無しさんNGNG
C#の文字列では設定された文字列の値を変更できないとのことですが、
これは例えば、

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



0145デフォルトの名無しさんNGNG
>>144
stringが参照型だから
0146デフォルトの名無しさんNGNG
SDKの再頒布パッケージ インストしたらcscとかのパスとおります?
うちどうもインスト失敗したっぽくてパスは通ってないは、
削除はできないで、、、パスとおってないのが正常ならいいんですが。
0147デフォルトの名無しさんNGNG
今の再配布版にコンパイラついてるの?
0148デフォルトの名無しさんNGNG
>>146
通らないみたい。再配布版でコンパイルしたければ、自分でPATHを切る必要があるよ。

>>147
含まれてる。だから、Windows 98で開発することも、一応可能。
0149デフォルトの名無しさんNGNG
>>148 146です。そうなんですね。ありがとうございました。
0150デフォルトの名無しさんNGNG
>>145
理由がちょいと違いますね。stringはimmutableだから、が正解。
immutableにすることでinternなどのテクニックが使えるようになり、
パフォーマンスが向上する。Javaと同じ理由だーね。
0151デフォルトの名無しさんNGNG
DelphiでのMemoコンポーネントってC#ではTextBoxだと思うんですけど、
Memo1.Lines.Addに相当する操作ってどうやったらいいですかねえ。
TextBox1.Linesは単なるstring[]?

厨な質問でスマソ。SDKのみです。
0152デフォルトの名無しさんNGNG
>>151
Memoは知らないけど textBox.AppendText の事?
0153デフォルトの名無しさんNGNG
>>150
144の例は明らかに参照型だからジャン。
あれはただの代入だよ。
0154デフォルトの名無しさんNGNG
レスthx. 説明が足りなかったので自分が悪いのですが、求めているものと微妙に違うようです。
DelphiのMemoのLinesプロパティはAddしたときに自動的にstring配列を拡張してくれるので、
それに近いものをさがしているのでした。

現在のLinesより一つ大きいstring[]を確保して、そこにLinesをコピーして、そのあと参照先を変えるってのが
正攻法なんでしょうか?
0155デフォルトの名無しさんNGNG
あ、>>154は>>152に対するものです。すんまそ。
0156デフォルトの名無しさんNGNG
>>153
へ?
string s; s = "age";
は
string s = new String("age");
ってな意味だよ。代入じゃありませんよ。もちろんnew Stringはコンパイルできませんけどね。
immutableの意味がわかってませんね?
0157デフォルトの名無しさんNGNG
>>154
textBox1.AppendText("\r\nほげほげ");

こういう感じでいいんじゃないの?
0158デフォルトの名無しさんNGNG
すんませんが・・・

DirectoryInfo dir = new DirectoryInfo(@"\\Server-1\test");
この引数の頭についてる@はなんですか?
0159さっき誤爆しちまったかも・・・NGNG
>>156
(´ー`)。o○(あんたほんとにimmutableわかってる?)
0160デフォルトの名無しさんNGNG
>>159
あー、わかってるよ。一度作ったら中身が不変だってことだ。
だから、一見中身が変えられているような次のコード
string s = "age"; s = "sage";
は実は新しいstring(sage)を作って、sの参照先を変えているだけだってことだ。

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

それじゃ応用問題だ。stringが不変であるメリットは何だ?ヒントはすでに
おれが言った。
0161デフォルトの名無しさんNGNG
(´ー`)。o○(開発者側のメリットなんてないよ)
0162デフォルトの名無しさんNGNG
>>160
・・・アフォ?
s = "sage";がsの参照先を変えるのはsが参照型だからだぞ?

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

はぁ?何で俺がそんな事に答えにゃならんのよ。┐(´ー`)┌
あえて言うならそれはメリットがあるからじゃなくて必要条件だったからなんだがな。
0163デフォルトの名無しさんNGNG
>>158
@がないと
DirectoryInfo dir = new DirectoryInfo(@"\\\\Server-1\\test");
と書かなきゃいけないから。
0164デフォルトの名無しさんNGNG
>>163
@消し忘れ。
0165デフォルトの名無しさんNGNG
>>164
あ、しまった。ごめんなさい。
0166デフォルトの名無しさんNGNG
JavaからC#に引っ越してきたものなんですけど
ソーリューションって言う概念や単位?がいまいちわからんです
0167デフォルトの名無しさんNGNG
>>161
そう思う?ならどうしてstringは不変でStringBuilderなんちゅうクラスを作ったんだろ。
Javaにも同じ関係があるよね。おっと、たとえばパフォーマンスなんてのは
開発者のメリットじゃないって言いたい?

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

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

開発するならこういうこと知っておいたほうがいいと思うんだけどなぁ。
しょせん小手先テクニックの魅力には勝てないか、こういう話題は。
0168デフォルトの名無しさんNGNG
Dr.GUIでも読んで頭冷やせよ。┐(´ー`)┌
0169デフォルトの名無しさんNGNG
>>166
プロジェクトってのが、実行単位というか、出力単位というか、
1つのEXEやDLL,Webサービスのことで。
ソリューションってのはそれをひとまとめにしたものかなぁ。

製品が複数のEXEやDLLからなってることもあるでしょ。
この製品がソリューションで、
EXEやDLLがプロジェクト。
0170デフォルトの名無しさんNGNG
>>169
なるほど、ありがと
0171koubou�VNGNG
C#ってなんて読むのが正しいんですか??
0172デフォルトの名無しさんNGNG
拡張子が.csですので、シーシャープで宜しいかと思います。
0173koubou�VNGNG
シーシャープでいいらしい(調べたところによると
しかしなぜシャープでないのにシーシャープ
#もシャープ(♯)なのか・・・・・(意味不明
0174デフォルトの名無しさんNGNG
>>173
気づかなかったYO!
#と♯って別物だったんだ・・・
0175koubou�VNGNG
>>172
すいません。文読む前にヘンなこと言っちゃいました。
ほんとすいません。

どうもありがとうございます。
0176デフォルトの名無しさんNGNG
房らしい疑問だな
0177koubou�VNGNG
出直してきます・・・・(鬱
0178デフォルトの名無しさんNGNG
>>157
望む動作になりました。どうもです。

TextBoxのLinesプロパティがただのstring[]なのは理由があるんですかね?
自分の愚考ではVectorとか(Delphiの)TStringListみたいにしておいたほうが便利な気がするんですけど。
0179デフォルトの名無しさんNGNG
なんでもかんでもDelphiと比較すんなや
0180デフォルトの名無しさんNGNG
>>179
ごめん。Del経験者だとついDelのクラス名から機能を推測したりするのよ。
ヘジさんがかかわってるだけあって? かなりVCLに似てるもんで。
どっちが優れているとかは考えてもしょうがないんで、他意はないです。
0181デフォルトの名無しさんNGNG
  ,.-''"¨ ̄¨`' ‐ 、
 (,,(,,i,,,i,,,,,,,,i,,,,i,,),,)
    )  (       
    ( #゚ー゚) < いっちゃえ!
0182デフォルトの名無しさんNGNG
C#スタンダードかてきたー。
ヘタレプログラマーの俺も、ついにC#使いに。
よろすく。
0183デフォルトの名無しさんNGNG
age
0184デフォルトの名無しさんNGNG
DirectoryInfo.CreateSubdirectory が IOException を catch
しないんですが・・・

try
{
testdir.CreateSubdirectory("Test");
testdir.CreateSubdirectory("Test2");
}
catch(IOException e)
{
Console.WriteLine(e.Message);
}
としててTestもTest2も存在してるんですけど
0185デフォルトの名無しさんNGNG
今までVBしかやってなかったんだけど、
C# ムズい…
0186184NGNG
Exceptionしてみたけどなんも拾わない・・
ダレカタスケテー
0187184NGNG
報告
ディレクトリ名を長くしたところPathTooLongException は catch できました
他のはやっぱり拾わないですね
ドキュメントの例外のところにIOExceptionやArgumentExceptionも
記載されてるので拾うと思ったのですが
0188デフォルトの名無しさんNGNG
NET SDkのCLRのリファレンスが見れない。
開こうとすると「インストールします」とかいってででくる。
そんでできない。
全インストールしたんだけど??。
0189デフォルトの名無しさんNGNG
もしかしてこのスレ死んでる?
0190デフォルトの名無しさんNGNG
C#は死にました。
0191デフォルトの名無しさんNGNG
>>188
オフィス入れてる?
0192184NGNG
シンデルッポイネ・・・
未だに俺はエラーチャッチできないし
と言うかスローされて無いっぽい・・・どうするべ
>>188
トピックの階層はどこですかね
0193デフォルトの名無しさんNGNG
>>184 よく読め
解説
path の一部が無効でない限り、path に指定したすべての
ディレクトリが作成されます。path パラメータでは、ファイル
パスではなく、ディレクトリ パスを指定します。
既存のサブディレクトリがある場合は、このメソッドは何も実行しません。

DirectoryInfo di = new DirectoryInfo("TempDir");
 if (di.Exists == false)
 di.Create();
これでいいんじゃないか?
0194188NGNG
リファレンス->クラスライブラリ
以下全部です。
0195188NGNG
reinstしたら直りました
0196デフォルトの名無しさんNGNG
>>184
ちなみに存在しないDirectoryInfoのオブジェクトに対して
CreateSubdirectoryを読んだときにだけIOExceptionを投げるみたい。
0197184NGNG
>>193 196
どもすまんです

つまりDirectoryInfo自体が無効でないとIOExceptionやArgumentException
を投げないと言うことですかね?
とすると単純にディレクトリの存在をIOExceptionで確認することはできないわけですね
ArgumentExceptionはどうしよう
0198デフォルトの名無しさんNGNG
C#の#って+が4つってこと?
C++++ってこと?
0199デフォルトの名無しさんNGNG
C♯==D(elphi)♭
0200デフォルトの名無しさんNGNG
>>197
いろいろ試してみたけど、
・DirectoryInfoのコンストラクタやCreateSubdirectoryメソッドに対して
ファイルシステムと矛盾するようなディレクトリ名の指定
  ArgumentException
・指定したディレクトリに対して同名のファイルがある場合
  IOException

こんな感じかな?
おとといから.netを始めたばっかだから間違ってるかもしれないけど
0201デフォルトの名無しさんNGNG
>>197
存在チェックなら、DirectoryInfoのExistsがあるのだからいいんじゃない?
0202デフォルトの名無しさんNGNG
俺もIOExceptionやArgumentExceptionがスローされない
ドキュメントにも
既存のサブディレクトリがある場合は、このメソッドは何も実行しません。
とあるのでスローもしないのだと思うが
例外の欄に
IOException
path に指定された名前のファイルまたはディレクトリが既に存在しています

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

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

おれもC#初心者なんだけどね
分けわからんですな
もう少しこの辺をいろいろ試してみる
0203デフォルトの名無しさんNGNG
>>202
作ろうとしているサブディレクトリと同名のファイルが既に存在する場合は、
例外がスローされるね。
0204デフォルトの名無しさんNGNG
>>203
だね これはこれで実際同ディレクトリ内に作成不可なので
スローされていいわけですな

ということはドキュメントの
path に指定された名前のファイルまたはディレクトリが既に存在しています
と言う部分はCreateSubdirectoryに関しては
path に指定された名前のファイルが既に存在しています
と解釈すればいいと言うことかな
0205デフォルトの名無しさんNGNG
Directory.CreateDirectoryのほうのIOExceptionもスロー条件は同じ
しかしドキュメントは更に謎
path によって指定されたディレクトリが、読み取り専用であるか、空ではありません。
だってさ
ためしに指定するパスのディレクトリを存在させて読取専用属性をつけてみた
IOExceptionどころかどの例外もスローされずにコードが走りました
対象のディレクトリはそのまま
0206デフォルトの名無しさんNGNG
分からないことがあったらsscliのソースを読むのが近道。
0207デフォルトの名無しさんNGNG
System.IOならsscliに頼らずとも.NET Frameworkのソースがほぼ読めるという罠
0208デフォルトの名無しさんNGNG
うむ ドキュメントおかしすぎ
C# または C++ の場合:

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


だってさ
0209デフォルトの名無しさんNGNG
ドキュメントよりもソースを信じよう。
0210デフォルトの名無しさんNGNG
原文もそうなのか、誤訳なのかどちらだろうね。
0211デフォルトの名無しさんNGNG
原文。
http://msdn.microsoft.com/library/?url=/library/en-us/cpref/html/frlrfSystemIODirectoryInfoClassCreateSubdirectoryTopic.asp?frame=true
0212デフォルトの名無しさんNGNG
A file or directory
原文もそのままっぽいね
0213デフォルトの名無しさんNGNG
ドキュメントのフィードバックする人ってどれくらいいるのだろう
0214デフォルトの名無しさんNGNG
In C# or C++:
Directory::CreateDirectory("Public\\Html");

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

0215デフォルトの名無しさんNGNG
STLの<algorithm>みたいなのってありませんか?
0216デフォルトの名無しさんNGNG
C#でメッセージループみたいな物を書くにはどうしたらいいですか?
ウインドウ開いてもすぐに終了しちゃうんですが
0217デフォルトの名無しさんNGNG
>>216
激しくガイシュツだが。
[STAThread]
static void Main() {
Application.Run(new Form1());
}
0218デフォルトの名無しさんNGNG
[assembly: 〜]
↑これ、何でしょうか?
.NET SDKのドキュメントのどのセクションを読めばいいのか教えてもらえませんか?
assemblyで検索するとVB.NETのドキュメントしか出てこないので・・・
0219駆け出し初心者NGNG

>>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も当然守備範囲に入れている?

同じく"\"も試してみたが同じ様にサブディレクトリが自動的に作成される。
考えようによっては、楽チンかも
0220デフォルトの名無しさんNGNG
>>218
アセンブリに適用する属性。「属性」とかで引いてみるべし。
0221デフォルトの名無しさんNGNG
>>220
ありが�d調べてみます
0222デフォルトの名無しさんNGNG
Math.Power(double a,double b)は
aのb乗ですが
5の1.5乗っていうのはどういう計算なんですか?
0223デフォルトの名無しさんNGNG
>>222
ぁ?
非自然数の階乗の計算方法がわからないのか?
0224デフォルトの名無しさんNGNG
また階乗かよ・・・(;´Д`)
0225デフォルトの名無しさんNGNG
>>222
中学生からやり直せ
0226デフォルトの名無しさんNGNG
それはC#以前の問題かと
0227デフォルトの名無しさんNGNG
>>223
中学生からやり直せ
0228デフォルトの名無しさんNGNG
∧∧  / ̄ ̄  
(*゚ー゚)< マターリシマショ。
UU  ̄ U U\__  
0229デフォルトの名無しさんNGNG
>>227
?
0230デフォルトの名無しさんNGNG
>>229
累乗
0231202NGNG
>>219
ヒント有難う
というか俺がボケあがってますね
テストに/を使うのがバカでした
/が単純にディレクトリ名に使えないと思いついて試したんです、、、(恥
再度 < や > などで試すとちゃんと ArgumentException がスローされました
これでほぼ問題解決です
0232デフォルトの名無しさんNGNG
教えて下シャア〜
C#のコンパイラは
C言語もできますか?
0233デフォルトの名無しさんNGNG
>>232
何ですか〜?
0234デフォルトの名無しさんNGNG
>>233
多分Visual C#のコンパイラでCのソースもコンパイルできるかどうか聞いているんだと思う。
0235デフォルトの名無しさんNGNG
>>234
なるほど〜

>>232
できませんよ〜CとC#の関係はCとC++の関係とは違いま〜す
似てるようだけど〜全然別の言語だと思ってくださ〜い
0236デフォルトの名無しさんNGNG
>>225,227
累乗も階上もならうの高校だぞ。

>>222
http://www.google.com/search?hl=ja&lr=lang_ja&q=指数関数
0237デフォルトの名無しさんNGNG
Visual Studio.Netはアカデミックパックで大体いくらですか?
0238デフォルトの名無しさんNGNG
知らん。
0239237NGNG
自分で調べました。
0240デフォルトの名無しさんNGNG
書く前に調べようね。
0241237NGNG
自分で調べるんじゃ、質問する意味無いじゃん。
0242デフォルトの名無しさん NGNG
人生って孤独だよな・・・
0243デフォルトの名無しさんNGNG
少し調べれば分かるようなことを聞くな。
0244デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley/3657/oshiete.html
0245デフォルトの名無しさんNGNG
少し調べれば分かるかどうかが分からないから聞いてるのだ。
0246デフォルトの名無しさんNGNG
まず少しは調べろよ。

0247237=241NGNG
>>245
おまえ、誰だよ
0248237=245NGNG
>>247
おまえこそ、誰だよ
0249デフォルトの名無しさんNGNG
全然 C# の話題じゃねえな。
0250デフォルトの名無しさんNGNG
>>237
今日、アカデミック買ってきてやったよ。
秋葉のソフマップ1号館では22800円だたよ。
0251デフォルトの名無しさんNGNG
2マンちょっとだったら買える値段だけど、ハードウェアがなあ…;−;
0252デフォルトの名無しさんNGNG
MSDNプロに入ったんだけど、各種ダウンロードできるOSって、
全部CDで送られてくるの?それとも自分でダウンロードしなくちゃ
いけないの?
0253デフォルトの名無しさんNGNG
おくられてくるしおとせるしすれちがいだしいたちがいかもしれない
0254デフォルトの名無しさんNGNG
ステータスバーに追加したパネルをバーの右端に表示したいのですが、
どのプロパティで設定したら良いのでしょうか?
0255デフォルトの名無しさんNGNG
今月からプログラミング始めました。
一定時間ごとに指定した音声ファイルの音を鳴らすようなプログラムは
どう書けばいいのでしょうか?
タイマーコントロール?を使えばいいのでしょうか。使い方がよく分かりません。
0256_NGNG
>255
やる気があるのでしたら、以下のサイトのサンプルを作ってみましょう
宇宙仮面のC#プログラミング
ttp://isweb41.infoseek.co.jp/computer/ukamen/

ほとんどVBサンプルをC#に移植したようなものですが、本当の初心者さん
でしたら、非常に良いかと。
0257デフォルトの名無しさんNGNG
.NET環境で(COM Interopなしで)PDF出力するコンポーネント探してます。。。
有料でもおk。どなたかご存知ありませんでしょーか?
0258デフォルトの名無しさんNGNG
ほんとに初心者ならGUIなんて無視してファイルのIOからはじめて見ては
0259デフォルトの名無しさんNGNG
C#Magazineみたいのは出ないのかな。
0260デフォルトの名無しさんNGNG
ヘッダーコントロールを使いたいのですが、やはりAPIを直接呼ばないと無理でしょうか?
0261デフォルトの名無しさんNGNG
Windows FormsでHtmlを表示する方法ってないでしょうか?
MFCのChtmlView OR ChtmlEditViewのような感じの。
0262デフォルトの名無しさんNGNG
>>255
いきなり欲張る奴はたいがい挫折する.
0263デフォルトの名無しさんNGNG
>>262
それがプログラミング的に欲張っているのかどうかわかんないんだよ。
ユーザからみたこの仕様はぜんぜんショボイもん。
0264デフォルトの名無しさんNGNG
タイマーコントロール使えばいいとわかってるのに
使い方がわからないというのは要勉強だね。
0265デフォルトの名無しさんNGNG
>>257
使えるかどうか全く分からないけど、名前から推測するに
http://sourceforge.net/projects/pdflibrary/
あたりはどうだろう?
0266デフォルトの名無しさんNGNG
>>263
じゃあ
>今月からプログラミング始めました。
なんて書くなよ(w

そんな奴が
>ユーザからみたこの仕様はぜんぜんショボイもん。
なんて議論できんのかよ(W
0267デフォルトの名無しさんNGNG
>215
STL関連ってそりゃC#にはまだtemplateがないんだから無理でしょ
早くC#にtemplateが実装されないかなぁ
開発中らしいけど
俺自身はまだC#環境持ってないんだけど、Delphiの開発者と同じ
人だからおそらくListというクラスはあるんでしょ
Delphiの時はListクラス使いまくりだったけど、今のC#もそうなの
でしょうか?
0268デフォルトの名無しさんNGNG
>>267
System.Collections ネームスペースにいろいろある。
0269デフォルトの名無しさんNGNG
データ構造は一通り揃ってるからあまり困らないね。
0270263NGNG
>>266
ワシは255じゃないよ。勘違いしないでね。
0271デフォルトの名無しさん NGNG
C#のテンプレートは実行時に解決するような手段にしてほぢい
0272デフォルトの名無しさんNGNG
実行時に解決するなら別にテンプレートじゃなくてもよくないかなぁ?
0273257NGNG
>>265
ありがとう!いまダウソしたんで試してみます。
0274デフォルトの名無しさんNGNG
COMにアクセスするにはどうしたらいいんでしょうか?
0275デフォルトの名無しさんNGNG
>>274
tlbimp.exeでラッパークラスを作る。
0276デフォルトの名無しさんNGNG
実行時に解決するならどうせ型安全じゃないからテンプレートの意味無いよね。
テンプレートを実行時に解決する、のが具体的にどういう事かわからんけど。
0277デフォルトの名無しさんNGNG
なんか初代スレの話題をぶり返してるような・・・。
0278デフォルトの名無しさんNGNG
ms-help://MS.NETFrameworkSDK.JA/vcmxspec/html/vcmg_AccessingCOMObjectsfromtheRuntime.htm
0279デフォルトの名無しさんNGNG
システムメニューをカスタマイズしたいんですが、
どうすりゃいいんでしょう。
0280デフォルトの名無しさんNGNG
>>271
http://research.microsoft.com/projects/clrgen/generics.pdf
↑によると、C#のテンプレートは実行時に解決するみたいよ。

>>272
キャスト演算の手間とかが減って、効率あがるし、バグも減る。
0281デフォルトの名無しさんNGNG
//どう間違ってるのでしょうか。悩んでます、教えてください。
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;//ここエラー
  }
 }
}
//: 代入式の左辺には変数、プロパティ、またはインデクサを指定しください。
0282デフォルトの名無しさんNGNG
initを呼んでいないに100万ペニシリン
0283デフォルトの名無しさんNGNG
いや、コンパイルが通りません。
0284デフォルトの名無しさんNGNG
つーか、なんでコンストラクタで初期化しないわけ?

ところで100万ペニシリンって何ユーロ?
0285デフォルトの名無しさんNGNG
あぁ、
Hogeがstructジャン。
0286デフォルトの名無しさんNGNG
うぇーん
C#からDirectDraw使いたいけどわからないよー
0287281NGNG
ああいう場合はforeach使えないんですね。了解しました。
0288デフォルトの名無しさんNGNG
>>281
structで引数なしコンストラクタは無理よ。
0289288NGNG
おおっと、関係なかったか。スマソ
0290デフォルトの名無しさんNGNG
>>281
init()を↓にしてみたら?
 public void init()
 {
  m_points = new Hoge[10];
  for(int i=0; i<m_points.Length; i++)
  {
   m_points[i] = new Hoge();
  }
 }
0291デフォルトの名無しさんNGNG
スタンダード版で作成できないクラスライブラリってなんのことをさしているのでしょうか。
自前のクラスは作成できるんですよね?
DLLなどがつくれないということでしょうか?
お恥ずかしい質問ですが、よろしくお願いいたします。
0292デフォルトの名無しさんNGNG
>>291
VS.NET Pro版の場合
新しいプロジェクト - Visual C# プロジェクト に出てくるテンプレートは
・Windows アプリケーション
・クラス ライブラリ
・Windows コントロール ライブラリ
・ASP.NET Web アプリケーション
・ASP.NET Web サービス
・Web コントロール ライブラリ
・コンソール アプリケーション
・Windows サービス
・空のプロジェクト
・空の Web プロジェクト
・既存フォルダ内の新しいプロジェクト
ですけど、他の版ではどうなんでしょう
0293デフォルトの名無しさんNGNG
ちなみに
・クラス ライブラリ
で作成されるのは「シングルファイル アセンブリ」で
.NETのDLLが作成されます
0294デフォルトの名無しさんNGNG
>潜入 女子更衣室「女子更衣室にカメラを仕掛け盗撮。オッパイや下着、オxxコまではっきり見える」
よくあるAVの広告のコピーだろうが
これって、どうやってオxxコが見えるのか知りたい。

それとは別にC#に将来はあると思いますか?
0295デフォルトの名無しさんNGNG
>>291
VS.NET Standard版の場合
新しいプロジェクト - Visual C# プロジェクト に出てくるテンプレートは
・Windows アプリケーション
・ASP.NET アプリケーション
・ASP.NET Webサービス
・コンソールアプリケーション
の4つかな。
うちのWin2000にはIISが入ってないので、本当は他にもあるのかも。
0296デフォルトの名無しさんNGNG
クラスライブラリ作成のテンプレートって、一体どんなものなんでしょうか?
ただ普通にクラスを作ってDLLにするのとは違うものがあるんですか?
0297VB厨NGNG
こんにちわVB厨ですが、C#かVB.NETかで迷っています。
VBマガジンでは、VB.NETを記事にしていますが、
どっちが優れているのでしょうか?
私が知る範囲では書き方が違うだけなのですが、
それなら2種類も言語を用意する意味が無いと思うのです。
そんなの混乱するだけです。
.NET FrameworkやVB.NETの文法はVB6とは全く別物で
C#にVB6のへんちくりんな「ぬいぐるみ」を着せているようで
気持ち悪いのです。
話は脱線しましたが、マジでどっちを選べばこの先、楽が出来るのでしょうか?
0298デフォルトの名無しさんNGNG
とりあえずC#の方が楽なことは確かでしょう。
0299VB厨NGNG
>>298
お返事有り難うございます。
なぜC#の方が楽なのでしょうか?
私は、制御のCとASMならやったことがあります。
0300デフォルトの名無しさんNGNG
言語仕様としてはC#の方が評価が高く、MSの扱いもC#の方が上だと思うからです。
覚える為の労力はC#もVB.NETもあまり変わらないと思いますし、後々楽ではないかと。
0301デフォルトの名無しさんNGNG
ゼロから物作りするならC#でしょう。
CLIを前提に作ってるから素直な仕様だし。

でも仕事でVB資産を持ってるなら、VB.NETもやらざるを得ないでしょう。
といっても、C#を覚えとけば簡単に併用できると思うけど。
0302デフォルトの名無しさんNGNG
>299
> それなら2種類も言語を用意する意味が無いと思うのです。
.NETが今後普及し、定着していくと、マイクロソフトもそう考えるかも知れません。
そうすると立場が不利なのはVB.NETの方だと考えられます。

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

どちらをやるにしても、VB6からだとOOPの概念は覚えないといけないので、
どうせならバッサリC#に移行するのもアリだと思います。
0303デフォルトの名無しさんNGNG
>>297
Microsoftは複数の言語に対応できると言ってるが実質は
他の言語を C#化してるだけのような気がするよ。

C#・JavaScript.NET・VB.NETの言語仕様見てみたけどそんな感じしないか?
おそらく、Perl.NETがでても似たようになるんじゃないか思えるほど。
0304デフォルトの名無しさんNGNG
そんなもんだろ。
好みの言語の構文で同じ機能を実現するだけ。
そのうち、C#->VB.NETトランスレータとかも出てくるんじゃないのか?
0305デフォルトの名無しさんNGNG
>>304
VB.NETの逆コンパイラ作ればいいだけじゃん。
どうすればどの言語からもVB.NETソースに変換できる。
0306デフォルトの名無しさんNGNG
最適化されている可能性もあるから逆コンパイラは不可能
0307デフォルトの名無しさんNGNG
すみません、2つ質問させてください。
・textboxに入力した数値を演算するにはどのようにしたらいいのでしょう。
int ans;
ans = this.textbox1.text * 2;
にすると型が違うというメッセージが表示させて演算できません。

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

どなたか教えて頂けませんでしょうか。お願いします。
0308_NGNG
>307
サンプルソースなどに、以下のような記述を見たことはありませんか?
int intTest;
intTest = (int)this.txtNumber.text;
"型変換"、"キャスト"などで検索をしてみる事をオススメします。
0309デフォルトの名無しさんNGNG
text->int変換が標準で出来るのか?
0310デフォルトの名無しさんNGNG
VB.NETだと思いっきりできるな。怖・・・。
0311デフォルトの名無しさんNGNG
Int.fromString()みたいなのが勝手に呼ばれてると思えば・・・
でもキモいねえ
0312デフォルトの名無しさんNGNG
>>308
その方法で型変換してコンパイルすると
"型stringを型intに変換できません" となってエラーとなります。
私も型変換だと思ってその方法を試しましたが、ダメでした。
どうしてでしょう。
0313デフォルトの名無しさんNGNG
うむ、安心したぞよ
0314デフォルトの名無しさんNGNG
>>312
>>311がヒントになっております
0315デフォルトの名無しさんNGNG
>>308,311,314
Convertクラスを使ってできました。ありがとうございました。

0316308NGNG
>310
そうなんですよね、VB.NETでできちゃうからC#でもできると思ってました。鬱。

>314
こんな感じ?間違ってましたらツッコミお願いします。
public int SFStoI(string value) {
try {
int i = int.FromString(value);
return (i);
} catch {
return (0);
}
}
あ、これだと"0"を渡すと意味不明だ(w
0317デフォルトの名無しさんNGNG
RichTextBox(かTextBox)で指定した行の文字列を得るにはどうしたらいいですか?
0318manko chinkoNGNG
最強のmankoプログラムを組んでみました

class Manko{static void Main(){System.Console.WriteLine("manko daisuki");}}
0319デフォルトの名無しさんNGNG
それが?
0320317NGNG
string s = rtBox.Lines[行]
で解決しました。。。鬱
0321119NGNG
>>318
↓これでも見て、いいかげんに目を覚ませ
http://www.freepornpage.com/kkoo8va/58.jpg
0322デフォルトの名無しさんNGNG
>>321 119は間違い・・・スマソ
0323デフォルトの名無しさんNGNG
たびたびすみません。
こちらのほうもご存じの方教えてください。

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

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

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

それよりもせっかくの.NETでActiveXを使うというのが良く分からない
ActiveXを使いたいのなら旧VSの方が自然なのではなかろうか
0326デフォルトの名無しさんNGNG
漏れの環境ではmscomm32.ocxが見つからない。VS.NETフルインストなのに。
本気でCOMをあぼーんする気だな。
0327デフォルトの名無しさんNGNG
>>325
axMSCommは置いておいても、まだ使いたいコンポーネントもあるな。
0328デフォルトの名無しさんNGNG
正直、OCXなんて使いたくないけど・・・・・・・・・。
なんでわざわざ。
0329デフォルトの名無しさんNGNG
323じゃないけどC#とかVB.NETで
RS232Cシリアル通信のプログラム作る時って何を使うの?
0330デフォルトの名無しさんNGNG
API
0331デフォルトの名無しさんNGNG
>>330
じゃあ、msCommよりも難しくなったっんだね。
msCommは使い方楽だったげと・・・
0332デフォルトの名無しさんNGNG
難しくなったというか枠組みは用意されてるのだから・・・。
Streamから継承すればすぐじゃん・・・。
そうすれば使い勝手はmsCommより格段に良くなると思う。
0333デフォルトの名無しさんNGNG
Formの裏で別のスレッドがあって、そのスレッドから非同期デリゲートで
新しいフォームを表示しています。コードは下みたいな感じです。

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

このままだとDragDropの登録ができないんで
[STAThread]属性をデリゲートの呼び出し先とかにつけてみたんだけど
うまくいきません。どうしたらいいでしょう?
0334デフォルトの名無しさんNGNG
>>333
Main()にSTAThreadはつけてないの?
0335デフォルトの名無しさんNGNG
>>334 ありがとうございます。もちろんつけています。
0336デフォルトの名無しさんNGNG
>>335
ならば別スレッドもSTAになってない?
Thread.ApartmentStateでも調べてみて。
0337デフォルトの名無しさんNGNG
>>336 MTAのようです。
0338デフォルトの名無しさんNGNG
Apartmentは一度セットされたら変更不可能・・・
0339デフォルトの名無しさんNGNG
>>337
MTAか。不思議だ・・・。Unknownならまだ分かるけど。
0340デフォルトの名無しさんNGNG
>>339 調べてみましたが、
スレッド開始時にはSTAに変更できますが、
変更してもデリゲートで呼ばれたShowForm()内では
MTAになってしまい変更もできないようです。
0341デフォルトの名無しさんNGNG
>>333
メインフォームのUIスレッドがあって、その裏にワーカースレッドがあって、
そのワーカースレッドから新たにUIスレッドを立てようとしてるの?
なぜそんなことをしようとしてるのかよくわからん。
もっと詳細な情報があれば解決策なり代替案なり出るかもしれん。
0342デフォルトの名無しさんNGNG
というか、MTA上にフォーム作ってることには誰も突っ込まんのか・・・。
0343デフォルトの名無しさんNGNG
>>341 そのとおりです。ワーカースレッドはループを回してネットから
パケットを受け取り、あるパケットがきた時にダイアログや操作フォーム
を開くようにしています。
その場合、非同期デリゲートを使わないと、フォームを閉じるまでワーカースレッド
はShowDialog()した時点でとまった状態になります。
なので非同期デリゲートを使い対処していました。
今回は操作するフォームにドラッグドロップ操作を加えたかったのですが
STAスレッドでないため、例外を吐きフォームを開くことができなっかので
質問させていただきました。
ネットワークプログラミングは初めなものでとんでもないことしてるのかも
しれまん、、、
0344デフォルトの名無しさんNGNG
>>343
ワーカースレッドから作るウィンドウはメインフォームの子ということでいいの?
それだったら、子ウィンドウを表示するメソッドをメインフォームクラスに書いて、
ワーカースレッドからForm.BeginInvokeでそのメソッドを呼び出せばいいと思われ。
0345デフォルトの名無しさんNGNG
>>344 そうしているところもあるのですが、そうしたくない部分を
非同期デリゲートにしています。
ご指摘どおり、control.BeginInvoke()を使った方がいいのかもしれません。
0346デフォルトの名無しさんNGNG
ワーカスレッドがUIを直にいじるのはよくないと思う...
0347333NGNG
素直にform.BeginInvoke()で実装したらうまくいきました。
数々のアドバイスありがとうございました。
0348デフォルトの名無しさんNGNG
VSのマクロとか、C#でも書けるかと思ったが、
結局VB.NETで書くのか……
(期待しすぎ?)
0349デフォルトの名無しさんNGNG
>>348
そそ、そのへんちょっと不満。
やはり、Office.NETとかで、
VBA.NETって具合になるのだろうか?
0350デフォルトの名無しさんNGNG
>>348
C#だとレイトバインドとかパラメータ省略ができないから、
マクロ書くにはちょっとめんどいでしょ。
0351デフォルトの名無しさんNGNG
超初心者質問なんですが、C#で cout みたいな簡単に入出力できる方法ってないんでしょうか?
Console.Write って書くのにちょっと疲れ気味・・・
0352デフォルトの名無しさんNGNG
>>351
文法的には遙かにそっちの方が気持ちいいけどね・・・。
関数ポインタ作ってConsole.Write放り込む。
0353デフォルトの名無しさんNGNG
>>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);
}
0354デフォルトの名無しさんNGNG
>>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);
}
}
0355デフォルトの名無しさんNGNG
>>351
>Console.Write って書くのにちょっと疲れ気味・・・
どういうのを書きたいのか、知りたいですけど

完備とはいえないかもしれないけど
Console.Writeでもある程度のフォーマットは可能だから
({0:C}とか{0:D9}とか{0:F3}とか{0:X}とか)
今後のことも考えればこちらに慣れておくのが最善かと・・・
0356デフォルトの名無しさんNGNG
std版ではクラスライブラリが作成できないみたいですが、
コマンドラインから csc /t:library でDLLを直接つくってやれば問題ない気がするのですが・・・?
0357デフォルトの名無しさんNGNG
データの保存(MFCでいうところのWriteProfileInt()みたいなの)ってどうやるのかしらん?
0358デフォルトの名無しさんNGNG
>>357
Microsoft.Win32.Registry
0359デフォ名無しNGNG
C#の標準にはGUIが含まれてないってほんとですか?
0360デフォルトの名無しさんNGNG
>>356 >>359

その通り。当たり前。
0361359NGNG
当たり前?
JavaはGUIも、あまつさえWebアプリケーションの標準化もこころみてたというのに?
0362359NGNG
ということはFreeBSD版のC#ではウィンドウは表示できないですか?
0363デフォルトの名無しさんNGNG
言語自体の標準でGUIが関係あるのかと、小一時間、、
0364デフォルトの名無しさんNGNG
std版はウィザードがついてないだけと思います。
0365デフォルトの名無しさんNGNG
ファイル名から、
・拡張子だけを取得する
・拡張子以外を取得する
といった関数はありませんでしょうか?
0366デフォルトの名無しさんNGNG
>>365 PathかFileInfoあたりにあったとおもう。System.IOみてみ。
これから外出だからヘルプで確認してない。違ってたらゴメン。
0367デフォルトの名無しさんNGNG
>>366
ありがとん。System.IO.Pathにありますた。
System.IO.FileHogeHogeばかり見てますた。

・拡張子だけを取得する -> GetExtention(string);
・拡張子以外を取得する -> GetFileNameWithoutExtention(string);
0368367NGNG
>Extention×
Extension
0369デフォルトの名無しさんNGNG
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落ちしてて調べられない。
0370デフォルトの名無しさんNGNG
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で簡単に読めるよ。
0371デフォルトの名無しさんNGNG
>>365
しかし、そんなもんファイル名が分かっているのなら自分で簡単に書けそうだが。
ファイル名の末尾から.までだろ?
0372デフォルトの名無しさんNGNG
>>370
AppSettingsは読めても書けないらしいんだけど、なんでぇ??
0373デフォルトの名無しさんNGNG
>>370
ありがとうございます。今からやってみます。
0374魚NGNG
ブラクラ張ってください!
願いします!!
0375デフォルトの名無しさんNGNG
http://www.ruby-lang.org/
0376370NGNG
>>372
AppSettingsはなぜか書き換えできないんで、保存するときはXMLファイル開いて処理してます。
書き換えできりゃ楽なんだけどね。
0377デフォルトの名無しさんNGNG
>>374
http://java.sun.com/
0378デフォルトの名無しさんNGNG
二番煎じは詰まらん
0379デフォルトの名無しさんNGNG
>>378
変なプログラムを「インストールしますか?」って聞いてくる分たちが悪い。
0380デフォルトの名無しさんNGNG
>>369 前すれPart2の258辺りが参考になると思われ。
しかし、最近#さんみないね。
0381名無しさん♯NGNG
>>380
いるよー。ヽ(´ー`)ノ

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

寺利編むのAPI Doc作ったり、他スレでもいろいろやってます。
0382デフォルトの名無しさんNGNG
>>381 お、おられましたかヽ(´ー`)ノ  口調変えてるのね。
いるのかわからなかったよ。涙ぐましい(笑 ちと安心。
>>380 まだhtml化してないみたいだね。
ソース置き場にハリコしたほうがええかな。
 
0383367NGNG
>>371
実際、レスが帰ってくるまでに書いたよ。
でも既存の関数があればそれを使うだけ。
0384367NGNG
関数あるのはわかってたからね
0385369NGNG
>ソース置き場にハリコしたほうがええかな。
できたら、お願いできませんか(^^;
あさってなコードを書いてるっぽいです(鬱
0386デフォルトの名無しさんNGNG
>>385 貼りました。#さんのサンプルです。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=40

0387369NGNG
>>386 & #さん
ありがとうございます〜。これ元にコード書き直しに逝ってきます。
0388名無しさん♯NGNG

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


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

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=41
0389デフォルトの名無しさんNGNG
>>388 シリアライズ使うのか〜。
なるほどパブリックなプロパティ用意すればよかったんだ。
ああこっちの方が全然簡単でいいね。
全然思いつかなんだ。こんなの。さすが。
0390デフォルトの名無しさんNGNG
>>381
ドキュメント作った人の正体は#さんだったんだ。ありがとー。
0391369NGNG
できました〜。ちゃんとXMLで読み書きできました。ワーイ
XmlSerializer使った方がswitch文の煩雑さが無くてウットリ
0392デフォルトの名無しさんNGNG
これってpublicなプロパティを勝手に探してget/putしてくれるってこと?
すげえなこりゃ。java beansもビックリだ。
0393デフォルトの名無しさんNGNG
>>392
javaでもできるっつの。
0394デフォルトの名無しさんNGNG
class >>393 {
 private 糞 糞;
 public 糞 get_糞() {
  return 糞;
 }
 public void put_糞 (糞 糞) {
  this.糞 = 糞
 }
}

なんて美しいんだ
0395デフォルトの名無しさんNGNG
>>394
あのー、リフレクションの話なんですが。。。プロパティの構文の話ではありませんよ。。。
0396デフォルトの名無しさんNGNG
>>394 そのコードだとスタックオーバーフローするぞ(ワラ
0397デフォルトの名無しさんNGNG
>>394
putじゃねえ。setだ。
あと、いらんアンダーバーつけんな。
0398デフォルトの名無しさんNGNG
3匹釣れたところでオシマイにします。ありがとうございました。
0399デフォルトの名無しさんNGNG
ナイス負け惜しみ。(w
0400デフォルトの名無しさんNGNG
Study: Microsoft's C# gaining ground
http://zdnet.com.com/2100-1104-899493.html
0401デフォルトの名無しさんNGNG
お馬鹿な質問で恐縮ですが…
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買ってこようかな……)
0402デフォルトの名無しさんNGNG
あぁぁぁ。御免なさい。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を結合)
とやっても結果は同じでした。どうしてでしょうか?
0403デフォルトの名無しさんNGNG
>>401
なんでFillが2つもあるの?
0404403NGNG
>>402
了解。
0405403NGNG
>>401
VS.NETでは問題ないけど・・・。
ソース載せた方が早いかも。
0406デフォルトの名無しさんNGNG
>>402
Control.BringToFront();
Control.SendToBack();
0407406NGNG
>>406 書き忘れた、コントロール追加する順番変えてみてもできる。
プロパティで直にいじれたかは忘れた。
0408デフォルトの名無しさんNGNG
charles petzoldのC#の本を読んだ人はいますかー?
【Programming Windows(r) with C#】
http://www.amazon.com/exec/obidos/ASIN/0735613702/

C#の本を何か一冊欲しいのだけどこれはどんなもんでしょ
0409デフォルトの名無しさんNGNG
どの程度削ればいいかわからなかったんで、鯖たてました。
http://218.227.169.154

ちょっと追加する順番いじってみます。
0410デフォルトの名無しさんNGNG
あぁぁぁ。出来ました。
DockStyleで、TopやBottomなど「Fill以外のもの」より、まず
Fillのものを作れば良いということでしょうかね?そのようにやれば
出来たようです。

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

お騒がせしました(−−;
0411デフォルトの名無しさんNGNG
>>409
なんか面白そうなもの作ってるね。
完成したら公開して。
0412デフォルトの名無しさんNGNG
スレ違いだったらすみません。
Cって、0から勉強して、一通り覚えられるまでどのくらいかかりますか?
0413デフォルトの名無しさんNGNG
>>412
プログラミング初心者かそうでないかによる。
0414デフォルトの名無しさんNGNG
>>412
C#じゃなくて?
0415デフォルトの名無しさんNGNG
作ろうとしてたのは、情報整理ソフトみたいなものです。
構造はXMLで組み上げて、それぞれのNodeには情報
へのリンクだけ。情報そのものには任意の個数のタイトル、
テキスト、リンクなどをたたき込めるようにしようと。
IEと連携できたら、結構おもしろいブラウザになるかも(
ネット上へのリンクと、ローカルに*.mhtで保存してる
ファイルへのリンクを同じ情報に置いたり、あるお気に入りの
親を複数持たせたり…)とか、創作物の構想練るとき
とかに使えるかなと。
(いままでネットで見かけた情報でも、簡単に頭から
すり抜けたりしてるもので…)

その前段階として、とりあえずXMLエディタでも作って
みようとしてたところでした。できたら公開します。
(元ヘタレC++Builder使いでしたが、UNICODEの扱いが面倒
だったのでC#に移行中です。)
0416デフォルトの名無しさんNGNG
>>413
VBをほんの少しだけ、したことがある程度です。
>>414
すみません。C#です。
0417デフォルトの名無しさんNGNG
.NET製の公開アプリが増えることは喜ばしいことだ。
0418デフォルトの名無しさんNGNG
みんながんばれ!
0419デフォルトの名無しさんNGNG
クラスライブラリだけじゃタイトルバーを消すのは無理かな?
0420デフォルトの名無しさんNGNG
>>419 タイトルバーが何なのか分からんが
Formのタイトルバーのことだとしたら、
Form.FormBorderStyle FormBorderStyle.Noneにすればいい。
0421デフォルトの名無しさんNGNG
>>420 訂正
Form.FormBorderStyle = FormBorderStyle.None;
0422デフォルトの名無しさんNGNG
>>420
ありがとう。
おれいにあなたのことを考えながらオナニします!

ちなにみどのタイミングでFormの表示を変更するのが
正しいのでしょうか?OnPaint内だと再びここに入って
来てしまいます。GUIプログラミングは正直なところ
初めてなのでよく分かってません。
0423デフォルトの名無しさんNGNG
>>420
すみません。勘違いしてました。

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

とGraphicsオブジェクトを取得するしかないと思ってました。
単純にstaticなGraphics.FromXXXメソッドで取得できるんですね。
どうもすみません。
0424デフォルトの名無しさんNGNG
>>423
GDI+のドキュメント読む方が分りやすいよ
0425デフォルトの名無しさんNGNG
C#には標準でINIファイルを扱うクラスは無いのでしょうか?
ヘルプやネット検索した限りでは無いようなので、正規表現で
INIファイルに検索かけて扱うのでしょうか?
0426デフォルトの名無しさんNGNG
INIファイル自体、Win32APIに依存したアプリぐらいしか使わないから
APIをそのまま使うのがいいんでないの?
0427デフォルトの名無しさんNGNG
>>426
.NETのLinuxへの移植作業も行われてることですし…。
0428デフォルトの名無しさんNGNG
>>427 LinuxでINIファイル使う気なの?ふつう.confでないかい?
.NET的にはXMLで設定保存がいいと思うんだけどね。
0429デフォルトの名無しさんNGNG
>>428
単純な定義さえできたらいいので、INIで良いかなと。Linuxなら
INIファイルは避けるべきだという理由も思いつきませんし。
けど、このスレの方が作ったXML形式のサンプルもありましたし、
そっちでやってみようかなと思います。
0430デフォルトの名無しさんNGNG
#さんのソースですけど、「as演算子」なんてのがあったんですね。
初めて知りました。
Configuration config = serializer.Deserialize(reader) as Configuration;
一瞬、頭の中がVB.NETになったけど、キャストしてるんだ。奥が深い。
0431デフォルトの名無しさんNGNG
>>430
Delでもそうなので、珍しくないというか
あ、荒らしじゃないので・・・どぞよろしく
0432デフォルトの名無しさんNGNG
>>430
キャスト → 失敗すると例外が飛ぶ
as演算子 → 失敗すると null が返ってくる

微妙に違うよ。
0433デフォルトの名無しさんNGNG
const int a = 0;

と

static readonly int a = 0;

ってどう違うんですか?機能的に。
0434デフォルトの名無しさんNGNG
>>433
初期化できる場所。
0435デフォルトの名無しさんNGNG
>>434
いや、どっちもクラス変数になれるでしょ?
0436430NGNG
>>431,432
確かに、ただキャストするのとは違いますね。
でも、VBが嫌いなので、asは抵抗あるなあ(笑)

ところで、皆さんの赤本、黄色本の評価はいかがでしょうか。
赤本の下巻は値段が高くて、目玉が飛び出る思いをしたけど、
下巻に限っては、赤本はなかなかいいですよね。
0437デフォルトの名無しさんNGNG
いっしょじゃね?
詳しくはワカンネ。
0438デフォルトの名無しさんNGNG
>>433
ええと・・・
constで指定された値はコンパイル時に解決され
staticでreadonlyなフィールドは実行時に解決されます
0439デフォルトの名無しさんNGNG
>>436
赤本、黄色本ですか・・・
黄色本って「標準 C#.NET プログラミング」?

まだ1の方しか完全に読んではいないのですが
1の最後の「7章」は間違い探しを楽しめました(w
全体的には分かりやすかったですよ
0440デフォルトの名無しさんNGNG
CD?
0441デフォルトの名無しさんNGNG
C#はじめて2週間、だいぶ覚えて来たぞ〜
とこれで、だれか .NET Framework のリファレンスにできるような本紹介してくれませんか?
オンラインヘルプは目がちかちかしてきます。
0442デフォルトの名無しさんNGNG
全ページ印刷しる!
0443朝までC#NGNG
デリゲートには、System.EventHandlerとかが使われていますが、
実装したいメソッドのポインタを呼び出し元のイベントに定義するのに、
System.Windows.Forms.ToolBarButtonClickEventHandlerとか、
いろんなポインタの変換みたいなのがあるのは何故ですか?

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

引数のデーターベースになっていてそれぞれ固有の情報を
渡しているとする割には、コントロールとデリゲート用の
なぞの変換関数?のネームスペースが違っていて
夜も眠れません。
0444デフォルトの名無しさんNGNG
>>442
俺はチャレンジしたけど400ページくらいで諦めた。。。
0445デフォルトの名無しさんNGNG
>>444
バカハケーン
0446デフォルトの名無しさんNGNG
黄色本、標準 C#.NET プログラミングだけど
ま、訳書独特の文なのは仕方ないとしても一つ一つの説明がくどい感じがする
その聖で要点がボケしまってる気がしないでもない

ドキュメントの?な部分を分かりやすく書き直したAPIリファレンスみたいな本が欲しいかな
0447デフォルトの名無しさんNGNG
言語仕様の本ならともかく、
クラスライブラリまで解説した本は出ないだろ
0448デフォルトの名無しさんNGNG
>>447
オライリーがJavaの出してるジャン。
あんな感じのあったらおれも欲しいな。
.net frameworkのクラスライブラリは
これから何年も付き合うものだからね。
本があってもいいと思うんだけど。
0449デフォルトの名無しさんNGNG
>>443 そらイベントプロパティの型が色々あるからでは?
0450デフォルトの名無しさんNGNG
お前ら、今DirectXを.netから使うとしたらやっぱりDLL関数を直接コールが
一番ですか?
0451デフォルトの名無しさんNGNG
           ♪ シィシィシィ ♪
      ∧∧       
     (゚ー゚#)      
 ((( ;;"~;;;"~゛;;)  
  . ミ;,,_,ミ;,,_,,;ミ     

           ♪ シィシャープ ♪
      .∧∧       
      (#゚ー゚)      
    (;;"~゛;;;~゛;; )))  
    . ミ;,,_,,;ミ,_,,;ミ    
0452デフォルトの名無しさんNGNG
Hashtable
  String
  Hashtable
    String
    String
みたいに2層のデータ構造作ったんだけどXmlSerializerで
Serializeできない…。出来る物なの?
0453デフォルトの名無しさんNGNG
ArrayListの要素をfor文でアクセスするとき
((Hoge)ar[i]).xx = yy;
とかなって見にくくなるんですけど何か方法あるんですか?
(foreach文除く)
0454デフォルトの名無しさん NGNG
450の自己レスです。
こんなのがありました。
http://sunlightd.virtualave.net/Windows/DirectX.NET/
これを試してみます。
0455452NGNG
Hashtableそのものが無理っぽいな…。
0456デフォルトの名無しさんNGNG
>>455 ISerializable実装してるからできるんじゃない?やってないからわからんけど。
0457デフォルトの名無しさんNGNG
>>448
ワニ本のことかな?

http://www.oreilly.co.jp/BOOK/jexam2/
0458デフォルトの名無しさんNGNG
逆にドキュメントを丸々プリントアウトしたような本はカンベンだね
0459デフォルトの名無しさんNGNG
2 in 1 で印刷しる
0460デフォルトの名無しさんNGNG
>>456
ISerializableとXmlSerializerは関係ないよん。
吉松さんが1年前に解決してたよ。。。ヽ(´ー`)ノ
http://discuss.develop.com/archives/wa.exe?A2=ind0108B&L=DOTNET&D=0&P=12453
0461デフォルトの名無しさんNGNG
>>460 なるほどねぇ、、出来ないときは素直にIFormatterでSerialize
するほうがいいのかな、無理やり出来そうだけど激しく面倒そう、、
0462452NGNG
こちらでしょうかね。
http://www.xmlrpc.com/discuss/msgReader$1350?mode=topic
0463デフォルトの名無しさんNGNG
>>462
それだとSOAPになっちゃうんだよね。。。
0464452NGNG
SoapFormatterで出来たことは出来たけど…。
>>452で書いた形式のデータ一つだけで、1.59KBいったよw。
ソースコードは短くて楽なんだけどなぁ。
0465デフォルトの名無しさんNGNG
ControlのTextプロパティに"&Hoge"と設定するとHにアンダーバーがつくけど
これをやめたい。Controlクラスを継承したクラス内でStringformatの
HotkeyPrefixプロパティを変更するとできそうなんだけどやり方がわからない。
だれか良い方法知ってます?
あ、"&&Hoge"ってのは無しにして。
0466デフォルトの名無しさんNGNG
UseMnemonic=falseじゃなかったっけ?
0467465NGNG
>>466
LabelクラスにはUseMnemonicあるんだね。なんで他のにないんだろ?
0468FERC.NETNGNG
>>465
こんな感じでしょうか?
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) {
  e.Graphics.DrawString(text, this.Font, SystemBrushes.WindowText, this.ClientRectangle, new StringFormat());
}
0469デフォルトの名無しさんNGNG
すみません。

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

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

とのことなんですがいまいちよくわかりません。
教えてもらえないでしょうか?
0470デフォルトの名無しさんNGNG
数学関係のパッケージはsdkには含まれていないのでしょうか
行列はクラスがあったんですがベクトルとか複素数は見つかんないです.
自分で作れちゅうことですか?
0471デフォルトの名無しさんNGNG
>>470
>ベクトルとか複素数は見つかんないです.

贅沢だと思う。
クラスライブラリに溺れすぎないようにがんばろう!
0472470NGNG
>>471
確かにそのとおりですね.ただ,自分の探し方が悪いのかなと思ったので聞いてみたんです
モジュールを作る練習を兼ねて自作してみようと思います
0473デフォルトの名無しさんNGNG
>>472
http://www.google.co.jp/search?hl=ja&q=C%23+%95%A1%91f%90%94&lr=lang_ja

一応ね。
0474デフォルトの名無しさんNGNG
>>469
同一アセンブリからアクセス可能という意味です。
0475デフォルトの名無しさんNGNG
>>474
AをBの1モジュールとしたときBからAのinternalなメソッドなりプロパティにはアクセス出来ないんですか。
具体的な使い方がいまいちわかりませんが何となく概念はわかりました。
0476デフォルトの名無しさんNGNG
>>475
リフレクションを使わないと無理。
こういうときVB.NETが最強。
0477470NGNG
>>473
どうもです.とりあえずのベクトルのクラスができたので.次はそこを参考に
複素数クラス作ろうと思います.
その前にコメントから生成されるxmlから,テストケースを作るプログラムに挑戦してみようかな..
0478470NGNG
「xmlから,テストケースを作るプログラム」じゃなくて
「xmlから,テストケースのソースを吐き出すXSL」の方がいいのかな
知ったかぶりな書き込みしてスミマセン
0479デフォルトの名無しさんNGNG
C#スタンダードを購入してDBとWEBの連携を勉強しようと思ってます。
DBはAccessとかMySQLを考えているのですが、
C#スタンダードでもWebDBアプリは開発は可能ですか?
DBを使って単純な掲示板みたいなプログラムから始めようと思ってます。
0480デフォルトの名無しさんNGNG
>>479
(Accessはもちろん使えるけど・・・)
MySQLって使えるんでしょうか?
一度確認の必要がありそうですね
0481デフォルトの名無しさんNGNG
MSDEでいいんでないの?
0482479NGNG
まだ実装したことが無いので詳しくないのですが、
ODBC経由で使用したいと考えていました。
(他にWin環境でもっと良いインターフェイスがあるのでしょうか?)
ODBC経由のAccessがOKならMySQLもOKかなって思っています。
0483479NGNG
MSDEならOKということですか。

ttp://www.microsoft.com/japan/msdn/vstudio/productinfo/featureview.asp
に表示されているデータベースツールの項目の内容を誤解していたようです。
0484デフォルトの名無しさんNGNG
>>482
>ODBC経由のAccessがOKならMySQLもOKかなって思っています。
今のところParadoxとFirebirdはODBCドライバがあるにも関わらず
.NETでは使用できていないので.NET対応のドライバが必要になると思います
0485デフォルトの名無しさんNGNG
>>480
使えるよん。ODBC.NET + MySQL で実験した結果おっけーだった。
0486デフォルトの名無しさんNGNG
>>485
おお、サンクス
0487デフォルトの名無しさんNGNG
>>485
#さん?
0488デフォルトの名無しさんNGNG
>>479
ちなみにMySQLのADO.NETドライバもあるよん。漏れは試してないけど。
http://discuss.develop.com/archives/wa.exe?A2=ind0205A&L=DOTNET&P=R23601
0489デフォルトの名無しさんNGNG
やっぱ、#さんか(w いつもお世話になってます
0490479NGNG
.NETファミリー製品別機能一覧表では

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

この3つの項目はC#スタンダードはサポートされていませんでした。
この3つの項目ってどういう機能なんでしょうか?
0491デフォルトの名無しさんNGNG
>>490
「鯖側の機能は無し」ということでしょうね
0492デフォルトの名無しさんNGNG
>>489
違うよ。
0493479NGNG
レスしてくださった方々、ありがとうございました。
私が希望していることはC#スタンダードで問題無さそうなので
購入することにします。
0494デフォルトの名無しさんNGNG
パス(C:\hoge\hoge)から、それがファイルなのかディレクトリなのか判別する
にはどうしたらいいでしょう。
System.I0探してみたんですが、見つからない、鬱。
0495名無しさん♯NGNG
>>487
>>489
両方ともちゃいますよん。
っていうか、漏れでも見分けがつかない。(藁
0496デフォルトの名無しさんNGNG
>>494
Console.WriteLine(Directory.Exists("c:\\temp"));
Console.WriteLine(File.Exists("c:\\temp"));
これでいけたよ。
0497デフォルトの名無しさんNGNG
>>496 ありがとうございます。うまくいきました。
0498朝までC#NGNG
「標準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型に好きなオブジェクト型をいれれたので、
それと同じといえば同じですが、もっと型に厳しい言語ですよね?
ここだけアバウトなのでしょうか?
0499デフォルトの名無しさんNGNG
>>498
すべてのオブジェクトはSystem.Objectから継承されている。
子の型は親の型の参照型変数に代入できる。
0500デフォルトの名無しさんNGNG
>>498
オブジェクト指向の基礎を学べ。
0501朝までC#NGNG
>>499 >>500
回答ありがとうございます。
すべての元でToString()とかもここから来ているのは
わかっていましたが、より源流?のオブジェクト型に下流?の型の
代入が出来るのですね。ありがとうございます。
0502デフォルトの名無しさんNGNG
>>501
そのためのオーバーライドですw。
0503デフォルトの名無しさんNGNG
オブジェクト配列もオブジェクトに代入できてしまうのはなんか違和感がある・・・。
0504デフォルトの名無しさんNGNG
>>498
そいつは「ポリモーフィズム」という機能だ。




・・・というか、黄本って、その辺の説明ないんか…
0505デフォルトの名無しさんNGNG
>>503
まぁ,配列も Array クラスだし...
0506デフォルトの名無しさんNGNG
>>505
インデクサ大活用って感じですか。
0507デフォルトの名無しさんNGNG
>>504
黄本の「はじめに」に書いてある対象読者は
・何らかの最新のプログラミング言語(C++、Visual Basic、Javaなど)の知識を
 持つ経験のあるソフトウェアのプロフェッショナルであること
・オンラインヘルプを調べることに抵抗がないこと(さらに、恥ずかしがること
 なく、よく調べること)
となっているから

オブジェクト指向の基礎くらいは当然分かっているというのが前提と思われ
(ソフトウェアのプロフェッショナルなんだから)
0508デフォルトの名無しさんNGNG
>>507
3つ中2つがオブジェクト志向型言語だもんね(後1つは敢えて認めません)。
0509デフォルトの名無しさんNGNG
>>508
ヴァカ?
0510デフォルトの名無しさんNGNG
recvした内容をデコードする標準関数ってないの?
0511デフォルトの名無しさんNGNG
>>508
確かにC++は違うよな。
0512朝までC#NGNG
VBからC#に行く人の多くは、VBでのObject型に
いろんなオブジェクトを入れることが出来たのを、
オブジェクト指向の基礎とは思ってないと思うよ。
VB自体のいろんなところに偽物オブジェクト指向が満載だから、
C#に移ったときにどれが偽物でどれが本物だったかを確認することに
なるのです。C++やJava、Delphiから入る人は
そうじゃないのかもしれないけどね。
0513デフォルトの名無しさんNGNG
>>512
VBのObjectってvoid *みたいなもんじゃないの?
0514デフォルトの名無しさんNGNG
>>512
Variantはpolymorphicだ!とか言ってみるテスト。
0515朝までC#NGNG
うん、そんな感じ。
0516朝までC#NGNG
>>514
なるほど・・・Integerやfloatの親だったのか!!
VB設計したのは、ObjectやVariantにそう言う意味を
込めて実装したのでしょうか?

実は昔の宣言なしな何とでもなる昔のBASIC
の名残ですよね。
0517デフォルトの名無しさんNGNG
C#もすべての値型もSystem.Objectから派生している罠。
0518デフォルトの名無しさんNGNG
インターフェースと強く型付されていない「何でもバケツ」なんて最悪。
おまえらアホか。社会人 PG 何年やってんだ。
0519デフォルトの名無しさんNGNG
ところでC#のメーリングリストでいいとこある?
0520デフォルトの名無しさんNGNG
>>519
↓いくつか引っかかったけど・・・
http://www.google.com/search?q=ML+C%23&btnG=Google+%8C%9F%8D%F5&hl=ja&lr=lang_ja&num=20
0521デフォルトの名無しさんNGNG
一番上のでいいんじゃない?
0522朝までC#NGNG
当然、なんでもバケツが良いとは思ってないよ。
すでに書いているように昔のBASICの悪習の名残だと思っている
書いているようにね。
0523デフォルトの名無しさんNGNG
>>522
そうか、安心した。
いや、ちょっと Java の使い方覚えたのプログラマ連中が Object 型や
そのコレクション使いまくって悲惨なことになったプロジェクトのケツ
拭いた事あるもんでな。
0524デフォルトの名無しさんNGNG
まぁ抽象性を高めるのと曖昧性を高めるのとじゃまったく逆方向だって
言いたかっただけ。OO やってる誰もが通る道なんだろうけど。
0525デフォルトの名無しさんNGNG
>>521
つーか、一番上の以外ほとんど投稿なかったと思われ。
ついでに言うと、一番上のも今一盛り上がってなかったり。
このスレの方がよっぽどいい情報そろってる。
0526朝までC#NGNG
なるほど・・・C#のObjectは、params修飾子とかで
使えるわけですね。
これはこれでワイルドな感じですが、
よくあるConsole.WriteLineの引数は、良い実装例ですね。
0527デフォルトの名無しさんNGNG
現在のキー状態を取得するにはGetAsyncKeyStateを使わなきゃだめですか?
.NET Frameworkの範囲でどうにかなりますか?

ヘルプ検索してもうまく出てこない知っている人いたら教えて。
0528デフォルトの名無しさんNGNG
>>527
C#で出来る−>.NETの範囲じゃないの?
0529デフォルトの名無しさんNGNG
>>527に便乗で、
マウスの状態を取得する方法、わからないです。
だれか教えてください。
0530デフォルトの名無しさんNGNG
>>529
お前らさぁ。Form使ってるかどうかも書かないでよくもまぁぬけぬけと。
0531デフォルトの名無しさんNGNG
昼間っから何度もぬけぬけと。
0532デフォルトの名無しさんNGNG
全然関係ないですけど、
.NETフレームワークって雑誌のCDとかに付いてないですかね?
WindowsUpdate↓でこんなことになってるんで
メンドクサイです。とくに時間が・・・

Microsoft .NET Framework 日本語版
22170 KB/ ダウンロード所要時間: 5 時間 54 分
.NET Framework は、Windows の新しい機能です。
.NET Framework を使用して作成したアプリケーションは、
信頼性と安全性がより高くなります。
.NET Framework は、.NET Framework が必要な
ソフトウェアを使用する場合にのみ、インストールする必要があります。
最初にお読みください
0533デフォルトの名無しさんNGNG
>>532
ブロードバンドしてない人は死ぬ運命です。
0534デフォルトの名無しさんNGNG
あのー日本ではブロードバンド人口って
言うほど多くないんですが・・・・
0535デフォルトの名無しさんNGNG
>>534
あの会社はアメリカ中心です。
0536デフォルトの名無しさんNGNG
winXPのSP1には添付されるんじゃないかなあ。
つまりそれ以降にPC購入した人には自動的に入ると。
0537デフォルトの名無しさんNGNG
ブロードバンド率ってアメリカより日本の方が上じゃなかったっけ?
0538デフォルトの名無しさんNGNG
>>537
ウリナラが世界一ニダ
0539デフォルトの名無しさんNGNG
IE コンポーネントを使用しているのですが,BeforeNavigate2 イベントが発生されなくないですか?
もしかしたら漏れだけなのかな...
0540527NGNG
あー、失礼。コンソールアプリなのでFormのOnKeyDownとかは使えないのです。
Console.ReadとかだとEnterキーが押されるまで待ってしまうので、WindowsAPIのGetKeyState等を使えば
できるのはわかっているのですが、.NET Frameworkの中に関数としてないかな?と思いまして。
なるべくWinAPIを直接呼ぶのは避けたいもので。
0541デフォルトの名無しさんNGNG
>>540
getchar
0542539NGNG
http://news.devx.com/cgi-bin/dnewsweb.exe?cmd=article&group=csharp.general&item=3155&utag=
検索したら一発で出て来ちゃった...
スレ汚しスマソ
0543デフォルトの名無しさんNGNG
>>539
ほんとだ。呼ばれないね。
0544デフォルトの名無しさんNGNG
Winでぐりぐり動くゲーム作れますか?
描画ライブラリとかに簡単にアクセスできますか?
0545デフォルトの名無しさんNGNG
>>544
Terrarium 3世代目 tabataって死滅しちゃうの?
http://pc.2ch.net/test/read.cgi/tech/1020339546/l50

このスレ>>1から参加していけば真実がわかる。
0546539NGNG
IE コンポーネントでリンクをクリック
↓
それを標準のブラウザで表示させるために BeforeNavigate2 イベントで Process.Start(e.uRL); としたい
↓
呼び出されない
↓
ガ━━Σ(゚д゚lll)━━ン

うーむ,どうしたものか...
0547539NGNG
デキタ━━━━━━(゚∀゚)━━━━━━!!

http://www.syncfusion.com/FAQ/WinForms/FAQ_c100c.asp#q842q
0548デフォルトの名無しさんNGNG
>>547
なんかVJ++の頃を思い出す泥臭さね。(藁
0549 NGNG
Double scale = 80/96;

でやると0が入ってきてしまいます。
どうして?
0550デフォルトの名無しさんNGNG
int/int = int だから。
0551 NGNG
どうしたら結果が入りますか?
0552デフォルトの名無しさんNGNG
80.0/96
0553デフォルトの名無しさんNGNG
C# で 定数テーブルを作りたいんだけど、どうすればいいのか、わからないです。

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

0554デフォルトの名無しさんNGNG
>>553
static readonly
0555デフォルトの名無しさんNGNG
あの〜かなり初歩的なんですが
文字列が数字として認められるか(変換できるか)判断するにはどうしたら
IsNumeric関数みたいなやつ
0556デフォルトの名無しさんNGNG
>>555
ToStringにかけると例外出ちゃったりする?
0557朝までC#NGNG
たとえば、intならIntのParseメソッドかな?
0558半分ネタだがNGNG
bool b1 = Microsoft.VisualBasic.Information.IsNumeric("10");
bool b2 = Microsoft.VisualBasic.Information.IsNumeric("a");
0559デフォルトの名無しさんNGNG
>>558
そのnamespace自体がネタでしょ。
0560デフォルトの名無しさんNGNG
>>559
ちゃんとコンパイル通るよ。
0561朝までC#NGNG
それは、旧VB互換のやつですね。・・(^^; 実在するしちゃんと動くと思うけど。
0562デフォルトの名無しさんNGNG
>>561
Framework2.2で推奨されなくなりFramework2.5から実装されなくなる罠w
0563朝までC#NGNG
私は気持ち悪いので使わないけど、それ本当ですか?
0564デフォルトの名無しさんNGNG
>>563
いや、果てしなく冗談です。
でも、ありえないとh(略
0565デフォルトの名無しさんNGNG
というかVBプログラマをどこまであまやかさせるんだろ>ms
たまには厳しさを見せるのも親心ってもんだ。
0566555NGNG
たとえば入力された値が数字かどうか判断したいんす
エラーチェックとして
みなさんどうなさってるんでせうか
0567デフォルトの名無しさんNGNG
>>566
関数がなければ文字コード調べる。
0568朝までC#NGNG
独立したエラーチェックなしで、Parseメソッドで
いきなり変換をかけて駄目だったらエラーをcatchする。
0569555NGNG
>>567
やはり1文字ずつチェックするしかないのですか...鬱だ
チェック用のクラスでも作るか
0570朝までC#NGNG
1文字づつチェックする方法なら正規表現のクラスが
あるのでそれで確認するとちょっと楽かも?
0571デフォルトの名無しさんNGNG
C#のライブラリ、バグだらけ。
使い物にならん。
0572デフォルトの名無しさんNGNG
>>571
具体例挙げない場合は言われなき誹謗中傷と見なします。
0573デフォルトの名無しさんNGNG
根拠のない煽りは放置
0574デフォルトの名無しさんNGNG
>>571
最初の1行だけで初心者かどうかが分かるね(藁
0575デフォルトの名無しさんNGNG
string s1 = "test";
string s2 = "てすと";
Console.WriteLine(s1[1]+s2[1]);

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

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

はそれぞれe, す とうまく出力されます。
0576デフォルトの名無しさんNGNG
>>575
ごめん、もしかして+演算子の動作を誤解してたかな?調べてきます。
0577575NGNG
単にchar型だから足し算されただけか…吊ってきます
0578デフォルトの名無しさんNGNG
>>575
s1[1]ってchar(16bit)じゃないの?

char + char = int
0579デフォルトの名無しさんNGNG
>>575
で、君は>>571で良いのかな?
だったとしたら今すぐMSに謝れ!
0580デフォルトの名無しさんNGNG
C#の言語仕様、嘘だらけ。
シャレにならん。
0581575NGNG
蛇足ですが、意図したように動かすには
Console.WriteLine(new string(s1[1],1) +s2[1]);
ですね。
0582朝までC#NGNG
>>581
それは、文字列は変更できない、変更後のオブジェクトを
用意しないと駄目だってやつですね。
そのために、自在に文字列の編集をしたいときは、
StringBuilderオブジェクトに入れないとだめ・・
と勉強しながらですが、これでいいですか?
0583デフォルトの名無しさんNGNG
うぜえ、隔離スレに逝け
0584デフォルトの名無しさんNGNG
>>581
表示したいだけだったらこれでいけるよ。

  Console.WriteLine( new char[] { s1[1], s2[1] } );
0585デフォルトの名無しさんNGNG
>>575
素直にコレじゃいかんの?

Console.WriteLine(s1+s2);
0586デフォルトの名無しさんNGNG
>>585
仕様変わってますがな。
0587デフォルトの名無しさんNGNG
>>586
スマン
よく読んでなかった
0588585NGNG
>>587

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

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

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

鬱だ
0590デフォルトの名無しさんNGNG
>>588
なるほど。いろんな方法がありますなあ。
ところで
s1[1].ToString() + s2[1]

では+の左側がstringなので右側もstringに変換されますよね?
なのにcharをstringにキャストすることはできない……なぜ?
0591デフォルトの名無しさんNGNG
charは文字列関連メソッドを持った数値であり値、Stringは参照。
charどうしだと、数値の足し算。Stringを混ぜるとStringの演算子の
オーバーロードで文字列の結合が発生するのかな?
0592デフォルトの名無しさんNGNG
>590
char.ToString じゃ駄目なの?
0593デフォルトの名無しさんNGNG
charは単なるunsigned shortだととらえたほうがいいと思うがなあ
0594デフォルトの名無しさんNGNG
>>590
ボクシングは出来そうだけどね。
0595デフォルトの名無しさんNGNG
>>593
System.UINT16の別名で良いの?ushortもcharも。
0596590NGNG
自動的な型変換が起こるときは裏でキャストされているのかな、と思っていたのですが、
キャストとも違う処理が行われているんでしょうか。
0597朝までC#NGNG
>>595
ちがうよ。charは、ユニコード用のメソッドとかが追加されている。
0598デフォルトの名無しさんNGNG
>>597
しかし、operator +()はushortな動きをするのね。

まぁ、そっちの方が

data[i] + '0';

とかするのに都合は良いか。
0599デフォルトの名無しさんNGNG
みなさーん、バカ↓が湧き出してきました
John ◆0z.4Is5E
いろんな板で誹謗を繰り返しています。
よっぽど自分に自信が無いんですね。

放置よろしくお願いします。
0600デフォルトの名無しさんNGNG
みなさーん、バカ↓が湧き出してきました
         >>599
0601デフォルトの名無しさんNGNG
>>599-600
誰でもいい、荒らすな。
0602朝までC#NGNG
>>598
今調べたらStringで演算子のオーバーロードがかかっているのは、
=と!=だけだった。まだまだ謎がありますね。

>data[i] + '0';

たしかにこれは使いたい。
0603デフォルトの名無しさんNGNG
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()が表示される。だから連結文字列になる。
0604603NGNG
IL見たらちょっと違ってた。ごめんちゃい。

( String.Concat(s1[1].ToString(), s2[1]) ).ToString() みたいね。
0605デフォルトの名無しさんNGNG
>>603
つまり、string型が要求されるところにstringが来ると、自動的にToStringが呼ばれるわけですよね。
それ以外の自動型変換、たとえば
int i; double d; で i + d とか書いたときはキャストが起きているのでしょうか。
stringの場合だけToStringを呼ぶような仕組みになってんのかな。
0606デフォルトの名無しさんNGNG
>>605
打ちミスった。string型が要求されるところにstring型以外の変数が来ると、
の間違いです。
0607デフォルトの名無しさんNGNG
>>605
stringかどうかということよりは、ただ単にobject.ToString()を呼んでるだけだと思われ。

ちなみに、Console.WriteLine(i + d); は
( (double)i + d ).ToString() ね。
0608デフォルトの名無しさんNGNG
>>607
Object.ToStringって何してるの?オーバーライドされる前は。
0609デフォルトの名無しさんNGNG
>>608
ほい。Object.ToString() のソース。

  public virtual String ToString()

  {

    return GetType().FullName;

  }
0610デフォルトの名無しさんNGNG
>>609
あーあー、改行コード変になちゃーた・・・。
0611607NGNG
>>606
スマソ。正解です。
stringにはわざわざ ToString() してない模様。
0612明日から(今日から)C#NGNG
>>609
なる。Object(System.Object?)って文字列が帰るのか。

ソースって何に付いてくるんですか?
次から自分で調べようと思います。
0613朝までC#NGNG
うーむ なるほど。 >>609 さんの情報ソースはどこですか?
0614デフォルトの名無しさんNGNG
>>612
http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/901/msdncompositedoc.xml
0615デフォルトの名無しさんNGNG
>>565 俗に言う「囲い込み」というやつかと
0616朝までC#NGNG
デザインパターンと呼ばれる「良くあるパターン」の辞書みたいなのが、
C++などであるようですが、C#の場合は、
それに関するツールのようなものが存在するのでしょうか?
それとも、デザインパターンは概念であり言語に依存しないので
しょうか?
0617デフォルトの名無しさんNGNG
>>616
依存しないと思うぞ。
0618C ◆Hqkk7dyk NGNG
さっき初めてC#で書いてみたけどアプリの起動がやたら遅く感じる
のは俺だけですか?コンパイルは早いけど・・・
0619朝までC#NGNG
>>617
ありがとうございます。と言うことは安心してデザインパターンの本を買えますね。
ここ最近、VBからC#へ移行として勉強して思ったんですが、
旧来のベテランがやっていた工夫を言語のほうが合わせたって感じですね。
オブジェクト指向を知らなくてもベテランにとっては、
ややこしく工夫していたところを簡潔に書けるように
なっただけで、初心者にはベテランの工夫を言語で矯正すると
いった感じに感じました。
当然、新しい言語仕様だから出来る機能もありますが・・

>>618
開発環境での起動はめちゃめちゃ遅いのでマシンを買い換えました。
実行ファイルだけだとそうでもないでしょ?
0620デフォルトの名無しさんNGNG
>>619
>開発環境での起動はめちゃめちゃ遅いのでマシンを買い換えました。

元のスペックと新スペックを教えてください。

テラリウム見てる分には割と軽いですね。(Duron 900)
0621朝までC#NGNG
元は、セレロン566でメモリー256MBでした。
今は、P4 2Gでメモリー1GBです。

実行ファイルの方が早いと思うけど本格的なサイズのは
まだ作ってないので実行ファイルについてはなんとも言えないです。
0622デフォルトの名無しさんNGNG
>>621
う〜む、Duron900は判断が出来かねますな。
仕方がないので人柱になります。情報助かりました。
0623デフォルトの名無しさんNGNG
起動時にフォームアプリを起ち上げたり、ASP.NETのページにアクセスしておくと
その後は初回起動も速くなるよ。
要はネックはJITコンパイルじゃなくてランタイムのロードの方だから、
あらかじめキャッシュしておくと。
将来のWindowsは.NETアプリだらけになるだろうから、自然にこのキャッシュ効果が
出て初回起動の遅さはそんなに気にならなくなるだろうね。
0624デフォルトの名無しさんNGNG
漏れの場合、Duron800/640MBだったころは、
初回起動に15〜20秒ぐらいかかってたかな。
二度目からは平均5秒ぐらいだったよ。

#A1800+に移行してるんだけど、環境戻しで
#トラブってるんでまだテストできてません。
0625デフォルトの名無しさんNGNG
>>616
依存しないけど、一部はライブラリに取り込まれてたり、ライブラリの他の機能で代替できる
のもあるよん。

VBやってたなら、VB/VB.NET用のデザインパターンサンプルを見てみると吉。
0626デフォルトの名無しさんNGNG
俺はPen�V650/256MBだけど (゚ε゚)キニシナイ!!
0627デフォルトの名無しさんNGNG
Pen�V1G,512M起動遅し・・
0628デフォルトの名無しさんNGNG
C#から作成したEXEって、
Win32ネイティブにできないんだよな?
0629朝までC#NGNG
やったことないけど、ハードディスクに落とす瞬間にコンパイル
されてしまう方法があるそうだよ。(実行時ではない。)

頒布は環境に非依存でハードディスクに置けばネイティブって
ことかな?

>>625
ありがとう調べてみます。
0630朝までC#NGNG
IEnumerableインターフェース(発音がわからない)についてですが、
IEnumerableで、GetEnmumeratorを実装させて、
戻り値のインターフェースのIEnumeratorで、
本当に欲しい機能であるReset,MoveNext,Currentを
再度インターフェースしているわけですが、なぜこんな2段が舞えに
しているのでしょうか?

IEnumeratorだけを実装してIEnumeratorであるかどうかだけを
チェックしてからreset....などのメソッドを使えばいいはずですよね?
0631デフォルトの名無しさんNGNG
同じ名前のメソッドでかぶったら面倒だぞう。
0632デフォルトの名無しさんNGNG
ちょっと面白かったので紹介。

C# FAQ
http://www.geocities.com/csharpfaq/

アンチな人のページなので心して読むべし。
0633デフォルトの名無しさんNGNG
>>632
面白かった。
0634デフォルトの名無しさんNGNG
>>632
まあJava厨も必死だなというか何というか。
IBM、Oracleが.NETに力を入れ出したので焦ってるのだろうけど。
0635デフォルトの名無しさんNGNG
>>629
それは無理。中間コードも必要になるしね。
0636デフォルトの名無しさんNGNG
>>630
それだとEnumerableな型自身がEnumeratorも実装しなければならない。
Enumerableな型が自分の列挙を他の列挙子に頼むことは十分考えられる。
0637デフォルトの名無しさんNGNG
PenII 233MHz、160MB めっちゃ重い。
でもキャッシュされるとかなりいい。
Javaの糞さに比べたらはるかにまし。
0638デフォルトの名無しさんNGNG
>>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 の役目。
0639デフォルトの名無しさんNGNG
カーソルともいいますかね
0640デフォルトの名無しさんNGNG
>>638
スタックで言うところのスタックポインタですな。
0641デフォルトの名無しさんNGNG
ComboBoxにに入力した文字を、カーソルで選択したいのですが、できません・・・。
どのようにすれば良いのでしょうか?ご存知のかた、よろしくお願いいたします。
0642デフォルトの名無しさんNGNG
/docで出力されるXMLのために,元のソースに勝手に新しいXMLタグを
追加するのはまずいですか?
0643デフォルトの名無しさんNGNG
>>641 あれなんでだろうね。使いにくいったらありゃしない。
漏れも未だに分からず。。
0644デフォルトの名無しさんNGNG
実行ファイルのパス名を取得したいのですが、
VC++でのGetModuleFileName
VBでのApp.Path
に当たる物は何でしょうか?
0645デフォルトの名無しさんNGNG
.NETでは「アセンブリ名」になるよ。アセンブリを読み込んで実行する
主体は AppDomain なので、AppDomainから辿ってみてください。
0646デフォルトの名無しさんNGNG
>>631 >>636 >>638 みなさま解説ありがとうございます。
>>638 さんの言われるようにEnumerator がコレクションを
管理する情報が入っているのはわかりますが、
それを実装するクラスの宣言にIEnumerableもIEnumeratorも両方とも
入れてしまっているので、>>631 と >>636 さんの言われるメソッドが
被る件については、どのみちインターフェースを指定して
アクセスしているのでは無いでしょうか?
0647デフォルトの名無しさんNGNG
MSDN見てて思ったんだけど
SByte ←何でInt8じゃないんですか(;´Д`)
Int16
Int32
Int64
0648デフォルトの名無しさんNGNG
>>647
C++よりはましなんだから (゚ε゚)キニシナイ!!
0649デフォルトの名無しさんNGNG
Bitmapクラスから生成した8bitインデックスカラーのビットマップ
における各ピクセルのインデックス値ってゲットできないんですか?
もしかしてLockBitsしてバイト単位で見ないとダメ?
なんかGDI+って256のイメージ扱おうとすると
ものすごく不便なんですが・・・
0650デフォルトの名無しさんNGNG
それと、ベースクラスを直接使う必要はほとんどないでしょ
0651朝までC#NGNG
みなさん、コメントはどうされていますか?
いままで、
//===============================================================================
// ××定数定義
//===============================================================================
とか、そんな感じで付けていたのですが、
黄色本「標準C#.NETプログラミング1」のP299によると
ソース中にXMLを書いてVS搭載のWebページビルドで
ドキュメント化が可能だと言うことがわかりました。
やってみたのですが、それをやるとタグがうるさくなってかっこわるいです。
int i; //ループ変数
もうちょっとスマートに自動でドキュメントを作成したいのですが、
良いアイディアはありますか?
VBの頃はHotDocumentを使ってソースから
ドキュメントを生成していました。(無意味にデカイドキュメントが出る)

出来たらコメントからテスト仕様書(チェックリスト)とかも
出るようにしていきたいなぁ
0652デフォルトの名無しさんNGNG
コメント無しでも理解できるコードを書くのが基本。
0653デフォルトの名無しさんNGNG
>>652
そういう問題じゃなくて。
0654デフォルトの名無しさんNGNG
>>653
いや、なにぶん示された例が
> int i; //ループ変数
だったもので。
0655朝までC#NGNG
>>652
個人的には、ソースはきれいでかつコメントが十分ついていて、
ソースさえあればドキュメント少なくていいようにしたいです。
(それが一番わかりやすいしバグも少ない。)
ドキュメントは概念図とテーブル設計書、プロトコル関係、
取り扱い説明書だけで終わることを目指しています。
それ以外に、より便利にするために活用したいと思っています。
0656デフォルトの名無しさんNGNG
>>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() {
  }
}
0657デフォルトの名無しさんNGNG
>>655
賛否両論だと思うけど、
コメントがついてる=コメント無しじゃわかりにくいコード
ということは頭の片隅においておいたほうがいいかも
0658朝までC#NGNG
コメント無しでも判るがコメントも付いているを目指します。
判りやすい・判りにくい と コメントが付いている・付いていない
は別だと思います。
0659デフォルトの名無しさんNGNG
>>657
コメントなしで分かりやすいプログラムにコメントをつけると分かりにくくなる理由とはなんでしょうか?
0660デフォルトの名無しさんNGNG
>>659
必ずしもわかりにくくなるわけじゃないけど、修正を加えていくことでコメントとコードの
整合がとれなくなったりすることが多いね。
0661デフォルトの名無しさんNGNG
たとえば関数のインターフェイスとか利用方法のコメントなんですが、
これはいくら変数名を工夫したからといって、
付けてもらわないと困るとおもうのは私だけだろうか・・・・
いちいち全部関数の本体読めってか、やだなぁ
0662朝までC#NGNG
>>660
慣れれば、ちゃんと合ってないといられなくなるよ。
0663デフォルトの名無しさんNGNG
>>659
別に俺はそんなこと言ってないけど。
本当にわかりやすいコードはコメントをつける必要なんてないってこと。
でもいつもそんなコードが書けるわけじゃないからコメントが必要になるけど。
コード無しでも十分わかりやすいコードにコメントをつけるとしたら、それは無駄な作業だと思う。
0664デフォルトの名無しさんNGNG
>>661
それはコメントしておいていい部分だと思うよ。
もちろんドキュメント化も。
0665朝までC#NGNG
>>661
同感です。
実はコメントネタが終わったら、その時の終わり方次第ですけど、
変数名などのプレフィックス?(int intPtrBuff;とか)
についてもみんなどんな工夫をしているのか聞くつもりでした。
0666デフォルトの名無しさんNGNG
関数の機能くらいは大抵コメントしておくでしょ

問題はその中身にどこまでコメントをつける必要があるかということだよね
0667デフォルトの名無しさんNGNG
>>666
そそ。
コメントには2種類あって、
コードを読み飛ばすためのものと、コードを読むときの助けになるもの。
前者は大いに書くべき、いちいちコードを読み直すのは無駄。
後者も書くべきだけど、まず書かずに済む方法を考えたほうがいい。
0668デフォルトの名無しさんNGNG
>>658-659
657じゃないけど、
↓みたいなコメントは、蛇足でしょ。そう言うプログラムを目指せってことかな。
 // リストにオブジェクトを追加
 list.add(object);
もちろん、
 // リストにオブジェクトを追加
element = new ListElement();
 element.value = object;
 element.next = list.top;
 list.top = element;
にコメントを付けるなという意味ではない。
(こうするくらいなら、手続きにまとめて上のようにしろって事)

この例では、低レベルな処理を例としたけど、
もっと抽象どの高いレベルでもそうしたほうが良いでしょうという話。
まぁ、当然のことを言ってるだけなんだけど(でも守るのは意外と難しい)
0669657NGNG
>>668
YES!!
0670C ◆JhEYj/RI NGNG
コメントを書くということは、プログラムに、関数のシグネチャやコード自体を
見ただけでは分からない(分かりにくい)、処理や機能が含まれているということですな。
そう言うのは少なくしたほうが、結局は読みやすくなる。
0671デフォルトの名無しさんNGNG
>>665
自分の場合は
・英語の綴りは、慣用となっているものを除き、原則として省略しない
・引数であることを関数内部でも分かりやすくするためかならず頭に a をつける
 (例:int aMemberID)
ですけど
0672デフォルトの名無しさんNGNG
>>671
俺はCで引数は常にconstにして引数以外の目的で使われることを防いでたんだけど、
C#ではこれ出来ないの?
0673デフォルトの名無しさんNGNG
>>672
別のキーワードがあったはず。
0674デフォルトの名無しさんNGNG
>>673
う〜〜ん言語仕様も見てみたんだけど無いっぽい・・・?
0675デフォルトの名無しさんNGNG
C#のパラメータの修飾子を見ると
呼び出し側の便宜を図ることだけを考えているみたいだね

ref:参照呼出し→パラメータの中身は変更される可能性があるよ
out:出力専用呼び出し→パラメータは初期化しなくてもいいよ
という感じなのに対して

値渡しの場合は
呼び出し側から見れば内部でどう変えられようと構わないから
わざわざ変更不可を指示する必要もないかな・・・という具合
0676デフォルトの名無しさんNGNG
ローカル変数にも使えない模様
リファクタリングにけんか売ってますか?
0677644NGNG
>>645
ありがとうございます、出来ました。
0678sageNGNG
初歩的な質問で恐縮ですが、
Imageクラスを継承したMyImageクラスを作ろうとしたら
System.Drawing.Image.Image()はアクセスできない保護レベルになっています。
って怒られて出来ません。
ソースは
public class MyImage : System.Drawing.Image
{
ってやってるだけですが、こういうのは出来ないのでしょうか?
0679デフォルトの名無しさんNGNG
>>678
System.Drawing.Imageがsealされてるとか。
0680デフォルトの名無しさんNGNG
>>678
Imageクラスのコンストラクタはinternalなので、
同一アセンブリ(System.Drawing.dll)内でないと
たとえ子クラスでもアクセス不可。
0681678NGNG
>>680
なるほど。そうでしたか。
要するに出来ない様にしてあったワケですね。
どうもありがとうございました。
0682デフォルトの名無しさんNGNG
>>672-674 readonly っすか?見当違いならスマソ
0683デフォルトの名無しさんNGNG
>>682
あれってstatic以外にも使えるの?
0684デフォルトの名無しさんNGNG
それ以前にローカルやパラメータには使えないじゃん>static, readonly
0685682(見習い Lv.0x01)NGNG
>>683
>>683 使える…と思う(自信なし)

赤本(「実践〜」のP129)みたら、
こんなコード↓載ってたよ。

public class Account
{
 public readonly string sortCode;

 public Account(string code)
 {
  sortCode = code;
 }
}
0686682NGNG
>それ以前にローカルやパラメータには使えないじゃん>static, readonly

       》
     Λ《Λ  < そーでした。ちと吊ってきますー
    ( / ⌒ヽ
    ノノ   ノ     (´´;;;    (´
    (ノ  /ノ  ≡≡≡≡   (´´
    ノ ノノ ≡≡≡≡(´⌒(´⌒;;≡≡
   (ノノ     (´⌒(´⌒;;
    ̄ ̄ ̄ ̄ ̄ ̄

# ref/out かなぁ…
0687682NGNG
>>675でref/outがいしゅつだった…スンマセン…
0688デフォルトの名無しさんNGNG
VS.NETスレで同じ質問をした者ですが
こちらの方が良いと言われ、参りました。
マルチポストになってしまいますがどうかご容赦ください。


C++とC#のコードを連携させようと思い
C#アプリとManaged C++ライブラリを
一つのソリューション内に作って
C#アプリがC++ライブラリを参照するようにしたのですが、

LNK1104: コンパイラは、ファイル 'xxx.dll' を開くことができません。
(xxx.dllはC++ライブラリの名前)

と出てライブラリが更新できないのです。

VSがxxx.dllとリンクして解放しないようなので
仕方なく、IDEを終了してxxx.dllを削除することで
改めて一回ビルドできるようにしているのですが、
何か解決策はないでしょうか?
よろしくお願いします。
0689デフォルトの名無しさんNGNG
C#を使い始めて4日ですが、分からない事があるので教えてください。

C++では他の人が作ったライブラリを使う場合でも、クラス情報はヘッダで
提供されますけど、C#ではdllに埋め込まれているからヘッダは必要ないん
ですよね?

その場合にdllから人間が読める形でクラス情報を抜き出す方法はあるので
しょうか?

ちなみにFrameworkSDKを利用していて、統合環境は無いです。
0690デフォルトの名無しさんNGNG
>>688
こっちでは再現しない。どんなコード?

>>689
ildasm.exeを探して起動してみよう。
0691689NGNG
>>690
素早い回答ありがとうございました。感動して鼻汁でました。
これはいいですね。
0692デフォルトの名無しさんNGNG
>>691
Ildasmだと、その名のとおりILレベルなので、Decompilerとか使うと吉。
0693デフォルトの名無しさんNGNG
>>692
ILが読めることは大事なことだから、おれはildasmを薦めるな
0694デフォルトの名無しさんNGNG
>>693
もしかして、青(以下略)・・・
0695   NGNG
ニューヨークはチャートを見れば分かるとおり下げ基調継続。
0696デフォルトの名無しさんNGNG
>>695
誤爆?
0697デフォルトの名無しさんNGNG
●●●欧米株スレ69●●●
http://money.2ch.net/test/read.cgi/stock/1021058122/l50

ここらへん↑に落とすつもりだったと予測してみるテスト

・・・つうか、株板とここ掛け持ちしてる奴がおるんか・・・
0698デフォルトの名無しさんNGNG
socket を非同期で受信して,受信したデータに応じてフォームを表示したいと考えています。
そのフォームには IE コンポーネントをおいているため,STA スレッドで呼び出さないといけないのですが...
Main に STAThread 付けておいても非同期受信で呼び出される関数では MTA のようなのです。(例外が投げられる)
何とかして STA にする方法はないのでしょうか?
(同期受信にしろというのはなしで...)
0699デフォルトの名無しさんNGNG
>>698
この質問、前にも見たような・・・。
0700デフォルトの名無しさんNGNG
過去ログの番号が分らないのなら無視すれば?>>699
0701デフォルトの名無しさんNGNG
>>699 私が過去に質問したのですが、>>698は私じゃないよ。
333から読んでね。
0702698NGNG
・゚・(ノД`)・゚・ ウワーン
ごめんなさい,見落としてました...
逝ってきます...

レスthx >>699-701
0703688NGNG
>>690
レスありがとう。

元のソリューションはちょっと複雑だったんですが、
簡単なコードでも再現できました。

方法
1,空のソリューション作成
2,その中にC# WindowsアプリケーションとManaged C++ クラスライブラリのプロジェクトを作成
3,「参照の追加」でC#アプリケーションからC++ライブラリを参照するようにする
4,ビルドする
5, 一回IDEを終了してから改めてIDEを起動

これで、以後C++ライブラリを更新しようとすると
エラーになってしまいます。
0704デフォルトの名無しさんNGNG
ビルドの順番変えてみたら?
0705デフォルトの名無しさんNGNG
>>703
やはり再現しない・・・。
0706デフォルトの名無しさんNGNG
>>703
3. のときに、プロジェクトを参照してる?

あと、プロジェクトの依存関係を設定したほうがいいかも。
0707688NGNG
>>704
依存関係を変えてビルドの順番を変えようとしても
「この依存関係は、プロジェクト システムによって追加されたため、削除することができません。」
と出てダメでした。
ちなみに現在の順番は
ライブラリ→アプリ です。

それに、ライブラリだけをビルドしようとしてもエラーになるし、
VS起動中はエクスプローラでもDLLが削除できないので
順番を変えても変わらないような気がします。
0708688NGNG
>>705
うらやましい。
うちは何度やっても5の後、リビルドでエラーが....。

>>706
はい。
「.NET」「COM」「プロジェクト」の三つのタブの
一番右の「プロジェクト」タブで選択して追加しています。
0709デフォルトの名無しさんNGNG
>>708
やってみたけど、こちらも駄目でした。VB.NETとかだと問題なくできるのに・・・
0710デフォルトの名無しさんNGNG
簡単なゲームみたいなものを作っているのですが、
任意のタイミングでキーボードの状態を取得する方法がわかりません
KeyDownとKeyUpを片っ端から捕まえてフラグを立てたり降ろしたりすれば
できそうな気もしますが、もうちょいスマートなやり方を知っている方
いましたら教えてください m(_ _)m
一応DllImportでGetAsynkeyState,GetKeyboardState等試しましたが
無理でした
0711デフォルトの名無しさんNGNG
ツールバーのボタンの間隔を調整したいのですが、
なんか左端からズラズラと並んじゃってカッコ悪いです。
どうすればいいのでしょうか?
0712デフォルトの名無しさんNGNG
C#でWebDBのシステムを構築してみようと考えてます。
C#もASPのようにWWWサーバーはIISでないとダメなのでしょうか?
できればApacheで構築したいです。
0713デフォルトの名無しさんNGNG
>>712
ApacheでCGIならできるよ。
0714デフォルトの名無しさんNGNG
>713
ありがとうございます。
Apache+.NET Frameworkの環境で実行可能ということですね?
ということは、.NET FrameworkはTOMCATのようなコンテナに
あたる物と考えてOKなんでしょうか?

それと、ASPのようにIISに組み込んで動作するような仕組みには
なっていないのですね?
0715デフォルトの名無しさんNGNG
ASP.NETでページ間の移動をする際に
Server.Transfer("hogehoge.aspx",true);
ってやると、

このページの ViewState は無効です。壊れている可能性があります。

って言われるんだけど、何が原因だと思う?
0716デフォルトの名無しさんNGNG
>>712
WinでApacheを使うつもりなの・・・?
珍しい人もいるものだ・・・
0717デフォルトの名無しさんNGNG
Apacheも色々とパフォーマンスに関しては言われてたけど、
2.0になって良くなったんだろうか?
0718デフォルトの名無しさんNGNG
>>716
プププ
0719デフォルトの名無しさんNGNG
>>716=学生
0720デフォルトの名無しさんNGNG
>>719
で、君は窓際か。
0721デフォルトの名無しさんNGNG
窓際いいよね。
窓際地方公務員、憧れるなぁ。
0722デフォルトの名無しさんNGNG
>>721
仕事しなくて良いわリストラされないわか。
いいな。
0723デフォルトの名無しさんNGNG
それで2chばっかやってるわけか
0724デフォルトの名無しさんNGNG
個人的には、WindowsプラットフォームでApache使おうとは
思わないんだけど、Apacheにする理由って、何だろう・・・?

#単にApache使いこなせてないだけだけど、(自嘲
#*仮に*使いこなせても、Win上ではIIS選ぶと思う…

ってか、こういう質問とか議論って、どの板でやれば委員だろーか?
(多分ここだと「板違い」だよね、スマソです…)
0725デフォルトの名無しさんNGNG
>>724
index.html.ja
とか便利だと思った。
まぁ、今はASP.NET使うためにIISだけど。
0726デフォルトの名無しさんNGNG
Apacheは使わんなー。Tomcatは使うけど。
0727デフォルトの名無しさんNGNG
>>711
間隔の微調整は無理だと思われ。
ツールバーもどきのコントロールを自作すべし。

>>714
コンテナに相当する機能がデフォルトでついてて、IISと連携して動く。
0728デフォルトの名無しさんNGNG
>>724
Windowsサーバー運用スルとかいうのがあったと思う...
0729デフォルトの名無しさんNGNG
過去スレがようやく見れるようになったね
0730デフォルトの名無しさんNGNG
>724
業務では個々の開発用にWin+Apacheの環境で使うことよくあるよ。
Solarisとかの案件の為だけにLinuxなんか使ってられないしね。
0731デフォルトの名無しさんNGNG
入門用の書籍でお勧めってありますか?
0732デフォルトの名無しさんNGNG
>>731
出始めだからない。
0733デフォルトの名無しさんNGNG
>>731
クソ本ならうなるほどある
0734731NGNG
事故レス
関連すれありましたね、失礼しました。
0735731NGNG
>>733>>734
そうですか・・・ じゃ待ちですね。
ありがとうございます!
0736デフォルトの名無しさんNGNG
>>733
でも、それすら読まないといけない状況が今。
0737デフォルトの名無しさんNGNG
ところでさ。
以前の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見るのも手ではあるが・・・。


0738デフォルトの名無しさんNGNG
>>737
CLIのドキュメント Partition II Metadata の第24章・・・じゃあまり役に立たないか。
0739デフォルトの名無しさんNGNG
ダイアログのフォームに付けたスクロールバーが変です。
ステータスとかツールボックスとか巻き込んでスクロール
してくれちゃってます。
そもそも、縦のスクロールバーがステータスバーとツールボックスの
上に重なって表示されちゃってるよ。
どうしたらいいの?
0740デフォルトの名無しさんNGNG
>>739
オーナーが変?
0741デフォルトの名無しさんNGNG
>>739
ほんとだ。(w
0742741NGNG
>>739
パネルをフォームにDockStyle.Fillで貼りつけるよろし。
0743デフォルトの名無しさんNGNG
button.OnClick += new EventHandler( this.ButtonClick );

を、デザイナ以外から追加するにはどのようにすれば良いのでしょうか?
(自作クラスへのイベントハンドラ追加の際など)

手動で追加するしかないのでしょうか?
オーバーロードは、ソリューションウィンドウから行えるのですが・・・
0744デフォルトの名無しさんNGNG
>>731
独習C#おすすめするね。後はアスキーの出たばっかのがWindowsアプリ組む
のにはわかりやすいと思う
0745デフォルトの名無しさんNGNG
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4091-2.html

↑これ?
0746デフォルトの名無しさんNGNG
関数直下に 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 ) ;
    }
  }
}

0747デフォルトの名無しさんNGNG
>>746
それでエラー吐くのか。
こういうことができないんじゃ、Cのプリプロセッサ以下だな。
0748デフォルトの名無しさんNGNG
>>747
あなた口だけだね。

  ∧_∧  
 (  ∀ )   むぅ!
 (    )
 | | |    Σ ∩∩ 
 (__)_)    (゜x゜ )○
0749デフォルトの名無しさんNGNG
>>746-747
はぁ?usingに何を期待しているのですか?単なるプレフィックスの省略なんですけど?
0750デフォルトの名無しさんNGNG
これで解決
namespace bin2asm {
  class Class1 {
    static void Main() {
#include <System>
#include <System.IO>
      FileStream s2 = new FileStream( "test.txt" , FileMode.Open , FileAccess.Read , FileShare.Read ) ;
    }
  }
}
0751デフォルトの名無しさんNGNG
>>746
コンパイルユニットの先頭か、ネームスペース本体の先頭にしか使えない。
↓の C.2.6 参照。

ms-help://MS.NETFrameworkSDK.JA/csspec/html/vclrfcsharpspec_C.htm
0752デフォルトの名無しさんNGNG
>>749
M$に躍らされたバカ一人、と。
0753デフォルトの名無しさんNGNG
>>752←1年後、一人だけ踊ってないバカ。
0754デフォルトの名無しさんNGNG
>>747
意外と言語仕様汚いよね。後発なくせに
0755デフォルトの名無しさんNGNG
>>754
論拠なしの批評はネタと見なされます。
0756デフォルトの名無しさんNGNG
>>755
なんでそんな神経質なの?
0757デフォルトの名無しさんNGNG
クソなだけに煽られるのが怖いのさ(プププ
0758デフォルトの名無しさんNGNG
>>751
サンクス!
できればブロックの先頭でも指定できると便利なんですが・・・
まあ、そのうちできるようになる事を期待しましょう。
0759デフォルトの名無しさんNGNG
>>758
そういう事はリリースする前に言えっての(w
0760not 755NGNG
>>756 過去に何度かそういう理由でスレが荒れたから、かも。
0761デフォルトの名無しさんNGNG
Delphi戦争はDelphi厨とVB厨の和解という意外な結末で幕を閉じた。
VB.NET厨(書けるかどうかも怪しいが。通称、このスレの癌さん)が目を付けたのがC#
VB.NETと似たようなレベルの言語仕様。これなら煽りがいあるんじゃない?
癌さんの自作自演は今日も続く・・・。
0762デフォルトの名無しさんNGNG
つーか隔離スレでやれよ。本スレ荒らしていいならこっちも出向くぞ。
0763739NGNG
>>742
なるほど、パネルにスクロールバーを付けろと。
どうもありがとう。解決しました。
0764デフォルトの名無しさんNGNG
>>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・・・キタ━━(゚∀゚)━━ !!
ってやるだけ。だからブロックとか全然関係ない。さよーなら。
0765デフォルトの名無しさんNGNG
C#の配列って、どっからどうみてもCのポインタだよね。
Cでいう配列は、C#ではどうやって利用するの?
0766デフォルトの名無しさんNGNG
>>765
>C#の配列って、どっからどうみてもCのポインタだよね。
?まぁ、オブジェクト扱いになったけどね。

int[] a = new int[];

javaやってるとあんまり違和感ないと思うけど。
0767デフォルトの名無しさんNGNG
配列がクラスになったのはセンセーショナル




でもない
0768758=746NGNG
>>764
よく分からないです・・・(^^;
0769デフォルトの名無しさんNGNG
C#で、SOAP+HTTPS(HTTP+SSL)をサポートすることは簡単なのでしょうか?
0770デフォルトの名無しさんNGNG
ArrayListって、リンクドリストじゃなくて、配列ですよね?
リンクドリストってないんですか?
0771朝までC#NGNG
うーん 黄色い本のデリゲートの説明がよくわからない。
優しい説明のある本かURLをご存じないですか?
0772デフォルトの名無しさんNGNG
>>771 優しいかどうかは各自判断よろ。
http://black.sakura.ne.jp/~third/cs54.html
0773朝までC#NGNG
普通にメソッドやプロパティ参照は、電話を書けて情報交換みたいなもので、
デリゲードやイベントなどのコールバックは、
「なんかあったらこの関数を呼び出してくれ」と
伝えておけば、なんかあったときに呼んでもらえる
んですよね?
this.Resize += new System.EventHandler(this.ExTextBox_Resize);
と、書くのは、ユーザーコントロールの大きさの変更があったら
呼んでやるぞリスト(左の項)に追加(おそらく演算子のオーバーライド)
する形になっていて、そういった呼び先(関数へのポインタ)は、
System.EventHandlerの戻り値が関数へのポインタのようになっていて、
引数のthis.ExTextBox_Resizeを登録してやる

しかし、この関数へのポインタへ変換するらしきものが
System.EventHandlerだけじゃなくて、
System.Windows.Forms.LayoutEventHandlerとか
他の種類もあるのは何故ですか?

そしてこれらは、デリゲートなどの機能と密接に
関わっているんですよね?うーん。

たとえば、
TextBoxをユーザーコントロールでくるんで、
TextBoxのChengeイベントを、拾って文字の長さを
1文字にしてからそれを張っているフォームに
Chengeイベントを中継する場合の流れで
教えていただけませんか?
0774デフォルトの名無しさんNGNG
>>773 本読むのもいいけど、コード書いみた?
EventArgsの派生型の種類が多数あって
デリゲートの型が当然違ってくるからいくつもいるの。
別にイベントにsender とEvetnArgsの派生型がいるわけじゃない。
自分で書いてみりゃわかるって。

0775デフォルトの名無しさんNGNG
>>773
まったく解読できん。(w
0776773NGNG
>>774 タイプミスりまくりだな。スマソ
0777774NGNG
>>776 つか名前までミスった。ちと寝る はぁ、、
0778デフォルトの名無しさんNGNG
774 さんが退出されました
0779デフォルトの名無しさんNGNG
Delegateって+=演算子使えますけど複数のデリゲートを代入して一気に実行とか出来るんですか?

イベントハンドラに複数のメソッド割り当ててみたり。
0780デフォルトの名無しさんNGNG
>>779
delegateキーワードで作ったのはデフォルトでマルチキャスト。
0781デフォルトの名無しさんNGNG
>>773
この人↓に聞いてみれば。
http://www.atmarkit.co.jp/fdotnet/technology/index/index.html
「また、本稿に関するご質問、ご意見、取り上げてほしいテーマなどがあったら、
ぜひ掲示板(Insider.NET会議室)の方に書き込みをお願いしたい。
特に.NET Frameworkに関する情報では、WhatやHowが紹介されているだけで、
Whyが解説されていないものがほとんど、というのが筆者の現在の率直な感想だ。
筆者は本稿で、できるだけWhyを解説したいと思っているので、
もし知りたいWhyがあったらぜひ教えていただきたい。一緒に考えてみよう。」
0782デフォルトの名無しさんNGNG
>>781
C#入門やってたあの人には聞かないのか?(w
0783デフォルトの名無しさんNGNG
>>782
聞きたくないだろ?君も。(w
0784デフォルトの名無しさんNGNG
>>781
漏れはAppDoaminをキボン。
プロセスでもなくスレッドでもなく、どうしてAppDomainという単位が必要なのか。
0785デフォルトの名無しさんNGNG
AppDomain間の通信ってどうやるのか例示キボン
0786デフォルトの名無しさんNGNG
>>785
ん?Remotingのことかな?
0787デフォルトの名無しさんNGNG
>>786
あ、適当言ってみただけっす
プロセス間通信よりも低コストで通信できるのなら
AppDomainの価値があるかなあとか思って...
0788デフォルトの名無しさんNGNG
>>787
Remotingも一応プロセス間通信だよ。
0789デフォルトの名無しさんNGNG
>>788
AppDomainが同一プロセスにある場合は、なんらかの最適化が
行われるんでしょうか?
0790デフォルトの名無しさんNGNG
すいません。質問君です。unsafeなコードを書かずに、
ROPを使ったBitblt相当の画像処理はできないのでしょうか。
リファレンスを探したんですが、そういった機能が見つからないんです。
0791デフォルトの名無しさんNGNG
>>790
論理演算くらい自前でやるのも吉。
Frameworkに頼るのも吉。
0792デフォルトの名無しさんNGNG
GDI+ってダメなん?
0793デフォルトの名無しさんNGNG
GDI+はいろいろ面白い機能があるみたいなんですが、
ROPはサポートしていない?ぽいので。
自前でやるか、GDI呼び出すか考えてみます。
0794デフォルトの名無しさんNGNG
>>785
AppDomain越しのメソッド呼び出しのサンプル作ってみた。
こちらはHello.dllで。

using System;

public class Hello : MarshalByRefObject
{
  public string SayHello() {
    return "Hello World!!";
  }
}
0795794NGNG
こっちが呼び出し例。
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);
    }
  }
}
0796794NGNG
んで、確認できたらさらにこういうケースで確認してちょ。

1. Helloクラスをただのクラスにした場合どうなるか。

  public class Hello

2. HelloクラスをMBROじゃなくて値渡しにしたらどうなるか。

  [ Serializable ]
  public class Hello

3. AppDomainを作らず、CurrentDomain上で今までのコードを動かしたらどうなるか。

このへんって.NETでも半端じゃなくむずかしい分野なのよねえ...。
0797デフォルトの名無しさんNGNG
>>794
スバラシイ!早速試してみます!
しかしこりゃあ難しそうですね、COMのアパートメントでも見たような...

>Hello h = domain.CreateInstanceAndUnwrap("Hello", "Hello") as Hello;
>Console.WriteLine( h.SayHello() );

別ドメインでインスタンス作って
そのインスタンスのメソッドを呼び出すんですか・・・
頭クラクラしてきました(笑)

>このへんって.NETでも半端じゃなくむずかしい分野なのよねえ...。

AppDomainに何か惹かれるモノを感じたので、
なんとか理解してみたいと思います。
0798デフォルトの名無しさんNGNG
>>795
AppDomainとHelloオブジェクトが__TransparentProxy型とかいうのになってるね。
何か壮大な仕掛けがあるのか・・・。
0799デフォルトの名無しさんNGNG
いまだにAppDomainがなんなのかよくわからない。。。ウワァァン…
0800デフォルトの名無しさんNGNG
>>799
ここ見るよろし。

ms-help://MS.NETFrameworkSDK.JA/cpguidenf/html/cpconapplicationdomains.htm
0801デフォルトの名無しさんNGNG
>>792
GDI+ってWindows2000にはなかったんじゃ?
OFFICEXPを入れると無理やり入ってくるみたいだけど。
0802デフォルトの名無しさんNGNG
.NET Frameworkについてくる
0803デフォルトの名無しさんNGNG
VisualC#Standerdについている
これから始めるC#
という小冊子の使用感ははいかがなものでしょうか?
0804デフォルトの名無しさんNGNG
>>803
漏れもチラッと目を通した程度なんだが、
「これから始める」と書いてる割には他のプログラミング言語の経験者でないとちょっと読めなさそうな感じ。
0805デフォルトの名無しさんNGNG
>>804
便乗。VC# STDもライセンスは1ユーザで複数マシンにインストール可能なんですか?
0806デフォルトの名無しさんNGNG
>>805
購入者のみが使用するならOKなんじゃない?
0807803NGNG
確かに付属の小冊子はまったくの0からは厳しいのかも。
と、VC#買ってきて思った。
でも、CとC++の構文くらい知っていれば何とかなるかも、と思ったりして。

また、インストールの件は1人が使うならコピーして使っても良いとは使用許諾書に書いてある。
企業でも1人に対してとなっております。
複数台のPCにインストールしてもいいのでは、とは思います。
0808デフォルトの名無しさんNGNG
>>801
> GDI+ってWindows2000にはなかったんじゃ?
えっ、ネイティブに半透明に対応してるんでWin2000は入ってるんじゃないの?
0809デフォルトの名無しさんNGNG
Socketについてわかりやすいサイトとか書籍とかない?
(書籍はないか・・・)
0810デフォルトの名無しさんNGNG
>>808
半透明サポート = GDI+搭載
ではないでしょ。

>>809
http://pc.2ch.net/test/read.cgi/tech/1006258198/
0811810NGNG
あ、C#でのSocketの使い方という事か。勘違いした。スマソ。
0812808NGNG
>>810
ttp://www.interq.or.jp/jupiter/philsci/iw-html-02/shell-06a.html
に出てくる
『月刊ASCII DOS/V ISSUE』の記事を読んで勘違いしてました。
正直すまん。

WindowsXPには付属。
.NET 又は OfficeXPをインストールすると GDI+が入る。
と言うことですね。
0813デフォルトの名無しさんNGNG
=?iso-2022-jp?B?GyRCNjUkKCRGJC8kQCQ1JCQhIxsoQg==?=

↑メールのこういう文字列をデコードしたいんですが
どっかにサンプルコードが掲載されてたりしませんでしょうか?
0814813NGNG
age忘れた…
どなたかお願いします。
0815デフォルトの名無しさんNGNG
>>813
BASE64?
0816813NGNG
>>815さん
BASE64関連は System.Convert にあるものが使えそうなのですが
Quotedエンコードな場合もあるみたいなので…。よくわからん。
結構汎用的なコードだと思うんで、もし前に誰かが書いたものが
あるなら、是非裾分けしてもらたい次第であります。
0817デフォルトの名無しさんNGNG
>>816
後、uencodeとか。
0818デフォルトの名無しさんNGNG
C#から、unlha32.dllのUnlhaFindNextを呼び出すと、1回目から-1(検索終了)が返ってきてしまいます。
誰か試したことある人います?
0819デフォルトの名無しさんNGNG
マシン共有してて、C#使う場合はどうすんだ?
共有してるのは外注同士で、
完全に別プロジェクト。他人。無関係。
同じ日に作業する事は無い。
予算が無いのでマシンを分けられません?
ユーザー毎にC#インストールできんの?
0820デフォルトの名無しさんNGNG
何が言いたいのか良くわからないけど、普通マルチユーザー対応では。
0821デフォルトの名無しさんNGNG
WinXP対応を謳っている場合はマルチユーザー対応ですね。
0822デフォルトの名無しさんNGNG
構造体をbyte[]に変換したいのですが、どうすればいいんでしょうか…
0823デフォルトの名無しさんNGNG
>>818
冷静に考えて先にFindFirst呼ぶべきではないかと?
0824初心者NGNG
C♯かjavaどっちを始めればいいと思いますか?
プログラムは組んだことありません。
0825デフォルトの名無しさんNGNG
>824
外出だがジャヴァ
0826デフォルトの名無しさんNGNG
819=824?
目的にもよりますが、学習のためであるならどちらでも構いません。
今のところJavaのほうがいい本が多いので、そちらをすすめます。
0827デフォルトの名無しさんNGNG
>>824
まず、ObjectPascalかC++を覚えて、作ったオブジェクトは必ず解放しなければならないことを学んで下さい。

C#/Java -> C++ -> 恐ろしい量のメモリリーク -> クビ
0828824NGNG
>825,826,827
ご丁寧なレスありがとうございます。
C#はC++の改良版でJavaとC++のいいとこ取りという話を
雑誌で見かけたのですが、この解釈で正しいのでしょうか?
0829デフォルトの名無しさんNGNG
いいとこと思うか悪いとこと思うかは人それぞれ
0830デフォルトの名無しさんNGNG
>>828
C++のしがらみだらけの機能を整理し、特に重要でない機能を省いたもの。
だからC# -> C += 0.5
0831デフォルトの名無しさんNGNG
>>828
すみません、その手の発言はフレームが発生するので避けてくださいな。
初歩的な学習のうちはC#もJavaも変わりませんよ。
0832デフォルトの名無しさんNGNG
>>827
なんか凄く同意
メモリリークをまったく知らないプログラマは
いざ別の言語を使おうとするとパニックになりかねない

C++のようなGCのない言語の仕事が金輪際なくなるのなら話は別だけど
0833デフォルトの名無しさんNGNG
空のImageオブジェクトを作成する方法がわかりません。
どなたかご存知ありませんか。
0834デフォルトの名無しさんNGNG
>>831
揚げ足取る気はないが文章全体痛いから敢えて潰す。
フレームって何だ?
0835デフォルトの名無しさんNGNG
>>833
Image img;
0836824NGNG
>829,830,831
質問ばかりしてすいませんでした。どうもありがとうございました。
0837デフォルトの名無しさんNGNG
>>834
おまえのほうが痛い。
0838デフォルトの名無しさんNGNG
>>835
Imageは抽象クラスなので単独でインスタンスは作成できません。
CreateImage(幅,高さ)みたいなメソッドを探しているのですが、見つかりません。

無理やりビットマップをメモリに作って、ストリームからロードするしかないのでしょうか。
0839デフォルトの名無しさんNGNG
>>838
継承して仮想関数何とかしてオーバーライドする。

と言うのが教科書的答え。

0840デフォルトの名無しさんNGNG
>>834
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=flame&sw=0
0841デフォルトの名無しさんNGNG
>>832
オブジェクトに関して生成後は無責任でいれるのがGCの良いところ。やるだけやって後はぽい。
GCの無い言語は中絶(不謹慎な例えスマソ)まで確実に女の名前を覚えていなければならない。

ヤリ逃げC#と責任感の固まりのC++が同じ生きかたをしているとは到底思えない。
0842デフォルトの名無しさんNGNG
Imageは継承できないとかいう話だった記憶
Bitmap使え
0843デフォルトの名無しさんNGNG
>>839
Imageオブジェクトは継承できないようになっているようです。
なぜなら一切ビット配列にアクセスできるようなインターフェイスが含まれていません。

独自のエンコーダー/デコーダーすら書けそうにありません。
なんでこんな糞仕様なんでしょうか。
0844デフォルトの名無しさんNGNG
>>841
GCがある方が安全だというのはその通り

ただ世の中には自分で言語を選べない状況というのもあるから
「使ったメモリは不要になったら開放しなければならない」
ということは体験的に知っておいたほうがいいと思われ
(頭で分かったつもりになるのではなく、実際にそういうコードを書くということね)
0845843NGNG
なぜImageにビット配列のアクセスがないか解りました。
Imageはピクセルベースのグラフィックと、ベクトルベースのグラフィックを統一的に扱うための
アダプタなわけですね。
ピクセルへのアクセスはインスタンスを調べてBitmapにキャストしてから行うべきなのですね。
謎が解けました。

ただ、やはりBitmapを直接作成する方法も用意されていないようです。
Win32APIでCreateBitmapしてからハンドルを渡たすしかないのでしょうか、
あまりWindowsハンドル関係は抽象度が下がるので使いたくはないのですが。
0846843NGNG
すみません勘違いでした。
Bitmapはインスタンスが直接作成できるのですね。

Bitmap = new Bitmap(幅,高さ);

で解決しました。
お騒がせしました。
0847デフォルトの名無しさんNGNG
よくわからない使用ですね。
Bitmapまで直接作成できないとは。
0848デフォルトの名無しさんNGNG
>>846
?
あなたのオブジェクト指向結構独特っぽい。
0849843NGNG
>>848
えっとどういう意味ですか。
0850デフォルトの名無しさんNGNG
>>849
>>848 ではないけど、そう思いますよん。派生クラスだけで解決すればよいと思いますです。
0851デフォルトの名無しさんNGNG
なんか急に厳しいスレになったなぁ・・
0852デフォルトの名無しさんNGNG
>>851
>独自のエンコーダー/デコーダーすら書けそうにありません。
>なんでこんな糞仕様なんでしょうか。

自分の力不足をライブラリに転嫁する様な人間に優しくしろと?
0853818NGNG
>>823
すいません。省略してましたが、UnlhaFindFirstはもちろん先に呼んでます。
長くなるけど、ソースをアップしたほうがいいですかねえ?
0854デフォルトの名無しさんNGNG
C#ってさ、なんかC++っぽくなったVBってかんじ。
0855デフォルトの名無しさんNGNG
JavaっぽいDelphiと言ってくださいw
0856デフォルトの名無しさんNGNG
C#(&VB &Delphi)の共通点

厨にうける取っつき安さ
とことん作り込むには向かない
0857デフォルトの名無しさんNGNG
C丼、汗だくで。
0858843NGNG
>>850
派生クラスだけで解決するというのはどういうことですか?

>>852
いくら力があっても、肝心の部分を抽象化して隠蔽されたのでは何もできないでしょ。
昨日VS.NETを買ってきたばかりなので、ついImage、Graphics関係を見たときに、
実態のないJavaのImageクラスを思い浮かべて失望してしまったのです。
C#にはLock/Unlock,SetPixel/GetPixelがあってホッとしましたけどね。

それに実際問題、独自のエンコーダー/デコーダーを追加できるような仕様にはなっていないように見えますが。
0859デフォルトの名無しさんNGNG
>>858
>肝心の部分を抽象化して隠蔽
オブジェクト指向の肝。
0860デフォルトの名無しさんNGNG
>>856
C++でC#で作ったぐらい作りこんでください。
0861デフォルトの名無しさんNGNG
>>860
日本人に理解できるくらい、文章を作りこんでください。
0862デフォルトの名無しさんNGNG
>>861
外人は国へ変えれ。
0863デフォルトの名無しさんNGNG
まあC#は、出来合いの物を、組み合わせてありがたく使わせてもらう、
デパチカの総菜みたいなもんだな。適度な負担で、ある程度の物を。
手抜き主婦には愛されるが、一流シェフには無縁の物。
0864デフォルトの名無しさんNGNG
>>862

おれもC#を擁護したいが・・・ あんたの日本語は良くわからん
0865デフォルトの名無しさんNGNG
独自のエンコーダー/デコーダー
System.Drawing.Imaging.ImageCodecInfoあたりかな名前だけ見ると
0866843NGNG
>>859
確かに抽象化は肝ですが、
派生クラスにすら内部へのアクセスを許さない仕様だと、
結局与えられたこと以外何もできないライブラリへと成り下がります。

Javaなどは結局少し凝ったことをしようと思うと、
すべてint配列上で自前で処理してからImageを作成するという非常に効率の悪い方法しか取れませんでした。
0867デフォルトの名無しさんNGNG
>>866
>結局与えられたこと以外何もできない
オブジェクトの肝
0868843NGNG
>>865
もちろん自分もその辺は調べたのですが、どこにも実体が見えないのです。
どうもWindowsが標準で提供するCodecしか使えないみたいにも読めます。
0869デフォルトの名無しさんNGNG
>>867
ギャクだよね?
0870デフォルトの名無しさんNGNG
C++が鉄の中華鍋なら、C#はテフロン加工の鍋。
どちらがいいかは、使う人間により違う。
単純に鍋だけ比べてもねぇ。
0871843NGNG
>>867
標準ライブラリとしては失格かと。
0872デフォルトの名無しさんNGNG
843さん、C#は用意されている物を組み合わせて、ソフトを作るもんです。
用意されていない物を無理につくりこんでも、まともな速度では動かないでしょう。
他の言語を使用するか、他の言語でコンポーネントを作成して、C#から使いましょう。
0873デフォルトの名無しさんNGNG
テフロン鍋に多くを期待するべきではないでしょう。
でもImageはC#じゃなくて.NET Class Libraryの話なので、
他の言語でも同じことでしょう。
0874デフォルトの名無しさんNGNG
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_/
0875デフォルトの名無しさんNGNG
ヒョンゼチァングage
0876デフォルトの名無しさんNGNG
>>874
ブラクラ似、注意
0877デフォルトの名無しさんNGNG
IEnumeratorをコピーしたくて、以下のコードを書いたのですが、
これでいいのでしょうか?もっとスマートな方法があるような気がして・・・。

IEnumerator p,q;
〜中略〜
q = (IEnumerator)((ICloneable)p).Clone();
0878デフォルトの名無しさんNGNG
pは無理にIEnumerator型で宣言しないで、具体的なクラス型でいいのでは?
そうすれば q = (IEnumerator)p.Clone(); で済むし。
0879デフォルトの名無しさんNGNG
なんか勘違いしていると思われ。Cloneされるのはclassのインスタンスで、interface
なんざ、クローンしようがない。
だから、
q = (IEnumerator)p.Clone();
で十分じゃないの?
そもそも
class X : IEnumerator {
...
}
X p = new X();
X q = (X)p.Clone();
foreach (Y y in q) {
 ...
}
でいいんじゃないかい?
0880デフォルトの名無しさんNGNG
>>878さん、>>879さん、レスありがとうございます。
けど、ダメでした。
「'System.Collections.IEnumerator' に 'Clone' の定義がありません。」
とエラーが出てコンパイルできませんでした。

0881デフォルトの名無しさんNGNG
using System.Collections;
しているにも関わらず、

public Specialized.StringCollection Msg;

ではコンパイルが通らず、

public System.Collections.Specialized.StringCollection Msg;

と、しないと動きません。

using以外にすべきことがあるのでしょうか?
0882デフォルトの名無しさんNGNG
>>881
using System.Collections.Specialized;
して、
public StringCollection Msg;
じゃない?
0883デフォルトの名無しさんNGNG
>>882
例えば

using System

なら、Systemを省略して書けるんですよね。
じゃあ、

(System.)IO.File

とかも出来そうな。

なんかいまいち概念がわからない。。。
0884デフォルトの名無しさんNGNG
>>883
using System;は
Systemを省略可能にするんじゃなくて
System名前空間内の名前にSystem.をつけずにアクセスできるようにするだけ
0885デフォルトの名無しさんNGNG
>>884
usingしてもその名前空間に従属する名前空間にはアクセスできないと。
楽しようと思ったらusingだらけにしなきゃいけないのか。なるほど。
0886デフォルトの名無しさんNGNG
実際に見ていないし、目次もないのでよーわからんが、
雑誌でこんなのがあった。

日経BPパソコンベストムック
始めよう!C#
.NETと新言語C#をすぐに体験
http://store.nikkeibp.co.jp/item/main/148222168960.html
0887デフォルトの名無しさんNGNG
>>886
体験版ほしさに買った。
内容は・・・雑誌のDelphi始めよう!みたいなレベル。
0888デフォルトの名無しさんNGNG
さすがartonさん。この本はお勧め。
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4091-2.html
0889デフォルトの名無しさんNGNG
artonって誰?
0890デフォルトの名無しさんNGNG
Ruby使いだろたしか。どうでもいいな。しかし。
0891デフォルトの名無しさんNGNG
>>890
いや、Ruby使いだろうがなんだろうが、この本はC#初心者のキラー本だ。
0892デフォルトの名無しさんNGNG
>>891
確かにね。
今日、同僚が買ってきてたのを読ませてもらった。
黄色本とあわせて読むといい感じだな。
イベントやデリゲートのあたりは特にこっちかな。
ただ、ページの割に密度が濃いので、若干読みにくいけどね。
あとは、「入門」ってことだが、完全なプログラミング初心者には
多分辛い。すでに別の言語やった人にとっての「入門」て感じだった。
0893デフォルトの名無しさんNGNG
こういうメソッドを作りました。

//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)<>")
他の文字列ではうまくいくのですが。
問題点があれば指摘して下さい。
なお、問題はラウンジのスレッド名です。


0894デフォルトの名無しさんNGNG
>>893
解答じゃないけど、Regex.Split の存在はご存知か?
0895デフォルトの名無しさんNGNG
>>894
ありがとう、十二分すぎる回答です。

「ああ、正規表現が使えれば・・・」

と、ため息をつきながらコーディングしていた自分も今では良い思い出です。
0896デフォルトの名無しさんNGNG
以前、classの中のプロパティをXMLで一気にシリアル化する美しいコードの
サンプルを拝見したのですが、プロパティを配列にしたい場合には、
どうするのが一番スマートなのでしょうか。
(WindowのPositionやSizeを覚えこませるのと同じように、
ListBoxに表示していたものを保存したいのです)

違うclassにして、インデクサにした場合、シリアル化できるのかな。
もうちょっと調べないと。
それとも同じclass内に、うまく書く方法があるのでしょうか。

それにしても、レジストリに変わる、読み書き可能な動的プロパティ
のクラスをどうして作ってくれなかったのかなあ。
0897デフォルトの名無しさんNGNG
サイズ可変のダイアログを、指定したクライアントサイズ
でサイズの変更を止めたいのですが、やり方がわかりません。
MaximumSizeにクライアントサイズ+枠サイズをいれるのだと
思うのですが、枠の大きさがわからないです。
しかも、ステータスとかツールバーとかつけたらそのサイズも
計算しないといけない気がするし。
なにか方法あるんですか?
0898デフォルトの名無しさんNGNG
>>893
はっはっは、何を馬鹿なことを・・・と思ったらホントだ・・・
>゜ ←この組み合わせが文字列検索素通りするみたい。
0899デフォルトの名無しさんNGNG
>>896
配列でもArrayListでも問題なくシリアライズできたよ。
0900デフォルトの名無しさんNGNG
>>897
System.Windows.Forms.SystemInformation を元に計算するとか。
0901デフォルトの名無しさんNGNG
AppSettingsReader r = new AppSettingsReader();

*.configファイルの場所はどうやって設定すればよいのでしょうか?
0902デフォルトの名無しさんNGNG
>>898
MSに連絡すべきでしょうかねぇ・・・。
結局正規表現で回避しましたが。
0903デフォルトの名無しさんNGNG
>>901
configファイルはexeと同じディレクトリにある (exe名).config しか受け付けないよ。
0904デフォルトの名無しさんNGNG
>>902
結構深刻かもな。
エラー処理してないASP.NETのプログラムを例外で落としたりできそうだ。
0905デフォルトの名無しさんNGNG
C#でURLエンコーディングを行うにはどのような手段がありますか?
0906デフォルトの名無しさんNGNG
>>905
System.Web.HttpUtilityクラスを参照してちょ。
0907デフォルトの名無しさんNGNG
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));
 }
}
0908デフォルトの名無しさんNGNG
>>906-907
助かりました。
皆さんクラスライブラリは何で調べてますか?
0909デフォルトの名無しさんNGNG
>>908
オンラインドキュメントを使いこなすことが大事。
インデックス、検索、全文検索。これらを使いこなすことも、
プログラミングする上で大切だよ。
本やサンプルコードを見ることもいいけど、それは効率が悪い。
0910デフォルトの名無しさんNGNG
ワーカースレッドからイベントハンドラを削除すると処理がそこで
止まってしまう現象に悩まされています。
例外などではなく、全てのスレッドの処理がそこで停止してしまいます。

複数のスレッドがハンドラ追加したり削除したりしたりするものですが、
BeginInvokeなど試してみたんですが原因がいまいちわかりません。
なにか情報ありませんでしょうか?
0911デフォルトの名無しさんNGNG
>>910 自己レスです。原因らしきものはわかりました。
別のスレッドがイベントハンドラを追加しようとする時に
別のスレッドがハンドラを削除しようとすると起こるみたいです。
全てが止まってフリーズしたみたいになるので、
正確なところはわかりませんが、、、
0912デフォルトの名無しさんNGNG
>>911 また自己レスですが原因は違うところみたいです。
スレ汚してしまい、申し訳ない。
0913デフォルトの名無しさんNGNG
C#、J#と来て、次はF#が。(藁

http://research.microsoft.com/projects/ilx/fsharp.htm
0914デフォルトの名無しさんNGNG
早く・・・早くP#を・・・。
0915デフォルトの名無しさんNGNG
>>913
この文章で出てくる「ML language」ってどう解釈したらいいの?
0916デフォルトの名無しさんNGNG
NT Technology
0917朝までC#NGNG
ユーザーコントロールで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;
}
}
0918デフォルトの名無しさんNGNG
>>917
txtCtlとは何ぞや?
0919朝までC#NGNG
説明不足ですみません。TextBoxコントロールです。
ユーザーコントロールのソースです。
0920デフォルトの名無しさんNGNG
public class TextBoxEx: TextBox
{
public override string Text {
get{
return base.Text;
}
set {
base.Text = value;
}
}

じゃないの?
0921朝までC#NGNG
クラスのファイルを作ってやってみましたけど、
ツールボックスに乗っかりません。
GUIのデザイナで使えるようにするのにどんな条件があるのかな?
理屈でいうとユーザーコントロールに乗せるよりそれが一番素直な書き方
なんだけどなぁ・・・
TextChangeイベントもぶつかってる・・・うーむ。修行が足りない。
0922デフォルトの名無しさんNGNG
>>921
>ツールボックスに乗っかりません。

それは自分から追加しないと駄目。
0923デフォルトの名無しさんNGNG
>>921
>TextChangeイベントもぶつかってる・
嫌ならnewしなされ。って言うか親クラスのメンバくらい確認しながら実装しなされ。
0924朝までC#NGNG
>>922
ありがとうございます。ううう・・・いままでユーザーコントロールを
使っていたのがアホみたいです。なんとも悔しい。これもVBの呪いか?

>>923
>>922 さんに指摘の方法でも同様の問題が出ると思われますので、
NEW で上書き実装してみます。・・・ってこの場合もイベントを
オーバーライドできるかもしれないので調べます。
0925デフォルトの名無しさんNGNG
>>924
>いままでユーザーコントロールを使っていたのがアホみたいです。

これはMS推奨の正攻法なのでアフォじゃないと思われ。

overrideするかbaseのイベントにわたされたでぇがてを+=
0926朝までC#NGNG
>これはMS推奨の正攻法なのでアフォじゃないと思われ。

複数のコントロールの組み合わせだとコンテナが無いと困るので、
やり方を統一しているのでしょうね。
単純にTextBoxを拡張したいだけなら教えて頂いた方法が
さっぱりしてていいです。・・・しかし。
普通にイベントを追加したら当たり前だけど、TextBoxのTextChaneイベントが
子である。ExTextBoxクラスと、それを貼り付けたフォームの両方に
イベントが行くようになりました。
しかし、ExTextBoxクラス中のTextChangeでBase.Textを変更すると
2回目のイベントが発生してフォーム側にも2回のイベントがいます。
オーバーライドしていないので当たり前ですね。
overrideしたりNewで新しいもので書きつぶしたりして
横取りすればいいのは判るのですが、基本がわかってないせいか、
あちこちにキーワードを入れてみても上手くいきません。
フォームで += とかで関数へのポインタを登録するときに、
その登録先をオーバーライドすれば良いと思って。
ExTextBoxクラスにて、
public override event System.EventHandler TextChanged;
で良いと思ったのですが上手く行きません。
何が間違っているのでしょうか?
0927デフォルトの名無しさんNGNG
>>926
オーバーライド。
で、baseの処理を初めに済ます。
その後にbaseのイベントにNULLいれる。
その後に自分のイベントメソッド登録。

?
0928デフォルトの名無しさんNGNG
>>926
何を言ってるのかさっぱり分からんぞ
0929朝までC#NGNG
判りにくくてすみません。
イベントにNullを入れるとはどのような記述になるのでしょうか?
base.TextChanged に呼び出し先が入っているのでこれの中身を
編集するのでしょうか?
そして、それからExTextBoxが発信元の新しいTextChangedを
発行をすると言う意味でしょうか?
この方向で模索してみます。

やりたいことは、TextBoxを継承したExTextBoxを
作り、TextBoxの内容が変更されたらExTextBox内でそれを修正して、
その後に、ExTextBoxを貼り付けたフォームへTextChangedを
送りたいです。
ExTextBox内でのTextBox.Textへの修正作業によるTextChangedイベントは
ExTextBox内で止めてしまってExTextBox自身は普通のTextBoxと
互換の振る舞いをしたいと思っています。
0930デフォルトの名無しさんNGNG
String型の文字列をSJISのByte[]に変換したいのですがEncordingの使い方がいまいちわかりません。
参考になる情報は無いでしょうか?
0931デフォルトの名無しさんNGNG
>>917
Textプロパティをわざと隠してるのだと思われ。
見せるようにするにはattributeをつければよろし。

  [ Browsable(true) ]
  public override string Text
  {
    ...
0932デフォルトの名無しさんNGNG
>>929
というか、どっちの方法でやってるの?
どっちにも読めてしまうので。

a) 継承

  public class ExTextBox : TextBox

b) コンポジション

  public class ExTextBox : UserControl
  {
    private TextBox textBox1;
0933デフォルトの名無しさんNGNG
>>930 Encoding.GetEncoding(932).GetBytes( "foo");
0934デフォルトの名無しさんNGNG
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には出来ない)
何か良い方法無いでしょうか?
0935デフォルトの名無しさんNGNG
>>933
助かりました。精進します。
0936デフォルトの名無しさんNGNG

WebBrowserにファイル経由ではなくStreamを使ってHTMLを流し込み
たいのです。

http://members.jcom.home.ne.jp/monazilla/document/directwrite.html

ここで照会されているのは、delphiでの方法ですがこれをC#で実現する
にはどうすればよいのでしょうか?

System.Messaging.ActiveXMessageFormatterのInitStreamedObject メソッド
周辺にヒントがありそうなのですが、よくわかりません。

よろしくお願いします。
0937デフォルトの名無しさんNGNG
>>934
BinaryFormatter使った方が楽だと思われ。
0938デフォルトの名無しさんNGNG
>>936
これかな。
http://discuss.develop.com/archives/wa.exe?A2=ind0103D&L=DOTNET&D=0&P=37862
0939デフォルトの名無しさんNGNG
>>936
こんなのもあるよん。
http://discuss.develop.com/archives/wa.exe?A2=ind0202c&L=dotnet&F=&S=&P=13944
0940936NGNG
ありがとうございます。>>938 and >>939
MSHTMLを使うんですね。

こんなのも見つけました。

http://www.csharphelp.com/archives/archive146.html
0941デフォルトの名無しさんNGNG
Petzold, Richter 発売日予定がでた!
http://www.microsoft.com/japan/info/press/vs_net/vs_net.asp
0942朝までC#NGNG
>>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 に指定されていないので、オーバーライドできません。」

とエラーになります。

0943デフォルトの名無しさんNGNG
>>942
Control.TextChangedイベントはvirtualではないので書き換え不可。
こういうときはControl.OnTextChangedメソッドの方をoverrideするよろし。
0944デフォルトの名無しさんNGNG
net.sdkをdlしたんだけど、なんか使い方がいまいちわからないんです。
これってdosまどでやるんですか?
0945デフォルトの名無しさんNGNG
>>944
コードはメモ帳とかで書いてください。
コンパイルするにはDOS窓を開いてcsc sourcefile.csとでもやってください。
コンパイル終わるとexeファイルができますので、それをWクリックするなりして起動してください。
なお作成したexeファイルは.NET Frameworkがインストールされている環境でないと動きません まる。
0946デフォルトの名無しさんNGNG
>>945
優しすぎ。
0947デフォルトの名無しさんNGNG
C#でCoCreateInstanceExに相当する関数は何ですか?
0948デフォルトの名無しさんNGNG
>>947
Type.GetTypeFrom〜でTypeを取って、Activator.CreateInstance。
0949947NGNG
>>948
Activator.CreateInstanceでリモートマシン名を指定できるんですか?
0950名無しさん♯NGNG
次スレです。

C♯相談室 Part6
http://pc.2ch.net/test/read.cgi/tech/1022257078/l50
0951デフォルトの名無しさんNGNG
>>949
Type.GetTypeFrom〜の方で指定できるよん。
0952デフォルトの名無しさんNGNG
1ヶ月で消費か。
0953947NGNG
>>951
どうもありがとう!
0954デフォルトの名無しさんNGNG
保守
0955朝までC#NGNG
保守
0956デフォルトの名無しさんNGNG
保守
0957デフォルトの名無しさんNGNG
保守
0958デフォルトの名無しさんNGNG
補習
0959デフォルトの名無しさんNGNG
♯さん、コテハンで活動してくれよ
0960デフォルトの名無しさんNGNG
保守
0961デフォルトの名無しさんNGNG
ほしゅ
0962デフォルトの名無しさんNGNG
保守
0963デフォルトの名無しさんNGNG
レス数が950を超えています。1000を超えると書き込みができなくなります。