C#とかいう欠陥プログラミング言語

1 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:45:53.56 ID:ka+WI/Zp0

https://teratail.com/questions/30083
こんにちは
現在C#を勉強しているのですが、個人的にgetter, setterの必要性が無いように感じました
わざわざprivateなフィールドに外側からアクセスするためなら、getter,setterなど書かず、
publicにしてしまえばいいのではないでしょうか。目的がわかりません。

コードが長くなるだけではないのでしょうか。privateにする意味は外側から、
アクセスされないためなのに結局アクセスする際の名前が変わっただけでアクセスできてしまう…

これは意味がないんじゃ..とかんじました。

2 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:47:04.66 ID:jAsbR5n/r
デリゲートとかラムダ式で挫折するよね
74 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 14:10:17.96 ID:0Yfh2aZ/0
>>2
それ使えるのがいいんじゃねーか
3 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:47:24.31 ID:O3GfuzbAd
いい質問だな
ケンモメンがギリ答えられないくらいのレベル
4 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:47:39.66 ID:qAv5WWXhx
BASICでたまにゲーム作るのが楽しい
5 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:48:19.92 ID:0rc7uZcMd
実装の隠蔽を絶対にしないと怒る人がいるからね
6 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:48:25.74 ID:xdmovF+WM
publicな変数は極力作らないと教わりました…
7 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:51:01.22 ID:LMIFk8Uyd
publicで作りまくるとどこに影響してるのか把握できなくなる
28 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:09:02.79 ID:BTaGgjIX0
>>7
いやIDEとかコンパイラは参照認識してるわけだし
そこはあんま関係ないんじゃね

getter, setter なんて面倒くさいだけだよ

特定の変数操作すると付随して他の操作も必要なら
関数用意した方が分かりやすいし
まじgetter, setter いらねー🙀

8 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:52:30.46 ID:GYZ8EXLM0
C#が良い言語か悪い言語かは置いといて
VisualStudioとの相性の良さで結果上位になってるって感じ
9 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:55:40.76 ID:kc7LB2Dcd
C#はしらんけどJavaだと「クソだがフレームワークが要求するから仕方ない」で決着ついた
10 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:55:44.62 ID:Iwi+zbOO0
言語仕様は簡単にしてほしい

っていうとエンジニアは意地悪だからじゃあブレインファックなって言うよ

11 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:56:00.01 ID:bUScGk320
処理変更に強いじゃん
必要ならチェックもできるし
12 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:56:13.68 ID:HboQ47At0
アホには理解できない機能
13 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:58:48.38 ID:mjR4YvkhH
便利な機能じゃん
あえて使わない意味が分からん
14 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 11:59:10.10 ID:zM43H7h0M
ランゲージマーケティングに引っかき回されるプログラマーって可哀想だわ
業務時間外も勉強し続けるんだろいつ遊ぶんだよ
35 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:15:54.93 ID:qcKF8wOBM
>>14
業務時間外の勉強が「遊び」だよ
15 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:00:01.28 ID:XDepX/iCa
setterは極力作らない
16 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:00:24.09 ID:+0HCm3Y60
C♯を使いやすくしてあるVBを使わない意味がわからん
17 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:01:58.71 ID:knWyRYA70
Javaみたいに.getXXXとかやらなければ何でもいいよ
18 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:03:28.30 ID:KvQh7oTz0
getはpublicでsetはprivateにできる
フィールドではできない
19 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:03:35.94 ID:OI9yAtFO0
プロパティのないJavaのうんこさが分かる
26 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:08:02.54 ID:cAJrtfLT0
>>19
やっぱkotlinだわ
20 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:04:23.17 ID:GXzl2f6Ua
そうせIntelliSenseでちょちょっと作るんだから気にするな
21 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:04:40.18 ID:BTaGgjIX0
まじかー🙀
22 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:05:53.47 ID:d6QtJeH7M
2.0まででコーディング規約作れば欠陥でもなでもない
3.0あたりからおかしくなった
23 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:06:49.83 ID:HNSrois90
絶対にプロパティにしなきゃいけないって訳じゃないし、そのままフィールド公開する事も全然可能なんだから必要性が分からないなら言ってる通りフィールドにすればいいじゃん
WPFアプリ作る場合は絶対にしなきゃいけない場面も多くなるけどな
結局のところこの辺のオブジェクト指向のメリットは小規模個人開発じゃ見出しづらいから、必要性感じないなら全部unsafe async public staticにするなりC++でベタ書きするでも問題ないと思うよ
問題が起こってから考えればいい
24 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:07:04.26 ID:dNyYq8m30
プロパティがあるからフィールドは全部privateだろ
25 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:07:36.68 ID:EDzRiNN90
Javaみたいに単純な値の取得や設定でもgetXX setXXやらせるよりいいよ
27 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:08:43.81 ID:z8ceAi4oM
ソフトウェアのモジュール性を言語があれこれ強制するわけじゃないから、
良いプログラムを書くのは人間の仕事になっている
29 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:10:08.91 ID:yLMSQ74UM
なんかバインディングで必要なんじゃなかった?
あと仕様変わったときのためとか?
30 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:12:56.69 ID:Pn2R7TZ3p
自動実装プロパティサイッキョ
31 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:13:29.73 ID:YP9fTXebp
初心者あるあるな質問だな
32 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:14:41.56 ID:WZ9ZLeWN0
こういう奴が糞コード量産するんだよな。
変数外出ししたらバリデーターが必要になるだろ。
33 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:14:42.91 ID:hyZlztWJM
全部publicにして誰もがアクセスできる優しい世界
34 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:15:22.05 ID:qD+V7RYMM
そういうものだと割り切れ
36 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:16:13.97 ID:cAJrtfLTM
Java土方だけど脳死でprivate変数書いてgettersetter作ってたわ
何でだかまったくわかんねえな
37 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:16:23.11 ID:CurgMHa20
C#は文句はあるけど言いたいことはない
みたいな感じ

それよりも最近の,NET周り総合的に誰か説明してクレメンス

38 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:16:52.23 ID:R7UXK5LrF
こいつはメソッドアクセス、こいつは直値アクセスと線引きするくらいなら
脳死で一律コーディングした方が後腐れがないと思う
39 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:19:28.53 ID:gL7z++hJd
後に仕様変更とかあって他の担当がpgしたらバグの元になりやすいじゃんパブは
40 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:19:50.96 ID:S/4zfvij0
なんも考えないでpublic string Kenmou {get; set;}でプロパティ作れるんだからいいじゃん
41 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:20:06.50 ID:iVanS3OGM
個人開発ならお約束が少ない言語のが捗る
大規模開発なら逆
42 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:22:31.31 ID:AIwi4N49d
自分の頭が足りないのを言語のせいにするなよ
その上プログラムの作法すら理解出来ていないようだし
43 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:23:43.26 ID:mbSG06a9p
値を変更した時にイベントを飛ばすようなコード書く時にいちいち呼び側で

if(value!=a.v)
{
 a.v=value;
 a.FireEvent(“v”);
}

とか書く気かなこのクズは
死んでほしい

44 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:28:41.14 ID:Q+s3w8E2a
勝手にセッターつくってんじゃねぇ!
45 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:35:42.14 ID:rU5p9uucM
プロパティ使えよ禿げ
46 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:38:01.43 ID:UJNwpd8ed

まあ、そもそもオブジェクト指向のルーツはアランケイがソースを見られたくないために
複雑に書いて、その言い訳から始まったものだからなあ
バカの解釈にバカが反応したのがオブジェクト指向

だから、純粋にロジカルシンキングでプログラミングしたいならC言語一択なんだわ
てか、1番プリミティブな言語だから、何かと自由に書けるし

因みに、クラスと構造体は同時期に出てたりする

だから別に構造体・共用体の考え方は古くねえんだわ
てか、DataとFunctionさえあればプログラミングはできるし

53 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:49:49.05 ID:GYZ8EXLM0
>>46
static classオンリーで書けば普通にそういう手法で開発出来るじゃん
今時ガベコレ無しはさすがにやってられん
その上でC#はVSの強力なサポートを得られるから窓化では基本ベスト言語
個人的な不満はstring型の関係からWeb関連がやや弱いのと関数ポインタだけ扱えない点くらいか
56 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:53:13.53 ID:UJNwpd8ed

>>53
こーゆーアホみたいなやつが増えるから
Pythonみたいなメモリ処理無視したガバガバ言語流行るんだわ

あんな重たい言語やってられねえ

65 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:04:36.93 ID:1U2/6kvYM
>>56
いやほんまそれな
47 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:40:41.46 ID:oNxtMSvqM
C#よいよね
数学系とかのライブラリがもっと充実してたらとは思うけど
もしくはironpythonをcpythonのライブラリ全部読めるようにするか
54 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:51:04.18 ID:UJNwpd8ed

>>47
お前ってメモリのこと頭にないよね?
フレームワーク使ってガバガバアプリケーション作るんだよねたぶん
48 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:42:14.65 ID:WGEP7UyYM
C#はいまだにほぼ触ってないわ。
楽しそうなんだけど金にならない
49 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:43:21.12 ID:23gz8YJ2M
なら、どの言語が良いのかを言えよ
50 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:43:54.67 ID:KgLStf8Jd
COMオブジェクトを想定しないとね
51 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:45:29.39 ID:nNgswbYW0
頭が悪そうだけど、ちゃんと質問するだけ偉いな
52 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:47:34.83 ID:QUzgvWPlM
get; private set; は便利
55 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:52:03.58 ID:7YBHBsGcd
スレタイいいね
57 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:54:04.07 ID:kc7LB2Dcd
Cはメモリ管理ミスしない超人向け言語だから
凡人には安全装置ついてる言語の方がいいんだよ
61 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:58:55.75 ID:GYZ8EXLM0
>>57
別にどんな凡人でもメモリ管理なんて時間かければ誰でもできる単純作業
時間が無限にあるなら極限までパフォーマンスに拘った設計するのもアリだけど、どんな天才でも時間は有限だから本質ではない単純作業はすっ飛ばすのが普通
数MBしか利用できない時代でもあるまいし
62 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:59:33.49 ID:UJNwpd8ed

>>57
はあ?当たり前のことすれば書ける言語ですけど
逆にメモリ管理を無視する方が考えられんわ
73 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 14:00:01.16 ID:I8VkL82D0
>>62
当然やってます風でいて漏れが幾らでも出てくるのがCだろ
現実を見なさい
58 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:55:49.85 ID:3oQJ0GKuM
今どきメモリ管理自分でやるとかやってられねえ
GCかRustみたいなの使え
59 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:56:26.54 ID:yF3/hWzz0
interfaceで足りる
cは複雑なIDEなんてなくても適当なエディタで楽にインテリセンスを実装できるから
IDEなしオブジェクト指向言語の数百倍は役に立つよ
オブジェクト指向言語はIDEとセットでないと役に立たない
60 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 12:58:30.18 ID:lmXjBNoLa
複数人で作るときに意味が出てくるんだよ
ソース管理術だわ
63 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:01:26.33 ID:1U2/6kvYM
c,vb,javaやってきて今python使ってるが何故pythonユーザーはあんなにイキってるのが多いのか不思議だ
他とそんなに変わらんような……
64 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:02:16.82 ID:Pl7b7VsX0
switch文はbreakナシを許可してほしかった
66 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:09:12.87 ID:/fORjz5+a
昔風BASICで簡単なゲーム作ってたなあ

今だと何でやるのがいいんだ?
c#?c++?

簡単にってのは無理か。。

76 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 16:27:13.53 ID:BR3rGfMOM
>>66
c#ならアンリアルエンジン4
c+ならunity
67 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:10:06.96 ID:n5OXqCMv0
全部グローバル変数でいいじゃん
68 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:16:15.19 ID:kkwxMTrqd
>>1
getterだけのクラスにすればいい
69 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:34:51.05 ID:OQ1BGHk60
今更C言語とかないわ
文字列ちょっといじるのにいちいちバッファ作って長さ検査してとか今やったら発狂する
70 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:45:53.78 ID:eh8YDFq+0
C#はプロパティがあるから便利だよな
最近はJavaにもプロパティあるんだっけ?
TypeScriptにも追加されたよな
71 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:54:58.77 ID:EuftRsvr0
今となってはpublicにしといて必要になったらリファクタリング機能で追加できるから
72 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 13:57:49.87 ID:eh8YDFq+0
昔のJavaBeansとか言ってた頃みたいにやたら細かくオブジェクト作って全フィールドにgetterとsetter作ってたのは思考停止だったね
今でも形を変えて思考停止なコーディングはたくさんある
75 名前:ひみつの名無しさん 投稿日時:2019/12/10(火) 15:43:36.29 ID:R1djEnmDd
全部、グローバル変数にしたらイイんじゃね?

コメント

タイトルとURLをコピーしました