次スレを立てる時は↑を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
探検
ふらっと C#,C♯,C#(初心者用) Part156
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5f01-NOMG)
2022/09/18(日) 14:39:29.51ID:VjUDO6tf02デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
2022/09/18(日) 14:39:44.87ID:VjUDO6tf0 新しく立てましたがあってますかね?
3デフォルトの名無しさん (ワッチョイ ffbb-W3aP)
2022/09/18(日) 15:29:46.75ID:wEL99hbX0 ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
4デフォルトの名無しさん (ワッチョイ ff2c-bG2j)
2022/09/18(日) 15:57:15.60ID:lQR3ujpZ0 いちおつ
大体あってるけど冒頭のおまじないが消えてるね…
!extend:checked:vvvvv:1000:512
大体あってるけど冒頭のおまじないが消えてるね…
!extend:checked:vvvvv:1000:512
5デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
2022/09/18(日) 16:33:33.24ID:VjUDO6tf06デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
2022/09/18(日) 16:35:43.35ID:VjUDO6tf0 立て直したほうがいいのかな?
7デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/18(日) 16:35:49.19ID:6iWR4o+g0 スレ立てるときは1~2行ぐらい追加して立てた方が良いかなって話だよね
8デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
2022/09/18(日) 16:39:46.64ID:VjUDO6tf0 つまり次立てる人が気をつけてくれればいいってことか…
9デフォルトの名無しさん (ワッチョイ ff2c-bG2j)
2022/09/18(日) 16:42:23.27ID:lQR3ujpZ0 書いてる通り1行ぶんは消えるからね 毎回増やさないといけない
立て直しはしなくていい、大丈夫
次スレ立てるときに気を付けないといけないなーと
立て直しはしなくていい、大丈夫
次スレ立てるときに気を付けないといけないなーと
10デフォルトの名無しさん (ワッチョイ 9f01-NOMG)
2022/09/18(日) 16:43:34.75ID:VjUDO6tf0 なるほどサンクス
11デフォルトの名無しさん (アウアウウー Sa5b-qF/N)
2022/09/18(日) 16:44:45.13ID:aznVlwJJa12デフォルトの名無しさん (ワッチョイ b779-zfln)
2022/09/18(日) 17:39:41.49ID:eBtB+6XZ0 >>3
ちんぽ!まで読んだ
ちんぽ!まで読んだ
13デフォルトの名無しさん (ワッチョイ 5701-dv3E)
2022/09/18(日) 17:43:02.64ID:a87PubfG0 読んだんだ(笑
14デフォルトの名無しさん (ワッチョイ ffbb-AZvI)
2022/09/18(日) 17:44:39.84ID:eAqQvdrB0 ReDosにもならない
15デフォルトの名無しさん (ワッチョイ 9741-BLZI)
2022/09/19(月) 12:44:07.38ID:bKWC7nbK0 «許可»をクリックして、ロボットではないことを確認してください!
16デフォルトの名無しさん (ワッチョイ d763-DwLj)
2022/09/19(月) 15:30:11.92ID:t+9kOvGj0 ポチッとな
17デフォルトの名無しさん (ブーイモ MMdb-rZTD)
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
γ ⌒ ⌒ `ヘ
イ "" ⌒ ヾ ヾ
/ ( ⌒ ヽ )ヽ
( 、 , ヾ )
................... .......ゞ (. . ノ. .ノ .ノ........... ........
:::::::::::::::::::::::::::::::::ゝ、、ゝ.....| |..., , ノソ::::::::::::::.......::::
_ _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
20デフォルトの名無しさん (ブーイモ MMcf-XcMj)
2022/09/23(金) 14:31:23.00ID:2Q5DEdnDM 皆様に人脈の加護がありますように❤
21デフォルトの名無しさん (ワッチョイ 1201-bOZY)
2022/09/25(日) 00:31:29.09ID:DIWRYevd0 質問です!
Windowsでwavとかmp3とかじゃなく配列で作った正弦波を鳴らすための標準ライブラリってありますか?
シンセサイザーアプリのために低レイテンシーだとありがたいです
Windowsでwavとかmp3とかじゃなく配列で作った正弦波を鳴らすための標準ライブラリってありますか?
シンセサイザーアプリのために低レイテンシーだとありがたいです
22デフォルトの名無しさん (ブーイモ MM0e-UZRN)
2022/09/25(日) 00:59:16.75ID:Y7mttA55M XAudio2
23デフォルトの名無しさん (ワッチョイ 527c-tX/F)
2022/09/25(日) 01:45:39.85ID:6wI0gbs/0 そもそもwavファイル自体が波形データそのままに近いのでは?
Win32APIを直接叩くとやりたいことは出来るとは思うけどね
waveOutOpen()とかこの辺
大昔にやった事あるけどその時はVCだったし全然覚えてないわw
Win32APIを直接叩くとやりたいことは出来るとは思うけどね
waveOutOpen()とかこの辺
大昔にやった事あるけどその時はVCだったし全然覚えてないわw
24デフォルトの名無しさん (ワッチョイ 1201-bOZY)
2022/09/25(日) 02:01:54.70ID:DIWRYevd0 >>23
waveファイルはヘッダー情報があるのでそれ作らないといけないのがめんどくさい
わざわざファイルを作らないといけないのもスマートじゃないし
やっぱりWin32API使わないとなのか…
このへん破ったことないからわからん
waveファイルはヘッダー情報があるのでそれ作らないといけないのがめんどくさい
わざわざファイルを作らないといけないのもスマートじゃないし
やっぱりWin32API使わないとなのか…
このへん破ったことないからわからん
25デフォルトの名無しさん (ワッチョイ 1201-bOZY)
2022/09/25(日) 02:02:08.15ID:DIWRYevd0 >>22
調べてみます
調べてみます
26デフォルトの名無しさん (ワッチョイ 1201-bOZY)
2022/09/25(日) 02:02:54.21ID:DIWRYevd027デフォルトの名無しさん (JP 0H6a-Q6KD)
2022/09/25(日) 02:10:21.67ID:33uw2yCZH この質問者、前スレで就職相談してた27歳の人じゃね?
なんとなく「mauiで」とか条件後出しされそうな悪寒
なんとなく「mauiで」とか条件後出しされそうな悪寒
28デフォルトの名無しさん (ワッチョイ 3763-eFJV)
2022/09/25(日) 02:29:37.09ID:BeOzTuvS0 邪推はやめてくれよブラザー
29デフォルトの名無しさん (ワッチョイ 2701-UO2h)
2022/09/25(日) 04:18:13.47ID:kQGcz7Hc0 dllをプロジェクトの参照に入れずに、実行時に動的に読み出して内部のメソッド実行やインスタンスの生成をしたいのですが可能でしょうか?
30デフォルトの名無しさん (ワッチョイ f7ad-KEZS)
2022/09/25(日) 05:05:25.63ID:QuKarKAJ0 >>29
可能です
可能です
31デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/25(日) 07:24:05.34ID:PDKGWlWe0 そりゃ元々 Dynamic = 動的 だからできないわけない
てか C# dll 動的ロード とかでググろうと思わないのか?
https://qiita.com/rita0222/items/609583c31cb7f0132086
てか 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を使うようにします。
win32APIをDLLインポートするのも大変そうなので(Xaudio2をC#で使う記事を見ましたが理解ができませんでした)
素直に拡張ライブラリのNAudioを使うようにします。
33デフォルトの名無しさん (ワッチョイ 5e66-WHUN)
2022/09/25(日) 07:46:43.94ID:ZSqiS99C0 dll実装が先に存在してるなら、参照で先に作っておいて、
実行時にこけたらAssembly.LoadFileとかするのが普通かな。
dll実装が不定ならAssembly.LoadFileで読んで、dynamicで動かすことになるが
結構不安要素でかい。
Reflection使ってメソッドの実装のありようの確からしさは実行中に確認する必要がある。
interfaceなりでちゃんとdll側を縛ってあるのがいちばんいいけどね。
実行時にこけたらAssembly.LoadFileとかするのが普通かな。
dll実装が不定ならAssembly.LoadFileで読んで、dynamicで動かすことになるが
結構不安要素でかい。
Reflection使ってメソッドの実装のありようの確からしさは実行中に確認する必要がある。
interfaceなりでちゃんとdll側を縛ってあるのがいちばんいいけどね。
34デフォルトの名無しさん (アウアウウー Sa43-mISd)
2022/09/25(日) 18:52:10.05ID:YHbagUeLa どこの普通なんだか
35デフォルトの名無しさん (アウアウウー Sa43-mISd)
2022/09/25(日) 18:55:26.67ID:YHbagUeLa dllの動的ロードしたいならMEF使え
https://learn.microsoft.com/ja-jp/dotnet/framework/mef/
https://learn.microsoft.com/ja-jp/dotnet/framework/mef/
36デフォルトの名無しさん (ワッチョイ 5e66-WHUN)
2022/09/26(月) 06:17:01.60ID:4jeN/07Z0 プラグインシステムならまだしも、dllの動的ロードでMEFなんか使わんが...
37デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/26(月) 12:27:47.38ID:6iA7KcBP0 そういうのをプラグインと言うんだぞw
プラグインじゃなきゃ普通に参照すればいい
プラグインじゃなきゃ普通に参照すればいい
38デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/26(月) 12:35:43.49ID:6iA7KcBP0 あ、そうか、もしかして参照したdllはアプリ起動と同時に読み込まれると思ってるやついるのか
だから参照しないようにしてんの?w
だから参照しないようにしてんの?w
39デフォルトの名無しさん (ワッチョイ 5e66-WHUN)
2022/09/26(月) 15:03:37.01ID:4jeN/07Z0 開発時は参照では組むが、実際の実行環境では
実行の基点となるexeとは別の場所にdllが配置されてるとかもあるからなぁ。
まあ質問者が何やりたいかは明確にしていないからなんとも。
dllを遅延ロードしたいだけなら、上にあるように
普通に参照で組んで、実行時にdll無いと必要になるステップに
到達したらエラーになるから、それに備えて
AssemblyResolverに無かったらこの場所のこのdll読めと指示しとけばいいだけ。
これも上に書いた通り。
実行の基点となるexeとは別の場所にdllが配置されてるとかもあるからなぁ。
まあ質問者が何やりたいかは明確にしていないからなんとも。
dllを遅延ロードしたいだけなら、上にあるように
普通に参照で組んで、実行時にdll無いと必要になるステップに
到達したらエラーになるから、それに備えて
AssemblyResolverに無かったらこの場所のこのdll読めと指示しとけばいいだけ。
これも上に書いた通り。
40デフォルトの名無しさん (ワッチョイ 96bb-ci8K)
2022/09/26(月) 15:46:38.31ID:T6INyDl80 MAUI君とマウントじじいはID変わってもすぐ分かるな
41デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/26(月) 17:18:58.59ID:6iA7KcBP0 いつも論破されて悔しそうなやついて草
42デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/26(月) 17:21:26.07ID:6iA7KcBP043デフォルトの名無しさん (オイコラミネオ MM8f-tX/F)
2022/09/26(月) 20:11:02.71ID:4GKr4tPoM プラグインスタイルにする場合は開発スタート時点から外部に公開する用のinterfaceを
別プロジェクトにする必要があるからお勧めしない
アプリプロジェクト
公開用コモンプロジェクト
プラグインプロジェクト
こういうのを含んだ感じになる
c++はこういうのが柔軟でやりやすい
C#はあまりプラグイン開発に向いていない
別プロジェクトにする必要があるからお勧めしない
アプリプロジェクト
公開用コモンプロジェクト
プラグインプロジェクト
こういうのを含んだ感じになる
c++はこういうのが柔軟でやりやすい
C#はあまりプラグイン開発に向いていない
44デフォルトの名無しさん (ブーイモ MMde-UZRN)
2022/09/26(月) 20:15:47.43ID:w7MQedDGM んなことはない
C#であまりプラグイン的な機構が使用されないのは、C++に比べて広く一般的に使用されるアプリケーションが少ないのと、
ビルドが簡単高速なために全部リビルドしたほうが早いからだよ
C#であまりプラグイン的な機構が使用されないのは、C++に比べて広く一般的に使用されるアプリケーションが少ないのと、
ビルドが簡単高速なために全部リビルドしたほうが早いからだよ
45デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/26(月) 20:16:31.39ID:6iA7KcBP0 あら捜しの結果、たかだか一つ数分で作れるプロジェクト分割することを欠点と言い始めたかー
46デフォルトの名無しさん (オイコラミネオ MM8f-tX/F)
2022/09/26(月) 20:17:49.62ID:4GKr4tPoM 全くclassなどを受け渡ししない場合を除いて通常は
アプリプロジェクト
公開用コモンプロジェクト
というソリューションで開発してプラグインは
公開用コモンプロジェクト
プラグイン個別プロジェクト
で開発
公開用コモンプロジェクトが分厚くならないようにinterface中心にする
アプリプロジェクト
公開用コモンプロジェクト
というソリューションで開発してプラグインは
公開用コモンプロジェクト
プラグイン個別プロジェクト
で開発
公開用コモンプロジェクトが分厚くならないようにinterface中心にする
47デフォルトの名無しさん (オイコラミネオ MM8f-tX/F)
2022/09/26(月) 20:19:44.63ID:4GKr4tPoM 粗さがし?
普通に作ると分かることだが…
c,c++はゴミみたいな存在だがプラグイン作る時は.hやhpp配るだけでやりやすいことが多い
普通に作ると分かることだが…
c,c++はゴミみたいな存在だがプラグイン作る時は.hやhpp配るだけでやりやすいことが多い
48デフォルトの名無しさん (オイコラミネオ MM8f-tX/F)
2022/09/26(月) 20:21:25.82ID:4GKr4tPoM 重量級アプリ作っててプラグインの仕組みを導入したくなった場合
かなり面倒
dynamicにするのは無し
かなり面倒
dynamicにするのは無し
49デフォルトの名無しさん (ワッチョイ 7f41-o7ft)
2022/09/26(月) 20:57:57.39ID:vjnVDv0A0 classの受け渡しなんて言ってる時点でもう...
50デフォルトの名無しさん (オイコラミネオ MM8f-tX/F)
2022/09/26(月) 21:43:04.31ID:4GKr4tPoM じゃあ現実的なラインで話せよ
俺が書いた以外で実践的なプラグインを合理的に作る方法をさ
レベル低いのにしゃしゃって来るんじゃない
俺が書いた以外で実践的なプラグインを合理的に作る方法をさ
レベル低いのにしゃしゃって来るんじゃない
51デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/26(月) 21:58:39.65ID:6iA7KcBP0 20年前の知識でイキるのは恥ずかしいぞw
52デフォルトの名無しさん (オイコラミネオ MM8f-tX/F)
2022/09/26(月) 22:09:28.79ID:4GKr4tPoM53デフォルトの名無しさん (ワッチョイ 16b0-r4yT)
2022/09/26(月) 22:43:33.82ID:n/I9g/yq054デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/26(月) 23:44:58.22ID:6iA7KcBP055デフォルトの名無しさん (ワッチョイ 16b0-8V4y)
2022/09/27(火) 08:07:21.08ID:/UUTRmF20 プラグインはプラグインのインターフェースに合わせて実装するんであって
既にあるdllを単に動的バインディングするのとは別物だな。
既にあるdllを単に動的バインディングするのとは別物だな。
56デフォルトの名無しさん (ワッチョイ 7f79-nd6Q)
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を作って値を入れて貰ってまますが、他に良い手段があったら教えてください。
powershellの機能が必要な時はC#側からpowershellのスクリプトブロックをFunc<>やAction<>でコールッバックとして呼び出す形にしています。
このときに、Func<>やAction<>の引数にrefを指定して、bool値とかをpowershell側から設定して返してもらうようしたかったのですが、
Func<>やAction<>の引数にrefは指定できないようでした。
代替として、PSObjectにNotePropertyを作って値を入れて貰ってまますが、他に良い手段があったら教えてください。
57デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/27(火) 09:32:49.82ID:LsBo1VKG0 >>55
参照しろよw
参照しろよw
58デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/27(火) 09:34:23.58ID:LsBo1VKG059デフォルトの名無しさん (ワッチョイ 1201-bOZY)
2022/09/27(火) 10:31:21.25ID:rJ/evy9A0 WPFとかにおけるPrismってそんなにいいの?
60デフォルトの名無しさん (ワッチョイ 7f79-nd6Q)
2022/09/27(火) 10:48:09.96ID:SwtBqNyR061デフォルトの名無しさん (ワッチョイ c707-mISd)
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>)もっといい方法が無いか探してるところだろうな
できるぞ
https://ufcpp.net/blog/2022/2/ref-generic-arguments/
Funcとかは自動生成とは言え引数の数だけ実際に宣言してる
ここにrefやoutを入れるとその組み合わせは膨大な数になるから(例えば引数2つだけでもFunc<T1,T2>, Func<ref T1,T2>, Func<ref T1,ref T2>, Func<T1,ref T2>,Func<out T1,T2>, Func<T1,out T2>, Func<out T1,out T2>, Func<ref T1,out T2>, Func<out T1,ref T2>)もっといい方法が無いか探してるところだろうな
62デフォルトの名無しさん (ワッチョイ 7f79-nd6Q)
2022/09/27(火) 12:50:24.07ID:SwtBqNyR063デフォルトの名無しさん (ワッチョイ 7f79-nd6Q)
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; })
下記のPSParamのclassをstructに変更するとpowershell側ではうまく書き換わってるように見えても、呼び出し側のC#に戻るとbState1はTrueのままとなる。
バグなのかなあ。
Add-Type @"
using System;
public class Helper {
public class PSParam {
public bool bState1;
public bool bState2;
};
public delegate void refAction1(ref PSParam p);
public static void CallbackTest(refAction1 proc) {
var p = new PSParam();
p.bState1 = true;
p.bState2 = true;
Console.WriteLine("bState1:{0}", p.bState1);
proc(ref p);
Console.WriteLine("bState1:{0}", p.bState1);
}
}
"@
[Helper]::CallbackTest2({param([ref]$p); $p.Value.bState1 | Out-Host; $p.Value.bState1 = $false; $p.Value.bState1 |Out-Host; })
64デフォルトの名無しさん (ワッチョイ 7f79-nd6Q)
2022/09/27(火) 15:56:16.12ID:SwtBqNyR0 上のCallbackTest2はCallbackTestの間違いです
65デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/27(火) 16:15:47.83ID:LsBo1VKG0 バグって言うかスクリプトブロックを渡してるからだろうな
66デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/27(火) 16:20:55.11ID:LsBo1VKG0 ていうか参照渡しじゃなくHashSetを使ってやりとりするんじゃいかんの?
67デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/27(火) 16:23:37.50ID:LsBo1VKG0 HashSetじゃなかった
Hashtableだ
Hashtableだ
68デフォルトの名無しさん (ワッチョイ 162c-i8Eu)
2022/09/27(火) 16:32:12.76ID:cIZHSBt80 structにこだわる意味はなさそうだしそれならrefも必要ないし
そもそもFuncの返値にすればいいんじゃないの的な
そもそもFuncの返値にすればいいんじゃないの的な
69デフォルトの名無しさん (ワッチョイ c707-mISd)
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 })
Add-Type @"
using System;
using System.Collections;
public class Helper {
public static void CallbackTest(Action<Hashtable> proc) {
var p = new Hashtable();
p["bState1"] = true;
p["bState2"] = true;
Console.WriteLine($"bState1:{p["bState1"]}, bState2:{p["bState2"]}");
proc(p);
Console.WriteLine($"bState1:{p["bState1"]}, bState2:{p["bState2"]}");
}
}
"@
[Helper]::CallbackTest({param($p);$p.bState1 | Out-Host;
$p.bState1 = $false;
$p.bState1 | Out-Host })
70デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/27(火) 16:41:08.41ID:J8MleXan071デフォルトの名無しさん (ワッチョイ c707-mISd)
2022/09/27(火) 16:45:59.80ID:LsBo1VKG0 >>59
Prismは大袈裟すぎるがMVVMを使うなら何か一つフレームワークは必須
CommunityToolkit.Mvvmいいぞ
必要な機能は揃ってるのにシンプルで学習コストが低く軽い
これで慣れてからPrismに移ってもいいし仕事じゃなきゃ移らなくても何も問題ない
Prismは大袈裟すぎるがMVVMを使うなら何か一つフレームワークは必須
CommunityToolkit.Mvvmいいぞ
必要な機能は揃ってるのにシンプルで学習コストが低く軽い
これで慣れてからPrismに移ってもいいし仕事じゃなきゃ移らなくても何も問題ない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化 過去10年間に使用のメールアドレスや電話番号等も [Hitzeschleier★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★2 [七波羅探題★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★3 [Hitzeschleier★]
- 【速報】年収の壁の自民案判明、26年は168万円 [蚤の市★]
- 「ワールドトリガー」原作1話から完全新作アニメ化、よりパワーアップした1stシーズンとして [爆笑ゴリラ★]
- もしがく:三谷幸喜×菅田将暉の青春群像劇 2週ぶり第10話視聴率3.2% 「さらば八分坂」次週最終回 [ひかり★]
- 【速報】統一教会から100万円の現金を受け取った疑いで現職大臣が辞職へ [709039863]
- 「ミニトマトがボウルに入ってるから使ったら残りはラップして輪ゴムしといてー」👉アスペ系旦那、とんでもない行動に出てしまう [242521385]
- お昼のまったり🍵😶‍🌫🤏すこすこハウス🏡
- 自閉症児の父親「中絶しておけば良かった。 家族が欲しかったのに、手に入れたのは人間たまごっち」 [777114754]
- 【高市悲報】維新、複数人が国保逃れの脱法行為にバチーン!と関与か😰せやかて外国人ガー! [359965264]
- ネトウヨ「中国ロシアとの戦争?日本にはアメリカがついてるので100%勝ちますよ」 [165981677]
