■ このスレッドは過去ログ倉庫に格納されています
ふらっと 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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/18(日) 16:42:23.27 ID:lQR3ujpZ0.net
- 書いてる通り1行ぶんは消えるからね 毎回増やさないといけない
立て直しはしなくていい、大丈夫
次スレ立てるときに気を付けないといけないなーと
- 10 :デフォルトの名無しさん :2022/09/18(日) 16:43:34.75 ID:VjUDO6tf0.net
- なるほどサンクス
- 11 :デフォルトの名無しさん :2022/09/18(日) 16:44:45.13 ID:aznVlwJJa.net
- >>5
立てる時に消費されるから増やさなきゃいけないんだよ
5chは仕様の古さが目立つな
今時シフトJISだったり1000レスまでだったりメアド欄があったりそこにsageを書いたり
- 12 :デフォルトの名無しさん :2022/09/18(日) 17:39:41.49 ID:eBtB+6XZ0.net
- >>3
ちんぽ!まで読んだ
- 13 :デフォルトの名無しさん :2022/09/18(日) 17:43:02.64 ID:a87PubfG0.net
- 読んだんだ(笑
- 14 :デフォルトの名無しさん :2022/09/18(日) 17:44:39.84 ID:eAqQvdrB0.net
- ReDosにもならない
- 15 :デフォルトの名無しさん :2022/09/19(月) 12:44:07.38 ID:bKWC7nbK0.net
- «許可»をクリックして、ロボットではないことを確認してください!
- 16 :デフォルトの名無しさん :2022/09/19(月) 15:30:11.92 ID:t+9kOvGj0.net
- ポチッとな
- 17 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/25(日) 00:59:16.75 ID:Y7mttA55M.net
- XAudio2
- 23 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/25(日) 02:10:21.67 ID:33uw2yCZH.net
- この質問者、前スレで就職相談してた27歳の人じゃね?
なんとなく「mauiで」とか条件後出しされそうな悪寒
- 28 :デフォルトの名無しさん :2022/09/25(日) 02:29:37.09 ID:BeOzTuvS0.net
- 邪推はやめてくれよブラザー
- 29 :デフォルトの名無しさん :2022/09/25(日) 04:18:13.47 ID:kQGcz7Hc0.net
- dllをプロジェクトの参照に入れずに、実行時に動的に読み出して内部のメソッド実行やインスタンスの生成をしたいのですが可能でしょうか?
- 30 :デフォルトの名無しさん :2022/09/25(日) 05:05:25.63 ID:QuKarKAJ0.net
- >>29
可能です
- 31 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/25(日) 07:46:43.94 ID:ZSqiS99C0.net
- dll実装が先に存在してるなら、参照で先に作っておいて、
実行時にこけたらAssembly.LoadFileとかするのが普通かな。
dll実装が不定ならAssembly.LoadFileで読んで、dynamicで動かすことになるが
結構不安要素でかい。
Reflection使ってメソッドの実装のありようの確からしさは実行中に確認する必要がある。
interfaceなりでちゃんとdll側を縛ってあるのがいちばんいいけどね。
- 34 :デフォルトの名無しさん :2022/09/25(日) 18:52:10.05 ID:YHbagUeLa.net
- どこの普通なんだか
- 35 :デフォルトの名無しさん (アウアウウー Sa43-mISd):[ここ壊れてます] .net
- dllの動的ロードしたいならMEF使え
https://learn.microsoft.com/ja-jp/dotnet/framework/mef/
- 36 :デフォルトの名無しさん :2022/09/26(月) 06:17:01.60 ID:4jeN/07Z0.net
- プラグインシステムならまだしも、dllの動的ロードでMEFなんか使わんが...
- 37 :デフォルトの名無しさん :2022/09/26(月) 12:27:47.38 ID:6iA7KcBP0.net
- そういうのをプラグインと言うんだぞw
プラグインじゃなきゃ普通に参照すればいい
- 38 :デフォルトの名無しさん :2022/09/26(月) 12:35:43.49 ID:6iA7KcBP0.net
- あ、そうか、もしかして参照したdllはアプリ起動と同時に読み込まれると思ってるやついるのか
だから参照しないようにしてんの?w
- 39 :デフォルトの名無しさん :2022/09/26(月) 15:03:37.01 ID:4jeN/07Z0.net
- 開発時は参照では組むが、実際の実行環境では
実行の基点となるexeとは別の場所にdllが配置されてるとかもあるからなぁ。
まあ質問者が何やりたいかは明確にしていないからなんとも。
dllを遅延ロードしたいだけなら、上にあるように
普通に参照で組んで、実行時にdll無いと必要になるステップに
到達したらエラーになるから、それに備えて
AssemblyResolverに無かったらこの場所のこのdll読めと指示しとけばいいだけ。
これも上に書いた通り。
- 40 :デフォルトの名無しさん :2022/09/26(月) 15:46:38.31 ID:T6INyDl80.net
- MAUI君とマウントじじいはID変わってもすぐ分かるな
- 41 :デフォルトの名無しさん :2022/09/26(月) 17:18:58.59 ID:6iA7KcBP0.net
- いつも論破されて悔しそうなやついて草
- 42 :デフォルトの名無しさん :2022/09/26(月) 17:21:26.07 ID:6iA7KcBP0.net
- >>39
さすがに必須dllを別管理するのは筋が悪い
dll hellを招くアンチパターンだぞ
20年前にはみんなやめてるからそろそろ知識をアップデートしよう
- 43 :デフォルトの名無しさん :2022/09/26(月) 20:11:02.71 ID:4GKr4tPoM.net
- プラグインスタイルにする場合は開発スタート時点から外部に公開する用のinterfaceを
別プロジェクトにする必要があるからお勧めしない
アプリプロジェクト
公開用コモンプロジェクト
プラグインプロジェクト
こういうのを含んだ感じになる
c++はこういうのが柔軟でやりやすい
C#はあまりプラグイン開発に向いていない
- 44 :デフォルトの名無しさん :2022/09/26(月) 20:15:47.43 ID:w7MQedDGM.net
- んなことはない
C#であまりプラグイン的な機構が使用されないのは、C++に比べて広く一般的に使用されるアプリケーションが少ないのと、
ビルドが簡単高速なために全部リビルドしたほうが早いからだよ
- 45 :デフォルトの名無しさん :2022/09/26(月) 20:16:31.39 ID:6iA7KcBP0.net
- あら捜しの結果、たかだか一つ数分で作れるプロジェクト分割することを欠点と言い始めたかー
- 46 :デフォルトの名無しさん :2022/09/26(月) 20:17:49.62 ID:4GKr4tPoM.net
- 全くclassなどを受け渡ししない場合を除いて通常は
アプリプロジェクト
公開用コモンプロジェクト
というソリューションで開発してプラグインは
公開用コモンプロジェクト
プラグイン個別プロジェクト
で開発
公開用コモンプロジェクトが分厚くならないようにinterface中心にする
- 47 :デフォルトの名無しさん :2022/09/26(月) 20:19:44.63 ID:4GKr4tPoM.net
- 粗さがし?
普通に作ると分かることだが…
c,c++はゴミみたいな存在だがプラグイン作る時は.hやhpp配るだけでやりやすいことが多い
- 48 :デフォルトの名無しさん :2022/09/26(月) 20:21:25.82 ID:4GKr4tPoM.net
- 重量級アプリ作っててプラグインの仕組みを導入したくなった場合
かなり面倒
dynamicにするのは無し
- 49 :デフォルトの名無しさん :2022/09/26(月) 20:57:57.39 ID:vjnVDv0A0.net
- classの受け渡しなんて言ってる時点でもう...
- 50 :デフォルトの名無しさん :2022/09/26(月) 21:43:04.31 ID:4GKr4tPoM.net
- じゃあ現実的なラインで話せよ
俺が書いた以外で実践的なプラグインを合理的に作る方法をさ
レベル低いのにしゃしゃって来るんじゃない
- 51 :デフォルトの名無しさん :2022/09/26(月) 21:58:39.65 ID:6iA7KcBP0.net
- 20年前の知識でイキるのは恥ずかしいぞw
- 52 :デフォルトの名無しさん :2022/09/26(月) 22:09:28.79 ID:4GKr4tPoM.net
- >>51
話が見えてないんだな
お前がここで一番の馬鹿だ
これは間違いない
対案も出せない
しかもお前はジジイだな
筋が悪いと言うワードセンス
20年前のDLLの話をしてるし
- 53 :デフォルトの名無しさん :2022/09/26(月) 22:43:33.82 ID:n/I9g/yq0.net
- >>42
必須じゃないdllでやるんだろ。
ハードウェアなどの環境に依存するdllとかな。
- 54 :デフォルトの名無しさん :2022/09/26(月) 23:44:58.22 ID:6iA7KcBP0.net
- >>53
そういうのは参照できないから(あるいは不要なものまで全部参照する必要があるから)インターフェースがいる
プラグインがベストプラクティス
- 55 :デフォルトの名無しさん :2022/09/27(火) 08:07:21.08 ID:/UUTRmF20.net
- プラグインはプラグインのインターフェースに合わせて実装するんであって
既にあるdllを単に動的バインディングするのとは別物だな。
- 56 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/27(火) 09:32:49.82 ID:LsBo1VKG0.net
- >>55
参照しろよw
- 58 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/27(火) 10:48:09.96 ID:SwtBqNyR0.net
- >>58
Func<>やAction<>がだめってことはデリゲートの引数指定でrefがだめってことかと思い込んでましたが違うんですかね。
試してみます。ありがとうございました。
- 61 :デフォルトの名無しさん :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):[ここ壊れてます] .net
- できました。
>>61そういう泥臭い実装だったのか・・・ありがとうございます。
最初からdelegateで書けばよかった。
- 63 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/27(火) 15:56:16.12 ID:SwtBqNyR0.net
- 上のCallbackTest2はCallbackTestの間違いです
- 65 :デフォルトの名無しさん (ワッチョイ c707-mISd):[ここ壊れてます] .net
- バグって言うかスクリプトブロックを渡してるからだろうな
- 66 :デフォルトの名無しさん :2022/09/27(火) 16:20:55.11 ID:LsBo1VKG0.net
- ていうか参照渡しじゃなくHashSetを使ってやりとりするんじゃいかんの?
- 67 :デフォルトの名無しさん :2022/09/27(火) 16:23:37.50 ID:LsBo1VKG0.net
- HashSetじゃなかった
Hashtableだ
- 68 :デフォルトの名無しさん :2022/09/27(火) 16:32:12.76 ID:cIZHSBt80.net
- structにこだわる意味はなさそうだしそれならrefも必要ないし
そもそもFuncの返値にすればいいんじゃないの的な
- 69 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/27(火) 16:41:08.41 ID:J8MleXan0.net
- >>63
普通に
bState1: True
True
False
bState1: False
ってなるけど?
$PSVersionTable.PSVersion: 5.1.19041.1682
- 71 :デフォルトの名無しさん :2022/09/27(火) 16:45:59.80 ID:LsBo1VKG0.net
- >>59
Prismは大袈裟すぎるがMVVMを使うなら何か一つフレームワークは必須
CommunityToolkit.Mvvmいいぞ
必要な機能は揃ってるのにシンプルで学習コストが低く軽い
これで慣れてからPrismに移ってもいいし仕事じゃなきゃ移らなくても何も問題ない
- 72 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/27(火) 16:58:10.34 ID:SwtBqNyR0.net
- >>69
わざわざC#でやるからには少しでもパフォーマンスを上げたいので、
C#側でハッシュとかPSObjectで文字列のプロパティを作って渡すとかは極力避けたいのです。
>>70 >>72の仰る通りclassで渡してるので正常に動くやつです。structに変えて試してください。
- 75 :デフォルトの名無しさん :2022/09/27(火) 17:03:06.67 ID:SwtBqNyR0.net
- ちなみにテスト結果は
値の参照渡し× >>63-64
参照の値渡し○
参照の参照渡し○
でしたので、コンテナを渡す限りではrefは必要ないですね。
- 76 :デフォルトの名無しさん :2022/09/27(火) 17:04:20.64 ID:LsBo1VKG0.net
- >>74
そんなんでパフォーマンス上がらんぞ
PowerShell使ってる時点で無意味だし計測しても誤差が大きすぎて差は出ない
スクリプトブロックをデリゲートに入れるための代理関数とか中で作られてるからな
- 77 :デフォルトの名無しさん :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):[ここ壊れてます] .net
- >>72
ああ、すまんちゃんと読んでなかったわ
まあ、仕様だろうね
変更可能な値型は避けろって書いてある
❌ 変更可能な値型を定義しないでください。
(... 中略 ...)
また、一部の言語 (特に動的言語) では、ローカル変数であっても逆参照されるときにコピーが作成されるため、変更可能な値型の使用で問題が発生します。
https://learn.microsoft.com/ja-jp/dotnet/standard/design-guidelines/struct
普通にクラスで作ればいいだけ、てかPowerShell使ってる時点でclass/structで細かいパフォーマンスチューニングしても無駄だと思うぞ
- 79 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/27(火) 21:45:06.74 ID:LsBo1VKG0.net
- https://qiita.com/shimamura_io/items/5a1c754914b864540bac
この手のめんどくさいトラブル抱える可能性残すくらいなら4.8使うかValueTuppleあきらめろよ
- 81 :デフォルトの名無しさん :2022/09/28(水) 08:17:08.29 ID:if0kFZkG0.net
- VS2012じゃC#コンパイラが全然タプルに対応できないからね
普通の構造体として扱うことはできるかもしれないが
- 82 :デフォルトの名無しさん :2022/09/28(水) 08:31:43.95 ID:qrxLeK0JF.net
- 読んでビルドするだけならVSCode使うほうがよさそうかな
- 83 :デフォルトの名無しさん :2022/09/28(水) 08:37:42.78 ID:ZrAf2Mbg0.net
- 学習オプションをGUIでも確認しやすいという意味でも
VSの方がはるかに向いてるが。
VSCodeが候補にあがるのはAzure使っててC#だけでなく
色々混じってる時くらいでしょ。
- 84 :デフォルトの名無しさん :2022/09/28(水) 08:38:04.69 ID:ZrAf2Mbg0.net
- 学習→GUI
- 85 :デフォルトの名無しさん :2022/09/28(水) 09:06:32.72 ID:FDPwu/KN0.net
- そこでQtですよ(嘘)
- 86 :デフォルトの名無しさん :2022/09/28(水) 10:26:54.48 ID:Jk2txA1W0.net
- QtやTcl/Tkとか名前は聞くけど誰も使っている人居ないんだよね
WinFormsより簡単なの出さないと日本では流行る気がしないw
- 87 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/09/29(木) 10:56:44.30 ID:ZDD9PwVa0.net
- >>88
#nullable enableにすると、そのプロパティーを hoge? にしないとワーニングが出てくるね
- 90 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/01(土) 08:39:35.64 ID:EDStmk6M0.net
- ブラウザの「名前をつけてページを保存」をWebview2でやりたいのですが、無理ですかね?
stream で読み込むくらいしか方法はないですか?
- 95 :デフォルトの名無しさん :2022/10/01(土) 08:48:17.73 ID:2B0IsOOc0.net
- >>94
それはブラウザの役目であってHTMLをレンダリングして表示するWebViewの役目じゃない
スマホのブラウザにはそんな機能ないだろ
- 96 :デフォルトの名無しさん :2022/10/01(土) 09:34:14.17 ID:EDStmk6M0.net
- >>95
そうですよね
WebBrowserにはWebBrowser.ShowSaveAsDialog メソッドがあったのですが・・・
- 97 :デフォルトの名無しさん :2022/10/01(土) 09:40:46.42 ID:Vj0oK+Fa0.net
- Chromeとかのダイアログも結局はWindowsならshell32のSHBrowseForFolder利用したりとOSの機能使ってるだけなんじゃないの?
- 98 :デフォルトの名無しさん :2022/10/01(土) 10:43:04.40 ID:EDStmk6M0.net
- >>315
予想で来ていたなら大儲けしたんだろ
ついでにそのスクショもうぷ
- 99 :デフォルトの名無しさん :2022/10/01(土) 10:47:28.56 ID:HrxhgRpA0.net
- >>98
おまえの予想のほうがスゲェ!w
- 100 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/01(土) 11:47:25.93 ID:EDStmk6M0.net
- HTMLだけだとcssやjsが含まれていないので
落としたHTMLを表示するとまともに表示されない問題が発生してしまいます
ブラウザの「名前を付けて保存」は完璧に保存されますのでそちらが使いたいです
- 104 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/03(月) 22:52:42.56 ID:5XdXjLTq0.net
- doubleにTryParseした値を別な変数に入れたいけど、もっと素直な書き方ないかな?
var value = double.TryParse(str, out dbl) ? dbl : dbl;
- 119 :デフォルトの名無しさん :2022/10/03(月) 22:56:32.76 ID:tDVewfT+0.net
- >>118
なんだその無意味な三項演算子
- 120 :デフォルトの名無しさん :2022/10/03(月) 22:57:43.85 ID:tDVewfT+0.net
- >>117
型引数なのか要素なのかモデルなのか何のことを言ってるのかわからん
- 121 :デフォルトの名無しさん :2022/10/03(月) 23:18:54.43 ID:rGUf1MZJ0.net
- 選択肢がめっちゃ多い中で1つ選ばせるコントロールって何が良いですかね?
80項目くらいあるのでコンボボックスはNGになりまして。
選択内容は 数値:文字列 で表示したいです。
- 122 :デフォルトの名無しさん :2022/10/03(月) 23:31:02.94 ID:SA/xrkif0.net
- >>121
何で決定するの?それ
何か見て決めるんでしょ?
それを画面に出せよ
- 123 :デフォルトの名無しさん :2022/10/04(火) 00:32:43.24 ID:7S0AjRuD0.net
- 立ち食いそば屋の券売機みたいにボタン並べればいいじゃん
- 124 :デフォルトの名無しさん :2022/10/04(火) 06:40:39.38 ID:b8uw2VbJ0.net
- >>119
我ながら意味不明だけど、TryParseした"dbl"を"value"に1行で代入する方法をこれしか思いつかなかった
どうやればTryParseの結果を式として返せるの?
- 125 :デフォルトの名無しさん :2022/10/04(火) 06:46:15.22 ID:Ls9e4TwG0.net
- >>124
失敗したときの戻り値どうすんの?
- 126 :デフォルトの名無しさん :2022/10/04(火) 06:46:54.63 ID:Ls9e4TwG0.net
- >>121
別画面
- 127 :デフォルトの名無しさん :2022/10/04(火) 06:56:27.63 ID:XU+NToANM.net
- double.TryParse(str, out var value)
- 128 :デフォルトの名無しさん :2022/10/04(火) 07:10:40.44 ID:qbIePR+RM.net
- >>124
メソッドにしろよなんでもできるぞ
- 129 :デフォルトの名無しさん (ワッチョイ 0307-CLHJ):[ここ壊れてます] .net
- >>126
ついでだが選択肢が80もあるなら検索ボックスも欲しいな
欲しいというか必須
別画面にせずともコンボボックスで検索するという手もある
- 130 :デフォルトの名無しさん (ワッチョイ ff01-d1zO):[ここ壊れてます] .net
- >>124
絶対に失敗しないなら単に double.Parse(str) でいいし、失敗する可能性あるなら失敗した時にどうしたいのかによるわな
- 131 :デフォルトの名無しさん :2022/10/04(火) 08:37:00.95 ID:83NgMl870.net
- >>121
高さある程度とったリストボックスでいいんじゃない
フォントダイアログのフォントみたいな
頭に数字付けるのはインクリメンタルサーチとの兼ね合いがあるが項目が日本語なら関係ないか
- 132 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/04(火) 23:58:06.92 ID:b8uw2VbJ0.net
- >>125 >>130
iniファイルからの読み込みなので失敗もありえて、その場合は0.0が期待値ですね
TryPaerse失敗でoutの方は0.0になるので、単純にoutの値が欲しいだけなんです
ラムダでもうまく書けないので、>>128の言うようにメソッドにするしかないですかね
- 142 :デフォルトの名無しさん :2022/10/05(水) 00:01:10.13 ID:KHa19VaR0.net
- >>141
double.TryParse(str,out double value) ? value : 0
- 143 :デフォルトの名無しさん :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):[ここ壊れてます] .net
- どうしても代入式じゃなきゃヤダってんじゃない限り>>127で十分なんだけど
- 146 :デフォルトの名無しさん :2022/10/05(水) 22:42:08.40 ID:UUeH3vvk0.net
- Convert.ToDouble...ボソッ
- 147 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/06(木) 18:19:06.66 ID:okBm6j3n0.net
- 知らんけどどのオブジェクトにメソッドを生やすかは見やすさ関係なしに選んだ方がいい
メソッドが増えすぎる場合クラスが肥大化しすぎて単一責任原則に反している可能性があるから他のクラスに分割できないかどうかを検討してみろ
- 150 :デフォルトの名無しさん :2022/10/06(木) 18:29:05.50 ID:l5eCu49d0.net
- スクリプト1つにここまで、みたいな目安はあるんでしょうか?
- 151 :デフォルトの名無しさん :2022/10/06(木) 18:39:38.40 ID:okBm6j3n0.net
- 無いよ
数じゃない
せっかく単一責任原則ってキーワード出てるんだから調べてみたら?
- 152 :デフォルトの名無しさん (ワッチョイ a359-eWb8):[ここ壊れてます] .net
- 了解です
問題が出たらそのときに対処します
- 153 :デフォルトの名無しさん :2022/10/06(木) 21:08:47.37 ID:g4tnGNpoM.net
- もう問題でてるやん
- 154 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/06(木) 22:44:56.92 ID:eGnFz/dY0.net
- ほとんど変わらんけど
x.HasValue ? x.Value ? 2 : 1 : 0;
- 156 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/06(木) 23:28:30.50 ID:okBm6j3n0.net
- ネタコードだけど
new bool?[]{null,false,true}.IndexOf(x)
- 158 :デフォルトの名無しさん :2022/10/06(木) 23:51:14.28 ID:E7iO37Ge0.net
- >>155
かっこつけてないじゃん
x.HasValue ? (x.Value ? 2 : 1) : 0;
- 159 :デフォルトの名無しさん :2022/10/07(金) 00:30:44.40 ID:5dN4BPEk0.net
- >>158
かっこが無くてもちゃんと動くよ
あった方が分かりやすくて良いけど
- 160 :デフォルトの名無しさん :2022/10/07(金) 02:06:25.47 ID:ICIDzMHN0.net
- その変態コードやるならメソッドにして手厚くコメント入れて欲しい
明示的にif文でデカデカと対応がわかるように並べて欲しい
一石二鳥なんか狙う場面じゃない
- 161 :デフォルトの名無しさん :2022/10/07(金) 02:08:27.00 ID:ICIDzMHN0.net
- そのイカれたクソ設計考えたやつの名前と設計書の項目番号も添えて
わかるように並べるべき
- 162 :デフォルトの名無しさん :2022/10/07(金) 03:43:01.87 ID:Y3Bhrpk2d.net
- 馬鹿は何でもかんでも短くすれば良いと思ってる
- 163 :デフォルトの名無しさん :2022/10/07(金) 07:30:32.84 ID:DG0Qp9kf0.net
- switch式って.NET Frameworkだと(というかC# 7.3までだと)使えないんだね
.NET FrameworkでC# 8.0以上に上げるのは推奨されないって見てビビった
- 164 :デフォルトの名無しさん :2022/10/07(金) 09:36:20.95 ID:Kp+8ZYZad.net
- 推奨されないというか、C#8.0以上では.NET Frameworkは公式にサポート外となった
仮にたまたま今動いてても明日.NET Frameworkのセキュリティパッチで突然動かなくなるかもしれないし、もちろんMSは修正しないよ
- 165 :デフォルトの名無しさん :2022/10/07(金) 11:14:52.33 ID:vnTjz+tv0.net
- まあ今出てる中ならどれでもいいわ
少し見にくいとしても読めないレベルじゃないから
- 166 :デフォルトの名無しさん :2022/10/07(金) 11:22:49.33 ID:HMB85mTQ0.net
- 忍者コードへの道
- 167 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/07(金) 20:37:29.02 ID:UqkGeV530.net
- >>167
笑いどころがわからんわ
- 171 :デフォルトの名無しさん :2022/10/07(金) 20:50:21.74 ID:WZglSwpR0.net
- >>170
よし。俺が解説してやろう
かっこいいコードがほしい
かっこがない→かっこつけた→格好つけた→格好いい
>>167 可哀想w
- 172 :デフォルトの名無しさん :2022/10/07(金) 20:56:43.70 ID:5dN4BPEk0.net
- >>167
なんかゴメン
- 173 :デフォルトの名無しさん :2022/10/07(金) 21:09:28.95 ID:UqkGeV530.net
- >>171
せめてカッコつけてないじゃん
って書いてほしいわ...
- 174 :デフォルトの名無しさん :2022/10/07(金) 22:02:05.67 ID:/3WJyx6k0.net
- どんまい、来世はいいことあるさ
- 175 :デフォルトの名無しさん :2022/10/07(金) 23:17:09.48 ID:US/4zJfp0.net
- >>167
強く生きて
- 176 :デフォルトの名無しさん :2022/10/08(土) 08:16:32.93 ID:jIH0D5Hw0.net
- オブジェクト内でバイナリファイルの内容を扱うとしたら、バイト型配列がよいでしょうか。ファイルストリームで吸い出してオブジェクト内で扱うつもりです。
テキストファイルでは、ストリング型か、ストリング型配列か、それともバイト型配列がよいでしょうか。処理のしやすさを考えるとストリング型に一気に吸い出すのが良いかなと思います。
- 177 :デフォルトの名無しさん :2022/10/08(土) 08:22:48.18 ID:dLvXgc/K0.net
- データをバイト配列で扱うのが都合が良ければバイト配列にするしそうでなければ型を作る
- 178 :デフォルトの名無しさん :2022/10/08(土) 11:01:05.54 ID:VFNuoQ0s0.net
- C#の正規表現が難しい・・・
文字列が特定パターンに一致したら、その一部をキャプチャして後方参照したいんだけど、やり方がわからん
具体的には下の感じで最初の数値群と2番目の数値群を取り出したい
Perlだとこのパターンマッチング後に$1と$2で取り出せるけど
if (Regex.IsMatch(str, @"^FIRST(\d+)_SECOND(\d+)$"))
- 179 :デフォルトの名無しさん :2022/10/08(土) 11:34:32.95 ID:pVnemZy6a.net
- IsMatchは結果を捨ててるぞ
Matchを使え
- 180 :デフォルトの名無しさん :2022/10/08(土) 11:53:56.88 ID:r7jgJ5YeM.net
- >>177
ストリング型に一気に吸い出すのが処理しやすいんだったらそうしたらいい
ストリームは全部一気に読むときの遅延が無視できなかったりメモリに全部乗らないような巨大なファイルを扱うようなときに使うもので、
全部一気読みで問題なく動くのならその方がシンプルで好ましい
バイト配列か文字列かは扱い対象のファイルがバイナリなのかテキストなのかに合わせればよいだけ
- 181 :デフォルトの名無しさん :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):[ここ壊れてます] .net
- visual studio使ってるなら色を見たらいい
色が薄いのは削除推奨
右クリックしたらリファクタリングメニューが出る
濃い色ならそのまま書いとけ
- 184 :.NET M HighSchool :2022/10/08(土) 15:43:59.89 ID:7fZ89p9v0.net
- thisは高確率で色薄くなるな
- 185 :デフォルトの名無しさん :2022/10/08(土) 15:49:28.50 ID:DAxJe8BN0.net
- this 必須のケースって引数と名前被ってる場合以外にあるっけ?
- 186 :デフォルトの名無しさん :2022/10/08(土) 15:53:41.70 ID:znbc6QnV0.net
- this.でわずかに候補が絞れるというメリットはあるがそのためにソース汚すのもな
- 187 :デフォルトの名無しさん :2022/10/08(土) 16:04:49.31 ID:m4cZArl90.net
- this使ってないと素人臭がするんだよなぁ
「こいつほんとに分かってんの?」って感じ。
thisは常につけろ、何があろうと。
- 188 :デフォルトの名無しさん :2022/10/08(土) 16:14:22.95 ID:dLvXgc/K0.net
- 逆に全部this書いてるのを見ると素人だからわからないんだなと感じる
- 189 :デフォルトの名無しさん :2022/10/08(土) 16:15:59.85 ID:8jUGKNkJ0.net
- それどういう理屈だw
- 190 :デフォルトの名無しさん :2022/10/08(土) 16:23:46.29 ID:dLvXgc/K0.net
- コードの記述量が減るように様々な工夫が凝らされているので、それを使わないやつは知らないように見えるというそれだけのことだが?
- 191 :デフォルトの名無しさん :2022/10/08(土) 17:07:26.31 ID:P5VjfrSW0.net
- >>183
色濃いっす
書いときます
- 192 :デフォルトの名無しさん :2022/10/08(土) 17:22:37.77 ID:XyWhvWPC0.net
- 可読性を考えるとthisを付けたほうがいい
- 193 :デフォルトの名無しさん :2022/10/08(土) 17:30:09.59 ID:f2a8Snt90.net
- 原則省略していいよ
基本的には人間の記述した字句解析の手間が少なくなる程コンピューターは速く処理できるべきであり
人間の意図や文脈を解釈できないインテリセンスがまだまだ糞ってことだ
- 194 :デフォルトの名無しさん :2022/10/08(土) 19:23:01.64 ID:5cV3My9p0.net
- >>192
this.で汚染されて逆に見辛くなるんだけど
- 195 :デフォルトの名無しさん :2022/10/08(土) 19:52:21.24 ID:gycPEQHX0.net
- なんかマトリョーシカみたいなクラスの記述を強制するライブラリ使ってると
this付けないと飛び越えて呼んでるときあって気が付かない不具合がかなり凶悪だった覚えがある
多分この取り決めはそーゆークソライブラリ使ったとき用だと思う
通常では絶対イランと思う
- 196 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/08(土) 23:20:51.72 ID:/uBMkTfW0.net
- まぁ、俺にとって見やすい·わかりやすいってのはvsの色分けの効果が大きいとは思うけど
- 199 :デフォルトの名無しさん :2022/10/09(日) 04:43:45.49 ID:hmHZpMGaa.net
- 色々なコード読むとthisなんてわざわざ書いてないよね
- 200 :デフォルトの名無しさん :2022/10/09(日) 04:45:35.54 ID:qX71Swpm0.net
- 世の中にはthisを書かないと読みきれないクソソースを書くやつがいるってことだな
- 201 :デフォルトの名無しさん :2022/10/10(月) 22:11:00.57 ID:eOE0tewq0.net
- USBデバイスを仮想COM接続し、SerialPortクラスで受信しています。バルク転送で約2Mbpsとなります。
デバイスからは60byteフレームが連続で送られてきます。DataReceivedでSerialReadして即抜けています。DataReceivedイベント発生時にバッファを確認すると、
60byte→120byte→…→60byte→(イベント発生まで時間が空いて)数kBとなります。
場合によっては内部バッファが溢れているようなのですが、イベントが待たされる条件が解らず困っています。助言いただけないでしょうか。
- 202 :デフォルトの名無しさん :2022/10/10(月) 22:41:58.46 ID:TjSk03hV0.net
- DataReceivedイベントを使わなければ良いんじゃね?
- 203 :デフォルトの名無しさん :2022/10/10(月) 22:46:51.58 ID:P58+Ol8v0.net
- C#でも書けるとは思うけど数MbpsのCOMポートの送受信はC/C++で専用スレッド用意して
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
した上で非同期でやり取りしないと取りこぼすだろうね
- 204 :デフォルトの名無しさん :2022/10/10(月) 23:06:15.87 ID:sJsMwDUU0.net
- >>201
とりあえずReadBufferSizeをでかくしとけばいいんじゃね?
- 205 :デフォルトの名無しさん :2022/10/11(火) 05:26:30.82 ID:0V0rCIqgM.net
- >>202
タイマー使ってポーリングですかね
>>203
kernel32.dllインポートでやってみます
>>204
試してみたんですけど、16384から上は実動作に反映されないみたいです
- 206 :デフォルトの名無しさん :2022/10/11(火) 07:20:01.01 ID:D4ywmAPt0.net
- どうせDataReceivedの中で重い処理をして取りこぼしてるんだろ
受け取ったデータは非同期でキューに入れて別スレッドで処理したらいい
- 207 :デフォルトの名無しさん :2022/10/11(火) 07:21:12.28 ID:VUbUiOFF0.net
- その前にSerialのフロー制御はどういう仕様なの?
こっちはPCだからよくても、相手があるんだから
- 208 :デフォルトの名無しさん :2022/10/11(火) 10:20:29.33 ID:w5Aa3OJKM.net
- USBはシリアルと言いながら実際パケットを送ってるからタイミングが微妙なんだよな
その都度無駄なやり取りが発生して即応性もなくなるし複数の送受信がまとめられてたり
デバイスずっと常にデータを送り続けてる状況を作るとか言う手法があるけど
C#向きではないかなと
- 209 :デフォルトの名無しさん :2022/10/11(火) 10:41:42.41 ID:w5Aa3OJKM.net
- USBデバイスにボタンみたいのがあって
押すと1離すと0送るとして
1,0,1,0,1,0
みたいにデバイスのユーザープログラム層が送っても
プロトコル層では間の,で
いまデータ受信中かな、送信回線空いてるかなとかデータを送りますよと言う確認など常に処理がある
タイミング次第では 10101,とまとめて送ったほうがいいなと判断されたり送信待ちしてたら平気でまとめて送ってくる
(当然ながらパケットより短い間隔で次を送ろうとしても不可能だし)
それで即応性が皆無になる
それを回避するにはストリーミングで常に状況を送り続けるかポーリングなどが有効だけど
他のUSBの帯域を圧迫してマウスの感度が悪くなったりキーボードの取りこぼしなどが起こる(IO処理なのでCPUを早くしても無駄)
- 210 :デフォルトの名無しさん :2022/10/11(火) 20:19:27.85 ID:hb9m45MO0.net
- >>208,209
つかそんなのCOMポートの層で吸収されてないのか?
シリアル通信で取りこぼすって、まずフロー制御がちゃんとできてないだけだと思うけど
- 211 :デフォルトの名無しさん :2022/10/11(火) 21:09:15.58 ID:qFJbGVDN0.net
- >>210
USBシリアルは基本的に垂れ流しするしかないよ
COM側は全二重に見えててもその下で動作してるUSBは半二重のホスト主導のパケット通信だからね
フロー制御用として用意されてるXon/Xoffも停止までに送信タイムラグが発生するから
目視できるような低速通信ぐらいしか役に立たないし、停止を許容できるデータなのかも不明だし
- 212 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/12(水) 07:23:04.46 ID:TyHUeGJp0.net
- まずメンバー変数を多用すること自体が
- 215 :デフォルトの名無しさん :2022/10/12(水) 09:29:45.13 ID:wUZHBRzyp.net
- 副作用のあるプロパティを作る方が悪い
- 216 :デフォルトの名無しさん :2022/10/12(水) 09:51:43.31 ID:TyHUeGJp0.net
- プログラミング用語で副作用というのはハードウェア出力や状態の再設定のことだからイミュータブルなプロパティは全部副作用があるんだぜ
- 217 :デフォルトの名無しさん :2022/10/12(水) 09:52:53.77 ID:TyHUeGJp0.net
- ✕イミュータブル
○ミュータブル
- 218 :デフォルトの名無しさん :2022/10/12(水) 09:58:11.07 ID:wUZHBRzyp.net
- そんな言葉遊びして楽しいか?
- 219 :デフォルトの名無しさん :2022/10/12(水) 10:03:53.44 ID:TyHUeGJp0.net
- 副作用がわからんと資料に書いてあることがわからなくてかなり困るぞ
- 220 :デフォルトの名無しさん :2022/10/12(水) 10:15:07.25 ID:wUZHBRzyp.net
- 俺が意図してない挙動は全部副作用だぁっ
- 221 :デフォルトの名無しさん :2022/10/12(水) 11:33:52.36 ID:PX0iq4dK0.net
- 質問です
DataGridViewで指定行までのスクロールを行いたいのですが、詰まっています
スクロール自体はFirstDisplayedScrollingRowIndexプロパティに値を代入して行えるのですが、スクロールバーのスライダー位置が最上位から変化しません
処理は、指定行を入力→DataSourceの更新→指定行へスクロールというように行っています
- 222 :デフォルトの名無しさん :2022/10/12(水) 11:38:03.47 ID:WbjgIxC2a.net
- スクロールバーを別のとこで作ってないか?
- 223 :デフォルトの名無しさん :2022/10/12(水) 17:04:14.81 ID:/871xKINM.net
- >>201
多重イベントでスレッドプール使い切りとかない?
- 224 :デフォルトの名無しさん :2022/10/12(水) 18:34:22.16 ID:PX0iq4dK0.net
- >>222
そのようでした
直接弄れそうにもないので、別アプローチでの画面更新を考えてみます
ありがとうございました
- 225 :デフォルトの名無しさん :2022/10/14(金) 19:57:10.42 ID:29TAKwyj0.net
- 初めてこの板で書きます。
プログラミングで対角化をしたいのですがよく分かりません。色々調べても自分がしたいことができないです。
やりたいことは、
任意の大きさの正方行列で固有値を求めたい
オイラー方程式を含む行列要素を計算したい
です。
どうしたらいいでしょう、、、
- 226 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/14(金) 20:39:27.04 ID:t5o5qpLS0.net
- だから言葉の意味を調べろよ
何をするのか自分で全くわかってないだろ?
「いい感じの」で調べられるわけないだろ
- 234 :デフォルトの名無しさん :2022/10/14(金) 21:01:32.89 ID:AnbCvpeg0.net
- >>225
言葉悪い人も多いが、ここは「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」だ。
Mathematica使えというのもその通り。もう少し知識つけて出直したほうが良い。
- 235 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/15(土) 12:59:39.43 ID:jiCek6V8M.net
- >>225
pythonやR使ったほうがいいよ
そのレベルで留まらずその先の用途を考えてもpython
どうしても連携したいならコマンドラインでpython実行して結果だけC#で貰うことも出来る
自分は画像認識をその手法を使ってやってる
- 238 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/15(土) 14:21:59.16 ID:TYEHa44m0.net
- Pythonと違って複文はインデントじゃなくブレースでまとめるから省略できるのは単文の時だけ
- 242 :デフォルトの名無しさん :2022/10/15(土) 15:23:51.31 ID:3+kTGvln0.net
- むしろPythonに{}つけたい
- 243 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/15(土) 17:28:20.76 ID:oepRuRjKM.net
- F#使えばいい
- 248 :デフォルトの名無しさん :2022/10/15(土) 17:29:58.76 ID:TYEHa44m0.net
- インデントでもひとまとまりになるぞ
むしろインデントむちゃくちゃなやつを排除できるから見易いまである
- 249 :デフォルトの名無しさん :2022/10/15(土) 17:47:40.19 ID:Ggc2td0l0.net
- >>248
そんな事はIDEにやらせりゃいいんだよ
- 250 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/15(土) 20:39:17.55 ID:2u2iBEwS0.net
- >>251
使いもしないのに文句だけ言うとかクレーマーかよw
- 253 :デフォルトの名無しさん :2022/10/15(土) 20:43:34.95 ID:71BCtDZc0.net
- >>252
Pythonに{}があったほうがいいとは誰も言っていないからもちつけ
- 254 :デフォルトの名無しさん :2022/10/15(土) 20:48:05.82 ID:71BCtDZc0.net
- あっ>>242がいた
忘れてくれ
- 255 :デフォルトの名無しさん :2022/10/15(土) 20:48:33.45 ID:onTnH2DB0.net
- あっても使わないから落ち着け
- 256 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/15(土) 22:23:32.44 ID:2u2iBEwS0.net
- >>257
お前の使う言語はみんな { } 使うのに
> どう考えても{}あったほうがいいだろ…
って意味不明なんだがw
- 260 :デフォルトの名無しさん :2022/10/15(土) 22:46:19.16 ID:tSskybGM0.net
- python には {} なくても通用してるんだから、あっちのユーザーさんには必要なものではないんだろう。
自分は {} あった方がいいからって理由もあって ruby とかもキライなんだが。
まあ好き嫌い言ってても仕方ない。我らは要望に応えるだけだ。
- 261 :デフォルトの名無しさん :2022/10/15(土) 22:59:00.35 ID:TYEHa44m0.net
- vb「begin endですが何か?」
- 262 :デフォルトの名無しさん :2022/10/16(日) 02:11:40.97 ID:IoSf1xr/0.net
- >vb
loopだったりnextだったりする箇所は別人が引き継いだのかな
- 263 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/16(日) 09:45:07.64 ID:zEVEZIxw0.net
- loop 使えるような Basic で関数ブロックを持たない奴なんてなくね?
てか、end はともかく begin なんてキーワードを持つ Basic も見たことないんだが
- 265 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/16(日) 10:21:36.83 ID:zEVEZIxw0.net
- >>265
.frm ファイルとかをあげるバカが出てくるかと思ってたらマジで出てきたw
今してるのは言語仕様の話な
あとVBに関数ブロックあるし老害はそろそろ黙っとけ
- 267 :デフォルトの名無しさん :2022/10/16(日) 10:23:41.83 ID:9H+50nm50.net
- 言語仕様だぞw
キーワードに見えんか?w
- 268 :デフォルトの名無しさん :2022/10/16(日) 10:24:56.25 ID:9H+50nm50.net
- あと初期のBASICに関数が無いという話をしてるんだから文盲は口を挟まない方が恥をかいて発狂しなくて済むぞw
- 269 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/16(日) 11:24:23.67 ID:1mPDcr2ta.net
- なんでVB.NETの話をしてるのにVBAのドキュメント見てるんだ文盲w
- 271 :デフォルトの名無しさん :2022/10/16(日) 11:25:30.01 ID:1mPDcr2ta.net
- あとなんで初期のキーワードの成り立ちの話をしてるのに一人loopの話をしてるんだ文盲w
- 272 :デフォルトの名無しさん :2022/10/16(日) 11:34:12.88 ID:7phLrZXmM.net
- >>268
残念ながら文盲は文字自体が読めない人のことだよ
学がなく漢字が読めない
ひらがなが読めない
そういう人
君は文盲が何か理解できてない
- 273 :デフォルトの名無しさん :2022/10/16(日) 11:35:46.69 ID:1mPDcr2ta.net
- アスペと言えば良かったということか
- 274 :デフォルトの名無しさん :2022/10/16(日) 11:35:53.13 ID:9tRg+VNh0.net
- >>1 が読めないもん同士なんだからどっちも消えろw
- 275 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/16(日) 11:52:27.38 ID:1mPDcr2ta.net
- >>1が読めないアスペはいつまでもアホなこと言ってないで消えろよw
- 277 :デフォルトの名無しさん :2022/10/16(日) 12:24:39.22 ID:zEVEZIxw0.net
- >>276
>>265に言ってやれよw
- 278 :デフォルトの名無しさん :2022/10/16(日) 12:25:47.33 ID:9H+50nm50.net
- 全く反省の色が見えないぞアスペ
- 279 :デフォルトの名無しさん :2022/10/16(日) 12:47:17.79 ID:zEVEZIxw0.net
- キーワードで恥かいて悔しいねw
- 280 :デフォルトの名無しさん :2022/10/16(日) 12:48:24.88 ID:1mPDcr2ta.net
- VB.NETの話にVBA持ってきて恥をかいたのがお前ということは言ったろw
いつまで寝言言ってんだスレ違い
- 281 :デフォルトの名無しさん :2022/10/16(日) 13:27:00.75 ID:zEVEZIxw0.net
- まだ、VB.NETとか言ってて草
英語も読めないバカ乙
- 282 :デフォルトの名無しさん :2022/10/16(日) 13:27:43.86 ID:9H+50nm50.net
- まだ恥をさらすんかいw
- 283 :デフォルトの名無しさん :2022/10/16(日) 13:53:22.51 ID:zEVEZIxw0.net
- キーワードバカ颯爽と再登場!
恥の上塗りのよかーんw
- 284 :デフォルトの名無しさん :2022/10/16(日) 13:54:32.92 ID:9H+50nm50.net
- 悔しいのはわかったからそろそろスレ違いということを理解して出ていけよw
- 285 :デフォルトの名無しさん :2022/10/16(日) 14:01:28.80 ID:zEVEZIxw0.net
- >>284
>>282 に言ってやれよw
- 286 :デフォルトの名無しさん :2022/10/16(日) 14:03:19.31 ID:9H+50nm50.net
- お前に言ってるんだよアスペw
言葉遣い同じだからすぐわかるわアスペw
- 287 :デフォルトの名無しさん :2022/10/16(日) 14:24:54.49 ID:zEVEZIxw0.net
- アスペとしか言えない恥曝し乙
そもそもid付いてるのに言葉遣いとか頭沸いてるのかよw
- 288 :デフォルトの名無しさん :2022/10/16(日) 14:27:09.03 ID:9H+50nm50.net
- まだ続けるのか
アスペはしつこいなw
だから他のスレでも軒並みアスペと呼ばれてるんだぞw
- 289 :デフォルトの名無しさん :2022/10/16(日) 14:45:38.60 ID:zEVEZIxw0.net
- >>288
>>288
- 290 :デフォルトの名無しさん :2022/10/16(日) 16:51:17.67 ID:SOkAGPqKd.net
- アスペ文盲 vs アスペ老害
初心者C#「ファイッ!」
- 291 :デフォルトの名無しさん :2022/10/16(日) 17:36:31.58 ID:smb+KIWw0.net
- >>272
文盲は「自分の名前の読み書きができるか」って基準です
- 292 :デフォルトの名無しさん :2022/10/17(月) 10:52:48.22 ID:EEvzrdC6M.net
- >>291
それは間違った知識だな
識字率が著しく低い人がいわゆる文盲
戦後まもなくアメリカのGHQは敗戦国日本は漢字教育が妨げとなっていると感じ
ひらがなや漢字を廃止しアルファベットを導入しようとした
そのために識字率の調査を行った
その結果漢字の読み書きができないものは2%だけなのでその案は却下された
井上ひさしの書籍では識字率の試験を受けた老婆の話が載っていて読み書きは出来ないが
たまたま自分の名前の漢字が含まれていたので正解ゼロにはならなかったと言う逸話が乗っていた
それが間違って覚えてるんだろう
- 293 :デフォルトの名無しさん :2022/10/17(月) 11:45:02.06 ID:uvkff8kK0.net
- >>292
世界中の文盲率を計測するために作られた世界標準の文盲の基準ですよ
あなたの言うような文学的基準では全ての国を平等に比較するのは無理ですね
- 294 :デフォルトの名無しさん :2022/10/17(月) 15:53:46.65 ID:4k1KVawh0.net
- ホリ工モン基準だと日本人の5割は文盲らしいぞ
だからユーチューブとかチクトクが流行る
- 295 :デフォルトの名無しさん :2022/10/17(月) 20:54:25.97 ID:9OAS6xxs0.net
- なるほどホリエモンは文盲ってことか
- 296 :デフォルトの名無しさん :2022/10/18(火) 00:44:28.00 ID:JpO0eTnpM.net
- >>293
そんな独自研究なんて聞いたことないわ
- 297 :デフォルトの名無しさん :2022/10/18(火) 02:02:12.75 ID:ngZCuxghM.net
- 「識字率が低い人」ってもう何もかもダメそうな表現やな……
- 298 :デフォルトの名無しさん :2022/10/18(火) 19:12:18.10 ID:PTCHOYVI0.net
- アメリカのスラム街の子供は、I no. とかそのレベルだぞ
日本は寺子屋文化で異常に高いだけ
- 299 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/18(火) 22:17:39.34 ID:HdYtkAV80.net
- 関数を作ったやつに聞くが良い
上はエラー
floatvalue.ToString(書式);
- 302 :デフォルトの名無しさん :2022/10/18(火) 22:30:07.73 ID:joOPF2hi0.net
- ヒント
ネームスペース
- 303 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/18(火) 22:36:04.52 ID:oAfMFtaG0.net
- 何がしたいのかわからん
その匿名クラスのオブジェクト作る意味あるか?
- 305 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/18(火) 22:49:27.13 ID:cuMhZa5Q0.net
- IT土方にはなりたくないんです!
スマートに書きたいんです
- 308 :デフォルトの名無しさん :2022/10/18(火) 22:50:05.56 ID:oAfMFtaG0.net
- やっぱり何がしたいかわからんな
select (tbl,fuga)でいいだろ
- 309 :デフォルトの名無しさん :2022/10/18(火) 22:59:42.55 ID:HdYtkAV80.net
- DapperのsplitOnだな
- 310 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/18(火) 23:03:47.75 ID:oAfMFtaG0.net
- Expressionで動的に検索って何だ
何がしたいかわからんと再三言ってるんだからまず何がしたいかを説明しなきゃ話にならんだろ
- 312 :デフォルトの名無しさん :2022/10/18(火) 23:05:30.50 ID:cuMhZa5Q0.net
- ぇ、だからやりたいのは>>303です
Expressionは質問の趣旨とずれます
- 313 :デフォルトの名無しさん :2022/10/18(火) 23:06:39.73 ID:oAfMFtaG0.net
- そうか説明したくないなら別に聞く必要ないわ
頑張れ
- 314 :デフォルトの名無しさん :2022/10/18(火) 23:09:54.15 ID:joOPF2hi0.net
- 動的にって、スクリプト書くしか無いんじゃね?
- 315 :デフォルトの名無しさん :2022/10/18(火) 23:10:51.98 ID:oAfMFtaG0.net
- もう触らなくていいぞ
- 316 :デフォルトの名無しさん :2022/10/18(火) 23:17:24.79 ID:9/f62YBx0.net
- >>303
jsのスプレッド構文みたいな感じ?
ちょっと違うか
- 317 :デフォルトの名無しさん :2022/10/18(火) 23:23:54.56 ID:cuMhZa5Q0.net
- >>316
ニュアンス的にはそんな感じですね。
ただ展開したいのは値じゃなくてプロパティの方なので、やっぱり動的プログラミングの範疇ですよね
- 318 :デフォルトの名無しさん :2022/10/18(火) 23:44:26.60 ID:sRZwLUu60.net
- C#でJavaScriptを実行する方法
アドレス省略
とかどうだろ?
ゲームだとLuaとかpythonよく使ってたな
自分は使える状態になったもんしかいじったことない
- 319 :デフォルトの名無しさん :2022/10/18(火) 23:47:40.60 ID:oAfMFtaG0.net
- なるほどパフォーマンスや保守性を無視していかに質問者の最初の問に矛盾しないコードを書くかという大喜利か
- 320 :デフォルトの名無しさん :2022/10/18(火) 23:54:23.64 ID:sRZwLUu60.net
- >>319
別に変な方法じゃないぞ
ゲームとかパフォーマンスに影響する部分はc++でゴリゴリ書くけど
そうでない部分はc#で
もうゲームシステム部なんて
全部pythonだったりしたぞ
ビジネスアプリでもこれ割とアリだと思うんだけどね
速度を求めてないときに型とか煩わしいだけで無駄だと思うんだよね
かと言ってDictionaryでやっちゃうと完全に型チェックなくなっちゃうし
- 321 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/19(水) 12:52:27.97 ID:rgBskw8B0.net
- YouTube のDeanin の動画では、
Ruby on Rails で、Three.js, Godot で、3D ゲームを作っていた
- 326 :デフォルトの名無しさん :2022/10/19(水) 13:56:06.53 ID:8/1xE7uxa.net
- オワコンと言われて久しいRailsがモダンと言われたのは何年前の話だろうか
- 327 :デフォルトの名無しさん :2022/10/20(木) 11:30:15.44 ID:PZrToWIo0.net
- >>299
違うぞ、きちんと話せて意思疎通もできるけど、単に文字が書けない知らないってだけ
日本にいたら、そんな人の存在は理解できないけど
- 328 :デフォルトの名無しさん :2022/10/20(木) 14:00:06.54 ID:EjoMYd4Ya.net
- (スラングだといつ気づくんだろう)
- 329 :デフォルトの名無しさん :2022/10/21(金) 20:36:11.47 ID:Uz/9j/Qf0.net
- プログラミンはどれだけきれいに書くかが大事なんでしょうか?
汚いとそれだけで頭がこんがらがります(´・ω・`)
- 330 :デフォルトの名無しさん :2022/10/21(金) 20:38:50.78 ID:cLyPMgkx0.net
- WOZは天才だけどプログラムが美しいかと言うと?
- 331 :デフォルトの名無しさん :2022/10/21(金) 20:39:28.61 ID:evL0t28u0.net
- >>329
設計レベルだときれいは必須
コーディングレベルだとVSに従ってるレベルであればOK
- 332 :デフォルトの名無しさん :2022/10/21(金) 21:45:05.81 ID:IBSByhnA0.net
- 性格いい人見つけてレビューしてもらう
- 333 :デフォルトの名無しさん :2022/10/21(金) 22:27:13.65 ID:whbnSZB/M.net
- >>329
その通り
ただ君の考えるキレイと優れた開発者の考えるキレイが同じとは限らない
- 334 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/22(土) 00:58:20.33 ID:SCNLWEI10.net
- 可読性が低いことで有名なPerlを受け継いだRubyの可読性が高いって何の冗談なんだか
- 337 :デフォルトの名無しさん :2022/10/22(土) 01:04:16.52 ID:sdxg/Y9t0.net
- なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
- 338 :デフォルトの名無しさん :2022/10/22(土) 01:04:55.75 ID:SCNLWEI10.net
- 自分に言い聞かせてるのか
- 339 :デフォルトの名無しさん :2022/10/22(土) 04:59:53.84 ID:g5VlGNlPa.net
- >>337
ほんこれ
- 340 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/22(土) 10:57:52.04 ID:sdxg/Y9t0.net
- Hage<T>(T value) where T: Enum
- 342 :デフォルトの名無しさん :2022/10/22(土) 11:25:06.41 ID:QLe4fcYA0.net
- >>340
一度objectに変換すればOK
var result = (int)(object)value;
- 343 :デフォルトの名無しさん :2022/10/22(土) 11:43:10.44 ID:LN75Th25a.net
- >>342
きっつ
- 344 :デフォルトの名無しさん :2022/10/22(土) 12:37:18.58 ID:rexZxi1C0.net
- >>341
今回はすべてのタイプを取り込んでからEnumのときだけやるのでこれは使えませんでした
>>342
コレで行けました
ありがとうございます
- 345 :デフォルトの名無しさん :2022/10/22(土) 13:50:10.10 ID:JgadWci70.net
- そもそもintにしなきゃいけないならenumなんか使うなと思うが・・・
- 346 :デフォルトの名無しさん :2022/10/22(土) 14:16:53.47 ID:J0WzfMNr0.net
- >>345
intのままだと値域を制約できないが、代わりに何を使えばいい?
- 347 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/22(土) 17:16:23.54 ID:eEXfO1n1M.net
- だってエラーメッセージ通りだろ
どうやってUが何の型か推測できるんだよ
対策はエラーメッセージ通りに明示的にかけ
- 349 :デフォルトの名無しさん :2022/10/22(土) 17:18:14.30 ID:rGDZLIi60.net
- ノリと勢いで推測しろよな
- 350 :デフォルトの名無しさん (オイコラミネオ MM69-80Lh):2022/10/22(土) 17:27:58.11 ID:eEXfO1n1M.net
- 人間はミスして当たり前
何かあったら自分が間違っていることをすぐに受け止めないといけない
そこが入り口
何十年もコード書いてるけどミスだらけ
まずはしっかりとエラーメッセージを読むしかない
にしてもお前らジェネリック好きだな
自分はジェネリックのメソッドなんてほぼ書かないよ
- 351 :デフォルトの名無しさん (オイコラミネオ MM69-80Lh):2022/10/22(土) 17:32:27.07 ID:eEXfO1n1M.net
- 汎用ライブラリみたいなのでジェネリックはありうる
でも自分の使うライブラリのメソッドでは出番はない
クラス設計終わってるしinterface使わないでジェネリック単体なんてことはまずない
そこを汎用的に作る意味ないしコード重複もない
- 352 :デフォルトの名無しさん (ワッチョイ 8201-yYWu):2022/10/22(土) 17:36:42.98 ID:0Z7kQC5T0.net
- おまえがジェネリックを書くかどうかなんてどうでもいい、チラ裏にでも書いとけ
- 353 :デフォルトの名無しさん (オイコラミネオ MM69-80Lh):2022/10/22(土) 17:42:42.27 ID:eEXfO1n1M.net
- 普段のコードでジェネリックを使ってたら大体何かが間違っている
- 354 :デフォルトの名無しさん (ワッチョイ 1907-Rexe):2022/10/22(土) 17:50:29.89 ID:SCNLWEI10.net
- ジェネリックをほとんど使ってないやつのコードを見ると単一責任原則に反してるケースが多い
- 355 :デフォルトの名無しさん :2022/10/22(土) 19:28:17.81 ID:LnG3fbHw0.net
- 曖昧論はいいから具体論を頼む
- 356 :デフォルトの名無しさん :2022/10/22(土) 19:57:34.11 ID:ql0xnxKt0.net
- デフォルト型引数っていうのはないのか
- 357 :デフォルトの名無しさん :2022/10/22(土) 20:35:58.55 ID:eEXfO1n1M.net
- 普通にオーバーロード書けよ
- 358 :デフォルトの名無しさん :2022/10/22(土) 20:59:48.27 ID:PKq48whGa.net
- tsにはあるみたい
- 359 :デフォルトの名無しさん :2022/10/22(土) 21:14:16.27 ID:eEXfO1n1M.net
- typescript(javascript)にはオーバーロードがないからな
普通に書けばいいのにわざわざ難しく書いて機能がないとか言い出すのはどうなの
- 360 :デフォルトの名無しさん :2022/10/22(土) 21:16:10.99 ID:dlqtwNJ3a.net
- おー、怖い怖い。
- 361 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/22(土) 21:55:53.90 ID:eEXfO1n1M.net
- typescriptは出来立てはきれいな文法や仕様だった
ところが素のjavascriptの仕様がひどすぎてどんどん仕様追加していって
全部の機能を把握してコード書いてる人間はいないんじゃないかと言うぐらいカオス状態になってる
- 364 :366 :2022/10/22(土) 22:34:54.25 ID:DoqTc5dI0.net
- もちろんオーバロードも考えましたけども。
Mikuメソッドが30行くらいあって、negiが指定されてる場合に処理の真ん中あたりの2,3ステップだけnegi処理をやるっていう
すっごいオーバロードに向かない作り。
記述量も増えるし、一概にオーバロードっていう考えもどういうものかと。
それにメソッド定義時点で警告も何も出ないので、何か呼び出せる書き方があるのかなと思った次第です
- 365 :デフォルトの名無しさん :2022/10/22(土) 22:37:13.17 ID:sdxg/Y9t0.net
- void Miku<T>(List<T> vol) => Miku<T, object>(vol);
この1行足すだけやん
コピペで作ろうとしてる?
- 366 :デフォルトの名無しさん :2022/10/22(土) 22:38:02.72 ID:sdxg/Y9t0.net
- まちがえた
... => Miku<T, object>(vol, null);
- 367 :デフォルトの名無しさん :2022/10/23(日) 10:00:46.08 ID:+fqIJl0NM.net
- >>364
警告出るわけがない
出るならコンパイラがおかしい
hatune.Miku<List<Person>,Address>(list,place);
みたいに型を省略しないでかけばいい
どちらにしても本当にジェネリック使うのが正しいのか考え直して欲しい
- 368 :デフォルトの名無しさん :2022/10/24(月) 18:30:02.69 ID:Pqz/1oYS0.net
- where U : classの必要性がわからん
何も渡さないなら
Miku<T>(List<T> vol, object negi = null)
で良いんじゃないかとしか思えん
- 369 :デフォルトの名無しさん :2022/10/24(月) 18:55:12.60 ID:chiatfyX0.net
- それAggregateの前でも同じこと言えんの?
- 370 :デフォルトの名無しさん :2022/10/25(火) 17:31:24.22 ID:/HcoEXSHd.net
- 中括弧というか、中括弧行がほぼ、空白行にみえて、鬱陶しい
vbしかやってこなかった弊害だな
- 371 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/25(火) 19:06:06.10 ID:tQ39k2n1a.net
- >>374
余りが整数にならないわけないじゃん
- 377 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/25(火) 20:00:18.67 ID:qnnhkHib0.net
- return value is >= min and <= max;
- 383 :デフォルトの名無しさん :2022/10/25(火) 20:01:21.65 ID:qnnhkHib0.net
- つかprint(って何だ)をそんな変なところに入れんな
- 384 :デフォルトの名無しさん :2022/10/25(火) 20:01:30.48 ID:PDW864Oy0.net
- >>374
%は余剰(割り算の余り)を求める演算子
1÷3=0余り1
- 385 :デフォルトの名無しさん :2022/10/25(火) 20:05:37.53 ID:PDW864Oy0.net
- >>381
下の方のreturn ;をreturn false;にする
- 386 :デフォルトの名無しさん :2022/10/25(火) 20:16:09.52 ID:VW8svp7V0.net
- >>374
もし良ければ、0.11111111 になると思った根拠を聞かせて
- 387 :デフォルトの名無しさん (オイコラミネオ MM69-80Lh):2022/10/25(火) 21:04:35.60 ID:M/tJTOq7M.net
- 0.11111111.…(永久に循環)だったら =1だから間違ってはいないけどそういう問題でもない
- 388 :デフォルトの名無しさん (オイコラミネオ MM69-80Lh):2022/10/25(火) 21:05:06.09 ID:M/tJTOq7M.net
- 二進数でが抜けてたな
- 389 :デフォルトの名無しさん (ワッチョイ 1907-Rexe):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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/26(水) 00:10:49.93 ID:MPkBvgrP0.net
- どういう型なのかVSが正確に教えてくれるのがこの言語の良さだが教えてくれないのか?
具体的にCOMのどの関数?
- 394 :デフォルトの名無しさん :2022/10/26(水) 00:16:41.96 ID:NhZ6Jc52a.net
- photoshop.applicationのActiveDocument.Selection.Selectです
- 395 :デフォルトの名無しさん :2022/10/26(水) 00:17:49.17 ID:HZuVvHGf0.net
- int配列じゃないじゃないか
- 396 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/26(水) 06:08:13.19 ID:h2Qffg100.net
- 定期的に自決してるネ
- 400 :デフォルトの名無しさん :2022/10/26(水) 08:07:30.06 ID:HZuVvHGf0.net
- 自決が自殺のことと知らず自分で勝手に言葉を作るやつが増えたんだろ
- 401 :デフォルトの名無しさん :2022/10/26(水) 09:24:34.71 ID:T9NC5dRR0.net
- 5chのノリに対して真面目に言われても。。
- 402 :デフォルトの名無しさん :2022/10/26(水) 09:36:42.74 ID:7O9MyaKx0.net
- https://images.squarespace-cdn.com/content/v1/5068fd0ec4aa16ad80737e95/1524567345147-PKE47EDZHTVBCAOJ60NE/kitano005.jpg
- 403 :デフォルトの名無しさん :2022/10/26(水) 09:37:16.88 ID:HZuVvHGf0.net
- お前らノリじゃなく本気で知らんだろ
最初は俺も「さすがにそれを知らんやつはいないから冗談だ」と思ってたんだぞ
- 404 :デフォルトの名無しさん :2022/10/26(水) 09:58:58.52 ID:e8T4fz3Wp.net
- varで勝手に型決めろって言っといて型が違うとか傲慢なw
- 405 :デフォルトの名無しさん :2022/10/26(水) 10:12:48.45 ID:HZuVvHGf0.net
- varは型推論
型を自由に変えられるのはvbならvariant
C#ではCOMはdynamicで受けるのが定番
- 406 :デフォルトの名無しさん :2022/10/26(水) 10:13:22.89 ID:YS2geK1Yr.net
- 勝手に決めろというか推論だから、違ってることもあるんじゃねーの?
- 407 :デフォルトの名無しさん :2022/10/26(水) 10:17:04.49 ID:e8T4fz3Wp.net
- object型が万能型って事かぁ
- 408 :デフォルトの名無しさん :2022/10/26(水) 10:20:24.72 ID:Do8Z1/L1a.net
- objectじゃなくdynamicだっつってんだろw
objectにしたらobjectの持ってるメソッド以外使えないだろ
- 409 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/26(水) 11:01:38.87 ID:Do8Z1/L1a.net
- >>414
関数内をその一行だけにすれば特定の範囲内の時にtrueでそうじゃない時にfalseが返る
printはその返り値で分岐したらいい
- 420 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/26(水) 11:06:44.91 ID:NhZ6Jc52a.net
- >>416-417
こういうの好き
- 422 :デフォルトの名無しさん :2022/10/26(水) 11:09:20.02 ID:4jVuVTojp.net
- りんごじゃ半分にすればいいじゃんってなるから
もっと分けられないものを例えにした方がいい
- 423 :デフォルトの名無しさん :2022/10/26(水) 11:11:52.88 ID:Do8Z1/L1a.net
- 切らずにつってるのに切るバカには何言っても無駄だから
- 424 :デフォルトの名無しさん :2022/10/26(水) 12:22:24.32 ID:jqBYUPvjM.net
- すりおろしたら良いじゃん
- 425 :デフォルトの名無しさん :2022/10/26(水) 12:26:19.21 ID:Do8Z1/L1a.net
- そう言うこと言うやつは子猫でもすりおろすから
- 426 :デフォルトの名無しさん :2022/10/26(水) 12:35:40.43 ID:lBrQFFOa0.net
- 俺が咀嚼して2人には口移し
- 427 :デフォルトの名無しさん :2022/10/26(水) 12:48:13.46 ID:DNyqLTW70.net
- ジャイアン、スネ夫、のび太で考えろよ
- 428 :デフォルトの名無しさん :2022/10/26(水) 12:57:07.06 ID:i0WUe8DpM.net
- 数直線を切る
デデキントの切断
整数を切断しても整数しか発生しない
- 429 :デフォルトの名無しさん :2022/10/26(水) 20:25:34.79 ID:hM0WEApa0.net
- パブリック変数がスクリプトの銭湯二ズラーっと並びますが、これを折り畳める昨日はないのでしょうか
関数みたいに【】でくくることは出できないですし
- 430 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/26(水) 22:30:34.01 ID:MzASwS2c0.net
- 普通に
- 433 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/28(金) 18:27:43.03 ID:YfCj0B1j0.net
- 初歩で停滞してるやつは急速に上達なんかしないよ
- 438 :デフォルトの名無しさん :2022/10/28(金) 18:36:43.66 ID:1ARXQoUR0.net
- 初歩の方で躓いてたらそうかもしれん
右肩上がりの階段状の成長曲線かな
- 439 :デフォルトの名無しさん :2022/10/28(金) 18:50:51.32 ID:9kHpqARR0.net
- >>436
組めるようになって、組んだもののチェックができるようになったらそこで一旦は終わり
定年までハナクソでもほじっていればよい
- 440 :デフォルトの名無しさん :2022/10/28(金) 19:04:40.27 ID:HG0H6tJb0.net
- まあ信じて頑張るしかないすね
- 441 :デフォルトの名無しさん :2022/10/28(金) 19:18:00.09 ID:ZZAq6DiJ0.net
- >>436
書くより読もう
- 442 :デフォルトの名無しさん :2022/10/28(金) 19:22:03.01 ID:MkzS3v4A0.net
- まあオブジェクト指向とかは書いてて初めて恩恵を感じてると理解したときになるほどって思ったことはあったな
設計もそうだけど
- 443 :デフォルトの名無しさん :2022/10/28(金) 19:24:14.41 ID:ZZAq6DiJ0.net
- 進次郎「感じてると理解したときになるほどと思った
- 444 :デフォルトの名無しさん :2022/10/28(金) 19:37:56.31 ID:yAiIpvPxM.net
- 世の中にある事象をある程度プログラムできるようになったらそこでいったん終了
ゲームでも作ってコードが汚いけど確実に動かせるレベルだな
次は他人のプログラムを見て設計的なことを学んで理解できて自分で同じように書けるようになったら次も終了
- 445 :デフォルトの名無しさん :2022/10/28(金) 19:41:16.54 ID:4sg0pV9K0.net
- 初学者のうちで一気に理解が深まったタイミングは
・デバッガが使えるようになった
・テストの必要性を感じて書いた
・リファクタリングできる気がしてやってみた
とかかなぁ
多分学習進度との関係もあると思うけど、思考が切り替わった気がした
- 446 :デフォルトの名無しさん :2022/10/28(金) 19:58:42.59 ID:yAiIpvPxM.net
- 最近の人はアルゴリズムを勉強しないらしいので暇だったら勉強してみ
- 447 :デフォルトの名無しさん :2022/10/28(金) 20:14:56.13 ID:HG0H6tJb0.net
- 頑張ります
unityやってます
デバッグは確かに課題です
どの部分に問題があるか分からなくて1日潰れる
- 448 :デフォルトの名無しさん :2022/10/28(金) 21:39:09.15 ID:yAiIpvPxM.net
- ゲームのデバッグは経験かな
再現性がないと地獄だけどそのうち多分ここがおかしいとある程度わかるようになる
それまではこんなものかと思うしかない
- 449 :デフォルトの名無しさん :2022/10/28(金) 21:42:39.07 ID:GLKGqrevM.net
- ゲームはどうやってテストしてんのか想像つかん
仕様書とか無限に分厚くなるだろ
- 450 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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):2022/10/29(土) 11:37:00.65 ID:rhy5a3mta.net
- Unityから始めたやつはだいたいその場しのぎのコードを書くしそれを教えたがるからUnity関連の情報はそんなのばっかになる
- 456 :デフォルトの名無しさん (アウグロ MMfd-VnIt):2022/10/29(土) 11:39:05.64 ID:t5eKPicIM.net
- でも正直unityに機能がないときはやらない仕様に変えたほうがいいまである
別に仕事でやってんじゃないし
- 457 :デフォルトの名無しさん (ワッチョイ 4907-gxoH):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 :デフォルトの名無しさん :2022/10/29(土) 12:36:23.71 ID:D1cycp0Sa.net
- プログラミング関連情報サイトは、自分の勉強がてらそれをネタに記事書いてるのが多いからな
言い方変えると初心者が記事書いてるからそんな情報ばっかになるんだよ
- 460 :デフォルトの名無しさん :2022/10/29(土) 12:39:55.27 ID:QGEirdnxa.net
- >>457
小規模ならそれで十分
そんなところでわざわざガチる必要ない
- 461 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/29(土) 15:39:24.31 ID:lV3hVGRgM.net
- 最後間違えた
静的クラスじゃないのでFooは変えなくていい
静的クラスだったらFooも書き換え必須
- 475 :デフォルトの名無しさん :2022/10/29(土) 15:41:43.09 ID:lV3hVGRgM.net
- 要するにDIするときにインスタンスが必要になるってこと
DIがなぜ必要かはSOLIDの原則を調べればわかる
- 476 :デフォルトの名無しさん :2022/10/29(土) 15:45:47.27 ID:pn62A2OL0.net
- singleton とは、インスタンスを2つ以上作れらたら、マズイもの
よくあるのが、何々マネージャーみたいな管理オブジェクト。
管理者は1つで、その管理者が複数のインスタンスを作る。
この場合、管理者が2つあるとマズイ
1つしか存在してはならない、絶対的なもの。
神とか
- 477 :デフォルトの名無しさん :2022/10/29(土) 15:57:07.69 ID:u+PU0umT0.net
- その例えは多神教全否定になるから不味いw
- 478 :デフォルトの名無しさん :2022/10/29(土) 16:02:48.14 ID:LKZb5SQz0.net
- ひとつしか存在しない絶対的なものは「自分を認識する意識」くらいのものだ
- 479 :デフォルトの名無しさん :2022/10/29(土) 16:37:09.15 ID:GsZMr1/10.net
- ㌧
静的クラスとするよりもインスタンス化してから利用するように設計するほうが色々とメリットがあるのですね
- 480 :デフォルトの名無しさん :2022/10/29(土) 16:57:12.41 ID:/AmlPuyW0.net
- >>462
偉そうとか言い出すとコンプレックスみを感じるな。
- 481 :デフォルトの名無しさん :2022/10/29(土) 17:04:11.43 ID:5hK4Xoona.net
- >>480
何で人に物を聞くときに「聞かれたことにだけ答えろ」みたいな大きな態度を取る初心者にコンプレックスを感じなきゃいけないんだw
- 482 :デフォルトの名無しさん :2022/10/29(土) 18:02:09.38 ID:laG6hjw40.net
- 文字列もクラスもメソッドも全てが数値のみで管理されており
その数値のみでソースが無いプログラムでも今日制定に
流れを変更できるようになったら一気に理解が深まる。
オブジェクト指向だ、関数型だ、設計がー、なんてのは
一番浅い層の肌の色ぐらいにすぎない。
- 483 :デフォルトの名無しさん :2022/10/29(土) 18:07:39.23 ID:s+eFMxCE0.net
- >>482
たしかになんか理解が深まったんだろうな
ただ機械側によりすぎて、お前の日本語は全然意味分からんw
- 484 :デフォルトの名無しさん :2022/10/29(土) 19:49:40.68 ID:lV3hVGRgM.net
- アセンブラ?
- 485 :デフォルトの名無しさん :2022/10/29(土) 20:06:55.26 ID:/AmlPuyW0.net
- >>481
そりゃ「お前のうんちくは今は要らない」と思われるからだろ。
- 486 :デフォルトの名無しさん :2022/10/29(土) 20:11:24.34 ID:5hK4Xoona.net
- >>485
だからお前はいつまで経ってもコピペしかできないんだよ
- 487 :デフォルトの名無しさん :2022/10/29(土) 21:38:27.72 ID:/AmlPuyW0.net
- >>486
コピペでわかるようなことを答えてるからでは?
俺オジサン側だけどあんまり悪い気がすること聞かれないぞ。聞かれた事しか話さなければ、案外聞いてくるよ。
「これ長いけど」って言ったら「今は良いです」とか言いよるけど、後で聞きに来たり。
関係性でしょこんなの。
- 488 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/29(土) 21:50:18.46 ID:/AmlPuyW0.net
- >>488
今さら?
- 491 :デフォルトの名無しさん :2022/10/29(土) 22:08:19.95 ID:AHyDFjq20.net
- >>490
しつこいな妬むなよw
お前がコピペしかできないのはお前の努力不足と才能不足で俺に責任はないぞ
>>1を100回読み終わったならすぐに川に行って首が釣れるまで帰って来るな
- 492 :デフォルトの名無しさん :2022/10/29(土) 22:11:58.18 ID:/AmlPuyW0.net
- 草
- 493 :デフォルトの名無しさん :2022/10/29(土) 22:14:33.73 ID:AHyDFjq20.net
- お前は草と首の区別もつかんのか
つくづく使えんやつだな
だから人間関係もうまくいかないんだぞ
- 494 :デフォルトの名無しさん :2022/10/29(土) 22:25:09.72 ID:GqvAAO/X0.net
- 図星突かれたので頓珍漢な返ししかできません
- 495 :デフォルトの名無しさん :2022/10/29(土) 22:33:09.26 ID:AHyDFjq20.net
- だろうな
まだ>>1も100回読めてないだろ
- 496 :デフォルトの名無しさん :2022/10/29(土) 22:37:03.52 ID:s+eFMxCE0.net
- キモい奴らだな
消えろよw
- 497 :デフォルトの名無しさん :2022/10/29(土) 22:38:53.69 ID:AHyDFjq20.net
- そのうち消えるんじゃね
お前も>>1を100回読んで消えとけよ
- 498 :デフォルトの名無しさん :2022/10/29(土) 22:40:10.99 ID:/AmlPuyW0.net
- おい俺に言うのはわかるが、八つ当たりはやめとけよ。
- 499 :デフォルトの名無しさん :2022/10/29(土) 22:41:41.43 ID:AHyDFjq20.net
- また来た
スレチだから八つ当たりしてないで早く消えろよ
- 500 :デフォルトの名無しさん :2022/10/29(土) 22:42:38.45 ID:AHyDFjq20.net
- 俺リアルで他人からお前らが言われてるようなこと言われたことないぞ
マジでスレチだからもう書くなよ
- 501 :デフォルトの名無しさん :2022/10/29(土) 22:43:50.83 ID:/Mu6PCns0.net
- ネット上でもわかるこのキモさ
リアルでも煙たがれてそう。
- 502 :デフォルトの名無しさん :2022/10/29(土) 22:45:01.83 ID:AHyDFjq20.net
- という初心者がいたわけよ
- 503 :デフォルトの名無しさん :2022/10/29(土) 22:45:30.65 ID:AHyDFjq20.net
- マジでまだ続けるこのキモさよ
- 504 :デフォルトの名無しさん :2022/10/29(土) 23:04:36.64 ID:EUjMGqhh0.net
- なんで盛り上がってるの?
だれか3行で頼む。
- 505 :デフォルトの名無しさん :2022/10/29(土) 23:07:56.87 ID:y8vo38aP0.net
- 5chでよく見かける
キチ2名の
打ち合い
- 506 :デフォルトの名無しさん :2022/10/29(土) 23:12:18.42 ID:AHyDFjq20.net
- キチに絡まれるのは同レベルのキチだからな
- 507 :デフォルトの名無しさん :2022/10/29(土) 23:16:29.83 ID:i0vA1INFa.net
- ていうかこのスレってコンプレックス持ち多すぎて書きにくいって前から思ってたわ
ちょっと変な初心者の話をしたら刺さったやつがすぐ絡んで来るから
- 508 :デフォルトの名無しさん :2022/10/29(土) 23:24:53.08 ID:FgOSZ1hPH.net
- そんなんだからSESしかできないんだよ
もっと社会性を身につけないと
- 509 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/30(日) 01:21:23.79 ID:UmSlwLP00.net
- HTMLとCSSが楽で良いと俺も思う。なんせ自分がやらなくてもデザイナーの人に入って貰えるし、それも単価が安いし。
最近はCSSも高級になったし、WebView2が使えるようになったのでかなり楽よね。
IEコンポーネント使わないといけないなら同意
- 514 :デフォルトの名無しさん :2022/10/30(日) 02:27:29.10 ID:2N6ePwSn0.net
- 単純なやつならxamlの方が楽だけどちょっと凝ったデザインにしようとすると記述量がめちゃ増えるのはなんとかしてほしい
- 515 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/30(日) 07:21:33.87 ID:EP3eiSUOa.net
- >>512
知ってるわけないじゃん
- 518 :デフォルトの名無しさん :2022/10/30(日) 07:23:58.99 ID:+d9s9Afp0.net
- >>517
なんだ…知らないのか…
- 519 :デフォルトの名無しさん :2022/10/30(日) 08:55:39.00 ID:Y7MeHq5yr.net
- >>516
すげえジジイがここにいたw
floatとかいつの時代だよwww
それでこんなにcssクソクソ言ってたのかw
オメーの無知で吠えてるんじゃねえよ
- 520 :デフォルトの名無しさん :2022/10/30(日) 09:15:57.16 ID:Ufi2KoCB0.net
- >>516
今どきそんな太古の手段を発掘しつつわざわざ車輪の再発明をしているのはキミくらいのものであって、あえて言わせてもらうと、それらは文字通り「時間の無駄」でしかない
どうしても車両の再発明をしたいってことなら止めはしないけど、せめてモダンなCSSやフレームワーク等の「習作」として作成しよう
- 521 :デフォルトの名無しさん :2022/10/30(日) 09:18:30.73 ID:LXcqQo2MM.net
- 今ってflexboxレイアウトが主流じゃないの
- 522 :デフォルトの名無しさん :2022/10/30(日) 09:42:14.23 ID:UmSlwLP00.net
- IEコンポーネントじゃないならflexとgridかな。
IEコンポーネントはバグが多いからかなり辛い。float使うのもわかる。
この調子だとHTMLも文字列で作ってそう。
適当なフレームワークに乗せるのが良いよ。MVVMにできるし。
- 523 :デフォルトの名無しさん :2022/10/30(日) 09:42:37.39 ID:lsOA6XTZ0.net
- >>517>>518
むしろjsにasync awaitあるの知らないんだね
未だにコールバック地獄でもしてんのかなw
- 524 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/30(日) 11:02:31.77 ID:Y7MeHq5yr.net
- >>528
flexbox使え
すべてが解決できる
- 530 :デフォルトの名無しさん :2022/10/30(日) 11:53:13.28 ID:anVeQi4K0.net
- >>505
thx
HTML & CSS は確かに便利なんだけど、たまにやるときれいさっぱり忘れてて思い出すのに時間がかかるのが難点。
なんというかクセというか、コツというか、そういうのを思い出せないと思うままにならない感じ。
- 531 :デフォルトの名無しさん :2022/10/30(日) 11:54:53.34 ID:dJTdnVox0.net
- いい加減スレチじゃい
- 532 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/30(日) 13:29:03.83 ID:P8HVjCjE0.net
- 糞スレw
- 535 :デフォルトの名無しさん :2022/10/30(日) 13:39:46.64 ID:A1wSH6ms0.net
- そりゃ初心者のうちメンタル弱くてやる気のない人が対象のスレだし回答してるのもおかしなこと言ってるのが多いから初心者なんだろうね
- 536 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/10/30(日) 18:09:34.88 ID:UmSlwLP00.net
- >>537
とはいえWindows使う以上絶対載ってるし、現存する、ほぼ唯一のまともに日本語を表示できる描画エンジンじゃない?
- 540 :デフォルトの名無しさん :2022/10/30(日) 19:49:11.19 ID:5qpGtRvc0.net
- >ほぼ唯一のまともに日本語を表示できる描画エンジンじゃない?
ブラウザのテキスト表示もOSの描画エンジンを使っていると思うが。
- 541 :デフォルトの名無しさん :2022/10/30(日) 19:52:07.34 ID:gI8+fygea.net
- >>539
ごめん何言ってるかわかんない
酔ってる?
- 542 :デフォルトの名無しさん :2022/10/30(日) 19:57:59.55 ID:UmSlwLP00.net
- >>540
オプティカルで文字を詰めながら禁則処理しつつ、左右均等揃えなんかしてくれないよ。
ttps://www.google.com/amp/s/ics.media/entry/14087/
>>541
そういう所だぞ
- 543 :デフォルトの名無しさん :2022/10/30(日) 19:59:51.73 ID:UmSlwLP00.net
- すまん、あげたサイトはオプティカルじゃなくてちゃんとメトリクス使ってるんだな。
- 544 :デフォルトの名無しさん :2022/10/30(日) 20:03:02.46 ID:gI8+fygea.net
- >>542
酔ってないのにそれかw
だからお前はリアルでも一人なんだよ
- 545 :デフォルトの名無しさん :2022/10/30(日) 20:11:29.33 ID:UmSlwLP00.net
- ちゃんと批判して
- 546 :デフォルトの名無しさん :2022/10/30(日) 20:13:47.95 ID:LXcqQo2MM.net
- いやいやw
現存する、ほぼ唯一のまともに日本語を表示できる描画エンジンって表現はおかしいだろw
- 547 :デフォルトの名無しさん :2022/10/30(日) 20:15:35.13 ID:LXcqQo2MM.net
- ガチの高校生なのかな~
- 548 :デフォルトの名無しさん :2022/10/30(日) 20:18:53.41 ID:UmSlwLP00.net
- え?ホント?みんなそんなに完璧に文字描けるの?そこまで請われることが無いとか…?
エッジケース考えたらブラウザ一択なんだけどな…。
- 549 :デフォルトの名無しさん :2022/10/30(日) 20:29:28.84 ID:UmSlwLP00.net
- 自力でコマコマとエンジンの挙動を微調整せずに一発で縦書きできるものがあったら逆に教えて欲しいわ…
- 550 :デフォルトの名無しさん :2022/10/30(日) 20:38:47.22 ID:LXcqQo2MM.net
- 基地外暴走中
- 551 :デフォルトの名無しさん :2022/10/30(日) 20:53:05.32 ID:UmSlwLP00.net
- 少数派だったならすまなんだ。
- 552 :デフォルトの名無しさん :2022/10/30(日) 20:53:49.31 ID:UmSlwLP00.net
- ※あるならホントに教えて
- 553 :デフォルトの名無しさん :2022/10/30(日) 23:28:05.26 ID:5qpGtRvc0.net
- カーニングは昔からあるし、DirectWriteなら均等揃えもできるようだな。
- 554 :デフォルトの名無しさん :2022/10/31(月) 00:03:20.79 ID:Dc17vD4i0.net
- >>553
まともにやるとIPAフォントあたりがかすれる。
それに、APIであって、エンジンじゃなくない…?
FormsとかWPFのレベルの話してるつもりだったんだけど。
- 555 :デフォルトの名無しさん :2022/10/31(月) 00:31:05.85 ID:fDaEiUpF0.net
- ここってこんなギスギスしたスレだったっけ・・・
精神的に余裕ない人が流れ込んできたのか元からいる住人が加齢で狂ってきたのか
- 556 :デフォルトの名無しさん :2022/10/31(月) 00:35:16.24 ID:X/NTMpPpa.net
- マウンティングが多すぎるよな
もっと謙虚な人が増えてほしい
- 557 :デフォルトの名無しさん :2022/10/31(月) 00:40:19.81 ID:WMzulB9K0.net
- メンタル弱い豆腐初心者のスレがどうしてうまくいくと思えるのか
そりゃ豆腐が集まって自壊するに決まってんじゃん
- 558 :デフォルトの名無しさん :2022/10/31(月) 00:43:10.47 ID:Z4/NCeJU0.net
- 適材適所でいいんじゃね、と思う
メニューとかリストとか、Windowsライクならxamlで
縦書きにしたいならhtmlで
- 559 :デフォルトの名無しさん :2022/10/31(月) 09:55:18.77 ID:hhvP4eKN0.net
- >>558
これはそうだね。語気が強かった。すまん。
まぁ、立ち戻って聞かれたこと答えて行くことにするわ。
- 560 :デフォルトの名無しさん :2022/10/31(月) 09:56:54.26 ID:jAJ0SKjra.net
- あまり詳しくないんだからトンチンカンなこと答えなくていいと思うぞw
- 561 :デフォルトの名無しさん :2022/10/31(月) 09:58:42.31 ID:hhvP4eKN0.net
- 余計なこと言って「聞かれたことだけ答えろ」って思われても嫌だもんな
- 562 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/02(水) 18:40:44.48 ID:SIAjnkFo0.net
- メリットがわからない時はしなくていい
変数を使うと呼び出す関数を動的に変更できる
- 567 :デフォルトの名無しさん :2022/11/02(水) 18:51:57.11 ID:fNjoEkdJ0.net
- 了解す(´・ω・`)
動的というのが普通の関数との違いなのでしょうか
- 568 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/02(水) 20:21:32.83 ID:XpLTr/SKa.net
- スレッドも登録元が関数を指定する必要があるから、動的に入れている
- 571 :デフォルトの名無しさん :2022/11/02(水) 20:45:43.92 ID:qyHEkcPy0.net
- WinFormsで自動でボタンを押した時の処理が追加されたりするけどそれも
結局はその関数をイベントリスナーに登録している(つまりイベントリスナーに追加するときに関数を引数にしている)
知らずに使っている事が案外あったりする
- 572 :デフォルトの名無しさん :2022/11/02(水) 20:48:02.32 ID:047n0D5LM.net
- 変数じゃなくて定数じゃん
- 573 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/02(水) 22:46:41.09 ID:SIAjnkFo0.net
- >>574
ラムダ式はデリゲートを作るための書き方にすぎんよ
それがデリゲート変数に代入されて初めて関数になる
Expressionに代入されると関数じゃなく式木になる
- 577 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/03(木) 05:39:29.72 ID:vGCYuyMq0.net
- たった1行の処理でも関数化してもいいのでしょうか?
大げさな感じもしますが
- 588 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/03(木) 10:00:51.31 ID:q0+PchV30.net
- JavaScript なら、scrollTop とか、
最近は、IntersectionObserver とかもあるらしい
- 591 :デフォルトの名無しさん :2022/11/03(木) 10:53:54.12 ID:dhtr0mvLa.net
- とりあえずjsでできることは全部c#でできるようにしてくんないと
誰かポリフィル作れということか
- 592 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/03(木) 12:28:05.12 ID:M3w0A0V30.net
- DOM APIって何かわかってる?
- 595 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/03(木) 12:47:38.39 ID:M3w0A0V30.net
- >>598
何を怒ってるかわかんない。甘く見られたって事?
そんな事で怒らんでも良いじゃん。アホ過ぎるとこっちの話が理解できないこともあるよ。俺は計算資源さえ許せばちゃんとレンダリングした方がええでしょ、WebViewでもpuppeterとかでも。
うーん、jsとdomをエミュレートしてレンダリングするタイプは、要は突き詰めるとヘッドレスなブラウザを作ることと変わんなくなるので、確かに味は変わるが、ルーから作ると失敗するぞ言いたい。
- 601 :デフォルトの名無しさん :2022/11/03(木) 12:48:40.21 ID:M3w0A0V30.net
- ええでしょ、と思うよ、だった。すまんね。
- 602 :デフォルトの名無しさん :2022/11/03(木) 12:49:54.05 ID:irjlHMAba.net
- >>596
何を言ってるんだ
スクロールに従って画像を表示するのにDOMは使わないって話をしてるんだよ
<img src=@(img)/>と書きゃimg変数のURLにある画像が表示される
画面に表示されるとこだけそのタグを作る
タグを作るのにDOMは使わない
そういう話だ
- 603 :デフォルトの名無しさん :2022/11/03(木) 12:55:41.20 ID:M3w0A0V30.net
- >>602
え?何言ってるの?「DOM APIが何かわかってる?」に対して「Blazorはそれを…」の返事に「違うよ」って返したんじゃん?
しかも、結局それBlazorはDOM APIを使って画面に表示するところだけそのタグ作ってるからね。
- 604 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/03(木) 13:18:41.93 ID:kiz4JKw0a.net
- Javascriptのインタプリタをつくればいいだけじゃないの?
- 611 :デフォルトの名無しさん :2022/11/03(木) 13:39:14.90 ID:q0+PchV30.net
- 漏れは、Ruby Selenium Webdriver で、ブラウザを自動操作してる。
サイトのログインとか
更に、Nokogiri でスクレイピングもできる
- 612 :デフォルトの名無しさん :2022/11/03(木) 13:39:56.44 ID:m6o3Pqh2d.net
- MAUI「htmlを、regexでアクセスしてる」
うざいやつ「htmlは、DOM APIでアクセスしろ」
って事??
- 613 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/03(木) 13:45:03.53 ID:x8JkO9N7M.net
- と思ったらMAUIの人か
じゃあ諭すだけ無駄か・・・・・
まあなんだ、VIP板とやらで頑張ってくれ
こっちに帰ってくるなよ
- 616 :デフォルトの名無しさん :2022/11/03(木) 13:52:27.10 ID:j+eH91hfa.net
- MAUIに変なイメージついたな
マウイ高校の人に謝れ
- 617 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/03(木) 15:34:50.67 ID:WOBTUDvw0.net
- >>609
・まともなクローラーが作れない
・テストを知らないから、未完成状態でサイトに頻繁にアクセスする
・例外処理の設計ができていないから、サイト側からフィルタされてもアクセスし続ける
結果:監視カメラの前で裸踊りしてる様子を記録されていることに気が付かない
スクレイピング対象になりえるサイトのデータの二次利用は民法的に大体アウト(良くてグレー、真っ白は基本的にありえない)
そのクソみたいなアクセスのせいで、サーバリソース追加しなきゃならんケースがあるからサイト側からすると迷惑でしかない
- 620 :デフォルトの名無しさん :2022/11/03(木) 15:37:50.67 ID:2Kw6fOvE0.net
- 散々イキりまくった挙句技術力不足で他人を頼ってくるとか情けなさすぎる
MAUIの地位を貶めるためにやってるんじゃないなら相当やばい
- 621 :デフォルトの名無しさん :2022/11/03(木) 22:02:04.04 ID:20/srh0o0.net
- >>619
ヘッドレスブラウザでトライ&エラー繰り返されたらあれだろうがHttpClientでhtml単品要求してくるくらいなら別に自由にしたらって思うけどな
- 622 :デフォルトの名無しさん :2022/11/04(金) 00:40:17.01 ID:IgmKO4aZ0.net
- HttpClient使わないとrobots.txtが取りづらいよな?という嫌味ならなるほどなとは思う。
- 623 :デフォルトの名無しさん :2022/11/04(金) 19:03:03.51 ID:nywf9UY+0.net
- boolでは2つの返り値を持つ事はできないですか?
https://i.imgur.com/6s9o15k.jpg
ゲームで接地判定を作っているのですが、真ん中からレイを飛ばすと崖でレイが反応しなくなるので、このように両脇から2本飛ばしています。
判定用の関数を作ってます。
- 624 :デフォルトの名無しさん (ワッチョイ 8bbb-/OGx):2022/11/04(金) 19:12:28.11 ID:7HgZbeW40.net
- >>621
同じアドレスにウェイトなしアクセスをぶん回してくるやつとかいるんだぜ
- 625 :デフォルトの名無しさん (ワッチョイ d941-2RrB):2022/11/04(金) 19:22:14.68 ID:IiXUZSOe0.net
- >>623
boolでは2つの返り値を持つ事はできないです。
なぜならboolはメソッドではなく型だからです。
- 626 :デフォルトの名無しさん (ラクッペペ MMeb-YnjT):2022/11/04(金) 19:33:46.65 ID:5m02ltgpM.net
- Win32/C++
BOOL GetMessage(略) ・・・
- 627 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/04(金) 20:31:37.30 ID:nywf9UY+0.net
- >>627
bool型の関数の場合は1つしか持てないじゃないでしょうか
- 629 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/04(金) 21:08:53.29 ID:u3TD418O0.net
- >>629
相手すんなよ...
- 632 :デフォルトの名無しさん :2022/11/04(金) 21:27:00.15 ID:Fl24BIVd0.net
- 論理演算で一つにまとめればいいじゃん
- 633 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/05(土) 00:03:26.00 ID:z7QTqWos0.net
- 進次郎構文を質問に応用するとこうなるのか...
- 636 :デフォルトの名無しさん :2022/11/05(土) 01:03:31.06 ID:zPyCNtrD0.net
- 複数の引数を戻り値で受け取りたいとか言う奴いるけど
参照でええやん・・・
- 637 :デフォルトの名無しさん :2022/11/05(土) 05:24:52.32 ID:tZqy6bJ10.net
- >>636
参照?どういうこと
普通に関数2つ作るのがシンプルかもしれませんね
- 638 :デフォルトの名無しさん :2022/11/05(土) 06:12:30.08 ID:tZqy6bJ10.net
- プログラミングは日本語で言語化することが大事でしょうか
それがフローチャートだったりするのでしょうが
- 639 :デフォルトの名無しさん :2022/11/05(土) 08:08:07.32 ID:qYBt5eWid.net
- 「何をするプログラムなのか」「なぜこうするのか」といった仕様や意図を自然言語で分かりやすく正確に記述できる能力は重要
一般に日本人はそれを苦手とする者が多く、安易に図表に頼ったり、
自然言語で書くとなるとプログラムと逐次対応するような低レベルな記述(実質的にExcel方眼紙上でコーディングしているだけ)をする傾向がある
- 640 :デフォルトの名無しさん :2022/11/05(土) 08:26:37.39 ID:2xMBgYRAM.net
- 意味不明すぎる
- 641 :デフォルトの名無しさん :2022/11/05(土) 08:34:43.47 ID:yxkEcNx60.net
- 文章でグダグダ書かれるより図表や擬似コードで書いてくれた方が100倍マシ
- 642 :デフォルトの名無しさん :2022/11/05(土) 08:36:00.30 ID:sjtvh1h/M.net
- visual transformer を図表無しで
納得させる資料を書いてから言え
- 643 :デフォルトの名無しさん :2022/11/05(土) 08:43:50.98 ID:3YlQFQnT0.net
- 質問者は投稿する前に、自分の質問をよく推敲しろよ。これはC#初心者以前の問題だ。
文章が意味不明で相手に伝わらず、あほな質問だと思われたらそれなりの答えしか返って来ないぞ。
- 644 :デフォルトの名無しさん :2022/11/05(土) 09:40:58.84 ID:yYAK326QM.net
- >>638
大事ではないけど
言語化と言うかもともと何をしたいのかと言うことがはっきりしていて
それをコードに落とし込んでいるはず
ところが後でコードからその何をしたいかが読み取れない場合があるので
おおまかなコメントなどを残すことになる
細かく内容を記述するのは無駄だしコードを手直しするたびに書き換えるのは無理だ
フローチャートは階層が深くなる複雑な制御構造になる場合に脳で追いきれなくなる場合に描いたりすると便利なんだろうけど
大体みんなちゃんとしたものじゃなくて流れを落書きする程度だと思う
- 645 :デフォルトの名無しさん :2022/11/05(土) 11:36:03.24 ID:cwSbm70XM.net
- >>638
よく言われるのは「How」はコードで書く
「What、Why」は自然言語や図表を使って書く、、、てこと
- 646 :デフォルトの名無しさん :2022/11/05(土) 17:37:50.25 ID:tZqy6bJ10.net
- >>644
>>645
どうも
きれいなコードを書くことでフローチャートはいらないのかもしれないですね
処理は言語化しないと何をしてるのか分からなくなったりしますね
- 647 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/05(土) 18:22:12.07 ID:anrNho5cM.net
- >>648
宣言的プログラミングだね
理想的だけど手続きを全て無くすのは難しい
コードはどうしてもハイブリッドになってしまう
- 650 :デフォルトの名無しさん :2022/11/05(土) 18:26:36.41 ID:pQZkgeTuM.net
- オブジェクト指向言語で処理の流れを図示するならシーケンス図やアクティビティ図
静的な構造の図示はクラス図やパッケージ図
- 651 :デフォルトの名無しさん (ワッチョイ 9279-YsF2):2022/11/05(土) 18:43:24.92 ID:D4NMIenB0.net
- アクティビティ図書くなら
フローチャートのがわかりやすいな
- 652 :デフォルトの名無しさん :2022/11/05(土) 20:41:38.38 ID:SeMW4Qkf0.net
- VSがある程度自動的にクラス関係図生成してくれねぇかなあ
- 653 :デフォルトの名無しさん :2022/11/05(土) 20:58:35.47 ID:zg6rbg9v0.net
- クラスデザイナーというのがあるからインストーラの個別のコンポーネントで検索してみろ
- 654 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/05(土) 22:06:58.20 ID:neflR3f7M.net
- >>652
クラス関係図ではないけどあるクラスのメソッドやフィールドと他のクラス(または外部ライブラリdll)への関係を図示するだけならコードマップ表示がある
- 657 :デフォルトの名無しさん :2022/11/05(土) 22:57:43.05 ID:x8IGYLJlM.net
- Windowsフォームアプリ(.NET Core)のスケルトンコードより
フォーム初期化処理(InitializeComponent()メソッド)
https://i.imgur.com/ukmU36Z.png
- 658 :デフォルトの名無しさん :2022/11/05(土) 23:01:20.64 ID:mbE+OsReM.net
- >>655
ほとんど同じだよWhatをコードで表現しようとすると自然と宣言的になる
というか宣言的プログラミングがそういうもの
どうやってではなくてどうなって欲しいかを記述する
- 659 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/06(日) 02:59:28.10 ID:3Vlqt+cVa.net
- 質問です。
構造体を使っていて関数内でnewしてそこで使い終わる(ボクシングしない)場合は、stackに乗るだけなので、heapは汚さないしgcには影響無い認識でいいですよね?ゲームを作ってるのでgcの影響を少なくしたいんです。
- 662 :デフォルトの名無しさん :2022/11/06(日) 07:14:57.83 ID:t/MPMTDqM.net
- 構造体でもインスタンス生成してる時点でガベージコレクションの対象
.NETでは値型であろうが参照型であろうがすべての変数は監視下に置かれる
ボクシングは値型の変数を参照型(object型)変数に代入する時に一時インスタンスを生成して値をコピーして渡す機能なので全く関係ない話
- 663 :デフォルトの名無しさん :2022/11/06(日) 07:30:46.83 ID:mzFwuoQr0.net
- >>661
> 構造体を使っていて関数内でnew
よくわからんからコードで示して
- 664 :デフォルトの名無しさん (ブーイモ MMad-yfbC):2022/11/06(日) 09:30:46.32 ID:OgJKt7GdM.net
- >>661の理解で正しいよ。>>662は間違い。
値型は単なるデータ構造であり、それ自身はGCの管理対象にならない。
- 665 :デフォルトの名無しさん (ブーイモ MMad-yfbC):2022/11/06(日) 09:45:40.42 ID:OgJKt7GdM.net
- ただし、もちろん値型の変数を使ったらその先が全てGCの追跡の対象外になるわけではなくて、値型に定義された参照型の変数はGCの追跡対象となる。
上に述べた通り値型は単なる埋め込みのメモリのデータ構造なので、それ自体は単にGCをバイパスする。
そして、最終的にメモリ上に展開された構造のうちで参照型の変数だけが追跡対象となるわけ。
- 666 :デフォルトの名無しさん :2022/11/06(日) 09:52:21.19 ID:mzFwuoQr0.net
- >>664
newしてても?
- 667 :デフォルトの名無しさん :2022/11/06(日) 09:54:44.02 ID:zZNJQBYc0.net
- 値型のintでも実際はSystem.Int32構造体のインスタンスではなかったっけ?
MaxValue、MinValueなどのプロパティやToString()などのメソッドが使えたはず
値型の変数でもGCが追跡しているのでは?
- 668 :デフォルトの名無しさん :2022/11/06(日) 09:57:00.84 ID:OgJKt7GdM.net
- >>666
構造体のnewは、スタック又はそれを保持する参照型オブジェクト上に事前に確保された領域に対し、コンストラクタをインプレースで実行する
新たなインスタンスを生成している訳ではない
- 669 :デフォルトの名無しさん :2022/11/06(日) 10:00:33.74 ID:OgJKt7GdM.net
- >>667
値型に対してObjectクラス又はValueTypeクラスのメソッドを呼び出そうとすると、その時点でボックス化が発生し、ヒープ上に新たなインスタンスが生成される
- 670 :デフォルトの名無しさん :2022/11/06(日) 10:06:01.01 ID:sZiKsnj+0.net
- ポインタがオマケでつくかつかないかだけなのか
- 671 :デフォルトの名無しさん :2022/11/06(日) 11:39:39.10 ID:8lzCZdko0.net
- なんか久し振りにここでためになる話を聞けた気がする。
横からだけど、ありがとう。
- 672 :デフォルトの名無しさん :2022/11/06(日) 12:23:04.83 ID:eRXytuty0.net
- >>662のしったか具合がやばい
- 673 :デフォルトの名無しさん :2022/11/06(日) 12:28:55.33 ID:46oDEsAIa.net
- このスレは前からそんなもんだろ
素人が知ったかして嘘ばかり教えるスレ
- 674 :デフォルトの名無しさん :2022/11/06(日) 13:25:57.55 ID:zZNJQBYc0.net
- intの構造体はC/C++で言うところの自己参照構造体を強引に組み込み型として実現してるっぽい
https://qiita.com/cocoabreak/items/e93a3bd6d1640b622c42
- 675 :デフォルトの名無しさん :2022/11/06(日) 13:54:54.11 ID:FxP86aLpM.net
- >>674
この記事では、そもそもなぜ再帰的な定義になっていて、それがどのように機能するかの説明にはなっていないような
C#のintやInt32型の変数は、実際にはどちらもILのプリミティブ型であるint32型にコンパイルされるんだよ
つまりInt32をint32型のフィールド一つだけを持つ構造体として定義してやれば、Int32とint32のメモリ上のレイアウトが同一になる
あとはコンパイラの型チェックを細工して、それらを区別しないようにしてやればよいというわけ
- 676 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/10(木) 07:45:50.73 ID:nQDHqGzi0.net
- >>680
例えば|chinko|という区切り文字を使っている場合にユーザーが|chinko|と書き込んだ場合
APIから取得時に|ちんこ|と置き換えておくと言う事ですね、表示するときには|chinko|に戻すと
現状改行コードを置き換えて保存しているので、そこにまとめて組み込めば楽そうです
- 682 :デフォルトの名無しさん :2022/11/10(木) 08:16:38.34 ID:XxWk5gSzr.net
- 文字列の改変で(削除でもなく)、エスケープとかサニタイズを独自に実装するのは苦労すると思うよ
- 683 :デフォルトの名無しさん :2022/11/10(木) 08:34:01.14 ID:9mQBoBy40.net
- >>677
もしよろしけば下記について教えてほしい
その上で「JSON形式ではダメな理由」があるなら、それも教えて
1. 「保存」の目的(保存したデータの利用目的)
2. 現状の保存形式を選択した理由
- 684 :デフォルトの名無しさん :2022/11/10(木) 09:11:14.02 ID:O+ugNNB7M.net
- xmlもjsonもエスケープ方法は規格として決められている
オレオレエスケープなんか考えなくても偉い人が作ったものを黙って使えば良い
- 685 :デフォルトの名無しさん :2022/11/10(木) 09:13:17.40 ID:TJ0qCovBd.net
- ファイルに保存する際の定石をよく分かってないだけでしょ
JSONやXMLでもいいけど、この場合普通に一つのツリーとして書き出すと追記できなくて不便そうだから、JSON Linesがお勧めだな
Excelなどで表として扱いたいならCSVでもいいがJSON Linesよりはフォーマットにバリエーションがあるから考慮すべきことは多くなる
- 686 :デフォルトの名無しさん :2022/11/10(木) 09:42:00.83 ID:hu9oTdXa0.net
- 目視もしたいなら尚更そのままjsonでええやん
- 687 :デフォルトの名無しさん :2022/11/10(木) 10:19:10.77 ID:24bGZvg4a.net
- 最近学びはじめてC♯ではメインメソッドを省略できるということで楽だなーと思っていたら関数のオーバーロードのところでエラーが出てしまいました
従来通りクラス名とメインメソッドを書くやり方だと普通に出来たのでローカル関数(オーバーロードできない?)として認識されているためエラーが出てるという認識で合っていますか?
メインメソッドを省略した場合どうやってもオーバーロードできないのでしょうか?
- 688 :デフォルトの名無しさん :2022/11/10(木) 10:33:00.98 ID:vuUWLQnn0.net
- >>687
トップレベルに書かれたメソッドはローカル関数になります
cf) //ufcpp.net/study/csharp/misc/miscentrypoint/#top-level-statements
- 689 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/10(木) 18:44:43.64 ID:QLIhXLlU0.net
- ツイートって文字数決まってなかったっけ?
このパターンなら昔は固定長とかも候補になっただろうに
最近の文字コード事情考えると固定長は厳しいよなぁ
- 696 :デフォルトの名無しさん :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):2022/11/11(金) 11:48:16.03 ID:V/N8drZJM.net
- ここで出てる案だと普通はタブ区切りがいい
汎用性がある
excelやpythonのpandasでシンプルに読める
VSCodeでアドインもある
- 699 :デフォルトの名無しさん :2022/11/11(金) 12:23:50.12 ID:z+UtuJ+k0.net
- >>698
>>679 の回答によると思うが
- 700 :デフォルトの名無しさん :2022/11/11(金) 12:29:30.36 ID:8WOXnYS7M.net
- システムとして必要がないので抹殺するのみ
- 701 :デフォルトの名無しさん :2022/11/11(金) 13:24:51.05 ID:zPVyBVcV0.net
- 馬鹿みたいにHTML解析してデータ取得してるならまだしも普通にapi投げてるならjson一択やろ
- 702 :デフォルトの名無しさん :2022/11/11(金) 13:33:07.32 ID:OBpw9JhUa.net
- ふつーYAML
- 703 :デフォルトの名無しさん (ワッチョイ a2bd-+nMC):2022/11/11(金) 16:29:42.18 ID:WVb8D07I0.net
- 初めまして。
.NetCoreでコマンドラインみたいな改行させながらのログ表示をさせようと思ったのですが、どんなコントロール使えば良いのでしょう? 出来れば履歴遡れるようにスクロールバー付きで。
ラベルもテキストボックスもうまく表示してくれない・・・shownイベント以下に書いたからかな。
- 704 :デフォルトの名無しさん (ワッチョイ f533-rIwK):2022/11/11(金) 16:42:33.46 ID:GYEdeJz40.net
- >>703
画面への表示は何を使ってるの?
WinForms? WPF? それともそれ以外の何か?
- 705 :デフォルトの名無しさん (アウアウウー Sacd-Aj/S):2022/11/11(金) 16:50:47.79 ID:YvvI/C4ma.net
- 同じところで普通に文字列渡したら表示されるなら読み込みに失敗してるのでコントロールのせいではない
- 706 :デフォルトの名無しさん :2022/11/11(金) 18:11:52.32 ID:FjpNhKohp.net
- ただのテキストボックスとかラベルだと
そのとき持ってるテキストしか表示しないから
アペンドしてくしか無いんじゃね?
- 707 :722 :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 :2022/11/11(金) 18:24:05.80 ID:WVb8D07I0.net
- >>706
なるほど・・・試してみます。
- 709 :デフォルトの名無しさん :2022/11/11(金) 18:38:29.81 ID:k1VRcWZVa.net
- キモイインデント
- 710 :デフォルトの名無しさん :2022/11/11(金) 19:16:48.66 ID:7I/0fxGc0.net
- >>707
GUIなので実行ボタンでも押した時に処理すればいいんじゃないですかね?
ボタンの配置は気合を入れなくてもツールボックスからマウスでポトペタすると完成ですよ
- 711 :722 :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 :デフォルトの名無しさん :2022/11/12(土) 09:45:26.79 ID:zAtFaE7C0.net
- スタンドアローンなアプリで、アプリの起動をパスワード保護したいのですが、ILSpy等で丸見えにならない程度の強度を持つにはどのような方法がありますか?
- 713 :デフォルトの名無しさん :2022/11/12(土) 09:59:48.08 ID:tbSOUgpp0.net
- C#以外でdllにしとけば?
- 714 :デフォルトの名無しさん :2022/11/12(土) 10:23:23.19 ID:B4kjFmw80.net
- >>712
パスワードチェックロジックを難読化ツールでぐちゃぐちゃにすると追う気無くなる
- 715 :デフォルトの名無しさん :2022/11/12(土) 10:29:06.28 ID:ZNG2TRSk0.net
- >>712
適当なアルゴリズムのハッシュ値を比較すれば?
- 716 :デフォルトの名無しさん :2022/11/12(土) 12:11:02.84 ID:Ra6ElU+i0.net
- t
- 717 :デフォルトの名無しさん :2022/11/12(土) 12:12:52.85 ID:bRljaFHR0.net
- >>712
んなもんローカルに全てのデータがある時点で何しても無駄
ILだけ対策すればいいならネイティブコンパイルすればいい
そうすりゃ他のネイティブアプリと同じく機械語になるから
- 718 :デフォルトの名無しさん :2022/11/12(土) 12:13:15.16 ID:Ra6ElU+i0.net
- k
- 719 :デフォルトの名無しさん :2022/11/12(土) 12:17:11.67 ID:Ra6ElU+i0.net
- n
- 720 :デフォルトの名無しさん :2022/11/12(土) 13:44:40.40 ID:4XgMUuW5M.net
- >>712
アプリの本体をパスワード付きzipかなんかで圧縮しといて動的にロードする
- 721 :デフォルトの名無しさん :2022/11/12(土) 13:48:14.08 ID:YXyqvQzKa.net
- >>720
ダサすぎるし解凍したところでコピーできんじゃん
- 722 :デフォルトの名無しさん :2022/11/12(土) 13:55:42.98 ID:guv9Rfqm0.net
- パスワードのみのテキストファイルを
そのパスワードでzip圧縮
解凍成功と中身の照合で実行継続か
- 723 :デフォルトの名無しさん :2022/11/12(土) 13:57:46.17 ID:YXyqvQzKa.net
- >>722
実行ファイルをバイナリエディタで開いて照合する箇所を飛ばす命令を書き込めば照合しなくなるぞ
- 724 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/12(土) 15:00:48.57 ID:ajB/boEg0.net
- ディスクに平文ファイルを書き出したところを盗まれる。
オンメモリでやりたいけどそっちはデータ実行で引っかかるんだよな。
- 727 :デフォルトの名無しさん :2022/11/12(土) 15:02:24.87 ID:YXyqvQzKa.net
- >>724
暗号化する部分とキーが平文だからだめだな
- 728 :デフォルトの名無しさん :2022/11/12(土) 15:11:29.38 ID:c/ILT9OL0.net
- まあ>>717の言う通りで
結局現行の高価な商用アプリはほぼシングルユーザーライセンスに移行してるし
今時ネットに繋いでないなんてありえないからKMSみたいに一定期間で認証させるとかだな
実行したらメモリに全部展開されるしそこ覗かれるようならローカルのファイルをいくら細工しても無駄だよ
- 729 :デフォルトの名無しさん :2022/11/12(土) 15:12:12.94 ID:LpiKZFMR0.net
- なんか変に面倒な方向にしようとする人たちがいるな
>>712
パスワードを知られたくないだけなら>>715で十分。MD5でもSHA-512でもお好きなもので
パスワード起動部分を突破されたくないなら>>717
- 730 :デフォルトの名無しさん :2022/11/12(土) 15:16:20.60 ID:c/ILT9OL0.net
- >>711
まずWindowsのGUIの基礎を確認した方がいいよ
メッセージループの仕組みやformの作成から表示までにどのイベントがどういう順序で呼ばれるかとか
shownのタイミングで設定が必要な場合もあるけど質問の内容はloadの段階で片がつくんじゃないかね
- 731 :デフォルトの名無しさん :2022/11/12(土) 15:27:16.04 ID:2L2Z04CZ0.net
- ライセンス認証前提でレスしてる人が多いけど本当にそういう用途なのか?
今どきそんなことするかな?
- 732 :デフォルトの名無しさん :2022/11/12(土) 15:54:02.21 ID:ncy2h0/Ld.net
- そのパスワード認証必要?
- 733 :デフォルトの名無しさん :2022/11/12(土) 15:56:41.52 ID:ncy2h0/Ld.net
- 毎回入力させるのか
次回以降のためにキャッシュでファイルローカルに持たせた場合、どう保存するのか
- 734 :デフォルトの名無しさん :2022/11/12(土) 16:04:56.79 ID:Y/i2pfZ30.net
- どうって普通にパスワード置くだけじゃね
- 735 :デフォルトの名無しさん :2022/11/12(土) 16:21:43.32 ID:ncy2h0/Ld.net
- 普通に置くパスワードって必要?
- 736 :デフォルトの名無しさん :2022/11/12(土) 16:29:23.68 ID:Y/i2pfZ30.net
- ?
- 737 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/12(土) 16:51:30.20 ID:ajB/boEg0.net
- osのログインとアプリの起動を同列には考えられんが、linuxも
ディスクを抜き取って /etc/passwd を書き換えられたらアウト。
- 740 :デフォルトの名無しさん :2022/11/12(土) 17:27:01.84 ID:vKl12ZSx0.net
- みんな俺のために働け
- 741 :デフォルトの名無しさん :2022/11/12(土) 17:29:44.19 ID:ZNG2TRSk0.net
- 今どき /etc/passwd にパスワードおいてるディストリビューションってあるの?
- 742 :デフォルトの名無しさん :2022/11/12(土) 17:48:17.21 ID:ajB/boEg0.net
- そこは本質的な話じゃないから適宜shadowにでも読み替えて。
- 743 :デフォルトの名無しさん :2022/11/12(土) 17:52:51.14 ID:2L2Z04CZ0.net
- >>737
ハッシュ化するのは平文パスワードを保存しないためなんだが・・・
- 744 :デフォルトの名無しさん :2022/11/12(土) 17:59:12.62 ID:1r3Bwkn20.net
- >>737
今時平文パスワードを保存って発想が出て来るのは不味いぞ
- 745 :デフォルトの名無しさん :2022/11/12(土) 18:17:21.03 ID:ZNG2TRSk0.net
- >>743
ハッシュ値にこだわるなら、ストレッチングの回数を適当に減らしたハッシュ値を保存→次回以降は減らした回数ストレッチングして検証。でも良いと思うけど、すでにユーザの手元にパスワードがある前提のスタンドアロンアプリだからねぇ
適当なトークンの作成ロジックが隠せない以上平文で良いと思う
平文が嫌なら、毎回パスワードを聞く感じかなぁ
- 746 :デフォルトの名無しさん :2022/11/12(土) 18:49:41.37 ID:Y/i2pfZ30.net
- ハッキングでもされなきゃローカルに保存したパスワードなんて流出しないやろ
- 747 :デフォルトの名無しさん :2022/11/12(土) 18:53:34.55 ID:lzvWNBzY0.net
- ローカルで動作するアプリは、極論言ってしまうと労力惜しまなければどうやってもクラッキング出来てしまうからなぁ
ドングルみたいなハードウェアや、ネットワーク認証挟むとかなり強固にはなるけど
結局のところ、どこまでの強度が必要かって話になる
- 748 :デフォルトの名無しさん :2022/11/12(土) 18:56:34.83 ID:THWEmJXVa.net
- いくら認証を強化しても認証をスキップするよう書き換えられたら終わるんだから気にしないが吉
- 749 :デフォルトの名無しさん :2022/11/12(土) 19:00:47.98 ID:Y/i2pfZ30.net
- ユーザーが保存したキーの窃取とアプリのキーの解析を混同してる奴いそう
- 750 :デフォルトの名無しさん :2022/11/12(土) 19:33:04.85 ID:guv9Rfqm0.net
- >>712
> ILSpy等で丸見えにならない程度
じゃないのか・・・
- 751 :デフォルトの名無しさん :2022/11/12(土) 19:47:44.72 ID:bRljaFHR0.net
- その程度を求めてるならネイティブコードにコンパイルすればいいんだって
逆アセンブルで丸見えだけどな
なぜかILだけ逆アセンブルできると思ってるやつ時々いるよな
- 752 :デフォルトの名無しさん :2022/11/12(土) 19:56:29.64 ID:lzvWNBzY0.net
- 何なら難読化ツールもあるし
- 753 :デフォルトの名無しさん :2022/11/12(土) 19:57:28.32 ID:Y/i2pfZ30.net
- バイナリ改変したら動かないようにできないの?
- 754 :デフォルトの名無しさん :2022/11/12(土) 20:00:08.63 ID:syTmwMgY0.net
- プログラムコードにしか見えない文字列をデータとして格納しておいて、それをキーにする
- 755 :デフォルトの名無しさん :2022/11/12(土) 20:04:47.69 ID:THWEmJXVa.net
- てかデフォで難読化してくれよ
- 756 :デフォルトの名無しさん :2022/11/12(土) 20:07:09.00 ID:guv9Rfqm0.net
- >>753
それが完璧に出来るならコンピュータウィルスの大部分が無くなりそう
- 757 :デフォルトの名無しさん :2022/11/12(土) 20:08:53.77 ID:lzvWNBzY0.net
- >>755
パフォーマンスは落ちるだろうし、別に難読化が要らないプログラムの方が多いから
そんなもんオプションでいいだろ
- 758 :デフォルトの名無しさん :2022/11/12(土) 20:09:20.08 ID:ZNG2TRSk0.net
- >>722
コレ結構好きかも
個別にパスワードを設定したいならかなりお手軽だね
- 759 :デフォルトの名無しさん :2022/11/12(土) 20:10:42.29 ID:THWEmJXVa.net
- >>757
オプションでもいいけどVSに実装してくれ
- 760 :デフォルトの名無しさん :2022/11/12(土) 20:13:56.36 ID:ZNG2TRSk0.net
- >>753
配布時の検証にはMD5とかよく見るね
動作も制限できそうだけど、その部分を回避されるとやっぱりだめだからなぁ
- 761 :デフォルトの名無しさん :2022/11/12(土) 20:17:55.47 ID:EWhm+EbT0.net
- 起動は別ファイルからってやつは
実行前にバイナリ確認してるのかな?
- 762 :デフォルトの名無しさん :2022/11/12(土) 23:06:21.95 ID:B4kjFmw80.net
- >>759
Dotfuscatorがあるでしょ
- 763 :デフォルトの名無しさん :2022/11/13(日) 00:12:55.08 ID:0j2qr49h0.net
- zipはパスワード分からなくても中身のファイル名わかれば上書き可能なので
いろいろ工夫しないとめちゃくちゃ簡単に突破されるよ
- 764 :デフォルトの名無しさん :2022/11/13(日) 00:51:17.24 ID:uK9Cge080.net
- >>753
アプリの電子署名がそれじゃないの?
Windowsだけど
- 765 :722 :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 :デフォルトの名無しさん :2022/11/13(日) 06:46:08.30 ID:4/Hqzxve0.net
- 基礎はWebの断片的な情報だと厳しいからでかい図書館や本屋で紙の本でも読んで来い
電子はパラパラめくって中身を確認できないからできれば紙がいい
- 767 :デフォルトの名無しさん :2022/11/13(日) 07:30:57.54 ID:BdGTc1Dp0.net
- >>763
確かに >>722 のままだとちょっとまずいですね
仕組みがバレてれば、ユーザが任意のパスワードでzipファイル作って簡単に置き換え可能なので
方向性は好きだけど、もうちょっとねる必要ありですね
- 768 :デフォルトの名無しさん :2022/11/13(日) 07:57:25.67 ID:BdGTc1Dp0.net
- >>767
少し考えてみたけど、ロジックが覗き見れる前提だとこの方法はダメかな...
何やっても置き換えで対応できる気がする
- 769 :デフォルトの名無しさん :2022/11/13(日) 08:10:56.99 ID:aD+9aMvk0.net
- 上にも書かれてるけどガチでやられたらどんな方法使っても完全な対策なんて無理だよ
- 770 :デフォルトの名無しさん :2022/11/13(日) 08:52:02.92 ID:BdGTc1Dp0.net
- まぁ、何を脅威としてみなすか、どこまで許容するかですよね
俺が提案したハッシュ値での検証もアルゴリズムばれ、ハッシュ値ばれまでは大丈夫だけど、書き換えには無力だし
ともあれ、個人的には面白い話題だったわ
- 771 :デフォルトの名無しさん :2022/11/13(日) 09:04:58.19 ID:6eP485iya.net
- この質問者の場合は知らんけどユーザーがパスワード入力を許せるくらいの良いソフトを作ってから言えと言いたくなる事例が割とある
まず使ってもらうハードルが高いのに余計なことしなくていいんだよ
気に入ったユーザーは自然と財布が緩むからより便利になる機能をプラグインで販売すりゃいい
- 772 :デフォルトの名無しさん :2022/11/13(日) 09:11:01.42 ID:aD+9aMvk0.net
- いきなり謎の上から目線w
- 773 :デフォルトの名無しさん :2022/11/13(日) 09:24:11.50 ID:4jLRyBA70.net
- 高額なソフトを作っている会社はPC内でのチェックが簡単に突破出来てしまう事を判ってるから、
大体Webアクティベーションやドングルを採用してる
- 774 :デフォルトの名無しさん :2022/11/13(日) 09:31:37.68 ID:BdGTc1Dp0.net
- 上から目線じゃなくて実体験じゃない?
ちなみに俺は実体験としてやらかしたことがあるw
無駄に難読化しようとしたわ
- 775 :デフォルトの名無しさん :2022/11/13(日) 09:51:17.84 ID:93KwHlO1a.net
- なんかこのスレ上から見られてるんじゃないかといつもビクビクしてる妙に卑屈なやついるな
それ多分初心者だから自信がないんじゃなく何年やっても初心者だから自信がないんだぞ
普通初心者なんて三ヶ月で卒業するから学ぶのに精一杯で卑屈になってる暇なんかないわ
- 776 :デフォルトの名無しさん :2022/11/13(日) 10:09:47.66 ID:2jgXqyDd0.net
- >まず使ってもらうハードルが高いのに余計なことしなくていいんだよ
このセリフは「良いソフトを作ってから言えと言いたくなる事例」の本人に言ってやれってことだろ。
- 777 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/13(日) 12:20:42.58 ID:lSfeZyRJa.net
- 卑屈なやつだなw
- 780 :デフォルトの名無しさん :2022/11/13(日) 16:25:03.21 ID:7K/NPeS80.net
- 人の成果物をタダで使わせろって暴れるキチガイは勘弁してほしいわ
- 781 :デフォルトの名無しさん :2022/11/13(日) 16:45:13.25 ID:4/Hqzxve0.net
- 世の中そんなやつばかりだったからこうなったわけで
WindowsでUWP使って小銭は稼げてるかい?
- 782 :デフォルトの名無しさん :2022/11/13(日) 18:21:39.43 ID:RwIffndXM.net
- がっぽり儲けてます
- 783 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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):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):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 :デフォルトの名無しさん :2022/11/14(月) 19:31:42.89 ID:hjaMiJ3dM.net
- >>794
どっちも元々Javaフォロワーでしょ
C#はJavaからの飛躍が大きいからDartの方が覚えること少ないよ
- 800 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/14(月) 21:18:14.71 ID:ans/MkehM.net
- >>784
本当にお前は迷惑で恥知らずなゴミだなMAUI君よお
MAUIの質問ならここじゃなくてMAUIスレに持ち込めよ
Xamarinスレだったのをスレ内で合意を取るようなこともせず勝手にMAUIスレへスレタイを変えて
散々私物化してるのはお前だろ?
そっちのスレで責任もって解決しろよ
なんでわざわざこっちのスレへ持ってくるんだ?
お前が好き勝手やってるせいで答えてくれるようなスレ住民がみんないなくなっちゃったとかそういうことか?
- 807 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/14(月) 22:11:38.95 ID:ans/MkehM.net
- すげーな
さすが恥知らずのMAUI君
先にMAUIスレで質問するようなこともせずに
このスレでMAUIの質問をしておきながら
>>809みたいなことを平然と言ってのけるこの神経
でもって826,827みたいな自分にとって都合の悪いことは何一つ見なかったことにしてスルーするんですね?
いやー「.NET MAUI HighSchool」ってコテでしたっけ
この実績で就職活動とか頑張ろうとしてるんですよね
おみそれしました
- 811 :デフォルトの名無しさん :2022/11/14(月) 23:59:43.67 ID:ans/MkehM.net
- 「.NET MAUI HighSchool」さん、朝から晩までこの板に張り付いて
本日の書き込みランキングのワンツーフィニッシュおめでとうございます!!
http://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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/16(水) 22:59:08.10 ID:Ndk7vWNsM.net
- なんだ消えたんじゃなかったのか
とりあえず取って付けたような「つけ忘れただけ」なんて後出しの言い訳乙
で結局直近の833以外のレスは見なかったことにしてまた逃げ出すんでしょ?
さすがMAUI君
- 817 :デフォルトの名無しさん :2022/11/16(水) 23:09:20.45 ID:Ndk7vWNsM.net
- てゆうか、実況版に
「.NET MAUIでAndroidでサイン波の出力をした天才プログラマーだけど質問ある?」
なんてタイトルのスレ立てたはいいものの
誰にも相手してもらえなくてレス数1桁で落ちてたけど、このスレ立てたのもMAUI君だよね?
その知識も決して自分のものじゃなくて
この板で1から10まで聞いて回って集めた受け売りの知識だよね??
いやー天才のやることはひと味もふた味も違いすぎて凡人にはその感性が理解できませんわー
- 818 :デフォルトの名無しさん :2022/11/16(水) 23:11:21.10 ID:Ndk7vWNsM.net
- ほかにも実況板とかVIPとかでいろいろスレ立てても誰にも相手してもらえてないみたいだね
だからって、この板でまでよその板と同じ感覚でクソスレ立ててお山の大将気取ったりするのはどうかと思うよ
- 819 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/18(金) 18:34:03.07 ID:De8oASvZM.net
- 人間初心者か
このスレC#初心者用であって人間初心者用じゃねえんだよな
保育園通ってろよガキ
- 834 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/18(金) 23:58:15.19 ID:nTmfkfcZM.net
- 手を動かさない学ばないやつは前に進めない
くだらないことしか言えない
いつまでも同じ場所にいる
- 841 :デフォルトの名無しさん:2022/11/19(土) 19:29:30.85 ID:MFJeLtYyu
- すっげぇ本当に頭がおかしぃみたいだ…(?.? )
- 842 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/20(日) 14:45:18.61 ID:AxU0uBeT0.net
- 定期的に現れるレス古事記だと思うことにしてる
- 850 :デフォルトの名無しさん :2022/11/20(日) 15:42:59.87 ID:6Lmlby97a.net
- いやあれだろ
条件が複雑すぎてenumにできないと暴れてたアホ
- 851 :デフォルトの名無しさん :2022/11/20(日) 15:47:47.16 ID:wwqc7KSjM.net
- enumってそれが使えるスコープっていう概念もあるのですか?
- 852 :デフォルトの名無しさん :2022/11/20(日) 15:51:44.50 ID:MjJ+/fUP0.net
- 普通に継承できねぇから
ステータス並べちまうと
クラスを継承したときに
enumも継承して
ステータス増やそうとするけど
enumの継承はできないので
ステータスは定数で並べるしかない
ってだっせー状態になる
- 853 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/20(日) 16:55:21.88 ID:MjJ+/fUP0.net
- っていう構造にも関わらず
継承できないから
クラスを継承すると
enumで書いてる状態は
全部書き直し
ハイ、全部ちんぽでした!
- 857 :デフォルトの名無しさん :2022/11/20(日) 16:57:27.98 ID:qg1DZ5gK0.net
- クラス内のクラスって継承で継承できるっけ?
何がともあれメリットがないことにはならないけれども。
- 858 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/22(火) 18:54:32.20 ID:rbB+zYjt0.net
- enumの継承って、キャストの安全性が保証できなくなるんじゃない?
- 863 :デフォルトの名無しさん :2022/11/22(火) 20:08:00.71 ID:5norvibI0.net
- 継承と言うか列挙子の追加やね
確かにたまにやりたいと思うことはある
enum A {A1, A2, A3};
enum B: A {B1, B2};
みたいにできればいいのにね
- 864 :デフォルトの名無しさん :2022/11/22(火) 20:11:29.21 ID:tdt1l6wr0.net
- んまあどうでもいいです…
- 865 :デフォルトの名無しさん :2022/11/22(火) 20:43:08.15 ID:F4U9XWNgd.net
- >>863の場合はA型をB型にキャストするのは型安全で逆は非安全だから、通常の継承とは逆になってしまう
TypeScriptみたいに type B = A & enum { B1, B2 } ができるといいんだろうね
- 866 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/23(水) 00:07:27.78 ID:6lN/+0f80.net
- >>863
enumB(1〜5)を受け入れるところは当然enumA(1〜3)も受け入れたいわけだが
これを認めると親クラスが子クラスに変換できることになる
>>865
せめてenumからenumへの暗黙変換定義できればなぁ
結局全部再定義して、int(元の数値)介して変換とか
それならもとからintずらずら並べたほうが良いかという
- 869 :デフォルトの名無しさん :2022/11/23(水) 00:09:25.48 ID:GHFjAPMfd.net
- >>866
ああ、確かに間違いだな
&じゃなくて|だ
- 870 :デフォルトの名無しさん :2022/11/23(水) 01:13:39.40 ID:w1dmgQVP0.net
- な、enumがクソなせいで
クラスの継承までクソになってるだろ
早くenumの継承できるようにしろよ
これができなくてどーすんのよ
って機能な実は
- 871 :デフォルトの名無しさん :2022/11/23(水) 01:27:51.47 ID:mCXmHJvQ0.net
- まさに鬼の首を取ったよう
- 872 :デフォルトの名無しさん :2022/11/23(水) 06:34:20.68 ID:3geqF3we0.net
- クラス内に書かなきゃいい
- 873 :デフォルトの名無しさん :2022/11/23(水) 08:51:16.99 ID:g5bfG+kA0.net
- >>865,868
だから俺が欲しいのは継承じゃなくて列挙子の追加って言ってるだろ
enum B: A {B1, B2}; だと継承と間違えると言うなら別の構文でもいい
ベースの定義を引き継いで定義できればいい
- 874 :デフォルトの名無しさん :2022/11/23(水) 11:31:55.12 ID:hhL0Iwa90.net
- enum継承を実装するならまずはstruct継承を実装しないといけない
そして値型の継承をバンバン行うC++ですらenum継承はサポートされてないから諦めるんだな
とは言え.net standard2以上ならソースジェネレーター使えるんだからC++のマクロ実装よりも堅牢にenum継承を叶えられるのがC#
- 875 :デフォルトの名無しさん :2022/11/23(水) 12:09:29.79 ID:A1o24w6O0.net
- enumの継承なんて欲しいと思った事一度も無いわ
- 876 :デフォルトの名無しさん :2022/11/23(水) 12:14:49.51 ID:w1dmgQVP0.net
- >>875
状態遷移をするものを書いたことないからだろ
書くと一発で不満が出る
仕方なくenumで定義したステータスを
const intに直す作業をすることになる
- 877 :デフォルトの名無しさん :2022/11/23(水) 12:51:02.69 ID:Gf+fcBNM0.net
- 変性的にどうなんかな?
基底enumを要求するところに派生enum渡して大丈夫?
- 878 :デフォルトの名無しさん :2022/11/23(水) 13:10:21.66 ID:HMCqpO+TM.net
- >>876
それ設計大丈夫?
コード上のコンテキストで十分なものまで状態にしちゃってたりしない?
- 879 :デフォルトの名無しさん :2022/11/23(水) 13:31:54.09 ID:w1dmgQVP0.net
- >>878
そんなの問題じゃねぇじゃん
適切な状態遷移のクラスを作って
継承するとenum使えないんだから
- 880 :デフォルトの名無しさん :2022/11/23(水) 13:34:04.83 ID:w1dmgQVP0.net
- c#のenum周りを作ったやつは
状態遷移も作ったことがない
クソってだけ
まあ、言語開発に状態遷移なんて
いらんだろし
知らないのも無理はない
ってだけの話でしょ
- 881 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/23(水) 13:41:09.59 ID:GkNkmjh5M.net
- まず継承出来る言語を挙げてくれないとどんな設計を求めてるのかわからん
- 883 :デフォルトの名無しさん :2022/11/23(水) 13:44:23.94 ID:w1dmgQVP0.net
- >>882
状態遷移作ったことねぇやつは遠慮してくんない?
- 884 :デフォルトの名無しさん :2022/11/23(水) 13:55:25.91 ID:EqePYP8Fp.net
- 初心者質問スレでいつまでいきがってんだか
公式にいしゅー投げとけよ
- 885 :デフォルトの名無しさん :2022/11/23(水) 14:04:53.83 ID:Gf+fcBNM0.net
- >>879
継承したクラスで遷移する状態を拡張するのはいいとして、そこにenumも派生して使おうってのが
設計として間違ってるんじゃね?
- 886 :デフォルトの名無しさん :2022/11/23(水) 14:18:05.41 ID:w1dmgQVP0.net
- >>885
そしたら状態はどうやって定義するの?
もちろんenumではない
ステータス用の型が必要っていう意見ならわかる
現状enumしかないってだけ
statetype型なんてできたらそれはそれでよい
enumの拡張だと>>877の問題がヘタクソがたくさんいる職場では問題になりそう
- 887 :デフォルトの名無しさん :2022/11/23(水) 14:28:50.84 ID:eUenOEMN0.net
- 状態推移ってstate machine?
enumでやんの?
- 888 :デフォルトの名無しさん :2022/11/23(水) 14:33:23.73 ID:Gf+fcBNM0.net
- >>886
enumを派生するんじゃなくて別のenumを使う。
- 889 :デフォルトの名無しさん :2022/11/23(水) 14:42:16.47 ID:fS1C7GFxa.net
- アスペが大暴れしてるな
- 890 :デフォルトの名無しさん :2022/11/23(水) 14:49:08.23 ID:eUenOEMN0.net
- もしかしてHierarchical Finite State Machinesをenumでやろうという話?
ちょっと見た事も聞いた事もないので興味あります
- 891 :デフォルトの名無しさん :2022/11/23(水) 15:18:56.76 ID:hhL0Iwa90.net
- >>880
逆にどの言語ならあるんだい?
C++なんてC#で言うところのEnum.GetValuesやEnum.GetNamesすら標準サポート無しだぞ
テンプレート黒魔術使ってコンパイラに超負荷をかけて実装できなくもないが
- 892 :デフォルトの名無しさん :2022/11/23(水) 15:22:25.48 ID:hhL0Iwa90.net
- さっきも言ったけどソースジェネレーター利用したらかなりトリッキーなこともコンパイルセーフに行えるんだから騒いでる暇あったら作れば良いのに
- 893 :デフォルトの名無しさん :2022/11/23(水) 15:24:55.83 ID:fS1C7GFxa.net
- enumの使い方も知らないやつにソースジェネレータとか無茶言うなよ
- 894 :デフォルトの名無しさん :2022/11/23(水) 15:45:58.22 ID:Z18k9Xb90.net
- 状態の管理は >>881 じゃだめなのかな。
自分も昔は継承したがってたけど、結局 893 みたい基底に追記するようになったんだよね。
enum をシリアライズすると int 扱いになるから、複数のクラスで継承して使う場合に、ほかのクラスの enum 定義を把握しておかないと危ないケースがあるような気がするんだけど。
- 895 :デフォルトの名無しさん :2022/11/23(水) 16:01:46.11 ID:zunuLtNb0.net
- enumはCから受け継いだものだからこの設計についてC#を責めるのがまずアホ
enumの主な使いみちは値を限定することだ
要するにintの値を引数にしたいがその値の種類は3種類に限定したい、それ以外の値を渡そうとしたらコンパイルエラーにしたい、そういう時にenumを使う
その関数は引数として3種類しか渡らないことを保証されてるから無理やり他の値を渡した際には未定義動作になる
enumが継承できてポリモーフィズムが効くとすれば3種類の値しか来ない関数に普通に他の値を渡すことができてしまうだろw
なんでenumを使いたいか知らんけど使い方間違ってるからenumをやめて正しい方法を使え
以上
- 896 :デフォルトの名無しさん :2022/11/23(水) 16:34:31.63 ID:Z18k9Xb90.net
- すげー納得出来る理由が来た。w
感謝。
- 897 :デフォルトの名無しさん :2022/11/23(水) 16:53:35.93 ID:g5bfG+kA0.net
- まだ継承とか言ってるアホが居るのかw
今までのenumの機能だと継承なんてできても意味ない
継承したいたらenumの各値にメソッド定義出来るようにするとかぐらいの機能追加しないとな
- 898 :デフォルトの名無しさん :2022/11/23(水) 17:19:16.06 ID:w1dmgQVP0.net
- >>895
でもまさに状態遷移の状態の定義なんてenumの出番だと思うんだけど
ここでこいつ役に立たなかったらほか何に使えるのってぐらい
ちなみにc++でこの辺悩んだことないなぁと思ったら#defineで書いてたわ
- 899 :デフォルトの名無しさん :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):2022/11/23(水) 17:57:30.88 ID:zunuLtNb0.net
- >>898
なぜそこでenumの出番だと思ったのか
明らかに違うしどこで使うかはたった今説明しただろw
お前の設計はおかしいと何度も言われてるのに頑なに耳をふさいでるからできないんだぞ
- 901 :デフォルトの名無しさん (ワッチョイ ff07-1oEr):2022/11/23(水) 18:00:35.30 ID:zunuLtNb0.net
- つか状態遷移で通じると思うところからやめろ
状態遷移の実装なんて何種類もあるわ
最終的に何がしたいのか言葉で説明できないやつは自分のやりたいことをプログラミング言語に直すことすらできんぞ
一般的なステートマシンでいいのか?
- 902 :デフォルトの名無しさん (ワッチョイ e201-IwB9):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):2022/11/23(水) 18:09:35.33 ID:g5bfG+kA0.net
- >>901
enumの話が状態遷移の状態を表すために使ってると分からないなら無理に話しに加わらなくていいぞ
- 904 :デフォルトの名無しさん :2022/11/23(水) 18:32:51.60 ID:zunuLtNb0.net
- >>903
お前の言う状態遷移が何を指してるか言わないならお前の脳内かチラシの裏で処理しとけ
ステートマシンなら普通にインスタンスのパターンマッチングが使えるからそれがわからなきゃ無理してプログラミングの話に加わろうとするなよw
- 905 :デフォルトの名無しさん :2022/11/23(水) 18:33:43.64 ID:zunuLtNb0.net
- 多分switchが数値や文字列にしか使えないと思ってるド素人なんだろ?w
- 906 :デフォルトの名無しさん :2022/11/23(水) 18:35:31.89 ID:zunuLtNb0.net
- switchが使いたいからenumなんだろ?w
おい正直に言ってみろよw
- 907 :デフォルトの名無しさん :2022/11/23(水) 18:41:28.03 ID:Gf+fcBNM0.net
- なんか変なのが2人に増えた
- 908 :デフォルトの名無しさん :2022/11/23(水) 18:47:35.71 ID:eUenOEMN0.net
- デザインパターンのステートマシンは登場しないような気がする
- 909 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/23(水) 19:03:20.20 ID:v/FrQePk0.net
- なんだろうフツーに連想配列じゃいかんの?
- 911 :デフォルトの名無しさん :2022/11/23(水) 19:04:39.67 ID:Gf+fcBNM0.net
- typescriptその他の代数的データ型みたいに enum B = .A | B1 | B2 とやりたい気持ちはわかる。
- 912 :デフォルトの名無しさん :2022/11/23(水) 19:05:08.39 ID:w1dmgQVP0.net
- >>909
それを言うならそもそも継承なんか使うなよって思う
まあ、コピペで貼ったほうが将来的に継承よりもうまくいってしまうケースはありまくったのも事実
- 913 :デフォルトの名無しさん :2022/11/23(水) 19:07:17.68 ID:LfUozzif0.net
- >>911
TypeScriptでもenumでunion作ったりしないよ
できるけどやらない
やってる人がいるならモデリング方法が間違ってる
- 914 :デフォルトの名無しさん :2022/11/23(水) 19:12:23.17 ID:zunuLtNb0.net
- 状態遷移が何か良くわからずに最近知ったやつが唯一の状態遷移だと思ってるやつに何を言ってもむだだよ
教科書にenumを使えと書いてあったんだろうから
- 915 :デフォルトの名無しさん :2022/11/23(水) 19:13:57.53 ID:Gf+fcBNM0.net
- ああすまん誤解させた。typescriptのenumを使う話じゃなくてtypeに読み替えてくれ。
- 916 :デフォルトの名無しさん :2022/11/23(水) 19:28:19.96 ID:g5bfG+kA0.net
- >>904
enumの話だと言ってるのに...
お前パターンマッチング言いたいだけだろw
- 917 :デフォルトの名無しさん :2022/11/23(水) 19:31:42.90 ID:UGK9R6GJ0.net
- 現実のリサイクルにコストが3倍掛かるように
コード継承なんてフレームワーク利用者以外無意味だよ
自分で継承を考えながら書くことなんて時間の無駄でしかない
師匠とおだてられて弟子を育てて行くか、生涯わが道を探求していくかぐらい結果が違ってくる
- 918 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/23(水) 19:47:33.73 ID:zunuLtNb0.net
- >>916
enum使うのがおかしいとこれだけ何度も言われてるんだからどれだけボンクラでもそろそろ気づこうなw
お前の読んでる30年前の入門書が古いんだよw
- 920 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/23(水) 19:53:27.05 ID:zunuLtNb0.net
- >>920
間違ってると何度言われても聞く耳持たないなら聞くのやめたら?
- 922 :デフォルトの名無しさん :2022/11/23(水) 19:54:47.89 ID:Gf+fcBNM0.net
- 1. enum を継承できないのがおかしい。
2. enum を継承したいのがおかしい。
3. enum を使うのがおかしい。
1. と 3. がそれぞれ1人ずつだと思うのだが。
- 923 :デフォルトの名無しさん :2022/11/23(水) 19:59:02.09 ID:zunuLtNb0.net
- >>922
enumを継承できるようにすると色々不具合が出るのは既に示した通り
だから継承したいやつがおかしいしできないのは当然
ここでenumを使うのも明らかに悪手でそれは本人も使いにくいと感じてるから薄々はわかってると思う
だけど薄々しかわからないのマジでアスペwww
使いにくい時点で気づこうぜw
- 924 :デフォルトの名無しさん :2022/11/23(水) 20:06:27.70 ID:Gf+fcBNM0.net
- 3. がお前さんひとりだと言ったつもりだったんだが。
- 925 :デフォルトの名無しさん :2022/11/23(水) 20:08:52.61 ID:zunuLtNb0.net
- >>924
お前の言いたいことなんか知らんが、もっといい方法があるのに文法に文句を言いながらenumに固執するのはアホだと思わんか?w
おいおいこんな簡単な理屈がわかるやつが俺しかいないってどうなってんのこのスレ?w
- 926 :デフォルトの名無しさん :2022/11/23(水) 20:16:59.47 ID:g5bfG+kA0.net
- >>924
相手すんな、最近継承とかパターンマッチング覚えたキッズなんだろ
- 927 :デフォルトの名無しさん :2022/11/23(水) 20:18:28.43 ID:zunuLtNb0.net
- >>926
お前は早くenumの使い方覚えろよw
どう考えてもそこじゃないだろ
使いにくい時点で何か違うなーって思えよw
- 928 :デフォルトの名無しさん :2022/11/23(水) 20:23:29.96 ID:zunuLtNb0.net
- intは小さい数値しか使えないから設計したやつは頭おかしいって発狂してるやついたらアスペかなって思うだろ?
俺から見たお前らってそんな感じになってるぞ
long教えてもらったなら覚えろよw
- 929 :デフォルトの名無しさん :2022/11/23(水) 20:25:12.72 ID:Gf+fcBNM0.net
- >>925
お前さん一人だけ話がずれているんだと思うぞ。
- 930 :デフォルトの名無しさん :2022/11/23(水) 20:27:17.57 ID:KUj2Jy2fa.net
- >>929
ズレてるのはお前の頭だよw
enumを状態遷移に使いたいという話で、継承できないから使えないといつまでも文句言ってるやつに教えてやってるだけだぞw
違う話したいなら気にせずしろよ
ヅラ直してから
- 931 :デフォルトの名無しさん :2022/11/23(水) 20:34:56.61 ID:eUenOEMN0.net
- ステートパターンはポリモーフィズムを実現する方法だけど
ステートマシンは特にポリモーフィズムを実現してなくてもステートマシンになってしまうらしい
むしろポリモーフィズムのメリットがないのに状態遷移させるメリットが全く分からない
- 932 :デフォルトの名無しさん :2022/11/23(水) 20:37:28.39 ID:KUj2Jy2fa.net
- ステートマシンかどうか聞いても状態遷移知らないのかの一点張りで答えないんだよなあw
いやマジでお前が状態遷移知らないのかとw
せめてその入門書のタイトルくらい書こうやw
- 933 :デフォルトの名無しさん :2022/11/23(水) 20:39:42.92 ID:Gf+fcBNM0.net
- >enumを状態遷移に使いたいという話で、
状態を表すのに使う話なんだがこのへんがズレてるんだろうな。
- 934 :デフォルトの名無しさん :2022/11/23(水) 20:42:35.56 ID:wPRe5xEXd.net
- >>922
4. 列挙子の追加がしたい
これが入ってくるから、さらにややこしい
こちらは臨機応変かなぁ
- 935 :デフォルトの名無しさん :2022/11/23(水) 20:45:01.02 ID:KUj2Jy2fa.net
- >>933
だからそこに使うなって話だぞ
何度言えばわかるんだよ?
継承しなきゃ使えないとかいうイミフな条件ついてるのにどう使う気なんだそれ?w
- 936 :デフォルトの名無しさん :2022/11/23(水) 21:04:41.04 ID:Gf+fcBNM0.net
- >>934
列挙子の追加というのがもともとやりたいことでそれは大前提だと思う。
そこに継承を使うのは無理筋だから他の手でやれということで。
- 937 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/23(水) 21:23:05.30 ID:QiNG678ud.net
- >>984
>>922の1番がこれよね
ID:w1dmgQVP0
4番はこっち
ID:g5bfG+kA0
継承ではなく追加したい、みたいな話
包含に近いか?
- 939 :デフォルトの名無しさん :2022/11/23(水) 21:24:33.41 ID:QiNG678ud.net
- 安価ミス、、、
>>936宛ね
- 940 :デフォルトの名無しさん :2022/11/23(水) 21:48:33.88 ID:+3bsKbsu0.net
- 状態遷移ってよく知らんけど
必要に迫られるごとに似たようなことはやってるな
- 941 :デフォルトの名無しさん :2022/11/23(水) 21:52:28.30 ID:+3bsKbsu0.net
- 複数のテーブル値関数を full outer join すると面白い結果が得られるぞ
C#からは脱線するが。
機会があれば業務適用しようと思ってる
- 942 :デフォルトの名無しさん :2022/11/23(水) 22:10:16.15 ID:Gf+fcBNM0.net
- >>935
有限状態を表現するのにenumを使うのはごく普通のことでそれに文句つけてるのはお前さんだけだが?
代わりにいったい何を使えと言うんだろう?
- 943 :デフォルトの名無しさん :2022/11/23(水) 22:36:14.78 ID:Mu4NVEsX0.net
- 状態ごとの派生クラス作ったほうが楽じゃないの
enumを使い回そうってのがまずよくわかんないわ
- 944 :デフォルトの名無しさん :2022/11/23(水) 22:51:15.68 ID:v/FrQePk0.net
- Statelessとか見たら腰抜かしそう
- 945 :デフォルトの名無しさん :2022/11/23(水) 23:43:15.34 ID:rAuww2HaM.net
- こんな機能があれば便利なのにってのは分からんでも無いけど
他の言語も含めた実装状況見れば少数派がデカい声出してるだけでしょ
- 946 :デフォルトの名無しさん :2022/11/24(木) 00:18:19.16 ID:R18LG1aZ0.net
- >>942
何をってもう何度も書いただろw
enumを使うことでうまくいかないのが明白になったなら固執するのがアホ
オブジェクトやクラスはハッシュコード持ってるからenumでなくともswitchで処理できるし継承もできる
状態遷移状態遷移言ってるが教科書コピペするんじゃなく何をどうしたいのかを見据えてそれを実現しなきゃいけないぞw
- 947 :デフォルトの名無しさん :2022/11/24(木) 00:21:21.14 ID:6EroDtbH0.net
- >>923
「継承」できないしするのはおかしいのは分かったから
enumを「拡張」したいって思う
拡張したいって用途にenumを使う
どっちがおかしいって?
その理由が単にenumがそうなってないってなら、そうあるべきだって議論はありえると思うが
>>925
別に俺は固執する気はないので、そういうことはできないってならできないで良いんだが
もっといい方法って具体的には?
- 948 :デフォルトの名無しさん :2022/11/24(木) 00:24:41.88 ID:R18LG1aZ0.net
- 例えばステートマシンのノードの一つをカーソルで参照するだけでカレントステートを表現できるしカーソルを動かせばそれはもう状態遷移だろ
ノードをオブジェクトにすれば種類によって違うプロパティやメソッドも持てる
ここにenumの入る余地などない
俺が何を言ってるかわからんとすればお前の勉強不足だから伏して教えを請え
- 949 :デフォルトの名無しさん :2022/11/24(木) 00:54:01.50 ID:uAP2KDnH0.net
- enumて要素を限定するためのもんでしょ
拡張できたらぐちゃぐちゃじゃん
拡張した場合また別の名前なり必要で別ものになるでしょ
- 950 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/24(木) 12:54:31.34 ID:P04N2b5w0.net
- 継承とか拡張とは違うけど
enum StandardColor: {Red, Green, Blue}
enum ExtendedColor: {Teal, Turquoise}
とあった時にStandardColorとExtendedColorはそれぞれ個別の用途でも使うし
両方混ぜた集合からどちらか一方だけ選択する用途でも使いたいというのは理解できる
この場合はC#では言語的にはまだサポートされてない機能だから
サードパーティのライブラリを使うか自作するか
- 955 :デフォルトの名無しさん :2022/11/24(木) 17:55:35.91 ID:88NBfQl90.net
- Unityでもポリモーフィズムを実現していればクラスのカプセル化が効くから
Stateで状態が切り替わる振る舞いは同じでもサブクラスで提供される機能を変えられる
ポリモーフィズムの実現が主題であってenumに依存するとかしないとかどうでもいい事な気がする
- 956 :デフォルトの名無しさん :2022/11/24(木) 18:42:01.91 ID:EbMeVnega.net
- enumはポリモーフィズムに使うものじゃねえんだって話をしてるんだよw
- 957 :デフォルトの名無しさん :2022/11/24(木) 19:12:02.78 ID:88NBfQl90.net
- 仕様未使用はどうでもいいって言ってるのを何故復唱する必要があるのか?
- 958 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/24(木) 19:25:58.70 ID:88NBfQl90.net
- 多次元配列やジャグ配列で事足りるからenumなんぞいらんでしょ
- 961 :デフォルトの名無しさん :2022/11/24(木) 19:26:08.06 ID:1uxs9LdZ0.net
- 使えるものを使うだけじゃんよ。
- 962 :デフォルトの名無しさん :2022/11/24(木) 19:35:14.11 ID:JYVIn9dZa.net
- 使うべきところでな
enumの使い方は既に教えた
そこじゃないのも何度も言った
これでわからないボンクラは何やってもだめ
- 963 :デフォルトの名無しさん :2022/11/24(木) 19:38:42.34 ID:88NBfQl90.net
- 色々混ざってる糖質がいろんな人間が言ったことを勝手に混ぜて
訳の分からない事を言ってるのか?
- 964 :デフォルトの名無しさん :2022/11/24(木) 19:45:03.01 ID:JYVIn9dZa.net
- 色んな糖質がバカなことばかり言ってるのに区別する必要あるか?w
- 965 :デフォルトの名無しさん :2022/11/24(木) 19:46:38.20 ID:JYVIn9dZa.net
- 見りゃわかるが俺はバカなこと言ったやつをバカにしてるだけだからそれにカチンとくるやつは同じバカだぞ
- 966 :デフォルトの名無しさん :2022/11/24(木) 19:48:18.80 ID:88NBfQl90.net
- 最初に質問した奴はステートマシンとステートパターンの区別もポリモーフィズムも知らない奴だったわけだが
何でも同じに見えるというならそうなのだろう 知った事ではないし興味すらもない
勝手に吠えてればいい
- 967 :デフォルトの名無しさん :2022/11/24(木) 20:22:54.20 ID:JYVIn9dZa.net
- enumだと都合が悪いと質問者すら発狂してるのにいつまでもそれに固執するようなのは同じレベルでしかないだろw
都合が悪いなら使ったらだめと気づこうや
- 968 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :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 :デフォルトの名無しさん :2022/11/27(日) 23:14:07.98 ID:MIxI7txJ0.net
- ume
- 980 :デフォルトの名無しさん :2022/11/28(月) 21:44:09.15 ID:vwJLsOsN0.net
- bool isGod = true;
- 981 :デフォルトの名無しさん :2022/11/28(月) 22:44:48.65 ID:SzIAkLME0.net
- うめうめ
- 982 :デフォルトの名無しさん :2022/11/28(月) 23:09:55.94 ID:ozyLKgmt0.net
- 梅火星
- 983 :デフォルトの名無しさん :2022/12/09(金) 19:49:47.35 ID:KigkNyOs0.net
- いい加減埋めようよ。
- 984 :デフォルトの名無しさん :2022/12/09(金) 19:52:30.95 ID:lbVfgM7Sp.net
- 埋め屋敷
- 985 :デフォルトの名無しさん :2022/12/09(金) 20:08:40.11 ID:xaxCUQ87a.net
- 埋めなくていいよ
次スレもいらん
- 986 :デフォルトの名無しさん :2022/12/09(金) 20:10:07.88 ID:8ML1skqU0.net
- もッス
- 987 :デフォルトの名無しさん :2022/12/09(金) 20:14:42.85 ID:LL4MqSod0.net
- 誰も必要としてなくて草
- 988 :デフォルトの名無しさん :2022/12/09(金) 20:16:37.36 ID:LL4MqSod0.net
- NullReferenceException
- 989 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 989
250 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200