C♯相談室 Part2

このエントリーをはてなブックマークに追加
1名無しさん♯
C#,.NET関連の話題はこちらでどうぞ。

前スレ
http://piza2.2ch.net/test/read.cgi/tech/977112364/

Insider.NET
http://www.atmarkit.co.jp/fdotnet/
.NET関連リンク
http://www.atmarkit.co.jp/fwin2k/rescenter/indexpage/net.html
2デフォルトの名無しさん:01/10/08 00:23
ごくろうさまー
3名無しさん♯ :01/10/08 00:25
>>1
死ねよ
4名無しさん♯ :01/10/08 00:26
は!名前を変えるのを忘れてしまった…鬱
?????
6名無しさん♯ :01/10/08 00:28
おまえが士ね>3
warata >>3-6
9デフォルトの名無しさん:01/10/08 00:31
さっそく厨房な質問。
Windows.Formsで「フォルダの参照」を出すにはどうすればいいでしょうか?
Win2000のエクスプローラでファイルの移動やコピーの時に出る
ダイアログです(一番下の部分はなくても可)。
ジサクジエン、カコワルイ
11名無しさん♯:01/10/08 02:00
ニセモノがいても(゚ε゚)キニシナイ!!

J#、VS.NET日本語版ではインストールできないみたいね。
がっくし...。
ここに質問して答えて貰えるんだろうか…。一応。
hWndの取得ってどうやるんすか?
せっかくDllImportしてもhWnd要求されちゃぁねぇ…。
13名無しさん♯:01/10/08 02:35
>>12
ControlクラスにHandleというプロパティがあるよん。
(もちろんサブクラスにも。)

DllImportのところで、hWndはIntPtr型で受け取ってちょ。
1412:01/10/08 03:12
>>13
おぉ、ありがとうございます。
Handleがまんまウィンドウハンドルなのですね。
>>13
間違いなく本物の#さんだね。(w
16名無しさん♯:01/10/08 07:00
>>9
System.Windows.Formsにはそういうクラスはないみたいね。

本来の用途とは違うけど、System.Windows.Forms.Designの
FolderNameEditorクラスを使えば、強引にできなくもないみたいね。

using System;
using System.Windows.Forms;
using System.Windows.Forms.Design;

class FolderNameEditorEx : FolderNameEditor
{
  protected override void InitializeDialog(FolderNameEditor.FolderBrowser folderBrowser) {
    // ここでダイアログの初期化を行なう。
    folderBrowser.Description = "ほげほげ";
    folderBrowser.Style = FolderNameEditor.FolderBrowserStyles.ShowTextBox;
  }

  [ STAThread ]
  public static void Main() {
    FolderNameEditor folderNameEditor = new FolderNameEditorEx();
    string result = folderNameEditor.EditValue(null, null, null) as string;

    if (result != null) {
      MessageBox.Show(result);
    }
  }
}

どこまで希望どおりのことができるかわからないけど、
とりあえずヘルプでFolderNameEditorまわりを見てちょ。

P/Invokeでやるとなると、かなりたいへんそうね...。
17デフォルトの名無しさん:01/10/08 15:42
>>16
どうもありがとうです。
単にテキストボックスにフォルダ名を入れたいだけなので
ソースを参考にすぐできました。
これからもよろしくお願いします。
もうちょっとよくFolderNameEditor見よっと…。
C#でDirectXを使うサンプルを見てみたけど、
DirectX7だった。
しかもVB用のライブラリを使っている?
鬱だ。

DLLを直接インポートすればDirectX8を使えるだろうけど、
Direct3DXは使えないってことだよね?
>>18
俺も同じく。
で、やっぱりVB用なんだけどDx8vb.dll(だっけか?)をtlbimp.exeでラップしたけど
CreateDeviceで例外発生…。
某MLで「外人が配ってるDLLでOK」って書いてあったけど、そいつは参照設定すらできなかった。
鬱だ。

ちなみにDirect3DXはdx8vb.dllには入ってるみたいだよ=使えるかも。
2018:01/10/08 18:01
>>19
vbのDirect3DXはサブセットだったと思います。
サブセットというのも気が引けるくらいしょぼかったような。
趣味でやるからこそ、3dxみたいなサポートライブラリが重要なのに…。
21名無しさん♯:01/10/08 18:38
>>19
漏れはDirectXはぜんぜんわからないけど、こんな情報があったよん。

 http://discuss.develop.com/archives/wa.exe?A2=ind0012C&L=DOTNET&P=R16258

GUIDの問題らしく、tlbimpでできたラッパーをILレベルで修正しなきゃならないみたいね。

