93
1 siphon ◆MLB4OBn492
2008/06/03(火) 01:21:11 ID: R23g/VWHIV
ドの半音上。か、俺が最近フリーウェア作る時に使っている言語のどちらか。
…っていうか眠い。すいません。初版。
2 ななしのよっしん
2008/06/03(火) 02:19:11 ID: P5l/8o0vcz
C#は本当は「しー・なんばー」だけど、「しー・しゃーぷ」と読ませるみたいだね
3 yusaku ◆990818Y.6M
2008/06/03(火) 04:01:13 ID: jyLQ2QUzy3
4 siphon ◆MLB4OBn492
2008/06/03(火) 14:38:48 ID: R23g/VWHIV
>>2 字面的にはそう読めるよね
>>3 楽でイイですよー。でもC++から来た人は気づけば unsafe だらけのコードを書いてる罠
5 ななしのよっしん
2008/06/24(火) 22:43:10 ID: bb/cmT/1eV
6 猫乃 ◆ozOtJW9BFA
2008/07/05(土) 15:21:43 ID: 4RnPsSy5Do
C#という言語にいい思い出が無い・・・
むしろトラウマだらけ・・・(T∀T)
7 ななしのよっしん
2008/07/22(火) 18:42:47 ID: y8lGAS+/jh
サンプルコードと使用者の声を勝手に追加。
邪魔になってるようならさくっと削除してください。
インデント崩れた orz
8 ななしのよっしん
2008/07/22(火) 18:47:05 ID: UtOzSCHmZq
9 ななしのよっしん
2008/07/22(火) 19:03:17 ID: y8lGAS+/jh
>>8
仕事早すぎwww
ありがとうございます。
<pre>タグのことすっかり忘れてた orz
10 ななしのよっしん
2008/08/13(水) 08:18:30 ID: xNePirVatN
Linqとかラムだ式とか型推論とか入ってどんどん変態になっていっていい感じです。
11 ななしのよっしん
2008/08/21(木) 23:36:42 ID: bb/cmT/1eV
Javaとの主な違い@C#1.0時点
・値型が存在する
int,doubleのような型はSystem.ValueTypeの派生クラスとして扱われる
・struct型の存在
C++のstruct型とは違い、値型なので要注意。
・オートボクシング
オートボクシングによって、オブジェクト型に直接値型を代入できる
・デリゲート
安全で高機能な関数ポインタのようなもの
・イベント
言語自体にイベント機能を内蔵。GUIのイベント処理などの記述が簡単になる
・プロパティ
Getter/Setterメソッドの代わりに言語自体にプロパティの機能が存在する
・属性
クラスやメソッドに属性を添付することができる
JavaやDelphi,VBなどのいいとこどりを目指した無難な言語だと思われていたが、
3.0では匿名デリゲートを大幅に簡略化して表記できるラムダ式、SQLライクな構文を
SQL,XMLなどに適用できるLINQ、型推論、拡張メソッドのような経験者でも戸惑いそうな新機能や、
他にも自動プロパティや、オブジェクトの初期化子、配列、コレクションの初期化子のような痒いところに手の届く機能が追加され、
変態化が進んでいる。
12 ななしのよっしん
2009/02/07(土) 19:45:12 ID: JY8asOgsCR
Ver.4.0からは、dynamicキーワードで動的型付けができるように。
さらに、名前付き引数、省略可能引数で
//返り値の型は実行時に判定される
public dynamic Method(string x = "ニコニコ動画", int y = 1) { }
というメソッドを
Method();
Method(y: 20, x: "ニコニコ大百科");//引数の順番を自由に
Method(y: 0);//xを省略(このときのxは"ニコニコ動画")
という風に使うことが可能に。
もうなにがなにやら…
13 ななしのよっしん
2009/02/21(土) 14:46:35 ID: y8lGAS+/jh
>>12
C#4.0はDLR用に拡張される部分が大きいみたいだけど、正直デフォルト引数とか
dynamicキーワードは使う気になれないな…
14 ななしのよっしん
2009/03/03(火) 14:36:48 ID: JY8asOgsCR
>>13
でもデフォルト引数はあっても良いと思う。
引数の型が劇的に違うわけでもないときのオーバーロードを書くときには重宝するんじゃないかと。
列挙体とか、int, boolなどの引数だと、特にそう思う。
VBでは少なくともVer8.0(Visual Basic 2005)の時点で、型推論もデフォルト・名前付き引数も普通にあったからなぁ。
VBからC#に転向した人間にしては、C#でもやっと出来るようになるか、ってかんじだと思う。
15 涙の無限ループ
2009/05/11(月) 16:16:05 ID: j5m7DTxd7f
C#のおかげで長年スルーされ続けたgenericsが正式採用されてありがたかった
しかしC#が出てきてからのjavaの大幅な仕様変更は意図がわかりやすすぎて大笑いした記憶が
16 ななしのよっしん
2009/07/12(日) 03:59:05 ID: xNePirVatN
最近Javaを触り始めて思ったんだけどC#は後発だけあっていろいろ改善されてるなぁと。
JAVAはオブジェクト指向言語を自称しているだけあって、言語仕様はシンプルでそれがいいところなんだとは思う。
けど、オブジェクト指向的解決に拘る余り、なんでもかんでも継承で解決しようとするせいで複雑になってしまっている感がある。
例えばイベント周り。ファーストクラスな関数オブジェクトがあるC#は動作を直接イベントソースに渡すことができてエレガント。
JAVAはxxListenerインターフェースを継承して、イベントから呼び出されるメソッドをpublicにしなきゃならないのでカプセル化の原則に反しているように感じて気持ち悪い。
Java 7 でのプロパティ構文とクロージャがお流れになってしまって悲しい…
17 ななしのよっしん
2009/07/12(日) 09:57:30 ID: e3FiCBDKti
>>16
JavaはC++がフリーダムすぎたのを反省して作られた言語だから仕方ないね。
でも List<int> が作れないとか(オートボクシングできるならこの程度の糖衣構文は認めてくれ)
List<Integer>.toArray() が Object[] を返すとか
C#やったあとにJavaさわるとイラッ☆と来ることが多い。
18 ななしのよっしん
2009/07/14(火) 17:30:45 ID: uFb4+qUeIf
> ちょっとくらい遅くたっていいじゃない。楽なんだもの。
Javaみたいに体感的に遅くなることなくない?
実測してみてもほとんど変わらないというか、むしろ早い場合もあるというか。
19 ななしのよっしん
2009/08/21(金) 12:32:03 ID: qivwPa68Zj
>実測してみてもほとんど変わらないというか、むしろ早い場合もあるというか。
ていうかWindows上ではJavaよりC#のほうが断然早い。
VM起動するから遅いのは起動だけ。といってもJavaの起動よりは早い。
関係ないけどVBも.NETになってからC#に並ぶ速度になってんだよね…
20 ななしのよっしん
2009/12/27(日) 12:23:08 ID: w8jPiQ0ZUm
VB.NETて2chとかではバカにされがちだけど普通に使える言語だと思う
21 ななしのよっしん
2010/03/04(木) 12:03:31 ID: lwIRtirpdg
もう終わったjavaの話はしなくていいぞ
よく比較の話になるが、かなり違いすぎてて比較にならない
22 ななしのよっしん
2010/05/05(水) 23:23:24 ID: dJmFxTt9wd
2の音程のC#の概要、2行で済んでるんだから先に記述すれば?
23 ななしのよっしん
2010/07/23(金) 19:22:29 ID: NiKW5g4i00
>>22
分けた方がいいような気もする。
全然違う分野の事だし。
24 ななしのよっしん
2010/08/29(日) 18:38:36 ID: v3ZxobeiXz
別にdelegate使ったって、BeginInvokeしなきゃ新しいスレッドなんて立たない。あとwin32api使う時もunsafeとか滅多に必要ない。加えてもう最近のC#はjavaに似てないw。誰かプレミアムな人編集してあげて。
25 ななしのよっしん
2010/08/29(日) 19:23:58 ID: vc6i03zU5K
ufcppにぃにが直してくれた模様。
わかりやすくて良い記事だね。
26 ななしのよっしん
2010/09/06(月) 23:20:28 ID: O7Rb+6pfQu
Javaから来た身としてはMainを毎回mainと書いてしまう・・・
27 ななしのよっしん
2010/10/25(月) 20:12:33 ID: c/eqSRz3WX
夢が広がりそうで広がらなかったりやっぱり広がったり
そんな言語
28 ななしのよっしん
2010/10/27(水) 02:25:15 ID: M+bLEr3qiG
プロパティのおかげで全部の変数にgetXXX()/setXXX()書けば
それでオブジェクト指向だと思ってるバカの書いたソースでも
無駄に肥大化せず読みやすくなるという利点が
まあ{get; set;}って書くだけでよくなった分
何でもかんでも事実上publicにするバカにも優しくなってるんだが
29 ななしのよっしん
2011/03/21(月) 19:52:21 ID: HKLRVkonhO
30 ななしのよっしん
2011/04/29(金) 20:20:52 ID: azO3BOJhuR
Visual Studio で 「リファクター」→「フィールドのカプセル化」を選ぶとプロパティが自動的に作ってくれます。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。