X



ふらっと C#,C♯,C#(初心者用) Part154
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 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
0007デフォルトの名無しさん (ワッチョイ 1f24-OGev)
垢版 |
2022/02/16(水) 09:24:38.60ID:9PrGaEWW0
シャグ配列は配列の配列のためのヒープ+配列それぞれのヒープ、つまりint[3][3]だと4つのオブジェクトからなる
メモリ的にも連続してない上に4つのオブジェクトヘッダ分(32bitだと8byte?64bitだと16byte?)余計に要する
int[3,3]の多次元配列は実体はint[9]の1オブジェクトとしてレイアウトされてそうだけど実際どうなってるかはunsafeで確かめてみないと分からない
Console.WriteLine(Unsafe.AsPointer(ref array[0,0]));とかでアドレスを調べてみると良い
0010デフォルトの名無しさん (テテンテンテン MMde-zyG0)
垢版 |
2022/02/16(水) 11:20:29.58ID:FqYQ+dJNM
すまん嘘ついたわ
シーケンシャルはジャグのが速いけど、ランダムだと逆らしい
普通に考えると >>7 の言うようにジャグは配列のヘッダ分余分に使うと思うけど、プリミティブ型の配列は最適化で何か消し飛びそうな気もするから、正直あんま変わらなさそうな気がする
0011デフォルトの名無しさん (ブーイモ MM0e-/t+S)
垢版 |
2022/02/16(水) 14:03:09.07ID:RtFWZL7LM
全部詰め込むならジャグ配列のほうが容量は食う
多次元配列はint[M x N]で確保されて計算経由でアクセス
速度は環境や使い方によって違うので自分の使い方で計測したほうがいい
0016デフォルトの名無しさん (ワッチョイ bfbd-oz1W)
垢版 |
2022/02/21(月) 21:06:11.37ID:8NF9kOJ70
VBAからのC ♯に挑戦中です。
visual studio使ってるんですが、予測変換やらその他諸々便利な事が多く感動しております。。
質問なんですが、VBAでやる場合は印刷=Excel sheetでみたいな固定概念なんですがこっちの場合って印刷出力は物によるとは思うんですが、どんな感じですか?調べると、print document??なるもので頭でイメージして印刷用のベースを自作して作るのですか?
印刷内容は至ってシンプルな文字列やら数値です。
0017デフォルトの名無しさん (ワッチョイ 83d2-vGHd)
垢版 |
2022/02/21(月) 21:40:50.41ID:dmBIFY6O0
そもそもプリンタから紙を出すということ自体発想がなかったわ

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

簡単に印刷と言うけど結構やることは多い
0018デフォルトの名無しさん (アウアウウー Sae7-8E80)
垢版 |
2022/02/21(月) 21:44:55.46ID:i5JttRhRa
プリンタは画像描画みたいなもの
縦横ピクセルサイズ決めて、そこのxy座標どこにどのくらいの大きさで文字を描く〜ってイメージ
印刷プレビューも使えるから適当にググって試せばすぐわかるよ
0020デフォルトの名無しさん (ワッチョイ bfbd-oz1W)
垢版 |
2022/02/21(月) 23:35:22.77ID:8NF9kOJ70
なるほど、やはりしこしこ描いてくんですね。やる事多そうですね。
勉強も兼ねてやってみます。
ありがとうございます!
0031デフォルトの名無しさん (アウアウウー Sae7-8E80)
垢版 |
2022/02/23(水) 13:46:28.74ID:mlk9UOBoa
今の.netと数年前の.net coreは別物になってる
それに引き換えframeworkは変化が少ない。c++のmfcみたいに細々と生きて切り捨てられることもないだろ
どっちが保守楽かって考えたら・・・
0032デフォルトの名無しさん (ワッチョイ b302-mA98)
垢版 |
2022/02/23(水) 14:00:40.20ID:a6rWCkrR0
規模がでかい社内システムだと、中々移行に踏み切るのも難しい場合はあるな
部分部分で少しづつ置き換えられるならいいんだが、色々連動してたりすると下手に手が出せん
0038デフォルトの名無しさん (ワッチョイ cae6-ei6B)
垢版 |
2022/02/27(日) 17:20:47.20ID:hLXeworC0
WinFormsのTextBoxでKeyPressイベントが発生した時、キャレットの位置が行頭なのかどうかを判定したいのですが、

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

では判定出来ないようです。
判定する方法を教えてください。
0043デフォルトの名無しさん (ワッチョイ 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 });
}
0047デフォルトの名無しさん (ワッチョイ 06e9-jC74)
垢版 |
2022/02/28(月) 19:07:11.88ID:Dbx5MQPW0
>>46
foreach中に順番変えられたらforeachが成り立たないのだろうなとは思いました。
頂いたアドバイスからPを別のリストに移動してドッキングしても
邪道では無さそうなので、そうしようと考えています。
0048デフォルトの名無しさん (ワッチョイ ca24-yy09)
垢版 |
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);
}
0051デフォルトの名無しさん (スップ Sd8a-8W3/)
垢版 |
2022/03/01(火) 13:00:38.80ID:qybIiuxnd
>>45が自分もいいきがするけど何も考えずにやると移動したPのデータの順番がおかしくなりそうにも思えたから
自分はPの移動用のリストを用意してもとのリストを後ろから参照して最後にもとのリストに挿入がいいかなと思った
0054デフォルトの名無しさん (ワッチョイ ca24-yy09)
垢版 |
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作成より早く済むと思うが
0055デフォルトの名無しさん (アウアウウー Sa2f-n9nK)
垢版 |
2022/03/01(火) 13:50:15.40ID:FuAp7249a
要素が少ないときは新しくリスト作る方がremove/insertよりも数倍速い
ただ新しくリスト作るのはメモリを倍食うから、要素数が多くなったら(物理メモリよりも多くなったら)どうだか
0057デフォルトの名無しさん (スップ Sd8a-8W3/)
垢版 |
2022/03/01(火) 14:28:49.61ID:qybIiuxnd
そもそもでいえば並べ替えのAdd時点でPを前に入れたいってわかっていれば
それなりの実装もあるんじゃねと思ったりしているから
質問の内容だけだとやりかたなんて色々あるよね
0058デフォルトの名無しさん (ワッチョイ ca79-OOjg)
垢版 |
2022/03/01(火) 18:06:27.21ID:fDW5QBJr0
糞みたいな方法しか出てきてないけど普通に考えると
1) 元のリストからPを抜き出しつつ、Pだけ抜き出したリストを作る
2) Pだけのリストの後ろに元のリストをマージする
あとはList<>で気の利いた方法がないか調べる
0060デフォルトの名無しさん (ワッチョイ 6b2d-jC74)
垢版 |
2022/03/01(火) 18:55:33.25ID:xQ0S3wJN0
>>55
元のリストの中身(OBJクラスのインスタンス)をコピーせずに新しいリストで使いまわせば
メモリー消費の一時的な増加はあまり気にしなくて良い場合が多いんじゃないかな
0065デフォルトの名無しさん (ワッチョイ ca79-OOjg)
垢版 |
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();
0069デフォルトの名無しさん (ワッチョイ 6336-8W3/)
垢版 |
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);
を実行してもフリーズしない方法はありますでしょうか?
0073デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
垢版 |
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
0077デフォルトの名無しさん (ワッチョイ ca79-OOjg)
垢版 |
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;
0078デフォルトの名無しさん (スッップ Sdea-PHKB)
垢版 |
2022/03/02(水) 08:32:07.28ID:Xi4FA93Ld
>>43 を読む限りの要件は

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

質問者が現れて要件が確定しないとこれ以上進まんでしょ
0079デフォルトの名無しさん (ワッチョイ ca01-+tM1)
垢版 |
2022/03/02(水) 09:19:13.48ID:+cCq037X0
>>78
> 3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明
元のListの上書きでしょ
それやろうとしてエラーになってるんだし
本当に必要な要件だったかどうかはわからんが
0084デフォルトの名無しさん (JP 0H97-SxF4)
垢版 |
2022/03/02(水) 11:42:18.09ID:ZYz3XeEgH
>>47
あなたの書いた文が成り立たなくなるとか、そう言う理由でエラーが起きているわけではありません
独自解釈で理解した気分になってしまうと、何年続けても高卒・専門卒級プログラマーの域を出ません
エラーのメッセージが何で、なぜ今回の件に関係があるのか、しっかり突き詰めていかないと・・・・
0090デフォルトの名無しさん (ワッチョイ ff2f-65e0)
垢版 |
2022/03/03(木) 17:21:59.36ID:AMDtBRAN0
>>78,82
もとの要件がちゃんと示されてないから、
安定ソートが必要かどうかは微妙だと思うぞ
P,I,Nの順にソートされるようにすればいいだけじゃないのか

まあ俺ならソート用に順位表すような何かを別途作るがな
0092デフォルトの名無しさん (ワッチョイ ff2f-65e0)
垢版 |
2022/03/03(木) 18:02:58.80ID:AMDtBRAN0
>>91
List<T>.Sort が不安定ソートだからな
OBJクラスにIComparable<OBJ>実装しとけば、OBJList.Sortだけで完了する
パフォーマンスとかまあいろいろあるけど、設計としてはそれが正しい気がする
0093デフォルトの名無しさん (ブーイモ MM76-Xv4c)
垢版 |
2022/03/03(木) 18:17:27.98ID:QKnbgpbEM
>>92
今回のはOBJクラスに直接実装するIComparableとは別に比較関数用意したほうがいいでしょ
それに比較関数書くよりも簡単に書けてパフォーマンスもいいstableなやり方がすでにいくつか上がってる
0102デフォルトの名無しさん (ワッチョイ ef10-0yeF)
垢版 |
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としたい(実際には数字だけではなくアルファベットなどが混入する)
0103デフォルトの名無しさん (ワッチョイ 6bd2-pJVr)
垢版 |
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" //小数扱いはしない

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

正の整数だけ考慮した比較と辞書順の比較の切り替えすら考え出すと辛いから
結局辞書順しかサポートしたくない
0106デフォルトの名無しさん (ワッチョイ 9f01-S4HU)
垢版 |
2022/03/05(土) 16:53:10.76ID:GzcJYiRD0
お絵描きソフトを作りたいのですがそういうグラフィック系についての参考書みたいなのって知ってますか?
あと初心者はこれ読めって本あれば教えて下さい
0115デフォルトの名無しさん (ワッチョイ 9f02-6Pw1)
垢版 |
2022/03/06(日) 10:42:12.60ID:20PzKiJp0
自分にできないことを他の人ができるようになってしまうのは悔しくて
答えに辿り着けそうなものを提供されると横やり入れて邪魔して
足を引っ張ろうとする地縛霊の糞みたいなのがここには居るんだよ
0117デフォルトの名無しさん (ワッチョイ 4fa7-2uaI)
垢版 |
2022/03/06(日) 13:37:26.55ID:YSSWJmRp0
>>115
別にそんな気はないんだが…
趣味程度で自分の範囲で使うなら勝手にすればいい
違法行為じゃないから
でもライセンスを守ろうとすらしないやつは自分勝手なのが多い
仕事じゃなくて学校の課題だから自分ではやらずに他人に押し付けるとか、「あくまで非推奨であって法的拘束力がないから」ということでやりたい放題するとか
単に知らなかっただけならともかく自己中な考えのやつが大杉だから書いただけ
0119デフォルトの名無しさん (ワッチョイ 9f01-AHxu)
垢版 |
2022/03/06(日) 14:02:37.57ID:gemqlKpJ0
>>116
dobonのコードをそのままコピペするわけじゃないからな
コードそのものじゃなくアルゴリズム自体が著作権法の保護対象になるような創作的なものはdobonにはほぼないと言っていい
0122デフォルトの名無しさん (ワッチョイ 6be4-rWt2)
垢版 |
2022/03/06(日) 15:29:34.08ID:iwH3kjY/0
>>119
すみだけど
著作権が保護するの記述されたものなのでコード自体は保護できるけど、アイデアは
保護しないはずなのでアルゴリズムは著作権の保護対象じゃないんでまいか?
アルゴリズムを保護するなら特許権のはずなので、コードのマルコピはNGだけど、
やってることをマネするのは問題なかったはず

アイデアが著作権で保護されちゃうと、誰も異世界転生出来なくなっちゃうよねぇ?w
0123デフォルトの名無しさん (ワッチョイ 9f01-AHxu)
垢版 |
2022/03/06(日) 16:22:36.60ID:gemqlKpJ0
>>122
広く「やり方/実装方法」という意味だったんだけどアルゴリズムって書いたのがよくなかったね
著作権法の保護対象はアルゴリズムを表現したコードになるんだけど
そのコードの丸コピじゃなくても表現として創作性が認められる部分をコピーしてれば問題になる

小説とプログラムだと保護される度合いが小説のほうが高いんだけど基本は同じ
異世界転生というアイデアの表現として創作性が認められる部分をコピーしてれば著作権侵害になりうるよ
0140デフォルトの名無しさん (ワッチョイ ab01-Ff7g)
垢版 |
2022/03/11(金) 20:41:00.28ID:u82a29l50
学ぶにはコミュニティにお布施しないといけないからなぁ
しかも姫プを始める女が居ると技術系のガチ勢が愛想つかして出ていくから益々過疎化するという
0143デフォルトの名無しさん (ワッチョイ 9d6e-JxOY)
垢版 |
2022/03/12(土) 08:55:55.47ID:dl+G0hLg0
趣味の延長で小さな会社で一人で業務アプリちまちま作ってるんですが相談させて下さい

VS2019+FrameWorks4.8で帳票とかサードパーティ製入れながらWinFormsで、Linux+MySQLでそれなりの規模に膨れて使ってます

端末の選択肢がWindows機でタッチありで5万で抑えて増やしてましたが、コストの割りに性能低すぎ故障多くてipadとかchromebook、Androidとかの選択肢に切り替えようかと
デスクトップアプリから脱却となると、NET5とかNET6への鞍替えがいるかなと思うのですが、関連書籍もまだあまりでおらず
実際、VS2022いれてNET5かNET6どちらに進むべきですかね
ActiveReportsはNET5は対応していないし、他のサードパティは逆にNET5はOKでNET6はまだだったりですし、WindowsServerもたてれるようにならなきゃかなと思うと、本業片手間でやっているので学習コストも際限なくとはできないですし、稼働しているMySQLのデータは活かしたいところだしで・・何がいいのかわけわからなくなってきて
識者のご意見お伺いしたいです
0145デフォルトの名無しさん (アウアウウー Sac5-I38D)
垢版 |
2022/03/12(土) 10:48:32.30ID:B+2fu+fka
.net5はサポート期間が終わったか終わるかそのくらいの時期だよ
そういうのを真面目に考えるなら.net5はアウト(そういうの気しないなら5でもいい)

新規ではなく、winformからAndroidなどへ移行させるのは面倒だよ
どのくらいwindows依存コードがあるのかにもよるけど。
端末価格(性能に対する価格)はどんどん落ちてくから、俺だったらなんとか耐えつつwindows/FrameWorks4.8でやってくかな
0146デフォルトの名無しさん (ワッチョイ 9d6e-JxOY)
垢版 |
2022/03/12(土) 11:03:57.18ID:dl+G0hLg0
>144
現状現場独自の機能が山ほどあるのでいまからSaaSというのは厳しいです
予算的にも・・・
>>145
となるとnet6をBlazorでちょっとずつ作り直していくてのが現実できですかね
(phpはかじってますが、JavaScriptはできない)
ブラウザベースに移行すればipadでもAndroidでもchromebookでもいけそうですし
ActiveReportsは大丈夫だし、それ以外のサードパーティ製は対応してくるのを待つとして
ネックは現在のサーバをWindowsServerに鞍替えするってことくらいでしょうか
CentOSは何年も触ってますが、Win鯖って扱えるようになるまでの労力って大きいですかね
セキュリティ含めてまでの学習となると相当苦労しそうですが・・・
0152デフォルトの名無しさん (ワッチョイ 9d6e-JxOY)
垢版 |
2022/03/12(土) 11:45:36.72ID:dl+G0hLg0
>>147
ちょっと調べてみます
>>148
元々端末の追加コストが問題なので、ブラウザベースに移行するとなると
WebAssemblyは肝心のDBが不可とあるようなので
ASP.net Coreサーバー動かすために
WindowsServerが必要という理解なのですが間違ってますか?
>>149
そうです、独自の機能もありますが
大半の機能は画面開いてDBからデータひっぱってきて画面表示、
スタッフが操作して業務管理し、必要に応じて帳票印刷という流れが大半です
>>151
NET Framework、誤字です
すみません
0153デフォルトの名無しさん (ワッチョイ 7d02-WCXV)
垢版 |
2022/03/12(土) 11:50:42.45ID:MLpoR2LT0
WebAssemblyはDBが不可というか、ブラウザ上で動く技術だから
WebAPIなり挟まないとDBのデータ取ってこれないのよ
DB入出力をWebAPI化するところからだな。パフォーマンスどうなるかは知らんけど。
0158デフォルトの名無しさん (ブーイモ MMe6-iDiS)
垢版 |
2022/03/12(土) 14:18:56.82ID:Taqa0P0FM
ASP.Net CoreはLinuxで普通に動くよ
帳票の中身次第だがシステム的にはWeb化するのが常道

でもWebアプリの維持管理やセキュリティ対策とか趣味レベルで対応できるのか疑問だから
別の方法考えたほうがいいのかもね
0164デフォルトの名無しさん (ワッチョイ 9d6e-JxOY)
垢版 |
2022/03/12(土) 17:00:48.11ID:dl+G0hLg0
皆さんアドバイスありがとうございます

