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

C#相談室

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん♯NGNG
作ってみました。
0002名無しさん@お腹いっぱい。NGNG
早すぎ
思いっきり沈んでから同内容スレが別に立つような気がする
0003名無しさん@お腹いっぱい。NGNG

     〆 ̄TTTTTTTTTTTTTTT7
     | =|  ̄ ̄ ̄┴┴┴ ̄ ̄ ∨
    |=|  ̄ ̄――― ̄    |
     | =| 巛lllllllllllllllii ̄ ̄iillllllllllllll|
     | =|  ___llll  lll___|
    |=\人   o > /   o フ<
    |i⌒i| へ ̄ ̄,  \ ̄ ̄ , .|
    ||  |.|     ̄    \ ̄ |
    ||  ‖  //  (      | ヽ |
    | \| イ_   ^  ̄ ̄   |
     | ≡ ./|  \王I王I王I王I王フ|
    /| =/ |           |
   /  |/ 人    =≡≡=  ノ
― ̄|  \ へ _      イ
   |    \     ̄ ̄ ̄

質問すれば答えがかえってくるのが当たり前か?
バカがっ・・!

世間というものはとどのつまり、なにも肝心なことは
何ひとつ答えてはくれない。

政府の役人ども、不祥事続きの警察、銀行・・
これらが何か肝心な事を答えてくれたか? 答えちゃいないだろうが・・・!
これは企業だから、省庁だからというわけではない個人でもそうだ
大人は質問に答えはしない。それが基本だ。
その基本をはきちがえているから、こんな朽ち果てた場所に来ているのだ
厨房どもめ・・.!
0004名無しさん@お腹いっぱい。NGNG
Can I use C# for win98?
00054NGNG
I don't have win2k.
0006早くもネタスレ化NGNG
>>4
Yes, of course.
0007早くもネタスレ化NGNG
But IE 5.5 and MDAC 2.6 are required.
00084NGNG
>>6
Thank you very much.

I don't have MDCA too.
http://www.microsoft.com/data/download.htm

and C Magazine's CD-ROM include .NET FrameWork.
I will buy a C Maga.
0009早くもネタスレ化NGNG
How about "Learning .NET Programming with C#", published by
Gijutsu-Hyouronsha?

The companion CD-ROM includes .NET SDK beta, also IE and
MDAC.

The price is \1,980. I think pretty reasonable.
00104NGNG
http://dennou.gihyo.co.jp/books/cnet/index.html

I live a rural area, so there isn't big bookstore. ;-)

Thank you nice infomation!
0011名無しさん@お腹いっぱい。NGNG
betaじゃなくなったら話しましょう
0012名無しさん@お腹いっぱい。NGNG
その本買ってインストールしてみました。
IE5.5は前からインストールしていたので、それ以外を
インストールしたのですが、全部で200MBいらないと思
います。

しかし、C#ってメソッドが英大文字で始まるのね。
Java使いから見ると、違和感ありまくりです。

例によって、開発環境にはインストールしない方が吉。
0013名無しさん@お腹いっぱい。NGNG
>>8
poor: not 〜, too.
fair: not 〜, either.
0014たなかNGNG
.NET Framework SDK Beta 1 日本語版

D:\MS_dot_NET\MSDN Online _NET Information_setup.htm

分割ダウンロードの最後にある結合用バッチファイルは間違っている
ので編集してね。Win2000だとOKなのかな?WinNT4.0の場合、次の
とおり。

誤)COPY /Y /B
正)COPY /B
0015名無しさん@お腹いっぱい。NGNG
参考文献としてこんなのはどう?

C# - 自然な前進
ゴミ箱行きの Visual J++ の代わりに、Microsoft が投入する C# とは ?

