!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part157
https://mevius.5ch.net/test/read.cgi/tech/1669349768/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.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
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part158
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ fe7b-Nimo)
2023/03/26(日) 07:31:00.51ID:2LMOL5Ty0952デフォルトの名無しさん (ワッチョイ 0ba7-4FLK)
2023/08/01(火) 19:37:01.30ID:EZnFv0QC0 真のエコはシングルスレッド非同期
プログラミングコストは爆増するけどな
プログラミングコストは爆増するけどな
953デフォルトの名無しさん (ワッチョイ 2301-iCAU)
2023/08/01(火) 23:34:51.68ID:MwS5ZIT40 魔法の呪文DoEventsでおk
954デフォルトの名無しさん (ワッチョイ 8f7c-0u9z)
2023/08/02(水) 07:43:03.92ID:MJ0E5XCG0 進捗表示、キャンセルや一時停止を受け付けない設計はクソ。
955デフォルトの名無しさん (ワッチョイ 17ae-CF7t)
2023/08/03(木) 10:08:52.15ID:icL6sh+90 シリアルポートからの送信を出来るだけ高速に受信したいのですが、下記以外に何かありますでしょうか?
また高速化する方法がありましたら、指摘してください。
よろしくお願いします。
LinkedList<byte> LLBuffer = new LinkedList<byte>();
SerialPort sp = new SerialPort();
byte[] buf = Encoding.ASCII.GetBytes(sp.ReadExisting());
foreach(byte b in data)
LLBuffer.AddLast(b);
また高速化する方法がありましたら、指摘してください。
よろしくお願いします。
LinkedList<byte> LLBuffer = new LinkedList<byte>();
SerialPort sp = new SerialPort();
byte[] buf = Encoding.ASCII.GetBytes(sp.ReadExisting());
foreach(byte b in data)
LLBuffer.AddLast(b);
956デフォルトの名無しさん (ワッチョイ 0ba7-4FLK)
2023/08/03(木) 11:06:07.21ID:L6gOIzTH0 >>955
単なる生バイト配列が欲しいんだったらEncoding.ASCII.GetBytes(sp.ReadExisting())は二重に無駄な事してるから
var buf = new byte[1024];
int count = sp.Read(buf, 0, buf.Length);
for (int i = 0; i < count; ++i) LLBuffer.AddLast(buf[i]);
単なる生バイト配列が欲しいんだったらEncoding.ASCII.GetBytes(sp.ReadExisting())は二重に無駄な事してるから
var buf = new byte[1024];
int count = sp.Read(buf, 0, buf.Length);
for (int i = 0; i < count; ++i) LLBuffer.AddLast(buf[i]);
957デフォルトの名無しさん (ワッチョイ 17ae-CF7t)
2023/08/03(木) 11:41:09.07ID:icL6sh+90 >>956
ありがとうございます。
現在は1024バイト固定で受信しているのですが、
sp.ReadBufferSize()で見ているとどんどんシリアルポートのバッファが溜まって頭打ちになっているので、
アプリ側で出来るだけ取得しておきたいと思い、sp.ReadExisting()の使用を検討しているところです。
ありがとうございます。
現在は1024バイト固定で受信しているのですが、
sp.ReadBufferSize()で見ているとどんどんシリアルポートのバッファが溜まって頭打ちになっているので、
アプリ側で出来るだけ取得しておきたいと思い、sp.ReadExisting()の使用を検討しているところです。
958デフォルトの名無しさん (ワッチョイ 0ba7-4FLK)
2023/08/03(木) 12:22:33.04ID:L6gOIzTH0 >>957
IOの方が早いなんてことは有り得ないからwhileで回すとかはしてる?
内部バッファが空の時にsp.Read(buf, 0, buf.Length)するとブロックされちゃうのかな
そうじゃないならwhile ((count = sp.Read(buf, 0, buf.Length)) != 0)、
ブロックされるとしてそれが嫌ならsp.BytesToReadで溜まってるバイト数チェックやDataReceivedイベントで拾うとか
IOの方が早いなんてことは有り得ないからwhileで回すとかはしてる?
内部バッファが空の時にsp.Read(buf, 0, buf.Length)するとブロックされちゃうのかな
そうじゃないならwhile ((count = sp.Read(buf, 0, buf.Length)) != 0)、
ブロックされるとしてそれが嫌ならsp.BytesToReadで溜まってるバイト数チェックやDataReceivedイベントで拾うとか
959デフォルトの名無しさん (スッップ Sd2f-YWx9)
2023/08/05(土) 10:43:10.90ID:wvUeqD5zd 誰も突っ込まないけどシリアル受信に間に合わないは普通にあり得るくね、
960デフォルトの名無しさん (ワッチョイ 9b2f-1PqA)
2023/08/05(土) 11:08:11.80ID:6FXtwa520 シリアルってだけで実際のスピードもハードスペックもPCの使用状況も書いてないけど
個人的意見なら、いまどきのハードでC#で普通に作って間に合わんなんて、
他に何か原因がなければ想像できんレベルだが
個人的意見なら、いまどきのハードでC#で普通に作って間に合わんなんて、
他に何か原因がなければ想像できんレベルだが
961デフォルトの名無しさん (ワッチョイ 01c5-i02c)
2023/08/05(土) 11:37:11.83ID:kMOIqdZr0 同期9600bps を試しにやってみたまえ。
LANCとかやね
LANCとかやね
962デフォルトの名無しさん (ワッチョイ 9949-HLSB)
2023/08/05(土) 11:45:14.79ID:29MU2LyY0 .NET7でnlogがあれやこれやしてもうんともすんとも言わないので
おすすめのログのライブラリとかありまふか
おすすめのログのライブラリとかありまふか
963デフォルトの名無しさん (オイコラミネオ MMc9-1ro1)
2023/08/05(土) 14:09:41.96ID:wQaB7TT9M nugetのランキング上位にあるやつ使えるのでは?
964デフォルトの名無しさん (ワッチョイ 472d-SCbl)
2023/08/05(土) 15:32:52.86ID:JFXqS/BH0 .NET7でNLog普通に使えてるけどなぁ
ちょっと前のバージョン(5.1.4)だからか?
ちょっと前のバージョン(5.1.4)だからか?
965デフォルトの名無しさん (ワッチョイ 472d-SCbl)
2023/08/05(土) 15:46:07.77ID:JFXqS/BH0 nugetの最新(5.2.2)にしたけど使えてるな
966デフォルトの名無しさん (オイコラミネオ MMc9-1ro1)
2023/08/05(土) 16:15:39.59ID:wQaB7TT9M .NET7使ってるのが驚き
967デフォルトの名無しさん (ワッチョイ 4954-4gg4)
2023/08/06(日) 21:10:40.86ID:t8XxdJlt0 その程度で驚くヤツはくるみぽんちおの刑だな。
うちの製品なんて、.net framework 1.1 使ってる製品もある。
しかも重要ユーザーからの要望があれば機能追加までしてる。
うちの製品なんて、.net framework 1.1 使ってる製品もある。
しかも重要ユーザーからの要望があれば機能追加までしてる。
968デフォルトの名無しさん (ワッチョイ b310-jhPE)
2023/08/07(月) 07:41:51.88ID:NZgbVHgQ0 XPで動かしてそう
969デフォルトの名無しさん (ワッチョイ 7be5-uQHI)
2023/08/07(月) 09:07:25.45ID:TF3XFQ9V0 OSにしてもランタイムにしても、古いのずっと生き残ってるのあるあるだよな
うちの顧客なんてVB6製アプリをXPで動かしてるとこまだあるしな……
うちの顧客なんてVB6製アプリをXPで動かしてるとこまだあるしな……
970デフォルトの名無しさん (ワッチョイ 7be5-uQHI)
2023/08/07(月) 09:08:05.81ID:TF3XFQ9V0 流石にNT4はもう居なくなったけど
971デフォルトの名無しさん (ワッチョイ eb42-tyL0)
2023/08/07(月) 09:17:47.25ID:82JZu0tI0 ニューテクノロジ4か
名前にニューって付けて年月経つと碌なことにならないな
名前にニューって付けて年月経つと碌なことにならないな
972デフォルトの名無しさん (アウアウウー Sa9d-mBaV)
2023/08/07(月) 10:03:51.30ID:wl/Lx6N5a うめようず
973962 (ワッチョイ 9949-c/5M)
2023/08/07(月) 10:41:55.42ID:NRD23MMX0 NLog動くようになった!
コードで設定すると動く、でもConfigは反映されないからと色々やってたら
「出力ディレクトリをコピー」
「ビルドアクション」
を設定してないことに気づいた
C#(てかVS)久しぶりすぎて各ファイルにあるプロパティの存在を忘れてたw
コードで設定すると動く、でもConfigは反映されないからと色々やってたら
「出力ディレクトリをコピー」
「ビルドアクション」
を設定してないことに気づいた
C#(てかVS)久しぶりすぎて各ファイルにあるプロパティの存在を忘れてたw
974デフォルトの名無しさん (スッププ Sd03-XWNR)
2023/08/07(月) 14:14:56.57ID:MBhkVnR+d ふぅ・・・例外握りつぶしてたぜ・・やっと不具合原因のとっかかり見つけた
975デフォルトの名無しさん (アウアウクッ MMf3-uQHI)
2023/08/07(月) 15:03:38.79ID:A9F8fN0gM byte high = 0xff;;
bool flag = (high & 0b10000000) != 0;
これをもっとC#っぽくできないの?
bool flag = (high & 0b10000000) != 0;
これをもっとC#っぽくできないの?
976デフォルトの名無しさん (ワッチョイ 472d-SCbl)
2023/08/07(月) 15:16:30.47ID:gOyFWeUo0 >>975
フラグをenum定義したら
[Flags]
enum Hoge : byte
{
Flag0 = 1 << 0,
Flag1 = 1 << 1,
...
Flag7 = 1 << 7,
}
var high = ( Hoge )0xff;
high.HasFlag( Hoge.Flag7 );
フラグをenum定義したら
[Flags]
enum Hoge : byte
{
Flag0 = 1 << 0,
Flag1 = 1 << 1,
...
Flag7 = 1 << 7,
}
var high = ( Hoge )0xff;
high.HasFlag( Hoge.Flag7 );
977デフォルトの名無しさん (ワッチョイ c379-IXit)
2023/08/07(月) 23:19:46.08ID:4jmmvhVW0 enumに属性がなんか気持ち悪いし…使用時にキャストしてるのもなんだかな
#defineが無い弊害がこういうとこで出るのか
C/C++のビット演算はイディオムで綺麗に書けるのにな
#defineが無い弊害がこういうとこで出るのか
C/C++のビット演算はイディオムで綺麗に書けるのにな
978デフォルトの名無しさん (ワッチョイ 1bd6-SCbl)
2023/08/07(月) 23:34:33.91ID:gDjmIGTi0 キャストが嫌なら、複数のフラグをORで連結すれば
979デフォルトの名無しさん (ワッチョイ 1bd6-SCbl)
2023/08/07(月) 23:44:21.58ID:gDjmIGTi0 途中で書き込んじゃった
enumに↓を追加
All = Flag0 | Flag1 | Flag2 | Flag3 | Flag4 | Flag5 | Flag6 | Flag7,
var high = Hoge.All;
enumに↓を追加
All = Flag0 | Flag1 | Flag2 | Flag3 | Flag4 | Flag5 | Flag6 | Flag7,
var high = Hoge.All;
980デフォルトの名無しさん (ワッチョイ 7be5-uQHI)
2023/08/08(火) 08:54:05.88ID:aeM2XQJJ0 個人的には、Flagsよりも定義でビットシフトしてるんがなんか嫌だなw
>>975でも十分C#っぽい気はするけどねぇ
C/C++でif(high & 0x80)で済むのはBOOLの実体が数値だからで
C#のboolは別物だからしょうがないし
>>975でも十分C#っぽい気はするけどねぇ
C/C++でif(high & 0x80)で済むのはBOOLの実体が数値だからで
C#のboolは別物だからしょうがないし
981デフォルトの名無しさん (ワッチョイ 7be5-uQHI)
2023/08/08(火) 09:22:12.70ID:aeM2XQJJ0982デフォルトの名無しさん (アウアウクッ MMf3-uQHI)
2023/08/09(水) 09:18:17.06ID:tGujvv4CM このままでいい気がしてきた
983デフォルトの名無しさん (ワッチョイ 095f-SCbl)
2023/08/10(木) 00:40:12.02ID:P/TzKPwA0984デフォルトの名無しさん (ワッチョイ b310-uQHI)
2023/08/10(木) 07:11:54.17ID:ao9yBEOh0 何ビット目かって表現なら、それこそ>>975の方がC#では普通になったんじゃない?
985デフォルトの名無しさん (ワッチョイ 2b6e-D1BR)
2023/08/11(金) 16:58:32.91ID:JGKsK+J90 ラムダ式ってこうちょろちょろっとした処理を書くのに使うものであってでかい処理は関数定義するのが基本って認識だったんですけど間違ってますかね
もう今のプロジェクトラムダ式渡すところで数十行の関数がガンガン出てきてて
デバッグしにくいわかりにくいでげんなりしています。まぁこれに限らずそもそも表に出る機能単位でしか考えてないのか関数抽出するって考え方があんま無いみたいな現場なんですが……
もう今のプロジェクトラムダ式渡すところで数十行の関数がガンガン出てきてて
デバッグしにくいわかりにくいでげんなりしています。まぁこれに限らずそもそも表に出る機能単位でしか考えてないのか関数抽出するって考え方があんま無いみたいな現場なんですが……
986デフォルトの名無しさん (オイコラミネオ MMc9-uQHI)
2023/08/11(金) 18:07:32.18ID:CXONK6kXM >>985
どうとでもいえるけど基本的にはその使い方は特に間違ってはいないので認識が間違っていると思う
処理の委譲目的ならそれが普通かも
関数抽出しやすいなら関数を抽出する
ローカル変数などに依存度が高いならそのまんま書いたほうがいい
設計がしっかりしてクラスを作ってそれを渡しあってるとかなら別だけどそんなことしてられないと思う
どうとでもいえるけど基本的にはその使い方は特に間違ってはいないので認識が間違っていると思う
処理の委譲目的ならそれが普通かも
関数抽出しやすいなら関数を抽出する
ローカル変数などに依存度が高いならそのまんま書いたほうがいい
設計がしっかりしてクラスを作ってそれを渡しあってるとかなら別だけどそんなことしてられないと思う
987デフォルトの名無しさん (ワッチョイ c379-IXit)
2023/08/11(金) 18:39:03.98ID:I7dwFhkG0 デバッグしたいなら1処理ずつ分けて書き直しゃいいだろ
C#のlambdaはdelegateの意味も暗黙に含んでるからそのものは削らない方がいいけど
C#のlambdaはdelegateの意味も暗黙に含んでるからそのものは削らない方がいいけど
988デフォルトの名無しさん (ワッチョイ b310-uQHI)
2023/08/11(金) 20:58:53.23ID:0dzc0r6z0 同じ処理を他でも使うならメソッド化した方がいいと思うけど、そこでしかやらないならラムダでかまわんと思うけどな
今やローカル関数なんてのもあるし
今やローカル関数なんてのもあるし
989デフォルトの名無しさん (ワッチョイ 395f-17EC)
2023/08/19(土) 20:49:54.56ID:UW3EkLqg0 closedxmlでセルに書き込み反映されない…なんで😭
990デフォルトの名無しさん (アウアウエー Sa23-NwC7)
2023/08/20(日) 02:06:38.74ID:RsoPGDy3a jsonのテキストをデコードできる関数ないかな?
htmlでいうところのHttpUtility.HtmlDecode()のjson文字列版
「https:\u002F\u002Fwww」を「https://www」に変換したい
そんなの自作しろと言われたらそれまでだけど、あるならあるの使いたいので
htmlでいうところのHttpUtility.HtmlDecode()のjson文字列版
「https:\u002F\u002Fwww」を「https://www」に変換したい
そんなの自作しろと言われたらそれまでだけど、あるならあるの使いたいので
991デフォルトの名無しさん (アウアウエー Sa23-NwC7)
2023/08/20(日) 04:06:30.93ID:RsoPGDy3a Regex.Unescape()でいけるのかな
992デフォルトの名無しさん (ワッチョイ 2b10-YAjS)
2023/08/20(日) 08:33:15.17ID:OGvFjvg+0 ちょっと前にTwitterのデータ取得して遊んでた時はRegex.Unescapeでやってたけど
993デフォルトの名無しさん (ワッチョイ db79-wKkg)
2023/08/20(日) 18:10:25.72ID:Jez4Fpf50 そこで普通にjsonパーサ使おうと思わないの何でなん
994デフォルトの名無しさん (ワッチョイ 2b10-YAjS)
2023/08/20(日) 18:37:23.62ID:OGvFjvg+0 JsonNode.Parseでゲットした配列から取り出した文字列をRegex.Unescapeにかけたんだけどね
995デフォルトの名無しさん (アウアウエー Sa23-NwC7)
2023/08/20(日) 19:12:02.03ID:RsoPGDy3a jsonがあるわけじゃなかったから
適当なclass用意して文字列をjsonの書式にフォーマットしてパースして取り出すって流れは気分的にやりたくなかった
適当なclass用意して文字列をjsonの書式にフォーマットしてパースして取り出すって流れは気分的にやりたくなかった
996デフォルトの名無しさん (ワッチョイ c9c6-H9aa)
2023/08/20(日) 20:06:30.57ID:YUyQ4ipW0 "hoge"だけみたいな文字列も整形式のJSONだよ
JsonSerializer.Deserialize<string>("\"hoge\"");
生の文字列なら前後に二重引用符付ける必要はあるだろうけど
JsonSerializer.Deserialize<string>("\"hoge\"");
生の文字列なら前後に二重引用符付ける必要はあるだろうけど
997デフォルトの名無しさん (アウアウエー Sa23-NwC7)
2023/08/20(日) 21:07:24.34ID:RsoPGDy3a 試したら動いた。stringクラス指定だけでできたのか。それは知らなかった
998デフォルトの名無しさん (ワッチョイ 93e5-YAjS)
2023/08/21(月) 08:03:28.38ID:Ndtw0dBa0 うめか
999デフォルトの名無しさん (ワッチョイ 395f-4N9b)
2023/08/21(月) 14:43:41.77ID:s1KrJzLF0 質問いいですか?
1000デフォルトの名無しさん (ワッチョイ 5933-H9aa)
2023/08/21(月) 14:52:47.39ID:CrzDFbde0 どうぞどうぞ
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 148日 7時間 21分 47秒
新しいスレッドを立ててください。
life time: 148日 7時間 21分 47秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 「すごいアイドル出てきた」「かわいすぎる」ラヴィット初登場の美女に視聴者驚き ≠ME櫻井もも [ヴァイヴァー★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【高市速報】小野田キミ「中国依存はリスク」断交を示唆か [931948549]
- 【んな専🏡】なんG 姫森ルーナ(・o・🍬)総合スレ🏰【ホロライブ▶】
- 【悲報】高市早苗周辺「支持層が離れるので今更発言を撤回できない」 [935793931]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
