[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/22 04:32 / Filesize : 279 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:53:21.18 ID:dhjmiKBp0.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part152
mevius.5ch.net/test/read.cgi/tech/1629888256/
■関連スレ
C#, C♯, C#相談室 Part94
mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
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

64 名前:E Dumper Version 14.30.30706.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file stack.exe
PE signature found
File Type: EXECUTABLE IMAGE
<<中略>>
SECTION HEADER #3
.data name
14F8 virtual size
24000 virtual address (0000000140024000 to 00000001400254F7)
A00 size of raw data
21C00 file pointer to raw data (00021C00 to 000225FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
C0000040 flags
Initialized Data
Read Write
[]
[ここ壊れてます]

65 名前:デフォルトの名無しさん [2021/12/17(金) 21:35:28.65 ID:IQClZtiS0.net]
>>62
>staticはコード領域に確保される

これはあってんの?

66 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 21:40:51.67 ID:A3/Tt7aa0.net]
xpSP2以降、自己書き換え禁止されたはずだから嘘だと思うけど

67 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 22:19:09.70 ID:RGFXVjzf0.net]
嘘つきはMicrosoftの始まりって聞いたで

68 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 22:37:03.33 ID:ePonqmC10.net]
>>64
ざっくりだけどあってる

AppDomainのLoaderHeapのHigh Frequency Heapと呼ばれる場所に
MethodTable Strucureの一部として確保される
Heapと名前がつくがGC HeapやLarge Object Heapとは別で
GCはされずAppDomainがアンロードされるまで生きてる

AppDomainをざっくり言えばコード領域

69 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 23:21:12.45 ID:g/fCEX7wa.net]
ざっくり曲げすぎ。そもそもいわゆるコード領域はリードオンリーだよ

70 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 01:21:58.30 ID:4KhQcFRSr.net]
とにかくGC連打
メモリ管理をどうこうしようなんて考える必要なし

71 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 01:27:31.41 ID:5vur9Hw60.net]
結局、Dispose()だらけで汚いコードだらけみたいな。

72 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 01:36:05.34 ID:T7YxQHIHa.net]
いやいや。disposeは必ずしろよ・・・



73 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 01:51:37.69 ID:pciZCSWm0.net]
某現場で提供されてたDB接続クラスがIDisposable持ってるからusingで書いたら全然動かん
よく見たらdispose内でロールバック処理が入ってて目を疑った

74 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 02:07:40.04 ID:hd7cWOei0.net]
それどうなったの

75 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 02:38:11.15 ID:pciZCSWm0.net]
>>73
周りに聞いたらみんなusing使わないようにしてた
ライブラリは別部署からの提供品で、修正してもらう手続きがめんどくさいから・・・

76 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 03:04:40.74 ID:+EDLAGXQ0.net]
usingはMSの提供品ならアリ
それ以外のライブラリでは信じるに値しない
精々努力目標がいいとこ

77 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 03:11:34.73 ID:4KhQcFRSr.net]
>>72
何そのトラップw
作った奴アホだろ

78 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 03:25:01.34 ID:rlJS0/xAa.net]
>>75
別にDisposeの実装だけが特別バグりやすい理由はどこにもないので、
それは羹に懲りて何とかそのものだねw

79 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 03:48:54.74 ID:+EDLAGXQ0.net]
別にStreamWriterのusingも疑えって言ってるわけじゃない
ただ、チェックされてる保証がないモノを無条件に信じるのはやめろってこと
少なくともMS提供品以外のusingは使うなら一度はdisposeの実装に目を通したほうがいい

ブラックボックスのライブラリはメモリリークしてても不思議じゃないから場合によっては
別プロセスにしてキックしないといけないかもしれない

80 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 04:00:36.02 ID:+EDLAGXQ0.net]
そもそもなまじガベコレなんてあるから
綺麗な後始末にはヘルプをよく読まないといけないクラスが多い気がする

