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

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 5f01-NOMG)
垢版 |
2022/09/18(日) 14:39:29.51ID:VjUDO6tf0
次スレを立てる時は↑を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デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
垢版 |
2022/09/18(日) 14:39:44.87ID:VjUDO6tf0
新しく立てましたがあってますかね?
3デフォルトの名無しさん (ワッチョイ ffbb-W3aP)
垢版 |
2022/09/18(日) 15:29:46.75ID:wEL99hbX0
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
2022/09/18(日) 15:57:15.60ID:lQR3ujpZ0
いちおつ
大体あってるけど冒頭のおまじないが消えてるね…
!extend:checked:vvvvv:1000:512
5デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
垢版 |
2022/09/18(日) 16:33:33.24ID:VjUDO6tf0
>>4
ほんとだ
書き込むときはあったのにな…
6デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
垢版 |
2022/09/18(日) 16:35:43.35ID:VjUDO6tf0
立て直したほうがいいのかな?
2022/09/18(日) 16:35:49.19ID:6iWR4o+g0
スレ立てるときは1~2行ぐらい追加して立てた方が良いかなって話だよね
8デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
垢版 |
2022/09/18(日) 16:39:46.64ID:VjUDO6tf0
つまり次立てる人が気をつけてくれればいいってことか…
2022/09/18(日) 16:42:23.27ID:lQR3ujpZ0
書いてる通り1行ぶんは消えるからね 毎回増やさないといけない
立て直しはしなくていい、大丈夫
次スレ立てるときに気を付けないといけないなーと
10デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
垢版 |
2022/09/18(日) 16:43:34.75ID:VjUDO6tf0
なるほどサンクス
2022/09/18(日) 16:44:45.13ID:aznVlwJJa
>>5
立てる時に消費されるから増やさなきゃいけないんだよ
5chは仕様の古さが目立つな
今時シフトJISだったり1000レスまでだったりメアド欄があったりそこにsageを書いたり
2022/09/18(日) 17:39:41.49ID:eBtB+6XZ0
>>3
ちんぽ!まで読んだ
13デフォルトの名無しさん (ワッチョイ 5701-dv3E)
垢版 |
2022/09/18(日) 17:43:02.64ID:a87PubfG0
読んだんだ(笑
2022/09/18(日) 17:44:39.84ID:eAqQvdrB0
ReDosにもならない
2022/09/19(月) 12:44:07.38ID:bKWC7nbK0
«許可»をクリックして、ロボットではないことを確認してください!
2022/09/19(月) 15:30:11.92ID:t+9kOvGj0
ポチッとな
2022/09/20(火) 12:34:37.10ID:sadn543UM
::::::::::::::::::::::::......   ........::::::::::::::::::::::::::: ;;;;;;;:::::::::::::::
           γ ⌒ ⌒ `ヘ
          イ ""  ⌒  ヾ ヾ
        / (   ⌒    ヽ  )ヽ
        (      、 ,     ヾ )
 ................... .......ゞ (.    .  ノ. .ノ .ノ........... ........
 :::::::::::::::::::::::::::::::::ゝ、、ゝ.....|  |..., , ノソ::::::::::::::.......::::
  _ _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デフォルトの名無しさん (ブーイモ MMfb-rZTD)
垢版 |
2022/09/21(水) 21:35:43.28ID:sPGT0eCrM
hosyu
19デフォルトの名無しさん (ブーイモ MM8f-rZTD)
垢版 |
2022/09/23(金) 08:57:53.80ID:0O/Obm8IM
hosyu
2022/09/23(金) 14:31:23.00ID:2Q5DEdnDM
皆様に人脈の加護がありますように❤
21デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/25(日) 00:31:29.09ID:DIWRYevd0
質問です!
Windowsでwavとかmp3とかじゃなく配列で作った正弦波を鳴らすための標準ライブラリってありますか?
シンセサイザーアプリのために低レイテンシーだとありがたいです
2022/09/25(日) 00:59:16.75ID:Y7mttA55M
XAudio2
2022/09/25(日) 01:45:39.85ID:6wI0gbs/0
そもそもwavファイル自体が波形データそのままに近いのでは?
Win32APIを直接叩くとやりたいことは出来るとは思うけどね
waveOutOpen()とかこの辺
大昔にやった事あるけどその時はVCだったし全然覚えてないわw
24デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/25(日) 02:01:54.70ID:DIWRYevd0
>>23
waveファイルはヘッダー情報があるのでそれ作らないといけないのがめんどくさい
わざわざファイルを作らないといけないのもスマートじゃないし
やっぱりWin32API使わないとなのか…
このへん破ったことないからわからん
25デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/25(日) 02:02:08.15ID:DIWRYevd0
>>22
調べてみます
26デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/25(日) 02:02:54.21ID:DIWRYevd0
>>24
この辺使ったことないの間違いです
どんな誤変換したんだ…
2022/09/25(日) 02:10:21.67ID:33uw2yCZH
この質問者、前スレで就職相談してた27歳の人じゃね?
なんとなく「mauiで」とか条件後出しされそうな悪寒
2022/09/25(日) 02:29:37.09ID:BeOzTuvS0
邪推はやめてくれよブラザー
2022/09/25(日) 04:18:13.47ID:kQGcz7Hc0
dllをプロジェクトの参照に入れずに、実行時に動的に読み出して内部のメソッド実行やインスタンスの生成をしたいのですが可能でしょうか?
2022/09/25(日) 05:05:25.63ID:QuKarKAJ0
>>29
可能です
2022/09/25(日) 07:24:05.34ID:PDKGWlWe0
そりゃ元々 Dynamic = 動的 だからできないわけない
てか C# dll 動的ロード とかでググろうと思わないのか?
https://qiita.com/rita0222/items/609583c31cb7f0132086
32デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/25(日) 07:35:25.02ID:DIWRYevd0
21ですが色々調べた結果標準ライブラリでは難しいようですね、、、
win32APIをDLLインポートするのも大変そうなので(Xaudio2をC#で使う記事を見ましたが理解ができませんでした)
素直に拡張ライブラリのNAudioを使うようにします。
2022/09/25(日) 07:46:43.94ID:ZSqiS99C0
dll実装が先に存在してるなら、参照で先に作っておいて、
実行時にこけたらAssembly.LoadFileとかするのが普通かな。

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

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

interfaceなりでちゃんとdll側を縛ってあるのがいちばんいいけどね。
2022/09/25(日) 18:52:10.05ID:YHbagUeLa
どこの普通なんだか
2022/09/25(日) 18:55:26.67ID:YHbagUeLa
dllの動的ロードしたいならMEF使え
https://learn.microsoft.com/ja-jp/dotnet/framework/mef/
2022/09/26(月) 06:17:01.60ID:4jeN/07Z0
プラグインシステムならまだしも、dllの動的ロードでMEFなんか使わんが...
2022/09/26(月) 12:27:47.38ID:6iA7KcBP0
そういうのをプラグインと言うんだぞw
プラグインじゃなきゃ普通に参照すればいい
2022/09/26(月) 12:35:43.49ID:6iA7KcBP0
あ、そうか、もしかして参照したdllはアプリ起動と同時に読み込まれると思ってるやついるのか
だから参照しないようにしてんの?w
2022/09/26(月) 15:03:37.01ID:4jeN/07Z0
開発時は参照では組むが、実際の実行環境では
実行の基点となるexeとは別の場所にdllが配置されてるとかもあるからなぁ。

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

dllを遅延ロードしたいだけなら、上にあるように
普通に参照で組んで、実行時にdll無いと必要になるステップに
到達したらエラーになるから、それに備えて
AssemblyResolverに無かったらこの場所のこのdll読めと指示しとけばいいだけ。
これも上に書いた通り。
2022/09/26(月) 15:46:38.31ID:T6INyDl80
MAUI君とマウントじじいはID変わってもすぐ分かるな
2022/09/26(月) 17:18:58.59ID:6iA7KcBP0
いつも論破されて悔しそうなやついて草
2022/09/26(月) 17:21:26.07ID:6iA7KcBP0
>>39
さすがに必須dllを別管理するのは筋が悪い
dll hellを招くアンチパターンだぞ
20年前にはみんなやめてるからそろそろ知識をアップデートしよう
2022/09/26(月) 20:11:02.71ID:4GKr4tPoM
プラグインスタイルにする場合は開発スタート時点から外部に公開する用のinterfaceを
別プロジェクトにする必要があるからお勧めしない

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

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

c++はこういうのが柔軟でやりやすい
C#はあまりプラグイン開発に向いていない
2022/09/26(月) 20:15:47.43ID:w7MQedDGM
んなことはない
C#であまりプラグイン的な機構が使用されないのは、C++に比べて広く一般的に使用されるアプリケーションが少ないのと、
ビルドが簡単高速なために全部リビルドしたほうが早いからだよ
2022/09/26(月) 20:16:31.39ID:6iA7KcBP0
あら捜しの結果、たかだか一つ数分で作れるプロジェクト分割することを欠点と言い始めたかー
2022/09/26(月) 20:17:49.62ID:4GKr4tPoM
全くclassなどを受け渡ししない場合を除いて通常は

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

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

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


公開用コモンプロジェクトが分厚くならないようにinterface中心にする
2022/09/26(月) 20:19:44.63ID:4GKr4tPoM
粗さがし?
普通に作ると分かることだが…

c,c++はゴミみたいな存在だがプラグイン作る時は.hやhpp配るだけでやりやすいことが多い
2022/09/26(月) 20:21:25.82ID:4GKr4tPoM
重量級アプリ作っててプラグインの仕組みを導入したくなった場合
かなり面倒
dynamicにするのは無し
2022/09/26(月) 20:57:57.39ID:vjnVDv0A0
classの受け渡しなんて言ってる時点でもう...
2022/09/26(月) 21:43:04.31ID:4GKr4tPoM
じゃあ現実的なラインで話せよ
俺が書いた以外で実践的なプラグインを合理的に作る方法をさ

レベル低いのにしゃしゃって来るんじゃない
2022/09/26(月) 21:58:39.65ID:6iA7KcBP0
20年前の知識でイキるのは恥ずかしいぞw
2022/09/26(月) 22:09:28.79ID:4GKr4tPoM
>>51
話が見えてないんだな
お前がここで一番の馬鹿だ
これは間違いない
対案も出せない

しかもお前はジジイだな
筋が悪いと言うワードセンス
20年前のDLLの話をしてるし
2022/09/26(月) 22:43:33.82ID:n/I9g/yq0
>>42
必須じゃないdllでやるんだろ。
ハードウェアなどの環境に依存するdllとかな。
2022/09/26(月) 23:44:58.22ID:6iA7KcBP0
>>53
そういうのは参照できないから(あるいは不要なものまで全部参照する必要があるから)インターフェースがいる
プラグインがベストプラクティス
55デフォルトの名無しさん (ワッチョイ 16b0-8V4y)
垢版 |
2022/09/27(火) 08:07:21.08ID:/UUTRmF20
プラグインはプラグインのインターフェースに合わせて実装するんであって
既にあるdllを単に動的バインディングするのとは別物だな。
2022/09/27(火) 08:55:03.98ID:SwtBqNyR0
powershell上でC#の連携で、再帰するような処理や重い所をC#で書いて使ってるんですが、
powershellの機能が必要な時はC#側からpowershellのスクリプトブロックをFunc<>やAction<>でコールッバックとして呼び出す形にしています。
このときに、Func<>やAction<>の引数にrefを指定して、bool値とかをpowershell側から設定して返してもらうようしたかったのですが、
Func<>やAction<>の引数にrefは指定できないようでした。
代替として、PSObjectにNotePropertyを作って値を入れて貰ってまますが、他に良い手段があったら教えてください。
2022/09/27(火) 09:32:49.82ID:LsBo1VKG0
>>55
参照しろよw
2022/09/27(火) 09:34:23.58ID:LsBo1VKG0
>>56
自分でデリゲート型を作ればいんじゃね
知らんけど
59デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/27(火) 10:31:21.25ID:rJ/evy9A0
WPFとかにおけるPrismってそんなにいいの?
2022/09/27(火) 10:48:09.96ID:SwtBqNyR0
>>58
Func<>やAction<>がだめってことはデリゲートの引数指定でrefがだめってことかと思い込んでましたが違うんですかね。
試してみます。ありがとうございました。
2022/09/27(火) 12:21:27.17ID:LsBo1VKG0
>>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>)もっといい方法が無いか探してるところだろうな
2022/09/27(火) 12:50:24.07ID:SwtBqNyR0
できました。
>>61そういう泥臭い実装だったのか・・・ありがとうございます。
最初からdelegateで書けばよかった。
2022/09/27(火) 15:54:24.92ID:SwtBqNyR0
どうやら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; })
2022/09/27(火) 15:56:16.12ID:SwtBqNyR0
上のCallbackTest2はCallbackTestの間違いです
2022/09/27(火) 16:15:47.83ID:LsBo1VKG0
バグって言うかスクリプトブロックを渡してるからだろうな
2022/09/27(火) 16:20:55.11ID:LsBo1VKG0
ていうか参照渡しじゃなくHashSetを使ってやりとりするんじゃいかんの?
2022/09/27(火) 16:23:37.50ID:LsBo1VKG0
HashSetじゃなかった
Hashtableだ
2022/09/27(火) 16:32:12.76ID:cIZHSBt80
structにこだわる意味はなさそうだしそれならrefも必要ないし
そもそもFuncの返値にすればいいんじゃないの的な
2022/09/27(火) 16:37:17.49ID:LsBo1VKG0
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 })
2022/09/27(火) 16:41:08.41ID:J8MleXan0
>>63
普通に
bState1: True
True
False
bState1: False
ってなるけど?
$PSVersionTable.PSVersion: 5.1.19041.1682
2022/09/27(火) 16:45:59.80ID:LsBo1VKG0
>>59
Prismは大袈裟すぎるがMVVMを使うなら何か一つフレームワークは必須
CommunityToolkit.Mvvmいいぞ
必要な機能は揃ってるのにシンプルで学習コストが低く軽い
これで慣れてからPrismに移ってもいいし仕事じゃなきゃ移らなくても何も問題ない
2022/09/27(火) 16:51:36.15ID:cIZHSBt80
>>70
class PSParamをstruct PSParamに変えても?
73デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/27(火) 16:53:51.16ID:rJ/evy9A0
>>71
ふむふむなるほど…
2022/09/27(火) 16:58:10.34ID:SwtBqNyR0
>>69
わざわざC#でやるからには少しでもパフォーマンスを上げたいので、
C#側でハッシュとかPSObjectで文字列のプロパティを作って渡すとかは極力避けたいのです。
>>70 >>72の仰る通りclassで渡してるので正常に動くやつです。structに変えて試してください。
2022/09/27(火) 17:03:06.67ID:SwtBqNyR0
ちなみにテスト結果は
値の参照渡し× >>63-64
参照の値渡し○
参照の参照渡し○
でしたので、コンテナを渡す限りではrefは必要ないですね。
2022/09/27(火) 17:04:20.64ID:LsBo1VKG0
>>74
そんなんでパフォーマンス上がらんぞ
PowerShell使ってる時点で無意味だし計測しても誤差が大きすぎて差は出ない
スクリプトブロックをデリゲートに入れるための代理関数とか中で作られてるからな
2022/09/27(火) 18:47:57.59ID:SwtBqNyR0
>>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
2022/09/27(火) 19:22:16.19ID:J8MleXan0
>>72
ああ、すまんちゃんと読んでなかったわ
まあ、仕様だろうね
変更可能な値型は避けろって書いてある

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

普通にクラスで作ればいいだけ、てかPowerShell使ってる時点でclass/structで細かいパフォーマンスチューニングしても無駄だと思うぞ
2022/09/27(火) 20:39:58.78ID:wQgw+D+40
VS2019で.NET 4.5 + NugetでValueTuple入れて作ったプロジェクトを
VS2012で読もうとしたらValueTuple扱えなかった・・

VS2012も.NET 4.5は大丈夫だけど、ValueTupleだとC#のバージョンが問題になるのかな?
2022/09/27(火) 21:45:06.74ID:LsBo1VKG0
https://qiita.com/shimamura_io/items/5a1c754914b864540bac
この手のめんどくさいトラブル抱える可能性残すくらいなら4.8使うかValueTuppleあきらめろよ
2022/09/28(水) 08:17:08.29ID:if0kFZkG0
VS2012じゃC#コンパイラが全然タプルに対応できないからね
普通の構造体として扱うことはできるかもしれないが
2022/09/28(水) 08:31:43.95ID:qrxLeK0JF
読んでビルドするだけならVSCode使うほうがよさそうかな
2022/09/28(水) 08:37:42.78ID:ZrAf2Mbg0
学習オプションをGUIでも確認しやすいという意味でも
VSの方がはるかに向いてるが。
VSCodeが候補にあがるのはAzure使っててC#だけでなく
色々混じってる時くらいでしょ。
2022/09/28(水) 08:38:04.69ID:ZrAf2Mbg0
学習→GUI
2022/09/28(水) 09:06:32.72ID:FDPwu/KN0
そこでQtですよ(嘘)
2022/09/28(水) 10:26:54.48ID:Jk2txA1W0
QtやTcl/Tkとか名前は聞くけど誰も使っている人居ないんだよね
WinFormsより簡単なの出さないと日本では流行る気がしないw
2022/09/28(水) 12:46:58.02ID:GXLv430Ua
>>86
かつてのDelphiやVB6の役割が今のWinforms
これ以上簡単なモノは出ないだろ
88デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/29(木) 10:40:58.78ID:yzYmCLI10
オブジェクト指向で
クラス=ニュークラス
変数A=クラス.メソッド(引数)
で他のクラスでメソッドで作った変数Bを変数Aに代入したいとき
returnで返すのが一般的なんかな?

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

なんか遅くなるとかの弊害ある?
2022/09/29(木) 10:56:44.30ID:ZDD9PwVa0
>>88
#nullable enableにすると、そのプロパティーを hoge? にしないとワーニングが出てくるね
2022/09/29(木) 11:05:58.40ID:c05GXPup0
そのclassの設計次第だとは思うけど…
単純な計算結果を必要としているのならstatic methodにして直接メソッドの結果を取得する方が分かりやすいだろうし
インスタンスの何かがその処理に必要であるのならプロパティ経由で取得する方が良いだろうし
91デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/29(木) 11:27:28.88ID:yzYmCLI10
ふむふむケースバイケースなのかな?
2022/09/29(木) 11:48:18.47ID:nA4Nikqb0
メソッドの仕様とプロパティの仕様の二つを読まなきゃならなくなるから一般的に可読性と保守性は落ちる
あと副作用前提なので参照透過でなく多用するとスパゲッティになりやすくなる
メソッドがthisを返すならMauiAppBuilderみたいにメソッドチェーンで使えるようになるしプロパティパターンでパターンマッチングできるから場合によっては便利になる
93デフォルトの名無しさん (ワッチョイ 1201-bOZY)
垢版 |
2022/09/29(木) 17:05:48.88ID:yzYmCLI10
>>92
なるほどありがとうございます
2022/10/01(土) 08:39:35.64ID:EDStmk6M0
ブラウザの「名前をつけてページを保存」をWebview2でやりたいのですが、無理ですかね?
stream で読み込むくらいしか方法はないですか?
2022/10/01(土) 08:48:17.73ID:2B0IsOOc0
>>94
それはブラウザの役目であってHTMLをレンダリングして表示するWebViewの役目じゃない
スマホのブラウザにはそんな機能ないだろ
2022/10/01(土) 09:34:14.17ID:EDStmk6M0
>>95
そうですよね
WebBrowserにはWebBrowser.ShowSaveAsDialog メソッドがあったのですが・・・
2022/10/01(土) 09:40:46.42ID:Vj0oK+Fa0
Chromeとかのダイアログも結局はWindowsならshell32のSHBrowseForFolder利用したりとOSの機能使ってるだけなんじゃないの?
2022/10/01(土) 10:43:04.40ID:EDStmk6M0
>>315
予想で来ていたなら大儲けしたんだろ
ついでにそのスクショもうぷ
2022/10/01(土) 10:47:28.56ID:HrxhgRpA0
>>98
おまえの予想のほうがスゲェ!w
2022/10/01(土) 10:52:54.13ID:EDStmk6M0
誤爆w

webvew2コントロール上で右クリックすると「名前を付けて保存」が出るようなので
そこを自動でやるだけなですがいい方法ないですかね?
101デフォルトの名無しさん (ワッチョイ ff01-yu6O)
垢版 |
2022/10/01(土) 11:36:18.78ID:CdyuxRrm0
そのページのHTMLをHTML方式で保存すればいいだけなのでは?
102デフォルトの名無しさん (ワッチョイ ff01-yu6O)
垢版 |
2022/10/01(土) 11:41:05.38ID:CdyuxRrm0
WebView2ならJavaScriptを呼び出せるメソッドがあるからhtmlタグの中身をゲットしてそれを保存すればいいだけのような気がするがどうなんだろ?
2022/10/01(土) 11:47:25.93ID:EDStmk6M0
HTMLだけだとcssやjsが含まれていないので
落としたHTMLを表示するとまともに表示されない問題が発生してしまいます
ブラウザの「名前を付けて保存」は完璧に保存されますのでそちらが使いたいです
2022/10/01(土) 23:19:37.45ID:4ls5cXfL0
以下WebView2のエキスパートでもなんでもないから見当違いかもしれないので話半分で
ちょっとぐぐってみたけどWebView2で「名前を付けて保存」相当をやってる情報は出てこないね
Webブラウザでもページの保存は割と面倒な処理に該当するはずだからseleniumとかでWebブラウザに丸投げする方法を考えた方がいいと思うよ
105デフォルトの名無しさん (ワッチョイ ff01-yu6O)
垢版 |
2022/10/02(日) 01:20:34.77ID:jE287c4+0
ソリューションエクスプローラーに配置した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デフォルトの名無しさん (ワッチョイ ff01-yu6O)
垢版 |
2022/10/02(日) 01:21:00.49ID:jE287c4+0
参考にしてるサイトはこれです…
https://github.com/dotnet-presentations/dotnet-maui-workshop/tree/main/Part%202%20-%20MVVM
2022/10/02(日) 01:46:38.36ID:w76y/xOG0
一行目でエラーなら単純にファイルが無いのでは?
VSでデバッグの時のカレントがどこなのかそういう知識が無くパス指定も無く開けなかったら
カレントに無いぐらいは分かりそうなものなのに・・・
108デフォルトの名無しさん (ワッチョイ ff01-yu6O)
垢版 |
2022/10/02(日) 02:00:42.79ID:jE287c4+0
VSに入れたファイルのパスの指定方法ってどうすればいいんですかね?
ファイル名だけで勝手にソリューション内のファイル検索して取り込めるのか相対パスなのか完全パスなのか…
相対パスならどこからの相対パスを書けばいいのか…
2022/10/02(日) 02:02:35.93ID:kEuGN+uq0
ビルドアクション設定してないだけだろ
110デフォルトの名無しさん (ワッチョイ ff01-yu6O)
垢版 |
2022/10/02(日) 02:31:53.74ID:jE287c4+0
ビルドアクションは埋め込みリソースに設定すればいいんですか?
何に設定すればいいんですか?
111デフォルトの名無しさん (スップ Sd1f-XcTz)
垢版 |
2022/10/02(日) 04:59:56.46ID:TVxg2l3ud
何やらせても出来なさそう
2022/10/02(日) 08:28:15.79ID:oLIGWTx6a
参考という名のコピペ
考える材料を参考というのであって脳死で真似るのは参考にしたとは言わん
なぜ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デフォルトの名無しさん (ワッチョイ 8301-yu6O)
垢版 |
2022/10/02(日) 08:47:31.34ID:jcW3SqyJ0
>>112
ありがとうございます!
MauiAssetにしてResourcesからの相対パスにしたらいけました!
114デフォルトの名無しさん (ワッチョイ ff01-yu6O)
垢版 |
2022/10/03(月) 21:31:13.59ID:7M+SSEiP0
ListやObservableCollectionとか作るときに別classでget,setでプロパティ作るけどこれってなんて言うものなの?
他の言語とかも一緒?
2022/10/03(月) 21:32:38.29ID:tDVewfT+0
よくわからんがViewModelの話をしてるのか?
116デフォルトの名無しさん (ワッチョイ ff01-yu6O)
垢版 |
2022/10/03(月) 21:35:24.31ID:7M+SSEiP0
>>115
どっちかというとModelの話かな
ほとんどの人がModelフォルダにpublic〇〇get,setしてる
117デフォルトの名無しさん (ワッチョイ ff01-yu6O)
垢版 |
2022/10/03(月) 21:38:09.72ID:7M+SSEiP0
List‹〇〇›とかObservableCollection‹〇〇›とかの〇〇部分
xamlだと{Binding 〇〇}で〇〇の中に定義したプロパティを読み込めるやつ
2022/10/03(月) 22:52:42.56ID:5XdXjLTq0
doubleにTryParseした値を別な変数に入れたいけど、もっと素直な書き方ないかな?

var value = double.TryParse(str, out dbl) ? dbl : dbl;
2022/10/03(月) 22:56:32.76ID:tDVewfT+0
>>118
なんだその無意味な三項演算子
2022/10/03(月) 22:57:43.85ID:tDVewfT+0
>>117
型引数なのか要素なのかモデルなのか何のことを言ってるのかわからん
2022/10/03(月) 23:18:54.43ID:rGUf1MZJ0
選択肢がめっちゃ多い中で1つ選ばせるコントロールって何が良いですかね?
80項目くらいあるのでコンボボックスはNGになりまして。
選択内容は 数値:文字列 で表示したいです。
2022/10/03(月) 23:31:02.94ID:SA/xrkif0
>>121
何で決定するの?それ
何か見て決めるんでしょ?
それを画面に出せよ
2022/10/04(火) 00:32:43.24ID:7S0AjRuD0
立ち食いそば屋の券売機みたいにボタン並べればいいじゃん
2022/10/04(火) 06:40:39.38ID:b8uw2VbJ0
>>119
我ながら意味不明だけど、TryParseした"dbl"を"value"に1行で代入する方法をこれしか思いつかなかった
どうやればTryParseの結果を式として返せるの?
2022/10/04(火) 06:46:15.22ID:Ls9e4TwG0
>>124
失敗したときの戻り値どうすんの?
2022/10/04(火) 06:46:54.63ID:Ls9e4TwG0
>>121
別画面
2022/10/04(火) 06:56:27.63ID:XU+NToANM
double.TryParse(str, out var value)
2022/10/04(火) 07:10:40.44ID:qbIePR+RM
>>124
メソッドにしろよなんでもできるぞ
2022/10/04(火) 07:16:12.38ID:Ls9e4TwG0
>>126
ついでだが選択肢が80もあるなら検索ボックスも欲しいな
欲しいというか必須
別画面にせずともコンボボックスで検索するという手もある
2022/10/04(火) 07:27:32.13ID:ye813FXw0
>>124
絶対に失敗しないなら単に double.Parse(str) でいいし、失敗する可能性あるなら失敗した時にどうしたいのかによるわな
2022/10/04(火) 08:37:00.95ID:83NgMl870
>>121
高さある程度とったリストボックスでいいんじゃない
フォントダイアログのフォントみたいな
頭に数字付けるのはインクリメンタルサーチとの兼ね合いがあるが項目が日本語なら関係ないか
2022/10/04(火) 11:59:18.04ID:36QRloIgM
>>121
Google翻訳の言語選択画面とか
StackOverflowやEvernoteのタグ選択画面とか
有名どころで類似画面を見つけてそれを参考にするといい

選択肢の数だけじゃなく選択させたいデータの特徴とユースケースによって適切なUIは変わってくる
133デフォルトの名無しさん (ワッチョイ 0f01-yu6O)
垢版 |
2022/10/04(火) 12:28:46.35ID:Pbtsxb5E0
IsVisibleプロパティでリストビューを最初に消しててボタン押すとリストビューのIsVisibleがtrueになる
そのリストビューを選択させてSlectedイベントハンドラーでボタンのテキストを選択したものにするみたいな
134デフォルトの名無しさん (ワッチョイ 0f01-yu6O)
垢版 |
2022/10/04(火) 12:34:13.22ID:Pbtsxb5E0
Slectedイベントでもう一度ListViewのIsVisibleをfalseにするとスムーズかも
WPFの場合はVisibility=collapsedにすれば画面専有しなくなる
このプロパティめっちゃ便利だからみんなも使って
2022/10/04(火) 12:34:32.55ID:Ls9e4TwG0
>>133
それコンボボックスと何が違うんだ
136デフォルトの名無しさん (ワッチョイ 0f01-yu6O)
垢版 |
2022/10/04(火) 12:37:11.62ID:Pbtsxb5E0
>>135
リストビューだからイメージとかも表示できる
datatemplate設定する必要あるけどね
リストビューだけじゃなくてcollectionViewとか使ったら横2行でスクロールできるようになるし
137デフォルトの名無しさん (ワッチョイ 0f01-yu6O)
垢版 |
2022/10/04(火) 12:38:40.11ID:Pbtsxb5E0
検索バーもリストに紐付けられてたような気がするから更に便利かも
検索バーもリストビューとかと同様にIsVisibleが連動するようにしておく
2022/10/04(火) 12:39:40.83ID:Ls9e4TwG0
>>136
選択するのは数値と文字列って書いてるが
139デフォルトの名無しさん (ワッチョイ 0f01-yu6O)
垢版 |
2022/10/04(火) 12:39:58.19ID:Pbtsxb5E0
まぁめんどくさかったらコンボボックスでもいいけどね
1つしか項目ないならこっちのほうが楽だと思う
140デフォルトの名無しさん (ワッチョイ 0f01-yu6O)
垢版 |
2022/10/04(火) 12:41:35.19ID:Pbtsxb5E0
>>138
UIとかこだわるならListViewかなぁ
2022/10/04(火) 23:58:06.92ID:b8uw2VbJ0
>>125 >>130
iniファイルからの読み込みなので失敗もありえて、その場合は0.0が期待値ですね
TryPaerse失敗でoutの方は0.0になるので、単純にoutの値が欲しいだけなんです
ラムダでもうまく書けないので、>>128の言うようにメソッドにするしかないですかね
2022/10/05(水) 00:01:10.13ID:KHa19VaR0
>>141
double.TryParse(str,out double value) ? value : 0
2022/10/05(水) 03:41:09.33ID:ILrwmDD80
値が本当に0.0だったときに腹を切る用意はできてんだろうな?
144デフォルトの名無しさん (ワッチョイ 435f-pIDl)
垢版 |
2022/10/05(水) 07:40:46.91ID:2+KVHgSc0
失敗したときは初期値を代入する、って意図なら default にした方が分かりやすいぞ
2022/10/05(水) 10:12:13.66ID:b38C0N4J0
どうしても代入式じゃなきゃヤダってんじゃない限り>>127で十分なんだけど
2022/10/05(水) 22:42:08.40ID:UUeH3vvk0
Convert.ToDouble...ボソッ
2022/10/05(水) 22:43:51.91ID:UUeH3vvk0
あ、失敗したとき考えたら同じだった…
148デフォルトの名無しさん (ワッチョイ a359-eWb8)
垢版 |
2022/10/06(木) 18:05:18.67ID:l5eCu49d0
c#でコードをすっきり書く方法について
unityです
以下のようなメインルーチンと自作関数がありますが、自作関数が多くなると間延びして見づらくなります
こうズラズラと書いていっていいものでしょうか?

void update()
{
//この中に記載したものが1フレームごとに実行される
}
void zisaku_kansu1()
{}
void zisaku_kansu2()
{}
void zisaku_kansu3()
{}
2022/10/06(木) 18:19:06.66ID:okBm6j3n0
知らんけどどのオブジェクトにメソッドを生やすかは見やすさ関係なしに選んだ方がいい
メソッドが増えすぎる場合クラスが肥大化しすぎて単一責任原則に反している可能性があるから他のクラスに分割できないかどうかを検討してみろ
150デフォルトの名無しさん (ワッチョイ a359-eWb8)
垢版 |
2022/10/06(木) 18:29:05.50ID:l5eCu49d0
スクリプト1つにここまで、みたいな目安はあるんでしょうか?
2022/10/06(木) 18:39:38.40ID:okBm6j3n0
無いよ
数じゃない
せっかく単一責任原則ってキーワード出てるんだから調べてみたら?
152デフォルトの名無しさん (ワッチョイ a359-eWb8)
垢版 |
2022/10/06(木) 19:26:04.80ID:l5eCu49d0
了解です
問題が出たらそのときに対処します
2022/10/06(木) 21:08:47.37ID:g4tnGNpoM
もう問題でてるやん
2022/10/06(木) 22:21:54.37ID:/3bhbDDg0
bool? x; をint の 0,1,2 にしたいのですが
return (x is null) ? 0 : x ?? false ? 2 : 1;
もっとかっこよく出来ませんか?
2022/10/06(木) 22:44:56.92ID:eGnFz/dY0
ほとんど変わらんけど
x.HasValue ? x.Value ? 2 : 1 : 0;
2022/10/06(木) 23:20:02.95ID:KOHZa6QXM
見やすさを優先したいなら複数行で
return x swicth
{
 true => 2,
 false => 1,
_ => 0,
};
と書きたいなあ

1行で
return x swicth { true => 2, false => 1, _ => 0 };
と書いてもたぶん大丈夫だとは思うけど
2022/10/06(木) 23:28:30.50ID:okBm6j3n0
ネタコードだけど
new bool?[]{null,false,true}.IndexOf(x)
2022/10/06(木) 23:51:14.28ID:E7iO37Ge0
>>155
かっこつけてないじゃん
x.HasValue ? (x.Value ? 2 : 1) : 0;
2022/10/07(金) 00:30:44.40ID:5dN4BPEk0
>>158
かっこが無くてもちゃんと動くよ
あった方が分かりやすくて良いけど
2022/10/07(金) 02:06:25.47ID:ICIDzMHN0
その変態コードやるならメソッドにして手厚くコメント入れて欲しい
明示的にif文でデカデカと対応がわかるように並べて欲しい
一石二鳥なんか狙う場面じゃない
2022/10/07(金) 02:08:27.00ID:ICIDzMHN0
そのイカれたクソ設計考えたやつの名前と設計書の項目番号も添えて
わかるように並べるべき
162デフォルトの名無しさん (スップ Sd1f-rSe5)
垢版 |
2022/10/07(金) 03:43:01.87ID:Y3Bhrpk2d
馬鹿は何でもかんでも短くすれば良いと思ってる
2022/10/07(金) 07:30:32.84ID:DG0Qp9kf0
switch式って.NET Frameworkだと(というかC# 7.3までだと)使えないんだね

.NET FrameworkでC# 8.0以上に上げるのは推奨されないって見てビビった
2022/10/07(金) 09:36:20.95ID:Kp+8ZYZad
推奨されないというか、C#8.0以上では.NET Frameworkは公式にサポート外となった
仮にたまたま今動いてても明日.NET Frameworkのセキュリティパッチで突然動かなくなるかもしれないし、もちろんMSは修正しないよ
2022/10/07(金) 11:14:52.33ID:vnTjz+tv0
まあ今出てる中ならどれでもいいわ
少し見にくいとしても読めないレベルじゃないから
2022/10/07(金) 11:22:49.33ID:HMB85mTQ0
忍者コードへの道
2022/10/07(金) 12:22:10.54ID:dcU7dbGf0
>>159
ギャグなんだけど…(´・ω・`)
168デフォルトの名無しさん (アウアウウー Sa27-G9OZ)
垢版 |
2022/10/07(金) 12:47:07.95ID:d4ub3t4La
>>162
ほんそれ
169デフォルトの名無しさん (ワッチョイ 435f-CR2Y)
垢版 |
2022/10/07(金) 20:16:53.71ID:+9HYrIkm0
Nullable有効にできないバージョンは古いC#って感じでもう使いたくないな
2022/10/07(金) 20:37:29.02ID:UqkGeV530
>>167
笑いどころがわからんわ
2022/10/07(金) 20:50:21.74ID:WZglSwpR0
>>170
よし。俺が解説してやろう

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

