ふらっと C#,C♯,C#(初心者用) Part156at TECH
ふらっと C#,C♯,C#(初心者用) Part156 - 暇つぶし2ch1:デフォルトの名無しさん
22/09/18 14:39:29.51 VjUDO6tf0.net
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part155
スレリンク(tech板)
■関連スレ
C#, C♯, C#相談室 Part96
スレリンク(tech板)
■コードを貼る場合は↓を使いましょう。
URLリンク(ideone.com)
URLリンク(dotnetfiddle.net)
■情報源
URLリンク(docs.microsoft.com)
URLリンク(docs.microsoft.com)
URLリンク(docs.microsoft.com)
URLリンク(referencesource.microsoft.com)
URLリンク(source.dot.net)
・Insider.NET > .NET TIPS - @IT
URLリンク(www.atmarkit.co.jp)
・DOBON.NET .NET Tips
URLリンク(dobon.net)
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

2:デフォルトの名無しさん
22/09/18 14:39:44.87 VjUDO6tf0.net
新しく立てましたがあってますかね?

3:デフォルトの名無しさん
22/09/18 15:29:46.75 wEL99hbX0.net
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!
ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!ちんぽ!

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

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

6:デフォルトの名無しさん
22/09/18 16:35:43.35 VjUDO6tf0.net
立て直したほうがいいのかな?

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

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

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

10:デフォルトの名無しさん
22/09/18 16:43:34.75 VjUDO6tf0.net
なるほどサンクス

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

12:デフォルトの名無しさん
22/09/18 17:39:41.49 eBtB+6XZ0.net
>>3
ちんぽ!まで読んだ

13:デフォルトの名無しさん
22/09/18 17:43:02.64 a87PubfG0.net
読んだんだ(笑

14:デフォルトの名無しさん
22/09/18 17:44:39.84 eAqQvdrB0.net
ReDosにもならない

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

16:デフォルトの名無しさん
22/09/19 15:30:11.92 t+9kOvGj0.net
ポチッとな

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

18:デフォルトの名無しさん
22/09/21 21:35:43.28 sPGT0eCrM.net
hosyu

19:デフォルトの名無しさん
22/09/23 08:57:53.80 0O/Obm8IM.net
hosyu

20:デフォルトの名無しさん
22/09/23 14:31:23.00 2Q5DEdnDM.net
皆様に人脈の加護がありますように❤

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

22:デフォルトの名無しさん
22/09/25 00:59:16.75 Y7mttA55M.net
XAudio2

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

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

25:デフォルトの名無しさん
22/09/25 02:02:08.15 DIWRYevd0.net
>>22
調べてみます

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

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

28:デフォルトの名無しさん
22/09/25 02:29:37.09 BeOzTuvS0.net
邪推はやめてくれよブラザー

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

30:デフォルトの名無しさん
22/09/25 05:05:25.63 QuKarKAJ0.net
>>29
可能です

31:デフォルトの名無しさん
22/09/25 07:24:05.34 PDKGWlWe0.net
そりゃ元々 Dynamic = 動的 だからできないわけない
てか C# dll 動的ロード とかでググろうと思わないのか?
URLリンク(qiita.com)

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

33:デフォルトの名無しさん
22/09/25 07:46:43.94 ZSqiS99C0.net
dll実装が先に存在してるなら、参照で先に作っておいて、
実行時にこけたらAssembly.LoadFileとかするのが普通かな。
dll実装が不定ならAssembly.LoadFileで読んで、dynamicで動かすことになるが
結構不安要素でかい。
Reflection使ってメソッドの実装のありようの確からしさは実行中に確認する必要がある。
interfaceなりでちゃんとdll側を縛ってあるのがいちばんいいけどね。

34:デフォルトの名無しさん
22/09/25 18:52:10.05 YHbagUeLa.net
どこの普通なんだか

35:デフォルトの名無しさん (アウアウウー Sa43-mISd)
[ここ壊れてます] .net
dllの動的ロードしたいならMEF使え
URLリンク(learn.microsoft.com)

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

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

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

39:デフォルトの名無しさん
22/09/26 15:03:37.01 4jeN/07Z0.net
開発時は参照では組むが、実際の実行環境では
実行の基点となるexeとは別の場所にdllが配置されてるとかもあるからなぁ。
まあ質問者が何やりたいかは明確にしていないからなんとも。
dllを遅延ロードしたいだけなら、上にあるように
普通に参照で組んで、実行時にdll無いと必要になるステップに
到達したらエラーになるから、それに備えて
AssemblyResolverに無かったらこの場所のこのdll読めと指示しとけばいいだけ。
これも上に書いた通り。

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

41:デフォルトの名無しさん
22/09/26 17:18:58.59 6iA7KcBP0.net
いつも論破されて悔しそうなやついて草

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

43:デフォルトの名無しさん
22/09/26 20:11:02.71 4GKr4tPoM.net
プラグインスタイルにする場合は開発スタート時点から外部に公開する用のinterfaceを
別プロジェクトにする必要があるからお勧めしない
アプリプロジェクト
公開用コモンプロジェクト
プラグインプロジェクト
こういうのを含んだ感じになる
c++はこういうのが柔軟でやりやすい
C#はあまりプラグイン開発に向いていない

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

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

46:デフォルトの名無しさん
22/09/26 20:17:49.62 4GKr4tPoM.net
全くclassなどを受け渡ししない場合を除いて通常は
アプリプロジェクト
公開用コモンプロジェクト
というソリューションで開発してプラグインは
公開用コモンプロジェクト
プラグイン個別プロジェクト
で開発

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

47:デフォルトの名無しさん
22/09/26 20:19:44.63 4GKr4tPoM.net
粗さがし?
普通に作ると分かることだが…
c,c++はゴミみたいな存在だがプラグイン作る時は.hやhpp配るだけでやりやすいことが多い

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

49:デフォルトの名無しさん
22/09/26 20:57:57.39 vjnVDv0A0.net
classの受け渡しなんて言ってる時点でもう...

50:デフォルトの名無しさん
22/09/26 21:43:04.31 4GKr4tPoM.net
じゃあ現実的なラインで話せよ
俺が書いた以外で実践的なプラグインを合理的に作る方法をさ
レベル低いのにしゃしゃって来るんじゃない

51:デフォルトの名無しさん
22/09/26 21:58:39.65 6iA7KcBP0.net
20年前の知識でイキるのは恥ずかしいぞw

52:デフォルトの名無しさん
22/09/26 22:09:28.79 4GKr4tPoM.net
>>51
話が見えてないんだな
お前がここで一番の馬鹿だ
これは間違いない
対案も出せない
しかもお前はジジイだな
筋が悪いと言うワードセンス
20年前のDLLの話をしてるし

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

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

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

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

57:デフォルトの名無しさん
22/09/27 09:32:49.82 LsBo1VKG0.net
>>55
参照しろよw

58:デフォルトの名無しさん
22/09/27 09:34:23.58 LsBo1VKG0.net
>>56
自分でデリゲート型を作ればいんじゃね
知らんけど

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

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

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

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

63:デフォルトの名無しさん
22/09/27 15:54:24.92 SwtBqNyR0.net
どうやらstructを含む値型を参照渡ししても呼び出され側のpowershellでは書き換えられないらしい。
下記のPSParamのclassをstructに変更するとpowershell側ではうまく書き換わってるように見えても、呼び出し側のC#に戻るとbState1はTrueのままとなる。
バグなのかなあ。
Add-Type @"
using System;
public class Helper {
public class PSParam {
public bool bState1;
public bool bState2;
};
public delegate void refAction1(ref PSParam p);
public static void CallbackTest(refAction1 proc) {
var p = new PSParam();
p.bState1 = true;
p.bState2 = true;
Console.WriteLine("bState1:{0}", p.bState1);
proc(ref p);
Console.WriteLine("bState1:{0}", p.bState1);
}
}
"@
[Helper]::CallbackTest2({param([ref]$p); $p.Value.bState1 | Out-Host; $p.Value.bState1 = $false; $p.Value.bState1 |Out-Host; })

64:デフォルトの名無しさん
22/09/27 15:56:16.12 SwtBqNyR0.net
上のCallbackTest2はCallbackTestの間違いです

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

66:デフォルトの名無しさん
22/09/27 16:20:55.11 LsBo1VKG0.net
ていうか参照渡しじゃなくHashSetを使ってやりとりするんじゃいかんの?

67:デフォルトの名無しさん
22/09/27 16:23:37.50 LsBo1VKG0.net
HashSetじゃなかった
Hashtableだ

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

69:デフォルトの名無しさん
22/09/27 16:37:17.49 LsBo1VKG0.net
Hashtableを使う場合
Add-Type @"
using System;
using System.Collections;
public class Helper {
public static void CallbackTest(Action<Hashtable> proc) {
var p = new Hashtable();
p["bState1"] = true;
p["bState2"] = true;
Console.WriteLine($"bState1:{p["bState1"]}, bState2:{p["bState2"]}");
proc(p);
Console.WriteLine($"bState1:{p["bState1"]}, bState2:{p["bState2"]}");
}
}
"@
[Helper]::CallbackTest({param($p);$p.bState1 | Out-Host;
$p.bState1 = $false;
$p.bState1 | Out-Host })

70:デフォルトの名無しさん
22/09/27 16:41:08.41 J8MleXan0.net
>>63
普通に
bState1: True
True
False
bState1: False
ってなるけど?
$PSVersionTable.PSVersion: 5.1.19041.1682

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

72:デフォルトの名無しさん
22/09/27 16:51:36.15 cIZHSBt80.net
>>70
class PSParamをstruct PSParamに変えても?

73:デフォルトの名無しさん
22/09/27 16:53:51.16 rJ/evy9A0.net
>>71
ふむふむなるほど…

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

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

76:デフォルトの名無しさん
22/09/27 17:04:20.64 LsBo1VKG0.net
>>74
そんなんでパフォーマンス上がらんぞ
PowerShell使ってる時点で無意味だし計測しても誤差が大きすぎて差は出ない
スクリプトブロックをデリゲートに


77:入れるための代理関数とか中で作られてるからな



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

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

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

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

80:デフォルトの名無しさん
22/09/27 20:39:58.78 wQgw+D+40.net
VS2019で.NET 4.5 + NugetでValueTuple入れて作ったプロジェクトを
VS2012で読もうとしたらValueTuple扱えなかった・・
VS2012も.NET 4.5は大丈夫だけど、ValueTupleだとC#のバージョンが問題になるのかな?

81:デフォルトの名無しさん
22/09/27 21:45:06.74 LsBo1VKG0.net
URLリンク(qiita.com)
この手のめんどくさいトラブル抱える可能性残すくらいなら4.8使うかValueTuppleあきらめろよ

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

83:デフォルトの名無しさん
22/09/28 08:31:43.95 qrxLeK0JF.net
読んでビルドするだけならVSCode使うほうがよさそうかな

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

85:デフォルトの名無しさん
22/09/28 08:38:04.69 ZrAf2Mbg0.net
学習→GUI

86:デフォルトの名無しさん
22/09/28 09:06:32.72 FDPwu/KN0.net
そこでQtですよ(嘘)

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

88:デフォルトの名無しさん
22/09/28 12:46:58.02 GXLv430Ua.net
>>86
かつてのDelphiやVB6の役割が今のWinforms
これ以上簡単なモノは出ないだろ

89:デフォルトの名無しさん
22/09/29 10:40:58.78 yzYmCLI10.net
オブジェクト指向で
クラス=ニュークラス
変数A=クラス.メソッド(引数)
で他のクラスでメソッドで作った変数Bを変数Aに代入したいとき
returnで返すのが一般的なんかな?
俺他のクラスでプロパティ作ってメソッド内で作った変数Bをプロパティに入れて
クラス=ニュークラス
クラス.メソッド(引数)
変数A=クラス.プロパティ
にしてるんだけど異端か?
なんか遅くなるとかの弊害ある?

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

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

92:デフォルトの名無しさん
22/09/29 11:27:28.88 yzYmCLI10.net
ふむふむケースバイケースなのかな?

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

94:デフォルトの名無しさん
22/09/29 17:05:48.88 yzYmCLI10.net
>>92
なるほどありがとうございます

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

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

97:デフォルトの名無しさん
22/10/01 09:34:14.17 EDStmk6M0.net
>>95
そうですよね
WebBrowserにはWebBrowser.ShowSaveAsDialog メソッドがあったのですが・・・

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

99:デフォルトの名無しさん
22/10/01 10:43:04.40 EDStmk6M0.net
>>315
予想で来ていたなら大儲けしたんだろ
ついでにそのスクショもうぷ

100:デフォルトの名無しさん
22/10/01 10:47:28.56 HrxhgRpA0.net
>>98
おまえの予想のほうがスゲェ!w

101:デフォルトの名無しさん
22/10/01 10:52:54.13 EDStmk6M0.net
誤爆w
webvew2コントロール上で右クリックすると「名前を付けて保存」が出るようなので
そこを自動でやるだけなですがいい方法ないですかね?

102:デフォルトの名無しさん
22/10/01 11:36:18.78 CdyuxRrm0.net
そのページのHTMLをHTML方式で保存すればいいだけなのでは?

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

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

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

106:デフォルトの名無しさん
22/10/02 01:20:34.77 jE287c4+0.net
ソリューションエクスプローラーに配置したJsonファイルをデシリアライズしてObservableCollectionに入れたいのですがどうすれば良いでしょうか?
using var stream = await FileSystem.OpenAppPackageFileAsync("monkeydata.json");
using var reader = new StreamReader(stream);
var contents = await reader.ReadToEndAsync();
monkeyList = JsonSerializer.Deserialize<List<Monkey>>(contents);
↑これを参考にやってみたのですがファイルが見つからないとか言われてしまいます

107:デフォルトの名無しさん
22/10/02 01:21:00.49 jE287c4+0.net
参考にしてるサイトはこれです…
URLリンク(github.com)

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

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

110:デフォルトの名無しさん
22/10/02 02:02:35.93 kEuGN+uq0.net
ビルドアクション設定してないだけだろ

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

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

113:デフォルトの名無しさん
22/10/02 08:28:15.79 oLIGWTx6a.net
参考という名のコピペ
考える材料を参考というのであって脳死で真似るのは参考にしたとは言わん
なぜOpenAppPackageFileAsyncを調べないのか
URLリンク(learn.microsoft.com)
こんなややこしいものより普通に埋め込みリソースにして次のメソッド使った方がいい
URLリンク(learn.microsoft.com)

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

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

116:デフォルトの名無しさん
22/10/03 21:32:38.29 tDVewfT+0.net
よくわからんがViewModelの話をしてるのか?

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

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

119:デフォルトの名無しさん
22/10/03 22:52:42.56 5XdXjLTq0.net
doubleにTryParseした値を別な変数に入れたいけど、もっと素直な書き方ないかな?
var value = double.TryParse(str, out dbl) ? dbl : dbl;

120:デフォルトの名無しさん
22/10/03 22:56:32.76 tDVewfT+0.net
>>118
なんだその無意味な三項演算子

121:デフォルトの名無しさん
22/10/03 22:57:43.85 tDVewfT+0.net
>>117
型引数なのか要素なのかモデルなのか何のことを言ってるのかわからん

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

123:デフォルトの名無しさん
22/10/03 23:31:02.94 SA/xrkif0.net
>>121
何で決定するの?それ
何か見て決めるんでしょ?
それを画面に出せよ

124:デフォルトの名無しさん
22/10/04 00:32:43.24 7S0AjRuD0.net
立ち食いそば屋の券売機みたいにボタン並べればいいじゃん

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

126:デフォルトの名無しさん
22/10/04 06:46:15.22 Ls9e4TwG0.net
>>124
失敗したときの戻り値どうすんの?

127:デフォルトの名無しさん
22/10/04 06:46:54.63 Ls9e4TwG0.net
>>121
別画面

128:デフォルトの名無しさん
22/10/04 06:56:27.63 XU+NToANM.net
double.TryParse(str, out var value)

129:デフォルトの名無しさん
22/10/04 07:10:40.44 qbIePR+RM.net
>>124
メソッドにしろよなんでもできるぞ

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

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

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

133:デフォルトの名無しさん
22/10/04 11:59:18.04 36QRloIgM.net
>>121
Google翻訳の言語選択画面とか
StackOverflowやEvernoteのタグ選択画面とか
有名どころで類似画面を見つけてそれを参考にするといい
選択肢の数だけじゃなく選択させたいデータの特徴とユースケースによって適切なUIは変わってくる

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

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

136:デフォルトの名無しさん
22/10/04 12:34:32.55 Ls9e4TwG0.net
>>133
それコンボボックスと何が違うんだ

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

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

139:デフォルトの名無しさん
22/10/04 12:39:40.83 Ls9e4TwG0.net
>>136
選択するのは数値と文字列って書いてるが

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

141:デフォルトの名無しさん
22/10/04 12:41:35.19 Pbtsxb5E0.net
>>138
UIとかこだわるならListViewかなぁ

142:デフォルトの名無しさん
22/10/04 23:58:06.92 b8uw2VbJ0.net
>>125 >>130
iniファイルからの読み込みなので失敗もありえて、その場合は0.0が期待値ですね
TryPaerse失敗でout�


143:フ方は0.0になるので、単純にoutの値が欲しいだけなんです ラムダでもうまく書けないので、>>128の言うようにメソッドにするしかないですかね



144:デフォルトの名無しさん
22/10/05 00:01:10.13 KHa19VaR0.net
>>141
double.TryParse(str,out double value) ? value : 0

145:デフォルトの名無しさん
22/10/05 03:41:09.33 ILrwmDD80.net
値が本当に0.0だったときに腹を切る用意はできてんだろうな?

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

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

148:デフォルトの名無しさん
22/10/05 22:42:08.40 UUeH3vvk0.net
Convert.ToDouble...ボソッ

149:デフォルトの名無しさん
22/10/05 22:43:51.91 UUeH3vvk0.net
あ、失敗したとき考えたら同じだった…

150:デフォルトの名無しさん
22/10/06 18:05:18.67 l5eCu49d0.net
c#でコードをすっきり書く方法について
unityです
以下のようなメインルーチンと自作関数がありますが、自作関数が多くなると間延びして見づらくなります
こうズラズラと書いていっていいものでしょうか?
void update()
{
//この中に記載したものが1フレームごとに実行される
}
void zisaku_kansu1()
{}
void zisaku_kansu2()
{}
void zisaku_kansu3()
{}

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

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

153:デフォルトの名無しさん
22/10/06 18:39:38.40 okBm6j3n0.net
無いよ
数じゃない
せっかく単一責任原則ってキーワード出てるんだから調べてみたら?

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

155:デフォルトの名無しさん
22/10/06 21:08:47.37 g4tnGNpoM.net
もう問題でてるやん

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

157:デフォルトの名無しさん
22/10/06 22:44:56.92 eGnFz/dY0.net
ほとんど変わらんけど
x.HasValue ? x.Value ? 2 : 1 : 0;

158:デフォルトの名無しさん
22/10/06 23:20:02.95 KOHZa6QXM.net
見やすさを優先したいなら複数行で
return x swicth
{
 true => 2,
 false => 1,
_ => 0,
};
と書きたいなあ
1行で
return x swicth { true => 2, false => 1, _ => 0 };
と書いてもたぶん大丈夫だとは思うけど

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

160:デフォルトの名無しさん
22/10/06 23:51:14.28 E7iO37Ge0.net
>>155
かっこつけてないじゃん
x.HasValue ? (x.Value ? 2 : 1) : 0;

161:デフォルトの名無しさん
22/10/07 00:30:44.40 5dN4BPEk0.net
>>158
かっこが無くてもちゃんと動くよ
あった方が分かりやすくて良いけど

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

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

164:デフォルトの名無しさん
22/10/07 03:43:01.87 Y3


165:Bhrpk2d.net



166:デフォルトの名無しさん
22/10/07 07:30:32.84 DG0Qp9kf0.net
switch式って.NET Frameworkだと(というかC# 7.3までだと)使えないんだね
.NET FrameworkでC# 8.0以上に上げるのは推奨されないって見てビビった

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

168:デフォルトの名無しさん
22/10/07 11:14:52.33 vnTjz+tv0.net
まあ今出てる中ならどれでもいいわ
少し見にくいとしても読めないレベルじゃないから

169:デフォルトの名無しさん
22/10/07 11:22:49.33 HMB85mTQ0.net
忍者コードへの道

170:デフォルトの名無しさん
22/10/07 12:22:10.54 dcU7dbGf0.net
>>159
ギャグなんだけど…(´・ω・`)

171:デフォルトの名無しさん
22/10/07 12:47:07.95 d4ub3t4La.net
>>162
ほんそれ

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

173:デフォルトの名無しさん
22/10/07 20:37:29.02 UqkGeV530.net
>>167
笑いどころがわからんわ

174:デフォルトの名無しさん
22/10/07 20:50:21.74 WZglSwpR0.net
>>170
よし。俺が解説してやろう
かっこいいコードがほしい
かっこがない→かっこつけた→格好つけた→格好いい
>>167 可哀想w

175:デフォルトの名無しさん
22/10/07 20:56:43.70 5dN4BPEk0.net
>>167
なんかゴメン

176:デフォルトの名無しさん
22/10/07 21:09:28.95 UqkGeV530.net
>>171
せめてカッコつけてないじゃん
って書いてほしいわ...

177:デフォルトの名無しさん
22/10/07 22:02:05.67 /3WJyx6k0.net
どんまい、来世はいいことあるさ

178:デフォルトの名無しさん
22/10/07 23:17:09.48 US/4zJfp0.net
>>167
強く生きて

179:デフォルトの名無しさん
22/10/08 08:16:32.93 jIH0D5Hw0.net
オブジェクト内でバイナリファイルの内容を扱うとしたら、バイト型配列がよいでしょうか。ファイルストリームで吸い出してオブジェクト内で扱うつもりです。
テキストファイルでは、ストリング型か、ストリング型配列か、それともバイト型配列がよいでしょうか。処理のしやすさを考えるとストリング型に一気に吸い出すのが良いかなと思います。

180:デフォルトの名無しさん
22/10/08 08:22:48.18 dLvXgc/K0.net
データをバイト配列で扱うのが都合が良ければバイト配列にするしそうでなければ型を作る

181:デフォルトの名無しさん
22/10/08 11:01:05.54 VFNuoQ0s0.net
C#の正規表現が難しい・・・
文字列が特定パターンに一致したら、その一部をキャプチャして後方参照したいんだけど、やり方がわからん
具体的には下の感じで最初の数値群と2番目の数値群を取り出したい
Perlだとこのパターンマッチング後に$1と$2で取り出せるけど
if (Regex.IsMatch(str, @"^FIRST(\d+)_SECOND(\d+)$"))

182:デフォルトの名無しさん
22/10/08 11:34:32.95 pVnemZy6a.net
IsMatchは結果を捨ててるぞ
Matchを使え

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

184:デフォルトの名無しさん
22/10/08 11:54:28.61 gSJ


185:NfJVIM.net



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

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

188:.NET M HighSchool
22/10/08 15:43:59.89 7fZ89p9v0.net
thisは高確率で色薄くなるな

189:デフォルトの名無しさん
22/10/08 15:49:28.50 DAxJe8BN0.net
this 必須のケースって引数と名前被ってる場合以外にあるっけ?

190:デフォルトの名無しさん
22/10/08 15:53:41.70 znbc6QnV0.net
this.でわずかに候補が絞れるというメリットはあるがそのためにソース汚すのもな

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

192:デフォルトの名無しさん
22/10/08 16:14:22.95 dLvXgc/K0.net
逆に全部this書いてるのを見ると素人だからわからないんだなと感じる

193:デフォルトの名無しさん
22/10/08 16:15:59.85 8jUGKNkJ0.net
それどういう理屈だw

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

195:デフォルトの名無しさん
22/10/08 17:07:26.31 P5VjfrSW0.net
>>183
色濃いっす
書いときます

196:デフォルトの名無しさん
22/10/08 17:22:37.77 XyWhvWPC0.net
可読性を考えるとthisを付けたほうがいい

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

198:デフォルトの名無しさん
22/10/08 19:23:01.64 5cV3My9p0.net
>>192
this.で汚染されて逆に見辛くなるんだけど

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

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

201:デフォルトの名無しさん
22/10/08 23:19:17.46 jIH0D5Hw0.net
>>177
>>180
ありがとうございました。
ファイルストリームと、バイト配列の使い分けを、
教えてもらったことで意識したいと思います。

202:デフォルトの名無しさん
22/10/08 23:20:51.72 /uBMkTfW0.net
まぁ、俺にとって見やすい·わかりやすいってのはvsの色分けの効果が大きいとは思うけど

203:デフォルトの名無しさん
22/10/09 04:43:45.49 hmHZpMGaa.net
色々なコード読むとthisなんてわざわざ書いてないよね

204:デフォルトの名無しさん
22/10/09 04:45:35.54 qX71Swpm0.net
世の中にはthisを書かないと読みきれないクソソースを書くやつがいるってことだな

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

206:デフォルトの名無しさん
22/10/10 22:41:58.46 TjSk03hV0.net
DataReceivedイベントを使わなければ良いんじゃね?

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

208:デフォルトの名無しさん
22/10/10 23:06:15.87 sJsMwDUU0.net
>>201
とりあえずReadBufferSizeをでかくしとけばいいんじゃね?

209:デフォルトの名無しさん
22/10/11 05:26:30.82 0V0rCIqgM.net
>>202
タイマー使ってポーリングですかね
>>203
kernel32.dllインポートでやってみます
>>204
試してみたんですけど、16384から上は実動作に反映されないみたいです

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

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

212:デフォルトの名無しさん
22/10/11 10:20:29.33 w5Aa3OJKM.net
USBはシリアルと言いながら実際パケットを送ってるからタイミングが微妙なんだよな
その都度無駄なやり取りが発生して即応性もなくなるし複数の送受信がまとめられてたり
デバイスずっと常にデータを送り続けてる状況を作るとか言う手法があるけど
C#向きではないかなと

213:デフォルトの名無しさん
22/10/11 10:41:42.41 w5Aa3OJKM.net
USBデバイスにボタンみたいのがあって
押すと1離すと0送るとして
1,0,1,0,1,0
みたいにデバイスのユーザープログラム層が送っても
プロトコル層では間の,で
いまデータ受信中かな、送信回線空いてるかなとかデータを送りますよと言う確認など常に処理がある

タイミング次第では 10101,とまとめて送ったほうがいいなと判断されたり送信待ちしてたら平気でまとめて送ってくる
(当然ながらパケットより短い間隔で次を送ろうとしても不可能だし)
それで即応性が皆無になる
それを回避するにはストリーミングで常に状況を送り続けるかポーリングなどが有効だけど
他のUSBの帯域を圧迫してマウスの感度が悪くなったりキーボードの取りこぼしなどが起こる(IO処理なのでCPUを早くしても無駄)

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

215:デフォルトの名無しさん
22/10/11 21:09:15.58 qFJbGVDN0.net
>>210
USBシリアルは基本的に垂れ流しするしかないよ
COM側は全二重に見えててもその下�


216:ナ動作してるUSBは半二重のホスト主導のパケット通信だからね フロー制御用として用意されてるXon/Xoffも停止までに送信タイムラグが発生するから 目視できるような低速通信ぐらいしか役に立たないし、停止を許容できるデータなのかも不明だし



217:デフォルトの名無しさん
22/10/11 22:58:59.26 w5Aa3OJKM.net
>>210
されてないのかと言う質問にはされていないという答え
仮想comポートはあくまでも仮想なのでハードウェア的なcomポートを完全再現できはしない
ハブなんか挟むと致命的
高速データ転送してる場合は何らかの手法でうまくやってる

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

219:デフォルトの名無しさん
22/10/12 07:23:04.46 TyHUeGJp0.net
まずメンバー変数を多用すること自体が

220:デフォルトの名無しさん
22/10/12 09:29:45.13 wUZHBRzyp.net
副作用のあるプロパティを作る方が悪い

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

222:デフォルトの名無しさん
22/10/12 09:52:53.77 TyHUeGJp0.net
✕イミュータブル
○ミュータブル

223:デフォルトの名無しさん
22/10/12 09:58:11.07 wUZHBRzyp.net
そんな言葉遊びして楽しいか?

224:デフォルトの名無しさん
22/10/12 10:03:53.44 TyHUeGJp0.net
副作用がわからんと資料に書いてあることがわからなくてかなり困るぞ

225:デフォルトの名無しさん
22/10/12 10:15:07.25 wUZHBRzyp.net
俺が意図してない挙動は全部副作用だぁっ

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

227:デフォルトの名無しさん
22/10/12 11:38:03.47 WbjgIxC2a.net
スクロールバーを別のとこで作ってないか?

228:デフォルトの名無しさん
22/10/12 17:04:14.81 /871xKINM.net
>>201
多重イベントでスレッドプール使い切りとかない?

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

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

231:デフォルトの名無しさん
22/10/14 20:00:26.98 t5o5qpLS0.net
まず言葉の意味を調べたらいんじゃね

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

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

234:デフォルトの名無しさん
22/10/14 20:19:28.83 cI3rl/qY0.net
実際作ってみて何で困っているかとかそういう質問しなきゃ答えて貰えない

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

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

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

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

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

240:デフォルトの名無しさん
22/10/14 23:18:39.42 1T5O+VqE0.net
他は LAPACKかのう

241:デフォルトの名無しさん
22/10/15 00:40:45.53 mRrGj9Y+0.net
数学板行けば?

242:デフォルトの名無しさん
22/10/15 12:59:39.43 jiCek6V8M.net
>>225
pythonやR使ったほうがいいよ
そのレベルで留まらずその先の用途を考えてもpython
どうしても連携したいならコマンドラインでpython実行して結果だけC#で貰うことも出来る
自分は画像認識をその手法を使ってやってる

243:デフォルトの名無しさん
22/10/15 13:10:51.97 jiCek6V8M.net
よく読んだら実数解じゃないのか
高校生のころ多変量解析用に固有値が求めたくてBASICで計算してた
書籍にデータと結果が乗ってて同じグラフを表示したかった
残念ながらその時は実現できなかった
大学生になってCで組んだらあっさり行けたけどもう何も覚えてはいない

244:デフォルトの名無しさん
22/10/15 13:42:59.01 mRrGj9Y+0.net
最近はML.NETってのが出てきたけどね

245:デフォルトの名無しさん
22/10/15 14:19:06.79 FcVUHJvZ0.net
if(count ==1){
Debug.Log("output");
}
{}←C#ではこれの省略というのはできないのでしょうか?
pythonのように出来ると楽なのですが。

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

247:デフォルトの名無しさん
22/10/15 15:23:51.31 3+kTGvln0.net
むしろPythonに{}つけたい

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

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

250:デフォルトの名無しさん
22/10/15 15:45:52.74 2u2iBEwS0.net
>>242
Python のパーサー書き換えて新言語作ればいいじゃん

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

252:デフォルトの名無しさん
22/10/15 17:28:20.76 oepRuRjKM.net
F#使えばいい

253:デフォルトの名無しさん
22/10/15 17:29:58.76 TYEHa44m0.net
インデントでもひとまとまりになるぞ
むしろインデントむちゃくちゃなやつを排除できるから見易いまである

254:デフォルトの名無しさん
22/10/15 17:47:40.19 Ggc2td0l0.net
>>248
そんな事はIDEにやらせりゃいいんだよ

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

256:デフォルトの名無しさん
22/10/15 20:29:18.32 mRrGj9Y+0.net
>>250
いやPythonなんて使わんし…

257:デフォルトの名無しさん
22/10/15 20:39:17.55 2u2iBEwS0.net
>>251
使いもしないのに文句だけ言うとかクレーマーかよw

258:デフォルトの名無しさん
22/10/15 20:43:34.95 71BCtDZc0.net
>>252
Pythonに{}があったほうがいいとは誰も言っていないからもちつけ

259:デフォルトの名無しさん
22/10/15 20:48:05.82 71BCtDZc0.net
あっ>>242がいた
忘れてくれ

260:デフォルトの名無しさん
22/10/15 20:48:33.45 onTnH2DB0.net
あっても使わないから落ち着け

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

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

263:デフォルトの名無しさん
22/10/15 22:21:40.18 Ggc2td0l0.net
インデントの位置で動きが変わる欠損言語だよな

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

265:デフォルトの名無しさん
22/10/15 22:46:19.16 tSskybGM0.net
python には {} なくても通用してるんだから、あっちのユーザーさんには必要なものではないんだろう。
自分は {} あった方がいいからって理由もあって ruby とかもキライなんだが。
まあ好き嫌い言ってても仕方ない。我らは要望に応えるだけだ。

266:デフォルトの名無しさん
22/10/15 22:59:00.35 TYEHa44m0.net
vb「begin endですが何か?」

267:デフォルトの名無しさん
22/10/16 02:11:40.97 IoSf1xr/0.net
>vb
loopだったりnextだったりする箇所は別人が引き継いだのかな

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

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

270:デフォルトの名無しさん
22/10/16 09:52:41.83 3xSHFrvIa.net
>>264
見たことないのはお前が使ったことないからだな
URLリンク(stackoverflow.com)
あと関数なんて無かった
gosubでサブルーチンを実装してたがサブルーチンもメインルーチンの好きなところに好きにgotoできたしそこにブロックの概念はやはり無かった

271:デフォルトの名無しさん
22/10/16 10:21:36.83 zEVEZIxw0.net
>>265
.frm ファイルとかをあげるバカが出てくるかと思ってたらマジで出てきたw
今してるのは言語仕様の話な
あとVBに関数ブロックあるし老害はそろそろ黙っとけ

272:デフォルトの名無しさん
22/10/16 10:23:41.83 9H+50nm50.net
言語仕様だぞw
キーワードに見えんか?w

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

274:デフォルトの名無しさん
22/10/16 11:17:27.02 zEVEZIxw0.net
>>267
残念ながらキーワードに begin なんてないんだなw
URLリンク(learn.microsoft.com)
※ vb6 のドキュメントは見つけられなかったので vba のやつな、似たようなもんだし
>>268
>>262 に loop と書いてあるのにお前が勝手に初期の Basic の話にしてるだけだろ

275:デフォルトの名無しさん
22/10/16 11:24:23.67 1mPDcr2ta.net
なんでVB.NETの話をしてるのにVBAのドキュメント見てるんだ文盲w

276:デフォルトの名無しさん
22/10/16 11:25:30.01 1mPDcr2ta.net
あとなんで初期のキーワードの成り立ちの話をしてるのに一人loopの話をしてるんだ文盲w

277:デフォルトの名無しさん
22/10/16 11:34:12.88 7phLrZXmM.net
>>268
残念ながら文盲は文字自体が読めない人のことだよ
学がなく漢字が読めない
ひらがなが読めない
そういう人
君は文盲が何か理解できてない

278:デフォルトの名無しさん
22/10/16 11:35:46.69 1mPDcr2ta.net
アスペと言えば良かったということか

279:デフォルトの名無しさん
22/10/16 11:35:53.13 9tRg+VNh0.net
>>1 が読めないもん同士なんだからどっちも消えろw

280:デフォルトの名無しさん
22/10/16 11:51:09.98 zEVEZIxw0.net
>>270
バカなのか?
回答に That is VB6 code. って書かれてるだろ
どうせ>265は basic begin あたりで必死にググってきたんだろうけど恥の上塗りにしかなってなくて草
>>271
だから >>262に loop と書いてあるだろ
do loop も知らないのなら黙ってなよw

281:デフォルトの名無しさん
22/10/16 11:52:27.38 1mPDcr2ta.net
>>1が読めないアスペはいつまでもアホなこと言ってないで消えろよw

282:デフォルトの名無しさん
22/10/16 12:24:39.22 zEVEZIxw0.net
>>276
>>265に言ってやれよw

283:デフォルトの名無しさん
22/10/16 12:25:47.33 9H+50nm50.net
全く反省の色が見えないぞアスペ

284:デフォルトの名無しさん
22/10/16 12:47:17.79 zEVEZIxw0.net
キーワードで恥かいて悔しいねw

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

286:デフォルトの名無しさん
22/10/16 13:27:00.75 zEVEZIxw0.net
まだ、VB.NETとか言ってて草
英語も読めないバカ乙

287:デフォルトの名無しさん
22/10/16 13:27:43.86 9H+50nm50.net
まだ恥をさらすんかいw

288:デフォルトの名無しさん
22/10/16 13:53:22.51 zEVEZIxw0.net
キーワードバカ颯爽と再登場!
恥の上塗りのよかーんw

289:デフォルトの名無しさん
22/10/16 13:54:32.92 9H+50nm50.net
悔しいのはわかったからそろそろスレ違いということを理解して出ていけよw

290:デフォルトの名無しさん
22/10/16 14:01:28.80 zEVEZIxw0.net
>>284
>>282 に言ってやれよw

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

292:デフォルトの名無しさん
22/10/16 14:24:54.49 zEVEZIxw0.net
アスペとしか言えない恥曝し乙
そもそもid付いてるのに言葉遣いとか頭沸いてるのかよw

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

294:デフォルトの名無しさん
22/10/16 14:45:38.60 zEVEZIxw0.net
>>288
>>288

295:デフォルトの名無しさん
22/10/16 16:51:17.67 SOkAGPqKd.net
アスペ文盲 vs アスペ老害
初心者C#「ファイッ!」

296:デフォルトの名無しさん
22/10/16 17:36:31.58 smb+KIWw0.net
>>272
文盲は「自分の名前の読み書きができるか」って基準です

297:デフォルトの名無しさん
22/10/17 10:52:48.22 EEvzrdC6M.net
>>291
それは間違った知識だな
識字率が著しく低い人がいわゆる文盲
戦後まもなくアメリカのGHQは敗戦国日本は漢字教育が妨げとなっていると感じ
ひらがなや漢字を廃止しアルファベットを導入しようとした
そのために識字率の調査を行った
その結果漢字の読み書きができないものは2%だけなのでその案は却下された
井上ひさしの書籍では識字率の試験を受けた老婆の話が載っていて読み書きは出来ないが
たまたま自分の名前の漢字が含まれていたので正解ゼロにはならなかったと言う逸話が乗っていた
それが間違って覚えてるんだろう

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

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

300:デフォルトの名無しさん
22/10/17 20:54:25.97 9OAS6xxs0.net
なるほどホリエモンは文盲ってことか

301:デフォルトの名無しさん
22/10/18 00:44:28.00 JpO0eTnpM.net
>>293
そんな独自研究なんて聞いたことないわ

302:デフォルトの名無しさん
22/10/18 02:02:12.75 ngZCuxghM.net
「識字率が低い人」ってもう何もかもダメそうな表現やな……

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

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

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

306:デフォルトの名無しさん
22/10/18 22:17:39.34 HdYtkAV80.net
関数を作ったやつに聞くが良い
上はエラー
floatvalue.ToString(書式);

307:デフォルトの名無しさん
22/10/18 22:30:07.73 joOPF2hi0.net
ヒント
ネームスペース

308:デフォルトの名無しさん
22/10/18 22:30:07.98 cuMhZa5Q0.net
LinqのSelectでサブセットのプロパティを自動展開して平坦化する方法ないでしょうか?
式木とか駆使しまくれば可能でしょうか
class HogeTable
{
  string ID {get;set;}
  string Name {get;set;}
  :
  :
}
=============
var query = from tbl in db.HogeTable
 select new
 {
   Expand(tbl) // <- HogeTableのプロパティを自動展開してほしい
 };
 ↓
var query = from tbl in db.HogeTable
 select new
 {
   tbl.ID
   tbl.Name,
   :
   :
 };

309:デフォルトの名無しさん
22/10/18 22:36:04.52 oAfMFtaG0.net
何がしたいのかわからん
その匿名クラスのオブジェクト作る意味あるか?

310:デフォルトの名無しさん
22/10/18 22:43:04.96 cuMhZa5Q0.net
先の例ではテーブル1個だけですが、実際はjoinしまくりでselectしたいプロパティがたくさんあります
var query = from tbl in db.HogeTable
 join fuga in db.FugaTable on tbl.ID equals fuga.HogeID
 select new
 {
   tbl.ID,
   tbl.Name,
   :
   fuga.HogeID,
   fuga.Code,
   : // プロパティ多すぎて書くのがだるい
 };

311:デフォルトの名無しさん
22/10/18 22:44:16.89 joOPF2hi0.net
一度書けば済むんだからチマチマやれよ

312:デフォルトの名無しさん
22/10/18 22:49:27.13 cuMhZa5Q0.net
IT土方にはなりたくないんです!
スマートに書きたいんです

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

314:デフォルトの名無しさん
22/10/18 22:59:42.55 HdYtkAV80.net
DapperのsplitOnだな

315:デフォルトの名無しさん
22/10/18 23:01:06.32 cuMhZa5Q0.net
>>308
それだと
foreach(var row in query)
{
 // row.tbl.IDのようにドットが2つになる
 // row.IDのようにアクセスしたい
}
後だしで申し訳ないですけど、このあとExpressionで動的に検索かけるので
tblとかfugaとかあると今の私の知識では出来ないんです。。

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

317:デフォルトの名無しさん
22/10/18 23:05:30.50 cuMhZa5Q0.net
ぇ、だからやりたいのは>>303です
Expressionは質問の趣旨とずれます

318:デフォルトの名無しさん
22/10/18 23:06:39.73 oAfMFtaG0.net
そうか説明したくないなら別に聞く必要ないわ
頑張れ

319:デフォルトの名無しさん
22/10/18 23:09:54.15 joOPF2hi0.net
動的にって、スクリプト書くしか無いんじゃね?

320:デフォルトの名無しさん
22/10/18 23:10:51.98 oAfMFtaG0.net
もう触らなくていいぞ

321:デフォルトの名無しさん
22/10/18 23:17:24.79 9/f62YBx0.net
>>303
jsのスプレッド構文みたいな感じ?
ちょっと違うか

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

323:デフォルトの名無しさん
22/10/18 23:44:26.60 sRZwLUu60.net
C#でJavaScriptを実行する方法
アドレス省略
とかどうだろ?
ゲームだとLuaとかpythonよく使ってたな
自分は使える状態になったもんしかいじったことない

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

325:デフォルトの名無しさん
22/10/18 23:54:23.64 sRZwLUu60.net
>>319
別に変な方法じゃないぞ
ゲームとかパフォーマンスに影響する部分はc++でゴリゴリ書くけど
そうでない部分はc#で
もうゲームシステム部なんて
全部pythonだったりしたぞ
ビジネスアプリでもこれ割とアリだと思うんだけどね
速度を求めてないときに型とか煩わしいだけで無駄だと思うんだよね
かと言ってDictionaryでやっちゃうと完全に型チェックなくなっちゃうし

326:デフォルトの名無しさん
22/10/18 23:59:43.02 oAfMFtaG0.net
ビジネスでは完全に無しだわ
趣味なら好きにしたらいんじゃね

327:デフォルトの名無しさん
22/10/19 05:19:21.43 jC2EXU9G0.net
>>302
下に関して、ネームスペースにする必要ありますか?

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

329:デフォルトの名無しさん
22/10/19 12:49:22.09 rgBskw8B0.net
>>305
Ruby on Rails には、O/R マッパーもあるので全自動
Rubyで抽象的に、マイグレーションファイルに表定義すれば、
3大データベース、PostgreSQL, MySQL, SQLite の方言・型で定義される
Railsみたいな、O/R マッパー付きのフレームワークを使わないと、プロにはなれない
Java 土方は、Railsを使えない。
Java土方 vs リモート開発のモダンなRails

330:デフォルトの名無しさん
22/10/19 12:52:27.97 rgBskw8B0.net
YouTube のDeanin の動画では、
Ruby on Rails で、Three.js, Godot で、3D ゲームを作っていた

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

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

333:デフォルトの名無しさん
22/10/20 14:00:06.54 EjoMYd4Ya.net
(スラングだといつ気づくんだろう)

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

335:デフォルトの名無しさん
22/10/21 20:38:50.78 cLyPMgkx0.net
WOZは天才だけどプログラムが美しいかと言うと?

336:デフォルトの名無しさん
22/10/21 20:39:28.61 evL0t28u0.net
>>329
設計レベルだときれいは必須
コーディングレベルだとVSに従ってるレベルであればOK

337:デフォルトの名無しさん
22/10/21 21:45:05.81 IBSByhnA0.net
性格いい人見つけてレビューしてもらう

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

339:デフォルトの名無しさん
22/10/21 23:23:29.11 X//QLN3D0.net
可読性の高い、Ruby がベスト。
他の言語は可読性が低いから、作った瞬間から産業廃棄物
だから皆、新規で作って、作り逃げする。
自分が作ったものでも、改修できないからw

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

341:デフォルトの名無しさん
22/10/22 00:58:20.33 SCNLWEI10.net
可読性が低いことで有名なPerlを受け継いだRubyの可読性が高いって何の冗談なんだか

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

343:デフォルトの名無しさん
22/10/22 01:04:55.75 SCNLWEI10.net
自分に言い聞かせてるのか

344:デフォルトの名無しさん
22/10/22 04:59:53.84 g5VlGNlPa.net
>>337
ほんこれ

345:デフォルトの名無しさん
22/10/22 10:37:35.64 rexZxi1C0.net
enum型をintにするには (int)hogeでいけるが
Hage<T>(T value) の時、valueをintに変換
var result =(int)vale; だとエラーになる
どうすればいけるんですかね?

346:デフォルトの名無しさん
22/10/22 10:57:52.04 sdxg/Y9t0.net
Hage<T>(T value) where T: Enum

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

348:デフォルトの名無しさん
22/10/22 11:43:10.44 LN75Th25a.net
>>342
きっつ

349:デフォルトの名無しさん
22/10/22 12:37:18.58 rexZxi1C0.net
>>341
今回はすべてのタイプを取り込んでからEnumのときだけやるのでこれは使えませんでした
>>342
コレで行けました
ありがとうございます

350:デフォルトの名無しさん
22/10/22 13:50:10.10 JgadWci70.net
そもそもintにしなきゃいけないならenumなんか使うなと思うが・・・

351:デフォルトの名無しさん
22/10/22 14:16:53.47 J0WzfMNr0.net
>>345 intのままだと値域を制約できないが、代わりに何を使えばいい?



353:デフォルトの名無しさん
22/10/22 17:11:59.78 DoqTc5dI0.net
ジェネリックついでに横から質問させてください。
省略可能引数にジェネリック型指定した場合、呼出側でコンパイルエラーになります
// 呼び出されるメソッド
void Miku<T, U>(List<T> vol, U negi = null) where U : class
{
}
// 呼出側
hatune.Miku(list); // CS0411 メソッド 'method' の型引数は、使用法から推論することはできません。 型引数を明示的に指定してください。
回避策ありますか?

354:デフォルトの名無しさん
22/10/22 17:16:23.54 eEXfO1n1M.net
だってエラーメッセージ通りだろ
どうやってUが何の型か推測できるんだよ
対策はエラーメッセージ通りに明示的にかけ

355:デフォルトの名無しさん
22/10/22 17:18:14.30 rGDZLIi60.net
ノリと勢いで推測しろよな

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


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

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

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

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

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

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

361:デフォルトの名無しさん
22/10/22 19:28:17.81 LnG3fbHw0.net
曖昧論はいいから具体論を頼む

362:デフォルトの名無しさん
22/10/22 19:57:34.11 ql0xnxKt0.net
デフォルト型引数っていうのはないのか

363:デフォルトの名無しさん
22/10/22 20:35:58.55 eEXfO1n1M.net
普通にオーバーロード書けよ

364:デフォルトの名無しさん
22/10/22 20:59:48.27 PKq48whGa.net
tsにはあるみたい

365:デフォルトの名無しさん
22/10/22 21:14:16.27 eEXfO1n1M.net
typescript(javascript)にはオーバーロードがないからな
普通に書けばいいのにわざわざ難しく書いて機能がないとか言い出すのはどうなの

366:デフォルトの名無しさん
22/10/22 21:16:10.99 dlqtwNJ3a.net
おー、怖い怖い。

367:デフォルトの名無しさん
22/10/22 21:29:04.96 SCNLWEI10.net
tsは変性が無茶苦茶で整合性とれてないからデフォルト型引数ができるんだろ
URLリンク(qiita.com)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch