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

レス数が1000を超えています。これ以上書き込みはできません。
2022/06/17(金) 08:42:12.88ID:CPX9Pfyj0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part154
https://mevius.5ch.net/test/read.cgi/tech/1644416019/
■関連スレ
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
2デフォルトの名無しさん (ブーイモ MM7f-bhaQ)
垢版 |
2022/06/17(金) 09:44:05.95ID:6P0695t/M
前スレに引続き、VBに関して雑談しましょう
2022/06/17(金) 10:01:22.33ID:Ech7goP3d
VB.NET VS C#.NET
https://mevius.5ch.net/test/read.cgi/tech/1637217366/
ここでやれ>>2
2022/06/17(金) 10:05:30.78ID:0flDhQ0N0
VBはもうええは
2022/06/17(金) 12:49:36.63ID:SEHo94h90
質問です。
VBとC#は同じって本当ですか?
2022/06/17(金) 13:28:19.51ID:A6HKqZSjM
>>5
「同じ」の定義次第なので
まず何をもって同じとみなすかを定義してから質問して下さい。
終わり。
7デフォルトの名無しさん (アウアウウー Sa67-iSSN)
垢版 |
2022/06/17(金) 16:21:06.76ID:G79h5Zera
ここまでCLRなし
2022/06/18(土) 17:42:22.61ID:5N4YYnEs0
立て乙

非同期なのにawait/asyncどころかtaskやaction/funcも全く使っていないC#2.0時代みたいな書き方してる今の現場から逃げたい……
2022/06/18(土) 18:06:31.65ID:FHXg/LAj0
お前が現場を変えんだよ
2022/06/18(土) 19:19:21.37ID:uW38nGwr0
時間管理のできてない安易な非同期はほぼ100%バグってるのでやらなくていい
2022/06/18(土) 21:39:25.08ID:DZ8znIamM
レガシーな非同期はラップしてTaskかObservableにすると気分が晴れやかになる
2022/06/18(土) 22:03:02.01ID:V1FXcKIO0
Taskは遅いとかいう記事のせいで未だにCallbackが主流の俺社の悪口はやめて
2022/06/18(土) 22:21:46.90ID:5N4YYnEs0
それそれ
そもそもcallbackの書き方なんて最近の本に全く載ってないから今の現場に入ってIAsyncResult?なんじゃそりゃってなった
10年は前に作られただろうサイトを読んで長い時間かけてようやく何やってるか理解したみたいな
14デフォルトの名無しさん (ワッチョイ 1aad-Zgr3)
垢版 |
2022/06/19(日) 18:15:11.59ID:JN11Elx30
>>8
書き換えればええやん
2022/06/21(火) 10:13:10.23ID:Anf2PF0ZM
予算は?
2022/06/21(火) 11:32:11.12ID:xt+HQD+A0
いま少し時間と予算をいただければ…
17デフォルトの名無しさん (ワッチョイ 1aad-Zgr3)
垢版 |
2022/06/22(水) 06:57:18.35ID:10PSZ3s70
>>15
稟議通せば?
2022/06/22(水) 07:24:29.42ID:aadzgmkj0
この表の部分Excelと同じ操作にしてくれる?
2022/06/22(水) 08:29:37.02ID:ITHh+IXJ0
ピコーン OLE2で埋め込めば良いじゃん
2022/06/22(水) 09:11:42.38ID:pCRUTkSs0
ArrayListを使ってる.NET1.0時代な職場よりマシなのでは
2022/06/22(水) 10:02:21.11ID:KXMvDxejp
ようやく文法の教科書終わったくらいの素人なんですがinterfaceの具体的な使い方はどうやって覚えたらいいですかね
interfaceを使った疎結合というのがいまいちイメージできなくて取っ掛かりが分からん
22デフォルトの名無しさん (ワッチョイ 0b01-gg/4)
垢版 |
2022/06/22(水) 10:24:15.19ID:4lQZ5KlU0
DIコンテナで実装クラスの差し替えでもしてみたらどうでしょうか
ttps://qiita.com/okazuki/items/a0f2fb0a63ca88340ff6
23デフォルトの名無しさん (オッペケ Sr3b-MKW/)
垢版 |
2022/06/22(水) 10:30:38.32ID:PAt9l0gwr
例えば動物クラスで、哺乳類とか鳥類とかに派生していくけど、
飛ぶ能力は鳥類だけの特徴ではないから interface で実装するとか。
2022/06/22(水) 10:42:48.00ID:IP7+Sy+B0
どんなclassのオブジェクトでも引数で受け取れるメソッド作ってみろよ
但し受け取るオブジェクト内でHage()メソッドの実装は必須な
2022/06/22(水) 11:22:39.46ID:A/muOnk30
文法だけみても、実際に使い方みないと必要性とか実感なんてわかないだろ
まあ用途なんていろんなライブラリ使ってみればそのうちわかるさ
2022/06/22(水) 11:32:21.14ID:cmFMiTtgp
>>24
すごい。設問で理解できた気がする。

つまり現存するのが少数の自前クラスだけならまだ全てのクラスを引数にするメソッドを作成できるが、将来に渡って作られるであろうあらゆるクラスを引数にした関数は普通は作れない
そこでinterfaceを使って引数を抽象化する事で、あらゆるクラスを引数に取る事を可能にする。しかもHoge()は確定実装なので相手が何であれHoge()を叩けるのは保証される。よって相手を限定しない疎結合になる。

ってことか?この認識であってます?
2022/06/22(水) 11:37:00.61ID:SASaungr0
抽象化レイヤーの有用性を理解するにはテストコードを書くのが一番

まずはDIやるほどでもない小規模なプログラムで、HTTP通信とかファイルアクセスとかDBアクセスとかやってるところにinterface挟んで、
ユニットテストでは実際のアクセスを発生させずにテストできるようにしてみるといい
https://docs.microsoft.com/ja-jp/visualstudio/test/unit-test-basics?view=vs-2022
2022/06/22(水) 11:46:24.28ID:cmFMiTtgp
>>27
ありがとうございます、やってみます

他にレスくれた方もありがとうございます
2022/06/22(水) 11:56:22.30ID:/fjoIry/0
>>26
外野だけど大体そんな感じ
ただ、「そのインターフェースを実装しているクラスに限る」けどね
だからといって闇雲に継承したりインターフェースを実装したりするのではなく、is-aの関係であるべき
「車」や「飛行機」は抽象化すると「乗り物
」となるけど、「家」は抽象化しても「乗り物」とはならないね(抽象化すると「建物」とかになるはず)
車、飛行機、家はそれぞれ通常クラスとして、
乗り物、建物はインターフェースとして定義する

そうすればどの乗り物だろうと同じ「前進」とかで動かせる
この抽象化して、どれでインスタンス化したか関係なく動かすためにinterfaceがある
30デフォルトの名無しさん (ワッチョイ cebb-h11B)
垢版 |
2022/06/22(水) 12:05:02.40ID:PETcyPz40
インターフェイスは、デザインパターンやユニットテストを多少でも知っていないと意味不明だろう
2022/06/22(水) 12:38:55.59ID:+v1vNSu7r
まあ書いてみたときに便利さを実感するわな
32デフォルトの名無しさん (ワッチョイ cebb-h11B)
垢版 |
2022/06/22(水) 12:56:59.75ID:PETcyPz40
どうだろね
数時間で完成する規模のものしか書かないのであれば、記述が増えて不便になったと思うかもしれないし・・・・
2022/06/22(水) 13:00:52.20ID:1cdxoy9qd
実際にはほとんどテストが目的だから、>>29みたいな説明で納得した気になってるとかなりギャップを感じるよね
一方で拡張ポイントを作るためにinterface使う場合は非常に恣意的な設計になるので、これまた>>29のようなメンタルモデルとはだいぶ違う感じになる
34デフォルトの名無しさん (アウアウウー Sa47-vQ73)
垢版 |
2022/06/22(水) 13:58:54.21ID:bIOoQPo7a
JavaとJavaBeansのことか
2022/06/22(水) 15:18:26.16ID:IP7+Sy+B0
>>26
合ってる。
小難しく考えず、要は「俺のこと呼び出すならこれとこれのメソッド実装しとけ」ってこと。
だんだん使いこなせてきて、もうちょっと凝ったことやろうと思うと型制約とかが出てくる
2022/06/22(水) 15:19:46.32ID:pCRUTkSs0
普段意識しないだけで、インターフェースはいたるところにある
判りやすい例がforeachステートメント
あれはListではなくIEnumerableに対してループしている
2022/06/22(水) 15:42:58.01ID:81K3MuoLd
車が家の場合は?
2022/06/22(水) 17:28:55.97ID:A/muOnk30
>>33
インターフェイスの目的がテストってのは違うんじゃね
もともとは多重継承させないための仕組みだろ

もっとも使われてるシーンがテストだってならまあそうかもしれんが

>>36
初心者むけの例であんまり例外的な条件あげつらうののもうどうかとは思うが
じつはforeachはIEnumerable実装してなくても可能なんだがな
2022/06/22(水) 17:54:44.92ID:FYBnfkKla
>>20
石器時代の産物だなw
40デフォルトの名無しさん (ワッチョイ 3b5f-sER5)
垢版 |
2022/06/22(水) 18:10:20.15ID:5Bb+Exnq0
初心者向けなら最初はテストのためって言ってしまっても問題ないと思う

初心者のときに俺が一番ピンときたのは、
ファイル作成や書き込みをテストしたくなったときに使った System.IO.Abstractions だな
ファイルシステム自体を抽象化(IFileSystem)することで
テストの度に実際のファイルをセットアップしなくてもいいことが分かった時は結構感動した
2022/06/22(水) 19:03:12.67ID:+B9FnbDA0
private Random _random = new Random();

void MethodA(){
var val = _random.Next(1, 100);
}

void MethodB(){
var random = new Random();
var val = random.Next(1, 100);
}

MethodAとMethodBをそれぞれループで何度も実行したとき、Bの方が圧倒的に速いのはなぜですか?
Randomオブジェクトを都度生成しているので遅そうに思えるのですが。
2022/06/22(水) 19:22:48.61ID:EFlIvheoM
>>41
計測に使ったコード見せて
2022/06/22(水) 19:58:57.85ID:pCRUTkSs0
RandomNumberGenerator.GetInt32の方がおすすめよ
ゲームみたいにシード値を固定にしたい場合はその限りではないけど
速度が欲しい場合はXorshiftもあるんでついでに比較するといい
2022/06/22(水) 20:07:52.96ID:6/q1nl240
C++だと、メンバ変数をループでアクセスしたりすると遅くなるよ
C#も多分変わらんのでは
2022/06/22(水) 20:16:40.07ID:1cdxoy9qd
>>44
そんなもん誤差
Randomクラスが中でどれだけフィールドにアクセスしてると思ってるんだ
2022/06/22(水) 20:19:45.04ID:ITHh+IXJ0
Rレジスタを読むだけじゃないのか
2022/06/22(水) 21:10:25.85ID:MLZMXa4p0
ローカル変数に保持するとかなりの確率でレジスタに入るがstaticフィールドに紐づいてるインスタンスだと逆に絶対にその都度メモリにアクセスすることになる
それもその都度多重ポインタを辿っていく事になるので何度もreadする変数は出来ればローカル変数に一度入れた方が良い
レジスタ利用されずともヒープへのアクセスとスタックへのアクセスじゃ局所性の問題からスタックの方が早いし手間以外にはメリットしかない
2022/06/22(水) 21:42:35.06ID:XpS14TAH0
>>41
計測してみたけどBのほうが圧倒的に遅かった
2022/06/22(水) 21:49:22.91ID:XpS14TAH0
環境で最適化内容に差があったりするのかな?
コード貼っておくので計測してみて
https://dotnetfiddle.net/Fesi8q
2022/06/22(水) 22:27:47.54ID:OsaOMnRZ0
出した乱数を未使用で後者はローカルで完結してるから最適化でコードが全省略されたってオチだろう
5141 (ワッチョイ 8341-643o)
垢版 |
2022/06/22(水) 22:57:40.86ID:LVeGoA3E0
みなさんありがとうございます。書いたコードはこんな感じです。
.NET Framework4.8 の Form アプリで、画面にlabelを1つ置いています。
私の環境だとDebug, Releaseビルドに関わらず100倍くらいBが早いです。

public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private Random _random = new Random();
private void Test(Func<int> func) {
var sw = Stopwatch.StartNew();
var count = 10000;
for (var i = 0; i < count ; i++) {
label1.Text = func().ToString();
Application.DoEvents();
}
sw.Stop();
Console.WriteLine($"{sw.ElapsedMilliseconds} msec");
}
private int MethodA() {
return _random.Next(1, 100);
}
private int MethodB() {
var random = new Random();
return random.Next(1, 100);
}
private void button1_Click(object sender, EventArgs e) {
Test(MethodA);
Test(MethodB);
}
}
2022/06/22(水) 23:12:43.31ID:BDP06NEh0
AとBの実行順は変えてみた?
2022/06/22(水) 23:17:07.34ID:MLZMXa4p0
>>51
Test(MethodB);
Test(MethodA);
こうやって逆にして見ると今度はAの方が100倍速くなるかもね
Stopwatchクラスはこんな風に糸も簡単に結果が変わるからパフォーマンス測定にはあんまり向かない

あとRandomと比べてlabe1.Text = がかなりのボトルネックになってる可能性あるから、そうだとしたらRandomのパフォーマンス差なんて誤差の範囲内ってことになってしまう
よって強いてTest()でやるとしたら自分ならこうやって最後だけアウトプットするようにする
int num = 0;
for (int i = 0; i < 10000; i++) num += func();
label1.Text = num.ToString();
2022/06/22(水) 23:19:35.02ID:MLZMXa4p0
てかループ枚にToString()を挟んでる時点で後発の方が100倍早くなるのはヒープアロケーション関係だろうね
とりあえずそのコードじゃRandom自体のパフォーマンス差なんてほぼ計れてないと思うよ
2022/06/22(水) 23:50:09.49ID:XpS14TAH0
>>51
Application.DoEvents()はずしても100倍の差が出る結果は同じなの?
5641 (ワッチョイ 8341-643o)
垢版 |
2022/06/23(木) 00:05:42.18ID:L4XgT5Hv0
>>52-55
A,Bの順序を入れ替えても同じ結果でした。(A:6000msec, B:60msec)
Application.DoEvents()を外すと、差が小さくなりますがそれでもBが40倍くらい速いです。(A:2000msec, B:50msec)

Randomの使い方が正しくないとかは、いったん置いておいて、
なぜこれほど差が出るのかが知りたいです。
気づかずに遅い実装をしない為には、何に気を付ければ良いのかが知りたいです。
2022/06/23(木) 00:40:24.63ID:VlRKcYRwd
Textプロパティは>>53も指摘している通りクソ遅いから>>53の言うとおりに直しなさい
2022/06/23(木) 00:47:12.21ID:VlRKcYRwd
あと、Bの方は頻繁に同じ値が返ってないか?
Randomの引数なしコンストラクタは現在のミリ秒単位の時刻をシードに設定するから、1ms以内に生成されたRandomオブジェクトは全て同じ結果を返すはず
前述の通りTextプロパティの変更は非常に重いので、値が変わらない場合は実際の変更を省略する実装になっている可能性がある
59デフォルトの名無しさん (ワッチョイ b3d2-cyzR)
垢版 |
2022/06/23(木) 00:50:17.77ID:wY0+W7Gq0
GUIへのsetterもそうだが、何かを計測したいなら不確定要素になりうるものはできるだけ排除しなよ

sw.Start()からsw.Stop()までの間はFunc呼び出しのループだけにしたい

あとループと関数呼び出しのオーバーヘッド分の計測も必要
空の関数 int Empty(){return 0;} も用意すること
2022/06/23(木) 02:12:34.18ID:3EmxumxM0
>>56
かかってる時間を見るとBが最適化されて速いというわけじゃなくAが異常に遅いんだね
コードからはなんでそんな遅くなるのか全然わからないから絞り込んでいって切り分けるかプロファイリングするかかな

それ以外で簡単にできるものだと
A、B、A、B、A、Bと3回ずつ回して差をみる
FormじゃなくCLIでやってみる
BenchmarkDotNetで計測してみる
とか
2022/06/23(木) 09:47:54.73ID:d0910tAHM
Randomより遅い処理色々混ざってるから計測になってない
計測したい処理を完全に独立したメソッドにしてBenchmarkDotNetで測れ
2022/06/23(木) 10:02:19.23ID:VlRKcYRwd
>>61
公の場でのベンチマークにそういう変なライブラリを使うのは悪手
使う側にもその結果を検証する側にも不要な疑念が生じて、ソースを見ることになり結局時間の無駄
2022/06/23(木) 10:04:16.16ID:uYSGjbtO0
公の場?
2022/06/23(木) 10:59:37.96ID:uYSGjbtO0
いわゆる.NETだと(だっけ)プロパティへのアクセスが遅くなるっていうハナシじゃないん?
どうしてもならリフレクションとかでどうにかこうにかするとか、そういう話だった気はする
2022/06/23(木) 11:05:10.95ID:szzSpCywM
いわゆらない.NETの話はこのスレで出てくるのか?
2022/06/23(木) 11:22:03.54ID:/qnvtXmgM
>>58
これだろうな
2022/06/23(木) 11:43:08.08ID:6zHFEOYgM
>>64
そういうレベルの話じゃなくて、Control.Textは内部でWinAPIを呼んでいてビチグソ遅い
2022/06/23(木) 12:07:07.81ID:3EmxumxM0
>>58, 66
なるほど納得
俺環で再現しなかったのはFrameworkのバージョン違いが原因だった
.NET Core以降は1ms以内でもシードが変わるようになってる
2022/06/23(木) 12:13:05.94ID:uYSGjbtO0
コンソールアプリでも似たような結果になったんだが気のせいかな?(4.8)
ちなみにrandom使わずにやってみても同じ(intの和)

プロパティへのアクセスだなあとワイは思うけどどやろね
2022/06/23(木) 12:14:45.20ID:/osWwN6CM
>>62
公ってなんだよw
.NETの速度を売りにしてるライブラリは大体これ使ってる
2022/06/23(木) 12:17:22.87ID:jvSS+4eW0
基本的に出力は重い
Console.WriteLineですらただの数値計算と比べると圧倒的に重い
Controlの操作は>>67が言うように内部でSendMessageが走るので更にめちゃくちゃ重い
2022/06/23(木) 14:13:54.26ID:uYSGjbtO0
コンソールアプリ、BenchmarkDotNetでやってみたら大して変わらんかったわ
Randomじゃなくてintの和でも同じ傾向
速度の違いはデバッグ時の状況の影響かもね

ちなControl.Textがうんたらの人たちは、ただの改善おじさんやな
比較の話で共通部分のコード直せって意味わからんわな
2022/06/23(木) 14:15:31.83ID:uYSGjbtO0
ちなコードの一部
private void Test(Func<int> func)
{
for (var i = 0; i < 10000; i++)
{
Console.CursorLeft = 0;
Console.Write($"{i}{func()} random");
}
}

//private int MethodA()
//{
// v = 5 + 5;
// return v;
//}

//private int MethodB()
//{
// int v = 5 + 5;
// return v;
//}

private int MethodA() => _random.Next(1, 100);

private int MethodB() => (new Random()).Next(1, 100);

[Benchmark]
public void executeA() => Test(MethodA);

[Benchmark]
public void executeB() => Test(MethodB);
2022/06/23(木) 14:44:45.09ID:pqpGOzkV0
>>69
何を根拠にプロパティは遅いって判断したんだ
ただのメソッド呼び出しだぞ
特定のプロパティが遅いのはプロパティの中の実装のせいなので別の話
リフレクションは普通遅くなるはずだが
2022/06/23(木) 14:53:28.22ID:uYSGjbtO0
>>74
ワイの勘違いだったわ
2022/06/23(木) 15:31:00.54ID:te570uEsM
>>73
このintの和のケースではBは最適化が効いて return 5; になっていると思われる
Randomでは同様の最適化はできないはずだから状況が違う
2022/06/23(木) 15:31:31.06ID:te570uEsM
訂正
return 10;
2022/06/23(木) 15:56:54.89ID:uYSGjbtO0
>>76
ちなみにintのほう、5+i にしてても"ほぼ"一緒やったよ。差異も似たようなもん

言いたいのは、>>51(=41)が言う「AとBにこんなに差が出るがなぜか」について、
4.8のコンソールアプリでは51が言うほどの有意な差は出なかったということ。

ちなみにワイの環境でMeanの差異は50ms程度でBが早いってなったけど、
まあこれは51が言ってるほどじゃないけど環境依存もあるからなんとも
(Randomのほうもコメントで切替えつつ検証した、差異も同じ)

原因についてのワイの推測は間違ってたってことはこれで自分で明らかにしちゃったけど、
Randomの1ms~も多分違うんじゃないかなとはこれで思う
2022/06/23(木) 16:15:51.40ID:te570uEsM
>>78
切り分けの仕方が不適切なんだよ
>>51のコードではボトルネックは明らかにTextやToStringやRandomの実装にあり、フィールドアクセスの有無やプロパティ自体のオーバーヘッドなんか誤差
>>73のような超マイクロベンチマークとは測ってるものが全然違うわけ
その処理時間の大小が定性的に同じだったとしても、それは恐らく偶然
定量的に評価しないと意味がない
2022/06/23(木) 16:30:56.77ID:6J8EAy2kr
いやそれはなんのために言ってるわけ?
メソッドの実装の仕方の違いからくる性能差の疑問を解決したいだろう51に対して、
何を言いたいん?
「これじゃ分かんねえよ」とでも言いたいの?なら引っ込んでれば?
こっちは自分の予想を自分で検証してその植えでその誤りも認めたんやから

何もせず考えもせずわかんねえって言ってるだけやん
予想があるなら検証してコードもだしてくれよん?
2022/06/23(木) 17:45:34.11ID:jvSS+4eW0
>>72
全く違う
他で大きく時間使われるところがあると大数の法則的な感じで軽い部分が圧倒的母数によって覆い隠されてしまう
特にGCやシステムコールは常に一定速度とは限らないから、そういう処理を挟めば挟むほど誤差が大きくなってすぐに終わる軽微な処理差が覆い隠されてしまう
2022/06/23(木) 18:02:24.84ID:a115LlJm0
>>51
>>58の情報を信じて書いたけど
これで大体同じような数字が出たら>>58の通りベンチの取り方の問題のせいで出た差だと思うよ
MethodA,MethodB自体は>>72も検証してくれた通り変わらないはず
というか今MethodBのほうをどこかで使ってるんだとしたら、性能なんかより1ms以内連続して同じ値が出るような乱数でも問題無い使い方なのかを気にするべき

public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private int _random = 0;
private void Test(Func<int> func) {
var sw = Stopwatch.StartNew();
var count = 10000;
for (var i = 0; i < count ; i++) {
label1.Text = func().ToString();
Application.DoEvents();
}
sw.Stop();
Console.WriteLine($"{sw.ElapsedMilliseconds} msec");
}
private int MethodA() {
return _random++;
}
private int MethodB() {
return (int)DateTimeOffset.Now.FromUnixTimeMilliseconds;
}
private void button1_Click(object sender, EventArgs e) {
Test(MethodA);
Test(MethodB);
}
}
2022/06/23(木) 18:09:26.02ID:ey2ezatM0
とりあえず64がアホだという事は判る
2022/06/23(木) 18:14:56.67ID:3EmxumxM0
label1.Text = func().ToString();を
label1.Text = $”{i}: {func().ToString()}”;にでもすれば
>>58が書いてる内容が原因かどうかはっきりわかるでしょ
2022/06/23(木) 18:19:33.38ID:4fvcgSgI0
>>81
何が全く違うんやねん
一般論はいいけど、それが51の言ってるAとBの差の理由になるのは何なのよっていうことじゃん?
まあそもそも51のコードにそこまでの差が出るのかどうかも今のワイは知らん立場やが

51はBのほうが速くなってるから疑問なんやろ、まあ他のコードのとこに依存ありそうで気になるな
2022/06/23(木) 18:21:37.32ID:4fvcgSgI0
>>82
まあ正直今どきRandom使うなとはワイも思ったw
2022/06/23(木) 18:41:00.93ID:jvSS+4eW0
>>85
ん?5chって一般論話す場だろ
そりゃ自分でベンチ計れば結論出せるけどそんなことする義理はない一方で一般論レスするのは5秒で終わるし
2022/06/23(木) 19:08:45.37ID:4fvcgSgI0
>>87
しょうもな、わからないんやろ、引っ込んでて
2022/06/23(木) 19:40:58.09ID:1Th4d0L20
>5chって一般論話す場だろ
初めて聞いたわ。
ここ技術系の板だぜ。個別問題に一般論しか返せないなら邪魔だから黙ってろ
2022/06/23(木) 19:45:10.46ID:ey2ezatM0
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System;
[MemoryDiagnoser(false)]
public class RandomBenchmark
{
[Params(10000)] public int A;
private readonly Random _random = new Random();
public int MethodA() => _random.Next(1, 100);
public int MethodB() => new Random().Next(1, 100);
[Benchmark]
public int BenchA()
{
int result = 0;
for (int i = 0; i < A; i++) result += MethodA();
return result;
}
[Benchmark]
public int BenchB()
{
int result = 0;
for (int i = 0; i < A; i++) result += MethodB();
return result;
}
public static void Main() => BenchmarkRunner.Run<RandomBenchmark>();
}

| Method | A | Mean | Error | StdDev | Allocated |
|------- |------ |------------:|---------:|---------:|----------:|
| BenchA | 10000 | 80.88 us | 0.489 us | 0.434 us | - |
| BenchB | 10000 | 1,490.26 us | 9.404 us | 8.797 us | 720,001 B |
2022/06/23(木) 20:56:11.83ID:pqpGOzkV0
>>51
皆が指摘してるように余計な処理を省いたら、たぶん、結果が逆転すると思う
(自分の所では逆転してMethodAの方が60倍位速かった)

private void Test2( Func<int> func )
{
var sw = Stopwatch.StartNew();
var count = 10000; // ※速すぎて結果が0msecになると思うから1桁増やした方が良い
for ( var i = 0; i < count; i++ )
{
func();
}
sw.Stop();
Console.WriteLine( $"{sw.ElapsedMilliseconds} msec" );
}

private async void button2_Click( object sender, EventArgs e )
{
await Task.Run( () => Test2( MethodA ) );
await Task.Run( () => Test2( MethodB ) );
}
2022/06/23(木) 20:58:51.74ID:ey2ezatM0
少なくとも >>51 のコードでは、Label.Text の更新とApplication.DoEventの時間測ってるのと変わらん
2022/06/23(木) 20:59:14.76ID:pqpGOzkV0
>>91ほど変えなくても
>>51
label1.Text = func().ToString();

func();
に置き換えるだけで結果が逆転するな
2022/06/23(木) 21:03:40.24ID:4fvcgSgI0
>>90
やっぱ差異あってもその程度だよなあ
これだけで 2000ms とか差が出るのは考えにくいよなあ
2022/06/23(木) 21:07:01.92ID:pqpGOzkV0
ついでにfunc().ToString(); でも逆転するな
2022/06/23(木) 21:21:12.73ID:pqpGOzkV0
.NetFramework4.8 Debugビルドにて

■label1.Text = func().ToString();
MethodA: 5480[msec]
MethodB: 48[msec]

■func().ToString()
MethodA: 8[msec]
MethodB: 20[msec]

■func():
MethodA: 7[msec]
MethodB: 18[msec]

>>91
MethodA: 0[msec]
MethodB: 12[msec]
2022/06/23(木) 22:05:36.69ID:pqpGOzkV0
.NET Core 6.0 Debugビルドにすると
A,Bどちらも4500〜4600msec位で若干ばらつくがほぼ同じ

結局のところ、>>58が正解で、.NET Framework4.8のRandomの挙動の違いで
Textプロパティの内部で処理がスキップされるか否かってことだろうね
Randomの値の検証はもう面倒臭いからやらないけど
2022/06/23(木) 22:19:46.46ID:ey2ezatM0
まとめるとこうだな
・Label.Textの更新速度がクソ遅いのでRandomの処理時間は誤差
・new Randomで同じ値が返ってきた場合、Label.Textが更新されないから速くなってるだけ
https://referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/control.cs,4048
2022/06/24(金) 02:50:44.64ID:gZdHgxGE0
>>98
ギャハハハw
難しいなw
2022/06/24(金) 07:20:28.71ID:fuiDR9PnM
仕様から推測した原因で間違いないか最終的に動作でも確認しといたほうがいいのでは?