まあ、その前にアプリを終了してしまえば問題は起きないが
サービスとかだとこいつが牙をむく場面が多い

81 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 04:43:58.91 ID:QLDMMuZWa.net]
>>78
人の話聞かない人?
だから、同じことはDispose以外の全てのメソッドについても当てはまるでしょ。

他人の作ったものは全て信じられないから使わない。
これなら偏執狂的ではあっても論理的に一貫している。
しかしDisposeだけ疑うのは羹に(

82 名前:デフォルトの名無しさん [2021/12/18(土) 05:17:14.21 ID:4kEqj5670.net]
>>68
厳密にいうと微妙に違う属性みたい

SECTION HEADER #1
.text name
1830C virtual size
1000 virtual address (0000000140001000 to 000000014001930B)
18400 size of raw data
400 file pointer to raw data (00000400 to 000187FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
60000020 flags
Code
Execute Read



83 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 07:53:04.33 ID:EMtIeou+0.net]
>>72
トランザクション処理を行っていたらロールバックする仕様は普通じゃね?

84 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 08:55:44.41 ID:+EDLAGXQ0.net]
>>80
まあ、確認対象に入るだけとも言うな

85 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 08:59:22.77 ID:+EDLAGXQ0.net]
>>82
失敗してないのにやるんじゃない?
usingを正常に抜けるための何らかの条件があってそれがされてないと
disposeで失敗とみなしてロールバックするんじゃね?
その条件はソースを見るか組んだやつしかわからんが

86 名前:sage mailto:sage [2021/12/18(土) 09:13:54.47 ID:4kEqj5670.net]
>>55
以下ソースで30000ちょっとでスタックオーバーフロするから、
それなりに意識する必要のある人もいるように思われ
企業が作るデカイアプリとか

public class Hello
{
public static void a(int n)
{
System.Console.WriteLine(n);
a(n + 1);
}

public static void Main()
{
a(0);
System.Console.WriteLine("hello world!");
}
}

87 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 10:36:30.21 ID:rkAxz2WM0.net]
https://dotnetfiddle.net/tXv7Oq
ランダムで0〜100までの数値を出して0〜50と50〜80、80~100の場合に分けてそれぞれを表示するプログラムです
場合分けを増やすとどうしてもforが複数回繰り返してしまいます、2回目以降の
for (int i = 0; i < 5; i++)
を1回に抑えたいのですが何かいい方法はありませんか?

88 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 10:42:34.52 ID:/Zq/GLbL0.net]
なんかの

89 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 10:43:28.05 ID:/Zq/GLbL0.net]
なんかのデータ構造を3つ用意して一回のループで分けるとか
一回全部ソートして前から見ていくとか

90 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 10:46:28.80 ID:T7YxQHIHa.net]
linqなんかを使うって方法もあるけど実質同じだからなしだよな
stringをいくつか用意しといて、最初のforの中でconsole出力するんじゃなくてstringに値を格納
for抜けてからconsole出力するとか?

91 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 11:37:28.63 ID:5vur9Hw60.net]
普通にcommitしてからdispose()すればrollbackしないんじゃねーの?
原因不明で途中終了されたらrollbackするのは普通に見える。

とにかくデストラクタがC++と同じタイミングで走ってくれれば
C#にdisposeはいらなかったんじゃないのかと初心者のボクは思うわけですよ。

92 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 11:57:23.73 ID:EMtIeou+0.net]
>>86
宿題っぽいから単純にメソッドを分けてみたよ
https://dotnetfiddle.net/639EZQ



93 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 12:12:33.65 ID:5vur9Hw60.net]
速度重視なのかメモリ効率重視なのかによるよな。
普通は分けたデータは再利用するので3つ分の配列を作ってそこに入れるかな。
なら場合分け処理は最初の1ループ一回しかしないで済む。

94 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 13:11:47.91 ID:Y+I1/Zg80.net]
自分も分離と利用を分けるかな。
こんな感じ。
https://dotnetfiddle.net/OMdmbO

95 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 14:04:14.85 ID:GkRVZLhXa.net]
>>86
その例なら単純にdata[]を昇順にソートしてから

var i = 0;
Console.Write("0以上50未満:");
for (; data[i] < 50 && data[i] >= 0; i++) { ... }

Console.Write("50以上80未満:");
for (; data[i] < 80 && data[i] >= 50; i++) { ... }

とかでいいんじゃないの?

96 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 14:32:27.17 ID:iUN/Cy1s0.net]
>>90
disposeでrollbackするのはConnectionじゃなくてTransactionだと思う
いずれにしても動かなくなるのは使う側の問題だね

97 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 14:56:48.68 ID:yfxR8FS90.net]
>>90
正確には、コミットしたあと、何もない処理をロールバックするんじゃないかな
実質何もしないのと同じ
未コミットあるかないか確認するのが丁寧ではあるだろうけど

なんにせよIDisposableなDB接続クラスを未コミットでDisposeするのは使い方が悪いわ

98 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 18:11:55.26 ID:iUN/Cy1s0.net]
>>95
うー、俺が間違ってたわ
https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlconnection.close?view=dotnet-plat-ext-6.0#remarks

99 名前:デフォルトの名無しさん [2021/12/18(土) 22:12:35.26 ID:4kEqj5670.net]
ここってスキル高そうな人いるみたいだけど、以下でランキング入りできますか?
paiza.jp/botchi/ranking
paiza.jp/steins_gate/ranking
paiza.jp/logic_summoner/top/ranking

100 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 23:03:36.27 ID:rkAxz2WM0.net]
色々ありがとうございます、自分に合ったものを探してみたいと思います

101 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:12:33.67 ID:XEu/0Ow00.net]
1.jpg
10.jpg
2.jpg

1.jpg
2.jpg
10.jpg
のように自然順ソートできるライブラリありませんか?
Windows,Mac,Linuxで動かせるものがほしいです

102 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:34:22.80 ID:O/qDX0wZ0.net]
ライブラリはないと思うよ
君の言う自然順の定義が適当すぎるからね



103 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:37:18.67 ID:pYj8pB6Ua.net]
>>100
古い記事だけど参考まで
今は標準で実装されてるかも
https://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%A6%B5%E6%2F111

104 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:38:55.11 ID:n0pWJPWXa.net]
nugetとかgoogleで「natural sort」

105 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:48:02.86 ID:wbja7KXrM.net]
漢数字やローマ数字は?
全角は?

106 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 15:12:30.82 ID:n0pWJPWXa.net]
全角ぐらいならnatural sortにCompareOptions.IgnoreWidth渡せばできる
漢字はやりたきゃ自分でやるか日本語対応のを探すしかないだろうな

107 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 15:24:46.95 ID:JBr0bC1G0.net]
漢数字やローマ数字対応してもICompareを実装するのにおそらく10分。

108 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 16:12:08.38 ID:3MHXzmFiM.net]
こういう手合いは追加要件が出てくるのが基本だから最後には自分で実装しろって回答になってるはず

109 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 16:56:47.20 ID:EE70Ra2ja.net]
なんか頭おかしい奴が大量に湧いてるけど、少なくとも2000年代の前半には
「自然順ソート」という概念はあった。

何が「こういう手合い」だバカw
ウンコはお前の方だろ。

110 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 17:14:52.86 ID:kxTQmf/60.net]
なるほど。
https://ja.wikipedia.org/wiki/自然順

111 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 17:29:08.07 ID:n0pWJPWXa.net]
"2.jpg" "123.jpg" "500.jpg" "百日紅(さるすべりの花).jpg" "百.jpg"
用途によっては漢数字も数字としてソートしたい場合もある
今回は漢数字不要だろうけど、「こういう手合い」になることは多い

112 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 17:50:05.64 ID:TLyD+52gd.net]
ソート順って問題になることが多いからな
特に日本語は色んな文字を使うので厄介
カナとか漢字あたりの動作がめちゃくちゃでいいならライブラリなんていくらでも見つかるだろうけど後からケチ付けられないようにしとくのは大事



113 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 05:46:43.82 ID:3MMk62pZa.net]
タブコントロールの色ってフォームのデザイナーから変えられないの?

114 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 10:32:55.78 ID:f5rUAgGLd.net]
職場でcsc.exe使ってフォームアプリつくろうと思ったけど
コマンドプロンプト自体制限されてて使えなかったなり

115 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:19:05.77 ID:qyvCBTAG0.net]
csc.exeのショートカット作って、
プロパティでオプションやソースファイル指定するとか

116 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:20:33.92 ID:zxhyAyTl0.net]
自然順ソートっ標準で搭載されている言語って結構少なかったんですね
PHPから入ったので当たり前に貼るものだと思ってました
頂いた情報で組んでみます

117 名前:デフォルトの名無しさん [2021/12/20(月) 14:24:01.64 ID:wYqxvWvia.net]
chartコントロールについてですが、折線グラフを使用したときにデータポイント間の線上の任意のX位置を取得してその箇所のY値を取得することは可能でしょうか

118 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:26:28.21 ID:BkeSeNUYa.net]
線の中にPoints[]があってそこにXValueとYValueがあるからそれ読めばいい

119 名前:デフォルトの名無しさん [2021/12/20(月) 14:35:19.70 ID:/nEC48Zya.net]
>>117
ありがとうございます
ちょっと試してみます

120 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:39:36.28 ID:I6RlAoqPa.net]
116の人が聞いてるのはいわゆる「内挿」ってやつのことだと思うけど、
そんな気の利いた機能がchartについてるかな。

使ったことないから知らんけどついてないと思うw

121 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:49:56.05 ID:BkeSeNUYa.net]
ああ、そういう意味か。それはないな
読めるのは追加した点だけ

122 名前:デフォルトの名無しさん [2021/12/20(月) 15:38:01.47 ID:EVpX0LdIa.net]
>>116です
そうですか。。できませんか
では取得した位置の近いほうのデータを使うことにします
ありがとうございました



123 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 15:58:56.17 ID:hpQP1bPDd.net]
>>113
powershell使えば

124 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 17:33:26.35 ID:I6RlAoqPa.net]
>>121
でも求め方は中一レベルの数学だから難しくないでしょ

125 名前:デフォルトの名無しさん [2021/12/20(月) 18:59:07.12 ID:/usP9Uara.net]
>>123
あっ。そうですね。2点のXYデータがわかるわけだから折線だったら計算でだせますね。ありがとうございます

すみませんがもう1点だけ質問いいでしょうか
グラフの拡大縮小をしたときにX軸にスクロールバーがでると思いますが、それを元の表示に戻したいときにスクロールバーの横の小さいボタンを押すと戻りますが、これを自前のボタンイベントで実装するにはどうしたらいいでしょうか

126 名前:デフォルトの名無しさん [2021/12/20(月) 19:19:36.55 ID:I6RlAoqPa.net]
>>124
AxisScaleView.ZoomReset ?
使ったことないのであってるかどうか知らない。

127 名前:デフォルトの名無しさん [2021/12/20(月) 22:05:52.14 ID:4d89Imwra.net]
>>125
ありがとうございます!
期待通りの動きが確認できました

128 名前:デフォルトの名無しさん [2021/12/21(火) 19:30:29.17 ID:smn5oieg0.net]
海外の12歳の少女が、NFTで1億8000万円を稼ぐ

12歳のナイラ・ヘイズ氏のNFT(※)コレクションが、数時間で160万ドル(約1億8000万円)
を稼ぎ出したと、米メディアの『Business Insider』が報じている。
ヘイズ氏は4歳で絵を描き

129 名前:始め、9歳のときにスマートフォンを使って彼女の代表作
「Long Neckie Ladies」を描いたという。このシリーズは3333点からなる、首の長い
多種多様な女性を描いたコレクションだ。出品後わずか数時間で売り切れとなり、
総額は約1億8000万円にのぼるという。
「アートは私が自分自身を表現し、言葉では不可能なやり方で人々を
驚かせるのためのもの」と述べている。
これまでにヘイズ氏は、NFTで1394ETH(約6億6000万円)を稼ぎ出してきた。
若きアーティストのさらなる活躍に期待しよう。
[]
[ここ壊れてます]

130 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 20:26:03.81 ID:A1/tNWXn0.net]
>>127
マネーロンダリング定期

131 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 23:18:04.09 ID:F5aAVbmG0.net]
c# winForms webView2
Form1にウェブビューとボタンを配置しました。
表示したwebサイトの方のボタンを、コードで指定して押させたいんだけどできますか?

(フォームに配置したボタンを押すと、HTMLの方のボタンが押される)

132 名前:デフォルトの名無しさん [2021/12/22(水) 00:11:20.30 ID:jK1jR4AH0.net]
できます



133 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 00:15:56.40 ID:3dt5vZu90.net]
ありがと!
お手数おかけしますがどなたか教えてください

134 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 00:20:23.33 ID:3dt5vZu90.net]
>>129ですが
実装の仕方を知りたいです...

135 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 00:31:14.60 ID:b3HiuJNda.net]
form上のボタン押したら、web上のボタンを押すためのjavascriptをwebview2に突っ込む
詳しくは WebView2.ExecuteScriptAsync をぐぐれば出てくる

136 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 08:04:47.48 ID:UZclHfmg0.net]
JavaのSpringフレームワークみたいにウェブサービス関係を学ぶにはASP.netでいいのですか?
net coreとかnet6とか用語が新しくできてASP.NETは廃止されたりしてませんか?

137 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 12:23:03.79 ID:Af2fhJsR0.net]
>>134
されてません

138 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 12:47:15.14 ID:xFuE7Z410.net]
>>134
今ならASP.net coreですね

139 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 13:17:51.59 ID:UZclHfmg0.net]
>> 135 >>136

ありがとう。

140 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 16:32:03.68 ID:Gb4RQ3pz0.net]
.NET 6 のASP.NET Core Web Apiでの質問です。

[ApiController]
[Route("[controller]")]
public class UserController : ControllerBase
{
private readonly ILogger<UserController> _logger;
private readonly IConfiguration _config;

public UserController(ILogger<UserController> logger, IConfiguration config, IBearerTokenValidater bearer)
{
_logger = logger;
_config = config;
}

[HttpGet(Name = "GetUsers")]
public string Get()
{
★ var _ = Request.Headers.TryGetValue("Bearer", out var apiKey);
return apiKey;
}
}

というControllerを作りました。
★の処理を本当はコンストラクタで行いたいのですが、移動すると以下のエラーが出ます。(もしくはもっと前に行いたい)

System.NullReferenceException: 'Object reference not set to an instance of an object.'
Microsoft.AspNetCore.Mvc.ControllerBase.Request.get が null を返しました。

★の処理をコンストラクタ(もしくはもっと前)で行うにはどうすればいいでしょうか。
(コンストラクタではHttpcontextを参照できないのでしょうか。エラーになるのは起動時ではなくRequestで到達した時です。)

141 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 17:24:08.56 ID:GlBmoaYS0.net]
>>138
Requestヘッダにアクセスするユーティリティクラスを作ってそれをDIする

142 名前:
ちょっとstackoverflow検索すれば出てくると思うが。
https://stackoverflow.com/questions/24024291/web-api-read-header-value-in-controller-constructor

