トップページ⇒tech
1001コメント263KB

C#って死滅しちゃうの? Part10

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさんNGNG
死なねーけど、とりあえず立てとくか。前スレ は >>2
0809デフォルトの名無しさんNGNG
>>808
煽りを信じてどうするんですか?
0810デフォルトの名無しさんNGNG
>>808
>>806の質問に答えてください。
0811デフォルトの名無しさんNGNG
>>796
おまえの脳はすでに死滅しているようだ。
0812796NGNG
そんなひどいこと言わないでください。
設計ミスなら、マイクロソフトさんに直してもらえばいいじゃないですか。
きっと死滅を回避する方法があるはずです。
0813まとめてみたNGNG
なぜC#にはthrowsがないのか?
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%BD%A1%B6%B5%CF%C0%C1%E8%2F%A4%CA%A4%BCthrows%28%29%A4%AC%A4%CA%A4%A4%A4%CE%A4%AB%5D%5D
0814デフォルトの名無しさんNGNG
796の脳内では死滅したことにしてもいいんじゃないかな。
0815デフォルトの名無しさんNGNG
.NET 247 : Newsgroup - No throws keyword ?
ttp://www.dotnet247.com/247reference/msgs/15/75596.aspx

> I'm a java programmer.
> ......
> WHY ON EARTH is there no 'throws' keyword.
0816デフォルトの名無しさんNGNG
下請けのソースこんなんばっかだぞ
} catch (Exception ignore) {
// Error handling?
ignore.printStackTrace();
}
で原因不明の応答不能とリリースを繰り返していくうちに"ignore"の検索件数が減っていく・・・
0817デフォルトの名無しさんNGNG
それは相当にレベルの低い下請けですね。
悪いこといわんから、そういうソースは受け入れテスト時に弾け。
0818デフォルトの名無しさんNGNG
で、C#らしさ満載のアプリはまだですか?
0819デフォルトの名無しさんNGNG
SharpDevelop
0820デフォルトの名無しさんNGNG
DoJa Builder
MIDP Builder
0821デフォルトの名無しさんNGNG
DashboardフェードアウトでLonghorn Sidebar
0822デフォルトの名無しさんNGNG
SkyNET
0823デフォルトの名無しさんNGNG
Windows Explorer (Longhorn)
0824デフォルトの名無しさんNGNG
>>795
throwとthrowsと間違えてないかね?

Javadocにはthrows宣言されたものはちゃんとメソッド(操作、メンバ関数)
のところに、引数、戻り値の型とともにリンク付きで表示される。
Javaではもちろんこれはタダでできます。

>>813
不思議なことにこのサイトでもthrowsをthrows()とかくのですね。
Sourceforgeで適当な個人によって作られたコードばかりを例にとって説明してるようにも見えます。
0825デフォルトの名無しさんNGNG
>>811
まるで北斗の拳
0826デフォルトの名無しさんNGNG
withは断然必須だよな。
0827デフォルトの名無しさんNGNG
いつの時代にもどのOSにもどの言語にも見られる光景だよね。
あれがない、これがないと。
どんどん肥大化していかなきゃならないんだろか。
0828デフォルトの名無しさんNGNG
>>796
クラスメソッドの意味わかってんのか?
クラスメソッドとはstaticメソッドのことだぞ
クラス、メソッドと区切りをいれたほうがいいぞ。

C#/Javaではabstractがないと拡張できないっちゅーこたぁ無い。
C#の場合はわざわざvirtual宣言しないと拡張できないがな。

まあ、abstractがないとスーパークラスだけでもインスタンスを作れてしまう
という問題点はあるがな。
0829デフォルトの名無しさんNGNG
>>827
WindowsとC++は最も肥大化した言語、OSです。
0830デフォルトの名無しさんNGNG
>>829
Windowsの場合はクーロン城だがな。
Windows95/98/Meは本当にクーロン城と化していたな。
WindowsNTからは一部一から作り直して
すこしは改善したらしいがまだまだ。
M$InternetExplorerもとんでもないクーロン城だな。
なんでもありというかね。W3Cも無視というかね。

C++はポインタ演算、メモリ操作、プリプロセッサ、テンプレート、
オペレータ、グローバル関数、グローバル変数、デストラクタ、
伝統的C言語関数の許容、ヘッダファイル、実装による多重継承、
などとにかくなんでもありでごちゃごちゃだったな。
これがC++が失敗(?)した原因とも言われているみたいだが。

0831796NGNG
>>828
間違いは認めます。でも、間違いを訂正しなかったからといって、
その後のレスを完全に無視して非難しないで下さい。