ちなみに、DirectX8のサンプルもあるそうな。
β1向けだから、ちゃんと動くかわからないけど。(藁

 http://www.gotdotnet.com/userfiles/MKoleoso/SkinnedMeshViewer_1_0.zip
2219:01/10/08 19:07
>>21
情報サンクスです。早速バイナリエディタでID部分を書き換えてみましたが…。駄目でした。
漏れはなんか別の理由でハマってるのかも…。
ちなみに>>19で逝ってた外人の作ったDLLってそれの事です。

HRESULTからの例外ってなんジャロー。
23名無しさん♯:01/10/08 19:44
>>22
バ、バイナリエディタ...?

ildasm → テキスト編集 → ilasm よん。
2419:01/10/08 19:59
え”? 7385E4DF のところを 7385E5DF に書き換えればいいんじゃなかったんすか?
ちょいと間違えてた模様。今からやってみます。
2519:01/10/08 20:06
と思ったらildasmが無いよ〜。
VisualStdio β2で入るFrameworkSDKには無いのかな?
26名無しさん♯:01/10/08 20:09
>>25
パスが通ってないのよん。

スタートメニューのVS.NETのところにコマンドプロンプトがあるでしょ?
そこからやるといいよん。
2725:01/10/08 20:48
>>26
何から何までありがとうございます。でもなんでファイルの検索に引っかからないんだろう? < ildasm
Administratorじゃなきゃ見れない位置にあるんだろうか…。

で…やってみたけど駄目でした。やはりバグ以前に私のプログラムに問題アリの模様です(w

↓該当部分のソースなんですけど、なんかおかしいですかね?
DxVBLibA.Direct3DDevice8 d3dDevice;
D3DDISPLAYMODE d3dDisplayMode = new D3DDISPLAYMODE ();
d3d8.GetAdapterDisplayMode ( 0, ref d3dDisplayMode);

DxVBLibA.D3DPRESENT_PARAMETERS d3dpp = new D3DPRESENT_PARAMETERS ();
d3dpp.Windowed = 1;
d3dpp.BackBufferWidth = 640;
d3dpp.BackBufferHeight = 480;
d3dpp.BackBufferCount = 1;
d3dpp.SwapEffect = DxVBLibA.CONST_D3DSWAPEFFECT.D3DSWAPEFFECT_COPY;
d3dpp.BackBufferFormat = d3dDisplayMode.format;
d3dpp.EnableAutoDepthStencil = 1;
d3dpp.AutoDepthStencilFormat = DxVBLibA.CONST_D3DFORMAT.D3DFMT_D16;
d3dpp.hDeviceWindow = (int)picMain.Handle;

d3dpp.FullScreen_PresentationInterval = (int)DxVBLibA.CONST_D3DPRESENT_INTERVAL_FLAGS.D3DPRESENT_INTERVAL_IMMEDIATE;

//d3dDevice = d3d8.CreateDevice (0, DxVBLibA.CONST_D3DDEVTYPE.D3DDEVTYPE_HAL, (int)picMain.Handle, (int)DxVBLibA.CONST_D3DCREATEFLAGS.D3DCREATE_SOFTWARE_VERTEXPROCESSING, ref d3dpp);
d3dDevice = d3d8.CreateDevice (0, DxVBLibA.CONST_D3DDEVTYPE.D3DDEVTYPE_REF , (int)this.Handle, (int)DxVBLibA.CONST_D3DCREATEFLAGS.D3DCREATE_SOFTWARE_VERTEXPROCESSING, ref d3dpp);
28デフォルトの名無しさん:01/10/08 21:40
SDKじゃなくてRedist版でもソフト作れるの?
両者の違いは何ですか?
>>28
サイズ
>27
例外の内容を書いてみたら?
どこで起きて、どういうメッセージか。
31名無しさん♯:01/10/08 22:52
>>27
さ、さっぱりわからん...。
漏れには未知の世界。ごめんちゃい。

>>28
いちおうコンパイラがあるから、「できなくもない」というレベルね。
redist版だとドキュメント・サンプル・便利なツール群がないのでかなりたいへん。
32教えて君:01/10/08 23:08
素人な質問ですが‥
stringの文字列"123"をintの123に変換するにはどうすればよいのでしょうか
どうしてもわからずにこんなのを書いてる始末です.

string a = textBox1.Text;
for (i = 1; i < 999; i++) {
if (i.ToString() == a) break;
}

鬱...
33初めて答えてみる:01/10/08 23:17
>>32
Int32.Parse
34教えて君:01/10/08 23:22
>>33
ありがとうございます!
はやくC#の解説書が出ることをキボン.
>>32-33
System.Convert クラスの ToInt32 メソッドを使うという手もありだね。
36初めて答えてみる:01/10/08 23:38
>>35
そっちの方が便利そうだね
37教えて君:01/10/08 23:38
みなさんどこで勉強してるんですか?
38デフォルトの名無しさん:01/10/08 23:39
トイレの個室
39デフォルトの名無しさん:01/10/08 23:41
>>37
漏れは試行錯誤。
MSDN を見ながら適当にやってます。
どうしてもわからないことがあれば google で検索するくらいかな。
40教えて君:01/10/08 23:41
では1ヶ月程トイレにこもってきます.
前スレにいくつかリンクがあるよ
42名無しさん♯:01/10/09 02:35
J#はどうやらJUMP to .NETのことみたいね。

 Java Language on .NET
 http://www.microsoft.com/india/indiadev/projects/dotnet.htm

 JUMP to .NET Overview
 http://msdn.microsoft.com/visualj/jump/default.asp
 
厨な質問で申し訳ありませぬが・・・

ビットマップから非矩形のウィンドウを生成するには、
幾多のWebサイトで言及されているように、「1ピクセルずつ走査」しなければならないんでしょうか?
BitmapクラスやRegionクラスなどを見てみましたが、「ビットマップ→リージョン」と直接変換するよーなメソッドは
やっぱり無いんでしょうか・・・
45名無しさん♯:01/10/09 07:07
>>44
漏れはGDI+は守備範囲外なんだけど...、
そういうメソッドはちょっと見つからなかった。

他のサイトでもそう言ってるなら、多分ないのだと思われ。
46債務不履行:01/10/09 10:33
>>45
ありがとうございます。

幾多のWebサイトであがっているコードはすべてC++かVBによるもので、C#によるものは無かったんです。
それで、もしかしたら・・・と思い質問したのですが・・・
自力でがむばってみます(ちょっと泣)
47デフォルトの名無しさん:01/10/09 20:16
Brushを使ってこういうコードを書いたんですが

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
Rectangle r = ClientRectangle;
LinearGradientBrush lb = new LinearGradientBrush(r, Color.Red, Color.Yellow,LinearGradientMode.BackwardDiagonal);
g.FillRectangle(lb, r);
}

フォームのリサイズを繰り返すと四角の跡が残ってしまいます。
そこで再描画するようにしたんですが

public Form1()
{
//
// Windows フォーム デザイナ サポートに必要です。
//
InitializeComponent();

//
// TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。
//
SetStyle(ControlStyles.ResizeRedraw,true);
}

今度はちらつきがひどすぎます。(T_T)
何かうまく描画する方法はないでしょうか?
48名無し:01/10/09 21:26
>>47
C#はよく知らないけど参考になる?
http://www.atmarkit.co.jp/fdotnet/csharptips/008bitmap/008bitmap.html
>>48
>>47 じゃないけど、そこを参考にして SetStyle... を書いたんじゃないかな?
5049:01/10/09 21:34
ごめん、一番下にちらつかない方法がかいてあった。
5147:01/10/09 21:45
>>48
レスありがとうございます。
SetStyleをやめてResizeイベントで描画するようにしたら、
うまくちらつかずに描画することができました!!

ところが、ウィンドウを最小化したらプログラムが落ちてしまいました。(T_T)
やっぱり無理なのでしょうか。
5247:01/10/09 21:55
描画の前にウィンドウの状態を見るようにしました。

private void Form1_Resize(object sender, System.EventArgs e)
{
if (WindowState != FormWindowState.Normal) {
Graphics g = CreateGraphics();
Rectangle r = ClientRectangle;
LinearGradientBrush lb = new LinearGradientBrush(r, Color.Red, Color.Yellow,LinearGradientMode.BackwardDiagonal);
g.FillRectangle(lb, r);
}
}

これで何とかできました。ご協力ありがとうございました。
5347:01/10/09 21:56
if (WindowState == FormWindowState.Normal) {

の間違いでした。すみません。
54デフォルトの名無しさん:01/10/09 22:12
>>52-53
それだと最大化したときに描画されないから、
if (WindowState != FormWindowState.Minimized) {
のほうが良いと思うよん。
55名無しさん♯:01/10/09 22:23
>>47
これでもOKよん。ご参考までにどうぞ。

  public Form1() {
    InitializeComponent();

    SetStyle(ControlStyles.ResizeRedraw, true);
    SetStyle(ControlStyles.Opaque, true);
  }

これだと、Resizeのハンドラはなくても大丈夫。
マイクロなのにビッグとはこれいかに。
57どうよ?:01/10/10 01:24
58 :デフォルトの名無しさん :01/10/10 00:54
まあまあ、みんな喧嘩しないで仲良く

言語のカーストを決めましょう。

61 :デフォルトの名無しさん :01/10/10 00:55
>>58
末端(どれい)は、VC,VB,VC#,VJ++,.NETでいいか?
58デフォルトの名無しさん:01/10/10 01:26
Del厨って本当にウザイね
58=802です、
すいません、ご迷惑をおかけしますが
802は精神病なので相手になさらないでください。
60デフォルトの名無しさん:01/10/10 01:32
>末端(どれい)は、VC,VB,VC#,VJ++,.NETでいいか?

いいよ。

やっぱDelphiが最高だな。
60=802です、
すいません、ご迷惑をおかけしますが
荒せれば802は何でもいいのです。
802は精神病なので相手になさらないでください。
62デフォルトの名無しさん:01/10/10 01:41
昨日VS.NETをインストールして使ってみたけど、すぐ消してディスクも捨てたよ。
Delphiの方が全然良いね。
C#なんて正式にリリースされる前に消滅すればいいのに(w
63デフォルトの名無しさん:01/10/10 01:41
168 名前:デフォルトの名無しさん :01/10/10 01:40
>>167
いや、所詮C#はJAVAの猿真似
64デフォルトの名無しさん:01/10/10 01:42
>>58
>>57>>58は、俺(JAVA厨)
65デフォルトの名無しさん:01/10/10 01:43
>>63
その>>167は、俺(JAVA厨)
66デフォルトの名無しさん:01/10/10 01:45
Del厨がJava厨のフリをしてるよ(笑
67名無しさん♯:01/10/10 01:45
次はこのスレか。(藁
68デフォルトの名無しさん:01/10/10 01:46
Delphiユーザーって本当に卑屈で姑息だね
69デフォルトの名無しさん:01/10/10 01:47
134 名前:デフォルトの名無しさん :01/10/10 01:40
>>127
正直言ってC#不利だろうね。サーバーで勝てないから。
70デフォルトの名無しさん:01/10/10 01:47
134 :デフォルトの名無しさん :01/10/10 01:40
>>127
正直言ってC#不利だろうね。サーバーで勝てないから。

136 :デフォルトの名無しさん :01/10/10 01:42
C#で何をやるかが判然としてないと思うんだけど。
なんでもできます!って言ってるだけだよね、今。

137 :デフォルトの名無しさん :01/10/10 01:44
結局はDelphi2世に成り下がると思う。>C#

139 :デフォルトの名無しさん :01/10/10 01:44
C#も企画ダオレだろ?
71デフォルトの名無しさん:01/10/10 01:48
>>70
その>>127>>136>>139は、俺(JAVA厨)
>>67 本人?
73デフォルトの名無しさん:01/10/10 01:49
そう言えばDelギコもC#にケンカを売ってたよな。
「Delphiの方が遥かに上なんだよ!」と言わんばかりの勢いだった。
難癖ばかり付けてたよ。
とうとうC#スレまで(;´Д`)
名無しさん♯ さん、すいません。
802は基地害なんです。
76デフォルトの名無しさん:01/10/10 01:52
JAVA厨JAVA厨うるせえよ、お前Del厨だろ(笑
77デフォルトの名無しさん:01/10/10 01:53
もともとDelギコの他言語や他開発環境に対する横柄な態度が原因なんだけどね
78デフォルトの名無しさん:01/10/10 01:54
やっぱ、C#って(中略)。
>>77
そうだね、802は何も悪くないよ。802は正しい事をしている。
あのスレは潰して当然だよね。
80デフォルトの名無しさん:01/10/10 02:00
Delphiなんてヘジ留守バーグが残した過去の遺物じゃん
81デフォルトの名無しさん:01/10/10 02:01
80がいいこと言った!!
82デフォルトの名無しさん:01/10/10 02:03
802よりもDelギコ信奉者がウザイね
こいつらしつこすぎてキモイよ
なんかテロでも起こしそう(w
83デフォルトの名無しさん:01/10/10 02:05
Delphi信者のせいで板が荒れ放題
Delphi信者はKylixをマスターしてLinuxのためにがんばり
ましょう。Windows上のアプリをいくら作ったところで、
MSの儲けにはなりません。
というわけでこのスレは関係ないです。理解してください。
85名無しさん♯:01/10/10 03:13
地下でマターリ再開ヽ(´ー`)ノ
86名無しさん♯:01/10/10 08:36
A First Look at Visual J# for .NET

 http://www.oreillynet.com/cs/weblog/view/wlg/748
ZDNetでもニュースになってるよ
http://www.zdnet.co.jp/news/0110/10/b_1009_03.html
88名無しさん♯:01/10/10 09:17
>>87
ほんとだ。

 http://www.zdnet.com/zdnn/stories/news/0,4586,5098031,00.html?chkpt=zdnnp1tp02

やっぱりこういうときにTony Goodhewが出てくるね。(大藁
> Microsoft said Visual J#.Net will be available for download in a test
> version later this week from Microsoft's Web site.
もう落とせるじゃん。(w
90デフォルトの名無しさん:01/10/10 10:08
この人本当に何とかしてください。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=291&forum=7&2
MS,こんなに嫌がらせしていると
いつか、Java原理主義者からテロくらうのではないかな
Introduction to Visual J# .NET
http://www.codeproject.com/dotnet/intro_vjsharp.asp

> This is a set of new tools for those wishing to
> develop using the java-language syntax.
> "Java Language Syntax" is the important point here.
> It is not Java - it's J#.
93名無しさん♯:01/10/10 14:19
>>92
おお、ありがと。さすがはCodeProjectね。
こっちの方が雰囲気がつかめるね。(delegateとattributeの扱いもわかったし。)
>>90
>他の方も.NET絡みで面白い文書持ってるぞ、という人がいたら、(差し支えなければ)、このスレッドで紹介してもらえませんか?
>もう、このスレッドだけはageだの藁だのが溢れても許すしかないですね
もう止められない止まらない
95JAVA厨:01/10/10 16:17
J#だぁ?ざけんじゃねーぞゴルァ!!
96デフォルトの名無しさん:01/10/10 16:19
先生オナニーの仕方を教えて下さい
本当にわからないんです
さきこちゃんがオナニーしなきゃあダメだよー
って言ってたから
97デフォルトの名無しさん:01/10/10 16:26
こんな糞スレ使い道が無いからDelphi初心者スレとして再利用しよう
C#対JAVAならわかるが、何でC#対Delphiになるんだろ?
>>98
ヘジたんに見捨てられたからでは。
Del厨でもJAVA厨でもなんでもいいから、マターリ進行しましょうぜヽ(´ー`)ノ
煽りは無視無視。
101デフォルトの名無しさん:01/10/10 18:26
インデクサーって普通の配列と見間違えやすいと思うんだけど、
なんであんなのが必要なの?
102デフォルトの名無しさん:01/10/10 18:36
>>101
インデクサには文字列とかいろいろ指定できるから、連想配列みたいなことができる。
System.Collection.Hashtable クラスを見てみるとよさげかも。

using System.Collection;
// ......
Hashtable ht = new Hashtable();
ht["test1"] = 5;
ht["test2"] = "test";
ht[true] = 10;

みたいな。
Hashtable のインデクサは object なので、クラスでも何でも指定できるね。
103102:01/10/10 18:40
>>102 の続き。
実際には System.Collecion.ArrayList のインデクサみたいに使うのが望ましいかと。
そういえば String クラスもインデクサを持っているね。
104102:01/10/10 18:42
>>103
連続投稿スマソ。
Console.WriteLine("System.Collecion.ArrayList".Replace("Collecion", "Collection"));
鬱打氏脳...
105名無しさん♯:01/10/10 20:16
>>101
ヘジたんお墨付きの意見はこちら。

 http://discuss.develop.com/archives/wa.exe?A2=ind0009B&L=DOTNET&D=0&P=14402

「別に普通のメソッドでもいいじゃん」というのもまったくその通りなんだけど、
indexerの方が見た目的にわかりやすいときもあるし、やっぱりあった方が便利だと思うよん。
無くても困らん
Javaのパクリって言われるのを防ぐために無理やり追加した機能?
108名無しさん♯:01/10/10 20:39
>>105
> 「別に普通のメソッドでも

プロパティでもの間違いでした...。

>>106
うん。
Delphiのプロパティからきているような・・・
どっかでFreeのC#とかって見た気がするんだけど、どこかでプロジェクトとか
立ち上がってませんでしたっけ?
Del厨だのJAVA厨だのが目の敵にするのってやはりM$の技術っていうイメージがあるからで、
C#自体はすごくいい言語体系だと思うのだけど。
111Meだからできないんだけど:01/10/10 23:41
あほみたいなことですいません
C#でもDirectXプログラミングできるんですか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=291&forum=7&6
不謹慎コピペで一気に空気が変わったな。(ワラ
>>111
DirectXならすでにこのスレで語られてるよ。
CLRに関して説明したサイト、文献はまだ英語のものしかないのかな?
もし誰かご存知であれば教えて下さい。無ければSDKについていたものを
がんばって読みます。
115名無しさん♯:01/10/11 03:38
116名無しさん♯:01/10/11 03:52
>>110
Mono Projectのことね。

 http://www.go-mono.com/index.html

そういえば、DotGNUってどうなったのかしら...?

>>114
日本語でということなら、前スレに286に書いてあるよん。

 http://piza2.2ch.net/test/read.cgi/tech/977112364/286

あれからいろいろと日本語の情報が出てるけど、正直漏れは把握しきってない。
ごめんちゃい。
117名無しさん♯:01/10/11 04:01
>>116
シャープさんありがとう。
119名無しさん♯:01/10/11 15:32
CodeProjectに他にもJ#ネタがあった。

 http://www.codeproject.com/script/rumor/article.asp?id=219
J#ってどうなの?
C#、VBに並ぶメジャー言語になるわけ?
http://www.nsg.co.jp/nbb/ss/joy/ig011011.html
> .NETバブル、そんなバブル存在しましたか? そして 今後とも存在しますか? (爆笑)
>><STRONG>.NET</STRONG>バブル、そんなバブル存在しましたか?
ネタ振ってくれるのはいいんだけどもうちょっと著名人のネタ
探してきてよ。
その人はプログラマ板ですごいバカにされていたな。
今日の日記だから>>121は毎日みているんだろうけど
見ない方がいいよ、DQNがうつる。
124名無しさん:01/10/11 17:13
>>121
顔写真を見た感じでは変な人には見えないけど、日記見ると変な人。
XMLにこだわってる割にはタグ名が大文字なんですね。
ま、いいか。(゚ε゚)キニシナイ!! ってことで。
126デフォルトの名無しさん:01/10/11 17:58
.NET擁護に必死だな。(プ
>>126
.NET叩きに必死だな。(プ
よっぽど怯えてんだろうな。(ゲラ
まさか、802ぢゃあないよね。
>>121
.NETを支持しようがしまいが、こういう言動は不快だ。
さすがは無神経な関西人だな。> DQNいが
一緒にするな!
いがは関西追放だ。

さすがはミーハーでCOBOLER引継ぎJava使いだな。> DQNいが
このスレ死にかけ・・・
132デフォルトの名無しさん:01/10/11 18:35
Del厨に荒らされちゃったね
133802:01/10/11 18:44
思う壺
134デフォルトの名無しさん:01/10/11 20:06
VS.NET使う奴はヘタレ。
SDKでCUIでやるのが真の漢。
必死だな。(藁
どっちもやれ、いい仕事したいなら。
どっちかしかやらないようなやつがいがみたいなのに
なるんだよ。技術なんだからケースに応じて選択すれば
いいんだよ。

というかどっちかしかやらないですむ人が羨ましい。
この人はGUIもつくれるけど典型的なCUIプログラマだね。
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_013/csharp_abc01.html

イベントの説明をCUIでやらかす愚考を海外の書籍を含めて今まで見たことはないよ。
GUIも途中で出てくるが最後がButtonのイベントハンドラ共通化止まり。

そして結論が

> イベントは既存のプログラム言語にはあまり見られない機能である。しかし、C#のイベ
>ントは、潜在的な能力と可能性が高く、うまく使いこなせば、込み入ったプログラムをす
>っきり記述できる可能性を持つ。多くのオブジェクト指向言語に見られるように、何でも
>継承を使って問題を解決しようとしても、上手く機能しない場合がある。その意味でもイ
>ベントの活用は1つの課題と言えるだろう。

かわいそうだが才能ないな。この講座を受け持つには不適格。
うまく使いこなした経験はないらしい。
138名無しさん♯:01/10/11 21:07
どうでもいいけど荒れすぎ。(藁

>>120
> J#ってどうなの?
> C#、VBに並ぶメジャー言語になるわけ?

それはないと思う。あくまでマイグレーションツール止まりね。
名前もJUMP(Java User Migration Path)だったわけだし。

>>119のリンクにもあるけど、J#はプロパティ・イベント・デリゲートの
定義ができないから、新規クラスを作るにはとても使えないと思う。

J#でJ++資産のラッピング(IL化)をして、
あとはC#なりVBで再利用・拡張するというシナリオだと思うよん。
139デフォルトの名無しさん:01/10/11 21:11
なんでSDKはWin98で使えないんだよバーカ
>139
98なんて化石OS使うなヴォケ。
141元VC++ユーザ:01/10/11 21:29
C#いいですねー、簡単、高機能とはまさにこのこと。
簡単にフォームを半透明にできるのには思わず笑ってしまった。

VS.NET7.0の製品版っていつ出るの?
パッケージとしては来年
来年が楽しみだ。
>141
Delphiでも簡単にできます
>141
VisualBasicでも簡単にできます
VisualC++では簡単にできません
147デフォルトの名無しさん:01/10/11 21:40
Delphi>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>C#=Ruby
ラディン>>>>>>>>>>>>>>>>ブッシュ>>>>>>>>>小泉>>>>>>>>>>>>>>>>>>>>>>>>キョセン
149デフォルトの名無しさん:01/10/11 21:47
Delphiとの論争を邪魔するようで申し訳ありませんが,
VS.NETでC#は普通にビルドできるのですが,
C++のプロジェクトをビルとしようとすると,
>error PRJ0016 : このユーザーのセキュリティ設定が原因で、
>プロセスを作成できません。これらの設定はビルドで必要です。
とエラーがでます.Win2kでアドミン状態なのにです.
どうしたらよいのでしょうか?
>>149
OS再インストール
Beta2はあと2週間の命です。
今さらBeta2を必死でやっても無駄です。
>>151
え、使えなくなるんですか?
>>151
大幅な変更はないのでは?
>>151
え?マジで意味わからん。
155名無しさん♯:01/10/11 22:11
>>154
もうすぐRC版が出るということよん。

そっか、漏れもVS.NETβ2入れたばかりなのに...。
156デフォルトの名無しさん:01/10/11 22:12
>>149
それ、おれもなるよ。
今はC#にはまってるので放置してるが。

ていうか、なぜC#相談室でその質問?
変なのが荒らしてるからいまさら何も言わないが。
今のVSβで新しいSDKを使うことは出来るんですか?
158デフォルトの名無しさん:01/10/11 22:20
名無しさん♯さんはSDK派ですね。
さすが、できる人はCUI使いですね。
159デフォルトの名無しさん:01/10/11 22:22
Ruby最高だね。
おれが見てきたなかでもJava使いの出来る人はSDK使ってたな。
IDEでデバッグしてるような人なんかより、全然早い。
>>158
CUI、GUI派かは、出来る出来ないとは関係ないだろ。

出来る奴は何やっても出来る。
駄目な奴は何をやっても駄目ってこと。
162149:01/10/11 22:26
>156
他の方でも再現性があるのですね.有難うございました.
僕もC#にはまってたんですが,昔のプロジェクトを少しいじる必要がでてきて..

>ていうか、なぜC#相談室でその質問?
.NETスレよりも,こちらの方が人が集まっているようでしたので..
でも,予想とはちょっと変わった方々が集まっているようで....
163名無しさん♯:01/10/11 22:35
>163
出来ました.なんてお礼を言ってよいのでしょうか.
本当に有難うございます.

コンパイルしたら,今までは無かった警告がわんさか..
皆様,どうも有り難うございました.
>>163
おれも出来た。どうもありがとう。
C#いじってからVC++のMFC見るとさすがにごちゃごちゃしてるね。
独自拡張可能なAttributeの威力。
デレゲートを使ったメソッドの非同期呼び出し。
接続プロトコルとは独立したリモートオブジェクトのアクティベーション。
Webアプリのシンプルさと、サーバーサイドコントロールの拡張性の高さ。
その他諸々...
サンプルをいじったり、テストアプリを作って動作を確認するたびにマンセー!!

Java他でもいろいろ出来なくは無いけど、これほどのレベルの物をこんなに
敷居を低くして、インストールしたらすぐ使えるようにしてしまうなんて...

実際にいじっている方<これって画期的ではないですか?
何の先入観も無くこれをいじって、何も感じない人って技術者としては
終わってるような気が...
>166
激しく同意。

でもね、「M$だからダメ〜」とか言って触りもしないで切り捨ててる
自称「プロ」(プ もいるんだよ。ヴァカとしか言いようがないね。
>>167
IGAさんを馬鹿にするのはやめてください
>接続プロトコルとは独立したリモートオブジェクトのアクティベーション
SOAPとかもOKなの?
いつも思うことだがMicrosoftの功罪は、HTTPすら分からない
人とかにインフラ系サービスの見た目の敷居を低くしすぎていることだね。

DelegationEventModel,XML-RPCとかは別に全然新しくも無いのに、
それらがBlackBoxとなってしまった人たちとMFC使いには、問題の
原因が何処にあるのか解決するすべが無い。

webアプリって表現はあまりにも...

>>116あなたの言う「技術者」とは何ですか?
回路設計からファームウエア,OS,UIデザインまでを全てこなす人。
Execl-MacroやQuick-BasicでDesignPatternsについて悩む人。
メインフレームで既存src→COBOL2002移行時にダウンタイムを計算する人。
RPCに夢を見てる人。(いまさら始まっちゃたりしてるぅ?

お前はC#にしたいんだけど会社は多分VB.NETとかやり出すと予想してみる..(wラ
ちなみに漏れは>>166と同類にされたくないが、VisualStudio.NETとBizTalkに感動。
IGAぴょん、バカにすんなよ!
>>171
バカにはしてないよ。それにこの人現場での面倒見は
よさそうじゃん。悪い人じゃなさそうだし。

バカにされてるのは年取って凝り固まった考えかた。
173デフォルトの名無しさん:01/10/12 02:32
いつになったらマイクロソフトからC#のコンパイラの製品版出るの?
>171
メール欄(藁
175名無しさん♯:01/10/12 06:26
これまでのところ、いちばん詳しいかも。

 First Look at Microsoft J#.NET Beta
 http://www.devx.com/dotnet/articles/lp100901/lp100901.asp

 Microsoft Visual J# .NET Beta 1 Readme
 http://www.devx.com/dotnet/articles/lp100901/readme.htm

VS.NET日本語版では、やっぱりどうやってもインストールできないみたいね。
176仕様書無しさん:01/10/12 09:53
結局VC++.NETじゃんか。
177名無しさん♯:01/10/12 11:18
既出ネタだが、

Office2000アンイストールしてドキュメント開くとインストーラ暴走
→SDKアンインストール
→SDKインストール
→Office XP入れたらまたしてもインストーラ暴走
→SDKアンインストール
→SDKインストール

いやこの前にも何度もこのせいで再インストールしてるんだが…。
ウィンドウズインストーラ逝ってよし。
ついでにIME2002も最悪。
179デフォルトの名無しさん:01/10/12 16:40
VS.NETβ2を入れたらIE6のせいか、Webのブラウジングが不安定です。
2chのスレッドでクリックしても反応しないものがあります。

C#の基本的な文法を学ぶだけでも年内が過ごせそうだから、SDKだけを
インストールしたいのですが、SDKだけせんたくできますか?
IE6をIE5.5に戻す方法はありますか?
180 :01/10/12 16:51
>>179
それってVS.NETベータ2に付いてたやつ?
正式版を上書きすれば解決するかと・・・。
181 :01/10/12 16:55
182あぼーん:あぼーん
あぼーん
183あぼーん:あぼーん
あぼーん
>>183
おまえがうざい!!
それからC#以外の話をするやつもうざい
185名無しさん♯:01/10/13 07:26
>>184
ごめんちゃい。最近J#の話しかしてません...。
>>185
氏ね!
187名無しさん♯:01/10/13 10:16
>>186
もう来ません...。
188名無しさん♯:01/10/13 13:48
>>187
誰だ〜!!こんなこと書いたのは!!ヽ(`Д´)ノ
ニセモノだったのか。ビクーリしたよ。
190 :01/10/13 15:03
 
>>183-189
なんだか微笑ましいのう。
荒らされてもマターリしてるな(藁
193166:01/10/13 21:33
>170
敷居が低いのは、いいことじゃん。
楽になるのは大歓迎さ(^◇^)

DQNが増えるのは仕方なし。
解決するすべが無いままに何もしないでいるのなら淘汰されるだけ。

技術者?
スレ的に、C#のターゲットとしている領域でおご飯を食べている人達。

なんにしても、気持ち良く作業できそうな環境がひとつ出てきたっていう
だけで、うきうきしてしまうぞ。

しょせん道具なんだし、よく見極めてうまく使えば良し!

ところで、アポーのWebObjectのEOFだっけ、ADO.NETのDataSet周りって
あれのパクリ?
どちらも深く知らないんで、言いがかりかもしれないけど。
194 :01/10/13 21:48
Professional C# (wrox)はいい本だ。英語だけど。
19544:01/10/13 23:45
非矩形ウィンドウの質問をした者でございます。
その後、以下のコードを組んで非矩形ウィンドウを実現したが、
ウィンドウバーの高さを知ることが出来てないため少々不恰好になって候。
当方調査中ですが、直ぐにお分かりになる方あれば、是非ご教示くだされば幸い也。

 using System;
 using System.Drawing;
 using System.Windows.Forms;

 class ImageForm : Form {
  Bitmap bitmap = null;
  Graphics graph = null;
  Region region = null;

  // Window Title Height 暫定値。
  int wth = 50;

  // メインフォームだよ
  public ImageForm (){
  bitmap = new Bitmap("test.bmp");

  // ビットマップ読み込み失敗したら、速攻終了だ
  if (bitmap == null) {
  Application.Exit();
  }

  // 最左上端を透過色にする
  bitmap.MakeTransparent();
  region = new Region(new Rectangle(0, 0 + wth, 1, 1));
 
  // 透過色部分をウィンドウリージョンに加える
  for(int i=0; i<bitmap.Height; i++){
  for(int j=0; j<bitmap.Width; j++){
  if(bitmap.GetPixel(j, i).A != 0){
  region.Union(new Rectangle(j, i + wth, 1, 1));
  }
  }
  }

  this.Height = bitmap.Height + wth;
  this.Width = bitmap.Width;
  this.Region = region;
  this.FormBorderStyle = FormBorderStyle.None;
  }

  protected override void OnPaint(PaintEventArgs pea) {
  graph = pea.Graphics;
  graph.Clear(Color.Gray);
  }

  public static void Main(){
  Application.Run(new ImageForm());
  }
 }
>>195
DllImportでGetSystemMetrics
ウィンドウバーの高さって
SystemInformation.CaptionHeight
のことかな。標準の18だとボーターと合わせてか19になるみたい。
でもこれの必要性が?
198デフォルトの名無しさん:01/10/14 13:20
C#の登場によって、VBやC++の位置づけはどのように変わるのでしょうか。
19944:01/10/14 19:51
>>196-197
お答え頂き、有難う御座います。
CaptionHeightを取ることで解決しました。

必要性はと問われると・・・
当方、「test.bmp」は 縦40×横440の領域に48Pの文字を入れてテストをしました。
CaptionHeightが無い場合・・・タイトルバーの高さ分、文字上部が切れて表示されなく
なるのです。

「すわこれは瑕疵か?」と思い、this.FormBorderStyle = FormBorderStyle.None; を
コメントアウトして実行した処・・・先程まで切れていた領域がキチンと表示されているでは
ありませんか!・・・青いグラデーション付きで。
ちなみに、青いグラデーション部分をドラッグすると、リージョンウィンドウが移動できます。
200名無しさん♯:01/10/14 22:50
>>198
そんなには変わらないと思われ。
それに、それぞれC#より優れてる部分もあるわけだし。

 VB.NET : COMとのinteropに長けている。また、VSAマクロの中心言語。
 MC++ : Unmanaged APIとの親和性が高い。

C#はVBとC++の中間、という感じなのかな。
201名無しさん♯:01/10/14 23:00
亀レス。

>>169
HttpChannelはSOAPを使ってるよん。
実際のファイルシステムを扱うんじゃなくて、
論理的ファイルシステムをExplorerみたいな感で
扱えるソフトを作りたいんですけど、なんか適当なコントロールとかないでしょうか?

イメージ的にいうとFTPExplorerみたいな感じのソフトを作りたいんです。
PictureBoxとか使って地道に実装しないと駄目でしょうか?
age of empires
204デフォルトの名無しさん:01/10/16 22:47
>>202
TreeView と ListView を使ってみるとか。
205デフォルトの名無しさん:01/10/17 01:10
C#未経験者です。
現在VC++使ってます。
C++が使えればC#って余裕ですか?
C#とC++ってどっちが高収入が期待できますか?
話しは変わりますが WindowsXP が出たら買った方がいいですか?
現在は Win98 です。
>>205
ネタ放置
207デフォルトの名無しさん:01/10/17 01:34
C#に未来はないでしゅ。
Cわっほー
209デフォルトの名無しさん:01/10/17 05:34
>207
まじっすか?
.NET はおいといて、C# っていう言語自体にはちょっと萌えてるんですが。
でもほかのプラットフォームでも C# 処理系がでてこないとなぁ。
VBプログラマがC#になれたらVB.NETを切り捨てて
Haskell.NETに力を入れて下さい>MS様
211デフォルトの名無しさん:01/10/17 17:04
C#に興味持ちました。VS.NETに触れてみたいのですが、現時点で雑誌に添付
された葉書を送付することでVS.NETを手に入れることができる雑誌はあるでしょうか?
ttp://www.atmarkit.co.jp/fdotnet/insiderseye/20010131vsnetbeta1/20010131vsnetbeta1.html
でそのようなサービスがあると知ったのですが。お願いします。
>211
そのリンク、β1だぞ。。。
β2のDVD-ROMなら、先月出た雑誌におまけでついてる。
213デフォルトの名無しさん:01/10/17 17:56
>>212 レスありがとうございます。早速探してきます。
>>155(#さん)
RC版のリリースはいつ頃ですか?
そんな話きいてしまうとβ版入れるの戸惑ってしまいます。
>>214
MSDNに入ってれば来月。
んで一般にリリースされるのは来年2月。
216名無しさん♯:01/10/18 01:26
>>214
PDCのある来週よん。
ゲイツたんのキーノートの日(10/23)が有力ね。

もちろん、VS.NETの方はMSDN会員じゃないと落とせないからね。
それと、.NET Framework RCとVS.NET β2の組み合わせはおそらく無理だと思われ。
217名無しさん♯:01/10/18 01:37
>>215
それはRCじゃなくてRTMよん。
でも、.NET Framework V1の来月リリースはほぼ間違いなしみたいね。
>>215 #さん
一日も早く.NETしたいのでβ2でやってみようと思います。
ありがとうございました
>>215
その.NET Framework V1かRCって一般人でも落とせるやつですか?
220デフォルトの名無しさん:01/10/18 06:21
C#でプログラム言語をはじめて学ぶのですが、
.NETベータ2の詳しい操作方法について書かれた本かサイトをご存知ありませんか?
>>220
>>1のリンク見れ
222デフォルトの名無しさん:01/10/18 20:56
MSDN会員になるのって、お金が必要なの?
無料?
今なら14マンでProfessional会員になれる。
ネタだろうけど一応
224名無しさん♯:01/10/19 15:17
>>224
!!!
着々とWebサービスを構築する基盤が出来てきてるね。
ちなみに是非#さんに聞いてみたいのだけど、
SOAPクライアントを何らかの形でActiveXコントロールとして
実装した製品はあるかな?別にサードパーティでも
βの段階でも構わないのですが。
XMLスレでは見事に無視されましたw
#さんじゃないけど。
MS SOAP Toolkitじゃダメなのかな?
227名無しさん♯:01/10/19 17:52
>>225
こういうのかな?

 http://www.nsoftware.com/products.asp?part=IPA5-A

ちょっと探した感じでは、なかなかないみたいね。
>>226 >>227
ありがとう。
調べた結果報告はXMLスレにしておきますので、
よかったらみにきてください ^o^
229デフォルトの名無しさん:01/10/19 18:59
オーバーライドするときnewキーワードとvirtual , overrideってどの用に使い分ければいいのでしょう。
C++使ってたのでvirtualの方使いたいのだけど、どうも使うべきじゃないって書いてるところもあるし。
>>229
newとoverride/virtualは機能が違う。↓実行してみて。
using System;
class Base {
 internal virtual string CallMe() {
  return "Base";
 }
}

class DerivedOverride : Base {
 internal override string CallMe() {
  return "Override";
 }
}

class DerivedNew : Base {
 internal new string CallMe() {
  return "New";
 }
}

class c {
 static void Main() {
  DerivedOverride over = new DerivedOverride();
  Console.WriteLine(over.CallMe());
  DerivedNew dnew = new DerivedNew();
  Console.WriteLine(dnew.CallMe());
  Base b1 = over;
  Console.WriteLine(b1.CallMe());
  Base b52 = dnew;
  Console.WriteLine(b52.CallMe());
 }
}
でさ、DerivedOverrideを↓こう拡張したと思って。
class DerivedOverride : Base {
 internal override string CallMe() {
  return "Override";
}
internal string ThisIsNotInBaseClass() {
  return "Really?";
 }
}

で、何も知らないBaseクラスの開発者が、↓こういうことしたら
どうなる?
class Base {
 internal virtual string CallMe() {
  return "Base";
}
 internal virtual string ThisIsNotInBaseClass() {
  return "Not really";
 }
}
これが実装の継承の欠点の1つだ。C♯はこれを避けるためにnewを
導入した。↑のコードはC♯では警告になるよ。これがnewの意味ね。
正しく使いこなせるなら、virtual/overrideを避ける理由はないね。
newってDelphiでいうreintroduce?(って分かるひといないのかも)
仮想関数を下位クラスで隠蔽する時に使う?
233デフォルトの名無しさん:01/10/19 20:56
>>230さん。丁寧なレスありがとうございました。よくわかりました。
本当にありがとうございました。
>>231 コンパらが叱ってくれるのは有難いですね。
>>234 コンパらX コンパイラ○ 鬱氏。
C#(・∀・)イイ!! 123.ToString( )(・∀・)イイ!! (・∀・)Let's See Sharp!
237デフォルトの名無しさん:01/10/19 21:59
http://www.atmarkit.co.jp/fdotnet/opinion/kawamata/2001_10.html
Delギコが生きてたら激怒しそうな内容だな。
>>237 「生きてたら」(笑) やっぱりCUI派の人なんすね。この川俣さん。
>>237
「オブジェクト指向との別れ」の理由は納得できるところも少なくないが、
デザパタとかは、どう認識してるのか、聞いてみたい。
いまさらなんですけど、
前回終了時の位置やフォームのサイズを記憶するにはどうすればいいでしょうか?
>>237
要はいわゆるコンポーネント指向ってことか。
センセーショナルに書きゃあいいってもんじゃねーぞ川俣。
>>240
レジストリとかiniファイル。
.NET的にはXMLの方がいいのかな。
ショック! コンストラクタにアクセスコントロールがついてたので、
コンストラクタとわからなかった!詩嚢。
.NET Frameworkにメール関連のAPIってありますか?
>>244
System.Web.Mail
246244:01/10/20 18:05
>>245
ありがとうございます。
これってCDOとは別物ですか?
247名無しさん♯:01/10/20 19:10
>>246
内部でCDOを使ってるよん。
248244:01/10/20 19:56
>>247
ありがとうございます。
そうですか...。CDO以外の実装に期待したんですが...。
メール投げて遊んでみた。簡単なんだね。
悪さはできなかった。(藁
ListViewの詳細表示でカラム部分をクリックした時、
リストをソートしたいのですが、ツールボタンと同じように
分岐というイマイチな方法でないとダメでしょうか?

listView1.ColumnClick += new ColumnClickEventHandler(listView1_ColumnClick);

private void listView1_ColumnClick(object sender, ColumnClickEventArgs e) {
  if (e.Column == 0) {
    // ソート
  }
}
>>242
具体的なサンプルってあります?
252デフォルトの名無しさん:01/10/21 06:22
基礎的な質問ですが,C#では配列演算子のオーバーロードができなくなってる‥
のでしょうか?
>>252
perlの連想配列みたいなことを配列アクセスでやってたよ。
だからできるんじゃない?
>>253
ありがとうございます.従来のC++のソースを移植しているんですが
なかなか一筋縄にはいきませんね.
C++からですか・・・
内容によっては無理に一対一に対応させるよりも、
やり直したほうが早いかもね。
私もサンプルほしいです。
できればXMLで。
257名無しさん♯:01/10/21 13:48
>>250
そうするしかないと思うよん。
問題は、ソートの部分をどこまで簡潔に記述できるかだと思う...。

>>251
>>256
XmlTextReaderを使うととっても便利よん。

単純なサンプル
 http://www.eponymous.fsnet.co.uk/dotnetfaq.htm#11.4

やや込み入ったサンプル
 http://support.microsoft.com/support/kb/articles/Q301/2/28.ASP
258名無しさん♯:01/10/21 15:52
ひまだから作ってみた。(XMLのサンプル)
とりあえず、というレベルね。

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml;

class TestForm : Form
{
  public TestForm() {
    this.Load += new EventHandler(this.form_Load);
    this.Closing += new CancelEventHandler(this.form_Closing);
  }

  const string CONFIG_FILE_NAME = "config.xml";

  private void form_Load(object sender, EventArgs e) {
    XmlTextReader reader = null;

    try {
      reader = new XmlTextReader( new StreamReader(CONFIG_FILE_NAME) );

      int x = 0;
      int y = 0;
      int width = 0;
      int height = 0;

      while ( reader.Read() ) {
        if (reader.NodeType != XmlNodeType.Element) {
          continue;
        }

        switch (reader.Name) {
          case "x":
            reader.Read();
            x = Convert.ToInt32(reader.Value);
            break;
259名無しさん♯:01/10/21 15:54

          case "y":
            reader.Read();
            y = Convert.ToInt32(reader.Value);
            break;

          case "width":
            reader.Read();
            width = Convert.ToInt32(reader.Value);
            break;

          case "height":
            reader.Read();
            height = Convert.ToInt32(reader.Value);
            break;
        }

        this.Bounds = new Rectangle( new Point(x, y), new Size(width, height) );
      }
    }
    catch (FileNotFoundException x) {
      Debug.WriteLine("Exception : " + x.Message);
    }
    finally {
      if (reader != null) {
        reader.Close();
      }
    }
  }

  private void form_Closing(object sender, CancelEventArgs e) {
    XmlTextWriter writer = null;

    try {
      writer = new XmlTextWriter( new StreamWriter(CONFIG_FILE_NAME) );
      writer.Formatting = Formatting.Indented;
      writer.Indentation = 2;
260名無しさん♯:01/10/21 15:55

      writer.WriteStartElement("configuration");

    // ポジションの保持
      Point position = this.Location;
      writer.WriteStartElement("position");

      writer.WriteStartElement("x");
      writer.WriteString( position.X.ToString() );
      writer.WriteEndElement();

      writer.WriteStartElement("y");
      writer.WriteString( position.Y.ToString() );
      writer.WriteEndElement();

      writer.WriteEndElement();  // position

    // サイズの保持
      Size size = this.Size;
      writer.WriteStartElement("size");

      writer.WriteStartElement("width");
      writer.WriteString( size.Width.ToString() );
      writer.WriteEndElement();

      writer.WriteStartElement("height");
      writer.WriteString( size.Height.ToString() );
      writer.WriteEndElement();

      writer.WriteEndElement();  // size

      writer.WriteEndElement();  // configuration
    }
    finally {
      if (writer != null) {
        writer.Close();
      }
    }
  }

  [ STAThread ]
  public static void Main() {
    Application.Run( new TestForm() );
  }
}
>>258-260
XMLがきちんと整形されてる。(・∀・)イイ!
>>258-260 のiniファイルバージョン希望。
263名無しさん♯:01/10/21 20:51
>>262
iniファイルはめんどいのでパス。ごめんちゃい。
(MFCのCWinAppみたいに、便利なヘルパーはないのよ。)
264デフォルトの名無しさん:01/10/21 22:17
>>257
> 問題は、ソートの部分をどこまで簡潔に記述できるかだと思う...。

     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/< 先生!サンプルください!
 _ / /   /   \
\⊂ノ ̄ ̄ ̄ ̄\   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          ||
265250:01/10/21 22:41
>>257
ありがとうございます。
うーん、イマイチだわ。columnHeader1.Clickだったらいいのに。
ソートはメインアイテムだとこのように簡単なのですが、
サブアイテムだと自分で作らないといけないんですよね。>>264

private void listView1_ColumnClick(object sender, ColumnClickEventArgs e) {
  if (e.Column == 0) {
    if (listView1.Sorting == SortOrder.Ascending) {
      listView1.Sorting = SortOrder.Descending;
      // columnHeader1.Text = "名前 ▽";
    }
    else {
      listView1.Sorting = SortOrder.Ascending;
      // columnHeader1.Text = "名前 △";
    }
  }
}
266Delフサギコ:01/10/21 22:47
   _____
 /:\.____\  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |: ̄\ ミ ゚Д゚ミ\< C#かっこいいじゃん!>>XML
 |:   |: ̄ ̄U U ̄:| \__________

 .______
 |:  :\      \
 |:   |: ̄ ̄U U ̄:|  挟まって痛い
      
        
267名無しさん♯:01/10/21 23:24
>>264
実は、昼間に作成済みだったりする。(藁

using System;
using System.Collections;
using System.Windows.Forms;

class Form1 : Form
{
  ListView listView1 = new ListView();

  public Form1() {
    listView1.Dock = DockStyle.Fill;
    listView1.View = View.Details;
    listView1.ColumnClick += new ColumnClickEventHandler(this.listView1_ColumnClick);

    // カスタムComparerを設定
    listView1.ListViewItemSorter = new Comparer1();

    // とりあえず3列作る
    ListView.ColumnHeaderCollection header = listView1.Columns;
    header.Add( new ColumnHeader() );
    header.Add( new ColumnHeader() );
    header.Add( new ColumnHeader() );

    // データを設定(この時点では並べ替えなし)
    ListView.ListViewItemCollection items = listView1.Items;
    items.Add( new ListViewItem(new string[] { "bbb", "ccc", "aaa" }) );
    items.Add( new ListViewItem(new string[] { "aaa", "bbb", "ccc" }) );
    items.Add( new ListViewItem(new string[] { "ccc", "aaa", "bbb" }) );

    this.Controls.Add(listView1);
  }

  private void listView1_ColumnClick(object sender, ColumnClickEventArgs e) {
    Comparer1 comparer = listView1.ListViewItemSorter as Comparer1;

    if (comparer.SortColumn == e.Column) {
      if (comparer.Sorting == SortOrder.Ascending) {
        comparer.Sorting = SortOrder.Descending;
      }
      else {
        comparer.Sorting = SortOrder.Ascending;
      }
    }
    else {
      comparer.SortColumn = e.Column;
      comparer.Sorting = SortOrder.Ascending;
    }

    listView1.Sorting = comparer.Sorting;
    listView1.Sort();
  }
268名無しさん♯:01/10/21 23:24

  class Comparer1 : IComparer
  {
    public Comparer1() {
    }

    SortOrder sorting = SortOrder.None;

    public SortOrder Sorting {
      get { return sorting; }
      set { sorting = value; }
    }

    int sortColumn = 0;

    public int SortColumn {
      get { return sortColumn; }
      set { sortColumn = value; }
    }

    public int Compare(object x, object y) {
      if (sorting == SortOrder.None) {
        return 0;
      }

      string s1 = (x as ListViewItem).SubItems[sortColumn].Text;
      string s2 = (y as ListViewItem).SubItems[sortColumn].Text;

      if (sorting == SortOrder.Ascending) {
        return s1.CompareTo(s2);
      }
      else {
        return s2.CompareTo(s1);
      }
    }
  }

  [ STAThread ]
  public static void Main() {
    Application.Run( new Form1() );
  }
}
269デフォルトの名無しさん:01/10/22 00:20
>>267-268
すごい!!ありがとうございます!!
でも、

     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (; ´∀`)/< 先生!サンプルが難しいです!
 _ / /   /   \
\⊂ノ ̄ ̄ ̄ ̄\   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          ||
270251:01/10/22 05:24
>>257
> >>250
> そうするしかないと思うよん。
> 問題は、ソートの部分をどこまで簡潔に記述できるかだと思う...。
>
> >>251
> >>256
> XmlTextReaderを使うととっても便利よん。
>
> 単純なサンプル
>  http://www.eponymous.fsnet.co.uk/dotnetfaq.htm#11.4
>
> やや込み入ったサンプル
>  http://support.microsoft.com/support/kb/articles/Q301/2/28.ASP

どうも有難うございます。
やはりこれからは「ini」->「xml」になるのでしょうかね?
まぁ人の好みだとは思いますが。。
271デフォルトの名無しさん:01/10/23 00:59
厨房というかDQNというか。。。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=333&forum=7
>>271
彼に関してはこのスレでどうぞ……

★デブプログラマーってどうよ★
http://mentai.2ch.net/test/read.cgi/prog/1001686611/
>272 ワラタ
274名無しさん♯:01/10/23 08:18
ロゴが「Release Cadidate」に変わってるね。ヽ(´ー`)ノ
ダウンロードはまだか〜。

 http://beta.visualstudio.net/
275名無しさん♯:01/10/23 10:37
276名無しさん♯:01/10/23 11:19
激しくワラタ。

.NET Pet Shop

 http://www.gotdotnet.com/team/compare/petshop.aspx
277Delフサギコ:01/10/23 12:46
  ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < そういえば、ソースをアプする場所はこちらがありあます。
  ,;゙  ミ     \_____________
 ミ.  ミ
/゛゛゛゛
          ソース置き場
          http://www2.to/source


元はDelphi系から立ち上がってますが、
違う言語でも、OKというか「誰でも自由に利用」となっております。

お気に召しましたらご利用くださいな。

ってフサは管理者でもなんでもないのですが、ご紹介です。

ではではー。
>>276
なかなかやるね。

> The result?
> The exact same application functionality was
> implemented in just 1/3 the code using C#/ASP.NET,
> and it performs up to 28 times faster than previsouly
> published benchmarks of the J2EE application.
279名無しさん♯:01/10/23 18:51
VS.NET RCは来年2月末までの時限爆弾つき。(藁

 http://discuss.develop.com/archives/wa.exe?A2=ind0110d&L=dotnet&D=0&P=10502
280デフォルトの名無しさん:01/10/23 19:03
The Visual Studio .NET Release Candidate is recommended for users who
have not installed Beta 2, or users previewing the .NET Compact Framework
and Smart Device Extensions.
Users of Visual Studio .NET Beta 2 may install the Release Candidate;
however, the Release Candidate contains fewer features (this is the
Professional Edition whereas Beta 2 is the Enterprise Edition), and
a time bomb will prevent usage of the Release Candidate after
February 28, 2002.
Beta 2 users will probably choose to wait for the final release of
Visual Studio .NET, scheduled for late in the fourth quarter 2001.
281名無しさん♯:01/10/24 08:02
282名無しさん♯:01/10/24 08:15
ヾ(´ー`)ノ

.Net Framework Code Going Gold

 http://www.eweek.com/article/0,3658,s%253D1884%2526a%253D16995,00.asp
283名無しさん♯:01/10/24 11:00
About .NET Compact Framework

 http://www.gotdotnet.com/team/netcf/default.aspx
284デフォルトの名無しさん:01/10/24 18:04
WriteFile(hFile, szStr, strlen(szStr), &dwAccBytes, NULL);

これでやってて、szStrが65535バイトを超えた時点で、
strlen=116なぞを返してきました。

つまりszStrはもともと16ビットのunsigend int(結構しらべても
出てないもの)だから上限は65535っていうことなの?

lstrlen使えば32ビットに拡張されるでしょうか?

実はせっかく書いたソースがいきなり116バイトになってしまったので
ひやひやもんだった。退避していてよかった・・・・
285通りすがりのプログラマ:01/10/24 20:18
>>274
PDCでも配布されたようで。
http://www.zdnet.co.jp/news/0110/24/e_gates.html
284はすれちがい。。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=337&forum=7&3

お腹いっぱいになりそうだけど欲しいなCD。
C#勉強してるんですが日本語ドキュメントの「C# のご紹介」文章の
refキーワードのところサンプルコードのSwap関数間違ってるね。
static void Swap(ref int a, ref int b) {
int t = a;
a = b;
b = a;
}
b = a; は b = t; ですよね。なんとなく気になった。どうでもいいのでsage
SDKダウソはまだですか?
290名無しさん♯:01/10/25 11:41
>>289
どうやら出ない説が濃厚ね。

MSはなるべくβ2使ってくれというスタンスだし、
SDK V1がすぐに出るからあまり意味がないのかな...?
V1はいつなの?
292名無しさん♯:01/10/25 20:17
>>291
11月の中頃とか言われてるよん。
おそらくCOMDEXあたりだと思われ。
C#を学んでるものです。delegateについて聞きたいのですが。
以下のソースでコメントアウトしてるところにdelegeteを宣言すると
「名前空間"PrintAll'が見つかりません」と怒られます。
コメントアウトしてないところのdelegeteの宣言ではうまくいきます。
なぜでしょう?そう言う物なんでしょうか。根本的に何か理解不足の
ような気がしますが。よろしくお願いします。ソース突っ込みどころ
満載ですが、ご容赦ください。
294ソース:01/10/25 23:25
namespace delegateTest
{
using System;

delegate void PrintAll( object o );//うまくいきます

public class Test
{
//public delegate void PrintAll( object o );//うまくいきません。

public void PrintText( object text )
{
Console.WriteLine( (string)text );
}
public void PrintInt( object Integer )
{
Console.WriteLine( ((int)Integer).ToString() );
}
}
public class MainClass
{
static void Main()
{
Test test = new Test();
PrintAll delegateModule = new PrintAll(test.PrintText);
delegateModule( "string" );
delegateModule = new PrintAll(test.PrintInt);
delegateModule( 123456 );
}
}
}
}
295名無しさん♯:01/10/25 23:55
>>293-294
delegateの宣言は、IL的に見れば1種の型宣言よん。

つまり、Testクラスの中でdelegateを宣言すれば、
nested typeとして扱われるということ。

なので、PrintAllをTest.PrintAllと書けばOK。

  Test.PrintAll delegateModule = new Test.PrintAll(test.PrintText);
296デフォルトの名無しさん:01/10/26 00:21
>>295 レスありがとうございます。レスのとおりしたらうまくいきました。
>nested typeとして扱われるということ
ここら辺りまで理解できておりません。
インスタンスのtest.PrintAllとしてはまっておりました。勉強しないと。
このスレで話題の川俣さんのC#入門なんだけど、delegateの説明しないで
イベント説明してるね。絶対意味わかんないよあれじゃ。
サンプルコードもあれだしな。
delegateつながりということで、、.
298デフォルトの名無しさん:01/10/26 11:53
.NETでUDDI用のAPIはないんですか?
ドキュメントを見ても見つからなかったもので。
あぁぁぁ・・・
川俣さんより名無しさん#大先生のほうが上だった。
delegateとeventの違いって、分かるようで分からない。。。
川俣と比べるのは失礼だろう。
あんな低い人と比べたらレベル測れない。
302デフォルトの名無しさん:01/10/26 13:26
>>300 私も分からないです。複数の関数を指せるくらいしか違いわからない。
それとイベントの呼び出し?に制約があるってことくらいしか。
あとEventArgs Classもわかない。EventArgs is the base class for event dataって
ヘルプに書いてるけど、event data ってなんでしょう?
たのむからこのスレに変な名前は出すな
304名無しさん♯:01/10/26 15:53
305名無しさん♯:01/10/26 16:17
>>300
delegate : 型の宣言,event : クラスメンバーの宣言ということで、根本的に違うよん。
eventと比べるべきは、delegateの「インスタンス」の方ね。

いちばんまぎらわしいのはこういうやつかな。

  delegate void SomeDelegate();

  class Test
  {
    public SomeDelegate Hoge;
  }

  class Test2
  {
    public event SomeDelegate Hoge;
  }

両方共通でできることは、

 ・+= でメソッド追加
 ・-= でメソッド削除
 ・クラス内部から、= でメソッド代入
 ・クラス内部から、メソッド実行

一方、eventではできないことは、

 ・クラス外部から、= でメソッド代入
 ・クラス外部から、メソッド実行

あと、eventは(propertyと同じで)abstract,override,sealed,virtualで宣言できるよん。
つまり、見た目はフィールドっぽいけど、ふるまいはメソッドだということ。

なので、フィールド対プロパティみたいな感じでとらえるといいのかな。
306名無しさん♯:01/10/26 16:22
>>302
> ヘルプに書いてるけど、event data ってなんでしょう?

MouseEventArgsとかKeyPressEventArgsのプロパティを見てみると
感じがつかめると思うよん。
307名無しさん♯:01/10/26 16:55
これはもうn大先生が入門書書くしか。
309298:01/10/26 19:24
>>304
あらら、あったんですね。ありがとうございます。
ここにいるやつの半分ぐらいはn大先生無しには.NETしてなかっただろうね
サーバー移転あげ
http://www.atmarkit.co.jp/ さん、
ライターとして名無しさん♯を採用してください。
313302:01/10/26 23:11
>>305-307 分かりやすい説明とサンプルコードありがとうございます。
違いについて理解できました。ありがとうございます。
>>306 もありがとうございます。感じがつかめました。^^
名無しさん♯ さんを賞賛するレスにすべて激しく同意します。
ほんとWebでもいいから名無しさん♯ さんのC#の講義を読んでみたい。
お忙しいから無理なのかな。このスレで我慢しますか。
315仕様書無しさん:01/10/27 07:26
XMLSchemaを正規表現までサポートしてる!age
316名無し~3.EXE:01/10/27 09:33
ここで叩かれてるとは思いもしないでしょうなw>川○さん。
317デフォルトの名無しさん:01/10/27 18:50
C#では多重継承をサポートしてないみたいなんですが
interfaceで似たようなことができると記憶してます
具体的なサンプルを探してみたのですが見つかりせません。
ヘルプでmultiple Inheritanceなどで引いて見たのですが、どうにも見つかりません。
C#でどのようにしたら多重継承みたいな?ことが実装できるのでしょう?
よろしくお願いします。そろそろ本買わないとなぁ〜 トホ
>>317
こういうやつか?

public class HogeHoge : Hoge, IFoo, IBar
319デフォルトの名無しさん:01/10/27 20:17
>>318 継承するベースクラスがinterfaceならいいということですね。
ありがとうございました。しかしinterfaceを継承したら継承したクラスで
実装しないといけませんよね。C++みたいにベースクラスのメンバを
そのまま多重継承できないのでしょうか。厨房な質問で申し訳ないです。
320デフォルトの名無しさん:01/10/27 20:52
> C++みたいにベースクラスのメンバを
> そのまま多重継承できないのでしょうか。
それは無理。というか、それができたら「多重継承をサポートしない」とは言えなくなる。(w
321名無しさん♯:01/10/27 22:10
>>317
> C#では多重継承をサポートしてないみたいなんですが
> interfaceで似たようなことができると記憶してます

COMでおなじみのContainmentのことかしらん。
とりあえずサンプル作ってみたよん。

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

でも、これは再利用のテクというよりは、ただのトリックと考えた方がよさそうよ。
322デフォルトの名無しさん:01/10/28 00:34
>>320 レスありがとうございます。確かにそうですよね(^^;
>>321 わかりやすいコードありがとうございます。
クラス図書いてみておおって感心しちゃいました。あとasも初めてみたので
勉強になりました。たしかに再利用で使うことは難しそうですね。
ありがとうございました。
323デフォルトの名無しさん:01/10/28 13:34
C#のクラス定義をXMLスキーマに落とすことってできますか?
>>323
おれもそれ知りたかった。
System.Management.*とかをよく見てたけど
よく分からなかったよ。
>>323
xsd.exeで出来るかも。System.Managementは関係なかった。ごめん。
326名無しさん♯:01/10/28 14:35
>>323
xsd.exeでできるよん。

でも、xsd.exeの中身はILだから、コードでももちろん実現可能。

 http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=8
>>326
#さん、お願いします。
どうもxsd.exeだとプロパティの定義しかされないのだけど、
これってそういうものなんでしょうか?
あと、XmlReflectionImporterというクラスがヘルプに
載ってないんですが、、、いろいろ面倒かけてすみません。
XmlReflectionImporterを検索していたらこんなサイトに辿りつきました。
http://www.aspalliance.com/quickstart/aspplus/samples/classbrowser/cs/classbrowser.aspx
しかもこっちはなんかSDKについてたドキュメントとnamespaceの構成が違う。
どうなってるんだろう・・・
#さん、ごめん。
おれがメチャクチャDQSなことが判明しました!
上のヤツはなかったことにして下さい!!
330名無しさん♯:01/10/28 16:20
>>327
> どうもxsd.exeだとプロパティの定義しかされないのだけど、
> これってそういうものなんでしょうか?

シリアライズに必要なメンバーのみだから、
基本的にpublicのプロパティだけになると思うよん。

> あと、XmlReflectionImporterというクラスがヘルプに
> 載ってないんですが、、、

あのサンプルはxsd.exeを逆アセンブルして作ってるから、
非公開のクラス使いまくりになってる。(藁

このへんのクラスは、ildasm.exeでSystem.Xml.dllを見るしかないかも。

>>328
それはSDKについてくるサンプルよん。
おそらく、β2より前の途中版でのクラス構成だと思われ。
>>330
ありがとう#さん。なんとなく分かってきました!
333323です:01/10/28 18:31
325さん、名無しさん♯さん、ありがとうございました。(^o^)
334324:01/10/28 19:08
>>323
ホントは個別クラスのIDLのようなものをXMLで出力させたかったんじゃないの?
クラスの静的情報を記述したXMLドキュメントを出力させるっていう。
で、調べたんだけど今のところ、さっぱり分かりません(汗
.NETど素人なもんで未だに巨大なクラスライブラリ―の概要すら分かりません。
ごめん。

あんまり関係ないけど、全スレに面白そうな部分を見つけたんで
リンク貼り付けておきます。
http://pc.2ch.net/test/read.cgi/tech/977112364/247-249
>>324
その混乱してる頭にはこのような基本的情報からはじめるのがいい
http://www.microsoft.com/japan/developer/vstudio/nextgen/technology/commonlanguage.asp
336名無しさん♯:01/10/29 12:30
>>334
CodeDomってβ2になって大きく変わってるから、そのサンプルは動かないと思われ。
とりあえず、β2っぽく直してみた。

 http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=9
>>336
ありがとうございます。
頂いたサンプルではどうしてもクラスに"Public"がついてしまいますね。
cls.Attributes = MemberAttributes.Private | MemberAttributes.AccessMask;
なんてやってもダメです。バグでしょうか?よく分かりませんねw。

昔、VBAで自身を書き換えるマクロを作ったりして仕事中に遊んでたことがあって、
そのときに構文要素を表現したようなオブジェクトがあってもいいのになって
思ったのを思い出しました。あえてクラスを作ったりはしませんでしたが。

新しいおもちゃを手に入れたようです。しばらく仕事中これで遊べそうです!(*^o^*;
>>337
Memberじゃないよ。TypeAttributes変えるんだよ。
339名無しさん♯:01/10/29 21:25
>>338
スマソ。それは漏れの勘違い。

だから、β1のサンプルでは using System.Reflection; ってしてたんだ。
自分で書いたコードなのに気づかなかった。(藁

こうすればいいのね。

    // class Hello の部分
    CodeTypeDeclaration cls = new CodeTypeDeclaration("Hello");
    cls.IsClass = true;
    cls.TypeAttributes = TypeAttributes.NotPublic;
340名無しさん♯:01/10/29 23:55
>>340 お値段が気になる〜
342デフォルトの名無しさん:01/10/30 19:25
ファイルの移動やコピーする時に、同名のファイルがあると

    「ファイルの上書きの確認」
    このフォルダには既に 'hoge.txt' ファイルが存在します。
    現在のファイル …(略)…
    に次の新しいファイルを上書きしますか?
    …(略)…
              [はい] [いいえ]

と出ますが、.NETでこの確認ダイアログを出す方法はありますか?
普通にやると、IOExceptionで
「既に存在するファイルを作成することはできません。」となるのですが。
343名無しさん♯:01/10/30 20:56
API Changes from Beta2 to RTM

 http://go.microsoft.com/fwlink/?LinkId=4372

RCじゃなくてRTMまで来てるのね...。
344名無しさん♯:01/10/30 21:30
>>342
おそらく、P/InvokeでSHFileOperation(shell32.dll)を直接使うしかないと思われ。
でも、ちょっとめんどいかも。
345342:01/10/31 00:07
>>344
どうもありがとうございます。
shell32.dllだと何だか難しそうなので、
それらしい確認画面を出すようにしようと思います。
でも、ファイルの種類ごとのアイコンを表示するのが謎?
道は険しそうです。アイコンはなしにしようかな。
346名無しさん♯:01/10/31 02:09
>>345
変なバグもあるけど、shell32.dllを使うとこんな感じよん。

 http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=11
サンプルのソースを見てて思うんですが、
変数名に大文字から始める文字列を割り当ててたりして
ちょっと戸惑います。これってC#的にはいいの?
Javaだと確実にNGなんだけど。

C#用のコーディングガイドラインみたいなのがあれば知りたいな。
JavaでNG?それって決め事でしょ。
.NET Frameworkは、PascalCaseもcamelCaseもUPPERCASEもみんな使う。
コーディングガイドラインというものは、プロジェクトのメンバー全員の
同意の下に決めるもので、誰かが与えるものではない。
349名無しさん♯:01/10/31 14:07
>>347
いちおうこういうのはあるよん。
C#というよりは.NETのガイドラインね。

 http://msdn.microsoft.com/library/en-us/cpapndx/html/_cor_capitalization_styles.asp

他にもいろんなことが書いてあるから、詳しくは左側のタブを見てちょ。
>>348
いや、そういってしまえばそれまでだけど、
Javaの場合は推奨の規約のようなものがあったはず。
もしC#やVBに関してそういったものがあれば
知りたかっただけです。
351347:01/10/31 14:36
>名無しさん#さん
ありがとうございます。
先に答え出してもらってるのに
気が付かないで書き込み&その最中一生懸命検索(w
バカです。逝って来ます。。。
オープンソース版.NETプロジェクト,経過は順調
http://www.zdnet.co.jp/news/0110/31/e_mono.html
353342:01/10/31 19:35
>>346
またまたありがとうございます。
でも、名前変えたりしても
「ファイルをコピーできません。
送り側のファイルまたはディスクから読み取れません。」
と出てダメみたいです。

なので、アイコン抜きでサイズもメッセージも同じダイアログを
出すようにしてみました。
SDKなので位置やサイズの調整が大変でしたが。
354デフォルトの名無しさん:01/10/31 23:59
あげじゃ!
355デフォルトの名無しさん:01/11/01 04:01
Attributeって何をするための物なんでしょう。Attributes Tutorialを
がんばって読んで見ましたが、英語力がないため、イメージすらつかめません。
前スレでC#の目玉みたいなレスがありますので、ぜひとも理解したいです。
基本的な質問で申し訳ないです。
>>355 すいません。自己レスです。googleでひっかかりました
「クラスに URL を結び付け,それを実行時に取り出せる」と
ttp://objectclub.esm.co.jp/cs-vs-java/cs-vs-java.htmlにありました
357デフォルトの名無しさん:01/11/01 11:01
>>356
そんなのぜんぜんAttributeの本質を物語ってないぞ。Attributeってのは、
アスペクト指向プログラミングのためのもの。MTSが導入し、COM+が拡張した
属性ベースのプログラミングを、タイプシステムレベルでサポートしたのが
Attribute。EiffelのAssertionの考え方とか、COM+のトランザクションの
ように、そのクラスの本来の機能とは直接関係ない機能をロジックと
分離できるのがその特徴だ。アスペクト指向とかAOPで検索してみるべし。
358デフォルトの名無しさん:01/11/01 16:52
>>357 アスペクト指向プログラミングについて調べてみました。
ttp://www.ogis-ri.co.jp/otc/hiroba/Report/oopsla/oopsla.html#kiji_anquete
で感じがつかめました。大変興味深いですね。ありがとうございました。
しかしそれを踏まえてAttributeのサンプルなどWeb上Help上で漁ってみましたが
何をやってるのかさっぱり理解不能です。なんか手順が4段階くらいありそうなのは
わかったんですけど。
JavaのAspectJのサンプルは分かったのに(T_T)
漏れもレス見て調べてみたがサパーリわからん。
[WebMethod]と[DllImport("hoge.dll")]くらいは
決まりごとのように使ってるが、
そもそもちゃんと理解してないし、
それ以外の活用の仕方もよくわからん。
「C#実践プログラミング」 (本体3,400円+税)11月5日(月)発売
http://direct.ips.co.jp/directsys/go_x_TempChoice.cfm?sh_id=EE0040&spm_id=1&GM_ID=1574
目次
http://direct.ips.co.jp//book/Template/Goods/bt_contents.cfm?GM_ID=1574&SPM_ID=1

この本はどうですか? これの原著って何でしょうか?
自分で調べちゃいました。原著は
「C# Programming with Public Beta」
http://www.wrox.com/Books/Book_Details.asp?sub_section=1&isbn=1861004877&subject=C%2B%2B%2FVC%2B%2B%2FC%23&subject_id=3

Beta1みたいだけど、もちろん訳では手直しされているんですよね。
363デフォルトの名無しさん:01/11/02 03:46
Attributeほんまわかんないや。
named parameter?positional parameter?
(´-`).。oO なんなんだろ・・・・?
現時点でのリファレンス的本でいいものってどれだろう?
366名無しさん♯:01/11/02 09:52
>>358のサンプル、C#で書いてみたよん。

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

Context Attributeってもう少しお手軽にならないかしら...。
367名無しさん♯:01/11/02 10:31
Custom Attributeのサンプルも作ってみたよん。

 http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=14
368名無しさん♯:01/11/02 10:43
>>361-362
そっちの本だったんだ...。
漏れは『Professional C#』の訳本が出ると思ってた。

 http://www.dotnetbooks.com/listings/bookdetails.asp?isbn=1861004990

>>364
C#言語仕様書。(藁

 http://store.nikkeibp.co.jp/item/main/148910024410.html
369デフォルトの名無しさん:01/11/02 13:29
>>366
>>367
すごい。すごすぎるよ。
川俣のおっさんはAttributeをどう説明するのだろうか?
371デフォルトの名無しさん :01/11/02 14:01
ILコードを出力するコンパイラオプション、誰がご存知ないですか?

>>370
もうatmarkitのあの連載を読むのは辞めなって。
というか、もうつまらんから名前さないでくれ
372名無しさん♯:01/11/02 14:21
>>371
コンパイルしてから、

 ildasm /out=hoge.il hoge.exe[dll]

でどうかしら。
>>372
どうもありがとうございます!
374デフォルトの名無しさん:01/11/02 15:52
>>366 サンプル有難うございました。ContextAttributeのサンプル、私には難しい。トホホ
いまHELPとにらめっこしながらコードにコメントをつけているところですが、
HELPの該当個所に頻出する"context property"と言うのは何なんでしょう?
375名無しさん♯:01/11/02 22:45
>>374
> HELPの該当個所に頻出する"context property"と言うのは何なんでしょう?

正直、漏れもよくわかってない。(藁

ヘルプの引用をすれば、

> the name-value pair of the property name and the object
> representing the property of a context

とか

> The properties that make up the context

としか書いてない。

じゃあ、contextって何?っていうのを見てみると、

> A context is an ordered sequence of properties that define an environment
> for the objects resident inside it. Contexts get created during
> the activation process for objects that are configured to require
> certain automatic services such synchronization, transactions,
> just-in-time activation, security, and so on.

という感じ。やっぱりよくわかんないや。(藁
>>366 名無しさん#さんサンプルありがとう〜。
ん〜しかしサンプル見てみると複雑怪奇ですね。本当にアスペクト指向のために
Attributeって用意されてるのか疑問になっちゃいます。。
JAVAのアレみたいにお手軽じゃないし。
377デフォルトの名無しさん:01/11/03 06:37
ASP.NETでaspx書いてたんですけど
何故か.aspが実行されなくなりました。<拡張子.aspxにすると実行される
スレ違いかもしれませんが、どなたか分かる方いたら教えてー
確かちょっと前は.asp使えてたような気もするんですが(汗。
>>377
俺のところでは普通に使えてるぞ。
どんなエラー画面が出てきてる?
379377:01/11/03 17:06
ページが見つかりません
検索中のページは、削除された、名前が変更された、または現在利用できない可能性があります。

なんですけど、aspxでやるとふつーに実行できるんです(謎
380デフォルトの名無しさん:01/11/04 00:16
開発したプログラムを、別のPCでも開発できるようにしたいのですが、
どのようにしてプロジェクトを移せばよいのでしょうか?
>>380
プロジェクト一式をコピーじゃだめ?
>>380
フォルダごとコピーって、そういう意味じゃない?
開発者が一人なら、ネットワーク共有。
複数人ならバージョン管理ツール使う。
383_:01/11/04 01:05
質問なんですけど、
byte[]をstringに変換するにはどうすればいいのでしょう。
バイナリとS-JISのテキストの混在したファイルを読み込むため、
BinaryReader.ReadBytes(int)を使っているのですが、
テキスト⇔バイナリの変換がC++のように容易にはできないようで、
苦労しています。
やはり、StreamReader.Read()などを使わないと駄目なのでしょうか。
ご存知の方、お願いします。
>>383
System.Text.Encoding
>>375 レスありがとうございます。う〜 ほんとわかんないですね。
少しAttributeは保留しとこうかな。残念ですけど。有難うございました。
386_:01/11/04 01:41
>>384
System.Text.Encodingは抽象クラスで使えないと出るんですが。
派生したクラスを使うのでしょうか。
もう少し詳しくお願いします。
教えて君か?
少しは周辺を検索すれば?
388386:01/11/04 02:37
やり方が判った。
通常のコンストラクタを用いず、敢えて
Encoding encoding=Encoding.GetEncoding(932);
を使うらしい。
しかし、何故こんな厄介なことをしなければ…。
>>388
Encoding.GetEncoding(932).GetString(arguments);
390デフォルトの名無しさん:01/11/04 23:15
あれ?インターフェイスにはプロパティって書けないんだっけ?
しかも private なメソッドとか定義できない??
>>390
プロパティなら
string Property
{
    get;
    set;
}
みたいに書けば良いはず。
#さん、某スレの255を何とかしてください。
393名無しさん♯:01/11/05 00:48
>>390
インターフェイスはpublic abstract強制よん。
なので、privateとかinternalは不可。
というか、"public" とつけることすらできない。

>>392
漏れにはどうすることもできない。(藁
394390:01/11/05 15:42
>>391
なるほど、そう書くんすね。できました〜。ありがとう。

> ♯さん
いつもお世話になっております :-)
abstract なのはインターフェイスなんだからあたりまえとして、
スコープは private とか使いたいって思ったりしませんかね?
こんな事思ってしまう漏れはまだまだ OOP 解っていない構造化厨ですか?
395最近肥満気味の名無しさん:01/11/05 17:54
C#初心者に朗報。
こんな本どう?
http://books.softbank.co.jp/bm_detail.asp?sku=4797316365
396デフォルトの名無しさん:01/11/05 18:15
>>395
なんかどの本も内容似たり寄ったりですよ…。

個人的にはC#文法よりもライブラリのリファレンス本が欲しいのですが……。
397名無しさん♯:01/11/05 18:30
>>394
> スコープは private とか使いたいって思ったりしませんかね?

インターフェイスを「実装の契約」ととるか「アクセス窓口」ととるかという問題ね。

「契約」ととれば、non-publicでも「こういうメソッドを実装してね」という契約が必要なのは事実よん。
ちなみに、privateじゃなくてprotectedとかinternalね。
実際、abstract classではこういうことができるわけだし。

でも「アクセス窓口」ととれば、インターフェイス越しにクラスを利用する側にとって、
使えないメソッドが宣言されてるのも、っていうのがあるんじゃないかしら。

どちらの視点が正しいという問題じゃないので、(どちらも正しい)
C#の言語デザインとしてこういう決断を下したと納得するしかないんじゃないかしら。
398パイプカットに失敗、50%残った状態の名無しさん:01/11/05 18:37
C#初心者ですが、
お勧めのC#のページありませんか?

どこのページも、
C#プログラム中級者〜上級者向けなので難しいんです。
399名無しさん♯:01/11/05 18:38
なんか質問に直接答えてないような気がしてきた。(藁

> スコープは private とか使いたいって思ったりしませんかね?

protectedではよくあるよん。
そういうときは、やっぱりinterfaceをあきらめてabstract classを使うしかない。
>>398
C#自体初心者向け言語です あきらめましょう
>>400
例えそうだとしても奥が深いのは事実だと思うぞ
402400:01/11/05 19:45
>>401
御意。
少なくともJavaよりは過去の資産を重んじ、かつ未来に向かって開かれている
>>402
そういうこと言うと某スレみたいになるからやめてくれ。
>>398 C#プログラム中級者〜上級者向けのページってどこだろ。気になる。
>>404
川俣大先生の講座
406 :01/11/05 20:11
sourceforgeのC#プロジェクト
MSDNにバシバシコラム書いて欲しいね
>>407
@ITだけで十分。
409394:01/11/05 23:29
> ♯さん
なるほど…考え方の違いっすか… < インターフェイスの事


ところで、 char と string の相互変換ってどうやればいいんでしょう?
string --> char はインデクサーでうまくごまかしたんですけど…もっとスマートな方法がありそうですし、
char --> string ができないんですが…。
>>409
char c = 'a';
string s1 = Convert.ToString(c);
string s2 = new String(c, 1);
411409:01/11/05 23:49
>>410
あ、System.Convert っすか!気づかなかった;
ありがとう。
412409:01/11/06 00:12
またもや質問です。
全角文字と半角文字を見分けたいんですけど、どうすればいいでしょうか?
System.Text.Encoding あたりが怪しいと思うんですけど…。
413デフォルトの名無しさん:01/11/06 02:08
>>395の本購入してました。
Cマガ買ってベータ版インストールしようとしました。
自分のPCはMeがはいってました。
早く2000にして勉強したいです。
そのためあげ。
>>413
18MBの再頒布パッケージを入れてみたら?Meでも動くよ。
http://www.microsoft.com/japan/developer/net/dotnetsdkdown.asp
ランタイムのみなのでドキュメントとかはないけど、
コンパイラがついているので最低限の勉強はできるはず。
415:01/11/06 03:01
C#のコンパイラって売ってるの?
買いたいんだけど、、
416名無し~3.EXE:01/11/06 03:07
>>415
.NET Framework SDKベータ2はMSのサイトからDLできたはず。
Visual Studio.NETベータ2はMSのサイトから実費で注文、又は雑誌にDVDで付いてます。(どの雑誌か記憶が曖昧)
417:01/11/06 03:12
↑早速のレス有難う御座いました。
私はDVDドライブを持っていないので
実費でCDROMを購入しようと思います。
所で試用期間とかはありますか?
418名無し~3.EXE:01/11/06 03:17
試用期間とかは無かったです。(というか今使ってるので)
3150円だそうです。
http://web.msj.co.jp/shop/default.asp?
419:01/11/06 03:18
>>418
有難う御座います。
早速注文してみます。
>>413
>>414 の方法でドキュメントはWebで。
MSDNは重いけど。

http://msdn.microsoft.com/library/en-us/nfstart/html/sdkstart.asp
>>397
> C#の言語デザインとしてこういう決断を下したと納得するしかないんじゃないかしら。

えー、interfaceってのはC#よりずっと前からそういうものだったでしょ。
javaだって。C++だってinterface作るときはそうじゃん。C#が決断したんじゃ
ないのでは?C#はまわりにあわせただけだと思うけど。
422255:01/11/06 12:43
>>421
やれやれ。揚げ足取りか。
げ、http://www.gotdotnet.com が落ちてる・・・
424パイプカットに失敗、50%残った状態の名無しさん:01/11/06 13:59
C#に関して皆さんの参考にしていらっしゃるページなんかを
教えていただけたらいいのですが。
ひとつうえのやつ

んなことよりパイプカットってやっぱいたいのか?
426413:01/11/06 16:14
>>414
DLしてインストールしたんですけど、
コンパイル方法がわかりません。
宜しければ教えてください。
427名無しさん♯:01/11/06 16:20
>>412
半角カタカナの判別が問題ね。
これは自前でロジックを組むしかなさそう。

>>421
> えー、interfaceってのはC#よりずっと前からそういうものだったでしょ。

もちろん。
でもね、C#のインターフェイスはなぜかフィールド宣言ができないのよ。
定数のクラスフィールドでもダメ。
>>427
> C#のインターフェイスはなぜかフィールド宣言ができないのよ
Javaでインターフェイスを定数宣言用に使っていたへたれな
おいらはどうすればいいのやら・・・
>>428 enum
あ、そっか(w
431421:01/11/06 17:24
>>428
> でもね、C#のインターフェイスはなぜかフィールド宣言ができないのよ。
> 定数のクラスフィールドでもダメ。

それがあたりまえだと思う。javaのinterfaceが間違ってるのでは。
定数って型システムの内部で利用するものでしょ。
432255:01/11/06 17:47
>>431
COMのIDLでも定数がありますが何か?
433421:01/11/06 18:26
意味不明。
COMのinterfaceに定数宣言はできませんが、何か?
434255:01/11/06 18:59
>>433
ちっ。分かってたか。
Javaのインターフェイスで定数宣言できるのは、列挙型のない言語仕様の欠陥を
取り繕うためだということだ。
>>426
C:\WINNT\Microsoft.NET\Framework\v1.0.2914 にパスを通して、「csc /?」を実行。
exeを作るなら「csc 〜.cs」。
>>434 interface論争はもういいでしょう。C#ではinterfaceで定数宣言できないって
分かっただけでもう十分です。ありがとう。
437255:01/11/06 21:17
>>436
「できない」のではなくて、「する必然性がない」。enumがあるから。
どこぞの制限だらけの言語と比較しないことだ。
438名無しさん♯:01/11/06 21:51
255という名前の.NET信者がJavaのスレを荒らしまくっています。
このままでは.NETひいてはC#の評判が悪くなってしまいます。
何とかしてください。
ここはまったりしてていいねぇ

ASPっていうかサーバーサイドで遊びたいんだが
どのへんのサンプルを触るのが手っ取り早い?
441デフォルトの名無しさん:01/11/07 02:18
>>416
いろんな雑誌に載っているのでは?
漏れが入手したのは「日経コンピュータ」。
でも、DVD-ROMドライブ持ってない・・・。
442390:01/11/07 10:35
またまた質問なのですが…
private static const int N = 624;
って書いたらコンパイラに怒られてしまいました。
C♯ってクラスメンバな定数って書けないんですかね?
Enumがあるから?単発の定数の時代は終わりですか?
443390:01/11/07 11:03
質問ばっかなのですが
コンストラクタをオーバーロードしたとき、
別のコンストラクタを呼び出すのはどうしたらいいんでしょう?
public foo(int nX)
{
...
}
public foo()
{
// ここで foo(int) を呼び出したい… this(10)とかfoo(10)とかthis.foo(10)とかやってみたけど駄目でした
}
444名無しさん♯:01/11/07 12:47
>>442-443
> private static const int N = 624;

constは暗黙でstaticよん。なので、こうすればOK。

  private const int N = 624;

> コンストラクタをオーバーロードしたとき、
> 別のコンストラクタを呼び出すのはどうしたらいいんでしょう?

C++とJavaの中間という感じね。

  public foo() : this(10) {
  }
445390:01/11/07 14:04
>> ♯さん
なるほど…そーゆー事ですか、やっとわかりました。ありがとうございます。
WinFormのDataGridを使ってデータを表示したとき、データがColumnの幅より
長かった場合、複数行にわたり表示したいのですが、方法がわかりません。
なにか良い方法はありませんか?
447名無しさん♯:01/11/08 11:40
>>446
プロパティやメソッドでできるものではなさそうね。

DataGridのカスタマイズが必要だと思うけど、
関連するクラスがprivateなのが多いので無理かも。
448デフォルトの名無しさん:01/11/08 21:20
初歩的な質問で大変申し訳ないのですが、同じフォルダにあるC#ソースファイルに
あるクラスを別ファイルにあるクラスから使うにはにはどうすればいいのでしょう?
449デフォルトの名無しさん:01/11/08 21:47
コンパイラで/rのこと?
450名無しさん♯:01/11/08 21:53
>>448
コンパイルの仕方の問題かな...?

出力ファイル(.exe,.dll)の構成をどうするかにもよるんだけど、

例1) aaa.csとbbb.csから1つのexe(hoge.exe)を作る場合

 csc /out:hoge.exe aaa.cs bbb.cs

例2) aaa.csからDLL(aaa.dll)を作って、それをbbb.csで利用する場合

 csc /r:aaa.dll bbb.cs

こんな感じよん。
451デフォルトの名無しさん:01/11/08 22:13
>>450 レスありがとうございます。コンパイルの仕方大変勉強になりました。
私の意図したかった質問はもう一歩手前で(^^; 質問の仕方がまずくて申し訳ありません。
C++ならあるファイルで別ファイルをinclude "hoge.h"のようにインクルード
しますが、そのようなことをC#ではどうすればいいでしょうか?と言うことです。
usingで同じようにできないようなのですが。よろしくお願いします。
的外れな質問でしたらすいません。
452デフォルトの名無しさん:01/11/08 22:14
includeする必要ないよ。Class1 c = new Class1();
でOK。usingするのは、ネームスペース使ってるときだけ。
453デフォルトの名無しさん:01/11/08 22:44
>>452 レスありがとうございました。おお〜 そうなんですね。
ちょっと感動ヽ(´ー`)ノ ありがとうございました。
454==:01/11/09 05:44
「Bitmap」クラスのイメージを「Graphics」クラスに渡す方法はわかるのですが、
その逆に、「Graphics」クラスのイメージを「Bitmap」クラスに渡す方法がわかりません。
どなたかお願いします。
455デフォルトの名無しさん:01/11/09 09:36
>>454
BitmapのコンストラクタでBitmap(int, int, Graphics)てのがあるけど、これじゃだめ?
よく分からずに言ってるけど。
>>454
Graphicsはイメージを描く道具
Bitmapはイメージを描く(そして描いたイメージを保存する)画用紙
と考えてください。

Graphicsはただイメージを描くための道具なだけであって、
イメージを描いた紙じゃないので、
Graphicsには描いたイメージは保存されていません。
だからGraphicsからBitmapは構築できません。
457デフォルトの名無しさん:01/11/09 12:24
.NET
って要するになんなんですか?いまいち良くわからんです。
説明してください。
>>457
そういう話題はこっちでやってくれ。
http://pc.2ch.net/test/read.cgi/tech/1004021441/l50
459!457:01/11/09 13:01
>>458
何でだめなの?
1 には .NET 関連の話題ってあるけど。
>>459
宗教論争で荒れるからだ。
461デフォルトの名無しさん:01/11/09 14:20
C#でオーバーロードコンストラクタから別のオーバーロードコンストラクタって呼べます?
今Javaのコードをそのまま移植してるんだけど、なんかthis( int hogo , String hoge )
って感じで呼んでるみたいなんですが。
462デフォルトの名無しさん:01/11/09 15:05
>>461
こんな感じだね。

using System;
class c {
 int _x, _y;
 c(int x, int y) {
  _x = x; _y = y;
 }
 c(int x) : this(x, 999) {
 }

 public override string ToString() {
  return _x.ToString() + "," + _y.ToString();
 }

 static void Main() {
  c C1 = new c(1, 2);
  Console.WriteLine(C1);
  c C2 = new c(1);
  Console.WriteLine(C2);
 }
}
463デフォルトの名無しさん:01/11/09 15:41
>>462 レスありがとうございます。よく分かりました。
また質問ばかりで申し訳ないのですが、Javaのコードでは
c(int x ){ x = 999; this( x , 999); }のように実引数を加工してから別の
オーバーロードコンストラクタを呼び出していますが、このようなことを
C#ではどうすればできるのでしょうか?
464 ◆SharpRW. :01/11/09 18:22
全然関係ないけど,こんなトリップが出た(w

Reflection ネームスペース内にある Assembly や Activator クラスなどを
用いてプラグイン機能を搭載してみようと,
ttp://www.grn.mmtr.or.jp/~konekos/dot_net/fw/plug_in.html
ここを参考にして作ってみました。

ファイル構成としては
メイン実行ファイル.exe (本体)
メイン実行ファイルと同じファイル名.dll (プラグインのベースとなるインターフェイスを提供)
plugin/
  プラグイン.dll (プラグイン)
みたいな感じです。

そして,メインプログラムからプラグイン読み込もうとすると...
なんか読み込む以前の問題に,読み込みメソッドを呼び出そうとするときに
例外が発生してうまくいかない(w

3週間くらい悩んでやっと原因がわかりました。

どうやら 自分のアセンブリ名 と ベースとなる DLL のアセンブリ名 が同じ場合,
このようなエラーがエラーが発生するようです。

まさかこんなことで悩んでいる人は居ないだろうけど,参考までに。
465デフォルトの名無しさん:01/11/09 19:35
>>464
> どうやら 自分のアセンブリ名 と ベースとなる DLL のアセンブリ名 が同じ場合,
> このようなエラーがエラーが発生するようです。

アセンブリ名を勘違いしているな。アセンブリ名=ファイル名ではない。
例外を見てみ。
>>>未処理の例外 : System.TypeLoadException: アセンブリ 'lib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' から型'Lib' を読み込めません。
ってなってるっしょ。この場合のアセンブリ名ってのは、
  'lib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
これなの。だからファイル名が同じとか違うとか関係ないんだよね。

DLLのほうのソースに、
  using System.Reflection;
  [assembly:AssemblyVersion("1.0.0.0"),AssemblyCulture("ja-JP")]
こんなの追加して、DLLとEXEをリコンパイルしてみ。んで、DLLは
./ja-JP/xxx.dllにおく。そうすれば、ファイルの拡張子より上が同じでも
ロードできるよ。これはアセンブリ名が変わるからだ。ファイル名は同じでもね。
466デフォルトの名無しさん:01/11/09 19:46
そういやC#(or .NET)用のTestingFrameworkってないの?
467デフォルトの名無しさん:01/11/09 20:01
NUnitあるよ。
468 ◆SharpRW. :01/11/09 20:39
>>465
なるほど...
ファイル名とアセンブリ名が違うというのはわかっていましたが,
詳しくはわかっていませんでした(w

わかりやすい説明 & 対処方法,ありがとうございました〜
>>463
初期化用のメソッドを別個に設けて呼び出すしかない。
470 ◆SharpRW. :01/11/09 20:42
って日本語変だな。
ファイル名とアセンブリ名が違うというのがわかっていたら >>464 みたいな
ことは書かなかったか。

実は全然わかっていなかったと言うことで,
上のことはナシにしてください(w
471名無しさん♯:01/11/09 20:53
>>470
ヘルプのAssemblyNameクラス(System.Reflection)のところに
詳しい解説が載ってるよん。

 http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemReflectionAssemblyNameClassTopic.asp
472 ◆SharpRW. :01/11/09 20:58
>>471 ♯大先生
ありがとうございます。
早速見てみます〜
473デフォルトの名無しさん:01/11/09 21:27
>>469 やっぱりそうですよね。ありがとうございまいした。
CUIでなにか作成しながら勉強しようと思うんですが、
どんなのがいいですかねー?
IEのコンポーネントを使わずに.NET Frameworkのライブラリだけでブラウザは作れますか?(技量でなく理論的に)

今までコンポーネント使ってたんですがIEに縛られてる意識が消えずに鬱です・・
>>475
うーん、もはやIEのコンポーネントはテキストボックスなんかと同じ、
標準コンポーネントなんでないかなあ。
HTTPしゃべるのにイチイチsocket叩くコード書きたくないよ...
477255:01/11/10 00:52
>>475
できるんじゃないかな。
でも、HotJavaのような使えないブラウザが今さら必要かい?
>>475
自分でHTMLのレンダリングしたら?
479デフォルトの名無しさん:01/11/10 01:49
streamクラスについて聞きたいのですが、下記のようなコードで
最後の行のReadByte();でなぜか-1が帰ってきてストリームをよんでくれません。
なぜでしょう?宜しくお願いします。
const int size = 10;
byte[] bytes = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10};
int numBytes;
MemoryStream stream = new MemoryStream();
stream.Write( bytes , 0 , size );
numBytes = stream.ReadByte();
>>474
ファイル操作
481デフォルトの名無し:01/11/10 01:56
>>474
スレッドが何個できるか試してみる。
そして結果報告
482デフォルトの名無しさん:01/11/10 02:10
>>479
stream.Position = 0;
483デフォルトの名無しさん:01/11/10 02:13
>>482 有難うございました。なんで気づかないんだ漏れは。逝ってきます。
484初心者:01/11/10 09:57
どこかに、「C#でタブブラウザ作る」時に参考になるもの
ないですか???

全くの初心者なのですが、何か面白そうなものをつくってみたい。。。
単純なものならほんとに貼り付けるだけで出来ると思うが
486デフォルトの名無しさん:01/11/10 21:26
ファイルから文字列を読みたいんですけど
終わりを検知する方法がよくわかりません。

ReadStremにFileStreamを与えてReadLineで読んでるんですけど、
FileStreamのLengthとPositionを比べればOkかと思ったんですけど
はじめの一行を読んだ時点でFileStreamは最後まで読んでしまっているみたいで…。
どうやったらいいでしょう?
487255:01/11/10 21:29
>>486
StreamReaderのことかな?ならば、ReadLineの戻り値がnullがどうかをチェックすればいい。
ReadToEndじゃダメ?
489i486SX 16MHz:01/11/10 23:07
>>487
あ、なんだ、そーゆー事なんすね。WSH系のやり方に慣れてるからてっきりAtEndOfStreamみたいなものがあるんだと勘違いしてました。
でも別プロパティの方が美しいのになぁ…。あとStreamReaderですね、ReadLineの事ばっかり考えてたから間違えました。

>488
あー!「最後まで読む」なのか!!こっちの方が今回の目的に合ってます。ありがとうございます。
490デフォルトの名無しさん:01/11/11 00:38
まったりしていいスレですねヽ(´ー`)ノ
質問なのですが、byte型の配列の内容をString型にしたいのですが、
byte [] bytes ; bytes.ToString();とすると System.Byte[] と表示されてしまいます。
なんかうまい方法はないでしょうか?宜しくお願いします。
>>490 すいません。訂正です。Console.WriteLine ( bytes.ToString() );でコンソールに
System.Byte[] と表示されます。
>>490
System.TextのEncoding.Default.GetString(byte[])でいかがでしょうか。
初代スレが倉庫行きになったね。
http://piza2.2ch.net/tech/kako/977/977112364.html
494デフォルトの名無しさん:01/11/11 02:05
>>492 レスありとうございます。String dataString = Encoding.Default.GetString(bytes);
とかEncoding.GetEncoding(932).GetString(bytes);などで試して見たところ
コンソールで文字化けしてしまいます。Encoding Classのヘルプを
見てみていろいろやってみましたがだめでした。
byte[] data;には1から10までの数字を順番に収めています。どうしたらいいのでしょう。
質問ばかりで申し訳ありません。宜しくお願いします
>>494
> byte[] data;には1から10までの数字を順番に収めています。
それをどういう文字列に変換したいの?
>>495 12345678910という具合に表示できたらと思っています。
497名無しさん♯:01/11/11 02:15
>>496
こんな感じでどうかしら。

using System;
using System.Text;

class Test
{
  public static void Main() {
    byte[] bytes = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

    StringBuilder s = new StringBuilder();

    foreach (byte b in bytes) {
      s.Append(b);
    }

    Console.WriteLine( s.ToString() );
  }
}
498デフォルトの名無しさん:01/11/11 02:24
>>497 #大先生様。できました。ありがとうございました。
StringBuilderですか。調べて見ます。
コードまで頂き感激です。ありがとうございました。

#Encodingはクラスですよね。それにメンバのDefaultはプロパティでGetStringはメソッド。
#文法的に不思議だな〜と思ってしまいました。newしたら抽象クラスだって怒られますし。
#まだまだ知らないことばかり、精進しなければ。ヽ(´ー`)ノ
>>498
Default プロパティは (インスタンス作成された) Encoding クラスが返ってくるので,結果的に
Encoding.Default.GetString(arguments);

Encoding e = Encoding.Default;
e.GetString(arguments);
は(ほぼ)等価なんだよね。

...たぶん。
>>498
Encoding型は抽象クラス。
Encoding.DefaultはEncoding型を返すが、その中身はEncoding型のサブクラス(こちらは抽象クラスにあらず)。
Hoge型のメンバーがHoge型を返すというのに違和感があるかもしれないけど、
staticがついてる場合はそういうことが可能。
>>499 なるほど、そうゆうプロパティの使い方もありなんですね。勉強になります。
有難うございました。
>>500 なるほど〜 奥が深いですね。勉強になります。
503名無しさん♯:01/11/12 00:03
505 :01/11/12 02:36
情報が早い。DirectXスレでも全く話題になってないのに。。。
DirectX スレのヤツラは目を皿のようにして読めない英語を読んでいて
投稿どころでは無い方に一票!
507デフォルトの名無しさん:01/11/12 09:22
FileSystemWatcher は Win98/ME ではサポートされないんですか?
もしそうだとしたらそれはアリなの?
MS が提供するライブラリはどこまで互換性があるの?
509デフォルトの名無しさん:01/11/12 18:18
文字列型にString dText = "100"; のように10進数の数字が格納されている時に
これを16進数にしてコンソールに表示したいと思っているのです
がなかなかうまくいきません。
int i = 100; String sText = i.ToString("X");と同じことをString型で渡された
数字に対してやりたいのですが。皆様よろしくお願います。
>>509
string→int→stringでいいのでは。
型変換はSystem.Convertにて。
>>509
コンソールに表示したいだけなら、stringにわざわざ格納しなくても大丈夫だよ。

int n = 15;
Console.WriteLine("{0:x}", n);
512デフォルトの名無しさん:01/11/12 19:29
>>510-511 レス有難うございました。
String s = "100";i nt i = Convert.ToInt32(s); s = i.ToString("X"); Console.WriteLine( s );
とすることで、解決しました。ありがとうございました。
513デフォルトの名無しさん:01/11/13 01:09
Cのchar型とC#のchar型って同じ?range U+0000 to U+ffff
ってよくわかんないんだけど、、、
>>513
0〜65535。
515デフォルトの名無しさん:01/11/13 01:31
>>514 じゃあC#のushortと同じrangeですね。ありがとうございました。
C#やろうと思うんですけど、通常アプリの場合、Java以上MFC以下になっちゃうんでしょうか?
517デフォルトの名無しさん:01/11/13 03:28
>>516 性能的にはそうなる。
アンセーフで行こう。
アンセーフだと、MFCレベルになりますか?
>>519 ほとんどアンセーフにすればなるが、だったらVC++使え。
521デフォルトの名無しさん:01/11/13 07:36
C#ってインラインアセンブラでガリガリ最適化とか出来るんでしょうか?
>>518
unsafeじゃなくてunmanagedでは?

>>521
無理。高度な最適化はコンパイラじゃなくてランタイム(JITer)のお仕事。
523デフォルトの名無しさん:01/11/13 09:22
>>521
ILを直接書けるかはどうかは分からないけど、
メソッドをunsafeで宣言すればC言語の関数として
中身をかけるみたい。
C#に共用体ってありますか?
525デフォルトの名無しさん:01/11/13 10:42
>>522
この文脈ではアンセーフが正しいんじゃないか?
C#でunmanagedコードは書けないし。

>>519
>>523
アンセーフについて
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=166&forum=7&11
下のほうに書いてある。アンセーフはCの関数ではない。あくまでC#。

>>524
ない。
>>525
> C#でunmanagedコードは書けないし。
unsafeを使ったコードはunmanagedだぞ。
>>526
え、そうなの?メソッドの形はmanagedになる
(イコールC#ではunmanagedコードは書けない)ものだと思ってたけど。
>>526
もしかしてfixedのことを言ってない?
529526:01/11/13 11:44
>>528
そう。fixedとかstackallocのこと。

それと、C#キーワードのunsafeの説明でこんなことが書かれてた。
> To compile unmanaged code you must specify the /unsafe compiler option. Unmanaged code is not verifiable by the Common Language Runtime.
530名無しさん♯:01/11/13 11:56
>>529
ヘルプのその部分は間違っているものだと思われ。
unsafeはあくまでmanaged contextの中にあるものよん。

 http://discuss.develop.com/archives/wa.exe?A2=ind0107D&L=DOTNET&P=R19652
 http://discuss.develop.com/archives/wa.exe?A2=ind0107D&L=DOTNET&D=0&P=29028
531名無しさん♯:01/11/13 12:10
>>524
言語ではサポートされてないけど、ライブラリで似たようなことができるよん。
なので、VB.NETでもOK。

using System;
using System.Runtime.InteropServices;

[ StructLayout(LayoutKind.Explicit) ]
struct Hoge
{
  [ FieldOffset(0) ] public byte B;
  [ FieldOffset(0) ] public int N;
}

class Test
{
  public static void Main() {
    Hoge h = new Hoge();
    h.N = 257;

    Console.WriteLine(h.B);  // 1 が表示される
  }
}
532526:01/11/13 12:46
>>530
> http://discuss.develop.com/archives/wa.exe?A2=ind0107D&L=DOTNET&D=0&P=29028

> Managed Code + Unmanaged Data = unsafe code. See C#.
なるほど、そういうことか。嘘書いてごめん。>>525
533524:01/11/13 14:50
>>531 #さん
ありがとうございます。
ライブラリでこんなことができるなんて不思議ですね...。
534デフォルトの名無しさん:01/11/13 15:47
Cで作ったサーバがchar型のデータをクライアントに投げるのですが
C#のクライントでchar型で受けても大丈夫でしょうか?
この板にchar型がCのchar型と違うっての見たので。不安です。
こうゆう場合sbyteでもらうのがいいのかな。
535534:01/11/13 15:48
>>534 を訂正。板じゃなくてスレですね。2ChもC#も初心者 鬱だ。
>>534
送られてくるのは文字のデータ?
2バイト文字は含んでる?
>>536 2バイト文字含んでます。
538デフォルトの名無しさん:01/11/13 17:01
すいません。高度なスレに、こんな初心者な
質問で申し訳ないんですが、Cでいうプリプロセッサは
ないんでしょうか?
#define hoge hogehoge
コンパイルしてもエラーになってしまいます。
>>537
ならば、byteで受け取って、System.Text.EncodingでStringに復元...だと思う。
>>538
マクロ的な使い方はできない。
こういう使い方だけ。

#define DEBUG
542デフォルトの名無しさん:01/11/13 17:23
>>539 有難うございます。
サーバにデータをアップするときもString -> char array ->byteでいいのですか?
>>542
System.Text.EncodingでString -> byte[]にできるよ。
544デフォルトの名無しさん:01/11/13 17:39
>>543 おお ありがとうございます。激しく感激です。
今探してたところなのですが見つからなくて。(^^;
GetBytes(string);ですね。ありがとうございました。
545538:01/11/13 18:08
>>540
どうもです!
あれまー。使えないんですかー
Cで書くときとか、変更が効くようにやたら
#defineだらけだったんですが・・・・うーん困った。
546デフォルトの名無しさん :01/11/14 01:58
.NETにおいてEJBコンテナのようなものは含まれているのでしょうか?
また、もしないとしたら今後マイクロソフトからそのようなものが
リリースされる予定はあるのかな?
結局C#は、Delphi的Javaだな。俺はVC+.NET使う。
>>546
System.EnterpriseServices
>>546
EJBコンテナのどんな機能を指していますか?それによって回答は
異なると思います。たとえば、以前別スレで言われていましたが、
CMPのような機能をサポートするのはDataSetでしょう。
いつのまにかMDAC2.7日本語版の正式なやつが出てたんだね。
http://www.microsoft.com/japan/developer/data/download.asp
551デフォルトの名無しさん:01/11/14 14:06
タイトルバー以外の部分をドラッグ移動して、
タイトルバーでやっているようにウィンドウを移動させたいのですが、
どのようにすればいいでしょう?

なんか
this.DragDrop += new DragEventHandler ( OnDragEvent);
this.DragOver += new DragEventHandler ( OnDragEvent);
this.DragEnter += new DragEventHandler ( OnDragEvent);
this.DragLeave += new EventHandler ( OnEvent);
this.GiveFeedback += new GiveFeedbackEventHandler ( OnGiveFeedbackEvent);
ここらへんは試してみたのですが、何も引っかからないようですし…。
552デフォルトの名無しさん:01/11/14 14:07
初歩的な質問ですみません。

ソースを複数のファイルに分割してコンパイルした場合、
C# では中間ファイルのようなものはあるのでしょうか?
(例えば、C でいう .obj や、Delphi の .dcu)

それとも、コンパイルするたびに、
毎回ソースから全部コンパイルするのでしょうか??
553Shinsaku Nakagawa:01/11/14 14:35
こんにちは。

私はSharpDevelopというGPLなC#開発環境の日本語化を行っています。

[SharpDevelop日本語版]
http://www.pluto.dti.ne.jp/~shinsaku/sharpdevelop/

ちなみに本家はこちらです。
[SharpDevelop]
http://icsharpcode.net/OpenSource/SD/default.asp

この日本語化を行う過程で、日本語の表示や入力はできるように
なったのですが、ソースエディッタ部分の日本語化対応でどうしても
わからないことがあるので、ご存知の方がいらっしゃいましたら
教えてください。

エディッタ部分はUserControlで実現しているのですが、
on the spotで入力することができず、IMEによる確定前の文字列が
変なところに表示されてしまいます。
確定してしまえば、問題なく表示できるのですが、あまりかっこいい
ものではありません。

使い勝手をよくするためにも、on the spotで入力できるように
したいのですが、どのようにIMEを制御したらよいのでしょうか?

ご存知でしたら教えてください。

SharpDevelopというフリーな開発環境を、日本語環境で使いやすい
ものにするにぜひよろしくお願いします。
554デフォルトの名無しさん:01/11/14 14:42
>>552
/t:moduleでモジュールにしておいて、あとで固めるときに
al.exeを使うか、メインのソースをコンパイルするときに/addmoduleを使う。
厳密にobjと対応するわけではないけどね。
>>550
>>438でガイシュツ。
>>555 ゴメソ
557名無しさん♯:01/11/14 17:38
558デフォルトの名無しさん:01/11/14 19:36
mblenの確認にこんなものを書いてみた。
でもmblenって使い勝手が僅かに微妙。

#include <ctype.h>
#include <stdlib.h>
#include <string.h>

char string[256];
int data1[256];
int nlen;
int mlen;
int i;
char chr[5];

void main()
{
//string[]="abcはABCです。(英文字)\0";
strcpy(string,"abcはABCです。(英文字)\0");
nlen=strlen(string);
printf("文字列:%-s ",string);
printf("strlen:%-d\r\n ",nlen);

//i=0;
for (i=0;i<nlen;i++){
mlen=mblen(&string[i],4);
if(mlen!=-1)strncpy(chr,&string[i],mlen);
else strcpy(chr,"Er\0");
printf("%-d %-s mblen?:%-d\r\n",i,chr,mlen);
if(mlen!=-1)i+=(mlen-1);
}
printf("array total:%-d",i);

return;
}
>>558 誤爆かな?
>>553 愛用させてもらってます。が、あれは昔のマックを彷彿とさせますね。
ウィンであんな現象初めてなんだけど。インライン入力っていわないのかなWinでは。
VSNET持ってなので分からないですが、VS.NETの人は普通に日本語入力できてるの?
560Shinsaku Nakagawa:01/11/15 02:14
>> 559 使ってくださってありがとうございます。VS.NETは大丈夫ですよ。
ちゃんと日本語をごく普通に入力できます。SharpDevelopはあのウィンドウに
文字を表示する際、文字列をハイライトしたりするために、自分でエディタ
部分をUserControlで実装してしまったようです。

/// <summary>
/// This class paints the textarea.
/// </summary>
public class TextAreaPainter : UserControl

それから、おまけ情報ですが、SharpDevelopではオリジナルでも
エディタのフォントを変更できません。本家で現在対応中
というとことですが、現状では日本人に少なからずつらかったので、
とりあえずソースファイルに埋め込まれた
フォントをMSゴシックの12Pに変更しましたので、それなりに
表示されて以前より幸せになっています。よろしければ使って
見て下さい。
http://www.pluto.dti.ne.jp/~shinsaku/sharpdevelop/
561名無しさん♯:01/11/15 05:38
>>553
日本語化ごくろうさまです。ヾ(´ー`)ノ
いつの間にか、IntelliSenseみたいなのまで実装されてたのね。

日本語入力の確定前の文字がどうしても左上に出てしまうみたいね。
手動で表示位置を変えるサンプルを作ってみたので、よろしければ参考にしてちょ。

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

それと、やっぱりこの辺を参考にするしかなさそうね。

 http://msdn.microsoft.com/library/en-us/intl/ime_1mat.asp

ではでは、頑張ってください。
>>553
英語版試してたけど、やはり日本語版がいいですね。
とりあえず、メニューなどの文字、全角カナ希望っす。
SDK使いなので期待しています。
563Shinsaku Nakagawa:01/11/15 08:53
>> 561
ありがとうございます。やっぱりImmGetDefaultIMEWndとか直接呼び出さないと駄目ですか(T-T)
でも、これでIMEを制御できるということが分かっただけでも助かります。これを参考に実装してみます。
ありがとうございました。

>> 562
全角カナがいいですか? オリジナルは1byteのことしか考えてくれてないから、
全角カナを使うと文字列リソースの差替えだけでは済まなくなっちゃう:)
# フォームが狭いから、レイアウトが崩れちゃう
564562:01/11/15 09:40
>>563
resgen StringResources.jp.resources StringResources.jp.resx
して、StringResources.jp.resxの半角カナ→全角カナして
resgen StringResources.jp.resx StringResources.jp.resources
と戻して、install.jp.vbs(ちなみにこれ実行するとノートンの
スクリプト遮断で「警告:悪質なスクリプトを検出しました」と出ちゃう)
で半角カナ追放できました。

半角カナ大嫌いなもので。
って最初っから自分でやれよ>オレ
みんな落ち着け!
まだ機種依存のプログラムを書く段階じゃないだろ!!!
>>565
なぜか笑ってしまったww
ごめんちょ。
567名無しさん♯:01/11/15 13:58
確定前文字のフォントを変えるサンプルも作ってみた。

 http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=19
568名無しさん♯:01/11/15 14:08
VS.NET英語版は来年2/13で確定したみたいね。

 http://msdn.microsoft.com/vstudio/launch/
569名無しさん♯:01/11/15 15:15
C#関連のリンク集

 http://www.cetus-links.org/oo_csharp.html
570Shinsaku Nakagawa:01/11/15 20:07
>> 553
>> 567

サンプルありがとうございます。このサンプルをもとに
SharpDevelopでIMEを制御することによりon the spotが
出来るようになりました!! これで日本語版っぽくなりました。
# ほとんど提示いただいたサンプルのとおりです。ちょこっと色つけましたが。

http://www.pluto.dti.ne.jp/~shinsaku/sharpdevelop/

に2001/11/15-2というバージョンを置いていますので、
よろしければご利用ください。

次はマウスによる文字列選択をまともにしたいと思います。バグっているんで。
# これも1byte限定の処理のところを2byte対応にしないといけないんです。

がんばりますので、これからも応援よろしくお願いします!

このたびはありがとうございました。

ps:
もちろん、.NET Frameworkのクラスライブラリだけで処理できる
方法があれば、そちらも継続して案を募集中です!
571デフォルトの名無しさん:01/11/15 20:34
Graphics オブジェクトがらみがよくわからずに困っています。

GraphicsのDrawLineみたいなメソッドでいろいろと描画して、
それをフォーム上に転送したいのですが、元のGraphicsはOnPaintの引数とかCreateGraphicsメソッドでフォームに関連づいてるものしか得られな
いのでしょうか?
Bitmapには描画系メソッドがないようですし…。
このスレの上の方で誰かが説明してるのはよくわかりませんでした。
>>570
TextAreaMouseHandlerのOnMouseDownが怪しいけど、デバッガがないと辛いな、こりゃ。
573Shinsaku Nakagawa:01/11/15 22:03
>> 572
そうなんです。デバッガがないとつらいです(T-T)
それにいたるところにString.Lengthでアクセスしている
ところがあって、もう大変・・。
一応、本家には2byte文字だとつらいから、
Encoding.GetEncoding().GetByteCount()
を紹介しておきました。対応してくれるかな?

# IMEの件はしばらくこっちで暖めておきます。なかなか本家にこれはねぇ・・。
574デフォルトの名無しさん:01/11/15 22:05
マルチポストごめん
VisualStudio7っていつでるの?これでたらC#はじめようと思うんだけど
575デフォルトの名無しさん:01/11/15 22:21
明日発売の XP に、VS.NET β2 って入るんでしょうか?
(ともに日本語版)
576デフォルトの名無しさん:01/11/15 22:22
575
「入る=インストール可能か」の意です。ゴメソ。
577名無しさん♯:01/11/15 22:23
>>571
GraphicsクラスのFrom〜メソッドからも取れるよん。
ヘルプに簡単なサンプルも載ってるからチェックしてみてちょ。

>>572
>>573
build.bat内のcscのオプションに /debug+ をつければ、SDKのDbgCLR.exeが使えたよん。

>>574
英語版が来年2/13で、日本語版は未定。
578Shinsaku Nakagawa:01/11/15 22:38
>> 577
ん、これはよさげ♪
579デフォルトの名無しさん:01/11/15 22:42
>>577 英語版て日本で買えます?日本語版は今までのデータからみていつでると思いますか?
>>575-576
XP は正式にサポートされてますよ。
というか,ちゃんと動いてるのでご心配なく(w
そうか,明日 XP 発売なのか...
OEM 版使っているので気づかなかったよ。
581デフォルトの名無しさん:01/11/15 22:49
C#のクラスライブラリとMFCの関係を教えてください
>>581 嫌です
>>581
全く関係ありません。

以上
584571:01/11/15 23:09
あぁ! FromXXX 系ってクラスメソッドだったのですね!
てっきりインスタンスのメソッドだと思い込んでいて、眼中にありませんでした。
うまくいきました。ありがとうございます。

ところでやっぱり製品版 VisualStudio が出たら、もう無料でコマンドラインコンパイラ配ったりしないんですよね?買わなきゃ駄目かなぁ?
(って言っても MSDNライブラリが Web だけだと辛すぎるのでやっぱり買うんですけど)
585デフォルトの名無しさん:01/11/15 23:14
>>582
あなたに不幸が訪れますように。

>>583
あなたに幸せが訪れますように
なんか生ぬるいなあ
587デフォルトの名無しさん:01/11/15 23:15
>>584
恒久無償配布らしいですよ
588デフォルトの名無しさん:01/11/15 23:17
なに?MFC全く関係ねぇの?
勘弁してくれよ〜
589デフォルトの名無しさん:01/11/15 23:18
>>581
チンコ吊って詩寝
590名無しさん♯:01/11/15 23:19
>>575
XP、そういえば明日だった。すっかり忘れてた。(藁

インストールトラブルが本当に多いみたいなので、
OSからクリーンインストールした方がよさそうね。

>>579
MSDN会員なら英語版もダウンロードできるはず。
日本語版はやっぱり1ヶ月以上は遅れるんじゃないかしら。

>>584
コンパイラ(cl.exe以外)はV1 Redistにもちゃんと入ってるから大丈夫よん。
将来的には、ほとんどのWindowsマシンにC#コンパイラが入ってるかも。
IISが.NETになるんだからコンパイラもついてないとこまるわな
マイクロソフト,Visual Studio .Net 2003の概要を披露
http://www.zdnet.co.jp/enterprise/0111/15/01111502.html

もう次のバージョンの話題が。。。
593デフォルトの名無しさん:01/11/15 23:37
C言語で作ったコードも当然.NETに参加できるんですよね?
>>593
できません。
595575:01/11/15 23:51
>>580
>>590
XP の CD は今日既に到着していたのですが、
VS.NET β2 入らないとつまらないのでためらってました。
明日入れてみます、ありがとう!!
596デフォルトの名無しさん:01/11/16 00:13
System.Windows.Forms.Application.Run() を使わないで、プログラムを終了させないでおくことってできますか?
プロセスとかスレッドとかのカラミでなんとかなるでしょうか?
>>596
C.NET
598デフォルトの名無しさん:01/11/16 00:31
>>596
Form.ShowDialogとか、そういうことじゃなくて?
http://www.atmarkit.co.jp/fdotnet/special/jsb2_exp/jsb2_exp_01.html
さすが川俣先生。全く雰囲気のつかめないオナーニ記事ですな。
>>599
今まで、Javaのクラス定義でも class XXX { ... }; のように
最後にセミコロン入れてたのか…
さすが、川俣センセ
XP買ってきた。
602596:01/11/16 11:52
>>598

System.Windows.* に依存しない方法でやりたいんです。
なんかないでしょうか?
603デフォルトの名無しさん:01/11/16 13:25
>>602
Windowsサービスにすれば?
>>602
スレッドをグルグル回すのはどう?
つーか、どういうことをやりたいのかよく分からん。
605596:01/11/16 16:41
例えば Win32API だけで作ったウィンドウだけでその先の処理をしたいんです…。

スレッドをぐるぐる回すっていうのは…?
メッセージループは?
>>605
何がやりたいのかぜんぜんわからん。C++でMFXなりWTLなりで
開発すればいいんじゃないの?

それとも、System.Diagnostics.Processと、System.Threading.WaitHandleで
起動したプロセスをただ待ちたいとか言ってるのか?
608デフォルトの名無しさん:01/11/16 22:05
現行のVC++やってれば.NETのC#は簡単にマスターできる?
それとも一からやり直し?
10が仕事で使えるレベルだとしたらMFC知ってる人はどこからスタート?
609デフォルトの名無しさん:01/11/16 22:06
namespace内のクラスとかインターフェイスとかを列挙していく方法ってある?
リフレクション関係にあるかなと思ったんだけどみつかんない。
610609:01/11/16 22:11
あとConsole.Write()ってさ、"{0}"とかできるじゃん?
これの、Cで言うところのsprintfみたいなのってないかな?
611609:01/11/16 22:15
>>608
元VB厨の漏れでも結構楽々使えるから、MFC使えてたんなら8/10くらいからスタートで、すぐにガリガリかけるようになるんじゃない?
612デフォルトの名無しさん:01/11/16 22:21
MFCは関係無いから3/10くらいじゃないか?
MSの現行ツールに慣れてるかどうか、で結構違う。
慣れているならすぐにでもガリガリ行ける。
614名無しさん♯:01/11/17 00:36
>>609
アセンブリ単位でならできなくもないよん。
Assembly.GetTypes()で型の一覧を取って、あとはType.Namespaceを元にグループ化するとか。

>>610
String.Format()でできるよん。
615デフォルトの名無しさん:01/11/17 14:44
Windowsアプリケーションのことで教えてください。
メニューアイテムを選択した時、ステータスバーにその説明を表示しようとしています。
表示の方はSelectイベントでうまくいきましたが、メニューを閉じた時、
ステータスバーにその説明が残ったままになってしまいます。
これをうまく消す方法はないでしょうか。
MenuItemクラスのイベントを見た限り、メニューを閉じた時のイベントが見つかりませんでした。
よろしくお願いします。
616デフォルトの名無しさん:01/11/17 16:38
>>615
Form クラスに MenuComplete イベントがあるので,それを拾えばOK。
617615:01/11/17 16:52
>>616
ありがとうございます!!
Formクラスの方にあるとは盲点でした。
618デフォルトの名無しさん:01/11/17 22:00
C# って累乗の演算子無いんですか?
VB で 2^3 とかやってたんで、演算子ないとすごく不便なんですけど…。
やっぱり power(2,3) の時代に逆戻りしなきゃ駄目?
むしろグローバル関数がない分もっと不便か……。

どこかで.NET言語の演算子一覧を見た気がしたのだけれどどこだったか忘れた。
619デフォルトの名無しさん:01/11/17 22:07
>>618
ないっぽいですね...
Math.Pow 関数を使うしか無いのかな。
以前、officeXPのようなメニューにするにはどうすすべか?
と質問したものですが、結局まだできません。
SharpDevelopを日本語化されている方ならお分かりでしょうか?
教えて組んで申し訳ないのですが一例を。。
それともWinXPではこんなのはやらないでしょうか。。
621Shinsaku Nakagawa:01/11/19 11:37
>> 620
SharpDevelopのソースのRichMenuItem.csがとてもよく分かる
サンプルになるかと。

MenuItem.OnDrawItem()などをオーバーライドして、設定されている
スタイルに応じて自分で描画しています。
スレ違いを覚悟なんだけどさ、.NETについてるSQLServerの
設定ってどうやるの?なんかコマンドラインから使えるような
ツールとかってあるのかな?
>>622
C:\Program Files\Microsoft SQL Server\80\Tools\Binn
624デフォルトの名無しさん:01/11/19 20:49
Assembly.LoadFrom でアセンブリを読み込み,
Activator.CreateInstance でインスタンスを作成したオブジェクトを
動的に解放することはできないのでしょうか?

オブジェクトに null を代入してもアセンブリファイルが使用されたままと言われ,
ファイルの上書きができない...

やりたいこととしては,動的にアセンブリファイルを読み込んでアプリケーション起動中に
アセンブリファイルを解放し,ファイルを上書きしてまた読み込む...
という感じで,アプリケーションの再起動なしにアセンブリの上書きが行いたいのです。
625624:01/11/19 20:50
> アプリケーションの再起動なしにアセンブリの上書き
アセンブリの再読込,のほうが意味が通じやすいかも...
>>623
ありがと。
ちなみに.NETのランタイムにはこのDBエンジンはついてるんだろうか?
ま、自分で入れてみて確かめるか。すまんね。
627名無しさん♯:01/11/19 22:22
>>624
AppDomainを別に作って、そこでアセンブリを読み込ませるしかないみたい。
で、後処理はAppDomainごとUnloadというやり方。

 http://discuss.develop.com/archives/wa.exe?A2=ind0103B&L=DOTNET&D=0&P=87937
>>627
なるほど。
ありがとうございます。試してみます〜
>>621
どうもです。やって見ます
630デフォルトの名無しさん:01/11/20 01:22
アセンブリってなーに?
>>630
アセンブリ言語
アセンブラはアセンブリ言語をマシン語にするソフト
ネタだったらマジレスすまそ
> アセンブラはアセンブリ言語をマシン語にするソフト
アセンブラはアセンブリをアセンブルするソフト
と言いたいところだ。
>>632
アセンブラはアセンブリをアセンブルするアセンブレなアセンブロ
と言いたいところだ。
>>630
.NETでいうところのアセンブリは、中間コードを含んだバイナリユニットのこと。
簡単に言うとDLLとEXE。
635デフォルトの名無しさん:01/11/20 04:06
>>631-634 レスありがとうございます。ネタじゃなかったんですが、
コンパイルエラーでアセンブリファイルを参照してください。と
でるので、C#では別の意味があるんじゃないかと思ってたんです。
ありがとうございました。
636デフォルトの名無しさん:01/11/20 04:16
質問ばかりで申し訳ないのですが、Streamクラスについての質問です
MemoryStream streamA; MemoryStream streamB ;とあった時に
streamAにstreamBの全内容を追加したいのですが、
いったんToArrayメソッドを使ってbyte[]にしてからstreamAのPositionをすすめて
Writeしないといけないんでしょうか?なんかメソッドがあるような気もするのですが、
見つかりません。よろしくお願いします。
StreamWriter#Write(StreamReader#ReadToEnd());
638デフォルトの名無しさん:01/11/20 13:23
>>637 レスありがとうございます。それだと上書きされてしまうようです。
以下のコードではstreamAはstreamBで上書きされているようで、困っています。
byte [] hoge = { 1 , 2 , 3 , 4, 5 };
MemoryStream streamA = new MemoryStream( hoge );
MemoryStream streamB = new MemoryStream( hoge );
StreamWriter writer = new StreamWriter( streamA );
StreamA.Position = streamA.Length ;
StreamReader reader = new StreamReader( streamB );
writer.Write( reader.ReadToEnd() );
よろしくお願いします。
>>636
> streamAのPositionをすすめてWriteしないといけないんでしょうか?
streamAの末尾から1バイトでも書き込もうとすると、例外が出てしまう。。。

未処理の例外 : System.NotSupportedException: メモリ ストリームは展開不可能です。
640639:01/11/20 14:16
streamA.Capacityを広げようとしても、同じ例外。
これはもう、Streamの作り直ししかないのかな?
writer.BaseStream.Seek(0, SeekOrigin.End);
でWriteでは。
MemoryStream streamC = new MemoryStream();
を作って、AとBを両方writer.Write( reader.ReadToEnd() );すれば?
643デフォルトの名無しさん:01/11/20 16:53
ところで、どうしてバイナリデータにReaderを使ってるの?
>>641 >writer.BaseStream.Seek(0, SeekOrigin.End);
StreamA.Position = streamA.Length ; とどっかちがうの?
645デフォルトの名無しさん:01/11/20 18:54
WindowsFormsをXPのLook&Feelにすることってできないんでしょうか?
今月出たmsdn magazineを参考にmanifestファイルを作ってみたんですが、
古いスタイルのままでした。
646645:01/11/20 18:56
.manifestの内容も載せておきます。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="x86"
name="MyApp"
type="win32" />
<description>An application that uses the themed ctls.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>
647645:01/11/20 19:01
自己レスです。
TextBoxはうまくいきました。でも、Buttonはだめです。
なんでだろう...。
648名無しさん♯:01/11/20 19:21
ボタンとかはFlatStyle.Systemにしないとだめよん。

あと、devenv.exeにマニフェストを当てると、
フォームデザイナがXPの見た目で編集できるよん。

ちなみに、かちゅ〜しゃにマニフェストを当ててみたら、激しく落ちちゃった。(藁
649デフォルトの名無しさん:01/11/20 19:31
>>639-640 おっしゃるとおりでした。困ったな〜以下コードです。
byte [] hoge = { 1 , 2 , 3 , 4, 5 };
MemoryStream streamA = new MemoryStream( hoge );
MemoryStream streamB = new MemoryStream( hoge );
byte [] tempB = streamB.ToArray();
streamA.Seek(0, SeekOrigin.End);
//stereamA.Positon = steramA.Length;
streamA.Write( tempB , 0 , tempB.Length );
Console.WriteLine( streamA.Length );
>>642 なんだか駄目ですね。以下コードです。
byte [] hoge = { 1 , 2 , 3 , 4, 5 };
MemoryStream streamA = new MemoryStream( hoge );
MemoryStream streamB = new MemoryStream( hoge );
streamA.Positon = 0 ; streamB.Position = 0;
MemoryStream temp = new MemoryStream();
StreamWriter writer = new StreamWriter( temp );
StreamReader reader = new StreamReader( streamA );
writer.Write( reader.ReadToEnd() );
reader = new StreamReader( streamB );
writer.Write( reader.ReadToEnd() );
Console.WriteLine( temp.Length );
>>650 Console.WriteLine( temp.Length ); //表示 : 0
です。
>>643 もしかしてこれが原因なのかしら。
653名無しさん♯:01/11/20 19:53
>>650
こんな感じでどうかしら。

using System;
using System.IO;

class Test
{
  public static void Main() {
    byte[] hoge = new byte[] { 1, 2, 3, 4, 5 };

    using (
      MemoryStream streamA = new MemoryStream(hoge),
      streamB = new MemoryStream(hoge),
      temp = new MemoryStream()
    ) {
      byte[] b = streamA.ToArray();
      temp.Write(b, 0, b.Length);

      b = streamB.ToArray();
      temp.Write(b, 0, b.Length);

      Console.WriteLine(temp.Length);
    }
  }
}
654645:01/11/20 19:59
>>648 ♯さん
バッチリです!!
ありがとうございました。
655デフォルトの名無しさん:01/11/20 20:05
>>653 ありがとうございます。すべてbyte[]にして書き込むですね。
これで解決しました。レスをくださった皆様、本当にありがとうございました。

コードのusing ( ){ }用法なのですが、初めて拝見しました。
よろしければ、簡単な解説いだけないでしょうか?
忘れたけどVBのWithみたいなものかしら?
>>655 調べて見ましたが、using Statementの項目の用法のようですね。
HELP読んでみます。教えて君で申し訳ありませんでした。
>>655
おいおい、>>653って>>642じゃないか。usingにだまされてるだけじゃねーの?
Reader/Writer使おうが、直接writeしようが同じだろ。Streamなんだから。
658645:01/11/20 20:49
>>657
Reader/Writerって、ふつう文字ストリームに使わない?
JAVAの話だけど。
>>657 さん>>650のようにやったけど駄目だったの。
いったんstramAとstramBをbyte[]にして用意したストリームにWrite( byte[] , 0 , Length );
で書き込むのが#さんのコード。
本当はstreamに別のストリームを直接追加したいのよ。
660デフォルトの名無しさん:01/11/20 22:22
日本語環境に英語版J#をインストールする方法
http://www.atmarkit.co.jp/fdotnet/special/jsb3_onjp/jsb3_onjp_01.html
>>645-648
XPのスタイルにするくわしい方法、教えてください。
(って俺クラシックだけど...)
>>661
削除されてる。(w
どういう内容だったの?誰が投稿したの?川俣オヤジ?
>>664
「シアトルからRC3が送られてきた」っていう内容で、詳細なバージョン情報が載ってた。
ただ単に自慢したかったんだろう。(w
>>664
本当にあの板は厨房ばっかりだな。
ここのスレの方が数万倍レベル高いよ。
667デフォルトの名無しさん:01/11/21 16:24
VS.NET にマニフェストを当てて作業してイメージリスト作ると,
マニフェストを当てないアプリケーションでイメージリストの
ストリーム読み込みで例外エラーが発生しちゃいます(w
VS.NET のマニフェストを解除しようと,devenv.exe.manifest を削除すると
今度は VS.NET 上で「例外がスローされました」と出てデザインできない始末ヽ(´ー`)ノ

対処方法とかあるんでしょうかねぇ...?
見つからないのでアプリケーションを一から作り直してる(鬱
668667:01/11/21 16:27
現在,マニフェストを当てた VS.NET ですべてのイメージリストを削除して,
次にマニフェストを解除した VS.NET でイメージリストを作り直すという
強引な作戦を試してみてます(w

成功するかどうかわからんけど...
669667:01/11/21 16:39
3連続カキコスマソ。

あい,成功しました(w
>>668 のようにしてやれば,何とか戻りました。
アプリケーション側にマニフェストを当てるのは全く問題が無いようです。
ただ,VS.NET にマニフェストを当てると >>667 のようになるみたいで。

マニフェストの内容を書き換えることでなんとかなったりするのかしら?
670名無しさん♯:01/11/21 17:53
>>667-669
ありゃ、不具合出まくりですか?ごめんちゃい。
MLに書いてあったこと、そのまま鵜呑みにしちゃったんで...。

もしかしたら、comctl32.dll以外にもバージョン指定が必要なのかも。
%windir%\WinSxSを見てみると、VC++関連のランタイムもあるので。
でも、詳細はちょっとわからないです。
671デフォルトの名無しさん:01/11/21 20:15
んー、困ってます。
BitmapをGraphic.DrawImage()すると、256x256の画像が384x384(くらい)で表示されるの。
旧制VBのScaleModeみたいなものがあるのかな?
DrawImageUnscaled()は引数いじっても変わらないしぃ…謎。

というか転送元の一部を描画するようなオーバーロードが見当たらないのは気のせい?
>>671
> BitmapをGraphic.DrawImage()すると、256x256の画像が384x384(くらい)で表示されるの。
んー、これはソースがないと再現できない。
こちらでは、普通に描画してる限りはそんなことは起きてないよ。

> 旧制VBのScaleModeみたいなものがあるのかな?
> というか転送元の一部を描画するようなオーバーロードが見当たらないのは気のせい?
DrawImage()であるはずだよ。数が多くて迷うけど。
673デフォルトの名無しさん:01/11/21 23:35
「C#」で検索すると#がワイルドカードとして認識されるのは非常に困る・・
674 :01/11/21 23:39
>>673

\でエスケープとかできないかの?
>>673
Googleはかなり前から大丈夫になってるよ。
Csharp
677デフォルトの名無しさん:01/11/22 14:23
質問です。
XMLのツリーをstringで取得する方法について教えてください。
XmlSerializerでクラスのインスタンスをxmlファイルに落とすことは
できたのですが、ファイルに落とさずstringのデータとして取得するためには
どうすればよろしいでしょうか?
よろしくお願いします。
678デフォルトの名無しさん:01/11/22 14:55
System.IO.StringWriter
679デフォルトの名無しさん:01/11/22 15:51
678さん

http://www.microsoft.com/japan/developer/articles/welcome/dsmsdn/xml04162001.asp
の「ステップ 3—XmlTextWriter を使った直列化」
みたいに使うってことでしょうか?

もうちょっと楽にクラスのインスタンスからxmlツリー文字列版を
取得できないものでしょうか?
よろしくお願いします。
680678:01/11/22 16:29
何か教えてもらったらさ、そのことについてのヘルプくらい読もうよ。
using System;
using System.IO;
using System.Xml.Serialization;

public class Hoge {
public string Moge;
public string Hage;
}

class ser {
static void Main() {
Hoge hoge = new Hoge();
hoge.Moge = "MOGE";
hoge.Hage = "HAGE";
XmlSerializer xs = new XmlSerializer(typeof(Hoge));
StringWriter sw = new StringWriter();
xs.Serialize(sw, hoge);
Console.WriteLine(sw.ToString());
}
}
681680:01/11/22 17:22
680さん

すみません。
System.IO.StringWriterについてhelpは見たのですが、
修正しなくても良いところまで手を入れて行き詰まっていました。
TextWriterを変更するだけでよかったのですね。
ありがとうございました。
682デフォルトの名無しさん:01/11/22 19:05
TCP クライアント アプリケーションで,サーバから切断されているかどうかを
判定する方法はあるのでしょうか?
Socket の Connected プロパティを調べてみたのですが...
サーバから切断されても,ずっと True を返してきてしまいます。
Available プロパティも似たようなもの...
683デフォルトの名無しさん:01/11/22 21:22
>>683
Stanley LippmanがC#の本を?
時代なんだねえ。
でも彼は今は、MSのVC++チームなんだよね。
686名無しさん♯:01/11/22 23:52
>>682
Socket.Connectedでは判定できないみたいね。
ここでも同じような症状が報告されてるよん。

 http://discuss.develop.com/archives/wa.exe?A2=ind0102A&L=DOTNET&P=R42205

で、Telnet.NETの作者さんは、リフレクション経由でPoll()を呼び出して判定してるみたい。
アクセス制御を破っての呼び出しなので、かなりの苦肉の策だと思うんだけど...。

 http://discuss.develop.com/archives/wa.exe?A2=ind0106D&L=DOTNET&D=0&m=21549&P=64867

ソースも落とせるし、Telnet.NETを参考にしてみてはどうかしら。

 http://www.treasureonthenet.com/net/v2/projects.asp
>>686
毎度毎度お世話になっています。

ちょっと強引な手になっちゃうんですね(w
一応やり方はあると言うことがわかったので,一安心です。
688682,687:01/11/23 00:18
Pool と Available を組み合わせて使用することで,無事切断判定がでけました。
よかったよかった。
遅ればせながら,♯大先生,感謝ですヽ(´▽`)ノ
689682,687:01/11/23 00:19
× Pool
○ Poll
鬱だ。
690デフォルトの名無しさん:01/11/23 21:57
川俣さん本人が光臨したかも
川俣 晶さんのスレッド
http://pc.2ch.net/test/read.cgi?bbs=prog&key=1004673171
下がりすぎなので、上げるついでに、、ごめんなさい!二度としません。
VB.NETの本が出た。
http://www.ric.co.jp/hp-staff/book/bin/bkpg.cgi?bk=414-3&ct=comp&md=pg&id=0775264689133
内容は「C#プログラミングリファレンス」のVB.NET版だね。
692(*...* ):01/11/25 13:11
M$プログラミング初心者です。

日本語版のマニュアル
をフレームワーク、Studio以外から
何処からかダウソできないでしょうか?
>>692
本を買う
694デフォルトの名無しさん:01/11/25 22:48
初歩の質問で恐縮ですが…
ダイアログで選択した画像ファイルのイメージを
ピクチャーボックスに表示するには
openFileDialog_FileOkメソッドにどういう記述をすれば良いのでしょうか?
695名無しさん♯:01/11/26 00:37
>>694
大まかな流れとしては、

1. OpenFileDialogのFileNameプロパティから選択ファイル名を取り出す。
2. Image.FromFile()メソッドで画像を読み込む。(引数は1.のファイル名)
3. PictureBoxのImageプロパティに、2.で読み込んだイメージを設定する。

こんな感じね。
C#っていいッスねぇ〜。
直感的に組めてしまう・・・
697694:01/11/26 05:24
>>695
ありがとうございます。
色々試したところできました。
698C♭:01/11/26 16:53
調べてみたのですが分からないので教えて下さい。
StreamReader等で、改行を区切りとして文字列を取得する方法は
分かっているのですが(ReadLine)、
改行文字以外の、スペースやタブ等を区切りとして文字列を取得する方法が
分かりません。
現時点では、char毎に、空白文字であるかを調べながら単語を区切っているのですが
何か良い方法があれば教えて下さい。
699デフォルトの名無しさん:01/11/26 16:57
>>698
ReadToEnd で全部読み込んで,string.Split(' '); とか。
タブなら string.Split('\t'); ね。
>>696
直感的に組めてしまう、ってのは諸刃の剣。
VBで書かれた「スパゲッティ」プログラムの多いことといったら...
701C♭:01/11/26 18:28
>>699
一旦、stringにしなければならないんですね。
C++の「cin>>(char)c」のようなものがあればと思っていたのですが、
やはり、無いんですね。
ありがとうございました。
702デフォルトの名無しさん:01/11/27 04:38
SDKのドキュメントみて思ったんだけど、クラスのメンバの変数とメソッドのパラメータは
小文字ではじめてて、クラスのメンバの方にはmとかついてないですよね?
NamingGuidelineをみてもそうやって書いてあるみたいだし。

だったら、どうやってこの二つを区別するんですか?
全く区別がつかないとかなり不便じゃないですか?
例えばメソッドのなかで、メンバ変数に引数を代入するとき名前の衝突に困るし。
むかしJavaスレで...
704デフォルトの名無しさん:01/11/27 12:56
class Sample
{
int width;
void Func(int width)
{
this.width = width;
}
}
705デフォルトの名無しさん:01/11/27 15:40
例外からみなんですけど、
「絶対に try-catch で囲ませるメソッド」とか
「try-catchで囲んでいない場合でもエラー終了しない例外」とかって書けないんでしょうか?
706704じゃないけど:01/11/27 16:07
>>704 は>>702へのレスってことだね。>>702読んでも、意味が分からなかったが
>>704読んで意味わかった(^^; サンクス704さん(笑)
>>705
両方とも無理なはず。
708705:01/11/27 22:32
>>707
そうなんですね…ありがとうございます。

ちょっとC#というより例外の仕組みのある言語全般での事で質問なのですが、
たとえば あるオブジェクトが移動する Move() というメソッドを作るとして、
そのオブジェクトが移動できなかった = 関数が失敗した場合、どういう風に失敗した事を伝えたらいいかな?というのでちょっと悩んでいます。

考えてみたのは
(1) boolな戻り値で成功/失敗を返す
(2) 例外を投げる
(3) 成功/失敗をあらわすEnum値を返す
という3通りなのですが、(1) は True と False どっちが成功なのかわかりづらいし
(2)は万が一 try-catch で囲んでいないとそれだけで落ちるのが痛いなと思っています。(場合によっては Move が失敗しても呼び出し元は関係ない場合があるのでチェックの必要がない場合もあるんです)
どの方法がベストでしょうか?

あと、その気になれば Move を呼び出す側のコードで、それが失敗するかどうかチェックできない事もないのですが
事前にチェックして失敗する場合は回避すべきか、それとも例外/戻り値で判断すべきかでも微妙に悩んでいます。

昔どこかで「エラーが起きる前にチェックできる場合はチェックせよ」というのを読んだ記憶があるのですが
OOPの概念的にはやはりエラーかどうかは当事者…というか当該オブジェクトの仕事のような気がしますし…。

どうしたらよいでしょう?
709デフォルトの名無しさん:01/11/27 23:05
>>708 判断ができない場合は、
戻り値で返す版と、例外を投げる版を両方作っておくのが良い
>>708
失敗する可能性のあるメソッドがあるなら,必然的に try-catch を置くべきではないでしょうか?
たとえばファイルの移動をしたけど失敗,だけど作業が続行されて存在しない
ファイルを開こうとする... などということになったら (+д+)マズー なのではないかな,と。

.NET Framework では,戻り値によるエラーコードより例外を投げる方法を
推奨しているので,例外を投げた方が C# 的 (.NET 的) によろしいのでは
ないのでしょうか?

個人的な意見なのであまり深く考えないでね(w
711名無しさん♯:01/11/27 23:11
>>708
絶対的な回答はないんだけど、

(1)のパターンはいちばん多いと思う。SqlDataReaderのRead()なんかもこのパターンね。
(2)はちょっと厳しすぎると思う。特に、非メモリリソースが絡んだ場合、
きちんとfinallyの処理も必要になるし。
(3)はステータスが3つ以上あるなら、それなりに意味があると思う。DialogResultみたいな感じね。

事前チェックについては、Move()そのものが事前チェックになってるんじゃないかしら。
Move()してみる → trueなら値を取得 みたいな感じで。
712710:01/11/27 23:16
>>711
708 じゃないですが。
なるほど,言われてみればそうですね...
結局漏れも (1) のパターン(失敗したら null を返したり),結構あるし(w
713名無しさん♯:01/11/27 23:23
>>712
漏れはイテレータみたいなのを想定して書いたんだけど、
ファイルの移動みたいな場合だったらそうはいかないかも。

FileクラスのMove()なんかは(2)のパターンね。
714デフォルトの名無しさん:01/11/28 00:37
J#&VisualStudioでJava入門ってあり?
C#覚えるついでにJavaも覚えちゃおうかなとか思うんだけど。
715名無しさん♯:01/11/28 01:26
>>714
それは危険すぎる。(藁
ちゃんとJava2で覚えた方がいいと思うよん。
文法・API・ツールの使い方を含めての「Javaのお勉強」だから。

JDK1.1レベルなら、J#でもそこそこの互換性はあるんだけど、
やっぱり今どきJDK1.1の入門書は使わないと思われ。
716デフォルトの名無しさん:01/11/28 05:04
>>708
例外は致命的なエラーにのみ使う。
(=それが発生したら通常は処理を継続できないようなエラー。)
継続可能なエラーは戻り値に頼る。

ってのがオススメですが。どうでしょう。
理由は、例外って言うものが、基本的にはプログラムのフローを中断する仕組み
だからです。
一方、エラーコードを戻り値で返すというのは、エラー後もプログラムのフロー
中に留まります。

しきい値の置き場が難しいとは思いますが、私の場合例外とエラーリザルトの区
別はこうしています。
(つまり、例にあるMove()の中でも、致命的なエラーで失敗したかどうかによっ
て両方組み合わせて使う、ということです。)
どちらかのみ、という考え方にするとむしろ悩みますよね。
717708:01/11/28 09:42
皆さんの意見が聞けて参考になります。ありがとうございます。

あのあと考えたのですが、関数の戻り値専用のクラスを作るというのもアリだなと。
そうすればメンバー名で 成功/失敗 がちゃんとわかる bool値も持てるし、
それ以外の値(データ)も返すことができるなぁと。( でも C# だと out引数とかあるんですよね、こっちを使う方がいいか…)

時にC#ではキャストを定義することってできないんでしょうか?
色々試したんですけど駄目でした。
以下失敗例
public TargetType operator();
public TargetType this();
public (TargetType) this();

同じかなと思ってC++系のキャストについて調べたんですけど、
C++でもCスタイルキャストって定義/再定義できないんですかね?
718名無しさん♯:01/11/28 10:05
>>717
C#ではこんな感じよん。

  public static explicit operator CastTo(CastFrom obj) {
    return obj.〜;
  }

"explicit" の部分を "implicit" にすれば、
いちいちキャストしなくても暗黙的に変換してくれるよん。
719717:01/11/28 10:23
♯さんいつもありがとうございます。

なるほど、こう書くんですね。
でも static っていう事はオーバーライドはできないんですね。
ベースクラスへのキャストは書きかえられないっと…。
720デフォルトの名無しさん:01/11/28 11:00
くだらない質問ですみませんが、C#のObjectとJ#のjava.lang.Objectってどういう関係になるんですか?
J#を使える環境にないので興味までに。
721デフォルトの名無しさん:01/11/28 11:09
>>716
大体同意だと思う。もっとわかりやすく(?)言えば、「DBC」だね。
例外とは、そのコードが事前条件を満たした状態で呼び出されたにも
かかわらず、事後条件を満たせない状態で終了せざるを得ないときに
投げるもの。例外にするか、エラーコードにするか悩む前に、まず
そのクラスの事前,事後条件と不変表明を考えてみるべし。
Eiffel#マンセー
722名無しさん♯:01/11/28 11:30
>>720
public class Object extends System.Object

だから、equals() - Equals(),finalize() - Finalize(),toString() - ToString() とか
両方とも持ってる。(藁

>>721
「DBC」って、「Design by Contract」のこと?
漏れはぜんぜん実践してないなぁ...。
723720:01/11/28 13:07
#さん、ありがとうございます。

> だから、equals() - Equals(),finalize() - Finalize(),toString() - ToString() とか
> 両方とも持ってる。(藁
うーん、やっぱりそうするしかないのでしょうね。
724デフォルトの名無しさん:01/11/29 00:29
VB.NETの本がさらに1つ出る。
http://www.galliver.co.jp/book/vbnetpe/index.html
つかぬことをお聞きしますが、WinXP+Apatch2_0_28+C#で鯖を立てることは可能でしょうか?
CGIのテスト用に(スキルアップも兼ねて)実験してみたいのです。
なぜにApache!?
>>725
今試してみた。
cgi-bin なフォルダに exe を置けばいいみたい。
っていうか面白いね,これ(w
Console.WriteLine("Content-Type: html/text\n"); を忘れずに。
ついでに。
Environment.GetEnvironmentVariable("QUERY_STRING");
で引数を取得できるみたい。
729デフォルトの名無しさん:01/11/29 18:06
面白いあげ
>>727
細かいツッコミごめん。でも知らない人が勘違いするといけないから・・
html/text じゃなくて text/html だね ъ( ^ー゚)

# あと \n よりは \n\n でもよさげな気もするけど
# これは時と場合によるかもー
>>730
> html/text じゃなくて text/html だね ъ( ^ー゚)
あうちっ。

> # あと \n よりは \n\n でもよさげな気もするけど
WriteLine は \r\n を最後に出力するので,\n だけで ok ですよん。
Write("〜〜\n\r\n"); と同じだと思う。
>>oll
C#ってどこで手に入るの?
開発環境は?
733デフォルトの名無しさん:01/11/29 23:32
古式!!!!
>>731
> > # あと \n よりは \n\n でもよさげな気もするけど
> WriteLine は \r\n を最後に出力するので,\n だけで ok ですよん。

ォゥマイガッ!! まじっすか
知らない人が勘違いしてたー
コード書き直さなきゃ ヽ(´ー`)ノ ウツダ イコウカナ
736デフォルトの名無しさん:01/11/30 14:09
ApacheといえばActive Perlの出番だけど、PerlNETも使ってる人っている?
>>736
最新ベータはRCじゃないと動かない。
鬱だ...。
738デフォルトの名無しさん:01/11/30 15:07
news://msnews.microsoft.com/microsoft.public.objectspaces/

ObjectSpaces Technology Preview bits available

...
Please note that this Technology Preview of the framework runs against the
PDC version of Visual Studio .NET.
.NETでCGIというのも面白いね。
正規表現は使えるし、String.Formatもあるし。
740デフォルトの名無しさん:01/12/01 12:50
マルチスレッド環境において、C# の Singleton は、インスタンス生成メソッドを lock (だっけ)メソッドにしておく必要がありますか?
もしくは static なインスタンス保持変数に = new Singleton(); だけでも OK ですか?
741名無しさん♯:01/12/01 15:44
>>740
> インスタンス生成メソッドを lock (だっけ)メソッドにしておく必要がありますか?

もちろんあるよん。このへんはJavaと同じね。

> もしくは static なインスタンス保持変数に = new Singleton(); だけでも OK ですか?

クラスにbeforefieldinitがついてればおそらくOK。

それでも不安な場合は、staticコンストラクタに [ MethodImpl(MethodImplOptions.Synchronized) ]
をつけておくのも手。

このへんの議論はMonoのMLでもされてるので参考にしてちょ。

 http://lists.ximian.com/archives/public/mono-list/2001-October/001771.html
742デフォルトの名無しさん:01/12/01 21:13
.NET Frameworkを使ってXMLをやるサンプルとかどっかにありませんか。日本語で。
743740:01/12/01 21:46
♯さんありがとう。
色々方法があるんですね。

で、コンストラクタと初期化子に関する基本的な質問なのですが、
メンバーに初期化子をつけないで、ディフォルトコンストラクタ以外で初期化すると、null で上書きされるようなのですが、初期化の順番を指定する方法は無いでしょうか?
そのフィールドはディフォルトコンストラクタが呼ばれたときは null でいいんだけど、オーバーライドしたコンストラクタが呼ばれたときだけ初期化したいんです。
744743:01/12/01 21:47
読み返して気づきました。
ディフォルトコンストラクタで明示的に null 代入すればいいんだ。失礼しました。
745744:01/12/01 22:09
そうじゃなかったらしい…。
やっぱり null になっちゃった…何故?
746745:01/12/01 22:11
書き間違いだった…。コンストラクタ内で同名の変数宣言してた…
宇都田 篠夫…
>>742
「XMLをやる」って日本語はちょっとどうかと思うが・・・。

C#相談室の初代スレのほうでXMLを使ったプログラムのサンプルいくつか出てたと思われ。
あとはGoogleで System.XML C# とかそういうキーワードで検索して見れ。
748デフォルトの名無しさん:01/12/02 00:20
panel にコントロールを追加するにはどうすればいいんでしょうか?
>>748
panel.Controls.Add()
panel.Controls.AddRange()
750748:01/12/02 04:29
>>749
あ、フォームと同じか、ありがとーう。

追加質問ですが、
二つ並んでる PictureBox があって、それぞれ MouseMove イベントを処理してるんですが、片方のボックス上でクリックしながらもう片方に移動すると、元の方の MouseMove が発生しつづけるだけでなく、新しく移動した方の MouseMove が発生しません。
どうにかして元の MouseMove を切って、現在の方の MouseMove を発生させる方法はないでしょうか?
751デフォルトの名無しさん:01/12/02 12:06
>>750
あんまりGUIプログラム試したことないから自信ないけど、
ドラッグ&ドロップがらみのイベントを処理しなきゃいいんじゃないかな。
DragEnter, DragLeave, DragOver, DragDrop あたりを調べれ。
752750:01/12/02 15:21
>>751
あ、なるほどー、そう言えばこれはドラッグ&ドロップ時の動きですねー。
するどいなー、ありがとうございます。

何気に軽量コンポーネント化でごまかしてる最中なんですが、
ディフォルトの Paint イベントを無効にする方法ってないでしょうか?
Panel なんですけど、Paint イベント時に Bitmap を DrawImage してるんですが、どうも背景色で塗りつぶしが入るらしく、異様にちらつくんです。
>>752
サブクラス化して,OnPaint をオーバーライドしてなにも呼び出さないとか。
動くかどうかは知らない。
>>752
SetStyle
755752:01/12/02 16:39
>>753
オーバーライドした OnPaint 内で処理してみましたが、元と同じでした。

>>754
というのは何のメソッドですか?

で、実は解決したのですが、継承元を Panel から PictureBox に変えただけで全てがうまくいきました。
756753:01/12/02 16:57
>>755
ありゃ,同じでしたか... ごめんなさい。
757デフォルトの名無しさん:01/12/02 17:10
Visual C#.Net β2使ってForm1からForm2を呼び出す方法が分かりません。
Application.Run(new Form2());ではダメみたいです。

Application.RunDialogかForm.ShowDialogを使えと言われるのですけど、
Application.RunDialogはアクセスできない保護レベルと言われるし、
System.Windows.Forms.Form.にはShowDialogが無いみたいです。

要はvbでのForm2.Show vbModalと同じ様な事をしたいのです。
758デフォルトの名無しさん:01/12/02 17:11
C#がJavaより優れてる点ってなんすか?
>>757
Form2 form = new Form2();
form.Show();
です。
作ったフォームはクラスなので,インスタンスを作成するべし。
あ,モーダルなら
form.ShowDialog();
かな。
Form2 のボタンの DialogResult プロパティに値を入れておけば,
ShowDialog の戻り値にその値が入ります。
761デフォルトの名無しさん:01/12/02 17:50
>>759 >>760
ダイアログを表示する事ができました。ありがとうございます。
今更知ったのですけど、(new Form2).ShowDialog();でも良いみたいでした。
762デフォルトの名無しさん:01/12/02 17:54
>>761
(new Form2()).ShowDialog();の間違い。
>>758
バックについてるのが 惨 じゃなくて M$。
764755:01/12/02 20:18
>>753
いえいえ、いろいろ試してみるのも勉強になりますので、ありがとうございました。

>>758
実績以外の全てだゴラァ!! とか言うとまた宗教戦争になるのかな?
Rubyマンセー!!




                    とか言ってみる。
766デフォルトの名無しさん:01/12/03 11:03
>>765
Rubyにはインデクサやアトリビュートが無いね。(プ
>>768
ワラタ
770デフォルトの名無しさん:01/12/04 00:06
VS.NETでC#使うとき、皆さんどうやってメソッドを追加してますか?
手書きと、クラスビューからメソッドの追加と、ハンドラの自動追加のほか
何か便利な方法ありますか?
というか、どうするのがVS.NETの流儀に従ったメソッド追加法なのでしょうか?
>>770
私は通常メソッドは手書き、イベントハンドラはプロパティウィンドウのイベントの所から追加しますね。
なんでメソッドの追加方法が気になったのでしょう?なんか不便な点とかありましたか?

私は旧VB厨だったので、はじめのうちはテキストエディタの上の方の右側の部分のハンドラ選ぶ部分で、まだ作ってないハンドラが選べないのが辛かったです。
ま、複数イベント単一ハンドラの為には仕方がないんでしょうけど。
(それよりも *EventArgs にどんなメンバーがあるか覚えなければいけない方が辛いですね)
772デフォルトの名無しさん:01/12/04 09:49
質問です。
ファイルへの出力を「FileStream」と「BinaryWriter」を使って行っているのですが、
最後まで書き込むことができません。
作成するファイルのサイズは数MB程度です。
コンソールのみで行うと上手く行くのですが、GUIを使うプログラムでは
失敗してしまいます。
一応、try{}で囲んではあるのですが、例外処理は行われません。
上の現象について、何か分かる方、教えて下さい。
>>772
最後にFlush()ではどう?
774デフォルトの名無しさん:01/12/04 11:40
>>772

using(FileStream fstream = new FileStream("File Name")
{
// ファイルへの書き込み
}
// using ブロックを抜けたときにファイルにフラッシュされる。
775デフォルトの名無しさん:01/12/04 12:00
正確には、usingステートメントはこう展開される。
FileStream fstream;
try {
 fstream = new FileStream("File Name");
 ...
} finally {
 ((IDisposable)fstream).Dispose();
}
で、Disposeメソッドの中でFlushが呼ばれる。
AxSHDocVw.dllを作ろうと思って
aximp C:\WINDOWS\system32\SHDocVw.dll を実行したのですが、
「AxImp Error: 出力ファイルC:\WINDOWS\system32\SHDocVw.dllへの書き込みエラーです。」と表示されて失敗します。

何か特別な設定が必要なのでしょうか;;WindowsXPproとSDKベータ2です。
>>776
C:\WINDOWS\system32で実行してない?
778776:01/12/04 14:47
一度cdコマンドで C:\WINDOWS\system32に移動してから実行してみました。
C:\WINDOWS\system32>aximp SHDocVw.dll

それでも出来なかったのでSHDocVw自体を他の場所(デスクトップ、マイドキュメント)にコピーして試したのですが、
やはり同じエラーが発生しました・・。
>>778
C:\WINDOWS\system32以外の場所からフルパス指定
aximp C:\WINDOWS\system32\shdocvw.dll
でどう?
780776:01/12/04 15:06
ご指示のとおり、C:\Documents and Settings\hogeから実行したらAxSHDocVwが出来ました。
場所だけで全く変わってしまうんですね。
勉強になりました。どうもありがとうございました。(_ _)
781772:01/12/04 16:41
>>773
>>774
>>775
Flush()とusing(...){}の双方を試しましたが上手く行きました。
ありがとうございました。
ファイルへの出力は、デストラクタが呼び出される際、
バッファの内容が自動的にフラッシュされるものと思っていたので、
敢えてFlush()と明示しなければならないのは予想外でした。
なんか不便なような…。
782775:01/12/04 20:03
>>781
>敢えてFlush()と明示しなければならないのは予想外でした。
あえてFlush()はしなくてもいい。だが、Dispose、またはCloseは
しなきゃだめ。これを.NET FrameworkのDisposableパターンという。
CloseはDisposeを呼び、DisposeはFlushを呼んでいる。
783デフォルトの名無しさん:01/12/04 22:05
ある特定の画像だけ Graphics.FromImage() をすると OutOfMemoryException が投げられてくるんですけど何故でしょう?
4755 バイトの透過GIF なんですけど…
これよりずっと大きな画像でも出ない状況でこれだけ……。

って Graphics を作るとき、α値のある画像って何らかのリソースを大量に消耗するのかなぁ?
784デフォルトの名無しさん:01/12/04 22:29
>>781

GCを持ってる言語では、オブジェクトが破棄されるタイミングは分からないからデストラクタには頼れない。

C#では構文的にはデストラクタを定義できるけど、実際にできるものは
C++のデストラクタよりも、Javaのファイナライザに近いものだと思ったほうがいい。
(というか、デストラクタは内部的には Finalize() メソッド扱いされる。)

で、ファイナライザの起動までリソースを開放しないのは勿体無いし、
大体、ファイナライザは呼ばれる保証がない(プログラム終了時にはファイナライザは呼ばれない)から、
Disposable パターンを使わないといけない。

>>782
CloseがDisposeを呼んでるんじゃなくて、DisposeがCloseを呼んでるんじゃないか?
785デフォルトの名無しさん:01/12/04 22:32
>>783
そもそもGIFは無圧縮GIFしか読めないとかそういう制限ってなかったっけ?
Uni$ysのせいで。

透過PNGに変えてみれ。
786デフォルトの名無しさん:01/12/04 22:34
>透過PNGに変えてみれ。
これもAppleが特許握ってなかったっけ?
787775:01/12/04 23:16
>>784
うーん、確かに。FileStream#Closeは、内部でFileStream#Dispose(bool)を
呼んでいる。が、Stream#Closeは何もしてなくて、Stream#DisposeはStream#Closeを
呼んでるな。うーん。でもStream.Disposeは結局何もしないから、やっぱ内容としては
CloseがDisposeを呼ぶで正しいんじゃないか?わからん(w
788784:01/12/04 23:30
>>787
おおっ、Dispose(bool)なんてもんがあったのか・・・。
でも、それって IDisposable インターフェースの Dispose じゃないし、
Dispose が Close を呼ぶってののほうが正しいと思われ。

Dispose() → Close() → Dispose(bool)

の順で呼ばれる。
Close()は仮想関数のだから、
Stream#Dispose から呼ばれるのは結局 FileStream#Cloes になってるはず。

で、実際リソースの開放を行ってるのは Dispose(bool) なんだけど、
この Dispose(bool) は protected だから直には呼べない。
789デフォルトの名無しさん:01/12/05 00:48
>>771
どうもありがとう。これですっきり手書きできます。

どうして気になったのかというと、
ほとんど手書きVC++厨でしたので、
はて、ぷろぱてぃーとは何ぞ?というような状態でして、
VBライクな開発環境では、皮は環境が作ってくれるので、
きっと便利なメソッド追加方法があるのでしょう。
と思った次第でありまする。
790787:01/12/05 10:21
>>788
そうでした。ようやくわかった。

ちなみに、Dispose(bool)は、Finalizeから呼ばれたのか(Dispose(false))、
Disposeが呼ばれたのか(Dispose(true))判別するためにあるみたい。
791デフォルトの名無しさん:01/12/05 15:26
GC には イベントとかデリゲイトとかないみたいなんですけど、
GC が行われた事を感知する方法ってないでしょうか?
>>791
プロファイラ...
ttp://msdn.microsoft.com/msdnmag/issues/01/12/Hood/Hood0112.asp
ttp://msdn.microsoft.com/msdnmag/issues/01/11/NetProf/NetProf.asp

または、WeakReferenceなんてどう?
using System;
using System.Threading;

class c {
 static void Main() {
  object o = new object();
 
  WeakReference wr = new WeakReference(o);
 
  Thread t = new Thread(new ThreadStart(Week));
 
  t.Start();

  o = null;

  while (wr.Target != null) {
   Thread.Sleep(500);
   Console.Write(".");
  }
  Console.WriteLine("\r\nGCed.");
 }

 static void Week() {
  Console.WriteLine("Now, GC.");
  Console.ReadLine();
  GC.Collect();
 }
}
793791:01/12/05 19:51
>>792
情報ありがとやんす。
プロファイラ…さっぱりわからないです。
何かとっかかりになる部分ってないでしょうかね?

弱参照ですが、 Flyweight + 弱参照 & GCで要らない弱参照破棄で
完璧に効率的な Flyweight を作ろうとしたのに GC が感知できない〜〜!!
って所で質問だったので………
>>793
*gc-hook*
795名無しさん♯:01/12/05 20:07
>>793
C:\Program Files\Microsoft.NET\FrameworkSDK\Tool Developers Guide\docsの
Profiling.docなんかはどうかしら。
796デフォルトの名無しさん:01/12/05 21:30
[STAThread]について、
(1)これは何をするものなのか?
(2)ほかにも[]で囲まれる記述があるのか?
を調べたいのですが、何を調べればよいかご存じないですか?

STAThreadAttributeのヘルプは出てくるのですが、
[STAThread]がどういう関係にあるのかよくわからないのです。
797デフォルトの名無しさん:01/12/05 23:26
>>796
それは Attribute って機能。

[STAThread] と [STAThreadAttribute] は同義語。

他の Attribute にどんなのがあるのか調べたかったら、System.Attribute クラスのサブクラス調べれ。
例えば、Conditional とか調べてみると Attribute に興味惹かれると思われ。
798792:01/12/06 09:22
>>793
え?それならFinalizeで事足りるんじゃないの?
799デフォルトの名無しさん:01/12/06 10:01
正直 struct ってどうよ?
わりとプリミティヴに近いデータを扱うにはいいかなとか思ったんだが、
インターフェイスを介して扱った途端、まるでクラスのように振舞いやがった(代入演算子が)

どういう場面が struct の使いどころだと思う?
800800:01/12/06 10:01
今だ!800げっと!!
801デフォルトの名無しさん:01/12/06 10:49
>>798
Finalise って、プログラム終了時に呼ばれないから、それがまずいんじゃないの?

>>799
クラスみたいに振舞ってもいいじゃん。
問題は値型か参照型かの違いなんだし。

structを使うのは、
データ構造が単純で、値渡ししたほうが効率がいいときで、
継承を使わないときでいいんじゃないか。

インターフェース解して扱うときってどうしてるんだろ。
Boxingされてるのかな?
もちろん。interfaceは参照型だから、Boxされる。
803799:01/12/06 12:03
>>801
あぁ…そういう理由があったのか…。

つーか漏れは参照をコピーしたいんじゃなくて中身をコピーしたかったんだが
Clonable インターフェイスみたいなモノはないんだろうか?
>>803
ヘルプ引きなよ(;´Д`)
805803じゃないですけど:01/12/06 12:10
英語サッパリなんですよね(;;´д`)
読める人が羨ましぃょぅ。
structは値型だから代入すれば値がコピーされるよ。
インターフェイスをコピーするなんてのは意味ないしね。
807803:01/12/06 12:47
>>804
今手元にヘルプがない。 MSDN のサイトはみたけどそれらしいネームスペースなかったし。

>>806
で、struct じゃあ役不足だからクラスに戻したんだけど、
標準的なコピー方法が見つからない…
System.IClonable

shallow copyだけでいいなら、MemberwiseCloneを呼べばいいだけ。
809807:01/12/06 19:21
>>808
なんと System 直下でしたか!!
Serializable とか奥深くにあったから Clonable もどっか固有の名前空間あるのかと思ってしまった。
ありがとーございます。
810名無しさん♯:01/12/06 21:34
もうすぐね。ヽ(´ー`)ノ

 http://wininformant.com/Articles/Index.cfm?ArticleID=23397
>>811
「ドットネット」って、カタカナはやめれ。(w
814デフォルトの名無しさん:01/12/07 00:29
>>797
ありがとう。しらべてみるよ。
815デフォルトの名無しさん:01/12/07 11:39
自動的にダブルディスパッチしたいんですけど、やっぱり無理でしょうか?

using System;

public interface IHogeHoge
{
    void Do ( IFoo Operator);
}

public class CHogeHoge : IHogeHoge
{
    public void Do( IFoo foo)
    {
        Console.Write ("あぁやっぱりこっちか…");
    }
    public void Do( CFoo foo)
    {
        Console.Write ("なんでこっちが呼ばれないの??");
    }
}

public interface IFoo
{
    void Gonyo ( IHogeHoge o);
}

public class CFoo : IFoo
{
    public void Gonyo ( IHogeHoge o)
    {
        // やっぱり o をキャストしなきゃ駄目?
        o.Do(this);
    }
}

public class Program
{
    public static void Main()
    {
        CFoo CFooInstance = new CFoo();
        CFooInstance.Gonyo( new CHogeHoge());
    }
}
WindowsのC(とかほかのやつも)開発ソフトってサクサク動くのでしょうか?
Linuxとかと比べて。
817デフォルトの名無しさん:01/12/07 19:59
>>816
統合環境がってこと?
818デフォルトの名無しさん:01/12/07 21:34
Insider .NETで紹介されてたこれ↓
http://gotdotnet.com/terrarium/

よく読んだら
Make sure you have at least the PDC build of the .NET Frameworks installed.
だってよ〜

できねーもん紹介すんなよ・・・鬱だ詩嚢
819809:01/12/07 22:23
え!ICloneable (綴り間違えてた…鬱……)
って Clone() 自分で実装するの??
(MemberwiseClone() + 参照を適当に処理する? )
というか Clone の戻り値は object なの?クライアントコードでキャストしろと?
820デフォルトの名無しさん:01/12/07 23:43
C#入門
第17回 処理を委譲するdelegate
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_017/csharp_abc01.html

サンプルはすべてDOS窓。
delegateが何のために導入されたのか、
どのような局面で使うと有効なのかについて
言及がないのが珠に瑕(藁
821デフォルトの名無しさん:01/12/09 14:28
C#によるマルチスレッドの簡単なサンプルをキボンヌ!!
822デフォルトの名無しさん:01/12/09 14:51
質問なのですが、Application.Run() にフックをかけたいんですけど、
なにか簡単な方法はありますか?
Application.Idle はメッセージが送られた場合のみしか実行されない様なのですが、
ウィンドウプロシージャのメッセージループのたびに処理したいのです。
何か方法をご存知の方いらっしゃいましたらよろしくお願いいたします。
>>822
メインフォームのWndProc()に処理をはさむ。
825822:01/12/09 16:03
>>823
お返事ありがとうございます。
Form を継承したフォームで、 WndProc をオーバーライドして、必要な処理 & base.WndProc() って事ですね?
なるほど〜〜です。ありがとうございました。
826825:01/12/09 16:13
やってみたんですけど、イメージしてたのとちょっと違うんです。
やっぱり WndProc はメッセージが送られてこないと動かないんですよね。
それより前の段階のメッセージループ?の所で処理したいんです。
ちょっと古い Win32 の本からの引用ですが

while( GetMessage( &msg, (HWND)NULL, 0, 0))
{
TranslateMessage( &msg);
DispatchMessage( &msg);
// ここで処理したい
}

っていう感じなんですけど、何か方法はありますでしょうか??
827名無しさん♯:01/12/09 17:23
>>826
Application.AddMessageFilter()でどうかしら?
828826:01/12/09 18:51
♯さんお返事ありがとうございます。

AddMessageFilter を試してみました。でも私の思っている動作ではありませんでした。
ここまでやってみてはじめて気がついたのですが、
わたしが >>826 で書いた Win32 のメッセージループの API
GetMessage(), TranslateMessage(), DispatchMessage()
って、呼んだら新しいメッセージが来るまで処理を返さないんでしょうか?

だとしたら別のアプローチをしないといけないんですが…。
たとえば別のプログラムで、フォームとは関係ない処理が走っていて、
ポーリングして終了を感知したい場合
(こっちのプログラムにウィンドウメッセージが送られてこない場合でも、
その処理が終了する場合がある)
などは、このようなやり方ではできないんでしょうか?
そういう時はAPIならPeekMessage()とか使うのかね。
スレッド分けしたら?
830名無しさん♯:01/12/09 19:35
>>828
> GetMessage(), TranslateMessage(), DispatchMessage()
> って、呼んだら新しいメッセージが来るまで処理を返さないんでしょうか?

GetMessage()は、文字通りメッセージをゲットするのを待ってるよん。(藁

> たとえば別のプログラムで、フォームとは関係ない処理が走っていて、
> ポーリングして終了を感知したい場合

フォームからワーカースレッドを立てるのなんてどうかしら?
ThreadStartをフォーム内のメソッドにすれば、閉じたりするのも簡単になるし。
831828:01/12/09 20:56
お返事ありがとうございます。

>>829
いや、あくまでも Application クラスが内部で何をやっているかの話で、
本当に Windows API で処理しているわけじゃないので…。

>>♯さん
なるほど、別スレッドで処理するのですね。さっそく調べてみます。
ありがとうございました。
>>818
来週の.NET DevConでPDC英語版配るんじゃないかなぁ?推測だけど。
推測の根拠は、Webで配布予定って書いてある、Smart Device Extensionとか
.NET MyServices SDKって、.NET Framework PDC版以上じゃないと動かないから。
テキストボックス内でEnterキーだけを無効にするにはどうしたらいいんでしょうか。
VS.NET 上で /win32res オプションを指定することはできないのでしょうか?
xp style にするために .manifest を同じフォルダに置くのも格好悪いし,
かといって埋め込もうとするとコンパイルした後にリソースエディタ使わないといけないし...

要はコンパイルするだけで exe に manifest を埋め込みたいのですが。
835834:01/12/10 20:35
ちょっと検索してみたのですが,
http://aspn.activestate.com/ASPN/Mail/Message/805889
やっぱりこういう方法になっちゃうのかな...
836名無しさん♯:01/12/10 21:26
>>834
・プロジェクトのプロパティページを開く
・左側のタブで [構成プロパティ]→[デバッグ] を選ぶ
・[開始オプション] の [コマンドライン引数] を設定する

これでどうかしら?
837834:01/12/10 21:33
>>836
う〜ん,これだとアプリケーションに引数を渡すだけで,
コンパイラには渡してくれないみたいです...
>>836
ハァ?
それはデバッグ実行するときのオプションだYO!
839名無しさん♯:01/12/10 21:41
>>837
ごめんちゃい。
ボケててぜんぜん違う回答してた...。

カスタムビルドの方ね。
これは多分手作業じゃないと無理だと思われ。
840834:01/12/10 22:00
>>839
ぐふっ,やっぱりそうですか...

手作業でコンパイルするのも面倒臭いので,諦めて
コンパイル→リソース弄り
することにしますです...
>>833
サブクラス化
Effective C#が出た、
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894714361/ref=sr_aps_d_1_4/250-3163634-7629009
らしい。(藁)

内容はC#でもほぼ真と思われ。
>>842
最近ピアソン・エデュケーションの本ばっかり買ってる…。
ちょっとばかり日本語が変な事が多いのが残念。
でも英語よりは確実に読みやすいし…。

やっぱり日本製のまともなC#本が出るまでにはまだまだまたなきゃいかんのだろうか?(今出てるのって大半「言語仕様紹介/環境紹介」だよね)
はっきり言って現状C#の参考書はみんなJavaだ。
844 :01/12/11 13:36
eの値を小数点以下100桁まで求めよ。
πの値を小数点以下100桁まで求めよ。

教えてください
>>843
RTMまではどこの出版社も大した本が出せないんじゃない?
来年4月以降にドバドバでそうな気がする。もちろん糞本もたくさん
出るだろうね。

みんな、どうやって糞本と良本を見分けてるんだろう?漏れは
筆者/訳者くらいしか術を持ってない。
846843:01/12/11 15:31
>>844
まずは小数点100桁まで扱えるクラスを作る事からはじめましょう。
C#ならオペレーターオーバーロードできるのでJavaで同じ事するときより幸せ〜〜僕幸せうさぎ〜〜〜になれますYO!!

>>845
なるほど〜、よく考えたらまだVS.NET 製品版リリースされてなかったんだよね。
すっかり忘れてた。
漏れは評判の良かった本をちょっと遅れて買うことが多いからなぁ…。
あとは本の表紙、良本かどうかはわからないが、クソ本はオーラが漂ってることが多い。
847 :01/12/12 04:25
C#のAPIリファレンス(C#ではnamespaceでしょうか)をオフラインで,
読みたいのですが,どこかで手に入りませんか?
クラスライブラリ無しでは1行も書けないJAVA厨なんです…
英語でもよいのでお願いします
>>847
SDKについてくるヘルプじゃ不満か?
847 じゃないけど…
>>848
MSDN 以外にヘルプなんてついてくるの??
[スタート]-[プログラム]-[Microsoft .NET Framework SDK]-[Documentation]
851 :01/12/12 13:56
確かにありますね,これで十分です.どうして気づかなかったんだろ.
お騒がせしました〜
852849:01/12/12 14:37
>>848 & 850
あーほんとだー、今まで会社だとMSDNないから辛かったんだよね〜。
ありがと〜う。
unsafeしてもガベージコレクタが勝手に働くんですか?
>>853
ちゃんと知ってるわけじゃないけど、526 で
> unsafeを使ったコードはunmanagedだぞ。
って言ってるから、 unmanaged -管理されない→GCにも引っかからない
んじゃないかなぁ?
855デフォルトの名無しさん:01/12/14 09:56
標準化団体ECMAがC#とCLIを承認
http://www.zdnet.co.jp/news/0112/14/b_1213_01.html
856デフォルトの名無しさん:01/12/14 10:00
>>854
526の続き読めって。
857255:01/12/14 10:48
>>853
unsafe contextでもGCは起こる。
必要に応じてfixed statementを使って、GCでポインタ値が変わるのを防がなければならない。
(これをpinningともいう)
>>854
unsafe != unmanaged
最近このスレ落ち着いてるね。
隔離スレができたせいか。(w
860名無しさん♯:01/12/14 21:51
>>859
正直、RTMが出るまで動くに動けない。(藁
861デフォルトの名無しさん:01/12/14 23:09
ねえ、C#ユニットってのは無いの?
JUnit移植しても良さそうなんだけど車輪の再発明嫌なんだよね。
862名無しさん♯:01/12/14 23:18
>>861
2種類あるよん。どっちもSourceForge。(藁

.NETUnit

 http://dotnetunit.sourceforge.net/

NUnit

 http://nunit.sourceforge.net/
863861:01/12/14 23:36
>>862
ああ、.NET全体がターゲットだったか。
検索しても気づかなかったわけだ
(つーかはじめにSourceForge調べなかったのがいけないのか)
ありがとう。
864名無しさん♯:01/12/14 23:45
SharpDevelop .85 が出たよん。ヽ(´ー`)ノ

 http://www.icsharpcode.net/OpenSource/SD/WhatsNew.asp
865デフォルトの名無しさん:01/12/15 11:38
あーあ、速く製品版のVS.NET出ないかな〜。
そーすれば俺みたいな厨房でも理解できるような本とか出るだろうしなぁ。
期待age
もうすぐ1週年。皆で盛大に祝おうじゃないか!
オフ会もありかな?なんちゃってw。
867VC厨:01/12/15 12:28
C#で作ったEXEって.NET Frameworkがないと動かないの?
文法自体はかなりよさげなんだけど動かないんじゃぁちょっと・・・。
>>867
そう、だからWindowsに当たり前のように入っている日を
心待ちにしてるんだよ。
869VC厨:01/12/15 13:11
が〜〜〜ん!
やっぱりそうかぁ、残念。
しばらくは辛抱ですね。
せめてC++にプロパティをくっつけてくれるだけでハッピーなのになぁ。
>>869
__propertyってのがあるよ。
871VC厨:01/12/15 13:30
>>870
__propertyも結局.NET Frameworkを要求するんじゃないでしょうか。
>>871
そうだった。スマソ。
873通りすがり:01/12/15 15:01
C++Builderだったら今でも__property使えるよ
874デフォルトの名無しさん:01/12/15 20:24
WindowsXP用のツールバーのビットマップ集ってどっかにない?
>>874
http://www.developer.perthweb.com.au/
ここの Download から GlyFX Free。
exe でセットアップ形式だけど,中身は全部 .bmp です。
>>875
こういうアイコンって著作権はどうなるのかな?
使うと著作権違反?
>>873
マジですか?それはちょっと魅力的かも。

>>875
874じゃないけどサンクス
でもCToolBar::LoadToolBarが16色にしか対応してないからちょっと面倒だなぁ。
878デフォルトの名無しさん:01/12/16 13:28
879デフォルトの名無しさん:01/12/16 13:35
>>871 VC++6 でも使えるんとちゃう?
__declspec( property( get=get_func_name, put=put_func_name}) ) declarator
>>879
すげぇ!感動した!
ぜんぜんC#の話じゃないけどありがとう!
881名無しさん♯:01/12/17 16:27
AmazonにVS.NETの値段が出ちゃってるんだけど、これっていいのかなぁ...。

 http://www.amazon.com/exec/obidos/tg/sim-explorer/explore-items/-/B00005S812/0/101/1/none/session/ref=pd_sim_d_sw/104-9336229-8979135
882名無しさん♯:01/12/17 16:41
>>866
明日で1周年。ヽ(´ー`)ノ
1年たっても製品が出てないね。(藁

>>878
どうなんだろう...。
やっぱり今週がヤマなのかな?
Microsoft .NET と J2EE テクノロジの比較
http://www.microsoft.com/japan/msdn/net/compare/default.asp

日本語になってVersion 1.5になってます。
884832 :01/12/18 09:24
>>832
予想通り。ヽ(´ー`)ノ
>>884
RC版( ゚д゚)ホスィ…
一周年記念カキコ。
質問です。
System.Collections.CollectionBase って
継承しないで普通に List に委譲するのとどう違うのでしょう?
888名無しさん♯:01/12/18 20:43
1周年。ヽ(´ー`)ノ
でも、漏れはいまだにβ2。(藁
今日、書店に行ったらこの本(というより雑誌)が出てました。

TRY!PC 2002年冬号
「.NETとC#によるWindowsプログラミング入門」
http://www.cqpub.co.jp/try/
890名無しさん♯:01/12/18 21:01
>>887
CollectionBaseは内部でArrayListを持ってるので、
機能的にはあまり変わりはないと思われ。

ただ、CollectionBaseの方が委譲の記述の手間も省けるし、
イベントとかも持ってるので便利ね。
891887:01/12/18 21:17
>>890
なるほど、イベントとかもあるんですね。
これは自力で書くよりも純粋なコレクション作るつもりなら継承した方が楽ですね。
ありがとう。
C#についてというよりは、英語の基礎についてなんですけど、
ここ↓
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpapndx/html/_cor_capitalization_styles.asp
に書いてある

Rarely used, prefer properties

って、「ごくまれに、プロパティより好まれる」っていう意味なんでしょうか?
なんか私、意味取り違えてるような気がしないでもないんですけど…。
893名無しさん♯:01/12/18 21:34
>>890
あ、ちょっと訂正。ごめんちゃい。

> イベントとかも持ってる

delegate / eventのイベントじゃなかった。On〜メソッドの方ね。
役割的にイベントに近いということで。
894名無しさん♯:01/12/18 21:38
>>892
「めったに使われない。プロパティの方が好ましい。」ということよん。

public / protectedのフィールドは他のクラスからアクセスされるから、
それだったらプロパティ経由にしてちょ、ということね。
895 ◆K1SiC5MI :01/12/18 22:30
きょうのDev.Confで、RTM?ゲット。

RoomBは、おおむね当たりでした。
最後のセッションだけA行ったら、外した。時間の無駄だった。。。

みんな、逝った???
896892:01/12/18 22:44
> ♯さん
あ、「プロパティの方が好ましい」なのですね。
なんでわざわざ public のフィールドなんか書いてあるんだろう?
と思ったので、変に期待訳してしまいました。

ありがとうございます。
897あるC♯厨 ◆CSharp82 :01/12/19 20:54
なんか、このスレあんまり盛り上がってないね^^;
あんまりみんなまだ C# 使ってないのかな?
>>897
このスレはある意味、ほんとに使っている人のためのスレだからね。
擁護・アンチ・雑談は別スレで盛り上がってるし。(w

にしても、そのトップリ(・∀・)イイ!
>>897
スゲェトリップ!

ちなみに現在 C# を使って一味違ったチャット作成中でございます。
英語力が皆無な為,適当に説明書いて SourceForge にプロジェクト登録したらあっさり denied されたYO!(鬱)
完成したら紹介する... かも。
>>899
おお〜、かんばれー。
901名無しさん♯:01/12/20 00:46
902名無しさん♯:01/12/20 00:48
903名無しさん♯:01/12/20 00:53
>>895
> RTM?ゲット。

RCだよね...?


>>897
トリップ(・∀・)イイ!
前に比べるとかなりマターリしてるね。RTMも近いのに。(藁


>>899
がんばって公開してちょ。ヽ(´ー`)ノ
904あるC♯厨 ◆CSharp82 :01/12/20 15:21
ところでさ、みんな UML のクラス図で property ってどう書いてる?
明らかに操作なんだけど、get / set みたいなプリフィクスは無いワケで、
書き分けられないよね。
Del や VB の人達はどうやって書いてきたんだろう?

なんか方法あったら教えて欲しいな。
905名無しさん♯:01/12/20 19:10
>>904
クラス図にはプロパティのget,setとか
コンストラクタ、デストラクタは明示的に書かないよね?
書き分けなければならないようなことをするなら
別な名前にしたほうがいいんじゃない?
907あるC♯厨 ◆CSharp82 :01/12/20 21:16
>>906
え、みんな重要なフィールド(クラス図用語のプロパティ)へのアクセッサメソッド書かない?

例えば Singleton だったら getInstance() とか。
あ、これを (C#の) property にしちゃうからいけないのか。
.NET Framework のクラスライブラリってメソッド名が大文字ではじまってるよね。
小文字マンセーな漏れは、小文字にしようかライブラリに合わせようか悩んじゃうよ。
なんか大文字から始まるのってスマートじゃないんだよねぇ。
MSのサイトで今提供されてるIE6用の修正モジュールなんだけど、
VS.NET入れたんでDLしたけどインストールできない・・・・・
「この修正モジュールをインストールするにはInternetExplorerが必要です」って・・・・・
板違いスマソ
910shinsaku:01/12/20 22:36
> 908
Do name methods with PascalCasing as in the following examples.
だって。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpapndx/html/_cor_class_and_class_members.asp

あくまで「ガイドライン」だけど。
911908:01/12/20 23:00
>>910
はぁ・・・・
まぁ・・・慣れだね。
>>889の本買ってきた。
文法からライブラリまで幅広くて、なかなか読みごたえあったよ。
もうすぐ新スレですね...
Part2 の進行も Part1 に比べて早かったような。

>>912
面白そうなので今度買ってみますヽ(´ー`)ノ
>>904
C#のプロパティって、プロパティって機能を持たない言語からも呼び出せるように、
内部的には
void Setプロパティ名(型 value)
型 Getプロパティ名()
ってメソッドになってるはず。
いっそのこと、この名前でUML書いちゃうとかどうかな?
そういうのってさ、豆蔵のセミナーとか行くと教えてもらえるのかな?
ttp://www.mamezou.com/
ShellExecute API みたいなメソッドって .NET Framework には無いんでしょうか?
ありそうな気がするんですが,なかなか見つからないもんで...
917shinsaku:01/12/21 12:17
> 916

こんなんでどうでしょ?
System.Diagnostics.Process.Start("notepad.exe")

こまかいことしたい場合は

using System.Diagnostics;

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "notepad.exe";
psi.Arguments = "sample.cs";
psi.WindowStyle = ProcessWindowStyle.Normal;
Process.Start(psi);

いろいろ書き方はあるみたい
918916:01/12/21 12:34
>>917
excellent!! 探し求めていたのはこれです〜
ありがとうございます。ちゃんと関連づけ起動もできるみたいですね。
イベントハンドラの中で例外がスローされた場合はどこでキャッチすればよいの?
例えば、
private hoge(object sender, EventArgs e)
{
Convert.ToInt16("例外出る");
}
こんな感じで書いた場合...
>>919
ハンドラ内でtry〜catchじゃだめ?
921919:01/12/21 19:10
>>920
うーん。それでもいいんだけど、ハンドラ内でおきた例外を外部にスロー
したいんだよね。
ハンドラ内でtry〜catchっつーのがやはり常套手段なのかなー。
922名無しさん♯:01/12/21 19:13
>>919
Application.ThreadExceptionイベントを使えば拾えなくもないけど...。
漏れも基本的には>>920さんの意見に賛成。
923919:01/12/21 19:35
>>922
ヌーン。やはり>>920さんの方法がベターなんですね。
どうも例外処理関連は不慣れで...
920さん、名無しさん#さん、どうもありがとうございました。
924デフォルトの名無しさん:01/12/22 00:10
>>920-923
え?なんで?イベントを発行した側に戻ってくるんだからそれをcatchすりゃあいいのに。
>>924
ボタンのClickとかの場合は?
926255 ◆.net/HAA :01/12/22 12:32
>>924
マルチキャストを中断させてしまうのは副作用があると思うぞ。
927名無しさん♯:01/12/22 14:06
この本、なかなかよさげ。ヽ(´ー`)ノ

Professional ASP.NET Web Services

 http://www.amazon.com/exec/obidos/ASIN/1861005458/stardevelopercom/002-9497414-7995244

サンプル(Chapter 2)

 http://stardeveloper.com/articles/?id=0018
928名無しさん♯:01/12/22 14:13
.NET関連の洋書、現在のところ122冊...。

 http://www.dotnetbooks.com/listings/books_all.asp
929924:01/12/22 15:51
>>925
そりゃ自分のコードじゃなきゃいじれないんだから、別の方法を考えるしかないやね。

>>926
中断するかどうかは実装依存では?中断するっていう選択肢もないとは言えないでしょ。
930デフォルトの名無しさん:01/12/22 15:53
>>927

-1。wroxの本は著者が増えれば増えるほど質が下がるので。編集してんのか?って感じ。
もちろんこれはまだ読んでないけどね。
>>909
遅レススマソ。
β版に入ってるIE6はβ版だから普通のを入れ直せばいいかも。
932初心者もどき:01/12/22 17:16
>927,930

「Professional ASP.NET」は、よくまとまってる。今でも参考にします。

「Professional Web Service」は、Java系など、いくつか他の言語での実装方法とかをあっさり
紹介してあるだけで、一番知りたかったinteropに関しては全く記述無し。。。

にしても、wroxの本って、最近めっちゃくちゃtitle増えて、正直どれを買ったらいいのか
悩む。。。
933名無しさん♯:01/12/22 17:30
>>932
そうなんだ...。
サンプルを見た感じではよさげに見えたんだけど...。

確かに、著者数が多すぎるから、
章によって質がバラバラで、全体にまとまりがないのかもね。
今すごく期待しているのはこれ。
ttp://www.amazon.com/exec/obidos/ASIN/0735614229/qid=1009009709/sr=2-2/ref=sr_2_11_2/107-1494230-2428566
著者がビッグネームだってだけで期待してるんだけどね。

この本なら日系ピーから訳本がすぐにでそうだし。でも↓コイツが訳すんだよね、きっと...
ttp://www.asahi-net.or.jp/~cj6t-tyt/
サイアクだ...。
>>934
相変わらずものすごい電波ぶりだ。(w
そういえばマ板に豊田スレがないね。
936初心者もどき:01/12/22 20:59
>933
いや、それぞれの言語での実装をさらっとやりたいのなら、いい本かも。
確か、Phythonとか、Perlとかもあったハズ。

俺が知りたかったのは、それぞれのSOAPサーバ間のinteropだったから。

たとえば、was4.0, studioで吐いたwsdlって、そのままだとvs.netで読めないから、
2つのファイルを1つにして、更にいくつかの手直しが必要なんだけど、
そーゆー記述が全く無かったので、俺の期待には応えてくれなかったと。
937名無しさん♯:01/12/24 01:53
938デフォルトの名無しさん:01/12/25 10:50
>>937
Yukonの先出しって意味もあるんだと思うけど、SQL ServerがSOAPをしゃべると
どんなアプリが作りやすくなるんだろう?まさかSQL ServerをDMZに置いたり
しないしな、普通...。
939デフォルトの名無しさん:01/12/25 15:03
>>936
xx_interface.wsdlとxx_implementation.wsdlが分かれているときに、
Web参照できないって問題は、VS.NET RCで解決したみたいね。もちろんimpleに
書いてあるURLはどこかでセットするコードを書かなきゃいけないけど。
940デフォルトの名無しさん:01/12/25 19:53
テキストファイルに格納されている文字列のエンコーディングを知るにはどうしたらいいのでしょうか?
941デフォルトの名無しさん:01/12/26 10:27
>>940
冷たいようだが、確実な方法はない。これは言語とかに関係ない。
分かれ目となる文字コードを必死で探すしかないね。だからテキストベースの
プロトコル(HTTPとか)にはcontent-typeだのcharsetだのの情報が必要なんだよね。
>>940
Perlなんかは文字コード判別らいぶらりとかあるんだけどねぇ。
残念ながら .NET には標準ではそういう機能なかったと思われ。
>>942
誤判定にケチつけられるのが怖いから文字コード判定機能は普通つかない。
ん?JavaにはJISAutoDetectあるな・・・
>>943
そのJavaのJISAutoDetectの判定精度は?
まあ、JISとShift-JISとEUCだけとかならまだ判定楽か。
945943:01/12/26 16:16
>>944
941の言うようにjis/sjis/eucでも100%正しく判定するのは原理的に不可能。
実際はほとんど問題ないぐらい正しく判定してくれるけど。<JISAutoDetect

多言語になったらそりゃ全く不可能だろ。統計情報でも持ち出さないと
946940:01/12/26 16:54
>>941-945
そうですか。やっぱ無理ですか・・・。943でかかれているとおり、JISAutoDetect
のようなものの存在を期待したのです。
情報ありがとうございました。
JISは確実に分かるだろ。
SJISとEUCも半角カナがないとか前提をおけばほぼ可能。
948名無しさん♯:01/12/27 09:33
>>938
SOAPというよりは、まずはSchema対応みたいね。

Managedじゃなくても、ネイティブでDataSet,DataAdapterみたいな
抽象性を利用できる、という感じね。
>>948
うん?Schema対応はすでにSQLXML 2.0からやってたでしょ。3.0で新しく入ったのは
SOAPのみと理解してるけど?

> Managedじゃなくても、ネイティブでDataSet,DataAdapterみたいな
> 抽象性を利用できる、という感じね。

diffgramのこと?それもSQLXML2.0からもうあったよ。もっと言うと、updategramなら
もっと前からあったし。
950名無しさん♯:01/12/27 11:59
>>949
ごめんちゃい。
漏れはRC持ってないので、3.0の機能はまだあまり詳しく見てないです。
951名無しさん♯:01/12/27 12:17
そういえば、SQLXML 3.0って、MSDN Newsgroupでもほとんど話題になってない...。
向こうはもうお休みモードなのかな?
>>950
RCに関係するのは、Managed Providerだけだよ。OLEDBとかSQL Serverへの機能は問題なし。
>>951
そうね。MSDN Downloadからも引けないし。
develop.comのMLも流量だいぶ減ったじゃない?クリスマス休暇ってやつだね、きっと。
953名無しさん♯:01/12/27 20:20
HarnessIt Unit Test Suite (Beta 2)

 ttp://www.unitedbinary.com/HarnessIt.aspx
954名無しさん♯:01/12/27 20:27
>>952
> RCに関係するのは、Managed Providerだけだよ。OLEDBとかSQL Serverへの機能は問題なし。

情報サンクス。明日から休みに入るので、さっそく遊んでみます。

> develop.comのMLも流量だいぶ減ったじゃない?

あそこは平日と休日の差が激しいから。(藁
こんなときにRTMが出たらどうなることやら。(結局、今年は出ないみたいだけど...。)
>>954
>明日から休み

いいなあ...いつから休みなんだか?
956名無しさん♯:01/12/28 02:29
新スレ立てました。

C♯相談室 Part3
http://pc.2ch.net/test/read.cgi/tech/1009473982/
957デフォルトの名無しさん
age