まぁAPIキーを調べたいなら、いちいちControllerでやるより
StartUpの段階で検証処理を割り込ませておくのが定石だと思うが。
[]
[ここ壊れてます]



143 名前:デフォルトの名無しさん [2021/12/22(水) 19:57:47.15 ID:gZ1M8pW10.net]
char[] str = { 'A', 'A', 'A', '\0' };
Span<char> span = str.AsSpan();

char[]型からSpan<char>型へは、AsSpan()を使って取り出せるのですが、
Span<char>型からchar[]型へ、取り出す方法はないのでしょうか?
SpanのToArray()は新しい配列を作ってしまうので、それではないです

144 名前:デフォルトの名無しさん [2021/12/22(水) 20:11:28.65 ID:LzRptcUf0.net]
List〈staring〉の中に複数四角の座標点が入っていて、四角と四角重なってるものを再計算して重なりがなくなるまで繰り返したいんですが、これは無限ループですよね?
重なった時の再計算方法は別にしてコードの構成ってどうやってやるのか教えて欲しいです。

145 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 20:18:40.21 ID:epvDktEA0.net]
>>141
よくわからないけど
List<Rect>みたいな感じ?

146 名前:デフォルトの名無しさん [2021/12/22(水) 20:25:56.04 ID:svF48xPZM.net]
>>141
重なりは無くならないのですか?
無くなるのなら無限ではありませんね

147 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 20:54:43.67 ID:ASx8K7vaa.net]
2つの四角が重なってたら最大5つの四角に分割するってことなのかな
こんな関数用意して全組み合わせのstaringが分割しなくなるまでぶんまわす

List<staring> 分割処理(staring a, staring b)
{ (aとbが重なってたら分割して返す)}

148 名前:sage [2021/12/22(水) 21:36:42.01 ID:3dt5vZu90.net]
>>133
ありがとうございます

149 名前:デフォルトの名無しさん [2021/12/22(水) 22:51:01.68 ID:LzRptcUf0.net]
携帯なので伝わるかあれですが、まず元リスト(oLst)を
昇順に並び替えた上で下記のループを通すと1個に対して1個の重なりに関しては問題ないんですけど、2個3個と重なるともちろん無理なんですけど、、、、

======================
for oLst ループ

 ※数値変数格納

 if nLst.Countが0はoLst[i]をadd

 else

for nLstのloop

  ※数値変数格納

  ※oLst変数とnLst変数で重なり計算
  
  計算結果でnLst書き換え、追加

======================

150 名前:デフォルトの名無しさん [2021/12/22(水) 23:11:35.00 ID:jK1jR4AH0.net]
ロジック(頭)の問題だからスレチ

151 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 00:31:07.80 ID:OWAFmQuW0.net]
重なってたらどうするん?
重なってたら重ならないように移動って処理なら無限ループありえるよ
そもそも与えられた領域に対して四角形の面積のが大きかったらどう処理しようが重ならないようにするのは不可能でしょ

152 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 01:52:30.77 ID:xiJKAqfg0.net]
質問者c#使う気ナッシングでワロタ



153 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 06:06:41.21 ID:9nVKwS0QM.net]
学校の課題が出る季節なのか?

154 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 09:21:59.12 ID:QC2UxaCs0.net]
>>139
返信ありがとうございます。
やっぱりどこかで取ってからDIしたほうがいいですよね

.NET 5 まではStartupでいろいろやってたんですが、
.NET 6 のASP.NET Core WebだとStartup.cs自体やConfigure周りがないんですよね・・・
(少なくともプロジェクト作成時点で)
なので起動後、URLアクセス時点でコントローラに直に行ってるように見えます・・

.NET 6のググラビリティもそんな良くないですが、
DI自体はbuilder.Services.AddTransientあたりでできているので、そっちで出来ないか、
最悪はStartupを自作出来ないかまた調べてみます!

155 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 09:47:09.94 ID:lsirm1I00.net]
>>140
君はspanの実態がchar[] strと知ってるかもしれないけど言語側からはそんなこと分からないからそれは無理だね
char[]含めマネージ型はアンセーフな方法で作る事は不可能なので、もしそのspanの実態がstackallocとかだとしたら大変な事になるし
どうしてもやりたいならMemory<T>を使えばできる

156 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 14:18:00.17 ID:D5zS0GJt0.net]
>>151
.NET6でもStartupがC#9.0のトップレベル構文に変わってProgram.csに組み込まれただけでしょ?
例えばJWTならProgram.csで以下のように検証処理を登録可能じゃないのかな

using (var serviceScope = app.Services.CreateScope())
{
  services.AddAuthentication( JwtBearerDefaults.AuthenticationScheme ).AddJwtBearer( options => ほげほげ);
};
でservice取得して.NET5以前のConfigureServices相当の処理が出来ると思うが。
(というか出来ないと困るw)

157 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 14:20:58.23 ID:D5zS0GJt0.net]
services取得する文が抜けてた失礼
using (var serviceScope = app.Services.CreateScope())
{
  var services = serviceScope.ServiceProvider;
  services.AddAuthentication( JwtBearerDefaults.AuthenticationScheme ).AddJwtBearer( options => ほげほげ);
};

158 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 16:52:51.25 ID:QC2UxaCs0.net]
>>153
ありがとうございました。
コードまで書いてもらってすみません。

Jwtでのやりかたは
https://www.c-sharpcorner.com/article/jwt-token-authentication-and-authorizations-in-net-core-6-0-web-api/
のやりかたで出来ました(サービスのDIみたいな。staticですが)

ですが今回は、JWTでなく独自のランダム文字列で、DBで検証したいと思っています。

AddAuthenticationは参考になりました!
.NET 5 ではAuthenticationHandlerを継承しHandleAuthenticateAsyncをオーバーライドしてrequestを処理してました。。
いまだにHttpContextをコンストラクタ前に参照するやり方がわかりませんが、悩んでみます。

しかし、requestHeaderを全URLでDBで解析したいってだけなので、本来複雑になるのもおかしいんですよね・・・
FilterもちょっとアレですしJwtにしても複雑になっててちょっとな・・・

159 名前:デフォルトの名無しさん [2021/12/23(木) 17:22:50.07 ID:ZRc9iK9X0.net]
>>152
なるほどです、ご解説ありがとうございます
Memory<T>の方も調べてみます

160 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 13:32:10.30 ID:XCrVpQjR0.net]
オブジェクトをバイナリで直列化するにゃ結局どうすりゃええんじゃ。
binaryFormatterはASPじゃ使えんし、nugetで見つけたBinarySerializerも
すぐ無限ループで止まるし遅いしで使えなさそう。
JsonSerializer感覚で使えるバイナリのシリアライザは無いんか……

161 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 14:34:05.08 ID:dgPpP4/Qa.net]
バイナリであることに意味があるとは思えないので(だって全てはバイナリだから)
要するに吐き出すサイスが小さい and/or 高速であればいいんだよね?

いや答えは持ってないけどw

162 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 14:52:18.99 ID:QunxCEetM.net]
MSは廃止されたWCFの代替としてgrpcを推奨してるから、バイナリ形式のシリアライザはprotobufでいいんじゃね



163 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 16:56:42.12 ID:XCrVpQjR0.net]
>>158
せや。今ワイは差分データを管理してオブジェクトグラフの去就を眺められるようなアプリを作っとるんやが、
バイナリにすりゃ20バイトのデータがJsonを経由すると5倍とかに膨れてまうんや。
そんだけ差があると1000オブジェクトの各1000差分で100MBとか差が出ちまうわけで。
ここをもっと高圧縮+高速展開できるフォーマットにしたいんや。

164 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 16:58:00.07 ID:hnRiR98X0.net]
し、し・・・尻洗い座






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<279KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef