C#は糞2.0

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2010/04/30(金) 15:25:27
前スレ
C#は糞
ttp://pc12.2ch.net/test/read.cgi/tech/1246520657/
2010/07/20(火) 02:23:31
MFCのことですねわかります
2010/07/20(火) 03:18:09
わかった。俺が悪かった。勉強しなおしてくるよ・・・。
ついでに教えて欲しいんだけど、問い合わせ結果の
DataTableって行番号使わなかったり整形しないのが
普通なの?
2010/07/20(火) 06:05:12
Excel脳だな。
2010/07/20(火) 10:21:54
うん、わかった。
有益な話帰ってこないからもういいや。
不満が出たらまたくるよ。
2010/07/20(火) 10:27:57
こいつは配列脳から離れられないようだな。
2010/07/20(火) 13:30:49
こんな辺境の隔離スレで有益な情報が帰ってくるわけないだろw
誰かに聞きたかったら素直に初心者質問スレに行け。

リレーショナルデータベースに行番号なんて概念はない。
似たような事がしたいならAuto IncrementのID列用意しとけ。
601デフォルトの名無しさん
垢版 |
2010/07/21(水) 16:30:43
C#を勉強している。
MFCよりもWindowsプログラミングが楽だから。

C#の言語仕様を見ると、C#2.0レベルで十分だと思う。
ざっと調べた限り、この言語自体を本気で勉強する気にはならない。

あくまで見てくれの部分(GUI)を作るためだけのもの。




やっぱり、C++の方が好きだ。
2010/07/21(水) 18:32:34
.NET2.0で十分って言う人は居るけど、C#2.0で十分って言う人は珍しいな。

C#3.0になるとLINQで必要になる拡張メソッド・ラムダ式・varキーワード・匿名型、地味に便利な自動実装プロパティなどが追加され
C#4.0ではオプション引数・名前付き引数・ジェネリックの共変性/反変性が追加された。

自分で型を定義してやったりすれば、これらの新機能が.NET2.0ターゲットでも使える。
.NETのバージョンが全てで、C#のバージョンには大した意味はない。(C#2.0に制限するのはVS2005でのコンパイルをサポートしたい場合ぐらい)
2010/07/22(木) 06:20:03
C#にGUIの機能なんかあったっけ?
604デフォルトの名無しさん
垢版 |
2010/07/22(木) 07:48:40
なんか仕様に一貫性がなくてやたら新しい機能を入れている。

ラムダ式なんか見ただけで気持ち悪い。ふざけているのかと。
ラムダ式でギャーギャー騒いでる奴の気がしれん。そんなオタクの
機能なんか世間では使わんよ。

自動実装プロパティのどこが嬉しい?(プロパティですらその意義を認めないが)
実装を変えてもクライアント側に影響がでないって?それはプロパティではなく
てアクセッサの特長でしょ。

拡張メソッド? 匿名型? ジェネリックの共変性/反変性?

そんなのまじめに勉強するぐらいなら、C++0xを勉強した方が
ましだ。


あいにくLINQには興味ないので
2010/07/22(木) 08:07:54
自分が理解できないものは糞と決めつけるすっぱいぶどう症候群だな、典型的な。
2010/07/22(木) 08:13:55
C#=PHP
607デフォルトの名無しさん
垢版 |
2010/07/22(木) 08:21:14
>>605

すぐ釣れると思ったw このバーカ




お前は、せいぜい使わん機能をせっせと覚えてろ
2010/07/22(木) 08:24:26
「おまえには」使えないだけだよ、おバカさんw
609デフォルトの名無しさん
垢版 |
2010/07/22(木) 08:29:28

タコが真っ赤な顔して怒った、怒ったw