>>162
そうです、重い作業はデスクトップで、軽いのは小さいタブレットPC(ほとんどAtom)で
端末ごとに認証時に動作モードを変えて異なる画面サイズに対応させています
Atom機は遅いし故障も多いし、破損も多い・・・という状況で苦慮してます

移行の労力を考えるとやっぱりそのままいくのが一番妥当というところなんですね・・・
安くて性能の高いものが出てくるのも期待しつつ
軽い作業で使っている台数の多いAtomのものをせめてN4000番台に入れ替えながら耐えて
稼働している部分は触れずに、暇なときにLinuxにASP.NetCoreいれてWebアプリ開発にチャレンジして
徐々に軽い方だけ切り替えていく方向で考えてみます
0165デフォルトの名無しさん (ワッチョイ 427c-9pEf)
垢版 |
2022/03/12(土) 17:04:39.68ID:zW5va19F0
webでC#は流石にどうかと思うんだけどねぇw
コードを流用したい?とかなのかも知れないが
まだUnityとかの方がマシな気がするし
実際Unityで業務アプリ作ってたりしている所もあるらしい

個人的にはwebにするならPHPとかで作り直した方が良いと思うけどね
C#でweb化、過去の資産があるから短期間でみたいな仕事が来たら速攻で断るw
0166デフォルトの名無しさん (ワッチョイ ed2f-lWiN)
垢版 |
2022/03/12(土) 17:21:57.02ID:pgjQzAZm0
単純にC#でweb化っていってもな
MVCもあるし、Blazor ServerもWebAssemblyもある
そろそろ本気でBlazor評価しとかんといかんなぁ

過去の資産があるから短期間でみたいな仕事は
言語がどうだろうが環境がどうだろうがヤバイ匂いしかしないがな

つかAtomのタブレットってそんなに壊れるのか?
安物買いの銭失いとはよく言った気がするが
0168デフォルトの名無しさん (ワッチョイ 02da-9pEf)
垢版 |
2022/03/12(土) 17:39:01.24ID:x75wVy6A0

WebバックエンドでC#なんて最高に相性いいじゃない。
EFのおかげでDB周りも楽だし。

フロントUIはAngularなりReactなり任せちゃえばいいし。
PHPとかnodeとか言ってるのはあれか、アクセス数少なくてパフォーマンス気にしなくてもいい人たちか。
0169デフォルトの名無しさん (ワッチョイ 69d2-nn6q)
垢版 |
2022/03/12(土) 17:43:50.76ID:olrB42jq0
ショボいスペックのPCにそこそこの要求スペックのWindows入れること自体ねぇ

アプデもあるし2年もすれば時代遅れになるだろうことは想像できるけど

ハードウェアが壊れるかどうかは知らん
0178175 (ワッチョイ 464a-8qwV)
垢版 |
2022/03/12(土) 19:59:58.59ID:jj9bNUpZ0
Pythonでは
x, y = y, x
ってできるの知ってたけど、C#ではできないと思ってた
0181デフォルトの名無しさん (ワッチョイ 822c-lWiN)
垢版 |
2022/03/13(日) 01:59:10.72ID:cmsw373x0
catchで何もしないのはやめよう
せめてログに出すとかさ

> SmtpClient server = new SmtpClient("自分のメール@gmail.com");
> mail.From = new MailAddress("email");
> mail.To.Add("dest");
パラメータ滅茶苦茶
SmtpClientに渡すのは通信先のSMTPサーバの情報
Toが送信先メールアドレス
SMTPサーバはGmailのが使えるようだから調べてみて

あとSystem.Net.Mailはもう非推奨 代替としてMailKitとか挙げられてる
0183デフォルトの名無しさん (ワッチョイ 69d2-nn6q)
垢版 |
2022/03/13(日) 03:18:43.91ID:5qwn5s+60
やべーelse ifが見えた時点で読むのやめたんだが

まず問題の切り分けからだね
このコードはgoogle.comのメールサーバー(mail.google.co.jpだと思うんだけどなぁ)に対してメールを直接投げるやつ?

それともgoogle.comの自分のアカウントにログインしてからまた別のメールアドレスにメールを投げるやつ?

あとkeyとか色々作る前に定型分のテストメールにしなよ

To: dest@gmail.com
From: my-account@gmail.com
Subject: TestMail

This is test mail No. 1.
.
0190デフォルトの名無しさん (ワッチョイ 2e68-pPbi)
垢版 |
2022/03/13(日) 10:37:14.46ID:IGUcP/is0
>>189
ありがとうございます
ちなusingやnamespceは定義ですか?
0191デフォルトの名無しさん (ワッチョイ 7ea7-cs1e)
垢版 |
2022/03/13(日) 10:46:29.13ID:vXOJHn5g0
>>190
自分の場合はnamespaceで包むときは定義、使うときは単に「使う」系かな

定義(definition)は文字通り、「(存在してなかったものを)こういうものだと決めること」だと思ってる

さっき挙げたページでいうN::Cやfのような処理や型自体が存在してなくて、それを「こういうやつだ」と決めてコンパイラに教えているね

変数とかの宣言(declaration)は「この変数はこの型として使うよ」っていうイメージかな

だからC#だと using System;は https://docs.microsoft.com/ja-jp/cpp/cpp/using-declaration?view=msvc-170 だと「using 宣言」てなってるから宣言かな
0193デフォルトの名無しさん (ワッチョイ 2e68-pPbi)
垢版 |
2022/03/13(日) 10:49:58.20ID:IGUcP/is0
>>191
ありがとうございます
参考にします
0194デフォルトの名無しさん (ワッチョイ 82ad-8qwV)
垢版 |
2022/03/13(日) 23:57:03.38ID:Z9Glx4pW0
>>181 >>183
ありがとうございます
アドバイス通り引数を直したんですがメール送られてこず…でした
仰るとおり自分のメールアドレスにログインして別のメールアドレスにメールを送るプログラムなんですが
何処を直したら正常に機能しそうですかね
0204デフォルトの名無しさん (ワッチョイ 12bd-eKgF)
垢版 |
2022/03/14(月) 21:53:50.24ID:3nbBdTge0
簡単な図形データをdxfファイルにしてみたいんですけど、どこか参考になるサイトないですか?

幅500o✖長さ1000oの長方形枠内に円とか長方形とかそんな感じのもので、レイヤーとか線種とかとくなく実線のみで表現したいんですけど。
0206デフォルトの名無しさん (アウアウウー Sac5-I38D)
垢版 |
2022/03/14(月) 23:03:31.17ID:rbCSOV+9a
dxfを読みたいっていうとバイナリだ3dだ色だなんだって色々なパターンあるから大変だけど
dxfを書き出したいってだけなら難しいこと考えずに適当に「dxf ファイル仕様」とかぐぐって調べたらいいよ
0207デフォルトの名無しさん (スプッッ Sda2-eKgF)
垢版 |
2022/03/15(火) 06:37:09.86ID:Hxz/HcaZd
ありがとうございます!
0210デフォルトの名無しさん (ワッチョイ 7ea7-cs1e)
垢版 |
2022/03/16(水) 17:51:38.31ID:sDB+P2C+0
>>209
フォームのサイズが変更されたとき?

サイズ変更についてなら「サイズが変更された」ときのイベント内で再計算するか、Panel系クラスを利用して表示するかだと思う

フォームの大きさを小さくしたら下に回り込むようなやつならFlowLayoutPanelで、HTMLでいうテーブルならTableLayoutPanelとか

Panel系にDockをFillにしたりすれば再計算はプログラムがやってくれる
0212デフォルトの名無しさん (ワッチョイ 8279-Peks)
垢版 |
2022/03/16(水) 18:55:49.03ID:IT+0ZBM10
>>209 ですが、
色気を出して最初にSetProcessDPIAware()を呼んでたので、これ呼ぶのをやめたらズレは直りました。
これはフォントがボヤンとするいわゆるDPI仮想化状態ですね。
ただこれだと座標取得関係に難ありだったと記憶してるので、
SetProcessDPIAware()を呼び出しつつ、
form1.AutoScaleMode = AutoScaleMode.Dpi;
にするとコントロールのズレは収まりました。フォントの大きさの再調整は必要ですがこれが良さそうです。
一旦問題を整理してみます。
0215デフォルトの名無しさん (ワッチョイ 8279-Peks)
垢版 |
2022/03/16(水) 21:22:24.16ID:IT+0ZBM10
コントロールのフォントを自動調節するやつできたんでとりあえず解決しました。
void AutoFitFontControl(Control ctl, string fontname, int maxpoint) {
var g = System.Drawing.Graphics.FromHwnd(ctl.Handle);
var point = maxpoint;
for (;;) {
SizeF sf = g.MeasureString(ctl.Text, new Font(fontname, point));
if (ctl.Width < (int)(sf.Width) || ctl.Height < (int)(sf.Height)) {
point -= 2;
} else {
break;
}
}
ctl.Font = new Font(fontname, point);
}
0216デフォルトの名無しさん (ワッチョイ 6936-dw4a)
垢版 |
2022/03/17(木) 09:57:20.56ID:8n4FcalY0
C#勉強中で分からない点があるので質問です
テキストボックスをデータバインドしていてViewModel側はstringでSetPropertyで双方向としていて
テキストボックスでキー入力されてもコード上でstringの値を代入等で変えても画面に表示されている値と内部で保持している値が一致するようにしています

これをstringから独自のクラス、例えば電話番号クラスとかにするとテキストボックスにキー入力しても内部で保持している値に書き換わってしまうのですがこれって何に原因があるのでしょうか?

View側の処理
TelephoneTextBox.DataBindings.Add("Text", viewModel, nameof(ViewModel.Telephone));

ViewModel側の処理
public TelephoneValue Telephone
{
get => _telephone;
set => SetProperty(ref _telephone, value);
}

TelephoneValueは内部にstringを持っていてToString()でstringを返しています
0217デフォルトの名無しさん (スプッッ Sd01-nn6q)
垢版 |
2022/03/17(木) 12:22:14.37ID:Mvnns9V0d
>>216
あなたがどっかで定義したTelephoneValue型はxamlが理解できるものじゃない

TelephoneValueを1引数のstringで構築できるかもしれんがそんなことは知ったこっちゃない
(Converterを自作すればなんとかなるかもしれんが)
0218デフォルトの名無しさん (スプッッ Sd02-nn6q)
垢版 |
2022/03/17(木) 12:37:39.27ID:0cmWCmO7d
おそらくXaml側でBindingエラーが出てる
アプリが落ちるわけじゃないから気付きにくいが

Visual Studio環境なら出力ウインドウとバインディングエラーのウインドウにエラーメッセージが出てるはず
0219デフォルトの名無しさん (テテンテンテン MMe6-rsxS)
垢版 |
2022/03/17(木) 13:52:54.08ID:i4B2mw3zM
すいません使ってるのはWFPでは無いです
formで書いてます

ただ>>217が言ってるようにそうなる理由はset時に型を理解できない為と思います、テキストボックスからの文字列は文字列であり独自の型に入れられないから上記のような挙動に見える
エラーは出てなかった様に思いますが帰ったら確かめます

これって独自の型を定義してその型でバインドした物と双方向する事はそもそも出来ないんでしょうか?
intにしろDateTimeとか文字列への型変換が出来るので出来そうに思えるのですが
0221デフォルトの名無しさん (アウアウウー Sac5-I38D)
垢版 |
2022/03/17(木) 14:39:30.41ID:rF5KH7cwa
こんなにすれば内部で保持してるのとuiとで双方向できるし
内部→ui、ui→内部、どっちかだけ片方bindもできる