パラメータ有りのnew Random(i)したり>>84みたいにカウンタもLabel.Textに反映して
MethodBがMethodAと同様に遅くなれば一件落着
2022/06/24(金) 09:06:25.48ID:nZzm6L7c0
>>88>>89
結果的に俺が一番最初に指摘した一般論の通りだったな
2022/06/24(金) 09:10:29.92ID:ec4i6GcX0
>>101
お前何もしてないじゃん
2022/06/24(金) 09:14:09.95ID:nZzm6L7c0
>>102
>>98が言ってる上記の結論をこのスレで一番最初に指摘したけど
2022/06/24(金) 09:17:32.89ID:ec4i6GcX0
検証してくれたのは違う人じゃん
なに自分の手柄にしてんの
2022/06/24(金) 09:27:01.49ID:nZzm6L7c0
>>104
単なる数値計算と比べて出力が激重なんてことは検証しなくても分かる程度に明らかな事だからな
実際俺以外にもちらほら指摘しとる奴おるし
せっかくただのint結果に小分けされてるものを毎回出力に紐づけるとか発想がスタティックおっさんと同レベルだからオブジェクト指向プログラミング向いてないで
2022/06/24(金) 09:46:49.82ID:ec4i6GcX0
>>105
しょうもな、後からならなんとでも言えるから
2022/06/24(金) 09:58:54.60ID:VlIywyIA0
> ちなControl.Textがうんたらの人たちは、ただの改善おじさんやな
> 比較の話で共通部分のコード直せって意味わからんわな
2022/06/24(金) 10:03:47.04ID:ec4i6GcX0
>>107
それは誤りやったな、51には悪いことしたわ
そんときはTextの仕様知らんかったでな
他のやつは98の提示があって始めて証明できてたな
2022/06/24(金) 12:18:00.54ID:p+qJoCDWM
普段から速度意識してプログラミングしてない奴は、出力が遅いという当たり前の事を知らない事は良くある
そう言う奴には口で言っても感覚的に理解出来んから数字を見せるのが一番早い
2022/06/24(金) 12:58:40.19ID:kHrWfcT90
>>103
お前が言ったのは一般論の可能性だ

結果的にそれが正しかったとしても
それを個別事例に当てはめて検証したのは別の人だろ

ちなみに今回の原因は、コントロールのアクセスや出力が遅いことじゃないんだぜ
それならAもBも同じだけ遅くて差が出る原因にならんからな
2022/06/24(金) 13:05:30.94ID:VlIywyIA0
誰が原因を解明したかなんて質問者からすればどうでもいい話である
醜い
2022/06/24(金) 13:19:04.19ID:tHNubtgb0
出力が遅いとか条件次第でスキップする仕様等を知らなくても、
計測を目的としたループの中には対象(今回はRandom)以外の処理はなるべく入れない
と言う原則を守っていれば避けられた話だな。
2022/06/24(金) 13:26:09.89ID:kHrWfcT90
いや、そもそもRandomの速度を測定したいって話じゃないだろ、これ
2022/06/24(金) 14:24:15.51ID:nZzm6L7c0
>>110
実際に検証した人がGJであることは別に否定してないが?
大本の原因は同一インスタンスでは1ms以内だとシードが変わらない&同一文字列だと出力更新が成されないって事だったようだが、
「毎回newする vs インスタンス使いまわし」という本来質問者が意図してたであろうこの差を調べたいってことであればControl.Textへの代入を挟むと、本来調べたいヵ所が誤差に収斂してしまって調査不可能になるって結論だろ
そしてStopwatchクラスで順次調査すると順番によって速度が変わるなんてことは往々にしてあるから必ずしも「AもBも同じだけ遅くなる」とは限らないってこともちゃんと指摘してる
2022/06/24(金) 14:27:59.50ID:tEJIL7500
最初に指摘出来てぼくちゃんえらいでちゅねぇ
2022/06/24(金) 15:42:06.42ID:kHrWfcT90
>>114
>本来質問者が意図してたであろうこの差を調べたい
ああ、そもそもの食い違いはそこか
別にお前の指摘内容を個別にみれば間違ってるとは言わんが
インスタンス生成の速度みたいとか勝手な想像でしかないな

本来の質問者のベンチの意図は不明なんだがな
インスタンスの生成の差を見たかったのか、ローカル変数とクラス変数の速度差をみたかったのか
違う要因で速度計測してて最終的にあのコードまで落ちたのか

結果として予想と違うけど原因は何かって質問だぜ
質問した意図はボトルネックなコードは避けたいって話だったし
2022/06/24(金) 15:56:21.70ID:0JrGBM9l0
雑ッッッッッ魚
2022/06/24(金) 17:24:37.81ID:VlIywyIA0
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
2022/06/24(金) 17:51:39.39ID:MtTs9G+lM
解決したんだからしょーもない事で喧嘩するなよw
2022/06/24(金) 18:14:27.28ID:NAI/rIyW0
元の質問者はもうこの流れ見て逃げてるかもしらんけど、
計測方法自体が間違ってると色々な人を混乱に陥れるので、
これからは、本当に計測したい部分以外の余計な要素を全て排除して
正しい方法で測って欲しいと思うw
2022/06/24(金) 19:22:50.70ID:nn4VojDf0
論点がズレて喧嘩始まるのはこの板の名物だな
2022/06/24(金) 22:04:14.69ID:3GxA+CY50
ワイだの草だの言ってんのみると、まとめキッズが大量に流入してきてるしな
2022/06/25(土) 12:00:40.04ID:Fily2x+h0
顧客の意図を汲んで問題を分析して解を出す速度もこの業界では重要スキルだからこれからも精進したまえ
2022/06/25(土) 12:03:57.86ID:1xFYE0ZgM
昔わざと炎上させて残業代を狙うやつがいて非常に厄介だった
2022/06/25(土) 21:08:15.68ID:YzwccikL0
非同期処理について質問なんですけど、taskを受け取ってその状態を見て処理が終わってるかどうかチェックして…みたいな感じじゃないですか
例えば通常の関数だったら、戻り値を受け取るのは呼び出した関数の処理が終わって、そこで初めてですよね
でも非同期だと処理終わってないのに戻り値が渡されちゃうって認識でいいですか?そして渡されたあとも進行状況に応じて変化し続けると
2022/06/25(土) 21:36:39.54ID:MoozsICfd
>>125
処理が終わっているかどうかのチェックなんかしない
Taskを受け取ったら、Taskに対して「完了後に次に実行したい処理」を登録する
そして完了後に次の処理を呼び出すのはTaskを返す側の責任であり、受け取った側は気にしない
次の処理が登録された時点で既にTaskが完了していれば次の処理がすぐ呼ばれるかもしれないし、数秒後かもしれない
非同期処理とはそういうもの
2022/06/25(土) 21:42:23.39ID:zqnvknwe0
>>125
> 非同期だと処理終わってないのに戻り値が渡されちゃうって認識でいいですか?
非同期メソッドを呼んで戻ってきてるのは戻り値を戻す処理を実行してるTask<TResult>であって、
その時点で戻り値が渡されている訳ではないよ。
Taskが終了した時点でResultに結果が格納されるが、
普通はTaskを直接弄ったりせず、awaitで待って結果を受け取る。
2022/06/25(土) 22:53:30.13ID:YzwccikL0
>>非同期メソッドを呼んで戻ってきてるのは戻り値を戻す処理を実行してるTask<TResult>であって、
ここと
>>その時点で戻り値が渡されている訳ではないよ。
ここのつながりがよくわからないのです
1行目でTask<TResult>型の戻り値が戻ってますよね
それなのに戻り値が渡されていないというのはどういうことでしょうか

あとiscompletedプロパティで終了しているかを判断するのは一般的ではないのですか?
2022/06/25(土) 23:06:32.65ID:dWIrjb1E0
>>128
Taskは作業管理機であって結果ではない
task.Resultをして初めて結果を取り出せる
task.Resultを呼び出す前に作業が完了していれば即戻り値を得られるし、そうじゃないなら内部でwhile (!isComplited) Sleep(1);みたいな事をして作業が終わるまで待機した後に得られる
「作業が終わっていたら結果を貰う、そうじゃなければ別の事をする」っていうシーンに限りIsComplitedで確認する(Resultを使うと終わるまで強制的に待機させられるため)
大抵の場合は「Task投げる→他の事する→Task結果を受け取る」って言う一本道なのでIsComplitedをせずにResultでそのまま貰うことが多い
2022/06/25(土) 23:09:24.51ID:DJEgoMeR0
>>128
今はtask.IsCompltedやtask.Resultを直接参照することはあまりないな
var result = await Task;
みたいにawaitで待ちと返り値の取り出しを行う
2022/06/25(土) 23:14:34.43ID:gQjoPRQF0
>>128
値は確かに返っている、がタスクであってズバリ結果じゃないよね
ハンドルとかのイメージが湧かないなら…注文番号だけ返すみたいな
>iscompleted
使う機会がない訳ではないが、自前でノンブロッキングを書くと面倒くさいし
大抵は完了したら何をするって感じで、awaitやContinueWithを使うと思うよ
132デフォルトの名無しさん (ササクッテロラ Spa3-u0tS)
垢版 |
2022/06/26(日) 01:35:05.56ID:qaLvjcDBp
待つなら同期でいいと思うんですが、awaitするメリットってなんですか?
他のことが出来るって言われても、他のことが非同期にやらせてる処理に
影響が出るような事象や処理だったらどうするんですか?
2022/06/26(日) 01:42:42.52ID:J3iRsr8e0
同期で待つとスレッドプールが占有されるからやめろ
複数のタスクから同時に読み書きアクセスされるリソースがあるならロックをかけて排他制御しろ
2022/06/26(日) 01:45:50.95ID:J3iRsr8e0
あとネイティブアプリでUIスレッド上で同期で待つと全てが固まるからやめろ
135デフォルトの名無しさん (ワッチョイ 3f2d-yeJY)
垢版 |
2022/06/26(日) 01:49:34.43ID:naJNIbNQ0
>>132
良くあるのはGUIのボタンを押したら時間がかかる処理をやらせる場合
同期処理だとその間GUIが固まって、ウィンドウを移動したり出来なくなる
非同期処理なら処置中もGUIが動ける
排他制御等で影響が出ないようにするのはプログラマーの仕事
2022/06/26(日) 02:07:33.08ID:DrXudPeHr
C10K 問題は20世紀に提起された話題で、現代も問題になるかわかたない。
実際、開発者であるあなたのパソコンでは数千のスレッドが在り、ハンドルに至っては数十万あると思う。
それで問題なく動いている。
非同期は広告の宣伝文句かもしれない。
2022/06/26(日) 02:31:28.25ID:thJDnK3H0
>>132
ついでに言うと、UIコンポーネントはUIスレッドしか触るなという制約がある
awaitは非同期待機だけでなく既定なら元コンテキストへ戻るという意味も含む
同タスク内でやるとアクセス違反、経過もIProgressなど同期コンテキストが必要
ContinueWithの後続処理としてもタスクスケジューラを渡してやらなければならない

>>136
GUIはイベント駆動だし、Taskの乱発はC10Kのスレッド作りすぎに近づいていくが…?問題ねぇよってプロパガンダ?
2022/06/26(日) 08:44:12.84ID:yfX3wl/l0
>>132
> 他のことが出来るって言われても、他のことが非同期にやらせてる処理に
> 影響が出るような事象や処理だったらどうするんですか?
魔法じゃないんだからそんなのは何を使ってもどうしようもないだろ
影響出ないケースなんていくらでもあって例えばネットワークとディスク(最近はSSDだからストレージか)の各々からデータを読んでからそれらのデータを処理して表示するなんて時にシリアルにやるより
1. ネットワークから読み出し開始
2. ストレージから読み出し開始
3. 1. と 2. の終了を待つ
4. 読み出したデータを処理して表示
ってやった方が早い可能性があるってこと
139デフォルトの名無しさん (スップ Sddf-MDA+)
垢版 |
2022/06/26(日) 08:51:05.64ID:60uDe2Q5d
横からの質問ですが、デスクトップアプリならなんとなく理解はできてるつもりですが、ウェブアプリだと、複数のユーザからの処理をサーバ上のアプリが処理していく際に、同期処理で重たいのが動いている場合にほかのユーザまでまたされるということがありますか?
アクセス単位で別々にスレッド処理されてるから、メソッドを同期非同期するのはあくまでもその単一ユーザの処理の中で考えれば良いですかね?
それとも、他のユーザも待たされるから基本的には非同期で作っていくものですか?
ちなみに、winformからblazor移行の勉強中です
2022/06/26(日) 09:48:29.73ID:vVyuk1M20
Blazorって流行る気配があるの?
2022/06/26(日) 09:58:33.85ID:MUUA0Nh2M
>>139
同時アクセスしてるユーザー数>Webサーバが用意してるスレッド数の上限 だと待たされることがある
これがC10K(クライアント10000台)問題

なので対策としてDBアクセスみたいなI/O待ちみたいなときにスレッドを占有せずいったんリリースさせようと考えて
async/awaitの仕組みが生まれた
2022/06/26(日) 10:02:10.45ID:PhXCrOZEd
Blazorはアーリーアダプタが一瞬遊んだくらいで消えた
もう誰も使ってないよ
2022/06/26(日) 10:04:32.32ID:FNTvXztu0
スレッド型非同期は時代遅れ
シングルスレッド非同期こそナウ
144デフォルトの名無しさん (スップ Sddf-MDA+)
垢版 |
2022/06/26(日) 10:07:12.47ID:60uDe2Q5d
>>141
ありがとうございます
ということは、スレッドが枯渇しない限りは同期処理でほかのユーザは待たされることはないと。
プログラム上で主に考えるのは、ユーザ単位で同期で良いのか非同期にするべきか考えれば良く、ただ、規模やサーバの負担を考えるときには、非同期によりスレッドの占有は抑えられて効率よくスレッドが使われていくから、非同期処理を実装するメリットまたは必要があるという理解で合ってますか?
2022/06/26(日) 10:25:36.55ID:bTdujDmeM
>>144
それで合ってる
ぶっちゃけBlazorなんてお遊びの許されるちょっとした社内システムくらいでしか使わないんだからスレッドの消費なんて全く気にしなくてOK
Blazor Serverなら尚更
2022/06/26(日) 10:47:01.78ID:MUUA0Nh2M
極論すると、絶対にWebサーバでスレッド枯渇することがないって分かってるなら
async/awaitなんか使わないほうがパフォーマンスが良い

なので、万一本当にスレッドが枯渇したときに
サーバに処理余力があるにもかかわらずリクエストが処理できなくてレスポンスが致命的に悪化してもよければ
非同期の仕組みなんかまったく使わなくてよいし
現にVS2010以前はその前提のWebアプリしか構築できなかった
147デフォルトの名無しさん (スップ Sddf-MDA+)
垢版 |
2022/06/26(日) 10:47:39.05ID:60uDe2Q5d
>>145
ありがとうございます
なかなかピンとくる記事に当たらなかったのですっきり疑問がとけました
国内のサードパーティー製のモジュールとか対応しだしてたりYouTubeなんかだと結構英語の解説とか多いので向こうでは多少使われてるのかなと思ったんですが、先は厳しそうですね、、、
本業でなくC#好きで触ってる自分にとっては一番作りやすいのではありますが
2022/06/26(日) 11:46:46.35ID:ITekl9D3r
データベースのこと考慮しなくていいんか?
重い処理は非同期で別スレッドに投げなくていいんか?
2022/06/26(日) 11:55:34.78ID:fnukxN9QM
CPUバウンドな処理だとスレッド枯渇しなくても他のユーザーが待たされる
I/Oバウンドな処理でもDB側で何らかの競合が発生すれば待たされる

スレッドが枯渇しなくても数が増えると該当スレッドにCPUリソースが割り当てられるまでの時間が当然増えるから処理完了までの時間は長くなる

短い時間で終わる単純なI/Oバウンドな処理のみでピーク時/オフピーク時のリクエスト数が十分に少なくて省リソースよりもプログラムの簡潔さを優先するような場合なら同期処理を選ぶ
2022/06/26(日) 12:26:18.51ID:+3C8D9l5M
サーバーアプリでCPUバウンドな処理なら非同期より同期で実装
フロントのサーバーを呼び出す箇所で非同期にする
2022/06/26(日) 12:32:44.97ID:35knD1Em0
BlazorならPolySnakeを再現してるサンプルを見て、すごい時代になったなと思ったよ
見ただけなのでどういう仕組みかは知らない
https://github.com/3mam/PolySnake
2022/06/26(日) 12:39:31.07ID:6NjMnJeGM
>>148
Winアプリと違って、Webサーバーというのは基本的にレスポンスを返すまでスレッドをブロックしていいアーキテクチャなんだよ
例外としてNode.jsのようなシングルスレッドなサーバーもあるが、少なくともASP.NET(無印もCoreも)はそうではない
ローディングアニメーションを出すような場合は、処理を開始するAPIと進捗をチェックするAPIを分けてAjaxでポーリングするように作ったりすることもあるが、
その場合でもリクエスト単位では同期でいい
2022/06/26(日) 13:51:48.19ID:tmrZCe0Z0
>>144
は?単位時間あたり、仮に3分として
CPUリソースをトータルで食い尽くしたら足りない分と次の3分はどうなると考えてるの?
2022/06/26(日) 14:25:11.51ID:PhXCrOZEd
>>153
そうならないようにインスタンスの台数を増やすだけだね
同期だろうが非同期だろうが変わらん
2022/06/26(日) 14:30:57.64ID:tmrZCe0Z0
ええー
リソースある前提で作っちゃうのー?
2022/06/26(日) 14:57:18.69ID:PhXCrOZEd
>>155
何が言いたいのか知らんが、同期だろうが非同期だろうがCPUを100%使っている状況なら普通はWebならまずは水平分散する
Webでは一般にインスタンスの数を増やすだけでスケールするような作りになっていることが大前提として最重要であり、個別の最適化はその次だ
2022/06/26(日) 17:01:46.40ID:tmrZCe0Z0
webは知らんけど
最近ようわからんのにスレッド立てまくる奴が作ったプログラムがこんな動作だね
正直まずいレベルで下手っぴだと思う
c#の言語仕様のせいで
2022/06/26(日) 20:52:25.72ID:yfX3wl/l0
「こんな動作」とかフワフワした用語でマウント取りに来るなら自分のブログとかでやってくれ
ここは「初心者」スレ
2022/06/26(日) 20:59:48.87ID:NLYG3vIc0
>>157
正直まずいレベルで下手っぴな文章だな
2022/06/27(月) 01:26:20.48ID:wEAeif5H0
何言ってるかわからんと思ってたら他の人もそうだったので安心した
2022/06/27(月) 02:35:01.48ID:sfuoftVd0
ASDっぽい会話のコンテキストのおかしさ
2022/06/27(月) 02:35:22.77ID:l2B1RzVL0
>>160
言いたいことは>>153なんだけど
わからないほど悲しい脳みそしてるんだ?
2022/06/27(月) 03:01:17.94ID:lmKSzJyY0
ヌルヌル話法の特徴と根本原理|mentane|note
https://note.com/mentane/n/n1ba35d50bef0
164デフォルトの名無しさん (ワッチョイ 4f02-lwqN)
垢版 |
2022/06/27(月) 15:08:18.79ID:Kbl5ft5+0
インターフェースのメンバーを呼び出す時には実装を確認すべきなのでしょうか
それとも 定義元のインターフェースへのキャスト必須ですか
(例)
class MyList : IList<int>
{
int IContainer<int> Count { get; }
...
...
}
2022/06/27(月) 15:22:13.53ID:Kbl5ft5+0
ドットが抜けてました
int IContainer<int>.Count { get; }
2022/06/27(月) 15:33:45.50ID:Kbl5ft5+0
ぐちゃぐちゃですみません
int ICollection<int>.Count { get; }
2022/06/27(月) 19:24:48.05ID:c9y9U1Yc0
聞きたいことがよく分からない
「実装を確認する」というのがどういう行為なのか
そのMyListを実装する側の話なのか使用する側の話なのか
例が単にインターフェイスの明示的実装を書いてるだけでどこが疑問点か読み取れない
2022/06/27(月) 20:38:42.94ID:Kbl5ft5+0
>>167
var mylist = new MyList();
var c0 = mylist.Count; // build error
// MyList は IList<int> : ICollection<int> をもつので
var c1 = ((ICollection<int>)mylist).Count;
// MListでint ICollection<int>.Count { get; } という memberをもつので
var c2 = ((ICollection<int>)mylist).Count;
c1は 万能
2022/06/27(月) 21:10:43.08ID:lmKSzJyY0
プロパティにpublicつけ忘れてるだけじゃね?
2022/06/27(月) 21:49:28.21ID:oKLZ5l1i0
IList.Count って public int Count { get } じゃなかったっけ。
((ICollection<int>)mylist).Count; が出来るのは、別途 ICollection.Count が実装されているからじゃないの。
2022/06/27(月) 22:21:47.30ID:Kbl5ft5+0
>>169, >>170
var array = new int[]{1,2,3};
var c0 = array.Count; // build error
var collection = (ICollection<int>)array;
var c1 = collection.Count; // ok
2022/06/27(月) 23:11:12.57ID:oKLZ5l1i0
オマエ、きちんと日本語で他人に伝わるように説明する気ないの?
,前に書いたのに誤りがあるように見えないんだけど。
2022/06/28(火) 01:12:23.85ID:vCyl6X270
いきなりオマエ呼ばわりかよ、何様?
2022/06/28(火) 03:39:43.25ID:k21C1TP+0
攻撃的なレスは誰も得しない

>>172
前に書いたのってのは170のことで合ってる?
Countプロパティを定義してるのはICollection<T>
IList<T>はそれを継承してるだけ
だから
((ICollection<T>)array).Count
で正しく取れるし
((IList<T>)array).Count
と全く同じ意味になる
175デフォルトの名無しさん (スップ Sd5f-3THJ)
垢版 |
2022/06/28(火) 08:26:27.68ID:UdVkVSJZd
https://ufcpp.net/study/csharp/oo_interface.html?p=4#usage

インターフェースの実装は
public int Count{get{...}}
のようにpublicで公開するのが普通。

MyList mylist; mylist.Count; のようにアクセスするのがまずいなら
int IContainer<int>.Count {get{...}}
のように隠すこともできる。

インターフェイスとしてしか使わないなら
MyList mylist;
IContainer<int> c1=mylist;
c1.Count;
のようにアクセスする方法もある
2022/06/28(火) 14:11:24.95ID:gtViLG4V0
>>175
MyListでのインターフェイスの明示的実装の結果, 隠蔽されてしまうということですか
了解しました
177デフォルトの名無しさん (ワッチョイ 27ad-9ZeA)
垢版 |
2022/07/05(火) 02:51:20.89ID:pywdYBm60
SOLID原則のDの依存性逆転の原則がイマイチ分かりにくいんですが
上位は下位に依存してはならないって説明は何をもって上位と下位になるんですか?
依存の意味はインスタンス化したらもう依存したことになるって事でいいんですよね?
では上位と下位の意味は具体的にどういう基準で区分されるのですか?
2022/07/05(火) 08:09:11.15ID:ZZ3vHKnwd
>>177
処理の呼び出し階層
決済モジュールが中で銀行引落モジュールとカード決済モジュールを呼んでいるなら、決済モジュールが上位で他は相対的に下位
2022/07/05(火) 11:14:44.01ID:Iq0vQpEV0
>>177
いい質問
抽象度の高いものが上位、抽象度の低いものが下位
別の言い方をすればアプリケーションのコアに近いものが上位、コアから遠いものが下位
↓この図にある円の中心に近い方が上位、周辺に近いほうが下位
https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

依存は適切なソース分割が行われてる前提で言えば
usingディレクティブでインポートしてれば依存してることになる
180デフォルトの名無しさん (ワッチョイ 46e9-Pt+j)
垢版 |
2022/07/05(火) 13:13:39.89ID:uajPnlyf0
フォームアプリのListViewで水平スクロールをボタンに連携して動かすことって
出来るでしょうか?
HScrollVarの値を設定できれば実現できるのでしょうが、そういう情報が見つからず。
よろしくお願いします。
2022/07/05(火) 13:22:03.56ID:JMpS1h6ad
できらぁ!
182デフォルトの名無しさん (ワッチョイ 46e9-Pt+j)
垢版 |
2022/07/05(火) 18:34:58.72ID:ZFaGw7VU0
どのようにやれば出来るのか、取っ掛かりを頂きたいです!
2022/07/05(火) 18:39:12.96ID:Ar7iVMhG0
DataGridView.HorizontalScrollingOffset はreadonly
2022/07/05(火) 20:00:12.64ID:37QL7ImaM
Listviewだからアライメントをleftかな
2022/07/05(火) 22:06:19.52ID:QtzVIzSeM
忘れたけどListviewはスクロールいじれないからスクロールオフにして
ドックして自動でスクロールバーが出る状態にしてそれを操作したような気がする
2022/07/05(火) 22:14:55.12ID:QtzVIzSeM
それともドックさせないんだったかな
思い出せない
2022/07/05(火) 22:36:02.80ID:ZxZIsqP00
よくわからんものはスクロールバー付きのパネルの子として移動させる方が簡単だな
188デフォルトの名無しさん (ワッチョイ 5301-PAFZ)
垢版 |
2022/07/05(火) 23:12:26.77ID:WZVvg+4D0
ListView、水平スクロール、ボタンに連携
俺頭悪いから何させたいのかわからない
2022/07/06(水) 06:01:09.15ID:VxYrHSBA0
"xxx.zip .exe" みたいなファイルみたいに
水平スクロールを大量に行うと右端のあたりにボタンがあって
そこで本来あるべき機能が動き出すようなプログラムを作りたい
2022/07/06(水) 07:31:13.08ID:WpD2OlXKM
>>189
ダブルクリックでは本来あるべき機能は動かないんだ?
2022/07/06(水) 08:01:33.86ID:uv1GiNSha
LVM_SCROLLをSendMessageすればいいみたいな事が書いてある
2022/07/06(水) 08:45:43.56ID:y1Ju9pb60
凝ったことやりたかったらFormsを捨てることから検討したほうが良いのでは?
アレは単純なUIを手早く作る用途に適しているけど、複雑なものを始めるとどうにもならなくなる
193デフォルトの名無しさん (ワッチョイ 46e9-Pt+j)
垢版 |
2022/07/06(水) 09:06:38.00ID:3wWvjztO0
>ListView、水平スクロール、ボタンに連携
>俺頭悪いから何させたいのかわからない

高解像度のPCだとListViewのスクロールバーが小さいので、スクロールバーは捨てて
ボタンを1回押すとちょうちょいスクロールするものを作りたかったです。
プロパティでスクロールを動かす量を設定出来たら実現できるかなと思い。

ListViewのスクロールを捨てて、デカくしたスクロールバーコントローラで
パネル内のListViewのスクロールも試してみたいと思います。
2022/07/06(水) 09:38:47.94ID:0uANHcdZM
横スクロールできるマウス買うのをオススメ
195デフォルトの名無しさん (アウアウウー Sacf-kc9T)
垢版 |
2022/07/06(水) 11:04:46.38ID:CbuaQ7gOa
>>193
ListViewの部分だけWPF使ったら?
2022/07/06(水) 13:03:45.15ID:4CR35PoR0
WinFormsでカスタムコントロールって手間かかりすぎて敬遠されるんよ
高解像度用にフォント大きくしたり、ボタンにアイコン画像つけたり、とかも
出来なくはないけどさ、そんなくだらない苦労背負うよりWPFで解決した方が早いっていう
2022/07/06(水) 15:11:19.50ID:mycuJuFy0
高解像度のPCがどうたらって
WinFormsのDPIスケーリング対応機能を有効にするんじゃ駄目なのかな
2022/07/07(木) 01:17:45.97ID:dLA6OOclM
タブレットだと高DPIだとWPFだろうがwinformだろうが表示される要素がそこそこ大きくなって
操作しにくい
ボタンなどが縦に10個並べてあったとしてタブレットで表示すると下のほうが押せない
2022/07/07(木) 01:19:41.15ID:dLA6OOclM
GUI設計者が状況に応じて複数のレイアウトを用意するしかないけど
それじゃあGUIフレームワークの自動レイアウトの仕組みがあまり意味がない
2022/07/07(木) 01:46:44.86ID:5sXFliwx0
コンパイル時に文字列変数へアプリのバージョンを埋め込む方法を教えてください

FileVersionInfo ver = FileVersionInfo.GetVersionInfo( System.Reflection.Assembly.GetExecutingAssembly().Location );
だとWindows上で動かすと取得できますが、Linux上だと例外になります。

代替案として、コンパイル時に外部ファイルから読み込んでしまおうと考えたのですが方法が分かりません
asp.net core6のWebアプリなので、プロジェクトファイル(.csproj)のPropertyGroupのFileVersionから取得したいです
2022/07/07(木) 07:09:20.40ID:7GcCJzBFM
コンパイル時?にできんだっけ?
2022/07/07(木) 08:45:46.37ID:gjoYu6DS0
Linuxってファイルにバージョンみたいなメタデータ持たせてんだっけ
AssemblyオブジェクトからGetCustomAttribute<AssemblyFileVersionAttribute>()すればいいんじゃない
GetExecutingAssembly()が失敗するならtypeof(適当なクラス).Assemblyで
2022/07/07(木) 10:43:10.21ID:HZWhR94l0
>>199
コンテンツが表示し切れなかったらスクロールするようにしとけば
204デフォルトの名無しさん (ワッチョイ 035f-A/OY)
垢版 |
2022/07/08(金) 01:18:26.52ID:2uhV5uBf0
grepとかした時に、static変数と、staticメソッドの見分けが簡単につかないのは言語的に欠陥だと思ってるんだけど、皆さんどう思います?
2022/07/08(金) 08:34:52.99ID:skMpW7pT0
Visual Studio内で完結するからgrep要らないだろ
Visual Studioなきゃ何もできない言語って意味では欠陥だらけだが
206デフォルトの名無しさん (スップ Sdaa-UfCW)
垢版 |
2022/07/08(金) 10:06:43.45ID:0Bd0SGWId
grep -E 'static[^=]+\('
2022/07/08(金) 11:15:41.90ID:N2+ntTX1M
static 変数

private static int _count = 0;

static メソッド

internal static void Call()
2022/07/08(金) 11:16:19.06ID:N2+ntTX1M
C#だとこのように簡単に見分けがつくけど一体どの言語の話をしてるんだろうか?
2022/07/08(金) 12:37:30.28ID:hiK9rTst0
世界線が違うのかねえ
2022/07/08(金) 12:42:53.65ID:hiK9rTst0
変数は名詞でメソッドは動詞にするのが一般的なのでreadみたいな一部の単語を除けば言語によらず問題にならんだろう
リーダブルコードとか読んできてよ
初心者なら
2022/07/08(金) 12:48:48.83ID:OZjMTx6FM
煽って教えて欲しかったパターンやろ
212デフォルトの名無しさん (ワッチョイ 035f-A/OY)
垢版 |
2022/07/08(金) 14:31:59.45ID:2uhV5uBf0
internal とか void とか判別しやすい例出して、判別できるじゃんと言われてもなぁ
2022/07/08(金) 14:34:05.05ID:G/CdBPp1M
>>212
ガチ馬鹿なのかな?これでも見分けつかんか?

static 変数

static int _count = 0;

static メソッド

static void Call()
2022/07/08(金) 14:34:31.26ID:G/CdBPp1M
間違えた

static 変数

static int _count = 0;

static メソッド

static int Call()
2022/07/08(金) 14:35:03.78ID:3SGLIVmR0
>>212
どこ見てるんだよw
()の有無だろ
2022/07/08(金) 14:43:00.23ID:G/CdBPp1M
rustを使うと馬鹿になるんだよな
2022/07/08(金) 15:11:15.93ID:ejQ2E0qh0
頭の欠陥の方だったか
218デフォルトの名無しさん (ワッチョイ 9ebb-rOZM)
垢版 |
2022/07/08(金) 16:42:05.44ID:AegC83dn0
新興言語では、急激にOOPとの結びつきが弱まっていて、代わりに特別な指向を持っていてさ
そっちを学習した後にOOPベースの言語に戻ってくると、ほんと感覚が狂う
2022/07/08(金) 16:43:39.21ID:PiqGkGWC0
OOPS
2022/07/08(金) 17:45:25.22ID:G/CdBPp1M
>>218
static変数か関数か区別できないって相当おかしいけど
2022/07/08(金) 19:59:03.56ID:lD1r+WGYM
>>212
話を続けたいなら、逆にどの言語のgrep-abilityが理想的だと感じるか教えてくれんか
何を求めてるかはっきりしないから、括弧の有無で分かるだろタワケ以上の回答は得られないように思う
222デフォルトの名無しさん (ワッチョイ 9ebb-rOZM)
垢版 |
2022/07/08(金) 22:39:50.35ID:AegC83dn0
>>220
そういや、大文字か小文字かってのもちょっと狂うね
まあそんな表面的な違いは大したことはないんだけど
2022/07/10(日) 08:41:58.66ID:Ofnz2Mf40
vb.netとc#はセットでコードを載せてるwebサイト多いから同じ言語だな
2022/07/10(日) 09:17:42.49ID:2lWNRyj/0
>>223
まだ言うか
2022/07/10(日) 09:41:35.46ID:dRGk1maa0
文の書き方に違いがあるだけで、使ってる語句は同じだ。
2022/07/10(日) 10:04:57.88ID:X/cjUhFp0
同じに見えるのは病気ですよ
2022/07/10(日) 18:53:49.82ID:K6zNp1si0
まーたこいつか
SNSにでも垂れ流してろ
2022/07/10(日) 22:22:55.10ID:wMqDENwq0
c#はc++を発展させた言語であるかのように欺いたvbである。
2022/07/10(日) 22:27:43.20ID:XBuHMFXV0
C# も VB.NET も .NET を人向けにプログラム言語にしたもの
2022/07/10(日) 23:21:25.85ID:za66V9r/0
同じマンまだおったんか
231デフォルトの名無しさん (ワッチョイ cbbb-TLTf)
垢版 |
2022/07/11(月) 00:28:27.54ID:CCGmUSBS0
いずれC#も廃れるだろうが、みんなVBおじさんみたいにはならんようにしような
2022/07/11(月) 01:27:39.35ID:HIY5g3Yw0
ここは人格攻撃をする場と思ってんのか
2022/07/11(月) 05:54:55.27ID:L4tB3bvp0
VBの事を騙るスレでは無いな
2022/07/11(月) 06:46:54.81ID:GGvKul+ur
実際、c#って人気ないからな
人気はあるのかもしれないが使われていない
大規模システムはほぼJavaだし
簡単なWinFormくらいだろう
有名なシステムでこれといってc#が使われているということを聞いたことがない
2022/07/11(月) 07:48:56.03ID:iksZ9aQE0
いきなり2行で矛盾やめろw
2022/07/11(月) 10:01:05.18ID:lOE9m3Ds0
wwww
まぁ、Unityが無ければそこまで覚えたいと思えるものではないかもな
今だとWindowsアプリ作ったりする人も減ってるだろうし
サーバーサイドでの採用率も低そうだし
237デフォルトの名無しさん (アウアウウー Sa09-2HoA)
垢版 |
2022/07/11(月) 10:35:46.98ID:1W23UOpta
それなりに使われてるが
どうせ下請け孫請けなので
守秘義務で外に出て来ないだけ
2022/07/11(月) 11:55:44.49ID:5PTk/FF60
C#で作成したライブラリを他者に使われないようにする方法はありますか?
難読化しても呼び出すクラスやメソッドが分かれば、利用する事ができてしまうものでしょうか?
2022/07/11(月) 12:12:35.97ID:Mu0Fq/b9M
難読化ってどこまでやってくれんだろうね
引数の数もメソッド名もぐちゃぐちゃにするなら、不可能では無いにせよ現実的に難しいと思うけど
2022/07/11(月) 12:28:05.13ID:Mu0Fq/b9M
クラス名や引数そのままなら、普通に推測は出来てしまうと思う
どうしてもってなら、アクティベーションみたいなネットワーク認証しないと使えない仕組み入れるしかない
2022/07/11(月) 12:30:30.12ID:+1/8CWP60
>>238
難読化でライブラリの中のコードが見れないように出来ても、公開しているものを隠すのは無理じゃないか
仮に隠せたら、自分でも利用できないってことに
2022/07/11(月) 12:57:01.67ID:dmn56bqZ0
>>239
自分のソフトを自分で逆コンパイルしてみればわかるよ
2022/07/11(月) 15:59:29.22ID:o+Vp/fL50
>>238
具体的に環境(.NET Core、.NET Framework、Unity…)や制限したい部分にも依るかねぇ?
外部からの参照方法によってはクラスやメソッド名まで変えられはしないだろうし
単にクラスライブラリとして露出させたくなければ共有プロジェクトにする方法も有るけど

Frameworkの単体EXEへ出来ればMatcode comPRESSerでも簡易的にデコンパイル阻止とか
netshrinkとかはDLLもバインドできて…難読化だけよりこういった包括的パッカー向き?
いずれにしても解析を完全阻止するのは不可能であるから、どこら辺を及第点とするか
2022/07/11(月) 17:53:50.74ID:d1RSnGBRM
もう見られたくない処理だけc++で書いてモジュールキックとかでいいんじゃないかな?
245デフォルトの名無しさん (オッペケ Sra1-2twL)
垢版 |
2022/07/11(月) 18:08:22.09ID:Gc8t7u3Xr
JavaオワコンでC#がそろそろ来る
2022/07/11(月) 19:02:02.38ID:5PTk/FF60
>>241
そですよね
>>243のような方法か.NET7のネイティブコンパイラに期待するか、
>>240, 244のように.NET以外で何らかの認証をするくらいしかないようですね
2022/07/12(火) 07:42:04.63ID:d+D22Oihr
>>245
もう10年以上そう言われてるが一向にJavaがオワコンにならずc#がオワコンしてる
2022/07/12(火) 08:10:19.93ID:cwVe/GJo0
https://redmonk.com/sogrady/files/2022/03/lang-rank-0122-wm.png
未だにJava3位なんだな
今どこで使われてんの
2022/07/12(火) 08:12:48.62ID:xes6G2QHp
JavaパイセンはもうCOBOLの域に入ってるやろ
2022/07/12(火) 08:13:01.75ID:I1ttMvVed
サーバーサイド
C#も今ではほとんどがサーバーサイド
2022/07/12(火) 08:22:48.21ID:O8wzjFzNa
>>250
サーバーサイドで使われているか?
2022/07/12(火) 08:28:10.27ID:KuQV4+SIa
10年前はともかくOracleの有料化のインパクトはでかかったからな
新規案件は壊滅したわ
2022/07/12(火) 09:46:46.14ID:w0UtJt4u0
Javaは単価安いし
254デフォルトの名無しさん (アウアウウー Sa09-2HoA)
垢版 |
2022/07/12(火) 10:26:31.62ID:Sm3tO535a
トラブル繰り返してる某みずほ金融なんかは Java ? COBOL ?
2022/07/12(火) 10:52:02.28ID:bC3C9A550
金融とかの規模で言語統一なんて無理やろ
メインフレームは減ったらしいけど、サーバーなんかは数百以上の規模であるんやないか?
2022/07/12(火) 11:05:26.87ID:7D6kUfzj0
同一規格のサーバーで数千台展開したあとに不具合見つかってどうしようもなくなった某国営企業とかあったから
あまり統一しまくってもいいことないよ
2022/07/12(火) 11:58:30.45ID:O8wzjFzNa
JavaはCOBOLの置き換え案件で多いな
2022/07/12(火) 13:29:14.03ID:UDBx8Sz50
YouTube で有名な雑食系エンジニア・KENTA の、
月千円の初心者向けRuby on Rails サロンには、日本6位の3千人が入っている。
(1位は、キングコング西野の数万人)

そのKENTAの天敵が、SES のモロー

2年前のモローの主張は、KENTAがRailsを勧める理由は、
ポートフォリオ制作を長引かせて、サロンで儲けるためであり、
Railsはオワコンで、転職には、PHP, Java を推奨していた

【2022年版】Ruby on Railsの将来性

ところが、モローのYouTube のこの動画では、
日本ではRailsが主流なので、Railsのキャリア相談などをやっているw

PHP, JavaのSES案件は、どうなったの?w
2022/07/12(火) 19:27:59.46ID:OqOLXv5J0
winformsってまだまだ現役なの?いろんな現場行くとあれもこれもwinformsでせめてwpf使おうぜ……って思うんですが
そもそもデスクトップアプリってもう死に体じゃないんですかね。そんな仕事まだいっぱいある気がする
2022/07/12(火) 20:10:31.06ID:cwVe/GJo0
君がWPFの開発手法を広めればいいんじゃないかな
業務用アプリだと見た目大してこだわらないとこ多いし
慣れてる人多いWinFormでってなりがち
2022/07/12(火) 21:05:38.65ID:INSzBWFiM
なんかWPFは普通に組むのもままならない感じ
2022/07/12(火) 21:27:40.52ID:cwVe/GJo0
個人開発で自分一人で作るなら何使っても構わんけど
会社だと引継ぎも考えないといけないから中々そうもいかん
新しい技術導入しようとするなら、現状よりメリットあるのを上に説明して
軌道乗るまで全部自分が面倒見るくらいの気概がないとやれない
2022/07/12(火) 22:06:12.97ID:xb5/kh2z0
新しく入ってきたメンバーがFormsしか使ったことがないとかそもそもC#知らないとか
そういうのがないわけではないし、そういう場合は教育するわな。
2022/07/12(火) 22:37:57.38ID:7D6kUfzj0
>>259
wpfのメリットって何かあるの?
2022/07/12(火) 23:00:05.49ID:c+hHR+kn0
かっちょええ画面が作れる
2022/07/12(火) 23:04:53.21ID:w0UtJt4u0
pant.net はform で作られている。後は判るな?
2022/07/12(火) 23:17:33.70ID:LCOK+7zxp
でもMS内製のPIXはWPFだし
2022/07/12(火) 23:19:17.64ID:OqOLXv5J0
画面レイアウトが崩れないのは本当に大きい
というかUIをXMLの形で読めるという最大のメリットがある
2022/07/12(火) 23:25:28.09ID:6tTlbHbB0
WPFはネイティブコンパイルできれば化けると思う
はよせい
2022/07/12(火) 23:33:27.23ID:w0UtJt4u0
PintaはGTK#で作られている。後は判るな?
2022/07/12(火) 23:42:10.05ID:GM5H0U27p
でもMS製のMSIX Packaging ToolはWPFだし
2022/07/13(水) 00:08:28.23ID:Pn4iWwXT0
たまに居ますね Winformsに親を殺された人
2022/07/13(水) 00:16:22.28ID:UzSTT+o30
Winformsに母屋を取られた人が最近も誰かに発泡酒してたからね
274デフォルトの名無しさん (ワッチョイ 23ad-KWb1)
垢版 |
2022/07/13(水) 02:56:59.27ID:dyEYJovX0
>>264
Winformと比較しての話だけど、
コントロールを何でも入れ子にできる
リサイズに追従したUIが簡単
UIの見た目のカスタマイズが簡単
高dpiモニタ対応が簡単
gitで管理しやすい

あたりがメリットかと
逆にこれらがいらないならWinformでもいい
2022/07/13(水) 06:49:24.41ID:tapB8dwS0
WPFの欠点は素だと面倒臭すぎるから
何らかのツールキットを使う事になる点

で、どれを使うのという争いが始まる
2022/07/13(水) 10:38:20.60ID:KXEqytHsr
WinUI 3のこともたまには思い出してあげてくださいね
277デフォルトの名無しさん (ワッチョイ d501-FjFw)
垢版 |
2022/07/13(水) 11:09:56.32ID:PcPKVcW10
リリースされたんだっけ?
2022/07/13(水) 12:41:53.51ID:0lUZ9jOo0
ベータを脱却してから教えてくれ
2022/07/13(水) 12:44:29.98ID:xT0Do9A+0
MAUI…
2022/07/13(水) 13:54:06.66ID:9C8kcpqG0
UWP・・・
2022/07/13(水) 15:36:04.89ID:Vti+UkSh0
まうい!
2022/07/13(水) 18:27:42.42ID:n1OVHpGm0
うぃにゅい!
2022/07/13(水) 20:30:31.03ID:ng/P0rRL0
高dpi対応とかってフレームワーク変える程の事なの
284デフォルトの名無しさん (ワッチョイ 23ad-KWb1)
垢版 |
2022/07/13(水) 20:53:16.22ID:dyEYJovX0
>>283
WinformからWPFのことなら、フレームワーク変えるまでもない
お互いに入れ子にできるしな
2022/07/14(木) 12:36:38.90ID:LJpGcg2yM
WEBアプリ作ってwebviewで表示。
2022/07/14(木) 16:21:18.28ID:byMNg0Sy0
せめてwebview2にして
2022/07/15(金) 00:51:54.21ID:lF4sBNwn0
webviewとかになると別にC#で作る必要無いんだよねぇ・・・
2022/07/15(金) 13:25:44.04ID:Wgy0KDmed
>>284
でもWPFて専用ツール要るんでしょ?
winformの一部だけWPFにしてる例って示せる?
2022/07/15(金) 13:40:19.64ID:laDvzGYl0
WPFってUI部分をxamlで書いて中身をC#って感じだからWinFormから簡単に以降できるでしょ…
2022/07/15(金) 13:43:28.52ID:w1A0sfi20
>>288
専用ツールは要らない
VSだけで良い
2022/07/15(金) 14:35:32.64ID:8JvUuYmY0
blender わい無能け?
292デフォルトの名無しさん (アウアウウー Sa09-KWb1)
垢版 |
2022/07/15(金) 15:11:28.33ID:oyGbt8u5a
>>288
専用ツールは必要ないよ
例はelementhostでググるといろいろ出てくるよ
2022/07/15(金) 15:40:36.99ID:l4dzAa6fa
>>289
WPFにはこの距離感で正解だろうね
2022/07/15(金) 20:59:06.88ID:xUkWxi720
winformならdatasetで決まりだけど
wpfなら何使えばいい?
2022/07/15(金) 21:02:37.56ID:NwjizpFI0
datasetが使いたいのならwpfででも使ったらいいんでないの?
なにをききたいんかよく分らん
2022/07/15(金) 22:17:23.22ID:tP5MISnn0
現場入ったらDAOなるSQL文字列や接続処理を大量にぶちこんだ数千行の巨大クラス経由でデータベースにアクセスするシステムだったんですがこれはC#でも普通のことなんでしょうか
検索したらjavaの例ばっかだったのであまり一般的ではないのかなと。もしそうならC#ではどういうふうにするのが一般的ですか?
2022/07/15(金) 22:51:43.52ID:8JvUuYmY0
LINQ to SQL
2022/07/15(金) 23:47:25.37ID:IXEhYVNJ0
>>296
RepositoryをEntity Framework使って実装するのが一般的だと思う
各リポジトリは数千行とかには普通ならない
2022/07/16(土) 07:10:20.01ID:QBuuK8Ob0
>>296
現場の設計者がアホなだけ
自分で読んでみてそのクラスの機能が必要充分か一回確認してみれば
2022/07/16(土) 09:42:56.36ID:e0GJPcDwM
DataAdapter使ってORマッピングやバリデーションをベタ書きでやってれば1つの処理だけで数百行にはなるから
古いシステムならそこまで稀有な例ってわけでも無いと思う
2022/07/16(土) 12:13:59.25ID:v3eAMl7Q0
あーやっぱり今はentity framewokですか。そっちは使ったことあったんですが
例えば1処理でかくなったら関数を抽出するとか、各処理の共通部分をやっぱり関数にまとめるとか、そういうことはしないもんなんですかね
2022/07/16(土) 13:34:39.24ID:OINdK0ey0
SQL自分で書きたいマンならDapperがよさげ
2022/07/16(土) 14:51:32.70ID:QBuuK8Ob0
>>301
普通はすると思うけど仕事だと下手に既存コード弄ってリスク増やしたくないんだろ
テスト工数も増えるし
2022/07/16(土) 15:54:38.42ID:qXcuC04/M
SIの開発は一気に組み上げて一発動いたらあとは保守部隊に引き継いで終わりだから、継続的に手を入れていくようなことはそもそも想定されてないの
また、初期開発は請負契約で運用保守は準委任契約である場合が多いため、
初期開発はなるべく手を抜いておいて負債を運用保守に押し付けたほうが儲かるという構造的な欠陥がある
305デフォルトの名無しさん (ワッチョイ b668-qysg)
垢版 |
2022/07/16(土) 16:54:10.22ID:4LgQTAiH0
ゲーム作ってんだけどテキストファイルで間に合ってるんだがSQLなんて本当に必要なの?
なんかかっこいいから使ってるとしか思えん
306デフォルトの名無しさん (スプッッ Sdfa-/3LY)
垢版 |
2022/07/16(土) 17:50:03.59ID:J14KlJd8d
>>301
いや、entityはむしろ使わない
2022/07/16(土) 18:10:22.69ID:RR+kpv810
なんだかんだdapperばっかりやわ
2022/07/16(土) 20:52:07.85ID:Nb4vyBV3M
もう全然DB使わなくなった
使い道が自分にはない
jsonで大体事足りる
2022/07/16(土) 21:18:54.87ID:eZm0P5Ef0
業務システムをDB使わずに組んだら死ねる
2022/07/16(土) 22:56:48.44ID:OINdK0ey0
DB使わずに済むような規模のシステムだけ開発してりゃいいなら楽やろな
2022/07/16(土) 23:13:14.49ID:5hVjLW07a
なんかDB使うのがすげーとか思ってる奴がいるなw
2022/07/16(土) 23:13:58.76ID:OINdK0ey0
DBの役割を知らない馬鹿は別に使わなくていいと思うよw
2022/07/16(土) 23:16:27.28ID:PZXE3zO/a
DBの役割とか言い出したw
2022/07/16(土) 23:19:22.53ID:Nb4vyBV3M
割獄さん!
2022/07/16(土) 23:19:56.02ID:2WLM14wy0
Ruby on Rails では、100% データベースとActive Record と言う、O/R マッパーを使う
2022/07/16(土) 23:21:25.28ID:Nb4vyBV3M
お前も管理職にならないか?
2022/07/17(日) 02:17:02.00ID:3rxTO6dh0
ふと思ったんですがC#なんかやっててもwindowsformとかの仕事が降ってくるばかりでいつまで経っても時代遅れな雰囲気から抜けられない感じですか?
なんとなーくC#の案件が続いてその流れになっちゃってるんですが、なんか方向性を間違ったような気がします
デスクトップアプリはもう斜陽なんて言われてるのにそんなことばかりやってる自分が嫌になっています
2022/07/17(日) 02:36:33.68ID:TvncEQ/d0
構造体は値型(スタック)なのでnewしてもGCは動かないので、
純粋にコンストラクタの初期化分のCPUコストがかかる認識でいいですよね?
2022/07/17(日) 03:03:37.04ID:9EQc+RYe0
>>317
ML.NET 使うような仕事にありつけないのは
本人の努力不足(`_´)

マ板に行って傷口舐め合って来たまえ
320デフォルトの名無しさん (ワッチョイ f6bb-vGT3)
垢版 |
2022/07/17(日) 07:20:35.53ID:mehD60UK0
言語に関わらず、個人事業者やそれに毛が生えた会社に来る仕事なんて限られてるんじゃないのか?
2022/07/17(日) 08:36:44.97ID:LHtPuDrX0
>>304
だよな。
俺は途中からパッケージ開発に移ったんだが長い人はいいんだけど
最近入ってくる人はだいたい作り逃げ前提の糞バグだらけで保守性皆無の
ゴミコード量産されて本当に困ってる
でもSIの開発で作り逃げしかやってこなかった人たちってこうなるの自然なんだよな
コピペだろうが自分が理解していなかろうが作って逃げればあとは知らんという
2022/07/17(日) 10:37:04.13ID:y0CsF7TYM
逆に考えたらオリンピックレベルの技能と努力を強いられず
生活ができるなんて幸せじゃん

30歳で引退みたいなアスリートレベルの世界に行きたいですか?
2022/07/17(日) 10:38:34.95ID:y0CsF7TYM
医者なんて凡ミス誤診しても患者が死んじゃったりするから
そんなに責任の重い仕事やりたいですか?

そんな強メンタルなんですか?あなたたちは?
2022/07/17(日) 11:40:04.58ID:3rxTO6dh0
>>320
C#の問題じゃなくてSESにいることが問題だったか……
2022/07/17(日) 14:02:58.20ID:885G8LEt0
Windows のシステム自体がない

今のシステムは、Docker が100% で、DockerはLinuxだけの技術。
大手は、Kubernetes でオーケストレーションする

一応、AWS Lambda のデフォルト言語に、C#, PowerShell は採用されているけど、
これで開発する人は少なそう。
たぶん、可読性の高い、Ruby で書く香具師が多そう

Java, Go,
Node.js, Python, Ruby,
C#, PowerShell

Goも採用されているけど、PHPは採用されていない。
たぶん、PHPはコーダー扱いで、プロとはみなされていない

Rust, Elixir も採用されていない
2022/07/17(日) 14:51:28.32ID:3yDcxDBnr
あわしろを召喚しちまうから、Linuxの話題はやめとけ。
327デフォルトの名無しさん (アウアウウー Sa39-qysg)
垢版 |
2022/07/17(日) 15:17:19.36ID:QiBhjgara
>>323
SEなんて凡ミス埋バグしてもDATAが飛んじゃったりするから
そんなに責任の重い仕事やりたいですか?

そんな強メンタルなんですか?あなたたちは?
328デフォルトの名無しさん (ワッチョイ 768e-/3LY)
垢版 |
2022/07/17(日) 15:42:29.27ID:4FAeL+DS0
>>325
嘘ばっか
329デフォルトの名無しさん (ワッチョイ 0d01-v9yF)
垢版 |
2022/07/17(日) 15:55:15.25ID:fvxh8ZLF0
仕事は仕事として粛々とやりゃええやん
やりたいことは趣味プログラミングで
2022/07/17(日) 16:08:59.03ID:eihDCF0Fa
>>328
相手すんなよ...
2022/07/17(日) 16:59:42.02ID:885G8LEt0
YouTube で有名な雑食系エンジニア・KENTA のRuby on Rails サロンは月千円で、
日本6位の3千人が入っている。1位はキングコング西野の数万人

KENTAの天敵がSES のモローで、
2年前は、Railsはオワコンで、KENTAがRailsを勧めるのは、
ポートフォリオ制作で、サロンの滞在を長引かせて儲けるためで、
Java, PHP の方が稼げると勧めていた

【2022年版】Ruby on Railsの将来性

ところが最近の、YouTube のこの動画では、
Rails一色で、キャリア相談まで始めたw

Java, PHPのSESは、どうなった?w

一方、KENTAはPHP, Scala をオワコン認定したから、
Laravel を使っているZOZO や、Scalaを使っているTwitter などは大変。
まともな開発者が集まらない
2022/07/17(日) 17:28:50.00ID:ByZDr6EM0
気持ち悪すぎワロタ
2022/07/17(日) 21:15:05.74ID:V9ww3jje0
こういう同じ内容を何度もコピペするのって、電車の中で車掌さんのモノマネしてる人と同じようなものらしい
2022/07/17(日) 21:47:03.84ID:ZrZAFIJX0
そんな表現せんでも知能ボーダーか発達だろうってことくらいわかるわ
2022/07/17(日) 23:20:39.17ID:3rxTO6dh0
仕事は仕事って割り切れる人強いなと思う。こんな長い時間かけるものがつまらないって辛いし、
やってることが有意義かどうか、将来性があるのかどうか、そういうこと全部考えちゃう。今どきC#でデスクトップアプリなんか作ってるともうね……いやC#という言語はバランス取れてて大好きなんだけど
ウェブの話なんか見ててもjavascript全盛って感じでASP.NETの話題なんてぜんぜん出て来ないし
2022/07/17(日) 23:25:54.07ID:ByZDr6EM0
ウェブなんか金になんねーからやめとけって言ってるだろ
2022/07/17(日) 23:35:41.92ID:ByZDr6EM0
足が早い業界ってのはいいことばかりじゃないぞ
ウェブ系ってのは1年後には使ってるライブラリがゴミになるから
設計やらドキュメントを書く能力ってのがつかない
その環境で育つと今度大手から比較的しっかりしたアプリの改修依頼なんて請けても全く何の役にも立たずに終わる
せっかく大きな仕事もらったのにね
クソみたいなアプリをベンチャーで組み続けるのはオススメできない
クソにいるとクソに染まる
なぜ外注に出すか?
そりゃ自社の社員にやらせたくねーゴミ仕事だからさおk?
2022/07/17(日) 23:49:55.40ID:ByZDr6EM0
お前のプログラムは

工場のロボットアームを動かすか?
病院の医療機器を動かすか?
空港の飛行機を飛ばすか?
ダムの水門を開くか?
防災装置を動かすか?
街に警報を鳴らすか?
電車の運行管理をするか?
精密部品のレーザー加工ができるか?
半導体を作れるか?
本やお札を印刷するか?

お前のプログラムは世界を動かしているか?
こういう仕事に関われないと
結局世の中に必要ないってことなんだぜ
それを忘れるなよ
その現場では最新技術なんて使われてはいないんだ
2022/07/17(日) 23:58:52.02ID:anUNIeB80
気持ち悪すぎワロタ
2022/07/18(月) 00:00:01.14ID:PCxCS/eQ0
言いたいことはわからんでもない
一時期は組み込みや制御系と比べて帳票出したり画面に明細表示するような仕事が同等とは思えなかった
最近は餅は餅屋だと割り切って目の前の仕事に集中するように切り替えたけど
341デフォルトの名無しさん (ワッチョイ 9d5f-GsVe)
垢版 |
2022/07/18(月) 00:12:21.41ID:/clcF0nA0
>>335について言えば
失礼だけど>>259以降のレス見る限りIT土方続けたほうがいい人材に見える
今時DAOベースのシステムが普通かどうかとか質問してる時点でロクに勉強してないのが分かるし
デスクトップアプリはどうたらぐちぐち言ってるが
その状態でWeb系行ったところで誰でもできる仕事しか任してもらえず同じことにしかならんよ
面白い仕事がしたいならまず技術を身につけろ
2022/07/18(月) 00:12:53.45ID:WqaevNOB0
>>こういう仕事に関われないと
>>結局世の中に必要ないってことなんだぜ
なんという選民思考だ
そもそも仕事として存在するなら誰かが必要としたってことだぞ
2022/07/18(月) 00:48:13.31ID:J/WuRN6s0
>>335
黙々と目の前の仕事こなして生活の金貰えてりゃそれでいいんじゃねーの?
デスクトップアプリ作って金になるんならそれでいいだろ
現状に満足できないならここでうだうだ曖昧なこと言ってないでとっとと勉強して転職でもしろよ
つまらない仕事が辛いってのは同意だけど今のお前に何が出来るの?
2022/07/18(月) 01:07:40.05ID:NBG1oOLu0
>>308
DBにJSONを入れるんじゃないの?どゆこと?
保存先ってDBかファイルしかないと思うんだが
345デフォルトの名無しさん (ササクッテロラ Sp75-v9yF)
垢版 |
2022/07/18(月) 01:49:42.51ID:HfV+EUkpp
Windowsは64bit版だしメモリも16GB積んでるしで、
5GB超えるファイルをメモリに一気読みしようと
File.ReadAllBytesしたら2GB超えてるのでデカすぎると怒られました
じゃあってんで、FileStreamでReadしようとしたら
引数にはint32しか使えないので、長さ指定で一気読みも
読み込み位置指定で分割読みもできません
どうするのが正しいのでしょうか
2022/07/18(月) 03:26:21.40ID:BheDIyMp0
2gb超えるファイル c#
でググったらありそうだったよ
2022/07/18(月) 03:38:22.73ID:Sge/OBzM0
>>345
Readだけでやろうとしてるってことかな?longオフセットでSeekしてから2GBのintの範囲でちまちま読むだけだよ
メモリマップを使う方法もあるがランタイムの実装の問題かWin32API程の速度は出ない
2022/07/18(月) 10:09:05.44ID:Fm3knAG80
大本のWin32APIのReadFileがuintで読み取りバイト数を受け取るから一度には4GBまでしか読めないしね
2022/07/18(月) 10:27:23.64ID:oHEOszJwM
>>345
バッファを1GB x 5とかにしてReadを繰り返せば?
2022/07/18(月) 11:22:20.32ID:9iZmYTdvM
1G以上を一気読みしてんの?
豪気だね

自分は小さなバッファでぐるぐるさせてるけどまあそれぞれやり方があるんだろうな
2022/07/18(月) 11:32:02.70ID:3U14fHdR0
確かに C# read huge file で検索すればいくらでも見つかるわな
ただし英語がわからない子にはつらいググるよね
352デフォルトの名無しさん (アウアウウー Sa39-qysg)
垢版 |
2022/07/18(月) 11:33:15.60ID:1omE+gQaa
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.filestream.seek?view=net-6.0
https://docs.microsoft.com/ja-jp/cpp/c-runtime-library/reference/lseek-lseeki64?view=msvc-170
2022/07/18(月) 22:41:12.43ID:YPVdfKJLM
>>349のやり方サンプル
https://dotnetfiddle.net/Sogzvw
2022/07/18(月) 23:01:02.95ID:8lDJFmzD0
>>317
WPFやろう
winformとそんなに変わらん
355デフォルトの名無しさん (ササクッテロラ Sp75-v9yF)
垢版 |
2022/07/19(火) 00:04:51.38ID:cnP8orP7p
345です
1GBずつ読み込むことにしました
まだこんな制約が残っているのが意外でした
2022/07/19(火) 07:19:11.53ID:prKmv0KHM
>>355
そうか、NTFSは4G越えると、undelete
するすべが無い事を知っておののけw
2022/07/19(火) 10:54:49.43ID:TuuoTUXUr
でかいデータは少しずつ
2022/07/19(火) 23:37:02.18ID:ItJIoKptM
1Gや5Gのファイルなんて直接丸々読んだことなんてないな
winで32ビットだとプロセス当たりでユーザーが使えるメモリは全て含めて2Gまでだったからな

DOSの頃だとは64KB壁があった
windows3.1からwin95なっても開発環境が対応してなくてまだ壁があった
それ以上のメモリを直接扱えなかったので64KBのブロックを配列でもってアクセスしてた

C#のご先祖様delphi(16bit)も同じ
2022/07/19(火) 23:51:27.75ID:D+CimJEC0
3行目から後ろは要らんよ
今となっては何の参考にもならん
2022/07/20(水) 00:11:30.74ID:tWgqxNamM
自分が使う自分のプログラムなら自分のPCに合わせて大量メモリ好きなだけ使えばいい
自分の研究用とかならよくある話
ま、読み込み分割ぐらいバカでも書けるだろ
一般用として一般人に需要無いことを自覚してなおAPIの制限にけちをつけるのなら立派なマカーだ
361デフォルトの名無しさん (ワッチョイ 0d01-Ta5m)
垢版 |
2022/07/20(水) 03:27:01.46ID:kPGNXMXW0
そもそもC#って5ギガのbyte配列作れないよね
Macは5GBのファイルをメモリに一気読みできるの?
2022/07/20(水) 09:05:44.74ID:z1C6xKss0
記憶が正しければ「リード一回」は4GBが限界
確かNSInputStream.readがmaxLen引数をNSUIntegerで取ってたから

NSDataには仕様上エクサバイトまで初期化と同時に読み込めた筈だが
内部ではbyte配列を束ねて確保してるだろうから、File.readAllBytesと比較するのはちょっとズレてると思う
2022/07/20(水) 09:35:21.90ID:889JAPzur
ビッグデータとかに関わってるとそういうの頻出なのかしらん
2022/07/20(水) 09:48:12.67ID:pMjQmXrIM
ビッグデータはせいぜい数百MBくらいでファイルに分割して扱うから実はあまり関係なかったりする
分散処理を積極的に使う性質上、非常にインフラのトラブルを起こしやすいので、効率を犠牲にしても細かいノード依存の制約とか気にせずに大雑把に扱えるように設計する
2022/07/20(水) 09:53:30.80ID:XONXHfOv0
はえー、そうなんだ
2022/07/20(水) 09:56:23.14ID:L6JCmqAC0
google のアクセスデーターは塊で来るが、加工済みのを貰っているのかのぅ?
2022/07/20(水) 15:26:43.59ID:gyCFtoBM0
そんな面倒くさい事やるより
単純に手動でファイル分割すりゃ終わるんよ
俺はそうやって対応した
2022/07/20(水) 15:46:29.24ID:gv0+evicM
ギガ単位の一括読み込みが効率いいユースケースなんてある?
2022/07/20(水) 16:11:51.02ID:rtySiySx0
>>368
そもそも一括読み込みなんて無理な大きさの場合はデータごとにシーク位置のリストを作っておいて
その都度シークして読み込む
大抵はこれで行ける
例えリアルタイムのゲームでもね
2022/07/20(水) 16:14:00.13ID:kuLnetgIM
>>368
全域へのランダムアクセスが必要なケース
ソートなんかそうだな
事前に分割して各々ソートした上で最後にマージすることもできるけど、全部オンメモリに比べたら遅いよそりゃ
2022/07/20(水) 17:43:40.71ID:eiArQYUjM
読み込んだ後だけ考えたらそりゃメモリに乗ってる方がいいだろうけど
読み込むところも含めればソートだってストレージから読みながら分割して並列処理した方が効率いいでしょ
2022/07/20(水) 19:11:22.01ID:oyesoq1vM
手元にあるG単位のファイルって動画ぐらいだけど一気読みする利点はゼロ
2022/07/20(水) 19:18:07.54ID:oyesoq1vM
>>370
常識的に考えるとインデックスをソートするだろうな
それとも5Gのインデックスなんだろうか?
2022/07/20(水) 19:52:04.13ID:Wcsdz2t6a
そもそも5Gを一気読みって指示してもOSは適当なサイズに分割して読み込むんだからあんまり意味ない
2022/07/20(水) 20:00:49.97ID:oyesoq1vM
泣きながら最後まで一気に読みましただっけ?
2022/07/20(水) 20:05:56.62ID:NEo/Ls+t0
5Gなんて、ワクチン打てば瞬時に読み込めるだろ
2022/07/20(水) 22:12:36.45ID:HgV0a3Le0
入力バッファーのサイズはOSで変えられるんじゃなかったっけ?
でも5Gかあ
どっかのハードウエアが物理的に対応できない可能性はあるな
2022/07/21(木) 10:35:48.67ID:SIRf9/Re0
>>374
WindowsならOSレベルだと一気に読み込むことも可能
CreateFileでFILE_FLAG_NO_BUFFERINGを指定して開くことでカーネルの一時バッファを介さずにストレージ→プロセスのメモリにダイレクトでIO出来る
メモリアラインメントとバッファサイズをファイルシステムのセクタの倍数にしないといけないから面倒だが
2022/07/21(木) 10:51:29.63ID:i9T4zyPva
>>378
バッファリングの話じゃないよ
ディスクファイルってフラグメントもあるからドライバレベルでは分割されてるって話
2022/07/21(木) 11:56:22.98ID:SIRf9/Re0
>>379
うん、だから「OSレベルだと」と言った
フラグメントが一切なくシーケンシャルに読み込める場合でも基本は一度カーネルのバッファが通される
それを378で回避することも可能って話
2022/07/21(木) 16:07:57.96ID:zJ650foVa
>>380
だからOSレベルでも5Gなんて一気に読めないって
Oracleみたいに専用のドライバ持ってるとかでないと無理
2022/07/21(木) 17:06:14.18ID:SIRf9/Re0
>>381
>>348で4GBまでしか読めないことは説明してるし5GBを一気に読めると言いたいつもりではなかった
カーネルのIOバッファ以上~4GB以下のサイズであれば>>374が言うようにWindows的には内部で分割して複数回に渡ってIOを行ってる
それをダイレクトに一気に行う方法もあるって話だけどまあ一般的には知る必要のない知識ではある
2022/07/21(木) 17:28:09.55ID:dDFi97kr0
>>382
結局分割してんじゃん
何がメリットだって言いたかったの?
マジでわからん
2022/07/21(木) 17:40:10.41ID:dTFhTK6qa
>>382
しつこいね、2GBとかでも専用ドライバでも作らないと一気に行くのは無理だって話だぞ
バッファリングしないことと一気に行けるかどうかは別の話
2022/07/21(木) 17:41:55.76ID:dTFhTK6qa
>>383
FILE_FLAG_NO_BUFFERING知ってる俺すげー君なんだろうと思う
そんな話は誰もしてないのにねw
2022/07/21(木) 19:03:57.53ID:e1iiLxv7a
そうやって誰も発言しなくなる
2022/07/21(木) 19:15:44.77ID:dDFi97kr0
こいつはいらねーだろ
2022/07/21(木) 20:43:01.59ID:SIRf9/Re0
>>383
メリット無いと思うならそんなフラグ用意してるMSがバカってことでいいんじゃね
俺はメリットありまくりだと思うからMSがバカだとは思わんけどな
2022/07/21(木) 21:30:51.00ID:v1bwr09cM
そんなに向きになる話なんだろうか
建設的じゃない
2022/07/21(木) 21:49:57.33ID:o92gVnUV0
64bitOSのくせにsigned intのせいで2GB制限て何なのって思うよな
64bitseekしてちょい読みは32bitの頃もやってたし
2022/07/21(木) 22:11:36.81ID:h7wFy3dLa
>>389
引っ込みつかなくなってるだけでしょ
そもそもFILE_FLAG_NO_BUFFERINGはOSのバッファリングを回避してアプリケーションで制御するためのフラグででかいデータを一気に読むためのフラグじゃ無いし

>>390
だから5GBとか指定しても内部的には分割して読み書きしてるんだからあんま意味ない
ガチでやるなら専用ドライバからやらないとダメだし
2022/07/21(木) 22:24:41.59ID:uwgzEVAr0
まっバースト転送は他デバイス使えば切れるし
C#スレで続ける内容としては終わりで良いんじゃね?
393デフォルトの名無しさん (ササクッテロル Sp75-Ta5m)
垢版 |
2022/07/22(金) 07:26:42.82ID:RqTlRDAlp
5ギガのbyte配列作れるようになってから再開しましょう
2022/07/22(金) 13:10:44.09ID:ZzUgbaoDd
WSLでも4GB制限あんの?
2022/07/22(金) 14:09:41.08ID:50nE7LhG0
まだやりたいなら自分で試すなり別スレ立てるなりしろよ
396デフォルトの名無しさん (ワッチョイ b668-qysg)
垢版 |
2022/07/22(金) 22:23:39.89ID:G0WVpIDv0
C#関連でレスバトルが発生するとき、
そこにはZuishinがいるのだ
397デフォルトの名無しさん (ワッチョイ 1301-U7jV)
垢版 |
2022/07/26(火) 22:53:34.71ID:AyLmuCWp0
今更だけどディープラーニング(AI)にも力入れてるんだなって記事
https://medium.com/@NegativeMind/c-%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E5%8F%AF%E8%AA%AD%E6%80%A7%E9%87%8D%E8%A6%96%E3%81%AE%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA-kelpnet-e887c7f31115
日本人なのが良いね
398デフォルトの名無しさん (ワッチョイ 5101-R4TS)
垢版 |
2022/07/26(火) 23:11:10.55ID:IrL7txwd0
■Voicy、1,600を超えるチャンネルのうち、半数が収益化を実現。声の
スポンサーなどの収益化プログラムを通じて、音声発信を収益の選択肢に。

株式会社Voicyが運営する音声プラットフォームVoicyでは1,600を
超えるチャンネルのうち約半数が収益化を実現、1ヶ月の収益が
800万円を超えるパーソナリティも生まれました。
クリエイターエコノミーという経済圏が期待されていますが、Voicyは声が
収益を得るひとつの選択肢となる土壌を整え、可能性を広げていきます。
2022/07/27(水) 08:20:26.86ID:xNqFXDdc0
>>397
古いわ

2年も前に更新が放棄されたようなライブラリを
使う奴は多分居ないな
400デフォルトの名無しさん (アウアウウー Sa5d-R4TS)
垢版 |
2022/07/27(水) 10:06:00.58ID:elZrgoJKa
>>398
ちょまどが飽きたからオワコンだと思う
401デフォルトの名無しさん (アウアウウー Sa5d-Ecv2)
垢版 |
2022/07/27(水) 12:05:32.51ID:ULjK+n4Sa
ちょまどどんだけ権力あるのよ
402デフォルトの名無しさん (ワッチョイ 4901-viqh)
垢版 |
2022/07/27(水) 12:23:51.88ID:3GAh1Njq0
Xamarinが姫プで潰れたのにまだやってんのかすげーな
2022/07/27(水) 13:26:23.40ID:+1BW8lNBM
何年か前にMSのカンファレンスに行ったときはちょまどの祭り上げが酷くて、公式というのが信じられないレベルだったな
MS本社のお偉いさんも引いてた
さすがに昨今の時勢であれは問題になると思うが、まだやってんの?
2022/07/27(水) 17:40:52.28ID:qbX+34jla
もう旬を過ぎた歳だろw
2022/07/27(水) 19:01:23.92ID:H9RPm4O1M
旧統一教会の個人崇拝と変わらない気がするな
怖いな
2022/07/28(木) 00:38:46.99ID:gZpd6Q6N0
キショいから話題に出すなよ・・・
407デフォルトの名無しさん (ワッチョイ 8bbb-1hDD)
垢版 |
2022/07/28(木) 02:04:06.89ID:RLUbCsLl0
C#のちょまど、RubyのYugui
408デフォルトの名無しさん (ワッチョイ 8bbb-1hDD)
垢版 |
2022/07/28(木) 02:11:06.30ID:RLUbCsLl0
途中で書き込んじまった・・・・・

C#のちょまど、RubyのYuguiみたいに、各言語で有名人が出てきたら盛り上がりそう
一昔前だったら新しいOS等が出るたびに二次元キャラクターが作られていたりしたけど、やっぱ時代は3Dだ
2022/07/28(木) 02:12:56.52ID:fA0dLJTi0
wnnの
2022/07/28(木) 02:36:12.72ID:Pq2AIR8P0
藍澤光は一時期、話題になったな
2022/07/28(木) 09:57:27.77ID:TMsgccKL0
Perlのひろゆき
412デフォルトの名無しさん (ワッチョイ 1301-U7jV)
垢版 |
2022/07/28(木) 12:32:29.16ID:2Rw/B+fk0
Pythonのアフィカス
2022/07/28(木) 12:38:20.66ID:ZE8aUmrAM
rubyのちょMattz
2022/07/29(金) 07:28:23.86ID:mdlGGONh0
悍ましい
2022/07/29(金) 08:35:16.83ID:1GTLAz+N0
久しぶりにちょまど調べたら巨乳で美人になっててワロタ
2022/07/29(金) 09:22:18.76ID:svfZpDYP0
アベマでニュース番組のMCとかやってるしもはや芸能人
417デフォルトの名無しさん (ワッチョイ 110e-c45x)
垢版 |
2022/07/29(金) 10:18:53.57ID:83FCGJIu0
昔はちょまどさんは貧乳だったのですか?
2022/07/30(土) 09:24:21.97ID:Gq7vfC3O0
>>377
その昔ReadFileで16 MiBytes読めなかった思い出
419デフォルトの名無しさん (アウアウウー Sa09-G1eK)
垢版 |
2022/07/30(土) 09:58:01.85ID:paa5jUiAa
64KBの壁な
2022/07/30(土) 11:23:09.45ID:YI8isAMRM
スレの上の方でその内容を書いたら辛辣な言葉を投げかけられた
2022/07/30(土) 11:25:51.44ID:WggjO0SM0
>>420
64KBの壁な w
422デフォルトの名無しさん (アウアウウー Sa09-G1eK)
垢版 |
2022/07/30(土) 11:44:12.32ID:paa5jUiAa
これのことかω
>>83
2022/07/30(土) 15:42:48.41ID:cxvuT0ApM
この程度で辛辣とは
2022/07/30(土) 16:25:34.65ID:XjLs7eTw0
mac の A5の悲劇なんて32Kbなんだがのぅ
2022/07/30(土) 21:46:46.80ID:w6XZ/eyH0
質問が少なくなるとああ夏休みなんだなと感じる
2022/07/31(日) 02:09:12.35ID:usagdBtl0
Yuguiというのを初めて聞いたからググったけどうーんとなった
ちょまどは胸でけーと思ってたのに水着画像出したらそんなでもなくてあれ?って
427デフォルトの名無しさん (ワッチョイ 0d05-Og+R)
垢版 |
2022/08/01(月) 09:14:25.06ID:8QYJLp9l0
IPC通信をしたくて他所様のサイトをコピペしてプログラムの動作を見てみようと思ったのですが
System.Runtime.Remoting.RemotingException: '型 'IPCクライアントコンソール.SampleRemoteObject,
IPCクライアントコンソール, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' を読み込めません。'
とエラーが出てしまいます。以下プログラムのどこが問題でしょうか?
428427 (ワッチョイ 0d05-Og+R)
垢版 |
2022/08/01(月) 09:18:18.46ID:8QYJLp9l0
文字数制限にかかったのでプログラムを分けました。よろしくお願いします。
■サーバ
class Program{
static void Main(string[] args){
IpcServer server = new IpcServer();}
}
class IpcServer{
public SampleRemoteObject remoteObject;
public IpcServer(){
IpcServerChannel ipcChannel = new IpcServerChannel("ipcSample");// IPC Channel作成
ChannelServices.RegisterChannel(ipcChannel, true);// チャンネル登録
remoteObject = new SampleRemoteObject();// リモートオブジェクト生成
RemotingServices.Marshal(remoteObject, "test", typeof(SampleRemoteObject));
}
}
■クライアント
class Program{
static void Main(string[] args){
IpcClient client = new IpcClient();// クライアントオブジェクト生成
client.remoteObject.Command = Console.ReadLine();// 送信する文字列の入力
}
}
class IpcClient{
public SampleRemoteObject remoteObject;
public IpcClient(){
IpcClientChannel channel = new IpcClientChannel();// クライアントチャンネル生成
ChannelServices.RegisterChannel(channel, true);// チャンネル登録
remoteObject = Activator.GetObject(typeof(SampleRemoteObject),
"ipc://ipcSample/test") as SampleRemoteObject;// リモートオブジェクト取得
}}
■共通オブジェクト
public class SampleRemoteObject : MarshalByRefObject{public string Command { get; set; }}
2022/08/01(月) 09:42:13.16ID:IeJPEKz9M
IPC通信はもう使わないほうがいい
多分誰も使ってない

jsonとか投げたほうがまし
もうサポート切られるだろう
2022/08/01(月) 10:12:56.94ID:qGmq8aN9M
.NET Remortingは.NET5以降で廃止されたから今更使っちゃダメ
なおWCFも廃止され、MSの今の推奨はgRPC
2022/08/01(月) 13:13:50.40ID:gUPs6Ohv0
でもプリインは.NET Framework4.8でしょ?
2022/08/01(月) 14:09:10.88ID:9ms8u+Pj0
いまどき2029年とかまでサポートしてくれるんだもんな、偉いよMS
2022/08/01(月) 14:12:12.27ID:ix57TGyWM
>>431
5以降は実行環境に.NETをインストールする必要がなくなったから関係ない
アプリに.NETを同梱して配布するのが今のスタンダードであり、今後.NETの新バージョンがWindowsにプリインされることは恐らく無い
2022/08/01(月) 14:51:18.83ID:YHYFdRah0
でも5以降はすぐサポート切れちゃうじゃん
435デフォルトの名無しさん (ワッチョイ 5d01-kylC)
垢版 |
2022/08/01(月) 15:07:06.39ID:09AtLgAc0
どうでもいいから質問に答えてやれよ
俺は知識ないから無理
2022/08/01(月) 15:43:14.07ID:kNeknzrgd
3.5のようには4系は切れないんじゃないかな
始めからcoreしかない環境ならともかく
2022/08/01(月) 15:44:46.74ID:GQMzgwKzd
サポートは切れないだろうけど、近いうちにオプション扱いになるだろうね
2022/08/02(火) 05:24:33.21ID:dOTebwan0
namespaceと名前空間の名前が似てて初心者分かりづらくなってると思うんだけどどう思う?
普通に名前空間はライブラリ名とかでよくね?と思ってるんだが
2022/08/02(火) 07:21:26.29ID:k80TbHLa0
roadと道路は似てるね
2022/08/02(火) 08:18:52.40ID:sghojaj2r
そうどちらも~目的のた~めに~
2022/08/02(火) 09:13:26.29ID:dOTebwan0
今のVScってWinUI3で書かれてんのかな?
2022/08/02(火) 09:36:31.99ID:jfVGGafFM
VSCodeはElectron
VSCodeはMSスタック外のコミュニティから不信感を持たれないようにブランディングにかなり気を使ってるから、
一応クロスプラットフォーム対応だがWinファーストの印象を強く与えるWinUI採用はありえない
Flutterとかなら将来的にはあるかもね
2022/08/02(火) 10:33:29.51ID:dOTebwan0
>>442
へー道理でクソダサいと思った
2022/08/02(火) 11:02:31.17ID:Gd43XZqn0
VScodeいいよね、今はVSも良くなったけど
最近ではwinでは1番人気と言われても異論ないやろ
エンジニアの欲しい部分を攻めたいい製品だよ
2022/08/02(火) 11:10:07.77ID:aTV235290
C#だとVS一択でcodeは使用しないと思ってたんだけど使うの?
2022/08/02(火) 11:16:03.36ID:OztZOyOvM
C#でもWeb開発ならVSCodeで十分いける
最近はフロントエンドの比重が大きくなってるから、自分の場合はVSCodeに寄せたほうが開発効率が高い
2022/08/02(火) 11:20:10.68ID:aTV235290
フロントか!

なんか頭が硬かったかも
さんきゅ
2022/08/02(火) 11:23:59.08ID:rs6fnhcJ0
>>438
namespaceと名前空間って何か違うの?
2022/08/02(火) 11:32:28.03ID:dOTebwan0
>>448
そりゃ違うでしょ
2022/08/02(火) 11:40:30.28ID:C80vNjl9r
VSCodeはマルチスレッドではないから激重
2022/08/02(火) 12:31:34.28ID:7h3r7KZi0
>>432
3.5も切ってくれれば喜んで4.8に移行するのにと
未だに2.0がメインの俺社
2022/08/02(火) 12:47:10.72ID:5WShikIl0
今どき2.0はきつすぎるな・・・乙
2022/08/02(火) 13:46:27.19ID:d+m2jlTe0
>>449
え?
454デフォルトの名無しさん (ワッチョイ d68e-HyOH)
垢版 |
2022/08/02(火) 14:49:22.13ID:f8W0+U3I0
>>438
馬鹿?
2022/08/02(火) 15:06:09.69ID:Gd43XZqn0
どうでもいいけど無駄に煽るやつ増えたよな、夏休みか
2022/08/02(火) 16:19:25.27ID:rs6fnhcJ0
>>449
同じものだと思ってたんだけど、何が違うの?
2022/08/02(火) 17:11:29.89ID:clHk+QvDM
文字数が違うな
2022/08/02(火) 17:26:15.48ID:aTV235290
文脈で違いのあるケースはある
たとえば、namespace はキーワードだけど名前空間はキーワードじゃないとか

ただ今暴れてるやつはただのアホだろ
2022/08/02(火) 18:00:45.92ID:UKGz6HDN0
C#に限らず初心者板には必ず中身のない煽りカスが枠からシカトでok
2022/08/02(火) 22:55:25.35ID:fEaKkp4Yr
初心者だけどclassって1class1.csファイルで作ったほうがいいのかね?
今はmain.csに全部記入してるけど
2022/08/02(火) 23:09:08.14ID:UKGz6HDN0
その認識で問題ない
更にファイル名とクラス名を一致させとくとVSはファイル名変更したら自動でクラス名も変更してくれた気がする
462427 (ワッチョイ 8ee9-Og+R)
垢版 |
2022/08/02(火) 23:37:30.65ID:HIxaLOVl0
もうIPC通信は使わないんですね。
教えて貰ったgRPCを調べてみます。ありがとうございます。
2022/08/03(水) 07:11:42.49ID:oaEyiw1/r
>>461
なるほどサンクス
2022/08/03(水) 10:00:34.32ID:aXt/7uHrd
>>461
フォルダ階層とnamespaceも一致してないとだめなんじゃなかったっけ?
2022/08/03(水) 10:28:26.50ID:H0TN7wdQ0
namespaceだけ変えて試したけど自動で変更されたよ
仕様は知らんからまあ参考程度に
2022/08/03(水) 10:54:17.16ID:o11ILsU3d
>>465
おぁ、ありがとう。勘違いだったかな。申し訳ない
467デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 08:16:03.80ID:PgkbhFj60
Classの変数をMainクラスに持ってきたいのですがどうすればよいでしょうか。
https://imgur.com/k6aKv7a
468デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 08:19:51.47ID:PgkbhFj60
すみません。
上のplayListって変数を
https://imgur.com/1F0sI4K.jpeg
のコメントアウトしているplayListRight.ItemsSorceにぶち込みたいです。
あとplayListRight.ItemTempleteにも上のクラスのtempleteをブチコみたいです。
2022/08/05(金) 08:19:52.21ID:cUxq6qzs0
>>467
public
470デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 08:21:43.35ID:PgkbhFj60
すみません最初の画像jpegで貼れていなかったので貼りなおします。
https://imgur.com/k6aKv7a.jpeg
https://imgur.com/1F0sI4K.jpeg
2022/08/05(金) 08:23:52.62ID:PgkbhFj60
>>469
public string playList
ってやるとMainクラスでも使えるようになるのですか?
2022/08/05(金) 08:42:07.22ID:H/H3flpk0
とりあえず要望を満たすだけなら、PlayListViewCenterクラスにPlayListプロパティを作ればよさそうに見えるが
根本的にはPlayListView()でプレイリストの読み込みまでやってるのは詰め込み過ぎだろう
2022/08/05(金) 08:46:35.55ID:PgkbhFj60
>>472
最初Mainクラスのメソッドにしてたのですが長ったらしいなと感じてクラスにそのメソッド入れたのですがそのままMainクラスのメソッドとして入れておいたほうが無難でしょうか?
2022/08/05(金) 08:53:40.09ID:H/H3flpk0
>>473
一つのクラスであれもこれもやろうとしない
そのへんの考え方の詳細は単一責任の原則でググってくれ
2022/08/05(金) 08:56:48.47ID:PgkbhFj60
>>474
ありがとうございます、調べてみます
476デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 10:00:11.06ID:PgkbhFj60
プロパティを追加すると言っていましたがこのような形でよいのでしょうか?
PlayListViewメソッドのplayListをPlayListプロパティに入れる方法がわかりません、、、
477デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 10:01:02.95ID:PgkbhFj60
すみません。画像上げ忘れました。
https://imgur.com/hZ105MK.jpeg
2022/08/05(金) 12:38:36.41ID:RSiO7Ssf0
ぱっとみ誰かが作ったものをメンテしてるみたいだが、
せっかく綺麗なソースもこうやって素人にズタズタにされていくんよなぁ
2022/08/05(金) 12:56:56.63ID:H/H3flpk0
いくら初心者スレとはいえ、プロパティへの代入方法を聞かれるとは…

>>478
メンテってよりはどっかのサンプルを切り貼りしてるだけっぽくみえね?
2022/08/05(金) 13:47:33.34ID:hxnnat6YM
PlayListViewCenterとPlayListView()とplayListRightの関係性がよくわからん
依存関係が整理されてないとこのレベルでも簡単にスパゲッティ化するのね
2022/08/05(金) 14:01:15.91ID:+4dBSHs70
最初フォームにコントールを貼り付けていった。
ああ、コントロールの数が多くなってきたのでタブ化したい。
それでタブコントロールをフォームに貼り付けて以前のコントロールを
切り取ってタブに貼り付けてもだめでした。
簡単な設定変更でできるもんでしょうか?
482デフォルトの名無しさん (オイコラミネオ MMbd-m4/e)
垢版 |
2022/08/05(金) 14:53:00.30ID:mvNI8q0IM
プロパティは俺も最初よく分からんかったな
俺より先に入社してきてまだプロパティのgetじゃなくてgetter関数作ってる奴もいるけれど
2022/08/05(金) 15:10:35.53ID:PgkbhFj60
サンプル切り貼りしただけですね。
xamlのListViewにx:NameとしてplayListRightをいれていてそいつにアンドロイドからのファイルのフォルダー一覧を表示させたいってことなんですけど、、、
いろいろ試してみましたが無理そうです。無難にPlayListViewメソッドをMainClassにいれます、、、
484デフォルトの名無しさん (ワッチョイ 7a01-7LJf)
垢版 |
2022/08/05(金) 15:42:07.03ID:PgkbhFj60
どうやってPlayListプロパティにPlayListView関数のplayList変数を入れるとか全く検討がつかないのですがどうやれば良いのでしょうか?
2022/08/05(金) 15:46:42.03ID:ICqeCpci0
まず日本語を勉強します
2022/08/05(金) 15:51:27.56ID:PgkbhFj60
>>485
というと?
2022/08/05(金) 16:56:32.29ID:1Rrd8aoz0
public ObservableCollection<PlayFile> PlayList { get; private set; };

プロパティの宣言をこうしておいてPlayListViewの最後で

this.PlayList = playList;

を入れたら期待通りの結果にはなる
2022/08/05(金) 17:17:58.37ID:PgkbhFj60
>>487
できました。
ありがとうございます。
メソッド内でプロパティ名に変数を渡せばよいのですね。
2022/08/05(金) 17:55:56.37ID:aTGNTU2eM
な?WPF流行らない臭いするだろ?
2022/08/05(金) 18:11:42.31ID:PgkbhFj60
>>489
なぜですか?
2022/08/05(金) 19:41:14.95ID:T806aXM50
>>490
さっきやったやつ
誰でもできそう?
2022/08/05(金) 19:57:53.24ID:Ow3srsZsr
>>491
慣れたらいけるのでは?
2022/08/05(金) 21:03:37.37ID:kbVXsa8pM
View/ViewModel/Modelあたりの分離が出来てないのとWPFは関係なくね?
2022/08/05(金) 21:14:35.76ID:cUxq6qzs0
WPFは外側だけ使えばいい
495デフォルトの名無しさん (ワッチョイ faad-L0v6)
垢版 |
2022/08/05(金) 23:31:23.20ID:nKjrktLW0
外側て何?
2022/08/06(土) 06:43:47.00ID:YGqtJRNu0
>>495
UI側ってことでしょう
2022/08/06(土) 07:25:26.78ID:nHm0QuCiM
WPFのUI側でない部分とは?
2022/08/06(土) 07:44:04.39ID:d0E+uIxOM
2006年のものに流行りもクソもあるのか?
2022/08/06(土) 09:32:14.62ID:YGqtJRNu0
WinUIは流行るのか?
かっこいいけどなぁ
2022/08/06(土) 11:49:57.93ID:Mx8J9HCy0
最近まで知らなかったんだけど、
MessageQueue って Core 以降無くなったんだな。
4.8で提案しといて助かった。
https://docs.microsoft.com/ja-jp/dotnet/api/system.messaging.messagequeue?view=netframework-4.8
2022/08/06(土) 13:09:28.58ID:bZh5L3OZM
MSMQを念頭に置いているとはいえAMQPとかでも普通に実装できそうだからCoreに移植されても全然おかしくないだろうけど、戦略的な除外だろう
MS的にはAzure Service Busを推したいところだから代替はないかとMSに相談してきた客をAzureへ誘導できるし、
似たようなものをAWSとかでセルフホストできてしまう選択肢は積極的に潰しておきたかったんだろうね
502デフォルトの名無しさん (ワッチョイ 13ad-eDUT)
垢版 |
2022/08/06(土) 15:55:35.74ID:fi6gTDde0
>>499
WinformやWPF並みの完成度と、開発環境が整えられれば流行る可能性はある
今のWinUI3はまだそれらがない
2022/08/06(土) 19:42:37.30ID:B4aY99WN0
Visual Studioを使わずにテキストエディタで書いているのですが、
WebView2はどのように宣言すればいいのでしょう?
ネットで拾ったソースコードをそのまま使おうとすると、
System.ComponentModel.ISupportInitalizeが参照されていないアセンブリで定義されていますとか、
webView2はコンテキスト内に存在しませんといったエラーが出てしまいます。
using Microsoft.Web.WebView2.Core;でエラーは出ないので、
dllの参照は上手く行っているようなのですが。
2022/08/06(土) 19:53:35.54ID:h2EHbeov0
.NET Framework向けか.NET(Core)向けかWinFormsかWPFかも分からんけど
自分で解決できないならまだテキストエディタで済ます段階ではないので
素直にVS使おう
2022/08/06(土) 20:27:31.37ID:B4aY99WN0
>>504
使えない状況なのでテキストエディタで書いています。
2022/08/06(土) 20:48:39.60ID:B4aY99WN0
すみません、自己解決しました。
dllが足りなかっただけでした。
2022/08/07(日) 08:35:31.35ID:zuBhJhyh0
>>481
それでできるはずだと思うけど、どうだめだったの?
各コントロールの設定が消えてしまったのなら、そういうもの。
設定を消したくなければ、一旦フォームをぐわっと拡げて、
既存のコントロールとタブコントロールを同時に表示するようにして
ドラッグして移動させると設定は消えないけど、そういうことじゃない?
508デフォルトの名無しさん (ワッチョイ 69b1-qy/x)
垢版 |
2022/08/08(月) 10:38:51.65ID:ltHVcLml0
複数個所から参照されているクラスのインスタンスがあります。
このインスタンスへの参照を全てnullにする機能はC#にありますか?

もしあるようでしたら、方法を教えて頂けると助かります。
2022/08/08(月) 10:54:39.76ID:Zu2CvCE20
>>508
パッと思いつく限りだとclassでラップするっていう原始的方法くらいしか思い浮かばない
2022/08/08(月) 13:06:08.72ID:lyYbsRurM
>>508
なんでそんなことしたいの?
2022/08/08(月) 13:07:38.93ID:lyYbsRurM
弱参照使うか
オブザーバー使ってそれぞれ更新するかかな
他にもやり方あるだろうけど達成したい目的次第
2022/08/08(月) 19:52:41.64ID:DioK39uS0
>>507
下記がオブジェクト参照がオブジェクト インスタンスに設定されていませんとか出て
すぐにできないんだなとおもってユーザーコントロールにはっつけてやり直してました。
Controls[$"textBox{i}"].Text = sb.ToString();

エラーのところコメント化して動くかみるとああ、基本的にフォームに貼り付けたものひっぱってくるだけで動くんですね。
ありがとう。
2022/08/08(月) 20:09:42.36ID:9R7bGCkQM
>>512
まずそのゴミプログラム方法をやめろ
どこの誰がそんな糞みたいなやり方を教えたんだ?
-1万点だぞ
2022/08/10(水) 08:10:20.13ID:I7WycSNa0
Controls[$"textBox{i}"]ってのあかんの?
便利やなと思ってたけど
2022/08/10(水) 08:20:57.21ID:ekVbncrCd
設定より規約という言葉もあることだし、ちゃんと管理できてるならいいと思うよ
手で配列作ったりするのはミスの原因になるからむしろダメ
2022/08/10(水) 18:17:13.30ID:8SlAES4I0
この場合はデータバインディングすべきでしょ
2022/08/11(木) 09:46:17.83ID:bzSgGXTd0
名前でひっぱって来るって相当な富豪プログラミングだな
恥かしい名前付けてたらばれるやん
2022/08/11(木) 10:55:14.05ID:L4K0queg0
そういやjavaだとクラス名の文字列からクラス生成できたっけな
2022/08/11(木) 11:00:56.57ID:GF5pk2No0
名前でアクセスするようにしてると、リファクタリングした時に死ぬ
2022/08/11(木) 11:19:42.29ID:vAulrAya0
>>518
C#だって出来るよ
2022/08/11(木) 11:23:07.46ID:bzSgGXTd0
できるできないじゃない
やるかやられるかだといつも言ってるだろ
522デフォルトの名無しさん (アウアウウー Sa55-eDUT)
垢版 |
2022/08/11(木) 12:09:59.60ID:iYrezZwUa
いや、挿すか挿されるかだ
2022/08/11(木) 20:59:48.25ID:lZmFgICj0
でぃぺんだんしーいんじぇくしょん!!
2022/08/12(金) 13:14:48.49ID:QghzorUzM
プログラミング言語C#の欠点
https://mi.5ch.net/test/read.cgi/news4vip/1660273188/
立てました!
525デフォルトの名無しさん (オッペケ Sr5d-FBk5)
垢版 |
2022/08/12(金) 14:24:33.30ID:k3dld6/ur
>>524
ないよ?
526デフォルトの名無しさん (オッペケ Sr5d-FBk5)
垢版 |
2022/08/12(金) 14:25:12.55ID:k3dld6/ur
これライブラリ化したいんですが可能ですかね?
https://qiita.com/furugen/items/74bbdfa126d7cc101a0c
527デフォルトの名無しさん (オッペケ Sr5d-4pii)
垢版 |
2022/08/12(金) 20:49:41.62ID:W9k2A9pZr
複数のプロジェクトにわたるクラスをライブラリ化って厳しいんですかね?
2022/08/12(金) 22:01:15.30ID:nwtzDlak0
そんなデカイクラスってあんの?
2022/08/12(金) 23:07:18.85ID:5/2owLeW0
複数のプロジェクトで使用するクラスだからこそライブラリにするんじゃないのか?
2022/08/12(金) 23:13:47.26ID:8yQHi8YE0
ライブラリの作り方が判らんって話?
・クラスライブラリのプロジェクト作る
・プロジェクトにライブラリにしたいソースぶち込む
・他プロジェクトからDLL、またはライブラリのプロジェクトを参照する
みたいな感じ
2022/08/12(金) 23:32:18.36ID:nwtzDlak0
目的は何なん?
ライブラリ化なんかして複数プロジェクトなんかで呼んじゃうと
影響範囲もそれなりだからね
あーソースコピってビルドしておきゃよかったなんてよくある話だよ
2022/08/13(土) 00:10:08.14ID:bvO6Jh/U0
複数のDLLで構成されたライブラリになるだけで普通に作れると思うけど
2022/08/13(土) 01:03:16.57ID:X5MwWX870
>>531
コピっていい事なんて殆どないだろ
そういう感じのソースがそこら中のプロジェクトに散らばって亜種だらけになった現場悲惨だったぞ
2022/08/13(土) 01:18:32.52ID:w1Rw8Hpr0
レベルの低い現場あるあるやね
コピーしちゃえば少なくとも今動いてるコードは壊れないからね
ただ>>533の言う通り亜種だらけになって共通不良の対策で地獄を見るんだけどね
535デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 08:14:45.82ID:qT9RB751r
xamarin用のクラスなんだけどPLCっていう共通部分のクラスとiOS,Android用のクラスがいる
これ使うときって各プラットフォームにそれぞれのDLLファイル入れて参照しとけば良いって感じなんかな?
2022/08/13(土) 09:36:31.24ID:dwJuX57c0
https://clown.cube-soft.jp/entry/20110419/cs_add_links

こんな方法で
537デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 09:59:42.33ID:qT9RB751r
>>536
ライブラリを作るよりもリンクのほうがいいんですかね?
2022/08/13(土) 10:01:15.56ID:X5MwWX870
可搬性悪くなるからやめたほうがいい
素直にライブラリプロジェクト作れ
539デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:09:16.92ID:qT9RB751r
Caseの中で作った変数を他のCaseで使ったりするにはどうすれば良いでしょうか?
今xamarinのドラッグ操作で最初にタップした位置を取得しドラッグ中に位置を取得したとき最初のタップした位置と現在のドラッグしてる位置を引くとタップした位置からの変化量が出ると言うようなプログラミングを組んでます
Switch
Case1 タップしたとき
A=タップしたときの位置
break
Case2 ドラッグしたとき
B=ドラッグした際の位置
C=A-B
break
としてます
A,B,C,の変数は別クラスでプロパティ化してます
540デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:12:52.95ID:qT9RB751r
>>538
とりあえずライブラリ化してみます
iOSやAndroidで必要なクラスは別でライブラリ名.iOSやライブラリ名.Androidで別で作って各プラットフォームにそのdllファイルを参照すれば良いですかね?
2022/08/13(土) 10:33:02.18ID:dwJuX57c0
リンクでやっといて困ったらライブラリ作れよ
バージョン毎の機能を管理できるならライブラリだけど
今の用途はリンクで十分なんだろ?
542デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:34:45.76ID:qT9RB751r
>>541
リンクでいいのか
2022/08/13(土) 10:40:28.03ID:dwJuX57c0
>>542
置かれてる状況次第
その環境でライブラリのバージョン管理をしない文化=常に最新をとってこいと言われるならリンクのがいいし
バージョンいくつはねーって仲間内で共有できる文化があるならライブラリにしなきゃあかんし

1人開発ではライブラリのメリットはほぼないね
544デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:43:05.34ID:qT9RB751r
>>543
個人開発は利点ないんですねサンクス
リンクにします
545デフォルトの名無しさん (ワッチョイ 8101-nxGK)
垢版 |
2022/08/13(土) 10:51:27.29ID:iS8x5SUl0
ソースファイルをリンクするってことは最新のソースコピペってことだろうか
ライブラリを修正したら参照してるプロジェクト全部ビルドする必要あるってことだよね…
546デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:55:12.82ID:qT9RB751r
ところでCase内の変数を呼び出すことってできるのでしょうか?
>>539
の方法でやると何故かタップしたときのAはCase1ではきちんと動くのですが
Case2内のAは0のままです
2022/08/13(土) 10:56:50.74ID:X5MwWX870
リンクでやるとパス変わっただけで使えなくなるからなぁ
絶対名前変えたり動かしたりしないってのなら大丈夫だろうけど
本当に個人開発でしか使えない
2022/08/13(土) 11:17:02.76ID:WN46//k40
質問の意図もイマイチ分からんしどんな実装しているのか分からんけど
過去の結果はどこかで保存してなきゃそりゃ参照できる訳無いよなw
2022/08/13(土) 11:23:08.96ID:bvO6Jh/U0
>>546
プロパティのコピーをいじくり回してるに一票
タップしたタイミングで正常な座標がちゃんと別クラスのプロパティAに格納されているかまずは確認しろ
550デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 11:26:22.92ID:qT9RB751r
>>548
case内で保存した変数を使おうとしたら未割り当てのローカル変数が使用されましたになって使えないのですが…
551デフォルトの名無しさん (ワッチョイ e95f-5Ix7)
垢版 |
2022/08/13(土) 11:27:48.39ID:NjwDb13X0
>>539
そもそもswitchの使い方がおかしい
・最初にタップした位置の取得
・ドラッグ中の位置の取得
・タップした位置からの変化量の算出
それぞれ別関数(イベントハンドラ)でやるべき
552デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 11:29:20.07ID:qT9RB751r
>>549
Case1内でAの値を表示するプログラムを作るとちゃんとAの値が表示されます
これをCase2に持ち込むとプロパティなら0になり、変数なら未割り当てのローカル変数が使用されましたになります
553デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 11:32:53.56ID:qT9RB751r
>>551
なるほどSwitchがおかしかったのかもしれないですね
この最初の項目をやろうとしてたのでSwitchで良いのかと思ってました
ただそうなるとタッチアクションイベントの中にイベントハンドラーを追加することになるのでしょうか?
https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/user-interface/graphics/skiasharp/transforms/touch
2022/08/13(土) 11:37:06.17ID:bvO6Jh/U0
>>552
Case1内でAの値じゃなくプロパティの値を表示しろ
てか他クラスのプロパティならhoge.Aって書くよな?
なんでhoge.省略してんの?
2022/08/13(土) 11:42:23.15ID:WN46//k40
>>550
まぁ、何で失敗しているかは何となく分かるw
どこかにその部分のコードを上げてくれないと正確には指摘出来ないが
どうしても解決出来ないなら別のクラスにpublic static クラス名 Aとかで宣言して
クラス名.Aとかでやれば嫌でも保存出来るよw
2022/08/13(土) 11:43:05.17ID:C5QtLQsM0
>>533
共通化することに意義がある場合とない場合両方あると思うがな。
単に似たようなものを使いまわしたいだけで将来的に同じ仕様であり続ける必要がない場合とか。
557デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 11:43:37.18ID:qT9RB751r
>>554
hoge.Aって書いてますよ
Case1内でもhoge.Aの値を表示するようにするとちゃんとその値が表示されました
2022/08/13(土) 11:55:02.73ID:bvO6Jh/U0
じゃあここに書いてないタイミングでhoge.Aが0に書き換わる処理が入ってるか
そもそもhogeが構造体でコピーされてましたとかじゃね
なんにせよ現時点の情報だけじゃ断定しようがない
559デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 11:56:41.40ID:qT9RB751r
>>555
すみませんお願いします
実装部
https://i.imgur.com/mqtZ447.png
プロパティのクラス

https://i.imgur.com/ipz7tau.png
プロパティのクラスはdsと省略してます
560デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 12:02:15.96ID:qT9RB751r
すみませんCase2でds.prAngleを使ってる部分が抜け落ちてました
色々試してたので

これをやってもCase2内のds.prAngleは0のままです

https://i.imgur.com/rXQY8ol.png
2022/08/13(土) 12:04:44.45ID:bvO6Jh/U0
そりゃタッチアクション発生するたびにDiscScratch生成してたらそうなるわな
2022/08/13(土) 12:11:18.67ID:bvO6Jh/U0
あとどうでもいいけどatan2の引数逆じゃね
563デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 12:13:44.59ID:qT9RB751r
>>561
つまりクラスの呼び出しを外に出せばよかったってことですか
ありがとうございます
2022/08/13(土) 13:19:26.88ID:jaSH9WUOM
立てました!

C#とかいうプログラミング初心者におすすめな言語
https://mi.5ch.net/test/read.cgi/news4vip/1660364216/
2022/08/13(土) 13:48:41.51ID:Wr1SDa4J0
なんでこんなスレ立てたの?
アホなの?
2022/08/13(土) 15:25:12.93ID:VIw1B6q40
>>564
糞スレ立てる才能あるね
567デフォルトの名無しさん (スッップ Sd62-BYM4)
垢版 |
2022/08/13(土) 15:44:23.35ID:XdL0YD5Xd
こういうのがcocoaを作っていたのだろうな
568デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 16:28:55.37ID:qT9RB751r
いや初心者スレだろ
569デフォルトの名無しさん (スッップ Sd62-BYM4)
垢版 |
2022/08/13(土) 16:49:38.52ID:XdL0YD5Xd
初心者にしても酷すぎるし、初心者だから何しても良いわけでない
そもそもしつこい
570デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 16:52:23.44ID:qT9RB751r
なるほど
ではこのあたりのことについて書いてある教本でおすすめとかありますか?
2022/08/13(土) 17:46:23.05ID:R59fh56/a
>>564
今日立てて今日過去ログ入りしてるの草
572デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 17:58:17.85ID:qT9RB751r
>>571
それニュー速VIP板だよ
573デフォルトの名無しさん (スッップ Sd62-TfZ8)
垢版 |
2022/08/13(土) 18:51:24.33ID:ydraF3Uid
>>570
まずはここから始めてみたら?
https://sho.jp/sho1/
574デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 19:03:40.70ID:qT9RB751r
>>573
このサイト作るところからってことですかね
html学ばないといけない
2022/08/13(土) 20:47:47.26ID:Wr1SDa4J0
そうだね、頑張ってね
576デフォルトの名無しさん (ワッチョイ fd54-AIpi)
垢版 |
2022/08/16(火) 02:09:22.53ID:ncwK6nbw0
WinFormsのScrollBar.Scrollイベントでスクロールが実行されたことは拾えるんですが、
スクロール開始直前のスクロール位置によって処理を変えたいんですが、「今からScrollするよ」っていうイベントってどうやって拾えるんでしょうか?
577デフォルトの名無しさん (ワッチョイ aebb-j00w)
垢版 |
2022/08/16(火) 04:49:11.62ID:RcKGtcJQ0
そんなのスクロールする人に聞くしかねえだろ
578デフォルトの名無しさん (ワッチョイ c2ad-ur7n)
垢版 |
2022/08/16(火) 07:03:00.12ID:1ATBrMAd0
哲学だな
2022/08/16(火) 07:34:13.60ID:/V/I4jay0
>>576
そんなイベントが拾えるわけがないのでスクロールの度にスクロール位置を記録しておいてそれをスクロール前の位置としろ
2022/08/16(火) 08:57:41.87ID:48MyGnzX0
スクロールバーにどうにかマウスオーバーなイベントつけて、
タッチパッドやマウスの真ん中ボタンにセンサーつけて、
カーソルボタンやエンドボタンとかもイベント挟んで、、、
2022/08/16(火) 12:43:32.61ID:pCgVxBpx0
ScrollEventArgsのOldValueでよくね?
2022/08/16(火) 12:43:35.89ID:yx28uGuU0
WinForms触らないから知らないんだけどScrollBarにdelta的なプロパティ無いの?
2022/08/16(火) 13:08:58.43ID:JSsOGCvC0
こういう人が言っている事って意味不明過ぎるんだよねw
スクロール開始直前ってどういうタイミングなんだよw
動かなきゃそもそも分からんだろw
2022/08/16(火) 13:39:41.49ID:yMgzlhes0
Window.ClosingイベントとWindow.Closedイベントみたいなのもあるから気持ちは分からんでもない
2022/08/16(火) 13:50:05.96ID:HGa5/pjK0
つーかScrollBarクラスのドキュメントのイベント一通り読めば、どういうイベントあるか判るだろうに
2022/08/16(火) 14:24:34.33ID:7uG5vyWwr
>>576
Scrollイベント内でScrollBar.Valueで拾えそうだけどどう?
2022/08/16(火) 14:59:50.26ID:h4WXO5UsH
ASP.NET Core MVCのモデルバインドについて質問です
スキャフォールディングでコントローラーとビューを自動生成しています。
生成されたコントローラーを見るとバインドするプロパティをBindAttributeを使って文字列で指定しているようなのですが、Razor PagesのBindPropertiesAttributeのようにもっとスマートに指定する方法は無いのでしょうか
2022/08/16(火) 17:31:58.10ID:Vn26Os4DM
>>576
具体的にやりたいことを書けばいいのに

スクロールのバーが下の方にあるときにスクロールを始めると
猫のアニメーション
上の方にあるときは
犬のアニメーション
を始めたいです

どうやったらいいでしょうか?
的な?
589デフォルトの名無しさん (スッップ Sd62-BYM4)
垢版 |
2022/08/16(火) 18:01:38.04ID:3rkJ3g/fd
馬鹿は発想からして馬鹿だから馬鹿なんだよ
2022/08/16(火) 23:20:54.53ID:/ezBHCexM
UIフレームワークによっては
自作しなくても最初から「いまからスクロールはじまるよ~」ってイベントがあったりするんだよ
2022/08/16(火) 23:28:59.04ID:W1lBoNLVa
スクロール関連のWindowsメッセージでは無理だな
2022/08/17(水) 12:54:34.71ID:+n3t412SM
>>591
自分でスクロールの状態管理をして
状態に応じたイベントを発火すればいい
2022/08/17(水) 15:28:27.51ID:2jvvOB2A0
スクロール開始の定義って難しいんだよね
▽ボタン連打してさらに途中からボタン押しっぱなしにしたとき
一体どのタイミングが開始なのか、とか
つまみのドラッグだけならScrollEventArgsのTypeを見ればいいんだけど
2022/08/17(水) 22:34:12.20ID:6uyBD2Rd0
keyはno->down->releaseの瞬間?
2022/08/17(水) 22:39:27.58ID:ie3TvznI0
>>593
トラッキング、ホイール、PageUpDownとかもあるしな
自前できちんとやろうとすると面倒くさそう
2022/08/18(木) 00:14:15.59ID:UjnBGYqSH
>>587ですが自己解決
MS Docsのチュートリアルに詳しく書いてありました
2022/08/20(土) 12:18:11.21ID:JRsnkQ7T0
最近、stringのnullチェックがうるさくなったなぁ
Visual Studioで警告出まくる
nullの扱いなんてプログラマの裁量()に任せてほしいよな
2022/08/20(土) 12:38:30.34ID:/egiRiEF0
警告抑止すりゃ裁量任せにできるじゃん
2022/08/20(土) 12:38:51.00ID:5pzjXFwEH
csproj開いてnullable enableを消すと静かになるよ
2022/08/20(土) 17:34:45.68ID:/mZJmGpQd
>>597
任されてるやろ
2022/08/20(土) 17:58:55.36ID:yAwI9ZI30
3人も内容的に同じことを言わなくていい
2022/08/20(土) 18:41:28.80ID:4MiuAY+ua
警告抑止とnullable disableは根本的に違う対処法だぞ
2022/08/22(月) 23:14:10.64ID:hlW9Bqv4M
hosyu
604デフォルトの名無しさん (ワッチョイ 1f68-cKYf)
垢版 |
2022/08/23(火) 06:39:34.65ID:MDljb5y+0
ASPやWPFでC#でアプリ作ろうと思ったらやっぱりHTMLなど知識は必要なんでしょうか...
605デフォルトの名無しさん (ワッチョイ 7fad-8SLj)
垢版 |
2022/08/23(火) 06:48:22.61ID:B9nWN5M80
>>604
WPFはHTMLの知識は必要ないよ
ASPは必要だけど、始める分には知らなくてもいい
606デフォルトの名無しさん (ワッチョイ 7f24-W8rp)
垢版 |
2022/08/24(水) 17:20:41.85ID:nmRyLlKO0
割と現実的なプログラミングランキグンでC#は4位
https://gigazine.net/news/20220824-top-programming-languages-2022/
2022/08/24(水) 17:33:02.59ID:bGyUAV3XM
C#は制御系ではまあまあ人気あるから、ハード寄りのIEEEの調査では高く出やすいだろうね
2022/08/24(水) 17:36:59.02ID:kB0Adp7j0
C#が上位にいるのはUnityのお陰じゃないかと
ASP.NETとかMS系の仕事だと今でも使っているのだろうけど
2022/08/24(水) 17:59:26.05ID:rQISugU90
>>606
SQLが1位ってw
2022/08/24(水) 18:27:37.05ID:H1OtPdwm0
まあ今時サーバーでもクライアントでもデータベース使ってるのは珍しくないから必然的にSQLの順位は上がるわな
HTML/CSS もそうだけどプログラム言語の範疇に入れるのはどうかと思うが
2022/08/24(水) 18:29:52.50ID:nmRyLlKO0
>>609>>610
言いたいことは分かるがそれを言ったらPythonの1位も怪しくなるからな
研究職とか事務職を合わせた上での1位だろうし
2022/08/24(水) 18:44:14.65ID:H1OtPdwm0
>>611
> 研究職とか事務職を合わせた上での1位だろうし
意味わからん、それは別におかしくないだろ
2022/08/24(水) 18:55:55.63ID:TNeOivRw0
C#って制御に向いてんだ・・ほんと?
2022/08/24(水) 19:02:09.54ID:SnHhX9hKa
何にでも向いてるがWindowsアプリを作るならC#が最適解だからWindowsで制御するなら必然的にC#が第一候補だな
2022/08/24(水) 19:19:04.50ID:CJQsusDk0
>>613
プログラミングに不慣れな電気回路屋さんが検証用のアプリをWinFormsで頑張って作ってたりするよ
WindowsでGUIアプリを比較的お手軽に作れるのが受けてるだけで、特別制御向きってことはないかな
市販のデジタルI/OデバイスにC#のライブラリが付属してたりとかはあるけど
2022/08/24(水) 19:24:24.81ID:H1OtPdwm0
>>613
制御系で一括りに語ってる人はあまり良くわかってない人だから無視していいかと
2022/08/24(水) 19:27:18.92ID:qPhtrjAJ0
int型a, b, cをフィールドに持つ構造体の配列が与えられた時、
int型配列に直接変換できるLINQメソッドはありますか?
例として要素数4の上記配列が与えられた場合、要素数12のint配列に変換したい。
([a, b, c, a, b, c, a, b, c, a, b, c]てな感じ)
2022/08/24(水) 19:54:41.10ID:nmRyLlKO0
>>617
[StructLayout(LayoutKind.Sequential)] struct A { public int a, b, c; }
var arr = new A[4];
var integers = MemoryMarshal.CreateSpan(ref arr[0].a, arr.Length * sizeof(A) / sizeof(int));
2022/08/24(水) 20:02:37.98ID:nmRyLlKO0
そういえばPack = 4もつけないと64bitだとズレるかもしれない
[StructLayout(LayoutKind.Sequential, Pack = 4)]
LINQでは無理でunsafeな方法しかない
2022/08/24(水) 20:12:22.20ID:qPhtrjAJ0
後出しで申し訳ないんですが、変換するフィールドを(順番も)指定できるとありがたいです。
([a, c, b, a, c, b, a, c, b, a, c, b]とか[c, a, c, a, c, a, c, a]みたいに)
.Select(x => new int[]{x.a, x.c})的な書き方が出来ると理想ですが流石に無いですかね。
2022/08/24(水) 20:15:59.32ID:nmRyLlKO0
そういえばLinqで普通に出来そうだな
Linq使わない統一連合教徒だから俺には答えられないが
2022/08/24(水) 20:16:01.84ID:iNTQq2dx0
array.SelectMany(x => new[] { x.a, x.c }).ToArray();
でいいんじゃね
2022/08/24(水) 20:30:34.31ID:qPhtrjAJ0
>>622
まさにそれです!
回答くださった方々どうもありがとうございます。
これで行数を1行減らすことができます。
624デフォルトの名無しさん (スップ Sd9f-iKtP)
垢版 |
2022/08/24(水) 21:36:20.50ID:0l93CVPkd
こんなことをここで聞かないとわからないような奴は分かりやすいコードを書けよ
自分の力で考えられないようなコードを書くな
2022/08/25(木) 00:59:42.03ID:vPMqjAT50
最初からLINQでって言ってるのにトンチンカンな解答してる奴もいるし、動物園レベルだなw
2022/08/25(木) 02:55:36.04ID:7cFZJz/G0
そのケースでLINQを使うのがそもそも間違い
2022/08/25(木) 07:54:14.97ID:S/wpzj9c0
>>626
なんでよ?
LINQが最適解じゃん
2022/08/25(木) 08:13:42.56ID:ADCzm4mL0
>>622みたいなのって元の配列の順序通りに出るの保証されてるのだっけ?
2022/08/25(木) 08:13:52.19ID:7cFZJz/G0
最初の質問は、「int型配列に直接変換」だからな
それはLINQでは出来ない(コピーが発生する)ので >>618 の時点では回答は間違ってないんだよ
>>620 で後付けで順番指定とか言い出したから、結果的にLINQで良くなっただけ
630デフォルトの名無しさん (アウアウウー Sa63-8SLj)
垢版 |
2022/08/25(木) 08:40:31.55ID:8gLSla0ra
>>613
GC言語だから向いてはいない
が、生産性が高いから、ある程度の遅延が許される案件なら悪くない
2022/08/25(木) 09:01:18.64ID:Kj4JFaopa
>>628
保証されてる
2022/08/25(木) 09:02:50.00ID:Kj4JFaopa
>>629
「配列に変換する」だから間違ってるぞ
2022/08/25(木) 09:13:18.48ID:Kj4JFaopa
>>630
GCはメモリが不足しないと発生しないからメモリを大量に使わないなら大丈夫
クラスの代わりに構造体を使うなりGC.Collectを適切な位置に挟むなりして抑制することもできる
今時メモリが不足することもないけどあってもこれで大概どうにかなるな
2022/08/25(木) 09:17:03.96ID:lqL0IkJn0
>>629
まぁ最初はフィールド順固定みたいな雰囲気だったから「なら解釈変えるだけで良くね?」と思ってああ答えたがその都度順序指定したいなら無理だったな
2022/08/25(木) 09:28:28.80ID:lqL0IkJn0
SelectManyでの連結で1要素毎に不要なゴミが発生するのは教義的に許されないので超ハイパフォーマンス厨二バージョン作ってみたぜ
fixed (A* p = &arr[0]) for (A* iter = p, end = iter + arr.Length; iter != end; ++iter) Sse2.Store((int*)iter, Sse2.Shuffle(Sse41.LoadDquVector128((int*)iter), 0b11011000/*a,c,b*/)); //store先を新規配列にするなりご自由に
636デフォルトの名無しさん (ブーイモ MM0f-EEuy)
垢版 |
2022/08/25(木) 10:10:36.18ID:0VDsE7q7M
ウザっ
2022/08/25(木) 10:39:28.93ID:Kj4JFaopa
>>635
そのゴミが中でnewされてる配列のことならスタックにそのサイズのメモリが確保されてるだけだから次のループで消えてるぞ
2022/08/25(木) 10:47:17.28ID:PVmAxbmb0
メモリ操作をオプティマイズしても速度は大して改善しない
こんな無駄なことに知恵を絞るより表示とディスクI/Oと通信を如何に減らすかを検討するべきだね
2022/08/25(木) 10:55:45.96ID:EagxtJ7z0
>>637
LINQは最新.NETでも相変わらずアロケーション酷いから毎度ヒープにnewされてる
スタックだと呼び出し元関数にnew[] { x.a, x.c }を渡せないからね
2022/08/25(木) 11:08:32.96ID:Kj4JFaopa
>>639
ほんとか?
SelectManyもそこから呼び出されるラムダ式も呼び出し元に返すのはIEnumerator<int>なのに配列保持する必要ないだろ
2022/08/25(木) 11:10:27.44ID:Kj4JFaopa
.NETの最適化は中間言語実行時にされるから確かめるのはなかなか難しいけど
2022/08/25(木) 12:11:41.01ID:gHMRW/FFM
C#では普通に配列をNewするとヒープ使う
アロケーション抑えるためにようやく
ArrayPool, stackalloc, Span<T>等が整備されてきた
2022/08/25(木) 17:08:32.19ID:lqL0IkJnH
>>640
IEnumerator<int>なんだから配列保持しなくてもいいけど保持してもいい
実装はこちらに任せられてて上記のコードだと配列を選択してる訳だからそうなる
yield利用したら配列は必要なくなるけどイテレーター生成で結局アロケーションかかるのは有名な話なのでフィールド数が少ないなら配列生成したほうがマシではある

最近のC#開発陣の方向性からしたら効率的なコードに変換してくれそうなもんだけどLINQは大昔の物なのでそんな最適化はかからない
2022/08/25(木) 17:21:07.67ID:f1MDGZNHM
いや、配列である必要はないがどんな実装をしようと必ずヒープアロケーションは発生する
仮に構造体を使って実装したとしても IEnumerable<T> にキャストした時点でボックス化が発生するからな
645デフォルトの名無しさん (ワッチョイ 7f01-knfX)
垢版 |
2022/08/26(金) 22:34:55.33ID:+ZJU99dd0
>>606
すまん今更だがこの記事C#をC言語の仲間だと思ってないか?

Spectrum(IEEE会員の好み)ランキングで1位に輝いたのはPythonで、2位のCが僅差で続いています。Cを含むC言語は全体的に人気が高く、Cと3位のC++、4位のC#を足すとPythonを大きく上回っています。
2022/08/26(金) 23:08:53.56ID:294eWRoi0
> 5位のJavaと7位のJavaScriptも同様に人気があり
なんて書くようなライターだしな
言語名で判断してるのがよくわかるw
2022/08/26(金) 23:36:19.03ID:9k0mt3Rf0
人気があるという意味で一括りにしたと好意的に捉えても
「Cを含むC言語」は謎すぎるな…C#も足すな

GIGAZINEクオリティと思ったら、原文からしてそんなんだった
2022/08/26(金) 23:47:42.79ID:294eWRoi0
>>647
原文ってどこにある?
649デフォルトの名無しさん (ワッチョイ 3d5f-yNcK)
垢版 |
2022/08/27(土) 01:10:44.71ID:e8NuVESr0
Windowsのデスクトップソフトを作りたくてC#の勉強をはじめたばかりです。
教えて下さい。

私は大昔、学校でVisualBasic6というのをさわったことがあるのですが、記憶では
フォームの作成やその上にボタンを作って設置するのは、ぜんぶマウスだけでできて、
まさに「Visual」だったんですが、今はまた逆行してしまい、フォームひとつ作るのもぜんぶ
文字を書かなくてはならなくなったんでしょうか?VisualStudioというソフトをインストールしたのですが、
ぜんぜんVisualではないみたいなんですが。画面が黒くできたりしてかっこよくなってるから
そういう意味でVisualが凝ってるということなんでしょうか?

もしかしてインストールするものが間違ってるのか、C#にもいろいろな種類があるのか、とまどっています。

よろしくお願いいたします。
2022/08/27(土) 01:18:39.44ID:y0QTOZ/b0
ポトペタがやりたければ「Windows フォーム」でプロジェクトを作成してください
2022/08/27(土) 01:23:03.72ID:Q6RZ93Vy0
>>649
VisualStudioであってるけどプロジェクト作成時のテンプレートでWinForms(.NET Framework)選んだ?
コンソールアプリケーションで開始するとデフォルトではGUIプログラミングはできないよ
2022/08/27(土) 01:26:41.51ID:gUeYozmW0
まぁVCはどこがVisualだと思わなくもない
2022/08/27(土) 01:27:14.60ID:4dbci6Zp0
https://youtu.be/9Rcw9_KaqlI?t=163
654デフォルトの名無しさん (ワッチョイ 3d5f-yNcK)
垢版 |
2022/08/27(土) 03:02:22.87ID:e8NuVESr0
>>650-653
みなさま、ご親切にありがとうございます!!
プロジェクトの作成からやり直したらできたみたいです!

もう一つだけ教えて下さい。
私はこのたびの勉強開始にあたって、独習C#第五版というのを購入しました。
最新だとアマゾンに出ていたからです。C#が2月頃にバージョンアップしたそうで、その最新版に対応している本は
まだ少ないとのことでこれを選びました。

教えていただきたいのですが、明日また大きい書店に行って、Visualっぽくできるだけマウスでwindowsソフトを作る
参考になるような書籍を買ってきたいのですが、去年以前の刊行のものでもだいじょうぶでしょうか?
私のような初心者なら、最新バージョンに対応した本でなくても問題ないといいのですが。いかがでしょうか?
655デフォルトの名無しさん (スップ Sd82-GCvl)
垢版 |
2022/08/27(土) 03:15:48.15ID:Hkav7AuSd
頭悪過ぎ
2022/08/27(土) 08:20:07.20ID:hkhVjD4na
>>654
Winformsなんて古い技術の新しい書籍なんか探しても無いんじゃね
657デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/08/27(土) 08:21:41.34ID:kSqAjulD0
>>654
だいたい機能拡張だからその本に書いてあることが使えないってのは無い
2022/08/27(土) 08:24:05.73ID:y0QTOZ/b0
nullableの設定だけ気を付けないといけないかもな
2022/08/27(土) 09:30:50.42ID:1ZPd3z3i0
>>656
逆に新刊はWinformsの書籍ばかり
2022/08/27(土) 09:32:08.22ID:DLOMVHR6M
>>654
まず図書館に行って見よう
そこに希望する本があるかもしれないから
2022/08/27(土) 09:36:36.17ID:DLOMVHR6M
.net6用のwinformsデザイナがいまだにクソですぐ落ちる
2022/08/27(土) 09:46:14.67ID:iGZkY2M60
.Net6のWinFormsデザイナで
カスタムコントロールを追加するとエラーが出るんですが
2022/08/27(土) 09:51:32.24ID:M3lVB/2V0
.NET5以降のフォームデザイナは作り直された奴で全然枯れてないからな
WinFormsやるなら.NET Framework安定だと思う
2022/08/27(土) 10:29:31.63ID:4Qb5g2XJ0
言うほど新刊多いか?
2022/08/27(土) 12:03:02.31ID:OJIqOhIHa
>>664
少なくとも年に1冊は出版されてる
2022/08/27(土) 12:15:48.73ID:4Qb5g2XJ0
お、おう
2022/08/27(土) 12:27:15.20ID:QSsyAny8M
interface経由で継承先のstaticメソッドを呼び出したいのですが何か方法はありますか?
用途としては、インスタンスがnullの場合等に継承先のデフォルト値を呼び出す、というものです。

public interface I{
static int Num {get;}
}
public class A : I{
public static int Num => 1234;
}
public class B : I{
public static int Num => 5678;
}
public class Sample{
public void DoSomething(I hoge){
if(hoge is null) Console.WriteLine(I.Num); // 1234 or 5678 を表示したい
}
}

C#11のinterfaceにstatic abstract、static virtualという機能があり
試してみましたがそれらの機能では実現出来ませんでした。
また、ループ中での処理を想定しているため、リフレクションは可能な限り避けたいです。
2022/08/27(土) 12:31:54.39ID:e8NuVESr0
皆様ありがとうございます。

図書館、書店とはしごしてみます。
2022/08/27(土) 12:32:43.82ID:F0S9Qfv1M
C#11触ってないから憶測で書くけど
public void DoSomething<T>(T hoge) where T : I {
にしたらうまくいきそうな気がする
2022/08/27(土) 12:34:00.79ID:ML5GGTeqM
>>667
nullなのに継承先もクソもない
コードありきではなく、何の情報に基づいてどのような結果が欲しいのか、自分の頭で仕様を整理せよ
2022/08/27(土) 12:40:08.25ID:y0QTOZ/b0
>>667
staticやめればいいのでは
何かできない理由がおありで?
2022/08/27(土) 12:58:36.79ID:Zcnrje7aa
こういうの書いてるのだいたいUnityやってるやつというイメージ
2022/08/27(土) 13:15:46.23ID:QSsyAny8M
すみません、勘違いしていたようで
根本的に別の方法で自己解決しました。
2022/08/27(土) 13:19:54.67ID:DLOMVHR6M
C#入門の新刊は季節に2冊ぐらいづつ出てた
2022/08/27(土) 14:29:04.04ID:Q6RZ93Vy0
C#は各言語の中では一番日本語Web情報充実してるから本なんて必要ないとしか思えないんだけどな
676デフォルトの名無しさん (ワッチョイ eebb-YbG/)
垢版 |
2022/08/27(土) 15:05:22.72ID:0y7BwLZN0
でもまあ、技術系ブログサイトとかはあんまり見ない方がいいだろうね
特に、スレッド、GC、謎の付け焼き刃策、デザインパターン、その辺が絡むものはやばいコードでごった返してるんじゃないかな
2022/08/27(土) 15:27:53.57ID:RGgKks5P0
カオスなコードはC/C++のが氾濫してる印象
C#もobject多用してるやつは大概ヤバい
2022/08/27(土) 17:34:08.96ID:D1BVA/yed
C#は業務系とゲーム系とWeb系が入り乱れていて個性的なコードが多い印象
Web系はわりと教科書的なコードを好む傾向だけど前2つは無茶苦茶
2022/08/27(土) 18:15:52.15ID:WqKrPeWc0
C#自体は嫌いでも無いしむしろ好きかも知れないけど
コードが冗長になる傾向が強いというか
これはjsとかでもそうだけど特に非同期だとぱっと見何やってるか分かりにくいコードが多いなぁ
awaitやasyncとかで書けるからとかメソッドチェーンだからマシとか言うけどw
2022/08/27(土) 19:23:32.38ID:DLOMVHR6M
メソッドチェーン = クソ
2022/08/27(土) 19:28:43.55ID:0Dbs3cdW0
単一行でスクロールバーがないテキストボックスやリストボックスとかでマウスをホバーすると、
ツールチップだかが表示されて、テキストボックスと位置を完全に合わせてテキストの全文を表示してくれるやつをたまに見かけますが、
それと同じ事をやりたいです。
あれはツールチップだと同じ挙動にはならないっぽいのですが、ポップアップウィンドウで自力で描画してるんでしょうか。
2022/08/27(土) 19:36:18.14ID:0Dbs3cdW0
知りたい事は.NETやgitとかでそういう便利ライブラリ的なのがあるなら教えてほしいです。
自力描画するしかないのであればがんばります。
2022/08/27(土) 19:45:26.39ID:DLOMVHR6M
全く言っている意味が通じない
WPFなのかwinformsなのか

どこに不満があるのかがわからない

どういう具合で同じ事になっていないと言ってるのかも不明だから誰にも答えようがないし
既製のもので不満を感じるなら自作するのみ
2022/08/27(土) 21:25:37.26ID:jdy+bFyx0
>>682
InputMan(有料ライブラリ)で言うところのオーバーフローチップかな?
Freeで似たようなものがあるかどうかは探したことないから知らん
685デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/08/27(土) 23:16:52.50ID:kSqAjulD0
>>681
WinUI3使え!
686デフォルトの名無しさん (ワッチョイ 0201-yNcK)
垢版 |
2022/08/28(日) 00:08:14.59ID:nkxO7nQv0
>>681
WinUI3だとこれでいける
.xaml
<TextBox x:Name="ele" Text="aaaaaaaaaaaaaaaa
iiiiiiiiiiiiiiiiiii
uuuuuuuuuuuuuuuuuuu
eeeeeeeeeeeeeeeeeee" Width="100">
<ToolTipService.ToolTip>
<ToolTip x:Name="tip"/>
</ToolTipService.ToolTip>
</TextBox>
.cs
public MainWindow()
{
this.InitializeComponent();
tip.Content = ele.Text;
}

https://imgur.com/s6BXvL8.jpg
2022/08/28(日) 09:22:06.62ID:B6U0vRcz0
>>686
WinUI3でのToopTipの注意点
・折り返しを使う時は、MaxWidth="320"を必ず指定しないといけない
 指定しないと折り返しをやってくれない
・ToolTipService.Placementで、ToolTipの相対的な出現位置を指定できる
2022/08/28(日) 09:30:02.66ID:R+9zdn/R0
Visual Studio 2022でWindowsフォームを扱えるのはC#だけですか?
2022/08/28(日) 09:45:39.71ID:uUcbqhud0
扱えるってのがフォームデザイナを使えるかって意味なら、VB.NETも使える
GUIを自分でコーディングするなら、理論上はWindows上で.NETのライブラリが呼び出せる言語なら全て扱える
デザイナ無しだと、面倒すぎてやってられんけど
2022/08/29(月) 00:16:51.32ID:Rm8LZ6WJ0
681です。
>>683
WinFormです。環境を書く必要がありましたねすいません。
>>684
まさしくそれです。
名称がわからなかったので非常に助かりました。ありがとうございます。
2022/08/29(月) 06:23:28.13ID:yi8ems0xd
ACCESSのようなローカルDBに接続する場合、ソフト起動してる間は繋ぎっぱなしにするほうがいいんでしょうか?
それとも処理の度に接続切断を繰り返ししたほうがいいんでしょうか?
2022/08/29(月) 08:41:53.87ID:5N7ZaELzM
そんなのどうせ同時に一人しか使わないだろ?
どっちでもいい。コネクションプール云々は複数人から同時に頻繁にリクエストがくるようなサーバーの話だ。
コネクションを共有する場合は毎回繋ぎ直すのに比べて正しく動かすために考慮すべきことが若干増えるから、
そんな質問をしているレベルなら毎回繋ぎ直したほうが無難。
2022/08/29(月) 08:46:32.48ID:Apc5REiyM
>>691
accessのdbは繋ぎっぱなしにしていると壊れるってよく聞くな
2022/08/29(月) 09:01:35.10ID:5dAad4gs0
つかアクセス使うなw
2022/08/29(月) 09:33:19.38ID:ccuXYO1Zr
Accessがすでに業務上存在しちゃってて、ラクに処理とか自動化とかしたいからc#使うのかもしれん

知らんけど
2022/08/29(月) 09:36:25.52ID:5dAad4gs0
むしろC#使わなくても楽に処理とか自動化するためのAccesなんじゃねーの?
VBA抜いたらAccesに価値なんてないと思うがVBA使わないなら別のDBに移行すりゃいいんじゃないかなあ
697デフォルトの名無しさん (オッペケ Sr51-P/22)
垢版 |
2022/08/29(月) 10:08:27.01ID:MLr1TOpOr
https://tech-and-investment.com/control-form-1/
ってLollipopに入会させるためのネタかな?
間抜けなのでコメントしようとしたのだが。
2022/08/29(月) 10:25:54.36ID:5N7ZaELzM
組込系なんてこんなもんでしょ
2022/08/29(月) 10:30:17.30ID:9hZB97v8a
>>697
明らかに広告のためのページだけど何をコメントしようとしたの?
700デフォルトの名無しさん (ワッチョイ a9e5-6Yq+)
垢版 |
2022/08/29(月) 11:30:01.09ID:oh50Zakl0
クラスファイルを自動生成してくれるgRPCを使おうとcsprojに下記の行を追記したら
Systemの参照どころかStringすら全て見つかりませんと出てきました。

<ItemGroup>
<Protobuf Include="Protos\test.proto" GrpcServices="Client" />
</ItemGroup>

どのような原因が考えられるでしょうか?
2022/08/29(月) 12:22:49.43ID:iq4CimM1M
つーか特別な理由が無ければ基本的に繋ぎっぱなしはしない
Connectionオブジェクト都度Newしようが、プロバイダがコネクションプール管理してるからよろしくやってくれる
2022/08/29(月) 12:29:19.63ID:jYU6zLSra
スタンドアローンならSQLiteがいいね
703デフォルトの名無しさん (ワッチョイ 69ad-JjaS)
垢版 |
2022/08/29(月) 13:06:55.49ID:Ov0jurSb0
【火葬場】 ブースター接種でフル稼働 【葬儀株】
://rio2016.5ch.net/test/read.cgi/sousai/1651730253/l50
704デフォルトの名無しさん (ワッチョイ 8689-P/22)
垢版 |
2022/08/29(月) 16:23:45.64ID:Wh5OZtXm0
>>699
FormBorderStyle=FixedSingle と
MaximizeBox=False だけで良くね?と。
2022/08/30(火) 20:02:06.75ID:hAK39RORr
Cシャープから10年以上離れてたけど今はforやforeachじゃなくLinq使うのが主流なんですか?
706デフォルトの名無しさん (ブーイモ MM4d-zHxe)
垢版 |
2022/08/30(火) 20:04:10.21ID:qpF8Q26TM
ループ書いたら負けた気がする
707デフォルトの名無しさん (ワッチョイ 82ad-p8/s)
垢版 |
2022/08/30(火) 22:57:36.94ID:F66FctjD0
>>705
主流とか無いよ
適材適所
2022/08/30(火) 23:34:45.92ID:Oc5tPAyGM
>>705
一時期入門したてのゆとりが増えてそう主張してたけど
最近は慣れてきたみたいでキレイに消えた

適材適所だと体感したらしい
2022/08/31(水) 00:13:09.28ID:9cS5A88o0
でも自然な範囲ならLinqのほうが見やすいわ

まあforeachとパフォーマンスで取捨するのは変わらんし
あまり凝った処理をLinqでやるのは不幸になりやすいと思ってるし、そも設計が()
2022/08/31(水) 00:17:44.10ID:V35Yqsqy0
Linq慣れとけばSQLもほんの少しだけ取っつきやすくなる
2022/08/31(水) 00:28:02.06ID:llX6lKGm0
Linqをウォッチウィンドウに入れるとラムダ式はダメって怒られるんですがLinqのデバッグって皆さんどうやってますか?
2022/08/31(水) 01:04:24.06ID:Ycd3gXUM0
Linqのメリット:処理がすっきりしていて見やすい、意味が明確
Linqのデメリット:Linqを知らないと何やってるかサパーリ
結論:Linqアンチは馬鹿
2022/08/31(水) 01:18:25.02ID:OMPKcHO/0
極力 for文は使わないように心掛けてる
2022/08/31(水) 01:22:55.36ID:Sd5y8jvB0
とある理由で128bit変数を使いたいと思います。
.NET7ではSystem.Numerics.Int128があるみたいですが、
.NET6以前では手はないでしょうか?
2022/08/31(水) 01:47:58.73ID:b1fDOVx80
弟子丸じゃダメなの?
2022/08/31(水) 01:52:38.87ID:DMniOJU7a
>>715
あざます。ゲームを作ってるのですがbit演算で使いたいのです
2022/08/31(水) 01:54:00.40ID:DMniOJU7a
Int128は間違いでUint128です
2022/08/31(水) 03:27:40.79ID:Vvk0HldG0
何故128bit変数を使いたいのか?理由が全く無い
普通にulongを2つで十分では?
2022/08/31(水) 04:01:54.66ID:Ycd3gXUM0
状態が65個以上129個未満あるんだろ
少しは想像しろよ
2022/08/31(水) 04:03:49.94ID:Vvk0HldG0
で?wって感じだがw
頭が悪い初心者ならboolの配列にでもすればいいだろw
2022/08/31(水) 04:26:15.57ID:llkfVmSaM
自己紹介乙
2022/08/31(水) 04:58:04.38ID:Vvk0HldG0
ID変えて発狂かw惨めすぎるw
2022/08/31(水) 09:07:04.15ID:a94Kj0JPr
>>711
ピリオド毎に分解して、変数につっこんで
どんなリストが返ってきているか見る、かなあ。
2022/08/31(水) 09:32:25.37ID:++aW7KqF0
糞スコア用とかで単に桁の大きい数が欲しいだけなんじゃね
BigIntegerとBitArrayでも使ってろ
2022/08/31(水) 09:43:50.63ID:7LHf8A99a
>>711
最近使ってないけどメソッドチェーンでもステップ実行や途中の値を表示できたと思う
https://atmarkit.itmedia.co.jp/ait/spv/1401/30/news073.html
2022/08/31(水) 09:56:33.92ID:3Y64GBIfM
プロパティの使い方(作り方)ですが
値の有効範囲が決まっていて、範囲外の入力があったときに
例外とか出さずに勝手に範囲内に修正するのは問題ないでしょうか?
2022/08/31(水) 10:00:02.11ID:uAcWPrIt0
お前さんが仕様を作る立場なら問題無いんじゃないか。
文句言われたら「by design」。
2022/08/31(水) 12:03:12.34ID:JDtcotEa0
>>722
的はずれな煽りしかできずに挙げ句自演認定して必死に草生やしてる哀れなやつ
馬鹿は勝手に傷口広げるから楽でいいな
2022/08/31(水) 12:25:27.86ID:IP5lcB3x0
>>726
ものにもよるんだろうけど一般的には渡された値を変換するようなビジネスルールは
setterに入れずに別のメソッドを作るか別のレイヤーで処理したほうがいいと思う
setterに入れるとクラスを使う側が分かりにくくなし役割分担の線引きが難しくなるから
2022/08/31(水) 14:39:13.47ID:rFiH2cnSa
>>719
有難う!まさにこれです。

ulong2つでもbool配列でもいいんですが、例えば多種多様なアイテムのパラメーターに使うので、変数一つに対してbit判定出来れば効率がいいんです。
2022/08/31(水) 14:58:17.47ID:wBdAU4RlM
普通に考えたら普通にメソッドで処理するんだからこだわる必要もないし
効率も関係ないよ

そのうちわかるさ
2022/08/31(水) 15:00:50.23ID:wBdAU4RlM
初心者特有の自分の都合の良い仕組みがないと困る理論
2022/08/31(水) 16:09:27.66ID:V35Yqsqy0
>>714
標準のVector128<T>のソース真似れば良い
簡素化するとこんな感じ
[StructLayout(LayoutKind.Sequential, Size = 16)] struct Vector128 { ulong _00, _01;}
2022/08/31(水) 16:14:19.97ID:V35Yqsqy0
>>731
ビットフィールド利用するとクリティカルにメモリ使用量変わる事はあるけどな
数万個インスタンス生成しうるクラスで上限が決まってる値をビットに敷き詰めていくとメモリ使用量が1/4とかになったりする
例えば15以下と決まってるステータスは4bitで済むので1バイトに二つのステータスを持てる
C#でこれをやるのはソースジェネレーター作ったりしないと面倒だが
2022/08/31(水) 16:44:14.14ID:B9dYWPctH
BitArrayで実用上十分だと思うけど
2022/08/31(水) 17:15:53.04ID:AsO/g1PW0
車輪の再発明をせずに既存のものから最適を選べるかであるな
目的を最初に告げず詰まった手段だけ尋ねると大抵迂遠となる
737デフォルトの名無しさん (スプッッ Sd22-GCvl)
垢版 |
2022/08/31(水) 17:21:01.64ID:h9MLCHkyd
馬鹿は発想からして馬鹿だから馬鹿なのである
2022/08/31(水) 17:37:01.62ID:JDtcotEa0
>>732
恥の上塗り
2022/08/31(水) 17:41:51.33ID:V35Yqsqy0
>>736
効率求めてるみたいだからそういう意味で言ったらビットフィールドを超手軽に扱えるC++という既存のものを選択すべきではあるな
昨今はUnityでC#に縛られてる奴も多いだろうけど
740デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/08/31(水) 17:49:01.24ID:1Rvyxsfs0
てかUnityならUnityスレの方が詳しそうじゃね?

【ゲームエンジン】Unityなんでも質問スレpart6
https://mevius.5ch.net/test/read.cgi/gamedev/1648986423/
2022/08/31(水) 20:34:03.98ID:y4dnMuB20
「こういうことできない?」って質問に「できない」って回答をすっ飛ばして「なんでそんなの必要なの」と
質問で返す人は昔から多いけどなんなんだろうね。
「できない」って回答することに心理的抵抗があったりするのかな。
2022/08/31(水) 20:40:34.49ID:1Bdkvlrd0
やらない
2022/08/31(水) 20:52:08.27ID:ejPHdU5i0
できるできないじゃなくて、あんさんの考えてることはだいたい予想できるが他により良い方法があるから誰もやってなくて情報がないんだぜ、本当に必要な目標を話してみな、ということだろう
目的や目標を整理するだけで解決すること多いよ
2022/08/31(水) 21:02:47.58ID:JDtcotEa0
>>741
「具体的な方法は批判が怖くて提示できないけど
初心者相手に上から目線でマウント取って悦に浸りたいやつ」は大体そういう返しする
無能の特徴
2022/08/31(水) 21:08:38.85ID:46weiauMd
できないプログラムなんてない
2022/08/31(水) 21:24:40.07ID:/t2OKMAO0
XY問題じゃないかの確認
2022/08/31(水) 21:25:21.28ID:9cS5A88o0
できる、って答えたあと「結局やめてこっちにしました」ってなるのがわかるからやろ
748デフォルトの名無しさん (スプッッ Sd82-GCvl)
垢版 |
2022/08/31(水) 21:25:22.50ID:tJ/b4sTmd
>>744
と自分に言い聞かせているわけか
2022/08/31(水) 21:29:40.28ID:w9nr9xQxa
>>739
質問した者だけど、勿論c++は昔から使ってますよー。その流れでc#でも出来ないかなって質問でした。
.NET 6.0なのはmonogameにチャレンジしてます。
ueもunityも経験はありますよー。

皆さん回答有難う!勉強になりました!
2022/08/31(水) 21:41:39.64ID:F8nYadTv0
XY問題

https://ja.wikipedia.org/wiki/XY%E5%95%8F%E9%A1%8C
https://ja.meta.stackoverflow.com/questions/2701/xy-%E5%95%8F%E9%A1%8C-%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B

Q: Xを使ってYをするにはどうしたらいいですか?
A: もしあなたがYをしたいのであれば、適切ではないかもしれない方法を使うことを前提とせずにその質問をするべきです。このような質問をする人は、単にXについて知らないだけでなく、自分が解決しようとしているYが何なのかわからず、自分のおかれている状況の細部に固執しすぎている人が多いようです。
2022/08/31(水) 21:49:35.19ID:y4dnMuB20
>>743
たいていそこにコミュニケーションエラーがあるように見える。
ようは質問者が質問したことは実現できないか遠回りになるだろうということなんだろうけど
それをはっきり書いていないから話がすれ違ってるという光景をよく見るな。
さらに回答者のその推測自体ズレていることも少なくない。
2022/08/31(水) 22:08:56.71ID:++aW7KqF0
>>741
できないとだけ聞きたいのか
俺らはそれができないなら他にどういう方法があるかを考えてどうにかするわけだが
「なぜそれをしたいの?」ってのは他の方法がある時に聞くのでそこで「質問を質問で返すな」とのたまう無能だったら切るだけですわ
2022/08/31(水) 22:22:00.93ID:y4dnMuB20
>俺らはそれができないなら他にどういう方法があるかを考えてどうにかするわけだが

そこで「できない」ってのを共有したうえで次の話に進めるなら普通の会話なんだけどなあ
2022/08/31(水) 22:31:28.59ID:AsO/g1PW0
そういうのを避けるのも含めて初めから一連の目的を、という事だね。もう名称が付いちゃうくらい有り触れたパターンだから
まず目的を話す、でこういう手法にしたい・してみたが、出来なかった・どうすればいいか・もっと上手いやり方はないか、というのが筋
質問者が悪いという訳ではないが、すっ飛んでるというならまずそれがすっ飛んでいるのだ、ディスコミュニケーションの発端はそこ
2022/08/31(水) 22:37:03.64ID:JDtcotEa0
いちいち余計な世話焼かずに聞かれたことだけ端的に答えりゃいいと思うんだが
質問者だってアホじゃないんだから他手段の相談ならそう書くだろ
2022/08/31(水) 22:41:58.49ID:bPnw0/HtM
WhatやHowだけでなくWhyを共有すればWin-Winになれる
ユーザー相手に要件定義を多くこなすと嫌でも分かる

技術的な質問でも同じでWhyのコンテキストを予め提供することて欲しい回答が得られる確率が飛躍的に上がる
2022/08/31(水) 22:42:49.66ID:9cS5A88o0
でもアホな質問者のほうが多いのは今まででわかってるやろ
2022/08/31(水) 22:45:36.21ID:bPnw0/HtM
ところで何ができないんだっけ?
2022/08/31(水) 23:03:52.19ID:y4dnMuB20
>>754
>質問者が悪いという訳ではないが、すっ飛んでるというならまずそれがすっ飛んでいるのだ、ディスコミュニケーションの発端はそこ

このへんの意識がやっぱり理由なのかね。
コミュニケーションを成立させようという意欲はなくて、話が飛ぶ原因が相手にあるならそれで仕方がないと。
2022/08/31(水) 23:17:18.86ID:++aW7KqF0
>>753
言わなきゃわからんところが無能だってんだよ
答える方は答えられるから仕事できる
お前はそんなだから勝手にばかにされたと邪推して腹を立てるばかりで何も進まない
この違いよ
761デフォルトの名無しさん (ワッチョイ 7901-+deR)
垢版 |
2022/08/31(水) 23:19:27.25ID:mLZrYK8Z0
わからない人が無理に答えようとしなくていいから。
2022/08/31(水) 23:27:41.79ID:JDtcotEa0
典型的なパワハラジジイ
こうはなりたくないね
2022/08/31(水) 23:30:05.70ID:yaun/rmO0
teratail ひどい

とかで検索掛けると出てくる記事っぽいね。
2022/08/31(水) 23:32:11.00ID:y4dnMuB20
つまり「その質問の答は知らないけど別の方法で解決できるかもしれないからその目的を教えろ」ってことかね。
で、元の質問には答えられないと自分からは言いたくないと。
なんか腑に落ちた。
2022/08/31(水) 23:37:42.62ID:6hynkD6D0
アスペ同士のコミュニケーションはホラー
2022/08/31(水) 23:38:31.23ID:AsO/g1PW0
>>759
双方にあると思うけどね、解決したい側からまず要件を整えるのがやはり道理ではなかろうか
それは質問者の責任というより解決したいのは質問者であり何かを成すならば自身の行動から
回答者の察しが悪いとか、聞いた事に答えてくれとだけ叫んだりしても、問題は解決しないよ

極端な話「(天ぷら油火災を消したいから)水は有りませんか?」だったら渡さないでしょう
単にそれだけを言われたら状況次第では「飲める水が欲しいの?」と質問で返されるのも必至
まぁ貴方の文脈では「飲めない水ならある」の返事が抜けてるとかを仰りたいのだろうけども

対面では状況から読み取れることもネット上では中々難しい、歩み寄れというなら同意するが
回答者がどういう意図であろうとも問題が解決しなければ穿った見方をした所でなという感じ
2022/08/31(水) 23:58:16.27ID:++aW7KqF0
>>764
できないことを知ってるから他の方法を探すわけでな
それができるのがパワハラじじいでできないのがお前ら無能で給料に数倍の差が出るわけだ
2022/09/01(木) 00:02:06.89ID:AqUs7y9W0
おっ、乱闘か?
2022/09/01(木) 00:14:06.30ID:uODjkUz90
C♯スレだと思って開いたらこれかよ
2022/09/01(木) 00:22:55.97ID:E1uOIF+80
そろそろ何もできないくせに態度だけでかい新人とるのやめてくんないかなマジで
なんで教えてもらう方が上から物を言うんだよ
お前の仕事全部こっちにやらせる気かよ
教育係いるんだからわかんないことあったらそいつに聞けよ
2022/09/01(木) 01:01:14.64ID:ZeQg4MTD0
しかし、なぜこうも気持ちに余裕がないのが多いのだろうね
反論されただけで悪態つくとか、これではまるで幼い聞かん坊だ
会話は不可能だろう
2022/09/01(木) 01:11:38.61ID:FgO69cgd0
>>770
Z世代に楯突くとかいい度胸だな
そういうのは氷河期に任せてやれ
相性抜群だから一ヶ月後には新人消えてるよ
2022/09/01(木) 01:23:19.35ID:E1uOIF+80
>>714とかほんとよくいる若害そのもの
128ビット整数は無い
じゃあ「無い」って答えりゃいいのか?
128ビット整数で何がしたいのか聞かれる前に説明しろよ若害

何がしたいのかわからんから「何がしたいの?」って聞いた時に>>741みたいに「質問を質問で返すな」みたいなこと言う無能が多すぎる
だからお前らはいつまで経っても仕事できないんだよ
2022/09/01(木) 01:34:41.96ID:TAjEw5Nh0
黙ってNG
2022/09/01(木) 01:37:58.87ID:MS6R8rsy0
>>773
ども、714です
.NET6でint128が使えるかどうかが知りたかったので、.NET6では無理という回答で十分です
別の記述方法で対応は可能ですが、使えるかどうか悶々としてたので
代替案を欲していた訳では無いのでとある理由と記載しています
2022/09/01(木) 01:49:01.86ID:WHVWkDtma
質問に答えるのは損しかないからスルーでいいよ
いつの間にかこんなやつばっかりになっちゃった
2022/09/01(木) 02:07:35.17ID:+8OBjrcF0
Int128はそのうちNugetでバックポート用のパッケージが提供されるかもね
2022/09/01(木) 02:13:57.74ID:IweMpTry0
どう動いてもハードでないわけだからクソ遅そうだけどね
2022/09/01(木) 02:15:16.79ID:IweMpTry0
やる気ゼロ、エミュレータが動いて終わりな予感するじゃん
2022/09/01(木) 02:15:52.10ID:ov3ZPlIM0
>>776
テンプレ読めない馬鹿は出てけよ
2022/09/01(木) 02:16:38.56ID:IweMpTry0
それも自由だ
何もかも自由だ
2022/09/01(木) 04:11:08.59ID:ZeQg4MTD0
>>780
eebb-JjaS は少し落ち着きなよ
テンプレに「罵倒レスや酔っぱらいレスはやめてください」と書いてあるだろう
783デフォルトの名無しさん (ワッチョイ 7901-FShu)
垢版 |
2022/09/01(木) 04:57:54.02ID:VJLKJUKu0
結局「ない」でよかったわけだ
毎度の場外乱闘ワロス
784デフォルトの名無しさん (アウアウウー Sa85-Q92Q)
垢版 |
2022/09/01(木) 09:45:08.80ID:wgtUDrt5a
>>747
ほんそれ
100レスくらい消費した後の流れまで読める
2022/09/01(木) 10:17:55.63ID:oWUbfflza
>>780
テンプレ読めてるか?
2022/09/01(木) 12:20:17.67ID:pC8/+g0u0
質問テンプレート作るとか、建設的なことを提案できないものかね
2022/09/01(木) 12:38:25.82ID:P8ynNn8B0
generic の事かね?
2022/09/01(木) 12:44:11.10ID:jpZlcp2B0
質問テンプレを作ったとしても、馬鹿はそれを使わないし、使うように誘導しても逆ギレするだけである
2022/09/01(木) 13:58:52.48ID:PGNFrqcy0
>>785
スレの意義否定してるやつが何いってんの?
2022/09/01(木) 14:55:42.92ID:E1uOIF+80
読めないかー
2022/09/01(木) 18:06:34.10ID:OdkGARrz0
ビット演算でフラグ管理はteratermのマクロでやったなー
結構完成図書もすっきりするんだよね
792デフォルトの名無しさん (ワッチョイ eebb-YbG/)
垢版 |
2022/09/01(木) 19:52:47.51ID:q255Ws5D0
128bit型ができたところで、上位ビットと下位ビットの整合性をどう保つんだろう?
言語仕様に含めていいほどどんな使い方でも大丈夫なようにするなら、相当なコストが掛かって遅くなりそうな気がしてしまうが・・・・
2022/09/01(木) 20:23:55.84ID:mHdzx+v00
できたところでも何も.NET 7で標準化される
当然ながらコードも公開されてるから.NET 6以前にバックポートしようと思えばできる
普通にソフトウェア実装だしUInt64を2つ使う
github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/System/Int128.cs
2022/09/01(木) 20:37:54.02ID:P8ynNn8B0
多倍長計算って失われた技術だったのかw
795デフォルトの名無しさん (ワッチョイ eebb-YbG/)
垢版 |
2022/09/01(木) 21:34:47.83ID:q255Ws5D0
>>793
ざっとみた感じ、ロック等はして無さそうか・・・・
変数を利用したなんちゃってスレッドセーフみたいな、そう言う用途には使え無さそうか
2022/09/01(木) 21:49:56.85ID:c9OPbwmX0
[Intrinsic]属性が付いてるってことは基本はxmmレジスタ利用して128bitいっぺんに書き換える方式だからnint以下と同様にスレッドセーフやで
2022/09/01(木) 21:59:45.68ID:lDFXWxgN0
Webview2を使ってブラウザの「名前をつけてページを保存」のように
WEBページをローカルに保存したいのですが
どうするのがベストですか?
2022/09/01(木) 22:21:49.64ID:E1uOIF+80
その時の状況に会わせるのがベスト
2022/09/01(木) 22:49:01.39ID:cwcLQAcI0
>>796
レジスタに128bit入っても、128bitの演算命令なんて無いから無理だぞ
800デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/09/01(木) 23:05:08.31ID:tonqDUwL0
低解像度画像を高解像度にする機能ってどうやれば実装できますかね?
801デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/09/01(木) 23:05:48.19ID:tonqDUwL0
なんか調べたらAI使うらしいですがC#で実装できるなら嬉しいですね
2022/09/01(木) 23:09:32.35ID:E1uOIF+80
DPIを上げればいい
803デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/09/01(木) 23:15:43.66ID:tonqDUwL0
>>802
高解像度にはなるでしょうが低解像度のときと写真の質は変わらないんじゃね?と思ってるのですが…
2022/09/01(木) 23:17:04.77ID:E1uOIF+80
もちろん変わらんよ
そこまで聞かれてないし
805デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/09/01(木) 23:19:59.40ID:tonqDUwL0
な…なるほど…
2022/09/01(木) 23:20:49.78ID:vn5ijFlG0
>>800-801
OpenCvSharpでも使って、OpenCVのSuperResolutionモジュールを使えば
2022/09/01(木) 23:25:53.63ID:c9OPbwmX0
>>799
128bitの演算命令はあるが
inc [address]みたいにレジスタを介さず1命令でアトミックに参照カウンタを増減させるみたいなのは確かに不可能だな
2022/09/01(木) 23:41:08.76ID:vn5ijFlG0
>>804
何この無能w
初心者スレで意地悪してると老害って言われるぞ
809デフォルトの名無しさん (ワッチョイ 0de6-NyG/)
垢版 |
2022/09/01(木) 23:48:30.82ID:7Zuj6Csb0
画像補完なんて趣味の領域だし口出す方が野暮
810デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/09/01(木) 23:59:50.34ID:tonqDUwL0
>>806
サンクス
811デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/09/02(金) 00:00:38.52ID:mIdQFfIX0
いつかラッパーじゃないネイティブのOpenCVをC#で作ってみたいなぁ
何十年と掛かりそうだけど
2022/09/02(金) 00:04:48.77ID:aCu5jYhq0
MAUIってデザイナー画面ないのか
Xamarinでも申し訳程度には存在してたけど
2022/09/02(金) 00:05:37.42ID:Jdm1Y05l0
>>811
ネイティブコードとマネージドコードの違い判る?
814デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/09/02(金) 00:06:59.64ID:mIdQFfIX0
>>812
熟練者はホットリロードすらいらん
なぜならどういうデザインになるかわかるから
815デフォルトの名無しさん (ワッチョイ 0201-lFw7)
垢版 |
2022/09/02(金) 00:08:50.28ID:mIdQFfIX0
>>813
,-、            ,.-、
        ./:::::\          /::::::ヽ
       /::::::::::::;ゝ–──– 、._/::::::::::::::|
       /,.-‐””´          \:::::::::::|
     /                ヽ、::::|
    /                   ヽ|
     l                         l
    .|    ●                |    んーとね・・
     l  , , ,           ●     l
    ` 、      (_人__丿    、、、   / 
      `ー 、__               /
         /`”’ー‐‐──‐‐‐┬”'””´
         ,-、            ,.-、
        ./:::::\          /::::::ヽ
       /::::::::::::;ゝ–──– 、._/::::::::::::::|
       /,.-‐””´          \:::::::::::|
     /                ヽ、::::|
    /    ●                  ヽ|
     l   , , ,             ●      l
    .|        (_人__丿     、、、  |    わかんない
     l                      l
    ` 、                       /
      `ー 、__               /
         /`”’ー‐‐──‐‐‐┬”'””´
2022/09/02(金) 00:36:02.63ID:PSgiNqrt0
画像処理やりたいなら素直にC++でもやったほうがいいと思うけど
マネージドメモリ縛りとかデメリットのが多くないか
2022/09/02(金) 00:36:43.01ID:PSgiNqrt0
>>808
無能だから初心者いびるしか出来ることないんだよ察してやれ
2022/09/02(金) 00:46:17.46ID:spbV8vJ80
無能は聞かれたことだけに答えてもいびられたと感じるしそれ以上のことを答えようとしてもいじめられたと感じるんだな
どんだけ卑屈なんだよ
2022/09/02(金) 00:48:00.83ID:spbV8vJ80
無能の自覚があるからなんでもいじめととらえるやつが増えすぎてほんとにやりにくくなった
仕事しろって言っただけでいじめとかどんだけ甘やかされてんだよって言う
2022/09/02(金) 01:11:55.42ID:Jdm1Y05l0
C・C++ライブラリの移植って、自動化出来んと元の物のバージョンアップに追従出来んからなぁ
ラッパー作成なら自動化出来るツールあるけど、フルマネージドの移植はほぼ作り直しに近い
821デフォルトの名無しさん (スプッッ Sd22-GCvl)
垢版 |
2022/09/02(金) 02:46:21.59ID:fTqThnIWd
無能や馬鹿なら何を要求しても良いという免罪符ではない
2022/09/02(金) 18:07:39.21ID:Wh8UmZjA0
ef coreもあれだな。
ちょっと複雑なSQL文にすると、すぐ変換できないだのめちゃくちゃなSQL文出力したりと完成度はイマイチ。
dapper最強か
2022/09/02(金) 18:36:45.46ID:6qLP4Zra0
ef core でも生SQL書けるからなんとかなるよ
まあ自由度はDapper程無いけどマイグレーションは便利
2022/09/02(金) 18:40:11.18ID:tq/iSZ/+0
まあだっぱーでいいんだよな。。
2022/09/02(金) 18:42:57.99ID:IXpy9WbZ0
Winformsで高DPIの対応ってどうすればいいんですか?
マニフェストでボヤけ対応して、各フォー厶をオートスケールをDpiにして
フォームやコントロールの大きさはAndroidみたいに%で対応できないんでしょうか?
wpf使うしかない?
2022/09/02(金) 23:05:22.85ID:Wh8UmZjA0
>>823
確かにマイグレーションは便利ね。

あるテーブルに4つくらいの各テーブルをグルーピングして外部結合するLinq to SQL書いたら、
この世のものとは思えないSQL出力しよった。最後にソート付け足したら、もう勘弁してくれみたいな例外吐いて動かなくなった。
外部結合の時に発生するnullとC#側のプリミティブ型の相性が悪い感じ

結局DBMS側にストアド書いたけどそのストアド叩くだけのlinqに落ち着いたけど、C#オンリーで開発ってのは難しいね
2022/09/02(金) 23:09:44.35ID:21vFlo7I0
高DPIというかスケーリングの話だろう
DPIの事は一旦忘れて拡大率と実際の座標調べて掛け算するだけ
2022/09/02(金) 23:43:04.40ID:ajqzn9RI0
ゴブ×ドワ
2022/09/02(金) 23:54:24.91ID:XYWvvS0T0
>>826
それ、どの段階でエラーになったん?

個人的にはマイグレーションとかいらない機能だと思ってるが
2022/09/03(土) 11:33:12.05ID:TFq+Khd70
>>827
それは自分で計算しないといけないんですよね?
スケーリング150%になったら、全てのコントロールサイズを1.5割って調整するしかないですかね?
2022/09/03(土) 11:45:13.77ID:Vwpr/aZba
>>827
スケーリングじゃなく高dpiの話だと思うぞ
winformsは物理ピクセル単位でサイズを決めるから高dpiに対応した設定にしないとフォントとのサイズ比や描画やら色々おかしくなる
2022/09/03(土) 11:54:36.67ID:VhEETHyI0
調べたらそれらしい記事複数出てくるけどその辺はもう試したん?
winformsに拘る理由内ならwpfでいいと思うが
833デフォルトの名無しさん (ワッチョイ 5fad-8xEl)
垢版 |
2022/09/03(土) 11:55:59.73ID:6B/FHPZP0
>>831
それをいちいち掛け算するってことだろ
そんな膨大な工数かけるなら、重要な部分だけWPFにする方が楽そうだ
2022/09/03(土) 12:01:16.77ID:MAChL+qha
winformsでも設定だけでできるんだが
2022/09/03(土) 12:04:33.74ID:22RM66RL0
>>834
設定だけでやる奴は単純に拡大するだけだからボヤける
本当の意味での高DPI対応ではない
2022/09/03(土) 12:04:57.74ID:MAChL+qha
>>835
ボヤけない設定ができるんだが
837デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 12:05:25.70ID:pIlh0KDq0
>>836
じゃあそれ教えてやれよw
2022/09/03(土) 12:22:34.63ID:MAChL+qha
>>837
検索すりゃすぐみつかるから、ってか公式に書いてあるからお前さんが教えてやってくれ
2022/09/03(土) 12:35:07.85ID:iqyYnwJn0
>>829
どの段階って、普通にforeachで遅延実行時のエラー。
Can't translate to SQLみたいな感じだった
外部結合だけじゃなくて、SELECTする内容も複数カラムに渡ったCASE文だらけで
linq文も30行くらいになってたから、作ってる段階から「ムリだろうなぁ」とは思ってた。

ef coreのマイグレ便利だよ。
プロジェクト初期に、DBが形になるまではコードファーストでテーブル作る。
プロジェクトメンバに配った後は差分パッチのSQL作るのもefでやってるし、C#のソースで差分管理できるから。
逆にマイグレ機能なかったらef core使う人いなくなってしまうのでは・・w
840デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 13:15:11.53ID:pIlh0KDq0
>>838
ええ…
2022/09/03(土) 13:28:54.06ID:TFq+Khd70
皆さんすいませんでした。
スケーリングと高Dpiがごっちゃになって質問してしまいました。
高Dpi対応はマニフェストに書き込むので対応してます。
スケーリング時にフォームやコントロールが画面外にいっちゃうのをなんとかしたいなと思って質問したんですが、やっぱWPFが良さそうですね
2022/09/03(土) 13:37:22.48ID:MAChL+qha
外に行っちゃうのも対応法が書いてある
それでだめならAnchor使ってないんだろ
2022/09/03(土) 13:38:10.89ID:22RM66RL0
>>842
答える気がないならすっこんでろ
2022/09/03(土) 13:39:07.35ID:MAChL+qha
答えてんじゃん
これで解決できないやつはいないだろさすがに
845デフォルトの名無しさん (ワッチョイ 0701-CYaL)
垢版 |
2022/09/03(土) 13:41:26.46ID:kCYiDTrL0
せめてリンク貼れ
2022/09/03(土) 13:41:58.88ID:22RM66RL0
>>844
>>1
2022/09/03(土) 13:42:02.65ID:TKfTxEiD0
>>841
FormのAutoScaleModeプロパティをFontからDPIに変更した?
後、.NET Frameworkなのか.NET5以降のどっちで作ってるの。
.NET Frameworkの場合はスケーリング有効時にVSを起動すると100%のスケールで再起動するか聞いてくるけど、
それをやらずにFormのレイアウトを変更するとレイアウトが崩れて酷いことになる。
2022/09/03(土) 13:42:21.46ID:MAChL+qha
あ、そうか
親切そうな言葉で嘘を書くやつが多いということはすういうスレだったか
すまんかった
俺も次からそうするわ
2022/09/03(土) 13:44:09.20ID:MAChL+qha
>>845
お前がはってやれよ
秒でみつかるからさあ
2022/09/03(土) 13:45:40.22ID:MAChL+qha
>>847
あんまり詳しく聞くと質問を質問で返すなと言われるぞ
851デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 13:49:52.86ID:pIlh0KDq0
>>849
これか?
https://docs.microsoft.com/ja-jp/office/client-developer/ddpi/handle-high-dpi-and-dpi-scaling-in-your-office-solution
2022/09/03(土) 13:50:25.70ID:VhEETHyI0
変に匂わせないだけで済んだ話なのに…
2022/09/03(土) 14:22:16.77ID:peyYEDe50
知識豊富な人はこのスレで答えてない感じね
何があったのか知らんけど俺が初心者だったころは教えてくれる人に噛みついたりしなかったなあ(老害感)
2022/09/03(土) 15:09:30.38ID:KTcwdzTS0
ググればわかることを聞くのはプログラミングの最能無い
2022/09/03(土) 15:23:02.58ID:3bWK9vX2M
捨てゼリフが言いたい人はそれぞれ言い終わった感じっすか
それともまだ続いてる感じ?
2022/09/03(土) 15:29:09.15ID:jD7rh1Hda
続けろと言ってるわけね
2022/09/03(土) 15:32:17.95ID:jD7rh1Hda
なんで最近の若害って、けんか売りながら物を聞こうとするのかマジで不思議なんだけど、それって効率悪くない?
2022/09/03(土) 15:34:42.86ID:jD7rh1Hda
若い人でも聞くのが上手な人はいるけどそういう人はネットで聞かないのかなあ
2022/09/03(土) 15:45:22.03ID:TFq+Khd70
>>847
ターゲットはFramework4.7.3です
まだVS2017のままなので
各フォー厶は全てDpiにしてフォントはメイリョウUIに変えてます
色々試行錯誤してみます!
丁寧にお応えくださってありがとうございます!
2022/09/03(土) 15:45:23.47ID:sd4jbgmEM
ここはお前の愚痴書くスレじゃないんだよ
スルースキルなさすぎ
2022/09/03(土) 15:49:43.14ID:jD7rh1Hda
>>860
>>1
2022/09/03(土) 15:58:16.27ID:qprMzk1R0
>>857-858
そもそも若い奴は5chなんて見てないし
863デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 16:18:52.20ID:pIlh0KDq0
知ってるならリンクくらい貼ればいいのに
864デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 16:22:09.84ID:pIlh0KDq0
System.SpeechライブラリでSetOutputToDefaultAudioDevice関数を使ったのですが何故かエラーが出てしまいます
.NET MAUIなのがダメなのでしょうか?
2022/09/03(土) 16:33:48.19ID:/dQIp02i0
https://www.hyuki.com/writing/techask.html
これ読んでから質問しろ
2022/09/03(土) 16:37:54.43ID:VhEETHyI0
エラーの種類は?エラーメッセージとか出てない?
867デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 17:05:50.30ID:pIlh0KDq0
>>866
エラーはSystem.NullReferenceException:Object reference not set to an instance of an objectですね
デフォルトのオーディオデバイスを取得できないという感じでしょうか
2022/09/03(土) 17:19:17.65ID:VhEETHyI0
それSetOutputToDefaultAudioDevice呼び出してるインスタンスがnullってるだけじゃないの?
869デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 17:32:09.30ID:pIlh0KDq0
>>868
デフォルトのデバイスが設定されてないってことですか?
2022/09/03(土) 17:48:39.29ID:jD7rh1Hda
>>868
匂わせるだけで終わらず最後まで付き合ってやれよ
必要な情報を出さない癖にデフォルトどうこういう同じ質問を答えてもらえるまで繰り返すやつだが
2022/09/03(土) 18:10:15.06ID:VhEETHyI0
>>869
using System;
using System.Speech.Synthesis;

namespace SampleSynthesis {
class Program {
static void Main(string[] args) {
using (var synth = new SpeechSynthesizer()) {
synth.SetOutputToDefaultAudioDevice();
synth.Speak("This is sample text-to-speech output.");
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}

これコピペして動くか?
2022/09/03(土) 18:23:10.27ID:jD7rh1Hda
こっちはこっちでWindowsと決めうちしてるがMAUIはマルチプラットフォームで主にスマホ目的で使われるフレームワークだからな
2022/09/03(土) 18:50:02.67ID:qprMzk1R0
てか、毎回言われる事だけど現象が発生する最小限のコードをどこかにあげろよ...
874デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 18:53:39.23ID:pIlh0KDq0
>>871
ダメですね…
MAUIなんでデフォルトオーディオデバイスを検出できてないのかも知れません
2022/09/03(土) 18:57:47.38ID:jD7rh1Hda
ダメですだけで結果どうなったのかを言わず自分の予想をしつこく繰り返すやつうちにもいるわ
2022/09/03(土) 18:59:41.56ID:pIlh0KDq0
こんな感じですね、、、
https://imgur.com/axdLzug.jpg
2022/09/03(土) 19:00:20.43ID:pIlh0KDq0
>>875
同じエラーが出ますね
2022/09/03(土) 19:03:08.05ID:pIlh0KDq0
音声認識と音声合成を合わせたアプリを作成しようとしてて
音声認識の部分はQiitaに乗ってた奴をそのままコピペしつつ動かない部分を直して実装できました。
それでその認識した文字を音声合成で出力しようとして今にいたります。
2022/09/03(土) 19:12:14.81ID:VhEETHyI0
まずはSetOutputToDefaultAudioDevice呼び出し時点でsynthがnullになってないかをデバッガで確認しろ
MAUIは触ったこと無いからプラットフォーム側のバグなのかはしらんけど
NullReferenceExceptionってのは実体の無い変数のメンバにアクセスしようとした時に出る例外だから
speechの問題じゃない気がするんだが
2022/09/03(土) 19:19:44.78ID:jD7rh1Hda
フィールドでnewしてるからどこかでnullを代入してない限りsynthがnullは考えにくいわ
当てずっぽう言う前にOSとその例外がどこで発生してるのかをまず聞けよ
あと一行目に#nullable enable入れたらその例外はだいたい防げる
どこにも波線出ないのにその例外が出るならフレームワークの内部で出てる
2022/09/03(土) 19:22:18.68ID:pIlh0KDq0
>>879
めっちゃエラー出てました
https://imgur.com/d5LPnTZ.jpg
2022/09/03(土) 19:27:38.82ID:pIlh0KDq0
>>880
#nullable enableを記入してみましたが変わりはありませんでした。
2022/09/03(土) 19:29:10.36ID:jD7rh1Hda
内部で出てるからそりゃ変わらんだろうね
2022/09/03(土) 19:31:57.00ID:pIlh0KDq0
これってrateとかstateとかSetOutputToDefaultAudioDeviceを自分で決めて行くと治ったりしますかね?
2022/09/03(土) 19:35:49.42ID:pIlh0KDq0
うーん
Reteを指定してもRateとのところで同じように例外吐かれました
System.NullReferenceException: 'Object reference not set to an instance of an object.'
2022/09/03(土) 19:36:48.23ID:VhEETHyI0
synthは問題ないんだな
synth.GetInstalledVoices()でシステムにインスコ済みの合成音声一覧取得できるぽいから一回やってみ
俺の環境では2つ取れた
もし一つも取れなかったらその端末に合成音声インスコしたら動くかもね
887デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 19:49:47.18ID:pIlh0KDq0
>>886
GetInstalledVoiceやってみましたがnullですね
コンソールアプリ作って一回やってみます
888デフォルトの名無しさん (アウアウウー Sa8b-Ro21)
垢版 |
2022/09/03(土) 19:57:31.30ID:TMBIlwkEa
UTAU もいいよ
普通は MS Speech Engine
voiceroid もいい
889デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 19:58:15.41ID:pIlh0KDq0
空のアプリケーションでサンプルコードコピペしたら動くようです
.NET MAUIだからダメなのかも知れません…
2022/09/03(土) 20:51:13.64ID:NI8EpnesM
全く相手されてない奴いて草
2022/09/03(土) 20:53:09.28ID:jD7rh1Hda
>>888は何か悪口を言われてるぞ
2022/09/03(土) 20:59:16.02ID:NI8EpnesM
うわ…
即レスしてる時点で自覚はあるんだな
2022/09/03(土) 21:02:07.12ID:jD7rh1Hda
俺のことか
アンカついてるのにアホなのかな?w
894デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 21:07:04.81ID:pIlh0KDq0
インストールボイスで何をインストールするかって話ですよね
今回は試しなのでMS標準のやつにしてます
895デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/03(土) 21:09:01.10ID:pIlh0KDq0
.NET MAUIではできませんでしたが他のプラットフォームではできると確定したため良かったと思います
付き合ってくれてありがとうございました
896デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/05(月) 19:40:19.99ID:uXODbQDL0
ちょっとした疑問なのですがC#を基本の開発言語にしてて金が無くてVSインストールできない会社ってなんのIDE使ってるのでしょうか?
2022/09/05(月) 19:51:20.48ID:3jvCeL7m0
sharpdevelop か vscode じゃね
2022/09/05(月) 19:53:58.14ID:XsUbtHe1a
そこまで金がないなら無料でvs使えるかもしれんなあ
2022/09/05(月) 19:58:10.10ID:nZb+iO3I0
そりゃあComu……を使ってるんでは
2022/09/05(月) 19:59:13.51ID:XsUbtHe1a
communityはエンタープライズ企業は使っちゃいけないけどsohoはオッケーだから
2022/09/05(月) 20:13:29.71ID:wecjovViM
Communityは委託元含めて年商一億まで
商用なら個人プロジェクトかスタートアップの完全自社開発でもない限りはほぼ確実にアウト
2022/09/05(月) 20:33:37.14ID:O0FAkAo3M
VS2013でWeb開発とかクソ過ぎてやってられないんで
VSCode入れてNET6で開発してるぞ
まあC#以外の開発で日常的にVSCode使ってるから不便はそんなに感じない、というか麻痺してる
いまだにPHP5.6のお守りもさせられてるからそれよりはまだマシ
2022/09/05(月) 20:57:03.71ID:G2Tx9LaFa
>>901
年商1億あるならvs買えよ
2022/09/05(月) 21:05:34.23ID:WK5EXW0A0
年商1億なんて20人以下の会社だぞ
なかなか厳しいだろ
2022/09/05(月) 21:15:47.51ID:G2Tx9LaFa
>>904
なんで1月45$×ライセンス数が払えないんだよw
2022/09/05(月) 21:33:52.49ID:WK5EXW0A0
固定費だぞ?
中小の資金繰り舐めんな
907デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/05(月) 21:45:03.82ID:uXODbQDL0
基本はVSはちゃんとインストールしてるって思ってもいいのか
2022/09/05(月) 21:54:35.35ID:qslxaUKV0
>>901
委託元は関係ないでしょ
2022/09/05(月) 22:04:53.64ID:bF29iPHZ0
>>906
そうかまあ頑張れ
商売道具に金かけないから上に行けないんじゃないかと一度疑ってみたらどうかな
2022/09/05(月) 22:10:13.78ID:O9ysPoAG0
ちょっとした内製ツール作る程度ならVSCodeで十分では
売り物にする製品作るならちゃんとVS買え
2022/09/05(月) 22:17:00.91ID:WK5EXW0A0
>>909
ん?おまえは払えない理由を知りたかったんじゃないのか?
俺はVS使ってるし、俺の持ってる会社でも使ってるぞ
2022/09/05(月) 22:18:27.95ID:bF29iPHZ0
>>911
妄想はもういいぞ
寝ろ
2022/09/05(月) 22:21:27.46ID:WK5EXW0A0
突然妄想扱いとか意味わからん...
頭大丈夫か?

おまえが知りたかったVS使わない会社の理由は固定費になるから
うちが使えてる理由は無料対象になる規模だから

実体験だぜぃw
914デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/05(月) 22:23:17.43ID:uXODbQDL0
C#を使ってる職場に転職したいと思ってるのですが未経験でも転職できますか?
年齢は27です
2022/09/05(月) 22:31:24.10ID:WlpbQDHuM
X5kaはこのスレに常駐してるただのマウント煽りカスだからNG入れたほうがいいぞ
2022/09/05(月) 22:59:21.02ID:nJxV6npl0
C# って、Unity 以外に使い道があるのか?
917デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/05(月) 23:00:31.56ID:uXODbQDL0
>>916
そりゃあるだろ
アンチか?
2022/09/05(月) 23:15:41.88ID:bF29iPHZ0
NG推奨 G9er
2022/09/05(月) 23:26:59.67ID:dExbku4D0
家で簡単なWPFアプリでも一個作ってWPFできますって言ったほうが転職しやすいんでない
未経験だと仕事にならないから自分も周りも辛いだけ
つか他言語出来てC#未経験なのかプログラミング自体未経験なのかによっても全然話違う
2022/09/05(月) 23:33:26.10ID:bF29iPHZ0
>>913
年商1億を実体験してないから妄想だって言ってるんだろ
なぜ俺が知りたいと思ったよ?
払えないわけねーだろ
余裕で払ってるわ
2022/09/06(火) 00:29:20.17ID:qFquB9D10
また乱闘か
オラオラもっと揉めろやw
922デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/06(火) 05:41:08.04ID:ytM1+7CV0
>>919
プログラミング自体未経験です
923デフォルトの名無しさん (スッップ Sd7f-VPUc)
垢版 |
2022/09/06(火) 06:04:00.57ID:DWdJNYk/d
>>922
そんなことを聞いてる時点で無理
924デフォルトの名無しさん (ワッチョイ 5f01-CYaL)
垢版 |
2022/09/06(火) 06:12:29.30ID:ytM1+7CV0
>>923
なぜでしょうか?
プログラミング未経験だと厳しいのですか?
アプリは何個か作ってます
2022/09/06(火) 06:54:48.03ID:QSWYBvCR0
>>924
自分が面接をする側だったら、そう言う人にどういう質問をするか考えてみたらいいと思う。
きちんと答えられる?
926デフォルトの名無しさん (ワッチョイ 0701-CYaL)
垢版 |
2022/09/06(火) 07:05:10.28ID:rJJt6KhM0
>>925
答えられないかも知んないですね
2022/09/06(火) 07:51:06.67ID:z3X/Y8zI0
> プログラミング自体未経験です
> アプリは何個か作ってます
俺が面接官ならこの時点でお帰り頂く
928デフォルトの名無しさん (アウアウウー Sa8b-8xEl)
垢版 |
2022/09/06(火) 08:41:57.25ID:1rFefoLFa
プログラミングしないでアプリ作るとか、キントーンとかか?
2022/09/06(火) 08:49:14.13ID:Dv0PQghO0
日本語が不自由なだけじゃね
2022/09/06(火) 08:50:20.89ID:Dv0PQghO0
多分プログラミングを業務として行った経験はないと言いたいんだろうと思う
2022/09/06(火) 08:57:32.39ID:Dv0PQghO0
27歳で未経験だと大抵のとこからNGくらうだろうから残された選択肢の中から選ぶと報酬も低くなる上に業務もきつくなりがち
それを我慢するか幸運を信じて就職活動頑張るかだから転職できますかみたいな質問を他人にしてる時点でこりゃだめだと思われるわな
できますかじゃなくするかしないか、するとしたらどこまで妥協できるかを自分で選ばなきゃどうにもならん
2022/09/06(火) 09:20:39.22ID:LlwN/Cbj0
うちはギフハブ見せてくれたら経歴や学歴関係なく通すこともワンチャンだがある
2022/09/06(火) 09:55:22.25ID:l8rtcnnB0
>>929
日本語まともじゃない奴でプログラミング出来る奴見た事無い
934924 (ブーイモ MM8f-yU+g)
垢版 |
2022/09/06(火) 09:57:15.82ID:kGeGDgaWM
あ、
アプリは何個かダウンロードしてます
が正しいです。
2022/09/06(火) 10:03:48.43ID:l8rtcnnB0
マジレスすると、中途って即戦力目当てで入れるから、
C#以外でもいいからプログラミング・開発関係の職務経歴ないと
ブラックなとこ以外はほぼ弾かれると思うわ
2022/09/06(火) 10:19:58.33ID:56sWblQhM
経歴次第じゃないかなあ
特に自社サービス系は採用基準緩いとこも多いから、営業やってたとかで対人スキルあるなら可能性あるかも
さすがにまともな社会人経験がないならブラックSESに飛び込んで案件ガチャで当たり引いて3年耐えるしかないね
2022/09/06(火) 10:31:11.87ID:n1bDPx0GM
githubで何か作ったもの公開したりして、開発意欲ありますアピールすりゃ多少アピールになると思うけど、そういうのもない場合ちょっときついな
会社に育てて欲しいとか思ってるならもうダメ
新卒と比較して何かアドバンテージある所見せれないと絶対無理
938デフォルトの名無しさん (ワッチョイ 875f-Iguz)
垢版 |
2022/09/06(火) 12:03:52.92ID:ufsXPZME0
大工や船乗りになりたいなら未経験でも理解できるが
今やスマホやタブレット1台でもプログラミングできるし、
無料の初心者向けテキストや学習サービスがWebに山ほど転がってる時代だからな
誰でも勉強できる環境あるのになんでやってないの?って話にはなるよね
2022/09/06(火) 12:18:44.24ID:QxRWO4Sk0
文系で未経験者の王道は、Ruby on Rails でポートフォリオを作って転職する。
ウェブ系は全言語で、Linux, Docker, AWS などが必須

YouTube で有名な雑食系エンジニア・KENTA の初心者向けRailsサロンとか、
RUNTEQ、東京フリーランスのデイトラなど

一方、Windows 系のC# は、Unity でゲーム開発。
3D, Quaternion・行列演算などが必須

これらは理系

だから、馬鹿な文系が稼ぐために皆、Railsへ行く。
算数しか使わないから
940デフォルトの名無しさん (ワッチョイ 0701-CYaL)
垢版 |
2022/09/06(火) 12:25:54.10ID:UoYhSmfA0
C#はある程度経験ない採用されないんですね
.NET MAUIでこんなの作りましたけどやはり弱いですかね?
どの程度のアプリを開発すれば入れてくれるのだろうか?
https://youtu.be/2Alb4gpe6vw
2022/09/06(火) 12:28:53.97ID:1oUs2P5Ta
>>940
Selenium使わないメリットは?
こんなの出されたら地雷臭感じて逆効果じゃね?
2022/09/06(火) 12:34:30.70ID:ab0EyxOw0
試しに面接受けてそれ見せたらワンチャン受かるんじゃね
コードコピペしたとか文法理解してないとか言わなけりゃOK
943デフォルトの名無しさん (ワッチョイ 0701-CYaL)
垢版 |
2022/09/06(火) 12:39:00.22ID:UoYhSmfA0
>>941
Selenium使わないメリットはウェブドライバーをインストールさせなくていいということですかね
製品なのにわざわざウェブドライバーをインストールさせないといけないアプリは流石にだめでしょ…
944デフォルトの名無しさん (ワッチョイ 0701-CYaL)
垢版 |
2022/09/06(火) 12:39:36.82ID:UoYhSmfA0
>>942
コピペはしてません
色んな所のサイトを参考にはしたけど
2022/09/06(火) 12:45:50.37ID:Kq15B7ya0
マ板でやれ
2022/09/06(火) 12:46:43.68ID:l8rtcnnB0
プログラミング未経験っていうから全然出来ないのかと思ったわ
自分で調べて作ったのアピールすれば通るとこもあるんじゃね
947デフォルトの名無しさん (ワッチョイ 0701-CYaL)
垢版 |
2022/09/06(火) 12:49:48.92ID:UoYhSmfA0
>>946
そうなんですね
プログラミング未経験っていうのは業務、学校でやったことないという意味です
今まで建築業だったのでずっと建築のことやってました
948デフォルトの名無しさん (ワッチョイ 0701-CYaL)
垢版 |
2022/09/06(火) 12:51:09.67ID:UoYhSmfA0
C#で転職するならどんな会社が良いでしょうか?
具体的な名前を教えていただけると嬉しいです
2022/09/06(火) 12:53:08.32ID:ab0EyxOw0
ここでしてるみたいに未経験ですって言いながら作ったアプリ見せたらまあ落ちるだろうね
初っ端から嘘ついたらそりゃあ
950デフォルトの名無しさん (ワッチョイ 0701-CYaL)
垢版 |
2022/09/06(火) 12:54:44.12ID:UoYhSmfA0
じゃあなんと言えばいいでしょうか?
できます!って言って専門的な質問されても答えられる自身がありません
2022/09/06(火) 13:12:09.21ID:ab0EyxOw0
独習C#なり解説サイトなりで一通り文法勉強してから受けりゃいいじゃん
初心者ならせめてそういうやる気見せないと中途は無謀
2022/09/06(火) 15:49:59.75ID:+5wORWUf0
うだうだやるより動いたほうがいいよ

しょうもなくても「へえ、xxヶ月でこんなにか」って思ってくれるとこもあるかもしれんし、
若いうちなら人柄のが重視されるやろ
2022/09/06(火) 15:50:02.08ID:z3X/Y8zI0
>>950
個人的には簡単なアプリなら組んだことありますけど学校や会社の業務ではやったことありません
って言えばいいだけだろ
マジな話そんな事も相手に伝えられないような人は採用されたとしても色々辛いぞ
954デフォルトの名無しさん (ワッチョイ 7fbb-BZR6)
垢版 |
2022/09/06(火) 15:55:52.89ID:CfnveDjb0
嘘でもいいから「ASP .Net Core MVCなら任せてください」ぐらいの勢いがあった方がいいんじゃないかな
どうせ情報科学・技術の素養がないことは見抜かれるから、それがあまり関係してこない分野をチョロっと習得するしかない
955デフォルトの名無しさん (スッップ Sd7f-VPUc)
垢版 |
2022/09/06(火) 16:44:21.58ID:DWdJNYk/d
だからこんなことを他人にそれもこんな所で聞かなきゃいけないような頭の人は無理
2022/09/07(水) 11:22:03.70ID:ac35Budc0
>>948
マイクロソフト
957デフォルトの名無しさん (ワッチョイ ff01-CYaL)
垢版 |
2022/09/07(水) 12:14:27.68ID:XSYCA5LW0
>>956
絶対無理
派遣ならワンチャンあるだろうが…
2022/09/07(水) 12:54:55.88ID:8NMkvrFG0
YouTube で有名な雑食系エンジニア・KENTA も言ってるけど、
SES なら誰でも受かるので、Ruby on Rails みたいなポートフォリオも不要

ただし、しばらく勉強期間として、
家電量販店のバイトなどをやらされる

できない香具師は、開発へ回してもらえない
2022/09/07(水) 14:49:38.39ID:QHiFTjEyM
まあ、いい加減スレ違いだな
プログラミングの技術云々以前に、日本語が出来ないのでは話にならん
>>914 から >>953 の内容が伝わると思うか?
あと、こんな場所で会社紹介して貰えると思ってる時点で頭おかしい
2022/09/07(水) 18:20:38.15ID:gShvLU6o0
そもそも、ここC#のプログラミングに関するスレだから、職に関する事ならプログラマー板では?
って思ってしまった
2022/09/07(水) 21:34:00.05ID:1Ul2mn6ua
関係無い書き込みはスルーで!
2022/09/08(木) 00:10:21.74ID:Q8RpWacn0
マ板のアホが紛れ込んで来たのかな
2022/09/08(木) 06:27:14.45ID:dSUuwrfW0
昔から〇〇の話題はマ板で、って言うのは良くあった
>>961が正解
964デフォルトの名無しさん (ワッチョイ ea01-6yOS)
垢版 |
2022/09/11(日) 09:13:25.75ID:8DVbiiNB0
.NET MAUIのための簡単なサンプルとしてポケモンバトルを作ってみたのですがたたかうボタンをクリックしたとき相手へのダメージをメッセージボックスに表示したあと数秒後に自分へのダメージを表示したいのですがどうすればいいでしょうか?
Thread.Sleepを使ったらなにもされない状態で待たされ最後の自分へのダメージのみが表示されるだけでした…
https://youtu.be/sRN1ZSZpoxk

https://i.imgur.com/moWNWU2.jpg
2022/09/11(日) 09:15:49.93ID:iHJIv4qna
Thread.Sleepをawait Task.Delayにしてみたら?
戻り値をvoidからasync Taskに変えるのを忘れずに
966デフォルトの名無しさん (ワッチョイ ea01-6yOS)
垢版 |
2022/09/11(日) 09:19:57.63ID:8DVbiiNB0
>>965
いけました
ありがとうございます!
967デフォルトの名無しさん (ワッチョイ ea01-6yOS)
垢版 |
2022/09/11(日) 09:38:25.98ID:8DVbiiNB0
完成しました
ありがとうございます
https://youtube.com/shorts/_E5diZuPUAE?feature=share
2022/09/16(金) 10:01:47.81ID:vQLtnuER0
WindowsFormのDataGridViewのソートについて相談です

ID2 あああ
ID1 いいい

で[ID2 あああ]のセルが選択(色が反転)されている時にヘッダをクリックしてソートをすると

ID1 いいい
ID2 あああ

となりますが、デフォルトではセルの選択場所はそのまま1行目に残り[ID1 いいい]が選択されます
これをソート後に元々選択をしている「ID2,あああ」が引き続き選択されるように移動することは可能でしょうか?

※ForEachなどで先頭からチェックしていく方法だと遅いのでより速い方法が希望です
※dataView.sortでもダメでした
※DataTableがバインドされています
※SelectionMode=FillRowSelectです
2022/09/16(金) 10:55:30.50ID:zgH3cb2a0
遅いこたないだろ
どう比較してんのか知らんけど
いちいちセルの値を取り出してるのか?
2022/09/16(金) 11:34:28.03ID:gVPdFK5e0
969の通り、セルから値を取り出して判定すれば遅いかもしれないが、foreachだから遅い訳ではない。
1.ソート前に選択行のオブジェクトを取得。
2.ソート後に各行から1のオブジェクトに一致する行を探す。
3.行を選択する。
2022/09/16(金) 11:39:27.89ID:vQLtnuER0
>>969,970
そうですか、実はまだ作っていなかったんですが
やってもいないうちに憂慮するのもおかしな話ですね

お話を聞いていると心配するような影響はなさそうなのでforeachでいってみます
ありがとうございました
2022/09/16(金) 12:10:47.28ID:B9whReE1M
作ってから質問しろよアホ
2022/09/16(金) 12:35:27.68ID:zgH3cb2a0
>>971
逆にさぁ
何でソートより遅いと思うの?
ソートの方がどう考えたって遅いだろ
2022/09/16(金) 13:24:15.27ID:2624PI9bM
何言ってんだコイツ
2022/09/16(金) 13:27:27.83ID:zgH3cb2a0
ソートの計算量と線形探索の計算量比べてみ
2022/09/16(金) 13:31:46.49ID:B2QvV4t50
質問への回答のふりをしたマウントをとりたいだけおじさんこんにちは
2022/09/16(金) 13:34:43.48ID:XIkhc1BL0
プログラミングで一番楽しいところを質問するのは業務で急いでるから?
2022/09/16(金) 13:43:52.28ID:zgH3cb2a0
雑魚はマウント取られるの嫌いだなw
2022/09/16(金) 13:53:00.41ID:zgH3cb2a0
>>977
それ以前に今は業務できないやつが業務させられてるから
ゆとりまではまだ良かった
その上の世代を見ることができたし上の世代が苦口を叩いてそれが通用してたから
今はそんなの老害のマウントと言ってスルーして終わり
結局外人しか使い物にならない
2022/09/16(金) 18:56:42.91ID:ucyKSfRy0
>>977
ヒマ人はアルゴリズムとかあれこれ試すのが楽しいのかも知らんが、
大抵は作ったあとに本来の目的である作業があるので、すぐに最適解を知りたいのは当然だろう。
2022/09/16(金) 19:05:23.98ID:ucyKSfRy0
スレ立てられなかった。
誰か頼んます。
2022/09/16(金) 19:06:21.67ID:yoxOratha
最適解を探し出すのが好きだけど
2022/09/16(金) 19:16:40.26ID:NQf2dGdud
ここに書き込んでレス待ってる暇があるなら…
2022/09/16(金) 20:18:56.91ID:rUY7JPGo0
>>973
お前は何と何を比べているんだ?
2022/09/16(金) 21:24:24.55ID:zgH3cb2a0
>>984
ソートと線形探索
2022/09/16(金) 21:54:08.37ID:xFXLTr3+0
まーたこいつか
2022/09/17(土) 10:47:10.50ID:vRd8nzJr0
まーた論破されたのか
988デフォルトの名無しさん (オイコラミネオ MM9b-E+l9)
垢版 |
2022/09/17(土) 19:27:47.62ID:WprtmL9KM
C#の言語仕様やプログラムの書き方は本でわかりますが、VSの使い方ってどうやって勉強すればいいのですか?
2022/09/17(土) 20:42:47.31ID:MaOWCSHQ0
講習会に出るか、人脈を作るか、自分で努力するか
2022/09/17(土) 21:01:11.47ID:An1mtjpa0
VSスレで聞けよ
2022/09/17(土) 22:14:59.73ID:9h4vH5/40
>>988
ググる
入門書売るためにわざと以前と違うやり方にするから
そろそろ全くUIのVSが出る可能性あるぞ
992デフォルトの名無しさん (ワッチョイ ff8e-w3i5)
垢版 |
2022/09/17(土) 23:11:25.67ID:jZ8ZHLBM0
>>988
自分でプログラムを作れるレベルならわかる
使い方さえわからないようではプログラミングは無理
993.NET MAUI HS (ワッチョイ 9f01-N10o)
垢版 |
2022/09/17(土) 23:31:26.75ID:yUvyoPXr0
正直VSのすべての機能を使えてるとは思わん…
ショートカットも2つ連続で入力しないといけないのめんどいし覚えられないんよ…
994デフォルトの名無しさん (オイコラミネオ MM9b-E+l9)
垢版 |
2022/09/18(日) 00:41:22.71ID:X2I40KavM
結局自分でその都度調べるしかないのですね
VSCodeの本があるのだからVSも出してくれればいいのに
2022/09/18(日) 01:29:31.94ID:SD34mskU0
ツールなんて触りまくって覚えるしかないんじゃね
自分はほぼ我流で覚えたから、機能多分使えてないの沢山あると思う
2022/09/18(日) 09:08:08.17ID:N8yn6v060
>>994
初心者向けの本にはVSの使い方が書かれているけどそれも最低限だからな
まぁ慣れるしかない
997デフォルトの名無しさん (ワッチョイ f768-W3aP)
垢版 |
2022/09/18(日) 13:20:28.28ID:bkV8Krjt0
プログラミング飽きるわ
998デフォルトの名無しさん (ワッチョイ 5701-dv3E)
垢版 |
2022/09/18(日) 13:24:42.85ID:a87PubfG0
東京に「飽きるの」って地名無かった?
2022/09/18(日) 13:26:59.65ID:kY5VkQwD0
あきる野市 な
1000デフォルトの名無しさん (ワッチョイ 5701-dv3E)
垢版 |
2022/09/18(日) 13:27:33.64ID:a87PubfG0
そうなんだ?
また知ったかぶってしまったわ。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 93日 4時間 45分 21秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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