■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■
すげえぜC#
1 名前: 教えて君@2ch 投稿日: 2001/03/03(土) 02:58
よくわかんないけど書いてみただけ。


2 名前: デフォルトの名無しさん 投稿日: 2001/03/03(土) 03:25
○C♯
×C#


3 名前: 名称未設定 投稿日: 2001/03/03(土) 04:11
>>2 のようにいちいちうるさいやつもいるが、
MSのサイトはC#なので大丈夫。
それはそうと、俺もかなりいけてると思うなC#。



4 名前: デフォルトの名無しさん 投稿日: 2001/03/03(土) 06:43
>>3
とりあえずWindowsでは標準的な言語になるだろうね。



5 名前: デフォルトの名無しさん 投稿日: 2001/03/03(土) 06:48
>>2
さすがに、海外ではそれは(藁


6 名前: デフォルトの名無しさん 投稿日: 2001/03/03(土) 10:26
そんなにいけてるのC#age。


7 名前: デフォルトの名無しさん 投稿日: 2001/03/03(土) 10:29
まだまだC#は信用できないなage。


8 名前: お腹すいた 投稿日: 2001/03/03(土) 10:37
C丼


9 名前: デフォルトの名無しさん 投稿日: 2001/03/03(土) 10:48
一見地味だけどoverrideキーワードは画期的な発明だと思う


10 名前: D使い 投稿日: 2001/03/03(土) 14:11
>>9
ハァ?


11 名前: デフォルトの名無しさん 投稿日: 2001/03/03(土) 15:59
>10
9はMSしかしりません。


12 名前: デフォルトの名無しさん 投稿日: 2001/03/03(土) 18:33
>一見地味だけどoverrideキーワードは画期的な発明だと思う

設計者がDelphiと同じだもんな。



13 名前: デフォルトの名無しさん 投稿日: 2001/03/03(土) 19:58
>>9



14 名前: 和風 投稿日: 2001/03/04(日) 01:26
C井


15 名前: デフォルトの名無しさん 投稿日: 2001/03/04(日) 02:16
ヘジルスハンバーグ



16 名前: デフォルトの名無しさん 投稿日: 2001/03/04(日) 02:45
>>8
藁タ


17 名前: 名無しさん@お腹いっぱい。 投稿日: 2001/03/04(日) 07:02
>一見地味だけどoverrideキーワードは画期的な発明だと思う

画期的まではいかないが、まっとうなモンだと思う。
注意深いプログラマーにとっては無用かも知れんが、
注意深いプログラマーというのは、(定義上)存在しない。


18 名前: デフォルトの名無しさん 投稿日: 2001/03/04(日) 07:22
Javaにはfinalがあるからいいもんねー


19 名前: デフォルトの名無しさん 投稿日: 2001/03/04(日) 11:57
Javaもoverrideほしい。


20 名前: 名無しの笛の踊り 投稿日: 2001/03/04(日) 12:09
ものが出てから様子見だね。
MSが言うことは話半分に聞いておかないと。
ただ言語仕様を見る限りでは、かなりイケてると思う。


21 名前: デフォルトの名無しさん 投稿日: 2001/03/04(日) 21:33
Javaがそうであるように、インターフェイスはまともでも
実装はゴミという事は多々ある(多分初期バージョンでは
バグの嵐の可能性あり)ので、まあとりあえず使える程度
にはなっといて、後は様子見のつもりっす。


22 名前: デフォルトの名無しさん 投稿日: 2001/03/05(月) 02:46
C#信者逝ってよし


23 名前: デフォルトの名無しさん 投稿日: 2001/03/05(月) 02:56
どうせならそろそろD作れよ。
それとも次は「も〜っと!C」か?


24 名前: デフォルトの名無しさん 投稿日: 2001/03/05(月) 03:04
C#++と思われ


25 名前: デフォルトの名無しさん 投稿日: 2001/03/05(月) 04:11
>>23
どれみちゃんかい?おじさんもみてるぞ。ドゥフフフフフ。


26 名前: デフォルトの名無しさん 投稿日: 2001/03/05(月) 06:57
>>23
ワラタ


27 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 01:11
C++の++の線を少しずらしていって交あわせると… #だー!#になったー!


28 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 01:16
>>27
今更ナニを言っとるのかね、キミわ。


29 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 01:16
>ドゥフフフフフ
なんかすっげー嫌な笑いなんですけど。


30 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 02:39
>>27
はー、そーゆーことだったんだ…
知らんかった。ちょっと鬱。


31 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 03:57
>27
 うっそー。

 Java って、 C-- のようなものって、よく言われるけど、
C# 式でいうと、
 Java は、 C♭ ですな。




32 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 08:30
Java == Objective-C・改


33 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 17:08
言語仕様についてはどう?


34 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 17:11
オペレータオーバーロードがあるのはいいけれど、
(数学関係にゃ必要だと思ー)
イベントハンドらの追加を+=演算子でやるのは勘弁してくだちい。


35 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 17:25
>>34
わかりやすくて良いんじゃない?


36 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 17:52
どこがやねん。


37 名前: 34じゃないけど 投稿日: 2001/03/06(火) 18:13
オペレータオーバーロードの悪い使用例の筆頭から2番目だとおもう
一番はもちろんC++の「<<」ね



38 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 18:14
>ドゥフフフフフ
いただきー!


39 名前: 無しさん 投稿日: 2001/03/06(火) 18:50
オーバーロード演算子に関しては、個人が勝手にやってるわけじゃく、
コンパイラベンダがやってることなんで、別にかまわんよ。
まあオレ的には
Button.AddOnClick(new EventHandler(buttonNoget_click));

Button.Click += new EventHandler(buttonNoget_click);
みたいに全部変更しなきゃいかんかったのがツラかったよ。
(昔のバージョンで実用アプリ作ってたから)


40 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 18:57
genericsの実装(template)は.NETの正式リリースに間に合うのだろうか。


41 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 21:11
で、C#はWebアプレット作れるんか?


42 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 23:06
で、C#はランタイムいるんか?
え?ドットネットフレームワーク!?
こりゃまたでかいランタイムやなー!!


43 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 23:18
>>41
作れるようだが、セキュリティ上通信は一切できないように見える。
ただし、10KBのデータ保存ができるように見える。
ワタクシの英語力はクソなので
誰かヘルプ読んで追試してください。



44 名前: デフォルトの名無しさん 投稿日: 2001/03/06(火) 23:26
>>39
ベンダが率先して演算子オーバーロードの妙な使い方すると、
ヘボい連中がそれを真似するんだよぅ(涙)


45 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 00:08
>>41
ごめんなさい、言ってる意味がよくわからならないっす。
今のJavaと基本的には同じってこと?



46 名前: 45 投稿日: 2001/03/07(水) 00:12
間違えた…
X >>41
O >>43


47 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 01:37
>>37
何が悪い例なんだか良く分からん。
何の問題も無いと思うが。


48 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 02:08
>>36
+=は直感的にわかりやすくないか?
俺はまさに+=だと思って感心したよ。


49 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 02:24
>>48
キミあっち行って下さい。



50 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 02:33
+= の何が駄目?


51 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 04:23
1.7.2 Labeled statements and goto statements
A labeled statement permits a statement to be prefixed by a label, and goto statements can be used to transfer control to a labeled statement.
The example

using System;
class Test
{
static void Main() {
goto H;
W: Console.WriteLine("world");
return;
H: Console.Write("Hello, ");
goto W;
}
}


52 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 04:30
>51
gotoはほとんどの場合悪だが、深いネストから脱出する時に
使うのは効果的、とストラウストラップ大先生がのたまって
おられました。


53 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 04:42
>52
うんそうだね。ただサンプルをああ書くそのセンスが、かなりいけてると思った。


54 名前: トリッキーの1 投稿日: 2001/03/07(水) 05:42
>>48 >>50
1つのイベントに2回+=をするとどうなるんですか?
マジレス希望っす。俺にはその辺が直感的じゃないので。


55 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 06:44
>>50
たぶん、演算子のオーバーロード自体が駄目ということなんだろう。
JAVAで何故それがなくなったかわかってない!といいだげだぞ。

まあ、C#はJAVAよりもC++よりってことなのかね。


56 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 13:47
>54
現在の実装だと、そのイベントハンドラーが 2回呼ばれる
ようです。これが仕様なのか、製品版で重複した設定は
無視されるようになるのかは、分かりませんが。

まぁ仕様にしてもバグにしても += じゃなくて、
Button.AddOnClick(...) とか Button.Click.AddHandler(...) とか
いう感じでやっても、動作がどうなるかが、直感的でないのは一緒だね。

個人的には、AddHandler とか AddOnClick とかいたずらに method を
増やすより、すっきりしてていいと思うのだが。




57 名前: トリッキーの1 投稿日: 2001/03/07(水) 13:54
>>56
レスサンクスです。AddHandler()という名称にせずに、
SetHandler()みたいな形にすれば直感的に重複を許さないと思うけど、
重複させたい場合とかもあるのかなぁ……?
気が向いたらC#で実際に使ってみます。

>>55
Javaで演算子のオーバーロードがないのは、やはりfriendが必要になるから?
あくまで個人的な意見だけど、operator定義は正しく使えばかなり有用だと思います。
文字列の比較が==で「エラーは出ないが正しく比較できない」のは、どうかと思いますね。
そのくせJavaではStringになぜか+が定義されているんだよね。実にナンセンス。


58 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 14:19
>57
SetHandler というのは、ダメです。というのも、複数の異なる
イベントハンドラーを設定することができるというのは、はっきり
と書いてある仕様ですから。
button.Click += new System.EventHandler(button_ClickA);
button.Click += new System.EventHandler(button_ClickB);
てな感じで、ひとつのイベントに複数のハンドラーを設定できます。

しかし、確かに同じハンドラーがひとつのイベントに際して複数回
呼ばれる必要があるという事態は考えにくい。あるのかな?


59 名前: トリッキーの1 投稿日: 2001/03/07(水) 14:28
>58
なるほど。仕様から来ている+=だったんですね。
AddHandlerがあるなら+=がそれに値するということはそれほどはずれていないと思うけど、
何にせよちょっとやりすぎかな。+とか=とかは全く別の定義だろうし。

色々情報サンクスです。ハンドラが複数回呼ばれると便利な状況はあると思いますよ。


60 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 14:47
恥の上塗りとはこういうことを言います。
ttp://dennou.gihyo.co.jp/books/cnet/faq.html



61 名前: デフォルトの名無しさん 投稿日: 2001/03/07(水) 15:31
C#ねぇ。すっきりしてていいよ。
覚えることが少ないから楽チン。


62 名前: サンプリング@ 投稿日: 2001/03/08(木) 03:08
早く一般向けにダウンロード可能にならないかなぁ。age


63 名前: デフォルトの名無しさん 投稿日: 2001/03/08(木) 07:07
SDKのベータ版はずっと前から一般向けにダウンロード可能だよ。
雑誌の付録にもついてるし。
ベータ版なんで、業務用マシンには入れるなと書いてあったので
ずっと実験用マシンで使ってたが、安定してるようなので、先日
ついに常用のマシンに入れてしまった。
VS.NET のベータ版も雑誌の付録のハガキ送ったら来たよ。


64 名前: 厨房 投稿日: 2001/03/08(木) 09:30
やっぱり.NET Frameworkはばんばん配布されるのかな〜。
JavaだとJREが普及していないせいもあって(GUI絡むと重いし)client-sideに広まらなかったけれど、
.NETは今後のWinodozeには組み込まれそうな気がするのでかなり普及しそうな気がする。




65 名前: D使い 投稿日: 2001/03/08(木) 11:01
>>60
この人アホなんですか?

DelphiPascalだとオバロドとオバライドを間違ったり混同する
ヤツなんて誰もいないんだが、C#だと間違いやすくなってる?


66 名前: デフォルトの名無しさん 投稿日: 2001/03/08(木) 11:51
C#の詳しい本ってまだ出てない?
薄っぺらい、「C#入門」しかないのかな。


67 名前: void 投稿日: 2001/03/08(木) 16:25
しっかしマイクロソフトというのは変な会社だ。

現在の Windows の分散オブジェクト環境も、本当に
ユーザーのためになってるとは思えない。Windows が
COMとかなくても(なかったら、ちょっと寂しいけど)、
単なる統一された32ビットAPIの GUI環境であっても、
充分使い物になってたと思う。いまの分散オブジェクト
環境は、too much だよ。IEのコンポーネントを使った
ブラウザーが続々作られるなんて、他の環境ではちょっと
考えられない。不必要なほどに複雑だからバグも多いし。

で、今度は、仮想マシンときた。もちろん すごく先進的と
いうわけではない。Javaっていうのもすでにあるし。
99%の現在の “パソコン”ユーザーにとって、Windowsの
上で仮想マシンを走らせる意義ってないし、そもそも
ユーザーにとってはそういう理屈は関係ない。
いずれ、現在のPCから離れた環境が主戦場になるというのは
まぁ自明だけど、そのための主導権の確立の手筈を今の PC上で
なんとかしとこうというのは、なんかやりきれない感じだ。
Windows NTもひところは、PowerPC,MIPS,x86,Alpha と4種類
のCPUサポートしてたし(これも今から考えると too much)。

ビルって、将来のための保険を一般のユーザーを巻き込んで
かけてるんだな。ついて行く開発者も大変。こういうの嫌で
Linux とかにゆく開発者もいるよね。(Linux とかの方面が
技術的に大変じゃないと言ってるわけではないよ。ただ、
MSについていく果ての無さの感覚はないよね。なんかもっと
着実にやれそうな感じだよね)

MSのアメリカでやる PDC に参加すると、なんかこう遠い遠い
所まで来てしまったなと思うよね。



68 名前: デフォルトの名無しさん 投稿日: 2001/03/08(木) 17:35
いや、COMはそれなりに使える技術だと思いますよ。インタフェースと
実装を切り離すことで、プラグアンドプレイなソフトウェア環境を
作り上げることに成功したんですから。

それがToo MuchだというのならWindowsに限らず、現在の分散オブジェ
クト技術全部がToo Muchということになってしまいそうな気がするん
ですけど。



69 名前: デフォルトの名無しさん 投稿日: 2001/03/08(木) 17:51
EXEの方が使える。


70 名前: void 投稿日: 2001/03/08(木) 18:11
誤解を受ける書き方をしたけど、 WindowsのCOM が
駄目だとは思ってないよ。COMの全面的な採用によって
得られた世界は、なによりワクワクするものを含んでるし、
開発効率から見た生産性の向上も多分あったはず。

で、メリット・デメリットがあったと思うけど、その
新技術のメリット・デメリットを圧倒的なシェアを背景に
一般ユーザを巻き込んで、ビジネス的に独走しながら、
まとめて引き受けてるというのが、なんかスゴイな
と思った次第。

Linux なんかより(ごめん他意はない。突っ込まれても
しょうがないが、それには対応しないよ)ある意味はるか
に挑戦的なことやってるよね、MSって。



71 名前: 68 投稿日: 2001/03/08(木) 18:46
確かに、COMが定着したのは何よりもMSが自社製品で使えるものを
これでもか、というくらいに提供したからですね。
# VB、VC++, Excel、Word、Access、ASP...

そういうところでは独自技術の強みがありますね。
ただ、とりあえず市場に出すことが優先されて品質が二の次とか、
標準技術を軽視するところが嫌われるところではありますね。



72 名前: デフォルトの名無しさん 投稿日: 2001/03/09(金) 00:06
IEコンポーネントのブラウザ非常に重宝してるんだけど…


73 名前: デフォルトの名無しさん 投稿日: 2001/03/09(金) 08:47
だから、67=70 の語法による「一般ユーザー」は
IEコンポーネントプラウザを作ったり使ったりしてないという話。
まあ、存在してるから、使うことはあるだろうけど、それが
IEコンポーネントを使った COMによる分散オブジェクト技術で
成り立ってるなんてことは、意識しないだろう。
で、便利なもんなら、COMでなくても、ソースコードをパクってきて
作ったものでも、適当なライブラリーを従来の方法でスタティックか
ダイナミックにリンクして作ったものでも、使うだろう。
一言でいうと、一般ユーザーが求める道具としてのパソコンに
現在の Windows が提供している分散オブジェクト環境は too much
だということだよ。

おれは、COMも .NET もありがたく、楽しく使うけどね。



74 名前: 68 投稿日: 2001/03/09(金) 17:28
一般ユーザだってCOMの恩恵は受けていますよ。たとえばインプレース
アクティベーションとか、透過的なドラッグ&ドロップとか。

ExcelやAccessのVBAでちょっとしたプログラムが組めるようになった
のも、COMあってこその話ですよね。


75 名前: デフォルトの名無しさん 投稿日: 2001/03/09(金) 21:54
MSが仮想マシンを作り始めたのはいずれMSが分社化するときに対応するためとか聞いたがどうなんだろう?


76 名前: デフォルトの名無しさん 投稿日: 2001/03/10(土) 12:53
age


77 名前: デフォルトの名無しさん 投稿日: 2001/03/10(土) 13:31
仮想マシンを使って32bit->64bitへの移行をスムーズに
行えるようにするというのもメリットのひとつだと思う。
とくにAMDの64bit CPUはIntelのものと非互換みたいだし。
# C#がCPU依存の型を廃したのは英断でしょう。

MSの自社製品がすべてC#に移行したらまた複数のCPUを
サポートし始めるんじゃない。



78 名前: サンプリング@ 投稿日: 2001/03/11(日) 15:30
「一般ユーザー」なんですが、シェアウェアなどの小規模なアプリにはあまりCOMは
使われていないような気がするのですが、いかがお考えですか?やはりCOMは、
ごく普通のプログラマには難しいような気がするのですが。。。
(おっと、へたれPGであることがばれてしまう。アブアブ)


79 名前: デフォルトの名無しさん 投稿日: 2001/03/11(日) 15:43
>78
それは見方がアマイだけじゃないの?
74が上げているような機能なら使用しているアプリは多いし。
(ほんとに小規模なら別。使うまでもない。
 もしくはめんどくて付けなかった、などの理由もある。)

COMがプログラマに難しいかどうかは開発環境にもよる。


80 名前: >70 投稿日: 2001/03/11(日) 16:35
なんでもいいけどvoidってハンドルだけは止めとけ。



81 名前: SAGE 投稿日: 2001/03/11(日) 16:39
>>78
エクスプローラの右クリックメニュー拡張とか。
エディタのテキストをドラッグ&ドロップとか。
ショートカット作成とか。
Iriaみたいに IEに食い込むタイプのソフトとか。
DirectX 使ったゲームとか。

そこら中で見かける気がするけれど。


82 名前: デフォルトの名無しさん 投稿日: 2001/03/11(日) 17:12
>>70
へみ猫は市ね。


83 名前: 知ったか君 投稿日: 2001/03/11(日) 17:28
>>78
COMもOOPみたいに小規模ではどうしても煩雑なところばかり
が目立ってしまいますからね。
ただ、オンラインソフトの場合はCOMを使うとどうしてもレジストリを
触ることになるので、ユーザーにあまり好まれないからだと思います。


84 名前: デフォルトの名無しさん 投稿日: 2001/03/11(日) 23:22
「COMを使う」って定義が問題。

IEやExcelのコンポーネントを使うような小規模アプリは
いくらでもある。

自分のインターフェイスを提供するようなのは、少ない
と思うけどね。

Iriaみたいに、公開してくれると結構便利なんだけど。




85 名前: 68=74 投稿日: 2001/03/12(月) 15:10
オートメーションオブジェクトを作る/使うだけだったら楽勝でしょう。

ただインプレースアクティベーションとか構造化ストレージとかのコンテナや
コンポーネントを実装するのは結構大変ですね。

>ただ、オンラインソフトの場合はCOMを使うとどうしてもレジストリを
>触ることになるので、ユーザーにあまり好まれないからだと思います。

確かにレジストリが汚くなるのはやっかいですね。登録情報はどこかに
持たなくてはいけないので、レジストリを使うこと自体は問題ないと思う
のですが...



86 名前: デフォルトの名無しさん 投稿日: 2001/03/12(月) 16:51
レジストリアレルギー(自分で命名)ってまだあるのかな?


87 名前: デフォルトの名無しさん 投稿日: 2001/03/12(月) 17:25
Side-By-Sideを使えば、レジストリの呪縛から抜けられるけど、
システムグローバルには使えないし。

痛し痒しってとこだね。



88 名前: デフォルトの名無しさん 投稿日: 2001/03/27(火) 03:17
http://www.denpa.org/~go/denpa/200103/from11.html#16_1
ってマジすごい。「COMってやりすぎじゃないの」というこのスレの
途中で出てきた議論に対して、正面から答えてる。
とりあえず、脱帽だぜ。
っつうことで、age ね。


89 名前: デフォルトの名無しさん 投稿日: 2001/03/27(火) 03:57
>88
つーか常識。その上で、マニアックすぎないかって言う議論だったんでしょ。
ま、プログラマにとっちゃ魅力的だけどね。


90 名前: 金持ち名無しさん、貧乏名無しさん 投稿日: 2001/03/27(火) 04:36
>>88
日付から見て、このスレにインスパイアされた可能性もあるよ。