>>167 可哀想w
2022/10/07(金) 20:56:43.70ID:5dN4BPEk0
>>167
なんかゴメン
2022/10/07(金) 21:09:28.95ID:UqkGeV530
>>171
せめてカッコつけてないじゃん
って書いてほしいわ...
2022/10/07(金) 22:02:05.67ID:/3WJyx6k0
どんまい、来世はいいことあるさ
2022/10/07(金) 23:17:09.48ID:US/4zJfp0
>>167
強く生きて
176デフォルトの名無しさん (ワッチョイ 7b7f-4L6u)
垢版 |
2022/10/08(土) 08:16:32.93ID:jIH0D5Hw0
オブジェクト内でバイナリファイルの内容を扱うとしたら、バイト型配列がよいでしょうか。ファイルストリームで吸い出してオブジェクト内で扱うつもりです。

テキストファイルでは、ストリング型か、ストリング型配列か、それともバイト型配列がよいでしょうか。処理のしやすさを考えるとストリング型に一気に吸い出すのが良いかなと思います。
2022/10/08(土) 08:22:48.18ID:dLvXgc/K0
データをバイト配列で扱うのが都合が良ければバイト配列にするしそうでなければ型を作る
2022/10/08(土) 11:01:05.54ID:VFNuoQ0s0
C#の正規表現が難しい・・・

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

if (Regex.IsMatch(str, @"^FIRST(\d+)_SECOND(\d+)$"))
2022/10/08(土) 11:34:32.95ID:pVnemZy6a
IsMatchは結果を捨ててるぞ
Matchを使え
2022/10/08(土) 11:53:56.88ID:r7jgJ5YeM
>>177
ストリング型に一気に吸い出すのが処理しやすいんだったらそうしたらいい
ストリームは全部一気に読むときの遅延が無視できなかったりメモリに全部乗らないような巨大なファイルを扱うようなときに使うもので、
全部一気読みで問題なく動くのならその方がシンプルで好ましい
バイト配列か文字列かは扱い対象のファイルがバイナリなのかテキストなのかに合わせればよいだけ
2022/10/08(土) 11:54:28.61ID:gSJNfJVIM
自分でも複雑なことをやるってわかってるのに一気に処理して
ログも出さない
途中の計算課程もみずにできると思い込む
やり方がわからない以前に一度でも実行したのか?
182デフォルトの名無しさん (ワッチョイ 7b59-6drP)
垢版 |
2022/10/08(土) 14:35:23.82ID:P5VjfrSW0
c#でthisはつけたほうがいいのですか?
現在のインスタンスを参照していることが、そのほうがわかりやすいかなという認識ですが、機能上、すごく重要なものだったりすりんでしょうか
2022/10/08(土) 15:10:00.89ID:pVnemZy6a
visual studio使ってるなら色を見たらいい
色が薄いのは削除推奨
右クリックしたらリファクタリングメニューが出る
濃い色ならそのまま書いとけ
184.NET M HighSchool (ワッチョイ ca01-K5IV)
垢版 |
2022/10/08(土) 15:43:59.89ID:7fZ89p9v0
thisは高確率で色薄くなるな
2022/10/08(土) 15:49:28.50ID:DAxJe8BN0
this 必須のケースって引数と名前被ってる場合以外にあるっけ?
2022/10/08(土) 15:53:41.70ID:znbc6QnV0
this.でわずかに候補が絞れるというメリットはあるがそのためにソース汚すのもな
2022/10/08(土) 16:04:49.31ID:m4cZArl90
this使ってないと素人臭がするんだよなぁ
「こいつほんとに分かってんの?」って感じ。
thisは常につけろ、何があろうと。
2022/10/08(土) 16:14:22.95ID:dLvXgc/K0
逆に全部this書いてるのを見ると素人だからわからないんだなと感じる
2022/10/08(土) 16:15:59.85ID:8jUGKNkJ0
それどういう理屈だw
2022/10/08(土) 16:23:46.29ID:dLvXgc/K0
コードの記述量が減るように様々な工夫が凝らされているので、それを使わないやつは知らないように見えるというそれだけのことだが?
191デフォルトの名無しさん (ワッチョイ 7b59-6drP)
垢版 |
2022/10/08(土) 17:07:26.31ID:P5VjfrSW0
>>183
色濃いっす
書いときます
2022/10/08(土) 17:22:37.77ID:XyWhvWPC0
可読性を考えるとthisを付けたほうがいい
2022/10/08(土) 17:30:09.59ID:f2a8Snt90
原則省略していいよ
基本的には人間の記述した字句解析の手間が少なくなる程コンピューターは速く処理できるべきであり
人間の意図や文脈を解釈できないインテリセンスがまだまだ糞ってことだ
2022/10/08(土) 19:23:01.64ID:5cV3My9p0
>>192
this.で汚染されて逆に見辛くなるんだけど
2022/10/08(土) 19:52:21.24ID:gycPEQHX0
なんかマトリョーシカみたいなクラスの記述を強制するライブラリ使ってると
this付けないと飛び越えて呼んでるときあって気が付かない不具合がかなり凶悪だった覚えがある
多分この取り決めはそーゆークソライブラリ使ったとき用だと思う
通常では絶対イランと思う
2022/10/08(土) 23:18:49.64ID:/uBMkTfW0
>>194
そう?
俺は見にくいとは感じないし、わかりやすいからつける派だけど
慣れ親しんだ環境じゃない?
197デフォルトの名無しさん (ワッチョイ 7b7f-cQ+4)
垢版 |
2022/10/08(土) 23:19:17.46ID:jIH0D5Hw0
>>177
>>180
ありがとうございました。

ファイルストリームと、バイト配列の使い分けを、
教えてもらったことで意識したいと思います。
2022/10/08(土) 23:20:51.72ID:/uBMkTfW0
まぁ、俺にとって見やすい·わかりやすいってのはvsの色分けの効果が大きいとは思うけど
2022/10/09(日) 04:43:45.49ID:hmHZpMGaa
色々なコード読むとthisなんてわざわざ書いてないよね
2022/10/09(日) 04:45:35.54ID:qX71Swpm0
世の中にはthisを書かないと読みきれないクソソースを書くやつがいるってことだな
2022/10/10(月) 22:11:00.57ID:eOE0tewq0
USBデバイスを仮想COM接続し、SerialPortクラスで受信しています。バルク転送で約2Mbpsとなります。
デバイスからは60byteフレームが連続で送られてきます。DataReceivedでSerialReadして即抜けています。DataReceivedイベント発生時にバッファを確認すると、
60byte→120byte→…→60byte→(イベント発生まで時間が空いて)数kBとなります。
場合によっては内部バッファが溢れているようなのですが、イベントが待たされる条件が解らず困っています。助言いただけないでしょうか。
2022/10/10(月) 22:41:58.46ID:TjSk03hV0
DataReceivedイベントを使わなければ良いんじゃね?
2022/10/10(月) 22:46:51.58ID:P58+Ol8v0
C#でも書けるとは思うけど数MbpsのCOMポートの送受信はC/C++で専用スレッド用意して
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
した上で非同期でやり取りしないと取りこぼすだろうね
2022/10/10(月) 23:06:15.87ID:sJsMwDUU0
>>201
とりあえずReadBufferSizeをでかくしとけばいいんじゃね?
2022/10/11(火) 05:26:30.82ID:0V0rCIqgM
>>202
タイマー使ってポーリングですかね

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

>>204
試してみたんですけど、16384から上は実動作に反映されないみたいです
2022/10/11(火) 07:20:01.01ID:D4ywmAPt0
どうせDataReceivedの中で重い処理をして取りこぼしてるんだろ
受け取ったデータは非同期でキューに入れて別スレッドで処理したらいい
2022/10/11(火) 07:21:12.28ID:VUbUiOFF0
その前にSerialのフロー制御はどういう仕様なの?
こっちはPCだからよくても、相手があるんだから
2022/10/11(火) 10:20:29.33ID:w5Aa3OJKM
USBはシリアルと言いながら実際パケットを送ってるからタイミングが微妙なんだよな
その都度無駄なやり取りが発生して即応性もなくなるし複数の送受信がまとめられてたり

デバイスずっと常にデータを送り続けてる状況を作るとか言う手法があるけど
C#向きではないかなと
2022/10/11(火) 10:41:42.41ID:w5Aa3OJKM
USBデバイスにボタンみたいのがあって
押すと1離すと0送るとして

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


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

それを回避するにはストリーミングで常に状況を送り続けるかポーリングなどが有効だけど
他のUSBの帯域を圧迫してマウスの感度が悪くなったりキーボードの取りこぼしなどが起こる(IO処理なのでCPUを早くしても無駄)
2022/10/11(火) 20:19:27.85ID:hb9m45MO0
>>208,209
つかそんなのCOMポートの層で吸収されてないのか?
シリアル通信で取りこぼすって、まずフロー制御がちゃんとできてないだけだと思うけど
2022/10/11(火) 21:09:15.58ID:qFJbGVDN0
>>210
USBシリアルは基本的に垂れ流しするしかないよ
COM側は全二重に見えててもその下で動作してるUSBは半二重のホスト主導のパケット通信だからね
フロー制御用として用意されてるXon/Xoffも停止までに送信タイムラグが発生するから
目視できるような低速通信ぐらいしか役に立たないし、停止を許容できるデータなのかも不明だし
2022/10/11(火) 22:58:59.26ID:w5Aa3OJKM
>>210
されてないのかと言う質問にはされていないという答え

仮想comポートはあくまでも仮想なのでハードウェア的なcomポートを完全再現できはしない
ハブなんか挟むと致命的
高速データ転送してる場合は何らかの手法でうまくやってる
213デフォルトの名無しさん (ワッチョイ 6f5f-AxfF)
垢版 |
2022/10/12(水) 07:20:32.76ID:O1VGwGyV0
プロパティの使い方でさ
View側から使う分には複雑な式とかメソッド呼とかは仕方ないけど、Model側からもそのまんまプロパティを呼ぶと処理が何重にも呼ばれたり副作用大杉だからなぁ
メンバー変数代わりにプロパティ使うと死ぬる
2022/10/12(水) 07:23:04.46ID:TyHUeGJp0
まずメンバー変数を多用すること自体が
215デフォルトの名無しさん (ササクッテロレ Sp03-AxfF)
垢版 |
2022/10/12(水) 09:29:45.13ID:wUZHBRzyp
副作用のあるプロパティを作る方が悪い
2022/10/12(水) 09:51:43.31ID:TyHUeGJp0
プログラミング用語で副作用というのはハードウェア出力や状態の再設定のことだからイミュータブルなプロパティは全部副作用があるんだぜ
2022/10/12(水) 09:52:53.77ID:TyHUeGJp0
✕イミュータブル
○ミュータブル
218デフォルトの名無しさん (ササクッテロレ Sp03-AxfF)
垢版 |
2022/10/12(水) 09:58:11.07ID:wUZHBRzyp
そんな言葉遊びして楽しいか?
2022/10/12(水) 10:03:53.44ID:TyHUeGJp0
副作用がわからんと資料に書いてあることがわからなくてかなり困るぞ
220デフォルトの名無しさん (ササクッテロレ Sp03-AxfF)
垢版 |
2022/10/12(水) 10:15:07.25ID:wUZHBRzyp
俺が意図してない挙動は全部副作用だぁっ
2022/10/12(水) 11:33:52.36ID:PX0iq4dK0
質問です
DataGridViewで指定行までのスクロールを行いたいのですが、詰まっています
スクロール自体はFirstDisplayedScrollingRowIndexプロパティに値を代入して行えるのですが、スクロールバーのスライダー位置が最上位から変化しません
処理は、指定行を入力→DataSourceの更新→指定行へスクロールというように行っています
2022/10/12(水) 11:38:03.47ID:WbjgIxC2a
スクロールバーを別のとこで作ってないか?
2022/10/12(水) 17:04:14.81ID:/871xKINM
>>201
多重イベントでスレッドプール使い切りとかない?
2022/10/12(水) 18:34:22.16ID:PX0iq4dK0
>>222
そのようでした
直接弄れそうにもないので、別アプローチでの画面更新を考えてみます
ありがとうございました
2022/10/14(金) 00:33:36.56ID:OVfBjtj50
両端に括弧が付くというのは、
こう書く事を想定してると思うんですよ。

あああ{いいい;}

改行した方が見やすいんでしょうけど、
括弧がずれてるとモヤっとするんですね。

あああ{
 いいい;
}

これって誰かが流行らせてこうなったんですかね?
2022/10/14(金) 01:08:52.29ID:1T5O+VqE0
K&Rスタイルの名残じゃね?
227デフォルトの名無しさん (ワッチョイ 1b8e-sID7)
垢版 |
2022/10/14(金) 02:19:02.77ID:Qq0Btn0+0
>>225
むしろ上はセミコロンが気持ち悪い
2022/10/14(金) 03:02:53.83ID:k3HlvwTN0
>>225
c#はvsでコード整形されると自動で改行されちゃって

あああ
{
いいい;
}

にならねっけ?
スマホなのでうろ覚え
2022/10/14(金) 05:24:09.73ID:PQcToFq+0
設定で変えられる
デフォがどっちだったかは覚えてないが
2022/10/14(金) 06:20:02.49ID:r+kHhQRS0
デフォは>228
231デフォルトの名無しさん (ワッチョイ 4aad-ndxx)
垢版 |
2022/10/14(金) 07:45:52.10ID:xDPm2p1a0
>>225
昔は表示できる行数が少なかったから、括弧を改行しないほうが見やすかったのよ
試しにウィンドウを80行しか見えないように小さくしてみ
昔の環境を擬似体験できるから納得するかも
2022/10/14(金) 08:05:14.64ID:QLzEXHXB0
>>231
80行は現代でも十分に多いと言えるのでは?

マジックナンバーの80はかつて「1行あたりの推奨文字数」として言及されているのをよく見かけたけど、それと勘違いしてるのかな?
2022/10/14(金) 08:15:59.68ID:t5o5qpLS0
80×25行だな
2022/10/14(金) 08:16:02.79ID:1T5O+VqE0
カラム数の誤記じゃね?
VT100なら24行かと
235デフォルトの名無しさん (アウアウウー Sa2f-ndxx)
垢版 |
2022/10/14(金) 08:30:20.50ID:FN5uaSwOa
>>232
すまん、素で間違えた
>>233が正解
2022/10/14(金) 09:14:59.67ID:axo1QQchr
自分は関数以外は >>225 の下の方が好きだけどね。
C# のデフォルトはやたら間延びして見える。
2022/10/14(金) 09:27:42.43ID:t5o5qpLS0
俺はPythonの方式が好きだな
C#も最近はあまり文を書かなくなってるからブレースはそんなにないや
あああ(
 いいい
 ううう);
みたいな
238デフォルトの名無しさん (ワッチョイ ca01-K5IV)
垢版 |
2022/10/14(金) 10:16:19.54ID:WAeSut8C0
俺はVS信者だからだいたいこれだ
あああ
{
いいい;
};
2022/10/14(金) 10:23:36.83ID:z67nBqm+a
>>238
これ
2022/10/14(金) 10:36:24.82ID:tKjd3Fhc0
いちいち悩むのが面倒だからVSの整形まかせだな
コーディングルールがあるならそれに従うだけだし
こだわったところで宗教論争以上にはならんしな
241デフォルトの名無しさん (ワッチョイ c305-g6I6)
垢版 |
2022/10/14(金) 12:31:32.85ID:Mxtf08tS0
フォームアプリで子フォームから親フォームのsplitContaine1.PanelCollapsedをtrueにしたいのですが受け付けてくれません
ボタンコントロールなどは操作出来るのですがスプリットコンテナだけインテリセンスでも出てこないです
どうしたら操作出来るでしょうか?
2022/10/14(金) 12:40:28.58ID:mw5ktna0M
一度ビルドする
243デフォルトの名無しさん (ワッチョイ 635f-SUfT)
垢版 |
2022/10/14(金) 12:59:19.05ID:mo1wBGHA0
今のVSは縦に点線が入るのもあって初期の揃え方だと{が完全に無駄な行になってるから
括弧ずれてるほうが無駄が削減されて見やすいな
244デフォルトの名無しさん (ワッチョイ ce60-+HnN)
垢版 |
2022/10/14(金) 19:57:10.42ID:29TAKwyj0
初めてこの板で書きます。
プログラミングで対角化をしたいのですがよく分かりません。色々調べても自分がしたいことができないです。
やりたいことは、
任意の大きさの正方行列で固有値を求めたい
オイラー方程式を含む行列要素を計算したい
です。
どうしたらいいでしょう、、、
2022/10/14(金) 20:00:26.98ID:t5o5qpLS0
まず言葉の意味を調べたらいんじゃね
246デフォルトの名無しさん (ワッチョイ 1b8e-sID7)
垢版 |
2022/10/14(金) 20:01:15.78ID:Qq0Btn0+0
>>244
お前には向いていない
数学ライブラリを買え
247デフォルトの名無しさん (ワッチョイ ce60-+HnN)
垢版 |
2022/10/14(金) 20:11:06.46ID:29TAKwyj0
>>246
まあ、向いてないのはわかってるよ
でも数値計算で必要なんですもん
2022/10/14(金) 20:19:28.83ID:cI3rl/qY0
実際作ってみて何で困っているかとかそういう質問しなきゃ答えて貰えない
249デフォルトの名無しさん (ワッチョイ ce60-+HnN)
垢版 |
2022/10/14(金) 20:22:33.79ID:29TAKwyj0
>>248
ごめんなさい。
問題点は
方程式をとくやり方が分からない。数値計算みたいなことはやったことはあるが、実数解を求めるようなことはしたことない。しかも恐らく4次、五次方程式以上になると思うので、参考となるサイトとかを教えて欲しい。
オイラー方程式などの虚数iを含む式を入れることが出来ない。いい感じの関数とか逃げ方が知りたい。
こんな感じで参考となるサイトとかを教えて頂きたいです。
250デフォルトの名無しさん (ササクッテロレ Sp03-AxfF)
垢版 |
2022/10/14(金) 20:24:23.30ID:/2EVPBobp
x=f(x)の形にするだけの簡単なお仕事ですやん
251デフォルトの名無しさん (ワッチョイ 1b8e-sID7)
垢版 |
2022/10/14(金) 20:30:54.89ID:Qq0Btn0+0
>>249
だからライブラリ買うとかMathematicaを買うとかしろよ
馬鹿は金を出せ
2022/10/14(金) 20:39:27.04ID:t5o5qpLS0
だから言葉の意味を調べろよ
何をするのか自分で全くわかってないだろ?
「いい感じの」で調べられるわけないだろ
2022/10/14(金) 21:01:32.89ID:AnbCvpeg0
>>244
言葉悪い人も多いが、ここは「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」だ。
Mathematica使えというのもその通り。もう少し知識つけて出直したほうが良い。
2022/10/14(金) 23:18:39.42ID:1T5O+VqE0
他は LAPACKかのう
255デフォルトの名無しさん (ワッチョイ 9f01-CUgD)
垢版 |
2022/10/15(土) 00:40:45.53ID:mRrGj9Y+0
数学板行けば?
2022/10/15(土) 12:59:39.43ID:jiCek6V8M
>>244
pythonやR使ったほうがいいよ

そのレベルで留まらずその先の用途を考えてもpython
どうしても連携したいならコマンドラインでpython実行して結果だけC#で貰うことも出来る
自分は画像認識をその手法を使ってやってる
2022/10/15(土) 13:10:51.97ID:jiCek6V8M
よく読んだら実数解じゃないのか

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

大学生になってCで組んだらあっさり行けたけどもう何も覚えてはいない
258デフォルトの名無しさん (ワッチョイ 9f01-CUgD)
垢版 |
2022/10/15(土) 13:42:59.01ID:mRrGj9Y+0
最近はML.NETってのが出てきたけどね
259デフォルトの名無しさん (ワッチョイ cb59-w9bA)
垢版 |
2022/10/15(土) 14:19:06.79ID:FcVUHJvZ0
if(count ==1){
Debug.Log("output");
}

{}←C#ではこれの省略というのはできないのでしょうか?
pythonのように出来ると楽なのですが。
2022/10/15(土) 14:21:59.16ID:TYEHa44m0
Pythonと違って複文はインデントじゃなくブレースでまとめるから省略できるのは単文の時だけ
2022/10/15(土) 15:23:51.31ID:3+kTGvln0
むしろPythonに{}つけたい
2022/10/15(土) 15:32:50.72ID:cQjeQTYh0
IDEやエディタの機能を活用すればC#のほうが楽
Pythonはアンインデントを手動でやらざるを得ない分めんどくさい
263デフォルトの名無しさん (ワッチョイ cb59-w9bA)
垢版 |
2022/10/15(土) 15:36:13.03ID:FcVUHJvZ0
>>260
ありがとうございます
了解します(´・ω・`)
2022/10/15(土) 15:45:52.74ID:2u2iBEwS0
>>261
Python のパーサー書き換えて新言語作ればいいじゃん
265デフォルトの名無しさん (ワッチョイ 9f01-CUgD)
垢版 |
2022/10/15(土) 17:26:06.25ID:mRrGj9Y+0
どう考えても{}あったほうがいいだろ…
メソッドとかやりたいことがひとまとまりになるから管理しやすい
2022/10/15(土) 17:28:20.76ID:oepRuRjKM
F#使えばいい
2022/10/15(土) 17:29:58.76ID:TYEHa44m0
インデントでもひとまとまりになるぞ
むしろインデントむちゃくちゃなやつを排除できるから見易いまである
268デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/15(土) 17:47:40.19ID:Ggc2td0l0
>>267
そんな事はIDEにやらせりゃいいんだよ
2022/10/15(土) 18:11:24.33ID:2u2iBEwS0
>>265
だからそう思うなら自分で作れよ
本体改造するのが大変ならトランスレーターでもいいし
270デフォルトの名無しさん (ワッチョイ 9f01-CUgD)
垢版 |
2022/10/15(土) 20:29:18.32ID:mRrGj9Y+0
>>269
いやPythonなんて使わんし…
2022/10/15(土) 20:39:17.55ID:2u2iBEwS0
>>270
使いもしないのに文句だけ言うとかクレーマーかよw
2022/10/15(土) 20:43:34.95ID:71BCtDZc0
>>271
Pythonに{}があったほうがいいとは誰も言っていないからもちつけ
2022/10/15(土) 20:48:05.82ID:71BCtDZc0
あっ>>261がいた
忘れてくれ
2022/10/15(土) 20:48:33.45ID:onTnH2DB0
あっても使わないから落ち着け
2022/10/15(土) 21:34:19.40ID:2u2iBEwS0
>>272
Python使ってなくて困ってもないのに
> どう考えても{}あったほうがいいだろ…
って、一体なんの言語の話ししてるんだ?
276デフォルトの名無しさん (ワッチョイ 9f01-CUgD)
垢版 |
2022/10/15(土) 22:12:17.55ID:mRrGj9Y+0
>>275
一般言語の話な
他の言語みんな{}ついてんだから必要なもんなんだよ
わかりやすいし
277デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/15(土) 22:21:40.18ID:Ggc2td0l0
インデントの位置で動きが変わる欠損言語だよな
2022/10/15(土) 22:23:32.44ID:2u2iBEwS0
>>276
お前の使う言語はみんな { } 使うのに
> どう考えても{}あったほうがいいだろ…
って意味不明なんだがw
2022/10/15(土) 22:46:19.16ID:tSskybGM0
python には {} なくても通用してるんだから、あっちのユーザーさんには必要なものではないんだろう。
自分は {} あった方がいいからって理由もあって ruby とかもキライなんだが。

まあ好き嫌い言ってても仕方ない。我らは要望に応えるだけだ。
2022/10/15(土) 22:59:00.35ID:TYEHa44m0
vb「begin endですが何か?」
2022/10/16(日) 02:11:40.97ID:IoSf1xr/0
>vb
loopだったりnextだったりする箇所は別人が引き継いだのかな
2022/10/16(日) 08:54:37.59ID:9H+50nm50
>>281
basicが作られた時は今のようにブロックで構造化するんじゃなくgotoしてた
つまりifと対応するのはendではなくgoto
10 if a=1 then goto 40
20 rem aが1でないの時の処理
30 goto 50
40 rem aが1の時の処理
50 次の処理
ブロックという概念がそもそも無かったからブロックの形を統一しようという発想もなかった
2022/10/16(日) 09:45:07.64ID:zEVEZIxw0
loop 使えるような Basic で関数ブロックを持たない奴なんてなくね?
てか、end はともかく begin なんてキーワードを持つ Basic も見たことないんだが
2022/10/16(日) 09:52:41.83ID:3xSHFrvIa
>>283
見たことないのはお前が使ったことないからだな
https://stackoverflow.com/questions/61893042/what-visual-basic-syntax-is-this-begin-end-no-class

あと関数なんて無かった
gosubでサブルーチンを実装してたがサブルーチンもメインルーチンの好きなところに好きにgotoできたしそこにブロックの概念はやはり無かった
2022/10/16(日) 10:21:36.83ID:zEVEZIxw0
>>284
.frm ファイルとかをあげるバカが出てくるかと思ってたらマジで出てきたw
今してるのは言語仕様の話な

あとVBに関数ブロックあるし老害はそろそろ黙っとけ
2022/10/16(日) 10:23:41.83ID:9H+50nm50
言語仕様だぞw
キーワードに見えんか?w
2022/10/16(日) 10:24:56.25ID:9H+50nm50
あと初期のBASICに関数が無いという話をしてるんだから文盲は口を挟まない方が恥をかいて発狂しなくて済むぞw
2022/10/16(日) 11:17:27.02ID:zEVEZIxw0
>>286
残念ながらキーワードに begin なんてないんだなw
https://learn.microsoft.com/ja-jp/office/vba/language/reference/keywords-visual-basic-for-applications
※ vb6 のドキュメントは見つけられなかったので vba のやつな、似たようなもんだし

>>287
>>281 に loop と書いてあるのにお前が勝手に初期の Basic の話にしてるだけだろ
2022/10/16(日) 11:24:23.67ID:1mPDcr2ta
なんでVB.NETの話をしてるのにVBAのドキュメント見てるんだ文盲w
2022/10/16(日) 11:25:30.01ID:1mPDcr2ta
あとなんで初期のキーワードの成り立ちの話をしてるのに一人loopの話をしてるんだ文盲w
2022/10/16(日) 11:34:12.88ID:7phLrZXmM
>>287
残念ながら文盲は文字自体が読めない人のことだよ

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

そういう人
君は文盲が何か理解できてない
2022/10/16(日) 11:35:46.69ID:1mPDcr2ta
アスペと言えば良かったということか
2022/10/16(日) 11:35:53.13ID:9tRg+VNh0
>>1 が読めないもん同士なんだからどっちも消えろw
2022/10/16(日) 11:51:09.98ID:zEVEZIxw0
>>289
バカなのか?
回答に That is VB6 code. って書かれてるだろ
どうせ>284は basic begin あたりで必死にググってきたんだろうけど恥の上塗りにしかなってなくて草

>>290
だから >>281に loop と書いてあるだろ
do loop も知らないのなら黙ってなよw
2022/10/16(日) 11:52:27.38ID:1mPDcr2ta
>>1が読めないアスペはいつまでもアホなこと言ってないで消えろよw
2022/10/16(日) 12:24:39.22ID:zEVEZIxw0
>>295
>>284に言ってやれよw
2022/10/16(日) 12:25:47.33ID:9H+50nm50
全く反省の色が見えないぞアスペ
2022/10/16(日) 12:47:17.79ID:zEVEZIxw0
キーワードで恥かいて悔しいねw
2022/10/16(日) 12:48:24.88ID:1mPDcr2ta
VB.NETの話にVBA持ってきて恥をかいたのがお前ということは言ったろw
いつまで寝言言ってんだスレ違い
2022/10/16(日) 13:27:00.75ID:zEVEZIxw0
まだ、VB.NETとか言ってて草
英語も読めないバカ乙
2022/10/16(日) 13:27:43.86ID:9H+50nm50
まだ恥をさらすんかいw
2022/10/16(日) 13:53:22.51ID:zEVEZIxw0
キーワードバカ颯爽と再登場!
恥の上塗りのよかーんw
2022/10/16(日) 13:54:32.92ID:9H+50nm50
悔しいのはわかったからそろそろスレ違いということを理解して出ていけよw
2022/10/16(日) 14:01:28.80ID:zEVEZIxw0
>>303
>>301 に言ってやれよw
2022/10/16(日) 14:03:19.31ID:9H+50nm50
お前に言ってるんだよアスペw
言葉遣い同じだからすぐわかるわアスペw
2022/10/16(日) 14:24:54.49ID:zEVEZIxw0
アスペとしか言えない恥曝し乙
そもそもid付いてるのに言葉遣いとか頭沸いてるのかよw
2022/10/16(日) 14:27:09.03ID:9H+50nm50
まだ続けるのか
アスペはしつこいなw
だから他のスレでも軒並みアスペと呼ばれてるんだぞw
2022/10/16(日) 14:45:38.60ID:zEVEZIxw0
>>307
>>307
2022/10/16(日) 16:51:17.67ID:SOkAGPqKd
アスペ文盲 vs アスペ老害
初心者C#「ファイッ!」
2022/10/16(日) 17:36:31.58ID:smb+KIWw0
>>291
文盲は「自分の名前の読み書きができるか」って基準です
2022/10/17(月) 10:52:48.22ID:EEvzrdC6M
>>310
それは間違った知識だな
識字率が著しく低い人がいわゆる文盲

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

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

井上ひさしの書籍では識字率の試験を受けた老婆の話が載っていて読み書きは出来ないが
たまたま自分の名前の漢字が含まれていたので正解ゼロにはならなかったと言う逸話が乗っていた
それが間違って覚えてるんだろう
2022/10/17(月) 11:45:02.06ID:uvkff8kK0
>>311
世界中の文盲率を計測するために作られた世界標準の文盲の基準ですよ
あなたの言うような文学的基準では全ての国を平等に比較するのは無理ですね
2022/10/17(月) 15:53:46.65ID:4k1KVawh0
ホリ工モン基準だと日本人の5割は文盲らしいぞ
だからユーチューブとかチクトクが流行る
314デフォルトの名無しさん (ワッチョイ 6b01-uI8J)
垢版 |
2022/10/17(月) 20:54:25.97ID:9OAS6xxs0
なるほどホリエモンは文盲ってことか
2022/10/18(火) 00:44:28.00ID:JpO0eTnpM
>>312
そんな独自研究なんて聞いたことないわ
2022/10/18(火) 02:02:12.75ID:ngZCuxghM
「識字率が低い人」ってもう何もかもダメそうな表現やな……
2022/10/18(火) 19:12:18.10ID:PTCHOYVI0
アメリカのスラム街の子供は、I no. とかそのレベルだぞ
日本は寺子屋文化で異常に高いだけ
2022/10/18(火) 19:16:28.64ID:UBgCygBr0
>>317
そういうのはスラムとかじゃなくて知的障害の類だからそれで言ったら日本も別に変わらない
319デフォルトの名無しさん (ワッチョイ cb59-w9bA)
垢版 |
2022/10/18(火) 22:05:07.00ID:OR0fD8XM0
こう包み込む感じの関数と、括弧内に数値を入れる関数では何がちゃうんでしょうか?
ToString(floatvalue);
floatvalue.ToString();
2022/10/18(火) 22:17:39.34ID:HdYtkAV80
関数を作ったやつに聞くが良い

上はエラー
floatvalue.ToString(書式);
321デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/18(火) 22:30:07.73ID:joOPF2hi0
ヒント
ネームスペース
2022/10/18(火) 22:30:07.98ID:cuMhZa5Q0
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,
   :
   :
 };
2022/10/18(火) 22:36:04.52ID:oAfMFtaG0
何がしたいのかわからん
その匿名クラスのオブジェクト作る意味あるか?
2022/10/18(火) 22:43:04.96ID:cuMhZa5Q0
先の例ではテーブル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,
   : // プロパティ多すぎて書くのがだるい
 };
325デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/18(火) 22:44:16.89ID:joOPF2hi0
一度書けば済むんだからチマチマやれよ
2022/10/18(火) 22:49:27.13ID:cuMhZa5Q0
IT土方にはなりたくないんです!
スマートに書きたいんです
2022/10/18(火) 22:50:05.56ID:oAfMFtaG0
やっぱり何がしたいかわからんな
select (tbl,fuga)でいいだろ
2022/10/18(火) 22:59:42.55ID:HdYtkAV80
DapperのsplitOnだな
2022/10/18(火) 23:01:06.32ID:cuMhZa5Q0
>>327
それだと
foreach(var row in query)
{
 // row.tbl.IDのようにドットが2つになる
 // row.IDのようにアクセスしたい
}

後だしで申し訳ないですけど、このあとExpressionで動的に検索かけるので
tblとかfugaとかあると今の私の知識では出来ないんです。。
2022/10/18(火) 23:03:47.75ID:oAfMFtaG0
Expressionで動的に検索って何だ
何がしたいかわからんと再三言ってるんだからまず何がしたいかを説明しなきゃ話にならんだろ
2022/10/18(火) 23:05:30.50ID:cuMhZa5Q0
ぇ、だからやりたいのは>>322です
Expressionは質問の趣旨とずれます
2022/10/18(火) 23:06:39.73ID:oAfMFtaG0
そうか説明したくないなら別に聞く必要ないわ
頑張れ
333デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/18(火) 23:09:54.15ID:joOPF2hi0
動的にって、スクリプト書くしか無いんじゃね?
2022/10/18(火) 23:10:51.98ID:oAfMFtaG0
もう触らなくていいぞ
2022/10/18(火) 23:17:24.79ID:9/f62YBx0
>>322
jsのスプレッド構文みたいな感じ?
ちょっと違うか
2022/10/18(火) 23:23:54.56ID:cuMhZa5Q0
>>335
ニュアンス的にはそんな感じですね。
ただ展開したいのは値じゃなくてプロパティの方なので、やっぱり動的プログラミングの範疇ですよね
2022/10/18(火) 23:44:26.60ID:sRZwLUu60
C#でJavaScriptを実行する方法
アドレス省略

とかどうだろ?
ゲームだとLuaとかpythonよく使ってたな
自分は使える状態になったもんしかいじったことない
2022/10/18(火) 23:47:40.60ID:oAfMFtaG0
なるほどパフォーマンスや保守性を無視していかに質問者の最初の問に矛盾しないコードを書くかという大喜利か
2022/10/18(火) 23:54:23.64ID:sRZwLUu60
>>338
別に変な方法じゃないぞ
ゲームとかパフォーマンスに影響する部分はc++でゴリゴリ書くけど
そうでない部分はc#で
もうゲームシステム部なんて
全部pythonだったりしたぞ

ビジネスアプリでもこれ割とアリだと思うんだけどね
速度を求めてないときに型とか煩わしいだけで無駄だと思うんだよね
かと言ってDictionaryでやっちゃうと完全に型チェックなくなっちゃうし
2022/10/18(火) 23:59:43.02ID:oAfMFtaG0
ビジネスでは完全に無しだわ
趣味なら好きにしたらいんじゃね
341デフォルトの名無しさん (ワッチョイ cb59-w9bA)
垢版 |
2022/10/19(水) 05:19:21.43ID:jC2EXU9G0
>>321
下に関して、ネームスペースにする必要ありますか?
342デフォルトの名無しさん (ワッチョイ bb5f-Jufk)
垢版 |
2022/10/19(水) 09:19:09.84ID:JDWm2Gob0
>>341
あ?
上は自クラス内メソッドだろ?
下は参照クラス内メソッドだろ?
同じメソッド名ってのに惑わされるなよ別物だぞ
2022/10/19(水) 12:49:22.09ID:rgBskw8B0
>>324
Ruby on Rails には、O/R マッパーもあるので全自動

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

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

Java 土方は、Railsを使えない。
Java土方 vs リモート開発のモダンなRails
2022/10/19(水) 12:52:27.97ID:rgBskw8B0
YouTube のDeanin の動画では、

Ruby on Rails で、Three.js, Godot で、3D ゲームを作っていた
2022/10/19(水) 13:56:06.53ID:8/1xE7uxa
オワコンと言われて久しいRailsがモダンと言われたのは何年前の話だろうか
2022/10/20(木) 11:30:15.44ID:PZrToWIo0
>>318
違うぞ、きちんと話せて意思疎通もできるけど、単に文字が書けない知らないってだけ
日本にいたら、そんな人の存在は理解できないけど
2022/10/20(木) 14:00:06.54ID:EjoMYd4Ya
(スラングだといつ気づくんだろう)
348デフォルトの名無しさん (ワッチョイ cb59-w9bA)
垢版 |
2022/10/21(金) 20:36:11.47ID:Uz/9j/Qf0
プログラミンはどれだけきれいに書くかが大事なんでしょうか?
汚いとそれだけで頭がこんがらがります(´・ω・`)
2022/10/21(金) 20:38:50.78ID:cLyPMgkx0
WOZは天才だけどプログラムが美しいかと言うと?
2022/10/21(金) 20:39:28.61ID:evL0t28u0
>>348
設計レベルだときれいは必須
コーディングレベルだとVSに従ってるレベルであればOK
2022/10/21(金) 21:45:05.81ID:IBSByhnA0
性格いい人見つけてレビューしてもらう
352デフォルトの名無しさん (ブーイモ MMcf-Z2+b)
垢版 |
2022/10/21(金) 22:27:13.65ID:whbnSZB/M
>>348
その通り
ただ君の考えるキレイと優れた開発者の考えるキレイが同じとは限らない
2022/10/21(金) 23:23:29.11ID:X//QLN3D0
可読性の高い、Ruby がベスト。
他の言語は可読性が低いから、作った瞬間から産業廃棄物

だから皆、新規で作って、作り逃げする。
自分が作ったものでも、改修できないからw
354デフォルトの名無しさん (ワッチョイ 3901-80Lh)
垢版 |
2022/10/22(土) 00:49:35.85ID:vvrmomXL0
>>353
正論
Ruby以外の言語をやってるやつはサタン
2022/10/22(土) 00:58:20.33ID:SCNLWEI10
可読性が低いことで有名なPerlを受け継いだRubyの可読性が高いって何の冗談なんだか
2022/10/22(土) 01:04:16.52ID:sdxg/Y9t0
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
2022/10/22(土) 01:04:55.75ID:SCNLWEI10
自分に言い聞かせてるのか
2022/10/22(土) 04:59:53.84ID:g5VlGNlPa
>>356
ほんこれ
2022/10/22(土) 10:37:35.64ID:rexZxi1C0
enum型をintにするには (int)hogeでいけるが
Hage<T>(T value) の時、valueをintに変換
var result =(int)vale; だとエラーになる

どうすればいけるんですかね?
2022/10/22(土) 10:57:52.04ID:sdxg/Y9t0
Hage<T>(T value) where T: Enum
2022/10/22(土) 11:25:06.41ID:QLe4fcYA0
>>359
一度objectに変換すればOK
var result = (int)(object)value;
2022/10/22(土) 11:43:10.44ID:LN75Th25a
>>361
きっつ
2022/10/22(土) 12:37:18.58ID:rexZxi1C0
>>360
今回はすべてのタイプを取り込んでからEnumのときだけやるのでこれは使えませんでした

>>361
コレで行けました
ありがとうございます
2022/10/22(土) 13:50:10.10ID:JgadWci70
そもそもintにしなきゃいけないならenumなんか使うなと思うが・・・
2022/10/22(土) 14:16:53.47ID:J0WzfMNr0
>>364
intのままだと値域を制約できないが、代わりに何を使えばいい?
2022/10/22(土) 17:11:59.78ID:DoqTc5dI0
ジェネリックついでに横から質問させてください。

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

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

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

回避策ありますか?
2022/10/22(土) 17:16:23.54ID:eEXfO1n1M
だってエラーメッセージ通りだろ
どうやってUが何の型か推測できるんだよ

対策はエラーメッセージ通りに明示的にかけ
2022/10/22(土) 17:18:14.30ID:rGDZLIi60
ノリと勢いで推測しろよな
2022/10/22(土) 17:27:58.11ID:eEXfO1n1M
人間はミスして当たり前
何かあったら自分が間違っていることをすぐに受け止めないといけない
そこが入り口
何十年もコード書いてるけどミスだらけ
まずはしっかりとエラーメッセージを読むしかない


にしてもお前らジェネリック好きだな
自分はジェネリックのメソッドなんてほぼ書かないよ
2022/10/22(土) 17:32:27.07ID:eEXfO1n1M
汎用ライブラリみたいなのでジェネリックはありうる

でも自分の使うライブラリのメソッドでは出番はない
クラス設計終わってるしinterface使わないでジェネリック単体なんてことはまずない
そこを汎用的に作る意味ないしコード重複もない
2022/10/22(土) 17:36:42.98ID:0Z7kQC5T0
おまえがジェネリックを書くかどうかなんてどうでもいい、チラ裏にでも書いとけ
2022/10/22(土) 17:42:42.27ID:eEXfO1n1M
普段のコードでジェネリックを使ってたら大体何かが間違っている
2022/10/22(土) 17:50:29.89ID:SCNLWEI10
ジェネリックをほとんど使ってないやつのコードを見ると単一責任原則に反してるケースが多い
2022/10/22(土) 19:28:17.81ID:LnG3fbHw0
曖昧論はいいから具体論を頼む
375デフォルトの名無しさん (ワッチョイ 8135-qwLX)
垢版 |
2022/10/22(土) 19:57:34.11ID:ql0xnxKt0
デフォルト型引数っていうのはないのか
2022/10/22(土) 20:35:58.55ID:eEXfO1n1M
普通にオーバーロード書けよ
377デフォルトの名無しさん (アウアウウー Sa45-qwLX)
垢版 |
2022/10/22(土) 20:59:48.27ID:PKq48whGa
tsにはあるみたい
2022/10/22(土) 21:14:16.27ID:eEXfO1n1M
typescript(javascript)にはオーバーロードがないからな

普通に書けばいいのにわざわざ難しく書いて機能がないとか言い出すのはどうなの
379デフォルトの名無しさん (アウアウウー Sa45-qwLX)
垢版 |
2022/10/22(土) 21:16:10.99ID:dlqtwNJ3a
おー、怖い怖い。
2022/10/22(土) 21:29:04.96ID:SCNLWEI10
tsは変性が無茶苦茶で整合性とれてないからデフォルト型引数ができるんだろ
https://qiita.com/na-o-ys/items/aa56d678cdf0de2bdd79
381デフォルトの名無しさん (ササクッテロラ Sp11-SrSm)
垢版 |
2022/10/22(土) 21:50:34.77ID:pZkxSUcfp
デフォルト型引数を導入は完全な上位互換ではなく何かしらの不都合があるからないってことかな?
よーわからん。
2022/10/22(土) 21:55:53.90ID:eEXfO1n1M
typescriptは出来立てはきれいな文法や仕様だった

ところが素のjavascriptの仕様がひどすぎてどんどん仕様追加していって
全部の機能を把握してコード書いてる人間はいないんじゃないかと言うぐらいカオス状態になってる
2022/10/22(土) 22:34:54.25ID:DoqTc5dI0
もちろんオーバロードも考えましたけども。
Mikuメソッドが30行くらいあって、negiが指定されてる場合に処理の真ん中あたりの2,3ステップだけnegi処理をやるっていう
すっごいオーバロードに向かない作り。

記述量も増えるし、一概にオーバロードっていう考えもどういうものかと。
それにメソッド定義時点で警告も何も出ないので、何か呼び出せる書き方があるのかなと思った次第です
2022/10/22(土) 22:37:13.17ID:sdxg/Y9t0
void Miku<T>(List<T> vol) => Miku<T, object>(vol);

この1行足すだけやん
コピペで作ろうとしてる?
2022/10/22(土) 22:38:02.72ID:sdxg/Y9t0
まちがえた
... => Miku<T, object>(vol, null);
2022/10/23(日) 10:00:46.08ID:+fqIJl0NM
>>383
警告出るわけがない
出るならコンパイラがおかしい

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

どちらにしても本当にジェネリック使うのが正しいのか考え直して欲しい
2022/10/24(月) 18:30:02.69ID:Pqz/1oYS0
where U : classの必要性がわからん
何も渡さないなら
Miku<T>(List<T> vol, object negi = null)
で良いんじゃないかとしか思えん
2022/10/24(月) 18:55:12.60ID:chiatfyX0
それAggregateの前でも同じこと言えんの?
2022/10/25(火) 17:31:24.22ID:/HcoEXSHd
中括弧というか、中括弧行がほぼ、空白行にみえて、鬱陶しい
vbしかやってこなかった弊害だな
2022/10/25(火) 17:37:21.21ID:qnnhkHib0
スコープが変わるからインデントを入れても空白行を入れても問題ない程度にはコンテキストが違うぞ
空白行は複数行のコードをいくつかのまとまりに分ける時に使うだろ?
391デフォルトの名無しさん (ワッチョイ 8201-80Lh)
垢版 |
2022/10/25(火) 18:41:46.55ID:tJBp4Vzi0
EntityFrameworkについての質問です。
同じDB(SQLServer)で2つのテーブルを使いたいのですが、現在すでにEntityFrameworkで登録しているテーブルに加え、
もう一つ別のテーブルを追加したいときどのように記述すればよいのでしょうか。

DataContextクラスをもう一つ作らないといけないのでしょうか。
よろしくお願いします。
https://imgur.com/w35hFzI.jpg
2022/10/25(火) 18:56:40.03ID:tQ39k2n1a
>>391
https://teratail.com/questions/sc3yzexncjd2uj
dbは違うけどこれお前じゃね?
393デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/25(火) 18:58:42.86ID:mfkWT+mt0
print(1%3);
なんでこれの結果が1になるんでしょうか
0.11111111になるかとおもってたんですが
394デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/25(火) 18:59:45.45ID:tJBp4Vzi0
>>392
残念違います
2022/10/25(火) 19:06:06.10ID:tQ39k2n1a
>>393
余りが整数にならないわけないじゃん
2022/10/25(火) 19:18:16.71ID:Str/i4Gi0
>>389
中カッコが空白行っぽくみえるからVBで入れてた空白行をいれなくてよくていい感じだが

>>391
そもそもその一つ目のテーブルどうやったんだよ?
同じ手順で追加できるんじゃね
397デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/25(火) 19:19:52.52ID:tJBp4Vzi0
すみません自己解決しました
public DbSet‹Article›~の下に
public DbSet‹追加したいテーブルのモデル›プロパティ名ゲットセットを追加して
ソリューションのMigrationsファイルを削除してやってみたらいけました
398デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/25(火) 19:20:54.69ID:tJBp4Vzi0
>>396
同じ手順でやってみたのですがマイグレーションズファイルの中身が邪魔してたのかもしれません
2022/10/25(火) 19:21:44.69ID:510nTPbL0
非常に初心者スレっぽい流れ
400デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/25(火) 19:57:45.49ID:mfkWT+mt0
bool rangeFunction(float value,float min,float max)
{
if(value > 0 && value < 3)
{
print("範囲内です");
return true;
}
return ;
}

ifの外でリターンを返すにはどうしたらいいんでしょうか?
範囲指定の関数になります。
もし範囲内であればtrueにします
2022/10/25(火) 20:00:18.67ID:qnnhkHib0
return value is >= min and <= max;
2022/10/25(火) 20:01:21.65ID:qnnhkHib0
つかprint(って何だ)をそんな変なところに入れんな
2022/10/25(火) 20:01:30.48ID:PDW864Oy0
>>393
%は余剰(割り算の余り)を求める演算子
1÷3=0余り1
2022/10/25(火) 20:05:37.53ID:PDW864Oy0
>>400
下の方のreturn ;をreturn false;にする
2022/10/25(火) 20:16:09.52ID:VW8svp7V0
>>393
もし良ければ、0.11111111 になると思った根拠を聞かせて
2022/10/25(火) 21:04:35.60ID:M/tJTOq7M
0.11111111.…(永久に循環)だったら =1だから間違ってはいないけどそういう問題でもない
2022/10/25(火) 21:05:06.09ID:M/tJTOq7M
二進数でが抜けてたな
2022/10/25(火) 21:08:37.11ID:qnnhkHib0
算数苦手なんだろ
1/3が0.333...だから余りは1-0.333...×3で0.111...という発想なんだろうな
それでも0.000...だけどな
409デフォルトの名無しさん (ササクッテロラ Sp11-LjDK)
垢版 |
2022/10/25(火) 21:10:47.53ID:JX+WIZlhp
整数の世界
2022/10/25(火) 23:46:02.17ID:GCi1IYdR0
print文はrangeFunction()呼び出し側に実装すべき
411デフォルトの名無しさん (アウアウウー Sa45-80Lh)
垢版 |
2022/10/26(水) 00:08:21.84ID:NhZ6Jc52a
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 } };
2022/10/26(水) 00:10:49.93ID:MPkBvgrP0
どういう型なのかVSが正確に教えてくれるのがこの言語の良さだが教えてくれないのか?
具体的にCOMのどの関数?
2022/10/26(水) 00:16:41.96ID:NhZ6Jc52a
photoshop.applicationのActiveDocument.Selection.Selectです
2022/10/26(水) 00:17:49.17ID:HZuVvHGf0
int配列じゃないじゃないか
2022/10/26(水) 00:24:02.09ID:NhZ6Jc52a
すみません。doubleでした。が、これでもエラーは変わらずです
data = new double[][] { new double[] { x, y }, new double[] { x + w, y }, new double[] { x + w, y + h }, new double[] { x, y + h } };
2022/10/26(水) 00:49:42.78ID:NhZ6Jc52a
自決。これでいけました
data = new object[] { new object[] { x, y }, new object[] { x + w, y }, new object[] { x + w, y + h }, new object[] { x, y + h } };
417デフォルトの名無しさん (ワッチョイ 8135-aRew)
垢版 |
2022/10/26(水) 00:53:03.57ID:lrx3siXd0
おう早く成仏しろよ
2022/10/26(水) 06:08:13.19ID:h2Qffg100
定期的に自決してるネ
2022/10/26(水) 08:07:30.06ID:HZuVvHGf0
自決が自殺のことと知らず自分で勝手に言葉を作るやつが増えたんだろ
2022/10/26(水) 09:24:34.71ID:T9NC5dRR0
5chのノリに対して真面目に言われても。。
2022/10/26(水) 09:36:42.74ID:7O9MyaKx0
https://images.squarespace-cdn.com/content/v1/5068fd0ec4aa16ad80737e95/1524567345147-PKE47EDZHTVBCAOJ60NE/kitano005.jpg
2022/10/26(水) 09:37:16.88ID:HZuVvHGf0
お前らノリじゃなく本気で知らんだろ
最初は俺も「さすがにそれを知らんやつはいないから冗談だ」と思ってたんだぞ
423デフォルトの名無しさん (ササクッテロラ Sp11-LjDK)
垢版 |
2022/10/26(水) 09:58:58.52ID:e8T4fz3Wp
varで勝手に型決めろって言っといて型が違うとか傲慢なw
2022/10/26(水) 10:12:48.45ID:HZuVvHGf0
varは型推論
型を自由に変えられるのはvbならvariant
C#ではCOMはdynamicで受けるのが定番
2022/10/26(水) 10:13:22.89ID:YS2geK1Yr
勝手に決めろというか推論だから、違ってることもあるんじゃねーの?
426デフォルトの名無しさん (ササクッテロラ Sp11-LjDK)
垢版 |
2022/10/26(水) 10:17:04.49ID:e8T4fz3Wp
object型が万能型って事かぁ
2022/10/26(水) 10:20:24.72ID:Do8Z1/L1a
objectじゃなくdynamicだっつってんだろw
objectにしたらobjectの持ってるメソッド以外使えないだろ
2022/10/26(水) 10:26:21.60ID:g9KqG/ntM
>>425
確定できる文法になっています
429デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/26(水) 10:26:54.29ID:hM0WEApa0
>>403
なんで0.11111があまり1になるんすかね(´・ω・`)
2022/10/26(水) 10:28:54.49ID:g9KqG/ntM
>>429
0.11111ってどっから出てきたの?
431デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/26(水) 10:29:16.86ID:lQW0CdoF0
基本的に型が合いませんって言われたらobject型を疑うようにしてる
クラス名の型にぶち込めばなんやかんやで動いてくれる
432デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/26(水) 10:30:16.76ID:lQW0CdoF0
>>429
0.00000000…1だろ…
433デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/26(水) 10:37:26.97ID:hM0WEApa0
>>401
どゆこと?特定の範囲内に収まってればtrueを返したい
434デフォルトの名無しさん (ササクッテロリ Sp11-LjDK)
垢版 |
2022/10/26(水) 10:40:48.05ID:yId2OGphp
>>429
整数しか無い世界の話に少数持ち出すなよw
2022/10/26(水) 10:46:07.05ID:g9KqG/ntM
あ、なるほど
0.33333333×3=0.99999999だから
余りは0.11111111ってことか!
完全に理解した
436デフォルトの名無しさん (ササクッテロリ Sp11-LjDK)
垢版 |
2022/10/26(水) 10:53:47.60ID:yId2OGphp
>>435
小学校からやり直せw
437デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/26(水) 11:01:03.70ID:hM0WEApa0
>>434
少数使っちゃだめなんやね
2022/10/26(水) 11:01:38.87ID:Do8Z1/L1a
>>433
関数内をその一行だけにすれば特定の範囲内の時にtrueでそうじゃない時にfalseが返る
printはその返り値で分岐したらいい
2022/10/26(水) 11:04:11.58ID:Do8Z1/L1a
>>437
小学校でそう習わなかったか?
4÷3は1余り1
少数を使わないために余らせてるのに使ってどうするよ
1÷3は0余り1だろ
1個のリンゴを切らずに3人に平等に分けると1人0個ずつで1余る
2022/10/26(水) 11:06:44.91ID:NhZ6Jc52a
>>435-436
こういうの好き
441デフォルトの名無しさん (ササクッテロリ Sp11-LjDK)
垢版 |
2022/10/26(水) 11:09:20.02ID:4jVuVTojp
りんごじゃ半分にすればいいじゃんってなるから
もっと分けられないものを例えにした方がいい
2022/10/26(水) 11:11:52.88ID:Do8Z1/L1a
切らずにつってるのに切るバカには何言っても無駄だから
2022/10/26(水) 12:22:24.32ID:jqBYUPvjM
すりおろしたら良いじゃん
2022/10/26(水) 12:26:19.21ID:Do8Z1/L1a
そう言うこと言うやつは子猫でもすりおろすから
445デフォルトの名無しさん (ワッチョイ 3901-ZTQa)
垢版 |
2022/10/26(水) 12:35:40.43ID:lBrQFFOa0
俺が咀嚼して2人には口移し
2022/10/26(水) 12:48:13.46ID:DNyqLTW70
ジャイアン、スネ夫、のび太で考えろよ
2022/10/26(水) 12:57:07.06ID:i0WUe8DpM
数直線を切る
デデキントの切断
整数を切断しても整数しか発生しない
448デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/26(水) 20:25:34.79ID:hM0WEApa0
パブリック変数がスクリプトの銭湯二ズラーっと並びますが、これを折り畳める昨日はないのでしょうか
関数みたいに【】でくくることは出できないですし
2022/10/26(水) 20:28:15.82ID:1JfwFfQJa
#region
#endregion
で囲む
450デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/26(水) 22:16:29.32ID:lQW0CdoF0
記事検索の機能をつけたいのですが
Title,Contentパラメータの入ってるリストで検索ワードで検索しどちらか片方でも入っているものを再度別リストにしたい場合ってどうやるのですか?
FindAllは完全一致じゃないとだめでしたよね?
2022/10/26(水) 22:30:34.01ID:MzASwS2c0
普通に
2022/10/26(水) 22:33:06.99ID:fUqihkJz0
var newList = list.Where(x=>x.Title.Contains(hoge) || x.Content.Contains(hoge)).ToList();
453デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/26(水) 22:35:16.80ID:lQW0CdoF0
>>452
ありがとうございます
LINQ構文使うんですね
454デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/27(木) 04:33:25.61ID:+0xiQnXe0
>>449
はい
455デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/28(金) 18:26:15.47ID:HG0H6tJb0
プログラミンはある時を超えると急速に上達したりするでしょうか?
学習曲線というか

停滞しすぎなので、そうであればやる気になりますね
2022/10/28(金) 18:27:43.03ID:YfCj0B1j0
初歩で停滞してるやつは急速に上達なんかしないよ
457デフォルトの名無しさん (ワッチョイ 8201-SlLl)
垢版 |
2022/10/28(金) 18:36:43.66ID:1ARXQoUR0
初歩の方で躓いてたらそうかもしれん
右肩上がりの階段状の成長曲線かな
2022/10/28(金) 18:50:51.32ID:9kHpqARR0
>>455
組めるようになって、組んだもののチェックができるようになったらそこで一旦は終わり
定年までハナクソでもほじっていればよい
459デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/28(金) 19:04:40.27ID:HG0H6tJb0
まあ信じて頑張るしかないすね
2022/10/28(金) 19:18:00.09ID:ZZAq6DiJ0
>>455
書くより読もう
2022/10/28(金) 19:22:03.01ID:MkzS3v4A0
まあオブジェクト指向とかは書いてて初めて恩恵を感じてると理解したときになるほどって思ったことはあったな
設計もそうだけど
2022/10/28(金) 19:24:14.41ID:ZZAq6DiJ0
進次郎「感じてると理解したときになるほどと思った
2022/10/28(金) 19:37:56.31ID:yAiIpvPxM
世の中にある事象をある程度プログラムできるようになったらそこでいったん終了
ゲームでも作ってコードが汚いけど確実に動かせるレベルだな

次は他人のプログラムを見て設計的なことを学んで理解できて自分で同じように書けるようになったら次も終了
2022/10/28(金) 19:41:16.54ID:4sg0pV9K0
初学者のうちで一気に理解が深まったタイミングは
・デバッガが使えるようになった
・テストの必要性を感じて書いた
・リファクタリングできる気がしてやってみた
とかかなぁ

多分学習進度との関係もあると思うけど、思考が切り替わった気がした
2022/10/28(金) 19:58:42.59ID:yAiIpvPxM
最近の人はアルゴリズムを勉強しないらしいので暇だったら勉強してみ
466デフォルトの名無しさん (ワッチョイ 7159-zh4g)
垢版 |
2022/10/28(金) 20:14:56.13ID:HG0H6tJb0
頑張ります
unityやってます

デバッグは確かに課題です
どの部分に問題があるか分からなくて1日潰れる
2022/10/28(金) 21:39:09.15ID:yAiIpvPxM
ゲームのデバッグは経験かな
再現性がないと地獄だけどそのうち多分ここがおかしいとある程度わかるようになる

それまではこんなものかと思うしかない
2022/10/28(金) 21:42:39.07ID:GLKGqrevM
ゲームはどうやってテストしてんのか想像つかん
仕様書とか無限に分厚くなるだろ
2022/10/29(土) 04:45:42.61ID:qpmL7ZAma
ゲーム開発者だけど仕様書なんて先ずの実装が終わったら最後に辻褄合わせする位だよ。放置も多々ある。
後半はデバッグで出たのを出来る限り潰すイテレーションなのでデバッガーとプログラマーのやり取りで終始する感じ。
期限も工数も有限なので落とし所が大事
470デフォルトの名無しさん (ワッチョイ 3959-41VR)
垢版 |
2022/10/29(土) 06:52:55.09ID:K4cJTF5F0
プログラミンはどれだけきれいに書けるカノ勝負でもあるんでしょうか
整理整頓されていないと頭がこんがらがる
471デフォルトの名無しさん (ワッチョイ 3959-41VR)
垢版 |
2022/10/29(土) 07:24:30.88ID:K4cJTF5F0
>>467
問題の特定
これですね 当面の課題は
2022/10/29(土) 10:52:44.27ID:ajFln1b10
当面というか永遠の課題だぞ
473デフォルトの名無しさん (ササクッテロリ Spc5-KGDB)
垢版 |
2022/10/29(土) 11:07:47.06ID:FxlbVrY8p
>>470
コーディングが綺麗かってのと
構造が綺麗かってのはイコールじゃ無いからなぁ
2022/10/29(土) 11:37:00.65ID:rhy5a3mta
Unityから始めたやつはだいたいその場しのぎのコードを書くしそれを教えたがるからUnity関連の情報はそんなのばっかになる
2022/10/29(土) 11:39:05.64ID:t5eKPicIM
でも正直unityに機能がないときはやらない仕様に変えたほうがいいまである
別に仕事でやってんじゃないし
2022/10/29(土) 11:52:43.38ID:AHyDFjq20
クラスかタプル作ってオブジェクトの配列にすればいいのにやつら平気で複数の配列を使うし何でもかんでもシングルトンにするしそれ継承しなくていいだろってやつ継承するしnullチェックしないしバグ有りの同じコードを関数に切り出さずいくらでもコピペするしUnityのC#はマイクロソフトのC#のサブセットと信じてUnity関連以外の情報信用しないし
477デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/10/29(土) 12:32:34.34ID:GsZMr1/10
静的クラス=イングルドンでしょうか?
2022/10/29(土) 12:36:23.71ID:D1cycp0Sa
プログラミング関連情報サイトは、自分の勉強がてらそれをネタに記事書いてるのが多いからな
言い方変えると初心者が記事書いてるからそんな情報ばっかになるんだよ
479デフォルトの名無しさん (アウアウウー Sa9d-uirP)
垢版 |
2022/10/29(土) 12:39:55.27ID:QGEirdnxa
>>476
小規模ならそれで十分
そんなところでわざわざガチる必要ない
2022/10/29(土) 12:40:47.02ID:rhy5a3mta
静的クラスはインスタンスを作れないクラス
例えばこれ
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
2022/10/29(土) 12:42:12.37ID:rhy5a3mta
>>479
だからいつまで経っても成長しないしすぐ困って人を頼らなきゃいけなくなるしできない癖に妙に偉そうだし
482デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/10/29(土) 12:44:07.64ID:GsZMr1/10
>>480
なぜシングルトンのほうは静的クラスではいけないのでしょうか?
2022/10/29(土) 12:46:14.79ID:rhy5a3mta
>>482
そりゃそういう要件だからとしか
例えば上で上げたのはインターフェイスを実装してるだろ?
インターフェイスがインスタンスメソッドを要求してるからインスタンスを作らざるを得ない
484デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/10/29(土) 12:56:28.03ID:GsZMr1/10
>>483

他にも静的クラスではなくシングルトンでないといけないケースはありますか?
2022/10/29(土) 13:21:19.43ID:rhy5a3mta
その二つならインスタンスが必要かどうかで全て言い表せるんじゃね
Unity界隈だとインスタンスを見失うからという間抜けな理由でシングルトンもどきを量産してるけどそういうのは普通引数で渡したりサービスプロバイダを使う
これらを使えばわざわざシングルトンとして設計する必要がない
486デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/10/29(土) 14:43:07.27ID:GsZMr1/10
487デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/10/29(土) 14:48:26.78ID:GsZMr1/10
「インスタンスが必要なケース」とは何でしょうか?
「インスタンスを見失う」とはどういう話でしょうか?
488デフォルトの名無しさん (ササクッテロリ Spc5-KGDB)
垢版 |
2022/10/29(土) 14:57:46.59ID:QL9IPKDOp
どこからでもすぐ呼べる便利クラス…にしたいけど
ぶら下がってるものがたくさんあるからインスタンス渡しでシングルトンなんじゃね?
使う側に配慮してんのさw
489デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/10/29(土) 14:58:56.82ID:GsZMr1/10
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;

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

シングルトンで保持するオブジェクトのクラスが他の設計者のものならこのようにはできないと思いますが、シングルトンのクラス自体のオブジェクトを保持するのであれば使い方も自分で決められるのでシングルトンにする必要性が分からないです。
そのようなケースでは使ってないという認識で合ってますでしょうか?
490デフォルトの名無しさん (ササクッテロリ Spc5-KGDB)
垢版 |
2022/10/29(土) 15:08:48.66ID:QL9IPKDOp
静的クラスで唯一無二ならそれがシングルトンやろい
491デフォルトの名無しさん (ササクッテロリ Spc5-KGDB)
垢版 |
2022/10/29(土) 15:10:32.88ID:QL9IPKDOp
静的クラスだけどインスタンス管理を独自でやって別オブジェクトを配るのはファクトリーだっけ?
2022/10/29(土) 15:37:22.23ID:lV3hVGRgM
>>489
結果的にシングルトンにする場合でもそれを使う側はそれがシングルトンだと意識しない方が後で変更する時に助かる
そのためにはインスタンスが必要

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も書き換え必須
2022/10/29(土) 15:39:24.31ID:lV3hVGRgM
最後間違えた
静的クラスじゃないのでFooは変えなくていい
静的クラスだったらFooも書き換え必須
2022/10/29(土) 15:41:43.09ID:lV3hVGRgM
要するにDIするときにインスタンスが必要になるってこと
DIがなぜ必要かはSOLIDの原則を調べればわかる
2022/10/29(土) 15:45:47.27ID:pn62A2OL0
singleton とは、インスタンスを2つ以上作れらたら、マズイもの

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

1つしか存在してはならない、絶対的なもの。
神とか
2022/10/29(土) 15:57:07.69ID:u+PU0umT0
その例えは多神教全否定になるから不味いw
2022/10/29(土) 16:02:48.14ID:LKZb5SQz0
ひとつしか存在しない絶対的なものは「自分を認識する意識」くらいのものだ
498デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/10/29(土) 16:37:09.15ID:GsZMr1/10

静的クラスとするよりもインスタンス化してから利用するように設計するほうが色々とメリットがあるのですね
2022/10/29(土) 16:57:12.41ID:/AmlPuyW0
>>481
偉そうとか言い出すとコンプレックスみを感じるな。
2022/10/29(土) 17:04:11.43ID:5hK4Xoona
>>499
何で人に物を聞くときに「聞かれたことにだけ答えろ」みたいな大きな態度を取る初心者にコンプレックスを感じなきゃいけないんだw
2022/10/29(土) 18:02:09.38ID:laG6hjw40
文字列もクラスもメソッドも全てが数値のみで管理されており
その数値のみでソースが無いプログラムでも今日制定に
流れを変更できるようになったら一気に理解が深まる。

オブジェクト指向だ、関数型だ、設計がー、なんてのは
一番浅い層の肌の色ぐらいにすぎない。
2022/10/29(土) 18:07:39.23ID:s+eFMxCE0
>>501
たしかになんか理解が深まったんだろうな
ただ機械側によりすぎて、お前の日本語は全然意味分からんw
2022/10/29(土) 19:49:40.68ID:lV3hVGRgM
アセンブラ?
2022/10/29(土) 20:06:55.26ID:/AmlPuyW0
>>500
そりゃ「お前のうんちくは今は要らない」と思われるからだろ。
2022/10/29(土) 20:11:24.34ID:5hK4Xoona
>>504
だからお前はいつまで経ってもコピペしかできないんだよ
2022/10/29(土) 21:38:27.72ID:/AmlPuyW0
>>505
コピペでわかるようなことを答えてるからでは?

俺オジサン側だけどあんまり悪い気がすること聞かれないぞ。聞かれた事しか話さなければ、案外聞いてくるよ。
「これ長いけど」って言ったら「今は良いです」とか言いよるけど、後で聞きに来たり。
関係性でしょこんなの。
2022/10/29(土) 21:42:16.29ID:AHyDFjq20
>>506
今いい関係性を築いてるつもりなのかw
とりあえず>>1を100回読んで首釣って来いw
508デフォルトの名無しさん (アウアウウー Sa9d-na4+)
垢版 |
2022/10/29(土) 21:43:38.37ID:PVOoqMZaa
いま?
2022/10/29(土) 21:50:18.46ID:/AmlPuyW0
>>507
今さら?
2022/10/29(土) 22:08:19.95ID:AHyDFjq20
>>509
しつこいな妬むなよw
お前がコピペしかできないのはお前の努力不足と才能不足で俺に責任はないぞ
>>1を100回読み終わったならすぐに川に行って首が釣れるまで帰って来るな
2022/10/29(土) 22:11:58.18ID:/AmlPuyW0
2022/10/29(土) 22:14:33.73ID:AHyDFjq20
お前は草と首の区別もつかんのか
つくづく使えんやつだな
だから人間関係もうまくいかないんだぞ
513デフォルトの名無しさん (ワッチョイ b953-na4+)
垢版 |
2022/10/29(土) 22:25:09.72ID:GqvAAO/X0
図星突かれたので頓珍漢な返ししかできません
2022/10/29(土) 22:33:09.26ID:AHyDFjq20
だろうな
まだ>>1も100回読めてないだろ
2022/10/29(土) 22:37:03.52ID:s+eFMxCE0
キモい奴らだな
消えろよw
2022/10/29(土) 22:38:53.69ID:AHyDFjq20
そのうち消えるんじゃね
お前も>>1を100回読んで消えとけよ
2022/10/29(土) 22:40:10.99ID:/AmlPuyW0
おい俺に言うのはわかるが、八つ当たりはやめとけよ。
2022/10/29(土) 22:41:41.43ID:AHyDFjq20
また来た
スレチだから八つ当たりしてないで早く消えろよ
2022/10/29(土) 22:42:38.45ID:AHyDFjq20
俺リアルで他人からお前らが言われてるようなこと言われたことないぞ
マジでスレチだからもう書くなよ
520デフォルトの名無しさん (ワッチョイ b953-na4+)
垢版 |
2022/10/29(土) 22:43:50.83ID:/Mu6PCns0
ネット上でもわかるこのキモさ
リアルでも煙たがれてそう。
2022/10/29(土) 22:45:01.83ID:AHyDFjq20
という初心者がいたわけよ
2022/10/29(土) 22:45:30.65ID:AHyDFjq20
マジでまだ続けるこのキモさよ
2022/10/29(土) 23:04:36.64ID:EUjMGqhh0
なんで盛り上がってるの?
だれか3行で頼む。
2022/10/29(土) 23:07:56.87ID:y8vo38aP0
5chでよく見かける
キチ2名の
打ち合い
2022/10/29(土) 23:12:18.42ID:AHyDFjq20
キチに絡まれるのは同レベルのキチだからな
2022/10/29(土) 23:16:29.83ID:i0vA1INFa
ていうかこのスレってコンプレックス持ち多すぎて書きにくいって前から思ってたわ
ちょっと変な初心者の話をしたら刺さったやつがすぐ絡んで来るから
527デフォルトの名無しさん (JP 0H6d-na4+)
垢版 |
2022/10/29(土) 23:24:53.08ID:FgOSZ1hPH
そんなんだからSESしかできないんだよ
もっと社会性を身につけないと
2022/10/29(土) 23:26:26.77ID:AHyDFjq20
よほど刺さったらしいw
529デフォルトの名無しさん (ワッチョイ 1301-cPfV)
垢版 |
2022/10/30(日) 00:17:02.57ID:+d9s9Afp0
今HTMLとCSSでゴリゴリやりながらアプリ作ってるけど正直めちゃくちゃめんどくさい
自由度はHTMLとCSSの方が高いのかもしれんけどXamlとC#のGUIの簡単さってすごいなって思った
2022/10/30(日) 00:58:04.31ID:lsOA6XTZ0
>>529
俺は最近逆の感想しか抱いてないな
HTML/CSSの方が楽に綺麗な外観作れるし何よりもjsが超楽に非同期使えて有難すぎる
C#もお手軽シングルスレッド非同期あれば良いのにな
Unityのコルーチンもjsと比べるとめんどすぎ
531デフォルトの名無しさん (ワッチョイ 1301-cPfV)
垢版 |
2022/10/30(日) 01:14:27.44ID:+d9s9Afp0
>>530
await asyncじゃだめなの?
2022/10/30(日) 01:21:23.79ID:UmSlwLP00
HTMLとCSSが楽で良いと俺も思う。なんせ自分がやらなくてもデザイナーの人に入って貰えるし、それも単価が安いし。
最近はCSSも高級になったし、WebView2が使えるようになったのでかなり楽よね。
IEコンポーネント使わないといけないなら同意
2022/10/30(日) 02:27:29.10ID:2N6ePwSn0
単純なやつならxamlの方が楽だけどちょっと凝ったデザインにしようとすると記述量がめちゃ増えるのはなんとかしてほしい
2022/10/30(日) 03:33:26.24ID:mdQkSumL0
jsの非同期は形の上だけだからなぁ...
535デフォルトの名無しさん (ワッチョイ 1301-cPfV)
垢版 |
2022/10/30(日) 07:16:53.81ID:+d9s9Afp0
CSSも増えるくね?
今Wiki作ってるけどマジで思うような挙動しないわHTMLとCSS
divを左と右に分けるのでもfloat:leftとfloat:rightの2つのCSS書かんといけないの面倒くさすぎる
文字を下揃えにするのもverticalalignmentとかhorizontalalignmentとか手軽なのがない
2022/10/30(日) 07:21:33.87ID:EP3eiSUOa
>>531
知ってるわけないじゃん
537デフォルトの名無しさん (ワッチョイ 1301-cPfV)
垢版 |
2022/10/30(日) 07:23:58.99ID:+d9s9Afp0
>>536
なんだ…知らないのか…
2022/10/30(日) 08:55:39.00ID:Y7MeHq5yr
>>535
すげえジジイがここにいたw
floatとかいつの時代だよwww
それでこんなにcssクソクソ言ってたのかw
オメーの無知で吠えてるんじゃねえよ
2022/10/30(日) 09:15:57.16ID:Ufi2KoCB0
>>535
今どきそんな太古の手段を発掘しつつわざわざ車輪の再発明をしているのはキミくらいのものであって、あえて言わせてもらうと、それらは文字通り「時間の無駄」でしかない

どうしても車両の再発明をしたいってことなら止めはしないけど、せめてモダンなCSSやフレームワーク等の「習作」として作成しよう
2022/10/30(日) 09:18:30.73ID:LXcqQo2MM
今ってflexboxレイアウトが主流じゃないの
2022/10/30(日) 09:42:14.23ID:UmSlwLP00
IEコンポーネントじゃないならflexとgridかな。
IEコンポーネントはバグが多いからかなり辛い。float使うのもわかる。

この調子だとHTMLも文字列で作ってそう。
適当なフレームワークに乗せるのが良いよ。MVVMにできるし。
2022/10/30(日) 09:42:37.39ID:lsOA6XTZ0
>>536>>537
むしろjsにasync awaitあるの知らないんだね
未だにコールバック地獄でもしてんのかなw
2022/10/30(日) 09:46:55.44ID:UmSlwLP00
C#のasync awaitの話では?
なんか不自由あるんだろうか。

まあJSみたいにPromiseと可換になってると便利なのになと言うことはあるけど。
544デフォルトの名無しさん (ワッチョイ 1301-cPfV)
垢版 |
2022/10/30(日) 10:37:52.27ID:+d9s9Afp0
>>541
flexは頭にもう一個div入れないといけないじゃん
545デフォルトの名無しさん (ワッチョイ 1301-cPfV)
垢版 |
2022/10/30(日) 10:42:35.72ID:+d9s9Afp0
あとそんなもんネットに言え
こっちは色々調べながら最善の答え見つけとるんじゃ
2022/10/30(日) 10:54:18.58ID:Y7MeHq5yr
最善の見つけた答えがfloatww
ネットの調べ方もジジイレベルかよww
547デフォルトの名無しさん (ワッチョイ 1301-cPfV)
垢版 |
2022/10/30(日) 10:55:09.64ID:+d9s9Afp0
>>546
じゃあ何使うんだよ
2022/10/30(日) 11:02:31.77ID:Y7MeHq5yr
>>547
flexbox使え
すべてが解決できる
2022/10/30(日) 11:53:13.28ID:anVeQi4K0
>>524
thx



HTML & CSS は確かに便利なんだけど、たまにやるときれいさっぱり忘れてて思い出すのに時間がかかるのが難点。
なんというかクセというか、コツというか、そういうのを思い出せないと思うままにならない感じ。
2022/10/30(日) 11:54:53.34ID:dJTdnVox0
いい加減スレチじゃい
2022/10/30(日) 11:56:05.47ID:J5x/gUfla
>>1の読めないやつしかいないスレ
552デフォルトの名無しさん (ワッチョイ c101-cPfV)
垢版 |
2022/10/30(日) 12:45:05.94ID:GxZBoAl/0
結論:XAMLとC#が最強
2022/10/30(日) 13:29:03.83ID:P8HVjCjE0
糞スレw
2022/10/30(日) 13:39:46.64ID:A1wSH6ms0
そりゃ初心者のうちメンタル弱くてやる気のない人が対象のスレだし回答してるのもおかしなこと言ってるのが多いから初心者なんだろうね
2022/10/30(日) 13:39:53.04ID:UmSlwLP00
>>544
入れれば良いのでは?
まあbodyもflexにできるけど。
上揃えも下揃えもflexの方が楽だけどなって。
xamlで言うFlexLayoutなので、多分こっちの方がxamarin以降のXaml移行組は楽だと思う。
556デフォルトの名無しさん (ワッチョイ a95f-hZr9)
垢版 |
2022/10/30(日) 16:21:32.75ID:DkOekoOd0
HTML+CSSってブラウザエンジンが必要になるのが馬鹿らしい
557デフォルトの名無しさん (アウアウウー Sa9d-uirP)
垢版 |
2022/10/30(日) 17:10:20.50ID:D3yBl/wLa
C#使ってる時点で利便性と引き換えに今時のパソコンなら問題ないと無駄を許容してるんだからそのくらい許容しろ
2022/10/30(日) 18:09:34.88ID:UmSlwLP00
>>556
とはいえWindows使う以上絶対載ってるし、現存する、ほぼ唯一のまともに日本語を表示できる描画エンジンじゃない?
2022/10/30(日) 19:49:11.19ID:5qpGtRvc0
>ほぼ唯一のまともに日本語を表示できる描画エンジンじゃない?

ブラウザのテキスト表示もOSの描画エンジンを使っていると思うが。
2022/10/30(日) 19:52:07.34ID:gI8+fygea
>>558
ごめん何言ってるかわかんない
酔ってる?
2022/10/30(日) 19:57:59.55ID:UmSlwLP00
>>559
オプティカルで文字を詰めながら禁則処理しつつ、左右均等揃えなんかしてくれないよ。
ttps://www.google.com/amp/s/ics.media/entry/14087/

>>560
そういう所だぞ
2022/10/30(日) 19:59:51.73ID:UmSlwLP00
すまん、あげたサイトはオプティカルじゃなくてちゃんとメトリクス使ってるんだな。
2022/10/30(日) 20:03:02.46ID:gI8+fygea
>>561
酔ってないのにそれかw
だからお前はリアルでも一人なんだよ
2022/10/30(日) 20:11:29.33ID:UmSlwLP00
ちゃんと批判して
2022/10/30(日) 20:13:47.95ID:LXcqQo2MM
いやいやw

現存する、ほぼ唯一のまともに日本語を表示できる描画エンジンって表現はおかしいだろw
2022/10/30(日) 20:15:35.13ID:LXcqQo2MM
ガチの高校生なのかな~
2022/10/30(日) 20:18:53.41ID:UmSlwLP00
え?ホント?みんなそんなに完璧に文字描けるの?そこまで請われることが無いとか…?

エッジケース考えたらブラウザ一択なんだけどな…。
2022/10/30(日) 20:29:28.84ID:UmSlwLP00
自力でコマコマとエンジンの挙動を微調整せずに一発で縦書きできるものがあったら逆に教えて欲しいわ…
2022/10/30(日) 20:38:47.22ID:LXcqQo2MM
基地外暴走中
2022/10/30(日) 20:53:05.32ID:UmSlwLP00
少数派だったならすまなんだ。
2022/10/30(日) 20:53:49.31ID:UmSlwLP00
※あるならホントに教えて
2022/10/30(日) 23:28:05.26ID:5qpGtRvc0
カーニングは昔からあるし、DirectWriteなら均等揃えもできるようだな。
2022/10/31(月) 00:03:20.79ID:Dc17vD4i0
>>572
まともにやるとIPAフォントあたりがかすれる。

それに、APIであって、エンジンじゃなくない…?
FormsとかWPFのレベルの話してるつもりだったんだけど。
2022/10/31(月) 00:31:05.85ID:fDaEiUpF0
ここってこんなギスギスしたスレだったっけ・・・
精神的に余裕ない人が流れ込んできたのか元からいる住人が加齢で狂ってきたのか
575デフォルトの名無しさん (アウアウウー Sa9d-uirP)
垢版 |
2022/10/31(月) 00:35:16.24ID:X/NTMpPpa
マウンティングが多すぎるよな
もっと謙虚な人が増えてほしい
2022/10/31(月) 00:40:19.81ID:WMzulB9K0
メンタル弱い豆腐初心者のスレがどうしてうまくいくと思えるのか
そりゃ豆腐が集まって自壊するに決まってんじゃん
2022/10/31(月) 00:43:10.47ID:Z4/NCeJU0
適材適所でいいんじゃね、と思う
メニューとかリストとか、Windowsライクならxamlで
縦書きにしたいならhtmlで
2022/10/31(月) 09:55:18.77ID:hhvP4eKN0
>>577
これはそうだね。語気が強かった。すまん。

まぁ、立ち戻って聞かれたこと答えて行くことにするわ。
2022/10/31(月) 09:56:54.26ID:jAJ0SKjra
あまり詳しくないんだからトンチンカンなこと答えなくていいと思うぞw
2022/10/31(月) 09:58:42.31ID:hhvP4eKN0
余計なこと言って「聞かれたことだけ答えろ」って思われても嫌だもんな
2022/10/31(月) 10:02:25.91ID:4vSdgrRSr
許してやろう
582.NET MAUI HighScool (ワッチョイ 1301-cPfV)
垢版 |
2022/11/01(火) 21:46:33.25ID:UUH/mDfh0
.NETがティックトック始めててワロタ
https://www.tiktok.com/@dotnetdevelopers
583デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/11/01(火) 22:32:56.88ID:emsrAW8N0
584デフォルトの名無しさん (ワッチョイ 3959-41VR)
垢版 |
2022/11/02(水) 18:31:31.44ID:fNjoEkdJ0
関数を変数に入れるメリットってなんですかね
2022/11/02(水) 18:40:44.48ID:SIAjnkFo0
メリットがわからない時はしなくていい
変数を使うと呼び出す関数を動的に変更できる
586デフォルトの名無しさん (ワッチョイ 3959-41VR)
垢版 |
2022/11/02(水) 18:51:57.11ID:fNjoEkdJ0
了解す(´・ω・`)
動的というのが普通の関数との違いなのでしょうか
2022/11/02(水) 19:57:15.27ID:54NxTXJm0
コールバック関数とか?

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

とかの○○や□□の処理をインスタンス毎に後から設定できる
588デフォルトの名無しさん (ワッチョイ f97d-Osy4)
垢版 |
2022/11/02(水) 20:02:34.53ID:fWSRoPxp0
よく使うパターンは関数の引数に関数を渡すやつ
static void TripleCall(Action action){
action(); action(); action();
}
2022/11/02(水) 20:21:32.83ID:XpLTr/SKa
スレッドも登録元が関数を指定する必要があるから、動的に入れている
2022/11/02(水) 20:45:43.92ID:qyHEkcPy0
WinFormsで自動でボタンを押した時の処理が追加されたりするけどそれも
結局はその関数をイベントリスナーに登録している(つまりイベントリスナーに追加するときに関数を引数にしている)
知らずに使っている事が案外あったりする
2022/11/02(水) 20:48:02.32ID:047n0D5LM
変数じゃなくて定数じゃん
2022/11/02(水) 20:51:00.83ID:SIAjnkFo0
引数は変数だぞ
イベントハンドラを登録する時には演算子を使うけどその奥ではイベント登録関数の引数としてデリゲートが渡されてる
593.NET MAUI HighScool (ワッチョイ 1301-cPfV)
垢版 |
2022/11/02(水) 21:35:00.76ID:v08tA7cv0
ラムダ式の話じゃないの?
594デフォルトの名無しさん (ササクッテロリ Spc5-KGDB)
垢版 |
2022/11/02(水) 21:38:51.07ID:owhI4Qa1p
プロパティに式を仕込むと、思わぬ副作用があって詰むぞ
少なくとも中から呼ぶときくらいは実データにアクセスしようず
2022/11/02(水) 22:46:41.09ID:SIAjnkFo0
>>593
ラムダ式はデリゲートを作るための書き方にすぎんよ
それがデリゲート変数に代入されて初めて関数になる
Expressionに代入されると関数じゃなく式木になる
2022/11/02(水) 22:47:28.98ID:SIAjnkFo0
>>594
お前は式という言葉の意味も高階関数も知らんのか
597.NET MAUI HighScool (ワッチョイ 1301-cPfV)
垢版 |
2022/11/02(水) 23:25:22.77ID:v08tA7cv0
助けてくれうぜぇやつに絡まれたんだがHttpClientでjsでロードされる画像のURLを取得する方法ある?
プログラミングって実際もの作らないと身につかないよな
https://mi.5ch.net/test/read.cgi/news4vip/1667395380/
2022/11/03(木) 00:13:01.70ID:0QCo1mM00
>>597
まずそのスレの1がうざい
どうせお前だろ
599.NET MAUI HighScool (ワッチョイ 1301-cPfV)
垢版 |
2022/11/03(木) 00:33:32.59ID:LxUg3x+60
>>598
俺だけど?
それより絡んでくるやつのほうがウザくね?
2022/11/03(木) 01:17:54.26ID:M3w0A0V30
jsでロードされるってなんなの?どういうこと?
HTMLに書かれたJavaScriptを動かしてHTMLというかDOMを更新して結果表示される画像のURLを取得したいってこと?

HttpClientで取得したHTMLをWebViewなりで解釈して実行しないとダメでは?ならWebViewで直接やれよという話でもあるが。
JavaScriptだけでロードされてるわけでもないんだし。
601.NET MAUI HighScool (ワッチョイ 1301-cPfV)
垢版 |
2022/11/03(木) 01:39:58.55ID:LxUg3x+60
>>600
多くの検索エンジンの画像検索は最初から全部画像を読み込むと膨大な量のデータをやり取りしないといけなくなりサーバーの負荷が大きくなるので
スクロールするとjsによりほしい分だけデータがロードされるというふうな実装になってる
俺はこういうサイトだとWebViewでjs使ってスクロールしてデータをロードさせてるんだけどこのクソうぜぇやつが言うにはそれはインスタントカレーで湯煎しかしてないゴミカスだと言ってくるわけ
2022/11/03(木) 01:44:02.63ID:M3w0A0V30
だから、それはJavaScriptだけではなくてDOMがないとあかんのではという話。
エンジンとして何を用意しないといけないか変わってくるじゃん。
(JavaScriptで画像を取得するロジックを走らせる、という言い方だと、プラグインシステムがJavaScriptでできてるとかそういう話になるんでは?)

スレ見てきたけど、そう言うところがダメなんじゃないの?
603.NET MAUI HighScool (ワッチョイ 1301-cPfV)
垢版 |
2022/11/03(木) 01:47:04.02ID:LxUg3x+60
DOMじゃなくてRegexでhtmlのimgタグの中身取ってきてるんだが
たぶんこいつはDOMを使ってないDOM使ってたらもっと謙虚だろ
むしろこれでDOM使ってたらブチギレるわ
604デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/11/03(木) 02:24:14.27ID:rfkx/Wsp0
要はこのうざい奴はjavascriptでやってることを解析してC#するのがスマートだと言いたいんだろ
実際はアホな努力だが
605デフォルトの名無しさん (ワッチョイ d935-uirP)
垢版 |
2022/11/03(木) 02:27:39.09ID:rfkx/Wsp0
つっても画像検索の読み込みくらいなら単純なのかもな
2022/11/03(木) 05:39:29.72ID:vGCYuyMq0
たった1行の処理でも関数化してもいいのでしょうか?
大げさな感じもしますが
2022/11/03(木) 08:34:14.06ID:NbsIPyEs0
>>561
ケースバイケース
よくあるのはその関数を多くの場所で使っててなんかの拍子にその関数をおっきに変更することが想定される場合
あとはその関数にわかりやすい名前をつけたい場合とか
608.NET MAUI HighScool (ワッチョイ 1301-cPfV)
垢版 |
2022/11/03(木) 09:00:00.75ID:LxUg3x+60
>>604
だよな
なんでこいつはこれでイキってんのか不明
2022/11/03(木) 10:00:51.31ID:q0+PchV30
JavaScript なら、scrollTop とか、

最近は、IntersectionObserver とかもあるらしい
2022/11/03(木) 10:53:54.12ID:dhtr0mvLa
とりあえずjsでできることは全部c#でできるようにしてくんないと
誰かポリフィル作れということか
2022/11/03(木) 12:16:01.97ID:M3w0A0V30
>>603
imgタグを作ってるのがJavaScriptのDOM APIじゃない?
612.NET MAUI HighScool (ワッチョイ fb01-cPfV)
垢版 |
2022/11/03(木) 12:17:32.39ID:Kj7ywx2W0
>>611
つまりこいつはDOMを使ってるくせにイキってたってわけか?
だっさw
2022/11/03(木) 12:28:05.12ID:M3w0A0V30
DOM APIって何かわかってる?
2022/11/03(木) 12:31:33.00ID:irjlHMAba
>>613
BlazorはそれをRenderFragmentで作るんだぞ
これ読んでみろ
https://learn.microsoft.com/ja-jp/aspnet/core/blazor/components/virtualization?view=aspnetcore-6.0
2022/11/03(木) 12:39:09.32ID:M3w0A0V30
>>614
DOM APIを作るの?ちゃうでしょ…。

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

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

これが俺が想定してたレンダリングエンジンで、その主語がデカかった理由。
616.NET MAUI HighScool (ワッチョイ fb01-cPfV)
垢版 |
2022/11/03(木) 12:41:37.25ID:Kj7ywx2W0
つまりそのGoでスクレイピングを作ってる奴は結局ルウからカレー作ってるように見せかけてインスタントカレー作ってたってことだろ?
617.NET MAUI HighScool (ワッチョイ fb01-cPfV)
垢版 |
2022/11/03(木) 12:42:38.00ID:Kj7ywx2W0
じゃあWebView使ってスクレイピングする方法と何ら変わらんだろって思ってブチギレるわけよ
あんだけ突っかかってきて作ったのインスタントカレーじゃんwってなるわけよ
2022/11/03(木) 12:44:00.31ID:M3w0A0V30
DOM → Document Object Modelなデータや構造
DOM API → Document Object Modelなデータや構造を操作するAPI群
という一般的な定義で話してる。

jsのライブラリで言えばparse5とかとjsdomの違いぐらいの話。jsdomがDOM APIを持ってるのが話がややこしい。
2022/11/03(木) 12:47:38.39ID:M3w0A0V30
>>617
何を怒ってるかわかんない。甘く見られたって事?
そんな事で怒らんでも良いじゃん。アホ過ぎるとこっちの話が理解できないこともあるよ。俺は計算資源さえ許せばちゃんとレンダリングした方がええでしょ、WebViewでもpuppeterとかでも。

うーん、jsとdomをエミュレートしてレンダリングするタイプは、要は突き詰めるとヘッドレスなブラウザを作ることと変わんなくなるので、確かに味は変わるが、ルーから作ると失敗するぞ言いたい。
2022/11/03(木) 12:48:40.21ID:M3w0A0V30
ええでしょ、と思うよ、だった。すまんね。
2022/11/03(木) 12:49:54.05ID:irjlHMAba
>>615
何を言ってるんだ
スクロールに従って画像を表示するのにDOMは使わないって話をしてるんだよ
<img src=@(img)/>と書きゃimg変数のURLにある画像が表示される
画面に表示されるとこだけそのタグを作る
タグを作るのにDOMは使わない
そういう話だ
2022/11/03(木) 12:55:41.20ID:M3w0A0V30
>>621
え?何言ってるの?「DOM APIが何かわかってる?」に対して「Blazorはそれを…」の返事に「違うよ」って返したんじゃん?

しかも、結局それBlazorはDOM APIを使って画面に表示するところだけそのタグ作ってるからね。
2022/11/03(木) 12:57:28.19ID:irjlHMAba
とりあえず元のスレでやれ
何がしたいのかよくわからんがお前がウザいのはわかった
スクレイピングの話なら素直にセレニウム使っとけ
624.NET MAUI HighScool (ワッチョイ 0901-cPfV)
垢版 |
2022/11/03(木) 13:01:54.15ID:fiCeisHS0
>>623
だからSelenium使わずにWebViewでやったらキチガイがSeleniumやWebViewは初心者wとか言って絡んで来たんだが
2022/11/03(木) 13:06:30.69ID:irjlHMAba
読む気にもならんから知らんが初心者が初心者向けの方法を使って悪いことは何もあるまい
お前が上級者だと言うなら他のやり方を気にせず上級者のテクニックを使ってスクレイピングとかいう糞みたいな作業を続ければいい
626.NET MAUI HighScool (ワッチョイ 0901-cPfV)
垢版 |
2022/11/03(木) 13:09:44.54ID:fiCeisHS0
>>625
バカにされたままだとうぜえからこのスキル使えるようになりたいと思ったがなんか無理そうだな
2022/11/03(木) 13:09:44.56ID:WOBTUDvw0
初心者がスクレイピングとか迷惑でしか無い
628.NET MAUI HighScool (ワッチョイ 0901-cPfV)
垢版 |
2022/11/03(木) 13:09:55.62ID:fiCeisHS0
>>627
なぜ?
2022/11/03(木) 13:18:41.93ID:kiz4JKw0a
Javascriptのインタプリタをつくればいいだけじゃないの?
2022/11/03(木) 13:39:14.90ID:q0+PchV30
漏れは、Ruby Selenium Webdriver で、ブラウザを自動操作してる。
サイトのログインとか

更に、Nokogiri でスクレイピングもできる
2022/11/03(木) 13:39:56.44ID:m6o3Pqh2d
MAUI「htmlを、regexでアクセスしてる」
うざいやつ「htmlは、DOM APIでアクセスしろ」

って事??
2022/11/03(木) 13:41:07.19ID:x8JkO9N7M
ていうかさあ
よそのスレで起こした(しかもお前が立てたスレの)揉め事をこのスレに持ち込んで助けを求めるようなことするなよ
ここで付け焼刃の知識を仕入れて建てたスレでイキりたいんだろうけど
そんなことやってて恥ずかしくないの?
633.NET MAUI HighScool (ワッチョイ c101-cPfV)
垢版 |
2022/11/03(木) 13:44:22.86ID:ymgDfjLU0
>>632
俺は恥ずかしくないよ?
2022/11/03(木) 13:45:03.53ID:x8JkO9N7M
と思ったらMAUIの人か
じゃあ諭すだけ無駄か・・・・・

まあなんだ、VIP板とやらで頑張ってくれ
こっちに帰ってくるなよ
2022/11/03(木) 13:52:27.10ID:j+eH91hfa
MAUIに変なイメージついたな
マウイ高校の人に謝れ
2022/11/03(木) 14:03:01.23ID:tn2ZhR3p0
せっかくXamarinについた変なイメージを隠したのにな。
637.NET MAUI HighScool (ワッチョイ c101-cPfV)
垢版 |
2022/11/03(木) 15:12:06.23ID:ymgDfjLU0
なんで俺は.NET MAUIの地位向上に努めてるのに避難されなきゃいけねぇんだ
2022/11/03(木) 15:34:50.67ID:WOBTUDvw0
>>628
・まともなクローラーが作れない
・テストを知らないから、未完成状態でサイトに頻繁にアクセスする
・例外処理の設計ができていないから、サイト側からフィルタされてもアクセスし続ける

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

スクレイピング対象になりえるサイトのデータの二次利用は民法的に大体アウト(良くてグレー、真っ白は基本的にありえない)
そのクソみたいなアクセスのせいで、サーバリソース追加しなきゃならんケースがあるからサイト側からすると迷惑でしかない
639デフォルトの名無しさん (ワッチョイ 1302-Ojdt)
垢版 |
2022/11/03(木) 15:37:50.67ID:2Kw6fOvE0
散々イキりまくった挙句技術力不足で他人を頼ってくるとか情けなさすぎる
MAUIの地位を貶めるためにやってるんじゃないなら相当やばい
2022/11/03(木) 22:02:04.04ID:20/srh0o0
>>638
ヘッドレスブラウザでトライ&エラー繰り返されたらあれだろうがHttpClientでhtml単品要求してくるくらいなら別に自由にしたらって思うけどな
2022/11/04(金) 00:40:17.01ID:IgmKO4aZ0
HttpClient使わないとrobots.txtが取りづらいよな?という嫌味ならなるほどなとは思う。
2022/11/04(金) 19:03:03.51ID:nywf9UY+0
boolでは2つの返り値を持つ事はできないですか?
https://i.imgur.com/6s9o15k.jpg
ゲームで接地判定を作っているのですが、真ん中からレイを飛ばすと崖でレイが反応しなくなるので、このように両脇から2本飛ばしています。
判定用の関数を作ってます。
2022/11/04(金) 19:12:28.11ID:7HgZbeW40
>>640
同じアドレスにウェイトなしアクセスをぶん回してくるやつとかいるんだぜ
2022/11/04(金) 19:22:14.68ID:IiXUZSOe0
>>642
boolでは2つの返り値を持つ事はできないです。
なぜならboolはメソッドではなく型だからです。
2022/11/04(金) 19:33:46.65ID:5m02ltgpM
Win32/C++
BOOL GetMessage(略) ・・・
2022/11/04(金) 19:37:37.70ID:kqfS0jzoM
>>642
(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);
2022/11/04(金) 20:31:37.30ID:nywf9UY+0
>>646
bool型の関数の場合は1つしか持てないじゃないでしょうか
2022/11/04(金) 20:49:12.99ID:T0hKgiyQa
戻り値では無く引数にrefでboolを2つ渡せばいいんじゃ無い
649.NET MAUI HighScool (ワッチョイ 1301-cPfV)
垢版 |
2022/11/04(金) 20:50:56.37ID:OnPQoW1c0
.NET 7いつ降りてくるんだ?
2022/11/04(金) 21:08:53.29ID:u3TD418O0
>>648
相手すんなよ...
2022/11/04(金) 21:27:00.15ID:Fl24BIVd0
論理演算で一つにまとめればいいじゃん
2022/11/04(金) 21:31:27.64ID:SZTCZ5vE0
タプル使うと後が大変かも
653デフォルトの名無しさん (アウアウウー Sa9d-uirP)
垢版 |
2022/11/04(金) 21:57:15.77ID:8LyOgWL1a
タプルってディクショナリーで複合キーみたいに使えるんかね
dict[("aaa",1)]=456.8
2022/11/05(土) 00:03:26.00ID:z7QTqWos0
進次郎構文を質問に応用するとこうなるのか...
2022/11/05(土) 01:03:31.06ID:zPyCNtrD0
複数の引数を戻り値で受け取りたいとか言う奴いるけど
参照でええやん・・・
2022/11/05(土) 05:24:52.32ID:tZqy6bJ10
>>655
参照?どういうこと
普通に関数2つ作るのがシンプルかもしれませんね
2022/11/05(土) 06:12:30.08ID:tZqy6bJ10
プログラミングは日本語で言語化することが大事でしょうか
それがフローチャートだったりするのでしょうが
2022/11/05(土) 08:08:07.32ID:qYBt5eWid
「何をするプログラムなのか」「なぜこうするのか」といった仕様や意図を自然言語で分かりやすく正確に記述できる能力は重要
一般に日本人はそれを苦手とする者が多く、安易に図表に頼ったり、
自然言語で書くとなるとプログラムと逐次対応するような低レベルな記述(実質的にExcel方眼紙上でコーディングしているだけ)をする傾向がある
2022/11/05(土) 08:26:37.39ID:2xMBgYRAM
意味不明すぎる
2022/11/05(土) 08:34:43.47ID:yxkEcNx60
文章でグダグダ書かれるより図表や擬似コードで書いてくれた方が100倍マシ
2022/11/05(土) 08:36:00.30ID:sjtvh1h/M
visual transformer を図表無しで
納得させる資料を書いてから言え
2022/11/05(土) 08:43:50.98ID:3YlQFQnT0
質問者は投稿する前に、自分の質問をよく推敲しろよ。これはC#初心者以前の問題だ。
文章が意味不明で相手に伝わらず、あほな質問だと思われたらそれなりの答えしか返って来ないぞ。
2022/11/05(土) 09:40:58.84ID:yYAK326QM
>>657
大事ではないけど

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

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

フローチャートは階層が深くなる複雑な制御構造になる場合に脳で追いきれなくなる場合に描いたりすると便利なんだろうけど
大体みんなちゃんとしたものじゃなくて流れを落書きする程度だと思う
2022/11/05(土) 11:36:03.24ID:cwSbm70XM
>>657
よく言われるのは「How」はコードで書く
「What、Why」は自然言語や図表を使って書く、、、てこと
2022/11/05(土) 17:37:50.25ID:tZqy6bJ10
>>663
>>664
どうも
きれいなコードを書くことでフローチャートはいらないのかもしれないですね

処理は言語化しないと何をしてるのか分からなくなったりしますね
2022/11/05(土) 17:53:52.87ID:zg6rbg9v0
フローチャートなんてアセンブリ言語でしか使わんぞ
もしかしたらCでギリギリ使うこともあるかもしれんがオブジェクト指向言語では必要ない
オブジェクト指向言語でフローチャート使わなきゃならんとしたらその前にまずオブジェクトの設計がおかしい
667デフォルトの名無しさん (ブーイモ MMa6-DHtG)
垢版 |
2022/11/05(土) 18:13:19.21ID:jSE+d3f7M
>>664
Whatもコードで表現しようぞ
2022/11/05(土) 18:22:12.07ID:anrNho5cM
>>667
宣言的プログラミングだね
理想的だけど手続きを全て無くすのは難しい
コードはどうしてもハイブリッドになってしまう
2022/11/05(土) 18:26:36.41ID:pQZkgeTuM
オブジェクト指向言語で処理の流れを図示するならシーケンス図やアクティビティ図
静的な構造の図示はクラス図やパッケージ図
2022/11/05(土) 18:43:24.92ID:D4NMIenB0
アクティビティ図書くなら
フローチャートのがわかりやすいな
2022/11/05(土) 20:41:38.38ID:SeMW4Qkf0
VSがある程度自動的にクラス関係図生成してくれねぇかなあ
2022/11/05(土) 20:58:35.47ID:zg6rbg9v0
クラスデザイナーというのがあるからインストーラの個別のコンポーネントで検索してみろ
2022/11/05(土) 21:29:39.32ID:6Vg185nZ0
>>672
あれってCore系未対応じゃなかったっけ?
674デフォルトの名無しさん (ブーイモ MM96-DHtG)
垢版 |
2022/11/05(土) 21:50:02.83ID:mwXpY34pM
>>668
HowだけでなくWhatもコードで表現しようとするのと宣言的プログラミングはちと違うんだが
いずれにしても重要なのは「仕様のWhat」を「コードのWhat」として対応付けること
2022/11/05(土) 22:06:58.20ID:neflR3f7M
>>671
クラス関係図ではないけどあるクラスのメソッドやフィールドと他のクラス(または外部ライブラリdll)への関係を図示するだけならコードマップ表示がある
2022/11/05(土) 22:57:43.05ID:x8IGYLJlM
Windowsフォームアプリ(.NET Core)のスケルトンコードより
フォーム初期化処理(InitializeComponent()メソッド)
https://i.imgur.com/ukmU36Z.png
2022/11/05(土) 23:01:20.64ID:mbE+OsReM
>>674
ほとんど同じだよWhatをコードで表現しようとすると自然と宣言的になる
というか宣言的プログラミングがそういうもの
どうやってではなくてどうなって欲しいかを記述する
2022/11/06(日) 00:37:13.40ID:zZNJQBYc0
>>675
使用環境条件が厳しい

コード マップを使用して依存関係をマップする
https://learn.microsoft.com/ja-jp/visualstudio/modeling/map-dependencies-across-your-solutions?view=vs-2022

>コード マップの作成および編集には、Visual Studio Enterprise エディションが必要です。
>ただし、Visual Studio Community および Professional エディションでは、Enterprise エディションで
>生成されたダイアグラムを開くことはできますが、編集することはできません。
679.NET MAUI HighScool (ワッチョイ 9201-84Ua)
垢版 |
2022/11/06(日) 00:58:03.81ID:Am1kuzif0
.NET 7についての前情報得てるやついる?
どんな感じなんだろ?
2022/11/06(日) 02:59:28.10ID:3Vlqt+cVa
質問です。
構造体を使っていて関数内でnewしてそこで使い終わる(ボクシングしない)場合は、stackに乗るだけなので、heapは汚さないしgcには影響無い認識でいいですよね?ゲームを作ってるのでgcの影響を少なくしたいんです。
2022/11/06(日) 07:14:57.83ID:t/MPMTDqM
構造体でもインスタンス生成してる時点でガベージコレクションの対象
.NETでは値型であろうが参照型であろうがすべての変数は監視下に置かれる
ボクシングは値型の変数を参照型(object型)変数に代入する時に一時インスタンスを生成して値をコピーして渡す機能なので全く関係ない話
2022/11/06(日) 07:30:46.83ID:mzFwuoQr0
>>680
> 構造体を使っていて関数内でnew
よくわからんからコードで示して
2022/11/06(日) 09:30:46.32ID:OgJKt7GdM
>>680の理解で正しいよ。>>681は間違い。
値型は単なるデータ構造であり、それ自身はGCの管理対象にならない。
2022/11/06(日) 09:45:40.42ID:OgJKt7GdM
ただし、もちろん値型の変数を使ったらその先が全てGCの追跡の対象外になるわけではなくて、値型に定義された参照型の変数はGCの追跡対象となる。
上に述べた通り値型は単なる埋め込みのメモリのデータ構造なので、それ自体は単にGCをバイパスする。
そして、最終的にメモリ上に展開された構造のうちで参照型の変数だけが追跡対象となるわけ。
2022/11/06(日) 09:52:21.19ID:mzFwuoQr0
>>683
newしてても?
2022/11/06(日) 09:54:44.02ID:zZNJQBYc0
値型のintでも実際はSystem.Int32構造体のインスタンスではなかったっけ?
MaxValue、MinValueなどのプロパティやToString()などのメソッドが使えたはず
値型の変数でもGCが追跡しているのでは?
2022/11/06(日) 09:57:00.84ID:OgJKt7GdM
>>685
構造体のnewは、スタック又はそれを保持する参照型オブジェクト上に事前に確保された領域に対し、コンストラクタをインプレースで実行する
新たなインスタンスを生成している訳ではない
2022/11/06(日) 10:00:33.74ID:OgJKt7GdM
>>686
値型に対してObjectクラス又はValueTypeクラスのメソッドを呼び出そうとすると、その時点でボックス化が発生し、ヒープ上に新たなインスタンスが生成される
2022/11/06(日) 10:06:01.01ID:sZiKsnj+0
ポインタがオマケでつくかつかないかだけなのか
2022/11/06(日) 11:39:39.10ID:8lzCZdko0
なんか久し振りにここでためになる話を聞けた気がする。
横からだけど、ありがとう。
691デフォルトの名無しさん (ワッチョイ 0935-8IBJ)
垢版 |
2022/11/06(日) 12:23:04.83ID:eRXytuty0
>>681のしったか具合がやばい
2022/11/06(日) 12:28:55.33ID:46oDEsAIa
このスレは前からそんなもんだろ
素人が知ったかして嘘ばかり教えるスレ
2022/11/06(日) 13:25:57.55ID:zZNJQBYc0
intの構造体はC/C++で言うところの自己参照構造体を強引に組み込み型として実現してるっぽい
https://qiita.com/cocoabreak/items/e93a3bd6d1640b622c42
2022/11/06(日) 13:54:54.11ID:FxP86aLpM
>>693
この記事では、そもそもなぜ再帰的な定義になっていて、それがどのように機能するかの説明にはなっていないような
C#のintやInt32型の変数は、実際にはどちらもILのプリミティブ型であるint32型にコンパイルされるんだよ
つまりInt32をint32型のフィールド一つだけを持つ構造体として定義してやれば、Int32とint32のメモリ上のレイアウトが同一になる
あとはコンパイラの型チェックを細工して、それらを区別しないようにしてやればよいというわけ
2022/11/06(日) 14:38:11.76ID:mupUNnkwa
>>683
680です!有難う、スッキリしました!
696デフォルトの名無しさん (ワッチョイ 9e2d-Bim8)
垢版 |
2022/11/10(木) 02:43:44.58ID:nQDHqGzi0
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件程度です、他によい方法がありましたらアドバイスおねがいします
697デフォルトの名無しさん (ワッチョイ b18e-ly3j)
垢版 |
2022/11/10(木) 03:37:46.97ID:+sVvBbXs0
>>696
その程度のことで人に聞くならプログラムなんかするな




と言いたいところだが



タブで区切れ
698デフォルトの名無しさん (ワッチョイ 9e2d-Bim8)
垢版 |
2022/11/10(木) 05:44:42.33ID:nQDHqGzi0
>>697
ツイッターとか5chとか不特定多数のユーザが書き込みをできるシステムで
タブは絶対にユーザーが埋め込むことができない文字ということですか?
699デフォルトの名無しさん (ワッチョイ 0935-8IBJ)
垢版 |
2022/11/10(木) 07:09:23.51ID:m98zu82a0
適当なで区切る
データにその記号があればエスケープしておく
2022/11/10(木) 07:45:50.73ID:nQDHqGzi0
>>699
例えば|chinko|という区切り文字を使っている場合にユーザーが|chinko|と書き込んだ場合
APIから取得時に|ちんこ|と置き換えておくと言う事ですね、表示するときには|chinko|に戻すと
現状改行コードを置き換えて保存しているので、そこにまとめて組み込めば楽そうです
2022/11/10(木) 08:16:38.34ID:XxWk5gSzr
文字列の改変で(削除でもなく)、エスケープとかサニタイズを独自に実装するのは苦労すると思うよ
2022/11/10(木) 08:34:01.14ID:9mQBoBy40
>>696
もしよろしけば下記について教えてほしい
その上で「JSON形式ではダメな理由」があるなら、それも教えて

1. 「保存」の目的(保存したデータの利用目的)
2. 現状の保存形式を選択した理由
2022/11/10(木) 09:11:14.02ID:O+ugNNB7M
xmlもjsonもエスケープ方法は規格として決められている
オレオレエスケープなんか考えなくても偉い人が作ったものを黙って使えば良い
2022/11/10(木) 09:13:17.40ID:TJ0qCovBd
ファイルに保存する際の定石をよく分かってないだけでしょ
JSONやXMLでもいいけど、この場合普通に一つのツリーとして書き出すと追記できなくて不便そうだから、JSON Linesがお勧めだな
Excelなどで表として扱いたいならCSVでもいいがJSON Linesよりはフォーマットにバリエーションがあるから考慮すべきことは多くなる
2022/11/10(木) 09:42:00.83ID:hu9oTdXa0
目視もしたいなら尚更そのままjsonでええやん
706デフォルトの名無しさん (アウアウアー Sac6-M3Dd)
垢版 |
2022/11/10(木) 10:19:10.77ID:24bGZvg4a
最近学びはじめてC♯ではメインメソッドを省略できるということで楽だなーと思っていたら関数のオーバーロードのところでエラーが出てしまいました
従来通りクラス名とメインメソッドを書くやり方だと普通に出来たのでローカル関数(オーバーロードできない?)として認識されているためエラーが出てるという認識で合っていますか?
メインメソッドを省略した場合どうやってもオーバーロードできないのでしょうか?
2022/11/10(木) 10:33:00.98ID:vuUWLQnn0
>>706
トップレベルに書かれたメソッドはローカル関数になります
cf) //ufcpp.net/study/csharp/misc/miscentrypoint/#top-level-statements
2022/11/10(木) 11:17:10.46ID:eH71UEsUa
>>700
違う、それだと |ちんこ| と書き込んだら |chinko| になっちゃうだろ
|chinko| と書き込まれてたら |エスケープ||chinko| にして、表示する時に |エスケープ||chinko| を |chinko| に戻す
ただこれだと |エスケープ||chinko| って入力されたら |エスケープ| が無くなっちゃうから |エスケープ| 自身もエスケープして |エスケープ| が来たら |エスケープ||エスケープ| にして、表示時に |エスケープ||エスケープ| を |エスケープ| に戻す
※ |エスケープ||chinko| の保存データは |エスケープ||エスケープ||エスケープ||chinko| になる

まあ>>703の言う通りオレオレエスケープは知識としては知っておくべきだけど自前で実装するよりライブラリ等に頼った方がいいと思うよ
709デフォルトの名無しさん (アウアウアー Sac6-M3Dd)
垢版 |
2022/11/10(木) 12:01:29.52ID:24bGZvg4a
>>707
ということはオーバーロードを使いたい場合トップステートメントのあとにクラスやら定義してから関数作るか別のファイルで作って呼び出すしかないという認識でいいですか?
2022/11/10(木) 12:31:50.00ID:vuUWLQnn0
>>709
それでいいと思います
ただ、そこまで色々するのならトップレベルに書かず普通に書いた方が分かりやすいんじゃないかなという気もしますが
711デフォルトの名無しさん (アウアウアー Sac6-M3Dd)
垢版 |
2022/11/10(木) 12:55:47.41ID:24bGZvg4a
>>710
なんかどうなのかな?ってもやもや気になってしまって
教えてくれてありがとうございましたスッキリしました!
712デフォルトの名無しさん (ブーイモ MMad-DHtG)
垢版 |
2022/11/10(木) 15:17:52.70ID:F9S+K/27M
CSVのreader/writerは標準では無いんだね
2022/11/10(木) 18:43:48.03ID:NDp6c9mu0
>>712
readerというかParserはあるよ
TextFieldParserクラス
https://dobon.net/vb/dotnet/file/readcsvfile.html#section7
同じところに載っている独自解析のサンプルや自分でParser作った方が動作は若干早くなるだろうけど
2022/11/10(木) 18:44:43.64ID:QLIhXLlU0
ツイートって文字数決まってなかったっけ?
このパターンなら昔は固定長とかも候補になっただろうに
最近の文字コード事情考えると固定長は厳しいよなぁ
2022/11/10(木) 19:17:24.93ID:BjQppGzz0
拡張性とか無くなるけど
本文の位置をラストにしてcountを渡せば
Split一発で配列に出来るかも
716デフォルトの名無しさん (ワッチョイ 0935-8IBJ)
垢版 |
2022/11/10(木) 20:27:59.70ID:m98zu82a0
5chのDATのようにHTMLエンコードして改行を<br>で置き換えたものを<>で連結するフォーマットは何気に簡単でいいね
2022/11/11(金) 11:48:16.03ID:V/N8drZJM
ここで出てる案だと普通はタブ区切りがいい
汎用性がある
excelやpythonのpandasでシンプルに読める
VSCodeでアドインもある
2022/11/11(金) 12:23:50.12ID:z+UtuJ+k0
>>717
>>698 の回答によると思うが
2022/11/11(金) 12:29:30.36ID:8WOXnYS7M
システムとして必要がないので抹殺するのみ
2022/11/11(金) 13:24:51.05ID:zPVyBVcV0
馬鹿みたいにHTML解析してデータ取得してるならまだしも普通にapi投げてるならjson一択やろ
2022/11/11(金) 13:33:07.32ID:OBpw9JhUa
ふつーYAML
2022/11/11(金) 16:29:42.18ID:WVb8D07I0
初めまして。
.NetCoreでコマンドラインみたいな改行させながらのログ表示をさせようと思ったのですが、どんなコントロール使えば良いのでしょう? 出来れば履歴遡れるようにスクロールバー付きで。
ラベルもテキストボックスもうまく表示してくれない・・・shownイベント以下に書いたからかな。
2022/11/11(金) 16:42:33.46ID:GYEdeJz40
>>722
画面への表示は何を使ってるの?
WinForms? WPF? それともそれ以外の何か?
2022/11/11(金) 16:50:47.79ID:YvvI/C4ma
同じところで普通に文字列渡したら表示されるなら読み込みに失敗してるのでコントロールのせいではない
725デフォルトの名無しさん (ササクッテロリ Sp79-uppo)
垢版 |
2022/11/11(金) 18:11:52.32ID:FjpNhKohp
ただのテキストボックスとかラベルだと
そのとき持ってるテキストしか表示しないから
アペンドしてくしか無いんじゃね?
2022/11/11(金) 18:23:04.48ID:WVb8D07I0
 反応ありがとうございます。
>>723
 WinForm使っています。
 ・・・と、プロジェクト作成時に指定したと思ったのですが、プロジェクのプロパティを確認したら少し違っていました。
 Windowsフォームなのは間違いないですが、.NetCoreではなく.Net6.0でした。
 .NetとかCoreとかframewaorkとか、まだよく分かっていません。取り敢えず.Netにしとけって感じみたいですが。
 WPFはまだ私には早いらしいから避けて通ろうと思います。

>>724
 Form.Textは望んだ通りに表示されたのですけどねw
 当初 public Form1()の InitializeComponent();以下に記述していたのですが、処理が全部終わってからForm作画に入るのでShownイベントに移動したのですが・・・念を入れて配置した中断ボタンも作画されず穴開き状態で、ShownはFormの配置が終わった直後であって総ての配置が終わった跡ではないって事ですかね。 私が書いたのは読んだファイルを加工して別ファイルに書き出している程度のモノなのですが、普通の処理はどこに置けば良いんでしょうね。 要勉強なり。


#よく分からないまま入門しているから、一つの質問の不明部分を細く要件定義していくと目も当てられない長さになりますね・・・。
2022/11/11(金) 18:24:05.80ID:WVb8D07I0
>>725
 なるほど・・・試してみます。
728デフォルトの名無しさん (アウアウウー Sacd-8IBJ)
垢版 |
2022/11/11(金) 18:38:29.81ID:k1VRcWZVa
キモイインデント
2022/11/11(金) 19:16:48.66ID:7I/0fxGc0
>>726
GUIなので実行ボタンでも押した時に処理すればいいんじゃないですかね?

ボタンの配置は気合を入れなくてもツールボックスからマウスでポトペタすると完成ですよ
2022/11/12(土) 06:25:09.95ID:gXw8amZq0
>>729
 ボタンスタートと言う方法なら今の実力でも綺麗に収まると思うのですが、D&Dかダブルクリックで起動したら後はノンストップで処理してひっそり終了してもらいたいので、ボタンでワンストップは仕様として煩わしい。
 と言う美学的な理由でやろうとしないのでした(^^;
>>725 改めまして。
 実装してみました。
 TextBox.Text += newword;的な記述をして痛い目を見ました。 TextBox.AppendText(newword);としないといけないんですね。
 ついでに初期設定で TextBox.ScrollBars = ScrollBars.Both;でスクロールバーも付けました。
 buttonは機能しないのに、TextBoxは問題なく機能していますね。何故だろう。
 早くshownからどっかに移動しないとですね。
2022/11/12(土) 09:45:26.79ID:zAtFaE7C0
スタンドアローンなアプリで、アプリの起動をパスワード保護したいのですが、ILSpy等で丸見えにならない程度の強度を持つにはどのような方法がありますか?
2022/11/12(土) 09:59:48.08ID:tbSOUgpp0
C#以外でdllにしとけば?
2022/11/12(土) 10:23:23.19ID:B4kjFmw80
>>731
パスワードチェックロジックを難読化ツールでぐちゃぐちゃにすると追う気無くなる
2022/11/12(土) 10:29:06.28ID:ZNG2TRSk0
>>731
適当なアルゴリズムのハッシュ値を比較すれば?
2022/11/12(土) 12:11:02.84ID:Ra6ElU+i0
2022/11/12(土) 12:12:52.85ID:bRljaFHR0
>>731
んなもんローカルに全てのデータがある時点で何しても無駄
ILだけ対策すればいいならネイティブコンパイルすればいい
そうすりゃ他のネイティブアプリと同じく機械語になるから
2022/11/12(土) 12:13:15.16ID:Ra6ElU+i0
k
2022/11/12(土) 12:17:11.67ID:Ra6ElU+i0
n
2022/11/12(土) 13:44:40.40ID:4XgMUuW5M
>>731
アプリの本体をパスワード付きzipかなんかで圧縮しといて動的にロードする
2022/11/12(土) 13:48:14.08ID:YXyqvQzKa
>>739
ダサすぎるし解凍したところでコピーできんじゃん
2022/11/12(土) 13:55:42.98ID:guv9Rfqm0
パスワードのみのテキストファイルを
そのパスワードでzip圧縮
解凍成功と中身の照合で実行継続か
2022/11/12(土) 13:57:46.17ID:YXyqvQzKa
>>741
実行ファイルをバイナリエディタで開いて照合する箇所を飛ばす命令を書き込めば照合しなくなるぞ
2022/11/12(土) 14:51:41.26ID:f1IcSnyo0
>>741
それでいいなら主要なコードを暗号化しといて解凍したコードを動的ロードして実行すれば>>742みたいな攻撃にも耐えられるな
744デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/12(土) 15:00:47.68ID:Y/i2pfZ30
>>734で良くね?
2022/11/12(土) 15:00:48.57ID:ajB/boEg0
ディスクに平文ファイルを書き出したところを盗まれる。
オンメモリでやりたいけどそっちはデータ実行で引っかかるんだよな。
2022/11/12(土) 15:02:24.87ID:YXyqvQzKa
>>743
暗号化する部分とキーが平文だからだめだな
2022/11/12(土) 15:11:29.38ID:c/ILT9OL0
まあ>>736の言う通りで
結局現行の高価な商用アプリはほぼシングルユーザーライセンスに移行してるし
今時ネットに繋いでないなんてありえないからKMSみたいに一定期間で認証させるとかだな
実行したらメモリに全部展開されるしそこ覗かれるようならローカルのファイルをいくら細工しても無駄だよ
2022/11/12(土) 15:12:12.94ID:LpiKZFMR0
なんか変に面倒な方向にしようとする人たちがいるな
>>731
パスワードを知られたくないだけなら>>734で十分。MD5でもSHA-512でもお好きなもので
パスワード起動部分を突破されたくないなら>>736
2022/11/12(土) 15:16:20.60ID:c/ILT9OL0
>>730
まずWindowsのGUIの基礎を確認した方がいいよ
メッセージループの仕組みやformの作成から表示までにどのイベントがどういう順序で呼ばれるかとか
shownのタイミングで設定が必要な場合もあるけど質問の内容はloadの段階で片がつくんじゃないかね
2022/11/12(土) 15:27:16.04ID:2L2Z04CZ0
ライセンス認証前提でレスしてる人が多いけど本当にそういう用途なのか?
今どきそんなことするかな?
2022/11/12(土) 15:54:02.21ID:ncy2h0/Ld
そのパスワード認証必要?
2022/11/12(土) 15:56:41.52ID:ncy2h0/Ld
毎回入力させるのか
次回以降のためにキャッシュでファイルローカルに持たせた場合、どう保存するのか
753デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/12(土) 16:04:56.79ID:Y/i2pfZ30
どうって普通にパスワード置くだけじゃね
2022/11/12(土) 16:21:43.32ID:ncy2h0/Ld
普通に置くパスワードって必要?
755デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/12(土) 16:29:23.68ID:Y/i2pfZ30
2022/11/12(土) 16:39:07.13ID:ZNG2TRSk0
こんな感じで良いんじゃない?

・パスワードが保存されてるか確認
・パスワード入力
・ハッシュ値を比較
・(OK)ログイン/平文パスワードを適当に保存
・(NG)リトライ

次回以降
・保存されたパスワードとハッシュ値を比較
・(OK)ログイン
・(NG)パスワードファイルを消してリトライ

ハッシュ値の生成はレインボーなやつとか総当りとかまでは対策しときたいかなぁ
パスワード検証用によく使われるアルゴリズム使用して、saltでゲタ履かせてストレッチングで処理時間の確保ぐらいはしときたい

バイナリいじるやつまで考えると全然対策にならんけどねぇw
757デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/12(土) 16:44:03.53ID:Y/i2pfZ30
Linuxはどうしてるんだろう
2022/11/12(土) 16:51:30.20ID:ajB/boEg0
osのログインとアプリの起動を同列には考えられんが、linuxも
ディスクを抜き取って /etc/passwd を書き換えられたらアウト。
2022/11/12(土) 17:27:01.84ID:vKl12ZSx0
みんな俺のために働け
2022/11/12(土) 17:29:44.19ID:ZNG2TRSk0
今どき /etc/passwd にパスワードおいてるディストリビューションってあるの?
2022/11/12(土) 17:48:17.21ID:ajB/boEg0
そこは本質的な話じゃないから適宜shadowにでも読み替えて。
2022/11/12(土) 17:52:51.14ID:2L2Z04CZ0
>>756
ハッシュ化するのは平文パスワードを保存しないためなんだが・・・
2022/11/12(土) 17:59:12.62ID:1r3Bwkn20
>>756
今時平文パスワードを保存って発想が出て来るのは不味いぞ
2022/11/12(土) 18:17:21.03ID:ZNG2TRSk0
>>762
ハッシュ値にこだわるなら、ストレッチングの回数を適当に減らしたハッシュ値を保存→次回以降は減らした回数ストレッチングして検証。でも良いと思うけど、すでにユーザの手元にパスワードがある前提のスタンドアロンアプリだからねぇ

適当なトークンの作成ロジックが隠せない以上平文で良いと思う
平文が嫌なら、毎回パスワードを聞く感じかなぁ
765デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/12(土) 18:49:41.37ID:Y/i2pfZ30
ハッキングでもされなきゃローカルに保存したパスワードなんて流出しないやろ
2022/11/12(土) 18:53:34.55ID:lzvWNBzY0
ローカルで動作するアプリは、極論言ってしまうと労力惜しまなければどうやってもクラッキング出来てしまうからなぁ
ドングルみたいなハードウェアや、ネットワーク認証挟むとかなり強固にはなるけど
結局のところ、どこまでの強度が必要かって話になる
2022/11/12(土) 18:56:34.83ID:THWEmJXVa
いくら認証を強化しても認証をスキップするよう書き換えられたら終わるんだから気にしないが吉
768デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/12(土) 19:00:47.98ID:Y/i2pfZ30
ユーザーが保存したキーの窃取とアプリのキーの解析を混同してる奴いそう
2022/11/12(土) 19:33:04.85ID:guv9Rfqm0
>>731
> ILSpy等で丸見えにならない程度
じゃないのか・・・
2022/11/12(土) 19:47:44.72ID:bRljaFHR0
その程度を求めてるならネイティブコードにコンパイルすればいいんだって
逆アセンブルで丸見えだけどな
なぜかILだけ逆アセンブルできると思ってるやつ時々いるよな
2022/11/12(土) 19:56:29.64ID:lzvWNBzY0
何なら難読化ツールもあるし
772デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/12(土) 19:57:28.32ID:Y/i2pfZ30
バイナリ改変したら動かないようにできないの?
2022/11/12(土) 20:00:08.63ID:syTmwMgY0
プログラムコードにしか見えない文字列をデータとして格納しておいて、それをキーにする
2022/11/12(土) 20:04:47.69ID:THWEmJXVa
てかデフォで難読化してくれよ
2022/11/12(土) 20:07:09.00ID:guv9Rfqm0
>>772
それが完璧に出来るならコンピュータウィルスの大部分が無くなりそう
2022/11/12(土) 20:08:53.77ID:lzvWNBzY0
>>774
パフォーマンスは落ちるだろうし、別に難読化が要らないプログラムの方が多いから
そんなもんオプションでいいだろ
2022/11/12(土) 20:09:20.08ID:ZNG2TRSk0
>>741
コレ結構好きかも
個別にパスワードを設定したいならかなりお手軽だね
2022/11/12(土) 20:10:42.29ID:THWEmJXVa
>>776
オプションでもいいけどVSに実装してくれ
2022/11/12(土) 20:13:56.36ID:ZNG2TRSk0
>>772
配布時の検証にはMD5とかよく見るね
動作も制限できそうだけど、その部分を回避されるとやっぱりだめだからなぁ
2022/11/12(土) 20:17:55.47ID:EWhm+EbT0
起動は別ファイルからってやつは
実行前にバイナリ確認してるのかな?
2022/11/12(土) 23:06:21.95ID:B4kjFmw80
>>778
Dotfuscatorがあるでしょ
2022/11/13(日) 00:12:55.08ID:0j2qr49h0
zipはパスワード分からなくても中身のファイル名わかれば上書き可能なので
いろいろ工夫しないとめちゃくちゃ簡単に突破されるよ
2022/11/13(日) 00:51:17.24ID:uK9Cge080
>>772
アプリの電子署名がそれじゃないの?
Windowsだけど
2022/11/13(日) 06:22:17.77ID:TFN9Og8f0
>>749 見落としていました。申し訳ございません。
 確かに、基礎的な所は全然分かっておりません。
 WINDOWS環境では、C+DXライブラリしか経験ないものでして。 あとHSP。
 C#の入門サイトでWINの基礎を抑えている所にまだ当たっていないというのもあります。
 と言うか、多分その基礎が身に付いたらここで質問せず教える立場だろーなーと思いますw
 WINDOWSの基礎からC#のWinFormを入門してコントロールの制御以上に踏み込んでいるサイトがありましたら、紹介よろしくお願いします。

 少し報告。
 shownイベントが駄目なら、Main()に書き足せば良いんじゃね?とProgram.csを探し出してshownから移植しようとしてみました。
 クラスをよく分かっていないのでpublic static void body()とか理解もしていないのにテキトーなキーワードを散りばめてメンバーを書き足したのですが、そこからだとコントロールが一切見えないっぽいので諦めて元に戻しました。
 D&Dと単独実行(コマンドライン引数とカレントのファイル検索からのファイル取得)からのノンストップなスムーズ実行を実現したいからbutton以下に収めない記述を探しているのですが・・・まさかチュートリアルが見付からないとか、戸惑っています。
2022/11/13(日) 06:46:08.30ID:4/Hqzxve0
基礎はWebの断片的な情報だと厳しいからでかい図書館や本屋で紙の本でも読んで来い
電子はパラパラめくって中身を確認できないからできれば紙がいい
2022/11/13(日) 07:30:57.54ID:BdGTc1Dp0
>>782
確かに >>741 のままだとちょっとまずいですね
仕組みがバレてれば、ユーザが任意のパスワードでzipファイル作って簡単に置き換え可能なので

方向性は好きだけど、もうちょっとねる必要ありですね
2022/11/13(日) 07:57:25.67ID:BdGTc1Dp0
>>786
少し考えてみたけど、ロジックが覗き見れる前提だとこの方法はダメかな...
何やっても置き換えで対応できる気がする
2022/11/13(日) 08:10:56.99ID:aD+9aMvk0
上にも書かれてるけどガチでやられたらどんな方法使っても完全な対策なんて無理だよ
2022/11/13(日) 08:52:02.92ID:BdGTc1Dp0
まぁ、何を脅威としてみなすか、どこまで許容するかですよね
俺が提案したハッシュ値での検証もアルゴリズムばれ、ハッシュ値ばれまでは大丈夫だけど、書き換えには無力だし

ともあれ、個人的には面白い話題だったわ
2022/11/13(日) 09:04:58.19ID:6eP485iya
この質問者の場合は知らんけどユーザーがパスワード入力を許せるくらいの良いソフトを作ってから言えと言いたくなる事例が割とある
まず使ってもらうハードルが高いのに余計なことしなくていいんだよ
気に入ったユーザーは自然と財布が緩むからより便利になる機能をプラグインで販売すりゃいい
2022/11/13(日) 09:11:01.42ID:aD+9aMvk0
いきなり謎の上から目線w
2022/11/13(日) 09:24:11.50ID:4jLRyBA70
高額なソフトを作っている会社はPC内でのチェックが簡単に突破出来てしまう事を判ってるから、
大体Webアクティベーションやドングルを採用してる
2022/11/13(日) 09:31:37.68ID:BdGTc1Dp0
上から目線じゃなくて実体験じゃない?
ちなみに俺は実体験としてやらかしたことがあるw

無駄に難読化しようとしたわ
2022/11/13(日) 09:51:17.84ID:93KwHlO1a
なんかこのスレ上から見られてるんじゃないかといつもビクビクしてる妙に卑屈なやついるな
それ多分初心者だから自信がないんじゃなく何年やっても初心者だから自信がないんだぞ
普通初心者なんて三ヶ月で卒業するから学ぶのに精一杯で卑屈になってる暇なんかないわ
2022/11/13(日) 10:09:47.66ID:2jgXqyDd0
>まず使ってもらうハードルが高いのに余計なことしなくていいんだよ

このセリフは「良いソフトを作ってから言えと言いたくなる事例」の本人に言ってやれってことだろ。
2022/11/13(日) 10:45:16.60ID:7K/NPeS80
C#でセキュリティーをなんとかしたいのならUWP使うのも手だけどね
797デフォルトの名無しさん (ブーイモ MM39-5kBA)
垢版 |
2022/11/13(日) 12:15:05.54ID:eEed0M79M
>>791
いつもの人だよww
最近は質スレで暴れてたからこっちが平穏だっただけ
2022/11/13(日) 12:20:42.58ID:lSfeZyRJa
卑屈なやつだなw
2022/11/13(日) 16:25:03.21ID:7K/NPeS80
人の成果物をタダで使わせろって暴れるキチガイは勘弁してほしいわ
2022/11/13(日) 16:45:13.25ID:4/Hqzxve0
世の中そんなやつばかりだったからこうなったわけで
WindowsでUWP使って小銭は稼げてるかい?
2022/11/13(日) 18:21:39.43ID:RwIffndXM
がっぽり儲けてます
2022/11/13(日) 18:29:49.19ID:p3TW3Ix/M
最初は手作り感万歳でも使ってくれる人はいた
今はプロ作ったような紹介画像がないと悲しいことに
803デフォルトの名無しさん (ワッチョイ 2301-BvCT)
垢版 |
2022/11/14(月) 17:01:48.00ID:p8dKwuQs0
すみません。
.NET MAUIなのですがページのナビゲーションでパラメーターを渡す処理を作ったのですが、
うまく表示されません。
ブレークポイントを使うと以下のような形になり少しおかしいです。
プロパティSendModelを作成するところでブレークポイントを持ってくるとちゃんと変数が渡されているのに対して
イニシャライズコンポーネントをした後にブレークポイントを持ってくると変数がnullになってしまいます。
なぜこうなるかわかるかたいますか?
https://imgur.com/CNxFyIv.jpg
https://imgur.com/TuctRLK.jpg
2022/11/14(月) 17:08:14.46ID:Latj9fgHM
MAUIって仕事ありそう?
805デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 17:15:29.93ID:p8dKwuQs0
>>804
今は無いけど任天堂やJRやNHKからちょこちょこあるんじゃね?
あと政府とMicrosoftズブズブだからその辺でなんかありそう
806デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 17:15:40.85ID:p8dKwuQs0
マイナンバー関係とかね
807デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 17:16:54.88ID:p8dKwuQs0
すまんJR関係なかったパスモは東京メトロだったわ
808デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 17:17:39.08ID:p8dKwuQs0
とりあえず24年までには置き換えしないといけないしね
2022/11/14(月) 17:21:53.03ID:Latj9fgHM
>>805
先を見据えてって感じかね
もうJavaやりたくないしWeb系は先行者に勝てんし、MAUIに賭けてオラいっちょ勉強してみっぞ
810デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 17:31:00.77ID:p8dKwuQs0
>>809
がんばれー
JavaでAndroidやってたらMAUI強いかも
Javaで書いてたAndroidAPIがそのままかけるからね
https://learn.microsoft.com/ja-jp/xamarin/android/
811デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 17:36:07.06ID:p8dKwuQs0
>>803
すみませんこれ自己解決しました
一番最初にイニシャライズコンポーネントが呼び出されてその後プロパティを取得されるみたいです
おかしかったのはxamlのBindingの記述でそのままオブジェクト(SendModel)のプロパティを書いてたからでした
{Binding SendModel.Title}で確認できました
2022/11/14(月) 17:58:09.71ID:cpuc2dy6d
>>814
Flutterがいいんじゃない
MAUIに比べりゃ圧倒的に仕事あるよ
813デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 18:18:45.36ID:p8dKwuQs0
>>812
C#のスレでFlutterすすめるのは止めなさい
JavaやってるならDartよりC#の方が親和性高いでしょう
2022/11/14(月) 18:29:08.87ID:HDY6oj/W0
仕事として5chで叩くならどのプラットフォームがいい?
815デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 18:29:30.58ID:p8dKwuQs0
Dartはchildやchildrenの部分が最高にアホwって思う

https://i.imgur.com/FIRNxLX.png
2022/11/14(月) 18:54:36.79ID:8Qr3XdFEd
>>815
宣言的にCompositeパターン書くならC#でも似たコードにならんか?
何がアホなんだ?
817デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 19:01:16.65ID:p8dKwuQs0
>>816
無駄にCompositeして意味あんの?
.NET MAUIのMVU用ライブラリはFlutter真似して作られてるから無駄にChildrenとかつけちゃうわな
そりゃそうなるわ
.NET MAUI系You Tuberのこの人もこの書き方好きじゃないからMVVMでやりますって言ってるぞ
https://youtu.be/nCNh9G-Q688
2022/11/14(月) 19:31:42.89ID:hjaMiJ3dM
>>813
どっちも元々Javaフォロワーでしょ
C#はJavaからの飛躍が大きいからDartの方が覚えること少ないよ
2022/11/14(月) 19:39:58.14ID:HDY6oj/W0
DartはJavaScriptだろ
820デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 19:49:37.13ID:p8dKwuQs0
>>818
DartはJavaScriptを元にした言語だよ(AltJSとか言われてる)
DartとかJavaScriptを元にしたAltJSがみんな潰れてC#を元にしたTypeScriptがここまで発展したの笑えるよな
FlutterはDartの救済措置でしかない
2022/11/14(月) 19:52:02.34ID:8Qr3XdFEd
>>817
いやだから何がアホなんだ?誰かが言ってたから?
822デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 20:02:04.55ID:p8dKwuQs0
>>821
無駄じゃんその1語
いるか???
コンパイル通すときいるの?
普通に
StackLayout{
Label label1{
Text="ほげ",
TextColor=Red,
TextAttribute=Bold},
Label label2{
Text="ほげ",
TextColor=Red,
TextAttribute=Bold}
}
とかにできなかったのだろうか?
これがスムーズじゃね?
2022/11/14(月) 20:21:04.18ID:8Qr3XdFEd
>>822
child書くか書かないかってレベルの話かよ…
824デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 20:55:04.59ID:p8dKwuQs0
>>823
そりゃそうでしょ…
見にくいしどれがどれかわからんUIの作りづらさは一級品だよねMVU
2022/11/14(月) 21:18:14.71ID:ans/MkehM
>>803
本当にお前は迷惑で恥知らずなゴミだなMAUI君よお
MAUIの質問ならここじゃなくてMAUIスレに持ち込めよ
Xamarinスレだったのをスレ内で合意を取るようなこともせず勝手にMAUIスレへスレタイを変えて
散々私物化してるのはお前だろ?
そっちのスレで責任もって解決しろよ
なんでわざわざこっちのスレへ持ってくるんだ?
お前が好き勝手やってるせいで答えてくれるようなスレ住民がみんないなくなっちゃったとかそういうことか?
2022/11/14(月) 21:20:26.72ID:ans/MkehM
あとFlutterもDartもスレ違いだしFlutter叩きならなおスレ違いだ
お前が立ててさんざん自演なりで盛り上げようとしても盛り上がらないクソVSスレでやれ

Flutter VS .NET MAUI VS React Native
https://mevius.5ch.net/test/read.cgi/tech/1661511605/
2022/11/14(月) 21:25:38.42ID:ans/MkehM
あと、この板にクソスレ立てんな
直近で目に付いたのは
https://mevius.5ch.net/test/read.cgi/tech/1668127312/
https://mevius.5ch.net/test/read.cgi/tech/1667211312/
だけどお前これ以外にも一杯立ててるだろ
そういうのはお前の巣でやれ。VIPだか何だか知らんがそこから出てくるな
828デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 21:43:20.92ID:p8dKwuQs0
C#全体のことはここで聞く
MAUI特有のことはMAUIスレで聞く
当然では?
2022/11/14(月) 22:11:38.95ID:ans/MkehM
すげーな
さすが恥知らずのMAUI君

先にMAUIスレで質問するようなこともせずに
このスレでMAUIの質問をしておきながら
>>828みたいなことを平然と言ってのけるこの神経
でもって826,827みたいな自分にとって都合の悪いことは何一つ見なかったことにしてスルーするんですね?
いやー「.NET MAUI HighSchool」ってコテでしたっけ
この実績で就職活動とか頑張ろうとしてるんですよね
おみそれしました
2022/11/14(月) 23:59:43.67ID:ans/MkehM
「.NET MAUI HighSchool」さん、朝から晩までこの板に張り付いて
本日の書き込みランキングのワンツーフィニッシュおめでとうございます!!
http://hissi.org/read.php/tech/20221114/

他のスレでは23時以降も活発に書き込みされてるようですが、
その元気があるようなら私にもお返事いただけませんか? 826とか827とかあと829もそうだけど
でも1点だけ反論して残りの指摘を何一つなかったことにするのはやめてほしいなとは思いますけどね
(ぶっちゃけchildren1つ書くかどうかなんてStoryBoardの地獄に比べたら屁でもないけどまあこれはスレチなんでどうでもいい)
まさか828で反論した直後にこっちのことをNGIDしたからレスが見えてない、なんてしょっぱい言い訳はしませんよね?
それとも貴方自身が恥知らずのゴミムシであることをレスしないことを以て体現しておられるのでしょうか???
831デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/15(火) 00:21:34.85ID:fFtAGper0
>>830
答える必要ないからレスしなかっただけですが???
全レスする必要あります???
2022/11/15(火) 07:01:23.31ID:zF+MxnbgM
>その元気があるようなら私にもお返事いただけませんか? 826とか827とかあと829もそうだけど
って書いてあるよな?
日本語もろくに理解できない馬鹿なのかお前は?
ID:p8dKwuQs0 の書き込みとか
他のスレの書き込みとかを見る限り全レスがデフォみたいなんで
返信がないってことでよっぽど返信したくないことを書かれちゃったのかーと思っちゃったけどそうじゃないんだな?
じゃあ俺の書き込みに限らずすべての指摘に対して逃げずに全レスしろよ
そこまで勿体つけたからにはさぞかしご立派な反論が来るんだろうな?
どうせお前は一日中ずーっと5chするくらいしか能がないんだから好きなだけ時間かけて書き連ねてみろよ
違いはchild/children一個だけみたいな見るほうがリアクションに困る失笑しかできないような返しすんじゃねーぞ


でもさすがにこのスレで続けるのはC#関係ないしスレチで迷惑だから
お前が立てたお前専用のゴミスレ↓
.NET MAUI HighSchool
https://mevius.5ch.net/test/read.cgi/tech/1662947042/
でやれ

よかったな、お前のクソスレに人を呼び込めるぞ
感謝しろ
2022/11/16(水) 21:19:21.33ID:Ndk7vWNsM
あれれMAUI君どこいっちゃったの?
>>831みたいなファイティングポーズを取ってたからさぞかしご立派な返信が来るかと期待してたのに
このスレにも晒したスレにも何一つ反論できずに尻尾を巻いて逃げ出した?
それともまさか名無しになって他人のフリしてるなんて恥ずかしいことやってる?
このスレもそうだし他のスレ(例えばWPFスレ https://mevius.5ch.net/test/read.cgi/tech/1667010874/ )でも
さんざん「.NET MAUI HighSchool」ってコテを名乗って毎日朝から晩まで書き込んでたのに
急にこのコテ使った書き込みが無くなったみたいなんだけど、どうしちゃったんだろう


うん、なんというか拍子抜けだわ
さよならMAUI君、もう二度とこの板に顔出すようなことをしてくれなければそれでいいや
834.NET MAUI HighSchool (ワッチョイ 2301-0qx4)
垢版 |
2022/11/16(水) 22:20:27.60ID:F1FwASBt0
>>833
キモ
つけ忘れただけだわカス
2022/11/16(水) 22:59:08.10ID:Ndk7vWNsM
なんだ消えたんじゃなかったのか

とりあえず取って付けたような「つけ忘れただけ」なんて後出しの言い訳乙
で結局直近の833以外のレスは見なかったことにしてまた逃げ出すんでしょ?
さすがMAUI君
2022/11/16(水) 23:09:20.45ID:Ndk7vWNsM
てゆうか、実況版に
「.NET MAUIでAndroidでサイン波の出力をした天才プログラマーだけど質問ある?」
なんてタイトルのスレ立てたはいいものの
誰にも相手してもらえなくてレス数1桁で落ちてたけど、このスレ立てたのもMAUI君だよね?

その知識も決して自分のものじゃなくて
この板で1から10まで聞いて回って集めた受け売りの知識だよね??
いやー天才のやることはひと味もふた味も違いすぎて凡人にはその感性が理解できませんわー
2022/11/16(水) 23:11:21.10ID:Ndk7vWNsM
ほかにも実況板とかVIPとかでいろいろスレ立てても誰にも相手してもらえてないみたいだね
だからって、この板でまでよその板と同じ感覚でクソスレ立ててお山の大将気取ったりするのはどうかと思うよ
2022/11/16(水) 23:15:53.76ID:Ndk7vWNsM
でもってVIPで建てたスレが多少伸びて反論喰らったら自分ではなにひとつ対処できなくて
この板に泣きついて助けを求めたりもしたよね?
正直すっごく恥ずかしいと思うよ

MAUI君は「別に何一つ恥ずかしいことなんてしてない」みたいなこと言ってたけど、いまでもそう思ってる?
839.NET MAUI HighSchool (ワッチョイ 2301-0qx4)
垢版 |
2022/11/17(木) 00:16:56.85ID:uB3aH/K90
>>838
反論食らった?
ここで言われてたけど実際WebViewで実装できてんだからいいじゃんって結果になったんだが?
2022/11/17(木) 07:30:02.27ID:f45dDCUTM
>>839
ねえそんなどうでもいいとこだけしか反応できないの?
「反論」って言葉が気に入らないならじゃあ「的外れな指摘」と言い換えたとして
その的外れな指摘ひとつお前一人じゃ応対できなくてこのスレに泣きついたよね
でもって手取り足取りレクチャしてもらってさ
元のスレでドヤ顔で披露してて恥ずかしくないの?

あと838以外のレスにはなにひとつ言い返せないの?
お前がどんだけ5chに入り浸ってるのかちょっと気になったんで
今年立てたスレの数とか聞いてみてもいいかい?
841.NET MAUI HighSchool (ワッチョイ 1b01-0qx4)
垢版 |
2022/11/17(木) 12:23:04.13ID:AcAViRuk0
>>840
いや別に恥ずかしくないけど?
分からなかったら人に聞かないの?
だとしたらアホだと思うしこんなスレいらない
2022/11/17(木) 12:31:29.53ID:EmPKjKBIM
質問するときだけコテ外すのはやめれ
応じる人は応じるし、無視したい人は無視する
843.NET MAUI HighSchool (ワッチョイ 1b01-0qx4)
垢版 |
2022/11/17(木) 12:35:24.02ID:AcAViRuk0
>>842
わかっな
844.NET MAUI HighSchool (ワッチョイ 1b01-0qx4)
垢版 |
2022/11/17(木) 12:35:29.50ID:AcAViRuk0
わかった
2022/11/18(金) 06:38:30.53ID:T+31eRIOM
>>841
質問することそれ自体が恥ずかしいことだなんて俺は言ってないし非難もしてないんだが
(もちろん質問することが悪いことだなんて思ってないし、質問で得た知識は有効に生かしてほしいと思ってるが)
どこをどう捻じ曲げて受け取ってそういう認知にいたるのかさっぱり分からんわ

ていうか835,836,837みたいなのにはMAUI君は一言も言い返してこないんだが
おまえ自身も恥ずかしいことだとちゃんと認識してるからなんだよね?
846.NET MAUI HighSchool (ワッチョイ 2301-0qx4)
垢版 |
2022/11/18(金) 08:32:33.70ID:dFTql+Wp0
>>845
いやお前が知りたい答えがわからないから
何を返してほしいの?
847.NET MAUI HighSchool (ワッチョイ 2301-0qx4)
垢版 |
2022/11/18(金) 08:35:56.22ID:dFTql+Wp0
835逃げ出すんでしょ?←どう答えてほしいの?
836受け売りの知識かどうかが知りたいの?なんJでスレ立てたのが俺なのか聞きたいの?
837お山の大将気取ってるのはどうかと思うよ?←これって質問なの?
2022/11/18(金) 18:34:03.07ID:De8oASvZM
人間初心者か
このスレC#初心者用であって人間初心者用じゃねえんだよな
保育園通ってろよガキ
2022/11/18(金) 19:50:02.12ID:y5ukyeaS0
最近、未確認飛行というサイトで初めてのプログラムとしてc#を学び始めたんだけど
https://ufcpp.net/study/csharp/oo_construct.html
ここのサンプルというところのプログラムでオーバーライドされたtoString()のメソッドが呼ばれるのってなんでかな?
どこでもそのメソッドを呼ぶようなことをしてないように見えるけど自分で実行してみたら確かに呼ばれてる
すごい基本的な事なんだろうけどどうか教えてほしい
850デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/18(金) 19:54:59.04ID:9HcKlt4I0
Console.WriteLineの中で呼ばれてるんだよ
2022/11/18(金) 20:08:52.48ID:y5ukyeaS0
>>850
これで呼ばれてることになってるんだ!?
教えてくれてどうもありがとう
仕組みはまだわからないけれど疑問がとけてすっきりした
852デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/18(金) 20:13:22.53ID:9HcKlt4I0
例えばこういうこと
public void WriteLine(object obj) {
 WriteLine_Inner(obj.ToString());
}

WriteLine_Innerは文字列だけを受け付けて表示するメソッドとする
WriteLineを呼ぶとToStringが呼ばれる
2022/11/18(金) 20:17:28.69ID:y5ukyeaS0
>>852
おお、すごい分かりやすい!
ここまで丁寧に教えてくれて本当にありがとう
これで気兼ねなく次の項目に進めるよ
854.NET MAUI HighSchool (ワッチョイ 2301-IoIj)
垢版 |
2022/11/18(金) 22:25:21.33ID:dFTql+Wp0
ほんとに未確認飛行物体からやってるすげー
2022/11/18(金) 23:58:15.19ID:nTmfkfcZM
手を動かさない学ばないやつは前に進めない
くだらないことしか言えない
いつまでも同じ場所にいる
2022/11/19(土) 19:28:32.08ID:kzcZtDQa0
JavaとかC#でenum使うメリットがわからん
857デフォルトの名無しさん (ワッチョイ 7735-kwcT)
垢版 |
2022/11/19(土) 19:33:40.92ID:hH2yPCCm0
オプション指定やろ
2022/11/19(土) 19:35:53.24ID:wfHvhfxa0
>>856
まず検索したか?
そのまま「enum使うメリット」でググって納得できなければ使わなければいい
それ以上はここで話してもキリがない
2022/11/20(日) 13:30:32.37ID:hkzvE6vGM
>>856
状態などを使うときにmode==0 とか mode==1よりわかりやすい

mode==モード.家でまったり中
mode==モード.お仕事中

など名前がついてるからわかりやすい
860デフォルトの名無しさん (アウアウウー Sa3b-lriv)
垢版 |
2022/11/20(日) 14:14:28.85ID:j4QfOsfua
逆になんでC#とかだと要らないと思うのか気になる
2022/11/20(日) 14:45:18.61ID:AxU0uBeT0
定期的に現れるレス古事記だと思うことにしてる
2022/11/20(日) 15:42:59.87ID:6Lmlby97a
いやあれだろ
条件が複雑すぎてenumにできないと暴れてたアホ
863デフォルトの名無しさん (ブーイモ MM02-4l+d)
垢版 |
2022/11/20(日) 15:47:47.16ID:wwqc7KSjM
enumってそれが使えるスコープっていう概念もあるのですか?
2022/11/20(日) 15:51:44.50ID:MjJ+/fUP0
普通に継承できねぇから
ステータス並べちまうと
クラスを継承したときに
enumも継承して
ステータス増やそうとするけど
enumの継承はできないので
ステータスは定数で並べるしかない
ってだっせー状態になる
2022/11/20(日) 15:53:25.80ID:MjJ+/fUP0
enum周り作ったやつの脳みそちんぽなんじゃん?
866デフォルトの名無しさん (ブーイモ MM02-4l+d)
垢版 |
2022/11/20(日) 15:59:28.92ID:wwqc7KSjM
クラス内でenum宣言することがあると思うのだけど
そうした場合はそのクラス内だけでしかそのenumは使えないんですっけ?
867デフォルトの名無しさん (ワッチョイ 62ad-eHBA)
垢版 |
2022/11/20(日) 16:09:13.26ID:ruJch1bQ0
>>866
privateならその通り
publicならクラス外でも使える
2022/11/20(日) 16:55:21.88ID:MjJ+/fUP0
っていう構造にも関わらず
継承できないから
クラスを継承すると
enumで書いてる状態は
全部書き直し

ハイ、全部ちんぽでした!
869デフォルトの名無しさん (ワッチョイ 7735-VKOE)
垢版 |
2022/11/20(日) 16:57:27.98ID:qg1DZ5gK0
クラス内のクラスって継承で継承できるっけ?
何がともあれメリットがないことにはならないけれども。
2022/11/20(日) 17:05:37.84ID:MjJ+/fUP0
他のくだらん機能は
どうでもいいから
enumを継承できるようにしろよ
まあ、なくても
const intで頑張るからいいけど
まあ、その場合enumは一生使わないね
871デフォルトの名無しさん (ワッチョイ 4b5f-k7YZ)
垢版 |
2022/11/20(日) 18:24:34.53ID:x1RY5Ndj0
当たり前だろ
クラス階層違うのに同じ名称を押し通す方がやばいわ
2022/11/22(火) 18:28:02.20ID:nAJcGQvG0
まあ名称はどうでもいいんだが

クラスAの状態を1〜3でEnumで持ってて
クラスAを継承してクラスBを作った
クラスBの状態1〜5をEnumでもつ
ここで、クラスA用のEnum継承して4〜5を追加して1〜5のEnum作りたい

ということはあるんじゃね
873デフォルトの名無しさん (ワッチョイ cf5f-ES6F)
垢版 |
2022/11/22(火) 18:38:58.38ID:NaPYQccb0
enumはクラスの中に入れるなってことなのでは
2022/11/22(火) 18:54:32.20ID:rbB+zYjt0
enumの継承って、キャストの安全性が保証できなくなるんじゃない?
2022/11/22(火) 20:08:00.71ID:5norvibI0
継承と言うか列挙子の追加やね
確かにたまにやりたいと思うことはある
enum A {A1, A2, A3};
enum B: A {B1, B2};
みたいにできればいいのにね
2022/11/22(火) 20:11:29.21ID:tdt1l6wr0
んまあどうでもいいです…
2022/11/22(火) 20:43:08.15ID:F4U9XWNgd
>>875の場合はA型をB型にキャストするのは型安全で逆は非安全だから、通常の継承とは逆になってしまう
TypeScriptみたいに type B = A & enum { B1, B2 } ができるといいんだろうね
2022/11/22(火) 21:56:55.88ID:2vHKVf9I0
>>877
> type B = A & enum { B1, B2 }
なにか勘違いしてないか?
type Bは役に立たないぞ
879デフォルトの名無しさん (ササクッテロリ Spdf-k7YZ)
垢版 |
2022/11/22(火) 21:58:13.24ID:s23xOfAqp
enum 張りなおせばよかばい
2022/11/23(水) 00:07:27.78ID:6lN/+0f80
>>875
enumB(1〜5)を受け入れるところは当然enumA(1〜3)も受け入れたいわけだが
これを認めると親クラスが子クラスに変換できることになる

>>877
せめてenumからenumへの暗黙変換定義できればなぁ

結局全部再定義して、int(元の数値)介して変換とか
それならもとからintずらずら並べたほうが良いかという
2022/11/23(水) 00:09:25.48ID:GHFjAPMfd
>>878
ああ、確かに間違いだな
&じゃなくて|だ
2022/11/23(水) 01:13:39.40ID:w1dmgQVP0
な、enumがクソなせいで
クラスの継承までクソになってるだろ
早くenumの継承できるようにしろよ
これができなくてどーすんのよ

って機能な実は
2022/11/23(水) 01:27:51.47ID:mCXmHJvQ0
まさに鬼の首を取ったよう
884デフォルトの名無しさん (ワッチョイ 7735-VKOE)
垢版 |
2022/11/23(水) 06:34:20.68ID:3geqF3we0
クラス内に書かなきゃいい
2022/11/23(水) 08:51:16.99ID:g5bfG+kA0
>>877,880
だから俺が欲しいのは継承じゃなくて列挙子の追加って言ってるだろ
enum B: A {B1, B2}; だと継承と間違えると言うなら別の構文でもいい
ベースの定義を引き継いで定義できればいい
2022/11/23(水) 11:31:55.12ID:hhL0Iwa90
enum継承を実装するならまずはstruct継承を実装しないといけない
そして値型の継承をバンバン行うC++ですらenum継承はサポートされてないから諦めるんだな
とは言え.net standard2以上ならソースジェネレーター使えるんだからC++のマクロ実装よりも堅牢にenum継承を叶えられるのがC#
2022/11/23(水) 12:09:29.79ID:A1o24w6O0
enumの継承なんて欲しいと思った事一度も無いわ
2022/11/23(水) 12:14:49.51ID:w1dmgQVP0
>>887
状態遷移をするものを書いたことないからだろ
書くと一発で不満が出る
仕方なくenumで定義したステータスを
const intに直す作業をすることになる
2022/11/23(水) 12:51:02.69ID:Gf+fcBNM0
変性的にどうなんかな?
基底enumを要求するところに派生enum渡して大丈夫?
2022/11/23(水) 13:10:21.66ID:HMCqpO+TM
>>888
それ設計大丈夫?
コード上のコンテキストで十分なものまで状態にしちゃってたりしない?
2022/11/23(水) 13:31:54.09ID:w1dmgQVP0
>>890
そんなの問題じゃねぇじゃん
適切な状態遷移のクラスを作って
継承するとenum使えないんだから
2022/11/23(水) 13:34:04.83ID:w1dmgQVP0
c#のenum周りを作ったやつは
状態遷移も作ったことがない
クソってだけ
まあ、言語開発に状態遷移なんて
いらんだろし
知らないのも無理はない
ってだけの話でしょ
2022/11/23(水) 13:34:28.41ID:63Gynabdd
元での状態A,B,C
派生1で状態A,B,C,D
派生2で状態A,B,C,E
派生3で状態A,B,C,D,E

基底に追記するだけで済みそうだけど
わざわざパスタを希望するか
2022/11/23(水) 13:41:09.59ID:GkNkmjh5M
まず継承出来る言語を挙げてくれないとどんな設計を求めてるのかわからん
2022/11/23(水) 13:44:23.94ID:w1dmgQVP0
>>894
状態遷移作ったことねぇやつは遠慮してくんない?
2022/11/23(水) 13:55:25.91ID:EqePYP8Fp
初心者質問スレでいつまでいきがってんだか
公式にいしゅー投げとけよ
2022/11/23(水) 14:04:53.83ID:Gf+fcBNM0
>>891
継承したクラスで遷移する状態を拡張するのはいいとして、そこにenumも派生して使おうってのが
設計として間違ってるんじゃね?
2022/11/23(水) 14:18:05.41ID:w1dmgQVP0
>>897
そしたら状態はどうやって定義するの?

もちろんenumではない
ステータス用の型が必要っていう意見ならわかる
現状enumしかないってだけ
statetype型なんてできたらそれはそれでよい
enumの拡張だと>>889の問題がヘタクソがたくさんいる職場では問題になりそう
2022/11/23(水) 14:28:50.84ID:eUenOEMN0
状態推移ってstate machine?
enumでやんの?
2022/11/23(水) 14:33:23.73ID:Gf+fcBNM0
>>898
enumを派生するんじゃなくて別のenumを使う。
2022/11/23(水) 14:42:16.47ID:fS1C7GFxa
アスペが大暴れしてるな
2022/11/23(水) 14:49:08.23ID:eUenOEMN0
もしかしてHierarchical Finite State Machinesをenumでやろうという話?
ちょっと見た事も聞いた事もないので興味あります
2022/11/23(水) 15:18:56.76ID:hhL0Iwa90
>>892
逆にどの言語ならあるんだい?
C++なんてC#で言うところのEnum.GetValuesやEnum.GetNamesすら標準サポート無しだぞ
テンプレート黒魔術使ってコンパイラに超負荷をかけて実装できなくもないが
2022/11/23(水) 15:22:25.48ID:hhL0Iwa90
さっきも言ったけどソースジェネレーター利用したらかなりトリッキーなこともコンパイルセーフに行えるんだから騒いでる暇あったら作れば良いのに
2022/11/23(水) 15:24:55.83ID:fS1C7GFxa
enumの使い方も知らないやつにソースジェネレータとか無茶言うなよ
2022/11/23(水) 15:45:58.22ID:Z18k9Xb90
状態の管理は >>893 じゃだめなのかな。
自分も昔は継承したがってたけど、結局 893 みたい基底に追記するようになったんだよね。

enum をシリアライズすると int 扱いになるから、複数のクラスで継承して使う場合に、ほかのクラスの enum 定義を把握しておかないと危ないケースがあるような気がするんだけど。
2022/11/23(水) 16:01:46.11ID:zunuLtNb0
enumはCから受け継いだものだからこの設計についてC#を責めるのがまずアホ

enumの主な使いみちは値を限定することだ
要するにintの値を引数にしたいがその値の種類は3種類に限定したい、それ以外の値を渡そうとしたらコンパイルエラーにしたい、そういう時にenumを使う
その関数は引数として3種類しか渡らないことを保証されてるから無理やり他の値を渡した際には未定義動作になる

enumが継承できてポリモーフィズムが効くとすれば3種類の値しか来ない関数に普通に他の値を渡すことができてしまうだろw

なんでenumを使いたいか知らんけど使い方間違ってるからenumをやめて正しい方法を使え
以上
2022/11/23(水) 16:34:31.63ID:Z18k9Xb90
すげー納得出来る理由が来た。w
感謝。
2022/11/23(水) 16:53:35.93ID:g5bfG+kA0
まだ継承とか言ってるアホが居るのかw
今までのenumの機能だと継承なんてできても意味ない
継承したいたらenumの各値にメソッド定義出来るようにするとかぐらいの機能追加しないとな
2022/11/23(水) 17:19:16.06ID:w1dmgQVP0
>>907
でもまさに状態遷移の状態の定義なんてenumの出番だと思うんだけど
ここでこいつ役に立たなかったらほか何に使えるのってぐらい
ちなみにc++でこの辺悩んだことないなぁと思ったら#defineで書いてたわ
2022/11/23(水) 17:26:51.44ID:LfUozzif0
enum A {A1, A2, A3};があるとして
enum B: A {B1, B2}; としたい理由は何なの?
単に記述量を減らしたいだけ?

AとBは違うデータドメインだから違うenumにするわけなので
enum B: {A1, A2, A3, B1, B2};として新しく定義するか
元のenum Aを拡張するものだと思うけど
2022/11/23(水) 17:57:30.88ID:zunuLtNb0
>>910
なぜそこでenumの出番だと思ったのか
明らかに違うしどこで使うかはたった今説明しただろw
お前の設計はおかしいと何度も言われてるのに頑なに耳をふさいでるからできないんだぞ
2022/11/23(水) 18:00:35.30ID:zunuLtNb0
つか状態遷移で通じると思うところからやめろ
状態遷移の実装なんて何種類もあるわ
最終的に何がしたいのか言葉で説明できないやつは自分のやりたいことをプログラミング言語に直すことすらできんぞ
一般的なステートマシンでいいのか?
2022/11/23(水) 18:07:41.13ID:g5bfG+kA0
>>911
例えば標準はenum A {A1, A2, A3};の状態しかないけどオプションつけたらenum B: A {B1, B2};と増える
違うオプションつけたらenum C: A {C1, C2, C3, C4};と増えるとか
2022/11/23(水) 18:09:35.33ID:g5bfG+kA0
>>913
enumの話が状態遷移の状態を表すために使ってると分からないなら無理に話しに加わらなくていいぞ
2022/11/23(水) 18:32:51.60ID:zunuLtNb0
>>915
お前の言う状態遷移が何を指してるか言わないならお前の脳内かチラシの裏で処理しとけ
ステートマシンなら普通にインスタンスのパターンマッチングが使えるからそれがわからなきゃ無理してプログラミングの話に加わろうとするなよw
2022/11/23(水) 18:33:43.64ID:zunuLtNb0
多分switchが数値や文字列にしか使えないと思ってるド素人なんだろ?w
2022/11/23(水) 18:35:31.89ID:zunuLtNb0
switchが使いたいからenumなんだろ?w
おい正直に言ってみろよw
2022/11/23(水) 18:41:28.03ID:Gf+fcBNM0
なんか変なのが2人に増えた
2022/11/23(水) 18:47:35.71ID:eUenOEMN0
デザインパターンのステートマシンは登場しないような気がする
2022/11/23(水) 18:55:47.21ID:LfUozzif0
>>914
取りうる値すべて網羅するのが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};とすべき
同じ名前のメンバーが存在しても異なる型で別のものだからそれぞれ定義するのは当たり前
2022/11/23(水) 19:03:20.20ID:v/FrQePk0
なんだろうフツーに連想配列じゃいかんの?
2022/11/23(水) 19:04:39.67ID:Gf+fcBNM0
typescriptその他の代数的データ型みたいに enum B = .A | B1 | B2 とやりたい気持ちはわかる。
2022/11/23(水) 19:05:08.39ID:w1dmgQVP0
>>921
それを言うならそもそも継承なんか使うなよって思う

まあ、コピペで貼ったほうが将来的に継承よりもうまくいってしまうケースはありまくったのも事実
2022/11/23(水) 19:07:17.68ID:LfUozzif0
>>923
TypeScriptでもenumでunion作ったりしないよ
できるけどやらない
やってる人がいるならモデリング方法が間違ってる
2022/11/23(水) 19:12:23.17ID:zunuLtNb0
状態遷移が何か良くわからずに最近知ったやつが唯一の状態遷移だと思ってるやつに何を言ってもむだだよ
教科書にenumを使えと書いてあったんだろうから
2022/11/23(水) 19:13:57.53ID:Gf+fcBNM0
ああすまん誤解させた。typescriptのenumを使う話じゃなくてtypeに読み替えてくれ。
2022/11/23(水) 19:28:19.96ID:g5bfG+kA0
>>916
enumの話だと言ってるのに...
お前パターンマッチング言いたいだけだろw
2022/11/23(水) 19:31:42.90ID:UGK9R6GJ0
現実のリサイクルにコストが3倍掛かるように
コード継承なんてフレームワーク利用者以外無意味だよ
自分で継承を考えながら書くことなんて時間の無駄でしかない
師匠とおだてられて弟子を育てて行くか、生涯わが道を探求していくかぐらい結果が違ってくる
2022/11/23(水) 19:31:45.39ID:g5bfG+kA0
>>921
> 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};とすべき
まあ君はそうすればいいんじゃね?
2022/11/23(水) 19:47:33.73ID:zunuLtNb0
>>928
enum使うのがおかしいとこれだけ何度も言われてるんだからどれだけボンクラでもそろそろ気づこうなw
お前の読んでる30年前の入門書が古いんだよw
2022/11/23(水) 19:52:20.51ID:6lN/+0f80
>>921
それenum Bで102種類登録しろって話だよな
まあそれが正しいのは分かるが

enum Bは完全にenum Aを内包していて100個は同じ
その状態でenum Aを拡張してenum Bを作りたいってのは間違ってるのか?
それともそういう状況でenumを使うのが間違ってると?
2022/11/23(水) 19:53:27.05ID:zunuLtNb0
>>932
間違ってると何度言われても聞く耳持たないなら聞くのやめたら?
2022/11/23(水) 19:54:47.89ID:Gf+fcBNM0
1. enum を継承できないのがおかしい。
2. enum を継承したいのがおかしい。
3. enum を使うのがおかしい。

1. と 3. がそれぞれ1人ずつだと思うのだが。
2022/11/23(水) 19:59:02.09ID:zunuLtNb0
>>934
enumを継承できるようにすると色々不具合が出るのは既に示した通り
だから継承したいやつがおかしいしできないのは当然

ここでenumを使うのも明らかに悪手でそれは本人も使いにくいと感じてるから薄々はわかってると思う

だけど薄々しかわからないのマジでアスペwww
使いにくい時点で気づこうぜw
2022/11/23(水) 20:06:27.70ID:Gf+fcBNM0
3. がお前さんひとりだと言ったつもりだったんだが。
2022/11/23(水) 20:08:52.61ID:zunuLtNb0
>>936
お前の言いたいことなんか知らんが、もっといい方法があるのに文法に文句を言いながらenumに固執するのはアホだと思わんか?w
おいおいこんな簡単な理屈がわかるやつが俺しかいないってどうなってんのこのスレ?w
2022/11/23(水) 20:16:59.47ID:g5bfG+kA0
>>936
相手すんな、最近継承とかパターンマッチング覚えたキッズなんだろ
2022/11/23(水) 20:18:28.43ID:zunuLtNb0
>>938
お前は早くenumの使い方覚えろよw
どう考えてもそこじゃないだろ
使いにくい時点で何か違うなーって思えよw
2022/11/23(水) 20:23:29.96ID:zunuLtNb0
intは小さい数値しか使えないから設計したやつは頭おかしいって発狂してるやついたらアスペかなって思うだろ?

俺から見たお前らってそんな感じになってるぞ
long教えてもらったなら覚えろよw
2022/11/23(水) 20:25:12.72ID:Gf+fcBNM0
>>937
お前さん一人だけ話がずれているんだと思うぞ。
2022/11/23(水) 20:27:17.57ID:KUj2Jy2fa
>>941
ズレてるのはお前の頭だよw
enumを状態遷移に使いたいという話で、継承できないから使えないといつまでも文句言ってるやつに教えてやってるだけだぞw
違う話したいなら気にせずしろよ
ヅラ直してから
2022/11/23(水) 20:34:56.61ID:eUenOEMN0
ステートパターンはポリモーフィズムを実現する方法だけど
ステートマシンは特にポリモーフィズムを実現してなくてもステートマシンになってしまうらしい
むしろポリモーフィズムのメリットがないのに状態遷移させるメリットが全く分からない
2022/11/23(水) 20:37:28.39ID:KUj2Jy2fa
ステートマシンかどうか聞いても状態遷移知らないのかの一点張りで答えないんだよなあw
いやマジでお前が状態遷移知らないのかとw
せめてその入門書のタイトルくらい書こうやw
2022/11/23(水) 20:39:42.92ID:Gf+fcBNM0
>enumを状態遷移に使いたいという話で、

状態を表すのに使う話なんだがこのへんがズレてるんだろうな。
2022/11/23(水) 20:42:35.56ID:wPRe5xEXd
>>934
4. 列挙子の追加がしたい
これが入ってくるから、さらにややこしい
こちらは臨機応変かなぁ
2022/11/23(水) 20:45:01.02ID:KUj2Jy2fa
>>945
だからそこに使うなって話だぞ
何度言えばわかるんだよ?
継承しなきゃ使えないとかいうイミフな条件ついてるのにどう使う気なんだそれ?w
2022/11/23(水) 21:04:41.04ID:Gf+fcBNM0
>>946
列挙子の追加というのがもともとやりたいことでそれは大前提だと思う。
そこに継承を使うのは無理筋だから他の手でやれということで。
2022/11/23(水) 21:17:19.11ID:KUj2Jy2fa
できないことを地面に転がってしたいしたいと泣きわめくのはプログラマーとは言えないな
ツールはそこに揃ってる
なら最適な方法をみつけるのがプログラマーの仕事だ

XY問題でいつまでも時間潰すのはただの無能
↓100回読んどけ
https://ja.wikipedia.org/wiki/XY%E5%95%8F%E9%A1%8C
2022/11/23(水) 21:23:05.30ID:QiNG678ud
>>984
>>934の1番がこれよね
ID:w1dmgQVP0
4番はこっち
ID:g5bfG+kA0

継承ではなく追加したい、みたいな話
包含に近いか?
2022/11/23(水) 21:24:33.41ID:QiNG678ud
安価ミス、、、
>>948宛ね
2022/11/23(水) 21:48:33.88ID:+3bsKbsu0
状態遷移ってよく知らんけど
必要に迫られるごとに似たようなことはやってるな
2022/11/23(水) 21:52:28.30ID:+3bsKbsu0
複数のテーブル値関数を full outer join すると面白い結果が得られるぞ
C#からは脱線するが。
機会があれば業務適用しようと思ってる
2022/11/23(水) 22:10:16.15ID:Gf+fcBNM0
>>947
有限状態を表現するのにenumを使うのはごく普通のことでそれに文句つけてるのはお前さんだけだが?
代わりにいったい何を使えと言うんだろう?
2022/11/23(水) 22:36:14.78ID:Mu4NVEsX0
状態ごとの派生クラス作ったほうが楽じゃないの
enumを使い回そうってのがまずよくわかんないわ
2022/11/23(水) 22:51:15.68ID:v/FrQePk0
Statelessとか見たら腰抜かしそう
2022/11/23(水) 23:43:15.34ID:rAuww2HaM
こんな機能があれば便利なのにってのは分からんでも無いけど
他の言語も含めた実装状況見れば少数派がデカい声出してるだけでしょ
2022/11/24(木) 00:18:19.16ID:R18LG1aZ0
>>954
何をってもう何度も書いただろw
enumを使うことでうまくいかないのが明白になったなら固執するのがアホ
オブジェクトやクラスはハッシュコード持ってるからenumでなくともswitchで処理できるし継承もできる
状態遷移状態遷移言ってるが教科書コピペするんじゃなく何をどうしたいのかを見据えてそれを実現しなきゃいけないぞw
2022/11/24(木) 00:21:21.14ID:6EroDtbH0
>>935
「継承」できないしするのはおかしいのは分かったから
enumを「拡張」したいって思う
拡張したいって用途にenumを使う
どっちがおかしいって?
その理由が単にenumがそうなってないってなら、そうあるべきだって議論はありえると思うが

>>937
別に俺は固執する気はないので、そういうことはできないってならできないで良いんだが
もっといい方法って具体的には?
2022/11/24(木) 00:24:41.88ID:R18LG1aZ0
例えばステートマシンのノードの一つをカーソルで参照するだけでカレントステートを表現できるしカーソルを動かせばそれはもう状態遷移だろ
ノードをオブジェクトにすれば種類によって違うプロパティやメソッドも持てる
ここにenumの入る余地などない
俺が何を言ってるかわからんとすればお前の勉強不足だから伏して教えを請え
2022/11/24(木) 00:54:01.50ID:uAP2KDnH0
enumて要素を限定するためのもんでしょ
拡張できたらぐちゃぐちゃじゃん
拡張した場合また別の名前なり必要で別ものになるでしょ
2022/11/24(木) 06:12:20.08ID:0c/PVttN0
>>961
ぐちゃぐちゃになるかどうかは使い方次第
963デフォルトの名無しさん (ササクッテロリ Spdf-k7YZ)
垢版 |
2022/11/24(木) 11:04:40.36ID:Qxz+vdGfp
クラス内でしか意味がないものを他クラスで判断に使う事自体が問題じゃね?
2022/11/24(木) 12:05:41.62ID:I9DGq0SZa
ひょっとしてと思って「unity 状態」でググッたら質問者のやりたいことがわかったわw
キャラクタを委譲じゃなく継承させる糞コードでなんちゃってステートパターンしたいんだなw
継承したキャラクタは行動できるパターンが増えるから状態もそれによって増やしたいということだろ
キャラクタを継承させるという糞仕様から直すのが正解だがそれをしたくないならenumじゃなくクラス使えよ
その状態だけ継承させればキャラクタの継承要らないんじゃねというところに気づけばみんなが何を言ってたかわかるようになるかもしれんぞ
965.NET MAUI HighSchool (ワッチョイ 5601-MxP6)
垢版 |
2022/11/24(木) 12:19:13.38ID:DPMQyp0E0
Unityってクラスないの?
2022/11/24(木) 12:54:31.34ID:P04N2b5w0
継承とか拡張とは違うけど
enum StandardColor: {Red, Green, Blue}
enum ExtendedColor: {Teal, Turquoise}
とあった時にStandardColorとExtendedColorはそれぞれ個別の用途でも使うし
両方混ぜた集合からどちらか一方だけ選択する用途でも使いたいというのは理解できる

この場合はC#では言語的にはまだサポートされてない機能だから
サードパーティのライブラリを使うか自作するか
2022/11/24(木) 17:55:35.91ID:88NBfQl90
Unityでもポリモーフィズムを実現していればクラスのカプセル化が効くから
Stateで状態が切り替わる振る舞いは同じでもサブクラスで提供される機能を変えられる
ポリモーフィズムの実現が主題であってenumに依存するとかしないとかどうでもいい事な気がする
2022/11/24(木) 18:42:01.91ID:EbMeVnega
enumはポリモーフィズムに使うものじゃねえんだって話をしてるんだよw
2022/11/24(木) 19:12:02.78ID:88NBfQl90
仕様未使用はどうでもいいって言ってるのを何故復唱する必要があるのか?
2022/11/24(木) 19:17:15.44ID:6EroDtbH0
で、結局enumの使いどころはどこなんだ?
971デフォルトの名無しさん (ワッチョイ cf5f-ES6F)
垢版 |
2022/11/24(木) 19:20:15.08ID:NYxgvrZS0
人生で数々のenumに触れてきて今まで継承したいと思うenumに遭遇したことがない

私は思う
不完全なenumはそれ自体がバグなのだと
2022/11/24(木) 19:25:58.70ID:88NBfQl90
多次元配列やジャグ配列で事足りるからenumなんぞいらんでしょ
2022/11/24(木) 19:26:08.06ID:1uxs9LdZ0
使えるものを使うだけじゃんよ。
2022/11/24(木) 19:35:14.11ID:JYVIn9dZa
使うべきところでな
enumの使い方は既に教えた
そこじゃないのも何度も言った
これでわからないボンクラは何やってもだめ
2022/11/24(木) 19:38:42.34ID:88NBfQl90
色々混ざってる糖質がいろんな人間が言ったことを勝手に混ぜて
訳の分からない事を言ってるのか?
2022/11/24(木) 19:45:03.01ID:JYVIn9dZa
色んな糖質がバカなことばかり言ってるのに区別する必要あるか?w
2022/11/24(木) 19:46:38.20ID:JYVIn9dZa
見りゃわかるが俺はバカなこと言ったやつをバカにしてるだけだからそれにカチンとくるやつは同じバカだぞ
2022/11/24(木) 19:48:18.80ID:88NBfQl90
最初に質問した奴はステートマシンとステートパターンの区別もポリモーフィズムも知らない奴だったわけだが
何でも同じに見えるというならそうなのだろう 知った事ではないし興味すらもない
勝手に吠えてればいい
2022/11/24(木) 20:22:54.20ID:JYVIn9dZa
enumだと都合が悪いと質問者すら発狂してるのにいつまでもそれに固執するようなのは同じレベルでしかないだろw
都合が悪いなら使ったらだめと気づこうや
2022/11/24(木) 20:28:32.70ID:88NBfQl90
stateにenumは使わなくてもStatePatternは作れるし元々enumは必須ですらない
そもそもポリモーフィズムのメリットが分からない奴が面白い勘違いしてるだけだろ
981デフォルトの名無しさん (ササクッテロリ Spdf-k7YZ)
垢版 |
2022/11/24(木) 20:44:59.86ID:x2utmnLfp
サボらずに変換メソッド作る
2022/11/24(木) 20:47:40.88ID:0c/PVttN0
ステートパターンを覚えたてのキッズ同士の争いはよそでやってくれw
983デフォルトの名無しさん (ワッチョイ 5f01-t20s)
垢版 |
2022/11/25(金) 09:34:35.22ID:acUkwbrC0
おまいらどんだけenumでスレ消費してんだよ
984.NET MAUI HighSchool (ワッチョイ 5601-MxP6)
垢版 |
2022/11/25(金) 12:13:43.21ID:RaC0ZQGe0
モバイルSuicaにもReactiveUIとか使われてて
結構Rxってもう標準になりつつあるな
これ産み出したC#すごい!
985.NET MAUI HighSchool (ワッチョイ 5601-MxP6)
垢版 |
2022/11/25(金) 12:20:00.08ID:RaC0ZQGe0
>>4
新スレ建てようとしたけど改行が多すぎるとかで無理だった…
2022/11/25(金) 13:18:08.44ID:HZEumDr50
立てといた

ふらっと C#,C♯,C#(初心者用) Part157
https://mevius.5ch.net/test/read.cgi/tech/1669349768/

頭のextend~は念のため1行増やしておいた
2022/11/25(金) 18:03:50.34ID:b6uMxREG0
おつかれー。
と言いつつ埋め。
988.NET MAUI HighSchool (ワッチョイ 5601-MxP6)
垢版 |
2022/11/25(金) 20:24:56.18ID:SQhAXb/D0
>>986
サンキュー
2022/11/25(金) 20:27:00.27ID:Ex0f5l5+M
列挙型の元祖はPascal
990.NET MAUI HighSchool (ワッチョイ 9f01-8jrN)
垢版 |
2022/11/26(土) 08:34:50.54ID:Ja07f46G0
C#isGod
2022/11/27(日) 23:14:07.98ID:MIxI7txJ0
ume
2022/11/28(月) 21:44:09.15ID:vwJLsOsN0
bool isGod = true;
2022/11/28(月) 22:44:48.65ID:SzIAkLME0
うめうめ
2022/11/28(月) 23:09:55.94ID:ozyLKgmt0
梅火星
2022/12/09(金) 19:49:47.35ID:KigkNyOs0
いい加減埋めようよ。
996デフォルトの名無しさん (ササクッテロラ Sp5f-w5YM)
垢版 |
2022/12/09(金) 19:52:30.95ID:lbVfgM7Sp
埋め屋敷
2022/12/09(金) 20:08:40.11ID:xaxCUQ87a
埋めなくていいよ
次スレもいらん
2022/12/09(金) 20:10:07.88ID:8ML1skqU0
もッス
2022/12/09(金) 20:14:42.85ID:LL4MqSod0
誰も必要としてなくて草
2022/12/09(金) 20:16:37.36ID:LL4MqSod0
NullReferenceException
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 82日 5時間 37分 8秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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