訂正、「使えない」じゃなくて「使う必要もない」機能をせっせと覚えてろ。
どうせ、そんなこと得意げに言っても誰にも実社会では相手されん。
せいぜい掲示板で威張ってろや。このカスども
2010/07/22(木) 08:31:01
実社会の進歩についていけなくなりつつあるおっさんよ、鏡見ようねw
2010/07/22(木) 08:32:22
じゃあC++0xやってなよ
ラムダは目玉機能の一つだしC++/CLI(元をたどればC#)由来の新機能がたくさん盛り込まれてるし
そのほかにもC#など比べものにならないようなマニアックな機能ばっかり
2010/07/22(木) 14:38:35
こんなとこで煽らないと人に構ってもらえない寂しい人なんだから放っておきなよ。
幼稚な煽りばかりで、まじめに相手すべきことなんて何一つ言ってないんだから。
夏になって小学生だか中学生が背伸びして書き込んでると思えば
ただ無視すればいいだけだってわかるでしょ。
613デフォルトの名無しさん
垢版 |
2010/07/22(木) 14:44:18
はいはいと
2010/07/22(木) 14:45:50
理解できない馬鹿が暴れてるだけだな
615デフォルトの名無しさん
垢版 |
2010/07/22(木) 14:46:38
馬鹿がすぐに釣れるw
2010/07/22(木) 14:54:01
>ラムダ式なんか見ただけで気持ち悪い。ふざけているのかと。
>ラムダ式でギャーギャー騒いでる奴の気がしれん。そんなオタクの
>機能なんか世間では使わんよ。
馬鹿すぎるwwwwwwwwww
2010/07/22(木) 14:54:23
スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、

 釣り師 ↓     
.            /| ←竿
     ○  /  |
.    (Vヽ/    |
    <>     |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
             |
  餌(疑似餌)→.§ >゚++< 〜
                 の組み合わせだと思ってたんだけど、

最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
 これは、どっちかというと、



          ,〜〜〜〜〜〜 、
|\     ( 釣れたよ〜・・・)
|  \    `〜〜〜v〜〜〜´
し   \
゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ
          ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                 ト>゚++<
              ノ)

かと思うんだけど、どうよ?
2010/07/22(木) 14:56:29
可哀想だから言ってやるなよ
2010/07/22(木) 15:53:51
ラムダも使えないとか冗談でしょ。釣られるなよ、お前ら。
C++ でも Boost 使ってればラムダ使うし、冗談にもほどがある。
2010/07/22(木) 16:08:24
>>619
ラムダ式なんか見ただけで気持ち悪い。ふざけているのかと。
ラムダ式でギャーギャー騒いでる奴の気がしれん。そんなオタクの
機能なんか世間では使わんよ。
2010/07/22(木) 16:30:12
世間ではプログラミング言語なんか使わんよ、機械語で十分。とか豪語していた先達の
後を追わないでくださいねw
2010/07/22(木) 16:39:19
井の中の蛙
623デフォルトの名無しさん
垢版 |
2010/07/22(木) 17:06:25
>>617

しかし、あんたも暇だね〜〜w
2010/07/23(金) 12:34:07
ラムダは便利だと思うけどLINQどうなのかね?


2010/07/23(金) 13:01:58
使い方覚えたら今までやってた事が馬鹿らしく思えてくる便利さ
そしてLINQ使えないバージョンで開発する時に軽く欝になる
2010/07/24(土) 21:08:11
LINQなかったら生きていけないでしょ
2010/07/28(水) 15:58:35
C#のジェネリック、もっと便利になりませんかねぇ
C++だとかなりコード減らせるんですけど。
C++テンプレートで肥大化するってのも書き方次第だし。
2010/08/01(日) 10:16:49
ジェネリックは実行時に展開されるからC++みたいな言葉遊びは原理的にできない
コンパイル後もポータブルでないといけないからC#の言語仕様に依存する要素を残すわけにはいかない
2010/08/01(日) 12:21:22
ジェネリクスはC++>>(超えられない壁)>>C#>>Javaって感じだな
2010/08/01(日) 16:32:33
genericsに関しては、C#>>Java>>(超えられない壁)>>C++ だろ
2010/08/01(日) 19:03:46
ジェネリックならそうなるな。
2010/08/01(日) 20:03:17
実行時とはいえ特殊化される(されない場合が多いけど特殊化されているものとして扱える)分
Javaよりはずっとテンプレートに近い
2010/08/01(日) 21:51:15
テンプレートは同じような型を自動的に展開してくれるだけ。非常に高度なマクロといってもいい。
ジェネリクスは根本的に異なる。
2010/08/01(日) 21:54:08
型→型に関するコード
2010/08/02(月) 08:49:46
.NETのジェネリックはJITコンパイラレベルのテンプレートみたいなもの。

ジェネリック型を特殊化する機能がランタイムに備わってる。
実際には、コードが型ごとに展開されるのは値型の場合のみで、
参照型の場合は共通のコードが使いまわされるけど、フィールドなどはそれぞれ
別に作られるから気にする必要なし。
2010/08/02(月) 12:22:16
んー、よくわからないけど、確実に関数インターフェイスと本体を
用意しなければいけないから現状以上は難しいってこと?
2010/08/02(月) 19:01:18
a + b という式があったとして、これが実際にどういうコードになるかは型によって違うだろ?
整数同士の加算の命令になるかもしれないし浮動小数点かもしれないし演算子オーバーロードかもしれない。
いずれにせよコンパイル後には a + b という「意図」は失われる。
コンパイル時に処理されるテンプレートの場合は置き換えてからコンパイルするだけだからいいんだけど,
.NETのジェネリックは実行時に処理されるので先にコンパイルしとかないといけない。
だから a + b みたいな、型によってコードが変わるようなものは残せないわけ。
2010/08/02(月) 19:04:06
で、どこの誤爆?
2010/08/03(火) 01:15:45
どう読めば他のスレからの誤爆だと誤読できるんだ?
2010/08/03(火) 07:07:36
>>639
あまりに内容があれなので、皮肉ってるんだろ。
2010/08/24(火) 16:01:22
あーほんとにC++のconstが恋しいわ
2010/08/24(火) 16:08:39
const使うなら徹底的にやらないと意味がないから
さまざまな言語の最大公約数的な仕様の.NETでは難しい
643デフォルトの名無しさん
垢版 |
2010/10/04(月) 13:50:21
C#やってるやつは無能の代表
2010/10/05(火) 00:51:17
やっぱり糞でした

Visual Studio 2010 Part10
http://hibari.2ch.net/test/read.cgi/tech/1285576250/206-254
2010/10/05(火) 02:41:11
C++やってる奴が糞
2010/10/05(火) 04:26:15
>>643
スレタイみような
2010/10/07(木) 08:48:37
ぶっちゃけ、糞であったVBを喜ばすためにできたのがC#
648デフォルトの名無しさん
垢版 |
2010/10/07(木) 09:30:11
実用:C/C++/Java/PHP
Tool:Java/VB

C#<・・・
649デフォルトの名無しさん
垢版 |
2010/10/07(木) 09:51:49
C#って空き缶拾いに等しいよね
650デフォルトの名無しさん
垢版 |
2010/10/07(木) 13:25:51
なんかやってると、やたらと脱力感に襲われてくるのはなぜだろう・・
2010/10/07(木) 16:50:30
最初からジェネリックを考慮して設計されていれば
良い言語になっていたと思われる。
そういえばインターフェイスは最初からあったのかね?
2010/10/07(木) 17:00:13
>最初からジェネリックを考慮して設計されていれば
Javaの悪口言うな
2010/10/07(木) 21:36:34
>>650
肝臓の病気かもしれん
病院へ逝け
2010/10/07(木) 21:39:13
genericsに関しては、まともに普及している言語の中では、もっともすぐれているけどなあ。
2010/10/07(木) 22:48:32
>>652
Javaは強引に後付けしたせいで酷い出来になったな。
C#はgenericsを考慮してCLRが再設計されたお陰で良い言語になった。
2010/10/08(金) 02:31:10
>>654
まともに普及している言語の中でgenericsに対応してるのってC#かJavaくらいじゃね
C++はtemplateで別物だし
2010/10/08(金) 03:19:45
Java と比べても今更感があるな。
2010/10/08(金) 12:23:55
Javaのgenericsは使ってる連中から見ても微妙だと思うだろ。
659デフォルトの名無しさん
垢版 |
2010/10/08(金) 12:40:12
Javaのgenericsは実装のアプローチはC++に近いけど
C#のほうがずっとテンプレートに似た動作をする
2010/10/08(金) 13:42:09
単なる糖衣構文だから
ジェネリック型の配列を作れない
値型を入れることができない
実行時にメタデータを参照することができない
ジェネリック型の例外が使えない

などの制約がある
2010/10/09(土) 12:26:40
間違ってJavaのアンチスレに来てしまったようだ
2010/10/09(土) 13:08:03
>>651
コイツのせい
2010/10/10(日) 12:46:25
C#, VB.net, javaはクソすぎ
メモリ管理も出来ない素人向けのツールだからな
上記言語は正しくは無能な初心者のための生存保護のための言語である

初心者を脱出したいヤカラは
C++でネイティブあぷりつくっとけや
2010/10/10(日) 18:47:13
>>663
C++もGCでないだけでメモリ管理は自動になるように実装する。
2010/10/10(日) 20:47:28
>>663
Objective-Cのretainはどう思う?
2010/10/10(日) 22:24:01
C++ 使うだけでメモリ管理できてる気になってるなんて。。。
667デフォルトの名無しさん
垢版 |
2010/10/11(月) 16:23:46
個人的なWinアプリを作るのにC#ほど楽な言語は無い。
2010/10/12(火) 10:21:14
それゆえ、C#は糞と言われる根源である
頭が悪くてもできるのはC#
たが、質も悪い

職人が作った鞄と、受刑者は身障者が作った鞄、
どちらがいいかと考えれば自ずと分かる
分からず、C#を使い続けているのは糞の極みである
2010/10/12(火) 21:00:44
>>668
比喩を正しく対応させられないお前が糞なのは確定
2010/10/13(水) 06:45:30
>>668
結構難しいよ>C#
難しいけどその難しさで得るものが1つもないのがC#
2010/10/13(水) 06:46:21
メッセージボックスを親ウィンドウの中央に出すのに苦労しました
2010/10/13(水) 09:28:35
C#が難しい言ってるやつは低能
プログラムやる資格なし
他の人に迷惑だから頭悪いやつはやらないでいただきたい
2010/10/13(水) 15:05:54
>666

初心者にはわからないところだからw
ムリしてつっこまなくても…w
674デフォルトの名無しさん
垢版 |
2010/10/15(金) 22:56:18
C#っていうより.NETの話かもだけど、何で構造体ってnullにできないの?
nullできないならクラスの方が便利じゃないか???
JavaではDimensionもRectangleもnullにできるから、そこはJavaの方が便利。
2010/10/15(金) 23:00:24
よくわかってないのに糞って…
値型として宣言した変数にnullを代入できないのはC++やJavaでも当たり前のこと。
Javaではintなどのプリミティブ型の変数にnullを代入できないのと同じ。
ちなみにC#ではnullableという機能があって、擬似的に値型にnullを代入できる。
676デフォルトの名無しさん
垢版 |
2010/10/15(金) 23:05:14
>>675
それで、メソッドがつけられたりいろいろ昨日盛りだくさんな構造体を、全部クラスとして
再定義したらどんな不都合が考えられますか?たとえばDateTime, Rectangle等は
nullにならない以外はほとんどクラスと変わらない気がするんだが?
たとえば日付をパースする共通部品とかを作ったとして、パース失敗時の異常戻り値
をどうするか。java.util.Dateならnullを返せばいいわけだが、DateTimeはnullを返せない。
2010/10/15(金) 23:42:51
遅い。GCの負担になる。ネイティブコードとの連携がやりづらい。
例えば、Java・.NETとも、Rectangleを返すメソッドは基本的には常にコピーを作って返す。
内部のフィールドに持ってるインスタンスをそのまま返すとカプセル化が壊れるから。
そういうときにクラスだと非常に非効率。
配列アクセスの速度なんかも全然違う。
2010/10/16(土) 00:50:12
ぬるぽ
679デフォルトの名無しさん
垢版 |
2010/10/16(土) 01:05:34
けど今時Rectangleの複写ぐらいで遅くなるマシンなんてないよな。
前から思っていたんだが、もしかして.NETってGCがショボい?
.NETのGCアルゴリズムって全く話題にならないよな。ひょっとしてモノリシック
なヒープをシングルスレッドでデフラグしてたりする?
2010/10/16(土) 08:24:29
>>679
いろいろアンチがやってくるが、これほどJavaを理解していないやつも珍しい。
2010/10/16(土) 09:47:25
確実に遅くはなる。それが問題になるかどうかは使い方次第。
ベクトル型のインスタンスを大量に作って計算するような状況では使い物にならない。
なんでJavaはプリミティブ型を特別扱いしてるかわかる?
オブジェクトにすると「遅いから」だよ。それと全く同じこと。
2010/10/18(月) 01:52:20
Java のGC が話題になるのはただ単に Java が有名だから。
実装が素晴らしいわけではない。
2010/10/18(月) 08:45:23
Java の GC はいろいろがんばってるよ。
すくなくともそこらのスクリプト系言語の実装とは比較にならない。

MS 製 Java の GC は Lisp のすごい人が書いたとか伝説もあったしなー。
2010/10/18(月) 09:10:42
379 デフォルトの名無しさん [sage] 2010/10/18(月) 07:49:37 ID: Be:
    suge------
    http://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_04/csharp4_04_01.html

380 デフォルトの名無しさん [sage] 2010/10/18(月) 08:40:52 ID: Be:
    オプション引数・名前付き引数 (C# によるプログラミング入門)
    http://ufcpp.net/study/csharp/sp4_optional.html


    これか。C#にデフォルト引数がついてなかったとは知らなかったな。
    呼び出し側で評価されるゆえの実装の都合なのかこれ
    名前付き引数がVBにあったというのは衝撃的

    しかし何故C#4?
2010/10/18(月) 10:30:47
デフォルトの引数は色々問題ありなので、アンダースが反対していたそうです。
686デフォルトの名無しさん
垢版 |
2010/10/18(月) 12:32:31
デフォルト引数がサポートされた最大の理由はCOM相互運用のため。
VB.NETと比べたときに唯一C#が致命的に弱い部分だったから。
2010/10/18(月) 12:37:36
ダックタイピングも同時に導入されたので、COMはオートメーションだけサポートということでもよかったんじゃないかとは思う。
2010/10/18(月) 16:44:10
C#の場合、デフォルト引数が問題なのは、オーバーロードの解決が
複雑になったりすることよりも、アセンブリのバージョン間の互換性が失われることが問題。
デフォルト値がコンパイル時定数として呼び出し引数に埋め込まれてしまうので
クラスライブラリで使うとデフォルト値を二度と変更できない。
アセンブリ外から見えるメンバにデフォルト引数が使われてると
VSのコード分析ツールやFxCopが警告を出す。
2010/10/19(火) 21:52:02
いつの間にかデフォルト引数出来るようになってたのか。
知らんかった。

ところでこのobject型使いまくりの.NETライブラリを見てくれ
こいつをどう思う?
2010/10/19(火) 21:57:34
言うほどobject使われてないだろ
2010/10/27(水) 11:36:00
void* みたいなもんじゃね?
692デフォルトの名無しさん
垢版 |
2010/10/27(水) 22:18:30
public struct AnyData {
  public object field1;
  public object field2;
  public object field3;
  public object field4;
}

どうだ、すごいだろ?何でも入るぞ?



まあ仕事でこれは見たこと無いけど、DBのテーブルが全部VARCHARで列名がCOL1〜COL30
みたいのは本当に見たことがある。テーブル名はたしか、TABLE30とかだった。
見た瞬間机を蹴飛ばしたい気分になったけどね。
2010/10/28(木) 00:38:47
C#はコーディングが楽になった分格段にC++より糞コードを生み出す温床になってるよな
2010/10/28(木) 01:28:15
>>693
C++の絶望的糞コードとC#の絶望的糞コードなら、C#のコードのほうがまだ対応出来る。
695デフォルトの名無しさん
垢版 |
2010/10/28(木) 22:08:36
javaのthrowsみたいに例外制御の流れを強制できると便利なんだけどな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況