C#, C♯, C#相談室 Part97

■ このスレッドは過去ログ倉庫に格納されています
2022/12/21(水) 10:18:38.02ID:DxBIri9+0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2023/01/28(土) 16:21:44.03ID:SSo2rJoBd
>>198
Desktop版Teams糞すぎでweb版使うよね
2023/01/28(土) 16:31:49.12ID:qgiHv5Wf0
XAMLとロジックを分離することでデザインだけに特化したプロフェッショナルに任せられるとかいうけどそんなことしてるところあるのかね
2023/01/28(土) 16:33:29.41ID:qgiHv5Wf0
C#を知らずに書けるのか
2023/01/28(土) 16:34:51.45ID:zBTU9IJ/0
XAMLに文句言ってる人もべつになにかもっと良い代替案があるわけでもないんだろ?
jsonかyamlかあるいはまたなにか独自仕様でも作るか。
2023/01/28(土) 18:27:49.87ID:DKSWYQK4a
Windowsデスクトップアプリの次のスタンダードはWebView2に決定してるよ
C#とも何の問題もなく連携できるから、もう何も心配することはない
ただHTML/CSSだけできればよい
210デフォルトの名無しさん (ワッチョイ 0b01-9yTq)
垢版 |
2023/01/28(土) 18:34:56.52ID:x9KLfrKP0
WinFormsだけを強化/ブラッシュアップして行くだけでいいのに
今現在Microsoftが決定してることは全部間違った方向
211.NET MAUI HighSchool (ワッチョイ 9a01-mpM/)
垢版 |
2023/01/28(土) 18:37:51.27ID:Akv+btg40
>>207
正直余裕
212.NET MAUI HighSchool (ワッチョイ 9a01-mpM/)
垢版 |
2023/01/28(土) 18:39:12.56ID:Akv+btg40
HTML,CSS,JavaScriptほど密結合の強い組み合わせないと思うけどな
WinFormもそうか
213デフォルトの名無しさん (アウアウウー Sa47-rfgy)
垢版 |
2023/01/28(土) 18:51:54.18ID:DKSWYQK4a
>>206
現実には無いね
Web開発ではHTML/CSSですら自分で書けるデザイナーは稀であり、デザイナーはお絵描きするだけでHTML/CSSはエンジニアが書くのが普通だ
ましてやC#エンジニアしかまず目にしないXAMLを扱えるデザイナーなんて存在しない
2023/01/28(土) 19:08:33.35ID:acHVjvs20
>>208
JavaFXと言う屍なら
2023/01/28(土) 21:22:31.10ID:0L7E+iYP0
xamlはさくっと簡易なgui作る程度なら便利ではあるがxamlだけだとboolの反転すらできないから結局コード書くことになるんでbindingクソ喰らえってなる
216デフォルトの名無しさん (ワッチョイ e301-s91j)
垢版 |
2023/01/28(土) 21:27:00.01ID:p3y/mDFs0
XAMLでも何でもいいから
ひとつこれと決めてしっかり枯れるまで面倒見てほしい
2023/01/28(土) 22:47:24.30ID:Q8ohQpbl0
XAMLはもう枯れてるのでは?
2023/01/28(土) 23:00:10.63ID:acHVjvs20
x:Bindだとコンバーターは普通のスタティックメソッドでコンパイル時に型チェックしてくれるから大分良くなってるんだけどね
2023/01/29(日) 01:16:07.51ID:R24XfIrD0
>>209
>Windowsデスクトップアプリの次のスタンダードはWebView2に決定してるよ
もう2ひねりぐらいしないとコレ常用は厳しいなあと思う
HTAの再発明の上に実行環境がフォルダ掘ったりで劣化しとるのにスタンダードになるとは到底思えない
外人にも概ね評判悪いみたいだし
2023/01/29(日) 09:49:06.93ID:fP4u16yma
>>208
xamlなんて使わないで、C#でUIを簡単に定義できるようにすればいい
覚えることも減るし、コードとの親和性も良くなる
2023/01/29(日) 10:28:03.21ID:tvJJpmA20
>>206
扱えるデザイナとそもそもツールがないような?
2023/01/29(日) 11:42:03.87ID:57gL/0v0a
>>220
WPFはXAML使わずC#だけで書けるからそれが良けりゃ自分でライブラリ作れよ
2023/01/29(日) 12:02:19.28ID:1KUwXnGJ0
>>220
MauiにMVUってコードでUI記述できるやつあるけど使いやすいか?
https://qiita.com/MAUIHighSchool/items/5f55bbb3557368b0a1f4
2023/01/29(日) 12:12:03.57ID:Bt1+Pj/S0
flutterっぽいな
2023/01/29(日) 13:15:24.15ID:R8JESUlY0
>>223
今flutter取り組んでるけど、
単なるデザイン処理がコード中に占める割合が高くて
めちゃ読みにくて慣れんわ
226デフォルトの名無しさん (ワッチョイ e301-s91j)
垢版 |
2023/01/29(日) 13:27:12.72ID:8bst+jr10
GUI黎明期は間違いなくコードでUI記述してたわけで
先人がこれはあかんと否定してきたものを今更リベンジさせる必要があるんだろうか
227.NET MAUI HighSchool (ワッチョイ 9a01-mpM/)
垢版 |
2023/01/29(日) 13:50:59.81ID:i3THky500
今WinUI3で5chブラウザ作ってるんだがレスのアンカーだのハイパーリンクだと画像のリンクだのを抜き出す処理を考えてるんだがどうしたものか迷ってる
当然その書かれた位置にそのボタンやリンク貼り付けなきゃいけないんだがアンカーやリンクとその他記事は同じ行にはない(<br>で区切られてる)と仮定して<br>でSplitかけて行ごとでRegexとかを行おうと思ってるけどこの方法あってるか?
228デフォルトの名無しさん (ワッチョイ e301-s91j)
垢版 |
2023/01/29(日) 13:55:11.83ID:8bst+jr10
>>227
自前でパーサー書くよりもその手のスクレイピングライブラリは数多あるからそれ使った方が早いと思う
2023/01/29(日) 15:11:11.20ID:Srs41jrSa
行で区切る意味がわからん
普通に置換しろよ
2023/01/29(日) 15:15:12.51ID:Inli+tITa
WebViewならこれでlinkClickedにjsで独自処理書くなりそこからC#呼び出しするなり

