[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 12/09 23:01 / Filesize : 249 KB / Number-of Response : 990
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part156



1 名前:デフォルトの名無しさん [2022/09/18(日) 14:39:29.51 ID:VjUDO6tf0.net]
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part155
https://mevius.5ch.net/test/read.cgi/tech/1655422932/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

2 名前:デフォルトの名無しさん [2022/09/18(日) 14:39:44.87 ID:VjUDO6tf0.net]
新しく立てましたがあってますかね?

3 名前:デフォルトの名無しさん [2022/09/18(日) 15:29:46.75 ID:wEL99hbX0.net]
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!

4 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 15:57:15.60 ID:lQR3ujpZ0.net]
いちおつ
大体あってるけど冒頭のおまじないが消えてるね…
!extend:checked:vvvvv:1000:512

5 名前:デフォルトの名無しさん [2022/09/18(日) 16:33:33.24 ID:VjUDO6tf0.net]
>>4
ほんとだ
書き込むときはあったのにな…

6 名前:デフォルトの名無しさん [2022/09/18(日) 16:35:43.35 ID:VjUDO6tf0.net]
立て直したほうがいいのかな?

7 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 16:35:49.19 ID:6iWR4o+g0.net]
スレ立てるときは1~2行ぐらい追加して立てた方が良いかなって話だよね

8 名前:デフォルトの名無しさん [2022/09/18(日) 16:39:46.64 ID:VjUDO6tf0.net]
つまり次立てる人が気をつけてくれればいいってことか…

9 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 16:42:23.27 ID:lQR3ujpZ0.net]
書いてる通り1行ぶんは消えるからね 毎回増やさないといけない
立て直しはしなくていい、大丈夫
次スレ立てるときに気を付けないといけないなーと

10 名前:デフォルトの名無しさん [2022/09/18(日) 16:43:34.75 ID:VjUDO6tf0.net]
なるほどサンクス



11 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 16:44:45.13 ID:aznVlwJJa.net]
>>5
立てる時に消費されるから増やさなきゃいけないんだよ
5chは仕様の古さが目立つな
今時シフトJISだったり1000レスまでだったりメアド欄があったりそこにsageを書いたり

12 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 17:39:41.49 ID:eBtB+6XZ0.net]
>>3
ちんぽ!まで読んだ

13 名前:デフォルトの名無しさん [2022/09/18(日) 17:43:02.64 ID:a87PubfG0.net]
読んだんだ(笑

14 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 17:44:39.84 ID:eAqQvdrB0.net]
ReDosにもならない

15 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 12:44:07.38 ID:bKWC7nbK0.net]
«許可»をクリックして、ロボットではないことを確認してください!

16 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 15:30:11.92 ID:t+9kOvGj0.net]
ポチッとな

17 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 12:34:37.10 ID:sadn543UM.net]
::::::::::::::::::::::::......   ........::::::::::::::::::::::::::: ;;;;;;;:::::::::::::::
           γ ⌒ ⌒ `ヘ
          イ ""  ⌒  ヾ ヾ
        / (   ⌒    ヽ  )ヽ
        (      、 ,     ヾ )
 ................... .......ゞ (.    .  ノ. .ノ .ノ........... ........
 :::::::::::::::::::::::::::::::::ゝ、、ゝ.....|  |..., , ノソ::::::::::::::.......::::
  _ _i=n_ ._ [l_ .._....,,. .-ー;''!  i;;;~-ヽ_ii_i=n_ [l h__
  /==H=ロロ-.γ ,~ー'''l ! |'''ーヾ  ヾ 「!=FH=ロロ
  ¶:::-幵-冂::( (    |l  |    )  )=HロΠ=_Π
  Π=_Π「Ⅱヾ、 ⌒~"""''''''⌒~'"´ ノ;;'':::日lTΠl:::....
 Д日lTl,,..:''''"   ""'''ー-┬ーr--~''""   :::Д日lT::::
 FH=n.:::::'            |   |         :::FL日l」:::::
 ロΠ=:::::.:.        ノ 从 ゝ        .::田:/==Д::
 口=Π田:::.                   .::::Γ| ‡∩:::
 Γ| ‡∩Π::....                ...:::Eヨ::日lTlロ::::
 Д日lTlロ_Π::::.......            ...::::::::田:凵Π_=H::
 =Hロ凵Π=_Πロ=HロΠ:::.................:::::::::::口ロロH「l.F

18 名前:デフォルトの名無しさん [2022/09/21(水) 21:35:43.28 ID:sPGT0eCrM.net]
hosyu

19 名前:デフォルトの名無しさん [2022/09/23(金) 08:57:53.80 ID:0O/Obm8IM.net]
hosyu

20 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 14:31:23.00 ID:2Q5DEdnDM.net]
皆様に人脈の加護がありますように❤



21 名前:デフォルトの名無しさん [2022/09/25(日) 00:31:29.09 ID:DIWRYevd0.net]
質問です!
Windowsでwavとかmp3とかじゃなく配列で作った正弦波を鳴らすための標準ライブラリってありますか?
シンセサイザーアプリのために低レイテンシーだとありがたいです

22 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 00:59:16.75 ID:Y7mttA55M.net]
XAudio2

23 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 01:45:39.85 ID:6wI0gbs/0.net]
そもそもwavファイル自体が波形データそのままに近いのでは?
Win32APIを直接叩くとやりたいことは出来るとは思うけどね
waveOutOpen()とかこの辺
大昔にやった事あるけどその時はVCだったし全然覚えてないわw

24 名前:デフォルトの名無しさん [2022/09/25(日) 02:01:54.70 ID:DIWRYevd0.net]
>>23
waveファイルはヘッダー情報があるのでそれ作らないといけないのがめんどくさい
わざわざファイルを作らないといけないのもスマートじゃないし
やっぱりWin32API使わないとなのか…
このへん破ったことないからわからん

25 名前:デフォルトの名無しさん [2022/09/25(日) 02:02:08.15 ID:DIWRYevd0.net]
>>22
調べてみます

26 名前:デフォルトの名無しさん [2022/09/25(日) 02:02:54.21 ID:DIWRYevd0.net]
>>24
この辺使ったことないの間違いです
どんな誤変換したんだ…

27 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 02:10:21.67 ID:33uw2yCZH.net]
この質問者、前スレで就職相談してた27歳の人じゃね?
なんとなく「mauiで」とか条件後出しされそうな悪寒

28 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 02:29:37.09 ID:BeOzTuvS0.net]
邪推はやめてくれよブラザー

29 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 04:18:13.47 ID:kQGcz7Hc0.net]
dllをプロジェクトの参照に入れずに、実行時に動的に読み出して内部のメソッド実行やインスタンスの生成をしたいのですが可能でしょうか?

30 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 05:05:25.63 ID:QuKarKAJ0.net]
>>29
可能です



31 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 07:24:05.34 ID:PDKGWlWe0.net]
そりゃ元々 Dynamic = 動的 だからできないわけない
てか C# dll 動的ロード とかでググろうと思わないのか?
https://qiita.com/rita0222/items/609583c31cb7f0132086

32 名前:デフォルトの名無しさん [2022/09/25(日) 07:35:25.02 ID:DIWRYevd0.net]
21ですが色々調べた結果標準ライブラリでは難しいようですね、、、
win32APIをDLLインポートするのも大変そうなので(Xaudio2をC#で使う記事を見ましたが理解ができませんでした)
素直に拡張ライブラリのNAudioを使うようにします。

33 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 07:46:43.94 ID:ZSqiS99C0.net]
dll実装が先に存在してるなら、参照で先に作っておいて、
実行時にこけたらAssembly.LoadFileとかするのが普通かな。

dll実装が不定ならAssembly.LoadFileで読んで、dynamicで動かすことになるが
結構不安要素でかい。

Reflection使ってメソッドの実装のありようの確からしさは実行中に確認する必要がある。

interfaceなりでちゃんとdll側を縛ってあるのがいちばんいいけどね。

34 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 18:52:10.05 ID:YHbagUeLa.net]
どこの普通なんだか

35 名前:デフォルトの名無しさん (アウアウウー Sa43-mISd) mailto:sage [[ここ壊れてます] .net]
dllの動的ロードしたいならMEF使え
https://learn.microsoft.com/ja-jp/dotnet/framework/mef/

36 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 06:17:01.60 ID:4jeN/07Z0.net]
プラグインシステムならまだしも、dllの動的ロードでMEFなんか使わんが...

37 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 12:27:47.38 ID:6iA7KcBP0.net]
そういうのをプラグインと言うんだぞw
プラグインじゃなきゃ普通に参照すればいい

38 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 12:35:43.49 ID:6iA7KcBP0.net]
あ、そうか、もしかして参照したdllはアプリ起動と同時に読み込まれると思ってるやついるのか
だから参照しないようにしてんの?w

39 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 15:03:37.01 ID:4jeN/07Z0.net]
開発時は参照では組むが、実際の実行環境では
実行の基点となるexeとは別の場所にdllが配置されてるとかもあるからなぁ。

まあ質問者が何やりたいかは明確にしていないからなんとも。

dllを遅延ロードしたいだけなら、上にあるように
普通に参照で組んで、実行時にdll無いと必要になるステップに
到達したらエラーになるから、それに備えて
AssemblyResolverに無かったらこの場所のこのdll読めと指示しとけばいいだけ。
これも上に書いた通り。

40 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 15:46:38.31 ID:T6INyDl80.net]
MAUI君とマウントじじいはID変わってもすぐ分かるな



41 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 17:18:58.59 ID:6iA7KcBP0.net]
いつも論破されて悔しそうなやついて草

42 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 17:21:26.07 ID:6iA7KcBP0.net]
>>39
さすがに必須dllを別管理するのは筋が悪い
dll hellを招くアンチパターンだぞ
20年前にはみんなやめてるからそろそろ知識をアップデートしよう

43 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:11:02.71 ID:4GKr4tPoM.net]
プラグインスタイルにする場合は開発スタート時点から外部に公開する用のinterfaceを
別プロジェクトにする必要があるからお勧めしない

アプリプロジェクト
公開用コモンプロジェクト
プラグインプロジェクト

こういうのを含んだ感じになる

c++はこういうのが柔軟でやりやすい
C#はあまりプラグイン開発に向いていない

44 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:15:47.43 ID:w7MQedDGM.net]
んなことはない
C#であまりプラグイン的な機構が使用されないのは、C++に比べて広く一般的に使用されるアプリケーションが少ないのと、
ビルドが簡単高速なために全部リビルドしたほうが早いからだよ

45 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:16:31.39 ID:6iA7KcBP0.net]
あら捜しの結果、たかだか一つ数分で作れるプロジェクト分割することを欠点と言い始めたかー

46 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:17:49.62 ID:4GKr4tPoM.net]
全くclassなどを受け渡ししない場合を除いて通常は

アプリプロジェクト
公開用コモンプロジェクト

というソリューションで開発してプラグインは

公開用コモンプロジェクト
プラグイン個別プロジェクト
で開発


公開用コモンプロジェクトが分厚くならないようにinterface中心にする

47 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:19:44.63 ID:4GKr4tPoM.net]
粗さがし?
普通に作ると分かることだが…

c,c++はゴミみたいな存在だがプラグイン作る時は.hやhpp配るだけでやりやすいことが多い

48 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:21:25.82 ID:4GKr4tPoM.net]
重量級アプリ作っててプラグインの仕組みを導入したくなった場合
かなり面倒
dynamicにするのは無し

49 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:57:57.39 ID:vjnVDv0A0.net]
classの受け渡しなんて言ってる時点でもう...

50 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 21:43:04.31 ID:4GKr4tPoM.net]
じゃあ現実的なラインで話せよ
俺が書いた以外で実践的なプラグインを合理的に作る方法をさ

レベル低いのにしゃしゃって来るんじゃない



51 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 21:58:39.65 ID:6iA7KcBP0.net]
20年前の知識でイキるのは恥ずかしいぞw

52 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 22:09:28.79 ID:4GKr4tPoM.net]
>>51
話が見えてないんだな
お前がここで一番の馬鹿だ
これは間違いない
対案も出せない

しかもお前はジジイだな
筋が悪いと言うワードセンス
20年前のDLLの話をしてるし

53 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 22:43:33.82 ID:n/I9g/yq0.net]
>>42
必須じゃないdllでやるんだろ。
ハードウェアなどの環境に依存するdllとかな。

54 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 23:44:58.22 ID:6iA7KcBP0.net]
>>53
そういうのは参照できないから(あるいは不要なものまで全部参照する必要があるから)インターフェースがいる
プラグインがベストプラクティス

55 名前:デフォルトの名無しさん [2022/09/27(火) 08:07:21.08 ID:/UUTRmF20.net]
プラグインはプラグインのインターフェースに合わせて実装するんであって
既にあるdllを単に動的バインディングするのとは別物だな。

56 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 08:55:03.98 ID:SwtBqNyR0.net]
powershell上でC#の連携で、再帰するような処理や重い所をC#で書いて使ってるんですが、
powershellの機能が必要な時はC#側からpowershellのスクリプトブロックをFunc<>やAction<>でコールッバックとして呼び出す形にしています。
このときに、Func<>やAction<>の引数にrefを指定して、bool値とかをpowershell側から設定して返してもらうようしたかったのですが、
Func<>やAction<>の引数にrefは指定できないようでした。
代替として、PSObjectにNotePropertyを作って値を入れて貰ってまますが、他に良い手段があったら教えてください。

57 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 09:32:49.82 ID:LsBo1VKG0.net]
>>55
参照しろよw

58 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 09:34:23.58 ID:LsBo1VKG0.net]
>>56
自分でデリゲート型を作ればいんじゃね
知らんけど

59 名前:デフォルトの名無しさん [2022/09/27(火) 10:31:21.25 ID:rJ/evy9A0.net]
WPFとかにおけるPrismってそんなにいいの?

60 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 10:48:09.96 ID:SwtBqNyR0.net]
>>58
Func<>やAction<>がだめってことはデリゲートの引数指定でrefがだめってことかと思い込んでましたが違うんですかね。
試してみます。ありがとうございました。



61 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 12:21:27.17 ID:LsBo1VKG0.net]
>>60
できるぞ
https://ufcpp.net/blog/2022/2/ref-generic-arguments/
Funcとかは自動生成とは言え引数の数だけ実際に宣言してる
ここにrefやoutを入れるとその組み合わせは膨大な数になるから(例えば引数2つだけでもFunc<T1,T2>, Func<ref T1,T2>, Func<ref T1,ref T2>, Func<T1,ref T2>,Func<out T1,T2>, Func<T1,out T2>, Func<out T1,out T2>, Func<ref T1,out T2>, Func<out T1,ref T2>)もっといい方法が無いか探してるところだろうな

62 名前:デフォルトの名無しさん (ワッチョイ 7f79-nd6Q) mailto:sage [[ここ壊れてます] .net]
できました。
>>61そういう泥臭い実装だったのか・・・ありがとうございます。
最初からdelegateで書けばよかった。

63 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 15:54:24.92 ID:SwtBqNyR0.net]
どうやらstructを含む値型を参照渡ししても呼び出され側のpowershellでは書き換えられないらしい。
下記のPSParamのclassをstructに変更するとpowershell側ではうまく書き換わってるように見えても、呼び出し側のC#に戻るとbState1はTrueのままとなる。
バグなのかなあ。

Add-Type @"
using System;
public class Helper {
public class PSParam {
public bool bState1;
public bool bState2;
};
public delegate void refAction1(ref PSParam p);
public static void CallbackTest(refAction1 proc) {
var p = new PSParam();
p.bState1 = true;
p.bState2 = true;
Console.WriteLine("bState1:{0}", p.bState1);
proc(ref p);
Console.WriteLine("bState1:{0}", p.bState1);
}
}
"@
[Helper]::CallbackTest2({param([ref]$p); $p.Value.bState1 | Out-Host; $p.Value.bState1 = $false; $p.Value.bState1 |Out-Host; })

64 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 15:56:16.12 ID:SwtBqNyR0.net]
上のCallbackTest2はCallbackTestの間違いです

65 名前:デフォルトの名無しさん (ワッチョイ c707-mISd) mailto:sage [[ここ壊れてます] .net]
バグって言うかスクリプトブロックを渡してるからだろうな

66 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 16:20:55.11 ID:LsBo1VKG0.net]
ていうか参照渡しじゃなくHashSetを使ってやりとりするんじゃいかんの?

67 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 16:23:37.50 ID:LsBo1VKG0.net]
HashSetじゃなかった
Hashtableだ

68 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 16:32:12.76 ID:cIZHSBt80.net]
structにこだわる意味はなさそうだしそれならrefも必要ないし
そもそもFuncの返値にすればいいんじゃないの的な

69 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 16:37:17.49 ID:LsBo1VKG0.net]
Hashtableを使う場合

Add-Type @"
using System;
using System.Collections;
public class Helper {
public static void CallbackTest(Action<Hashtable> proc) {
var p = new Hashtable();
p["bState1"] = true;
p["bState2"] = true;
Console.WriteLine($"bState1:{p["bState1"]}, bState2:{p["bState2"]}");
proc(p);
Console.WriteLine($"bState1:{p["bState1"]}, bState2:{p["bState2"]}");
}
}
"@
[Helper]::CallbackTest({param($p);$p.bState1 | Out-Host;
$p.bState1 = $false;
$p.bState1 | Out-Host })

70 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 16:41:08.41 ID:J8MleXan0.net]
>>63
普通に
bState1: True
True
False
bState1: False
ってなるけど?
$PSVersionTable.PSVersion: 5.1.19041.1682



71 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 16:45:59.80 ID:LsBo1VKG0.net]
>>59
Prismは大袈裟すぎるがMVVMを使うなら何か一つフレームワークは必須
CommunityToolkit.Mvvmいいぞ
必要な機能は揃ってるのにシンプルで学習コストが低く軽い
これで慣れてからPrismに移ってもいいし仕事じゃなきゃ移らなくても何も問題ない

72 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 16:51:36.15 ID:cIZHSBt80.net]
>>70
class PSParamをstruct PSParamに変えても?

73 名前:デフォルトの名無しさん [2022/09/27(火) 16:53:51.16 ID:rJ/evy9A0.net]
>>71
ふむふむなるほど…

74 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 16:58:10.34 ID:SwtBqNyR0.net]
>>69
わざわざC#でやるからには少しでもパフォーマンスを上げたいので、
C#側でハッシュとかPSObjectで文字列のプロパティを作って渡すとかは極力避けたいのです。
>>70 >>72の仰る通りclassで渡してるので正常に動くやつです。structに変えて試してください。

75 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 17:03:06.67 ID:SwtBqNyR0.net]
ちなみにテスト結果は
値の参照渡し× >>63-64
参照の値渡し○
参照の参照渡し○
でしたので、コンテナを渡す限りではrefは必要ないですね。

76 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 17:04:20.64 ID:LsBo1VKG0.net]
>>74
そんなんでパフォーマンス上がらんぞ
PowerShell使ってる時点で無意味だし計測しても誤差が大きすぎて差は出ない
スクリプトブロックをデリゲートに入れるための代理関数とか中で作られてるからな

77 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 18:47:57.59 ID:SwtBqNyR0.net]
>>76
計測してみました。
以下のclassでパラメーター渡すのよりもHashtableのが2割程速い結果になりました・・・これはHashtable採用ですね。
Add-Type @"
using System;
using System.Collections;
public class Helper {
public class PSParam {
public bool bState1;
public bool bState2;
};
public static void CallbackTest1(Action<PSParam> proc) {
var p = new PSParam();
p.bState1 = true;
p.bState2 = true;
proc(p);
}
public static void CallbackTest2(Action<Hashtable> proc) {
var p = new Hashtable();
p["bState1"] = true;
p["bState2"] = true;
proc(p);
}
}
"@
(Measure-Command { 1..10000 | %{ [Helper]::CallbackTest1({param($p);$p.bState1 = $false; }) } }).TotalMilliseconds
(Measure-Command { 1..10000 | %{ [Helper]::CallbackTest2({param($p);$p.bState1 = $false; }) } }).TotalMilliseconds

78 名前:デフォルトの名無しさん (ワッチョイ 1201-ut7I) mailto:sage [[ここ壊れてます] .net]
>>72
ああ、すまんちゃんと読んでなかったわ
まあ、仕様だろうね
変更可能な値型は避けろって書いてある

❌ 変更可能な値型を定義しないでください。
(... 中略 ...)
また、一部の言語 (特に動的言語) では、ローカル変数であっても逆参照されるときにコピーが作成されるため、変更可能な値型の使用で問題が発生します。
https://learn.microsoft.com/ja-jp/dotnet/standard/design-guidelines/struct

普通にクラスで作ればいいだけ、てかPowerShell使ってる時点でclass/structで細かいパフォーマンスチューニングしても無駄だと思うぞ

79 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 20:39:58.78 ID:wQgw+D+40.net]
VS2019で.NET 4.5 + NugetでValueTuple入れて作ったプロジェクトを
VS2012で読もうとしたらValueTuple扱えなかった・・

VS2012も.NET 4.5は大丈夫だけど、ValueTupleだとC#のバージョンが問題になるのかな?

80 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 21:45:06.74 ID:LsBo1VKG0.net]
https://qiita.com/shimamura_io/items/5a1c754914b864540bac
この手のめんどくさいトラブル抱える可能性残すくらいなら4.8使うかValueTuppleあきらめろよ



81 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 08:17:08.29 ID:if0kFZkG0.net]
VS2012じゃC#コンパイラが全然タプルに対応できないからね
普通の構造体として扱うことはできるかもしれないが

82 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 08:31:43.95 ID:qrxLeK0JF.net]
読んでビルドするだけならVSCode使うほうがよさそうかな

83 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 08:37:42.78 ID:ZrAf2Mbg0.net]
学習オプションをGUIでも確認しやすいという意味でも
VSの方がはるかに向いてるが。
VSCodeが候補にあがるのはAzure使っててC#だけでなく
色々混じってる時くらいでしょ。

84 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 08:38:04.69 ID:ZrAf2Mbg0.net]
学習→GUI

85 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 09:06:32.72 ID:FDPwu/KN0.net]
そこでQtですよ(嘘)

86 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 10:26:54.48 ID:Jk2txA1W0.net]
QtやTcl/Tkとか名前は聞くけど誰も使っている人居ないんだよね
WinFormsより簡単なの出さないと日本では流行る気がしないw

87 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 12:46:58.02 ID:GXLv430Ua.net]
>>86
かつてのDelphiやVB6の役割が今のWinforms
これ以上簡単なモノは出ないだろ

88 名前:デフォルトの名無しさん [2022/09/29(木) 10:40:58.78 ID:yzYmCLI10.net]
オブジェクト指向で
クラス=ニュークラス
変数A=クラス.メソッド(引数)
で他のクラスでメソッドで作った変数Bを変数Aに代入したいとき
returnで返すのが一般的なんかな?

俺他のクラスでプロパティ作ってメソッド内で作った変数Bをプロパティに入れて
クラス=ニュークラス
クラス.メソッド(引数)
変数A=クラス.プロパティ
にしてるんだけど異端か?

なんか遅くなるとかの弊害ある?

89 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 10:56:44.30 ID:ZDD9PwVa0.net]
>>88
#nullable enableにすると、そのプロパティーを hoge? にしないとワーニングが出てくるね

90 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 11:05:58.40 ID:c05GXPup0.net]
そのclassの設計次第だとは思うけど…
単純な計算結果を必要としているのならstatic methodにして直接メソッドの結果を取得する方が分かりやすいだろうし
インスタンスの何かがその処理に必要であるのならプロパティ経由で取得する方が良いだろうし



91 名前:デフォルトの名無しさん [2022/09/29(木) 11:27:28.88 ID:yzYmCLI10.net]
ふむふむケースバイケースなのかな?

92 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 11:48:18.47 ID:nA4Nikqb0.net]
メソッドの仕様とプロパティの仕様の二つを読まなきゃならなくなるから一般的に可読性と保守性は落ちる
あと副作用前提なので参照透過でなく多用するとスパゲッティになりやすくなる
メソッドがthisを返すならMauiAppBuilderみたいにメソッドチェーンで使えるようになるしプロパティパターンでパターンマッチングできるから場合によっては便利になる

93 名前:デフォルトの名無しさん [2022/09/29(木) 17:05:48.88 ID:yzYmCLI10.net]
>>92
なるほどありがとうございます

94 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 08:39:35.64 ID:EDStmk6M0.net]
ブラウザの「名前をつけてページを保存」をWebview2でやりたいのですが、無理ですかね?
stream で読み込むくらいしか方法はないですか?

95 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 08:48:17.73 ID:2B0IsOOc0.net]
>>94
それはブラウザの役目であってHTMLをレンダリングして表示するWebViewの役目じゃない
スマホのブラウザにはそんな機能ないだろ

96 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 09:34:14.17 ID:EDStmk6M0.net]
>>95
そうですよね
WebBrowserにはWebBrowser.ShowSaveAsDialog メソッドがあったのですが・・・

97 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 09:40:46.42 ID:Vj0oK+Fa0.net]
Chromeとかのダイアログも結局はWindowsならshell32のSHBrowseForFolder利用したりとOSの機能使ってるだけなんじゃないの?

98 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 10:43:04.40 ID:EDStmk6M0.net]
>>315
予想で来ていたなら大儲けしたんだろ
ついでにそのスクショもうぷ

99 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 10:47:28.56 ID:HrxhgRpA0.net]
>>98
おまえの予想のほうがスゲェ!w

100 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 10:52:54.13 ID:EDStmk6M0.net]
誤爆w

webvew2コントロール上で右クリックすると「名前を付けて保存」が出るようなので
そこを自動でやるだけなですがいい方法ないですかね?



101 名前:デフォルトの名無しさん [2022/10/01(土) 11:36:18.78 ID:CdyuxRrm0.net]
そのページのHTMLをHTML方式で保存すればいいだけなのでは?

102 名前:デフォルトの名無しさん [2022/10/01(土) 11:41:05.38 ID:CdyuxRrm0.net]
WebView2ならJavaScriptを呼び出せるメソッドがあるからhtmlタグの中身をゲットしてそれを保存すればいいだけのような気がするがどうなんだろ?

103 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 11:47:25.93 ID:EDStmk6M0.net]
HTMLだけだとcssやjsが含まれていないので
落としたHTMLを表示するとまともに表示されない問題が発生してしまいます
ブラウザの「名前を付けて保存」は完璧に保存されますのでそちらが使いたいです

104 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 23:19:37.45 ID:4ls5cXfL0.net]
以下WebView2のエキスパートでもなんでもないから見当違いかもしれないので話半分で
ちょっとぐぐってみたけどWebView2で「名前を付けて保存」相当をやってる情報は出てこないね
Webブラウザでもページの保存は割と面倒な処理に該当するはずだからseleniumとかでWebブラウザに丸投げする方法を考えた方がいいと思うよ

105 名前:デフォルトの名無しさん [2022/10/02(日) 01:20:34.77 ID:jE287c4+0.net]
ソリューションエクスプローラーに配置したJsonファイルをデシリアライズしてObservableCollectionに入れたいのですがどうすれば良いでしょうか?

using var stream = await FileSystem.OpenAppPackageFileAsync("monkeydata.json");
using var reader = new StreamReader(stream);
var contents = await reader.ReadToEndAsync();
monkeyList = JsonSerializer.Deserialize<List<Monkey>>(contents);

↑これを参考にやってみたのですがファイルが見つからないとか言われてしまいます

106 名前:デフォルトの名無しさん [2022/10/02(日) 01:21:00.49 ID:jE287c4+0.net]
参考にしてるサイトはこれです…
https://github.com/dotnet-presentations/dotnet-maui-workshop/tree/main/Part%202%20-%20MVVM

107 名前:デフォルトの名無しさん mailto:sage [2022/10/02(日) 01:46:38.36 ID:w76y/xOG0.net]
一行目でエラーなら単純にファイルが無いのでは?
VSでデバッグの時のカレントがどこなのかそういう知識が無くパス指定も無く開けなかったら
カレントに無いぐらいは分かりそうなものなのに・・・

108 名前:デフォルトの名無しさん [2022/10/02(日) 02:00:42.79 ID:jE287c4+0.net]
VSに入れたファイルのパスの指定方法ってどうすればいいんですかね?
ファイル名だけで勝手にソリューション内のファイル検索して取り込めるのか相対パスなのか完全パスなのか…
相対パスならどこからの相対パスを書けばいいのか…

109 名前:デフォルトの名無しさん mailto:sage [2022/10/02(日) 02:02:35.93 ID:kEuGN+uq0.net]
ビルドアクション設定してないだけだろ

110 名前:デフォルトの名無しさん [2022/10/02(日) 02:31:53.74 ID:jE287c4+0.net]
ビルドアクションは埋め込みリソースに設定すればいいんですか?
何に設定すればいいんですか?



111 名前:デフォルトの名無しさん (スップ Sd1f-XcTz) [[ここ壊れてます] .net]
何やらせても出来なさそう

112 名前:デフォルトの名無しさん mailto:sage [2022/10/02(日) 08:28:15.79 ID:oLIGWTx6a.net]
参考という名のコピペ
考える材料を参考というのであって脳死で真似るのは参考にしたとは言わん
なぜOpenAppPackageFileAsyncを調べないのか
https://learn.microsoft.com/ja-jp/xamarin/essentials/file-system-helpers?tabs=android#platform-implementation-specifics
こんなややこしいものより普通に埋め込みリソースにして次のメソッド使った方がいい
https://learn.microsoft.com/ja-jp/dotnet/api/system.reflection.assembly.getmanifestresourcestream?view=net-6.0

113 名前:デフォルトの名無しさん [2022/10/02(日) 08:47:31.34 ID:jcW3SqyJ0.net]
>>112
ありがとうございます!
MauiAssetにしてResourcesからの相対パスにしたらいけました!

114 名前:デフォルトの名無しさん [2022/10/03(月) 21:31:13.59 ID:7M+SSEiP0.net]
ListやObservableCollectionとか作るときに別classでget,setでプロパティ作るけどこれってなんて言うものなの?
他の言語とかも一緒?

115 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 21:32:38.29 ID:tDVewfT+0.net]
よくわからんがViewModelの話をしてるのか?

116 名前:デフォルトの名無しさん [2022/10/03(月) 21:35:24.31 ID:7M+SSEiP0.net]
>>115
どっちかというとModelの話かな
ほとんどの人がModelフォルダにpublic〇〇get,setしてる

117 名前:デフォルトの名無しさん [2022/10/03(月) 21:38:09.72 ID:7M+SSEiP0.net]
List‹〇〇›とかObservableCollection‹〇〇›とかの〇〇部分
xamlだと{Binding 〇〇}で〇〇の中に定義したプロパティを読み込めるやつ

118 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:52:42.56 ID:5XdXjLTq0.net]
doubleにTryParseした値を別な変数に入れたいけど、もっと素直な書き方ないかな?

var value = double.TryParse(str, out dbl) ? dbl : dbl;

119 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:56:32.76 ID:tDVewfT+0.net]
>>118
なんだその無意味な三項演算子

120 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:57:43.85 ID:tDVewfT+0.net]
>>117
型引数なのか要素なのかモデルなのか何のことを言ってるのかわからん



121 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 23:18:54.43 ID:rGUf1MZJ0.net]
選択肢がめっちゃ多い中で1つ選ばせるコントロールって何が良いですかね?
80項目くらいあるのでコンボボックスはNGになりまして。
選択内容は 数値:文字列 で表示したいです。

122 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 23:31:02.94 ID:SA/xrkif0.net]
>>121
何で決定するの?それ
何か見て決めるんでしょ?
それを画面に出せよ

123 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 00:32:43.24 ID:7S0AjRuD0.net]
立ち食いそば屋の券売機みたいにボタン並べればいいじゃん

124 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 06:40:39.38 ID:b8uw2VbJ0.net]
>>119
我ながら意味不明だけど、TryParseした"dbl"を"value"に1行で代入する方法をこれしか思いつかなかった
どうやればTryParseの結果を式として返せるの?

125 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 06:46:15.22 ID:Ls9e4TwG0.net]
>>124
失敗したときの戻り値どうすんの?

126 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 06:46:54.63 ID:Ls9e4TwG0.net]
>>121
別画面

127 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 06:56:27.63 ID:XU+NToANM.net]
double.TryParse(str, out var value)

128 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 07:10:40.44 ID:qbIePR+RM.net]
>>124
メソッドにしろよなんでもできるぞ

129 名前:デフォルトの名無しさん (ワッチョイ 0307-CLHJ) mailto:sage [[ここ壊れてます] .net]
>>126
ついでだが選択肢が80もあるなら検索ボックスも欲しいな
欲しいというか必須
別画面にせずともコンボボックスで検索するという手もある

130 名前:デフォルトの名無しさん (ワッチョイ ff01-d1zO) mailto:sage [[ここ壊れてます] .net]
>>124
絶対に失敗しないなら単に double.Parse(str) でいいし、失敗する可能性あるなら失敗した時にどうしたいのかによるわな



131 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 08:37:00.95 ID:83NgMl870.net]
>>121
高さある程度とったリストボックスでいいんじゃない
フォントダイアログのフォントみたいな
頭に数字付けるのはインクリメンタルサーチとの兼ね合いがあるが項目が日本語なら関係ないか

132 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 11:59:18.04 ID:36QRloIgM.net]
>>121
Google翻訳の言語選択画面とか
StackOverflowやEvernoteのタグ選択画面とか
有名どころで類似画面を見つけてそれを参考にするといい

選択肢の数だけじゃなく選択させたいデータの特徴とユースケースによって適切なUIは変わってくる

133 名前:デフォルトの名無しさん [2022/10/04(火) 12:28:46.35 ID:Pbtsxb5E0.net]
IsVisibleプロパティでリストビューを最初に消しててボタン押すとリストビューのIsVisibleがtrueになる
そのリストビューを選択させてSlectedイベントハンドラーでボタンのテキストを選択したものにするみたいな

134 名前:デフォルトの名無しさん [2022/10/04(火) 12:34:13.22 ID:Pbtsxb5E0.net]
Slectedイベントでもう一度ListViewのIsVisibleをfalseにするとスムーズかも
WPFの場合はVisibility=collapsedにすれば画面専有しなくなる
このプロパティめっちゃ便利だからみんなも使って

135 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 12:34:32.55 ID:Ls9e4TwG0.net]
>>133
それコンボボックスと何が違うんだ

136 名前:デフォルトの名無しさん [2022/10/04(火) 12:37:11.62 ID:Pbtsxb5E0.net]
>>135
リストビューだからイメージとかも表示できる
datatemplate設定する必要あるけどね
リストビューだけじゃなくてcollectionViewとか使ったら横2行でスクロールできるようになるし

137 名前:デフォルトの名無しさん [2022/10/04(火) 12:38:40.11 ID:Pbtsxb5E0.net]
検索バーもリストに紐付けられてたような気がするから更に便利かも
検索バーもリストビューとかと同様にIsVisibleが連動するようにしておく

138 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 12:39:40.83 ID:Ls9e4TwG0.net]
>>136
選択するのは数値と文字列って書いてるが

139 名前:デフォルトの名無しさん [2022/10/04(火) 12:39:58.19 ID:Pbtsxb5E0.net]
まぁめんどくさかったらコンボボックスでもいいけどね
1つしか項目ないならこっちのほうが楽だと思う

140 名前:デフォルトの名無しさん [2022/10/04(火) 12:41:35.19 ID:Pbtsxb5E0.net]
>>138
UIとかこだわるならListViewかなぁ



141 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 23:58:06.92 ID:b8uw2VbJ0.net]
>>125 >>130
iniファイルからの読み込みなので失敗もありえて、その場合は0.0が期待値ですね
TryPaerse失敗でoutの方は0.0になるので、単純にoutの値が欲しいだけなんです
ラムダでもうまく書けないので、>>128の言うようにメソッドにするしかないですかね

142 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 00:01:10.13 ID:KHa19VaR0.net]
>>141
double.TryParse(str,out double value) ? value : 0

143 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 03:41:09.33 ID:ILrwmDD80.net]
値が本当に0.0だったときに腹を切る用意はできてんだろうな?

144 名前:デフォルトの名無しさん [2022/10/05(水) 07:40:46.91 ID:2+KVHgSc0.net]
失敗したときは初期値を代入する、って意図なら default にした方が分かりやすいぞ

145 名前:デフォルトの名無しさん (ワッチョイ cf2c-kE2G) mailto:sage [[ここ壊れてます] .net]
どうしても代入式じゃなきゃヤダってんじゃない限り>>127で十分なんだけど

146 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 22:42:08.40 ID:UUeH3vvk0.net]
Convert.ToDouble...ボソッ

147 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 22:43:51.91 ID:UUeH3vvk0.net]
あ、失敗したとき考えたら同じだった…

148 名前:デフォルトの名無しさん [2022/10/06(木) 18:05:18.67 ID:l5eCu49d0.net]
c#でコードをすっきり書く方法について
unityです
以下のようなメインルーチンと自作関数がありますが、自作関数が多くなると間延びして見づらくなります
こうズラズラと書いていっていいものでしょうか?

void update()
{
//この中に記載したものが1フレームごとに実行される
}
void zisaku_kansu1()
{}
void zisaku_kansu2()
{}
void zisaku_kansu3()
{}

149 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 18:19:06.66 ID:okBm6j3n0.net]
知らんけどどのオブジェクトにメソッドを生やすかは見やすさ関係なしに選んだ方がいい
メソッドが増えすぎる場合クラスが肥大化しすぎて単一責任原則に反している可能性があるから他のクラスに分割できないかどうかを検討してみろ

150 名前:デフォルトの名無しさん [2022/10/06(木) 18:29:05.50 ID:l5eCu49d0.net]
スクリプト1つにここまで、みたいな目安はあるんでしょうか?



151 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 18:39:38.40 ID:okBm6j3n0.net]
無いよ
数じゃない
せっかく単一責任原則ってキーワード出てるんだから調べてみたら?

152 名前:デフォルトの名無しさん (ワッチョイ a359-eWb8) [[ここ壊れてます] .net]
了解です
問題が出たらそのときに対処します

153 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 21:08:47.37 ID:g4tnGNpoM.net]
もう問題でてるやん

154 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:21:54.37 ID:/3bhbDDg0.net]
bool? x; をint の 0,1,2 にしたいのですが
return (x is null) ? 0 : x ?? false ? 2 : 1;
もっとかっこよく出来ませんか?

155 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:44:56.92 ID:eGnFz/dY0.net]
ほとんど変わらんけど
x.HasValue ? x.Value ? 2 : 1 : 0;

156 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 23:20:02.95 ID:KOHZa6QXM.net]
見やすさを優先したいなら複数行で
return x swicth
{
 true => 2,
 false => 1,
_ => 0,
};
と書きたいなあ

1行で
return x swicth { true => 2, false => 1, _ => 0 };
と書いてもたぶん大丈夫だとは思うけど

157 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 23:28:30.50 ID:okBm6j3n0.net]
ネタコードだけど
new bool?[]{null,false,true}.IndexOf(x)

158 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 23:51:14.28 ID:E7iO37Ge0.net]
>>155
かっこつけてないじゃん
x.HasValue ? (x.Value ? 2 : 1) : 0;

159 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 00:30:44.40 ID:5dN4BPEk0.net]
>>158
かっこが無くてもちゃんと動くよ
あった方が分かりやすくて良いけど

160 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 02:06:25.47 ID:ICIDzMHN0.net]
その変態コードやるならメソッドにして手厚くコメント入れて欲しい
明示的にif文でデカデカと対応がわかるように並べて欲しい
一石二鳥なんか狙う場面じゃない



161 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 02:08:27.00 ID:ICIDzMHN0.net]
そのイカれたクソ設計考えたやつの名前と設計書の項目番号も添えて
わかるように並べるべき

162 名前:デフォルトの名無しさん [2022/10/07(金) 03:43:01.87 ID:Y3Bhrpk2d.net]
馬鹿は何でもかんでも短くすれば良いと思ってる

163 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 07:30:32.84 ID:DG0Qp9kf0.net]
switch式って.NET Frameworkだと(というかC# 7.3までだと)使えないんだね

.NET FrameworkでC# 8.0以上に上げるのは推奨されないって見てビビった

164 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 09:36:20.95 ID:Kp+8ZYZad.net]
推奨されないというか、C#8.0以上では.NET Frameworkは公式にサポート外となった
仮にたまたま今動いてても明日.NET Frameworkのセキュリティパッチで突然動かなくなるかもしれないし、もちろんMSは修正しないよ

165 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 11:14:52.33 ID:vnTjz+tv0.net]
まあ今出てる中ならどれでもいいわ
少し見にくいとしても読めないレベルじゃないから

166 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 11:22:49.33 ID:HMB85mTQ0.net]
忍者コードへの道

167 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 12:22:10.54 ID:dcU7dbGf0.net]
>>159
ギャグなんだけど…(´・ω・`)

