「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
探検
ふらっと C#,C♯,C#(初心者用) Part139
レス数が1000を超えています。これ以上書き込みはできません。
2018/08/05(日) 19:55:44.50ID:tZmoj8I+
946デフォルトの名無しさん
2018/10/01(月) 21:21:37.68ID:GAigBMDv C#でshortの配列をushortの配列として扱うにはどうしたらいいのでしょう?
ushortの配列を確保してそこにブロックコピーすればいいのですが、コピーせずに扱いたいです
Cでの例
short data[1000];
data[0] = -3;
ushort out = ((ushort*)data)[0]
ushortの配列を確保してそこにブロックコピーすればいいのですが、コピーせずに扱いたいです
Cでの例
short data[1000];
data[0] = -3;
ushort out = ((ushort*)data)[0]
947デフォルトの名無しさん
2018/10/01(月) 21:29:45.12ID:ySL85z/t >>946
C#でも共用体は作れるので、それでやるのが正攻法だろうね
C#でも共用体は作れるので、それでやるのが正攻法だろうね
948デフォルトの名無しさん
2018/10/01(月) 21:30:26.35ID:lLn/Vvr8949デフォルトの名無しさん
2018/10/01(月) 21:45:52.11ID:GAigBMDv ありがとう
short[] data = new short[1000];
data[0] = -3;
data[1] = -5;
ushort out1;
ushort out2;
unsafe
{
fixed (short* p = data)
{
out1 = *(ushort*)&p[0];
out2 = *(ushort*)&p[1];
}
}
short[] data = new short[1000];
data[0] = -3;
data[1] = -5;
ushort out1;
ushort out2;
unsafe
{
fixed (short* p = data)
{
out1 = *(ushort*)&p[0];
out2 = *(ushort*)&p[1];
}
}
950デフォルトの名無しさん
2018/10/01(月) 22:03:04.13ID:rOV5V8ry >>949
fixedブロックの中は
ushort* p2 = ( ushort * )p;
out1 = p2[ 0 ];
out2 = p2[ 1 ];
の方が完結。
その使い方ならunsafe使わずキャストするだけで良い気がするけど
ushort out1 = (ushort)data[0];
ushort out2 = (ushort)data[1];
fixedブロックの中は
ushort* p2 = ( ushort * )p;
out1 = p2[ 0 ];
out2 = p2[ 1 ];
の方が完結。
その使い方ならunsafe使わずキャストするだけで良い気がするけど
ushort out1 = (ushort)data[0];
ushort out2 = (ushort)data[1];
951デフォルトの名無しさん
2018/10/02(火) 14:52:23.87ID:lpR7dPFU 初心者な質問で申し訳ありませんが
if 〜else if〜で50個くらい分岐作りたいんだけど
これは上に書いたのから順に条件判別するんですかね?
てことは出現確率の高い条件から順に上から書いていけば
全体に早いシステムができるってことですかね?
それはswitch 〜case〜でも同じですか?
if 〜else if〜で50個くらい分岐作りたいんだけど
これは上に書いたのから順に条件判別するんですかね?
てことは出現確率の高い条件から順に上から書いていけば
全体に早いシステムができるってことですかね?
それはswitch 〜case〜でも同じですか?
952デフォルトの名無しさん
2018/10/02(火) 15:07:02.75ID:ibUSG6OV953デフォルトの名無しさん
2018/10/02(火) 15:13:05.30ID:lpR7dPFU そうですか〜読みやすさ重視ですか〜
954デフォルトの名無しさん
2018/10/02(火) 15:25:17.74ID:giBEQZ0B 読みやすさとかそういう問題ではない
断言するが、お前のプログラムのボトルネックはそんなところにはない
そういうくだらないことに時間を無駄に使ってると、バグ潰しをしたり本当のボトルネックを見つけて改善したりする暇がなくなり、
結果的にバグだらけでゲロ遅く使い物にならない糞が出来上がる
断言するが、お前のプログラムのボトルネックはそんなところにはない
そういうくだらないことに時間を無駄に使ってると、バグ潰しをしたり本当のボトルネックを見つけて改善したりする暇がなくなり、
結果的にバグだらけでゲロ遅く使い物にならない糞が出来上がる
955デフォルトの名無しさん
2018/10/02(火) 15:33:51.14ID:77rOVAHm956デフォルトの名無しさん
2018/10/02(火) 15:40:49.43ID:sf+Shg+9957デフォルトの名無しさん
2018/10/02(火) 15:52:19.51ID:xEUi7AEU 50分岐なのか単に一か所に50ifが並ぶのか分からないけど、
どっちにしろまず設計がおかしいことを疑うレベルだねw
それが必要になるケースは絶対にありえないとまでは断定できないけど、
普通に考えれば何か間違ってる
どっちにしろまず設計がおかしいことを疑うレベルだねw
それが必要になるケースは絶対にありえないとまでは断定できないけど、
普通に考えれば何か間違ってる
958デフォルトの名無しさん
2018/10/02(火) 19:15:29.75ID:77rOVAHm 文字の判定やらデコードやら色々あるから別におかしくはないんじゃない
959デフォルトの名無しさん
2018/10/02(火) 20:19:02.96ID:vJb5Fq5Q >>951
switchでcaseがすべて数値か文字列の定数ならif〜else if相当ではなくてジャンプテーブルに変換されて最適化される
switchでcaseがすべて数値か文字列の定数ならif〜else if相当ではなくてジャンプテーブルに変換されて最適化される
960デフォルトの名無しさん
2018/10/02(火) 20:30:20.49ID:bw+oM93m961デフォルトの名無しさん
2018/10/02(火) 20:34:18.50ID:LVKvBfXE962デフォルトの名無しさん
2018/10/02(火) 20:35:28.70ID:V4PRuizJ963デフォルトの名無しさん
2018/10/02(火) 20:38:43.68ID:V4PRuizJ リッチ―の作ったCコンパイラもずらっとswitchの下にcaseが並んでる
しかもgotoだらけ
しかもgotoだらけ
964デフォルトの名無しさん
2018/10/02(火) 22:31:24.70ID:71TIb3fi ふと思ったが、ifやswitchよりデリゲートの配列で組んだ場合、可読性は別としてどんなもん?
965デフォルトの名無しさん
2018/10/02(火) 22:33:29.94ID:71TIb3fi ん、951は通信電文の解析処理を組もうとしてるのかな?
966デフォルトの名無しさん
2018/10/02(火) 22:51:46.79ID:PHVx+viB >>964
単純な数値による分岐なら50くらいだとif並べたほうが速いだろうな
単純な数値による分岐なら50くらいだとif並べたほうが速いだろうな
967デフォルトの名無しさん
2018/10/02(火) 23:53:56.61ID:71TIb3fi おお
そっか
そっか
968デフォルトの名無しさん
2018/10/03(水) 03:19:05.44ID:1BUWQtFr いやいや、ビルドした時点で単なる条件分岐文の羅列に変換されるんだから
早いも遅いも無い
早いも遅いも無い
969デフォルトの名無しさん
2018/10/03(水) 06:32:57.32ID:GxEu0OX8 ILではifの羅列に変換されてるね
970デフォルトの名無しさん
2018/10/03(水) 10:25:12.89ID:53fMVr1s 今試してみたけど条件の羅列にはならなかったよ
ただ実験は同じ関数を大量に登録するだけだけど、実際に使うにはデリゲート配列に関数を登録する所がめちゃくちゃになりそうだ
ただ実験は同じ関数を大量に登録するだけだけど、実際に使うにはデリゲート配列に関数を登録する所がめちゃくちゃになりそうだ
971デフォルトの名無しさん
2018/10/03(水) 19:45:09.01ID:vaeuJqrS ライブラリ制作でもなきゃ
ILコードの速度より可読性優先でしょ
最近は性能がトレンドだけだも
ILコードの速度より可読性優先でしょ
最近は性能がトレンドだけだも
972デフォルトの名無しさん
2018/10/03(水) 19:49:00.54ID:WJ9CzqGu だきゃだも
973デフォルトの名無しさん
2018/10/04(木) 10:27:45.19ID:AqgyV2h4 ドラえもん
974デフォルトの名無しさん
2018/10/04(木) 11:35:52.27ID:z7XJZMIb VisualStudio2017とC#でDLLとEXEのプロジェクトを含んだソリューションを構成しているのですが、
EXEのプロジェクトはブレイクポイントで止まるのにDLL側のプロジェクトはブレイクポイントを設定しても止まりません。
どうすれば止まるように設定することができるのでしょうか?
EXEのプロジェクトはブレイクポイントで止まるのにDLL側のプロジェクトはブレイクポイントを設定しても止まりません。
どうすれば止まるように設定することができるのでしょうか?
975デフォルトの名無しさん
2018/10/04(木) 11:42:31.93ID:z7XJZMIb976デフォルトの名無しさん
2018/10/04(木) 12:09:23.53ID:HivlLKp0 >>975
質問したならせめてどう設定したのか書いてくれると助かる
質問したならせめてどう設定したのか書いてくれると助かる
977デフォルトの名無しさん
2018/10/04(木) 12:11:58.26ID:LF7COV6m プロジェクトじゃなくてアセンブリを直接参照したんだと思うよ
978デフォルトの名無しさん
2018/10/04(木) 17:53:02.89ID:JnxMNCXd 正規表現で、特定の変数に格納された文字列が行頭に含まれるときにマッチさせたいのですが
変数にメタ文字が含まれているとそのままメタ文字として機能してしまいます。
\Q〜\Eを使おうとすると認識されないエスケープシーケンスと出てしまうのですが
呼び出した変数をエスケープする方法はありませんか?
string tag = "."; //この変数はユーザー入力により可変させたい
Regex r = new Regex("^"+ tag, RegexOptions.Multiline);
MatchCollection mc = r.Matches(text, 0);
変数にメタ文字が含まれているとそのままメタ文字として機能してしまいます。
\Q〜\Eを使おうとすると認識されないエスケープシーケンスと出てしまうのですが
呼び出した変数をエスケープする方法はありませんか?
string tag = "."; //この変数はユーザー入力により可変させたい
Regex r = new Regex("^"+ tag, RegexOptions.Multiline);
MatchCollection mc = r.Matches(text, 0);
979デフォルトの名無しさん
2018/10/04(木) 17:57:50.18ID:+1iioCH6 何を言ってるのjかさっぱりわからないけど
\のエスケープは\\だよ
\のエスケープは\\だよ
980デフォルトの名無しさん
2018/10/04(木) 18:03:01.48ID:JnxMNCXd981デフォルトの名無しさん
2018/10/04(木) 18:06:55.71ID:+1iioCH6 やっぱり意味がわからないよ
string.Replace
string.Replace
982デフォルトの名無しさん
2018/10/04(木) 18:09:55.61ID:+1iioCH6 行頭マッチならstring.StartWith()
983デフォルトの名無しさん
2018/10/04(木) 18:09:57.35ID:58olDMZF Regex.Escape
984デフォルトの名無しさん
2018/10/04(木) 18:14:09.25ID:JnxMNCXd >>983
これでした! ありがとうございます!
Regex r = new Regex("^"+ Regex.Escape(tag), RegexOptions.Multiline);
でいけました
これでした! ありがとうございます!
Regex r = new Regex("^"+ Regex.Escape(tag), RegexOptions.Multiline);
でいけました
985デフォルトの名無しさん
2018/10/04(木) 18:35:26.88ID:A2T5Igf7 ID:+1iioCH6
986デフォルトの名無しさん
2018/10/04(木) 18:42:53.36ID:+1iioCH6 スレ汚し失礼しましたとか書けばいいのか
987デフォルトの名無しさん
2018/10/04(木) 18:44:59.38ID:hCvwn5pe988デフォルトの名無しさん
2018/10/04(木) 18:50:46.18ID:JnxMNCXd あっ980踏んだの気付いてませんでした
立ててきます
立ててきます
989デフォルトの名無しさん
2018/10/04(木) 18:57:34.68ID:JnxMNCXd990デフォルトの名無しさん
2018/10/04(木) 18:58:45.39ID:iLCCeyjR >>986
恥ずかしい奴ってことで晒されてるんだぞ
恥ずかしい奴ってことで晒されてるんだぞ
991デフォルトの名無しさん
2018/10/04(木) 18:59:38.71ID:hCvwn5pe >>989
スレたて乙
スレたて乙
992デフォルトの名無しさん
2018/10/04(木) 19:30:48.59ID:NR8ALYp6 アプリで使用する最大スレッド数ってどう決めるのがいいですか?
993デフォルトの名無しさん
2018/10/04(木) 19:32:22.83ID:hCvwn5pe994デフォルトの名無しさん
2018/10/04(木) 19:32:31.16ID:NR8ALYp6 単純にCPUのスレッド数を最大に設定しておけばいいですか?
それともCPUのスレッド数-1とかの方がいいのでしょうか?
なんか決め方に基準とか規則とかって考え方あったら教えてください
それともCPUのスレッド数-1とかの方がいいのでしょうか?
なんか決め方に基準とか規則とかって考え方あったら教えてください
995デフォルトの名無しさん
2018/10/04(木) 19:33:24.53ID:NR8ALYp6996デフォルトの名無しさん
2018/10/04(木) 19:33:38.12ID:hCvwn5pe997デフォルトの名無しさん
2018/10/04(木) 19:36:48.58ID:NR8ALYp6998デフォルトの名無しさん
2018/10/04(木) 19:49:35.37ID:SzxHzs6N tiffのヘッダ情報を参照する方法ってどのようにすれば良いのでしょうか
画像読み込みは見つかるのだけどヘッダ情報参照方法が見つからず
画像読み込みは見つかるのだけどヘッダ情報参照方法が見つからず
999デフォルトの名無しさん
2018/10/04(木) 20:53:42.03ID:4K2yXx2T >>992
case by case
case by case
1000デフォルトの名無しさん
2018/10/04(木) 21:07:43.98ID:hGGFGhl9 System.Drawing.Bitmapに読み込んでPropertyItemsから取得する 全部取れるわけではない
System.Windows.Media.Imaging.BitmapMetadataを使う 大体取れるはず
ヘッダだけ読んで画像データは読み込みたくない!ってなら標準ライブラリには存在しないな
System.Windows.Media.Imaging.BitmapMetadataを使う 大体取れるはず
ヘッダだけ読んで画像データは読み込みたくない!ってなら標準ライブラリには存在しないな
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 60日 1時間 12分 0秒
新しいスレッドを立ててください。
life time: 60日 1時間 12分 0秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【独占スクープ】元TOKIOの松岡昌宏がSTARTO社を“退所”へ「国分のコンプライアンス違反」問題をきっかけに決断、12月から単独で活動 [Ailuropoda melanoleuca★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 高市早苗、約1ヶ月でドル円・10円円安を達成 [256556981]
- 「▇▇▇▇▇▇▇®」 ビゴーーーン
- おこめ券を9.5億円配るための経費「2.4億円です♥」
- するってぇと何かい?2週間前に安全を確認して輸入再開した海産物を食の安全のために輸入停止にしたってのかい?
- 【超絶朗報】高市早苗、月給5万円アップを突如確定させるWWWWW
- 【高市核兵器】 小泉コメ防衛大臣「民主党政権 岡田外務大臣の “非核三原則” に関する国会答弁を引き継いでいる」 政策堅持を明言 [485983549]