class telephone
{
int a,b=0;
public string tel
{
set{ var d = value.split('-');a=int.parse(d[0]);b=int.parse(d[1]);
get{ return $"{a}-{b}";
}
0224デフォルトの名無しさん (ワッチョイ 6936-dw4a)
垢版 |
2022/03/17(木) 20:21:34.94ID:8n4FcalY0
>>220-223
色々ヒントありがとうございます。後程色々試してみて報告できそうな結果ならしたいと思います
また分からなかったら聞くかもです
最初、代入演算子かstringformat以降をごにょごにょする?か最悪テキストボックス側をいじる、いやUIはさすがにいじりたくない
とかですが"Telephone.TextValue"な書き方もできるんですね目から鱗です
TypeConverterは調べてみます

最終的にやりたいのはテキストボックスのマスクの動的判定
例えば06と打てば06-、続けて6を打てば06-6、4なら064-みたく表示(実装済み)
かつデータベースに書き込むのはハイフンなしにして書き込み、読み込む時はハイフン付けてテキストボックスに表示(生のstringでは検証済み)
これを整合性合わせてしたいが生のstringを使いたくなかったのが理由
まぁテキストボックスいじる方がよっぽど気持ちが悪いのですが

取り合えず上記アドバイス試してみますありがとうございます
0227デフォルトの名無しさん (ワッチョイ c666-lWiN)
垢版 |
2022/03/18(金) 10:15:35.13ID:exJrGo4o0
Socket.IO (SocketIoClientDotNet) を利用し、下記コードでメッセージの購読は出来たのですが

this.socket = IO.Socket("http://localhost";);
this.socket.On("new-message", (jo) =>
{
this.RecvNewMessage(jo as JObject);
});

購読を終了する方法が解りませんでした。
どのようにすれば終了できるでしょうか?よろしくお願いします。
0229デフォルトの名無しさん (ワッチョイ ed2f-K4Xb)
垢版 |
2022/03/18(金) 15:59:31.12ID:Fy/f5KFA0
コメントアウトはVSCodeのようにCtrl+/でやりたいんだけど
設定で変更できるよね?
なぜ最初からそうなっていないの?
Ctrl+k,cは面倒極まりない。
0238デフォルトの名無しさん (アウアウウー Sac5-I38D)
垢版 |
2022/03/18(金) 16:59:58.79ID:/Q6fnTiGa
チャタリング判断が時間要素と多少の移動値しかないから、ソフト的な対策はできない(操作性悪いのは変わらない)んだよ
俺の対策の腕が悪いからかもしれないけどな・・・
0253デフォルトの名無しさん (ワッチョイ f9ac-MdQT)
垢版 |
2022/03/19(土) 20:19:19.80ID:VZmL8CeM0
おせっかいというか余計なアレやけど、
USBを擬似的に抜き差しさせるプログラム作って新たな障害の素を作るより、
USBを使わない、ネットワークストレージに置き換えるとかの方法で、
根本的な状況を改善するほうがいいんじゃないかな。。
0260デフォルトの名無しさん (ワッチョイ 1379-Tr1D)
垢版 |
2022/03/22(火) 00:17:50.57ID:gjcW4Tfu0
まあハードで細工前提なら間にマイコンなりでVCCをスイッチすればできますけどね
ソフトでできないかという話なので
devconでdisable→enableは期待した動作にはならなかったので他の方法を考えて見ます
0262デフォルトの名無しさん (ワッチョイ f154-B0ie)
垢版 |
2022/03/22(火) 03:13:27.47ID:dk64x/8s0
Disposeパターンの学習中なのですが、マネージリソースとアンマネージリソースの見分け方が分からないのですが、
よい解説サイトを教えて頂けないでしょうか。
0263デフォルトの名無しさん (アウアウウー Sa5d-580B)
垢版 |
2022/03/22(火) 03:27:22.28ID:Fi74risNa
難しく考えることない。この程度の見分け方で十分だろ

class A : IDispose ←宣言を見たときにIDispose派生ならアンマネージド

A a = 〜
a. ←「.」を打ち込んだ時にDisposeが表示されたらアンマネージド

using (var a = new 〜) ←usingで囲んでエラー出たらマネージド
0274デフォルトの名無しさん (ワッチョイ 132c-P46e)
垢版 |
2022/03/22(火) 10:34:09.76ID:G7lfoYcY0
Disposeでマネージ/アンマネージってことは
protected virtual Dispose(bool disposing)
のdisposingの真偽で何を解放すべきかってことだよね

.NETのオブジェクトとして存在しているモノがマネージリソース
大体は自分がメンバに持ってるIDisposableなオブジェクトを意味する
これらはdisposing==trueのときだけDisposeすればいい

アンマネージリソースはWindowsのAPIとかで直接確保したデバイスコンテキストとかメモリ
大抵はIntPtr型で保持している
こういうのはそれぞれのリソースの解放方法に従った方法で直接解放する
これらはdisposingに関わらず常に解放する
0275デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
垢版 |
2022/03/22(火) 10:35:59.07ID:OaCGWLhd0
> いちいち継承元全部辿ってIDisposableあるか確認して手動で開放しないとリークしまーすとかいう欠陥言語
分かってるよ。話の本質は、馬鹿がヘジが開発した言語にマウンティングした、ということだろう。
だがその試みは失敗した。それだけ。

なんならwin32リソースについて言語はどう管理すべきいくらでもキミの意見を語っていいんだぜ?
だがキミからは何も出てこない。知ったか初心者だからだ。
0280デフォルトの名無しさん (テテンテンテン MMeb-zKmY)
垢版 |
2022/03/22(火) 17:16:17.21ID:pk95uqSaM
あああああああああああああああああああああああああああああああ!!!!!!!!!!!(ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!)
0285デフォルトの名無しさん (ワッチョイ 8bbb-216p)
垢版 |
2022/03/22(火) 21:09:25.23ID:kAgwAO/L0
ようやく>>282みたいなまともな回答出てきて嬉しい
スコープ外れたタイミングでデストラクタ呼び出し保証しなかった理由ってどこかに解説とかないのかな?
C#の現状のデストラクタとかガチゴミじゃん
0286デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
垢版 |
2022/03/22(火) 21:19:04.18ID:Ky9cYioTM
またいつもの質問者そっちのけでの罵倒合戦かよ・・・・・

アンマネージドリソースは文字通りC#の管理下にない(un-managedな)リソース
具体的にはunsafeで確保した配列・ポインタやWin32APIを呼び出して確保したIntPtrなど
Disposeのタイミングで適切な手法で(それこそWin32APIを呼ぶなどして)リソース解放しないとメモリリークする

マネージドリソースはC#の管理下にあるリソース全般
FileStreamやDbConnection、Bitmapオブジェクトなどもこれ
そういうオブジェクトをクラス内のメンバ変数で持ってるなら、Disposeメソッド内で
それらのメンバ変数のDispose()を呼ぶことでリソース解放するお約束になってる


>>263の説明はデタラメもいいとこだしそもそも「IDispose」ってなんだよ
>>263のデタラメに気付かずC#を欠陥言語呼ばわりするために乗っかった>>266の言ってることも同じくデタラメなんだけど
こいつは罵倒マウンティングすること自体が目的でわざとデタラメに乗ってるのかそれとも素で理解してないのかは分からん
0294デフォルトの名無しさん (ワッチョイ 2979-zSlE)
垢版 |
2022/03/22(火) 21:52:39.06ID:kPYOUkgu0
>>283
されねーんじゃねーか?
俺はあふれるまで動かないって言ってるじゃん

msdnより

ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。

システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。

マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。

GC.Collect メソッドが呼び出されます。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
0296デフォルトの名無しさん (スップ Sd73-2DeC)
垢版 |
2022/03/22(火) 22:22:58.92ID:1zUmccnld
>>288
お前はメモリとかリソースの管理を他の言語でどうしてるかもっと勉強するべきだ

C/C++がユーザーに全部丸投げしてるのがいい加減辛いので言語側が管理すればいいんじゃね?ってのがGC。
GCの方式で主流なのは参照カウント方式とマークアンドスイープ方式。
参照カウント方式は循環参照(this._obj=this)があると回収されないから、
C#多少大きめのコストを支払ってでもマークアンドスイープ方式にした。

リソース解放のタイミングをコントロールしたけりゃIDisposable使え
解放漏れの保険でファイナライザ使え
https://ufcpp.net/study/csharp/rm_disposable.html

C#1.0のリリースが2002/02だから当時はそれでも充分だったんだろう
0297デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
垢版 |
2022/03/22(火) 22:39:21.44ID:Ky9cYioTM
そもそもC#は「デストラクタなぞ使うべきではない」っていう思想だし
それゆえにリソースの解放はデストラクタではなくDispose()で行う
(万一Dispose()を呼び忘れた場合に備えて>>291の実装でデストラクタで救済するけど、これも
パフォーマンス上好ましくないんでDispose(bool disposing)みたいなDisposeパターンの書き方で処理を最小化する)
って方針で首尾一貫してるんだけどさあ
その方針にケチつけてデストラクタがクソだのIDispose確認がメンドクサイだの言ってる人たちのほうがおかしいだけなんだよ

>>273
「話の本質わかってなくて草生える」
とか書いてるけどまさにそのとおり
0298デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
垢版 |
2022/03/22(火) 22:49:13.09ID:Ky9cYioTM
もひとつ気になってたんだけど、Dispose()呼び出しの必要性をいちいち確認して書くのが大変っていうけどホントかよ?

マネージドリソースを扱うにしたって、ローカル変数ならusingで書けばDisposeいらないよね?
最近のC#のバージョンなら中括弧で囲う必要すらなくなったよ?
クラス内のインスタンス変数だとしてもさあ、
DIで初期化するフィールドならDIコンテナに任せればDispose()呼ばなくていい
自前で生成初期化するフィールドだとしてもその個数もたかが知れてるしDisposeの要否も明快に分かるでしょ

それとも、自分で書いてるクラスの中がごちゃごちゃでDisposeが必要な変数がどれか把握しきれないってこと?
そんなクソみたいなゴミ溜めクラスしか書いてないのだとすれば、言語仕様じゃなくてクラス設計/実装能力の問題だと思うんだよね
0300デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
垢版 |
2022/03/22(火) 22:56:39.59ID:OaCGWLhd0
> そもそもC#は「デストラクタなぞ使うべきではない」っていう思想だし
聞いたことねーなw
デストラクタは非同期ですってだけだ。同期したいならdispose使えという単純な話でしかない。
0301デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
垢版 |
2022/03/22(火) 23:25:36.30ID:Ky9cYioTM
あれどっかに書かれてたと思ったんだが・・・と思って調べたら
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/finalizers#explicit-release-of-resources
「高額な外部リソースを使用している場合」という限定で「明示的に解放する手段を用意することが推奨されます」
とはあったけど、デストラクタなど使うべきではないとまでは書かれてなかった
たしかにちょっと踏み込みすぎたか

てか「デストラクター」じゃなくて「ファイナライザー」って呼ぶように変わったのね・・・いつから?
そのわりに
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/language-specification/classes#destructors
では「デストラクター」のままだったりしてるけど
0304デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
垢版 |
2022/03/23(水) 00:14:26.29ID:fh4EIdzSM
>>302 >>303 の書き込みをヒントに検索したら
https://ufcpp.net/study/csharp/rm_gc.html?sec=cost-to-finalize#finalize
このページにたどり着いて
デストラクタ→ファイナライザに呼び名が変わる理由もデストラクタのコストが極大なことも分かった
GC.SuppressFinalize()っていままで意味が分からないまま機械的に書いてたけど大事だったのね
いろいろ賢くなれた、ありがとう
0309デフォルトの名無しさん (ワッチョイ 9e68-VQaK)
垢版 |
2022/03/27(日) 19:21:45.49ID:ThH+K+970
float,double型について質問です。基本的に精度のたかいdouble型オンリーで良いと思います。
double型だけじゃなくfloat型が混ざっているソースをみるのですがそれは何故でしょうか?
0312デフォルトの名無しさん (ワッチョイ 5ecf-+Ivz)
垢版 |
2022/03/27(日) 20:53:18.65ID:rqiHHq3k0
floatとdoubleの混用なんてそんな傾向が見いだせるほど頻繁に使われているとは思えんが。
たまたま見たそのコードではそういう使い方をしていたに過ぎないんでは。
0314デフォルトの名無しさん (ワッチョイ b1d2-JyYd)
垢版 |
2022/03/27(日) 22:32:37.28ID:K7MWSPEs0
C++では機械学習と3Dレンダリングでの並列化を目的にfloat16_tとかいう概念が生産されたりしてるからfloat自体は過去の遺物ってほどでもない

C#だと実行速度を気にするよりも開発を楽にすることを重視することが多いからdoubleオンリーでいいのは確か
0317デフォルトの名無しさん (オッペケ Sr79-qy3V)
垢版 |
2022/03/28(月) 09:26:10.00ID:1rap9yocr
>>309
主に組み込みのシステムと通信していたりする場合、相手が float のサイズを要求することもある。

>>310
メモリは多く使うが、今どきはハードウェアで double を計算するはずなんで、遅いはダウト。
むしろfloat の方が double への変換の分遅くなるまである。
0319デフォルトの名無しさん (ワッチョイ ad49-+/qe)
垢版 |
2022/03/28(月) 11:03:16.37ID:9Kb03WZY0
というかそれぞれの場合過ぎるやろ

「基本doubleでいい」には自分は同意するけど、
別にfloat使ってたからって誤差が問題ないなら何も言わない
わざわざ変換を何度もして計算してたら気にするけども、そこまで求められる現場もそう多くないのでは
0335デフォルトの名無しさん (スッップ Sdb2-FX9+)
垢版 |
2022/03/28(月) 15:46:24.33ID:PX19Xk7jd
C#でNTFSのMFTデータ取得とHDDにセクタ(?)単位で読み書きしたいです。

出来るなら関数とかを教えて欲しいですよろしくお願いします。
0346デフォルトの名無しさん (ワッチョイ 655f-FX9+)
垢版 |
2022/03/30(水) 10:44:05.86ID:u/rQAHi50
>>344
WIN32API 含めて検索したら出てきたKernel32.dllのreadfile/writefileの引数にPHYSICALDRIVE指定したらできそう頑張ってみる、ありがとう。
0347デフォルトの名無しさん (ワッチョイ 655f-FX9+)
垢版 |
2022/03/30(水) 10:44:38.10ID:u/rQAHi50
したらできそうじゃ無くてできるらしいだった
0348デフォルトの名無しさん (ワッチョイ d980-DSQx)
垢版 |
2022/03/30(水) 12:07:06.02ID:7T4t4X1P0
外部のdll関数にintptr渡して実行する処理(HBitmapにポインタ合わせて投げる)
が複数の上記とは関係ない処理をまたいで有効になっている処理を2,3回繰り返すんですが
メモリリークしてます。
どのようにしたらメモリリーク防げるかおわかりでしたらお教えください。

渡すBitmapとポインタを常に同じメモリ使う様にすれば良い?のかなとは
思うのですがそこらへんのやり方等なにかご存知でしたらご教授くださいm(_ _)m
0350デフォルトの名無しさん (ワッチョイ f5d2-0aOS)
垢版 |
2022/03/30(水) 14:56:51.43ID:oMfCMBWB0
newしたらdelete
getしたらrelease
mallocしたらfree
openしたらclose

すべてチェックするしかないですな。
むしろなぜ対にしてコードを書かないのか謎。あっC#だからか。
0354デフォルトの名無しさん (ワッチョイ b124-GurK)
垢版 |
2022/03/31(木) 10:19:23.23ID:mHRscCZz0
せめてref structだけはデストラクタ書いたらスコープ抜ける所で自動でデストラクタ呼び出ししてもらいたいわ
C++みたいに
まぁC++みたいにコピームーブ禁止にできないから複数回呼ばれちゃうことを考えたらそういう風にはづらいってことなんだろうけど
0355348 (ワッチョイ d980-DSQx)
垢版 |
2022/03/31(木) 10:54:55.91ID:58En6M9E0
ご指摘ありがとうございます。
IntPtrを割り当てたBitmap分のメモリがやはり解放されてないのは特定しました。
gdi32.dllにあるDeleteObjectじゃなきゃ消せないみたいなページ見つけて試してみたら解放されました。お騒がせしましたm(_ _)m
0358デフォルトの名無しさん (アウアウウー Sacd-JpNp)
垢版 |
2022/03/31(木) 12:09:50.08ID:nbMZolC5a
たまにusingはwin32リソース用だってかたくなにその用途以外を否定する奴いるけど別にそんなことないからな
意味ないusingはアホだけど
意味あるusingは恥ずかしくないぞ
0363デフォルトの名無しさん (アウアウウー Sacd-JpNp)
垢版 |
2022/03/31(木) 13:32:55.92ID:nbMZolC5a
using使ってデストラクタって意味じゃないぞ
using使ったらdisposeが必ず動くって意味だろ。dispose持ってるクラス本体の開放は仕方ないがそれ以外ならなんとかなるってこと
0364デフォルトの名無しさん (ブーイモ MM96-nQMq)
垢版 |
2022/03/31(木) 14:26:29.77ID:6RpIJweLM
そもそもref structはいわゆる「所有権の借用」を扱う仕組みだろ
通常、ref structは自身のフィールドに持つref型の値を解放する責任を持たない
リソースの解放をしやすくすることを目的にref structを使うのは本来の目的から逆行しており、明らかに誤用だ
0365デフォルトの名無しさん (ワッチョイ 851a-pZZ2)
垢版 |
2022/03/31(木) 14:30:13.37ID:evWCXRMT0
使い終わったら解放してね(はぁと

↑この前提がドキュメントに書かれていれば必ず呼ばれるはず
でなきゃバグるだけなのに「必ず呼ばれる訳ではない」というのは辻褄が合わなくない?
0373デフォルトの名無しさん (ワッチョイ 5ecf-+Ivz)
垢版 |
2022/03/31(木) 21:12:01.42ID:EY1WgKK40
>>369
でもデストラクタはもともと単にデストラクトするものでしかないがな。
スコープを外れた時点で呼ばれるものという意味が被されたのはRAIIが提唱されてからではないかな。
0382デフォルトの名無しさん (ワッチョイ 03bd-1ea/)
垢版 |
2022/04/04(月) 23:43:06.35ID:TdiahOFG0
ListViewを2つ設置して、ListView1内のリストを選択したらListView2の内容が切り替わる物を作成しました。

ListView1と2の選択状態を維持?というか選択されてるリストはこれです的な事がしたいんですが、何か方法ありますか?ListView2にフォーカスがある状態だと選択項目が薄いグレーでちょっと分かり辛くて。
0383デフォルトの名無しさん (ワッチョイ 4b8e-7TU2)
垢版 |
2022/04/05(火) 00:08:08.92ID:zIQxtY/u0
>>382
馬鹿ほど標準のインターフェイスを蔑ろにする法則
0392デフォルトの名無しさん (ワッチョイ 1b66-eIlS)
垢版 |
2022/04/05(火) 16:14:22.72ID:Zafpq7jd0
.net6とかで単体ビルドで作るか、
net4.5で作ってwin8以上ならデフォルトで動作するって形にするか。

あとwin7をどうするかだが未だにnet4.5すら入れてないPCだと、
多分他人様のプログラムは入れないことになってるマシンだと思うよ。
0395デフォルトの名無しさん (ワッチョイ 1b66-eIlS)
垢版 |
2022/04/05(火) 18:21:24.03ID:Zafpq7jd0
.net5以降の単体exeにした場合は
実行時には該当のディレクトリではなく別の場所で実行されるので
exe自身の場所(location)を使ったプログラムが
予想外の挙動になりやすいから注意。
0397デフォルトの名無しさん (ワッチョイ 155f-/9eL)
垢版 |
2022/04/05(火) 23:01:55.88ID:mMOq1HVR0
確か自己完結型って100MBとかになるよね
0401デフォルトの名無しさん (ワッチョイ 03bd-1ea/)
垢版 |
2022/04/06(水) 21:00:10.84ID:5X0JV1AF0
>>204の者です。無事にdxfできました。ありがとうございました。
そして、改良加えたいです。重なった図形と図形(矩形限定)を外径線だけにしたいです。添付の図形のオレンジの部分の線を無くしたい。
ネットで調べてRectangle.Intersect()で座標点を調べて2次元List配列に重なりグループとして図形座標点を振り分けました。2次元めの要素数が複数あれば重なり図形が存在するといった感じです。

ここから先が考えても全く分かりません。
座標点は左下が0を基準に矩形座標10,10-30,50 (左下点-右上点)の様な感じで横30縦50です。

Intersectの様な便利なコードとかあったりするんですか?
伝わらないかもしれませんが...

https://i.imgur.com/52a9CP5.jpg
0402デフォルトの名無しさん (ワッチョイ 232c-8SQp)
垢版 |
2022/04/06(水) 22:20:25.85ID:M9ji/8uj0
外径線というのがよく分からんが(外形線なら引っかかるけど…)
アウトラインが欲しいってことでいいのかな

GDI+ならGraphicsPathとAPI関数を使えば取れるみたいね
https://stackoverflow.com/questions/1592285/outline-a-path-with-gdi-in-net?msclkid=2e7df5e6b5a411ecb360e4889893bf26
GdipWindingModeOutlineした後PathPointsプロパティで頂点座標が取れる

System.Windows.Mediaなら(WPF用だけどそれ以外でも必要なDLLを参照すれば使える)
CombinedGeometryを使えば2つのRectangleGeometryの和集合ジオメトリを作れる
そのアウトラインはGetOutlinedPathGeometry()で取得できて
そのFiguresプロパティから頂点座標が取れる、ちょっと面倒だけど
0403デフォルトの名無しさん (ワッチョイ 4bbb-p1CK)
垢版 |
2022/04/06(水) 22:44:05.00ID:wyNXSO9Z0
>>401
>ここから先が考えても全く分かりません。
ここから先何するつもりなのかが分からんのでは誰もアドバイスしようがないんだが…
重なる2点の座標値は取れてるんだよな?

計算方法が分からんというのであれば、「ゲームプログラミング 当たり判定」とかでググれば初心者用の解説が沢山出てくるよ
0405デフォルトの名無しさん (スプッッ Sd43-1ea/)
垢版 |
2022/04/07(木) 07:04:42.58ID:OS52QiU/d
>>402
外枠?外形ですね。添付されてるサイトの図みたいな感じですね。ありがとうございます。
翻訳しても解読してみます。
0408デフォルトの名無しさん (ワッチョイ 12bd-eTSu)
垢版 |
2022/04/10(日) 17:46:01.40ID:CqPvJwcW0
pointfへdecimal型の値を入れると少数点誤差するのって仕方ないんですかね?繰り上げ、繰り下げするしかないですか?
0412デフォルトの名無しさん (ワッチョイ 9bc7-wAOu)
垢版 |
2022/04/11(月) 00:20:20.27ID:x2gvkajx0
クラスメンバーはインスタンスメンバーとしてアクセスできないという認識です。
ですが、インスタンスのメソッドからであればクラスメンバーにアクセスできることが分かりました。
これはなぜですか?
0413デフォルトの名無しさん (ワッチョイ 6fd2-WLRK)
垢版 |
2022/04/11(月) 01:33:02.08ID:MA36Pnxj0
あなたがメンバーと呼んでるものはフィールドと呼ぶべき
おそらく int _a;のように宣言したものでしょう

フィールドはインスタンスメンバとしてアクセスは可能。
だけどC#的にフィールドに直接アクセスするのはやめようねってことになってる。
大抵のフィールドはprivate宣言されてるからアクセスできないだけ
0414デフォルトの名無しさん (ワッチョイ e22c-tEy/)
垢版 |
2022/04/11(月) 02:14:22.40ID:AXHTI4fJ0
単にHogeクラス内ではHoge.もthis.も省略できるってのを混同してるだけな気がする

class Hoge {
public static readonly int A = 0;
public void Piyo() {
Console.WriteLine(A); // アクセスできる Hoge内ではHoge.は省略できる
Console.WriteLine(Hoge.A); // アクセスできる
Console.WriteLine(this.A); // エラー、アクセスできない
}
}
var obj = new Hoge();
Console.WriteLine(Hoge.A); // アクセスできる
Console.WriteLine(obj.A); // エラー、アクセスできない
0415デフォルトの名無しさん (ブーイモ MM3e-Ds6D)
垢版 |
2022/04/11(月) 03:50:25.34ID:6OUa/NLdM
412が言いたいのは

class hoge{
private int v;
public hoge(int v){
this.v=v;
}
public void add(hoge n){
this.v+=n.v; //nのprivateなvにアクセスしてる?
}

こういうことか?理由はしらんけど。
0416デフォルトの名無しさん (ワッチョイ 6f24-soYJ)
垢版 |
2022/04/11(月) 13:41:04.22ID:2IiYezuY0
初心者にありがちな静動の区別がついてないやつじゃないか
public static int A; ← これは実体なのでどこからでもすぐにアクセス可能
public int A; ← これは単なる設計図でしかなく実体ではないのでインスタンスという実体を通さないとアクセスできない
0417デフォルトの名無しさん (アウアウウー Sabb-qGV0)
垢版 |
2022/04/11(月) 13:54:40.12ID:Hu2NcYeja
> public static int A; ← これは実体なのでどこからでもすぐにアクセス可能
これが成り立たない(アクセスできない)理由教えてくれって話だろ

そんなもん。そうなってるからって覚えておけばいい。疑問に思うな
0418デフォルトの名無しさん (ワッチョイ 227c-EhK1)
垢版 |
2022/04/11(月) 15:57:10.61ID:uofIS0L20
そもそもの意味が分かってないのかな
staticとそうでないメンバーはアクセスの方法がそもそも違うよね
基本的にstaticなメンバー変数使ったりしないけど
良くあるケースはシングルトンでそのインスタンスは1個しか存在しないというケースで
自分のクラスで自分自身のインスタンスをstaticで保存しておくみたいな事はあるけどね
0421デフォルトの名無しさん (ワッチョイ 9bc7-wAOu)
垢版 |
2022/04/11(月) 23:27:42.68ID:x2gvkajx0
412です
コードを貼ります。
同じiにアクセスするのに、MainメソッドではエラーになりますがTestMethodではコンパイルが通ります。
これはこういうものだと覚えるしかないですか?
すみませんがご教示お願いします。

class Hoge
{
public static int i = 0;

public void TestMethod()
{
Console.WriteLine(i);
}

static void Main(string[] args)
{
var obj = new Hoge();
Console.WriteLine(obj.i); //エラー
obj.TestMethod(); //アクセスOK
}
}
0427デフォルトの名無しさん (ワッチョイ 6fd2-WLRK)
垢版 |
2022/04/12(火) 00:37:07.08ID:E/HectKH0
Hogeクラス内からアクセスする時にstatic memberとinstance memberの両方をiのようにアクセスできる。
static memberならHoge.iの省略形。
instance memberならthis.iの省略形。

Hogeクラス内からでもthis.iとは書けない。
0430デフォルトの名無しさん (オイコラミネオ MMe7-EhK1)
垢版 |
2022/04/12(火) 20:27:51.26ID:81T++xV4M
>>425
C#では使わないし言葉
一部のJavaの人が使ってる概念

クラスメソッドと言う言葉があるけどJavaの人たちは
インスタンスについてるんじゃなくてクラスそのものについてるメソッドだからとそう呼んでる

ところがクラスメンバーはタダのメンバーとstaticの場合両方ともあるから意味があいまい
0435デフォルトの名無しさん (ワッチョイ 12bd-eTSu)
垢版 |
2022/04/12(火) 21:29:01.10ID:xUorz5TJ0
変数名を決める時のルールって決めてます?もしくは今までこう付けたとか何かにメモってたりします?
0436デフォルトの名無しさん (ワッチョイ 8e66-7/iV)
垢版 |
2022/04/12(火) 21:37:33.60ID:EgjH8LRN0
インスタンスに属するか、鋳型のクラスに属するかだから
静的メンバーでもクラスメンバーでも通じるかなってかんじだが、
静的メンバー系の言い方の方がより正確に伝わりやすいね。

クラスメンバーの言い方ぢとただのグローバル関数との対比でクラスメンバーとかメンバー関数とかいってるのかな?
と思う可能性も大きいから、
前後の話中の文脈に依存するように思う。
0439デフォルトの名無しさん (ワッチョイ cb02-SU+f)
垢版 |
2022/04/12(火) 22:15:42.17ID:POzO28Jn0
アプリケーションの多重起動を抑制するのはよくありますが、同一のアプリケーションが既に起動中だった場合に起動中のアプリケーションを終了させて新たに起動したアプリケーションをアクティブにする方法ってあるでしょうか
0442デフォルトの名無しさん (ワッチョイ cb02-SU+f)
垢版 |
2022/04/12(火) 22:31:50.96ID:POzO28Jn0
>>440-441
ご回答ありがとうございます
対象のアプリケーションはスケジューラ的なもので自動起動→自動終了を行なっていて起動時のみ処理を走らせているので、なんらかのエラーで自動終了が正常に行われなかった時の対策として取り入れておこうかと思った次第です
0443デフォルトの名無しさん (ワッチョイ 12bd-eTSu)
垢版 |
2022/04/12(火) 23:30:49.49ID:xUorz5TJ0
>>437>>438
質問が悪かったです。

同じ意味の変数名で、アプリごとで違った命名にしてしまう事があったりするのですがその辺は皆さんは統一性があるのかなと。

arrTtlCost、arrCostTtlとかdmlSPt、dmlSrtPtとか
iをidxでやったりとか...
0445デフォルトの名無しさん (ワッチョイ 86bb-zKnc)
垢版 |
2022/04/13(水) 01:04:13.27ID:bIYlHEPm0
VSの機能充実してるしおれも気にしたことないな
個人的にはC/C++のコードにありがちな変数名の過度な省略はやめてほしいと感じる
ManagerをManとかMgrにしたり>>443の例でもarrとかdmlとか意味調べようがないし困るわ
0446デフォルトの名無しさん (アウアウウー Sabb-qGV0)
垢版 |
2022/04/13(水) 01:09:19.48ID:Ndo4Py5Ha
ルールはあった方がいい。どんなルールを採用するかは宗教論争だけどw
俺はハンガリアン大好き
IDEが一文字目は大文字にしろみたいにうるさいのは.editorconfigで黙らせてる
0449デフォルトの名無しさん (ワッチョイ 6fd2-WLRK)
垢版 |
2022/04/13(水) 01:33:13.48ID:qfz8Xp880
ハンガリアン法はIDEがゴミだった時代の名残りだと思ってる

そもそもblnHoge書いたところでなにがしたいかわからん
Hogeable,Hoged,Hogeingとか書いた方がよっぽど有益
0450デフォルトの名無しさん (アウアウウー Sabb-qGV0)
垢版 |
2022/04/13(水) 01:49:53.93ID:Ndo4Py5Ha
何示してるのか分からないっていうのは、ルール決めてないからだよ
単にハンガリアンにしますというのはルールなしと同じ
ルールが整ってるハンガリアンだと他人のソースでもひと目でそれがなにか分かるから読むのが楽になる
0452デフォルトの名無しさん (ワッチョイ 86bb-zKnc)
垢版 |
2022/04/13(水) 02:13:05.87ID:bIYlHEPm0
ハンガリアンはぶっちゃけ時代遅れだと思うし
変数名に型情報入れるなんて途中で型変えたらどうすんねんアホかと思うわ
IDEが充実してない時代はよかったんだろうが今となってはデメリットが勝る
0454デフォルトの名無しさん (ワッチョイ 227c-EhK1)
垢版 |
2022/04/13(水) 02:32:33.10ID:P5y02Tze0
win32api時代は使ってたけどC#になったら使わなくなったな
今なら変数名のリファクター(変更)何かVSやその他IDEでも普通に出来るし
適当に名前付けていても問題無いしなぁ
0456デフォルトの名無しさん (ワッチョイ c28b-xb3m)
垢版 |
2022/04/13(水) 13:39:58.01ID:5l1VnwO30
C#からPowserShellを実行して
登録済みのVPN一覧を取得しようとしています。

コマンド発行までは出来たのですが戻り値
Name ServerAddress の取得が出来ません。
どの様なコードを書けばよいでしょうか?

using (var invoker = new RunspaceInvoke())
{
var result = invoker.Invoke(source);
}

resultに値が入るハズなのですが・・・分かりません。
PowerShell上で実行するとVPN一覧が表示されています。
0462デフォルトの名無しさん (ワッチョイ c28b-xb3m)
垢版 |
2022/04/13(水) 23:58:24.80ID:5l1VnwO30
>>459>>461
動的ビューというところに値がありました。

new Microsoft.CSharp.RuntimeBinder.DynamicMetaObjectProviderDebugView(result[0]).Items[24]


result[0]
BaseObject
ImmediateBaseObject
Members
Methods
Properties
TypeNames
本来であれば、この中のどこかに入ると思うのですが見つかりません。
0466デフォルトの名無しさん (オイコラミネオ MMe7-jTyu)
垢版 |
2022/04/14(木) 08:59:15.22ID:91yoHZnRM
ボケ防止にC#を再開したいのですがボケ症状の無限リープに。
何が問題なのかわからない痴呆状態に。。

do
{
text = text.Replace("\n\n", "\n");
text = text.Replace(" ", " ");

} while (text.IndexOf("\n\n") != -1 || text.IndexOf(" ") != -1);
0467デフォルトの名無しさん (オイコラミネオ MMe7-jTyu)
垢版 |
2022/04/14(木) 09:07:33.01ID:91yoHZnRM
こう書いたら抜けたからdo-whileがそういう仕様なのかな。

int i1;
int i2;
do
{
text = text.Replace("\n\n", "\n");
text = text.Replace(" ", " ");

i1 =text.IndexOf("\n\n") ;
i2 = text.IndexOf(" ");

} while (i1 != -1 ||i2 != -1);
0469デフォルトの名無しさん (オイコラミネオ MMe7-jTyu)
垢版 |
2022/04/14(木) 09:20:03.14ID:91yoHZnRM
あれ、やっぱりだめだ。
textの内容によってはi2が16000以上の数字のまま無限ループになる。
どうして?

int i1;
int i2;
do
{
text = text.Replace("\n\n", "\n");
text = text.Replace(" ", " ");

i1 = text.IndexOf("\n\n");
i2 = text.IndexOf(" ");

} while (i1 != -1 || i2 != -1);
0472デフォルトの名無しさん (スプッッ Sd22-WLRK)
垢版 |
2022/04/14(木) 10:24:14.77ID:6oGVEDEnd
"\n\n\n"が生き残るからループは必須

なにが起こってるか知りたいならtext内容の16進ダンプをループ内で出力しなよ

VisualStudioのブレークポインタ貼るだけでもいいし
0475デフォルトの名無しさん (ワッチョイ 1f79-xb3m)
垢版 |
2022/04/14(木) 17:17:56.63ID:cTxFb1rt0
>>466
> text = text.Replace(" ", " ");
> text.IndexOf(" ") != -1

ここの処理が意味わからん
改行と同じように半角スペース2個を1個にして条件を変更するのか
半角スペースそのものを別のものに変えたいのか
0484デフォルトの名無しさん (ワッチョイ 1fbd-DvUi)
垢版 |
2022/04/17(日) 12:25:11.04ID:D0SaeSYI0
フォームアプリ作成が主体として、GW本でも読もうと思うんだけどおすすめの本ありますか?
0487デフォルトの名無しさん (ワッチョイ 5736-XhrW)
垢版 |
2022/04/18(月) 17:43:30.83ID:YFSVkBgS0
以下の例のように、プログラムに間違いがなければ絶対に到達しない箇所で例外を投げる場合、
どの例外(InvalidOperationException とか InvalidProgramException とか)を
選ぶべきか、正解のようなものはありますか?
また、特に正解がなければ、皆さんのならどうするかを教えていただけると嬉しいです。
どうぞよろしくお願いいたします。

public static string GuusuuKisuu(int x)
{
  int y = x & 1; // y は 0 か 1 にしかならない…はず

  switch (y)
  {
    case 0: return "偶数だよ";
    case 1: return "奇数だよ";
    default: throw new Exception("プログラムが間違ってるから直してね");
  }
}
0488デフォルトの名無しさん (ワッチョイ 9fad-29Va)
垢版 |
2022/04/18(月) 18:33:00.77ID:U6PNIZM80
そもそも投げない
デバッグ目的なら例外じゃなくてその時点でメッセージボックス使って表示させるし
例外の場合、投げた例外メッセージが必ずしもユーザ(この場合はデバッグしている人)に届くとは限らないと思うし
0492デフォルトの名無しさん (ワッチョイ ffbb-KI6G)
垢版 |
2022/04/18(月) 19:08:27.71ID:8tbUw4/P0
正解はわからんけど俺ならException継承してそれ専用のクラス作るな
ぶっちゃけ既存のほにゃらかExceptionは使い所合ってるかよく分からんもの多くて困ることあるし
0495デフォルトの名無しさん (ワッチョイ 3702-2+F3)
垢版 |
2022/04/18(月) 19:14:17.23ID:CqNrq1/C0
>>494
エスパーじゃないし、知らんがな
> また、特に正解がなければ、皆さんのならどうするかを教えていただけると嬉しいです。
て書いてあるし、ワイならこうするっての書いたから別にええやろ
0497デフォルトの名無しさん (ブーイモ MMbb-3xp7)
垢版 |
2022/04/18(月) 19:31:17.73ID:QSalzxoDM
>>495
おバカ自慢要らない
0498デフォルトの名無しさん (ワッチョイ 9fad-29Va)
垢版 |
2022/04/18(月) 19:56:03.00ID:U6PNIZM80
上の例のようにわかりきっているコードはまあそうなんだけど“例”と言うようにわかりやすく示しているに過ぎず
極論を言えば、自分で見返してみても何このカオスな複雑怪奇でスパゲッティなコードがあってfuncの戻り値(Result)が0〜10の偶数値のみのはずだけど
funcが呼び出すfunc1からfunc10のどこかに不具合があって負数や奇数、または11以上がResultに入ってしまう可能性を否定することができない場合
とか
0502デフォルトの名無しさん (ワッチョイ 5736-XhrW)
垢版 |
2022/04/18(月) 20:15:04.45ID:YFSVkBgS0
488 様 489 様 491 様
確かにおっしゃり通りですね。
ただ、状況によってはやはり例外を投げたくなることもありまして、
それをどうやって説明しようかと考えていたところ 498 様がとてもわかり易く
まとめてくださったので、よければそちらを見ていただけると嬉しいです。

492 様
なるほど!
つまり、おそらく初めからこういう目的で用意されている例外はないだろうということですね。
最初は InvalidProgramException が丁度いいかと考えていたのですが、
詳しいクラスの説明を読むとどうやら別の目的で使われる例外のようですし、
おっしゃるとおり、自分でクラスを作るのが一番のような気がしてきました。

493 様
アドバイスどうもありがとうございます。これも良いアイディアだと感じました。
意味的には一行目だけで十分だけれど、
それだけではコンパイルが通らないから二行目も書こうということですよね。
NotNullIfNotNullAttribute ならぬ ThrowExceptionIfFalseAttribute みたいなものが
Debug.Assert に付けられていて二行目がなくてもコンパイルできたらいいのにな、
なんて妄想してしまいました。
0504デフォルトの名無しさん (ワッチョイ 9f01-0UVf)
垢版 |
2022/04/18(月) 20:25:50.85ID:wKhqv1yX0
まあこの手の話はあちらでも挙げられてて結局しっくりくる例外はないってことになってる
https://stackoverflow.com/questions/3313906/which-exception-should-i-throw-to-signal-an-internal-error-in-my-program
MS的には System.Diagnostics.Debug.Fail() 使えやってことなんだろうね
どうしても例外上げるなら自前でLogicErrorExceptionとかを作るのが良いと思う
0505デフォルトの名無しさん (ブーイモ MMcf-m76R)
垢版 |
2022/04/18(月) 20:28:51.38ID:0OwrwjlVM
MS自身のコードだと、throw AssertUtil.Unreachable; みたいなのはよくあるよ
Unreachable はプロパティで、UnreachableException みたいなinternalなカスタム例外をnewして返してるだけ
0506505 (ブーイモ MMcf-m76R)
垢版 |
2022/04/18(月) 20:39:47.71ID:0OwrwjlVM
一般に、アサーション目的で投げる例外は誤ってキャッチされる可能性の低い型であれば何でもよい
その意味では>>505のようにinternalな例外を定義して使うのが望ましいだろうね
必ずしも>>505の例のようにわざわざプロパティを定義する必要はないけど、あえてそうする理由としては
・いちいち throw new UnreachableException("No way!"); みたいにメッセージ書くのは面倒
・かといって空にすると、チームによっては静的チェックで例外にはメッセージを設定しろとか言われたりして面倒
といったところだろう
0508デフォルトの名無しさん (ワッチョイ 9f01-0UVf)
垢版 |
2022/04/18(月) 21:02:38.51ID:wKhqv1yX0
>>501
「レスアンカーがおかしいです」は4つ以上のアンカーがあると出るみたい
> 488 様 489 様 491 様
みたいなのは
≫488-489,491
のように纏めたら1アンカーと解釈されたりするので工夫したらなんとかなることもあるよ
0509デフォルトの名無しさん (ワッチョイ b72c-+1fN)
垢版 |
2022/04/19(火) 18:37:13.18ID:eV3D0rVm0
>>484
ない、っちゅうか買う必要ないだろ
今の時代ググってしらべりゃC#はほとんど見つかる
俺がプログラム関係の本買ったのははるか昔Win95の時代にC++のMSDN本2冊合わせて厚さ10cmくらいあったような
それ以降1冊も買ってない
0512デフォルトの名無しさん (アウアウウー Sa1b-MZ5k)
垢版 |
2022/04/19(火) 20:00:40.81ID:4CQfli8Qa
絶対の定義によるが、普通にあるよ
俺が遭遇したのだと電源電圧下がってUSB機器がリセットされる環境
USBもの使ってる途中で逝くものだから絶対に入らないとこに入った
0513デフォルトの名無しさん (ワッチョイ 5736-XhrW)
垢版 |
2022/04/19(火) 20:20:45.87ID:RBfKVTUX0
>>508
ご親切にどうもありがとうございます!
…この書き込みはエラーにならないと嬉しいなあ。

>>510-512
勉強になります。
私がやってる程度のことではハードの影響を受けることはあまりなさそうですが、
私の書いたコードなら私の脳みその影響はしっかり受けますし、
慎重になるに越したことはないですね。
今回の話とは関係ないですが、
以前 C# のパターンマッチングで x is not 1 or 2 が !(x == 1 || x == 2) とは
別の意味になることに気付かずにしばらく悩み続けて、
自分の脳みそのあてにならなさにショックを覚えました。
0514デフォルトの名無しさん (テテンテンテン MM8f-IQiQ)
垢版 |
2022/04/20(水) 08:48:13.52ID:UWj+wPguM
>>511
俺もそう思ったんだけど、どうしてもわからなくて、現場に出張って異常データが生まれるまでずっと立たせてもらってて尻尾をつかんだんよ。
他の機械の動作音を「なんだこれうっせえ…」って思ったらデータ壊れてた。
で、UnreachableをAssertしたら発見できた感じ。
0516デフォルトの名無しさん (テテンテンテン MM8f-I9Qg)
垢版 |
2022/04/20(水) 12:24:18.74ID:A0C60PKcM
俺も別の機器近くにあると仕様書にないノイズ乗った想定外のデータ来てたとかあったな
0526デフォルトの名無しさん (ワッチョイ 56bd-rbym)
垢版 |
2022/04/24(日) 14:39:09.56ID:sEyCiX8K0
>>401助けて下さい。考えては見たのですが沼にハマってます。

結果として重なってる矩形同士のアウトライン?外形線分の始点、終点座標にしてdxfにしたいんですが、2個の矩形の場合は2個比較しかないので出来ますが、複数ある場合の比較の仕方というかループの書き方が分かりません。再帰処理とか無限ループたるものになるんですかね?

矩形の斜めは存在しない左下0.0の点を基準に上と右に伸びる矩形のみで形成されたもので限定的なんですが...
0527デフォルトの名無しさん (アウアウウー Sab5-mHJH)
垢版 |
2022/04/24(日) 15:30:02.93ID:zr61OZd6a
全ての□を4本の線に分解して、線と線の交点を求めて交点があったら1本の線を2本に分解
これで多量の線ができるから、その中点に対して□の中に含まれるかをチェックして含まれるならその線は削除
0528デフォルトの名無しさん (ワッチョイ 8cbb-z20x)
垢版 |
2022/04/24(日) 21:10:33.16ID:0gmsp4dS0
>>403でもアドバイスしたけど
その手の処理は主にゲームプログラミングで必須の基礎技術だから
「衝突判定 総当り」とかで検索すれば類似コード腐るほど出てくる
例えばこういうコード

var list = new List<int> { 1, 2, 3 };
for(int i = 0; i < list.Count; i++)
 for(int j = i + 1; j < list.Count; j++)
  Unko(list[i], list[j]); // なんか処理
0529デフォルトの名無しさん (ワッチョイ 4603-jcnE)
垢版 |
2022/04/25(月) 23:12:35.22ID:VfVmzpJD0
ビット演算子と論理演算子は別物という認識だったのですが、オーバーロードについてはビット演算子(&、|)をオーバーロードすれば論理演算子(&&、||)も有効になるとのことでした
この2つは内部的には同じようなことをやっているんでしょうか?
0532デフォルトの名無しさん (ワッチョイ 4603-jcnE)
垢版 |
2022/04/26(火) 00:24:31.37ID:A+s1IjyR0
どうもありがとうございました
ビット演算子の意味は分かっています
オーバーロードする意味があるかは分かりませんが、理屈を理解することは大切だと思っています
0534デフォルトの名無しさん (ワッチョイ 762f-dMjb)
垢版 |
2022/04/26(火) 11:10:52.60ID:dBVLM5lb0
そもそも
c#的には(&、|)がビット演算子で、(&&、||)が論理演算子だって理解は正しいのか?
ビット演算と論理演算は別物だが、ビット演算を論理演算とみなせる理由とか理解してなさそう
0535デフォルトの名無しさん (ブーイモ MM5e-pyRw)
垢版 |
2022/04/26(火) 11:29:37.47ID:c8R9vZaHM
>>530の言語仕様だと、&や|は logical operator、&&や||は conditional logical operator となってるね
日本の書籍で条件論理演算子とか書いてるのはあまり見たことないけど、分かりやすくて正しい呼び方だと思う
0536デフォルトの名無しさん (ワッチョイ 762f-dMjb)
垢版 |
2022/04/26(火) 11:58:06.02ID:dBVLM5lb0
つまり、(&、|)は論理演算子だってことだな
ビット演算子の定義はどうなってるのか知らんが

&&とかはショートサーキット演算(子)とか呼ばれることが多い気がする
まあ意味的には条件とか言われるよりわかりやすい気はする
0537デフォルトの名無しさん (テテンテンテン MM34-8bcN)
垢版 |
2022/04/26(火) 12:13:33.97ID:r7o31+YnM
まあdocs読めで終わる話だな
0540デフォルトの名無しさん (ワッチョイ df36-E6ke)
垢版 |
2022/04/26(火) 20:24:55.48ID:SD1TZuYK0
>>530
知りませんでした。面白いですね。

仮に int.false(x) が x == 0, そして int.true(x) が x == -1 と定められていれば、
0 && ... や -1 || ... の ... の部分は評価されないということですよね?

つまり、T.true(x) と !T.false(x) が同じにはならないように
T.true と T.false を定めるのが適切なケースもある、と。
0541デフォルトの名無しさん (ワッチョイ 5fbd-VGkv)
垢版 |
2022/04/30(土) 15:55:10.51ID:m1dCzcg60
ラベル印刷機にむけて印刷したいです。
元はエクセルシートに文字を入れて印刷してるんですが手間なんでコードで直印刷出来たらと思います。

エクセル3行分程度のものですがどこか参考になるサイト等やあればお願いします。
0543デフォルトの名無しさん (スッップ Sdff-0vCZ)
垢版 |
2022/04/30(土) 16:47:19.78ID:pnty395wd
あるフォルダ配下の使用サイズを取得したいのですが、
C/C++でやる場合はFindFirstFile/Nextを使いますが、
C#でやる場合でpinvokeより良い方法がありましたら教えて下さい
0549デフォルトの名無しさん (ワッチョイ ff2d-ae4c)
垢版 |
2022/04/30(土) 17:08:48.46ID:Rn5KMVQ50
System.IO.DirectoryInfo.GetFiles()/GetDirectories()は大量にファイルがある場合は時間がかかるから
.Net4以降で追加されたSystem.IO.DirectoryInfo.EnumerateFiles()/EnumerateDirectories()を推奨
0553デフォルトの名無しさん (ワッチョイ c7ad-6Jp9)
垢版 |
2022/05/01(日) 15:32:28.03ID:ixMLKEzz0
Rxの質問なんですが

var s = new Subject<int>();
s.OnNext(1);
s.OnCompleted();
s.OnNext(2);

s.Subscribe(
x => { Console.WriteLine($"{x} is recieved"); },
(Exception ex) => { Console.WriteLine($"{ex.Message}"); },
() => { Console.WriteLine($"done!"); }
);

としたときに、OnNext(1)もOnNext(2)も表示されないのはあとからSubscribeしたからと思ってるのですが
OnComplete時のメッセージが表示されるのはなぜなのでしょうか?
0555デフォルトの名無しさん (ワッチョイ 872c-6Jp9)
垢版 |
2022/05/02(月) 07:06:11.56ID:UmbbW6hU0
Ruby でも、WIN32OLE, COM で、Office, iTunes, Illustrator や、WMI, WshShell を使えるみたい

def print_folder_size( folder_obj )
hr = "-" * 30
puts hr, File.expand_path( folder_obj.path ) # \ を、/ に変換する

puts "#{ folder_obj.name } : #{ folder_obj.size }"
end

require 'win32ole'

fso = WIN32OLE.new( 'Scripting.FileSystemObject' )
p WIN32OLE.codepage #=> 65001, UTF-8

folders = [ "C:/Users/Owner/Documents/abc",
"C:/Users/Owner/Documents/xyz" ]

folders.each do |folder|
folder_obj = fso.GetFolder( folder )
print_folder_size( folder_obj )
end
0556デフォルトの名無しさん (スップ Sd7f-TUas)
垢版 |
2022/05/02(月) 15:56:47.65ID:KyVl3u/Hd
>>555
Ruby馬鹿は死ね
0557デフォルトの名無しさん (ブーイモ MM8f-nYhx)
垢版 |
2022/05/02(月) 20:09:02.84ID:V0OGcW/iM
PrintPreviewControlとPrintDocumentを使っているんだけど
PrintPreviewControlでプレビューされている結果をそのまま印刷できる事って出来ないのか?

PrintDocumentでの処理がプレビューと印刷でそれぞれ処理が走ってしまう…
0560デフォルトの名無しさん (ワッチョイ df8b-Nh0L)
垢版 |
2022/05/04(水) 22:31:55.43ID:FIPACptZ0
DataGridViewでDataTableに割り当てていない時にも空行があるのですが
これなんとかならいないでしょうか?

DataSourceに指定したらレコードが表示される様にしたいです。
0564デフォルトの名無しさん (ワッチョイ 5fbd-p823)
垢版 |
2022/05/06(金) 18:21:26.56ID:WzpSzG4l0
visual Studioの無料版ダウンロードして遊んでるんですが、PointF[]の中に入ってるXの値とYの値をソートしたいんですが、Xをソートして次にYをソートしたいです。
0566デフォルトの名無しさん (アウアウウー Saab-QTrz)
垢版 |
2022/05/06(金) 18:37:03.45ID:Pyn2b+Aza
どうせX優先でソートしたいってことだろ。この程度理解してやれよ
Array.Sort(aa, (a, b) =>
{
if (a.X == b.X)
return a.Y - b.Y;
return a.X - b.X;
});
みたいな感じにすればいい。ただしfloatだからこのままだとエラーになる +1 -1 0 をreturnするように
0586デフォルトの名無しさん (ワッチョイ 9f02-HkNE)
垢版 |
2022/05/07(土) 11:13:36.12ID:313oEtJ80
まーだやってんのか
質問者の聞いてるのはソートの仕方だけで、どういうデータを扱うかすら提示されてないんだから
そこに誤差ガー範囲ガーだの考慮する必要はない
0590デフォルトの名無しさん (スップ Sd2a-uM1l)
垢版 |
2022/05/07(土) 18:18:59.39ID:yxSWV8Wsd
>>527
>>528
無事GW中に出来ました!感謝です。ありがとうございます。
0591デフォルトの名無しさん (ワッチョイ dabd-pKa3)
垢版 |
2022/05/08(日) 00:36:52.25ID:19hEeZmX0
VisualStudio 2019の<Nullable>enable</Nullable> 環境で、変数のツールチップにString型の時だけ「ここではxxxはnullではありません」と表示されるんだけど
これって最新の2022では直っていたりしますか。

ttps://i.imgur.com/VK2tvtE.png

おかしいのはツールチップだけで、nullableの判定は問題ない感じ。
longとかDateTimeとか色々試したけど、String型だけで表示された。なんで。
0593デフォルトの名無しさん (ワッチョイ dabd-pKa3)
垢版 |
2022/05/08(日) 01:02:19.98ID:19hEeZmX0
え、値型ってそういう事だったの と思って以下のコードで確認したら==null がtrueになっていました

int? a = null;
if(a == null) {
Debug.Print($"a is null"); // こっちになる
} else {
Debug.Print($"a=[{a}]");
}

int? がnullになっているように見えるのですが、もう少しアドバイスを頂けますでしょうか。
0594デフォルトの名無しさん (アウアウウー Sa1f-e+q+)
垢版 |
2022/05/08(日) 01:13:17.58ID:YmLuYmO0a
よくそんな細かいところに気づいたな
vs2022(preview)でもツールチップ表示同じ
int?はnullになるよ。?ついてたらnull許容型だから入らなかったら困る

string? a = "nullでなく文字列";
string? t(string? v) => v;
var b = t(a);
var _ = b.GetType();
ついでにこんなのだとbは絶対にnullにならないけど緑の波線つく
その程度の一次的な解析しかしてない機能だから不具合を気にしたら負けだよ
0595デフォルトの名無しさん (ワッチョイ dabd-pKa3)
垢版 |
2022/05/08(日) 01:34:49.43ID:19hEeZmX0
ありがとうございます。ツールチップだからそんなものか。
と、思ったらロジックでも不明点がありました。

以下のコードでIsIntがエラーになるのですが、これもそういうものなのでしょうか。
if文で非nullチェックをしても、型としてはint?だから IsInt(int v) は呼べない。という事は分かるのですが、
string?はifで非nullチェックをすると string 扱いになるので挙動が違うのですが、これもそういうものなのでしょうか。

void IsString(string v) { };
void IsInt(int v) { };
string? a = null;
if(a!=null){
IsString(a);
}
int? b = null;
if(b!=null){
IsInt(b); // 引数 1: は 'int?' から 'int' へ変換することはできません のエラーが出る。
}

↑両方通るか、両方エラーが出るならわかるけど 値型だけエラーが出る?
0596デフォルトの名無しさん (オイコラミネオ MM9b-1CQB)
垢版 |
2022/05/08(日) 03:01:32.74ID:9MG0SRykM
int?の正体はNullable<int>という値型
構造体はnullにはならない
まるでnullのように見せかけているだけ

int?x=null;
x.ToString();

これは一見するとヌルポだがnullじゃないのでこれは通る
nullにならない値型なのでいちいちこの場所ではnullになりませんとは言わない

x.GetType();
はヌルポになる
なぜか?
GetTypeの呼び出しはobjectへのbox化のあとに行われる
nullのように見えているだけのxはbox化されて本物のnullになる
GetTypeを呼んでるところだけ本物のnullになってるのでIDEは正確に警告を出す
0597デフォルトの名無しさん (オイコラミネオ MM9b-1CQB)
垢版 |
2022/05/08(日) 03:42:17.44ID:9MG0SRykM
int?は値型なのでnullにはならない
なのでいくらnullチェックをしても状況が変わるわけがない
nullにならないint?のnullチェックをしたってそれはint?のままだ
Nullable<int>はNullable<int>のままだ
intからint?は暗黙に変換できる
int?からintは暗黙に変換できない
そういうことになっている
だからIsInt(x)は呼び出せない

8.0で追加された機能の名称にnull許容参照型って書いてあるだろう
Nullable<>は参照型ではなく値型だ
こいつは2.0から存在する
構文が似ているが別の体系の機能なのだ
0599デフォルトの名無しさん (ワッチョイ 6a79-pMfC)
垢版 |
2022/05/08(日) 09:32:20.59ID:wSAz/RiZ0
>>596
>int?の正体はNullable<int>という値型
>>597
>8.0で追加された機能の名称にnull許容参照型って書いてあるだろう
>Nullable<>は参照型ではなく値型だ
>こいつは2.0から存在する
>構文が似ているが別の体系の機能なのだ

混乱してきた
int?の正体はNullable<int>という値型でNullable<>は2.0から存在するが
8.0のint?は参照型で別の体系の機能なのだ???
0603デフォルトの名無しさん (ワッチョイ 9f5f-HNGk)
垢版 |
2022/05/08(日) 12:05:58.50ID:EI0IYkD90
int?(値型+?)は「null許容値型」で昔からあるもの
int?と書くとNullable<int>という、int型とは違う型になる

そしてNullable<int>は値型なのでnullは入らない
なので int? hoge = null; はhoge自体がnullになるわけじゃなくて hoge.HasValue = false という意味だし
if(a == null) は if(!a.HasValue) という意味になる
これは8.0でも変わってないよ

8.0から追加された<Nullable>enable</Nullable>環境で書けるような
string?(参照型+?)は「null許容参照型」になる
といってもstringとstring?は型としては全く同じもので、?付きは内部で「nullを入れてもOK」という注釈が付くところが新機能
(string? fuga = null; はfuga自体にnullが入る)

あと>>591 の件は確かにnull許容参照型(string?とか)とnull許容値型(int?とか)でツールチップの中身変わるねえ
Visual Studio 2022でも同じ表示になってる
上にあるようにint?自体はnullにならないからなんだろうけど…
int?のようなnull許容値型でもstring?と同じように
「ここではnullではありません / nullの可能性があります」のツールチップ出たほうが親切な気はするけど、現状の仕様かな
0606デフォルトの名無しさん (ワッチョイ 6a79-hvpo)
垢版 |
2022/05/08(日) 21:58:40.09ID:v1Rjt/F60
どうでもいい機能たくさん付ける割には

理想の設計書
→理想のソースコード

が見えない
クソな単体テスト機能をIDEに実装したが
じゃあ

理想の設計書
→理想のソースコード
→理想の単体テスト

はどういう想定でオメーは
どの範囲をカバーするんだよ

ってのも見えない
各リリースで追加してる機能に
何の思想も感じない
ごった煮にした挙げ句
上記パラダイムに結論を出した
言語が出てきたら一瞬で消えそう
0608デフォルトの名無しさん (ワッチョイ 73d2-cV1q)
垢版 |
2022/05/08(日) 23:56:17.29ID:21iaPdPG0
Struct? → System.Nullable<Struct>
Class? → [System.Runtime.CompilerServices.NullableAttribute(2)] Class
のように完全な別物を同じような書き方で表現している

classのほうはnullチェックをしたかをコンパイラが追いかけるためだけの後付け機能だからstructとは若干挙動が違う
0617デフォルトの名無しさん (ワッチョイ 2301-efkZ)
垢版 |
2022/05/11(水) 02:40:00.42ID:mFmc3Ge/0
GetPixel/SetPixelが1万倍速くなるみたいなライブラリの変更をお願いします
vsyncを簡単に待てるとか、キャプチャデバイスから簡単に画像取れるとかもください
0619デフォルトの名無しさん (ワッチョイ 7e68-YKh1)
垢版 |
2022/05/11(水) 10:22:15.42ID:dGpPRwJ20
>>617

描画周り強化なら、monogameはどう?
0620デフォルトの名無しさん (ワッチョイ 7e68-YKh1)
垢版 |
2022/05/11(水) 10:23:05.23ID:dGpPRwJ20
キャプチャーデバイスには対応して無いだろうけど。
0625デフォルトの名無しさん (ワッチョイ 9aad-5qYK)
垢版 |
2022/05/21(土) 04:43:04.06ID:O2gJaEXQ0
最近趣味程度でC#をいじりだしたガチの入門者なんですが
PCで3秒ごとにコピペ貼り付けを自動で繰り返すアプリを作ったのですがそれをAndroidでも使えるようにしたいです
どうすればいいでしょうか?
0630デフォルトの名無しさん (ワッチョイ f6d5-5qYK)
垢版 |
2022/05/22(日) 07:09:57.17ID:tnNB3SRb0
>>628
スマホ用のアプリはjavaかkotlinって言語じゃないと出来ないんですね
そんなことも言われなきゃ分からないレベルでしかプログラミングしたこと無いんですが・・
ツールはSendKeysを2つ使っただけの本当に簡易的なもんなんだけど言語変えて直ぐに出来るかな
0633デフォルトの名無しさん (ワッチョイ 9a79-7eBL)
垢版 |
2022/05/22(日) 10:12:10.33ID:+lLn8FyC0
>>632
そのへんもやってみればわかること

そういうのめっちゃ回避してキーを別アプリに送ろうとしたけど
やった次の日に対策されてたから
監視でもしてんのかってぐらい見張ってるのがAndroid
0636デフォルトの名無しさん (ワッチョイ 2702-SjAR)
垢版 |
2022/05/22(日) 10:59:44.81ID:7HW4nX7o0
>>630
クロスプラットフォームなライブラリもあるけど、結局そのOS毎の独自処理をラップしてるだけだから
OS毎の知識は必要になる
本当にガチ初心者なら、多分上手く扱えないと思う
0641デフォルトの名無しさん (スップ Sdba-LYQt)
垢版 |
2022/05/26(木) 19:14:23.06ID:nH+V7kdJd
>>639
10年早いんだよっ!
0642デフォルトの名無しさん (ワッチョイ 1aad-mUFz)
垢版 |
2022/05/27(金) 05:58:20.19ID:vU3ymITD0
>>639
C#の学習ができるアプリってこと?
0645デフォルトの名無しさん (ワッチョイ 4e63-pPWi)
垢版 |
2022/05/27(金) 10:09:16.78ID:upR3ZiUo0
大丈夫だMAUIは半年は持つ
0647デフォルトの名無しさん (ワッチョイ 97f6-8jyA)
垢版 |
2022/05/27(金) 11:11:07.62ID:S0cy91Tb0
MAIUはうまくない
0650デフォルトの名無しさん (ワッチョイ f101-wXST)
垢版 |
2022/05/28(土) 10:33:31.92ID:qp7uj3Un0
MemoryStreamの中身を一括でファイルに保存したいのですが、
何を使えばいいですか?
一旦byte配列に読んでFileStreamに渡すのも無駄な気がします
0651デフォルトの名無しさん (ワッチョイ 2b2c-2OYr)
垢版 |
2022/05/28(土) 10:58:05.60ID:81XaDMLN0
memstream.CopyTo(fstream);
0652デフォルトの名無しさん (ワッチョイ f101-wXST)
垢版 |
2022/05/28(土) 12:24:53.28ID:qp7uj3Un0
ありがとうございます、うまくいきました
結局内部で一旦バッファにコピーしてるみたいですね
0655デフォルトの名無しさん (ワッチョイ 9324-sxTc)
垢版 |
2022/05/29(日) 10:49:50.42ID:8UALCrP60
MemoryStream.GetBufferを使う場合は長さはそれで受け取ったバイト配列の長さではなくMemoryStream.Lengthを使うこと
そもそも.NETCore系統だとGetBuffer使えなかった記憶あるけど
0658デフォルトの名無しさん (スップ Sdb3-2THJ)
垢版 |
2022/05/30(月) 13:14:48.95ID:1VsWJmNVd
明日からgmailがOAuthに非対応のメールソフトからのアクセスを拒否るそうなんで
何か話題でてるかな~と思ったけど、上の方でちょっと触れてる人がいる程度だった

1年前に作って大活躍してるgmail受信用ソフトに手入れないといけないんで頑張ってきます
Mailkitというライブラリがよさそうなので試してみようかと。
0662デフォルトの名無しさん (ワッチョイ 518e-95+F)
垢版 |
2022/05/30(月) 14:42:01.68ID:IYsp/3270
えっ
0664デフォルトの名無しさん (アウアウウー Sac5-2OYr)
垢版 |
2022/05/30(月) 15:26:01.26ID:Z6OL71NLa
>>658
世界中で阿鼻叫喚の悪寒
0666デフォルトの名無しさん (スップ Sdb3-2THJ)
垢版 |
2022/05/30(月) 18:13:36.30ID:1VsWJmNVd
OAuthとはなんぞやから始まってなんとなく理解した上で
Google.Apis.Gmail.v1 を入れてみた
トークンゲットして送信するところまででけた
受信はまた今度・・

アプリパスワードも一応取得して見たけど、よく分かってないです
mailkitでアプリパスワードを使った送信コードをみたんですけど
これはOAuth導入後も使えるのか・・・?と疑問に思うところであります


とりあえず今作ってるのは受信専用のソフトなんで受信にたどり着きたい
0670デフォルトの名無しさん (ワッチョイ a173-CNTg)
垢版 |
2022/05/30(月) 20:45:14.00ID:zhESDE1t0
C++ でいうところの
typedef unsigned int Uint32;
これをC#で実現できないか試行錯誤してます

namespase hogeType
{
using Uint16 = System.UInt16;
//他省略
}
として利用したいソースで
using hogeType;
として使えるんじゃないかと期待していたのですがダメでした

「型を使いたいソースの上の方にusingエイリアスで定義する」以外では無理なんでしょうか?
0674デフォルトの名無しさん (ワッチョイ 5b66-L+Mk)
垢版 |
2022/05/31(火) 09:09:11.04ID:Y29xz3us0
諸兄はlog4netの後継に何を使ってますか?
0678デフォルトの名無しさん (ワッチョイ 5b66-L+Mk)
垢版 |
2022/05/31(火) 15:05:10.88ID:Y29xz3us0
log4はやらかしがあったので敬遠気味なのです
0679デフォルトの名無しさん (ワッチョイ 396a-0J0j)
垢版 |
2022/06/01(水) 17:00:30.18ID:MGwSCz5P0
visual studio 2022
デバッグ結果がコマンドプロンプトに表示されなくなりました
助けて
0680デフォルトの名無しさん (スップ Sdb3-95+F)
垢版 |
2022/06/01(水) 17:06:20.10ID:SQbNCGaTd
「助けて」と質問を書く奴は間違いなく真正馬鹿
0682デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
垢版 |
2022/06/01(水) 17:50:01.12ID:+trdaPAta
質問者あるある
1.エラーメッセージを描かない(読まない)
2.何もやってないのに可笑しくなりました(やってるよ)
3.何がしたいのかどうなって欲しいのかを言わない
0685デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
垢版 |
2022/06/02(木) 11:01:22.99ID:MPFVtYTLa
お前には聴いてない
ごめんちょっと何言ってるか判らない
判らないならレスしないでくださいうざいだけです
0687デフォルトの名無しさん (ワッチョイ 5be9-jfEb)
垢版 |
2022/06/02(木) 17:23:21.69ID:rr5XpLq50
List<string> test = new List<string>();

test.add("N0001");
test.add("N0002");
test.add("P0012");

testから"N0002"を高速に探す方法ってどんなのがあるでしょうか?
拡張for文で回して探すよりテクニカルな方法がありそうな気がするので。。。
0691デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
垢版 |
2022/06/02(木) 19:17:47.03ID:9h+/E5qma
そもそも探す前に探す内容が判ってしまってる条件設定が可笑しい
0693デフォルトの名無しさん (ワッチョイ 2bbb-AiA7)
垢版 |
2022/06/02(木) 19:42:49.77ID:7s4DtQtg0
この条件だと、forループより早く探し出すのは困難だろう
0695デフォルトの名無しさん (ワッチョイ 5b66-jfEb)
垢版 |
2022/06/02(木) 20:53:08.53ID:UucOdGXH0
Findが速いらしいので下記のようにプログラムしました。
実測してfor文との速さを比べてみたいと思います。

public class TestItem
{
public string x;
public string y;
}

private static void Test()
{
var list = new List<TestItem>();
list.Add(new TestItem() { x = "a", y = "a1" });
list.Add(new TestItem() { x = "b", y = "b1" });
list.Add(new TestItem() { x = "c", y = "c1" });
string n = string.Empty;
list.Find(item =>
{
if (item.x == "b")
{
n = item.y;
return true;
}
return false;
});
Console.WriteLine(n);
}
0698デフォルトの名無しさん (ワッチョイ 5b66-jfEb)
垢版 |
2022/06/02(木) 21:31:15.89ID:UucOdGXH0
さらに調べたらDictionaryが検索最強のようなので、Dictionaryを
使おうと思います。

var table = new Dictionary<string, string>
{
{ "n01" , "a" },
{ "n02" , "b" },
{ "n03" , "c" },
{ "n04" , "d" },
{ "n05" , "e" },
{ "n06" , "f" },
};

var result2 = "";
table.TryGetValue("n04", out result2);
Console.WriteLine(result2);
0699デフォルトの名無しさん (アウアウウー Sac5-l8b5)
垢版 |
2022/06/02(木) 21:45:42.94ID:h7Udtbtka
質問です
ある一つのテキストファイルを複数プロセスから読み書きすることがある場合、自プロセスからファイルオープンしたいときに他のプロセスがファイルを掴んでることを考慮するとどういう処理を記述しますか?
エラー処理ではなく必ず書き込み等は実行したいです
よろしくお願いします
0704デフォルトの名無しさん (ワッチョイ b902-l8b5)
垢版 |
2022/06/02(木) 22:44:32.32ID:uz/pa6mM0
>>700-702
ありがとうございます
DBであればよかったんですけどね。。
セマフォってプロセス間もロックかけてくれるんですかね?試して確認してみます
0705デフォルトの名無しさん (ワッチョイ b902-l8b5)
垢版 |
2022/06/02(木) 22:46:10.40ID:uz/pa6mM0
>>703
ありがとうございます
調べてみます!
0707デフォルトの名無しさん (ワッチョイ 9379-3jko)
垢版 |
2022/06/03(金) 00:14:36.39ID:y9YQAn470
セマフォというかファイルを管理するサーバと読み書きをサーバに要求するクライアントの関係にすれば簡単だよ
セマフォみたいなプロセス同士でリソースを取り合う仕組みは今風の書き方ではない
対してサバクラ方式はいつまでも色褪せない
0709デフォルトの名無しさん (ワッチョイ 2d6e-TpYW)
垢版 |
2022/06/04(土) 01:36:48.90ID:OS5Gy/Bt0
プロセス間だのスレッド間だのそんなのが山ほど出てくるシステムの案件に関わってる俺にとってタイムリーな話題
セマフォだの共有メモリだの初めていじるわそんなん……ってなってた。そして古い書き方という情報はやっぱりなってなった
2015年に作り始めたシステムがvisual studio2010にハンガリアン記法だから全体的になんかおかしいなとは思ってたんだが
0713デフォルトの名無しさん (アウアウウー Sa11-AYv1)
垢版 |
2022/06/04(土) 10:13:48.37ID:nWQp35Pca
>>711
それが理想なんだけど、そのサービスを常駐(起動)させとかないといけないんだよね?
0718デフォルトの名無しさん (ワッチョイ 2d6e-TpYW)
垢版 |
2022/06/04(土) 16:07:37.88ID:OS5Gy/Bt0
ググったら記事がでてきてほーんセマフォ+共有メモリは古めでクライアントサーバー型がいいんだなー
って読んだあとにそれが2007年の記事だったと気づいて頭を抱えた
0727デフォルトの名無しさん (アウアウウー Sa11-+J4x)
垢版 |
2022/06/05(日) 07:46:31.07ID:tS177XCQa
>>722
ポインタはメモリのアドレスだよ
アドレスとは番地、つまりメモリの先頭から付いている番号だよ
0728デフォルトの名無しさん (ワッチョイ d902-+66E)
垢版 |
2022/06/05(日) 09:19:27.01ID:ei4PW9H/0
ポインタに入れるものはアドレスだが、=アドレスという訳ではないな
指定したデータ型の変数のあるアドレス
pointerという名前が、指す物という意味で、変数のある場所を指すのに使う
まあ、C#で普通にプログラミングしてる分には使わん
0732デフォルトの名無しさん (ワッチョイ d902-+66E)
垢版 |
2022/06/05(日) 09:42:55.86ID:ei4PW9H/0
知識として知っていた方がいい事もあるけど、
全てのC#開発者が知らないといけないかというと、そうでもないと思う
言語間連携とかやるなら避けて通れない道ではある
0735デフォルトの名無しさん (ワッチョイ ca8e-jate)
垢版 |
2022/06/05(日) 13:49:11.29ID:bsSB7mS70
>>722
こいつはCとC#の区別が付いていない馬鹿なだけだろ
0736デフォルトの名無しさん (アウアウウー Sa11-fRoS)
垢版 |
2022/06/05(日) 15:38:33.40ID:udiiYXiVa
C#のポインタって何?
0738デフォルトの名無しさん (ワッチョイ 5dd2-IeUu)
垢版 |
2022/06/05(日) 16:05:22.22ID:/ywqNijR0
C#のポインタは素直じゃないのでポインタの勉強には向いてない

ポインタ周りで事故ったりする経験も含めてC言語でいい
0739デフォルトの名無しさん (テテンテンテン MMde-MsoI)
垢版 |
2022/06/06(月) 12:43:29.55ID:F/GQ8N8BM
CといえばC#の案件って、お前C言語やC++と勘違いしてない?ってコードとの遭遇率が異様に高い。
foreach1つvar一つ出てこない命名はハンガリアン記法みたいな。
名前のせいなのかねぇ。それとも似てると言われるjavaの現場なんかもこんなんなんだろうか
0740デフォルトの名無しさん (スップ Sdca-IeUu)
垢版 |
2022/06/06(月) 12:47:51.62ID:jOQJjNZVd
インスタンスフィールド一切ないくせにインスタンスメソッドしか定義してなくてデバイスID入力させるライブラリ許さねえ
0748デフォルトの名無しさん (アウグロ MMa1-PN48)
垢版 |
2022/06/06(月) 18:59:34.17ID:mMg2UOejM
>>739
マイグレーション多いんじゃない?
俺もわざわざforをforeachに直そうなんて欠片も思わんかった
後でチェックしにくいし
できるだけ機械的にやりたいってのもある
みんな忙しいのに得意気にvarで書き直してバグってたら末代までの恥晒しじゃん
0752デフォルトの名無しさん (ワッチョイ 06bb-TkOU)
垢版 |
2022/06/06(月) 21:19:38.41ID:eXgeySvh0
俺はWebセキュリティーに詳しくなく、JavaScript等を使うと危ないから安全のためと思って使ってるよ
まあほとんど誰も使ってないんじゃないの
0754デフォルトの名無しさん (ワッチョイ 06bb-TkOU)
垢版 |
2022/06/06(月) 22:10:33.09ID:eXgeySvh0
俺はWebセキュリティーに詳しくなく、JavaScript等を使うと危ないから安全のためと思って使ってるよ
まあほとんど誰も使ってないんじゃないの
0758デフォルトの名無しさん (ワッチョイ 7dac-7xaa)
垢版 |
2022/06/07(火) 00:49:45.91ID:EPRi468s0
MSのフレームワークとかって企業用途が多いから外部に出づらいんだよね
MSのサポートがあってプロダクトとして活きてくるというか

そういう意味じゃ今元気なスタートアップとかの中小が活躍するWeb業界じゃなかなかナレッジが広がらなさそう
0759デフォルトの名無しさん (スッププ Sdea-JrRZ)
垢版 |
2022/06/07(火) 01:21:10.29ID:U4x2nL8Ud
エンタープライズの開発って、フレームワークの使い方なんかよりももっと上位の業務ドメインの比重が大きいんだよ
そういうのは企業秘密に関わるし一般化できないから外へ出にくい
一方Web系はCRUDに毛が生えた程度の案件が多く、システム全体のうちでフレームワークに依存する部分の占める割合が大きいんだよ
だからノウハウを共有しやすい
0763デフォルトの名無しさん (ワッチョイ d902-+66E)
垢版 |
2022/06/07(火) 10:03:36.02ID:ZPcKxQgK0
更に付け加えるなら、IEnumerable<T>は遅延評価になるから遅いループになる
ToArrayで配列にするにしても無駄なコピーが発生するから、単純なループなら素直にforにするべき
0767デフォルトの名無しさん (スッップ Sdea-PcMh)
垢版 |
2022/06/07(火) 10:48:00.72ID:yqbruVp1d
>>749
まぁ、varで受けたらobjectにしかならんものもあるし。コンパイルで引っかかるけど
varで書き直そうと思って、うっかり違うとこもいじっちゃって、あら不思議。とかはあるんじゃない?
0775デフォルトの名無しさん (アウアウウー Sa11-+J4x)
垢版 |
2022/06/08(水) 09:09:01.61ID:FUigqvdta
double v=0;

var v=0;
に書き換えたせいで起こるバグもあるやな
0777デフォルトの名無しさん (ワッチョイ 892f-M86+)
垢版 |
2022/06/08(水) 11:44:36.71ID:ZQZr+Xos0
バカというよりハゲだな
                 
      / ̄ ̄ ̄ ̄ ̄ ̄\
    /             \
   /                  ヽ 
    l:::::::::.                  | 
    |::::::::::   (●)     (●)   | 
   |:::::::::::::::::   \___/     |  
    ヽ:::::::::::::::::::.  \/     ノ
0779デフォルトの名無しさん (ブーイモ MM39-M86+)
垢版 |
2022/06/08(水) 23:01:27.19ID:56U7/LFHM
>>778
書き換えたヤツの頭がハゲってる
0786デフォルトの名無しさん (ワッチョイ ca01-3OWO)
垢版 |
2022/06/09(木) 11:18:36.64ID:0rPu7H1G0
>>780
同意
そう言えば 0.0 って書いたらfloatとdoubleのどっちになるんだろう?
ってやってみたらdoubleになったわ
0790デフォルトの名無しさん (ブーイモ MMde-JrRZ)
垢版 |
2022/06/09(木) 12:32:25.90ID:ChvQ3ay1M
間違ったやり方だと思いながら仕事してたらいつまでも自信ないままだぞ?
だって間違った仕事しかしてないことになるんだからな
幸いC#はWeb系行けば結構モダンな開発してる職場が多いし、BtoBが中心だから比較的待遇も悪くないし、SI系出身者に対しても比較的寛容な傾向がある
簡単確実なソリューションは目の前にある
0792デフォルトの名無しさん (ワッチョイ a968-pvNj)
垢版 |
2022/06/09(木) 16:10:53.28ID:d7vTvGkG0
クラス名を以下のような関数に渡したい時に
void printName(string name) {}

呼び出し側で
printName(this.ToString());

と記載していますが、毎回書くのが煩わしいです。
どこからの呼び出しでも同じ記述なので、簡略化する方法はないですか。

Cのマクロ定義ではこんな風にできると思いますがこれに近いことをcsでしたいです。
#define PRINT_NAME() printName(this.ToString())
0793デフォルトの名無しさん (ブーイモ MMde-VXTa)
垢版 |
2022/06/09(木) 16:57:37.54ID:0PQwkTJMM
printName側でコールタック辿って呼出元のクラス名を得る
0796デフォルトの名無しさん (スップ Sdca-IeUu)
垢版 |
2022/06/09(木) 18:33:17.82ID:+6++R2Gnd
>>792
C#のお作法でstring ToString();はoverrideすることになってる

void printName(object obj) {...=obj.ToString();}
呼び出し側で printName(this); してしまって大丈夫。

...なのだがクラス名が欲しいなら
void printName(object obj) {...=obj.GetType().Name;}
か?
0800792 (オイコラミネオ MM65-pvNj)
垢版 |
2022/06/10(金) 21:51:32.52ID:kBv7ipkNM
目的は単純にコンストラクタが呼ばれたらコンソールにクラス名を含む文字を出したいただそれだけですね
Stack使う系の方法は確証得られないのでNGです
0802デフォルトの名無しさん (ワッチョイ 06bb-TkOU)
垢版 |
2022/06/10(金) 22:32:30.65ID:b5VhUFkH0
高卒丸出しだな
0808デフォルトの名無しさん (スッップ Sd1f-G2Bj)
垢版 |
2022/06/11(土) 01:29:16.83ID:N9Pa64KKd
>>807
printNameの呼び出しがインライン展開されることはそれで防げるけど、目的はprintNameの呼び出し元のクラスを知ることなんだからそれでは不十分
printNameを呼び出しているメソッド全てにその属性を付けて回る必要がある
0810デフォルトの名無しさん (スップ Sd1f-UGZ9)
垢版 |
2022/06/11(土) 02:54:25.51ID:wqB8iMgfd
>>809
できます
はい、次
0812デフォルトの名無しさん (ワッチョイ 23da-Gp1N)
垢版 |
2022/06/11(土) 09:35:43.27ID:XBKZ0P9R0
VS2022で右上のソリューションエクスプローラーのForm1.csをクリックしても
デザイナにFormが表示されないことが多々あるですが,対処法あります?
再起動すれば表示されるようになるのですが
0813デフォルトの名無しさん (ワッチョイ 1312-IRXD)
垢版 |
2022/06/11(土) 10:03:21.18ID:bkgrPiRo0
配列の読み書きを少しでも速くしようとポインタ使用して実際に速くなったけど
そうなると配列のインデックス指定する書き方が存在する意味ってあるんかなあと思った
0815デフォルトの名無しさん (ワッチョイ 3302-/e9c)
垢版 |
2022/06/11(土) 10:32:59.56ID:zZQkghbK0
>>808
NGワード引っ掛かったのでURL貼れないけど、
JIT 最適化にも負けずに呼び出し元のメソッドを取得する方法って記事に
そんな感じの事が書いてあったな
DynamicSecurityMethodAttribute なんてのがあったのは勉強になった
ただ、実運用のデバッグでそこまで困るかと言われたら多分困らないとは思うが
(NLogの実装もNoInliningまでしかしてないし)
0817デフォルトの名無しさん (ワッチョイ 7f8b-GGE9)
垢版 |
2022/06/11(土) 11:02:57.06ID:sQOLScrN0
>>810
とあるソフトの自動操縦プログラムを作ろうとしていますが
難航しています。

ランサーズではまっている部分を
プロジェクトとして有料でも良いので出すので
コメント入りで作ってくれませんか?
0818デフォルトの名無しさん (ワッチョイ 7f8b-GGE9)
垢版 |
2022/06/11(土) 11:04:42.47ID:sQOLScrN0
>>811
そんなのがあるんですね。初めてしりました。


はまっている部分を自分でやると時間がかかりそうなので
ランサーズで出そうかと思います。

以前だしたのですが、出来るといって受けた人が
スキル不足で結局出来なくて諦めていました、、、
0819デフォルトの名無しさん (オイコラミネオ MMc7-GGE9)
垢版 |
2022/06/11(土) 11:22:23.16ID:nSw5Wtt+M
>>818
スレチだな

ついでに…
2004年(15年ぐらい前)にやってたけどめんどくさいからやりたくない
その時は会社のアプリの自動化とIEでの自動ログインとMarketSpeedの操作
(自分のアプリをクリックするとチャートが表示されたりする)

そのDataGritViewと言うのがハンドル取れる奴ならいいけどWPFとかなら画像認識しないと取れない
0824デフォルトの名無しさん (オイコラミネオ MMc7-GGE9)
垢版 |
2022/06/11(土) 11:33:31.96ID:nSw5Wtt+M
MarketSpeedは画面がコントロールじゃない部分(独自描画)が多くて
クリック位置もハードコーディングで対応した

画面レイアウトが変わったらそこで終わり
そんなものに金を払いたいとは思えない
0826デフォルトの名無しさん (ワッチョイ ff24-ISw1)
垢版 |
2022/06/11(土) 11:41:58.88ID:JZDk2JEH0
DataGridViewってセル一つ一つにHWNDあるようなWin32ネイティブではないよね?
ListViewラップしてるだけなら別アプリから操作するのもまあまあ簡単だが
違うならゲームのチートプログラム作るような手順でフックしていかないといけないから難易度はそこそこ高い
0829デフォルトの名無しさん (ワッチョイ ff24-ISw1)
垢版 |
2022/06/11(土) 11:50:18.15ID:JZDk2JEH0
俺がやるとしたら別アプリではなくDllInjectionで新しいスレッド作成して新Windowなりコンソールなりオーバーレイなりで入力装置を設ける
dnSpy等でDataGridViewの必要な関数を調べてフックなり呼び出しをする
こういうDLLをC++で作る
0836デフォルトの名無しさん (オイコラミネオ MMc7-GGE9)
垢版 |
2022/06/11(土) 16:29:02.82ID:nSw5Wtt+M
おそらくやってやれないことはないけどめんどくさいし
どうせ買い叩こうって感じが丸見えなんだな
本気で最低20万出すのか?

セミプロに1万円ぐらいでやらせようとしてるんじゃないか?
0837デフォルトの名無しさん (アウアウウー Sa67-hiZJ)
垢版 |
2022/06/11(土) 16:47:05.38ID:h1ISo/Y7a
>>817
甘えるな
Win32API使う前提ならなんでもあり
ググればいくらでも出て来る
0839デフォルトの名無しさん (ワッチョイ cfbb-7/FS)
垢版 |
2022/06/11(土) 18:04:49.31ID:JVIYSo9r0
よく自動で動かしたいような類のものは、投資からギャンブル系まで大抵Android用のアプリがある
で、そっちの方がUIが画一的で自動化が楽だ
0843デフォルトの名無しさん (ワッチョイ 7f8b-hiZJ)
垢版 |
2022/06/12(日) 17:24:30.56ID:QV8yCq5p0
レベルが高過ぎ
初心者じゃないだろ
0849デフォルトの名無しさん (ワッチョイ 63d2-asUV)
垢版 |
2022/06/13(月) 01:00:22.51ID:VfkStGxI0
同じ.NET Frameworkの中間言語にコンパイルするという意味なら同じだが
VBを機能拡張しまくってようやく追いつかせたんだぞ

まぁVBは.NET5で見捨てられたが
0851デフォルトの名無しさん (ワッチョイ 7305-yYLg)
垢版 |
2022/06/13(月) 05:47:25.99ID:QonCP77t0
 switch文は各caseの末尾にbreak必須で、main関数もJavaと同様にクラスで囲い込まないと
いけなくて、それで同じ.net frameworkのプログラムを作るだけだからVBと同じだ。
 C#は関数にデフォルト引数が使えない。旧VB6の関数も使うならVBが良し、そして文字列
の扱いでは、VBならLike演算子も使える。C#でExcelを制御するCOM対応のDLLも作ったこと
もあるが、元々VBAでやることをDLLで作るなら、素直に同じ系統の言語であるVB(.net)でや
ればいいものを、何でC#で作るのか疑問だ。
 C#なら複雑な文字列の扱いはどうやってるんかいな。VBならLike演算子で済ませられるもの
でも、毎度正規表現クラスを使ったりしてるんかいな。
 C#はC++の良さもVBの良さも生かせない言語とちゃうんかいな。
0852デフォルトの名無しさん (ワッチョイ 7305-yYLg)
垢版 |
2022/06/13(月) 06:02:44.15ID:QonCP77t0
最も基本的なところの記述はCに似てるが、switch文のbreak必須仕様はVBのSelect Case文と結局同じで、
ヘッダーファイルというものはなく、#include文もなく、クラスの書き方はC++とは類似点が皆無と
言えるもので、実際にはVBのほうが十分に似てる。
0853デフォルトの名無しさん (ワッチョイ 7305-yYLg)
垢版 |
2022/06/13(月) 06:06:57.50ID:QonCP77t0
マネージ拡張C++ならボクシングやアンボクシングも必要になるところも、C#にはそれが
無くて、VBとの書き方は末尾にセミコロンを付けるだけの違いでしかない。
0854デフォルトの名無しさん (ワッチョイ ffad-gL1p)
垢版 |
2022/06/13(月) 07:10:47.00ID:SowNiufC0
>>851
VBと同じで何が問題なの?
Basicに慣れてる人はVB、C/C++に慣れてる人はC#、と多くの人に対してハードルを低くしてる

あと、デフォルト引数もあるし、Like演算子の代わりもあるよ
0855デフォルトの名無しさん (オッペケ Sr87-JPbs)
垢版 |
2022/06/13(月) 08:02:40.22ID:BEV+i+nur
トップレベルステートメントとか出たし、
VB使ってるからって妙にc#だけを意識してない?
活かせないとか皆無とか強い言葉で自分を守ろうとしてるのが見え見えで悲しい
0857デフォルトの名無しさん (スップ Sd1f-asUV)
垢版 |
2022/06/13(月) 08:10:48.55ID:si/cekt2d
デフォルト引数が導入されたのがC#4だから昔のC#を思い出しながら書いてるのかもしれん
0862デフォルトの名無しさん (アウアウアー Saff-APne)
垢版 |
2022/06/13(月) 12:17:04.72ID:C6CMrLssa
Int16,32,64の使い分けって必要でしょうか
メモリが非常に少ない環境であればシビアになるべきでしょうが
普通の環境であればInt32を使用すれば問題ないと考えていますが合ってますかね
0866デフォルトの名無しさん (ワッチョイ bf2d-IRXD)
垢版 |
2022/06/13(月) 13:15:12.88ID:DMu0O5hM0
>>864
Int16,Int32,Int64ではなく、それぞれの別名であるshort, int , longと記述することが多い
大抵のお手本はintとだけ書いてあるでしょ
long(Int64)は32bitでは表現出来ない大きな数値を扱う時に使う
それ以外はint(Int32)
short(Int16)はあまり使わないな
0872デフォルトの名無しさん (ワッチョイ cfbb-7/FS)
垢版 |
2022/06/13(月) 15:07:51.99ID:13gVP5w60
細かい型を使ってもRustみたいにメモリギチギチに詰めてもらえる訳でもなく、何をするにもキャストばかり発生・・・・使い所は難しい
0873デフォルトの名無しさん (ワッチョイ ff24-ISw1)
垢版 |
2022/06/13(月) 15:51:41.19ID:kOcD7AOC0
>>870
ビット単位で言うなら組み込み型そのまま使ってる時点で無駄にしまくり
上限値が分かってる場合はC/C++のビットフィールドを利用すると以下の3フィールドで4バイトしか使われない
int Year : 23; //MaxValue = 8388607
int Month : 4; //MaxValue = 15
int Day : 5; //MaxValue = 31
0874デフォルトの名無しさん (アウアウアー Saff-APne)
垢版 |
2022/06/13(月) 16:15:38.07ID:C6CMrLssa
>>866
そのshortを使わなくてよい根拠を知りたかったのです
サンプルやお手本がつかってないからではなく、ハードウェアの制限があるシーンで使うとか…
ただそんなシーンでC#は選ばれない気もしますが。

整数型以外も
>>867
にもありますが、例えばdouble型ってどういう用途で使うんでしょうかね。
decimalはお金等の電卓通りの計算になるような(ならないケースもありますが)項目に使いますよね。
floatはポリゴンの計算とか?

そういった数値型の利用シーンが知りたかった次第です。
0877デフォルトの名無しさん (ワッチョイ 13da-xATt)
垢版 |
2022/06/13(月) 17:39:01.23ID:eBuUTzcD0
o/rマッパのコードファーストでテーブルカラム定義する場合にもよく使う。
postgreのsmallintならC#のshortとか。

また小型機器なんかとバイナリ通信する場合もshortが2バイト幅って原理を使って通信フォーマット組み立てたりする
0880デフォルトの名無しさん (アウグロ MMdf-DBHA)
垢版 |
2022/06/13(月) 18:29:01.50ID:ijJWQwGQM
っていうか用途はあくまでも○○ってケースが多いねってだけ
占いや天気予報の類

マニュアルなどの最小最大の仕様や今回の目的にあった型を変数ごとに決定しないと駄目
結構辛い作業になることもある
0881デフォルトの名無しさん (アウアウウー Sa67-hiZJ)
垢版 |
2022/06/13(月) 20:24:19.87ID:iGSNe98na
audioデータは16の方が32や64より多いな
0883デフォルトの名無しさん (ワッチョイ bfba-APne)
垢版 |
2022/06/13(月) 22:49:16.87ID:nsYJGXTe0
>>877
postgreのドキュメントには、integerが一番バランスが取れているからsmallint使うのは限定的とあるね。
.NETでも同じことが言えるのでは。

integer型は数値の範囲、格納サイズおよび性能において最も釣合いが取れていますので、一般的に使用されます。 smallint型は一般的にディスク容量に制限が付いている場合にのみ使用します。 bigint型はintegerの許容範囲では十分ではない場合にのみ使用すべきです。 integerデータ型の方がずっと速いからです。
0885デフォルトの名無しさん (ワッチョイ 63c0-yYLg)
垢版 |
2022/06/14(火) 02:46:01.05ID:TDtroYoO0
>>854
 同じだから、あんなのどっちでも普通に書けてハードルはない。
 vbとc#は相互に書き換えができる。
 決してCを継承した言語ではないのにC#って名前が実態と合ってない。
 で、Like演算子の代わりって何。VBでは使えずC#でのみで使える何かがあるんかいな。
0886デフォルトの名無しさん (ワッチョイ 63c0-yYLg)
垢版 |
2022/06/14(火) 03:12:49.82ID:TDtroYoO0
>>845 >>846
 プログラム初級者だな。
 文末のセミコロンの有無と、ブロックの先頭が"{"末尾が"}"かどうかの違いだけで判断して、全然違うと思い込んでしまう人か。
その基準で言えばC++に似た言語と思ってるのかもしれんが、実際にはC#は決してCを継承した言語ではなく、C++やCと何ら
似ているものはない。
 見かけ上は、C++の改良言語。
 フタを開ければ中身はVB。このVBを、VBに見えなくするように構文を変化させただけのものでしかない。
 実際に、いつもVB使っててC#は使ってなかったが、業務で初めてC#のプログラム改修も、言語の問題で行き詰まりはなかった。
 このことからも、やはりC#はVBだ。
0893デフォルトの名無しさん (ワッチョイ 13da-xATt)
垢版 |
2022/06/14(火) 08:58:54.22ID:fCQzlF2p0
>>883
俺には数百万以上のレコードが見込まれるテーブルに対して、smallintで済むカラムをintには変更できないw
まぁ容量無視できる小さいテーブルならintでもいいんじゃないですかね。ケースバイケース
0895デフォルトの名無しさん (スッップ Sd1f-G2Bj)
垢版 |
2022/06/14(火) 09:09:44.70ID:VOaVS0+Qd
インターフェースのデフォルト実装もVBでは使えないはずだけど、デフォルト実装を持ったインターフェースをVBで触ったらどうなるんだろ
既存インターフェースに安全にメンバを追加するための機能だから、良かれと思ってメンバを追加したらVBユーザーが切り捨てられるという悲しい事態になるんだろうか
0897デフォルトの名無しさん (ワッチョイ f3f6-hiZJ)
垢版 |
2022/06/14(火) 11:27:32.30ID:Rf4XfD/C0
>>846
CLIっていう意味なら判るんだが
0898デフォルトの名無しさん (ワッチョイ f3f6-hiZJ)
垢版 |
2022/06/14(火) 11:28:44.62ID:Rf4XfD/C0
886 はアホだという意味なら同意
0900デフォルトの名無しさん (ワッチョイ 835f-GGE9)
垢版 |
2022/06/14(火) 11:54:05.17ID:yNn4pitq0
やたらとLike演算子持ち上げてるからドキュメント見たけど
普通にVB6相当の機能でワロタ
これがRegexの代替になると思ってるのか…
0902デフォルトの名無しさん (ブーイモ MMff-LqX/)
垢版 |
2022/06/14(火) 12:29:40.20ID:wsz8dOniM
>>896
その単純計算は影響を小さく見過ぎ
indexやfill factorとかカラムの大きさ/レコード長はいろんな要素に関わってくる

それにストレージサイズよりも一番大きな影響は1ページに収まるレコード数か減りあらゆる処理速度が低下すること
要求性能次第では致命的になるから気をつけて
0913デフォルトの名無しさん (ワッチョイ 6ffe-yYLg)
垢版 |
2022/06/14(火) 22:07:44.90ID:15Fa3aJQ0
>>912
別言語のように見せてるだけで、中身の実体は同じだ。
C#で学んだプログラムの作り方を、そのままVBにも適用できるのだから、同じ言語だ。
いつもVB使ってC#は未経験なものの、業務でC#で既存の改修と、それともう一つC#での新規の開発を
頼まれたことがあったけど、普通にやり遂げた。それはC#というのは、実質はVBと同じだからだ。
0914デフォルトの名無しさん (ワッチョイ e3ac-JPbs)
垢版 |
2022/06/14(火) 22:17:40.97ID:p687pJoB0
>>913
いやだから具体的にどこが同じなん
違うところはいっぱいあると思うけど(それこそ宣言の仕方とか)、それでも「似ていることが」じゃなくて「同じ」て言い張る根拠があるんやろ
0915デフォルトの名無しさん (ワッチョイ 6ffe-yYLg)
垢版 |
2022/06/14(火) 22:25:58.13ID:15Fa3aJQ0
>>914
宣言の仕方のような、外側の見かけは違っていて、そこしか見れなくて違うとしか思えないのは、適性に疑問だな。
中身の実体を見て、本質を理解したら同じだということがわかる。
0919デフォルトの名無しさん (ワッチョイ 335f-Wc3G)
垢版 |
2022/06/14(火) 22:45:04.27ID:xBe9hVtf0
c#とVisualBASIC.NETはどっちもネイティブじゃなくて
.netフレームワーク上で動くからコンパイルした後は同じ物だな

VisualBASIC6.0の代替として開発された物なんだけど
中途半端にVB6.0と似てるので混乱を招いて非難轟々
VBと言うと普通VB6.0を指してVB.netの略称としては使われない
0921デフォルトの名無しさん (ワッチョイ 335f-Wc3G)
垢版 |
2022/06/14(火) 22:58:23.55ID:xBe9hVtf0
VisualBASIC6.0のソースを楽に.net環境に移植出来るのが
VisualBASIC.NETが作られたMSの目論見だったが
中途半端に仕様が違うのでVisualBASIC6.0を使い続けるか
C#に流れる人が殆どでVisualBASIC.NETはマイナーな開発環境となってしまった
0923デフォルトの名無しさん (ワッチョイ 835f-GGE9)
垢版 |
2022/06/14(火) 23:11:08.49ID:yNn4pitq0
>>909
>>851で書いてる
> C#なら複雑な文字列の扱いはどうやってるんかいな。VBならLike演算子で済ませられるもの
> でも、毎度正規表現クラスを使ったりしてるんかいな。

これは、Like演算子がRegex.IsMatch()と同等の機能を提供してると言ってるのと同じだよね?
もし違う意図だというのならプログラム言語の前に日本語学び直した方がいい

あとやたら同一同一言ってるが、unsafeはどうなんだよ
0924デフォルトの名無しさん (ワッチョイ 732f-TFwb)
垢版 |
2022/06/14(火) 23:16:54.98ID:f8wm+Q+w0
名前の最初の文字が大文字か小文字については、
JavaならClassは大文字、フィールドは小文字、メソッドは小文字、ローカル変数は小文字、定数だけは最初の文字に限らずすべて大文字、と定番的ルールがあったけど、
C#ではどうなってますか?
いろんな本読んでますがバラバラな印象。
自分的C#のルールとして、Classは大文字、フィールドは小文字、プロパティは大文字、メソッドは大文字、ローカル変数は小文字、定数だけは最初の文字に限らずすべて大文字、にしてもいいですか?
0928デフォルトの名無しさん (ワッチョイ 6ffe-yYLg)
垢版 |
2022/06/14(火) 23:33:32.91ID:15Fa3aJQ0
>>923
同じではない。同等の機能を提供してると言ってると思い込んだのは、大きな誤読だ。
より本格的に文字列のパターンを評価をするには、正規表現クラスが必要にはなるものの、Like演算子で間に合わせられる
事例のものなら一手間省けるが、C#ではまさか毎度正規表現クラスを用意するしかないのかなと疑問を感じての問いかけだ。
0930デフォルトの名無しさん (ワッチョイ e3ac-JPbs)
垢版 |
2022/06/14(火) 23:54:24.62ID:p687pJoB0
>>915
だからその「中身」の「実体」って具体的にそれぞれ何を指しててどう同じなんだよw
「本質」ってどの本質のことだよw
そのふわふわ言うクセどうにかしろよw
そもそもコードの見た目も機能も名前が違えば言語としてもう違うことになると思うが?
それを押して「同じ」っていう根拠が主観過ぎるんだよ

今そっちは、例えばdiff取ったとき同一にならなくても「ファイルは同じだ」って言い張ってるようなもんだぞ

Wc3Gが言うVB.NETが.NETとして同じものだ、っていう主張は理解できるよ
言語仕様としては違うと思うけど、
お互いunsafe以外出来るできないの機能的な差自体は少ないやろ、当たり前やけど。

でも「VB」と「c#」は「同じ」と軽々と断定出来ないと思うよ。少なくともワイには言えない
0931デフォルトの名無しさん (ワッチョイ 835f-GGE9)
垢版 |
2022/06/14(火) 23:57:20.95ID:yNn4pitq0
>>928
> まさか毎度正規表現クラスを用意するしかないのかな

いや今時のIDE使ってたらいきなりRegexって書いても補完機能呼べば自動でusing付与までしてくれるでしょ
「Like」って書くのとなんら変わらん
メモ帳でコーディングしてるのか?
0933デフォルトの名無しさん (ワッチョイ 6ffe-yYLg)
垢版 |
2022/06/15(水) 00:02:03.02ID:UJXVHFk50
>>923
unsafeの話を持ち出したが、そういった特殊で普段は一般には使わないところにまで、細かく意識して議論するつもりはない。
特殊な事例も含めて、厳密に正確を突き詰めないといけない何らかの場ならともかく、たかが(初心者用)の名前のつくスレッ
ドの場だ。
多くの物事には、原則だけでなく、例外というのものあるのは当たり前なことだ。
0935デフォルトの名無しさん (ワッチョイ a3da-pz7P)
垢版 |
2022/06/15(水) 00:15:55.63ID:xH4/Idj90
C++/CLIも同じだーって言い出すんじゃないの?
0936デフォルトの名無しさん (ワッチョイ 6ffe-yYLg)
垢版 |
2022/06/15(水) 00:16:44.65ID:UJXVHFk50
>>930
C#とVBのコードを相互に書き換えができれば、同じ実体であり、本質であるものを双方に持ち合わせている。
これでも納得できなければ、元のソースと書き換えた言語ソースのコンパイルしたものを、それぞれ逆コンパイルして比較すればはっきりする。
何がふわふわなんだ。これで十分な話だ。ほかに何を求めるのか。
0941デフォルトの名無しさん (ワッチョイ e3ac-JPbs)
垢版 |
2022/06/15(水) 00:32:47.91ID:aOT9guvq0
>>936
1行目がまたふわふわしてんなあw
そりゃあ.NET使ってりゃ合わせようとすれば同じになるわw
でも言語として「VB」と「c#」が「同じ言語」と言い切ったんだぞ?
コンパイルして同じものができれば全部「同じ」言語か?
言語仕様も同じか?片方は言語として今後積極的にアップデートもされないとされてるのに同じか?

その程度の認識で普段も「同じ」って言葉使ってるの?こええよw
10数年前ならいざしらず、今の現場とかで「VBとc#は同じだ」なんて言ったら鼻で笑われるぞw
0945デフォルトの名無しさん (ワッチョイ cfbb-fWzm)
垢版 |
2022/06/15(水) 00:52:28.66ID:BW8MTfJu0
>>933
>unsafeの話を持ち出したが、そういった特殊で普段は一般には使わない
C#でアンマネージリソース扱うのなんて珍しくもなんともないだろw
OS標準の簡単なUIプログラミングしかしたことなさそう

釣りなのか知らんけどテンプレ読めないアホは別スレ行け
0949デフォルトの名無しさん (ワッチョイ 732f-b1tp)
垢版 |
2022/06/15(水) 01:00:13.01ID:C/XRb82A0
>>936
>C#とVBのコードを相互に書き換えができれば
VB.NETでできてc#にできないこととかあるんだが
言語仕様だって全く違うわけで、同じなのは.NET Frameworkを使うってだけ
ただ、それがc#とVB.Netのプログラミングのほとんどだったりするだけだ
0954デフォルトの名無しさん (ワッチョイ ff05-bM3h)
垢版 |
2022/06/15(水) 08:27:44.26ID:MKd4vbtE0
これで開発するメリットって何?
0957デフォルトの名無しさん (アウアウウー Sa67-gL1p)
垢版 |
2022/06/15(水) 08:56:26.78ID:Ou9isEg9a
>>954
生産性が高い
0961デフォルトの名無しさん (ワッチョイ cfbb-7/FS)
垢版 |
2022/06/15(水) 22:44:33.27ID:1Kri3H1n0
後発言語が主流になった日にはさ
現在のVBおじさんみたいに、俺らもC#おじさんになってるだろうからな
あんまりVBおじさんをからかわないようにしようよ
0962デフォルトの名無しさん (アウアウウー Sa67-DuPE)
垢版 |
2022/06/16(木) 00:30:49.25ID:niJcC4Fga
VB6から.NETに移行してから困ったことといったらコントロールにインデックスがつかなくなったことがあった記憶があるんだけど、実際今みんなフォームにコントロールを多数配置した時ってどう処理してんの?
0967デフォルトの名無しさん (ワッチョイ cf46-GGE9)
垢版 |
2022/06/16(木) 03:54:50.51ID:O05Sfgr10
マンションでは、PPPoE接続は出来ないのでしょうか?
バッファロールーターにPPPOE設定をしましたが
マンションで最初から契約されているプロバイダ意外に
接続出来ません。。。
0968デフォルトの名無しさん (ワッチョイ cfbb-bGSb)
垢版 |
2022/06/16(木) 05:23:02.90ID:L/YLPuLM0
>>966
だから、何を持って一緒って言ってるんだよ
お前が同じって言ってる箇所も違うって言われてるし、それ以外にも違うとこ散々出てきてるだろ?

VBがどうって言うより、お前をエンジニアとして許容できないんだよ
エンジニア的には比較軸が定義されてない比較とか会話にならん
0977デフォルトの名無しさん (アウウィフ FF67-iSSN)
垢版 |
2022/06/16(木) 13:14:37.63ID:uKxWv5AjF
CLR
0979デフォルトの名無しさん (スプッッ Sd1f-UGZ9)
垢版 |
2022/06/16(木) 15:30:23.13ID:D+AyKy1Yd
>>967
馬鹿は死ね
0980デフォルトの名無しさん (ワッチョイ 8fa7-kKOs)
垢版 |
2022/06/16(木) 15:58:37.49ID:f7CI5BIw0
>>941
だよな
横からだけど、それがまかり通るならC#とC言語は完全な兄弟と言われるのでは?と思う
だってWin32 APIどちらも使えるし
そしてVBもC言語と兄弟と言えるね

VBは使ってないけどVBScriptとかから考えると、クラスが組めてもコンストラクタに引数が使えなかったはず…
(バージョンアップしていたらすまん…)
一方C#はコンストラクタに引数を渡せる

C言語にはクラスが無いけどC++も含めるとしたらC#はC++寄りでは
0981デフォルトの名無しさん (スプッッ Sd1f-UGZ9)
垢版 |
2022/06/16(木) 16:12:21.13ID:EFUVorQPd
VBとVB.NETとVBAの区別が付いていない馬鹿は死ね
0982デフォルトの名無しさん (テテンテンテン MM7f-2g4u)
垢版 |
2022/06/16(木) 17:48:15.52ID:rN+74Ft8M
VB.netとC#はかなり近いでしょ。
コンパイルされたexeやdllからC#にもVb.netにも
ごく一部除いて互いに100%それなりに高い確率でツールで自動変換可能なわけで。
表層的な構文糖の有る無しは別にして大枠では非常に似てる。
似てるからこそVB.netは要らんよね、という流れになっていったわけで。
0986デフォルトの名無しさん (ワッチョイ 835f-GGE9)
垢版 |
2022/06/16(木) 19:24:37.65ID:HylHhkQp0
同じ.NETファミリーでもC#やF#で書かれたOSSライブラリは無数にあるが、
VB.NETで書かれた知名度のあるOSSライブラリなんて聞いたことがない
これが全てでしょ
0992デフォルトの名無しさん (ワッチョイ 63ec-yYLg)
垢版 |
2022/06/17(金) 00:53:39.57ID:k5ZHqR2O0
VBは眼中にないだの、冗長で使う理由がないだの、化石言語だの、それがどうかしたんかね。
冗長って何。ブロックの先頭と末尾を{や}の1文字で済ませられないのを冗長と言ってるんかいな。
お前らにVBを使ってほしいわけでもVBで書かれたOSSライブラリを普及させたいわけでもない。
0993デフォルトの名無しさん (ワッチョイ 732f-b1tp)
垢版 |
2022/06/17(金) 00:54:43.91ID:qX3KJPna0
>>982
その論法でいけばすべてのコンパイル言語はアセンブラと同じになるわけだが

言語が似てるからVB.NETがいらないんじゃなくて、用途と範囲が似てるから
より範囲の広いc#でいいやとなってるだけだ
0995デフォルトの名無しさん (ワッチョイ 732f-b1tp)
垢版 |
2022/06/17(金) 01:49:46.97ID:qX3KJPna0
次スレに引っ張りたくないので

VB.NetとC#が同じ言語なんていう意見には全く賛同しないが
VB.NetとC#は本質的に同じ、って意見なら、本質的にの意味あい次第では賛同できる可能性もあった
だがこの肝心の本質的にって言葉を全く説明できなかった

たとえば、
Vb.NetもC#も、.NET Frameworkを操作するためのオブジェクト指向言語であり
その意味では本質的に同じ言語である
だったらもっと賛同されたんじゃないかね

ということでこの話題はこのスレで終わりにして欲しい
0996デフォルトの名無しさん (ワッチョイ 1349-JPbs)
垢版 |
2022/06/17(金) 08:36:38.61ID:+OTN6Ty40
VBおじさんは引くに引けなくなってるだけだよw
ちょうどスレ変わるんやしここで引けば消えれるんじゃねw
感覚でふわっとしか言えないクセを直せたらいいねw
あともうちょい勉強すべき
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 127日 9時間 31分 59秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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