168 名前:デフォルトの名無しさん [2022/10/07(金) 12:47:07.95 ID:d4ub3t4La.net]
>>162
ほんそれ

169 名前:デフォルトの名無しさん [2022/10/07(金) 20:16:53.71 ID:+9HYrIkm0.net]
Nullable有効にできないバージョンは古いC#って感じでもう使いたくないな

170 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 20:37:29.02 ID:UqkGeV530.net]
>>167
笑いどころがわからんわ



171 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 20:50:21.74 ID:WZglSwpR0.net]
>>170
よし。俺が解説してやろう

かっこいいコードがほしい
かっこがない→かっこつけた→格好つけた→格好いい

>>167 可哀想w

172 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 20:56:43.70 ID:5dN4BPEk0.net]
>>167
なんかゴメン

173 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 21:09:28.95 ID:UqkGeV530.net]
>>171
せめてカッコつけてないじゃん
って書いてほしいわ...

174 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 22:02:05.67 ID:/3WJyx6k0.net]
どんまい、来世はいいことあるさ

175 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 23:17:09.48 ID:US/4zJfp0.net]
>>167
強く生きて

176 名前:デフォルトの名無しさん [2022/10/08(土) 08:16:32.93 ID:jIH0D5Hw0.net]
オブジェクト内でバイナリファイルの内容を扱うとしたら、バイト型配列がよいでしょうか。ファイルストリームで吸い出してオブジェクト内で扱うつもりです。

テキストファイルでは、ストリング型か、ストリング型配列か、それともバイト型配列がよいでしょうか。処理のしやすさを考えるとストリング型に一気に吸い出すのが良いかなと思います。

177 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 08:22:48.18 ID:dLvXgc/K0.net]
データをバイト配列で扱うのが都合が良ければバイト配列にするしそうでなければ型を作る

178 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 11:01:05.54 ID:VFNuoQ0s0.net]
C#の正規表現が難しい・・・

文字列が特定パターンに一致したら、その一部をキャプチャして後方参照したいんだけど、やり方がわからん
具体的には下の感じで最初の数値群と2番目の数値群を取り出したい
Perlだとこのパターンマッチング後に$1と$2で取り出せるけど

if (Regex.IsMatch(str, @"^FIRST(\d+)_SECOND(\d+)$"))

179 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 11:34:32.95 ID:pVnemZy6a.net]
IsMatchは結果を捨ててるぞ
Matchを使え

180 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 11:53:56.88 ID:r7jgJ5YeM.net]
>>177
ストリング型に一気に吸い出すのが処理しやすいんだったらそうしたらいい
ストリームは全部一気に読むときの遅延が無視できなかったりメモリに全部乗らないような巨大なファイルを扱うようなときに使うもので、
全部一気読みで問題なく動くのならその方がシンプルで好ましい
バイト配列か文字列かは扱い対象のファイルがバイナリなのかテキストなのかに合わせればよいだけ



181 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 11:54:28.61 ID:gSJNfJVIM.net]
自分でも複雑なことをやるってわかってるのに一気に処理して
ログも出さない
途中の計算課程もみずにできると思い込む
やり方がわからない以前に一度でも実行したのか?

182 名前:デフォルトの名無しさん [2022/10/08(土) 14:35:23.82 ID:P5VjfrSW0.net]
c#でthisはつけたほうがいいのですか?
現在のインスタンスを参照していることが、そのほうがわかりやすいかなという認識ですが、機能上、すごく重要なものだったりすりんでしょうか

183 名前:デフォルトの名無しさん (アウアウウー Sa2f-tmeX) mailto:sage [[ここ壊れてます] .net]
visual studio使ってるなら色を見たらいい
色が薄いのは削除推奨
右クリックしたらリファクタリングメニューが出る
濃い色ならそのまま書いとけ

184 名前:.NET M HighSchool [2022/10/08(土) 15:43:59.89 ID:7fZ89p9v0.net]
thisは高確率で色薄くなるな

185 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 15:49:28.50 ID:DAxJe8BN0.net]
this 必須のケースって引数と名前被ってる場合以外にあるっけ?

186 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 15:53:41.70 ID:znbc6QnV0.net]
this.でわずかに候補が絞れるというメリットはあるがそのためにソース汚すのもな

187 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 16:04:49.31 ID:m4cZArl90.net]
this使ってないと素人臭がするんだよなぁ
「こいつほんとに分かってんの?」って感じ。
thisは常につけろ、何があろうと。

188 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 16:14:22.95 ID:dLvXgc/K0.net]
逆に全部this書いてるのを見ると素人だからわからないんだなと感じる

189 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 16:15:59.85 ID:8jUGKNkJ0.net]
それどういう理屈だw

190 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 16:23:46.29 ID:dLvXgc/K0.net]
コードの記述量が減るように様々な工夫が凝らされているので、それを使わないやつは知らないように見えるというそれだけのことだが?



191 名前:デフォルトの名無しさん [2022/10/08(土) 17:07:26.31 ID:P5VjfrSW0.net]
>>183
色濃いっす
書いときます

192 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 17:22:37.77 ID:XyWhvWPC0.net]
可読性を考えるとthisを付けたほうがいい

193 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 17:30:09.59 ID:f2a8Snt90.net]
原則省略していいよ
基本的には人間の記述した字句解析の手間が少なくなる程コンピューターは速く処理できるべきであり
人間の意図や文脈を解釈できないインテリセンスがまだまだ糞ってことだ

194 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 19:23:01.64 ID:5cV3My9p0.net]
>>192
this.で汚染されて逆に見辛くなるんだけど

195 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 19:52:21.24 ID:gycPEQHX0.net]
なんかマトリョーシカみたいなクラスの記述を強制するライブラリ使ってると
this付けないと飛び越えて呼んでるときあって気が付かない不具合がかなり凶悪だった覚えがある
多分この取り決めはそーゆークソライブラリ使ったとき用だと思う
通常では絶対イランと思う

196 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 23:18:49.64 ID:/uBMkTfW0.net]
>>194
そう?
俺は見にくいとは感じないし、わかりやすいからつける派だけど
慣れ親しんだ環境じゃない?

197 名前:デフォルトの名無しさん [2022/10/08(土) 23:19:17.46 ID:jIH0D5Hw0.net]
>>177
>>180
ありがとうございました。

ファイルストリームと、バイト配列の使い分けを、
教えてもらったことで意識したいと思います。

198 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 23:20:51.72 ID:/uBMkTfW0.net]
まぁ、俺にとって見やすい·わかりやすいってのはvsの色分けの効果が大きいとは思うけど

199 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 04:43:45.49 ID:hmHZpMGaa.net]
色々なコード読むとthisなんてわざわざ書いてないよね

200 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 04:45:35.54 ID:qX71Swpm0.net]
世の中にはthisを書かないと読みきれないクソソースを書くやつがいるってことだな



201 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 22:11:00.57 ID:eOE0tewq0.net]
USBデバイスを仮想COM接続し、SerialPortクラスで受信しています。バルク転送で約2Mbpsとなります。
デバイスからは60byteフレームが連続で送られてきます。DataReceivedでSerialReadして即抜けています。DataReceivedイベント発生時にバッファを確認すると、
60byte→120byte→…→60byte→(イベント発生まで時間が空いて)数kBとなります。
場合によっては内部バッファが溢れているようなのですが、イベントが待たされる条件が解らず困っています。助言いただけないでしょうか。

202 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 22:41:58.46 ID:TjSk03hV0.net]
DataReceivedイベントを使わなければ良いんじゃね?

203 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 22:46:51.58 ID:P58+Ol8v0.net]
C#でも書けるとは思うけど数MbpsのCOMポートの送受信はC/C++で専用スレッド用意して
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
した上で非同期でやり取りしないと取りこぼすだろうね

204 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 23:06:15.87 ID:sJsMwDUU0.net]
>>201
とりあえずReadBufferSizeをでかくしとけばいいんじゃね?

205 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 05:26:30.82 ID:0V0rCIqgM.net]
>>202
タイマー使ってポーリングですかね

>>203
kernel32.dllインポートでやってみます

>>204
試してみたんですけど、16384から上は実動作に反映されないみたいです

206 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 07:20:01.01 ID:D4ywmAPt0.net]
どうせDataReceivedの中で重い処理をして取りこぼしてるんだろ
受け取ったデータは非同期でキューに入れて別スレッドで処理したらいい

207 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 07:21:12.28 ID:VUbUiOFF0.net]
その前にSerialのフロー制御はどういう仕様なの?
こっちはPCだからよくても、相手があるんだから

208 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 10:20:29.33 ID:w5Aa3OJKM.net]
USBはシリアルと言いながら実際パケットを送ってるからタイミングが微妙なんだよな
その都度無駄なやり取りが発生して即応性もなくなるし複数の送受信がまとめられてたり

デバイスずっと常にデータを送り続けてる状況を作るとか言う手法があるけど
C#向きではないかなと

209 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 10:41:42.41 ID:w5Aa3OJKM.net]
USBデバイスにボタンみたいのがあって
押すと1離すと0送るとして

1,0,1,0,1,0
みたいにデバイスのユーザープログラム層が送っても
プロトコル層では間の,で
いまデータ受信中かな、送信回線空いてるかなとかデータを送りますよと言う確認など常に処理がある


タイミング次第では 10101,とまとめて送ったほうがいいなと判断されたり送信待ちしてたら平気でまとめて送ってくる
(当然ながらパケットより短い間隔で次を送ろうとしても不可能だし)
それで即応性が皆無になる

それを回避するにはストリーミングで常に状況を送り続けるかポーリングなどが有効だけど
他のUSBの帯域を圧迫してマウスの感度が悪くなったりキーボードの取りこぼしなどが起こる(IO処理なのでCPUを早くしても無駄)

210 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 20:19:27.85 ID:hb9m45MO0.net]
>>208,209
つかそんなのCOMポートの層で吸収されてないのか?
シリアル通信で取りこぼすって、まずフロー制御がちゃんとできてないだけだと思うけど



211 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 21:09:15.58 ID:qFJbGVDN0.net]
>>210
USBシリアルは基本的に垂れ流しするしかないよ
COM側は全二重に見えててもその下で動作してるUSBは半二重のホスト主導のパケット通信だからね
フロー制御用として用意されてるXon/Xoffも停止までに送信タイムラグが発生するから
目視できるような低速通信ぐらいしか役に立たないし、停止を許容できるデータなのかも不明だし

212 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 22:58:59.26 ID:w5Aa3OJKM.net]
>>210
されてないのかと言う質問にはされていないという答え

仮想comポートはあくまでも仮想なのでハードウェア的なcomポートを完全再現できはしない
ハブなんか挟むと致命的
高速データ転送してる場合は何らかの手法でうまくやってる

213 名前:デフォルトの名無しさん [2022/10/12(水) 07:20:32.76 ID:O1VGwGyV0.net]
プロパティの使い方でさ
View側から使う分には複雑な式とかメソッド呼とかは仕方ないけど、Model側からもそのまんまプロパティを呼ぶと処理が何重にも呼ばれたり副作用大杉だからなぁ
メンバー変数代わりにプロパティ使うと死ぬる

214 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 07:23:04.46 ID:TyHUeGJp0.net]
まずメンバー変数を多用すること自体が

215 名前:デフォルトの名無しさん [2022/10/12(水) 09:29:45.13 ID:wUZHBRzyp.net]
副作用のあるプロパティを作る方が悪い

216 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 09:51:43.31 ID:TyHUeGJp0.net]
プログラミング用語で副作用というのはハードウェア出力や状態の再設定のことだからイミュータブルなプロパティは全部副作用があるんだぜ

217 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 09:52:53.77 ID:TyHUeGJp0.net]
✕イミュータブル
○ミュータブル

218 名前:デフォルトの名無しさん [2022/10/12(水) 09:58:11.07 ID:wUZHBRzyp.net]
そんな言葉遊びして楽しいか?

219 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 10:03:53.44 ID:TyHUeGJp0.net]
副作用がわからんと資料に書いてあることがわからなくてかなり困るぞ

220 名前:デフォルトの名無しさん [2022/10/12(水) 10:15:07.25 ID:wUZHBRzyp.net]
俺が意図してない挙動は全部副作用だぁっ



221 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 11:33:52.36 ID:PX0iq4dK0.net]
質問です
DataGridViewで指定行までのスクロールを行いたいのですが、詰まっています
スクロール自体はFirstDisplayedScrollingRowIndexプロパティに値を代入して行えるのですが、スクロールバーのスライダー位置が最上位から変化しません
処理は、指定行を入力→DataSourceの更新→指定行へスクロールというように行っています

222 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 11:38:03.47 ID:WbjgIxC2a.net]
スクロールバーを別のとこで作ってないか?

223 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 17:04:14.81 ID:/871xKINM.net]
>>201
多重イベントでスレッドプール使い切りとかない?

224 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 18:34:22.16 ID:PX0iq4dK0.net]
>>222
そのようでした
直接弄れそうにもないので、別アプローチでの画面更新を考えてみます
ありがとうございました

225 名前:デフォルトの名無しさん [2022/10/14(金) 19:57:10.42 ID:29TAKwyj0.net]
初めてこの板で書きます。
プログラミングで対角化をしたいのですがよく分かりません。色々調べても自分がしたいことができないです。
やりたいことは、
任意の大きさの正方行列で固有値を求めたい
オイラー方程式を含む行列要素を計算したい
です。
どうしたらいいでしょう、、、

226 名前:デフォルトの名無しさん mailto:sage [2022/10/14(金) 20:00:26.98 ID:t5o5qpLS0.net]
まず言葉の意味を調べたらいんじゃね

227 名前:デフォルトの名無しさん [2022/10/14(金) 20:01:15.78 ID:Qq0Btn0+0.net]
>>225
お前には向いていない
数学ライブラリを買え

228 名前:デフォルトの名無しさん [2022/10/14(金) 20:11:06.46 ID:29TAKwyj0.net]
>>227
まあ、向いてないのはわかってるよ
でも数値計算で必要なんですもん

229 名前:デフォルトの名無しさん mailto:sage [2022/10/14(金) 20:19:28.83 ID:cI3rl/qY0.net]
実際作ってみて何で困っているかとかそういう質問しなきゃ答えて貰えない

230 名前:デフォルトの名無しさん [2022/10/14(金) 20:22:33.79 ID:29TAKwyj0.net]
>>229
ごめんなさい。
問題点は
方程式をとくやり方が分からない。数値計算みたいなことはやったことはあるが、実数解を求めるようなことはしたことない。しかも恐らく4次、五次方程式以上になると思うので、参考となるサイトとかを教えて欲しい。
オイラー方程式などの虚数iを含む式を入れることが出来ない。いい感じの関数とか逃げ方が知りたい。
こんな感じで参考となるサイトとかを教えて頂きたいです。



231 名前:デフォルトの名無しさん [2022/10/14(金) 20:24:23.30 ID:/2EVPBobp.net]
x=f(x)の形にするだけの簡単なお仕事ですやん

232 名前:デフォルトの名無しさん [2022/10/14(金) 20:30:54.89 ID:Qq0Btn0+0.net]
>>230
だからライブラリ買うとかMathematicaを買うとかしろよ
馬鹿は金を出せ

233 名前:デフォルトの名無しさん mailto:sage [2022/10/14(金) 20:39:27.04 ID:t5o5qpLS0.net]
だから言葉の意味を調べろよ
何をするのか自分で全くわかってないだろ?
「いい感じの」で調べられるわけないだろ

234 名前:デフォルトの名無しさん mailto:sage [2022/10/14(金) 21:01:32.89 ID:AnbCvpeg0.net]
>>225
言葉悪い人も多いが、ここは「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」だ。
Mathematica使えというのもその通り。もう少し知識つけて出直したほうが良い。

235 名前:デフォルトの名無しさん mailto:sage [2022/10/14(金) 23:18:39.42 ID:1T5O+VqE0.net]
他は LAPACKかのう

236 名前:デフォルトの名無しさん [2022/10/15(土) 00:40:45.53 ID:mRrGj9Y+0.net]
数学板行けば?

237 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 12:59:39.43 ID:jiCek6V8M.net]
>>225
pythonやR使ったほうがいいよ

そのレベルで留まらずその先の用途を考えてもpython
どうしても連携したいならコマンドラインでpython実行して結果だけC#で貰うことも出来る
自分は画像認識をその手法を使ってやってる

238 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 13:10:51.97 ID:jiCek6V8M.net]
よく読んだら実数解じゃないのか

高校生のころ多変量解析用に固有値が求めたくてBASICで計算してた
書籍にデータと結果が乗ってて同じグラフを表示したかった
残念ながらその時は実現できなかった

大学生になってCで組んだらあっさり行けたけどもう何も覚えてはいない

239 名前:デフォルトの名無しさん [2022/10/15(土) 13:42:59.01 ID:mRrGj9Y+0.net]
最近はML.NETってのが出てきたけどね

240 名前:デフォルトの名無しさん [2022/10/15(土) 14:19:06.79 ID:FcVUHJvZ0.net]
if(count ==1){
Debug.Log("output");
}

{}←C#ではこれの省略というのはできないのでしょうか?
pythonのように出来ると楽なのですが。



241 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 14:21:59.16 ID:TYEHa44m0.net]
Pythonと違って複文はインデントじゃなくブレースでまとめるから省略できるのは単文の時だけ

242 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 15:23:51.31 ID:3+kTGvln0.net]
むしろPythonに{}つけたい

243 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 15:32:50.72 ID:cQjeQTYh0.net]
IDEやエディタの機能を活用すればC#のほうが楽
Pythonはアンインデントを手動でやらざるを得ない分めんどくさい

244 名前:デフォルトの名無しさん [2022/10/15(土) 15:36:13.03 ID:FcVUHJvZ0.net]
>>241
ありがとうございます
了解します(´・ω・`)

245 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 15:45:52.74 ID:2u2iBEwS0.net]
>>242
Python のパーサー書き換えて新言語作ればいいじゃん

246 名前:デフォルトの名無しさん [2022/10/15(土) 17:26:06.25 ID:mRrGj9Y+0.net]
どう考えても{}あったほうがいいだろ…
メソッドとかやりたいことがひとまとまりになるから管理しやすい

247 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 17:28:20.76 ID:oepRuRjKM.net]
F#使えばいい

248 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 17:29:58.76 ID:TYEHa44m0.net]
インデントでもひとまとまりになるぞ
むしろインデントむちゃくちゃなやつを排除できるから見易いまである

249 名前:デフォルトの名無しさん [2022/10/15(土) 17:47:40.19 ID:Ggc2td0l0.net]
>>248
そんな事はIDEにやらせりゃいいんだよ

250 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 18:11:24.33 ID:2u2iBEwS0.net]
>>246
だからそう思うなら自分で作れよ
本体改造するのが大変ならトランスレーターでもいいし



251 名前:デフォルトの名無しさん [2022/10/15(土) 20:29:18.32 ID:mRrGj9Y+0.net]
>>250
いやPythonなんて使わんし…

252 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 20:39:17.55 ID:2u2iBEwS0.net]
>>251
使いもしないのに文句だけ言うとかクレーマーかよw

253 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 20:43:34.95 ID:71BCtDZc0.net]
>>252
Pythonに{}があったほうがいいとは誰も言っていないからもちつけ

254 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 20:48:05.82 ID:71BCtDZc0.net]
あっ>>242がいた
忘れてくれ

255 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 20:48:33.45 ID:onTnH2DB0.net]
あっても使わないから落ち着け

256 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 21:34:19.40 ID:2u2iBEwS0.net]
>>253
Python使ってなくて困ってもないのに
> どう考えても{}あったほうがいいだろ…
って、一体なんの言語の話ししてるんだ?

257 名前:デフォルトの名無しさん [2022/10/15(土) 22:12:17.55 ID:mRrGj9Y+0.net]
>>256
一般言語の話な
他の言語みんな{}ついてんだから必要なもんなんだよ
わかりやすいし

258 名前:デフォルトの名無しさん [2022/10/15(土) 22:21:40.18 ID:Ggc2td0l0.net]
インデントの位置で動きが変わる欠損言語だよな

259 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 22:23:32.44 ID:2u2iBEwS0.net]
>>257
お前の使う言語はみんな { } 使うのに
> どう考えても{}あったほうがいいだろ…
って意味不明なんだがw

260 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 22:46:19.16 ID:tSskybGM0.net]
python には {} なくても通用してるんだから、あっちのユーザーさんには必要なものではないんだろう。
自分は {} あった方がいいからって理由もあって ruby とかもキライなんだが。

まあ好き嫌い言ってても仕方ない。我らは要望に応えるだけだ。



261 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 22:59:00.35 ID:TYEHa44m0.net]
vb「begin endですが何か?」

262 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 02:11:40.97 ID:IoSf1xr/0.net]
>vb
loopだったりnextだったりする箇所は別人が引き継いだのかな

263 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 08:54:37.59 ID:9H+50nm50.net]
>>262
basicが作られた時は今のようにブロックで構造化するんじゃなくgotoしてた
つまりifと対応するのはendではなくgoto
10 if a=1 then goto 40
20 rem aが1でないの時の処理
30 goto 50
40 rem aが1の時の処理
50 次の処理
ブロックという概念がそもそも無かったからブロックの形を統一しようという発想もなかった

264 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 09:45:07.64 ID:zEVEZIxw0.net]
loop 使えるような Basic で関数ブロックを持たない奴なんてなくね?
てか、end はともかく begin なんてキーワードを持つ Basic も見たことないんだが

265 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 09:52:41.83 ID:3xSHFrvIa.net]
>>264
見たことないのはお前が使ったことないからだな
https://stackoverflow.com/questions/61893042/what-visual-basic-syntax-is-this-begin-end-no-class

あと関数なんて無かった
gosubでサブルーチンを実装してたがサブルーチンもメインルーチンの好きなところに好きにgotoできたしそこにブロックの概念はやはり無かった

266 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 10:21:36.83 ID:zEVEZIxw0.net]
>>265
.frm ファイルとかをあげるバカが出てくるかと思ってたらマジで出てきたw
今してるのは言語仕様の話な

あとVBに関数ブロックあるし老害はそろそろ黙っとけ

267 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 10:23:41.83 ID:9H+50nm50.net]
言語仕様だぞw
キーワードに見えんか?w

268 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 10:24:56.25 ID:9H+50nm50.net]
あと初期のBASICに関数が無いという話をしてるんだから文盲は口を挟まない方が恥をかいて発狂しなくて済むぞw

269 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 11:17:27.02 ID:zEVEZIxw0.net]
>>267
残念ながらキーワードに begin なんてないんだなw
https://learn.microsoft.com/ja-jp/office/vba/language/reference/keywords-visual-basic-for-applications
※ vb6 のドキュメントは見つけられなかったので vba のやつな、似たようなもんだし

>>268
>>262 に loop と書いてあるのにお前が勝手に初期の Basic の話にしてるだけだろ

270 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 11:24:23.67 ID:1mPDcr2ta.net]
なんでVB.NETの話をしてるのにVBAのドキュメント見てるんだ文盲w



271 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 11:25:30.01 ID:1mPDcr2ta.net]
あとなんで初期のキーワードの成り立ちの話をしてるのに一人loopの話をしてるんだ文盲w

272 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 11:34:12.88 ID:7phLrZXmM.net]
>>268
残念ながら文盲は文字自体が読めない人のことだよ

学がなく漢字が読めない
ひらがなが読めない

そういう人
君は文盲が何か理解できてない

273 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 11:35:46.69 ID:1mPDcr2ta.net]
アスペと言えば良かったということか

274 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 11:35:53.13 ID:9tRg+VNh0.net]
>>1 が読めないもん同士なんだからどっちも消えろw

275 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 11:51:09.98 ID:zEVEZIxw0.net]
>>270
バカなのか?
回答に That is VB6 code. って書かれてるだろ
どうせ>265は basic begin あたりで必死にググってきたんだろうけど恥の上塗りにしかなってなくて草

>>271
だから >>262に loop と書いてあるだろ
do loop も知らないのなら黙ってなよw

276 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 11:52:27.38 ID:1mPDcr2ta.net]
>>1が読めないアスペはいつまでもアホなこと言ってないで消えろよw

277 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 12:24:39.22 ID:zEVEZIxw0.net]
>>276
>>265に言ってやれよw

278 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 12:25:47.33 ID:9H+50nm50.net]
全く反省の色が見えないぞアスペ

279 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 12:47:17.79 ID:zEVEZIxw0.net]
キーワードで恥かいて悔しいねw

280 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 12:48:24.88 ID:1mPDcr2ta.net]
VB.NETの話にVBA持ってきて恥をかいたのがお前ということは言ったろw
いつまで寝言言ってんだスレ違い



281 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 13:27:00.75 ID:zEVEZIxw0.net]
まだ、VB.NETとか言ってて草
英語も読めないバカ乙

282 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 13:27:43.86 ID:9H+50nm50.net]
まだ恥をさらすんかいw

283 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 13:53:22.51 ID:zEVEZIxw0.net]
キーワードバカ颯爽と再登場!
恥の上塗りのよかーんw

284 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 13:54:32.92 ID:9H+50nm50.net]
悔しいのはわかったからそろそろスレ違いということを理解して出ていけよw

285 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 14:01:28.80 ID:zEVEZIxw0.net]
>>284
>>282 に言ってやれよw

286 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 14:03:19.31 ID:9H+50nm50.net]
お前に言ってるんだよアスペw
言葉遣い同じだからすぐわかるわアスペw

287 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 14:24:54.49 ID:zEVEZIxw0.net]
アスペとしか言えない恥曝し乙
そもそもid付いてるのに言葉遣いとか頭沸いてるのかよw

288 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 14:27:09.03 ID:9H+50nm50.net]
まだ続けるのか
アスペはしつこいなw
だから他のスレでも軒並みアスペと呼ばれてるんだぞw

289 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 14:45:38.60 ID:zEVEZIxw0.net]
>>288
>>288

290 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 16:51:17.67 ID:SOkAGPqKd.net]
アスペ文盲 vs アスペ老害
初心者C#「ファイッ!」



291 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 17:36:31.58 ID:smb+KIWw0.net]
>>272
文盲は「自分の名前の読み書きができるか」って基準です

292 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 10:52:48.22 ID:EEvzrdC6M.net]
>>291
それは間違った知識だな
識字率が著しく低い人がいわゆる文盲

戦後まもなくアメリカのGHQは敗戦国日本は漢字教育が妨げとなっていると感じ
ひらがなや漢字を廃止しアルファベットを導入しようとした

そのために識字率の調査を行った
その結果漢字の読み書きができないものは2%だけなのでその案は却下された

井上ひさしの書籍では識字率の試験を受けた老婆の話が載っていて読み書きは出来ないが
たまたま自分の名前の漢字が含まれていたので正解ゼロにはならなかったと言う逸話が乗っていた
それが間違って覚えてるんだろう

293 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 11:45:02.06 ID:uvkff8kK0.net]
>>292
世界中の文盲率を計測するために作られた世界標準の文盲の基準ですよ
あなたの言うような文学的基準では全ての国を平等に比較するのは無理ですね

294 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 15:53:46.65 ID:4k1KVawh0.net]
ホリ工モン基準だと日本人の5割は文盲らしいぞ
だからユーチューブとかチクトクが流行る

295 名前:デフォルトの名無しさん [2022/10/17(月) 20:54:25.97 ID:9OAS6xxs0.net]
なるほどホリエモンは文盲ってことか

296 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 00:44:28.00 ID:JpO0eTnpM.net]
>>293
そんな独自研究なんて聞いたことないわ

297 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 02:02:12.75 ID:ngZCuxghM.net]
「識字率が低い人」ってもう何もかもダメそうな表現やな……

298 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 19:12:18.10 ID:PTCHOYVI0.net]
アメリカのスラム街の子供は、I no. とかそのレベルだぞ
日本は寺子屋文化で異常に高いだけ

299 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 19:16:28.64 ID:UBgCygBr0.net]
>>298
そういうのはスラムとかじゃなくて知的障害の類だからそれで言ったら日本も別に変わらない

300 名前:デフォルトの名無しさん [2022/10/18(火) 22:05:07.00 ID:OR0fD8XM0.net]
こう包み込む感じの関数と、括弧内に数値を入れる関数では何がちゃうんでしょうか?
ToString(floatvalue);
floatvalue.ToString();



301 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 22:17:39.34 ID:HdYtkAV80.net]
関数を作ったやつに聞くが良い

上はエラー
floatvalue.ToString(書式);

302 名前:デフォルトの名無しさん [2022/10/18(火) 22:30:07.73 ID:joOPF2hi0.net]
ヒント
ネームスペース

303 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 22:30:07.98 ID:cuMhZa5Q0.net]
LinqのSelectでサブセットのプロパティを自動展開して平坦化する方法ないでしょうか?
式木とか駆使しまくれば可能でしょうか

class HogeTable
{
  string ID {get;set;}
  string Name {get;set;}
  :
  :
}

=============

var query = from tbl in db.HogeTable
 select new
 {
   Expand(tbl) // <- HogeTableのプロパティを自動展開してほしい
 };
 ↓
var query = from tbl in db.HogeTable
 select new
 {
   tbl.ID
   tbl.Name,
   :
   :
 };

304 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 22:36:04.52 ID:oAfMFtaG0.net]
何がしたいのかわからん
その匿名クラスのオブジェクト作る意味あるか?

305 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 22:43:04.96 ID:cuMhZa5Q0.net]
先の例ではテーブル1個だけですが、実際はjoinしまくりでselectしたいプロパティがたくさんあります

var query = from tbl in db.HogeTable
 join fuga in db.FugaTable on tbl.ID equals fuga.HogeID
 select new
 {
   tbl.ID,
   tbl.Name,
   :
   fuga.HogeID,
   fuga.Code,
   : // プロパティ多すぎて書くのがだるい
 };

306 名前:デフォルトの名無しさん [2022/10/18(火) 22:44:16.89 ID:joOPF2hi0.net]
一度書けば済むんだからチマチマやれよ

307 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 22:49:27.13 ID:cuMhZa5Q0.net]
IT土方にはなりたくないんです!
スマートに書きたいんです

308 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 22:50:05.56 ID:oAfMFtaG0.net]
やっぱり何がしたいかわからんな
select (tbl,fuga)でいいだろ

309 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 22:59:42.55 ID:HdYtkAV80.net]
DapperのsplitOnだな

310 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:01:06.32 ID:cuMhZa5Q0.net]
>>308
それだと
foreach(var row in query)
{
 // row.tbl.IDのようにドットが2つになる
 // row.IDのようにアクセスしたい
}

後だしで申し訳ないですけど、このあとExpressionで動的に検索かけるので
tblとかfugaとかあると今の私の知識では出来ないんです。。



311 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:03:47.75 ID:oAfMFtaG0.net]
Expressionで動的に検索って何だ
何がしたいかわからんと再三言ってるんだからまず何がしたいかを説明しなきゃ話にならんだろ

312 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:05:30.50 ID:cuMhZa5Q0.net]
ぇ、だからやりたいのは>>303です
Expressionは質問の趣旨とずれます

313 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:06:39.73 ID:oAfMFtaG0.net]
そうか説明したくないなら別に聞く必要ないわ
頑張れ

314 名前:デフォルトの名無しさん [2022/10/18(火) 23:09:54.15 ID:joOPF2hi0.net]
動的にって、スクリプト書くしか無いんじゃね?

315 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:10:51.98 ID:oAfMFtaG0.net]
もう触らなくていいぞ

316 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:17:24.79 ID:9/f62YBx0.net]
>>303
jsのスプレッド構文みたいな感じ?
ちょっと違うか

317 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:23:54.56 ID:cuMhZa5Q0.net]
>>316
ニュアンス的にはそんな感じですね。
ただ展開したいのは値じゃなくてプロパティの方なので、やっぱり動的プログラミングの範疇ですよね

318 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:44:26.60 ID:sRZwLUu60.net]
C#でJavaScriptを実行する方法
アドレス省略

とかどうだろ?
ゲームだとLuaとかpythonよく使ってたな
自分は使える状態になったもんしかいじったことない

319 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:47:40.60 ID:oAfMFtaG0.net]
なるほどパフォーマンスや保守性を無視していかに質問者の最初の問に矛盾しないコードを書くかという大喜利か

320 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:54:23.64 ID:sRZwLUu60.net]
>>319
別に変な方法じゃないぞ
ゲームとかパフォーマンスに影響する部分はc++でゴリゴリ書くけど
そうでない部分はc#で
もうゲームシステム部なんて
全部pythonだったりしたぞ

ビジネスアプリでもこれ割とアリだと思うんだけどね
速度を求めてないときに型とか煩わしいだけで無駄だと思うんだよね
かと言ってDictionaryでやっちゃうと完全に型チェックなくなっちゃうし



321 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 23:59:43.02 ID:oAfMFtaG0.net]
ビジネスでは完全に無しだわ
趣味なら好きにしたらいんじゃね

322 名前:デフォルトの名無しさん [2022/10/19(水) 05:19:21.43 ID:jC2EXU9G0.net]
>>302
下に関して、ネームスペースにする必要ありますか?

323 名前:デフォルトの名無しさん (ワッチョイ bb5f-Jufk) [2022/10/19(水) 09:19:09.84 .net]
>>322
あ?
上は自クラス内メソッドだろ?
下は参照クラス内メソッドだろ?
同じメソッド名ってのに惑わされるなよ別物だぞ

324 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 12:49:22.09 ID:rgBskw8B0.net]
>>305
Ruby on Rails には、O/R マッパーもあるので全自動

Rubyで抽象的に、マイグレーションファイルに表定義すれば、
3大データベース、PostgreSQL, MySQL, SQLite の方言・型で定義される

Railsみたいな、O/R マッパー付きのフレームワークを使わないと、プロにはなれない

Java 土方は、Railsを使えない。
Java土方 vs リモート開発のモダンなRails

325 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 12:52:27.97 ID:rgBskw8B0.net]
YouTube のDeanin の動画では、

Ruby on Rails で、Three.js, Godot で、3D ゲームを作っていた

326 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 13:56:06.53 ID:8/1xE7uxa.net]
オワコンと言われて久しいRailsがモダンと言われたのは何年前の話だろうか

327 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 11:30:15.44 ID:PZrToWIo0.net]
>>299
違うぞ、きちんと話せて意思疎通もできるけど、単に文字が書けない知らないってだけ
日本にいたら、そんな人の存在は理解できないけど

328 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 14:00:06.54 ID:EjoMYd4Ya.net]
(スラングだといつ気づくんだろう)

329 名前:デフォルトの名無しさん [2022/10/21(金) 20:36:11.47 ID:Uz/9j/Qf0.net]
プログラミンはどれだけきれいに書くかが大事なんでしょうか?
汚いとそれだけで頭がこんがらがります(´・ω・`)

330 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 20:38:50.78 ID:cLyPMgkx0.net]
WOZは天才だけどプログラムが美しいかと言うと?



331 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 20:39:28.61 ID:evL0t28u0.net]
>>329
設計レベルだときれいは必須
コーディングレベルだとVSに従ってるレベルであればOK

332 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 21:45:05.81 ID:IBSByhnA0.net]
性格いい人見つけてレビューしてもらう

333 名前:デフォルトの名無しさん [2022/10/21(金) 22:27:13.65 ID:whbnSZB/M.net]
>>329
その通り
ただ君の考えるキレイと優れた開発者の考えるキレイが同じとは限らない

334 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 23:23:29.11 ID:X//QLN3D0.net]
可読性の高い、Ruby がベスト。
他の言語は可読性が低いから、作った瞬間から産業廃棄物

だから皆、新規で作って、作り逃げする。
自分が作ったものでも、改修できないからw

335 名前:デフォルトの名無しさん [2022/10/22(土) 00:49:35.85 ID:vvrmomXL0.net]
>>334
正論
Ruby以外の言語をやってるやつはサタン

336 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 00:58:20.33 ID:SCNLWEI10.net]
可読性が低いことで有名なPerlを受け継いだRubyの可読性が高いって何の冗談なんだか

337 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 01:04:16.52 ID:sdxg/Y9t0.net]
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください

338 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 01:04:55.75 ID:SCNLWEI10.net]
自分に言い聞かせてるのか

339 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 04:59:53.84 ID:g5VlGNlPa.net]
>>337
ほんこれ

340 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 10:37:35.64 ID:rexZxi1C0.net]
enum型をintにするには (int)hogeでいけるが
Hage<T>(T value) の時、valueをintに変換
var result =(int)vale; だとエラーになる

どうすればいけるんですかね?



341 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 10:57:52.04 ID:sdxg/Y9t0.net]
Hage<T>(T value) where T: Enum

342 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 11:25:06.41 ID:QLe4fcYA0.net]
>>340
一度objectに変換すればOK
var result = (int)(object)value;

343 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 11:43:10.44 ID:LN75Th25a.net]
>>342
きっつ

344 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 12:37:18.58 ID:rexZxi1C0.net]
>>341
今回はすべてのタイプを取り込んでからEnumのときだけやるのでこれは使えませんでした

>>342
コレで行けました
ありがとうございます

345 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 13:50:10.10 ID:JgadWci70.net]
そもそもintにしなきゃいけないならenumなんか使うなと思うが・・・

346 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 14:16:53.47 ID:J0WzfMNr0.net]
>>345
intのままだと値域を制約できないが、代わりに何を使えばいい?

347 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 17:11:59.78 ID:DoqTc5dI0.net]
ジェネリックついでに横から質問させてください。

省略可能引数にジェネリック型指定した場合、呼出側でコンパイルエラーになります

// 呼び出されるメソッド
void Miku<T, U>(List<T> vol, U negi = null) where U : class
{
}

// 呼出側
hatune.Miku(list); // CS0411 メソッド 'method' の型引数は、使用法から推論することはできません。 型引数を明示的に指定してください。

回避策ありますか?

348 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 17:16:23.54 ID:eEXfO1n1M.net]
だってエラーメッセージ通りだろ
どうやってUが何の型か推測できるんだよ

対策はエラーメッセージ通りに明示的にかけ

349 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 17:18:14.30 ID:rGDZLIi60.net]
ノリと勢いで推測しろよな

350 名前:デフォルトの名無しさん (オイコラミネオ MM69-80Lh) mailto:sage [2022/10/22(土) 17:27:58.11 ID:eEXfO1n1M.net]
人間はミスして当たり前
何かあったら自分が間違っていることをすぐに受け止めないといけない
そこが入り口
何十年もコード書いてるけどミスだらけ
まずはしっかりとエラーメッセージを読むしかない


にしてもお前らジェネリック好きだな
自分はジェネリックのメソッドなんてほぼ書かないよ



351 名前:デフォルトの名無しさん (オイコラミネオ MM69-80Lh) mailto:sage [2022/10/22(土) 17:32:27.07 ID:eEXfO1n1M.net]
汎用ライブラリみたいなのでジェネリックはありうる

でも自分の使うライブラリのメソッドでは出番はない
クラス設計終わってるしinterface使わないでジェネリック単体なんてことはまずない
そこを汎用的に作る意味ないしコード重複もない

352 名前:デフォルトの名無しさん (ワッチョイ 8201-yYWu) mailto:sage [2022/10/22(土) 17:36:42.98 ID:0Z7kQC5T0.net]
おまえがジェネリックを書くかどうかなんてどうでもいい、チラ裏にでも書いとけ

353 名前:デフォルトの名無しさん (オイコラミネオ MM69-80Lh) mailto:sage [2022/10/22(土) 17:42:42.27 ID:eEXfO1n1M.net]
普段のコードでジェネリックを使ってたら大体何かが間違っている

354 名前:デフォルトの名無しさん (ワッチョイ 1907-Rexe) mailto:sage [2022/10/22(土) 17:50:29.89 ID:SCNLWEI10.net]
ジェネリックをほとんど使ってないやつのコードを見ると単一責任原則に反してるケースが多い

355 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 19:28:17.81 ID:LnG3fbHw0.net]
曖昧論はいいから具体論を頼む

356 名前:デフォルトの名無しさん [2022/10/22(土) 19:57:34.11 ID:ql0xnxKt0.net]
デフォルト型引数っていうのはないのか

357 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 20:35:58.55 ID:eEXfO1n1M.net]
普通にオーバーロード書けよ

358 名前:デフォルトの名無しさん [2022/10/22(土) 20:59:48.27 ID:PKq48whGa.net]
tsにはあるみたい

359 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 21:14:16.27 ID:eEXfO1n1M.net]
typescript(javascript)にはオーバーロードがないからな

普通に書けばいいのにわざわざ難しく書いて機能がないとか言い出すのはどうなの

360 名前:デフォルトの名無しさん [2022/10/22(土) 21:16:10.99 ID:dlqtwNJ3a.net]
おー、怖い怖い。



361 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 21:29:04.96 ID:SCNLWEI10.net]
tsは変性が無茶苦茶で整合性とれてないからデフォルト型引数ができるんだろ
https://qiita.com/na-o-ys/items/aa56d678cdf0de2bdd79

362 名前:デフォルトの名無しさん [2022/10/22(土) 21:50:34.77 ID:pZkxSUcfp.net]
デフォルト型引数を導入は完全な上位互換ではなく何かしらの不都合があるからないってことかな?
よーわからん。

363 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 21:55:53.90 ID:eEXfO1n1M.net]
typescriptは出来立てはきれいな文法や仕様だった

ところが素のjavascriptの仕様がひどすぎてどんどん仕様追加していって
全部の機能を把握してコード書いてる人間はいないんじゃないかと言うぐらいカオス状態になってる

364 名前:366 mailto:sage [2022/10/22(土) 22:34:54.25 ID:DoqTc5dI0.net]
もちろんオーバロードも考えましたけども。
Mikuメソッドが30行くらいあって、negiが指定されてる場合に処理の真ん中あたりの2,3ステップだけnegi処理をやるっていう
すっごいオーバロードに向かない作り。

記述量も増えるし、一概にオーバロードっていう考えもどういうものかと。
それにメソッド定義時点で警告も何も出ないので、何か呼び出せる書き方があるのかなと思った次第です

365 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 22:37:13.17 ID:sdxg/Y9t0.net]
void Miku<T>(List<T> vol) => Miku<T, object>(vol);

この1行足すだけやん
コピペで作ろうとしてる?

366 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 22:38:02.72 ID:sdxg/Y9t0.net]
まちがえた
... => Miku<T, object>(vol, null);

367 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 10:00:46.08 ID:+fqIJl0NM.net]
>>364
警告出るわけがない
出るならコンパイラがおかしい

hatune.Miku<List<Person>,Address>(list,place);
みたいに型を省略しないでかけばいい

どちらにしても本当にジェネリック使うのが正しいのか考え直して欲しい

368 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 18:30:02.69 ID:Pqz/1oYS0.net]
where U : classの必要性がわからん
何も渡さないなら
Miku<T>(List<T> vol, object negi = null)
で良いんじゃないかとしか思えん

369 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 18:55:12.60 ID:chiatfyX0.net]
それAggregateの前でも同じこと言えんの?

370 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 17:31:24.22 ID:/HcoEXSHd.net]
中括弧というか、中括弧行がほぼ、空白行にみえて、鬱陶しい
vbしかやってこなかった弊害だな



371 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 17:37:21.21 ID:qnnhkHib0.net]
スコープが変わるからインデントを入れても空白行を入れても問題ない程度にはコンテキストが違うぞ
空白行は複数行のコードをいくつかのまとまりに分ける時に使うだろ?

372 名前:デフォルトの名無しさん [2022/10/25(火) 18:41:46.55 ID:tJBp4Vzi0.net]
EntityFrameworkについての質問です。
同じDB(SQLServer)で2つのテーブルを使いたいのですが、現在すでにEntityFrameworkで登録しているテーブルに加え、
もう一つ別のテーブルを追加したいときどのように記述すればよいのでしょうか。

DataContextクラスをもう一つ作らないといけないのでしょうか。
よろしくお願いします。
https://imgur.com/w35hFzI.jpg

373 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 18:56:40.03 ID:tQ39k2n1a.net]
>>372
https://teratail.com/questions/sc3yzexncjd2uj
dbは違うけどこれお前じゃね?

374 名前:デフォルトの名無しさん [2022/10/25(火) 18:58:42.86 ID:mfkWT+mt0.net]
print(1%3);
なんでこれの結果が1になるんでしょうか
0.11111111になるかとおもってたんですが

375 名前:デフォルトの名無しさん [2022/10/25(火) 18:59:45.45 ID:tJBp4Vzi0.net]
>>373
残念違います

376 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 19:06:06.10 ID:tQ39k2n1a.net]
>>374
余りが整数にならないわけないじゃん

377 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 19:18:16.71 ID:Str/i4Gi0.net]
>>370
中カッコが空白行っぽくみえるからVBで入れてた空白行をいれなくてよくていい感じだが

>>372
そもそもその一つ目のテーブルどうやったんだよ?
同じ手順で追加できるんじゃね

378 名前:デフォルトの名無しさん [2022/10/25(火) 19:19:52.52 ID:tJBp4Vzi0.net]
すみません自己解決しました
public DbSet‹Article›~の下に
public DbSet‹追加したいテーブルのモデル›プロパティ名ゲットセットを追加して
ソリューションのMigrationsファイルを削除してやってみたらいけました

379 名前:デフォルトの名無しさん [2022/10/25(火) 19:20:54.69 ID:tJBp4Vzi0.net]
>>377
同じ手順でやってみたのですがマイグレーションズファイルの中身が邪魔してたのかもしれません

380 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 19:21:44.69 ID:510nTPbL0.net]
非常に初心者スレっぽい流れ



381 名前:デフォルトの名無しさん [2022/10/25(火) 19:57:45.49 ID:mfkWT+mt0.net]
bool rangeFunction(float value,float min,float max)
{
if(value > 0 && value < 3)
{
print("範囲内です");
return true;
}
return ;
}

ifの外でリターンを返すにはどうしたらいいんでしょうか?
範囲指定の関数になります。
もし範囲内であればtrueにします

382 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 20:00:18.67 ID:qnnhkHib0.net]
return value is >= min and <= max;

383 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 20:01:21.65 ID:qnnhkHib0.net]
つかprint(って何だ)をそんな変なところに入れんな

384 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 20:01:30.48 ID:PDW864Oy0.net]
>>374
%は余剰(割り算の余り)を求める演算子
1÷3=0余り1

385 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 20:05:37.53 ID:PDW864Oy0.net]
>>381
下の方のreturn ;をreturn false;にする

386 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 20:16:09.52 ID:VW8svp7V0.net]
>>374
もし良ければ、0.11111111 になると思った根拠を聞かせて

387 名前:デフォルトの名無しさん (オイコラミネオ MM69-80Lh) mailto:sage [2022/10/25(火) 21:04:35.60 ID:M/tJTOq7M.net]
0.11111111.…(永久に循環)だったら =1だから間違ってはいないけどそういう問題でもない

388 名前:デフォルトの名無しさん (オイコラミネオ MM69-80Lh) mailto:sage [2022/10/25(火) 21:05:06.09 ID:M/tJTOq7M.net]
二進数でが抜けてたな

389 名前:デフォルトの名無しさん (ワッチョイ 1907-Rexe) mailto:sage [2022/10/25(火) 21:08:37.11 ID:qnnhkHib0.net]
算数苦手なんだろ
1/3が0.333...だから余りは1-0.333...×3で0.111...という発想なんだろうな
それでも0.000...だけどな

390 名前:デフォルトの名無しさん (ササクッテロラ Sp11-LjDK) [2022/10/25(火) 21:10:47.53 ID:JX+WIZlhp.net]
整数の世界



391 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 23:46:02.17 ID:GCi1IYdR0.net]
print文はrangeFunction()呼び出し側に実装すべき

392 名前:デフォルトの名無しさん [2022/10/26(水) 00:08:21.84 ID:NhZ6Jc52a.net]
VBSのこの配列はC#でどう表現したらいいのでしょう?xyhwはintです
data = Array(Array(x, y), Array(x + w, y), Array(x + w, y + h), Array(x, y + h))

COMを使う引数用配列の定義なのですが、これはCOMに型が違うと怒られました
var data= new int[][] { new int[]{ x, y }, new int[] { x + w, y }, new int[] { x + w, y + h }, new int[] { x, y + h } };

393 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 00:10:49.93 ID:MPkBvgrP0.net]
どういう型なのかVSが正確に教えてくれるのがこの言語の良さだが教えてくれないのか?
具体的にCOMのどの関数?

394 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 00:16:41.96 ID:NhZ6Jc52a.net]
photoshop.applicationのActiveDocument.Selection.Selectです

395 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 00:17:49.17 ID:HZuVvHGf0.net]
int配列じゃないじゃないか

396 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 00:24:02.09 ID:NhZ6Jc52a.net]
すみません。doubleでした。が、これでもエラーは変わらずです
data = new double[][] { new double[] { x, y }, new double[] { x + w, y }, new double[] { x + w, y + h }, new double[] { x, y + h } };

397 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 00:49:42.78 ID:NhZ6Jc52a.net]
自決。これでいけました
data = new object[] { new object[] { x, y }, new object[] { x + w, y }, new object[] { x + w, y + h }, new object[] { x, y + h } };

398 名前:デフォルトの名無しさん [2022/10/26(水) 00:53:03.57 ID:lrx3siXd0.net]
おう早く成仏しろよ

399 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 06:08:13.19 ID:h2Qffg100.net]
定期的に自決してるネ

400 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 08:07:30.06 ID:HZuVvHGf0.net]
自決が自殺のことと知らず自分で勝手に言葉を作るやつが増えたんだろ



401 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 09:24:34.71 ID:T9NC5dRR0.net]
5chのノリに対して真面目に言われても。。

402 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 09:36:42.74 ID:7O9MyaKx0.net]
https://images.squarespace-cdn.com/content/v1/5068fd0ec4aa16ad80737e95/1524567345147-PKE47EDZHTVBCAOJ60NE/kitano005.jpg

403 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 09:37:16.88 ID:HZuVvHGf0.net]
お前らノリじゃなく本気で知らんだろ
最初は俺も「さすがにそれを知らんやつはいないから冗談だ」と思ってたんだぞ

404 名前:デフォルトの名無しさん [2022/10/26(水) 09:58:58.52 ID:e8T4fz3Wp.net]
varで勝手に型決めろって言っといて型が違うとか傲慢なw

405 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:12:48.45 ID:HZuVvHGf0.net]
varは型推論
型を自由に変えられるのはvbならvariant
C#ではCOMはdynamicで受けるのが定番

406 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:13:22.89 ID:YS2geK1Yr.net]
勝手に決めろというか推論だから、違ってることもあるんじゃねーの?

407 名前:デフォルトの名無しさん [2022/10/26(水) 10:17:04.49 ID:e8T4fz3Wp.net]
object型が万能型って事かぁ

408 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:20:24.72 ID:Do8Z1/L1a.net]
objectじゃなくdynamicだっつってんだろw
objectにしたらobjectの持ってるメソッド以外使えないだろ

409 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:26:21.60 ID:g9KqG/ntM.net]
>>406
確定できる文法になっています

410 名前:デフォルトの名無しさん [2022/10/26(水) 10:26:54.29 ID:hM0WEApa0.net]
>>384
なんで0.11111があまり1になるんすかね(´・ω・`)



411 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:28:54.49 ID:g9KqG/ntM.net]
>>410
0.11111ってどっから出てきたの?

412 名前:デフォルトの名無しさん [2022/10/26(水) 10:29:16.86 ID:lQW0CdoF0.net]
基本的に型が合いませんって言われたらobject型を疑うようにしてる
クラス名の型にぶち込めばなんやかんやで動いてくれる

413 名前:デフォルトの名無しさん [2022/10/26(水) 10:30:16.76 ID:lQW0CdoF0.net]
>>410
0.00000000…1だろ…

414 名前:デフォルトの名無しさん [2022/10/26(水) 10:37:26.97 ID:hM0WEApa0.net]
>>382
どゆこと?特定の範囲内に収まってればtrueを返したい

415 名前:デフォルトの名無しさん [2022/10/26(水) 10:40:48.05 ID:yId2OGphp.net]
>>410
整数しか無い世界の話に少数持ち出すなよw

416 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:46:07.05 ID:g9KqG/ntM.net]
あ、なるほど
0.33333333×3=0.99999999だから
余りは0.11111111ってことか!
完全に理解した

417 名前:デフォルトの名無しさん [2022/10/26(水) 10:53:47.60 ID:yId2OGphp.net]
>>416
小学校からやり直せw

418 名前:デフォルトの名無しさん [2022/10/26(水) 11:01:03.70 ID:hM0WEApa0.net]
>>415
少数使っちゃだめなんやね

419 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 11:01:38.87 ID:Do8Z1/L1a.net]
>>414
関数内をその一行だけにすれば特定の範囲内の時にtrueでそうじゃない時にfalseが返る
printはその返り値で分岐したらいい

420 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 11:04:11.58 ID:Do8Z1/L1a.net]
>>418
小学校でそう習わなかったか?
4÷3は1余り1
少数を使わないために余らせてるのに使ってどうするよ
1÷3は0余り1だろ
1個のリンゴを切らずに3人に平等に分けると1人0個ずつで1余る



421 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 11:06:44.91 ID:NhZ6Jc52a.net]
>>416-417
こういうの好き

422 名前:デフォルトの名無しさん [2022/10/26(水) 11:09:20.02 ID:4jVuVTojp.net]
りんごじゃ半分にすればいいじゃんってなるから
もっと分けられないものを例えにした方がいい

423 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 11:11:52.88 ID:Do8Z1/L1a.net]
切らずにつってるのに切るバカには何言っても無駄だから

424 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 12:22:24.32 ID:jqBYUPvjM.net]
すりおろしたら良いじゃん

425 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 12:26:19.21 ID:Do8Z1/L1a.net]
そう言うこと言うやつは子猫でもすりおろすから

426 名前:デフォルトの名無しさん [2022/10/26(水) 12:35:40.43 ID:lBrQFFOa0.net]
俺が咀嚼して2人には口移し

427 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 12:48:13.46 ID:DNyqLTW70.net]
ジャイアン、スネ夫、のび太で考えろよ

428 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 12:57:07.06 ID:i0WUe8DpM.net]
数直線を切る
デデキントの切断
整数を切断しても整数しか発生しない

429 名前:デフォルトの名無しさん [2022/10/26(水) 20:25:34.79 ID:hM0WEApa0.net]
パブリック変数がスクリプトの銭湯二ズラーっと並びますが、これを折り畳める昨日はないのでしょうか
関数みたいに【】でくくることは出できないですし

430 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 20:28:15.82 ID:1JfwFfQJa.net]
#region
#endregion
で囲む



431 名前:デフォルトの名無しさん [2022/10/26(水) 22:16:29.32 ID:lQW0CdoF0.net]
記事検索の機能をつけたいのですが
Title,Contentパラメータの入ってるリストで検索ワードで検索しどちらか片方でも入っているものを再度別リストにしたい場合ってどうやるのですか?
FindAllは完全一致じゃないとだめでしたよね?

432 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 22:30:34.01 ID:MzASwS2c0.net]
普通に

433 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 22:33:06.99 ID:fUqihkJz0.net]
var newList = list.Where(x=>x.Title.Contains(hoge) || x.Content.Contains(hoge)).ToList();

434 名前:デフォルトの名無しさん [2022/10/26(水) 22:35:16.80 ID:lQW0CdoF0.net]
>>433
ありがとうございます
LINQ構文使うんですね

435 名前:デフォルトの名無しさん [2022/10/27(木) 04:33:25.61 ID:+0xiQnXe0.net]
>>430
はい

436 名前:デフォルトの名無しさん [2022/10/28(金) 18:26:15.47 ID:HG0H6tJb0.net]
プログラミンはある時を超えると急速に上達したりするでしょうか?
学習曲線というか

停滞しすぎなので、そうであればやる気になりますね

437 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 18:27:43.03 ID:YfCj0B1j0.net]
初歩で停滞してるやつは急速に上達なんかしないよ

438 名前:デフォルトの名無しさん [2022/10/28(金) 18:36:43.66 ID:1ARXQoUR0.net]
初歩の方で躓いてたらそうかもしれん
右肩上がりの階段状の成長曲線かな

439 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 18:50:51.32 ID:9kHpqARR0.net]
>>436
組めるようになって、組んだもののチェックができるようになったらそこで一旦は終わり
定年までハナクソでもほじっていればよい

440 名前:デフォルトの名無しさん [2022/10/28(金) 19:04:40.27 ID:HG0H6tJb0.net]
まあ信じて頑張るしかないすね



441 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:18:00.09 ID:ZZAq6DiJ0.net]
>>436
書くより読もう

442 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:22:03.01 ID:MkzS3v4A0.net]
まあオブジェクト指向とかは書いてて初めて恩恵を感じてると理解したときになるほどって思ったことはあったな
設計もそうだけど

443 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:24:14.41 ID:ZZAq6DiJ0.net]
進次郎「感じてると理解したときになるほどと思った

444 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:37:56.31 ID:yAiIpvPxM.net]
世の中にある事象をある程度プログラムできるようになったらそこでいったん終了
ゲームでも作ってコードが汚いけど確実に動かせるレベルだな

次は他人のプログラムを見て設計的なことを学んで理解できて自分で同じように書けるようになったら次も終了

445 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:41:16.54 ID:4sg0pV9K0.net]
初学者のうちで一気に理解が深まったタイミングは
・デバッガが使えるようになった
・テストの必要性を感じて書いた
・リファクタリングできる気がしてやってみた
とかかなぁ

多分学習進度との関係もあると思うけど、思考が切り替わった気がした

446 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:58:42.59 ID:yAiIpvPxM.net]
最近の人はアルゴリズムを勉強しないらしいので暇だったら勉強してみ

447 名前:デフォルトの名無しさん [2022/10/28(金) 20:14:56.13 ID:HG0H6tJb0.net]
頑張ります
unityやってます

デバッグは確かに課題です
どの部分に問題があるか分からなくて1日潰れる

448 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 21:39:09.15 ID:yAiIpvPxM.net]
ゲームのデバッグは経験かな
再現性がないと地獄だけどそのうち多分ここがおかしいとある程度わかるようになる

それまではこんなものかと思うしかない

449 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 21:42:39.07 ID:GLKGqrevM.net]
ゲームはどうやってテストしてんのか想像つかん
仕様書とか無限に分厚くなるだろ

450 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 04:45:42.61 ID:qpmL7ZAma.net]
ゲーム開発者だけど仕様書なんて先ずの実装が終わったら最後に辻褄合わせする位だよ。放置も多々ある。
後半はデバッグで出たのを出来る限り潰すイテレーションなのでデバッガーとプログラマーのやり取りで終始する感じ。
期限も工数も有限なので落とし所が大事



451 名前:デフォルトの名無しさん [2022/10/29(土) 06:52:55.09 ID:K4cJTF5F0.net]
プログラミンはどれだけきれいに書けるカノ勝負でもあるんでしょうか
整理整頓されていないと頭がこんがらがる

452 名前:デフォルトの名無しさん [2022/10/29(土) 07:24:30.88 ID:K4cJTF5F0.net]
>>448
問題の特定
これですね 当面の課題は

453 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 10:52:44.27 ID:ajFln1b10.net]
当面というか永遠の課題だぞ

454 名前:デフォルトの名無しさん [2022/10/29(土) 11:07:47.06 ID:FxlbVrY8p.net]
>>451
コーディングが綺麗かってのと
構造が綺麗かってのはイコールじゃ無いからなぁ

455 名前:デフォルトの名無しさん (アウアウウー Sa9d-gxoH) mailto:sage [2022/10/29(土) 11:37:00.65 ID:rhy5a3mta.net]
Unityから始めたやつはだいたいその場しのぎのコードを書くしそれを教えたがるからUnity関連の情報はそんなのばっかになる

456 名前:デフォルトの名無しさん (アウグロ MMfd-VnIt) mailto:sage [2022/10/29(土) 11:39:05.64 ID:t5eKPicIM.net]
でも正直unityに機能がないときはやらない仕様に変えたほうがいいまである
別に仕事でやってんじゃないし

457 名前:デフォルトの名無しさん (ワッチョイ 4907-gxoH) mailto:sage [2022/10/29(土) 11:52:43.38 ID:AHyDFjq20.net]
クラスかタプル作ってオブジェクトの配列にすればいいのにやつら平気で複数の配列を使うし何でもかんでもシングルトンにするしそれ継承しなくていいだろってやつ継承するしnullチェックしないしバグ有りの同じコードを関数に切り出さずいくらでもコピペするしUnityのC#はマイクロソフトのC#のサブセットと信じてUnity関連以外の情報信用しないし

458 名前:デフォルトの名無しさん [2022/10/29(土) 12:32:34.34 ID:GsZMr1/10.net]
静的クラス=イングルドンでしょうか?

459 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 12:36:23.71 ID:D1cycp0Sa.net]
プログラミング関連情報サイトは、自分の勉強がてらそれをネタに記事書いてるのが多いからな
言い方変えると初心者が記事書いてるからそんな情報ばっかになるんだよ

460 名前:デフォルトの名無しさん [2022/10/29(土) 12:39:55.27 ID:QGEirdnxa.net]
>>457
小規模ならそれで十分
そんなところでわざわざガチる必要ない



461 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 12:40:47.02 ID:rhy5a3mta.net]
静的クラスはインスタンスを作れないクラス
例えばこれ
https://learn.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable?view=net-6.0
シングルトンはインスタンスを一つしか作れないクラス
例えばこれ
https://learn.microsoft.com/ja-jp/dotnet/api/system.collections.generic.referenceequalitycomparer?view=net-6.0

462 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 12:42:12.37 ID:rhy5a3mta.net]
>>460
だからいつまで経っても成長しないしすぐ困って人を頼らなきゃいけなくなるしできない癖に妙に偉そうだし

463 名前:デフォルトの名無しさん [2022/10/29(土) 12:44:07.64 ID:GsZMr1/10.net]
>>461
なぜシングルトンのほうは静的クラスではいけないのでしょうか?

464 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 12:46:14.79 ID:rhy5a3mta.net]
>>463
そりゃそういう要件だからとしか
例えば上で上げたのはインターフェイスを実装してるだろ?
インターフェイスがインスタンスメソッドを要求してるからインスタンスを作らざるを得ない

465 名前:デフォルトの名無しさん [2022/10/29(土) 12:56:28.03 ID:GsZMr1/10.net]
>>464

他にも静的クラスではなくシングルトンでないといけないケースはありますか?

466 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 13:21:19.43 ID:rhy5a3mta.net]
その二つならインスタンスが必要かどうかで全て言い表せるんじゃね
Unity界隈だとインスタンスを見失うからという間抜けな理由でシングルトンもどきを量産してるけどそういうのは普通引数で渡したりサービスプロバイダを使う
これらを使えばわざわざシングルトンとして設計する必要がない

467 名前:デフォルトの名無しさん [2022/10/29(土) 14:43:07.27 ID:GsZMr1/10.net]


468 名前:デフォルトの名無しさん [2022/10/29(土) 14:48:26.78 ID:GsZMr1/10.net]
「インスタンスが必要なケース」とは何でしょうか?
「インスタンスを見失う」とはどういう話でしょうか?

469 名前:デフォルトの名無しさん [2022/10/29(土) 14:57:46.59 ID:QL9IPKDOp.net]
どこからでもすぐ呼べる便利クラス…にしたいけど
ぶら下がってるものがたくさんあるからインスタンス渡しでシングルトンなんじゃね?
使う側に配慮してんのさw

470 名前:デフォルトの名無しさん [2022/10/29(土) 14:58:56.82 ID:GsZMr1/10.net]
public class Singleton {
 public string Name { get; set; } = "HAGE";
 private static Singleton singleton = new Singleton();
 private Singleton() {}
 public static Singleton GetInstange() { return singleton; }
}


var singleton = Singleton.GetInstance();
var name = singleton.Name;

↑このようなものはシングルトンを使わずに、


public static class NotSingleton {
 public static string Name { get; set; } = "HAGE";
}

var name = Singleton.Name;

↑このように静的クラスにすればいいと思うのですがシングルトンが必要な「インスタンスが必要」というのはどういうケースでしょうか?

シングルトンで保持するオブジェクトのクラスが他の設計者のものならこのようにはできないと思いますが、シングルトンのクラス自体のオブジェクトを保持するのであれば使い方も自分で決められるのでシングルトンにする必要性が分からないです。
そのようなケースでは使ってないという認識で合ってますでしょうか?



471 名前:デフォルトの名無しさん [2022/10/29(土) 15:08:48.66 ID:QL9IPKDOp.net]
静的クラスで唯一無二ならそれがシングルトンやろい

472 名前:デフォルトの名無しさん [2022/10/29(土) 15:10:32.88 ID:QL9IPKDOp.net]
静的クラスだけどインスタンス管理を独自でやって別オブジェクトを配るのはファクトリーだっけ?

473 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 15:37:22.23 ID:lV3hVGRgM.net]
>>470
結果的にシングルトンにする場合でもそれを使う側はそれがシングルトンだと意識しない方が後で変更する時に助かる
そのためにはインスタンスが必要

class Foo : IFoo {
private IBar bar;
public Foo(IBar b) => bar = b;
public void DoSomething() => bar.Hello();
}

class BarSinglton : IBar {
private static BarSingleton Instance { get; } = new BarSingleton();
public void Hello() => Console.Write("world");
}


var foo = new Foo(BarSingleton.Instance);
foo.DoSomething()

//////////////
class NewVersionBar : IBar {
public void Hello() => Console.Write("im not single");
}

var foo = new Foo(new NewVersionBar());
foo.DoSomething();

シングルトンじゃないのでFooは変えなくていい
シングルトンだとFooも書き換え必須

474 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 15:39:24.31 ID:lV3hVGRgM.net]
最後間違えた
静的クラスじゃないのでFooは変えなくていい
静的クラスだったらFooも書き換え必須

475 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 15:41:43.09 ID:lV3hVGRgM.net]
要するにDIするときにインスタンスが必要になるってこと
DIがなぜ必要かはSOLIDの原則を調べればわかる

476 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 15:45:47.27 ID:pn62A2OL0.net]
singleton とは、インスタンスを2つ以上作れらたら、マズイもの

よくあるのが、何々マネージャーみたいな管理オブジェクト。
管理者は1つで、その管理者が複数のインスタンスを作る。
この場合、管理者が2つあるとマズイ

1つしか存在してはならない、絶対的なもの。
神とか

477 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 15:57:07.69 ID:u+PU0umT0.net]
その例えは多神教全否定になるから不味いw

478 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 16:02:48.14 ID:LKZb5SQz0.net]
ひとつしか存在しない絶対的なものは「自分を認識する意識」くらいのものだ

479 名前:デフォルトの名無しさん [2022/10/29(土) 16:37:09.15 ID:GsZMr1/10.net]

静的クラスとするよりもインスタンス化してから利用するように設計するほうが色々とメリットがあるのですね

480 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 16:57:12.41 ID:/AmlPuyW0.net]
>>462
偉そうとか言い出すとコンプレックスみを感じるな。



481 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 17:04:11.43 ID:5hK4Xoona.net]
>>480
何で人に物を聞くときに「聞かれたことにだけ答えろ」みたいな大きな態度を取る初心者にコンプレックスを感じなきゃいけないんだw

482 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 18:02:09.38 ID:laG6hjw40.net]
文字列もクラスもメソッドも全てが数値のみで管理されており
その数値のみでソースが無いプログラムでも今日制定に
流れを変更できるようになったら一気に理解が深まる。

オブジェクト指向だ、関数型だ、設計がー、なんてのは
一番浅い層の肌の色ぐらいにすぎない。

483 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 18:07:39.23 ID:s+eFMxCE0.net]
>>482
たしかになんか理解が深まったんだろうな
ただ機械側によりすぎて、お前の日本語は全然意味分からんw

484 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 19:49:40.68 ID:lV3hVGRgM.net]
アセンブラ?

485 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 20:06:55.26 ID:/AmlPuyW0.net]
>>481
そりゃ「お前のうんちくは今は要らない」と思われるからだろ。

486 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 20:11:24.34 ID:5hK4Xoona.net]
>>485
だからお前はいつまで経ってもコピペしかできないんだよ

487 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 21:38:27.72 ID:/AmlPuyW0.net]
>>486
コピペでわかるようなことを答えてるからでは?

俺オジサン側だけどあんまり悪い気がすること聞かれないぞ。聞かれた事しか話さなければ、案外聞いてくるよ。
「これ長いけど」って言ったら「今は良いです」とか言いよるけど、後で聞きに来たり。
関係性でしょこんなの。

488 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 21:42:16.29 ID:AHyDFjq20.net]
>>487
今いい関係性を築いてるつもりなのかw
とりあえず>>1を100回読んで首釣って来いw

489 名前:デフォルトの名無しさん [2022/10/29(土) 21:43:38.37 ID:PVOoqMZaa.net]
いま?

490 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 21:50:18.46 ID:/AmlPuyW0.net]
>>488
今さら?



491 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:08:19.95 ID:AHyDFjq20.net]
>>490
しつこいな妬むなよw
お前がコピペしかできないのはお前の努力不足と才能不足で俺に責任はないぞ
>>1を100回読み終わったならすぐに川に行って首が釣れるまで帰って来るな

492 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:11:58.18 ID:/AmlPuyW0.net]


493 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:14:33.73 ID:AHyDFjq20.net]
お前は草と首の区別もつかんのか
つくづく使えんやつだな
だから人間関係もうまくいかないんだぞ

494 名前:デフォルトの名無しさん [2022/10/29(土) 22:25:09.72 ID:GqvAAO/X0.net]
図星突かれたので頓珍漢な返ししかできません

495 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:33:09.26 ID:AHyDFjq20.net]
だろうな
まだ>>1も100回読めてないだろ

496 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:37:03.52 ID:s+eFMxCE0.net]
キモい奴らだな
消えろよw

497 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:38:53.69 ID:AHyDFjq20.net]
そのうち消えるんじゃね
お前も>>1を100回読んで消えとけよ

498 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:40:10.99 ID:/AmlPuyW0.net]
おい俺に言うのはわかるが、八つ当たりはやめとけよ。

499 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:41:41.43 ID:AHyDFjq20.net]
また来た
スレチだから八つ当たりしてないで早く消えろよ

500 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:42:38.45 ID:AHyDFjq20.net]
俺リアルで他人からお前らが言われてるようなこと言われたことないぞ
マジでスレチだからもう書くなよ



501 名前:デフォルトの名無しさん [2022/10/29(土) 22:43:50.83 ID:/Mu6PCns0.net]
ネット上でもわかるこのキモさ
リアルでも煙たがれてそう。

502 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:45:01.83 ID:AHyDFjq20.net]
という初心者がいたわけよ

503 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 22:45:30.65 ID:AHyDFjq20.net]
マジでまだ続けるこのキモさよ

504 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 23:04:36.64 ID:EUjMGqhh0.net]
なんで盛り上がってるの?
だれか3行で頼む。

505 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 23:07:56.87 ID:y8vo38aP0.net]
5chでよく見かける
キチ2名の
打ち合い

506 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 23:12:18.42 ID:AHyDFjq20.net]
キチに絡まれるのは同レベルのキチだからな

507 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 23:16:29.83 ID:i0vA1INFa.net]
ていうかこのスレってコンプレックス持ち多すぎて書きにくいって前から思ってたわ
ちょっと変な初心者の話をしたら刺さったやつがすぐ絡んで来るから

508 名前:デフォルトの名無しさん [2022/10/29(土) 23:24:53.08 ID:FgOSZ1hPH.net]
そんなんだからSESしかできないんだよ
もっと社会性を身につけないと

509 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 23:26:26.77 ID:AHyDFjq20.net]
よほど刺さったらしいw

510 名前:デフォルトの名無しさん (ワッチョイ 1301-cPfV) [2022/10/30(日) 00:17:02.57 ID:+d9s9Afp0.net]
今HTMLとCSSでゴリゴリやりながらアプリ作ってるけど正直めちゃくちゃめんどくさい
自由度はHTMLとCSSの方が高いのかもしれんけどXamlとC#のGUIの簡単さってすごいなって思った



511 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 00:58:04.31 ID:lsOA6XTZ0.net]
>>510
俺は最近逆の感想しか抱いてないな
HTML/CSSの方が楽に綺麗な外観作れるし何よりもjsが超楽に非同期使えて有難すぎる
C#もお手軽シングルスレッド非同期あれば良いのにな
Unityのコルーチンもjsと比べるとめんどすぎ

512 名前:デフォルトの名無しさん [2022/10/30(日) 01:14:27.44 ID:+d9s9Afp0.net]
>>511
await asyncじゃだめなの?

513 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 01:21:23.79 ID:UmSlwLP00.net]
HTMLとCSSが楽で良いと俺も思う。なんせ自分がやらなくてもデザイナーの人に入って貰えるし、それも単価が安いし。
最近はCSSも高級になったし、WebView2が使えるようになったのでかなり楽よね。
IEコンポーネント使わないといけないなら同意

514 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 02:27:29.10 ID:2N6ePwSn0.net]
単純なやつならxamlの方が楽だけどちょっと凝ったデザインにしようとすると記述量がめちゃ増えるのはなんとかしてほしい

515 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 03:33:26.24 ID:mdQkSumL0.net]
jsの非同期は形の上だけだからなぁ...

516 名前:デフォルトの名無しさん [2022/10/30(日) 07:16:53.81 ID:+d9s9Afp0.net]
CSSも増えるくね?
今Wiki作ってるけどマジで思うような挙動しないわHTMLとCSS
divを左と右に分けるのでもfloat:leftとfloat:rightの2つのCSS書かんといけないの面倒くさすぎる
文字を下揃えにするのもverticalalignmentとかhorizontalalignmentとか手軽なのがない

517 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 07:21:33.87 ID:EP3eiSUOa.net]
>>512
知ってるわけないじゃん

518 名前:デフォルトの名無しさん [2022/10/30(日) 07:23:58.99 ID:+d9s9Afp0.net]
>>517
なんだ…知らないのか…

519 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 08:55:39.00 ID:Y7MeHq5yr.net]
>>516
すげえジジイがここにいたw
floatとかいつの時代だよwww
それでこんなにcssクソクソ言ってたのかw
オメーの無知で吠えてるんじゃねえよ

520 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 09:15:57.16 ID:Ufi2KoCB0.net]
>>516
今どきそんな太古の手段を発掘しつつわざわざ車輪の再発明をしているのはキミくらいのものであって、あえて言わせてもらうと、それらは文字通り「時間の無駄」でしかない

どうしても車両の再発明をしたいってことなら止めはしないけど、せめてモダンなCSSやフレームワーク等の「習作」として作成しよう



521 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 09:18:30.73 ID:LXcqQo2MM.net]
今ってflexboxレイアウトが主流じゃないの

522 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 09:42:14.23 ID:UmSlwLP00.net]
IEコンポーネントじゃないならflexとgridかな。
IEコンポーネントはバグが多いからかなり辛い。float使うのもわかる。

この調子だとHTMLも文字列で作ってそう。
適当なフレームワークに乗せるのが良いよ。MVVMにできるし。

523 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 09:42:37.39 ID:lsOA6XTZ0.net]
>>517>>518
むしろjsにasync awaitあるの知らないんだね
未だにコールバック地獄でもしてんのかなw

524 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 09:46:55.44 ID:UmSlwLP00.net]
C#のasync awaitの話では?
なんか不自由あるんだろうか。

まあJSみたいにPromiseと可換になってると便利なのになと言うことはあるけど。

525 名前:デフォルトの名無しさん [2022/10/30(日) 10:37:52.27 ID:+d9s9Afp0.net]
>>522
flexは頭にもう一個div入れないといけないじゃん

526 名前:デフォルトの名無しさん [2022/10/30(日) 10:42:35.72 ID:+d9s9Afp0.net]
あとそんなもんネットに言え
こっちは色々調べながら最善の答え見つけとるんじゃ

527 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 10:54:18.58 ID:Y7MeHq5yr.net]
最善の見つけた答えがfloatww
ネットの調べ方もジジイレベルかよww

528 名前:デフォルトの名無しさん [2022/10/30(日) 10:55:09.64 ID:+d9s9Afp0.net]
>>527
じゃあ何使うんだよ

529 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 11:02:31.77 ID:Y7MeHq5yr.net]
>>528
flexbox使え
すべてが解決できる

530 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 11:53:13.28 ID:anVeQi4K0.net]
>>505
thx



HTML & CSS は確かに便利なんだけど、たまにやるときれいさっぱり忘れてて思い出すのに時間がかかるのが難点。
なんというかクセというか、コツというか、そういうのを思い出せないと思うままにならない感じ。



531 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 11:54:53.34 ID:dJTdnVox0.net]
いい加減スレチじゃい

532 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 11:56:05.47 ID:J5x/gUfla.net]
>>1の読めないやつしかいないスレ

533 名前:デフォルトの名無しさん [2022/10/30(日) 12:45:05.94 ID:GxZBoAl/0.net]
結論:XAMLとC#が最強

534 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 13:29:03.83 ID:P8HVjCjE0.net]
糞スレw

535 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 13:39:46.64 ID:A1wSH6ms0.net]
そりゃ初心者のうちメンタル弱くてやる気のない人が対象のスレだし回答してるのもおかしなこと言ってるのが多いから初心者なんだろうね

536 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 13:39:53.04 ID:UmSlwLP00.net]
>>525
入れれば良いのでは?
まあbodyもflexにできるけど。
上揃えも下揃えもflexの方が楽だけどなって。
xamlで言うFlexLayoutなので、多分こっちの方がxamarin以降のXaml移行組は楽だと思う。

537 名前:デフォルトの名無しさん [2022/10/30(日) 16:21:32.75 ID:DkOekoOd0.net]
HTML+CSSってブラウザエンジンが必要になるのが馬鹿らしい

538 名前:デフォルトの名無しさん [2022/10/30(日) 17:10:20.50 ID:D3yBl/wLa.net]
C#使ってる時点で利便性と引き換えに今時のパソコンなら問題ないと無駄を許容してるんだからそのくらい許容しろ

539 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 18:09:34.88 ID:UmSlwLP00.net]
>>537
とはいえWindows使う以上絶対載ってるし、現存する、ほぼ唯一のまともに日本語を表示できる描画エンジンじゃない?

540 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 19:49:11.19 ID:5qpGtRvc0.net]
>ほぼ唯一のまともに日本語を表示できる描画エンジンじゃない?

ブラウザのテキスト表示もOSの描画エンジンを使っていると思うが。



541 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 19:52:07.34 ID:gI8+fygea.net]
>>539
ごめん何言ってるかわかんない
酔ってる?

542 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 19:57:59.55 ID:UmSlwLP00.net]
>>540
オプティカルで文字を詰めながら禁則処理しつつ、左右均等揃えなんかしてくれないよ。
ttps://www.google.com/amp/s/ics.media/entry/14087/

>>541
そういう所だぞ

543 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 19:59:51.73 ID:UmSlwLP00.net]
すまん、あげたサイトはオプティカルじゃなくてちゃんとメトリクス使ってるんだな。

544 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:03:02.46 ID:gI8+fygea.net]
>>542
酔ってないのにそれかw
だからお前はリアルでも一人なんだよ

545 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:11:29.33 ID:UmSlwLP00.net]
ちゃんと批判して

546 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:13:47.95 ID:LXcqQo2MM.net]
いやいやw

現存する、ほぼ唯一のまともに日本語を表示できる描画エンジンって表現はおかしいだろw

547 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:15:35.13 ID:LXcqQo2MM.net]
ガチの高校生なのかな~

548 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:18:53.41 ID:UmSlwLP00.net]
え?ホント?みんなそんなに完璧に文字描けるの?そこまで請われることが無いとか…?

エッジケース考えたらブラウザ一択なんだけどな…。

549 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:29:28.84 ID:UmSlwLP00.net]
自力でコマコマとエンジンの挙動を微調整せずに一発で縦書きできるものがあったら逆に教えて欲しいわ…

550 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:38:47.22 ID:LXcqQo2MM.net]
基地外暴走中



551 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:53:05.32 ID:UmSlwLP00.net]
少数派だったならすまなんだ。

552 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:53:49.31 ID:UmSlwLP00.net]
※あるならホントに教えて

553 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 23:28:05.26 ID:5qpGtRvc0.net]
カーニングは昔からあるし、DirectWriteなら均等揃えもできるようだな。

554 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 00:03:20.79 ID:Dc17vD4i0.net]
>>553
まともにやるとIPAフォントあたりがかすれる。

それに、APIであって、エンジンじゃなくない…?
FormsとかWPFのレベルの話してるつもりだったんだけど。

555 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 00:31:05.85 ID:fDaEiUpF0.net]
ここってこんなギスギスしたスレだったっけ・・・
精神的に余裕ない人が流れ込んできたのか元からいる住人が加齢で狂ってきたのか

556 名前:デフォルトの名無しさん [2022/10/31(月) 00:35:16.24 ID:X/NTMpPpa.net]
マウンティングが多すぎるよな
もっと謙虚な人が増えてほしい

557 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 00:40:19.81 ID:WMzulB9K0.net]
メンタル弱い豆腐初心者のスレがどうしてうまくいくと思えるのか
そりゃ豆腐が集まって自壊するに決まってんじゃん

558 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 00:43:10.47 ID:Z4/NCeJU0.net]
適材適所でいいんじゃね、と思う
メニューとかリストとか、Windowsライクならxamlで
縦書きにしたいならhtmlで

559 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 09:55:18.77 ID:hhvP4eKN0.net]
>>558
これはそうだね。語気が強かった。すまん。

まぁ、立ち戻って聞かれたこと答えて行くことにするわ。

560 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 09:56:54.26 ID:jAJ0SKjra.net]
あまり詳しくないんだからトンチンカンなこと答えなくていいと思うぞw



561 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 09:58:42.31 ID:hhvP4eKN0.net]
余計なこと言って「聞かれたことだけ答えろ」って思われても嫌だもんな

562 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 10:02:25.91 ID:4vSdgrRSr.net]
許してやろう

563 名前:.NET MAUI HighScool [2022/11/01(火) 21:46:33.25 ID:UUH/mDfh0.net]
.NETがティックトック始めててワロタ
https://www.tiktok.com/@dotnetdevelopers

564 名前:デフォルトの名無しさん [2022/11/01(火) 22:32:56.88 ID:emsrAW8N0.net]


565 名前:デフォルトの名無しさん [2022/11/02(水) 18:31:31.44 ID:fNjoEkdJ0.net]
関数を変数に入れるメリットってなんですかね

566 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:40:44.48 ID:SIAjnkFo0.net]
メリットがわからない時はしなくていい
変数を使うと呼び出す関数を動的に変更できる

567 名前:デフォルトの名無しさん [2022/11/02(水) 18:51:57.11 ID:fNjoEkdJ0.net]
了解す(´・ω・`)
動的というのが普通の関数との違いなのでしょうか

568 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:57:15.27 ID:54NxTXJm0.net]
コールバック関数とか?

クリックしたら○○しろとか
ツリーノードは色を塗るとき□□の処理で塗れ

とかの○○や□□の処理をインスタンス毎に後から設定できる

569 名前:デフォルトの名無しさん [2022/11/02(水) 20:02:34.53 ID:fWSRoPxp0.net]
よく使うパターンは関数の引数に関数を渡すやつ
static void TripleCall(Action action){
action(); action(); action();
}

570 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 20:21:32.83 ID:XpLTr/SKa.net]
スレッドも登録元が関数を指定する必要があるから、動的に入れている



571 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 20:45:43.92 ID:qyHEkcPy0.net]
WinFormsで自動でボタンを押した時の処理が追加されたりするけどそれも
結局はその関数をイベントリスナーに登録している(つまりイベントリスナーに追加するときに関数を引数にしている)
知らずに使っている事が案外あったりする

572 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 20:48:02.32 ID:047n0D5LM.net]
変数じゃなくて定数じゃん

573 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 20:51:00.83 ID:SIAjnkFo0.net]
引数は変数だぞ
イベントハンドラを登録する時には演算子を使うけどその奥ではイベント登録関数の引数としてデリゲートが渡されてる

574 名前:.NET MAUI HighScool [2022/11/02(水) 21:35:00.76 ID:v08tA7cv0.net]
ラムダ式の話じゃないの?

575 名前:デフォルトの名無しさん [2022/11/02(水) 21:38:51.07 ID:owhI4Qa1p.net]
プロパティに式を仕込むと、思わぬ副作用があって詰むぞ
少なくとも中から呼ぶときくらいは実データにアクセスしようず

576 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 22:46:41.09 ID:SIAjnkFo0.net]
>>574
ラムダ式はデリゲートを作るための書き方にすぎんよ
それがデリゲート変数に代入されて初めて関数になる
Expressionに代入されると関数じゃなく式木になる

577 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 22:47:28.98 ID:SIAjnkFo0.net]
>>575
お前は式という言葉の意味も高階関数も知らんのか

578 名前:.NET MAUI HighScool [2022/11/02(水) 23:25:22.77 ID:v08tA7cv0.net]
助けてくれうぜぇやつに絡まれたんだがHttpClientでjsでロードされる画像のURLを取得する方法ある?
プログラミングって実際もの作らないと身につかないよな
https://mi.5ch.net/test/read.cgi/news4vip/1667395380/

579 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 00:13:01.70 ID:0QCo1mM00.net]
>>578
まずそのスレの1がうざい
どうせお前だろ

580 名前:.NET MAUI HighScool [2022/11/03(木) 00:33:32.59 ID:LxUg3x+60.net]
>>579
俺だけど?
それより絡んでくるやつのほうがウザくね?



581 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 01:17:54.26 ID:M3w0A0V30.net]
jsでロードされるってなんなの?どういうこと?
HTMLに書かれたJavaScriptを動かしてHTMLというかDOMを更新して結果表示される画像のURLを取得したいってこと?

HttpClientで取得したHTMLをWebViewなりで解釈して実行しないとダメでは?ならWebViewで直接やれよという話でもあるが。
JavaScriptだけでロードされてるわけでもないんだし。

582 名前:.NET MAUI HighScool [2022/11/03(木) 01:39:58.55 ID:LxUg3x+60.net]
>>581
多くの検索エンジンの画像検索は最初から全部画像を読み込むと膨大な量のデータをやり取りしないといけなくなりサーバーの負荷が大きくなるので
スクロールするとjsによりほしい分だけデータがロードされるというふうな実装になってる
俺はこういうサイトだとWebViewでjs使ってスクロールしてデータをロードさせてるんだけどこのクソうぜぇやつが言うにはそれはインスタントカレーで湯煎しかしてないゴミカスだと言ってくるわけ

583 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 01:44:02.63 ID:M3w0A0V30.net]
だから、それはJavaScriptだけではなくてDOMがないとあかんのではという話。
エンジンとして何を用意しないといけないか変わってくるじゃん。
(JavaScriptで画像を取得するロジックを走らせる、という言い方だと、プラグインシステムがJavaScriptでできてるとかそういう話になるんでは?)

スレ見てきたけど、そう言うところがダメなんじゃないの?

584 名前:.NET MAUI HighScool [2022/11/03(木) 01:47:04.02 ID:LxUg3x+60.net]
DOMじゃなくてRegexでhtmlのimgタグの中身取ってきてるんだが
たぶんこいつはDOMを使ってないDOM使ってたらもっと謙虚だろ
むしろこれでDOM使ってたらブチギレるわ

585 名前:デフォルトの名無しさん [2022/11/03(木) 02:24:14.27 ID:rfkx/Wsp0.net]
要はこのうざい奴はjavascriptでやってることを解析してC#するのがスマートだと言いたいんだろ
実際はアホな努力だが

586 名前:デフォルトの名無しさん [2022/11/03(木) 02:27:39.09 ID:rfkx/Wsp0.net]
つっても画像検索の読み込みくらいなら単純なのかもな

587 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 05:39:29.72 ID:vGCYuyMq0.net]
たった1行の処理でも関数化してもいいのでしょうか?
大げさな感じもしますが

588 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 08:34:14.06 ID:NbsIPyEs0.net]
>>542
ケースバイケース
よくあるのはその関数を多くの場所で使っててなんかの拍子にその関数をおっきに変更することが想定される場合
あとはその関数にわかりやすい名前をつけたい場合とか

589 名前:.NET MAUI HighScool [2022/11/03(木) 09:00:00.75 ID:LxUg3x+60.net]
>>585
だよな
なんでこいつはこれでイキってんのか不明

590 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 10:00:51.31 ID:q0+PchV30.net]
JavaScript なら、scrollTop とか、

最近は、IntersectionObserver とかもあるらしい



591 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 10:53:54.12 ID:dhtr0mvLa.net]
とりあえずjsでできることは全部c#でできるようにしてくんないと
誰かポリフィル作れということか

592 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:16:01.97 ID:M3w0A0V30.net]
>>584
imgタグを作ってるのがJavaScriptのDOM APIじゃない?

593 名前:.NET MAUI HighScool [2022/11/03(木) 12:17:32.39 ID:Kj7ywx2W0.net]
>>592
つまりこいつはDOMを使ってるくせにイキってたってわけか?
だっさw

594 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:28:05.12 ID:M3w0A0V30.net]
DOM APIって何かわかってる?

595 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:31:33.00 ID:irjlHMAba.net]
>>594
BlazorはそれをRenderFragmentで作るんだぞ
これ読んでみろ
https://learn.microsoft.com/ja-jp/aspnet/core/blazor/components/virtualization?view=aspnetcore-6.0

596 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:39:09.32 ID:M3w0A0V30.net]
>>595
DOM APIを作るの?ちゃうでしょ…。

BlazorのうちWebなものはDOMを(もちろん内部的にはDOM APIを使って)作るけど、DOM APIを作ってるわけじゃ無いでしょ。

あくまでブラウザ、WebViewだったりWPFやXamarin.formsといった、レイアウトやレンダリングを行うエンジンへの架け橋で、そのレイアウト・レンダリングエンジンがWebViewなら、それはDOM APIを使って実現されると言う感じで。

これが俺が想定してたレンダリングエンジンで、その主語がデカかった理由。

597 名前:.NET MAUI HighScool [2022/11/03(木) 12:41:37.25 ID:Kj7ywx2W0.net]
つまりそのGoでスクレイピングを作ってる奴は結局ルウからカレー作ってるように見せかけてインスタントカレー作ってたってことだろ?

598 名前:.NET MAUI HighScool [2022/11/03(木) 12:42:38.00 ID:Kj7ywx2W0.net]
じゃあWebView使ってスクレイピングする方法と何ら変わらんだろって思ってブチギレるわけよ
あんだけ突っかかってきて作ったのインスタントカレーじゃんwってなるわけよ

599 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:44:00.31 ID:M3w0A0V30.net]
DOM → Document Object Modelなデータや構造
DOM API → Document Object Modelなデータや構造を操作するAPI群
という一般的な定義で話してる。

jsのライブラリで言えばparse5とかとjsdomの違いぐらいの話。jsdomがDOM APIを持ってるのが話がややこしい。

600 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:47:38.39 ID:M3w0A0V30.net]
>>598
何を怒ってるかわかんない。甘く見られたって事?
そんな事で怒らんでも良いじゃん。アホ過ぎるとこっちの話が理解できないこともあるよ。俺は計算資源さえ許せばちゃんとレンダリングした方がええでしょ、WebViewでもpuppeterとかでも。

うーん、jsとdomをエミュレートしてレンダリングするタイプは、要は突き詰めるとヘッドレスなブラウザを作ることと変わんなくなるので、確かに味は変わるが、ルーから作ると失敗するぞ言いたい。



601 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:48:40.21 ID:M3w0A0V30.net]
ええでしょ、と思うよ、だった。すまんね。

602 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:49:54.05 ID:irjlHMAba.net]
>>596
何を言ってるんだ
スクロールに従って画像を表示するのにDOMは使わないって話をしてるんだよ
<img src=@(img)/>と書きゃimg変数のURLにある画像が表示される
画面に表示されるとこだけそのタグを作る
タグを作るのにDOMは使わない
そういう話だ

603 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:55:41.20 ID:M3w0A0V30.net]
>>602
え?何言ってるの?「DOM APIが何かわかってる?」に対して「Blazorはそれを…」の返事に「違うよ」って返したんじゃん?

しかも、結局それBlazorはDOM APIを使って画面に表示するところだけそのタグ作ってるからね。

604 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:57:28.19 ID:irjlHMAba.net]
とりあえず元のスレでやれ
何がしたいのかよくわからんがお前がウザいのはわかった
スクレイピングの話なら素直にセレニウム使っとけ

605 名前:.NET MAUI HighScool [2022/11/03(木) 13:01:54.15 ID:fiCeisHS0.net]
>>604
だからSelenium使わずにWebViewでやったらキチガイがSeleniumやWebViewは初心者wとか言って絡んで来たんだが

606 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:06:30.69 ID:irjlHMAba.net]
読む気にもならんから知らんが初心者が初心者向けの方法を使って悪いことは何もあるまい
お前が上級者だと言うなら他のやり方を気にせず上級者のテクニックを使ってスクレイピングとかいう糞みたいな作業を続ければいい

607 名前:.NET MAUI HighScool [2022/11/03(木) 13:09:44.54 ID:fiCeisHS0.net]
>>606
バカにされたままだとうぜえからこのスキル使えるようになりたいと思ったがなんか無理そうだな

608 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:09:44.56 ID:WOBTUDvw0.net]
初心者がスクレイピングとか迷惑でしか無い

609 名前:.NET MAUI HighScool [2022/11/03(木) 13:09:55.62 ID:fiCeisHS0.net]
>>608
なぜ?

610 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:18:41.93 ID:kiz4JKw0a.net]
Javascriptのインタプリタをつくればいいだけじゃないの?



611 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:39:14.90 ID:q0+PchV30.net]
漏れは、Ruby Selenium Webdriver で、ブラウザを自動操作してる。
サイトのログインとか

更に、Nokogiri でスクレイピングもできる

612 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:39:56.44 ID:m6o3Pqh2d.net]
MAUI「htmlを、regexでアクセスしてる」
うざいやつ「htmlは、DOM APIでアクセスしろ」

って事??

613 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:41:07.19 ID:x8JkO9N7M.net]
ていうかさあ
よそのスレで起こした(しかもお前が立てたスレの)揉め事をこのスレに持ち込んで助けを求めるようなことするなよ
ここで付け焼刃の知識を仕入れて建てたスレでイキりたいんだろうけど
そんなことやってて恥ずかしくないの?

614 名前:.NET MAUI HighScool [2022/11/03(木) 13:44:22.86 ID:ymgDfjLU0.net]
>>613
俺は恥ずかしくないよ?

615 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:45:03.53 ID:x8JkO9N7M.net]
と思ったらMAUIの人か
じゃあ諭すだけ無駄か・・・・・

まあなんだ、VIP板とやらで頑張ってくれ
こっちに帰ってくるなよ

616 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:52:27.10 ID:j+eH91hfa.net]
MAUIに変なイメージついたな
マウイ高校の人に謝れ

617 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 14:03:01.23 ID:tn2ZhR3p0.net]
せっかくXamarinについた変なイメージを隠したのにな。

618 名前:.NET MAUI HighScool [2022/11/03(木) 15:12:06.23 ID:ymgDfjLU0.net]
なんで俺は.NET MAUIの地位向上に努めてるのに避難されなきゃいけねぇんだ

619 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 15:34:50.67 ID:WOBTUDvw0.net]
>>609
・まともなクローラーが作れない
・テストを知らないから、未完成状態でサイトに頻繁にアクセスする
・例外処理の設計ができていないから、サイト側からフィルタされてもアクセスし続ける

結果:監視カメラの前で裸踊りしてる様子を記録されていることに気が付かない

スクレイピング対象になりえるサイトのデータの二次利用は民法的に大体アウト(良くてグレー、真っ白は基本的にありえない)
そのクソみたいなアクセスのせいで、サーバリソース追加しなきゃならんケースがあるからサイト側からすると迷惑でしかない

620 名前:デフォルトの名無しさん [2022/11/03(木) 15:37:50.67 ID:2Kw6fOvE0.net]
散々イキりまくった挙句技術力不足で他人を頼ってくるとか情けなさすぎる
MAUIの地位を貶めるためにやってるんじゃないなら相当やばい



621 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 22:02:04.04 ID:20/srh0o0.net]
>>619
ヘッドレスブラウザでトライ&エラー繰り返されたらあれだろうがHttpClientでhtml単品要求してくるくらいなら別に自由にしたらって思うけどな

622 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 00:40:17.01 ID:IgmKO4aZ0.net]
HttpClient使わないとrobots.txtが取りづらいよな?という嫌味ならなるほどなとは思う。

623 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 19:03:03.51 ID:nywf9UY+0.net]
boolでは2つの返り値を持つ事はできないですか?
https://i.imgur.com/6s9o15k.jpg
ゲームで接地判定を作っているのですが、真ん中からレイを飛ばすと崖でレイが反応しなくなるので、このように両脇から2本飛ばしています。
判定用の関数を作ってます。

624 名前:デフォルトの名無しさん (ワッチョイ 8bbb-/OGx) mailto:sage [2022/11/04(金) 19:12:28.11 ID:7HgZbeW40.net]
>>621
同じアドレスにウェイトなしアクセスをぶん回してくるやつとかいるんだぜ

625 名前:デフォルトの名無しさん (ワッチョイ d941-2RrB) mailto:sage [2022/11/04(金) 19:22:14.68 ID:IiXUZSOe0.net]
>>623
boolでは2つの返り値を持つ事はできないです。
なぜならboolはメソッドではなく型だからです。

626 名前:デフォルトの名無しさん (ラクッペペ MMeb-YnjT) mailto:sage [2022/11/04(金) 19:33:46.65 ID:5m02ltgpM.net]
Win32/C++
BOOL GetMessage(略) ・・・

627 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 19:37:37.70 ID:kqfS0jzoM.net]
>>623
(bool foo, bool bar) F() {
return (true, false)
}

var x = F();
WriteLine(x.foo);
WriteLine(x.bar);

(var a, var b) = F();
WriteLine(a);
WriteLine(b);

628 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 20:31:37.30 ID:nywf9UY+0.net]
>>627
bool型の関数の場合は1つしか持てないじゃないでしょうか

629 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 20:49:12.99 ID:T0hKgiyQa.net]
戻り値では無く引数にrefでboolを2つ渡せばいいんじゃ無い

630 名前:.NET MAUI HighScool [2022/11/04(金) 20:50:56.37 ID:OnPQoW1c0.net]
.NET 7いつ降りてくるんだ?



631 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 21:08:53.29 ID:u3TD418O0.net]
>>629
相手すんなよ...

632 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 21:27:00.15 ID:Fl24BIVd0.net]
論理演算で一つにまとめればいいじゃん

633 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 21:31:27.64 ID:SZTCZ5vE0.net]
タプル使うと後が大変かも

634 名前:デフォルトの名無しさん [2022/11/04(金) 21:57:15.77 ID:8LyOgWL1a.net]
タプルってディクショナリーで複合キーみたいに使えるんかね
dict[("aaa",1)]=456.8

635 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 00:03:26.00 ID:z7QTqWos0.net]
進次郎構文を質問に応用するとこうなるのか...

636 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 01:03:31.06 ID:zPyCNtrD0.net]
複数の引数を戻り値で受け取りたいとか言う奴いるけど
参照でええやん・・・

637 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 05:24:52.32 ID:tZqy6bJ10.net]
>>636
参照?どういうこと
普通に関数2つ作るのがシンプルかもしれませんね

638 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 06:12:30.08 ID:tZqy6bJ10.net]
プログラミングは日本語で言語化することが大事でしょうか
それがフローチャートだったりするのでしょうが

639 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:08:07.32 ID:qYBt5eWid.net]
「何をするプログラムなのか」「なぜこうするのか」といった仕様や意図を自然言語で分かりやすく正確に記述できる能力は重要
一般に日本人はそれを苦手とする者が多く、安易に図表に頼ったり、
自然言語で書くとなるとプログラムと逐次対応するような低レベルな記述(実質的にExcel方眼紙上でコーディングしているだけ)をする傾向がある

640 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:26:37.39 ID:2xMBgYRAM.net]
意味不明すぎる



641 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:34:43.47 ID:yxkEcNx60.net]
文章でグダグダ書かれるより図表や擬似コードで書いてくれた方が100倍マシ

642 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:36:00.30 ID:sjtvh1h/M.net]
visual transformer を図表無しで
納得させる資料を書いてから言え

643 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:43:50.98 ID:3YlQFQnT0.net]
質問者は投稿する前に、自分の質問をよく推敲しろよ。これはC#初心者以前の問題だ。
文章が意味不明で相手に伝わらず、あほな質問だと思われたらそれなりの答えしか返って来ないぞ。

644 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 09:40:58.84 ID:yYAK326QM.net]
>>638
大事ではないけど

言語化と言うかもともと何をしたいのかと言うことがはっきりしていて
それをコードに落とし込んでいるはず

ところが後でコードからその何をしたいかが読み取れない場合があるので
おおまかなコメントなどを残すことになる
細かく内容を記述するのは無駄だしコードを手直しするたびに書き換えるのは無理だ

フローチャートは階層が深くなる複雑な制御構造になる場合に脳で追いきれなくなる場合に描いたりすると便利なんだろうけど
大体みんなちゃんとしたものじゃなくて流れを落書きする程度だと思う

645 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 11:36:03.24 ID:cwSbm70XM.net]
>>638
よく言われるのは「How」はコードで書く
「What、Why」は自然言語や図表を使って書く、、、てこと

646 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 17:37:50.25 ID:tZqy6bJ10.net]
>>644
>>645
どうも
きれいなコードを書くことでフローチャートはいらないのかもしれないですね

処理は言語化しないと何をしてるのか分からなくなったりしますね

647 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 17:53:52.87 ID:zg6rbg9v0.net]
フローチャートなんてアセンブリ言語でしか使わんぞ
もしかしたらCでギリギリ使うこともあるかもしれんがオブジェクト指向言語では必要ない
オブジェクト指向言語でフローチャート使わなきゃならんとしたらその前にまずオブジェクトの設計がおかしい

648 名前:デフォルトの名無しさん [2022/11/05(土) 18:13:19.21 ID:jSE+d3f7M.net]
>>645
Whatもコードで表現しようぞ

649 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 18:22:12.07 ID:anrNho5cM.net]
>>648
宣言的プログラミングだね
理想的だけど手続きを全て無くすのは難しい
コードはどうしてもハイブリッドになってしまう

650 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 18:26:36.41 ID:pQZkgeTuM.net]
オブジェクト指向言語で処理の流れを図示するならシーケンス図やアクティビティ図
静的な構造の図示はクラス図やパッケージ図



651 名前:デフォルトの名無しさん (ワッチョイ 9279-YsF2) mailto:sage [2022/11/05(土) 18:43:24.92 ID:D4NMIenB0.net]
アクティビティ図書くなら
フローチャートのがわかりやすいな

652 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 20:41:38.38 ID:SeMW4Qkf0.net]
VSがある程度自動的にクラス関係図生成してくれねぇかなあ

653 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 20:58:35.47 ID:zg6rbg9v0.net]
クラスデザイナーというのがあるからインストーラの個別のコンポーネントで検索してみろ

654 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 21:29:39.32 ID:6Vg185nZ0.net]
>>653
あれってCore系未対応じゃなかったっけ?

655 名前:デフォルトの名無しさん [2022/11/05(土) 21:50:02.83 ID:mwXpY34pM.net]
>>649
HowだけでなくWhatもコードで表現しようとするのと宣言的プログラミングはちと違うんだが
いずれにしても重要なのは「仕様のWhat」を「コードのWhat」として対応付けること

656 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 22:06:58.20 ID:neflR3f7M.net]
>>652
クラス関係図ではないけどあるクラスのメソッドやフィールドと他のクラス(または外部ライブラリdll)への関係を図示するだけならコードマップ表示がある

657 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 22:57:43.05 ID:x8IGYLJlM.net]
Windowsフォームアプリ(.NET Core)のスケルトンコードより
フォーム初期化処理(InitializeComponent()メソッド)
https://i.imgur.com/ukmU36Z.png

658 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 23:01:20.64 ID:mbE+OsReM.net]
>>655
ほとんど同じだよWhatをコードで表現しようとすると自然と宣言的になる
というか宣言的プログラミングがそういうもの
どうやってではなくてどうなって欲しいかを記述する

659 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 00:37:13.40 ID:zZNJQBYc0.net]
>>656
使用環境条件が厳しい

コード マップを使用して依存関係をマップする
https://learn.microsoft.com/ja-jp/visualstudio/modeling/map-dependencies-across-your-solutions?view=vs-2022

>コード マップの作成および編集には、Visual Studio Enterprise エディションが必要です。
>ただし、Visual Studio Community および Professional エディションでは、Enterprise エディションで
>生成されたダイアグラムを開くことはできますが、編集することはできません。

660 名前:.NET MAUI HighScool [2022/11/06(日) 00:58:03.81 ID:Am1kuzif0.net]
.NET 7についての前情報得てるやついる?
どんな感じなんだろ?



661 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 02:59:28.10 ID:3Vlqt+cVa.net]
質問です。
構造体を使っていて関数内でnewしてそこで使い終わる(ボクシングしない)場合は、stackに乗るだけなので、heapは汚さないしgcには影響無い認識でいいですよね?ゲームを作ってるのでgcの影響を少なくしたいんです。

662 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 07:14:57.83 ID:t/MPMTDqM.net]
構造体でもインスタンス生成してる時点でガベージコレクションの対象
.NETでは値型であろうが参照型であろうがすべての変数は監視下に置かれる
ボクシングは値型の変数を参照型(object型)変数に代入する時に一時インスタンスを生成して値をコピーして渡す機能なので全く関係ない話

663 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 07:30:46.83 ID:mzFwuoQr0.net]
>>661
> 構造体を使っていて関数内でnew
よくわからんからコードで示して

664 名前:デフォルトの名無しさん (ブーイモ MMad-yfbC) mailto:sage [2022/11/06(日) 09:30:46.32 ID:OgJKt7GdM.net]
>>661の理解で正しいよ。>>662は間違い。
値型は単なるデータ構造であり、それ自身はGCの管理対象にならない。

665 名前:デフォルトの名無しさん (ブーイモ MMad-yfbC) mailto:sage [2022/11/06(日) 09:45:40.42 ID:OgJKt7GdM.net]
ただし、もちろん値型の変数を使ったらその先が全てGCの追跡の対象外になるわけではなくて、値型に定義された参照型の変数はGCの追跡対象となる。
上に述べた通り値型は単なる埋め込みのメモリのデータ構造なので、それ自体は単にGCをバイパスする。
そして、最終的にメモリ上に展開された構造のうちで参照型の変数だけが追跡対象となるわけ。

666 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 09:52:21.19 ID:mzFwuoQr0.net]
>>664
newしてても?

667 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 09:54:44.02 ID:zZNJQBYc0.net]
値型のintでも実際はSystem.Int32構造体のインスタンスではなかったっけ?
MaxValue、MinValueなどのプロパティやToString()などのメソッドが使えたはず
値型の変数でもGCが追跡しているのでは?

668 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 09:57:00.84 ID:OgJKt7GdM.net]
>>666
構造体のnewは、スタック又はそれを保持する参照型オブジェクト上に事前に確保された領域に対し、コンストラクタをインプレースで実行する
新たなインスタンスを生成している訳ではない

669 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 10:00:33.74 ID:OgJKt7GdM.net]
>>667
値型に対してObjectクラス又はValueTypeクラスのメソッドを呼び出そうとすると、その時点でボックス化が発生し、ヒープ上に新たなインスタンスが生成される

670 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 10:06:01.01 ID:sZiKsnj+0.net]
ポインタがオマケでつくかつかないかだけなのか



671 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 11:39:39.10 ID:8lzCZdko0.net]
なんか久し振りにここでためになる話を聞けた気がする。
横からだけど、ありがとう。

672 名前:デフォルトの名無しさん [2022/11/06(日) 12:23:04.83 ID:eRXytuty0.net]
>>662のしったか具合がやばい

673 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 12:28:55.33 ID:46oDEsAIa.net]
このスレは前からそんなもんだろ
素人が知ったかして嘘ばかり教えるスレ

674 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 13:25:57.55 ID:zZNJQBYc0.net]
intの構造体はC/C++で言うところの自己参照構造体を強引に組み込み型として実現してるっぽい
https://qiita.com/cocoabreak/items/e93a3bd6d1640b622c42

675 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 13:54:54.11 ID:FxP86aLpM.net]
>>674
この記事では、そもそもなぜ再帰的な定義になっていて、それがどのように機能するかの説明にはなっていないような
C#のintやInt32型の変数は、実際にはどちらもILのプリミティブ型であるint32型にコンパイルされるんだよ
つまりInt32をint32型のフィールド一つだけを持つ構造体として定義してやれば、Int32とint32のメモリ上のレイアウトが同一になる
あとはコンパイラの型チェックを細工して、それらを区別しないようにしてやればよいというわけ

676 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 14:38:11.76 ID:mupUNnkwa.net]
>>664
680です!有難う、スッキリしました!

677 名前:デフォルトの名無しさん [2022/11/10(木) 02:43:44.58 ID:nQDHqGzi0.net]
TwitterのAPIからツイートを取得し、それを保存する方法について知恵を貸してください
現状テキストファイルに以下のように保存しています
ツイートID||kugiri||ユーザID||kugiri||日付||kugiri||本文||kugiri||未読フラグ||kugiri||保護フラグ
これをString.Splitで配列にしています

問題は||kugiri||とツイートされるとデータが壊れます
実際は||kugiri||ではなくもうちょっと長い記号の羅列ですがどうしても万が一という不安が残ります

こういうデータはXMLで保存するものなのでしょうか
その際「<Honbun>本文</Honbun>」のように保存されると思いますが
「07214545</Honbun>hoge」などXMLのコードが含まれるツイートをされても壊れないものですか?

保存時に本文だけBase64等にするか全てバイナリで保存も考えましたが、ファイルを直接開いて検索したりできないのも不便です
あとは本文をデータの末尾にしてString.Splitを使わずに1つずつ配列に戻すか
データ量は20,000件程度です、他によい方法がありましたらアドバイスおねがいします

678 名前:デフォルトの名無しさん [2022/11/10(木) 03:37:46.97 ID:+sVvBbXs0.net]
>>677
その程度のことで人に聞くならプログラムなんかするな




と言いたいところだが



タブで区切れ

679 名前:デフォルトの名無しさん [2022/11/10(木) 05:44:42.33 ID:nQDHqGzi0.net]
>>678
ツイッターとか5chとか不特定多数のユーザが書き込みをできるシステムで
タブは絶対にユーザーが埋め込むことができない文字ということですか?

680 名前:デフォルトの名無しさん [2022/11/10(木) 07:09:23.51 ID:m98zu82a0.net]
適当なで区切る
データにその記号があればエスケープしておく



681 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 07:45:50.73 ID:nQDHqGzi0.net]
>>680
例えば|chinko|という区切り文字を使っている場合にユーザーが|chinko|と書き込んだ場合
APIから取得時に|ちんこ|と置き換えておくと言う事ですね、表示するときには|chinko|に戻すと
現状改行コードを置き換えて保存しているので、そこにまとめて組み込めば楽そうです

682 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 08:16:38.34 ID:XxWk5gSzr.net]
文字列の改変で(削除でもなく)、エスケープとかサニタイズを独自に実装するのは苦労すると思うよ

683 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 08:34:01.14 ID:9mQBoBy40.net]
>>677
もしよろしけば下記について教えてほしい
その上で「JSON形式ではダメな理由」があるなら、それも教えて

1. 「保存」の目的(保存したデータの利用目的)
2. 現状の保存形式を選択した理由

684 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 09:11:14.02 ID:O+ugNNB7M.net]
xmlもjsonもエスケープ方法は規格として決められている
オレオレエスケープなんか考えなくても偉い人が作ったものを黙って使えば良い

685 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 09:13:17.40 ID:TJ0qCovBd.net]
ファイルに保存する際の定石をよく分かってないだけでしょ
JSONやXMLでもいいけど、この場合普通に一つのツリーとして書き出すと追記できなくて不便そうだから、JSON Linesがお勧めだな
Excelなどで表として扱いたいならCSVでもいいがJSON Linesよりはフォーマットにバリエーションがあるから考慮すべきことは多くなる

686 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 09:42:00.83 ID:hu9oTdXa0.net]
目視もしたいなら尚更そのままjsonでええやん

687 名前:デフォルトの名無しさん [2022/11/10(木) 10:19:10.77 ID:24bGZvg4a.net]
最近学びはじめてC♯ではメインメソッドを省略できるということで楽だなーと思っていたら関数のオーバーロードのところでエラーが出てしまいました
従来通りクラス名とメインメソッドを書くやり方だと普通に出来たのでローカル関数(オーバーロードできない?)として認識されているためエラーが出てるという認識で合っていますか?
メインメソッドを省略した場合どうやってもオーバーロードできないのでしょうか?

688 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 10:33:00.98 ID:vuUWLQnn0.net]
>>687
トップレベルに書かれたメソッドはローカル関数になります
cf) //ufcpp.net/study/csharp/misc/miscentrypoint/#top-level-statements

689 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 11:17:10.46 ID:eH71UEsUa.net]
>>681
違う、それだと |ちんこ| と書き込んだら |chinko| になっちゃうだろ
|chinko| と書き込まれてたら |エスケープ||chinko| にして、表示する時に |エスケープ||chinko| を |chinko| に戻す
ただこれだと |エスケープ||chinko| って入力されたら |エスケープ| が無くなっちゃうから |エスケープ| 自身もエスケープして |エスケープ| が来たら |エスケープ||エスケープ| にして、表示時に |エスケープ||エスケープ| を |エスケープ| に戻す
※ |エスケープ||chinko| の保存データは |エスケープ||エスケープ||エスケープ||chinko| になる

まあ>>684の言う通りオレオレエスケープは知識としては知っておくべきだけど自前で実装するよりライブラリ等に頼った方がいいと思うよ

690 名前:デフォルトの名無しさん [2022/11/10(木) 12:01:29.52 ID:24bGZvg4a.net]
>>688
ということはオーバーロードを使いたい場合トップステートメントのあとにクラスやら定義してから関数作るか別のファイルで作って呼び出すしかないという認識でいいですか?



691 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 12:31:50.00 ID:vuUWLQnn0.net]
>>690
それでいいと思います
ただ、そこまで色々するのならトップレベルに書かず普通に書いた方が分かりやすいんじゃないかなという気もしますが

692 名前:デフォルトの名無しさん [2022/11/10(木) 12:55:47.41 ID:24bGZvg4a.net]
>>691
なんかどうなのかな?ってもやもや気になってしまって
教えてくれてありがとうございましたスッキリしました!

693 名前:デフォルトの名無しさん [2022/11/10(木) 15:17:52.70 ID:F9S+K/27M.net]
CSVのreader/writerは標準では無いんだね

694 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 18:43:48.03 ID:NDp6c9mu0.net]
>>693
readerというかParserはあるよ
TextFieldParserクラス
https://dobon.net/vb/dotnet/file/readcsvfile.html#section7
同じところに載っている独自解析のサンプルや自分でParser作った方が動作は若干早くなるだろうけど

695 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 18:44:43.64 ID:QLIhXLlU0.net]
ツイートって文字数決まってなかったっけ?
このパターンなら昔は固定長とかも候補になっただろうに
最近の文字コード事情考えると固定長は厳しいよなぁ

696 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 19:17:24.93 ID:BjQppGzz0.net]
拡張性とか無くなるけど
本文の位置をラストにしてcountを渡せば
Split一発で配列に出来るかも

697 名前:デフォルトの名無しさん [2022/11/10(木) 20:27:59.70 ID:m98zu82a0.net]
5chのDATのようにHTMLエンコードして改行を<br>で置き換えたものを<>で連結するフォーマットは何気に簡単でいいね

698 名前:デフォルトの名無しさん (オイコラミネオ MM91-o+MF) mailto:sage [2022/11/11(金) 11:48:16.03 ID:V/N8drZJM.net]
ここで出てる案だと普通はタブ区切りがいい
汎用性がある
excelやpythonのpandasでシンプルに読める
VSCodeでアドインもある

699 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 12:23:50.12 ID:z+UtuJ+k0.net]
>>698
>>679 の回答によると思うが

700 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 12:29:30.36 ID:8WOXnYS7M.net]
システムとして必要がないので抹殺するのみ



701 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 13:24:51.05 ID:zPVyBVcV0.net]
馬鹿みたいにHTML解析してデータ取得してるならまだしも普通にapi投げてるならjson一択やろ

702 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 13:33:07.32 ID:OBpw9JhUa.net]
ふつーYAML

703 名前:デフォルトの名無しさん (ワッチョイ a2bd-+nMC) mailto:sage [2022/11/11(金) 16:29:42.18 ID:WVb8D07I0.net]
初めまして。
.NetCoreでコマンドラインみたいな改行させながらのログ表示をさせようと思ったのですが、どんなコントロール使えば良いのでしょう? 出来れば履歴遡れるようにスクロールバー付きで。
ラベルもテキストボックスもうまく表示してくれない・・・shownイベント以下に書いたからかな。

704 名前:デフォルトの名無しさん (ワッチョイ f533-rIwK) mailto:sage [2022/11/11(金) 16:42:33.46 ID:GYEdeJz40.net]
>>703
画面への表示は何を使ってるの?
WinForms? WPF? それともそれ以外の何か?

705 名前:デフォルトの名無しさん (アウアウウー Sacd-Aj/S) mailto:sage [2022/11/11(金) 16:50:47.79 ID:YvvI/C4ma.net]
同じところで普通に文字列渡したら表示されるなら読み込みに失敗してるのでコントロールのせいではない

706 名前:デフォルトの名無しさん [2022/11/11(金) 18:11:52.32 ID:FjpNhKohp.net]
ただのテキストボックスとかラベルだと
そのとき持ってるテキストしか表示しないから
アペンドしてくしか無いんじゃね?

707 名前:722 mailto:sage [2022/11/11(金) 18:23:04.48 ID:WVb8D07I0.net]
 反応ありがとうございます。
>>704
 WinForm使っています。
 ・・・と、プロジェクト作成時に指定したと思ったのですが、プロジェクのプロパティを確認したら少し違っていました。
 Windowsフォームなのは間違いないですが、.NetCoreではなく.Net6.0でした。
 .NetとかCoreとかframewaorkとか、まだよく分かっていません。取り敢えず.Netにしとけって感じみたいですが。
 WPFはまだ私には早いらしいから避けて通ろうと思います。

>>705
 Form.Textは望んだ通りに表示されたのですけどねw
 当初 public Form1()の InitializeComponent();以下に記述していたのですが、処理が全部終わってからForm作画に入るのでShownイベントに移動したのですが・・・念を入れて配置した中断ボタンも作画されず穴開き状態で、ShownはFormの配置が終わった直後であって総ての配置が終わった跡ではないって事ですかね。 私が書いたのは読んだファイルを加工して別ファイルに書き出している程度のモノなのですが、普通の処理はどこに置けば良いんでしょうね。 要勉強なり。


#よく分からないまま入門しているから、一つの質問の不明部分を細く要件定義していくと目も当てられない長さになりますね・・・。

708 名前:722 mailto:sage [2022/11/11(金) 18:24:05.80 ID:WVb8D07I0.net]
>>706
 なるほど・・・試してみます。

709 名前:デフォルトの名無しさん [2022/11/11(金) 18:38:29.81 ID:k1VRcWZVa.net]
キモイインデント

710 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 19:16:48.66 ID:7I/0fxGc0.net]
>>707
GUIなので実行ボタンでも押した時に処理すればいいんじゃないですかね?

ボタンの配置は気合を入れなくてもツールボックスからマウスでポトペタすると完成ですよ



711 名前:722 mailto:sage [2022/11/12(土) 06:25:09.95 ID:gXw8amZq0.net]
>>710
 ボタンスタートと言う方法なら今の実力でも綺麗に収まると思うのですが、D&Dかダブルクリックで起動したら後はノンストップで処理してひっそり終了してもらいたいので、ボタンでワンストップは仕様として煩わしい。
 と言う美学的な理由でやろうとしないのでした(^^;
>>706 改めまして。
 実装してみました。
 TextBox.Text += newword;的な記述をして痛い目を見ました。 TextBox.AppendText(newword);としないといけないんですね。
 ついでに初期設定で TextBox.ScrollBars = ScrollBars.Both;でスクロールバーも付けました。
 buttonは機能しないのに、TextBoxは問題なく機能していますね。何故だろう。
 早くshownからどっかに移動しないとですね。

712 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 09:45:26.79 ID:zAtFaE7C0.net]
スタンドアローンなアプリで、アプリの起動をパスワード保護したいのですが、ILSpy等で丸見えにならない程度の強度を持つにはどのような方法がありますか?

713 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 09:59:48.08 ID:tbSOUgpp0.net]
C#以外でdllにしとけば?

714 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 10:23:23.19 ID:B4kjFmw80.net]
>>712
パスワードチェックロジックを難読化ツールでぐちゃぐちゃにすると追う気無くなる

715 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 10:29:06.28 ID:ZNG2TRSk0.net]
>>712
適当なアルゴリズムのハッシュ値を比較すれば?

716 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:11:02.84 ID:Ra6ElU+i0.net]


717 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:12:52.85 ID:bRljaFHR0.net]
>>712
んなもんローカルに全てのデータがある時点で何しても無駄
ILだけ対策すればいいならネイティブコンパイルすればいい
そうすりゃ他のネイティブアプリと同じく機械語になるから

718 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:13:15.16 ID:Ra6ElU+i0.net]
k

719 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 12:17:11.67 ID:Ra6ElU+i0.net]
n

720 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:44:40.40 ID:4XgMUuW5M.net]
>>712
アプリの本体をパスワード付きzipかなんかで圧縮しといて動的にロードする



721 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:48:14.08 ID:YXyqvQzKa.net]
>>720
ダサすぎるし解凍したところでコピーできんじゃん

722 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:55:42.98 ID:guv9Rfqm0.net]
パスワードのみのテキストファイルを
そのパスワードでzip圧縮
解凍成功と中身の照合で実行継続か

723 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:57:46.17 ID:YXyqvQzKa.net]
>>722
実行ファイルをバイナリエディタで開いて照合する箇所を飛ばす命令を書き込めば照合しなくなるぞ

724 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 14:51:41.26 ID:f1IcSnyo0.net]
>>722
それでいいなら主要なコードを暗号化しといて解凍したコードを動的ロードして実行すれば>>723みたいな攻撃にも耐えられるな

725 名前:デフォルトの名無しさん [2022/11/12(土) 15:00:47.68 ID:Y/i2pfZ30.net]
>>715で良くね?

726 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:00:48.57 ID:ajB/boEg0.net]
ディスクに平文ファイルを書き出したところを盗まれる。
オンメモリでやりたいけどそっちはデータ実行で引っかかるんだよな。

727 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:02:24.87 ID:YXyqvQzKa.net]
>>724
暗号化する部分とキーが平文だからだめだな

728 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:11:29.38 ID:c/ILT9OL0.net]
まあ>>717の言う通りで
結局現行の高価な商用アプリはほぼシングルユーザーライセンスに移行してるし
今時ネットに繋いでないなんてありえないからKMSみたいに一定期間で認証させるとかだな
実行したらメモリに全部展開されるしそこ覗かれるようならローカルのファイルをいくら細工しても無駄だよ

729 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:12:12.94 ID:LpiKZFMR0.net]
なんか変に面倒な方向にしようとする人たちがいるな
>>712
パスワードを知られたくないだけなら>>715で十分。MD5でもSHA-512でもお好きなもので
パスワード起動部分を突破されたくないなら>>717

730 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:16:20.60 ID:c/ILT9OL0.net]
>>711
まずWindowsのGUIの基礎を確認した方がいいよ
メッセージループの仕組みやformの作成から表示までにどのイベントがどういう順序で呼ばれるかとか
shownのタイミングで設定が必要な場合もあるけど質問の内容はloadの段階で片がつくんじゃないかね



731 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:27:16.04 ID:2L2Z04CZ0.net]
ライセンス認証前提でレスしてる人が多いけど本当にそういう用途なのか?
今どきそんなことするかな?

732 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:54:02.21 ID:ncy2h0/Ld.net]
そのパスワード認証必要?

733 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:56:41.52 ID:ncy2h0/Ld.net]
毎回入力させるのか
次回以降のためにキャッシュでファイルローカルに持たせた場合、どう保存するのか

734 名前:デフォルトの名無しさん [2022/11/12(土) 16:04:56.79 ID:Y/i2pfZ30.net]
どうって普通にパスワード置くだけじゃね

735 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 16:21:43.32 ID:ncy2h0/Ld.net]
普通に置くパスワードって必要?

736 名前:デフォルトの名無しさん [2022/11/12(土) 16:29:23.68 ID:Y/i2pfZ30.net]


737 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 16:39:07.13 ID:ZNG2TRSk0.net]
こんな感じで良いんじゃない?

・パスワードが保存されてるか確認
・パスワード入力
・ハッシュ値を比較
・(OK)ログイン/平文パスワードを適当に保存
・(NG)リトライ

次回以降
・保存されたパスワードとハッシュ値を比較
・(OK)ログイン
・(NG)パスワードファイルを消してリトライ

ハッシュ値の生成はレインボーなやつとか総当りとかまでは対策しときたいかなぁ
パスワード検証用によく使われるアルゴリズム使用して、saltでゲタ履かせてストレッチングで処理時間の確保ぐらいはしときたい

バイナリいじるやつまで考えると全然対策にならんけどねぇw

738 名前:デフォルトの名無しさん [2022/11/12(土) 16:44:03.53 ID:Y/i2pfZ30.net]
Linuxはどうしてるんだろう

739 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 16:51:30.20 ID:ajB/boEg0.net]
osのログインとアプリの起動を同列には考えられんが、linuxも
ディスクを抜き取って /etc/passwd を書き換えられたらアウト。

740 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:27:01.84 ID:vKl12ZSx0.net]
みんな俺のために働け



741 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:29:44.19 ID:ZNG2TRSk0.net]
今どき /etc/passwd にパスワードおいてるディストリビューションってあるの?

742 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:48:17.21 ID:ajB/boEg0.net]
そこは本質的な話じゃないから適宜shadowにでも読み替えて。

743 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:52:51.14 ID:2L2Z04CZ0.net]
>>737
ハッシュ化するのは平文パスワードを保存しないためなんだが・・・

744 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:59:12.62 ID:1r3Bwkn20.net]
>>737
今時平文パスワードを保存って発想が出て来るのは不味いぞ

745 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 18:17:21.03 ID:ZNG2TRSk0.net]
>>743
ハッシュ値にこだわるなら、ストレッチングの回数を適当に減らしたハッシュ値を保存→次回以降は減らした回数ストレッチングして検証。でも良いと思うけど、すでにユーザの手元にパスワードがある前提のスタンドアロンアプリだからねぇ

適当なトークンの作成ロジックが隠せない以上平文で良いと思う
平文が嫌なら、毎回パスワードを聞く感じかなぁ

746 名前:デフォルトの名無しさん [2022/11/12(土) 18:49:41.37 ID:Y/i2pfZ30.net]
ハッキングでもされなきゃローカルに保存したパスワードなんて流出しないやろ

747 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 18:53:34.55 ID:lzvWNBzY0.net]
ローカルで動作するアプリは、極論言ってしまうと労力惜しまなければどうやってもクラッキング出来てしまうからなぁ
ドングルみたいなハードウェアや、ネットワーク認証挟むとかなり強固にはなるけど
結局のところ、どこまでの強度が必要かって話になる

748 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 18:56:34.83 ID:THWEmJXVa.net]
いくら認証を強化しても認証をスキップするよう書き換えられたら終わるんだから気にしないが吉

749 名前:デフォルトの名無しさん [2022/11/12(土) 19:00:47.98 ID:Y/i2pfZ30.net]
ユーザーが保存したキーの窃取とアプリのキーの解析を混同してる奴いそう

750 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 19:33:04.85 ID:guv9Rfqm0.net]
>>712
> ILSpy等で丸見えにならない程度
じゃないのか・・・



751 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 19:47:44.72 ID:bRljaFHR0.net]
その程度を求めてるならネイティブコードにコンパイルすればいいんだって
逆アセンブルで丸見えだけどな
なぜかILだけ逆アセンブルできると思ってるやつ時々いるよな

752 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 19:56:29.64 ID:lzvWNBzY0.net]
何なら難読化ツールもあるし

753 名前:デフォルトの名無しさん [2022/11/12(土) 19:57:28.32 ID:Y/i2pfZ30.net]
バイナリ改変したら動かないようにできないの?

754 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 20:00:08.63 ID:syTmwMgY0.net]
プログラムコードにしか見えない文字列をデータとして格納しておいて、それをキーにする

755 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 20:04:47.69 ID:THWEmJXVa.net]
てかデフォで難読化してくれよ

756 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 20:07:09.00 ID:guv9Rfqm0.net]
>>753
それが完璧に出来るならコンピュータウィルスの大部分が無くなりそう

757 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 20:08:53.77 ID:lzvWNBzY0.net]
>>755
パフォーマンスは落ちるだろうし、別に難読化が要らないプログラムの方が多いから
そんなもんオプションでいいだろ

758 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 20:09:20.08 ID:ZNG2TRSk0.net]
>>722
コレ結構好きかも
個別にパスワードを設定したいならかなりお手軽だね

759 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 20:10:42.29 ID:THWEmJXVa.net]
>>757
オプションでもいいけどVSに実装してくれ

760 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 20:13:56.36 ID:ZNG2TRSk0.net]
>>753
配布時の検証にはMD5とかよく見るね
動作も制限できそうだけど、その部分を回避されるとやっぱりだめだからなぁ



761 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 20:17:55.47 ID:EWhm+EbT0.net]
起動は別ファイルからってやつは
実行前にバイナリ確認してるのかな?

762 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 23:06:21.95 ID:B4kjFmw80.net]
>>759
Dotfuscatorがあるでしょ

763 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 00:12:55.08 ID:0j2qr49h0.net]
zipはパスワード分からなくても中身のファイル名わかれば上書き可能なので
いろいろ工夫しないとめちゃくちゃ簡単に突破されるよ

764 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 00:51:17.24 ID:uK9Cge080.net]
>>753
アプリの電子署名がそれじゃないの?
Windowsだけど

765 名前:722 mailto:sage [2022/11/13(日) 06:22:17.77 ID:TFN9Og8f0.net]
>>730 見落としていました。申し訳ございません。
 確かに、基礎的な所は全然分かっておりません。
 WINDOWS環境では、C+DXライブラリしか経験ないものでして。 あとHSP。
 C#の入門サイトでWINの基礎を抑えている所にまだ当たっていないというのもあります。
 と言うか、多分その基礎が身に付いたらここで質問せず教える立場だろーなーと思いますw
 WINDOWSの基礎からC#のWinFormを入門してコントロールの制御以上に踏み込んでいるサイトがありましたら、紹介よろしくお願いします。

 少し報告。
 shownイベントが駄目なら、Main()に書き足せば良いんじゃね?とProgram.csを探し出してshownから移植しようとしてみました。
 クラスをよく分かっていないのでpublic static void body()とか理解もしていないのにテキトーなキーワードを散りばめてメンバーを書き足したのですが、そこからだとコントロールが一切見えないっぽいので諦めて元に戻しました。
 D&Dと単独実行(コマンドライン引数とカレントのファイル検索からのファイル取得)からのノンストップなスムーズ実行を実現したいからbutton以下に収めない記述を探しているのですが・・・まさかチュートリアルが見付からないとか、戸惑っています。

766 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 06:46:08.30 ID:4/Hqzxve0.net]
基礎はWebの断片的な情報だと厳しいからでかい図書館や本屋で紙の本でも読んで来い
電子はパラパラめくって中身を確認できないからできれば紙がいい

767 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 07:30:57.54 ID:BdGTc1Dp0.net]
>>763
確かに >>722 のままだとちょっとまずいですね
仕組みがバレてれば、ユーザが任意のパスワードでzipファイル作って簡単に置き換え可能なので

方向性は好きだけど、もうちょっとねる必要ありですね

768 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 07:57:25.67 ID:BdGTc1Dp0.net]
>>767
少し考えてみたけど、ロジックが覗き見れる前提だとこの方法はダメかな...
何やっても置き換えで対応できる気がする

769 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 08:10:56.99 ID:aD+9aMvk0.net]
上にも書かれてるけどガチでやられたらどんな方法使っても完全な対策なんて無理だよ

770 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 08:52:02.92 ID:BdGTc1Dp0.net]
まぁ、何を脅威としてみなすか、どこまで許容するかですよね
俺が提案したハッシュ値での検証もアルゴリズムばれ、ハッシュ値ばれまでは大丈夫だけど、書き換えには無力だし

ともあれ、個人的には面白い話題だったわ



771 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 09:04:58.19 ID:6eP485iya.net]
この質問者の場合は知らんけどユーザーがパスワード入力を許せるくらいの良いソフトを作ってから言えと言いたくなる事例が割とある
まず使ってもらうハードルが高いのに余計なことしなくていいんだよ
気に入ったユーザーは自然と財布が緩むからより便利になる機能をプラグインで販売すりゃいい

772 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 09:11:01.42 ID:aD+9aMvk0.net]
いきなり謎の上から目線w

773 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 09:24:11.50 ID:4jLRyBA70.net]
高額なソフトを作っている会社はPC内でのチェックが簡単に突破出来てしまう事を判ってるから、
大体Webアクティベーションやドングルを採用してる

774 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 09:31:37.68 ID:BdGTc1Dp0.net]
上から目線じゃなくて実体験じゃない?
ちなみに俺は実体験としてやらかしたことがあるw

無駄に難読化しようとしたわ

775 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 09:51:17.84 ID:93KwHlO1a.net]
なんかこのスレ上から見られてるんじゃないかといつもビクビクしてる妙に卑屈なやついるな
それ多分初心者だから自信がないんじゃなく何年やっても初心者だから自信がないんだぞ
普通初心者なんて三ヶ月で卒業するから学ぶのに精一杯で卑屈になってる暇なんかないわ

776 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 10:09:47.66 ID:2jgXqyDd0.net]
>まず使ってもらうハードルが高いのに余計なことしなくていいんだよ

このセリフは「良いソフトを作ってから言えと言いたくなる事例」の本人に言ってやれってことだろ。

777 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 10:45:16.60 ID:7K/NPeS80.net]
C#でセキュリティーをなんとかしたいのならUWP使うのも手だけどね

778 名前:デフォルトの名無しさん [2022/11/13(日) 12:15:05.54 ID:eEed0M79M.net]
>>772
いつもの人だよww
最近は質スレで暴れてたからこっちが平穏だっただけ

779 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 12:20:42.58 ID:lSfeZyRJa.net]
卑屈なやつだなw

780 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 16:25:03.21 ID:7K/NPeS80.net]
人の成果物をタダで使わせろって暴れるキチガイは勘弁してほしいわ



781 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 16:45:13.25 ID:4/Hqzxve0.net]
世の中そんなやつばかりだったからこうなったわけで
WindowsでUWP使って小銭は稼げてるかい?

782 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 18:21:39.43 ID:RwIffndXM.net]
がっぽり儲けてます

783 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 18:29:49.19 ID:p3TW3Ix/M.net]
最初は手作り感万歳でも使ってくれる人はいた
今はプロ作ったような紹介画像がないと悲しいことに

784 名前:デフォルトの名無しさん [2022/11/14(月) 17:01:48.00 ID:p8dKwuQs0.net]
すみません。
.NET MAUIなのですがページのナビゲーションでパラメーターを渡す処理を作ったのですが、
うまく表示されません。
ブレークポイントを使うと以下のような形になり少しおかしいです。
プロパティSendModelを作成するところでブレークポイントを持ってくるとちゃんと変数が渡されているのに対して
イニシャライズコンポーネントをした後にブレークポイントを持ってくると変数がnullになってしまいます。
なぜこうなるかわかるかたいますか?
https://imgur.com/CNxFyIv.jpg
https://imgur.com/TuctRLK.jpg

785 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 17:08:14.46 ID:Latj9fgHM.net]
MAUIって仕事ありそう?

786 名前:デフォルトの名無しさん [2022/11/14(月) 17:15:29.93 ID:p8dKwuQs0.net]
>>785
今は無いけど任天堂やJRやNHKからちょこちょこあるんじゃね?
あと政府とMicrosoftズブズブだからその辺でなんかありそう

787 名前:デフォルトの名無しさん [2022/11/14(月) 17:15:40.85 ID:p8dKwuQs0.net]
マイナンバー関係とかね

788 名前:デフォルトの名無しさん [2022/11/14(月) 17:16:54.88 ID:p8dKwuQs0.net]
すまんJR関係なかったパスモは東京メトロだったわ

789 名前:デフォルトの名無しさん [2022/11/14(月) 17:17:39.08 ID:p8dKwuQs0.net]
とりあえず24年までには置き換えしないといけないしね

790 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 17:21:53.03 ID:Latj9fgHM.net]
>>786
先を見据えてって感じかね
もうJavaやりたくないしWeb系は先行者に勝てんし、MAUIに賭けてオラいっちょ勉強してみっぞ



791 名前:デフォルトの名無しさん [2022/11/14(月) 17:31:00.77 ID:p8dKwuQs0.net]
>>790
がんばれー
JavaでAndroidやってたらMAUI強いかも
Javaで書いてたAndroidAPIがそのままかけるからね
https://learn.microsoft.com/ja-jp/xamarin/android/

792 名前:デフォルトの名無しさん [2022/11/14(月) 17:36:07.06 ID:p8dKwuQs0.net]
>>784
すみませんこれ自己解決しました
一番最初にイニシャライズコンポーネントが呼び出されてその後プロパティを取得されるみたいです
おかしかったのはxamlのBindingの記述でそのままオブジェクト(SendModel)のプロパティを書いてたからでした
{Binding SendModel.Title}で確認できました

793 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 17:58:09.71 ID:cpuc2dy6d.net]
>>814
Flutterがいいんじゃない
MAUIに比べりゃ圧倒的に仕事あるよ

794 名前:デフォルトの名無しさん (ワッチョイ 2301-0qx4) [2022/11/14(月) 18:18:45.36 ID:p8dKwuQs0.net]
>>793
C#のスレでFlutterすすめるのは止めなさい
JavaやってるならDartよりC#の方が親和性高いでしょう

795 名前:デフォルトの名無しさん (ワッチョイ b507-z+Fy) mailto:sage [2022/11/14(月) 18:29:08.87 ID:HDY6oj/W0.net]
仕事として5chで叩くならどのプラットフォームがいい?

796 名前:デフォルトの名無しさん (ワッチョイ 2301-0qx4) [2022/11/14(月) 18:29:30.58 ID:p8dKwuQs0.net]
Dartはchildやchildrenの部分が最高にアホwって思う

https://i.imgur.com/FIRNxLX.png

797 名前:デフォルトの名無しさん (スプッッ Sd03-KAzt) mailto:sage [2022/11/14(月) 18:54:36.79 ID:8Qr3XdFEd.net]
>>796
宣言的にCompositeパターン書くならC#でも似たコードにならんか?
何がアホなんだ?

798 名前:デフォルトの名無しさん (ワッチョイ 2301-0qx4) [2022/11/14(月) 19:01:16.65 ID:p8dKwuQs0.net]
>>797
無駄にCompositeして意味あんの?
.NET MAUIのMVU用ライブラリはFlutter真似して作られてるから無駄にChildrenとかつけちゃうわな
そりゃそうなるわ
.NET MAUI系You Tuberのこの人もこの書き方好きじゃないからMVVMでやりますって言ってるぞ
https://youtu.be/nCNh9G-Q688

799 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 19:31:42.89 ID:hjaMiJ3dM.net]
>>794
どっちも元々Javaフォロワーでしょ
C#はJavaからの飛躍が大きいからDartの方が覚えること少ないよ

800 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 19:39:58.14 ID:HDY6oj/W0.net]
DartはJavaScriptだろ



801 名前:デフォルトの名無しさん [2022/11/14(月) 19:49:37.13 ID:p8dKwuQs0.net]
>>799
DartはJavaScriptを元にした言語だよ(AltJSとか言われてる)
DartとかJavaScriptを元にしたAltJSがみんな潰れてC#を元にしたTypeScriptがここまで発展したの笑えるよな
FlutterはDartの救済措置でしかない

802 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 19:52:02.34 ID:8Qr3XdFEd.net]
>>798
いやだから何がアホなんだ?誰かが言ってたから?

803 名前:デフォルトの名無しさん [2022/11/14(月) 20:02:04.55 ID:p8dKwuQs0.net]
>>802
無駄じゃんその1語
いるか???
コンパイル通すときいるの?
普通に
StackLayout{
Label label1{
Text="ほげ",
TextColor=Red,
TextAttribute=Bold},
Label label2{
Text="ほげ",
TextColor=Red,
TextAttribute=Bold}
}
とかにできなかったのだろうか?
これがスムーズじゃね?

804 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 20:21:04.18 ID:8Qr3XdFEd.net]
>>803
child書くか書かないかってレベルの話かよ…

805 名前:デフォルトの名無しさん [2022/11/14(月) 20:55:04.59 ID:p8dKwuQs0.net]
>>804
そりゃそうでしょ…
見にくいしどれがどれかわからんUIの作りづらさは一級品だよねMVU

806 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 21:18:14.71 ID:ans/MkehM.net]
>>784
本当にお前は迷惑で恥知らずなゴミだなMAUI君よお
MAUIの質問ならここじゃなくてMAUIスレに持ち込めよ
Xamarinスレだったのをスレ内で合意を取るようなこともせず勝手にMAUIスレへスレタイを変えて
散々私物化してるのはお前だろ?
そっちのスレで責任もって解決しろよ
なんでわざわざこっちのスレへ持ってくるんだ?
お前が好き勝手やってるせいで答えてくれるようなスレ住民がみんないなくなっちゃったとかそういうことか?

807 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 21:20:26.72 ID:ans/MkehM.net]
あとFlutterもDartもスレ違いだしFlutter叩きならなおスレ違いだ
お前が立ててさんざん自演なりで盛り上げようとしても盛り上がらないクソVSスレでやれ

Flutter VS .NET MAUI VS React Native
https://mevius.5ch.net/test/read.cgi/tech/1661511605/

808 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 21:25:38.42 ID:ans/MkehM.net]
あと、この板にクソスレ立てんな
直近で目に付いたのは
https://mevius.5ch.net/test/read.cgi/tech/1668127312/
https://mevius.5ch.net/test/read.cgi/tech/1667211312/
だけどお前これ以外にも一杯立ててるだろ
そういうのはお前の巣でやれ。VIPだか何だか知らんがそこから出てくるな

809 名前:デフォルトの名無しさん [2022/11/14(月) 21:43:20.92 ID:p8dKwuQs0.net]
C#全体のことはここで聞く
MAUI特有のことはMAUIスレで聞く
当然では?

810 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 22:11:38.95 ID:ans/MkehM.net]
すげーな
さすが恥知らずのMAUI君

先にMAUIスレで質問するようなこともせずに
このスレでMAUIの質問をしておきながら
>>809みたいなことを平然と言ってのけるこの神経
でもって826,827みたいな自分にとって都合の悪いことは何一つ見なかったことにしてスルーするんですね?
いやー「.NET MAUI HighSchool」ってコテでしたっけ
この実績で就職活動とか頑張ろうとしてるんですよね
おみそれしました



811 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 23:59:43.67 ID:ans/MkehM.net]
「.NET MAUI HighSchool」さん、朝から晩までこの板に張り付いて
本日の書き込みランキングのワンツーフィニッシュおめでとうございます!!
hissi.org/read.php/tech/20221114/

他のスレでは23時以降も活発に書き込みされてるようですが、
その元気があるようなら私にもお返事いただけませんか? 826とか827とかあと829もそうだけど
でも1点だけ反論して残りの指摘を何一つなかったことにするのはやめてほしいなとは思いますけどね
(ぶっちゃけchildren1つ書くかどうかなんてStoryBoardの地獄に比べたら屁でもないけどまあこれはスレチなんでどうでもいい)
まさか828で反論した直後にこっちのことをNGIDしたからレスが見えてない、なんてしょっぱい言い訳はしませんよね?
それとも貴方自身が恥知らずのゴミムシであることをレスしないことを以て体現しておられるのでしょうか???

812 名前:デフォルトの名無しさん [2022/11/15(火) 00:21:34.85 ID:fFtAGper0.net]
>>811
答える必要ないからレスしなかっただけですが???
全レスする必要あります???

813 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 07:01:23.31 ID:zF+MxnbgM.net]
>その元気があるようなら私にもお返事いただけませんか? 826とか827とかあと829もそうだけど
って書いてあるよな?
日本語もろくに理解できない馬鹿なのかお前は?
ID:p8dKwuQs0 の書き込みとか
他のスレの書き込みとかを見る限り全レスがデフォみたいなんで
返信がないってことでよっぽど返信したくないことを書かれちゃったのかーと思っちゃったけどそうじゃないんだな?
じゃあ俺の書き込みに限らずすべての指摘に対して逃げずに全レスしろよ
そこまで勿体つけたからにはさぞかしご立派な反論が来るんだろうな?
どうせお前は一日中ずーっと5chするくらいしか能がないんだから好きなだけ時間かけて書き連ねてみろよ
違いはchild/children一個だけみたいな見るほうがリアクションに困る失笑しかできないような返しすんじゃねーぞ


でもさすがにこのスレで続けるのはC#関係ないしスレチで迷惑だから
お前が立てたお前専用のゴミスレ↓
.NET MAUI HighSchool
https://mevius.5ch.net/test/read.cgi/tech/1662947042/
でやれ

よかったな、お前のクソスレに人を呼び込めるぞ
感謝しろ

814 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 21:19:21.33 ID:Ndk7vWNsM.net]
あれれMAUI君どこいっちゃったの?
>>812みたいなファイティングポーズを取ってたからさぞかしご立派な返信が来るかと期待してたのに
このスレにも晒したスレにも何一つ反論できずに尻尾を巻いて逃げ出した?
それともまさか名無しになって他人のフリしてるなんて恥ずかしいことやってる?
このスレもそうだし他のスレ(例えばWPFスレ https://mevius.5ch.net/test/read.cgi/tech/1667010874/ )でも
さんざん「.NET MAUI HighSchool」ってコテを名乗って毎日朝から晩まで書き込んでたのに
急にこのコテ使った書き込みが無くなったみたいなんだけど、どうしちゃったんだろう


うん、なんというか拍子抜けだわ
さよならMAUI君、もう二度とこの板に顔出すようなことをしてくれなければそれでいいや

815 名前:.NET MAUI HighSchool [2022/11/16(水) 22:20:27.60 ID:F1FwASBt0.net]
>>814
キモ
つけ忘れただけだわカス

816 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 22:59:08.10 ID:Ndk7vWNsM.net]
なんだ消えたんじゃなかったのか

とりあえず取って付けたような「つけ忘れただけ」なんて後出しの言い訳乙
で結局直近の833以外のレスは見なかったことにしてまた逃げ出すんでしょ?
さすがMAUI君

817 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 23:09:20.45 ID:Ndk7vWNsM.net]
てゆうか、実況版に
「.NET MAUIでAndroidでサイン波の出力をした天才プログラマーだけど質問ある?」
なんてタイトルのスレ立てたはいいものの
誰にも相手してもらえなくてレス数1桁で落ちてたけど、このスレ立てたのもMAUI君だよね?

その知識も決して自分のものじゃなくて
この板で1から10まで聞いて回って集めた受け売りの知識だよね??
いやー天才のやることはひと味もふた味も違いすぎて凡人にはその感性が理解できませんわー

818 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 23:11:21.10 ID:Ndk7vWNsM.net]
ほかにも実況板とかVIPとかでいろいろスレ立てても誰にも相手してもらえてないみたいだね
だからって、この板でまでよその板と同じ感覚でクソスレ立ててお山の大将気取ったりするのはどうかと思うよ

819 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 23:15:53.76 ID:Ndk7vWNsM.net]
でもってVIPで建てたスレが多少伸びて反論喰らったら自分ではなにひとつ対処できなくて
この板に泣きついて助けを求めたりもしたよね?
正直すっごく恥ずかしいと思うよ

MAUI君は「別に何一つ恥ずかしいことなんてしてない」みたいなこと言ってたけど、いまでもそう思ってる?

820 名前:.NET MAUI HighSchool [2022/11/17(木) 00:16:56.85 ID:uB3aH/K90.net]
>>819
反論食らった?
ここで言われてたけど実際WebViewで実装できてんだからいいじゃんって結果になったんだが?



821 名前:デフォルトの名無しさん mailto:sage [2022/11/17(木) 07:30:02.27 ID:f45dDCUTM.net]
>>820
ねえそんなどうでもいいとこだけしか反応できないの?
「反論」って言葉が気に入らないならじゃあ「的外れな指摘」と言い換えたとして
その的外れな指摘ひとつお前一人じゃ応対できなくてこのスレに泣きついたよね
でもって手取り足取りレクチャしてもらってさ
元のスレでドヤ顔で披露してて恥ずかしくないの?

あと838以外のレスにはなにひとつ言い返せないの?
お前がどんだけ5chに入り浸ってるのかちょっと気になったんで
今年立てたスレの数とか聞いてみてもいいかい?

822 名前:.NET MAUI HighSchool [2022/11/17(木) 12:23:04.13 ID:AcAViRuk0.net]
>>821
いや別に恥ずかしくないけど?
分からなかったら人に聞かないの?
だとしたらアホだと思うしこんなスレいらない

823 名前:デフォルトの名無しさん mailto:sage [2022/11/17(木) 12:31:29.53 ID:EmPKjKBIM.net]
質問するときだけコテ外すのはやめれ
応じる人は応じるし、無視したい人は無視する

824 名前:.NET MAUI HighSchool [2022/11/17(木) 12:35:24.02 ID:AcAViRuk0.net]
>>823
わかっな

825 名前:.NET MAUI HighSchool [2022/11/17(木) 12:35:29.50 ID:AcAViRuk0.net]
わかった

826 名前:デフォルトの名無しさん [2022/11/17(木) 17:07:21.41 ID:ItSxb1EQA]
誰か2chの使い方講座してくれ

827 名前:デフォルトの名無しさん [2022/11/17(木) 17:08:05.66 ID:ItSxb1EQA]
だーれぇかぁぁぁぁ

828 名前:デフォルトの名無しさん [2022/11/17(木) 17:08:34.58 ID:ItSxb1EQA]
だれぇかぁぁ

829 名前:デフォルトの名無しさん [2022/11/17(木) 17:09:16.90 ID:ItSxb1EQA]
てか2chって無職の巣窟って聞いたけど本当なん?

830 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 06:38:30.53 ID:T+31eRIOM.net]
>>822
質問することそれ自体が恥ずかしいことだなんて俺は言ってないし非難もしてないんだが
(もちろん質問することが悪いことだなんて思ってないし、質問で得た知識は有効に生かしてほしいと思ってるが)
どこをどう捻じ曲げて受け取ってそういう認知にいたるのかさっぱり分からんわ

ていうか835,836,837みたいなのにはMAUI君は一言も言い返してこないんだが
おまえ自身も恥ずかしいことだとちゃんと認識してるからなんだよね?



831 名前:.NET MAUI HighSchool [2022/11/18(金) 08:32:33.70 ID:dFTql+Wp0.net]
>>830
いやお前が知りたい答えがわからないから
何を返してほしいの?

832 名前:.NET MAUI HighSchool [2022/11/18(金) 08:35:56.22 ID:dFTql+Wp0.net]
835逃げ出すんでしょ?←どう答えてほしいの?
836受け売りの知識かどうかが知りたいの?なんJでスレ立てたのが俺なのか聞きたいの?
837お山の大将気取ってるのはどうかと思うよ?←これって質問なの?

833 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 18:34:03.07 ID:De8oASvZM.net]
人間初心者か
このスレC#初心者用であって人間初心者用じゃねえんだよな
保育園通ってろよガキ

834 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 19:50:02.12 ID:y5ukyeaS0.net]
最近、未確認飛行というサイトで初めてのプログラムとしてc#を学び始めたんだけど
https://ufcpp.net/study/csharp/oo_construct.html
ここのサンプルというところのプログラムでオーバーライドされたtoString()のメソッドが呼ばれるのってなんでかな?
どこでもそのメソッドを呼ぶようなことをしてないように見えるけど自分で実行してみたら確かに呼ばれてる
すごい基本的な事なんだろうけどどうか教えてほしい

835 名前:デフォルトの名無しさん [2022/11/18(金) 19:54:59.04 ID:9HcKlt4I0.net]
Console.WriteLineの中で呼ばれてるんだよ

836 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 20:08:52.48 ID:y5ukyeaS0.net]
>>835
これで呼ばれてることになってるんだ!?
教えてくれてどうもありがとう
仕組みはまだわからないけれど疑問がとけてすっきりした

837 名前:デフォルトの名無しさん [2022/11/18(金) 20:13:22.53 ID:9HcKlt4I0.net]
例えばこういうこと
public void WriteLine(object obj) {
 WriteLine_Inner(obj.ToString());
}

WriteLine_Innerは文字列だけを受け付けて表示するメソッドとする
WriteLineを呼ぶとToStringが呼ばれる

838 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 20:17:28.69 ID:y5ukyeaS0.net]
>>837
おお、すごい分かりやすい!
ここまで丁寧に教えてくれて本当にありがとう
これで気兼ねなく次の項目に進めるよ

839 名前:.NET MAUI HighSchool [2022/11/18(金) 22:25:21.33 ID:dFTql+Wp0.net]
ほんとに未確認飛行物体からやってるすげー

840 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 23:58:15.19 ID:nTmfkfcZM.net]
手を動かさない学ばないやつは前に進めない
くだらないことしか言えない
いつまでも同じ場所にいる



841 名前:デフォルトの名無しさん [2022/11/19(土) 19:29:30.85 ID:MFJeLtYyu]
すっげぇ本当に頭がおかしぃみたいだ…(?.? )

842 名前:デフォルトの名無しさん mailto:sage [2022/11/19(土) 19:28:32.08 ID:kzcZtDQa0.net]
JavaとかC#でenum使うメリットがわからん

843 名前:デフォルトの名無しさん [2022/11/19(土) 19:33:40.92 ID:hH2yPCCm0.net]
オプション指定やろ

844 名前:デフォルトの名無しさん mailto:sage [2022/11/19(土) 19:35:53.24 ID:wfHvhfxa0.net]
>>842
まず検索したか?
そのまま「enum使うメリット」でググって納得できなければ使わなければいい
それ以上はここで話してもキリがない

845 名前:デフォルトの名無しさん [2022/11/19(土) 20:00:26.11 ID:MFJeLtYyu]


846 名前:デフォルトの名無しさん [2022/11/19(土) 20:06:41.05 ID:MFJeLtYyu]
>>842

聞きたいんだけど、リプライみたいなのってどーやってやるの?

847 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 13:30:32.37 ID:hkzvE6vGM.net]
>>842
状態などを使うときにmode==0 とか mode==1よりわかりやすい

mode==モード.家でまったり中
mode==モード.お仕事中

など名前がついてるからわかりやすい

848 名前:デフォルトの名無しさん [2022/11/20(日) 14:14:28.85 ID:j4QfOsfua.net]
逆になんでC#とかだと要らないと思うのか気になる

849 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:45:18.61 ID:AxU0uBeT0.net]
定期的に現れるレス古事記だと思うことにしてる

850 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:42:59.87 ID:6Lmlby97a.net]
いやあれだろ
条件が複雑すぎてenumにできないと暴れてたアホ



851 名前:デフォルトの名無しさん [2022/11/20(日) 15:47:47.16 ID:wwqc7KSjM.net]
enumってそれが使えるスコープっていう概念もあるのですか?

852 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:51:44.50 ID:MjJ+/fUP0.net]
普通に継承できねぇから
ステータス並べちまうと
クラスを継承したときに
enumも継承して
ステータス増やそうとするけど
enumの継承はできないので
ステータスは定数で並べるしかない
ってだっせー状態になる

853 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:53:25.80 ID:MjJ+/fUP0.net]
enum周り作ったやつの脳みそちんぽなんじゃん?

854 名前:デフォルトの名無しさん [2022/11/20(日) 15:59:28.92 ID:wwqc7KSjM.net]
クラス内でenum宣言することがあると思うのだけど
そうした場合はそのクラス内だけでしかそのenumは使えないんですっけ?

855 名前:デフォルトの名無しさん [2022/11/20(日) 16:09:13.26 ID:ruJch1bQ0.net]
>>854
privateならその通り
publicならクラス外でも使える

856 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 16:55:21.88 ID:MjJ+/fUP0.net]
っていう構造にも関わらず
継承できないから
クラスを継承すると
enumで書いてる状態は
全部書き直し

ハイ、全部ちんぽでした!

857 名前:デフォルトの名無しさん [2022/11/20(日) 16:57:27.98 ID:qg1DZ5gK0.net]
クラス内のクラスって継承で継承できるっけ?
何がともあれメリットがないことにはならないけれども。

858 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 17:05:37.84 ID:MjJ+/fUP0.net]
他のくだらん機能は
どうでもいいから
enumを継承できるようにしろよ
まあ、なくても
const intで頑張るからいいけど
まあ、その場合enumは一生使わないね

859 名前:デフォルトの名無しさん [2022/11/20(日) 18:24:34.53 ID:x1RY5Ndj0.net]
当たり前だろ
クラス階層違うのに同じ名称を押し通す方がやばいわ

860 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 18:28:02.20 ID:nAJcGQvG0.net]
まあ名称はどうでもいいんだが

クラスAの状態を1〜3でEnumで持ってて
クラスAを継承してクラスBを作った
クラスBの状態1〜5をEnumでもつ
ここで、クラスA用のEnum継承して4〜5を追加して1〜5のEnum作りたい

ということはあるんじゃね



861 名前:デフォルトの名無しさん [2022/11/22(火) 18:38:58.38 ID:NaPYQccb0.net]
enumはクラスの中に入れるなってことなのでは

862 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 18:54:32.20 ID:rbB+zYjt0.net]
enumの継承って、キャストの安全性が保証できなくなるんじゃない?

863 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 20:08:00.71 ID:5norvibI0.net]
継承と言うか列挙子の追加やね
確かにたまにやりたいと思うことはある
enum A {A1, A2, A3};
enum B: A {B1, B2};
みたいにできればいいのにね

864 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 20:11:29.21 ID:tdt1l6wr0.net]
んまあどうでもいいです…

865 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 20:43:08.15 ID:F4U9XWNgd.net]
>>863の場合はA型をB型にキャストするのは型安全で逆は非安全だから、通常の継承とは逆になってしまう
TypeScriptみたいに type B = A & enum { B1, B2 } ができるといいんだろうね

866 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 21:56:55.88 ID:2vHKVf9I0.net]
>>865
> type B = A & enum { B1, B2 }
なにか勘違いしてないか?
type Bは役に立たないぞ

867 名前:デフォルトの名無しさん [2022/11/22(火) 21:58:13.24 ID:s23xOfAqp.net]
enum 張りなおせばよかばい

868 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 00:07:27.78 ID:6lN/+0f80.net]
>>863
enumB(1〜5)を受け入れるところは当然enumA(1〜3)も受け入れたいわけだが
これを認めると親クラスが子クラスに変換できることになる

>>865
せめてenumからenumへの暗黙変換定義できればなぁ

結局全部再定義して、int(元の数値)介して変換とか
それならもとからintずらずら並べたほうが良いかという

869 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 00:09:25.48 ID:GHFjAPMfd.net]
>>866
ああ、確かに間違いだな
&じゃなくて|だ

870 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 01:13:39.40 ID:w1dmgQVP0.net]
な、enumがクソなせいで
クラスの継承までクソになってるだろ
早くenumの継承できるようにしろよ
これができなくてどーすんのよ

って機能な実は



871 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 01:27:51.47 ID:mCXmHJvQ0.net]
まさに鬼の首を取ったよう

872 名前:デフォルトの名無しさん [2022/11/23(水) 06:34:20.68 ID:3geqF3we0.net]
クラス内に書かなきゃいい

873 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 08:51:16.99 ID:g5bfG+kA0.net]
>>865,868
だから俺が欲しいのは継承じゃなくて列挙子の追加って言ってるだろ
enum B: A {B1, B2}; だと継承と間違えると言うなら別の構文でもいい
ベースの定義を引き継いで定義できればいい

874 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 11:31:55.12 ID:hhL0Iwa90.net]
enum継承を実装するならまずはstruct継承を実装しないといけない
そして値型の継承をバンバン行うC++ですらenum継承はサポートされてないから諦めるんだな
とは言え.net standard2以上ならソースジェネレーター使えるんだからC++のマクロ実装よりも堅牢にenum継承を叶えられるのがC#

875 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 12:09:29.79 ID:A1o24w6O0.net]
enumの継承なんて欲しいと思った事一度も無いわ

876 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 12:14:49.51 ID:w1dmgQVP0.net]
>>875
状態遷移をするものを書いたことないからだろ
書くと一発で不満が出る
仕方なくenumで定義したステータスを
const intに直す作業をすることになる

877 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 12:51:02.69 ID:Gf+fcBNM0.net]
変性的にどうなんかな?
基底enumを要求するところに派生enum渡して大丈夫?

878 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:10:21.66 ID:HMCqpO+TM.net]
>>876
それ設計大丈夫?
コード上のコンテキストで十分なものまで状態にしちゃってたりしない?

879 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:31:54.09 ID:w1dmgQVP0.net]
>>878
そんなの問題じゃねぇじゃん
適切な状態遷移のクラスを作って
継承するとenum使えないんだから

880 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:34:04.83 ID:w1dmgQVP0.net]
c#のenum周りを作ったやつは
状態遷移も作ったことがない
クソってだけ
まあ、言語開発に状態遷移なんて
いらんだろし
知らないのも無理はない
ってだけの話でしょ



881 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:34:28.41 ID:63Gynabdd.net]
元での状態A,B,C
派生1で状態A,B,C,D
派生2で状態A,B,C,E
派生3で状態A,B,C,D,E

基底に追記するだけで済みそうだけど
わざわざパスタを希望するか

882 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:41:09.59 ID:GkNkmjh5M.net]
まず継承出来る言語を挙げてくれないとどんな設計を求めてるのかわからん

883 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:44:23.94 ID:w1dmgQVP0.net]
>>882
状態遷移作ったことねぇやつは遠慮してくんない?

884 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:55:25.91 ID:EqePYP8Fp.net]
初心者質問スレでいつまでいきがってんだか
公式にいしゅー投げとけよ

885 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:04:53.83 ID:Gf+fcBNM0.net]
>>879
継承したクラスで遷移する状態を拡張するのはいいとして、そこにenumも派生して使おうってのが
設計として間違ってるんじゃね?

886 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:18:05.41 ID:w1dmgQVP0.net]
>>885
そしたら状態はどうやって定義するの?

もちろんenumではない
ステータス用の型が必要っていう意見ならわかる
現状enumしかないってだけ
statetype型なんてできたらそれはそれでよい
enumの拡張だと>>877の問題がヘタクソがたくさんいる職場では問題になりそう

887 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:28:50.84 ID:eUenOEMN0.net]
状態推移ってstate machine?
enumでやんの?

888 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:33:23.73 ID:Gf+fcBNM0.net]
>>886
enumを派生するんじゃなくて別のenumを使う。

889 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:42:16.47 ID:fS1C7GFxa.net]
アスペが大暴れしてるな

890 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:49:08.23 ID:eUenOEMN0.net]
もしかしてHierarchical Finite State Machinesをenumでやろうという話?
ちょっと見た事も聞いた事もないので興味あります



891 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 15:18:56.76 ID:hhL0Iwa90.net]
>>880
逆にどの言語ならあるんだい?
C++なんてC#で言うところのEnum.GetValuesやEnum.GetNamesすら標準サポート無しだぞ
テンプレート黒魔術使ってコンパイラに超負荷をかけて実装できなくもないが

892 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 15:22:25.48 ID:hhL0Iwa90.net]
さっきも言ったけどソースジェネレーター利用したらかなりトリッキーなこともコンパイルセーフに行えるんだから騒いでる暇あったら作れば良いのに

893 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 15:24:55.83 ID:fS1C7GFxa.net]
enumの使い方も知らないやつにソースジェネレータとか無茶言うなよ

894 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 15:45:58.22 ID:Z18k9Xb90.net]
状態の管理は >>881 じゃだめなのかな。
自分も昔は継承したがってたけど、結局 893 みたい基底に追記するようになったんだよね。

enum をシリアライズすると int 扱いになるから、複数のクラスで継承して使う場合に、ほかのクラスの enum 定義を把握しておかないと危ないケースがあるような気がするんだけど。

895 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 16:01:46.11 ID:zunuLtNb0.net]
enumはCから受け継いだものだからこの設計についてC#を責めるのがまずアホ

enumの主な使いみちは値を限定することだ
要するにintの値を引数にしたいがその値の種類は3種類に限定したい、それ以外の値を渡そうとしたらコンパイルエラーにしたい、そういう時にenumを使う
その関数は引数として3種類しか渡らないことを保証されてるから無理やり他の値を渡した際には未定義動作になる

enumが継承できてポリモーフィズムが効くとすれば3種類の値しか来ない関数に普通に他の値を渡すことができてしまうだろw

なんでenumを使いたいか知らんけど使い方間違ってるからenumをやめて正しい方法を使え
以上

896 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 16:34:31.63 ID:Z18k9Xb90.net]
すげー納得出来る理由が来た。w
感謝。

897 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 16:53:35.93 ID:g5bfG+kA0.net]
まだ継承とか言ってるアホが居るのかw
今までのenumの機能だと継承なんてできても意味ない
継承したいたらenumの各値にメソッド定義出来るようにするとかぐらいの機能追加しないとな

898 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 17:19:16.06 ID:w1dmgQVP0.net]
>>895
でもまさに状態遷移の状態の定義なんてenumの出番だと思うんだけど
ここでこいつ役に立たなかったらほか何に使えるのってぐらい
ちなみにc++でこの辺悩んだことないなぁと思ったら#defineで書いてたわ

899 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 17:26:51.44 ID:LfUozzif0.net]
enum A {A1, A2, A3};があるとして
enum B: A {B1, B2}; としたい理由は何なの?
単に記述量を減らしたいだけ?

AとBは違うデータドメインだから違うenumにするわけなので
enum B: {A1, A2, A3, B1, B2};として新しく定義するか
元のenum Aを拡張するものだと思うけど

900 名前:デフォルトの名無しさん (ワッチョイ ff07-1oEr) mailto:sage [2022/11/23(水) 17:57:30.88 ID:zunuLtNb0.net]
>>898
なぜそこでenumの出番だと思ったのか
明らかに違うしどこで使うかはたった今説明しただろw
お前の設計はおかしいと何度も言われてるのに頑なに耳をふさいでるからできないんだぞ



901 名前:デフォルトの名無しさん (ワッチョイ ff07-1oEr) mailto:sage [2022/11/23(水) 18:00:35.30 ID:zunuLtNb0.net]
つか状態遷移で通じると思うところからやめろ
状態遷移の実装なんて何種類もあるわ
最終的に何がしたいのか言葉で説明できないやつは自分のやりたいことをプログラミング言語に直すことすらできんぞ
一般的なステートマシンでいいのか?

902 名前:デフォルトの名無しさん (ワッチョイ e201-IwB9) mailto:sage [2022/11/23(水) 18:07:41.13 ID:g5bfG+kA0.net]
>>899
例えば標準はenum A {A1, A2, A3};の状態しかないけどオプションつけたらenum B: A {B1, B2};と増える
違うオプションつけたらenum C: A {C1, C2, C3, C4};と増えるとか

903 名前:デフォルトの名無しさん (ワッチョイ e201-IwB9) mailto:sage [2022/11/23(水) 18:09:35.33 ID:g5bfG+kA0.net]
>>901
enumの話が状態遷移の状態を表すために使ってると分からないなら無理に話しに加わらなくていいぞ

904 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 18:32:51.60 ID:zunuLtNb0.net]
>>903
お前の言う状態遷移が何を指してるか言わないならお前の脳内かチラシの裏で処理しとけ
ステートマシンなら普通にインスタンスのパターンマッチングが使えるからそれがわからなきゃ無理してプログラミングの話に加わろうとするなよw

905 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 18:33:43.64 ID:zunuLtNb0.net]
多分switchが数値や文字列にしか使えないと思ってるド素人なんだろ?w

906 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 18:35:31.89 ID:zunuLtNb0.net]
switchが使いたいからenumなんだろ?w
おい正直に言ってみろよw

907 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 18:41:28.03 ID:Gf+fcBNM0.net]
なんか変なのが2人に増えた

908 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 18:47:35.71 ID:eUenOEMN0.net]
デザインパターンのステートマシンは登場しないような気がする

909 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 18:55:47.21 ID:LfUozzif0.net]
>>902
取りうる値すべて網羅するのがenumの存在意義
オプションがついたものが同じデータドメインなら
Aを拡張してenum A {A1, A2, A3, B1, B2, C1, … }とすべきでBやCは不要

異なるデータドメインとして扱いたいなら
enum A: {A1, A2, A3}; enum B: {A1, A2, A3, B1, B2}; enum C: {A1, A2, A3, C1, C2, C3, C4};とすべき
同じ名前のメンバーが存在しても異なる型で別のものだからそれぞれ定義するのは当たり前

910 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:03:20.20 ID:v/FrQePk0.net]
なんだろうフツーに連想配列じゃいかんの?



911 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:04:39.67 ID:Gf+fcBNM0.net]
typescriptその他の代数的データ型みたいに enum B = .A | B1 | B2 とやりたい気持ちはわかる。

912 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:05:08.39 ID:w1dmgQVP0.net]
>>909
それを言うならそもそも継承なんか使うなよって思う

まあ、コピペで貼ったほうが将来的に継承よりもうまくいってしまうケースはありまくったのも事実

913 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:07:17.68 ID:LfUozzif0.net]
>>911
TypeScriptでもenumでunion作ったりしないよ
できるけどやらない
やってる人がいるならモデリング方法が間違ってる

914 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:12:23.17 ID:zunuLtNb0.net]
状態遷移が何か良くわからずに最近知ったやつが唯一の状態遷移だと思ってるやつに何を言ってもむだだよ
教科書にenumを使えと書いてあったんだろうから

915 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:13:57.53 ID:Gf+fcBNM0.net]
ああすまん誤解させた。typescriptのenumを使う話じゃなくてtypeに読み替えてくれ。

916 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:28:19.96 ID:g5bfG+kA0.net]
>>904
enumの話だと言ってるのに...
お前パターンマッチング言いたいだけだろw

917 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:31:42.90 ID:UGK9R6GJ0.net]
現実のリサイクルにコストが3倍掛かるように
コード継承なんてフレームワーク利用者以外無意味だよ
自分で継承を考えながら書くことなんて時間の無駄でしかない
師匠とおだてられて弟子を育てて行くか、生涯わが道を探求していくかぐらい結果が違ってくる

918 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:31:45.39 ID:g5bfG+kA0.net]
>>909
> Aを拡張してenum A {A1, A2, A3, B1, B2, C1, … }とすべきでBやCは不要
Cしか変えないのに標準やBも再テストが必要になるよね

> 異なるデータドメインとして扱いたいなら
> enum A: {A1, A2, A3}; enum B: {A1, A2, A3, B1, B2}; enum C: {A1, A2, A3, C1, C2, C3, C4};とすべき
まあ君はそうすればいいんじゃね?

919 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:47:33.73 ID:zunuLtNb0.net]
>>916
enum使うのがおかしいとこれだけ何度も言われてるんだからどれだけボンクラでもそろそろ気づこうなw
お前の読んでる30年前の入門書が古いんだよw

920 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:52:20.51 ID:6lN/+0f80.net]
>>909
それenum Bで102種類登録しろって話だよな
まあそれが正しいのは分かるが

enum Bは完全にenum Aを内包していて100個は同じ
その状態でenum Aを拡張してenum Bを作りたいってのは間違ってるのか?
それともそういう状況でenumを使うのが間違ってると?



921 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:53:27.05 ID:zunuLtNb0.net]
>>920
間違ってると何度言われても聞く耳持たないなら聞くのやめたら?

922 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:54:47.89 ID:Gf+fcBNM0.net]
1. enum を継承できないのがおかしい。
2. enum を継承したいのがおかしい。
3. enum を使うのがおかしい。

1. と 3. がそれぞれ1人ずつだと思うのだが。

923 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:59:02.09 ID:zunuLtNb0.net]
>>922
enumを継承できるようにすると色々不具合が出るのは既に示した通り
だから継承したいやつがおかしいしできないのは当然

ここでenumを使うのも明らかに悪手でそれは本人も使いにくいと感じてるから薄々はわかってると思う

だけど薄々しかわからないのマジでアスペwww
使いにくい時点で気づこうぜw

924 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:06:27.70 ID:Gf+fcBNM0.net]
3. がお前さんひとりだと言ったつもりだったんだが。

925 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:08:52.61 ID:zunuLtNb0.net]
>>924
お前の言いたいことなんか知らんが、もっといい方法があるのに文法に文句を言いながらenumに固執するのはアホだと思わんか?w
おいおいこんな簡単な理屈がわかるやつが俺しかいないってどうなってんのこのスレ?w

926 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:16:59.47 ID:g5bfG+kA0.net]
>>924
相手すんな、最近継承とかパターンマッチング覚えたキッズなんだろ

927 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:18:28.43 ID:zunuLtNb0.net]
>>926
お前は早くenumの使い方覚えろよw
どう考えてもそこじゃないだろ
使いにくい時点で何か違うなーって思えよw

928 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:23:29.96 ID:zunuLtNb0.net]
intは小さい数値しか使えないから設計したやつは頭おかしいって発狂してるやついたらアスペかなって思うだろ?

俺から見たお前らってそんな感じになってるぞ
long教えてもらったなら覚えろよw

929 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:25:12.72 ID:Gf+fcBNM0.net]
>>925
お前さん一人だけ話がずれているんだと思うぞ。

930 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:27:17.57 ID:KUj2Jy2fa.net]
>>929
ズレてるのはお前の頭だよw
enumを状態遷移に使いたいという話で、継承できないから使えないといつまでも文句言ってるやつに教えてやってるだけだぞw
違う話したいなら気にせずしろよ
ヅラ直してから



931 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:34:56.61 ID:eUenOEMN0.net]
ステートパターンはポリモーフィズムを実現する方法だけど
ステートマシンは特にポリモーフィズムを実現してなくてもステートマシンになってしまうらしい
むしろポリモーフィズムのメリットがないのに状態遷移させるメリットが全く分からない

932 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:37:28.39 ID:KUj2Jy2fa.net]
ステートマシンかどうか聞いても状態遷移知らないのかの一点張りで答えないんだよなあw
いやマジでお前が状態遷移知らないのかとw
せめてその入門書のタイトルくらい書こうやw

933 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:39:42.92 ID:Gf+fcBNM0.net]
>enumを状態遷移に使いたいという話で、

状態を表すのに使う話なんだがこのへんがズレてるんだろうな。

934 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:42:35.56 ID:wPRe5xEXd.net]
>>922
4. 列挙子の追加がしたい
これが入ってくるから、さらにややこしい
こちらは臨機応変かなぁ

935 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 20:45:01.02 ID:KUj2Jy2fa.net]
>>933
だからそこに使うなって話だぞ
何度言えばわかるんだよ?
継承しなきゃ使えないとかいうイミフな条件ついてるのにどう使う気なんだそれ?w

936 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 21:04:41.04 ID:Gf+fcBNM0.net]
>>934
列挙子の追加というのがもともとやりたいことでそれは大前提だと思う。
そこに継承を使うのは無理筋だから他の手でやれということで。

937 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 21:17:19.11 ID:KUj2Jy2fa.net]
できないことを地面に転がってしたいしたいと泣きわめくのはプログラマーとは言えないな
ツールはそこに揃ってる
なら最適な方法をみつけるのがプログラマーの仕事だ

XY問題でいつまでも時間潰すのはただの無能
↓100回読んどけ
https://ja.wikipedia.org/wiki/XY%E5%95%8F%E9%A1%8C

938 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 21:23:05.30 ID:QiNG678ud.net]
>>984
>>922の1番がこれよね
ID:w1dmgQVP0
4番はこっち
ID:g5bfG+kA0

継承ではなく追加したい、みたいな話
包含に近いか?

939 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 21:24:33.41 ID:QiNG678ud.net]
安価ミス、、、
>>936宛ね

940 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 21:48:33.88 ID:+3bsKbsu0.net]
状態遷移ってよく知らんけど
必要に迫られるごとに似たようなことはやってるな



941 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 21:52:28.30 ID:+3bsKbsu0.net]
複数のテーブル値関数を full outer join すると面白い結果が得られるぞ
C#からは脱線するが。
機会があれば業務適用しようと思ってる

942 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 22:10:16.15 ID:Gf+fcBNM0.net]
>>935
有限状態を表現するのにenumを使うのはごく普通のことでそれに文句つけてるのはお前さんだけだが?
代わりにいったい何を使えと言うんだろう?

943 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 22:36:14.78 ID:Mu4NVEsX0.net]
状態ごとの派生クラス作ったほうが楽じゃないの
enumを使い回そうってのがまずよくわかんないわ

944 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 22:51:15.68 ID:v/FrQePk0.net]
Statelessとか見たら腰抜かしそう

945 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 23:43:15.34 ID:rAuww2HaM.net]
こんな機能があれば便利なのにってのは分からんでも無いけど
他の言語も含めた実装状況見れば少数派がデカい声出してるだけでしょ

946 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 00:18:19.16 ID:R18LG1aZ0.net]
>>942
何をってもう何度も書いただろw
enumを使うことでうまくいかないのが明白になったなら固執するのがアホ
オブジェクトやクラスはハッシュコード持ってるからenumでなくともswitchで処理できるし継承もできる
状態遷移状態遷移言ってるが教科書コピペするんじゃなく何をどうしたいのかを見据えてそれを実現しなきゃいけないぞw

947 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 00:21:21.14 ID:6EroDtbH0.net]
>>923
「継承」できないしするのはおかしいのは分かったから
enumを「拡張」したいって思う
拡張したいって用途にenumを使う
どっちがおかしいって?
その理由が単にenumがそうなってないってなら、そうあるべきだって議論はありえると思うが

>>925
別に俺は固執する気はないので、そういうことはできないってならできないで良いんだが
もっといい方法って具体的には?

948 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 00:24:41.88 ID:R18LG1aZ0.net]
例えばステートマシンのノードの一つをカーソルで参照するだけでカレントステートを表現できるしカーソルを動かせばそれはもう状態遷移だろ
ノードをオブジェクトにすれば種類によって違うプロパティやメソッドも持てる
ここにenumの入る余地などない
俺が何を言ってるかわからんとすればお前の勉強不足だから伏して教えを請え

949 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 00:54:01.50 ID:uAP2KDnH0.net]
enumて要素を限定するためのもんでしょ
拡張できたらぐちゃぐちゃじゃん
拡張した場合また別の名前なり必要で別ものになるでしょ

950 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 06:12:20.08 ID:0c/PVttN0.net]
>>949
ぐちゃぐちゃになるかどうかは使い方次第



951 名前:デフォルトの名無しさん [2022/11/24(木) 11:04:40.36 ID:Qxz+vdGfp.net]
クラス内でしか意味がないものを他クラスで判断に使う事自体が問題じゃね?

952 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 12:05:41.62 ID:I9DGq0SZa.net]
ひょっとしてと思って「unity 状態」でググッたら質問者のやりたいことがわかったわw
キャラクタを委譲じゃなく継承させる糞コードでなんちゃってステートパターンしたいんだなw
継承したキャラクタは行動できるパターンが増えるから状態もそれによって増やしたいということだろ
キャラクタを継承させるという糞仕様から直すのが正解だがそれをしたくないならenumじゃなくクラス使えよ
その状態だけ継承させればキャラクタの継承要らないんじゃねというところに気づけばみんなが何を言ってたかわかるようになるかもしれんぞ

953 名前:.NET MAUI HighSchool [2022/11/24(木) 12:19:13.38 ID:DPMQyp0E0.net]
Unityってクラスないの?

954 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 12:54:31.34 ID:P04N2b5w0.net]
継承とか拡張とは違うけど
enum StandardColor: {Red, Green, Blue}
enum ExtendedColor: {Teal, Turquoise}
とあった時にStandardColorとExtendedColorはそれぞれ個別の用途でも使うし
両方混ぜた集合からどちらか一方だけ選択する用途でも使いたいというのは理解できる

この場合はC#では言語的にはまだサポートされてない機能だから
サードパーティのライブラリを使うか自作するか

955 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 17:55:35.91 ID:88NBfQl90.net]
Unityでもポリモーフィズムを実現していればクラスのカプセル化が効くから
Stateで状態が切り替わる振る舞いは同じでもサブクラスで提供される機能を変えられる
ポリモーフィズムの実現が主題であってenumに依存するとかしないとかどうでもいい事な気がする

956 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 18:42:01.91 ID:EbMeVnega.net]
enumはポリモーフィズムに使うものじゃねえんだって話をしてるんだよw

957 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:12:02.78 ID:88NBfQl90.net]
仕様未使用はどうでもいいって言ってるのを何故復唱する必要があるのか?

958 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:17:15.44 ID:6EroDtbH0.net]
で、結局enumの使いどころはどこなんだ?

959 名前:デフォルトの名無しさん [2022/11/24(木) 19:20:15.08 ID:NYxgvrZS0.net]
人生で数々のenumに触れてきて今まで継承したいと思うenumに遭遇したことがない

私は思う
不完全なenumはそれ自体がバグなのだと

960 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:25:58.70 ID:88NBfQl90.net]
多次元配列やジャグ配列で事足りるからenumなんぞいらんでしょ



961 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:26:08.06 ID:1uxs9LdZ0.net]
使えるものを使うだけじゃんよ。

962 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:35:14.11 ID:JYVIn9dZa.net]
使うべきところでな
enumの使い方は既に教えた
そこじゃないのも何度も言った
これでわからないボンクラは何やってもだめ

963 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:38:42.34 ID:88NBfQl90.net]
色々混ざってる糖質がいろんな人間が言ったことを勝手に混ぜて
訳の分からない事を言ってるのか?

964 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:45:03.01 ID:JYVIn9dZa.net]
色んな糖質がバカなことばかり言ってるのに区別する必要あるか?w

965 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:46:38.20 ID:JYVIn9dZa.net]
見りゃわかるが俺はバカなこと言ったやつをバカにしてるだけだからそれにカチンとくるやつは同じバカだぞ

966 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:48:18.80 ID:88NBfQl90.net]
最初に質問した奴はステートマシンとステートパターンの区別もポリモーフィズムも知らない奴だったわけだが
何でも同じに見えるというならそうなのだろう 知った事ではないし興味すらもない
勝手に吠えてればいい

967 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 20:22:54.20 ID:JYVIn9dZa.net]
enumだと都合が悪いと質問者すら発狂してるのにいつまでもそれに固執するようなのは同じレベルでしかないだろw
都合が悪いなら使ったらだめと気づこうや

968 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 20:28:32.70 ID:88NBfQl90.net]
stateにenumは使わなくてもStatePatternは作れるし元々enumは必須ですらない
そもそもポリモーフィズムのメリットが分からない奴が面白い勘違いしてるだけだろ

969 名前:デフォルトの名無しさん [2022/11/24(木) 20:44:59.86 ID:x2utmnLfp.net]
サボらずに変換メソッド作る

970 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 20:47:40.88 ID:0c/PVttN0.net]
ステートパターンを覚えたてのキッズ同士の争いはよそでやってくれw



971 名前:デフォルトの名無しさん [2022/11/25(金) 09:34:35.22 ID:acUkwbrC0.net]
おまいらどんだけenumでスレ消費してんだよ

972 名前:.NET MAUI HighSchool [2022/11/25(金) 12:13:43.21 ID:RaC0ZQGe0.net]
モバイルSuicaにもReactiveUIとか使われてて
結構Rxってもう標準になりつつあるな
これ産み出したC#すごい!

973 名前:.NET MAUI HighSchool [2022/11/25(金) 12:20:00.08 ID:RaC0ZQGe0.net]
>>4
新スレ建てようとしたけど改行が多すぎるとかで無理だった…

974 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 13:18:08.44 ID:HZEumDr50.net]
立てといた

ふらっと C#,C♯,C#(初心者用) Part157
https://mevius.5ch.net/test/read.cgi/tech/1669349768/

頭のextend~は念のため1行増やしておいた

975 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 18:03:50.34 ID:b6uMxREG0.net]
おつかれー。
と言いつつ埋め。

976 名前:.NET MAUI HighSchool [2022/11/25(金) 20:24:56.18 ID:SQhAXb/D0.net]
>>974
サンキュー

977 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 20:27:00.27 ID:Ex0f5l5+M.net]
列挙型の元祖はPascal

978 名前:.NET MAUI HighSchool [2022/11/26(土) 08:34:50.54 ID:Ja07f46G0.net]
C#isGod

979 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 23:14:07.98 ID:MIxI7txJ0.net]
ume

980 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 21:44:09.15 ID:vwJLsOsN0.net]
bool isGod = true;



981 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 22:44:48.65 ID:SzIAkLME0.net]
うめうめ

982 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 23:09:55.94 ID:ozyLKgmt0.net]
梅火星

983 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 19:49:47.35 ID:KigkNyOs0.net]
いい加減埋めようよ。

984 名前:デフォルトの名無しさん [2022/12/09(金) 19:52:30.95 ID:lbVfgM7Sp.net]
埋め屋敷

985 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 20:08:40.11 ID:xaxCUQ87a.net]
埋めなくていいよ
次スレもいらん

986 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 20:10:07.88 ID:8ML1skqU0.net]
もッス

987 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 20:14:42.85 ID:LL4MqSod0.net]
誰も必要としてなくて草

988 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 20:16:37.36 ID:LL4MqSod0.net]
NullReferenceException

989 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 82日 5時間 37分 8秒






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<249KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef