- 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
- 全部、グローバル変数にしたらイイんじゃね?
コメント