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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0fe3-wadS)
垢版 |
2022/02/09(水) 23:13:39.45ID:1A90hyai0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part153
https://mevius.5ch.net/test/read.cgi/tech/1639403601/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
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
2022/02/16(水) 10:02:32.42ID:xaORQRwj0
小細工せずにシンプルに富豪的プログラミングすりゃええやん
2022/02/16(水) 10:20:29.58ID:FqYQ+dJNM
ソース忘れたけどジャグ配列の方がアクセス速いらしい
2022/02/16(水) 11:20:29.58ID:FqYQ+dJNM
すまん嘘ついたわ
シーケンシャルはジャグのが速いけど、ランダムだと逆らしい
普通に考えると >>7 の言うようにジャグは配列のヘッダ分余分に使うと思うけど、プリミティブ型の配列は最適化で何か消し飛びそうな気もするから、正直あんま変わらなさそうな気がする
2022/02/16(水) 14:03:09.07ID:RtFWZL7LM
全部詰め込むならジャグ配列のほうが容量は食う
多次元配列はint[M x N]で確保されて計算経由でアクセス
速度は環境や使い方によって違うので自分の使い方で計測したほうがいい
2022/02/16(水) 15:12:12.97ID:t9owAYRA0
もっと楽観的に取り組もうぜ
2022/02/17(木) 10:51:36.86ID:GVuWfQald
正直いって、メモリや速度より組みやすさで選びたいよね。
性能を求めるなら、Rustとかの方が良いんでしょ?
2022/02/17(木) 12:14:06.04ID:JwXvZXiU0
え?それ、実際に計測していってんの?
2022/02/17(木) 12:26:13.49ID:eZZ7a2UPM
後々の保守考えると、実際のとこ見やすさと組みやすさが最重要だと思う
16デフォルトの名無しさん (ワッチョイ bfbd-oz1W)
垢版 |
2022/02/21(月) 21:06:11.37ID:8NF9kOJ70
VBAからのC ♯に挑戦中です。
visual studio使ってるんですが、予測変換やらその他諸々便利な事が多く感動しております。。
質問なんですが、VBAでやる場合は印刷=Excel sheetでみたいな固定概念なんですがこっちの場合って印刷出力は物によるとは思うんですが、どんな感じですか?調べると、print document??なるもので頭でイメージして印刷用のベースを自作して作るのですか?
印刷内容は至ってシンプルな文字列やら数値です。
2022/02/21(月) 21:40:50.41ID:dmBIFY6O0
そもそもプリンタから紙を出すということ自体発想がなかったわ

ライブラリ使うにしても
入力の文字列やら数値から印刷用のレイアウトを起こさなきゃいけないし、
プリンタに印刷データを投げなきゃいけない

簡単に印刷と言うけど結構やることは多い
2022/02/21(月) 21:44:55.46ID:i5JttRhRa
プリンタは画像描画みたいなもの
縦横ピクセルサイズ決めて、そこのxy座標どこにどのくらいの大きさで文字を描く〜ってイメージ
印刷プレビューも使えるから適当にググって試せばすぐわかるよ
2022/02/21(月) 21:51:01.85ID:Gf4lGfIx0
>>16
イメージは1ページの白紙に自分でしこしこテキストとか図形を書く感じ
(数値は自分で文字列にして書く)
とりあえずこのあたりのサンプルをビルドしてみては?
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.printing.printdocument.print
20デフォルトの名無しさん (ワッチョイ bfbd-oz1W)
垢版 |
2022/02/21(月) 23:35:22.77ID:8NF9kOJ70
なるほど、やはりしこしこ描いてくんですね。やる事多そうですね。
勉強も兼ねてやってみます。
ありがとうございます!
2022/02/22(火) 10:46:16.00ID:vNlU0s1vM
会社で買えるならアクレポが楽だけどな
PDFでいいなら他の手もあるけど
2022/02/22(火) 10:54:46.02ID:Q9cfD2FD0
Crystal Reports for VSは未だに.Net Frameworkのみの対応なんだっけ?
2022/02/23(水) 06:06:54.77ID:8XUT1BDs0
そんなん使ってる環境で.net core対応かどうかとか気にするの?
2022/02/23(水) 10:26:26.53ID:EjF360bu0
現時点で .NET core に対応する必要あるの?
2022/02/23(水) 10:52:19.37ID:IFX4MVN+0
「現時点でES6に対応する必要あるの?」
って言ってたJavaScripterの末路を知らんのか
2022/02/23(水) 11:02:58.12ID:rcGZ+xyY0
対応する必要が出てきてから移行したよ
2022/02/23(水) 11:37:00.39ID:6huhQPG70
今から対応を考えるなら.NETの方にしとけ
2022/02/23(水) 11:53:14.46ID:pfP6MzJI0
未だに.NET Framework2.0が動き続けている俺社には耳が痛い
あと6年もサポート残っているんだからいい加減移行考えろよと
2022/02/23(水) 12:31:01.73ID:n4QLtIZ70
XPでも使ってるのか

現行のOSで2.0はかえって難しいだろ
2022/02/23(水) 13:00:38.62ID:a6rWCkrR0
WPFで帳票もいけるみたいだぞ
https://qiita.com/cyberCatvb/items/1bf86e75b8e5738d432f
2022/02/23(水) 13:46:28.74ID:mlk9UOBoa
今の.netと数年前の.net coreは別物になってる
それに引き換えframeworkは変化が少ない。c++のmfcみたいに細々と生きて切り捨てられることもないだろ
どっちが保守楽かって考えたら・・・
2022/02/23(水) 14:00:40.20ID:a6rWCkrR0
規模がでかい社内システムだと、中々移行に踏み切るのも難しい場合はあるな
部分部分で少しづつ置き換えられるならいいんだが、色々連動してたりすると下手に手が出せん
2022/02/23(水) 14:44:30.90ID:EjF360bu0
.NET6への移行(移植)はライブラリの対応待ちだな
2022/02/26(土) 20:05:44.30ID:UUNvHcAJ0
いやWindows標準搭載待ちだろ
.NET6ですら標準化予定なしって聞いてからはC#自体書く気なくなったわ
2022/02/26(土) 20:41:04.47ID:e5W/1zqv0
COMコンポーネントが作れなくなってるので移行しづらい
2022/02/27(日) 10:04:44.98ID:VN1UC9sN0
>>34
まずそれな
2022/02/27(日) 10:20:11.38ID:FLYW632f0
>>35
まだ作る事ってある?
使うのは偶に必要になるけど
2022/02/27(日) 17:20:47.20ID:hLXeworC0
WinFormsのTextBoxでKeyPressイベントが発生した時、キャレットの位置が行頭なのかどうかを判定したいのですが、

if(TextBox1.Text[TextBox1.SelectionStart].ToString() == Environment.NewLine)

では判定出来ないようです。
判定する方法を教えてください。
2022/02/27(日) 17:33:25.94ID:6fl1teDTa
[TextBox1.SelectionStart]だと行頭だから
[TextBox1.SelectionStart-1]になるんじゃない?
2022/02/27(日) 17:59:32.72ID:hLXeworC0
>>39
ダメでした・・・。
2022/02/27(日) 18:07:12.14ID:6fl1teDTa
一文字しかとってないからNewlineじゃなくて"\n"かな
2022/02/27(日) 19:11:31.38ID:ZUZKwXZL0
DOBONみたいに地道にやったほうがよくね?
https://dobon.net/vb/dotnet/control/tbgetcaretposition.html
43デフォルトの名無しさん (ワッチョイ 06e9-jC74)
垢版 |
2022/02/28(月) 09:21:55.74ID:+yCudJYj0
下記のOBJListの並びを「I,N,P,P」から「P,P,I,N」のようにPが先頭に来るよう入れ替えしたく。
OBJListの要素をforeachで回してPを見つけたら先頭に移動する等試したのですが、
処理中にOBJListの順番を変えるなと怒られてしまいました。どのようにすれば実現できるでしょうか?
よろしくお願いします。

class OBJ
{
public string Name { get; set; }
public int No { get; set; }
}

