2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

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

1 :デフォルトの名無しさん :2022/12/21(水) 10:18:38.02 ID:DxBIri9+0.net
!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

224 :デフォルトの名無しさん (ワッチョイ a702-fO7+):2023/01/29(日) 12:12:03.57 ID:Bt1+Pj/S0.net
flutterっぽいな

225 :デフォルトの名無しさん :2023/01/29(日) 13:15:24.15 ID:R8JESUlY0.net
>>223
今flutter取り組んでるけど、
単なるデザイン処理がコード中に占める割合が高くて
めちゃ読みにくて慣れんわ

226 :デフォルトの名無しさん :2023/01/29(日) 13:27:12.72 ID:8bst+jr10.net
GUI黎明期は間違いなくコードでUI記述してたわけで
先人がこれはあかんと否定してきたものを今更リベンジさせる必要があるんだろうか

227 :.NET MAUI HighSchool :2023/01/29(日) 13:50:59.81 ID:i3THky500.net
今WinUI3で5chブラウザ作ってるんだがレスのアンカーだのハイパーリンクだと画像のリンクだのを抜き出す処理を考えてるんだがどうしたものか迷ってる
当然その書かれた位置にそのボタンやリンク貼り付けなきゃいけないんだがアンカーやリンクとその他記事は同じ行にはない(<br>で区切られてる)と仮定して<br>でSplitかけて行ごとでRegexとかを行おうと思ってるけどこの方法あってるか?

228 :デフォルトの名無しさん :2023/01/29(日) 13:55:11.83 ID:8bst+jr10.net
>>227
自前でパーサー書くよりもその手のスクレイピングライブラリは数多あるからそれ使った方が早いと思う

229 :デフォルトの名無しさん (アウアウウー Sa47-6BSU):2023/01/29(日) 15:11:11.20 ID:Srs41jrSa.net
行で区切る意味がわからん
普通に置換しろよ

230 :デフォルトの名無しさん :2023/01/29(日) 15:15:12.51 ID:Inli+tITa.net
WebViewならこれでlinkClickedにjsで独自処理書くなりそこからC#呼び出しするなり

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

<span class="link" data-info="ここに情報を入れる" onclick="linkClicked(this.getAttribute('data-info'))"
>〇〇○</span>

231 :デフォルトの名無しさん :2023/01/29(日) 15:18:44.23 ID:9PfpQq5Na.net
正規表現もこんな感じので充分やろ
<a.+?href="(.+?)".+?>(.+?)</a>

232 :デフォルトの名無しさん :2023/01/29(日) 15:19:58.32 ID:I1Pjf1q2a.net
+じゃなくて*か

233 :.NET MAUI HighSchool :2023/01/29(日) 16:56:28.41 ID:i3THky500.net
>>229
置換だとコントロールが作れない(ハイパーリンクコントロールなどがそれぞれ必要)

234 :.NET MAUI HighSchool :2023/01/29(日) 17:00:22.89 ID:i3THky500.net
WebViewでいけたらいきかったけどMVVMのBingingができんかった…(要素名.NativeToString(HTML))なんだけどXAMLにそれがなかったわ…orz

235 :デフォルトの名無しさん :2023/01/29(日) 17:28:42.21 ID:pHVlG+oVd.net
ソフト板の専用スレの連中は役に立たんのか?

236 :デフォルトの名無しさん :2023/01/29(日) 18:01:46.16 ID:1KUwXnGJ0.net
>>234
1.ビヘイビアを作る
2.ユーザーコントロールにWebViewのっけて依存関係プロパティーを設置してVMからコントロール
3.サービスを作ってVでWebViewのっけてからVMにインジェクションする

このどれかが普通かな?

237 :.NET MAUI HighSchool :2023/01/29(日) 19:07:46.52 ID:i3THky500.net
>>236
なるほどサンクス2が簡単そうかなぁ

