トップページ⇒tech
957コメント326KB

C♯相談室 Part2

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん♯NGNG
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
0159デフォルトの名無しさんNGNG
Ruby最高だね。
0160デフォルトの名無しさんNGNG
おれが見てきたなかでもJava使いの出来る人はSDK使ってたな。
IDEでデバッグしてるような人なんかより、全然早い。
0161デフォルトの名無しさんNGNG
>>158
CUI、GUI派かは、出来る出来ないとは関係ないだろ。

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

>ていうか、なぜC#相談室でその質問?
.NETスレよりも,こちらの方が人が集まっているようでしたので..
でも,予想とはちょっと変わった方々が集まっているようで....
0163名無しさん♯NGNG
>>149 >>156
ここに対処法が載ってるよん。(長いURLでスマソ。)

 http://search.communities.microsoft.com/newsgroups/previewFrame.asp?ICP=msdn&sLCID=US&sgroupURL=microsoft.public.dotnet.languages.vc&sMessageID=%[email protected]%253E
0164デフォルトの名無しさんNGNG
>163
出来ました.なんてお礼を言ってよいのでしょうか.
本当に有難うございます.

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

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

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

でもね、「M$だからダメ〜」とか言って触りもしないで切り捨ててる
自称「プロ」(プ もいるんだよ。ヴァカとしか言いようがないね。
0168デフォルトの名無しさんNGNG
>>167
IGAさんを馬鹿にするのはやめてください
0169デフォルトの名無しさんNGNG
>接続プロトコルとは独立したリモートオブジェクトのアクティベーション
SOAPとかもOKなの?
0170デフォルトの名無しさんNGNG
いつも思うことだが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に感動。
0171デフォルトの名無しさんNGNG
IGAぴょん、バカにすんなよ!
0172デフォルトの名無しさんNGNG
>>171
バカにはしてないよ。それにこの人現場での面倒見は
よさそうじゃん。悪い人じゃなさそうだし。

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

 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日本語版では、やっぱりどうやってもインストールできないみたいね。
0176仕様書無しさんNGNG
結局VC++.NETじゃんか。
0177名無しさん♯NGNG
Tony大先生の登場。(藁

 http://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A2=ind0110b&L=java-com&F=&S=&P=155
0178デフォルトの名無しさんNGNG
既出ネタだが、

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

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

C#の基本的な文法を学ぶだけでも年内が過ごせそうだから、SDKだけを
インストールしたいのですが、SDKだけせんたくできますか?
IE6をIE5.5に戻す方法はありますか?
0180 NGNG
>>179
それってVS.NETベータ2に付いてたやつ?
正式版を上書きすれば解決するかと・・・。
0181 NGNG
>>180はIEのことね。
http://www.microsoft.com/downloads/search.asp?LangID=13&LangDIR=JA
0182あぼーんNGNG
あぼーん
0183あぼーんNGNG
あぼーん
0184デフォルトの名無しさんNGNG
>>183
おまえがうざい!!
それからC#以外の話をするやつもうざい
0185名無しさん♯NGNG
>>184
ごめんちゃい。最近J#の話しかしてません...。
0186デフォルトの名無しさんNGNG
>>185
氏ね!
0187名無しさん♯NGNG
>>186
もう来ません...。
0188名無しさん♯NGNG
>>187
誰だ〜!!こんなこと書いたのは!!ヽ(`Д´)ノ
0189デフォルトの名無しさんNGNG
ニセモノだったのか。ビクーリしたよ。
0190 NGNG
 
0191デフォルトの名無しさんNGNG
>>183-189
なんだか微笑ましいのう。
0192デフォルトの名無しさんNGNG
荒らされてもマターリしてるな(藁
0193166NGNG
>170
敷居が低いのは、いいことじゃん。
楽になるのは大歓迎さ(^◇^)

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

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

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

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

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

 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());
  }
 }
0196デフォルトの名無しさんNGNG
>>195
DllImportでGetSystemMetrics
0197デフォルトの名無しさんNGNG
ウィンドウバーの高さって
SystemInformation.CaptionHeight
のことかな。標準の18だとボーターと合わせてか19になるみたい。
でもこれの必要性が?
0198デフォルトの名無しさんNGNG
C#の登場によって、VBやC++の位置づけはどのように変わるのでしょうか。
019944NGNG
>>196-197
お答え頂き、有難う御座います。
CaptionHeightを取ることで解決しました。

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

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

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

C#はVBとC++の中間、という感じなのかな。
0201名無しさん♯NGNG
亀レス。

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

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

もちろん、VS.NETの方はMSDN会員じゃないと落とせないからね。
それと、.NET Framework RCとVS.NET β2の組み合わせはおそらく無理だと思われ。
0217名無しさん♯NGNG
>>215
それはRCじゃなくてRTMよん。
でも、.NET Framework V1の来月リリースはほぼ間違いなしみたいね。
0218デフォルトの名無しさんNGNG
>>215 #さん
一日も早く.NETしたいのでβ2でやってみようと思います。
ありがとうございました
0219デフォルトの名無しさんNGNG
>>215
その.NET Framework V1かRCって一般人でも落とせるやつですか?
0220デフォルトの名無しさんNGNG
C#でプログラム言語をはじめて学ぶのですが、
.NETベータ2の詳しい操作方法について書かれた本かサイトをご存知ありませんか?
0221デフォルトの名無しさんNGNG
>>220
>>1のリンク見れ
0222デフォルトの名無しさんNGNG
MSDN会員になるのって、お金が必要なの?
無料?
0223デフォルトの名無しさん NGNG
今なら14マンでProfessional会員になれる。
ネタだろうけど一応
0224名無しさん♯NGNG
Microsoft XML Core Services 4.0 RTM

 http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/766/msdncompositedoc.xml
0225デフォルトの名無しさんNGNG
>>224
!!!
着々とWebサービスを構築する基盤が出来てきてるね。
ちなみに是非#さんに聞いてみたいのだけど、
SOAPクライアントを何らかの形でActiveXコントロールとして
実装した製品はあるかな?別にサードパーティでも
βの段階でも構わないのですが。
XMLスレでは見事に無視されましたw
0226デフォルトの名無しさんNGNG
#さんじゃないけど。
MS SOAP Toolkitじゃダメなのかな?
0227名無しさん♯NGNG
>>225
こういうのかな?

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

ちょっと探した感じでは、なかなかないみたいね。
0228デフォルトの名無しさんNGNG
>>226 >>227
ありがとう。
調べた結果報告はXMLスレにしておきますので、
よかったらみにきてください ^o^
0229デフォルトの名無しさんNGNG
オーバーライドするときnewキーワードとvirtual , overrideってどの用に使い分ければいいのでしょう。
C++使ってたのでvirtualの方使いたいのだけど、どうも使うべきじゃないって書いてるところもあるし。
0230デフォルトの名無しさんNGNG
>>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());
 }
}
0231デフォルトの名無しさんNGNG
でさ、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を避ける理由はないね。
0232デフォルトの名無しさんNGNG
newってDelphiでいうreintroduce?(って分かるひといないのかも)
仮想関数を下位クラスで隠蔽する時に使う?
0233デフォルトの名無しさんNGNG
>>230さん。丁寧なレスありがとうございました。よくわかりました。
本当にありがとうございました。
0234デフォルトの名無しさんNGNG
>>231 コンパらが叱ってくれるのは有難いですね。
0235デフォルトの名無しさんNGNG
>>234 コンパらX コンパイラ○ 鬱氏。
0236デフォルトの名無しさんNGNG
C#(・∀・)イイ!! 123.ToString( )(・∀・)イイ!! (・∀・)Let's See Sharp!
0237デフォルトの名無しさんNGNG
http://www.atmarkit.co.jp/fdotnet/opinion/kawamata/2001_10.html
Delギコが生きてたら激怒しそうな内容だな。
0238デフォルトの名無しさんNGNG
>>237 「生きてたら」(笑) やっぱりCUI派の人なんすね。この川俣さん。
0239通りすがりのプログラマNGNG
>>237
「オブジェクト指向との別れ」の理由は納得できるところも少なくないが、
デザパタとかは、どう認識してるのか、聞いてみたい。
0240デフォルトの名無しさんNGNG
いまさらなんですけど、
前回終了時の位置やフォームのサイズを記憶するにはどうすればいいでしょうか?
0241デフォルトの名無しさんNGNG
>>237
要はいわゆるコンポーネント指向ってことか。
センセーショナルに書きゃあいいってもんじゃねーぞ川俣。
0242デフォルトの名無しさんNGNG
>>240
レジストリとかiniファイル。
.NET的にはXMLの方がいいのかな。
0243デフォルトの名無しさんNGNG
ショック! コンストラクタにアクセスコントロールがついてたので、
コンストラクタとわからなかった!詩嚢。
0244デフォルトの名無しさんNGNG
.NET Frameworkにメール関連のAPIってありますか?
0245デフォルトの名無しさんNGNG
>>244
System.Web.Mail
0246244NGNG
>>245
ありがとうございます。
これってCDOとは別物ですか?
0247名無しさん♯NGNG
>>246
内部でCDOを使ってるよん。
0248244NGNG
>>247
ありがとうございます。
そうですか...。CDO以外の実装に期待したんですが...。
0249デフォルトの名無しさんNGNG
メール投げて遊んでみた。簡単なんだね。
悪さはできなかった。(藁
0250デフォルトの名無しさんNGNG
ListViewの詳細表示でカラム部分をクリックした時、
リストをソートしたいのですが、ツールボタンと同じように
分岐というイマイチな方法でないとダメでしょうか?

listView1.ColumnClick += new ColumnClickEventHandler(listView1_ColumnClick);

private void listView1_ColumnClick(object sender, ColumnClickEventArgs e) {
  if (e.Column == 0) {
    // ソート
  }
}
0251デフォルトの名無しさんNGNG
>>242
具体的なサンプルってあります?
0252デフォルトの名無しさんNGNG
基礎的な質問ですが,C#では配列演算子のオーバーロードができなくなってる‥
のでしょうか?
0253デフォルトの名無しさんNGNG
>>252
perlの連想配列みたいなことを配列アクセスでやってたよ。
だからできるんじゃない?
0254デフォルトの名無しさんNGNG
>>253
ありがとうございます.従来のC++のソースを移植しているんですが
なかなか一筋縄にはいきませんね.
0255デフォルトの名無しさんNGNG
C++からですか・・・
内容によっては無理に一対一に対応させるよりも、
やり直したほうが早いかもね。
0256デフォルトの名無しさんNGNG
私もサンプルほしいです。
できればXMLで。
0257名無しさん♯NGNG
>>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
0258名無しさん♯NGNG
ひまだから作ってみた。(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;
■ このスレッドは過去ログ倉庫に格納されています