■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part92
http://echo.2ch.net/test/read.cgi/tech/1485589613/
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C#, C♯, C#相談室 Part93©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 1e06-m8Mb)
2017/04/22(土) 08:52:00.93ID:iVvswOrb0884デフォルトの名無しさん (ワッチョイ 87f2-yQ/S)
2019/02/16(土) 11:09:50.80ID:mveZudXk0 別にいいと思うぞ。下位の呼び出しのどこかで失敗したということに対して適切に処置するなら。
885デフォルトの名無しさん (ワッチョイ a761-yQ/S)
2019/02/16(土) 12:03:59.89ID:mmBt6tnL0 >>883
例外は握りつぶしてこそ華
例外は握りつぶしてこそ華
886デフォルトの名無しさん (ワッチョイ 47e3-yQ/S)
2019/02/16(土) 12:43:39.03ID:LCZTEEhT0 catch(Exception e){
887デフォルトの名無しさん (ワッチョイ 5f01-3Kdw)
2019/02/16(土) 13:08:53.78ID:q1DAaOKG0 >>883
> 例外っていろんな種類あるけど具体的に何を使えばいいのかよくわからなくて
投げる方で悩むのはわかるけど
> とりあえずcatch(Exception e)とかしちゃってる
受ける方はどれ受けるべきかはわかってるでしょ
最終手段としてよくわからんけどエラーが発生したから終了するね
って言うならcatch(Exception e)もありだと思うが
> 例外っていろんな種類あるけど具体的に何を使えばいいのかよくわからなくて
投げる方で悩むのはわかるけど
> とりあえずcatch(Exception e)とかしちゃってる
受ける方はどれ受けるべきかはわかってるでしょ
最終手段としてよくわからんけどエラーが発生したから終了するね
って言うならcatch(Exception e)もありだと思うが
888デフォルトの名無しさん (ワッチョイ 87f2-yQ/S)
2019/02/16(土) 13:37:31.27ID:mveZudXk0 終了というのがプログラムの終了のことなら逆にcatchしちゃだめだろう。
889デフォルトの名無しさん (ワッチョイ 7f7b-uWgP)
2019/02/16(土) 14:43:51.47ID:NIO8UzEI0890デフォルトの名無しさん (ワッチョイ 7f63-v083)
2019/02/16(土) 15:01:00.34ID:NEtPpdWW0 例外はありえない事態なんだからプログラム終了しなきゃまずいだろう
891デフォルトの名無しさん (アウアウエー Sa1f-x6Gg)
2019/02/16(土) 15:02:54.74ID:PR5Tb5Rba892デフォルトの名無しさん (オイコラミネオ MMdb-XSOg)
2019/02/16(土) 15:03:48.09ID:uy2P96bkM 最近部活の後輩が黒魔術みたいなコードを書くようになって困ってるんだが対策ない?
こんな感じのコードを後輩が書いてくるんだよ↓
public interface IMessenger {
__public MessageReceived();
}
public abstract class Messenger : IMessenger{
__public abstract void MessageReceived();
__public abstract void Retry();
}
こんな感じのコードを後輩が書いてくるんだよ↓
public interface IMessenger {
__public MessageReceived();
}
public abstract class Messenger : IMessenger{
__public abstract void MessageReceived();
__public abstract void Retry();
}
893デフォルトの名無しさん (オイコラミネオ MMdb-XSOg)
2019/02/16(土) 15:04:05.72ID:uy2P96bkM public class Mail : Messenger {
__public override void MessageReceived(){
____//処理
__}
__public override void Retry(){
____//処理
__}
}
public class Alarm : Messenger {
__public override void MessageReceived(){
____//処理
__}
__public override void Retry(){
____//処理
__}
}
public class Communication {
__public void SendMessage(IMesssenger message){
____SendMessage(message);
__}
__public void Received(){
____var received = GetMessage() as IMessage;
____received?.MessageReceived();
__}
}
__public override void MessageReceived(){
____//処理
__}
__public override void Retry(){
____//処理
__}
}
public class Alarm : Messenger {
__public override void MessageReceived(){
____//処理
__}
__public override void Retry(){
____//処理
__}
}
public class Communication {
__public void SendMessage(IMesssenger message){
____SendMessage(message);
__}
__public void Received(){
____var received = GetMessage() as IMessage;
____received?.MessageReceived();
__}
}
894デフォルトの名無しさん (オイコラミネオ MMdb-XSOg)
2019/02/16(土) 15:04:31.94ID:uy2P96bkM こんなんだったから
public class Communication{
__public void SendMessage(string message){
____SendMessage(message);
__}
__public void Received(){
____var received = GetMessage();
______switch(received.First()){
_______case "0":
_________MailEvent(received);
_________break;
_______case "1":
_________AlermEvent(received);
_________break
____}
__}
}
こんな感じで書くように矯正しといた
CSVで2文字で分けるって言ってるんだから
何が起こってるかわかるように書くことを意識してもらわないと
public class Communication{
__public void SendMessage(string message){
____SendMessage(message);
__}
__public void Received(){
____var received = GetMessage();
______switch(received.First()){
_______case "0":
_________MailEvent(received);
_________break;
_______case "1":
_________AlermEvent(received);
_________break
____}
__}
}
こんな感じで書くように矯正しといた
CSVで2文字で分けるって言ってるんだから
何が起こってるかわかるように書くことを意識してもらわないと
895デフォルトの名無しさん (ワッチョイ c701-cT+3)
2019/02/16(土) 15:06:36.58ID:8cj+4+Hl0 まあ例外でプログラムは終了させるべきだよな
ただ客は例外が起きてもcatchで握りつぶしてスルーした方が文句言わないんだよな……
ただ客は例外が起きてもcatchで握りつぶしてスルーした方が文句言わないんだよな……
896デフォルトの名無しさん (アウアウウー Sa4b-mBMX)
2019/02/16(土) 15:14:21.65ID:auHH3gBua897デフォルトの名無しさん (アウアウエー Sa1f-x6Gg)
2019/02/16(土) 15:19:24.61ID:PR5Tb5Rba898デフォルトの名無しさん (ワッチョイ 5f01-3Kdw)
2019/02/16(土) 15:41:54.82ID:q1DAaOKG0899デフォルトの名無しさん (ワッチョイ ff79-dufs)
2019/02/16(土) 22:53:53.99ID:gbHoDgK/0900デフォルトの名無しさん (ワッチョイ a7da-MZ+k)
2019/02/17(日) 00:48:25.53ID:0sFVNd3o0 宗教戦争を見物now
901デフォルトの名無しさん (ワッチョイ 7fa7-cT+3)
2019/02/17(日) 14:42:24.50ID:QIeMqQFm0 byte*からbyte[]にする方法ってない?
new byte[64];みたいに新規確保してコピーしか方法ないんだろうか
Unsafe.As等で新規確保無しで出来るかと思って色々試してみたけど上手くいかない
new byte[64];みたいに新規確保してコピーしか方法ないんだろうか
Unsafe.As等で新規確保無しで出来るかと思って色々試してみたけど上手くいかない
902デフォルトの名無しさん (アウアウエー Sa1f-x6Gg)
2019/02/17(日) 15:01:42.36ID:99sHKv96a 「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら
全然別の型なんだしあるわけないでしょう。
そういう危なっかしい機能を排除してるのがC#の売りの一つだったはずなわけで
コピーする機能ならMarshalあたりにあるんじゃない?
全然別の型なんだしあるわけないでしょう。
そういう危なっかしい機能を排除してるのがC#の売りの一つだったはずなわけで
コピーする機能ならMarshalあたりにあるんじゃない?
903デフォルトの名無しさん (ワッチョイ 7fa7-cT+3)
2019/02/17(日) 15:16:25.11ID:QIeMqQFm0 >>902
>「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら
そういうことです
あるわけないと言いますが、その逆はあるので出来るかなと思い
(byte*やref byteで先頭を指定し自作のstructとして読ませる。少しずらせばbyte[]を自作クラスとして読ませることも可能)
>「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら
そういうことです
あるわけないと言いますが、その逆はあるので出来るかなと思い
(byte*やref byteで先頭を指定し自作のstructとして読ませる。少しずらせばbyte[]を自作クラスとして読ませることも可能)
904デフォルトの名無しさん (ワッチョイ 275f-8zyB)
2019/02/17(日) 15:21:31.28ID:Ox4HquXb0905デフォルトの名無しさん (ワッチョイ a70c-yQ/S)
2019/02/17(日) 15:23:52.52ID:UNDanSNQ0 その逆がマネージドじゃ難しいからね
無理じゃないかなあ
やっぱこれからはSpanですよスパンスパン
無理じゃないかなあ
やっぱこれからはSpanですよスパンスパン
906デフォルトの名無しさん (ワッチョイ 7fa7-cT+3)
2019/02/17(日) 15:27:09.29ID:QIeMqQFm0 >>904
public struct MyStruct { public int Value1, Value2, Value3, Value4 };
byte[] data = new byte[16] { 1,0,0,0, 2,0,0,0, 3,0,0,0, 4,0,0,0 };
ref var myStruct = ref Unsafe.As<byte, MyStruct>(ref data[0]);
これでmyStruct .Value1は1、myStruct .Value2は2, myStruct .Value3は3, myStruct .Value4は4と余計なコピー無しに直接読み書きできる
byte[]からclassの場合はFieldOffset指定して各フィールドを4バイト後ろにづらないと出来ないから実用は難しいけど一応可能
public struct MyStruct { public int Value1, Value2, Value3, Value4 };
byte[] data = new byte[16] { 1,0,0,0, 2,0,0,0, 3,0,0,0, 4,0,0,0 };
ref var myStruct = ref Unsafe.As<byte, MyStruct>(ref data[0]);
これでmyStruct .Value1は1、myStruct .Value2は2, myStruct .Value3は3, myStruct .Value4は4と余計なコピー無しに直接読み書きできる
byte[]からclassの場合はFieldOffset指定して各フィールドを4バイト後ろにづらないと出来ないから実用は難しいけど一応可能
907デフォルトの名無しさん (ワッチョイ 7fa7-cT+3)
2019/02/17(日) 15:31:55.60ID:QIeMqQFm0 fixed (byte* ptr = &data[0]) *(MyStruct*)ptr;
と大体同じではあります
と大体同じではあります
908デフォルトの名無しさん (ワッチョイ 7fa7-cT+3)
2019/02/17(日) 15:40:47.44ID:QIeMqQFm0 やっぱりこういうことやりたければC++に池ってことなのでしょうか
記憶力悪いのでVSがC#ほど助けてくれないC++に行くのは億劫なため質問させてもらいました
記憶力悪いのでVSがC#ほど助けてくれないC++に行くのは億劫なため質問させてもらいました
909デフォルトの名無しさん (アウアウウー Sa4b-dufs)
2019/02/17(日) 16:16:49.38ID:rf6p5Xt1a Span使え
910デフォルトの名無しさん (ワッチョイ df32-A2tD)
2019/02/17(日) 16:27:59.23ID:tKx1WgvG0 byte[]も参照型だからね、オブジェクトヘッダが付いてなければ扱えない
Span<T>でなければ、具体的なシナリオにも依るけど元からbyte[]で作って
TypeHandleとlengthのsizeof(IntPtr)*2分ずらした所を使い回す方が賢明
結局fiexdと一緒な訳だが、P/Invokeならbyte[]渡してもゼロコピーの筈だし
abstract class Union<T> where T : struct {
internal readonly IntPtr length;
public T Value;
}
みたいなオレオレ実装をILキャストした事もあったな…後はSafeBufferとか
Span<T>でなければ、具体的なシナリオにも依るけど元からbyte[]で作って
TypeHandleとlengthのsizeof(IntPtr)*2分ずらした所を使い回す方が賢明
結局fiexdと一緒な訳だが、P/Invokeならbyte[]渡してもゼロコピーの筈だし
abstract class Union<T> where T : struct {
internal readonly IntPtr length;
public T Value;
}
みたいなオレオレ実装をILキャストした事もあったな…後はSafeBufferとか
911デフォルトの名無しさん (アウアウウー Sa21-eq4B)
2019/02/21(木) 12:35:31.38ID:78/oBfjca self containedって完全に依存なしになるわけじゃないのね
alpine用にself containedでビルドしても動かなかった
libstdc++とか色々インストールしたら動いたけどさ
dotnetコマンド同梱と比較してコンテナサイズも殆ど変わらないし意味あるのかなこれ
alpine用にself containedでビルドしても動かなかった
libstdc++とか色々インストールしたら動いたけどさ
dotnetコマンド同梱と比較してコンテナサイズも殆ど変わらないし意味あるのかなこれ
912デフォルトの名無しさん (スップ Sd0a-5Ibu)
2019/02/21(木) 12:44:14.85ID:IWeqLQBdd >>911
おばか
おばか
913デフォルトの名無しさん (ササクッテロレ Spbd-zZPo)
2019/02/21(木) 14:33:57.39ID:XSMrGlqdp SCDは.NETのランタイムを別途インストールじゃなくて同梱するってだけの話だしね
公式ドキュメントにも注釈あるけどLinuxは仕様上完全に断ち切るのは難しいんじゃない?
Windowsだと同梱のファイルだけでそのまま動くけど
公式ドキュメントにも注釈あるけどLinuxは仕様上完全に断ち切るのは難しいんじゃない?
Windowsだと同梱のファイルだけでそのまま動くけど
914デフォルトの名無しさん (アウアウウー Sa21-eq4B)
2019/02/21(木) 17:41:05.62ID:DKuxuLxMa915デフォルトの名無しさん (スップ Sd0a-5Ibu)
2019/02/21(木) 18:56:24.09ID:IWeqLQBdd 最近のバッチはみんなSCDにしてる
らくちんらくちん
らくちんらくちん
916デフォルトの名無しさん (アウアウウー Sa21-eq4B)
2019/02/21(木) 19:03:47.82ID:DKuxuLxMa Goのように1バイナリにはならんものかね
917デフォルトの名無しさん (スップ Sd0a-5Ibu)
2019/02/21(木) 19:11:19.09ID:IWeqLQBdd918デフォルトの名無しさん (ワッチョイ 5d2d-4qoz)
2019/02/26(火) 16:27:59.06ID:jgGxVc0K0 ちょくちょくポインタ代替機能についての質問があるけどさ
どんな用途でポインタを使いたいのかわかんないけど、大抵の場合はストリームで代用できるんじゃないのかな
どんな用途でポインタを使いたいのかわかんないけど、大抵の場合はストリームで代用できるんじゃないのかな
919デフォルトの名無しさん (アウアウウー Sa21-/4p0)
2019/02/26(火) 19:45:51.64ID:KXA/2sKca ID3タグとかバイナリ使うにゃ要るだろ
920デフォルトの名無しさん (ワッチョイ a95f-cnIv)
2019/02/26(火) 22:52:44.40ID:cz3vAcnh0 >>919
バイナリデータもストリームで扱える
バイナリデータもストリームで扱える
921デフォルトの名無しさん (ワッチョイ a5e3-rusg)
2019/02/26(火) 23:01:06.66ID:w0dNr8TE0 バイナリ弄るならSpanでよくね?
922デフォルトの名無しさん (ワッチョイ 6d7b-SpKW)
2019/02/27(水) 22:56:28.74ID:0yfFFlZD0 ポインタなんかアンマネージとのやり取りとBitmapdataでしか使ったことないな
アンマネージとのやり取りだとrefとかoutにしとけばあとは何も考えなくていいから助かる
アンマネージとのやり取りだとrefとかoutにしとけばあとは何も考えなくていいから助かる
923デフォルトの名無しさん (ワッチョイ b702-W5e4)
2019/03/02(土) 10:07:34.38ID:yMVoU8j+0 「変数aが1,4,5,7のいずれかである場合」
という論理式を書く場合
(a==1) || (a==4) || (a==5) || (a==7)
とswitch文以外でもっと手っ取り早く書く方法ありますか?
という論理式を書く場合
(a==1) || (a==4) || (a==5) || (a==7)
とswitch文以外でもっと手っ取り早く書く方法ありますか?
924デフォルトの名無しさん (ワッチョイ bfe9-IBRN)
2019/03/02(土) 10:20:00.75ID:Ud+LwFnR0 >>923
その表現が一番端的でわかりやすいのではないですか?
その表現が一番端的でわかりやすいのではないですか?
925デフォルトの名無しさん (ワッチョイ 9fad-5O6o)
2019/03/02(土) 10:21:50.56ID:Vr07loEY0 >>923
()いらない
()いらない
926デフォルトの名無しさん (アウアウウー Sa9b-zhdC)
2019/03/02(土) 11:05:26.20ID:heck9gfNa new [] {1, 4, 5, 7}.Contains(a)
927デフォルトの名無しさん (ワッチョイ 9f01-dMaL)
2019/03/02(土) 11:08:41.04ID:Co1I1oSR0 >>923
その程度ならその書き方が一番わかりやすいと思うが比較対象がもっと多いとか可変にしたいとかなら
var C = new HashSet<int>(){1, 4, 5. 7};
if(C.Contains(a)){ … }
とかもある
その程度ならその書き方が一番わかりやすいと思うが比較対象がもっと多いとか可変にしたいとかなら
var C = new HashSet<int>(){1, 4, 5. 7};
if(C.Contains(a)){ … }
とかもある
928デフォルトの名無しさん (ワッチョイ b702-W5e4)
2019/03/02(土) 14:06:20.64ID:yMVoU8j+0929デフォルトの名無しさん (ワッチョイ 9f61-W5e4)
2019/03/02(土) 14:59:32.01ID:AX9YyrwL0 SQLみたく
a IN (1,4,5,7)
てかければいいなとおもうが、aが右側になっちゃうのが若干違和感
a IN (1,4,5,7)
てかければいいなとおもうが、aが右側になっちゃうのが若干違和感
930デフォルトの名無しさん (ワッチョイ b717-W5e4)
2019/03/02(土) 15:04:48.62ID:Nsc0DUxH0 拡張メソッド作れば解決
931デフォルトの名無しさん (アウアウウー Sa9b-/jBK)
2019/03/02(土) 19:46:04.84ID:5yoALKCSa >>927以上の書き方ねーべ
オーバーヘッドなんぞ無きに等しい
オーバーヘッドなんぞ無きに等しい
932デフォルトの名無しさん (ワッチョイ ffa7-3oSp)
2019/03/02(土) 20:18:35.52ID:zHCAEP8E0 >>928
HashSetやDictionaryは要素の数に左右されない方法でアクセスを行うから
含まれてるか否かといったような検索用途に限定すれば1個だろうが1万個だろうが常に高速にアクセス出来る
Listや配列は要素数に比例してアクセス時間かかるようになるが
HashSetやDictionaryは要素の数に左右されない方法でアクセスを行うから
含まれてるか否かといったような検索用途に限定すれば1個だろうが1万個だろうが常に高速にアクセス出来る
Listや配列は要素数に比例してアクセス時間かかるようになるが
933デフォルトの名無しさん (スプッッ Sd3f-2nwm)
2019/03/02(土) 21:00:42.79ID:RzDDiNewd なぜ要素数が増えることがある
という大前提を最初の質問時に明記しないのか
という大前提を最初の質問時に明記しないのか
934デフォルトの名無しさん (アウアウエー Sadf-oIIs)
2019/03/02(土) 22:03:38.03ID:CQ1ng92ga935デフォルトの名無しさん (ワッチョイ 9f2f-nxCI)
2019/03/03(日) 01:24:26.71ID:5kU0Dorz0 >>932
もとの要素がどこにあるかよくわからんけどな
HashSet作成して要素セットするオーバーヘッドがあるだろう
格納時にハッシュ値計算するから比較のコストが低いわけで、その分格納にコストがかかるんだぜ
もとの要素がどこにあるかよくわからんけどな
HashSet作成して要素セットするオーバーヘッドがあるだろう
格納時にハッシュ値計算するから比較のコストが低いわけで、その分格納にコストがかかるんだぜ
936デフォルトの名無しさん (アウアウエー Sadf-vtKZ)
2019/03/03(日) 02:51:31.92ID:0iBtFMi0a 使い捨てなら配列のほうが安そうな気はするが
それが差となって現れるようなユースケースとも思えんしなあ
それが差となって現れるようなユースケースとも思えんしなあ
937デフォルトの名無しさん (ワッチョイ 9f61-LAF0)
2019/03/03(日) 08:04:01.95ID:1vB8VE1Z0 また質問者無視してる
938デフォルトの名無しさん (ワッチョイ 179f-bDR4)
2019/03/03(日) 09:05:10.09ID:wNoJ2Bbs0 質問者ってそんなに偉いの?
そいつの質問に常に合致した話題じゃなきゃダメなの?
ひとつの質問があって、それを機会に派生してもいいし、あとは自由に意見しあえってもいい
どんだけ構ってほしいんだ
そいつの質問に常に合致した話題じゃなきゃダメなの?
ひとつの質問があって、それを機会に派生してもいいし、あとは自由に意見しあえってもいい
どんだけ構ってほしいんだ
939デフォルトの名無しさん (ワッチョイ f7a7-mFPe)
2019/03/03(日) 09:06:48.39ID:467OkvF30 気にしてるの君じゃん
自由でいいと思うなら
かってにやってりゃいいじゃん
どんなけかまってほしいの?
自由でいいと思うなら
かってにやってりゃいいじゃん
どんなけかまってほしいの?
940デフォルトの名無しさん (アウアウカー Sa6b-u4yZ)
2019/03/03(日) 09:27:17.06ID:qK6tlWl9a ROM専からすると多少横道にそれてもいろんな手法を見れるほうが面白い
正直これくらいの質問なら好きにしろって感じだろ
正直これくらいの質問なら好きにしろって感じだろ
941デフォルトの名無しさん (ワッチョイ ffa7-3oSp)
2019/03/03(日) 10:44:42.90ID:wOo332Lk0942デフォルトの名無しさん (アウアウエー Sadf-oIIs)
2019/03/03(日) 12:55:52.71ID:3ZaOSZpTa 述語の部分が、
(1) 全要素を常に == で評価
(2) 全要素を同じ演算子で評価するが、==以外の演算子も使われる場合がある
(3) 要素ごとに個別の評価方法
で最適な答えが変わりそうなんでその辺ははっきりした方がよかったかもね。
質問者は
(a==1) || (a==4) || (a==5) || (a==7)
の代替案を聞いてるんだから普通に考えれば要素数はそんなに多くないはずで
パフォーマンス云々は風呂敷広げすぎだろうw
(1) 全要素を常に == で評価
(2) 全要素を同じ演算子で評価するが、==以外の演算子も使われる場合がある
(3) 要素ごとに個別の評価方法
で最適な答えが変わりそうなんでその辺ははっきりした方がよかったかもね。
質問者は
(a==1) || (a==4) || (a==5) || (a==7)
の代替案を聞いてるんだから普通に考えれば要素数はそんなに多くないはずで
パフォーマンス云々は風呂敷広げすぎだろうw
943デフォルトの名無しさん (ワッチョイ d763-vAvN)
2019/03/03(日) 13:55:56.58ID:Nfj27eon0 議論の途中で申し訳ないのですが
例えば独自クラスで、こんなのがある。
独自クラス{
string name {get; set;}
decimal num1 {get; set;}
decimal num2 {get; set;}
}
というのがあって、グリッドビューにList〈独自クラス〉をデータソースとして渡して表示させたいのですが
numは3,4,と増える可能性があります。(型はすべて同じ)
この場合にソースコードをメンテナンスすることなくnumの増減に対応するにはどのようにすれば良いでしょうか?
例えば独自クラスで、こんなのがある。
独自クラス{
string name {get; set;}
decimal num1 {get; set;}
decimal num2 {get; set;}
}
というのがあって、グリッドビューにList〈独自クラス〉をデータソースとして渡して表示させたいのですが
numは3,4,と増える可能性があります。(型はすべて同じ)
この場合にソースコードをメンテナンスすることなくnumの増減に対応するにはどのようにすれば良いでしょうか?
944デフォルトの名無しさん (ワッチョイ d7d2-J00P)
2019/03/03(日) 14:46:12.80ID:NjSnZzWN0 decimal[] num {get; set;}
とか、
Dictionary<int,decimal> num { get; set; }
じゃダメなの?
なんか設計レベルで問題がありそうな気もするけど。
とか、
Dictionary<int,decimal> num { get; set; }
じゃダメなの?
なんか設計レベルで問題がありそうな気もするけど。
945デフォルトの名無しさん (ワッチョイ 9f01-dMaL)
2019/03/03(日) 15:03:54.49ID:EUJr/Yte0 >>943
配列なりListなり使えばいいだけじゃねーの?
配列なりListなり使えばいいだけじゃねーの?
946デフォルトの名無しさん (ワッチョイ 5768-W5e4)
2019/03/03(日) 16:04:38.55ID:lbgm80aQ0 固定値でIFするのは好きじゃないな。
ソースの冒頭で定数を定義したい。
ソースの冒頭で定数を定義したい。
947デフォルトの名無しさん (ワッチョイ ff1b-vAqM)
2019/03/03(日) 16:50:33.82ID:fEIk0m7q0 >>943
列が可変になるのならデータテーブル使うのが楽だと思う。クラスでやるとしたらexpandoで作るもなくはないと思うけど、それなら上にある通りDictionaryの方がシンプルではないかと。
列が可変になるのならデータテーブル使うのが楽だと思う。クラスでやるとしたらexpandoで作るもなくはないと思うけど、それなら上にある通りDictionaryの方がシンプルではないかと。
948デフォルトの名無しさん (ワッチョイ 9f2f-2ce8)
2019/03/03(日) 21:37:48.24ID:5kU0Dorz0 >>942
質問者がオーバーヘッド気になるとか発言してるので、パフォーマンスを考慮することに意味はあるんじゃね
まあ、ずらずらと手書き出来る程度の要素数ならどれ使っても大差ないって言っとくべきではあるかもしれんが
質問者がオーバーヘッド気になるとか発言してるので、パフォーマンスを考慮することに意味はあるんじゃね
まあ、ずらずらと手書き出来る程度の要素数ならどれ使っても大差ないって言っとくべきではあるかもしれんが
949デフォルトの名無しさん (ワッチョイ 3761-V+g/)
2019/03/05(火) 02:59:42.60ID:01ls3eLR0 C#はセキュリティー的に問題があるので使わないほうがいい。
950デフォルトの名無しさん (ワッチョイ 9fad-5O6o)
2019/03/05(火) 03:03:58.87ID:uKTTdpNO0 >>949
詳しく
詳しく
951デフォルトの名無しさん (ワッチョイ ff63-/O1n)
2019/03/05(火) 04:19:27.01ID:6CrjVVG40 お前何回も見てるから詳しくしなくていい
952デフォルトの名無しさん (ワッチョイ 179f-bDR4)
2019/03/05(火) 08:33:58.12ID:Q/LSKwqY0 >>951
詳しく
詳しく
953デフォルトの名無しさん (ワッチョイ ffa7-3oSp)
2019/03/05(火) 12:55:11.87ID:xG/V/FM40 一発でソースコード復元されるからか?
それを言ったらJavaも同じだから泥アプリとか簡単に解析出来るけど
それを言ったらJavaも同じだから泥アプリとか簡単に解析出来るけど
954デフォルトの名無しさん (ワッチョイ ff63-RqxP)
2019/03/05(火) 15:29:31.29ID:zDemJk6G0 それはMSも認識してるしフリーの難読化ツールが何個も出てるんやで
難読化が必要な理由 | Microsoft Docs https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/ms227271(v=vs.90)
難読化が必要な理由 | Microsoft Docs https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/ms227271(v=vs.90)
955デフォルトの名無しさん (ブーイモ MMbf-LAF0)
2019/03/05(火) 20:24:10.57ID:X7v05Ly8M うちのソースは普通に難読だけどな
956デフォルトの名無しさん (ブーイモ MM3b-vAvN)
2019/03/05(火) 20:50:38.72ID:phKvM6KvM おれのソースコードはデフォで難読だから余裕
957デフォルトの名無しさん (ワッチョイ 932c-McIj)
2019/03/07(木) 00:13:41.81ID:30anmeL+0 難読化しないとってほどのソースコードなんてそんなに無いような気がするけどな…
そもそもOSSが当たり前みたいなこんな時代に
そもそもOSSが当たり前みたいなこんな時代に
958デフォルトの名無しさん (ワッチョイ 92ad-YS+u)
2019/03/07(木) 01:10:43.27ID:tnYmqFtJ0 >>957
見せられない処理はAPIの向こう側だしね
見せられない処理はAPIの向こう側だしね
959デフォルトの名無しさん (ワッチョイ 7317-uGU8)
2019/03/07(木) 19:34:45.84ID:Kf1DGo5Q0 ゲームは改造対策に難読化したほうが良さげ
960デフォルトの名無しさん (ワッチョイ d6da-uGU8)
2019/03/08(金) 13:12:26.41ID:5Js7CVOV0 オリジナルソースがスパゲッティでも
ILSpyなんかを通すとオリジナルより見やすく逆コンパイルしてくれるからな。
ILSpyなんかを通すとオリジナルより見やすく逆コンパイルしてくれるからな。
961デフォルトの名無しさん (ワッチョイ 9261-uGU8)
2019/03/08(金) 14:21:31.67ID:p3uWfhXt0 そんなのあるんだ?ありがたいな。スパゲティにはほとほと手を焼いてたんだ。きれいにしてくれるなら使ってみようかなw
962デフォルトの名無しさん (スフッ Sd32-McIj)
2019/03/08(金) 18:09:25.36ID:XK/LB6aKd メソッド単位は変わらないからプライベートやグローバル使いまくりのスパゲティはどうにもならないけどね
963デフォルトの名無しさん (ワッチョイ 7317-uGU8)
2019/03/08(金) 19:36:48.59ID:W3YxLksd0 制御フロー難読化をやるとさらに汚くしてくれるからオススメ
964デフォルトの名無しさん (ワッチョイ 167b-91/d)
2019/03/08(金) 20:13:44.24ID:S6VEx3Fw0 メソッドのローカル変数をきれいに整頓してくれるILSpy△
そろそろここも終わるけど
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
でいいよね。隔離スレをわざわざ新しく立てる必要もないし
そろそろここも終わるけど
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
でいいよね。隔離スレをわざわざ新しく立てる必要もないし
965デフォルトの名無しさん (ワッチョイ b302-B/CD)
2019/03/14(木) 19:31:23.01ID:uF+nNtm+0 ライブラリレベルのオーバーヘッドを気にするのは止めましょう
ガベージコレクションが前提の言語を使ってる以上無駄な努力に終わります
性能絶対重視なら最初からCやASMで書いた方が良いし
よほどのスパーハカーでもない限りそんな努力が報われるほどの性能差にならないと思われます
ガベージコレクションが前提の言語を使ってる以上無駄な努力に終わります
性能絶対重視なら最初からCやASMで書いた方が良いし
よほどのスパーハカーでもない限りそんな努力が報われるほどの性能差にならないと思われます
966デフォルトの名無しさん (ワッチョイ b302-PKKy)
2019/03/14(木) 21:34:22.29ID:DpwzO91B0 ASM?
コンパイラに勝てると思ってるのか?
コンパイラに勝てると思ってるのか?
968デフォルトの名無しさん (ワッチョイ ffad-OnF4)
2019/03/14(木) 21:52:50.86ID:SvZaCm1k0 最初のCコンパイラかな
969デフォルトの名無しさん (アウアウエー Sadf-FtxA)
2019/03/14(木) 22:53:26.94ID:fi3bTXEpa x86の機械語は知らんけど、CPUを汎用計算機ではなくHWとして使いたい場合は
直接機械語で書くしかないでしょう
直接機械語で書くしかないでしょう
970デフォルトの名無しさん (ワッチョイ cf63-oGl6)
2019/03/14(木) 22:56:05.33ID:6sRnwOjo0 CPUを汎用計算機じゃなくてHWとして使いたいようなニーズなんてほとんどの人にはねえだろw
971デフォルトの名無しさん (アウアウエー Sadf-FtxA)
2019/03/14(木) 22:59:30.46ID:fi3bTXEpa だからASMなんて(今となっては)ニッチな需要しかないのでは?
>>971
その需要の一例を知りたいですね…
その需要の一例を知りたいですね…
973デフォルトの名無しさん (ワッチョイ ff01-jA9u)
2019/03/14(木) 23:13:00.27ID:3EvgP48J0974デフォルトの名無しさん (アウアウエー Sadf-FtxA)
2019/03/14(木) 23:43:27.63ID:fi3bTXEpa >>972
必要を無視すればBCD演算とか。
最終的にBCD演算命令に翻訳されるようなコードをC#では(Cでも)書けないはず。
まあx86ならマルチメディア系の命令とかが王道なんだろうけどね知らんけど。
必要を無視すればBCD演算とか。
最終的にBCD演算命令に翻訳されるようなコードをC#では(Cでも)書けないはず。
まあx86ならマルチメディア系の命令とかが王道なんだろうけどね知らんけど。
975デフォルトの名無しさん (ワッチョイ b390-TzFu)
2019/03/14(木) 23:48:39.57ID:nlDJyEEg0976デフォルトの名無しさん (ワッチョイ ffc7-kdx8)
2019/03/15(金) 20:54:11.25ID:lWIPCB/k0 20年ぐらい前の1クロックが今より数十倍以上高価だった頃なら、
ASMによる人力高速化も(コスト的に見合うという点で)意味があった
Cコードで表現されてない知識も使ってちっちゃな関数でも結構簡単に数十クロック程度は高速化できた
Cコードで表現されてない部分を使えば、今もやろうとすれば高速化はできると思う(コストに見合わないだけで)
(変数aとbは実はいつも a<b なのでこのニーモニックが使えるとか、
ここの条件判定文は実は別の変数を計算したときのレジスタのフラグと同じ意味なので計算しなおす必要はないとか)
>>975 の話題に近いけど、
今ならASMの意味があるのはJITまわりとかかな?
ASMによる人力高速化も(コスト的に見合うという点で)意味があった
Cコードで表現されてない知識も使ってちっちゃな関数でも結構簡単に数十クロック程度は高速化できた
Cコードで表現されてない部分を使えば、今もやろうとすれば高速化はできると思う(コストに見合わないだけで)
(変数aとbは実はいつも a<b なのでこのニーモニックが使えるとか、
ここの条件判定文は実は別の変数を計算したときのレジスタのフラグと同じ意味なので計算しなおす必要はないとか)
>>975 の話題に近いけど、
今ならASMの意味があるのはJITまわりとかかな?
977デフォルトの名無しさん (ワッチョイ b302-PKKy)
2019/03/15(金) 21:48:50.55ID:D5NVJqkY0 コンパイラはパイプラインでデータハザードが起きない様に計算して命令の組み替えしたりする。
人間がそこまでできるかな?
オレは20年ぐらい前にmemcpyを高速化するためにアセンブラで組んだ。
今思うとCで組んでコンパイラに最適化させるべきだったかもね。
若気の至りだ。
人間がそこまでできるかな?
オレは20年ぐらい前にmemcpyを高速化するためにアセンブラで組んだ。
今思うとCで組んでコンパイラに最適化させるべきだったかもね。
若気の至りだ。
978デフォルトの名無しさん (ワッチョイ ff42-B/CD)
2019/03/16(土) 00:00:03.09ID:6P+M3e6E0 asmはコンピュータの仕組みを理解するにはうってつけの題材では有るね
最新の特殊命令なんか不要だが、68Kなんか最高の素材だと思うわ
最新の特殊命令なんか不要だが、68Kなんか最高の素材だと思うわ
979デフォルトの名無しさん (ワッチョイ bf32-h1+v)
2019/03/16(土) 00:15:39.88ID:sQCNGdE30 ERMSBなんかを考えるとコンパイラも小手先なんかね
実行ハードでスケールするか、安定的な最適化か
汎用性を考えれば普通は後者になるだろうけど
というかC#ならCILレベルに留めるべきではねか
実行ハードでスケールするか、安定的な最適化か
汎用性を考えれば普通は後者になるだろうけど
というかC#ならCILレベルに留めるべきではねか
980デフォルトの名無しさん (ブーイモ MMff-nnhC)
2019/03/16(土) 05:39:50.41ID:lafVI2fNM WASMを最適化してくれ
981デフォルトの名無しさん (ワッチョイ 1379-sM4w)
2019/03/16(土) 14:26:07.02ID:gcoRXnnM0 今やIoT用でもメモリMBクラスだろ
アセンブラでハック必要な用途なんてないだろな
アセンブラでハック必要な用途なんてないだろな
982デフォルトの名無しさん (ワッチョイ ff61-ynPM)
2019/03/16(土) 15:56:32.11ID:zOgp3uDK0 >>980
wasmになる前のLLVMの段階で既に最適化が出来る。
あと、詳しくは分からないが、wasmになった後の最適化も、
Emscriptein の opt.exe で一応はできるらしい。
但し、asm.jsとの「グルー」が複雑に絡んでいるので、
何をやっているかを理解するのはかなり難しく、
wasmで最適化しているのか、asm.jsで最適化しているのかは
忘れてしまった。
wasmになる前のLLVMの段階で既に最適化が出来る。
あと、詳しくは分からないが、wasmになった後の最適化も、
Emscriptein の opt.exe で一応はできるらしい。
但し、asm.jsとの「グルー」が複雑に絡んでいるので、
何をやっているかを理解するのはかなり難しく、
wasmで最適化しているのか、asm.jsで最適化しているのかは
忘れてしまった。
983デフォルトの名無しさん (ワッチョイ 332c-G90H)
2019/03/16(土) 19:51:51.79ID:Ox1b9ZEv0 スレを間違えたかと思っただろ
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【ネトウヨ終了】大人気ユーチューバー「高市早苗のことをまともだと思うやつは私のコンテンツにさわらないでください」 [339712612]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 外務局長「中国さんごめんなさぁ...」小野田「中国なんかどうでもいいっ!」高市「首脳会談したい」マスコミ「立憲が悪いっ!!」 [237216734]