238 :デフォルトの名無しさん :2023/01/29(日) 19:21:55.55 ID:XFhpsu3B6.net
初歩的な質問だと思うが書き込み失礼
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の中に何書けばいいかわからない。

239 :デフォルトの名無しさん (ワッチョイ 8379-jh2e):2023/01/29(日) 19:50:03.63 ID:R24XfIrD0.net
>>238
else
{
serialPort.Write(初期位置);
}
で何か問題あるのかな?
初期位置が何を示すのか知らんけど、シリアルはフロー制御なしなら基本垂れ流しになるから、
開始とか中断の概念は持たない
else節で100ms毎に初期位置座標を送り続けるのが嫌なら送信フラグでも持って送ったか判定すればいいのでは

240 :デフォルトの名無しさん :2023/01/29(日) 20:04:34.68 ID:qu76jy1yd.net
シリアル通信ってただのbyte列のやり取りでしかなく、中断とかの概念は存在しない。
Arduino側はreadlineかscanfかやってるだけでしょ?

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

「初期の段階に戻す」とやらが何をするのかは知らんが、C#側が黙ってたらArduinoは何もできない

241 :デフォルトの名無しさん :2023/01/29(日) 20:11:58.96 ID:XFhpsu3B6.net
>>240
Arduino側はSerial.availableで信号読み取ってる
それがいけないのか
初期の段階に戻すのは、(Arduino側でサーボモータの初期位置を0度にしてるから)指定範囲を出るとサーボモータが0度戻るようにしたい。(つまり信号が送られる前の状態に戻したい)
でもあんまりArduinoの話すると板違いって発狂するだろ

242 :デフォルトの名無しさん :2023/01/29(日) 20:31:37.77 ID:R24XfIrD0.net
サーボモーター云々の話なら座標以外に「初期の段階に戻す」のシリアル命令をarduino側で定義すればいいだけなのでは

243 :デフォルトの名無しさん :2023/01/29(日) 20:58:08.63 ID:h+Z7+/+00.net
>>241
C#というよりプログラミングの初歩的な設計の話だから怒られんだろ
板違いってのはそういうことな
>>239が大体答え言ってるじゃん

244 :デフォルトの名無しさん (ワッチョイ 8379-jh2e):2023/01/30(月) 03:54:10.75 ID:Yr+dar0w0.net
電電板にArduinoスレがあるの知らないかもしれないから一応リンクを。サーボやArduino自体の使い方とかはそっちで
Arduino初心者熱烈大歓迎質問スレ part36
https://rio2016.5ch.net/test/read.cgi/denki/1672830085/

245 :デフォルトの名無しさん :2023/01/30(月) 11:22:46.40 ID:SqjDQYar0.net
>>243
ツンツンしてんな~
相談室なんだからいいだろ

246 :デフォルトの名無しさん :2023/01/30(月) 19:52:43.52 ID:afDHhw4l0.net
パソコンの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>
としました

247 :デフォルトの名無しさん :2023/01/30(月) 20:11:57.30 ID:q0Wux2Rd0.net
なんか勘違いしてるっぽいな
URLスキームで、hidemaru.exeではなくて自作のexeに関連付けて、
自作のexeでmainに引数として渡されてきたURLを加工して
hidemaru.exeを改めて起動するって話だよ
C#でないとできないことではないし、C++に慣れてるならそれでCreateProcessすればいいんじゃない?

248 :デフォルトの名無しさん :2023/01/30(月) 21:34:40.15 ID:afDHhw4l0.net
ああ、そういうことかあ、2段階踏まないとダメなのね
自作の簡単なC言語のHello!みたいのを作ってその引数に
http:---が入ってきてそれを加工して秀丸を起動しないといけないってこと?
htmlファイルだけで直接起動は出来ないのね

249 :デフォルトの名無しさん :2023/01/31(火) 00:29:45.17 ID:hLRYDq4/M.net
確かURLスキームはセキュリティホールになるから世界中で使われなくなってきたはずなんだけど
今更なんで使うんだ?