<a xxx="~" href="~" yyy="~" >○○○</a>

<span class="link" data-info="ここに情報を入れる" onclick="linkClicked(this.getAttribute('data-info'))"
>〇〇○</span>
2023/01/29(日) 15:18:44.23ID:9PfpQq5Na
正規表現もこんな感じので充分やろ
<a.+?href="(.+?)".+?>(.+?)</a>
2023/01/29(日) 15:19:58.32ID:I1Pjf1q2a
+じゃなくて*か
233.NET MAUI HighSchool (ワッチョイ 9a01-mpM/)
垢版 |
2023/01/29(日) 16:56:28.41ID:i3THky500
>>229
置換だとコントロールが作れない(ハイパーリンクコントロールなどがそれぞれ必要)
234.NET MAUI HighSchool (ワッチョイ 9a01-mpM/)
垢版 |
2023/01/29(日) 17:00:22.89ID:i3THky500
WebViewでいけたらいきかったけどMVVMのBingingができんかった…(要素名.NativeToString(HTML))なんだけどXAMLにそれがなかったわ…orz
2023/01/29(日) 17:28:42.21ID:pHVlG+oVd
ソフト板の専用スレの連中は役に立たんのか?
2023/01/29(日) 18:01:46.16ID:1KUwXnGJ0
>>234
1.ビヘイビアを作る
2.ユーザーコントロールにWebViewのっけて依存関係プロパティーを設置してVMからコントロール
3.サービスを作ってVでWebViewのっけてからVMにインジェクションする

このどれかが普通かな?
237.NET MAUI HighSchool (ワッチョイ 9a01-mpM/)
垢版 |
2023/01/29(日) 19:07:46.52ID:i3THky500
>>236
なるほどサンクス2が簡単そうかなぁ
238デフォルトの名無しさん (ガックシ 0663-cnaq)
垢版 |
2023/01/29(日) 19:21:55.55ID:XFhpsu3B6
初歩的な質問だと思うが書き込み失礼
win32APIでArduinoとシリアル通信をするコードを書いてる
static void Main(string[] args)
{

SerialPort serialPort;

serialPort = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
serialPort.Open();

while (true)
{
var pt = GetCursorPosition();
Console.WriteLine($"X:{pt.X} Y:{pt.Y}");

if ((pt.X > 500) && (pt.X < 1000) && (pt.Y > 300) && (pt.Y < 600)) {
serialPort.Write($"X:{pt.X} Y:{pt.Y}");
}
else
{

}

Thread.Sleep(100);
Console.Clear();

}

serialPort.Close();
}
Mainの部分がこんな感じなんだが、if文の中にマウスカーソル位置の範囲指定をしていて、カーソルがその範囲に入るとシリアル通信が始まってArduinoに接続したモータが動く(ここまではできた)
でも指定範囲を出るとそのモータが初期位置に戻るコードがうまく書けない。C#側でシリアル通信を中断して初期の段階に戻すような方法ある?elseの中に何書けばいいかわからない。
2023/01/29(日) 19:50:03.63ID:R24XfIrD0
>>238
else
{
serialPort.Write(初期位置);
}
で何か問題あるのかな?
初期位置が何を示すのか知らんけど、シリアルはフロー制御なしなら基本垂れ流しになるから、
開始とか中断の概念は持たない
else節で100ms毎に初期位置座標を送り続けるのが嫌なら送信フラグでも持って送ったか判定すればいいのでは
240デフォルトの名無しさん (スップ Sd5a-xF8Z)
垢版 |
2023/01/29(日) 20:04:34.68ID:qu76jy1yd
シリアル通信ってただのbyte列のやり取りでしかなく、中断とかの概念は存在しない。
Arduino側はreadlineかscanfかやってるだけでしょ?

この場合はifのtrue側で$"set:{},{}"、false側で$"default:"を送るのがいいんじゃない?

「初期の段階に戻す」とやらが何をするのかは知らんが、C#側が黙ってたらArduinoは何もできない
241デフォルトの名無しさん (ガックシ 0663-cnaq)
垢版 |
2023/01/29(日) 20:11:58.96ID:XFhpsu3B6
>>240
Arduino側はSerial.availableで信号読み取ってる
それがいけないのか
初期の段階に戻すのは、(Arduino側でサーボモータの初期位置を0度にしてるから)指定範囲を出るとサーボモータが0度戻るようにしたい。(つまり信号が送られる前の状態に戻したい)
でもあんまりArduinoの話すると板違いって発狂するだろ
2023/01/29(日) 20:31:37.77ID:R24XfIrD0
サーボモーター云々の話なら座標以外に「初期の段階に戻す」のシリアル命令をarduino側で定義すればいいだけなのでは
2023/01/29(日) 20:58:08.63ID:h+Z7+/+00
>>241
C#というよりプログラミングの初歩的な設計の話だから怒られんだろ
板違いってのはそういうことな
>>239が大体答え言ってるじゃん
2023/01/30(月) 03:54:10.75ID:Yr+dar0w0
電電板にArduinoスレがあるの知らないかもしれないから一応リンクを。サーボやArduino自体の使い方とかはそっちで
Arduino初心者熱烈大歓迎質問スレ part36
https://rio2016.5ch.net/test/read.cgi/denki/1672830085/
245デフォルトの名無しさん (ワッチョイ 0e02-cnaq)
垢版 |
2023/01/30(月) 11:22:46.40ID:SqjDQYar0
>>243
ツンツンしてんな~
相談室なんだからいいだろ
2023/01/30(月) 19:52:43.52ID:afDHhw4l0
パソコンのWebから秀丸の文書を開きたいのです。例えば、C:\\Data\\sample.txtというファイル
で、URLスキームというのを見つけました。
https://qiita.com/kojimadev/items/74100c8557a92939ef69
ここでレジストリにHidemaruを設定したら、秀丸を起動はできました
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\XXX]
@="URL:Hidemaru Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\Hidemaru\shell\open\command]
@="\"C:\\Program Files (x86)\\Hidemaru\\Hidemaru.exe\" \"%1\""
ですが、%1 のところですが、ブラウザから呼ぶときに
Hidemaru:C:\\Data\\sample.txt
としても、Hidemaru:C:\\Data\\sample.txt というフルパスが秀丸に与えられて頭のHidemaru:が邪魔になります
なので、このスキーム部を削除するために、ここではC#を使って加工しているのですが、このC#はどこにどう配置したらいいのでしょうか
私はC++等のプログラムはできますが、C#とかは初めてです
このC#はクライエントのhtmlファイルに<script></script>とかに入れてつくるのでしょうか。やってみたのですがうまく動きません
どうしたらいいでしょうか?
クライエントは、簡単に
<!DOCTYPE html>
<html>
<head>
<title>テスト</title>
</head>
<body>
<a href="Hidemaru:C:\\Data\\sample.txt">sample.txtへのリンク</a>
</body>
</html>
としました
2023/01/30(月) 20:11:57.30ID:q0Wux2Rd0
なんか勘違いしてるっぽいな
URLスキームで、hidemaru.exeではなくて自作のexeに関連付けて、
自作のexeでmainに引数として渡されてきたURLを加工して
hidemaru.exeを改めて起動するって話だよ
C#でないとできないことではないし、C++に慣れてるならそれでCreateProcessすればいいんじゃない?
248デフォルトの名無しさん (ワッチョイ ffad-5T4A)
垢版 |
2023/01/30(月) 21:34:40.15ID:afDHhw4l0
ああ、そういうことかあ、2段階踏まないとダメなのね
自作の簡単なC言語のHello!みたいのを作ってその引数に
http:---が入ってきてそれを加工して秀丸を起動しないといけないってこと?
htmlファイルだけで直接起動は出来ないのね
2023/01/31(火) 00:29:45.17ID:hLRYDq4/M
確かURLスキームはセキュリティホールになるから世界中で使われなくなってきたはずなんだけど
今更なんで使うんだ?
2023/01/31(火) 03:14:23.94ID:8roNDUlQd
馬鹿だから
2023/01/31(火) 05:00:45.55ID:JnYo5yDia
もし、ブラウザのHTML から、ローカルPC 内にアクセスできたら、
世界中のパソコンが乗っ取られているはずw

ローカルPC内で起動しているサーバーを通さないと、アクセスできないはず

Ruby on Rails などのLinux ウェブ系をやっていない、
Windows の香具師は、平気で恐ろしい事を考える
2023/01/31(火) 07:03:33.59ID:eeFPm4F70
>>246, 248
カスタムURLスキームでそういうことをする場合は、わざわざC#で作らずとも、一旦WindowsビルトインのWSH(JScript)で中継してパラメータをサニタイズするといいよ(レジストリ登録(*)さえ済ませておけばどこでも動く)

(*)下記のようにwscript.exeに対して「パラメータをサニタイズ+それを任意のプログラムに渡して起動するJScriptのパス」と「パラメータ」を渡す
C:\Windows\System32\wscript.exe "C:\script.js" "%1"
2023/01/31(火) 09:08:38.25ID:31HE1wSM0
>>252
ありがとう。AHKで作りました。ローカルで使うのでセキュリティとかは大丈夫です
2023/02/02(木) 10:26:07.11ID:yh09g2+40
>>227
適当なパーサライブラリでASTに変換
ASTからParagraph(Microsoft.UI.Xaml.Document)を構築
RichTextBlockのBlocksにParagraphを追加
2023/02/02(木) 21:06:57.50ID:pqzuUQeLM
いい加減MAUI君に構うのはやめろよ
全然C#固有の問題じゃないし…

winforms,WPF,ストアアプリ、UWPで専ブラ作ってたけど
そういうところも含めて自分で考えて実装するのが醍醐味じゃないのかなあ?

考えてもわからないなら過去にオープンソースで開発されたものがたくさんあるんだからそれを見て見るとかやりようがあるんじゃないかと
2023/02/09(木) 16:28:46.38ID:Zlo87tEd0
https://www.publickey1.jp/blog/23/cvisual_basicnet.html
257デフォルトの名無しさん (ワッチョイ 1301-ksrJ)
垢版 |
2023/03/07(火) 21:33:28.99ID:eLRrbAoH0
C#の妙技はイベントにあり
2023/03/08(水) 21:11:06.25ID:+FGbWqvad
C#でつくったアプリをMSRemoteApp化したら、Cursorを変更しても反映されないの?
259デフォルトの名無しさん (アウアウウー Sa89-lsaJ)
垢版 |
2023/03/11(土) 12:56:48.21ID:nD1lGm6ya
皆さんnintって使ってますか?
他とやり取りすることなく、メソッド内で完結するただの変数として使う場合、とりあえずintを使いますよね
でも今後64, 128ビット幅が主流になったときを考えれば、nintって書いといた方がいいですよね?(そんな時代がくるかはともかく)
少なくともコンパイルされた時点でnintはintと同等かそれよりも効率がいいと(個人的に)思うんですが、でも誰もnintなんて使っていません
32ビット(何なら8でも)以上あれば問題ない、というケースでnintを使わない場合というのは、単にintの方が慣れてるからだけなんでしょうか?
260デフォルトの名無しさん (スップ Sd7a-s0vD)
垢版 |
2023/03/11(土) 13:18:11.95ID:EyA4I9HNd
nintとnuintはIntPtrとUIntPtrの別名なので、ポインタ(かポインタオフセット)にしか使わない

つまりはプラットフォーム依存であることの明示なので、
他のint型との相互作用(大量に出てくるだろうね)を考えるだけでかなりの脳のリソース持ってかれる
2023/03/11(土) 14:01:42.70ID:M3BsWLaP0
全部でBigIntegerを使っとけば間違いないよ
2023/03/11(土) 14:13:05.01ID:DhHi6Ld4r
結局既存のメソッドを呼び出したりするときにintにキャストしなきゃいけなくなるんでしょ
ごくわずかに数字演算のパフォーマンスが改善したところで毎回キャストするコストのほうが余計にかかりそう
2023/03/11(土) 14:19:17.92ID:M3BsWLaP0
画面の実座標がいまだにshortで足りる範囲とは思わなかったなあ
人間はそれほど目に頼っていないということなのか
2023/03/11(土) 15:13:14.67ID:2pmAPF6nM
何言ってんだコイツ
2023/03/11(土) 15:15:24.57ID:DTxKl55ja
shortって32767だろ
そんな解像度要るわけないじゃん
2023/03/11(土) 15:21:17.18ID:0sr4dQ+W0
8Kディスプレイで4画面を横に並べればってとこか
当面要らんな
2023/03/11(土) 16:42:12.30ID:WGybrWtY0
>>262
どうせマシン語になって同じレジスタに入る分にはコストは変わらん
浮動小数点→整数とかならコスト掛かるけど
2023/03/11(土) 17:38:46.83ID:vi8/lqqRM
>>259
普通の人は使わない
C++やwindowsのAPIやwinprocやDLLみたいのとやり取りする人間にだけ必要な機能で自分には非常にありがたい
2023/03/11(土) 17:41:39.39ID:vi8/lqqRM
今時点でC#内で完結する内容でnint使う局面はないと言える
2023/03/12(日) 09:59:16.38ID:WhaHkT9k0
速度よりも動きが変わっちゃう方が問題
271デフォルトの名無しさん (ブーイモ MM9a-9Bo7)
垢版 |
2023/03/16(木) 22:30:13.17ID:XMsdgbaMM
データベースの列名に合わせて、クラスのフィールド名を日本語で表そうと思います。
しかし、インテリセンスで頭文字でフィールドの候補を選択する便利さはアルファベットのフィールド名に劣るので、合わせ技で次のようにフィールド名を定めようと思います。

public string BookName__書籍名;

アルファベットだとより複雑な意味を持つ名称でニュアンスがつかみにくいので、このように合せ技を、使おうと思うのですがどうでしょうか。
2023/03/16(木) 22:37:25.26ID:coFKYGG/0
どうでしょうかって知らんがな
上司に聞け
2023/03/16(木) 23:30:46.22ID:nNGsntyCM
>>271
>public string BookName__書籍名;
これだと英語名その対訳の組み合わせを間違えないように覚えてないとだめなのでメンテナンスコストがあがるだけな気がする
データディクショナリを整備したりインテリセンスのmigemo対応を頑張ってみるといいんじゃまいか?
2023/03/17(金) 00:11:50.11ID:I7yGzGSd0
この日本語力だとコード品質も心配になる
275デフォルトの名無しさん (ワッチョイ 757f-9Bo7)
垢版 |
2023/03/17(金) 00:52:09.32ID:5jT41ER00
>>273
たしかに。
日本語名称だけにしておこうかと思います。
ドット打って、一覧から素直に候補を選びたいと思いました。
276デフォルトの名無しさん (ワッチョイ 757f-9Bo7)
垢版 |
2023/03/17(金) 00:54:00.54ID:5jT41ER00
>>272
そういう上司いません。いるけど、専門外。
2023/03/17(金) 08:02:55.94ID:5m2XUDK70
変数名に日本語使われてるの見ると、ここの開発者ゴミだなってなる
2023/03/17(金) 12:27:39.16ID:qBIjuKdn0
世の中にはいろんな人がいて、様々なケースがあることを想像できない世間知らず
2023/03/17(金) 12:44:03.16ID:H2liKR380
普通はフィールドを単独の変数として扱わずにテーブル毎のクラスを作って管理する
DapperやEntityFrameworkなどのORMでは強制的にそうさせられる
これを機にORMへステップアップしてみるのも面白いと思うよ
2023/03/17(金) 16:32:19.54ID:Xu7B9KVM0
クラスのフィールド名って最初に書いてる
2023/03/17(金) 16:34:27.72ID:m9SyQiz8a
そもそもフィールドをpublicにしてはいけない
2023/03/17(金) 17:23:57.35ID:iuC25oyk0
え?
2023/03/17(金) 17:26:38.74ID:0nIn5dFop
めんどくさいだろpublicでいいよ
2023/03/17(金) 17:33:20.91ID:calEMDbx0
自分一人で作って自分一人で使うのなら好きにすればいいんじゃね?
2023/03/17(金) 17:34:38.14ID:BZ7G7tLCM
フィールドをpublicにしてるWPFは?
286デフォルトの名無しさん (ブーイモ MMbe-kA1E)
垢版 |
2023/03/17(金) 17:36:00.83ID:MAARUdz9M
>>279
ストアドプロシジャ主体の昔からのシステムなので、おっしゃるようなコードファーストの考え方と噛み合わないところがあります。

いまは、ストアドプロシジャを作成することなく、コードファーストでデータベースへの指示はEFに任せるのかなぁ。
2023/03/17(金) 18:21:24.41ID:5m2XUDK70
https://learn.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/fields

> 通常、フィールドは、プライベートまたは保護されたアクセシビリティを持つ変数に対してのみ使用します。
2023/03/17(金) 19:03:38.15ID:BZ7G7tLCM
>>287
通常は通常でしかないよ~
選択は自由
C#でプロパティを使いだしたのはget;set;自動実装で簡単になってからでそれまでは結構public fieldは使われてた

一番困るのは何でプロパティを使うべきなのか全員を納得させられる答えがない

WPFもUnityもフィールドをpublicにして使ってる
そこを突っついてプロパティにしろって言うのは違うだろと
2023/03/17(金) 20:24:18.39ID:5m2XUDK70
別にお前を納得させるつもりはないからどうでもいいよ
プロパティを使うべき理由なんて調べればいくらでも出てくる
2023/03/17(金) 20:32:49.25ID:BZ7G7tLCM
悪党のようなかっこええ捨て台詞痛み入ります!

こいつらしっかり考えたこともないし実際に使ってこなかったから言葉が弱いんだよな
誰も説得できないか弱さ
2023/03/17(金) 20:36:26.95ID:5m2XUDK70
教えてくださいお願いしますという態度ならともかく、そもそも話を聞く気が無さそうな奴に
無駄なレスバする気はないよ
2023/03/17(金) 21:00:27.77ID:irjN28+Dd
ノリノリでレスバしてますやん
2023/03/17(金) 21:17:05.47ID:BZ7G7tLCM
> 教えてくださいお願いします

馬鹿なんwwwwwww
2023/03/17(金) 21:18:19.46ID:BZ7G7tLCM
脳みそ空っぽでこれまでのC#の流れも知らず考えたこともない園児に教えを乞うやつはおらんw
2023/03/18(土) 03:30:36.17ID:fK7nmr8d0
今日も俺の勝ちだな
2023/03/27(月) 00:34:18.07ID:CcvtVsNT0
>>292
2023/03/27(月) 07:19:15.71ID:jIqJMMmT0
経験の少ないアホを納得させようというのはこんな風にたいてい徒労に終わる
フィールドを直接公開しないというのはオブジェクト指向の最も基本的なデザインパターンだが破りたきゃ勝手に破ってなぜ開発が難しくなったのか理解できず右往左往してりゃいいさ
2023/03/27(月) 09:11:42.72ID:LJBvMHRtM
抽象化を理解してないんだろう
2023/03/27(月) 09:39:45.84ID:SNc8vC84p
隠蔽は失敗だったってみんな言ってるよ
2023/03/27(月) 10:48:24.00ID:jtLNmc6A0
unsafeみたいに強制ギブスつきでいいから非公開メンバにアクセスさせてほしいよな
リフレクションはさすがにダルすぎる
2023/03/27(月) 10:51:33.97ID:UhSbFhq6a
隠蔽したものに触ろうというのがそもそも間違い
2023/03/27(月) 11:28:30.92ID:4auoO0fAp
隠蔽先に美味しいものが沢山あるだがw
2023/03/27(月) 11:28:53.05ID:UhSbFhq6a
あさはか
304デフォルトの名無しさん (ワッチョイ 9901-wUZC)
垢版 |
2023/03/27(月) 11:46:13.73ID:SicRvVGw0
受け渡しの際になんの処理もしないんだったら直公開でええやん
なんかしたいときに一段かませばいいだけのこと
2023/03/27(月) 17:03:35.68ID:yhvlQQOzM
>>297
いやいや
経験が少ないのはお前の方だろw
頭がガッチガチのゆとり人間だなと

> フィールドを直接公開しないというのはオブジェクト指向の最も基本的なデザインパターン
前にも書いたけどWPFもunityもpublicフィールドを使ってるよ
get setがpublicでフレームワークから要求されてないのにプロパティ使う意味なんてただの一貫性の問題だろう

c++のオブジェクト指向でもgetter/setter使ってる人間はほぼいない
でっかいOSSでもそんな使い方なんてしてない
何が何でもプロパティじゃなければいけない理由などないから使いやすい使い方をしてる

プロパティは実際に使い勝手が悪いので過去はあまり使われてなかった
自動実装で簡単に実装できるようになってから利用が進んだ
最初は自動実装もなくgetとsetのアクセス制限も別にできず意味不明だった

何より行数が不必要に消費されてコードの見通しが悪くなるゴミだった
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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