C#, C♯, C#相談室 Part94

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 935f-5Uxj)
垢版 |
2019/03/20(水) 18:57:36.47ID:ZZcTomnN0
!extend:checked:vvvvv:1000:512
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2021/07/19(月) 22:17:06.00ID:YnDE/De/0
クラスの一部をT4で生成させたときに手で書いた分とファイル分けてpartialにするのとかやったことはある
regionはIDisposableとかインタフェース実装した時に囲っておくのはよくやるし、
>>669 みたいな使い方するときもある
2021/07/20(火) 07:33:24.30ID:DOoV4fKqM
定数が増えるなら外部ファイル定義にしろ
変数やプロパティが増えるならクラスを分けろ
と思ってるから滅多に無いが、何らかの理由でやむを得ず肥大化した時は>>669のやり方してるな
2021/07/20(火) 12:11:28.91ID:npAM0kVy0
フォルダ整理と似た話だよね
regionってつまるところデスクトップにアイコン敷き詰めてるやつが画面上で1列空けてわかりやすいでしょって言ってる感じ
フォルダ作るなりツールなりで管理した方がと思うけどそれが本人にはわかりやすいんだろうな
2021/07/20(火) 22:03:15.00ID:7fUojtbc0
というよりデスクトップにファイル並べてるのをフォルダに入れて整理するようなイメージ
2021/07/21(水) 02:31:48.03ID:/t31adkB0
vs2022へ向けてちょっと気合い入れて学習直しすわ
2021/07/21(水) 04:27:22.47ID:S6x5cz780
多数のクラスが、イベントを相互に Invoke・Listen するようになってきて、
無駄な Invoke・Listen が多数あるような気がする場合、整理するいい方法を教えて下さい。
2021/07/21(水) 04:31:23.12ID:Tj+N2/ND0
1から設計し直す
2021/07/21(水) 12:58:49.45ID:yT2R+EQla
>>675
N対N関係を整理したいって聞いたら真っ先に思い浮かべるのはmediator?
2021/08/14(土) 08:00:21.71ID:5V/5IZHy0
Utf8Stringって闇に放り去られたの?
C#でHttpClientとか利用してると都度気になっちゃうんだけど
2021/08/14(土) 11:17:17.07ID:LS51vqD40
そういや8だか9だかで採用って話があったね
10の新機能候補にもないもたいだが…
2021/08/14(土) 13:27:27.47ID:EKL54yvl0
>>675
Microsoft.Toolkit.Mvvm.Messagingでイベントを構築し直したら良いんじゃね?
こいつは .NET Standard 2.0対応だからwinformsでも動くはず
2021/08/14(土) 19:34:45.80ID:q1VZBaGf0
とりあえず(ReadOnly)Span<byte>使っとくかと言ってる間に
もうそれでいいかってなってる感がある
2021/08/15(日) 08:50:23.66ID:TYMDGwka0
HttpClient周りじゃReadOnlySpan<byte>すらも利用できないじゃん
URLとかヘッダに直接utf8放り込みたいのにstringしか受け付けてくれないし

その点System.Text.Jsonは直接utf8で行けるからまだマシだけど
それでもせめてC++みたいに「u8"あいうえお"」みたいに簡単にリテラルUtf8書けるようにしてほしいわ
byte[]で良いから
2021/08/21(土) 17:00:29.45ID:gz5mByYnM
C# やってる奴らとかマジで仕事舐めてんだろ
俺なんてくっさいゴミ回収の仕事して、年収たった900万円台やぞ
ゴミの回収は、無かったらお前らだけじゃなく、お前以外の皆全員が困るが、お前らがやってる C# なんて
なくてもお前らやお前の身内以外誰も困らんわボケ
そもそも C# なんてただのお遊びやんけ
頭使ってる? 頭が良い? そんな頭が良いなら、研究者や医者やもっと世の役に立つ仕事に就けよカスが

一部の頭のおかしい意識高い系どもが C# を神格化して
アフターコロナの立派な文化だ! だなんてほざいてるが根本的にやってることは eスポーツと変わらん

そもそも遊びは仕事じゃねーんだわ
ただの遊びでしかないもので客から金を巻き上げて立派な仕事だの崇める
まさに不労所得じゃねーか
そして不労所得者に向けられた言葉
「働かざるもの食うべからず」
これ C# プログラマに対する言葉だよ

お前に俺がやってる仕事やらせてやろうか?
熱い炎天下の中を走りながらくっさい生ゴミの入った袋を何百個とひたすら回収する。パッカー車に手を巻き込まれりゃ腕切断してカタワになるリスクもあるんだぞ?
夏も冬も空調の効いた部屋でキーボード打ってるだけのお前らなら3日も持たねーだろうな

でもな、これが仕事じゃ。仕事舐めんなカス
2021/08/21(土) 17:18:59.23ID:/kPGqYai0
>>683
お前の年収、安っ!w
2021/08/21(土) 21:01:00.40ID:uzh8TD++0
これ何のコピペ?
2021/08/21(土) 22:21:31.26ID:de4fLkvp0
>>685
https://leia.5ch.net/test/read.cgi/poverty/1547956943/855
687sage (ワッチョイ 9fdb-lkNM)
垢版 |
2021/08/21(土) 22:22:26.75ID:+/txNrCq0
>>685
増田で見た.
2021/08/22(日) 00:03:11.52ID:mrqFYxe80
thx
なるほど。w
2021/08/23(月) 18:28:34.35ID:zCBpVreAa
間抜けな仕様なのは重々承知なんだけど
c#で作ったアプリケーションでアイコンダブルクリックして起動したあとに
もう一回アイコンダブルクリックしたときに
新しいプロセス起動させないで
すでに起動してるプロセスのmainwindow以外の
window起動させることできないですかね?
2021/08/23(月) 19:36:22.13ID:cpmwRu6w0
>>689
今俺が作ってるアプリではMutex見て、その上でプロセス間通信してる。
coreだとどうしたもんか、と少し悩んでる。
2021/08/23(月) 19:45:55.02ID:YKmonA5q0
coreもそれでいいんじゃないの?
2021/08/28(土) 11:11:05.40ID:61xWrGaR0
xamarin.formsでタブAからタブBのテキストボックスの値を参照できないので、どうすればいいですか?

タブA.csから
タブB.txtName
を参照するとエラーが出る。
2021/08/28(土) 11:44:46.36ID:H94428G10
>>692
どっか別のインスタンスにもっといたら?
入力された時点で親に入れたり。
2021/09/01(水) 08:39:47.70ID:4fugcblF0
ArrayPoolの内部がよくわからないんだけど、GCに負担かからないっていうのは逆に言えば内部バッファは常駐されるってこと?
2021/09/01(水) 13:32:31.59ID:iOouKnxp0
>>694
そうだね

https://github.com/dotnet/runtime/tree/main/src/libraries/System.Private.CoreLib/src/System/Buffers
2021/09/01(水) 14:24:19.78ID:F1x0ap2P0
audioSource.PlayOneShot(Announcement);
で1分ぐらいの説明音声を流しているのですが、
音声が流れている間、入力を受け付けない良い方法って無いでしょうか?
697デフォルトの名無しさん (ワッチョイ c936-U7Lh)
垢版 |
2021/09/01(水) 15:52:06.13ID:Bk82infv0
.NET5でないと動かないライブラリがあるので.NET5をインストールしたいのですが、
↓を参考にしてインストールしても対象のフレームワークには今まで使っていた4.7.2のバージョンまでしか表示されません。
どうやったら5が使えるようになるのでしょうか?
教えてください。


.NET5とVisual Studio2019のダウンロード、インストール | イメージングソリューション
https://imagingsolution.net/program/visualstudio2019v167p1/
2021/09/01(水) 16:25:20.94ID:nZXKGJdT0
>>697
.NET Framework と .NET5 は全くの別物だよ。

参照
ttps://docs.microsoft.com/ja-jp/dotnet/core/porting/
2021/09/01(水) 16:25:42.68ID:xCOolefd0
>>697
VS Installerで、[変更]→[個別のコンポーネント]で、[.NET5.0ランタイム]にチェック入ってる?
2021/09/01(水) 16:46:58.34ID:Bk82infv0
>>698
初心者ですいません。

>>699
確認しましたが入ってます。
2021/09/01(水) 17:01:44.97ID:xCOolefd0
>>700
もしかして、.NET Framework4.xで作ってある既存のプロジェクトを対象のフレームワークの切り替えだけで.NET5にしようとしてるの?
それは無理だから、>>698が挙げているページにあるように移植作業が必要だよ
2021/09/01(水) 18:54:29.18ID:Bk82infv0
>>701
そうなんですね、勉強になりました、ありがとうございます。
2021/09/02(木) 06:21:25.28ID:CGg78V2s0
それほど複雑じゃ無い(いかにも企業ユースなフレームワーク使ってるとかで無い限り)プロジェクトなら.net frameworkのソースそのままで.net5としてコンパイル出来る。

