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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2317-qMUn)
垢版 |
2018/12/15(土) 11:07:07.89ID:0aSEF/I+0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1538646998/
■コードを貼る場合は↓を使いましょう。
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/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/12/24(月) 02:17:03.76ID:+5I2QCyu0
15の方にコピーしたいって言ってるのに逆ばっかじゃねーか
偉そうに答える前に日本語の読み方を覚えろよ
2018/12/24(月) 07:24:20.71ID:zs7tYDO50
ワラタ
2018/12/24(月) 07:24:47.31ID:zs7tYDO50
ガイジばっかだな
2018/12/24(月) 08:28:00.92ID:KFYgg8m6M
よく見ると逆ですらない
121はa15の先頭から10要素のリストだし
123はa10.Clear()後にa10.Countを参照してるので、実行後のa10は空だ
2018/12/24(月) 08:30:42.16ID:zs7tYDO50
ガイジの宝石箱かよ
2018/12/24(月) 08:35:25.17ID:APgc2n6m0
>>123
Clearしていいの?
2018/12/24(月) 08:42:01.70ID:APgc2n6m0
>>120は、こういうことなんだよな??

https://ideone.com/IBD8SG
2018/12/24(月) 17:58:02.29ID:0GmOXyNR0
>>127
うける
2018/12/24(月) 21:29:07.13ID:wShZDi2Q0
a15=a10.AddRange(a15);
で良くね?
2018/12/24(月) 22:49:22.82ID:kvP3AY+C0
a15は.Skip(a10.Count)が必要だしAddRangeは返値voidだし
a10が破壊されるのは気持ち悪すぎる せめて.Concatでやって
2018/12/24(月) 23:00:49.18ID:BVW7JO960
a10.Select((v, i) => i).ToList().ForEach(p => a15[p] = a10[p])
2018/12/25(火) 05:37:13.78ID:o3bLdzU90
質問です
applicationSettingsBaseを使って設定を保存したソフトのフォルダを移動したところ
設定がすべて消えてしまいましたが仕様でしょうか。
これを回避するためにはソフトと同じフォルダにiniを作るなどして設定を保存しないといけないでしょうか。
2018/12/25(火) 08:31:43.73ID:Pk7gkPrC0
SettingsProviderを自作すれば保存場所は変えられなかったか
2018/12/25(火) 12:19:27.12ID:H2h1tiNca
>>135
ApplicationSettingsBaseなんて使ったことないのでいい加減に言うけど、
普通に考えれば保存場所は起動したバイナリのパスになんか依存しないはずだと思うけど

http://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html
ここにも書いてあるけど、バージョンとか製品名とかアセンブリの属性を何か変更したから
保存場所も変わったんじゃないの?
2018/12/25(火) 12:21:30.96ID:H2h1tiNca
ごめん>>137は訂正
俺の記憶違いで、記事にはバイナリのパスにも影響されると書いてあるねw
2018/12/25(火) 12:25:14.95ID:yMEv05zrd
>>137
いいえexeの絶対パスが変わると保存先も変わります
知らないなら適当に答えるなよ
2018/12/25(火) 12:49:04.91ID:H2h1tiNca
いいえ私はさそり座の女〜
2018/12/25(火) 20:05:08.93ID:C73Cga6+0
C#スレが伸びてるけど、unityのおかげ?
2018/12/25(火) 20:36:10.99ID:bRmFmcZ5r
いいえ
2018/12/25(火) 20:49:56.13ID:wyvxpdNe0
設定の保存ならjson.net使ったほうが幸せになれるね
2018/12/25(火) 22:00:49.69ID:nl4zamMYa
>>143
保存時のフォーマット?
2018/12/25(火) 22:03:32.60ID:cYaw21oJ0
イニファイルにしとけ
イニファイルにな
2018/12/25(火) 22:20:50.60ID:NRydG5TYM
Windows用語ではプロファイル
2018/12/25(火) 22:21:37.22ID:m1C7tGngd
>>145
老害おつ
148デフォルトの名無しさん (ワッチョイ 658a-6UAB)
垢版 |
2018/12/26(水) 06:18:38.10ID:1oivSykz0
課題で10進数を2進数の文字列に変換したいのですが、これだとびっくりすくらい遅いです。
速くするにはどうしたらいいでしょうか。

class Program
{
public static void Main(string[] args)
{
string input = Console.ReadLine();

int i = Convert.ToInt32(input);

string output = "";

while(i >= 1)
{
output = output.Insert(0,(i % 2).ToString());
i >>= 1;
}

Console.WriteLine(output);
Console.ReadLine();
}
}
2018/12/26(水) 07:14:08.48ID:H45VhGP50
>>148
stringはほとんどの場合毎回新しいインスタンスが作られるから、代わりにStringBuilder使ってみ
2018/12/26(水) 07:18:31.50ID:H45VhGP50
あとたぶん普通はこれ
https://dobon.net/vb/dotnet/programing/converthex.html#section7
2018/12/26(水) 07:35:37.09ID:gklwQdG7M
遅いっつっても一瞬じゃない?
たかが32bit整数くらいで。
試してないけど
2018/12/26(水) 09:33:17.59ID:Ts4c5NN9M
Stringは吃驚するほど遅いよ
2018/12/26(水) 10:28:31.49ID:yGWBBV+aM
遅いっつっても一瞬じゃない?
2018/12/26(水) 11:19:21.70ID:pZkVuIQAd
>>153
ループ一回ならね
2018/12/26(水) 12:39:12.50ID:UFWOb61Ja
>>150
Convertのそんなのあったな感w
でもこれゼロサプレスされるみたいだな。
まあリーディングゼロ付けるのは簡単だけども
2018/12/26(水) 19:06:58.35ID:Dcs5aUpT0
Windowsフォームアプリケーションで、
「ボタン上をドラッグしてる間(左クリック押下中、かつボタン上にカーソルがある時)」に音を鳴らしたいんだけど

Button1.MouseDownで再生、Mouseupで停止させるまでは出来ても

MouseLeaveに停止処理書いて、クリックしたままボタンからカーソル外したときには音がなり続けてしまいます

どういう記述がいいんでしょうか?
2018/12/26(水) 20:13:17.23ID:/gJf0JvK0
>>156
クリックしたままだとMouseLeaveが動かないみたいだな
https://ideone.com/c67R3i
これは音を鳴らす代わりにフォームのタイトルにMouse On/Offと表示する
MouseDownとMouseMoveでカーソルの場所を見てボタンの範囲外だと無条件でOffにする
イベントとしてのMouseLeaveは外せそうな気がするしフラグ作ってもっと作りこめると思うけど面倒だからここまで
2018/12/26(水) 21:13:57.82ID:0HU+mpFl0
ありがとうございます!
入門したて故コード読んでも理解できないけど、丸写しからの改変で勉強しながらやってみます
2018/12/26(水) 21:40:59.20ID:sOj8GKWaa
>>156
やらずに適当に言うけど、MouseDownのイベントハンドラか何かで
Captureの値をfalseにしてやったら望んでるような動作になるんと違う?
160デフォルトの名無しさん (ワッチョイ f9da-ikDe)
垢版 |
2019/01/03(木) 03:05:05.68ID:2jZ78iU60
dotnet new webapp コマンドでプロジェクト生成した時に Controllers も Models も Views も作られないので、ちょっと面食らっています。
ASP.NET Core で Razor Page を使ったアプリを作る際は、ASP.NET でいう Controllers と Models に該当するフォルダはどこに作ったらいいんでしょうか?
特にビジネスロジック部分はどこにまとめるのがいいのでしょうか?
2019/01/03(木) 05:32:43.60ID:ZmWGvR5ia
splitcontainerのpanel1に30個程度のボタンを設置し、それらは一つのイベントハンドラにまとめてて
押したボタンの色を変えるということをしようとしています

splitContainer1.Panel1.Controls[●].backColor = Color.Red ;


●の位置に入る数字はどのボタンと対応しているかがイマイチわかりません。
タブインデックスの数値とは別のようですし、どの数値の事を言っているのでしょうか。
2019/01/03(木) 06:22:31.48ID:2jZ78iU60
>>161
期待通りの回答じゃないかもしれないけど、これでもいいんでは?
protected void button_Click(object sender, EventArgs e)
{
((Button)sender).BackColor = Coler.Red;
}
2019/01/03(木) 09:33:34.04ID:mzbwP5/d0
>>160
dotnet new
2019/01/03(木) 09:49:03.47ID:92o1UEKg0
>>160
dotnet new mvc
ASP.NET Coreは3.0以降でfull .NET Frameworkを切り捨てるから、必ず.NET Coreを使うように
2019/01/06(日) 07:48:04.81ID:ys0B5FJg0
>>148
遅い原因は
>string input = Console.ReadLine();
じゃね?
ユーザーが全文字入力するのをぼんやり待ってないで
1文字でも入力された時点でその桁に関する処理を開始しとかないと
2019/01/06(日) 10:33:12.47ID:ijGp0fE40
>>165
>>149で解決すると思ったけど、その最後の行の実装例出せる?
2019/01/06(日) 10:50:54.92ID:SZQOw9ve0
>>166
件のプログラムで一番処理時間が長いのは起動だと思うから
実際にはその程度やっても変わらんでしょ
2019/01/06(日) 13:46:05.21ID:s+NsL/70M
>>165てネタじゃなかったのか?
2019/01/06(日) 15:10:03.44ID:yoKg5XOLM
何でもかんでもまずネタだと考えるのやめた方がいいですぞ
170デフォルトの名無しさん (ワッチョイ 332d-ikDe)
垢版 |
2019/01/06(日) 16:43:50.05ID:Dx0jhieJ0
ASP.NET Coreを使う練習してるんだけどさあ
実機で動かしてみるに当たって、手元のVisualStudioやVSCodeからLAN上にあるサーバ(Ubuntu)に配置して実行するまでって結構面倒に感じてしまう・・・・
これってなにかVisualStudioに配置実行を楽にする手段があるのかな?
それとも楽をしたければJenkinsかなにか勉強しなきゃあかんのかな・・・・
2019/01/06(日) 16:54:31.32ID:YMMAI1S40
今はどんな手順でやってるん?
172デフォルトの名無しさん (ワッチョイ 332d-ikDe)
垢版 |
2019/01/06(日) 18:18:02.00ID:Dx0jhieJ0
今のところ、「手元でビルド→SCPコマンドで転送→SSHで実行」みたいにしてるんだけど・・・・やっぱもっといい方法あるよな
2019/01/06(日) 18:22:43.98ID:SgRztK6B0
LINQの質問です
list1とlist2はList<int>型だとして

foreach(var value1 in list1) {
foreach(var value2 in list2) {
Console.WriteLine(value1 * value2);
}
}


これと同じことをLINQを使ってやるとしたらどう書けばいいですか?
Zipを使ってみたのですが同じインデックス同士しか掛け合わせてくれませんでした
2019/01/06(日) 20:09:56.59ID:NF88G39c0
linqでブロードキャストできたっけ?
2019/01/06(日) 20:11:35.37ID:YeoWOZf6a
>>173
メソッド構文ならSelectManyを使う
foreach (var v in list1.SelectMany(v1 => list2, (v1, v2) => v1 * v2))
{
Console.WriteLine(v);
}

この場合はクエリ構文の方が分かりやすいかも
var q = from v1 in list1
from v2 in list2
select v1 * v2;
foreach (var v in q)
{
Console.WriteLine(v);
}
2019/01/06(日) 20:13:20.52ID:NF88G39c0
>>173
ttps://dobon.net/vb/dotnet/programing/arraymap.html
これでいけんじゃね?
ConvertAll
2019/01/06(日) 21:11:45.37ID:iQ1zVEqTM
>>170
AWSとか使えば簡単だよ
MSの推奨はもちろんAzureだけど、単なるVMのホスティングサービスとして使う以上のことを期待すると正直ゴミカスなので全くお薦めできない
2019/01/06(日) 21:17:12.87ID:iQ1zVEqTM
>>176
今時ConvertAllとか紹介してるゴミサイトはさっさと閉鎖すべき
2019/01/07(月) 00:48:07.98ID:voJmrOTp0
>>178
今だと何がベスト?
2019/01/07(月) 09:13:26.65ID:yGBdcOaa0
>>175>>176
いけました!
ありがとうございます
今回はSelectManyを使おうと思います
2019/01/07(月) 09:34:56.37ID:z57KVTQ70
>>166
考え方としては、例えば「3」が入力された時点で
次の入力結果は「3」か「30」〜「39」しかありえないから
11通りの2進数表示を用意しておいて次のキーが押されたらそこで合うものを選んで表示する
どんなに10進数の入力桁数が増えても毎回11通り用意すればいいのは一緒なのと
10進数が1桁増えるときに2進数表示で最後の4桁以外の文字列は使い回せるから文字列連結処理は多少減らせる

この処理がユーザーのキー入力速度より早くCPUが処理できれば多少意味がある程度だろうけど
2019/01/07(月) 10:20:00.74ID:e8LT8JMZa
>>181
そのためにReadKeyを繰り返してたらそのオーバーヘッドの方が効果を圧倒的に上回ります
出直してきてください
2019/01/07(月) 10:28:19.23ID:3j9bnJUUM
>>181について更にツッコむと、1文字ずつ処理するなら単に入力されたキーの値を普通に反映させていけばよい
わざわざ候補を事前に用意してGCに負担をかける意味は全く無い
2019/01/07(月) 15:22:57.85ID:Nhl1xZLpa
チラシを見てキャベツが1円安いからと電車賃300円払って遠くのスーパーまで買いに行くような無駄な努力に思える。
2019/01/07(月) 19:03:54.28ID:RNZAQQS50
ネタを元にボケてるだけかと思ったら
2019/01/07(月) 19:56:07.52ID:ukOyD8nn0
Json.NETを使ったデシリアライズについて教えてください。
以下のようなJsonファイルを読み込んで、リストにデシリアライズをしたいです。

[
{
"email": "foo.example.com",
"active": true,
},
{
"email": "bar.example.com",
"active": false,
}
]

しかし、デシリアライズ時に、オブジェクトが2つ以上会い場合に例外が発生します。
using ( var sr = new StreamReader( @".\accounts.json" ) )
{
var accounts = JsonConvert.DeserializeObject<List<Account>>( sr.ReadToEnd() );
}

例外
Newtonsoft.Json.JsonSerializationException

エラーの原因はわかるのですが、解決策が思いつきません。
よろしくお願いします。
2019/01/07(月) 20:12:15.21ID:RNZAQQS50
デシリアライズではまる前に
オブジェクトをシリアライズして、どういうjsonが出来るか確認することを勧める
2019/01/07(月) 20:34:39.02ID:ukOyD8nn0
>>187
オブジェクトが単体の時は[]で囲まれていなかったので、
配列として認識されないような気がします。

もう一度考え直してみます。
ありがとうございました。
2019/01/07(月) 20:52:50.47ID:voJmrOTp0
parser通さずに自力解析した方が早そうw
2019/01/07(月) 21:41:14.56ID:EmaCRb9M0
>>186
うちの環境ではそのままで読み込めた。w
ああ、json ファイルのパスや、クラスをフルパスで書くように直したりはしたけど。
あと List<Account> を Account[] に変えてみても動作した。

json パーサは Newtonsoft.Json でいいんだよね?
ひょっとして json ファイルの文字コードや改行コードの問題だったりして。VS2017 で試した。
2019/01/07(月) 22:00:13.12ID:RNZAQQS50
まあ結論としては只の配列よねw
List<>が勝手に出てくる訳もなく
2019/01/07(月) 22:27:36.78ID:LR2ZtPQc0
>>181
「10進数が1桁増えるときに2進数表示で最後の4桁以外の文字列は使い回せるから文字列連結処理は多少減らせる」
の意味がわからない。
2019/01/07(月) 22:49:30.37ID:ZGeLga+2M
BCD?
2019/01/07(月) 23:07:28.05ID:7iifCEQOa
>>191
アホ?
デシリアライズ先の型としてList<>を指定してるんだからどう見ても勝手に出てきてはいないでしょ
普通にデシリアライズできるよ
2019/01/07(月) 23:26:43.60ID:PUyuVhSj0
>>192
単純に勘違いだろ。16進数から2進数への変換なら成立するけど
例えば251と256の2進数の下4桁が違うのはすぐわかる
質問引っ張るのもまずいけど元の質問者もフィードバックくらいしてほしいな
2019/01/07(月) 23:45:26.56ID:RNZAQQS50
json.netはList指定いけたわ
低速過ぎて最近使ってなかった
失礼した
197デフォルトの名無しさん (ワッチョイ a994-mHCk)
垢版 |
2019/01/08(火) 01:42:19.06ID:+TBsMqqs0
9時と13時に定期的に作業を実行させたいので、タイマーを使ってプログラムを書きました。
似た部分が多いのでタイマー自体を配列化したのですが、「動作を停止しました」とエラーが出て動きませんでした。
タイマーの配列化って無理なんでしょうか?

System.Windows.Forms.Timer[] timerOnce = new System.Windows.Forms.Timer[2];
public GetControlsList()
{
myTimerOnce(timerOnce[0], "9:00");
timerOnce[0].Tick += new EventHandler(timerOnce_Tick);
}

// 指定時刻までの時間を計算して、Intarvalにセット
private void myTimerOnce(System.Windows.Forms.Timer thisTimer, string setTime)
{
//現在の時刻から、ターゲット時刻までのインターバルを算出
TimeSpan mySpan = DateTime.Parse(DateTime.Now.ToString("yyyy/MM/dd ") + setTime) - DateTime.Now;
int sleepSec = (int)mySpan.TotalMilliseconds;
thisTimer.Enabled = true;// タイマ ON
thisTimer.Interval = sleepSec; // 更新間隔
}

// 指定時刻になったらmethodを実行
void timerOnce_Tick(object sender, EventArgs e)
{
//実行したいメソッド
}
2019/01/08(火) 06:44:44.69ID:dT41V3TC0
アドバイス頂いた通りシリアライズを見直したところ解決しました。

var account = new Account { Email = "hogehoge.example.com", Active = true, };
using ( StreamWriter sw = File.CreateText( @".\accounts.json" ) )
{
var jw = new JsonTextWriter( sw ) { Formatting = Formatting.Indented };
new JsonSerializer().Serialize( jw, account );
}

このように書いていたので、accountをリストに変換してから行うようにしました。
new JsonSerializer().Serialize( jw, new List<Account> { account } );

レスくれた皆さん、ありがとうございます。
こちらもVS2017なのできっと文法違いが原因です。
Json形式を勉強し直します。
2019/01/08(火) 08:12:51.74ID:mtJIt88ca
>>197
そもそもWinFormsのタイマーは精度や信頼性がとても低く、時間の計測に使ってはいけない
あくまで「時々処理をさせたい」だけのときに使うもの
あなたのケースならタスクスケジューラを使うのが定石です
2019/01/08(火) 09:49:22.14ID:Sw3FA19SM
>>197
配列をnewしただけで中身のTimerをnewしてないからじゃないの
2019/01/08(火) 09:53:57.24ID:Sw3FA19SM
まずデバッグ実行することを覚えた方がいい気がしないでもない
2019/01/08(火) 12:12:53.32ID:+TBsMqqs0
>>200
まさにそれでした。
1行加えただけで解決しました。ありがとうございました。
2019/01/09(水) 07:23:03.10ID:fI4baLQf0
本当に初心者質問ですが、ライブラリはimportとnamespaceから書いていくのと、どちらが良いのでしょうか

もしくは使い分けがあるのでしょうか
2019/01/09(水) 07:48:48.51ID:c4aAB3Aqd
>>203
ここC#スレやで
2019/01/09(水) 12:18:51.14ID:fI4baLQf0
>>204
C#はusingですけどスコープ内でオブジェクト破棄する機能もusingと呼称してるので混乱しないようにimportと表現しました

なんで2つの記述方法を許しているのか、何か意味があるのか気になりまして
2019/01/09(水) 12:21:16.40ID:c4aAB3Aqd
>>205
c#にもimportはあるから余計混乱するだけ

名前空間とusingsは全然用途違うでしょ?
2019/01/09(水) 12:21:41.32ID:c4aAB3Aqd
C#というかMSBuildだけど
2019/01/09(水) 14:41:58.83ID:2h2JyjUc0
>>203
名前空間の全表記は可読性下げるので使ってないな
VSでカーソル当てれば名前空間表示されるし、今時テキストエディタでゴリゴリ書いている人でもなければ全表記する必要ないと思う
2019/01/09(水) 14:52:14.20ID:TKkGGOqYM
>>208
MediaのcolorとDrawingのcolorが混在してるときはぶっ潰したくなる
2019/01/09(水) 14:55:45.81ID:TKkGGOqYM
pathってファイルパスじゃなくて
曲線かよ死ねよとか
省略形でも違いがあったほうが絶対いい
2019/01/09(水) 19:11:30.62ID:5txyXp0A0
>>203
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-directive
usingでググればここに理由も呼び分け方(using ディレクティブ)も出ている
一般的な呼び名を使わないと調べることすらできなくなるよ
2019/01/10(木) 13:13:55.78ID:lMztlpGar
>>209
そういうの他にもある
2019/01/10(木) 20:09:22.40ID:9xQ4gBbQa
P/InvokeやCOM相互運用を書くときに
System.Runtime.InteropServices.ComTypes以下の構造体やインターフェースを使う時があるんだけど
System.Runtime.InteropServices以下に同名の物があるから、大体の場合で完全修飾かusing alias directiveが必要になって面倒なんだよなあ
.Net1.1時代の後方互換性のためにObsolete付きで残してあるんだろうけど邪魔で仕方がない
2019/01/11(金) 12:39:13.44ID:qc15f1nfD
>>211
その名前を知る事が大変ですよね
沢山本読むしかないんでしょうけど
2019/01/11(金) 12:57:28.29ID:RbVY6SmB0
>>214
この話はusingの話で質問した人もわかっているし
わからないなら分からないなりに説明したらいいだけ
オレオレ用語使ってこんなところで質問するのは普通におかしい
216デフォルトの名無しさん (ワッチョイ a57c-Iup+)
垢版 |
2019/01/11(金) 13:29:58.48ID:5RUmP2fm0
スレ間違えたことを嘘に嘘を塗り固めるのは朝鮮人の始まり
2019/01/11(金) 14:37:44.48ID:225AU0sE0
ちょっと教えろください。
int型変数二つの足し算でオーバーフローするかどうかチェックしたいのですが、
@decimalにキャストして足し算した結果がintの範囲に収まっているかif文で判断
Atry catchで例外をつかまえる
どっちがいいのでしょう?
2019/01/11(金) 14:40:44.08ID:86XGb19RM
>>217
Bdecimalではなくlongにキャストして足し算した結果がintの範囲に収まっているか判断
2019/01/11(金) 15:54:41.82ID:r18fheRy0
>>217
int_max - a < bなら
a + b < int_maxが成り立つ
でも>218のほうがわかりやすいとは思う
2019/01/11(金) 17:49:49.09ID:1orv+xc30
俺がjavaerという事がバレちまったらしょうがねえ

なんだよusingってよ
vb如きだってjavaリスペクトしてんぞ
2019/01/11(金) 18:29:52.22ID:KWycMyC0a
>>217
オーバーフローは同じ符号の値を足した時にしか起こらず、起こった場合は前後で符号が変わる。
他の人が見ても何やってるか分かることが重要ならそれで判定するのが一番だと思う
2019/01/11(金) 18:33:43.65ID:KnmjjSvJM
ラップアラウンドとサチュレーションって学生のときに聞いたのが最後だ
2019/01/11(金) 18:40:14.66ID:fFtOgUz40
すみません、初めて見る構造体が出て来たのですが

[StructLayout(LayoutKind.Sequential)]
struct INITCOMMONCONTROLSEX
{
public int dwSize;
public uint dwICC;
}

これは何構造体と読むのですか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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