250 :デフォルトの名無しさん :2023/01/31(火) 03:14:23.94 ID:8roNDUlQd.net
馬鹿だから

251 :デフォルトの名無しさん (アウアウウー Sa47-DSsr):2023/01/31(火) 05:00:45.55 ID:JnYo5yDia.net
もし、ブラウザのHTML から、ローカルPC 内にアクセスできたら、
世界中のパソコンが乗っ取られているはずw

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

Ruby on Rails などのLinux ウェブ系をやっていない、
Windows の香具師は、平気で恐ろしい事を考える

252 :デフォルトの名無しさん :2023/01/31(火) 07:03:33.59 ID:eeFPm4F70.net
>>246, 248
カスタムURLスキームでそういうことをする場合は、わざわざC#で作らずとも、一旦WindowsビルトインのWSH(JScript)で中継してパラメータをサニタイズするといいよ(レジストリ登録(*)さえ済ませておけばどこでも動く)

(*)下記のようにwscript.exeに対して「パラメータをサニタイズ+それを任意のプログラムに渡して起動するJScriptのパス」と「パラメータ」を渡す
C:\Windows\System32\wscript.exe "C:\script.js" "%1"

253 :デフォルトの名無しさん :2023/01/31(火) 09:08:38.25 ID:31HE1wSM0.net
>>252
ありがとう。AHKで作りました。ローカルで使うのでセキュリティとかは大丈夫です

254 :デフォルトの名無しさん :2023/02/02(木) 10:26:07.11 ID:yh09g2+40.net
>>227
適当なパーサライブラリでASTに変換
ASTからParagraph(Microsoft.UI.Xaml.Document)を構築
RichTextBlockのBlocksにParagraphを追加

255 :デフォルトの名無しさん :2023/02/02(木) 21:06:57.50 ID:pqzuUQeLM.net
いい加減MAUI君に構うのはやめろよ
全然C#固有の問題じゃないし…

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

考えてもわからないなら過去にオープンソースで開発されたものがたくさんあるんだからそれを見て見るとかやりようがあるんじゃないかと

256 :デフォルトの名無しさん :2023/02/09(木) 16:28:46.38 ID:Zlo87tEd0.net
https://www.publickey1.jp/blog/23/cvisual_basicnet.html

257 :デフォルトの名無しさん :2023/03/07(火) 21:33:28.99 ID:eLRrbAoH0.net
C#の妙技はイベントにあり

258 :デフォルトの名無しさん :2023/03/08(水) 21:11:06.25 ID:+FGbWqvad.net
C#でつくったアプリをMSRemoteApp化したら、Cursorを変更しても反映されないの?

259 :デフォルトの名無しさん :2023/03/11(土) 12:56:48.21 ID:nD1lGm6ya.net
皆さんnintって使ってますか?
他とやり取りすることなく、メソッド内で完結するただの変数として使う場合、とりあえずintを使いますよね
でも今後64, 128ビット幅が主流になったときを考えれば、nintって書いといた方がいいですよね?(そんな時代がくるかはともかく)
少なくともコンパイルされた時点でnintはintと同等かそれよりも効率がいいと(個人的に)思うんですが、でも誰もnintなんて使っていません
32ビット(何なら8でも)以上あれば問題ない、というケースでnintを使わない場合というのは、単にintの方が慣れてるからだけなんでしょうか?

260 :デフォルトの名無しさん :2023/03/11(土) 13:18:11.95 ID:EyA4I9HNd.net
nintとnuintはIntPtrとUIntPtrの別名なので、ポインタ(かポインタオフセット)にしか使わない

つまりはプラットフォーム依存であることの明示なので、
他のint型との相互作用(大量に出てくるだろうね)を考えるだけでかなりの脳のリソース持ってかれる

261 :デフォルトの名無しさん :2023/03/11(土) 14:01:42.70 ID:M3BsWLaP0.net
全部でBigIntegerを使っとけば間違いないよ

262 :デフォルトの名無しさん :2023/03/11(土) 14:13:05.01 ID:DhHi6Ld4r.net
結局既存のメソッドを呼び出したりするときにintにキャストしなきゃいけなくなるんでしょ
ごくわずかに数字演算のパフォーマンスが改善したところで毎回キャストするコストのほうが余計にかかりそう

263 :デフォルトの名無しさん :2023/03/11(土) 14:19:17.92 ID:M3BsWLaP0.net
画面の実座標がいまだにshortで足りる範囲とは思わなかったなあ
人間はそれほど目に頼っていないということなのか

264 :デフォルトの名無しさん :2023/03/11(土) 15:13:14.67 ID:2pmAPF6nM.net
何言ってんだコイツ

265 :デフォルトの名無しさん :2023/03/11(土) 15:15:24.57 ID:DTxKl55ja.net
shortって32767だろ
そんな解像度要るわけないじゃん

266 :デフォルトの名無しさん :2023/03/11(土) 15:21:17.18 ID:0sr4dQ+W0.net
8Kディスプレイで4画面を横に並べればってとこか
当面要らんな

267 :デフォルトの名無しさん (ワッチョイ 7102-S+nL):2023/03/11(土) 16:42:12.30 ID:WGybrWtY0.net
>>262
どうせマシン語になって同じレジスタに入る分にはコストは変わらん
浮動小数点→整数とかならコスト掛かるけど

268 :デフォルトの名無しさん :2023/03/11(土) 17:38:46.83 ID:vi8/lqqRM.net
>>259
普通の人は使わない
C++やwindowsのAPIやwinprocやDLLみたいのとやり取りする人間にだけ必要な機能で自分には非常にありがたい

269 :デフォルトの名無しさん :2023/03/11(土) 17:41:39.39 ID:vi8/lqqRM.net
今時点でC#内で完結する内容でnint使う局面はないと言える

270 :デフォルトの名無しさん :2023/03/12(日) 09:59:16.38 ID:WhaHkT9k0.net
速度よりも動きが変わっちゃう方が問題

271 :デフォルトの名無しさん :2023/03/16(木) 22:30:13.17 ID:XMsdgbaMM.net
データベースの列名に合わせて、クラスのフィールド名を日本語で表そうと思います。
しかし、インテリセンスで頭文字でフィールドの候補を選択する便利さはアルファベットのフィールド名に劣るので、合わせ技で次のようにフィールド名を定めようと思います。

public string BookName__書籍名;

アルファベットだとより複雑な意味を持つ名称でニュアンスがつかみにくいので、このように合せ技を、使おうと思うのですがどうでしょうか。

272 :デフォルトの名無しさん :2023/03/16(木) 22:37:25.26 ID:coFKYGG/0.net
どうでしょうかって知らんがな
上司に聞け

273 :デフォルトの名無しさん :2023/03/16(木) 23:30:46.22 ID:nNGsntyCM.net
>>271
>public string BookName__書籍名;
これだと英語名その対訳の組み合わせを間違えないように覚えてないとだめなのでメンテナンスコストがあがるだけな気がする
データディクショナリを整備したりインテリセンスのmigemo対応を頑張ってみるといいんじゃまいか?

274 :デフォルトの名無しさん :2023/03/17(金) 00:11:50.11 ID:I7yGzGSd0.net
この日本語力だとコード品質も心配になる

275 :デフォルトの名無しさん :2023/03/17(金) 00:52:09.32 ID:5jT41ER00.net
>>273
たしかに。
日本語名称だけにしておこうかと思います。
ドット打って、一覧から素直に候補を選びたいと思いました。

276 :デフォルトの名無しさん :2023/03/17(金) 00:54:00.54 ID:5jT41ER00.net
>>272
そういう上司いません。いるけど、専門外。

277 :デフォルトの名無しさん :2023/03/17(金) 08:02:55.94 ID:5m2XUDK70.net
変数名に日本語使われてるの見ると、ここの開発者ゴミだなってなる