http://www.ibm.co.jp/developerworks/java/001215/j_jw-csharp.html
0016名無しさん@お腹いっぱい。NGNG
>>4-10
ネット外人やめれ
0017名無しさん@お腹いっぱい。NGNG
>15
あそこからの引用ですか(w
0018名無しさん@お腹いっぱい。NGNG
IBM から引用すると問題でも?
0019名無しさん@お腹いっぱい。NGNG
しかしC#、単純に凄いと思った。
今までJavaやVBを意図的に避けていたので、免疫が無かっただけかも知れんけど。
もうC++勉強するの疲れたので、完全にC#へ移行します。
0020名無しさん@お腹いっぱい。NGNG
C#って無料なの?
パッケージは有料だろうけどコンパイラだけのでフリーのものってないの?
0021名無しさん@お腹いっぱい。NGNG
そのうちgnuで作るだろ
0022名無しさん@お腹いっぱい。NGNG
さすがにgnuで出ることはないだろ。
物が良い悪いとかオープンかとか以前に、MSアレルギーだろう。
0023名無しさん@+*/%-NGNG
現代のC++ にある、テンプレートベースの組み合わせ自由で
記述性の高い環境から、
Class Objectからいくつかの継承階層を経て導出していく
環境への変化は

寧ろ退化とさえ感じる。

0024名無しさん@お腹いっぱい。NGNG
>>23
激しく同意
0025名無しさん@+*/%-NGNG
>もうC++勉強するの疲れたので

クラスライブラリの迷路に疲れた?
大昔のC++の環境であるMFC,MacAppなど複雑怪奇な
クラスライブラリの迷路はおそらく今後の
新設計ライブラリではなくなるとおもう。
QtやGtk--の仕様見た後だとMFCは地獄だね。

逆にC#はその辺はむしろ悪化すると思うのだが。
0026名無しさん@お腹いっぱい。NGNG
MSがハンガリアンやめたらしいのが一番嬉しいにゃー>C#
0027名無しさん@お腹いっぱい。NGNG
23-24
そう思っているかぎり
君らは保守性の低いコードを書きつづけるわけだ。

自由すぎるって結局ダメダメだよね。
0028名無しさん@お腹いっぱい。NGNG
>>27
違うのだ。むしろ、型付けの強い言語で
保守性の高いコードを書くのに、templateは必須なのだ。

それと、インターフェイスの静的バインディングについて考えてみれ。
さらに、templateと継承の使いわけは、「インターフェイス/実装」の関係と
「手続きを共有する関係」の区別にとてもよい。

まーC#はなんだか委譲用のシステムがあるみたいなんで、そっちで
やることにしたのかも知れんけど。
0029名無しさん@お腹いっぱい。NGNG
そうだな。Javaだってそのうち使えるようになるよ。template
0030名無しさん@お腹いっぱい。NGNG
>29
できるの待ってないで委譲でやれって。
コレクションライブラリくらいならそれで十分。
0031名無しさん@お腹いっぱい。NGNG
>>30
ごめん。意味がわからん。どうやってコレクションを委譲で実現す
るのだ?
0032名無しさん@お腹いっぱい。NGNG
結局、C++のクラスライブラリの延長線上にあるもんじゃないの?
0033名無しさん@お腹いっぱい。NGNG
C#は、VCLの考えを、C++に似せてつくってみたらこうなりました。
と言う風にしか見えないんですけど。
JavaやC++と言うよりむしろ、VCL言語(変だけど)と言った方が正しい気がします。
結局はマイクソも、VisualC++のビジュアルでなさ加減は承知していたんでしょう。
欲しい人材、テクは、金で解決。やってくれます。

来世紀も世界標準でありますように ゲイツ
0034名無しサンプリング@48kHzNGNG
>>30
俺もマジで知りたい。上のほうでも同じようなことが書いてあったけど。
0035名無しさん@お腹いっぱい。NGNG
型付けの強い言語、弱い言語というのはどこで判断するんでしょうか?
0036名無しさん@お腹いっぱい。NGNG
みなさん、どんな時にTemplate使いたい?
オレはC++ではあんまりコード書かないんだけど、Templateはユーティリティー
クラスを書くのがダルい時にSTLの使うくらいで、必要にかられた事が無いです。
クラルライブラリ(java.util.Collectionみたいなの)が揃えば良いかなって
思ってるんだけど、ヌルいかな?
なんか>>28の言う事がやたら真実味があるんでその実例みたいなのを知りたいです。
あと、Javacはプリプロセッサを使ってないらしいんでTemplateはまだ当分
先になんじゃないかな。言語拡張したい時にはjavaccを使うと良いですよ。
0037名無しさん@お腹いっぱい。NGNG
>>33
DelphiもC#も作った人が同じなんだから、いやでも似てしまうんでしょ。
0038名無しさん@お腹いっぱい。NGNG
ごめん、めんどくさいので1例だけ。

たとえば、AbstractFactoryパターンとかStrategyパターンとかで、「開発効
率の観点から見るとそのパターンの導入は必要だが、現実問題として動的なバ
インディングは必要ない」ときがある。つまり、プログラミング結果として生
じる機能の柔軟さよりも、モジュールの独立性を優先したいとき。

たとえば、モジュールAが、その機能を実行するのに、モジュールAで公開して
いるIStrategyインターフェイスを実装したクラスを必要とする、とする。

当然、モジュールAのユーザは、モジュールAの機能を利用したいので、モジュー
ルAを利用するためにIStrategyクラスを実装したクラスSomeStrategyを実装す
る。

このとき作られたSomeStrategyは、IStrategyの実装クラスであるがゆえに、
その機能の利用にIStrategyインターフェイスを必要とする。つまり、ヘッダに

class SomeStrategy : public IStrategy {
};

と書かれているということだね。ということは、モジュールAに依存してしまっ
ているということだ。

templateがない場合は、Adaptorパターンを使ってモジュール独立を実現する。
具体的には、実際の機能はSomeStrategyImplementに実装して、SomeStrategy
を「IStrategy を実装し、SomeStrategyImplementを所持して使う」クラスに
書き換えるようにする、ということ。こうすると、SomeStrategyはIStrategy
に依存してしまうが、そのかわり機能そのものはSomeStrategyImplementに分
離されるので、ほかの場所からも使うことができるようになる。

ただ、これはSomeStrategyImplementがコールバックを必要としないことが前
提だ。そうでない場合、コールバックを提供するなんらかの言語機能が必要に
なる。具体的に言えば、弱い型つけ、Mix-in、ブロック(クロージャ)渡しの
どれかなんだけど、どれもぞれぞれ難点がある。

ここでtemplateを使うと、一発でそれぞれのモジュールを独立にできる。もち
ろん、メンバ関数の規約は守られてないとアダプタは必要になるけど。そうやっ
て作られてるのがSTL。アルゴリズムとコンテナが相互にモジュールとして独
立してるから、アルゴリズムだけ使うことも、コンテナだけ使うこともできて、
その際に使わないほうのヘッダのインクルードは必要ない。

templateがない場合、Adaptorパターンで実現することになる。その場合、C++
だと委譲がえらくめんどくさい(=コード量が増えて局所性・再利用性が下が
る)けど、C#ではたしかなんか委譲用のシステムがあったよね? それ使えば
うまく書けんじゃないの、といいたかった。

てなとこでいい?
0039デフォルトの名無さんNGNG
しかし結局templateは単独で実在出来ないモジュールって欠点がついてまわる
.NET構想からは蚊帳の外
0040名無しさん@お腹いっぱい。NGNG
>>Very Thanks!!
0041名無しさん@お腹いっぱい。NGNG
誰か動的templateあればいいのにって言ってたな。
インライン展開も含めて、ダウンロード時(実行前)に展開するの。
Javaのホットスポットコンパイルみたいに。
C#がそこまでやってたら飛びついたな、オレ。
0042デフォルトの名無さんNGNG
>>41 それ特許だしとけ
0043名無しさん@お腹いっぱい。NGNG
>>36
JavaのコレクションはObjectなら何でも受け取っちゃうじゃない。
つまり型がないPerl使ってるようなもの。小っちゃいプログラム
ならそれもいいけど、規模が大きくなるにつれコレクションにも型
が欲しくなる。
0044名無しさん@お腹いっぱい。NGNG
>>42
そうだね。
特許ってどうやってだすの?
0045デフォルトの名無さんNGNG
>>44
http://www.jpo-miti.go.jp/indexj.htm

しかし出願までにしとけよ。出願までならカンパしてもいい。
雑誌にアイデアを纏めて出す方法もあるけど、現実にはそういう雑誌
が無くなってしまったからねえ。
0046名無しさん@お腹いっぱい。NGNG
>>45
BITじゃだめかね?
0047名無しさん@お腹いっぱい。NGNG
>>45
出願までって言うと、具体的にはどんなメリットがあるの?
占有されないこと?
0048デフォルトの名無さんNGNG
>>47 そうです。ソフトウエア特許は取られると凶悪です

#Leeの特許って内容知りたいけど、番号がいまだに判らない
0049名無しさん@お腹いっぱい。NGNG
>>48
でもさ、>>41 みたいに4行で書いてはい終わり、ってわけにいかないよね。
オプティマイザの構成とかに精通してないと難しかったりしない?
0050デフォルトの名無さんNGNG
4行でも意味するところはこの場合判るし、実施例なら
いくらでもデッチあげられると思いますが?

確かに、出願するにしてもお金かかるわけで、お金かけずに
パブリックなアイデアを公開=特許取得不能にする方法が
必要ですよね。
自分のWebで公開しただけじゃ 公開と言えるかどうか微妙でしょうし
どこかそういうアイデアを特許庁的な検索に載せられるようなページ
を作って、そのページから検索出来るアイデアは特許取得不能になると
かしてくれないと・・・元気な人やってみてよ
0051名無しさん@お腹いっぱい。NGNG
実施例でっちあげる、ってどういうこと?

理念だけでも取れるもんなの? 特許って。
一度処理系作ってみないと、理念考えるの自体難しい気もする。
「実行前にtemplateを展開」っていうアイディアだけじゃ、
いくらなんでも無理でしょ? もともとオレのアイディアじゃないし(笑)

schemeに型とtemplateつけたような言語は作ろうかと思ってたけどさ。
java VM用のバイトコード吐くやつ。

うーん、現実問題として難しいなあ。
0052名無しさん@お腹いっぱい。NGNG
C#相談室じゃないのか…
0053デフォルトの名無さんNGNG
>理念だけでも取れるもんなの? 特許って
国によっても違いますが、日本は出願主義なのでそうです
実施可能であればOKです
0054名無しさん@お腹いっぱい。NGNG
>> 53
実施可能性の検証とかすると、ただで配るのは惜しい一仕事になっちゃう。
アイディアだけで他人の特許をブロックできるんだったらそれはそれでいいんだけどね。
元々オレのアイディアでもないし。すまんね。

>> 52
ごめんごめん、もう終わりにする。
0055デフォルトの名無さんNGNG
たとえば
http://www2.ipdl.jpo-miti.go.jp/begin/BE_DETAIL_MAIN.cgi?sType=1&sMenu=1&sBpos=1&sPos=11&sFile=TimeDir_12/mainstr977283598310.mst&sTime=977283622
カウンタを使って選択するというだけの特許ですね
こんなの、つい使っていませんか?

あるいはこれ
西暦2000年を内部で$A0と表現するだけ
http://www2.ipdl.jpo-miti.go.jp/begin/BE_DETAIL_MAIN.cgi?sType=0&sMenu=1&sBpos=1&sPos=6&sFile=TimeDir_12/mainstr977283821601.mst&sTime=0
0056名無しさん@お腹いっぱい。NGNG
ただいまサーバ込み合ってるって。
あとで見るね。
0057名無しさん@お腹いっぱい。NGNG
というか、これがそうじゃないのか?
http://www2.ipdl.jpo-miti.go.jp/begin/BE_DETAIL_MAIN.cgi?sType=1&sMenu=1&sBpos=1&sPos=12&sFile=TimeDir_12/mainstr977284556738.mst&sTime=977284589
00584NGNG
結局Cマガを買ってインストール。
dllimport user32.dll
で、インポートしてるけど、Winプログラミングがわからないので、
public static extern int MessageBoxA(int h, string m, string c, int type);
ってなによ?
プロトタイプにしか見えない・・・。
0059名無しさんi486NGNG
いまさら言うのもナニだが、特許庁のサイトって
サーバ、ウェブインターフェースともにクソ。
IT革命っつーなら誰かなんとかしろよ。
0060名無しさん@お腹いっぱい。NGNG
もういい加減、特許の話はやめろ。
法律関連の板でやれ。
0061名無しさん♯NGNG
>>58
Win32 APIの関数。
ネイティブコールはCLRの管理外なので、externで宣言だけしている。
00624NGNG
class window {

 [dllimport("user32.dll")]

 public static extern int CreateWindowExA(
  int a, string className, string windowName, int style,
  int x, int y, int width, int height, int parent, int menu,
  int b, int c);

 static void Main(){
  CreateWindowExA(1,"BUTTON","aaa",0x10000000,100,100,100,100,0,0,0,0);
 }

}

Cマガに載ってたMessageBoxAの真似をして、CreateWindowExAを使ってみました。
(Win32APIの解説サイトも参考にしました)

ドキュメントもインストールしたので、これからじっくり読みます。
00634NGNG
using System.WinForms;

でコンパイルエラー・・・。WinFormsがないとか。
System.WinForms.dllはあるのに・・・。
00644NGNG
どうやら、コンパイルオプションが必要なようです。
調べもしないで安易に聞いてすいません。

http://www02.so-net.ne.jp/~wyvern/septigram/csm7.html
0065名無しさん@お腹いっぱい。NGNG
C#、Cが半音あがる。
C(ド)とD(レ)の間の音、一番左にある黒鍵の音。
つまり、CとD(Delphi)のあいの子が、C#と言う訳なんですかね?

(C#==D♭) ? true : false;
結果は真か、偽か?
0066デフォルトの名無さんNGNG
C#とD♭が同じ音かどうかなら微妙な所かも。
算術的な意味なら同じけど旋律が違うから演奏上違うと言えば違うし
0067デフォルトの名無しさんNGNG
マイクソソフトがC#で実際なんか開発してるって
噂聞いたがなにを作ってるんだろう。
つーかC#は既に開発できるレベルなのだろうか・・・
0068デフォルトの名無しさんNGNG
>65
Cよりはよくできたけど DelphiにくらべるとイマイチなのがC#なのね。
0069>>16NGNG
単に日本人が英語で会話してるだけだろ?
英語見ただけで「ネット外人」かよ
英語も読めない厨房が、ぬかぬかぬかすな!ボケ!
0070>>69NGNG
レス遅すぎ
0071C#とD♭NGNG
算術的とはどういうことか?>66
12平均率律ならば同じである。これは奏法というより音律の問題だ。
0072名無しさん@お腹いっぱい。NGNG
>>66
>>71
続きはこちらでどうぞ
http://piza.2ch.net/dtm/index2.html
0073デフォルトの名無しさんNGNG
むしろ「楽器、作曲」板だと思うが。
0074デフォルトの名無しさんNGNG
attributeの使い道がよくわからん。
0075デフォルトの名無しさんNGNG
逝って良し!>>65-71
0076名無しさん♯NGNG
いいこと言ってるぞ。

http://windows.oreilly.com/news/csharpinterview_0201.html
0077デフォルトの名無しさんNGNG
using system.*;

class tinko{
private boolean houkei; //インスタンス変数//
tinko(int smell){ //クラスtinkoのコンストラクタ//
if(10<smell){
houkei=true;
}else{
houkei=false;
}

}

}
public class me void main(string args[]){
tinko tinpo=new tinpo(100);

}
0078デフォルトの名無しさんNGNG
utuda

X tinpo(100)
O tinko(100)
0079デフォルトの名無しさんNGNG
いやーC#おもしろいよ。
クソウインドウ作るのC++よりめんどくさくないし。
ボタン配置するのも楽だし。
文字列型あるし。
0080飲む打つ買うさんNGNG
C#でJavaの Applet みたくIE中に表示ってできるの?
厨房質問でスマソ
0081デフォルトの名無しさんNGNG
>>80
つかえんじゃねーの。(やるきなし)
つーか、C#以外でもできんじゃん。
C#でできなきゃださださじゃん。
0082けろNGNG
>>80
さっき上げた.NET vs J2EEのスレの111に例があるよ。
http://www.gotdotnet.com/iesourcing.aspx
今やってみたら確かにWindowsForms Controlが動いた。
まあセキュリティ設定しなきゃならないんで、その辺理解したほうが
よさそうね。
ただ言えるのは、MSとしてはすでにサーバサイドの動的ページを
推してるので、これは本流の技術ではないということ。
0083名無しさん♯NGNG
マンセー。 ヽ(´ー`)ノ

http://www.clipcode.com/components/snippets.htm
0084デフォルトの名無しさんNGNG
>>83
見てみたけど、あまりC#らしくなくてちょっとがっかり。
どうせなら、プロパティとかデリゲートをうまく取り入れてほしかった。
008584NGNG
ごめん。プロパティは結構使ってるみたい。
0086デフォルトの名無しさんNGNG
>>82
これって、今までのActiveXドキュメントと同じよーなものなのかなあ。
それともJavaアプレットに近いものなんだろーか。
IE6.0からはMSVM載せないって言ってるからには
.NETを同じような地位のものに持ってくる可能性があるわけっすけど。

クライアントのJavaが現状のありさまなのは
単にJavaがタコだったたけというのも大きいと思うし。
0087名無しさん♯NGNG
>>84
delegate & eventを使っちゃうと、継承関係もへったくれもなくなるので、
(継承関係のないメソッドにもバインドできるから)
デザインパターンの実装としてはかえってわかりづらくなると思うよ。
0088デフォルトの名無しさんNGNG
C#で作ったソフトって、実行する為にはJavaのVMみたいな別のファイルが必要なんでしょ?
それとも単体で実行可能なの?
0089デフォルトの名無しさんNGNG
Windows XPやIE6に自動的についてくるっしょ。
0090デフォルトの名無しさんNGNG
>89
BlackCombからじゃない?VS.NETには絶対ついてくるだろうけど。
0091デフォルトの名無しさんNGNG
>>86
Javaがタコつ〜より
SUNがくそイカだって。
くだらん所で意地張って自爆だよ。
0092デフォルトの名無しさんNGNG
Javaとの比較論争は別スレがあるのでどうぞ。

C#で(というか .NET で)、sscanf() に相当するもの
ってありますか? "height 20 width 12" とかいう
string があったとして、20,12 をエレガントに拾う方法。
Javaだと、token として読んだりするのだけど。
0093名無しさん♯NGNG
>>92
力技で作ってみた。ぜんぜんエレガントじゃないけど。(藁

using System;
using System.Text.RegularExpressions;

class Hoge
{
  public static void Main() {
    const string pattern = "height (?<height>\\w+) width (?<width>\\w+)";

    Regex x = new Regex(pattern);
    Match m = x.Match("height 20 width 12");

    Console.WriteLine("height : {0}", m.Group("height"));
    Console.WriteLine("width : {0}", m.Group("width"));
  }
}
0094名無しさん♯NGNG
細かいけど、こっちの方がC#らしくていいね。

>    const string pattern = "height (?<height>\\w+) width (?<width>\\w+)";

    const string pattern = @"height (?<height>\w+) width (?<width>\w+)";
009592NGNG
>>93
なるほど、正規表現を使うのは、よさそうですね。
十分エレガントだと思います。私は、String Class の
メソッドでゴリゴリやってて、なんとかならんかと思ったクチ
ですので。 THANKS!
0096名無しさん@お腹いっぱいNGNG
>>92
Split使うのはイヤなのか?
0097名無しさん♯NGNG
>>96
そんなメソッドあるの知らなかった...。
そっちの方が手軽でパフォーマンスもいいね。ありがとさん。
0098厨房さんNGNG
>96-97
Splitだとどういうコードになるんですか?
0099名無しさん♯NGNG
>>98
こんな感じ。

using System;

class Hoge
{
  public static void Main() {
    string[] s = "height 20 width 12".Split(new char[] { ' ' });

    Console.WriteLine("height : " + s[1]);
    Console.WriteLine("width : " + s[3]);
  }
}
010092NGNG
Split 使うことにします。
厨房だな俺は。
目をさらのようにして、String Class の method
見て回ったのに、これに気づかないなんて。
0101デフォルトの名無しさんNGNG
>>99
> "height 20 width 12".Split

キモイからやめれ。
っつーか、そんなことができんのか、C#は。
■ このスレッドは過去ログ倉庫に格納されています