>C#の場合はわざわざvirtual宣言しないと拡張できないがな。
これが.NETのあらゆるライブラリにあてはまっているようなので、
非常に絶望的な状況になったんですよ。
まあ、私の設計が悪いと言われればそれまでですが、
DelphiでもJavaでもできたライブラリの拡張が、
.NETFrameworkでは制限されてしまっているというのは悲しいです。

しかもC++のときから、速度的にほとんど差が無いのだから拡張性を重視して
デフォルトでメソッドはvirtualにすべきじゃないか?とあちこちで言われていたのに、
MSの公式見解が、「変える理由がみあたらなかった」だなんて。。。
0832デフォルトの名無しさんNGNG
拡張を継承でやるのは弊害のほうが多いと思った
0833デフォルトの名無しさんNGNG
単発機能A,B,Cを追加するためにいちいち継承していたら
A,Bを併せ持ったクラスを作りたくなったときに頓挫するでしょ。
0834デフォルトの名無しさんNGNG
>>832
そりゃわかってますよ。
でもね、世の中には誰かが決めた設計を変更せずに
機能を実装しなきゃいけないときもあるんです(涙

>>832
そういうときには、普通に委譲しますよ。
ここで問題にしているのは、委譲では解決できないケースです。
(継承元クラスのイベントとして定義されていないケースで、)
親クラスのメソッド呼び出しと同時に、自動的に内部の状態(私が追加したもの)を
変更したいとき、どうしたらいいんですかね?
Javaだと、
public static superMethod() {
 this.changeMyField();
 super.superMethod();
}
でフックみたいなことができたと思うんですが。
もしかして、C#でこういうことをするには、また別の言語仕様を覚えなきゃだめですか?
0835796NGNG
>>834
s/static/void/;です。たいぽしますた。
0836デフォルトの名無しさんNGNG
> Javaだと、
> public static superMethod() {
> this.changeMyField();
> super.superMethod();
> }
> でフックみたいなことができたと思うんですが。

もうちょっと詳しく。
0837デフォルトの名無しさんNGNG
>>831
virtualがある理由は、
●C++で書いたコードをなんとかしてC#でも再利用したい。
●C++に慣れてしまったプログラマを少しでも楽にC#に移行させたい。
●.net framework といういものが、古い言語を再利用することを
 目的に作られているためあえて付け加えられた。

と思う。

オブジェクト指向でいう、拡張とは、継承だけがすべてじゃないぞ。
デザインパターン本に拡張方法が載ってるから調べて見るといい。
0838デフォルトの名無しさんNGNG
>>837
C#にあのシガラミでしか無い危険なgoto文があるのも

す   べ   て   は   .   N   E   T   の   た   め
0839デフォルトの名無しさんNGNG
>>834
継承も委譲もだめなら集約。
0840デフォルトの名無しさんNGNG
まるで駄々っ子だな
0841デフォルトの名無しさんNGNG
Del知ってるならCustomAction作れよ
0842796NGNG
>>841
やっぱそれですか。
上司とか他の開発者とかに説明するのがめんどくさいんですよね。
うちはDelphi経験者が少ないからか、
独自イベント追加=変態という扱いです。
やれやれ。。。
0843デフォルトの名無しさんNGNG
やっぱりDelphiが最高だったということだね・・・
C#は死滅しる!
0844デフォルトの名無しさんNGNG
Action実装されるに決まってんだろ
0845デフォルトの名無しさんNGNG


HelloWarld.cs
public class HelloWarld {
 public static int main (string [] args) {
  MessageBox.show("もうだめぴょ");
  return 1;
 }
}
0846デフォルトの名無しさんNGNG
ヤバイ。C#ヤバイ。まじでヤバイよ、マジヤバイ。
C#ヤバイ。
まず汚い。もう汚いなんてもんじゃない。超汚い。
汚いとかっても
「変数名おかしくない?」
とか、もう、そういうレベルじゃない。
何しろRAD開発。スゲェ!なんか設計とか無いの。仕様とかソフトウェア工学とかを超越してる。RAD開発だし超汚い。
しかもフォームにべた書きしてるらしい。ヤバイよ、べた書きだよ。
だって普通はクラスとか分割するじゃん。だってペーストしたところ変更きたら困るじゃん。
コンパイルエラーとか変更もれとか困るっしょ。
処理が追加されて、Ver1.0のときはメソッド数行だったのに、Ver3.0のときはメソッド数百行とか泣くっしょ。
だからJavaとかべた書きしない。話のわかるヤツだ。
けどC#はヤバイ。そんなの気にしない。カット&ペーストしまくり。ソース表示してる画面を
5画面ほどスクロールしてもメソッド終わらないくらい汚い。ヤバすぎ。
RAD開発っていたけど、もしかしたらスパゲティ開発かもしんない。でもスパゲティ開発って事にすると
「じゃあ、C#のクラスってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
あと超いいかげん。deregateブロック。処理内容で言うと。ポインタ演算。ヤバすぎ。ガベージコレクタが介入する暇もなく演算する。怖い。
それに超処理遅い。超のろのろ。それに超機能不足。ネイティブコールとか平気で出てくる。ネイティブコールて。
マルチプラットフォームじゃねえよ、マ○クロソフト。
なんつってもC#はthrowsが無いのが酷い。実行時エラーとか平気ででるし。
Javaなんてメソッドとかインタフェースとか、期待する例外処理を開発者が必ず実装するように
throws句に例外書き並べたり、例外情報をJavaDocで書き出したり、catchしてねーと必ずコンパイルエラーにしたりするのに、
C#は全然無視。例外取り忘れたら実行時エラーとしか扱わない。酷い。ヤバイ。
とにかく貴様ら、C#のヤバさをもっと知るべきだと思います。
そんなヤバイC#でシステム作ろうとしてる俺とか超偉い。もっとがんばれ。超がんばれ。
0847デフォルトの名無しさんNGNG
>>846
>しかもフォームにべた書きしてるらしい。ヤバイよ、べた書きだよ。
>だって普通はクラスとか分割するじゃん。だってペーストしたところ変更きたら困るじゃん。
>コンパイルエラーとか変更もれとか困るっしょ。
>処理が追加されて、Ver1.0のときはメソッド数行だったのに、Ver3.0のときはメソッド数百行とか泣くっしょ。
>だからJavaとかべた書きしない。話のわかるヤツだ。

こりゃVBの名残りですかい?
0848デフォルトの名無しさんNGNG
>>845
mainの戻り値がintはC#でなくてCじゃねん?
しかもC#はなぜかmainがMainになっちょる。
0849デフォルトの名無しさんNGNG
>>846
>処理が追加されて、Ver1.0のときはメソッド数行だったのに、
>Ver3.0のときはメソッド数百行とか泣くっしょ。
C#ではひとつのクラスにメソッド(操作、メンバ関数)は256以上
追加できんの?
Javaは255が限界だと思った。
しかしそもそもメソッドを100も書くのは設計に問題があるしのう。

メソッド数100って・・・・
C#では簡単にそんなことできてしまうのか。
オブジェクト指向言語としてふさわしく無さすぎることを
簡単にできてしまうC#のRADはいったい何よ?

M$のC#RAD恐るべし!
0850デフォルトの名無しさんNGNG
>>849
ネタにマジレスですか。
そうですか。
0851デフォルトの名無しさんNGNG
>>850
真実です。
0852デフォルトの名無しさんNGNG
最高の言語はJ#。これならJava厨もなっとく。
0853デフォルトの名無しさんNGNG
ソレダ!
0854デフォルトの名無しさんNGNG
>>852
見事な逆説を唱えられるあなたは天才です!
0855デフォルトの名無しさんNGNG
>>852
M$は偉大なる神聖なるJavaを穢して邪悪なるJ#を作った。
0856デフォルトの名無しさんNGNG
http://kobe.cool.ne.jp/win21/support.html

これを見ていると
長期にわたって使えるソフトウェアを作りやすい開発言語としては
C#よりもJavaのほうが強いね。
0857デフォルトの名無しさんNGNG
Javaってのはコボラー専用だよ
簡単・明快・馬鹿
0858デフォルトの名無しさんNGNG
C#ってのはブビ厨専用だよ
簡単・明快・馬鹿


0859857NGNG
コピペ厨。ツレタ(・∀・)
0860857 本物NGNG
>>859
ツレタ(・∀・)

0861857NGNG
>>858=>>860
コピペ厨。自作自演までして必死だな(・∀・)
0862デフォルトの名無しさんNGNG
>>861
その程度で、なに悔しがってんだ?
0863857NGNG
>>862=>>858=>>860
何か悔しいのかい? 俺は面白がっているがね(w
0864デフォルトの名無しさんNGNG
あれだろ? これはもう一つの戦争さ。 死滅させられるかどうかをかけた戦争ね。

湾岸戦争以後、戦争の為の嘘(プロパガンダ)は常套手段。

まあ、その嘘に踊るのが時流に乗るって事なんだろうけどね。
0865デフォルトの名無しさんNGNG
Javaのアプローチは一つのプログラミング言語、複数のAPI
.NETのアプローチは一つのAPI、複数のプログラミング言語

C#は所詮はその程度の.NETの道具に過ぎないわな。
0866デフォルトの名無しさんNGNG
>>857
ほう、COBOLがJavaに似てるのか。

所詮C#もJavaの真似。
C#がJavaに似てるなら
C#はCOBOLに似てる。

ゆえに
「C#ってのはCOBOLer厨専用だよ
簡単・明快・馬鹿 」
の論理が成り立つことであろう。

せいぜいM$のすがり付いて苦しむが良い!
0867デフォルトの名無しさんNGNG
>>866
言語の内容じゃないのに。
厨でもそれくらい理解してやれ。
0868デフォルトの名無しさんNGNG
ここ3年Javaがサーバーサイドに引きこもりつづけたおかげで、
COBOLの後継はJavaということになりつつある。

今Javaやってる連中は間違いなく将来COBOLer扱いになるだろう。
0869デフォルトの名無しさんNGNG
>>865
Javaは言語なんてその程度の道具を唯一のものとしてしまった所が
大きな失敗だね。
0870デフォルトの名無しさんNGNG
>>868-869
そんな適当な事書いても
「ここ3年C#がクライアントサイド、Windowsサイトに引きこもりつづけたおかげで、
COBOLの後継はC#ということになりつつある。

今C#やってる連中は間違いなく将来COBOLer扱いになるだろう。 」

「WindowsはOSなんてその程度の道具を唯一のものとしてしまった所が
大きな失敗だね。 」

と煽り返されるのがオチでしょ
0871デフォルトの名無しさんNGNG
COBOLが何処で使われてるか分かってる?
0872デフォルトの名無しさんNGNG
>>870 = >>866 はアホやね。
COBOLの後継にまでなったら大成功じゃん。
0873デフォルトの名無しさんNGNG
870はCOBOLで作られたクライアントサイドAPを常用してるらしい。
0874デフォルトの名無しさんNGNG
>>872
さすがのC#厨も、そこまでは考えていないだろう。
0875デフォルトの名無しさんNGNG
Javaはコボラー御用達言語の後継であって、
COBOLの後継じゃないしな。
いまだ勘定系はCOBOLの天下だ。
0876デフォルトの名無しさんNGNG
>>872-875
君らの実年齢と職業ってどんなんなの?
10000もの不毛なレスをつけることに何の意味があるんだよ。
0877デフォルトの名無しさんNGNG
>>876
>>870 キター ━―━―━(゚∀゚)━―━―━― !!
0878デフォルトの名無しさんNGNG
>>876
知らなかった、の一言も言えないんだな。
若くても、自分の守備範囲でないおっさんでも知ってる程度のことかと。
0879デフォルトの名無しさんNGNG
勘定系はCですら信頼性に欠けると
なかなか採用されない
Javaの出る幕はないだろうな
ましてやC#には未来永劫縁のない世界だろう
クライアント側だけだろうな
0880デフォルトの名無しさんNGNG
存在意義再確認あげ
0881デフォルトの名無しさんNGNG
>>879
心配するな。
金融でいう信用とは金の事だ。 ゲイツ=世界一の金持ち=世界一の信用の持ち主って事。

そのうち勘違いした上から押し付けてきてくれるさ。
0882デフォルトの名無しさんNGNG
>>813のJavaのコード見たけどありゃthrows以前の問題だな。
例外処理の使い方がまるでなってない。
throws連呼する前にもっと勉強しろよ。
0883デフォルトの名無しさんNGNG
throwsを勉強してしまうと、ほとんどの例外を上位にスローするのが
デフォルトになってしまう罠。
0884デフォルトの名無しさんNGNG
例外ってそういうもんだし。
それを無視してthrows強制するなんてセンス悪杉。
0885デフォルトの名無しさんNGNG
>>879
Cですら信頼にかけるからJavaの出る幕は無いと?
それは逆だろ。
ポインタ演算やバッファオーバフローで信頼性を失いやすい
コードを簡単に書けてしまうCのほうがJavaより信頼できないだろう。
ましてやCはオブジェクト指向言語ではない。

Javaがもっとも使われている現場は金融だということをわかってる?
0886厨房NGNG
>>885
ここでいう信頼性というのは違う意味じゃないかな?
多分実数の扱いとか誤差とか・・・
0887デフォルトの名無しさんNGNG
>>882
throwsの使い方勘違いしてる奴を槍玉に挙げてthrowsはいらないと勘違いな主張してるだけだろ。

>>883 そんなやり方だけではthrowsの価値が無い。
例外をキャッチしつつなにかの処理を加えながら再びthrowすることもやるべき。

>>884 ちゃんと例外処理の扱いについてもっと勉強して来い。
0888デフォルトの名無しさんNGNG
>>886
そんなときは
java.math.BigInteger,
java.math.BigDecimal
を使えばいいわけだし。
0889デフォルトの名無しさんNGNG
>>888
おまえ使ったことあるか? Javaは演算子のオーバーロードが出来ないから見難くなる。
これ見てみろ。コメントまである。
http://javacenter.sun.co.jp/java-sample/java.math/java_math_01.html
0890デフォルトの名無しさんNGNG
>>887
> >>883 そんなやり方だけではthrowsの価値が無い。
> 例外をキャッチしつつなにかの処理を加えながら再びthrowすることもやるべき。
では全部そうしろと? 違うだろ。ほとんどはそのまま再スローだ。
0891デフォルトの名無しさんNGNG
>>887
くだらないこと書いてる暇があったらまともな例外処理が実装された
一定の規模のプロジェクトのソースでも晒してみなよ。
0892デフォルトの名無しさんNGNG
>>889
A.add(B)がA+Bと書ける程度のことで、なにか開発上のメリットがあるのか?
個人の嗜好と開発上のメリットの切り分けもできないような、お客さん感覚の
開発者にシステム開発して欲しくはないな。

多倍長整数とか固定小数点数なんか、Cじゃそもそも扱うのもめんどうだが。
0893デフォルトの名無しさんNGNG
c#のUnitはどれがいいんでしょ?
0894デフォルトの名無しさんNGNG
NUnit以外何かあるのか?
#Devにもついてたような気もするが忘れた。
0895デフォルトの名無しさんNGNG
>>889
ハッハッハッハ
バリバリ使ったことあるね。
特に見づらくないがね。
演算子のオーバーロードに頼るくらいなら
sin, cosineもlogもSquareRootもexpもオーバーロードしなさいってこった。
0896デフォルトの名無しさんNGNG
>>894
X-Unity ,.NETUnit ,csUnit
#develop の#unit

0897デフォルトの名無しさんNGNG
>>892
delegateやboxing&unboxing変換、値型の多さ、構造体など
C#は個人の嗜好に依存しすぎる部分が多すぎ。
0898デフォルトの名無しさんNGNG
>>897
知ってる言葉並べただけだろ。
0899デフォルトの名無しさんNGNG
個人の嗜好を言語で制限するのは最低。
コーディング規約の範疇。
0900デフォルトの名無しさんNGNG
Java厨の無くても充分症候群についての話題は超がいしゅつです。
0901デフォルトの名無しさんNGNG
>>899-900
そういいきるなら
お前らC#厨はC++でもやってろ
0902デフォルトの名無しさんNGNG
>>899-900
オブジェクト指向を良く知らない馬鹿なVB厨上がりのC#厨がよくこういう発言をする。
0903デフォルトの名無しさんNGNG
>>901
他人を追いやったつもりで、自分が使う言語をJavaだけにするのは考え物だよ。
どんな言語も使わなくちゃ。

>>902
そうやって、盲目なJava厨がよくする発言をしてもなんの説得力も無いよ。
0904デフォルトの名無しさんNGNG
Java厨って危機感ありまくりなの?
0905デフォルトの名無しさんNGNG
>>904
>>901 >>902なんかが典型例。危機感をもっている対象の言語が見事に含まれている。
0906デフォルトの名無しさんNGNG
>>901
C++は重要な機能がいくつも欠落してるのでとても使いにくいよ。
0907警告 C ◆1FHX1lfdIs NGNG
>>903=>>904
お前、M$系言語しか知らない厨房よりも断然ハイレベルなJavaプログラマが
Javaしか使わないわけがなかろう。ハイレベルのJavaプログラマh
C/C++言語などの経験もありXMLもOracleも使っておる。

しかしC++とJavaを極めたものがC#を必死になって覚える必要があるか?
答えは否。C++とJavaと足して2で割った、斬新でもない言語は仕事以外で覚える必要が無い。

>そうやって、盲目なJava厨がよくする発言をしてもなんの説得力も無いよ。

自分のことを棚上げにした発言は二度としないように。
キミの発言をそのまま跳ね返してあげよう。

「そうやって、盲目なC#厨がよくする発言(例 : >>899-900)をしてもなんの説得力も無いよ。 」
「それゆえに」
「C#厨/M$厨って危機感ありまくりなの?」
0908デフォルトの名無しさんNGNG
>>906
C#はC++よりも機能欠落しすぎてとても使いにくいよ。
レス数が900を超えています。1000を超えると表示できなくなるよ。