278 :デフォルトの名無しさん :2023/03/17(金) 12:27:39.16 ID:qBIjuKdn0.net
世の中にはいろんな人がいて、様々なケースがあることを想像できない世間知らず

279 :デフォルトの名無しさん :2023/03/17(金) 12:44:03.16 ID:H2liKR380.net
普通はフィールドを単独の変数として扱わずにテーブル毎のクラスを作って管理する
DapperやEntityFrameworkなどのORMでは強制的にそうさせられる
これを機にORMへステップアップしてみるのも面白いと思うよ

280 :デフォルトの名無しさん :2023/03/17(金) 16:32:19.54 ID:Xu7B9KVM0.net
クラスのフィールド名って最初に書いてる

281 :デフォルトの名無しさん :2023/03/17(金) 16:34:27.72 ID:m9SyQiz8a.net
そもそもフィールドをpublicにしてはいけない

282 :デフォルトの名無しさん :2023/03/17(金) 17:23:57.35 ID:iuC25oyk0.net
え?

283 :デフォルトの名無しさん :2023/03/17(金) 17:26:38.74 ID:0nIn5dFop.net
めんどくさいだろpublicでいいよ

284 :デフォルトの名無しさん :2023/03/17(金) 17:33:20.91 ID:calEMDbx0.net
自分一人で作って自分一人で使うのなら好きにすればいいんじゃね?

285 :デフォルトの名無しさん :2023/03/17(金) 17:34:38.14 ID:BZ7G7tLCM.net
フィールドをpublicにしてるWPFは?

286 :デフォルトの名無しさん :2023/03/17(金) 17:36:00.83 ID:MAARUdz9M.net
>>279
ストアドプロシジャ主体の昔からのシステムなので、おっしゃるようなコードファーストの考え方と噛み合わないところがあります。

いまは、ストアドプロシジャを作成することなく、コードファーストでデータベースへの指示はEFに任せるのかなぁ。

287 :デフォルトの名無しさん :2023/03/17(金) 18:21:24.41 ID:5m2XUDK70.net
https://learn.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/fields

> 通常、フィールドは、プライベートまたは保護されたアクセシビリティを持つ変数に対してのみ使用します。

288 :デフォルトの名無しさん :2023/03/17(金) 19:03:38.15 ID:BZ7G7tLCM.net
>>287
通常は通常でしかないよ~
選択は自由
C#でプロパティを使いだしたのはget;set;自動実装で簡単になってからでそれまでは結構public fieldは使われてた

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

WPFもUnityもフィールドをpublicにして使ってる
そこを突っついてプロパティにしろって言うのは違うだろと

289 :デフォルトの名無しさん :2023/03/17(金) 20:24:18.39 ID:5m2XUDK70.net
別にお前を納得させるつもりはないからどうでもいいよ
プロパティを使うべき理由なんて調べればいくらでも出てくる

290 :デフォルトの名無しさん :2023/03/17(金) 20:32:49.25 ID:BZ7G7tLCM.net
悪党のようなかっこええ捨て台詞痛み入ります!

こいつらしっかり考えたこともないし実際に使ってこなかったから言葉が弱いんだよな
誰も説得できないか弱さ

291 :デフォルトの名無しさん :2023/03/17(金) 20:36:26.95 ID:5m2XUDK70.net
教えてくださいお願いしますという態度ならともかく、そもそも話を聞く気が無さそうな奴に
無駄なレスバする気はないよ

292 :デフォルトの名無しさん :2023/03/17(金) 21:00:27.77 ID:irjN28+Dd.net
ノリノリでレスバしてますやん

293 :デフォルトの名無しさん :2023/03/17(金) 21:17:05.47 ID:BZ7G7tLCM.net
> 教えてくださいお願いします

馬鹿なんwwwwwww

294 :デフォルトの名無しさん :2023/03/17(金) 21:18:19.46 ID:BZ7G7tLCM.net
脳みそ空っぽでこれまでのC#の流れも知らず考えたこともない園児に教えを乞うやつはおらんw