ついでにいうとこういった複雑でないものは、.net frameworkのまま、.net5から参照可能。
2021/09/02(木) 06:29:18.68ID:CGg78V2s0
一方、net frameworkから.net5を参照するのは無理。
この場合既存部を.net frameworkのままで通したい場合は、
.net5の方は薄くCOMインターフェースでうっスーいラップ挟むのがいいかな。
2021/09/02(木) 14:23:42.13ID:ffn82dhU0
なんでそうぶち上げては切り捨てるを繰り返すのかねMSは
2021/09/02(木) 14:34:39.39ID:uXRFOUT10
延々と同じものを使われたら商売にならないから
707デフォルトの名無しさん (エムゾネ FF22-4thN)
垢版 |
2021/09/02(木) 16:20:15.54ID:4vWPiFe2F
ぐぐーるもたいがいやで
2021/09/02(木) 18:31:28.55ID:FL5AB1qC0
アップルも切り捨て大好きだぞ
709デフォルトの名無しさん (ラクッペペ MM66-sNgg)
垢版 |
2021/09/02(木) 18:43:20.96ID:95p8ZRX9M
WINUIも.NET5も遅いし機能少ないくせに
2021/09/03(金) 00:29:45.00ID:AHipKBXs0
初心者用書いたのですが返答こなさそうなのでこちらに書きます(マルチすいません)

GoogleChromeにあるイメージファイルをデスクトップにドラッグすると大抵の場合イメージファイルを保存できますが
これをPictureBoxに直接ドラッグしてイメージを表示させたいです
※URLを取得してからのダウンロードだとjavascriptなどで読めないイメージが多いので他の方法を探しています

これはクリップボードを経由してるんでしょうか?もし経由しているとしたらクリップボードのフォーマットは何を使ってるんでしょうか。
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.dataformats?view=net-5.0
それ以外ならどういう仕組みなんでしょうか、何か手掛かりになるものがあれば助かります。

もし無理なら特定フォルダ作り定期的に監視して増えたファイルをロードしようと思いますが
できればコントロールにドラッグしたいです、よろしくおねがいします。
711デフォルトの名無しさん (ワッチョイ 6754-Sfec)
垢版 |
2021/09/03(金) 02:23:45.36ID:r8mmW0/q0
https://github.com/davidegironi/advanceddatagridview/releases/tag/1.2.x.3
上記の、AdvancedDataGridViewを使っています。

フィルタリングする為に、
@カラムヘッダークリック
ATreeView表示される選択肢の内、表示しない項目のチェックを外す。
までは動くのですが、選択内容を変更するために、再度カラムヘッダーをクリックすると、Aで非表示化した項目が消えるので、
一度フィルタークリアするしかなくなります。

int型・string型データのカラムだけで発生します。
公式サンプルも同じ状態なのですが、何が原因でしょうか?
2021/09/03(金) 09:05:37.92ID:PQRWg2pe0
>>710
https://stackoverflow.com/questions/8442085/receiving-an-image-dragged-from-web-page-to-wpf-window
WPFっつってるけどやってることはWinFormでも全く変わらんね
2021/09/06(月) 08:50:27.01ID:h/8uTFD00
ref structの強制using欲しいと思うのは俺だけ?
C++みたいな暗黙でデストラクタ呼ばれる方式じゃなくてちゃんとusing書かないとコンパイルエラーになる感じのが欲しい
2021/09/06(月) 10:49:07.22ID:hEa6z0ew0
>>712
先に質問してたふらっとの方で既に解決しているがそれじゃダメだ
2021/09/06(月) 16:05:09.28ID:eiNUFGv40
マルチで質問しっ放しか
2021/09/07(火) 00:12:57.46ID:jZhA4bAr0
>>713
コード分析しろ
2021/09/07(火) 04:08:51.28ID:q85I47vR0
自分でanalyzer書けば警告でもエラーでもだせるよ
そこまでやってる人がどれほどいるかは知らんが
2021/09/07(火) 08:29:58.90ID:e368Ab820
環境依存だと他人に使わせるのはちょっと身が引けるな
disposable ref structとでも書いたら絶対Dispose実装しないといけないし絶対using宣言しないといけないってなれば多少アンセーフな機能も公開しやすいんだけど需要は無さそうだな
2021/09/07(火) 12:19:24.33ID:I20R26Ho0
>>718
気が引ける、な。
2021/09/09(木) 17:34:11.61ID:qrAI1q0R0
50,000レコード、テキスト換算30MBある(想定最大値)JSONデータを取り回すのに向いている、ローカル用のDBエンジン(SQLiteのような)って何かありますか?
出来れば、Xamarin.Forms(Android)でも動くものを探しているのですが、他の方がどうやっているのか知りたいです
2021/09/09(木) 22:13:50.14ID:AWFfXCnC0
Redis がベストやな
2021/09/10(金) 00:51:31.54ID:Hha8Yi5K0
>>720
LiteDB。ずっと使ってる。
Linqで引けるから凄く便利。
2021/09/10(金) 09:13:28.67ID:GizC5utx0
>>722
LiteDB、良さそうですね。ちょっと試してみます。