private void narabekae()
{
List<OBJ> OBJList = new List<OBJ>();
OBJList.Add(new OBJ { Name = "I", No = 1 });
OBJList.Add(new OBJ { Name = "N", No = 1 });
OBJList.Add(new OBJ { Name = "P", No = 1 });
OBJList.Add(new OBJ { Name = "P", No = 2 });
}
2022/02/28(月) 09:39:44.52ID:+7QZaSxQd
OBJListを使いまわさずに新規のListを作る
Enumerable.OrderByとか
2022/02/28(月) 13:06:35.56ID:UX0HcLa3a
そういうのはforで後ろから回して、削除、挿入
2022/02/28(月) 17:42:35.91ID:XSUMuMfaM
>>43
そもそもがなんで順番変えるな!って怒られるかわかる?

分かったら対応もわかるはず
47デフォルトの名無しさん (ワッチョイ 06e9-jC74)
垢版 |
2022/02/28(月) 19:07:11.88ID:Dbx5MQPW0
>>46
foreach中に順番変えられたらforeachが成り立たないのだろうなとは思いました。
頂いたアドバイスからPを別のリストに移動してドッキングしても
邪道では無さそうなので、そうしようと考えています。
2022/03/01(火) 11:27:38.32ID:Dq7cA1DN0
それだけのために一時バッファとしてもう一個リスト作るのはスマートじゃない
Remove&先頭挿入をペアで行う場合は後方の順番は狂わないので原始的にforで回せばいい

for (int i = 0, end = obj_list.Count; i < end; ++i) {
var obj = obj_list[i];
if (obj.Name != "P") continue;
obj_list.RemoveAt(i);
obj_list.Insert(0, obj);
}
2022/03/01(火) 11:38:43.21ID:Dq7cA1DN0
>>48
そういえばint i = 1からでよかったな
2022/03/01(火) 12:59:14.06ID:haFp+aqn0
>>48
RemoveAtもInsertもO(n)だから
そのやり方なら新規にリストを作るほういいんじゃない?
2022/03/01(火) 13:00:38.80ID:qybIiuxnd
>>45が自分もいいきがするけど何も考えずにやると移動したPのデータの順番がおかしくなりそうにも思えたから
自分はPの移動用のリストを用意してもとのリストを後ろから参照して最後にもとのリストに挿入がいいかなと思った
2022/03/01(火) 13:03:47.38ID:RNWoyucIM
List.Sort が出てこないけどなんか欠点でもあるの?
2022/03/01(火) 13:14:03.84ID:FuAp7249a
新しくリストを作るって以上に処理が多くなる
2022/03/01(火) 13:31:44.32ID:Dq7cA1DN0
>>50
要素数がめちゃくちゃ多い場合はそうだな
RemoveAtで発生する後方要素の前方詰めが今回は完全に不要だから一回分多く無駄な処理が挟まってるからな
.NET5以上ならCollectionsMarshal.AsSpanを利用して
obj_span.Slice(0, i).CopyTo(obj_span.Slice(1, i));
obj_span[0] = obj;
とかに変えればO(n)処理は1回だけで済むからどんなパターンでも新規List作成より早く済むと思うが
2022/03/01(火) 13:50:15.40ID:FuAp7249a
要素が少ないときは新しくリスト作る方がremove/insertよりも数倍速い
ただ新しくリスト作るのはメモリを倍食うから、要素数が多くなったら(物理メモリよりも多くなったら)どうだか
2022/03/01(火) 14:23:11.54ID:V9EqT+vw0
つかそもそも、並べ替えたListそのものを保存する必要があるのかとか
初めから必要な順番で保存できないかとか考えたほうが良い気がする
2022/03/01(火) 14:28:49.61ID:qybIiuxnd
そもそもでいえば並べ替えのAdd時点でPを前に入れたいってわかっていれば
それなりの実装もあるんじゃねと思ったりしているから
質問の内容だけだとやりかたなんて色々あるよね
2022/03/01(火) 18:06:27.21ID:fDW5QBJr0
糞みたいな方法しか出てきてないけど普通に考えると
1) 元のリストからPを抜き出しつつ、Pだけ抜き出したリストを作る
2) Pだけのリストの後ろに元のリストをマージする
あとはList<>で気の利いた方法がないか調べる
2022/03/01(火) 18:38:32.31ID:SjVwjYfg0
>>58
ここまでで一番糞なのは案件満たしてないあんたやんけ
それだと「I,N,P,P」から「P,P,I,N,P,P」になってまうでw
2022/03/01(火) 18:55:33.25ID:xQ0S3wJN0
>>55
元のリストの中身(OBJクラスのインスタンス)をコピーせずに新しいリストで使いまわせば
メモリー消費の一時的な増加はあまり気にしなくて良い場合が多いんじゃないかな
2022/03/01(火) 19:17:57.35ID:fDW5QBJr0
めんどくせえやっちゃこれでいいだろ
OBJList.Sort((a,b) => (a.Name != b.Name) ? (a.Name != "P") ? (b.Name != "P") ? 0 : 1 : -1 : 0);
2022/03/01(火) 20:17:38.37ID:lFABJG9JM
>>61
これは初心者には呪文にしか見えないだろw
2022/03/01(火) 20:18:29.71ID:lFABJG9JM
訂正
誰にも呪文にしか見えない
2022/03/01(火) 20:58:33.05ID:pQFC2fuH0
これでプルリク出されたらレビュイー殺してしまうかもしれん
2022/03/01(火) 20:59:34.53ID:fDW5QBJr0
そういやListのソートは不安定だからNoをインデックスに見立てれば安定ソート
OBJList.Sort((a,b) => (a.Name != b.Name) ? (a.Name != "P") ? (b.Name != "P") ? (a.No - b.No) : 1 : -1 : (a.No - b.No));
LINQのOrderByは元から安定ソート
OBJList = OBJList.OrderBy(a => a.Name != "P").ToList();
2022/03/01(火) 21:09:10.33ID:gr6OEBT80
var weight = new Dictionary() { { "P", 1 }, { "I", 2 }, { "N", 3 } };
var result = OBJList.OrderBy( a => weight[ a.Name ] ).ToList();
の方が好み。エラーチェックは無視。
2022/03/01(火) 22:16:34.56ID:FpudFrD40
>>66
それ NIPP ⇒ PPIN になるんじゃね?
2022/03/01(火) 22:17:08.92ID:BpvMrVad0
ワンループで
P用参照リストと
それ以外参照リスト作って
最後にP用を前にしてドッキング
2022/03/01(火) 22:42:39.70ID:kklKOfnn0
datagridviewの垂直スクロールバーについて教えてください。
datagridviewを作成した後、

DataGridViewRow[] list = new DataGridViewRow[50];
(listの中身作成)
dataGridView1.Rows.AddRange(list);

のようにしてdataGridView1にデータを表示させようとすると縦スクロールバーが上手く表示されずフリーズ状態になってしまいます。
dataGridViewを作成した後に縦スクロールバーが出るまでdataGridView1.Rows.Addを繰り返して縦スクロールバーを出した後に
上記を実行した場合は問題なく表示されます。

縦スクロールバーを出すために無意味なデータをdataGridViewに表示させるといった不必要な処理を行いたくないのですが、
データを投入しなくても縦スクロールバーを出す方法、あるいは
dataGridView1.Rows.AddRange(list);
を実行してもフリーズしない方法はありますでしょうか?
2022/03/01(火) 22:53:13.83ID:i/a33NyP0
とりあえず片っ端からやってみたら
https://www.google.co.jp/search?q=datagridview+scrollbars+%E5%B8%B8%E3%81%AB%E8%A1%A8%E7%A4%BA
2022/03/01(火) 23:36:39.38ID:kklKOfnn0
ありがとうございます!
これでできました!

【C#】DataGridViewで編集不可やスクロールバーを常に表示する | NOARTS
https://noarts.net/archives/2703
2022/03/01(火) 23:50:02.54ID:gr6OEBT80
>>67
あくまでやり方の一例。
問題があるなら自分で何とかしてくれ。
2022/03/02(水) 00:28:20.93ID:MSZ3LlYF0
AsSpan使ったらどうなるか興味あったからベンチしてみたら
1000件くらいだと一番高速だけど結局O(n^2)なので1~2万件でList<T>.Sortとかと逆転した
1万件程度なら余程最適化したい場合を除いてどれを選んでも性能的には問題なさそう

1. List<T>.Sort
2. Enumerable<T>.OrderBy
3. AsSpan + For Loop
4. RemoveAt + Insert + For Loop
5. Partition + Concat
2022/03/02(水) 00:34:33.47ID:MSZ3LlYF0
ところで
Span<T>もしくはIEnumerable<T>のどちらかを受け取るジェネリックな関数って定義できる?
2022/03/02(水) 01:42:56.13ID:O26kNIml0
そりゃ出来るやろ
LINQがおもっくそそれだし
2022/03/02(水) 05:50:05.45ID:+cCq037X0
>>72
いや、おかしいやり方示されても…
2022/03/02(水) 07:20:58.81ID:+1hBA4Bw0
PとP以外でフィルタしたリストをくっつけるのが判りやすいんかなあ
var PList = OBJList.FindAll(a => a.Name == "P");
var NPList = OBJList.FindAll(a => a.Name != "P");
PList.AddRange(NPList);
OBJList = PList;
2022/03/02(水) 08:32:07.28ID:Xi4FA93Ld
>>43 を読む限りの要件は

1. 比較の方法は「Name=="P"」だけで判断する
2. 安定ソートであること
3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明

質問者が現れて要件が確定しないとこれ以上進まんでしょ
2022/03/02(水) 09:19:13.48ID:+cCq037X0
>>78
> 3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明
元のListの上書きでしょ
それやろうとしてエラーになってるんだし
本当に必要な要件だったかどうかはわからんが
2022/03/02(水) 10:03:13.08ID:tBhSxL7sM
変にコレクション弄りまわさずに、Comparer<T>.CreateでカスタムComparer作ってSortかOrderByに食わせろ
2022/03/02(水) 10:20:09.79ID:6DUGQdfA0
>>76
あれに「P を先頭に持ってくる以外は元の順位を保持する」手順を追加すればいいだけだろうに。
宿題じゃないんだからそこまでは書かんよ。
2022/03/02(水) 10:21:00.91ID:KGds3ROy0
sort系持ち出してる人多いけど、P以外の順序は変えないってことは実現できるのか?
2022/03/02(水) 10:39:16.12ID:+cCq037X0
>>81
すでにいくつか正解出てるんだから無能のおかしいやり方なんて要らんよw
84デフォルトの名無しさん (JP 0H97-SxF4)
垢版 |
2022/03/02(水) 11:42:18.09ID:ZYz3XeEgH
>>47
あなたの書いた文が成り立たなくなるとか、そう言う理由でエラーが起きているわけではありません
独自解釈で理解した気分になってしまうと、何年続けても高卒・専門卒級プログラマーの域を出ません
エラーのメッセージが何で、なぜ今回の件に関係があるのか、しっかり突き詰めていかないと・・・・
2022/03/02(水) 18:12:53.89ID:O26kNIml0
小難しく考えずにこれでいいだろ
OBJList = OBJList.Where(x => x.Name == "P")
.Concat(OBJList.Where(x => x.Name != "P"))
.ToList();
2022/03/02(水) 22:35:58.10ID:nWwg4aeaM
なんだかもうネタスレ見たいな感じだな
2022/03/03(木) 00:25:46.12ID:dxyVfE5f0
大喜利かな?
2022/03/03(木) 08:59:19.53ID:o+Rr4hsu0
つまんねー大喜利だな
どこぞの黄色が並んでるみたい
2022/03/03(木) 09:21:31.01ID:jSBR5AQpd
初心者用スレなんだからわかる人から見れば大喜利に見えるでしょ
つまらないこといいなさんな
2022/03/03(木) 17:21:59.36ID:AMDtBRAN0
>>78,82
もとの要件がちゃんと示されてないから、
安定ソートが必要かどうかは微妙だと思うぞ
P,I,Nの順にソートされるようにすればいいだけじゃないのか

まあ俺ならソート用に順位表すような何かを別途作るがな
2022/03/03(木) 17:31:12.89ID:QcxixHpuM
わざわざunstableな方法を選ぶメリットあるの?
2022/03/03(木) 18:02:58.80ID:AMDtBRAN0
>>91
List<T>.Sort が不安定ソートだからな
OBJクラスにIComparable<OBJ>実装しとけば、OBJList.Sortだけで完了する
パフォーマンスとかまあいろいろあるけど、設計としてはそれが正しい気がする
2022/03/03(木) 18:17:27.98ID:QKnbgpbEM
>>92
今回のはOBJクラスに直接実装するIComparableとは別に比較関数用意したほうがいいでしょ
それに比較関数書くよりも簡単に書けてパフォーマンスもいいstableなやり方がすでにいくつか上がってる
2022/03/03(木) 18:35:14.37ID:harl8Fl70
もうこの流れ見て質問者逃げてるだろ
2022/03/03(木) 18:55:04.85ID:uKQKiz/ua
質問者なんてお題提供の存在でしかないからな
質問者放置はいつものことだろw
2022/03/03(木) 19:02:52.70ID:FQovZrSRM
たかがソートで満身創痍で質問者もびっくりしてると思う
2022/03/03(木) 19:12:44.11ID:bgg8zGG60
>>94
逃げてると言うかそれなりに答え出てるからもう見てないかもね
2022/03/03(木) 19:44:36.41ID:o+Rr4hsu0
そういや質問者そっちのけでバトるのもお得意だったよな
2022/03/03(木) 20:37:55.07ID:NDgh0LAU0
ID真っ赤にしてマウント取りに行くのは見物だよね
2022/03/04(金) 09:38:06.30ID:TJSFQkSB0
>>98
このスレのいいところの一つ
2022/03/04(金) 18:47:08.78ID:N5q/Azrd0
自称世界最速のソートアルゴリズムを作ってた奴もこのスレだっけ?
2022/03/05(土) 14:00:23.89ID:U93o6YuQ0
どちらかというとアリゴリズムというよりは自然なソート?というのでよく悩むよね
具体的には1,10,11,2,3,4,5,6,7,8,9となってしまうのを
1,2,3,4,5,6,7,8,9,10,11としたい(実際には数字だけではなくアルファベットなどが混入する)
2022/03/05(土) 16:19:30.03ID:E2o+9AFP0
文字列を数値扱いで比較するのが闇だからなぁ
正の整数しかないならできんこともないけど

マイナスを考慮するか?
"x=-3" < "x=-2"
"x=+3" > "x=+2"

小数扱いをするか?
"ver3.2" > "ver3.14"
"ver3.2.x" > "ver3.14.x" //これでいいのか?
"ver3.2.1" > "ver3.14.1" //これでいいのか?
"verx.2.1" < "verx.14.1" //これでいいのか?
"p3_2" < "p3_14" //小数扱いはしない

結構のところ数値考慮の比較は複数パターン用意してオプションで切り替えなきゃいけない
どこを数値扱いするかの仕様もどっかに書いとかないといけない

正の整数だけ考慮した比較と辞書順の比較の切り替えすら考え出すと辛いから
結局辞書順しかサポートしたくない
2022/03/05(土) 16:30:49.93ID:Tp7uE+H9M
>>102
それがまさにアルゴリズムじゃないかw
2022/03/05(土) 16:32:28.28ID:JM4So5Oz0
>>103
バージョンは正の数値以外含まれないものとしてSystem.Versionクラスを使えば
機械処理したいならこのクラスで扱える仕様にしておくのが無難だ
2022/03/05(土) 16:53:10.76ID:GzcJYiRD0
お絵描きソフトを作りたいのですがそういうグラフィック系についての参考書みたいなのって知ってますか?
あと初心者はこれ読めって本あれば教えて下さい
2022/03/05(土) 16:53:30.21ID:GzcJYiRD0
趣味でやろうとしてます
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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