295 :デフォルトの名無しさん :2023/03/18(土) 03:30:36.17 ID:fK7nmr8d0.net
今日も俺の勝ちだな

296 :デフォルトの名無しさん :2023/03/27(月) 00:34:18.07 ID:CcvtVsNT0.net
>>292


297 :デフォルトの名無しさん :2023/03/27(月) 07:19:15.71 ID:jIqJMMmT0.net
経験の少ないアホを納得させようというのはこんな風にたいてい徒労に終わる
フィールドを直接公開しないというのはオブジェクト指向の最も基本的なデザインパターンだが破りたきゃ勝手に破ってなぜ開発が難しくなったのか理解できず右往左往してりゃいいさ

298 :デフォルトの名無しさん :2023/03/27(月) 09:11:42.72 ID:LJBvMHRtM.net
抽象化を理解してないんだろう

299 :デフォルトの名無しさん (ササクッテロラ Spf1-cFlm):2023/03/27(月) 09:39:45.84 ID:SNc8vC84p.net
隠蔽は失敗だったってみんな言ってるよ

300 :デフォルトの名無しさん :2023/03/27(月) 10:48:24.00 ID:jtLNmc6A0.net
unsafeみたいに強制ギブスつきでいいから非公開メンバにアクセスさせてほしいよな
リフレクションはさすがにダルすぎる

301 :デフォルトの名無しさん :2023/03/27(月) 10:51:33.97 ID:UhSbFhq6a.net
隠蔽したものに触ろうというのがそもそも間違い

302 :デフォルトの名無しさん :2023/03/27(月) 11:28:30.92 ID:4auoO0fAp.net
隠蔽先に美味しいものが沢山あるだがw

303 :デフォルトの名無しさん :2023/03/27(月) 11:28:53.05 ID:UhSbFhq6a.net
あさはか

304 :デフォルトの名無しさん :2023/03/27(月) 11:46:13.73 ID:SicRvVGw0.net
受け渡しの際になんの処理もしないんだったら直公開でええやん
なんかしたいときに一段かませばいいだけのこと

305 :デフォルトの名無しさん (オイコラミネオ MM49-uluY):2023/03/27(月) 17:03:35.68 ID:yhvlQQOzM.net
>>297
いやいや
経験が少ないのはお前の方だろw
頭がガッチガチのゆとり人間だなと

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

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

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

何より行数が不必要に消費されてコードの見通しが悪くなるゴミだった

306 :デフォルトの名無しさん (アウアウウー Saa5-C7iR):2023/03/27(月) 17:51:39.08 ID:gC9awdqwa.net
書けば書くほどあさはかなのがわかるだけ

307 :デフォルトの名無しさん :2023/03/27(月) 18:24:15.49 ID:yhvlQQOzM.net
>>306
>>290

308 :デフォルトの名無しさん :2023/03/27(月) 20:52:28.58 ID:aN1DSR/9p.net
公開するものはpublic宣言、公開しないものにはprivate宣言
だからプロパティ何それ美味しいの?
って感じ

309 :デフォルトの名無しさん :2023/03/28(火) 00:33:14.14 ID:YDJV1nTC0.net
>>305
>何より行数が不必要に消費されてコードの見通しが悪くなるゴミだった
おっとJavaの悪口はそこまでだ

310 :デフォルトの名無しさん (ワッチョイ c679-1XQV):2023/03/30(木) 09:03:39.15 ID:No035PWN0.net
プログラミン覚えられない
コツコツやるしかないよな

311 :デフォルトの名無しさん (ワッチョイ 4d42-3uzD):2023/03/30(木) 09:36:15.92 ID:JRSIRLo00.net
>>309
C#が登場した当時はjavaとの比較で簡潔に書けるパターンが多くて感動したものだったな
プロパティーとかイベントとか

312 :デフォルトの名無しさん (アウアウウー Saa5-C7iR):2023/03/30(木) 12:35:15.47 ID:VoLaXCIOa.net
フィールド公開するやつはプロパティの自動実装の意味すらわかってなさそう

313 :デフォルトの名無しさん (ワッチョイ c679-1XQV):2023/03/30(木) 15:16:30.07 ID:No035PWN0.net
不等号ってたまにわからんくなる
不等号のどっちが大きいのか

time < 0
これでtimeが0を下回ったら、という意味になるよね
言語化の問題かな?うまく日本語にする方法ないかな

314 :デフォルトの名無しさん (ワッチョイ ed33-hiv+):2023/03/30(木) 15:25:41.12 ID:x1Dq0GAt0.net
さすがに不等号が分からないとか言われると小学生からやり直せと言わざるを得ない

315 :デフォルトの名無しさん (ワッチョイ 064b-IXX1):2023/03/30(木) 15:40:05.75 ID:V2UDEW3E0.net
左が基準。

316 :デフォルトの名無しさん (アウアウウー Saa5-JPxZ):2023/03/30(木) 16:25:37.22 ID:op3q7K0Wa.net
0 > time
とか書かれてると腹立つが

317 :デフォルトの名無しさん (ワッチョイ c679-1XQV):2023/03/30(木) 16:33:28.12 ID:No035PWN0.net
>>315
基準とは?
変更される値がtimeです

318 :デフォルトの名無しさん (ワッチョイ d232-/phF):2023/03/30(木) 16:43:38.01 ID:lPrU8lpE0.net
大なり小なりの基準か、あるいはヨーダ記法は邪道か
オーバーロードとか左辺値・右辺値とか
最適化など色々問題があったっけね

319 :デフォルトの名無しさん (アウアウウー Saa5-C7iR):2023/03/30(木) 17:04:44.87 ID:F0wEmCvia.net
>>317
記号見りゃどっちが大きいかなんて一目瞭然だと思うが
a<bでaの方が大きいと思う理由がよくわからん
ガリバートンネルには大きい口と小さい口があるが大きい人が入るのはどっちだ?

320 :デフォルトの名無しさん (スップ Sdc2-I21X):2023/03/30(木) 17:40:58.48 ID:TCmRdoupd.net
powershellは$null比較の時、
左辺に$nullを書かないと思わぬ事故死する
C#とか普通の言語でかつ特に理由が無ければ、
左辺に比較対象、右辺にリテラル等の被比較値を書くのが一般的だろうね

321 :デフォルトの名無しさん (ワッチョイ f5bb-Azxu):2023/03/30(木) 17:41:31.12 ID:99fPqKZf0.net
どっちかだけでよくね?って時々思う

322 :デフォルトの名無しさん (オイコラミネオ MM49-3uzD):2023/03/30(木) 18:53:38.63 ID:2vbF8I0qM.net
40歳以上で勉強してもプログラムがわからないなら諦めたほうがいいと思うわ
あおりでなんでもなくコーディング自体が楽しくないなら時間を掛けるだけ無駄かと


それよりも
a >= b

a.以上(b) とでもメソッド掛ける
自分はかねてより複雑になりがちな条件判断は可能な限りメソッドにしたほうがいいと思ってるし
そう書いてる
範囲判定なんかメソッドにしてることも多い
日本語じゃないけどね…

323 :デフォルトの名無しさん (オイコラミネオ MM49-3uzD):2023/03/30(木) 19:00:14.79 ID:2vbF8I0qM.net
以上と書いたは便宜的なもので実際は概念に合わせて書いてる

A>=Bは結局何なのかでメソッド名も変わり概念の抽象化ができる

A.は優秀(B)だとして数学の点数なら多い方が優秀
ゴルフのスコアなら低い方が優秀

そういうのを何度も書くなら< > なんてあちこちで書かなければいい

324 :デフォルトの名無しさん (ワッチョイ c679-1XQV):2023/03/30(木) 19:17:30.19 ID:No035PWN0.net
>>319
その状態になったら、っていう条件式なんすね

244 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver.24052200