>>721
俺の知らない別の使い方とか同じ名前の別のRedisがあるのかと思って1時間ググって見たけど、わからんかった。
Redisで、SQLite的な組み込みの使い方があるの? 比較したいので具体的なところ教えて欲しい……
2021/09/10(金) 12:03:33.02ID:cGWG4Dd90
つか5万レコードで何するかしらんが、そのままJsonで持つとかないわ
2021/09/10(金) 18:39:49.98ID:Q85sVIDV0
読み込みだけなら…
2021/09/10(金) 20:30:22.77ID:VM7twAvm0
条件後出しする馬鹿は死ねば良いのに
2021/09/11(土) 10:38:13.01ID:vIInvTaz0
>>724
あるんだなそれが
GTA5はそうしてたし
2021/09/11(土) 11:53:02.01ID:xP5kxsti0
5万レコードぐらいの参照系で頻度が高いものだと結構あって、結局メモリにのせたりしないか?
どうせメモリにのせるし、となると、JSONでもなんでもいいし。
LiteDB推したけど、そういう意味ではRedisはそこまで的外れだと俺は思わんかったぞ。
2021/09/12(日) 14:33:36.21ID:Rk6Iyibj0
ソースジェネレーターの開発効率悪すぎやろ
マクロと違って受動的な生成できるから便利だけど個人開発程度の規模だと返って遠回りになるな
2021/09/12(日) 16:10:35.48ID:fbrsRXQN0
ノウハウが溜まれば効率よくなるんじゃね?
2021/09/12(日) 17:45:44.97ID:r8PDzNW10
ウハウハだな
2021/09/12(日) 22:24:05.20ID:AyzBS9aH0
>>729
どうすれば良くなると思う?
733デフォルトの名無しさん (ワッチョイ ea6a-dGLa)
垢版 |
2021/09/12(日) 22:29:29.32ID:LdHcNCka0
ソースジェネレーターって何のこと?
2021/09/12(日) 23:35:28.52ID:fbrsRXQN0
https://docs.microsoft.com/ja-jp/dotnet/csharp/roslyn-sdk/source-generators-overview
2021/09/13(月) 02:03:08.04ID:Dz4DY8v70
ああ、Roslyn関係ね。了解ありがとう
2021/09/13(月) 09:23:25.05ID:tAtNAwkK0
>>732
StringBuilderオーバーライドしたSourceBuilder的なクラスがあればミスも無くなってマシになるんじゃないか
もしくはUtf8JsonWriterと同じ感じでもいいな
自分で作れって話なんだけど、ソースジェネレーターってWinFormsのInitializeComponent筆頭に内部では元々あった訳だしMS社内ではSourceBuilder的なクラスは既にあるはずだから公開されるんじゃないかと期待してる
2021/09/13(月) 22:03:41.13ID:Dz4DY8v70
T4テンプレートと組み合わせられないか?(適当)
738デフォルトの名無しさん (ワッチョイ b67c-2Q8u)
垢版 |
2021/09/16(木) 19:12:10.42ID:hnfTT3D30
WebView2でどんなページ開いてもスクロールバーが表示されずページの下の方が見ることができない。
htmlやcssでスクロールバーを非表示にしていないから、WebView2の設定を探してみたけど見つからず。
スクロールバーを表示させるにはどうしたらいいですか?
2021/09/16(木) 20:03:17.64ID:uiNLezeY0
WinForm? WPF?
WPFだと親子関係によっては親が子であるWebView2のレイアウト領域無限に取ったりしてるとか
とりあえずWinFormでもWPFでも特にプロパティとかいじらず普通にブラウザとしてのスクロールバーは出る
740デフォルトの名無しさん (ワッチョイ b67c-2Q8u)
垢版 |
2021/09/16(木) 20:30:28.11ID:hnfTT3D30
>>739
WinFormです。
普通に出るのですか…何も出ないので残念です。
2021/09/16(木) 21:01:08.74ID:yaf4gWdF0
親コントロールからはみ出してるんかな
WebView2側のDockを有効にしたら?
2021/09/16(木) 21:38:21.29ID:xijkbl3u0
まさに今WebView2を使ってるところだけど普通にスクロール出るね
>>741が正解な気もするけど
743デフォルトの名無しさん (ワッチョイ 9724-IhC7)
垢版 |
2021/09/17(金) 12:45:26.99ID:cxQX6Vfo0
C#のComInterfaceってちょいちょい頭おかしいな
これとかなんやねん

HRESULT IEnumFORMATETC::Next(ULONG celt, FORMATETC *rgelt, ULONG *pceltFetched);

IEnumFORMATETC.Next(int celt, FORMATETC[] rgelt, int[] pceltFetched);

C#風にラッピングするなら普通はこうやろが
int Next(FORMATETC[] rgelt, ref int pceltFetched); //Span<FORMATETC> rgeltなら尚良し
744デフォルトの名無しさん (アウアウウー Sa5b-hED7)
垢版 |
2021/09/17(金) 13:49:09.55ID:oDWWsmOUa
自動機械で生成したっぽいな
745デフォルトの名無しさん (ワッチョイ 171d-QiSa)
垢版 |
2021/09/17(金) 14:53:12.40ID:J/w/zJeW0
WEBフリーランスで年収1000万円超えないのはどう考えてもおかしい
https://www.youtube.com/watch?v=LoXe8iFAsVs
エンジニアは技術力磨きすぎても金になりません
https://www.youtube.com/watch?v=lM7bc6vX-3M
エンジニアはお金を追求してはいけないという年寄りを論破してみた
https://www.youtube.com/watch?v=qJHCmxFv718
エンジニアが教えるの下手くそな理由を論理的に解説してみた【教育の本質】
https://www.youtube.com/watch?v=3YwyYSj-k2s
派遣エージェントの言う事は9割ウソである理由【カモられない方法】
https://www.youtube.com/watch?v=8DxQFLAuFqo&;t=231s
IT業界のヤバすぎる落とし穴5選
https://www.youtube.com/watch?v=WPPCJ4o-mpA
絶対にエンジニアになってはいけない人とは【ハイクラス人材】
https://www.youtube.com/watch?v=kKUC7rZRUtc
【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて
https://www.youtube.com/watch?v=fTG-eMpwhCg
プログラミングスクールを否定する老害どもについて
https://www.youtube.com/watch?v=K2SN-Rr0PgY&;t=506s
2021/09/22(水) 06:13:29.41ID:4Ss0IIt3M
C#向けのMIDLコンパイラが粗末なんだと思う
2021/09/22(水) 23:29:53.28ID:xBbUkBcb0
時代はCsWin32
2021/09/27(月) 12:05:22.09ID:KmbMbzSx0
public Foo<T>(byte[] dat) where T : new() { 〜 };
という定義の関数があります。通常は
var IntData = Foo<int>(dat);
とやって、バイト配列からインスタンスを作成するのですが、Tの部分をType型の変数を使ってインスタンスを作成したいのです。
上記の例でいうと
int intValue = 0;
var t = intValue.GetType();
var IntData = Foo<t>(dat); // 型ではなく変数なのでエラーとなる
とやりたいのです。

なにか方法はないでしょうか。
2021/09/27(月) 13:52:24.89ID:SFJimoDq0
ジェネリック使わないように定義を変えれば?
2021/09/27(月) 14:32:14.74ID:0+Ka2zog0
decltype(t)
2021/09/27(月) 14:38:26.77ID:0+Ka2zog0
すまんc++と間違えた
2021/09/27(月) 15:00:33.89ID:yT+OT+660
許さん。
人世の生き血を啜り
不埒な悪行三昧
2021/09/27(月) 15:54:49.55ID:KmbMbzSx0
>>749
説明を簡易にするためにintにしましたが、実際はclass/struct定義を指定して、
byte配列との相互変換するための自作ライブラリです。
クラス内クラスといった入れ子状態でも動くようにするために、内部から自分自身を
再帰呼び出しするのに、Type型の変数からジェネリックでの呼び出しが出来るように
したいわけです。
2021/09/27(月) 15:57:14.59ID:/3k3jyoNa
>>748
これならできた
static class Extensions
{
  static T Foo<T>(this T x, byte[] dat ) where T:new()
  {
    return new T();
  }
}

型推論はコンパイラの機能。
実行時に決まる型をコンパイラに推論しろってのは無理筋
2021/09/27(月) 16:15:20.36ID:BlBnXHbl0
危険性を理解した上でBinaryFormatter使え案件では
2021/09/27(月) 16:18:23.20ID:rcvaLLYgM
>>754
どこから実行時なんて出てきたんだ?
>>750が書いてるdecltype相当の機能が欲しいって話だろ
俺も欲しいわ
2021/09/27(月) 16:33:19.87ID:NYWmPD2Y0
C#の標準ライブラリにもよくジェネリック版関数とType版関数があるようにそれ真似ればええだけやろ
後からジェネリック版が続々と追加されたことからも分かるようにType版はリフレクションに頼る羽目になるのでパフォーマンスに劣るがな
そういやネットワークメッセージをルーティングするにあたってそのたびにDynamicInvokeしてるバカなコード書いてる奴思い出したな
2021/09/27(月) 16:36:51.40ID:rcvaLLYgM
↑頓珍漢すぎるバカw
2021/09/27(月) 16:41:12.52ID:/3k3jyoNa
>>756
そっちこそ何を言ってんの。
ジェネリックの型テンプレートはコンパイル時に確定している必要がある。

それをType型の変数tの値(当たり前だが実行時に決まる)からコンパイル時に
推論できるの?
2021/09/27(月) 16:56:38.77ID:J3rlWY70M
>>759
>>748には
> int intValue = 0;
> var t = intValue.GetType();
> var IntData = Foo<t>(dat);
って書いてあるけどやりたいのは
int intValue = 0;
var IntData = Foo<decltype(intValue)>(dat); // もちろんC#にはdecltypeはないからエラーになる
だろ
コンパイル時にintValueの型はわかってるから原理的にはできるはず
2021/09/27(月) 16:59:12.82ID:6TsnNU9s0
>>748
普通にもう一段ジェネリック関数でラップしたらいいだけじゃん
static T Foo<T>(T value, byte[] dat) where T : new() => Foo<T>(dat);

int intValue = 0;
var IntData = Foo(intValue, dat);
2021/09/27(月) 17:12:05.00ID:J3rlWY70M
まあそうなんだけど値を使わないのに引数に指定するのもなんか気持ち悪いし
※ 個人の感想です
2021/09/27(月) 17:19:29.24ID:6TsnNU9s0
>>762
var t = intValue.GetType();をする方がめちゃくちゃ気持ち悪い
GetType()はオブジェクトヘッダからタイプ情報を抜き出すっていう実行時処理だからそれこそ求めてるものとは全く違うと思うけどな
逆にジェネリックは完全にコンパイル時計算なので>>761とか>>754ならほぼ確実にインライン展開される
2021/09/27(月) 17:25:05.23ID:6TsnNU9s0
それに下手したらintに対してGetType()するとmalloc(sizeof(int32_t) + sizeof(void*) * 2);みたいな処理が内部で走って糞効率悪いぞ(Boxing)
2021/09/27(月) 17:41:25.60ID:DH+C27O00
戻り値をoutで返せば
2021/09/27(月) 17:42:27.32ID:J3rlWY70M
>>763
> var t = intValue.GetType();をする方がめちゃくちゃ気持ち悪い
まあ気持ち悪さの基準は人によって違うから、お前はそうなんだろうね
2021/09/27(月) 17:46:34.83ID:OckC1gs8p
よしわかった!
リフレクションでジェネリックメソッドを生成しよう!
2021/09/27(月) 17:47:27.75ID:KmbMbzSx0
>>755
後出しですみません。
既存の機器と通信するためにByte配列との相互変換なのですが、
BCDとか、エンディアンの指定があるんです。
なので、BinaryFormatter は使えないんです。

>>761
なんとかなるかな?
ちょっと試してみます。
アドバイスありがとう。
2021/09/27(月) 17:49:12.35ID:6TsnNU9s0
>>766
引数指定しなくていいバージョンも754が書いてくれてるだろ

int intValue = 0;
var IntData = intValue.Foo(dat);
2021/09/27(月) 18:13:44.25ID:J3rlWY70M
>>769
申し訳ないけどそれもっと気持ち悪いわw
1週間後にそのコード見て一瞬何してるのか戸惑う自信がある
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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