◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

ふらっと C#,C♯,C#(初心者用) Part153 ->画像>3枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1639403601/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (ワッチョイ bf2c-yjVA)
2021/12/13(月) 22:53:21.18ID:dhjmiKBp0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part152
http://2chb.net/r/tech/1629888256/
■関連スレ
C#, C♯, C#相談室 Part94
http://2chb.net/r/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
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デフォルトの名無しさん (ワッチョイ c702-p36F)
2021/12/14(火) 15:04:57.66ID:DHQEOVX70
stringデータの容量を小さくしてソフトのAPIに送りたいのですが
APIの都合でstringのまま送らなければならない場合、
これ以上容量を小さくする手段はありませんか?
圧縮したバイナリデータをどうにか送信できないかと調べたのですが無理そうで……。
3デフォルトの名無しさん (ワッチョイ df2c-yjVA)
2021/12/14(火) 17:52:43.39ID:vmKXmndG0
何らかの方法で圧縮できたとして
受け取る方のソフトは圧縮されたデータを伸長できるの?
4デフォルトの名無しさん (ブーイモ MMff-gtpG)
2021/12/14(火) 17:56:17.81ID:WeLzug3DM
uudx / uuex か?
5デフォルトの名無しさん (ワッチョイ c702-p36F)
2021/12/14(火) 18:19:29.34ID:DHQEOVX70
>>3
圧縮して送りたいのはただのセーブデータなのですが、
サーバー側の保存形式がstringを使ったkeyValueで作られているので文字列形式でしか保存できないみたいで。
保存しておいた文字列をこちらで読み込んでからデコードすればいいのでstringのまま圧縮できればよくて、
どうせ日本語までしか扱わないデータなのでSHIFT-JISをutf-8で圧縮……みたいなことができれば理想なのですが
そんなピンポイントなのあったりしませんよね、と……。

>>4
解釈があってるかはわからないのですが、
一応圧縮したバイナリデータをBase64でConvertみたいなことは試してみたものの
容量を減らすという目的ではむしろ文字数が増えてしまって。
何か手段がないかなあと思っている次第です。
6デフォルトの名無しさん (ラクッペペ MM8f-JWjg)
2021/12/14(火) 18:26:30.90ID:QT7QgCvlM
使用できる文字に番号振って
圧縮したバイナリを文字に割当る
いわゆる復活の呪文方式
文字が足らなければ32bitsバイナリを31bitsにずらしていくなど工夫してみな
7デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/14(火) 18:35:23.50ID:70QYvgE2a
>>5の文章はユニコード(utf16)で720バイト、ユニコード(utf8)で921バイト
>>5の文章をzip圧縮したらバイナリで678バイト。その圧縮バイナリを2文字ずつ(utf8)にしたら2倍の1356バイト(圧縮したらバイト数が増えた)
でも前スレ(utf16で348,236バイト)を圧縮したらバイナリ104,639バイト、圧縮utf8で209,278バイト。圧縮したバイナリをテキストにしたほうが小さい

送りたいデータ次第じゃ一度圧縮してから無理やりテキストにした方が容量小さくなるから
どっちが有利か生と圧縮を自動選択しながら送る手もある
8デフォルトの名無しさん (ブーイモ MMcf-gtpG)
2021/12/14(火) 19:00:02.18ID:DQcTzC4QM
通常のデータ圧縮は8ビットフルに使うので、
そのままでは難しいのでuuと組み合わせて作ったら?
9デフォルトの名無しさん (ワッチョイ df2c-yjVA)
2021/12/14(火) 19:40:08.80ID:vmKXmndG0
UTF-8でバイナリ化してdeflate圧縮してBase64化した後2文字ずつを1つのcharに詰める
まあ基本ライブラリで手軽にやるならこんな感じじゃない?
10デフォルトの名無しさん (ワッチョイ 67b0-zDwW)
2021/12/14(火) 20:14:03.30ID:4rMew3mV0
7zかなにか圧縮率の高い奴で圧縮しておいてbasE91だな。
http://base91.sourceforge.net/
11デフォルトの名無しさん (ワッチョイ a701-4A0X)
2021/12/15(水) 07:44:21.38ID:viWcJGha0
圧縮することによっぽどのメリットがないと無駄にややこしくなるだけだぞ
サーバー側が必要に応じて圧縮するのが筋かと
UTF-8に変換して送信とか脆弱性の問題もあってサーバー側で禁止してることもある
122 (ワッチョイ c702-p36F)
2021/12/15(水) 08:20:09.42ID:KIyi4EVP0
皆さんありがとうございます! Base64化したものを自分でさらに詰めるというのは思いつきませんでした……なるほど……。
BasE91もまさに机上論こねくり回してるときに欲しかったものの気配がするので中身覗いて調べてみます!

>>11
こちらは利用する側なのでサーバーの仕様を変える事はできず、
用意されたフォーマット(これが文字列形式での送信)従うしかないやつですね。
ユーザー毎に使用可能なデータの容量が決められていて(しかもそれがやたら少ない)、
少しでも軽減するためにこちら側でデータを小さくできないかと画策しています。
13デフォルトの名無しさん (ワッチョイ 2780-4iyA)
2021/12/15(水) 08:43:57.49ID:doly6UKJ0
ビットマップ間で部分的に画像コピーするのはDrawImageでできますが
コピーする際に左右を反転してコピーする方法はないでしょうか?
検索でビットマップ全体をまるごと反転する表示はたくさん出てくるのですが
DrawImageの部分コピーで反転するのは見当たらないのです
14デフォルトの名無しさん (ワッチョイ df2c-yjVA)
2021/12/15(水) 09:39:43.96ID:SWORTfJ40
g.ScaleTransform(-1, 1)
描き出す先の座標も反転するから座標指定注意
15デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/15(水) 10:18:47.15ID:IF/hKOzS0
できました、ありがとうございます
16デフォルトの名無しさん (ワッチョイ e701-zKou)
2021/12/15(水) 20:55:12.09ID:KtX6zlRp0
DrawImageに渡すWidthやHeightを負の数にするだけで反対向きに描画するよ
17デフォルトの名無しさん (ワッチョイ c75f-o4eJ)
2021/12/15(水) 22:41:30.07ID:9OkRwsNs0
LinuxでC#でソフト作りたいのですが
.Net 6とmonoは同じものでしょうか?
18デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/15(水) 22:58:53.71ID:RALnEWNsa
monoは.NET4.6か4.7相当
19デフォルトの名無しさん (ワッチョイ c75f-o4eJ)
2021/12/15(水) 23:37:58.07ID:9OkRwsNs0
ありがとうございます
.Net 6をインストールしました
20デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 12:03:30.27ID:GoezKG390
 private void Form1_KeyDown(object sender, KeyEventArgs e)
 {
  keyCode = (int)e.KeyCode;
 }
 public void button1_Click(object sender, EventArgs e)
 {
  button1.Visible = false;
  anThread(); // ここをtest();に変えると直接実行になる
 }
 private void anThread()
 {
  Task task = Task.Run(() => {
   test();
  }
 }
 private void test() {
  int dt;
  while (true) {
   if (keyCode!=0) {
    dt = keyCode; // ここにブレークポイントを置く キーが押されると止まる
    return;
   }
   Thread.Sleep(10);
  }
 }
21デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 12:04:03.26ID:GoezKG390
このプログラムbutton1押しで開始して、キーが押されるとループ中のブレークポイントで止まるものなんですが
これで一般文字キーを押すとちゃんとブレークポイントで止まりkeyCodeが確認できます
Enterキーを押した場合はなぜか止まりません
anThread();のように別スレッドから動かさずに直接test();で呼ぶと
一般文字キーもEnterキーの時も止まりkeyCode 13が確認できます
別スレッドで動かした時に、Enterキーの時だけForm1_KeyDownさえ呼ばれなくなるのは
どうしてでしょうか?
22デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/16(木) 12:25:18.98ID:6kTxk0Gya
直接呼びで停まる?
直接呼ぶと無限ループに入って、keycode変数が変化しないから(代入が行われるのはループの外だから代入が起きない)
ブレークポイントに入ることもないんじゃないかな?
ここに書き込む過程でコードを書き換えたなら、そこで略した部分に問題ありそう
23デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 12:36:40.33ID:GoezKG390
いえ止まるというのはブレークポイントで止まるので正常に機能しているということです
直接呼びの時はEnterキーでもkeycode変数が変化するのです(正常)
別スレッド呼びにした時にEnterキーだけ変化しないようになります 文字キーは変化します
button1にEnterキーが吸収されてるのではないかと思い
button1.Visible = false;
button1.Enabled = false;
さらにForm1.KeyPreview=true;
としたのですが、結果は変わりませんでした
24デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/16(木) 12:59:19.79ID:6kTxk0Gya
デバッグ開始する
ボタン押す
enter以外のキーを押す=止まる
再開する
enterを押す=止まらない
って順番ということ?それならreturnで抜けてるから

デバッグ開始する
ボタン押す
enterを押す=止まらない
enter以外のキーを押す=止まる
って順番ということ?
25デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 13:04:12.22ID:GoezKG390
そうですね、デバッグ実行は毎回やりなおしてますが
enterを押す=止まらない ここのところですね問題は
Enterキー故に何かわからないですがviewのどれかに吸収されてるんではとも考えられるんです
26デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 13:11:56.87ID:GoezKG390
inr fs;
 public void button1_Click(object sender, EventArgs e)
 {
  if (fs==0) {
   button1.Visible = false;
   button1.Enabled = false;
   anThread(); // ここをtest();に変えると直接実行になる
  }
  fs=1;
 }
27デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 13:12:29.66ID:GoezKG390
もっとボタンのとこ具体的にかくと上のようにして一度しかtest()呼ばれないようにしてます
28デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/16(木) 13:19:59.88ID:6kTxk0Gya
なら
KeyPreview=true;

protected override bool ProcessDialogKey(Keys keyData)
{
return false;
}

protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
}
29デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 13:24:57.28ID:GoezKG390
おおEnterキーでもブレークポイントで止まるようになりました
ありがとうございます
30デフォルトの名無しさん (ワッチョイ a72d-zmQK)
2021/12/16(木) 13:28:58.72ID:lYga0rvW0
Formに配置したbuttonがEnterキーの制御を奪うから
その前にFormでキーを取得したいならPreviewKeyDownイベントを使う
31デフォルトの名無しさん (ワッチョイ e701-p36F)
2021/12/16(木) 14:09:04.68ID:i/INwEgL0
docs.microsoft.com/ja-jp/dotnet/api
にバージョンとかあって.NET 6とか選択するじゃないですか?
これって、どれを選べばいいのでしょうか?
自分のPCにどの.NET入ってるか調べる方法はありますでしょうか?

よよろしくおねがいします。
32デフォルトの名無しさん (ラクッペペ MM8f-JWjg)
2021/12/16(木) 14:38:33.33ID:k8cIynuMM
自分のPCではなくユーザーの環境を考えて選ぼう
Windows2000なら2.0
WindowsXPなら4.0までしか使えない
33デフォルトの名無しさん (ワッチョイ 675f-Rkf/)
2021/12/16(木) 15:37:50.09ID:y2oCKs8P0
今から始めるなら.NET 6選んでおけば問題ない
34デフォルトの名無しさん (ワッチョイ e701-p36F)
2021/12/16(木) 17:43:59.24ID:i/INwEgL0
Environment.Versionだと6.0.0
RuntimeEnvironment.GetSystemVersionだとv4.0.30319でした
35デフォルトの名無しさん (ワッチョイ e701-p36F)
2021/12/16(木) 17:53:32.89ID:i/INwEgL0
System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription
だと.NET 6.0.0-rtm.21522.10でした
36デフォルトの名無しさん (ワッチョイ e701-p36F)
2021/12/16(木) 17:56:18.18ID:i/INwEgL0
clrver.exeだと、こう

PS C:\Users\a\source\repos> clrver.exe

Microsoft (R) .NET CLR Version Tool Version 4.8.3928.0
Copyright (c) Microsoft Corporation. All rights reserved.

Versions installed on the machine:
v2.0.50727
v4.0.30319
37デフォルトの名無しさん (ワッチョイ 47da-3ffG)
2021/12/16(木) 18:05:33.14ID:6CYDlCWX0
ふらっと C#,C♯,C#(初心者用) Part153 ->画像>3枚
38デフォルトの名無しさん (ワッチョイ c75f-o4eJ)
2021/12/16(木) 20:33:18.00ID:SBcuHk850
mauiって流行りますか?
39デフォルトの名無しさん (ワッチョイ e701-YTVu)
2021/12/16(木) 20:45:26.99ID:9+J81CzA0
Xamarinって流行ったか?つまりそういうことだ
40デフォルトの名無しさん (ワッチョイ 7fda-8rTh)
2021/12/16(木) 20:53:46.41ID:p4ec86X90
人脈が無い人には無理
41デフォルトの名無しさん (ワッチョイ 27ac-vu5C)
2021/12/16(木) 21:37:09.74ID:nAiVmB6z0
mauiも期待はしてるけどいつも通りなんだろうなあ。。
42デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/16(木) 22:11:02.45ID:6kTxk0Gya
マルチプラットフォームっていう目的での利用は流行らないだろうな
でも普通にGUIアプリ作る一手段としては使われるんじゃないかな
43デフォルトの名無しさん (ワッチョイ 4718-N/e5)
2021/12/16(木) 23:26:32.48ID:el7qs11a0
言語仕様が多すぎてうんざり。
44デフォルトの名無しさん (ワッチョイ 0f18-RSrH)
2021/12/17(金) 00:31:22.94ID:A3/Tt7aa0
Linuxに本気で移行しようと思う。
45デフォルトの名無しさん (ワッチョイ 8a47-WIuU)
2021/12/17(金) 01:19:48.74ID:OxYtcTfz0
>>44
おっ、.NET Core + Linux いいね
46デフォルトの名無しさん (スッップ Sd8a-jY/M)
2021/12/17(金) 01:35:44.89ID:0Acfg8Fxd
これからMSワールドの外へ出てみたら実感すると思うけど、MSスタックは全部MSで揃えて他には見向きもしなくていい状態にこそ意義があるんだよ
いったん外にはみ出し始めちゃって歯車が狂うとたちまち不便なところばかりが目につくようになって、気がついたらMS成分は跡形も残らない、という結果になるのがオチだ
MSスタックをディスるつもりはなくて、これはむしろ最大限の賛辞だ
47デフォルトの名無しさん (ワッチョイ beb0-i1tV)
2021/12/17(金) 08:09:16.08ID:GkoM7wOP0
あれ?MAUIのターゲットにLinuxが入ってない。。。
https://docs.microsoft.com/ja-jp/dotnet/maui/what-is-maui
48デフォルトの名無しさん (ブーイモ MMe6-qbXX)
2021/12/17(金) 08:24:00.59ID:ObFlVNVZM
LVGLを使え。という託宣。
49デフォルトの名無しさん (ワッチョイ 97c3-s2xl)
2021/12/17(金) 08:44:31.07ID:dbqWYop50
>>47
linuxはコミュニティによってサポートされます
50sage (ワッチョイ a301-izju)
2021/12/17(金) 11:45:19.21ID:2+pcMu4G0
C:\Users\a>dotnet --info
.NET SDK (global.json を反映):
Version: 6.0.100
Commit: 9e8b04bbff

ランタイム環境:
OS Name: Windows
OS Version: 10.0.19042
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\6.0.100\

Host (useful for support):
Version: 6.0.0
Commit: 4822e3c3aa

.NET SDKs installed:
6.0.100 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download
51デフォルトの名無しさん (ワッチョイ a301-izju)
2021/12/17(金) 13:11:43.35ID:2+pcMu4G0
c#を勉強しはじめたのですが、メモリ関連でヒープとスタックというのがあるのを知りました。
で、C#で型がstaticのデータはヒープ領域に格納されるのですか?それともスタック領域に格納されるのですか?
52デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/17(金) 13:38:19.99ID:g/fCEX7wa
スタックって日常でも使うことあるけど、積み重ねるって意味だからな
積み重ねちゃってるから下にあるものを無理に取り出そうとすると崩れてぐちゃぐちゃになる
だから下にあるデータは上にあるのがなくなるまで取り出せない
データは上下関係なく好きなところにあるデータにアクセスしたいものだからスタックにはしない=ヒープ

でもスタックとかヒープとか覚えなくていいよ
C#のテスト問題にそんなのが出たら「もっとまともな問題出せ」って回答用紙に書いときゃいいし
C#の本やサイトにそんなのが出てるなら投げ捨てときゃいい
53デフォルトの名無しさん (ワッチョイ 8b59-1Hc8)
2021/12/17(金) 13:41:20.99ID:eUY6ZgLC0
メモリの確保と開放って元々C言語の概念だったよね
Javaではなくなったようだけど
54デフォルトの名無しさん (ワッチョイ 0f18-RSrH)
2021/12/17(金) 14:24:53.34ID:A3/Tt7aa0
メモリを確保するのはアセンブラでもそうだよ。開放するのは動的に使うってことだよ。
スタックはCPUの基本機能、ハードで実装、提供されてるものだよ。だから高速。
SPレジスタ書き換えるだけだからね。速いコード書く人はスタック、ヒープは常に意識してる。
55デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/17(金) 15:05:27.40ID:g/fCEX7wa
そんなの意識するわけないだろ。どう意識するんだよw
アセンブラならpush/pop使うこと多いけど、C#じゃそんなの意識して組むのは非常に困難
意識するのは例えばこれはList<int>よりも基本通りint[]でいった方が速度有利だけど、こっちはListでいいとかそういう(ヒープの)使い方程度だよ
56デフォルトの名無しさん (スププ Sd8a-WIuU)
2021/12/17(金) 15:35:53.88ID:Uf0Oj/NFd
Marshal.AllocHGlobal使うときとかヒープ意識するな
57デフォルトの名無しさん (ワッチョイ 6a42-g56a)
2021/12/17(金) 15:38:33.74ID:8qM/JwoR0
大昔独自のC言語使った組み込み開発で、StaticはROMにマッピングされるやつが有った
いやあ、確かに便利だけど言語仕様くらい守れよとは思った
58デフォルトの名無しさん (ワッチョイ a6da-SJTP)
2021/12/17(金) 16:30:31.61ID:xwFg4/y80
ただしstack overflowはバイブルな。
これさえあれば、大抵のことは何とかなる
59デフォルトの名無しさん (アウアウウー Sa9f-xPAV)
2021/12/17(金) 17:26:57.23ID:OLbNm50pa
>>51
ちょっと検索した感じだとstaticな「変数」(あくまで変数ね)は
ヒープに置かれるって意見とヒープでもスタックでもないって意見があって
はっきり分からんねw

個人的にはstaticな「変数」は一度staticコンストラクタが呼ばれて
作られてしまった後は管理が不要なので後者の方が正しいように感じるがどうだろう
60デフォルトの名無しさん (ワッチョイ 535f-j66Y)
2021/12/17(金) 19:03:20.75ID:FDMn0ZP00
MSスタックどころかWindowsフォームしかできないのがMSワールドの外に出ることなんて不可能だろうな
61デフォルトの名無しさん (オッペケ Srb3-fmnO)
2021/12/17(金) 19:14:42.55ID:25ZW3+3Or
C#は適当にGC呼び出せば適切なところでメモリ解放がんばってくれるじゃん
62デフォルトの名無しさん (ワッチョイ 3b01-jbri)
2021/12/17(金) 20:16:20.89ID:hfvLzPNZ0
>>51
メモリ領域にはヒープとスタックとコードがある
staticはコード領域に確保される
コードていうのはそのまんまの意味で命令が書かれてる場所
ちなみにC#のヒープはGCが管理してる特殊な領域
63デフォルトの名無しさん (ワッチョイ a301-izju)
2021/12/17(金) 20:53:34.58ID:2+pcMu4G0
これ??
PS C:\Users\a\source\repos\stack\stack\bin\Debug\net6.0> dumpbin /headers stack.exe
Microsoft (R) COFF/PE Dumper Version 14.30.30706.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file stack.exe
PE signature found
File Type: EXECUTABLE IMAGE
<<中略>>
SECTION HEADER #3
.data name
14F8 virtual size
24000 virtual address (0000000140024000 to 00000001400254F7)
A00 size of raw data
21C00 file pointer to raw data (00021C00 to 000225FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
C0000040 flags
Initialized Data
Read Write
64デフォルトの名無しさん (ワッチョイ 3ebb-fVZy)
2021/12/17(金) 21:35:28.65ID:IQClZtiS0
>>62
>staticはコード領域に確保される

これはあってんの?
65デフォルトの名無しさん (ワッチョイ 0f18-RSrH)
2021/12/17(金) 21:40:51.67ID:A3/Tt7aa0
xpSP2以降、自己書き換え禁止されたはずだから嘘だと思うけど
66デフォルトの名無しさん (ワッチョイ 7e33-bJft)
2021/12/17(金) 22:19:09.70ID:RGFXVjzf0
嘘つきはMicrosoftの始まりって聞いたで
67デフォルトの名無しさん (ワッチョイ 2a01-7mHJ)
2021/12/17(金) 22:37:03.33ID:ePonqmC10
>>64
ざっくりだけどあってる

AppDomainのLoaderHeapのHigh Frequency Heapと呼ばれる場所に
MethodTable Strucureの一部として確保される
Heapと名前がつくがGC HeapやLarge Object Heapとは別で
GCはされずAppDomainがアンロードされるまで生きてる

AppDomainをざっくり言えばコード領域
68デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/17(金) 23:21:12.45ID:g/fCEX7wa
ざっくり曲げすぎ。そもそもいわゆるコード領域はリードオンリーだよ
69デフォルトの名無しさん (オッペケ Srb3-fmnO)
2021/12/18(土) 01:21:58.30ID:4KhQcFRSr
とにかくGC連打
メモリ管理をどうこうしようなんて考える必要なし
70デフォルトの名無しさん (ワッチョイ 0f18-RSrH)
2021/12/18(土) 01:27:31.41ID:5vur9Hw60
結局、Dispose()だらけで汚いコードだらけみたいな。
71デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/18(土) 01:36:05.34ID:T7YxQHIHa
いやいや。disposeは必ずしろよ・・・
72デフォルトの名無しさん (ワッチョイ 3b01-WooP)
2021/12/18(土) 01:51:37.69ID:pciZCSWm0
某現場で提供されてたDB接続クラスがIDisposable持ってるからusingで書いたら全然動かん
よく見たらdispose内でロールバック処理が入ってて目を疑った
73デフォルトの名無しさん (ワッチョイ a301-eGgJ)
2021/12/18(土) 02:07:40.04ID:hd7cWOei0
それどうなったの
74デフォルトの名無しさん (ワッチョイ 3b01-WooP)
2021/12/18(土) 02:38:11.15ID:pciZCSWm0
>>73
周りに聞いたらみんなusing使わないようにしてた
ライブラリは別部署からの提供品で、修正してもらう手続きがめんどくさいから・・・
75デフォルトの名無しさん (ワッチョイ bea7-4tmb)
2021/12/18(土) 03:04:40.74ID:+EDLAGXQ0
usingはMSの提供品ならアリ
それ以外のライブラリでは信じるに値しない
精々努力目標がいいとこ
76デフォルトの名無しさん (オッペケ Srb3-fmnO)
2021/12/18(土) 03:11:34.73ID:4KhQcFRSr
>>72
何そのトラップw
作った奴アホだろ
77デフォルトの名無しさん (アウアウウー Sa9f-xPAV)
2021/12/18(土) 03:25:01.34ID:rlJS0/xAa
>>75
別にDisposeの実装だけが特別バグりやすい理由はどこにもないので、
それは羹に懲りて何とかそのものだねw
78デフォルトの名無しさん (ワッチョイ bea7-4tmb)
2021/12/18(土) 03:48:54.74ID:+EDLAGXQ0
別にStreamWriterのusingも疑えって言ってるわけじゃない
ただ、チェックされてる保証がないモノを無条件に信じるのはやめろってこと
少なくともMS提供品以外のusingは使うなら一度はdisposeの実装に目を通したほうがいい

ブラックボックスのライブラリはメモリリークしてても不思議じゃないから場合によっては
別プロセスにしてキックしないといけないかもしれない
79デフォルトの名無しさん (ワッチョイ bea7-4tmb)
2021/12/18(土) 04:00:36.02ID:+EDLAGXQ0
そもそもなまじガベコレなんてあるから
綺麗な後始末にはヘルプをよく読まないといけないクラスが多い気がする

まあ、その前にアプリを終了してしまえば問題は起きないが
サービスとかだとこいつが牙をむく場面が多い
80デフォルトの名無しさん (アウアウウー Sa9f-xPAV)
2021/12/18(土) 04:43:58.91ID:QLDMMuZWa
>>78
人の話聞かない人?
だから、同じことはDispose以外の全てのメソッドについても当てはまるでしょ。

他人の作ったものは全て信じられないから使わない。
これなら偏執狂的ではあっても論理的に一貫している。
しかしDisposeだけ疑うのは羹に(
81デフォルトの名無しさん (ワッチョイ a301-izju)
2021/12/18(土) 05:17:14.21ID:4kEqj5670
>>68
厳密にいうと微妙に違う属性みたい

SECTION HEADER #1
.text name
1830C virtual size
1000 virtual address (0000000140001000 to 000000014001930B)
18400 size of raw data
400 file pointer to raw data (00000400 to 000187FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
60000020 flags
Code
Execute Read
82デフォルトの名無しさん (ワッチョイ 5f78-kSWT)
2021/12/18(土) 07:53:04.33ID:EMtIeou+0
>>72
トランザクション処理を行っていたらロールバックする仕様は普通じゃね?
83デフォルトの名無しさん (ワッチョイ bea7-4tmb)
2021/12/18(土) 08:55:44.41ID:+EDLAGXQ0
>>80
まあ、確認対象に入るだけとも言うな
84デフォルトの名無しさん (ワッチョイ bea7-4tmb)
2021/12/18(土) 08:59:22.77ID:+EDLAGXQ0
>>82
失敗してないのにやるんじゃない?
usingを正常に抜けるための何らかの条件があってそれがされてないと
disposeで失敗とみなしてロールバックするんじゃね?
その条件はソースを見るか組んだやつしかわからんが
85sage (ワッチョイ a301-izju)
2021/12/18(土) 09:13:54.47ID:4kEqj5670
>>55
以下ソースで30000ちょっとでスタックオーバーフロするから、
それなりに意識する必要のある人もいるように思われ
企業が作るデカイアプリとか

public class Hello
{
public static void a(int n)
{
System.Console.WriteLine(n);
a(n + 1);
}

public static void Main()
{
a(0);
System.Console.WriteLine("hello world!");
}
}
86デフォルトの名無しさん (ワッチョイ a301-izju)
2021/12/18(土) 10:36:30.21ID:rkAxz2WM0
https://dotnetfiddle.net/tXv7Oq
ランダムで0〜100までの数値を出して0〜50と50〜80、80~100の場合に分けてそれぞれを表示するプログラムです
場合分けを増やすとどうしてもforが複数回繰り返してしまいます、2回目以降の
for (int i = 0; i < 5; i++)
を1回に抑えたいのですが何かいい方法はありませんか?
87デフォルトの名無しさん (ワッチョイ be46-eOGQ)
2021/12/18(土) 10:42:34.52ID:/Zq/GLbL0
なんかの
88デフォルトの名無しさん (ワッチョイ be46-eOGQ)
2021/12/18(土) 10:43:28.05ID:/Zq/GLbL0
なんかのデータ構造を3つ用意して一回のループで分けるとか
一回全部ソートして前から見ていくとか
89デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/18(土) 10:46:28.80ID:T7YxQHIHa
linqなんかを使うって方法もあるけど実質同じだからなしだよな
stringをいくつか用意しといて、最初のforの中でconsole出力するんじゃなくてstringに値を格納
for抜けてからconsole出力するとか?
90デフォルトの名無しさん (ワッチョイ 0f18-RSrH)
2021/12/18(土) 11:37:28.63ID:5vur9Hw60
普通にcommitしてからdispose()すればrollbackしないんじゃねーの?
原因不明で途中終了されたらrollbackするのは普通に見える。

とにかくデストラクタがC++と同じタイミングで走ってくれれば
C#にdisposeはいらなかったんじゃないのかと初心者のボクは思うわけですよ。
91デフォルトの名無しさん (ワッチョイ 5f78-kSWT)
2021/12/18(土) 11:57:23.73ID:EMtIeou+0
>>86
宿題っぽいから単純にメソッドを分けてみたよ
https://dotnetfiddle.net/639EZQ
92デフォルトの名無しさん (ワッチョイ 0f18-RSrH)
2021/12/18(土) 12:12:33.65ID:5vur9Hw60
速度重視なのかメモリ効率重視なのかによるよな。
普通は分けたデータは再利用するので3つ分の配列を作ってそこに入れるかな。
なら場合分け処理は最初の1ループ一回しかしないで済む。
93デフォルトの名無しさん (ワッチョイ 1f02-kYDk)
2021/12/18(土) 13:11:47.91ID:Y+I1/Zg80
自分も分離と利用を分けるかな。
こんな感じ。
https://dotnetfiddle.net/OMdmbO
94デフォルトの名無しさん (アウアウウー Sa9f-xPAV)
2021/12/18(土) 14:04:14.85ID:GkRVZLhXa
>>86
その例なら単純にdata[]を昇順にソートしてから

var i = 0;
Console.Write("0以上50未満:");
for (; data[i] < 50 && data[i] >= 0; i++) { ... }

Console.Write("50以上80未満:");
for (; data[i] < 80 && data[i] >= 50; i++) { ... }

とかでいいんじゃないの?
95デフォルトの名無しさん (ワッチョイ 2a01-7mHJ)
2021/12/18(土) 14:32:27.17ID:iUN/Cy1s0
>>90
disposeでrollbackするのはConnectionじゃなくてTransactionだと思う
いずれにしても動かなくなるのは使う側の問題だね
96デフォルトの名無しさん (ワッチョイ 0f2f-j66Y)
2021/12/18(土) 14:56:48.68ID:yfxR8FS90
>>90
正確には、コミットしたあと、何もない処理をロールバックするんじゃないかな
実質何もしないのと同じ
未コミットあるかないか確認するのが丁寧ではあるだろうけど

なんにせよIDisposableなDB接続クラスを未コミットでDisposeするのは使い方が悪いわ
97デフォルトの名無しさん (ワッチョイ 2a01-7mHJ)
2021/12/18(土) 18:11:55.26ID:iUN/Cy1s0
>>95
うー、俺が間違ってたわ
https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlconnection.close?view=dotnet-plat-ext-6.0#remarks
98デフォルトの名無しさん (ワッチョイ a301-izju)
2021/12/18(土) 22:12:35.26ID:4kEqj5670
ここってスキル高そうな人いるみたいだけど、以下でランキング入りできますか?
paiza.jp/botchi/ranking
paiza.jp/steins_gate/ranking
paiza.jp/logic_summoner/top/ranking
99デフォルトの名無しさん (ワッチョイ a301-izju)
2021/12/18(土) 23:03:36.27ID:rkAxz2WM0
色々ありがとうございます、自分に合ったものを探してみたいと思います
100デフォルトの名無しさん (ワッチョイ 1f5f-4jiE)
2021/12/19(日) 14:12:33.67ID:XEu/0Ow00
1.jpg
10.jpg
2.jpg

1.jpg
2.jpg
10.jpg
のように自然順ソートできるライブラリありませんか?
Windows,Mac,Linuxで動かせるものがほしいです
101デフォルトの名無しさん (ワッチョイ be63-Ucht)
2021/12/19(日) 14:34:22.80ID:O/qDX0wZ0
ライブラリはないと思うよ
君の言う自然順の定義が適当すぎるからね
102デフォルトの名無しさん (アウアウウー Sa9f-xPAV)
2021/12/19(日) 14:37:18.67ID:pYj8pB6Ua
>>100
古い記事だけど参考まで
今は標準で実装されてるかも
https://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%A6%B5%E6%2F111
103デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/19(日) 14:38:55.11ID:n0pWJPWXa
nugetとかgoogleで「natural sort」
104デフォルトの名無しさん (テテンテンテン MMe6-J8DE)
2021/12/19(日) 14:48:02.86ID:wbja7KXrM
漢数字やローマ数字は?
全角は?
105デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/19(日) 15:12:30.82ID:n0pWJPWXa
全角ぐらいならnatural sortにCompareOptions.IgnoreWidth渡せばできる
漢字はやりたきゃ自分でやるか日本語対応のを探すしかないだろうな
106デフォルトの名無しさん (ワッチョイ 0f18-RSrH)
2021/12/19(日) 15:24:46.95ID:JBr0bC1G0
漢数字やローマ数字対応してもICompareを実装するのにおそらく10分。
107デフォルトの名無しさん (ラクッペペ MMe6-Ucht)
2021/12/19(日) 16:12:08.38ID:3MHXzmFiM
こういう手合いは追加要件が出てくるのが基本だから最後には自分で実装しろって回答になってるはず
108デフォルトの名無しさん (アウアウウー Sa9f-xPAV)
2021/12/19(日) 16:56:47.20ID:EE70Ra2ja
なんか頭おかしい奴が大量に湧いてるけど、少なくとも2000年代の前半には
「自然順ソート」という概念はあった。

何が「こういう手合い」だバカw
ウンコはお前の方だろ。
109デフォルトの名無しさん (ワッチョイ beb0-i1tV)
2021/12/19(日) 17:14:52.86ID:kxTQmf/60
なるほど。
https://ja.wikipedia.org/wiki/自然順
110デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/19(日) 17:29:08.07ID:n0pWJPWXa
"2.jpg" "123.jpg" "500.jpg" "百日紅(さるすべりの花).jpg" "百.jpg"
用途によっては漢数字も数字としてソートしたい場合もある
今回は漢数字不要だろうけど、「こういう手合い」になることは多い
111デフォルトの名無しさん (スップ Sd2a-OcGH)
2021/12/19(日) 17:50:05.64ID:TLyD+52gd
ソート順って問題になることが多いからな
特に日本語は色んな文字を使うので厄介
カナとか漢字あたりの動作がめちゃくちゃでいいならライブラリなんていくらでも見つかるだろうけど後からケチ付けられないようにしとくのは大事
112デフォルトの名無しさん (アウアウウー Sa9f-kSWT)
2021/12/20(月) 05:46:43.82ID:3MMk62pZa
タブコントロールの色ってフォームのデザイナーから変えられないの?
113デフォルトの名無しさん (スッップ Sd8a-e+q/)
2021/12/20(月) 10:32:55.78ID:f5rUAgGLd
職場でcsc.exe使ってフォームアプリつくろうと思ったけど
コマンドプロンプト自体制限されてて使えなかったなり
114デフォルトの名無しさん (ワッチョイ a301-eGgJ)
2021/12/20(月) 14:19:05.77ID:qyvCBTAG0
csc.exeのショートカット作って、
プロパティでオプションやソースファイル指定するとか
115デフォルトの名無しさん (ワッチョイ 1f5f-4jiE)
2021/12/20(月) 14:20:33.92ID:zxhyAyTl0
自然順ソートっ標準で搭載されている言語って結構少なかったんですね
PHPから入ったので当たり前に貼るものだと思ってました
頂いた情報で組んでみます
116デフォルトの名無しさん (アウアウウー Sa9f-2GdG)
2021/12/20(月) 14:24:01.64ID:wYqxvWvia
chartコントロールについてですが、折線グラフを使用したときにデータポイント間の線上の任意のX位置を取得してその箇所のY値を取得することは可能でしょうか
117デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/20(月) 14:26:28.21ID:BkeSeNUYa
線の中にPoints[]があってそこにXValueとYValueがあるからそれ読めばいい
118デフォルトの名無しさん (アウアウウー Sa9f-2GdG)
2021/12/20(月) 14:35:19.70ID:/nEC48Zya
>>117
ありがとうございます
ちょっと試してみます
119デフォルトの名無しさん (アウアウウー Sa9f-xPAV)
2021/12/20(月) 14:39:36.28ID:I6RlAoqPa
116の人が聞いてるのはいわゆる「内挿」ってやつのことだと思うけど、
そんな気の利いた機能がchartについてるかな。

使ったことないから知らんけどついてないと思うw
120デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/20(月) 14:49:56.05ID:BkeSeNUYa
ああ、そういう意味か。それはないな
読めるのは追加した点だけ
121デフォルトの名無しさん (アウアウウー Sa9f-2GdG)
2021/12/20(月) 15:38:01.47ID:EVpX0LdIa
>>116です
そうですか。。できませんか
では取得した位置の近いほうのデータを使うことにします
ありがとうございました
122デフォルトの名無しさん (スププ Sd8a-WIuU)
2021/12/20(月) 15:58:56.17ID:hpQP1bPDd
>>113
powershell使えば
123デフォルトの名無しさん (アウアウウー Sa9f-xPAV)
2021/12/20(月) 17:33:26.35ID:I6RlAoqPa
>>121
でも求め方は中一レベルの数学だから難しくないでしょ
124デフォルトの名無しさん (アウアウウー Sa9f-2GdG)
2021/12/20(月) 18:59:07.12ID:/usP9Uara
>>123
あっ。そうですね。2点のXYデータがわかるわけだから折線だったら計算でだせますね。ありがとうございます

すみませんがもう1点だけ質問いいでしょうか
グラフの拡大縮小をしたときにX軸にスクロールバーがでると思いますが、それを元の表示に戻したいときにスクロールバーの横の小さいボタンを押すと戻りますが、これを自前のボタンイベントで実装するにはどうしたらいいでしょうか
125デフォルトの名無しさん (アウアウウー Sa9f-xPAV)
2021/12/20(月) 19:19:36.55ID:I6RlAoqPa
>>124
AxisScaleView.ZoomReset ?
使ったことないのであってるかどうか知らない。
126デフォルトの名無しさん (アウアウウー Sa9f-2GdG)
2021/12/20(月) 22:05:52.14ID:4d89Imwra
>>125
ありがとうございます!
期待通りの動きが確認できました
127デフォルトの名無しさん (ワッチョイ 0f01-izju)
2021/12/21(火) 19:30:29.17ID:smn5oieg0
海外の12歳の少女が、NFTで1億8000万円を稼ぐ

12歳のナイラ・ヘイズ氏のNFT(※)コレクションが、数時間で160万ドル(約1億8000万円)
を稼ぎ出したと、米メディアの『Business Insider』が報じている。
ヘイズ氏は4歳で絵を描き始め、9歳のときにスマートフォンを使って彼女の代表作
「Long Neckie Ladies」を描いたという。このシリーズは3333点からなる、首の長い
多種多様な女性を描いたコレクションだ。出品後わずか数時間で売り切れとなり、
総額は約1億8000万円にのぼるという。
「アートは私が自分自身を表現し、言葉では不可能なやり方で人々を
驚かせるのためのもの」と述べている。
これまでにヘイズ氏は、NFTで1394ETH(約6億6000万円)を稼ぎ出してきた。
若きアーティストのさらなる活躍に期待しよう。
128デフォルトの名無しさん (ワッチョイ 7b24-8o0J)
2021/12/21(火) 20:26:03.81ID:A1/tNWXn0
>>127
マネーロンダリング定期
129デフォルトの名無しさん (ワッチョイ 1f02-O/WW)
2021/12/21(火) 23:18:04.09ID:F5aAVbmG0
c# winForms webView2
Form1にウェブビューとボタンを配置しました。
表示したwebサイトの方のボタンを、コードで指定して押させたいんだけどできますか?

(フォームに配置したボタンを押すと、HTMLの方のボタンが押される)
130デフォルトの名無しさん (ワッチョイ 6a8e-qezp)
2021/12/22(水) 00:11:20.30ID:jK1jR4AH0
できます
131デフォルトの名無しさん (ワッチョイ 1f02-O/WW)
2021/12/22(水) 00:15:56.40ID:3dt5vZu90
ありがと!
お手数おかけしますがどなたか教えてください
132デフォルトの名無しさん (ワッチョイ 1f02-O/WW)
2021/12/22(水) 00:20:23.33ID:3dt5vZu90
>>129ですが
実装の仕方を知りたいです...
133デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/22(水) 00:31:14.60ID:b3HiuJNda
form上のボタン押したら、web上のボタンを押すためのjavascriptをwebview2に突っ込む
詳しくは WebView2.ExecuteScriptAsync をぐぐれば出てくる
134デフォルトの名無しさん (ワッチョイ 535f-eATD)
2021/12/22(水) 08:04:47.48ID:UZclHfmg0
JavaのSpringフレームワークみたいにウェブサービス関係を学ぶにはASP.netでいいのですか?
net coreとかnet6とか用語が新しくできてASP.NETは廃止されたりしてませんか?
135デフォルトの名無しさん (ワッチョイ eaad-+GC8)
2021/12/22(水) 12:23:03.79ID:Af2fhJsR0
>>134
されてません
136デフォルトの名無しさん (ワッチョイ 8a47-WIuU)
2021/12/22(水) 12:47:15.14ID:xFuE7Z410
>>134
今ならASP.net coreですね
137デフォルトの名無しさん (ワッチョイ 535f-eATD)
2021/12/22(水) 13:17:51.59ID:UZclHfmg0
>> 135 >>136

ありがとう。
138デフォルトの名無しさん (ワッチョイ 9749-i1tV)
2021/12/22(水) 16:32:03.68ID:Gb4RQ3pz0
.NET 6 のASP.NET Core Web Apiでの質問です。

[ApiController]
[Route("[controller]")]
public class UserController : ControllerBase
{
private readonly ILogger<UserController> _logger;
private readonly IConfiguration _config;

public UserController(ILogger<UserController> logger, IConfiguration config, IBearerTokenValidater bearer)
{
_logger = logger;
_config = config;
}

[HttpGet(Name = "GetUsers")]
public string Get()
{
★ var _ = Request.Headers.TryGetValue("Bearer", out var apiKey);
return apiKey;
}
}

というControllerを作りました。
★の処理を本当はコンストラクタで行いたいのですが、移動すると以下のエラーが出ます。(もしくはもっと前に行いたい)

System.NullReferenceException: 'Object reference not set to an instance of an object.'
Microsoft.AspNetCore.Mvc.ControllerBase.Request.get が null を返しました。

★の処理をコンストラクタ(もしくはもっと前)で行うにはどうすればいいでしょうか。
(コンストラクタではHttpcontextを参照できないのでしょうか。エラーになるのは起動時ではなくRequestで到達した時です。)
139デフォルトの名無しさん (ワッチョイ a6da-SJTP)
2021/12/22(水) 17:24:08.56ID:GlBmoaYS0
>>138
Requestヘッダにアクセスするユーティリティクラスを作ってそれをDIする。
ちょっとstackoverflow検索すれば出てくると思うが。
https://stackoverflow.com/questions/24024291/web-api-read-header-value-in-controller-constructor

まぁAPIキーを調べたいなら、いちいちControllerでやるより
StartUpの段階で検証処理を割り込ませておくのが定石だと思うが。
140デフォルトの名無しさん (ワッチョイ 7bd3-oRuC)
2021/12/22(水) 19:57:47.15ID:gZ1M8pW10
char[] str = { 'A', 'A', 'A', '\0' };
Span<char> span = str.AsSpan();

char[]型からSpan<char>型へは、AsSpan()を使って取り出せるのですが、
Span<char>型からchar[]型へ、取り出す方法はないのでしょうか?
SpanのToArray()は新しい配列を作ってしまうので、それではないです
141デフォルトの名無しさん (ワッチョイ dabd-lbJU)
2021/12/22(水) 20:11:28.65ID:LzRptcUf0
List〈staring〉の中に複数四角の座標点が入っていて、四角と四角重なってるものを再計算して重なりがなくなるまで繰り返したいんですが、これは無限ループですよね?
重なった時の再計算方法は別にしてコードの構成ってどうやってやるのか教えて欲しいです。
142デフォルトの名無しさん (ワッチョイ bea7-4tmb)
2021/12/22(水) 20:18:40.21ID:epvDktEA0
>>141
よくわからないけど
List<Rect>みたいな感じ?
143デフォルトの名無しさん (ラクッペペ MMe6-8gNF)
2021/12/22(水) 20:25:56.04ID:svF48xPZM
>>141
重なりは無くならないのですか?
無くなるのなら無限ではありませんね
144デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
2021/12/22(水) 20:54:43.67ID:ASx8K7vaa
2つの四角が重なってたら最大5つの四角に分割するってことなのかな
こんな関数用意して全組み合わせのstaringが分割しなくなるまでぶんまわす

List<staring> 分割処理(staring a, staring b)
{ (aとbが重なってたら分割して返す)}
145sage (ワッチョイ 1f02-O/WW)
2021/12/22(水) 21:36:42.01ID:3dt5vZu90
>>133
ありがとうございます
146デフォルトの名無しさん (ワッチョイ dabd-lbJU)
2021/12/22(水) 22:51:01.68ID:LzRptcUf0
携帯なので伝わるかあれですが、まず元リスト(oLst)を
昇順に並び替えた上で下記のループを通すと1個に対して1個の重なりに関しては問題ないんですけど、2個3個と重なるともちろん無理なんですけど、、、、

======================
for oLst ループ

 ※数値変数格納

 if nLst.Countが0はoLst[i]をadd

 else

for nLstのloop

  ※数値変数格納

  ※oLst変数とnLst変数で重なり計算
  
  計算結果でnLst書き換え、追加

======================
147デフォルトの名無しさん (ワッチョイ 6a8e-qezp)
2021/12/22(水) 23:11:35.00ID:jK1jR4AH0
ロジック(頭)の問題だからスレチ
148デフォルトの名無しさん (ワッチョイ bea7-4tmb)
2021/12/23(木) 00:31:07.80ID:OWAFmQuW0
重なってたらどうするん?
重なってたら重ならないように移動って処理なら無限ループありえるよ
そもそも与えられた領域に対して四角形の面積のが大きかったらどう処理しようが重ならないようにするのは不可能でしょ
149デフォルトの名無しさん (ワッチョイ 7e33-bJft)
2021/12/23(木) 01:52:30.77ID:xiJKAqfg0
質問者c#使う気ナッシングでワロタ
150デフォルトの名無しさん (ブーイモ MM17-eDst)
2021/12/23(木) 06:06:41.21ID:9nVKwS0QM
学校の課題が出る季節なのか?
151デフォルトの名無しさん (ワッチョイ 9749-i1tV)
2021/12/23(木) 09:21:59.12ID:QC2UxaCs0
>>139
返信ありがとうございます。
やっぱりどこかで取ってからDIしたほうがいいですよね

.NET 5 まではStartupでいろいろやってたんですが、
.NET 6 のASP.NET Core WebだとStartup.cs自体やConfigure周りがないんですよね・・・
(少なくともプロジェクト作成時点で)
なので起動後、URLアクセス時点でコントローラに直に行ってるように見えます・・

.NET 6のググラビリティもそんな良くないですが、
DI自体はbuilder.Services.AddTransientあたりでできているので、そっちで出来ないか、
最悪はStartupを自作出来ないかまた調べてみます!
152デフォルトの名無しさん (ワッチョイ 7b24-8o0J)
2021/12/23(木) 09:47:09.94ID:lsirm1I00
>>140
君はspanの実態がchar[] strと知ってるかもしれないけど言語側からはそんなこと分からないからそれは無理だね
char[]含めマネージ型はアンセーフな方法で作る事は不可能なので、もしそのspanの実態がstackallocとかだとしたら大変な事になるし
どうしてもやりたいならMemory<T>を使えばできる
153デフォルトの名無しさん (ワッチョイ a6da-SJTP)
2021/12/23(木) 14:18:00.17ID:D5zS0GJt0
>>151
.NET6でもStartupがC#9.0のトップレベル構文に変わってProgram.csに組み込まれただけでしょ?
例えばJWTならProgram.csで以下のように検証処理を登録可能じゃないのかな

using (var serviceScope = app.Services.CreateScope())
{
  services.AddAuthentication( JwtBearerDefaults.AuthenticationScheme ).AddJwtBearer( options => ほげほげ);
};
でservice取得して.NET5以前のConfigureServices相当の処理が出来ると思うが。
(というか出来ないと困るw)
154デフォルトの名無しさん (ワッチョイ a6da-SJTP)
2021/12/23(木) 14:20:58.23ID:D5zS0GJt0
services取得する文が抜けてた失礼
using (var serviceScope = app.Services.CreateScope())
{
  var services = serviceScope.ServiceProvider;
  services.AddAuthentication( JwtBearerDefaults.AuthenticationScheme ).AddJwtBearer( options => ほげほげ);
};
155デフォルトの名無しさん (ワッチョイ 9749-i1tV)
2021/12/23(木) 16:52:51.25ID:QC2UxaCs0
>>153
ありがとうございました。
コードまで書いてもらってすみません。

Jwtでのやりかたは
https://www.c-sharpcorner.com/article/jwt-token-authentication-and-authorizations-in-net-core-6-0-web-api/
のやりかたで出来ました(サービスのDIみたいな。staticですが)

ですが今回は、JWTでなく独自のランダム文字列で、DBで検証したいと思っています。

AddAuthenticationは参考になりました!
.NET 5 ではAuthenticationHandlerを継承しHandleAuthenticateAsyncをオーバーライドしてrequestを処理してました。。
いまだにHttpContextをコンストラクタ前に参照するやり方がわかりませんが、悩んでみます。

しかし、requestHeaderを全URLでDBで解析したいってだけなので、本来複雑になるのもおかしいんですよね・・・
FilterもちょっとアレですしJwtにしても複雑になっててちょっとな・・・
156デフォルトの名無しさん (ワッチョイ 7bd3-oRuC)
2021/12/23(木) 17:22:50.07ID:ZRc9iK9X0
>>152
なるほどです、ご解説ありがとうございます
Memory<T>の方も調べてみます
157デフォルトの名無しさん (ワッチョイ d32d-8t7q)
2021/12/24(金) 13:32:10.30ID:XCrVpQjR0
オブジェクトをバイナリで直列化するにゃ結局どうすりゃええんじゃ。
binaryFormatterはASPじゃ使えんし、nugetで見つけたBinarySerializerも
すぐ無限ループで止まるし遅いしで使えなさそう。
JsonSerializer感覚で使えるバイナリのシリアライザは無いんか……
158デフォルトの名無しさん (アウアウウー Sadd-j5Xv)
2021/12/24(金) 14:34:05.08ID:dgPpP4/Qa
バイナリであることに意味があるとは思えないので(だって全てはバイナリだから)
要するに吐き出すサイスが小さい and/or 高速であればいいんだよね?

いや答えは持ってないけどw
159デフォルトの名無しさん (ブーイモ MM5b-4VuR)
2021/12/24(金) 14:52:18.99ID:QunxCEetM
MSは廃止されたWCFの代替としてgrpcを推奨してるから、バイナリ形式のシリアライザはprotobufでいいんじゃね
160デフォルトの名無しさん (ワッチョイ d32d-8t7q)
2021/12/24(金) 16:56:42.12ID:XCrVpQjR0
>>158
せや。今ワイは差分データを管理してオブジェクトグラフの去就を眺められるようなアプリを作っとるんやが、
バイナリにすりゃ20バイトのデータがJsonを経由すると5倍とかに膨れてまうんや。
そんだけ差があると1000オブジェクトの各1000差分で100MBとか差が出ちまうわけで。
ここをもっと高圧縮+高速展開できるフォーマットにしたいんや。
161デフォルトの名無しさん (ワッチョイ 3fae-p1N6)
2021/12/24(金) 16:58:00.07ID:hnRiR98X0
し、し・・・尻洗い座
162デフォルトの名無しさん (アウアウウー Sa71-+Efm)
2021/12/24(金) 16:59:17.78ID:dl4nCBdHa
あのclassもこのclassもなんでもかんでもシリアライズしたいんだ、じゃなくて特定のデータか
ならbinarywriterで十分だろ
というか、binaryformatterよりもはるかにいいだろ
163デフォルトの名無しさん (ワッチョイ d32d-8t7q)
2021/12/24(金) 17:03:08.03ID:XCrVpQjR0
binaryWriterでやりくりするにもインスタンスが持ってる別のオブジェクトの参照をどうするか問題が面倒すぎるやろ。
binaryFormatterならその辺はスルーできるわけで。
164デフォルトの名無しさん (ワッチョイ 9978-bp1O)
2021/12/24(金) 18:37:43.23ID:7pq3d27z0
>>163
MessagePack for C#
165デフォルトの名無しさん (スッップ Sdaf-kITW)
2021/12/25(土) 11:18:28.56ID:/ADmtxYCd
フォームにいろいろ書き込んだ内容を印刷したんですけど、フォーム直印刷だとリストビューとかあるので見きらないんで、なんかいい方法ないですか?
Excelに貼るとかですかね?
166デフォルトの名無しさん (ワッチョイ 0124-SPNH)
2021/12/25(土) 13:13:26.63ID:R3AeJQpZ0
>>160
速度、データサイズ共に最高な汎用シリアライズフォーマットはGoogleが開発したProtocol Buffers
167デフォルトの名無しさん (ワッチョイ b101-j5Xv)
2021/12/25(土) 15:24:03.77ID:sZ4+jXNJ0
>>161
パナソニックがお勧め。
168デフォルトの名無しさん (アウアウウー Sadd-j5Xv)
2021/12/25(土) 16:31:25.59ID:lta8bYVGa
>>165
GDI+の印刷は多少面倒くさいけど別に難しくはない。
好きなように自分で実装するのが一番じゃないの?
169デフォルトの名無しさん (オッペケ Sra9-YdH9)
2021/12/25(土) 18:32:48.38ID:R611sM/xr
WinFormsのデスクトップアプリ開発でデスクトップアプリ内に組み込むデータベースはSQLiteしかないですか?
むしろSQLiteが最適ですかね?
170デフォルトの名無しさん (ワッチョイ 9347-ev7J)
2021/12/25(土) 18:57:35.10ID:uQo3kTST0
>>169
accessのファイル形式のmdbとかaccdbとか
171デフォルトの名無しさん (ワッチョイ 9978-bp1O)
2021/12/25(土) 19:33:35.62ID:bx014roB0
>>169
LiteDBもSQLiteと同じシングルファイルだから運用楽でオススメ
172デフォルトの名無しさん (オッペケ Sra9-YdH9)
2021/12/25(土) 19:57:51.53ID:R611sM/xr
>>170
>>171
ありがとうございます!
その後調べてSQLiteが定番っぽいですね
信頼性と速度も速いですし
173デフォルトの名無しさん (ワッチョイ 6b8e-V3ae)
2021/12/25(土) 20:10:02.35ID:/fiswOOz0
>>172
馬鹿って人の言うことに耳を傾けないから馬鹿なんだよな
174デフォルトの名無しさん (アウアウウー Sa71-ps/A)
2021/12/25(土) 20:37:46.29ID:gvd3przGa
こいつが部下だったらちょっとキレるかもしれんw
175デフォルトの名無しさん (ワッチョイ 1f18-B4r9)
2021/12/25(土) 20:42:32.18ID:5ppS8Aaq0
理系ってバカ文系にいくら説明しても無駄だと散々経験してるから無視するよね。
176デフォルトの名無しさん (アウアウウー Sa71-+Efm)
2021/12/25(土) 20:43:40.19ID:Ba+2nHZ/a
litedbとかaccessよりsqliteの方がよほどいいからな。注意しないと激遅だけど
177デフォルトの名無しさん (オッペケ Sra9-YdH9)
2021/12/25(土) 20:46:17.70ID:R611sM/xr
>>173
なんか変なこと言いました?
教えてくれた4つを調べて比較したんですが
178デフォルトの名無しさん (ワッチョイ 1fda-Llus)
2021/12/25(土) 20:48:41.15ID:FMuPTmPe0
redisを使うのです
179デフォルトの名無しさん (ワッチョイ 1f18-B4r9)
2021/12/25(土) 21:00:27.06ID:5ppS8Aaq0
正直、褒めてるのかディスってるのか分からないレスだよな。
180デフォルトの名無しさん (ワッチョイ 03da-WfmY)
2021/12/25(土) 21:00:28.06ID:KekUyy+Z0
信頼性いうならSQL Server LocalDBじゃないの
181デフォルトの名無しさん (ワッチョイ 1301-uAVb)
2021/12/25(土) 21:21:27.23ID:PUQlITfY0
>>180
それ組み込みDBじゃないから
SQL-Server Compact Edtion はまだ提供されてるけど開発止まっちゃてるしねぇ
182デフォルトの名無しさん (ワッチョイ 572c-nHKY)
2021/12/26(日) 11:01:59.91ID:bwDwv7pP0
ブラウザとか、たいていのアプリは、SQLite
183デフォルトの名無しさん (ワッチョイ 3fae-p1N6)
2021/12/26(日) 11:39:00.73ID:/Mcnum8Y0
アプリの設定の保存に便利とか?
184デフォルトの名無しさん (ワッチョイ 1301-uAVb)
2021/12/26(日) 11:43:30.10ID:Ep2AbKxF0
そもそもVisual Studio自体がSQLite使ってるし
https://qiita.com/h_matsumura/items/e1597a985de25e2ea9c8
185デフォルトの名無しさん (ワッチョイ 3fae-p1N6)
2021/12/26(日) 11:50:44.60ID:/Mcnum8Y0
そういえばATOKのジャストシステムって、内部DBは昔から自社で抱え込んでるだけだっけ?
186デフォルトの名無しさん (ワッチョイ 0124-3cBe)
2021/12/26(日) 12:01:04.09ID:+dhDC6900
ちなみにSQLiteはWindowsならwinsqlite3.dllとして組み込まれてるから別途dllをダウソする必要なくDllImport("kernel32.dll")と同じ感覚で使える
winsqlite3はstdcallだから尚更何も設定せずに呼べる
逆にオフィシャルsqlite3.dllはcdecl呼びなので注意
まぁ今時ネイティブ呼びなんて一々する奴はおらんか
187デフォルトの名無しさん (ワッチョイ f701-rh2g)
2021/12/26(日) 12:35:17.11ID:CeLvnh/P0
個人的にはFirebirdがEmbeddedでもC/Sでも使い方変わらなくてとても扱いやすいけど
まあ誰も使ってないからなあ
188デフォルトの名無しさん (スププ Sd57-ev7J)
2021/12/26(日) 14:15:59.80ID:3V1vzGfad
>>186
nugetでラッパークラス持ってこればいいだけでしょ
189デフォルトの名無しさん (ワッチョイ 792f-WdtH)
2021/12/26(日) 18:59:54.98ID:XSCzp0/m0
チキンマックナゲット?
あれバーベキューソース以外はうまくないよね
190デフォルトの名無しさん (スププ Sdaf-ev7J)
2021/12/26(日) 19:19:54.19ID:0tkG5TaRd
>>189
C#er でnuget知らないのはモグリだね
191デフォルトの名無しさん (ワッチョイ ebad-wz/S)
2021/12/26(日) 19:21:20.78ID:za+d+iaN0
>>189
マスタード結構好きやで
192デフォルトの名無しさん (アウアウウー Sab3-Td/R)
2021/12/27(月) 09:55:41.47ID:wVOMt1/ia
me too
193デフォルトの名無しさん (ワッチョイ cf01-epTM)
2021/12/27(月) 11:45:32.82ID:vQCGjWOK0
マックはやっぱり朝マック
ソーセージマフィンとハッシュポテト最高
194デフォルトの名無しさん (ブーイモ MM5b-2F4e)
2021/12/27(月) 11:50:50.36ID:70kYKKIvM
ここ1年ぐらいで急に最近もの忘れが増えた
なんでだろう
カルボナーラのレシピ間違えて大失敗
(´Д`)ハァ…
195デフォルトの名無しさん (ワッチョイ 8da7-knFX)
2021/12/27(月) 23:31:50.52ID:j+U+mLOY0
>>194
シチューじゃないんだけど
シチューでも美味しいだろ?w
196デフォルトの名無しさん (アウアウウー Sadd-j5Xv)
2021/12/28(火) 03:27:40.46ID:fTNrE9qna
キャラメルみたいな奴:それはヌガーや
Xファイルの...:それはドゲットや

>>194
フルスクラッチで作らんでもレトルトで十分おいしいねw
ベーコンとブラックペッパーを足せば
197デフォルトの名無しさん (ワッチョイ 495f-jX8X)
2021/12/28(火) 14:41:54.41ID:KhNUA+lU0
.Net 6 を利用してlinuxで開発することは不可能ですか?
ほとんどWindowsの記事しかないのですが、できないと考えていいでしょうか?
198デフォルトの名無しさん (ワッチョイ 495f-jX8X)
2021/12/28(火) 14:42:14.18ID:KhNUA+lU0
.Net 6 を利用してGUIソフトをlinuxで開発することは不可能ですか?
ほとんどWindowsの記事しかないのですが、できないと考えていいでしょうか?
199デフォルトの名無しさん (アウアウウー Sa71-+Efm)
2021/12/28(火) 15:07:47.70ID:x0tKn+Lqa
.net6はlinux対応してるし、linux対応のvscodeなんかもあるから十分linux完結でできるだろ
やったことないからどんなトラブル起きるか知らないけど
200デフォルトの名無しさん (ワッチョイ 5333-+mB7)
2021/12/28(火) 15:48:12.29ID:nNq9VLvH0
コンソールとかならできると思うけど、GUIはどうなんだろう?
Xamarin.Formsとかでいけるんかね?
201デフォルトの名無しさん (ワッチョイ b342-t0J7)
2021/12/28(火) 16:09:42.66ID:onzdS06W0
unoというUWPアプリを作ると、スマホやリナックス、webに翻訳してくれるソリューションがあるな
202デフォルトの名無しさん (テテンテンテン MM97-garQ)
2021/12/28(火) 16:26:15.60ID:I0zktY0qM
AvaroniaUIってどうなったんだ
マイナーすぎて消えた?
XAMLじゃ流行らんよな。。。
203デフォルトの名無しさん (アウアウウー Sa71-+Efm)
2021/12/28(火) 16:29:45.08ID:x0tKn+Lqa
mauiすら忘れ去られてる感じだな
204デフォルトの名無しさん (テテンテンテン MM97-garQ)
2021/12/28(火) 16:39:43.27ID:X7A0KCITM
XamlもBlazorも微妙なんでXMLリテラル導入してJSXパクってCSXとかやれば良いのに
205デフォルトの名無しさん (ワッチョイ 2bad-gjQl)
2021/12/29(水) 00:23:49.09ID:CdP0np+t0
>>202
最近 git credential manager で採用されたから君も実は使ってるんじゃない?
206デフォルトの名無しさん (ワッチョイ a101-Zi6h)
2021/12/29(水) 00:52:47.99ID:O0eaohY80
guiはラズパイでwinformが起動はしたけどちょっと動かしただけでアレがねーコレがねーでコケまくったので諦めた
コンソールアプリはサーバ用途でcから置き換えたりと普通に使ってる
207デフォルトの名無しさん (オッペケ Sr1f-YdH9)
2021/12/29(水) 10:57:21.23ID:BXs4L8uGr
なんでGUIって一向に解決しないんだろ
WinFormsがゴミだったからIEObjectかなんかでブラウザ表示させてそこにhtmlとcssのGUIをつくったことあったけどそれも手間で微妙だった
208デフォルトの名無しさん (スップ Sddb-kLRE)
2021/12/29(水) 11:23:01.28ID:8IhoLKLed
>>207
MS的には既にツール系はElectron、業務系はWebで解決してるからだよ
本気でWinUIが成功するとか社内でも誰も信じてなさそう
209デフォルトの名無しさん (ブーイモ MM5b-EQGr)
2021/12/29(水) 12:23:55.88ID:Ra2a7YlyM
エレクトロンは遅いからなー
見た目もそこそこで速くて開発が楽なフレームワークならまだ需要あると思うけど
210デフォルトの名無しさん (アウアウウー Sa71-+Efm)
2021/12/29(水) 12:34:02.62ID:YT6dcuk4a
一時期はGUIアプリのuiをwebにするの流行ったけどそれも消えたな
結局素のwinformで十分
マルチプラットフォームでのGUIアプリはそもそも需要がない
211デフォルトの名無しさん (アウアウウー Sadd-j5Xv)
2021/12/29(水) 13:49:36.52ID:FEkVVVGta
15年以上迷走してる最大の原因はたぶん大企業病だね
バルマーさんが「デベロッパー」連呼しなくなった頃でもあるよね

あと、ラピッドリリース的なアメリカ人好みの「ノリ」もよくない。
使えねーから利用者が増えず利用者が増えないから〜の悪循環の原因になってる。
たまたまC#と.NETは割とうまくいったけど他はだいたいこれで消えてるよね
212デフォルトの名無しさん (ワッチョイ 2bad-gjQl)
2021/12/29(水) 15:42:21.72ID:CdP0np+t0
>>208
TeamsはElectronを捨ててWebview2に移行したし、MSはそういう流れだよ
213デフォルトの名無しさん (オッペケ Sr1f-YdH9)
2021/12/29(水) 17:53:05.01ID:BXs4L8uGr
GUIはWebでいいから裏はc#ってのはないの?
Electron.Netってあったみたいだがどういうのかは知らん
214デフォルトの名無しさん (ワッチョイ 2bad-gjQl)
2021/12/29(水) 18:55:45.23ID:CdP0np+t0
>>213
Webview2
215デフォルトの名無しさん (オッペケ Sr1f-YdH9)
2021/12/29(水) 19:14:43.10ID:BXs4L8uGr
>>214
ガワはWinforms、フロントGUIはWebView2でReact、裏側はc#って可能?
216デフォルトの名無しさん (ワッチョイ 2bad-gjQl)
2021/12/29(水) 19:21:08.49ID:CdP0np+t0
>>215
できるよー
https://itnext.io/write-a-desktop-app-with-react-typescript-asp-net-core-and-webview2-3a15daef4d64
217デフォルトの名無しさん (オッペケ Sr1f-YdH9)
2021/12/29(水) 20:00:49.32ID:BXs4L8uGr
>>216
ありがとう!
素晴らしすぎる!
これで長年求めていたものがすべて作れそうだ
218デフォルトの名無しさん (ワッチョイ 6b8e-V3ae)
2021/12/29(水) 20:52:17.04ID:Nt8x11Lh0
間違いなく理解力しとらんだろうな
219デフォルトの名無しさん (ワッチョイ b101-epTM)
2021/12/29(水) 22:09:38.99ID:1mZddh0b0
MSはwinformsをブラッシュアップするだけでいいのに
他のことに気を取られてばかり
220デフォルトの名無しさん (オッペケ Sr1f-YdH9)
2021/12/29(水) 22:54:54.27ID:BXs4L8uGr
>>218
よく読んだらちょっと違うかも
実行環境にわざわざNode.jsをインストールしないといけない時点でElectronより面倒
あとバックエンドがc#ならNodeはなんのために入れるんだ?
221デフォルトの名無しさん (ワッチョイ 6d5f-0a5U)
2021/12/29(水) 23:14:59.32ID:wkYL84Sf0
>>220
そんなもの要らんだろ。
create-react-appで作ったアプリをそのまま実行する気なの?
いわゆるガワネイティブにするならaspnetcoreを使う必要も無い。
222デフォルトの名無しさん (ワッチョイ 8da7-knFX)
2021/12/29(水) 23:31:22.38ID:qvydRR790
>>210
消えてない消えてない
BADUSBがあるからUSB経由でデータが持って来れないから
WEB画面でデータ登録させるのは現役よ
ルータ設定みたいな画面出る
223デフォルトの名無しさん (ワッチョイ 9347-ev7J)
2021/12/29(水) 23:32:05.16ID:a/yruJDS0
>>221
バックエンドはC#で書きたいという要件なんだからそんなこと言っても意味ない
224デフォルトの名無しさん (ワッチョイ 6d5f-0a5U)
2021/12/30(木) 00:18:07.99ID:bIp4jvLE0
>>223
別にasp.net coreで受けんでもC#のメソッドとWebView2内のJavaScriptのinteropはできる。
225デフォルトの名無しさん (ワッチョイ 9347-ev7J)
2021/12/30(木) 00:41:07.70ID:zcLz16Vn0
>>224
そういうことじゃなくてサーバーサイドのDB処理などのビジネスロジックをC#で書きたいとか普通にある要望だろ
226デフォルトの名無しさん (オッペケ Sr1f-YdH9)
2021/12/30(木) 00:57:41.55ID:aPDyoOjbr
あーすまんやっぱできそうだね
https://qiita.com/NagaJun/items/baf00494e0841a5e767e

>>225
そうそう
バックエンドはc#でフロントはjs + React + bootstrapなどのcssフレームワークがいい

別にNode.jsでもいいんだがそれだともはやElectronになってしまうしこのスレ的に意味がない

とにかくWinFormsだとGUIが限界だしかといって今更wpfやuwpは使いたくない
227デフォルトの名無しさん (ワッチョイ 6d5f-0a5U)
2021/12/30(木) 03:45:43.54ID:bIp4jvLE0
あ、これはすまん、完全に誤解してたわ。
228デフォルトの名無しさん (ワッチョイ a9ad-nzDE)
2021/12/30(木) 05:11:02.37ID:X93R+eJ50
いいってことよ
229デフォルトの名無しさん (ワッチョイ a101-Zi6h)
2021/12/30(木) 05:24:01.14ID:ULSEZSm40
優しい世界
230デフォルトの名無しさん (ワッチョイ 3b5f-bp1O)
2021/12/30(木) 14:43:07.83ID:SV8D0i0R0
ツールバーはアイコン集めと選択が面倒で好きじゃない
231デフォルトの名無しさん (ワッチョイ 6d5f-0a5U)
2021/12/30(木) 15:52:58.20ID:bIp4jvLE0
しかしWebView2、割と良いな。
XamarinのWebViewもEdgeベースになってるので、ガワネティブはホントに捗るかも。
232デフォルトの名無しさん (ワッチョイ 9978-bp1O)
2021/12/30(木) 18:29:16.67ID:fY9tDQGH0
WebView2ってhtmlやcss、javascriptの知識が必須でしょ?
一から覚えるのは少し敷居が高すぎるんだよなぁ
233デフォルトの名無しさん (ワッチョイ a9ad-nzDE)
2021/12/30(木) 19:10:45.85ID:X93R+eJ50
cssはなくてもええんやで
234デフォルトの名無しさん (オッペケ Sr1f-YdH9)
2021/12/30(木) 19:31:49.55ID:5ETdhzffr
htmlやcssやったことがないならムリだろうね
俺は25年くらいやってるからむしろ何も考えずに作れる
235デフォルトの名無しさん (ワッチョイ 6d5f-0a5U)
2021/12/30(木) 19:34:16.23ID:bIp4jvLE0
>>232
XAMLで日本地図書いてホクホクしてた連中にとっては割と朝飯前だと思うぞ。
236デフォルトの名無しさん (ワッチョイ 0124-3cBe)
2021/12/30(木) 20:30:29.11ID:Q51k9VIp0
どっちにしても今時htmlとjsは避けて通れないやろ
スクレイピングツールの一つや二つは作るだろうし
237デフォルトの名無しさん (ワッチョイ 2b01-/iW8)
2021/12/30(木) 20:32:40.49ID:JgkxYzDs0
bootstrap5は使えないの?
238デフォルトの名無しさん (ワッチョイ 9f5f-nHKY)
2021/12/30(木) 20:41:45.42ID:eW25y3/J0
表 html css javascript
裏 C#

で開発するのって効率的なのか?
239デフォルトの名無しさん (テテンテンテン MM97-garQ)
2021/12/30(木) 20:46:42.24ID:Zu0xfojoM
フロント開発はReactが多分ベストなんで仕方なくJSかAltJSを使います
バックエンドは強い制約がないので好きな言語を使えばいいでしょう
そして自由に選べるならC#より快適な言語なんてありません
240デフォルトの名無しさん (ブーイモ MMc1-CT45)
2021/12/30(木) 20:47:53.26ID:QTRHqfCgM
>>238
まあ開発効率はともかく、今更XAML系のゴミを覚えるよりはスキルの価値を加味すればマシなんじゃないかな
JSに慣れたらそのうち裏もTypeScriptで書きたくなるだろうけど
241デフォルトの名無しさん (ワッチョイ 9f5f-nHKY)
2021/12/30(木) 20:53:16.32ID:eW25y3/J0
時代遅れのWindowsフォームからそろそろ逃げ出す先がほしいってことだよね
Web技術が好きならReact Native for Windows + macOSが選択肢になるんじゃないかな
242デフォルトの名無しさん (ワッチョイ a101-Zi6h)
2021/12/30(木) 23:12:19.19ID:ULSEZSm40
c#スレですよ
c#で積み上げたライブラリを別言語で書き直すのヤダ!派に救いの手を
243デフォルトの名無しさん (オッペケ Srbb-Ec79)
2021/12/31(金) 00:36:27.02ID:geAImU1qr
>>238
リッチなGUIにしたいときだけかな
244デフォルトの名無しさん (ワッチョイ bb5f-g2Am)
2021/12/31(金) 03:13:26.16ID:AHpR20H50
何年か前からだけどC#は目的がはっきりしてる人が使う言語になった感じがする
スキルの価値とか気にする人には全く向かない
システムプログラミング用の言語とスクリプト言語だけあればいい世界になってきた感じ
C#のような立ち位置の言語の利用シーンが広がっていくことはないのではないだろうか
245デフォルトの名無しさん (ワッチョイ 6301-cFo6)
2021/12/31(金) 03:41:36.53ID:ScgFuRuP0
何故そう思ったのかわからん
全然ピンとこない
246デフォルトの名無しさん (ワッチョイ 5bb0-m7xg)
2021/12/31(金) 09:41:30.53ID:ApQoIWIb0
>>238
いずれWebでやる前提ならいいけど、スタンドアロンで動かすだけなのに
わざわざそんな構成にするのは手間が増えるだけだな。
247デフォルトの名無しさん (ワッチョイ ba47-3i6b)
2021/12/31(金) 09:45:47.30ID:1BOJjA0/0
>>246
スタンドアロンの話はしてないだろ
248デフォルトの名無しさん (ワッチョイ 7fad-CykR)
2021/12/31(金) 09:48:56.35ID:XRzC6nSy0
スタンドアロンの話だろ
249デフォルトの名無しさん (アウアウウー Sac7-TuUh)
2021/12/31(金) 09:50:52.09ID:i/j6j8jEa
角が丸い四角や吹き出しや、そういうのGUIを純粋なC#で作るの面倒なんだよ
そういうときにhtml/css/javascript使うと簡単に作れる。スタンドアロンでもそういう構成にすると手間が減るんだよ

俺は手間かけてc#でやる方が好きだけど。html使いだすとソースがごちゃごちゃして最悪だしオーバーヘッドも大きいから
250デフォルトの名無しさん (ブーイモ MM26-t9H8)
2021/12/31(金) 10:03:43.42ID:xJV3dJ+lM
https://zenn.dev/okazuki/articles/mobile-blazor-bindings
これはどう?
251デフォルトの名無しさん (オッペケ Srbb-Ec79)
2021/12/31(金) 10:54:23.68ID:7PtxpeiFr
>>250
良さげ!
252デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 13:24:39.29ID:FNrpfdyG0
>>246
手間が増えるだけか?
俺は楽だけどな、この方法。
253デフォルトの名無しさん (ワッチョイ 8b01-9EuL)
2021/12/31(金) 14:04:55.17ID:i4wD88hA0
WinFormsで何の問題もない
254デフォルトの名無しさん (アウアウウー Sac7-h6Ia)
2021/12/31(金) 14:36:27.18ID:e+iXUqyka
>>249
それはちょっと変な話で、自分の手でゼロベースで作るなら
C#の方がはるかに簡単で可読性も高いと思うw
255デフォルトの名無しさん (アウアウウー Sac7-h6Ia)
2021/12/31(金) 14:43:15.34ID:e+iXUqyka
>>252
こういう話は「コードは書く物だ(つまり書いたら終わり)」
と思ってる人と「コードは読む物だ(つまり他人に理解しやすくなければ無意味)」
と思ってる人で意見が割れるw
256デフォルトの名無しさん (ワッチョイ bb5f-g2Am)
2021/12/31(金) 14:52:08.44ID:AHpR20H50
コードで角を丸くするのってそんな大変だったっけ・・・
257デフォルトの名無しさん (アウアウウー Sac7-TuUh)
2021/12/31(金) 15:02:56.34ID:PZrDxaJGa
角丸めるだけなら簡単だなw
でも丸めるだけだとダサいだろ。そういうデザインのことだよ
258デフォルトの名無しさん (ブーイモ MM7f-gyb8)
2021/12/31(金) 15:04:09.93ID:ONP3ZHucM
こういうビジュアルデザインの実装に対する方法論って、ガチのWeb開発をやったことがある奴とない奴とでは話が通じにくいんだよね
この線とこの線は何ptの太さで間に何ptの隙間があって色は#aaff12でとか指定されるんだぞ
259デフォルトの名無しさん (ワッチョイ 9718-ylhX)
2021/12/31(金) 15:13:44.40ID:+14EUf560
やっつけ専用言語にデザインこだわってもなぁ。
260デフォルトの名無しさん (ワッチョイ 5bb0-m7xg)
2021/12/31(金) 15:42:51.31ID:ApQoIWIb0
そもそも、一貫したUIガイドラインに沿うべきGUIと、それぞれのサイトで独自色を出したいWebの方法論って
かなり方向性がq違うからあまり混ぜないでほしいがなぁ。
261デフォルトの名無しさん (ワッチョイ 8b01-h6Ia)
2021/12/31(金) 15:43:49.86ID:2Zk/vij+0
混ぜたのはマイクロソフトでは?
262デフォルトの名無しさん (ワッチョイ bb5f-g2Am)
2021/12/31(金) 15:45:01.75ID:AHpR20H50
>>258
その程度なら普通にできない?
263デフォルトの名無しさん (ワッチョイ 8b01-h6Ia)
2021/12/31(金) 15:52:24.59ID:2Zk/vij+0
今年は厚生労働省が「マスクの供給は十分です」と発表したのでマスク買い溜めて、厚生労働省が「トイレットペーパーは無くなりません」と発表したので即座にトイレットペーパー買いだめしたので、一年中ウンコできたわ。
来年もこの調子で厚生労働省の流すデマに惑わされないよう生きようと思います。
264デフォルトの名無しさん (ブーイモ MM7f-gyb8)
2021/12/31(金) 16:13:21.59ID:ONP3ZHucM
>>262
できるかできないかで言えばそりゃできるだろうね
今日の折込チラシのうちで一番凝ったデザインのものを完全再現した画面を作るのを想像してみ
で作って見せたらここの角はやっぱり丸くしないとか影付けて強調したいとか変更が入るんだよ
WinFormsだと技術的に対応しにくい例をあげるとすれば、例えばテキストボックスを角丸にしたとして、
統一感を持たせるためにその隣りにあるボタンも同様のデザインにしたくなったとする
こういうのはCSSなら一瞬だけど、WinFormsなら一大事だよね
265デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 16:14:58.78ID:FNrpfdyG0
>>255
これはわかる。
俺はロジックではない部分は積極的に外に出してしまいたいし、誰でもできるようにしておきたいなと思う。
そういう部分で、HTML+CSSでテンプレート作るのは滅茶苦茶ラクだよなぁって思ってる。
角丸ぐらいだったら良いんだけど、みんな無茶言ってくるからな。
266デフォルトの名無しさん (ワッチョイ 8b01-h6Ia)
2021/12/31(金) 16:16:21.80ID:2Zk/vij+0
その程度なら問題なくない?
267デフォルトの名無しさん (ワッチョイ 8b01-h6Ia)
2021/12/31(金) 16:17:05.46ID:2Zk/vij+0
カレーは飲み物って人は?
268デフォルトの名無しさん (ワッチョイ 5bb0-m7xg)
2021/12/31(金) 16:30:43.26ID:ApQoIWIb0
>>252
まずC#とJSの2つの言語を使うってだけでもディスアドバンテージでかいと思うがな。
デバッグやテストも手間が増えそうに思うけど、UIフレームワークは何を使って?
269デフォルトの名無しさん (ワッチョイ bb5f-g2Am)
2021/12/31(金) 16:47:15.22ID:AHpR20H50
まだ時代遅れのWinForms使ってる人いたのか
あれはデザイン性やUXを捨てたものしか作れないから使わないほうがいい
270デフォルトの名無しさん (ブーイモ MM26-VYHi)
2021/12/31(金) 16:56:22.55ID:4KQ1p4JtM
デザイン性www
UXwwwww
271デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 16:57:44.41ID:FNrpfdyG0
>>268
実のところここは凄く楽になる。
C#側は正しくデータを入出力できる事を確認すれば良い。
JS側(というかHTML側)は与えられたJSONなりを検証して画面を正しく構築して、C#側から何かjsをevalする可能性があるならそれを全てこなせることを確認するだけ。
パキッと分けられるしどちらも自動化できる。

UIのフレームワークは業務ではReact使うことが多いけど、メンツ的な問題で個人的にはガワネイティブにはVueの方が楽だと思ってる。
流行に乗るならSvelteでも良いのでは?
272デフォルトの名無しさん (ワッチョイ bb5f-g2Am)
2021/12/31(金) 17:03:51.48ID:AHpR20H50
HTML以下でしょWinFormsは
273デフォルトの名無しさん (ワッチョイ 5bb0-m7xg)
2021/12/31(金) 17:10:31.19ID:ApQoIWIb0
>>271
それってただのWebでは?
俺はC#のGUI(Forms or WPFもWeb(React+express)もやってるけど、デバッグやテストはやっぱり
スタンドアロンのC#の方が楽だと感じている。
それが>>238みたいにGUI側をhtmlにしてもっと楽になるんであればと思って訊いてみたけどどうも違うようだな。
274デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 17:20:57.32ID:FNrpfdyG0
>>273
UIがWebかどうかなんかあんまり関係ないのでは?
ローカルのリソース使うんだし実際あんま関係ないと思うが。
CordovaやelectronをWebと言うかどうか、みたいな問題に聞こえる。

正直WPF以降であれば、慣れの問題では?と思うけどなぁ。
275デフォルトの名無しさん (ワッチョイ 5bb0-m7xg)
2021/12/31(金) 18:17:17.40ID:ApQoIWIb0
定義はどうでもよくて、気になったのはのは実際にFormsやWPFより楽になるのかなんだが。
スタンドアロンアプリの話をしているわけじゃなさそうだからもういいけど。
276デフォルトの名無しさん (ワッチョイ 9a01-6K9d)
2021/12/31(金) 18:37:19.76ID:CE1IM8E70
>>258
むしろそこまでキッチリ指定されてるなら面倒ではあるけど難しくはないだろ
277デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 19:00:48.11ID:FNrpfdyG0
>>275
スタンドアロンアプリの話してるよ。
ガワネイティブ理解してないだけでは…?
278デフォルトの名無しさん (ワッチョイ 9aad-sg8L)
2021/12/31(金) 19:06:50.70ID:54dO0PUs0
C#で作られたDLLでSafeFileHandleを返す関数があるんだけど
C++で呼び出すラッパーDLLを作ろうと思うんだけどどうするのがベターなんだろうか
ラッパー側でSafeFileHandleを格納するvectorとか作っておいて
Openで格納、Closeで削除するって感じでいいのだろうか
279デフォルトの名無しさん (ワッチョイ 5bb0-m7xg)
2021/12/31(金) 19:07:51.75ID:ApQoIWIb0
Svelte使うスタンドアロンアプリってのは興味深い。
280デフォルトの名無しさん (スップ Sd5a-gyb8)
2021/12/31(金) 19:11:37.16ID:DclmO4XRd
>>278
C++/CLIだったら変に集中管理とかしないで普通にRAIIなラッパークラス作ればよくね
281デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 19:18:48.86ID:FNrpfdyG0
>>279
それ自体は既にある。
WebView2でやるのがちょっと面倒なだけで。
https://dev.to/khangnd/build-a-desktop-app-with-electron-and-svelte-44dp
282デフォルトの名無しさん (ワッチョイ 5bb0-m7xg)
2021/12/31(金) 20:06:32.82ID:ApQoIWIb0
それでどこまで楽になるのか興味深かったんだが

>WebView2でやるのがちょっと面倒なだけで。

本末転倒やん
283デフォルトの名無しさん (ワッチョイ 9718-ylhX)
2021/12/31(金) 20:09:14.87ID:+14EUf560
楽なのはVB6、winformあたりが限界で
それ以上何かやろうとしてもどんどん面倒になるだけだな。
284デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 20:11:29.60ID:FNrpfdyG0
>>282
お前は本当に何も理解してないんだな。
WPFでつくる方がよっぽど面倒なんだよ、そもそも。
BlendとモックのDLL使ってコントロール作って貰ってたのが、Web技術で作って貰えるだけでも相当工数下がるの。
デザイナー×制作にでも作れるんだから。
285デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 20:12:57.99ID:FNrpfdyG0
>>283
MSがあれだけBlendを振り回して叫んでた「デザイナーと技術者で役割分担」という絵空事を解決したのは結局これというね。
286デフォルトの名無しさん (ワッチョイ 9718-ylhX)
2021/12/31(金) 20:14:09.02ID:+14EUf560
昔はASP案件が多かったから経験ある人はWEBまわりの学習コストが下がるがWPFはね。
287デフォルトの名無しさん (ワッチョイ bb5f-g2Am)
2021/12/31(金) 20:26:28.10ID:AHpR20H50
このスレは能力低い人が多いからWinForms以外をすすめても意味がない
あれしか理解できない
288デフォルトの名無しさん (ワッチョイ 2702-3Acz)
2021/12/31(金) 20:29:05.37ID:F5O9+7Cr0
WinFormsで事足りる案件をそれ以上でやる意味なんてないからな
289デフォルトの名無しさん (ワッチョイ 6301-cFo6)
2021/12/31(金) 20:47:01.32ID:ScgFuRuP0
なんかwinformに一族を滅ぼされた人がいるっぽいな
290デフォルトの名無しさん (ワッチョイ 5bb0-m7xg)
2021/12/31(金) 20:54:49.37ID:ApQoIWIb0
>WPFでつくる方がよっぽど面倒なんだよ、そもそも。
>BlendとモックのDLL使ってコントロール作って貰ってたのが、Web技術で作って貰えるだけでも相当工数下がるの。

つまりhtml+jsの方が楽ってのはこういうふうにカスタムコントロールを作る前提での話なのかい?
それとも、それがなくてもhtmlの方が簡単っていうことなのかい?
こんなふうにどんどん後付け条件が出てくると話が迷走していけない。
291デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 20:59:35.03ID:FNrpfdyG0
>>290
ほとんど全ての場合だよ。
カスタムコントロール作らない事の方が珍しいだろ。ペタペタと直接、素のコントロール置いて作ってるとか狂気の沙汰じゃん。
後付け条件も何も俺は最初からその想定で言ってる。
お前がどんどん原始的な例ばっかり挙げて後付け条件出してるんでは?
292デフォルトの名無しさん (ワッチョイ 9718-ylhX)
2021/12/31(金) 21:04:02.72ID:+14EUf560
コモンコントロール以上の何かがほしいってそれはもうRICHなGUIですよ。
アナログメーターだのバーコードだのね。
293デフォルトの名無しさん (ワッチョイ 8b01-h6Ia)
2021/12/31(金) 21:13:20.91ID:2Zk/vij+0
>>289
それはお気の毒に。
仇討ちするなら助太刀いたしますぞ。
294デフォルトの名無しさん (ワッチョイ 33a7-/mqy)
2021/12/31(金) 21:48:59.01ID:M0GZ3VlB0
WPFは結局見た目重視の癖に他のデザインツールとの連携がゴミカスだったからな
お前に食わせられるデータって何のアプリで作れるの?っていう根本的な問題が解決しない
295デフォルトの名無しさん (オッペケ Srbb-Ec79)
2021/12/31(金) 22:31:41.34ID:DunWig+Gr
flutterみたいにGUIが整備されていればいいだけなのにマイクロソフトには作れないのか
https://codezine.jp/article/detail/15063
296デフォルトの名無しさん (ワッチョイ 33a7-/mqy)
2021/12/31(金) 23:02:04.13ID:M0GZ3VlB0
つか、データ内容から言ってイラレとの連携が必須なのにそこの対応がおざなりなのがいけない
そして見た目にこだわらせるツールなら
全コントロールカスタマイズ可能にしろ

もちろんイラレのデータで

これができんからwebview2なんて使ってんだろそいつも
297デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2021/12/31(金) 23:38:40.48ID:FNrpfdyG0
なんでイラレなの?XDとかFigmaとかでは?
Storyboardで見ながら全カスタマイズ出来て当然かと。
デザイナーや制作にもそれができるからWebView2とかelectron使うんだが。
298デフォルトの名無しさん (ワッチョイ 33a7-/mqy)
2022/01/01(土) 00:03:57.34ID:s/VzubKG0
>>297
いや、俺が最近のツール知らんだけ

まあ、アドビ製品で作れないと辛いと思うなってことで
299デフォルトの名無しさん (ワッチョイ 33a7-/mqy)
2022/01/01(土) 00:04:02.95ID:s/VzubKG0
>>297
いや、俺が最近のツール知らんだけ

まあ、アドビ製品で作れないと辛いと思うなってことで
300デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2022/01/01(土) 00:05:29.75ID:pK4dI97g0
>>298
最近はAdobe製品あんまり人気ないよなって感じしてる。
デザイナーの人、だいたいFigmaかなぁ。人によっては直でCSS書いてくるよ。
301デフォルトの名無しさん (ワッチョイ bb5f-g2Am)
2022/01/01(土) 05:34:40.61ID:zdHw19Xx0
>>292
メーターはCommunity Toolkitにあるな
302デフォルトの名無しさん (ワッチョイ bb5f-dlbi)
2022/01/01(土) 08:49:17.03ID:pK4dI97g0
このあたりが出来るのが楽。
https://observablehq.com/@d3/zoomable-sunburst

JSのエコシステムは割と手厚くて、結構色々できる。
変わり種だと最近はこれも使った。今までだったら相当大がかりな仕組みになってた。
https://modelviewer.dev/

IEベースのWebViewだったら出来なかったんよね、これ。
303デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/01(土) 16:57:15.57ID:cbVZORXia
何の話で盛り上がってるんだっけ?

結局MSは今後デスクトップは何使えって言ってるんだっけ?
もうWin32を追放してUWPで統一する計画は頓挫してたよね?
304デフォルトの名無しさん (オッペケ Srf1-gA9r)
2022/01/01(土) 17:38:08.24ID:lDil4oeBr
MSは何も示せなくてユーザーたちが独自になんとかしようともだえてる
305デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/01(土) 17:52:27.24ID:cbVZORXia
>>304
やっぱりあいかわらずそうなんだね。
今後はこういう展開をしていきます、みたいなの(横文字で何って言ったっけ?)
も一切ないんだっけ。
306デフォルトの名無しさん (ワッチョイ 49d2-MYyk)
2022/01/01(土) 17:56:51.18ID:gOXFnTf60
UWPってアレ結局なんなん?
MSのうさんくさい説明見ても正体がさっぱり掴めんわ

ちなXAML使い
307デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/01(土) 19:05:01.23ID:Je/lt7i4a
>>302
IEコンポーネントは初期設定がIE6になってるだけで、その制限解除するだけで使えるんじゃないのかな?
設定しないと使えないのは多かったけど、設定して使えないものがあった覚えはないな
308デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/01(土) 19:09:06.13ID:pK4dI97g0
>>307
IEコンポーネントはパフォーマンス悪すぎて大変だったんよ。本当に悪かった。
WebGL 2.0は全くダメだし。
そしてごく最近の記法が使えないので、古い書き方で苦労するかトランスパイラで相当トランスパイルしないといかんのだけど、これもこれで大変。
309デフォルトの名無しさん (ワッチョイ 45ad-Rgq3)
2022/01/01(土) 19:38:20.84ID:FXZWUiqn0
そういえば、IEのコンポーネントって他プロセスから普通にDOM掴めたけど今のはそんなこと無いよな、さすがに。
310デフォルトの名無しさん (ワッチョイ ade6-X9o+)
2022/01/02(日) 02:26:12.88ID:XjOyUWVU0
>>308
VML使えや
311デフォルトの名無しさん (ワッチョイ 49b0-IeG5)
2022/01/02(日) 08:39:01.25ID:i8dUNFkB0
>>309
今のIE11でも変わらない。Chromium Edgeは無理。
312デフォルトの名無しさん (オイコラミネオ MM65-f1Pp)
2022/01/03(月) 00:27:24.71ID:qrnm2syfM
結局DelphiやVB6を超えられなかったね
313デフォルトの名無しさん (ワッチョイ 9901-BTCB)
2022/01/03(月) 09:45:55.35ID:eQW2AhJK0
ということにしたいのですね
314デフォルトの名無しさん (ワッチョイ 49b0-IeG5)
2022/01/03(月) 09:53:42.79ID:Nty+tcHi0
もったいないので私にください
315デフォルトの名無しさん (アウアウウー Saa5-Rgq3)
2022/01/03(月) 10:54:19.16ID:SmC4rDQma
はつみみです。
316デフォルトの名無しさん (ワッチョイ 6eda-iZeD)
2022/01/03(月) 13:30:35.98ID:lKbCt2OW0
C#でNewtonsoft.Jsonを使用して
[272,1496922300000,1496934000000,"Y3913",true,"XA","XA","HSZ-HAC","HAC-DFS-WCY",1496913600000]
のようなJSONを作成できますか?
(数値と文字列の混合配列)
317デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/03(月) 13:46:53.86ID:AMytSBf5a
名前なしのカンマ区切りだったらそれはcsvとして処理した方がはやいんじゃないのか
318デフォルトの名無しさん (ワッチョイ 31a7-TiOx)
2022/01/03(月) 14:44:00.30ID:5Qqik4MO0
>>316
全部文字列でいいじゃん
319316 (ワッチョイ 6eda-iZeD)
2022/01/03(月) 15:23:04.22ID:lKbCt2OW0
echartsのガントチャートのデモです。
https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight

このデモ用のデータが
https://echarts.apache.org/examples/data/asset/data/airport-schedule.json
なんですが、これをバックエンドのC#から渡したいのです。

>>316はJSON構造の一部で、他に名前付きのデータも渡します。
なのでCSVはそぐわないかと思われます。
320デフォルトの名無しさん (スププ Sd62-8XAc)
2022/01/03(月) 16:42:23.19ID:JMA8ZT+Nd
>>319
CSV一行分をjsonのValueとして持てばいいんだよ
321デフォルトの名無しさん (ワッチョイ e22c-4nvB)
2022/01/03(月) 17:00:56.51ID:0xi3No7I0
var objs = new {
hoge = "hoge",
fuga = new object[] { 272, 1496922300000, "Y3913", true, "XA" },
};
var json = JsonConvert.SerializeObject(objs);
できない理由はないけどなんか他に条件とかありそうでアレだな
322デフォルトの名無しさん (ワッチョイ 6eda-iZeD)
2022/01/03(月) 18:09:00.90ID:lKbCt2OW0
>>321
おお、出来るんですね。
ありがとうございます、試してみます
323デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/03(月) 18:12:39.51ID:TMV+x4l+0
var json =

結局何の型だよってイライラくるよね
324デフォルトの名無しさん (ワッチョイ 2247-8XAc)
2022/01/03(月) 18:57:22.48ID:GjMIBEAT0
>>323
Visual Studioだとvarの上にカーソル持っていったら型が表示されるだろ
325デフォルトの名無しさん (ワッチョイ 4201-wcXw)
2022/01/03(月) 20:14:18.47ID:pwAwOJBp0
var: 無能発見機
326デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/03(月) 22:52:28.05ID:TMV+x4l+0
型が分からなくてもソースが読み書きできる人が羨ましいわ。
どういう脳の論理構造してるのだろう。分からないまま読み進めるとかイライラしないの?

昔、『菊次郎の夏』って映画見て、映画見ながら、だから菊次郎って誰だよ?って
最後までイライラして発狂しそうになったの思い出したわ。ほんと糞な脚本だと思ったわ。
327デフォルトの名無しさん (ワッチョイ 2ee3-iZeD)
2022/01/03(月) 22:59:05.73ID:/qjDMXVn0
右辺見ろよ
328デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/03(月) 23:54:17.33ID:/ROio/0MM
インテリセンスとAPIデザインが優秀って前提はあるだろうね
適当に.で繋げてけばなんとなくコードが出来上がる
間違ったらコンパイルエラーになる
だったらもうそれで型名は書かなくてもいいじゃない

型付スクリプト言語はその辺がまだまだ雑魚なんで型名をしっかり書かないと間違えるようにできてる
329デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/04(火) 00:14:59.85ID:fY9OVGa4a
>>326
いや、型がメソッド名や右辺式から推測しづらいと思ったら
var使うなという方針は基本的には間違ってないと思うよw
330デフォルトの名無しさん (ワッチョイ 2247-8XAc)
2022/01/04(火) 00:16:29.87ID:2Grj8syS0
>>326
なんでvarの上にカーソル持って行かないの?
331デフォルトの名無しさん (スップ Sdc2-8yPh)
2022/01/04(火) 00:23:52.35ID:ufcanjsed
>>330
俺はvar推奨派だが、コードレビューでGitHub上で読むとかあるだろ?
コード工の数が多いといちいち全部pullしてVSで開くとかやってられない
332デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/04(火) 02:20:28.03ID:f9obKWjH0
>>326
わからないままに何かしてない。
よめばわかるだろ。
333デフォルトの名無しさん (ワッチョイ 4124-iMNY)
2022/01/04(火) 09:52:16.17ID:2gpItayR0
326はC#の話じゃなくてジャバスクとかの話してるんだろ
334デフォルトの名無しさん (ワッチョイ 31ae-GQgw)
2022/01/04(火) 10:52:36.05ID:+AHJD1dV0
inai inai var !
335デフォルトの名無しさん (スププ Sd62-8XAc)
2022/01/04(火) 11:04:23.12ID:Qpyz6D0Nd
>>333
そういうことか
型推論は型が確定してるのに意味不明なこと書いてるなと思ってた
336デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/04(火) 11:48:21.13ID:Oz0E0ZFa0
型が分からないとほんとイライラくるよな。
今回の反応でスルーできる奴の脳みその構造がだいたい分かってきたわ。わかったつもりで何も分かってない。

ジャバスクの話だ!! そういうことか!!! ←こいつらの脳の構造はこれなんだよ。馬鹿かこいつら…
337デフォルトの名無しさん (ワッチョイ 9d78-iZeD)
2022/01/04(火) 11:52:23.41ID:Hrzc5R7N0
>型が分からないとほんとイライラくるよな。
varは型が確定しています
イライラしているのはあなたがバカなだけ
338デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2022/01/04(火) 11:56:22.08ID:698Ta9DA0
>>337
“いつ”確定するの?
339デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/04(火) 11:58:40.79ID:Oz0E0ZFa0
ジャバスクの話だ!!! varは型が確定している!!! ほんと馬鹿かこいつら…
340デフォルトの名無しさん (スププ Sd62-8XAc)
2022/01/04(火) 12:00:45.54ID:K01QBlyFd
>>338
コーディングした時点で確定してるよ
varの上にカーソル持って行ったら確認できるだろ
341デフォルトの名無しさん (ワッチョイ 2ee3-iZeD)
2022/01/04(火) 12:01:01.01ID:g8h7/5Pi0
>>321から>>323ときてジャバスクとか後付感半端ないわ
こういうのとは仕事したくねーわw
342デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/04(火) 12:07:12.39ID:kSsP1HEHa
>>323見たときに
var json =
こうあったとき、デコード後のclassが入ってることあったり、json stringが入ってたり、varやjsonなんて型や変数名だとわけわかんねーよ!
って話かと思ったら全然違った。なんだこの流れ・・・
343デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/04(火) 12:11:24.66ID:Oz0E0ZFa0
これこれ。>>341 おれは一言もジャバスクなんて言ってないのにジャバスクの話にされて、
さらにはおれがジャバスクを後付したと妄信し、いきなり仕事したくないとかキチガイ妄想炸裂。
仕事先でこんなキチガイいたらガチで名誉毀損で訴えるわ。

これが型をスルーできる奴の脳の構造。リアルでアホだろ、こいつら…
344デフォルトの名無しさん (ワッチョイ 9901-QLHw)
2022/01/04(火) 12:12:43.55ID:IgSyCTXi0
※現在は削除されています
ふらっと C#,C♯,C#(初心者用) Part153 ->画像>3枚
345デフォルトの名無しさん (スププ Sd62-8XAc)
2022/01/04(火) 12:14:13.14ID:K01QBlyFd
>>343
TypeScriptおすすめ
346デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 12:23:30.92ID:CklunmhzM
TypeScriptは型ヒント付きスクリプト言語にはよくあることだけど型が嘘をつけるので積極的に使わない方がいい
「型がついてるから安心だ」と思っていたら実行時に違う型の値が入っていることがよくある
なんなら生のJavaScriptの方が「型がないから全ての変数が信用できない」という前提に立てる分まだマシまである
347デフォルトの名無しさん (スププ Sd62-8XAc)
2022/01/04(火) 12:29:36.62ID:K01QBlyFd
>>346
それ言い出すとC++もreinterpret_cast多用で型の嘘つけるからなあ
348デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 12:42:28.79ID:rprq1MIMM
>>347
まさにそれだね
cppは名前付きのキャストを使い分ける習慣が広まってるから状況は多少、マシ
TSにはanyとかいう負の遺産がある
それにJSはそれ自身ではできることが少ない言語なのでインフラapiコールに頼りがちだ
そこでanyを使いたくなくても多用するのでとにかく間違えやすい
自分がうっかり間違える可能性
チームメンバーが間違える可能性
ライブラリ作者が間違える可能性
とにかく間違いが起こりやすい
なのでTypeScriptは使わないほいがいい
349デフォルトの名無しさん (ワッチョイ 2eb0-IeG5)
2022/01/04(火) 12:53:18.36ID:rkCZbU1/0
・間違ったコールバックの型付け
・間違ったasの使用
・間違った.d.tsの使用
・間違ったユーザー定義タイプガード

TypeScriptで肩を間違える可能性があるのはこんなところかね。
まぁ、自分で使いこなせないものを使わない方がいいってのはその通りだが、
他人も同じように使いこなせないわけじゃないしな。
350デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 13:23:06.07ID:b15zgk0OM
>>349
間違える余地が在ることが問題
特定の個人が使いこなせるこなせないという低次元な議論じゃない
型Aと書いたものが実際にはAでないという可能性が生じた時点であらゆるコードが信頼性を失い
その検証のために心労とコストが増えて
そして実際にバグが増える

C#では例えば「DateTimeと書いた変数に実際にはstringが入っているかもしれない」などと考えてコーディングする人は誰もいない
C#ではよほどのことがなければ基本的に型が嘘をつかないからそれで上手くいく
DateTimeと書かれたらそれはDateTimeであってstringであることを考慮する必要はない

しかしTypeScriptは違う
型は平気で嘘をつく
Date型と書いた変数が実際は文字列だろうが数値だろうがお構いなしだ

TypeScriptでは型が嘘をついていないことを確かめるには
その型が嘘をついている可能性があるという前提でバリデーションを追加するか
依存してるライブラリの内部の隅々までソースを追いかけるか
そういった対策をしなければならない
それはあまりにも非生産的だ
351デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 13:31:23.12ID:b15zgk0OM
function ExternalLibFunc(): string

function example() {
const s: string = ExternalLibFunc();
if (typeof s === “string”)
throw new Error(“type errro”);
// do something
}

これが安全なTypeScriptコード
stringと宣言されたものを本当にstringかどうか確かめなければならない

この確認はバカバカしいと思うがやらなければバグを踏む可能性がある
でも全てを確認するなんて大変だ
だからみんな確認を怠る
そして実際にバグが発生する
そういう言語なんだTypeScriptってのは
352デフォルトの名無しさん (ワッチョイ dd5f-lZmz)
2022/01/04(火) 14:02:28.93ID:4jDgn5Qw0
Form1csにイベントがたくさんあるので行数が多くなってしまうのですが
部品ごとにファイルを分けてコードを書く方法を教えてください
353デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/04(火) 15:10:27.49ID:v2mo/5h3a
>>352
メニューやツールバーみたいのがあったら
イベントハンドラの数が増えること自体は仕方ない。

行数が増えて困ることは目的の場所を探しにくくなることだから、
対策は#regionディレクティブをうまく使って分類することぐらい
354デフォルトの名無しさん (ワッチョイ 2247-8XAc)
2022/01/04(火) 15:15:26.98ID:2Grj8syS0
>>352
partial class
355デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 15:40:55.02ID:y9M4FwJ2M
>>352
void HogeEvent(object s, EventArgs e) {
//長いコード
}

↑これを
↓こうする

void HogeEvent(object s, EventArgs e) {
_hoge.DoSomething();
}

class Hoge {
public DoSomething() {
// 長いコード
}
}
356デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/04(火) 16:14:54.64ID:3sRZKpnOa
>>350
そうは言ってもc#だってobjectや継承あるからな・・・
357デフォルトの名無しさん (テテンテンテン MM26-rbeQ)
2022/01/04(火) 17:04:00.85ID:BWSRqAyGM
>>350
ネイティブ呼び始めたら嫌でもチェックせんか?
タグ付きユニオンとか使い始めたらどうせそうなるし。
358デフォルトの名無しさん (ワッチョイ 49b0-zYQh)
2022/01/04(火) 17:29:19.72ID:XgG7cDH40
なんだ動的型付け言語が嫌いなだけか
359デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 17:41:00.66ID:h9ISFI6AM
>>356
全く意味合いが異なる
360デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 17:42:21.35ID:h9ISFI6AM
>>357
本来バリデーションが必要がないところでバリデーションが必要になることが大問題
361デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/04(火) 18:00:52.01ID:v2mo/5h3a
それはバリデーションじゃなくてバグのチェックだねw
362デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 18:24:36.74ID:h9ISFI6AM
そだね
TypeScriptdではそういうことも必要になってくる
言語上の欠陥なんだけどランタイムがJSだから永遠に解決しないだろうなこれ
363デフォルトの名無しさん (ワッチョイ 2eb0-IeG5)
2022/01/04(火) 18:24:37.24ID:rkCZbU1/0
>間違える余地が在ることが問題

完全無欠な言語以外は認められないと?

>型Aと書いたものが実際にはAでないという可能性が生じた時点であらゆるコードが信頼性を失い

どういう場合にそのようなことが起きるかがわかってないんだろうね。結局使いこなしの問題。
364デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 18:27:22.35ID:h9ISFI6AM
>>363
完全無欠な言語しか使わないとまでは言わない
ただ大きな欠陥のある言語は使いたくない
感覚としてはその程度だね

どういう場合に起こるか?
それはあらゆる場面で起こりうる
ライブラリすら信用できない
365デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/04(火) 20:53:29.42ID:f9obKWjH0
>>360
本来バリデーションは必要なのに必要じゃないと思い込んでるだけだろ。
カナリア置いたりした経験無さそう。
366デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/04(火) 20:55:06.78ID:f9obKWjH0
>>364
あるゆるは言い過ぎでは?
ほとんどの場合信頼境界を越えるからかと。
367デフォルトの名無しさん (アウアウウー Saa5-zIXK)
2022/01/04(火) 21:33:12.76ID:e29mAngZa
formsのchartを使ってるんだけど、20系列くらいを100ms以下でリアルタイム更新って厳しいのかな
色々試したけど更新にどうしても時間がかかる。。
368デフォルトの名無しさん (ワッチョイ 6187-F0I3)
2022/01/04(火) 21:37:51.18ID:I8DXoUzs0
>>365
c♯においてdatetime型の変数の中身がdatetime型以外である可能性があるの?
本来必要なバリデーションって何よ?
369デフォルトの名無しさん (ワッチョイ 2eb0-IeG5)
2022/01/04(火) 21:44:14.34ID:rkCZbU1/0
>>364
Cのポインタだって使い方を間違えたら正しい型を示さないことになるし、C自身も安全でない言語と見做される
こともあるが、それを分かったうえで正しく使う人はいるし実際広く使われている。そういうこと。
370デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/04(火) 21:58:28.71ID:f9obKWjH0
>>368
外部のAPIで1899年以前を扱いうる場合。
371デフォルトの名無しさん (ワッチョイ e22c-4nvB)
2022/01/04(火) 22:45:31.35ID:mTPUUbcD0
>>367
サードパーティ製のチャートを探すことをお勧め
詳しくないから具体的な名前は特に挙げられないけど
とりあえずScottPlotって名前を最近見かけたので試してみては
しかし20系列もあると読みづらそうだな
372デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/04(火) 22:57:39.12ID:xZMfmUxua
>>367
ただの折れ線グラフとかでビジュアル的に凝る必要がなければ
UserConrolから自分で作った方が早いかもね。

昔散々そういうのやってたけど、やってみると案外簡単だ。
WPFを選択するとパフォーマンス問題にぶち当たるから注意。
373デフォルトの名無しさん (ワッチョイ 49b3-Fu3+)
2022/01/04(火) 23:04:51.13ID:hJBi5qqI0
おすすめ本あります?
アマゾンで独習を見たのですが第4版は不評、第3版おすすめとなってたんですが
2010年出版っというのが引っかかっているので他を探しています。

スキルはPythonでPyGameのサンプルを打ち込みつつ、解説を見て勉強してるレベルです。
その他言語の経験はなし!
374デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 23:13:01.18ID:0nFT+Tq8M
>>365
違う
本来バリデーションは必要ないのにTSでは(というか型がゆるゆるのスクリプト言語全般だが)余計なバリデーションが必要ということ

string x = func();
と書いた時にC#ではxが本当に文字列であることを検証する必要はない
nullになっていないか、文字列が特定の書式を満たしているか、といった心配はあるだろう
しかし、xにintが入ってる可能性は考慮する必要はない

TSではxにnumberが入っているかも、という可能性を考慮しなければならない
これが本来やらなくていいはずのバリデーションだ
これは型が嘘をつくから起こりうること
TSの代表的な欠陥の1つだ
375デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 23:14:48.44ID:0nFT+Tq8M
>>369
詭弁
話を逸らすな
376デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/04(火) 23:19:57.46ID:Oz0E0ZFa0
var x = func();
var y = x.func();
型が分からないとイライラくるよね。
スルーできる奴の脳みそってそれをすべて妄想で埋めてることが社会実験で実証された。
377デフォルトの名無しさん (ワッチョイ 2eb0-IeG5)
2022/01/04(火) 23:20:34.56ID:rkCZbU1/0
>型が嘘をつく

この言い回しをよっぽど気に入っているようだけどw当然TypeScriptが勝手に嘘をつくわけはなくて、
嘘をつかせたのはそれを使うプログラマ自身だわな
378デフォルトの名無しさん (ワッチョイ 9d78-iZeD)
2022/01/04(火) 23:24:23.97ID:Hrzc5R7N0
>>376
それはメソッド名が糞なだけだよ
379デフォルトの名無しさん (スフッ Sd62-XkW2)
2022/01/04(火) 23:30:10.65ID:r+SDF27Td
わざわざ宣言した行まで戻って型確認するのか
380デフォルトの名無しさん (ワッチョイ 426a-M3Pq)
2022/01/04(火) 23:30:19.98ID:QHt6N4Fh0
相変わらずコードが読めてもテンプレ読めない人が多いな
381デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/04(火) 23:36:38.21ID:0nFT+Tq8M
>>377
TSが勝手に嘘をつくことはないがC#と比べて嘘をつかせるように導くのに長けている
プログラマは世界中に沢山いてTSを使うと漏れなくその脅威に晒される
また彼らが作成したライブラリにも嘘が潜んでいるかもしれない
382デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/04(火) 23:58:26.60ID:f9obKWjH0
>>374
違わないよ。
全てTSの中であればNumberであることが担保されているのは、全てC#の中である場合と同程度に正しい。
C#の場合でも信頼境界を越えるのであればその可能性は考慮しないといけないし、TSの場合でも信頼境界を越えないのであれば気にする必要は無い。
ましてやTSというかJSはシングルスレッドなので別スレッドに壊される事も無い。
383デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/05(水) 00:01:01.66ID:fuEg19Cq0
>>381
お前信頼境界って言葉一切ググらずに喋ってるだろ。
言われたことぐらい理解して反論してこいよ。
384デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/05(水) 00:50:54.28ID:JsfvM5KJM
>>382
全てTSでも型が保証されない
最も簡単な事例は
const x: string = 100 as any
もちろんこんなコードを書く人はいないが
複雑で膨大なアプリケーションコードを扱うプロジェクトのなかで誰一人としてミスをしないかというと
そんな保証は全くなく型に嘘をつかれることになるだろう
385デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/05(水) 00:51:02.44ID:JsfvM5KJM
>>383
ブーメラン
386デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/05(水) 00:56:20.83ID:fuEg19Cq0
>>384
それはC#でも同じでしょ。
387デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/05(水) 00:59:38.17ID:JsfvM5KJM
C#ではI/Oが生じる場合にも型が嘘をつくことはない
例えばこうだ

int x = Parse<int>(inputStream);

パースエラーにより実行時に例外が発生することはある
それはどの言語でも起こりうることだ
しかし、依然としてxにstringが入ったり、DateTimeが入ったり、という、TSでは普通にあり得る悍ましい挙動を示すことは無いのだ
なぜならC#はTSと違って型が嘘をつかないから
C#の型は信頼できる
TSの型は嘘つきで信頼できない
388デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/05(水) 01:00:08.39ID:fuEg19Cq0
>>384
大規模アプリ開発では、何層もの見えない層があった結果これが起こる。
オブジェクトの型を破壊的に変換 - C#と諸々」でググってみ。
389デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/05(水) 01:00:59.54ID:fuEg19Cq0
>>387
じゃあTSはどうしてxにStringやなにがしかが入るの?どこで入れてんのよ?w
390デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/05(水) 01:10:21.43ID:JsfvM5KJM
>>386
全く異なる
C#ではdynamic、リフレクション、コード生成を使えばコンパイラの検証を回避して、間違った型の変数に値を設定できる
しかし、C#でこれをやると実行時にエラーになるのだ
TSで何事もなく処理が進むのとは、全く趣が異なる
そう、TSではstringと指定した筈の変数にnumberやDateの変数が入ったまま、何事もなく進んでしまうのだ
これは本当に恐ろしい挙動だ
つまり、バグを仕込んだところから、しばらく処理が進んだところで被害が顕現する、ということだ
これはまるで、潜伏期間の長いコロナウイルスのように厄介な特性だ
この挙動はC言語などではよくあるものだったが、原因と結果が離れているのでデバッグがしにくい、とのことで先人達は大いに苦しめられたものだ
まがりなりにも後発の言語であるTSが、大昔の言語設計と同じ失敗を繰り返しているのは残念でならない
391デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/05(水) 01:17:22.12ID:JsfvM5KJM
>>388
低レベルなメモリアクセスでランタイムを破壊できるのはどの言語でも当たり前のことだろう
TSのように低レベルメモリアクセスでもなんでもない、ただの代入で型安全を破壊できるようなものと同列に扱うべきではない
392デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/05(水) 01:19:07.95ID:JsfvM5KJM
>>389
困ったことにTSではどこででも起こりうる
だから欠陥言語なんだよ
C#のように低レベルメモリアクセスで無理やり破壊すればできるよ、といった次元とはわけがちがう
393デフォルトの名無しさん (ワッチョイ 2247-8XAc)
2022/01/05(水) 01:46:29.20ID:lnjYKBBj0
>>379
varの上にマウスカーソル合わせてツールチップに表示される型を見るだけ
394デフォルトの名無しさん (ワッチョイ 2eb0-IeG5)
2022/01/05(水) 07:33:07.78ID:OXnyWrYu0
>>384
既に>>349で挙げているがそこに注意してプログラミングすればいいだけ。
お前は馬鹿だからそれができないんだろうが世の中の人間がみなお前と同じように馬鹿なわけではない。
395デフォルトの名無しさん (ワッチョイ 8101-ooUO)
2022/01/05(水) 07:38:49.44ID:t5pkfnoc0
JSなんて使いたくて使ってるやつはいないって事だよ
ほかに選択肢がないから仕方なく使ってるだけで

そもそも本来TSのようなトランスパイラはこの世に存在し得ない存在
396デフォルトの名無しさん (ワッチョイ d1ac-Loja)
2022/01/05(水) 09:23:21.76ID:bvaGXVet0
なんでc#スレで一生懸命TSの悪口言ってるの?
397デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/05(水) 09:53:21.58ID:SNzZltS0M
欠陥指摘できる俺すげー君だろw
スルーしとけ
398デフォルトの名無しさん (エアペラ SD2d-miAB)
2022/01/05(水) 09:57:56.22ID:5ORhcVX2D
WinFormのlistViewをタブレットで使いたいのですがlist部分を指で上下してlistをスクロールする事は出来るでしょうか
スクロールバーで上下出来るのですがスマホのように出来ないかなと
399デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/05(水) 10:15:33.57ID:Zzh6nSy3M
>>394
挙げられたリストでは全く足りない
こういう認識の甘さがバグを仕込むキッカケになるのだろう
そもそも人間は間違える余地があれば、いつか必ず間違える
注意してれば大丈夫、などという考え方では到底ダメだ
400デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/05(水) 10:17:21.15ID:Zzh6nSy3M
>>396
しつこく返してくる奴がいるから仕方なく付き合ってやってる
そいつがTSの型は安全でないという当たり前の事実を素直に受け入れれば俺もこんなレスバしなくても済むんだが
401デフォルトの名無しさん (スププ Sd62-8XAc)
2022/01/05(水) 10:34:58.47ID:TbL+VltAd
TypeScriptなしではJS開発やってられなくなってしまったな
特にチーム開発
402デフォルトの名無しさん (ワッチョイ e22c-4nvB)
2022/01/05(水) 11:00:24.24ID:dUhlmVC50
>>398
一応標準でサポートされてるはずだけど
なんかスクロール遅いし慣性の扱いが下手糞だけど…
403デフォルトの名無しさん (ササクッテロリ Spf1-Wb4d)
2022/01/05(水) 11:06:50.05ID:llHLsWPPp
>>400
おまえは相手がうんと言うまでスレチ議論続けるつもりか
404デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/05(水) 11:43:03.34ID:93Qk8F8ua
例えばリストビューを作るときにアイテムのTagに日時を代入しとく
そうしたら選択したアイテムの日時がすぐにわかるから。こんなのはよくやる手法だよね

で、実際にアイテムがクリックされたときにTagを読んで日時を取得しようとしたらstringだったりDateTimeだったりして型エラー。バリデーションwが必要になる
こんなの(アホがプログラミングしたら)c#でも日常茶飯事だからな
tsでも同じ。アホがプログラミングしたらバリデーションwは必須だし、普通にプログラミングしたら不要
405デフォルトの名無しさん (テテンテンテン MM26-8VTm)
2022/01/05(水) 11:54:44.06ID:ZRZErZAVM
>>404
君は議論の焦点を全く理解してないようだね
406デフォルトの名無しさん (ワッチョイ aebb-dPEu)
2022/01/05(水) 12:07:48.08ID:2gwkfiFL0
すまんが、昔、Linux + LLDBでのC#のデバッグ方法が公式サイトに書かれていたようが気がするんだけどさ
そんなようなページってどこにあるのか、誰か知ってたら教えて!!!
407デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/05(水) 14:47:28.15ID:kRupjksVa
昔OSも乗ってない小規模組み込みをアセンブリでずっと書いてたけど、
アセンブリには当然型なんて概念そのものが存在しないが、
だからintとBCDを間違えたり、構造体のポインタを別の構造体のポインタと勘違いする
ミスが多いかと言うと、そこは意外とそうでもなかったりする。
それより生産性に対する影響の方が大きい印象だね。

まあこれは小規模かつ基本1人の開発だったからそうだっただけで、大規模かつチーム開発だと
話が変わってくるのかもしれない。
この辺はゲーム業界の人が詳しそうだね。
あの世界は下手したら90年代の終わり頃までアセンブリでやってたはず
408デフォルトの名無しさん (ワッチョイ d22d-qpXy)
2022/01/05(水) 15:04:40.06ID:XpPjLRYm0
バグには様々な要因があるから、不正な型が代入された場合だけを過度に心配してもね
409デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/05(水) 15:08:39.22ID:C1Xb8B3u0
型を気にしない馬鹿はテストも当然にしないから
410デフォルトの名無しさん (スププ Sd62-rbeQ)
2022/01/05(水) 15:14:15.12ID:ROW6egx4d
>>384
自分が守らなければそりゃ保証もされないだろ。
C#ならある型にはある値しか入らないと思ってそう。

例えば構造体につっこんでFieldOffsetで上書きすればあっさり壊れるぞ。

[StructLayout(LayoutKind.Explicit)]
struct XXX {
 [FieldOffset(0)] public DateTime Value;
 [FieldOffset(0)] public ushort Tag;
}

でXXX.Tagに適当なもの入れたらValueは無茶苦茶になる。
411デフォルトの名無しさん (ブーイモ MM26-8yPh)
2022/01/05(水) 15:54:13.43ID:qaVNdYDmM
参照型の変数にnullが入ってるかもしれないし、C#の場合は例外の型もドキュメントの記載を信じるしかないよね
結局は程度問題なんだよ
前者のnullの問題についてはnull許容参照型を使えば型として区別できるけど、null非許容だからといって絶対にnullが入らないわけではなく簡単にnullを混入させることができる
彼の大嫌いなTSと同じく、特にランタイムチェックのない紳士協定だ
412デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/05(水) 16:24:00.16ID:kRupjksVa
っていうかこれたしか元はvarの話だよね。
繰り返しになるけど、元々の問題提起、つまり
「右辺の型が推測しづらいケースでもvarを使うのは不適切じゃないのか?」は正しいよ完全にw

匿名型を受ける場合以外のvarの目的は、「見れば分かる」冗長な繰り返しを避けて
シンプルにすること。

「かっこ悪い」みたいな中二病的動機で意地でも型を明示しないことに固執する奴はアホだが、
困ったことに現実にはそういうアホが結構いる。

この辺LINQの乱用が嫌われるのと同じなんだろうねw
シンプルにするための道具を使ってわざわざ難解にするバカw
たぶん彼はシンプルとは文字数が少ないことだと倒錯している
413デフォルトの名無しさん (スププ Sd62-8XAc)
2022/01/05(水) 17:12:39.57ID:x9hFTlB3d
varの型が分からん分からんってこいつメモ帳で開発してんのか?
414デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/05(水) 17:24:59.67ID:5TZJeeZKa
IDEだけでしかソース見ない奴は問題ないんだよ
ぐぐってブラウザ上で見るソースなんてマウスあてても型表示してくれないからな
415デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/05(水) 17:28:23.80ID:C1Xb8B3u0
どんだけ小さなプロジェクトしか関わったことないのか知らないが
code reviewするときに数百、数千というvarをおまえはいちいちマウス乗せてチェックしてるのか?

型を気にしないならオープンソースもコードを確認せずビルドして使うタイプだろう。
OSS品質=誰かがチェックしてくれるはず=テストしてない=今のMSのコード品質
416デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/05(水) 17:32:31.52ID:5TZJeeZKa
var使ってるぐらいで崩壊するようなとこは大きいの作れないから気にする必要ないよw
417デフォルトの名無しさん (ワッチョイ 8101-ooUO)
2022/01/05(水) 17:43:11.47ID:t5pkfnoc0
varなんて大抵は右辺見たら型わかるやろ?
何が分からんのだ?
418デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/05(水) 17:48:48.78ID:C1Xb8B3u0
実験結果は分かった気になって実は全然分かってないでした。
でも分かった気になってるのでいつまでもなぜ分からないのだ?と問い続ける。
419デフォルトの名無しさん (ワッチョイ 8101-ooUO)
2022/01/05(水) 17:52:58.23ID:t5pkfnoc0
いやマジで何が分からんの?アホの子なの?
420デフォルトの名無しさん (ワッチョイ d242-hDuN)
2022/01/05(水) 17:58:12.21ID:bWjicXEh0
つか、変数名見ればクラス名も分かる程度にしておくのが普通だから
マウスで調べなくてもだいたい分かる
421デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/05(水) 17:58:55.28ID:C1Xb8B3u0
自演じゃないよ、彼はそう信じてるんだ。笑わないでほしい。
422デフォルトの名無しさん (ワッチョイ 9d78-iZeD)
2022/01/05(水) 18:09:44.71ID:R56PdZ5+0
>>421
このスレの住人はお前のことを笑っているぞ
423デフォルトの名無しさん (ワッチョイ 8101-ooUO)
2022/01/05(水) 18:09:55.54ID:t5pkfnoc0
staticおじさんみたいなもんだな
424デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/05(水) 18:21:06.82ID:C1Xb8B3u0
そして彼は笑いながら未テスト納品を繰り返す。そしてまたスパコンのデータを吹き飛ばす。
425デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2022/01/05(水) 18:39:16.92ID:w42D9Ab/0
コードレビュー時にローカル変数の型をいちいち調べる意味がよくわからん
必要になるのってバグの原因調査する時だけでしょ
426デフォルトの名無しさん (ワッチョイ 31a7-TiOx)
2022/01/05(水) 18:41:30.05ID:jje+EFiu0
TS、JSの型がゴミなのはわかる
c#のvarも俺は嫌い
普通に読みにくい

最近は派遣先会社のVSに仕込まれた強制変換スクリプト?で保存すると勝手にvarが明示的な型に置き換えられて
久しく見ない問題だったが
427デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/05(水) 18:42:19.84ID:C1Xb8B3u0
何も知らないなら喋らなきゃ無知はバレない。
428デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/05(水) 19:07:10.79ID:5TZJeeZKa
>>425
人のソース読むのにvarで省略されてるよりも、型が使われてる方が理解しやすい
もちろん>>420のようにしてくれればvarでも変わりゃしないけど、世の中そういうソースばかりじゃないし酷いのになると名前で型を騙されることあるからな
整数型にn、floatにfついてるからdがついてたらdoubleかと思ったらそれも整数だったり。そりゃないだろ・・・
429デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/05(水) 19:19:51.10ID:fuEg19Cq0
限度の問題では?
MSの規約にあわせれば良いでしょ。
IEnumerable<T>で受けるべきなのにList<T>で受けてるとかそういう不適切な状態になってない限りvarで良いと思うけどな。
varは省略の為に使うのではなくて推論の為に使うんよ。
430デフォルトの名無しさん (ワッチョイ 31a7-TiOx)
2022/01/05(水) 19:53:56.06ID:jje+EFiu0
varなんて右クリックメニューで元に戻せるから書くだけ書いたら明示的な記述に直しちゃった方がいいよ
431デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/05(水) 19:57:59.86ID:kRupjksVa
>>429
推論はするよりしない方が脳への負担が低いはずなので、
君の説を採るとvarは全面禁止すべきという結論になってしまうよw

少なくともコードの読み手(書き手ではなく)にとってのvarのメリットは
右辺の型が分かりきっている時に左辺の方でもくどくどそれを繰り返される冗長さが回避されることだ。
432デフォルトの名無しさん (ラクッペペ MM26-geyu)
2022/01/05(水) 20:04:49.66ID:lXYh5E9eM
型推論
https://ja.wikipedia.org/wiki/%E5%9E%8B%E6%8E%A8%E8%AB%96
433デフォルトの名無しさん (ラクッペペ MM26-X9o+)
2022/01/05(水) 20:09:49.34ID:34fypwCFM
書くやつは楽
コピペ盗作するやつは脳味噌が必要

var大勝利じゃん
434デフォルトの名無しさん (ワッチョイ 31a7-TiOx)
2022/01/05(水) 20:11:27.06ID:jje+EFiu0
>>432
そもそもこれがゴミなのか有効なのか?
って議論がなされないまま突然導入されてほら使えだからな
VSの右クリックメニューにもvarを元に戻す機能が付いたってことはあんまり評判よくないだろコレ
435デフォルトの名無しさん (ワッチョイ ade6-X9o+)
2022/01/05(水) 20:16:51.17ID:eampx4mf0
議論に参加できるぐらい出世しろ
436デフォルトの名無しさん (ワッチョイ 31a7-TiOx)
2022/01/05(水) 20:20:48.72ID:jje+EFiu0
>>435
お前の会社は社長が1番技術力高いのか?
437デフォルトの名無しさん (ワッチョイ 6e33-tkKJ)
2022/01/05(水) 20:41:21.39ID:P9kF/5N50
varで推論しないほうが脳への負担が低いというのはどういうことですか?
438デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/05(水) 20:42:40.80ID:C1Xb8B3u0
>>437
型が分からなくてもイライラしない人はそもそも負担がありません。
439デフォルトの名無しさん (ワッチョイ 31a7-TiOx)
2022/01/05(水) 21:00:44.67ID:jje+EFiu0
アホが作った無意味なマトリョーシカクラス追わなくて済むからな
440デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2022/01/05(水) 21:16:57.60ID:w42D9Ab/0
15年近く前から導入されてるものに対して
いまだに文句を言い続ける「熱量」には感心する
441デフォルトの名無しさん (ワッチョイ 31a7-TiOx)
2022/01/05(水) 21:20:57.24ID:jje+EFiu0
>>440
正直、クラスから嫌いです
構造体以上のメリットを全く感じたことない
442デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/05(水) 21:56:49.45ID:LjEcMnXra
>>441
そこは「しっくりこないんです」、と書いて欲しかったw
443デフォルトの名無しさん (ワッチョイ 9d78-iZeD)
2022/01/05(水) 22:09:26.64ID:R56PdZ5+0
staticおじさん生きてたのかw
444デフォルトの名無しさん (ワッチョイ 2e8e-6dX5)
2022/01/05(水) 23:32:21.89ID:9KUuQ3bM0
わかってる奴がvar使うのはOK
馬鹿がvar使うのはNG
445デフォルトの名無しさん (ワッチョイ 49b0-zYQh)
2022/01/05(水) 23:33:33.69ID:HyMzvNe00
じゃあdynamicつかうね
446デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/06(木) 02:10:11.97ID:jegOl+WX0
>>431
推論させる方が脳への負担は低いよね?

型がわからなくてイライラすると言うけど、解る必要ある部分ではないのでは?
極端な話メソッドの入口と出口は型が決まってんだから。
447デフォルトの名無しさん (ワッチョイ fd1a-Z3YW)
2022/01/06(木) 02:36:29.67ID:Vr7+jyV40
そのメソッド追っ掛けるのが面倒だって話ではないのか
448デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/06(木) 02:50:36.77ID:ChZ1cCgVa
>>446
推論の主語が変わってるよw
あなたの言ってる推論の主はコンパイラ(開発環境)だよね?w

ついでに言うと、あなたがたぶん言いたいことは「書く時の負担が減らせる」ということ。
だからそうじゃなくてコードの読み手にとってのメリットが重要なのよw
そう書いてるよね?>>431

だってそうでしょ。
コードを書いてる時の書き手にとってはどの変数がどの型かなんて
当然自明なんだからvarにはメリットしかないよ。そんなの当たり前でしょw

結局varについても意見が割れるのは前にも書いた(>255)こういう意識の差があるからだろうね。
世の中KISSなんてただのお題目だと思っててなぜ重要か体感レベルで実感できない人が結構いる。
449デフォルトの名無しさん (ワッチョイ e510-JblN)
2022/01/06(木) 03:46:43.08ID:Jy6L3sVt0
>>448
>コードを書いてる時の書き手にとってはどの変数がどの型かなんて当然自明なんだから

馬鹿はvarを使えばエラーが出ないという理由でvarを使っているだけで型なんか理解もしとらんのだよ
450デフォルトの名無しさん (ワッチョイ ade6-X9o+)
2022/01/06(木) 06:07:27.91ID:WSidiaMA0
>>449
その発想はなかったわ
バカの考えは馬鹿にしかわからないのだな
451デフォルトの名無しさん (スププ Sd62-rbeQ)
2022/01/06(木) 08:30:02.04ID:GGuE86Bnd
>>448
違うよ。
コードの書き手も読み手も楽が出来る。
varで宣言されている変数に関しては、推論を行わせて、自動的に型が決まっていても良い、というシンプルな話。

Task<IQueryable<Bar>> foo()
{
 var masters=getMasters();
 //なんかmastersを使った処理
 // :
 var predictate= e=> ... ;//変換したmastersを使った関数
IQueryable<Bar> result = xxxx.Where(predicate).Take(10);
 //resultの確認
 return result;
}
こんながあったとき、predictateとmastersはvarで充分では?
452デフォルトの名無しさん (ワッチョイ 8101-ooUO)
2022/01/06(木) 09:18:51.63ID:BMV6DlOj0
全く論点が不明
コードレビューでは全てのvar変数をマウスオーバーして型を確認しなければならないと言うのもシチュエーションとして理解不能、猿が働いてる企業なのか?

そもそもそんな使用の是非の議論が必要な話なら世の中にvar禁止の組織はさぞかしあるんだろ?
御託並べる前にgithubでvar禁止にしてるC#プロジェクトでも持ってこいよw
453デフォルトの名無しさん (ワッチョイ 8101-ooUO)
2022/01/06(木) 09:23:52.72ID:BMV6DlOj0
この手の「一人のstaticおじさんに大勢が説教する図」はさまざまなスレで見かけるけどまったく生産性ゼロで不毛だよな
ほかに同調する奴いない時点で自分が間違ってる可能性か考えろよ
まず自分を疑うのはエンジニアの基本やろ
454デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 09:37:12.69ID:VWdkYx+r0
>>440
また低能馬鹿論理でましたね。WPFでも同じ馬鹿なこと言ってる人がいました。
455デフォルトの名無しさん (ブーイモ MM62-zmFY)
2022/01/06(木) 10:00:08.90ID:WPmMIBV7M
>>451
C#だとresultの型は推論できないんだっけ?
456デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 10:02:24.36ID:VWdkYx+r0
>>ID:BMV6DlOj0

論点すら分からない馬鹿でも喋らなきゃ無知はバレない。
457デフォルトの名無しさん (ワッチョイ aebb-LZo4)
2022/01/06(木) 10:07:20.21ID:sIABQ4ka0
初心者スレで無知晒しても別に構わんだろ
ちゃんと教えてやれよ
458デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/06(木) 10:10:39.02ID:jegOl+WX0
>>455
resultというか、メソッドの宣言的には省略不可。
なので、returnしているということはvarでも良いかもしれんな。
459デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 10:11:51.45ID:VWdkYx+r0
>>ID:BMV6DlOj0
いちいち捏造してはマウンティングしてきて
相手を猿だの罵倒してくるクソ野郎にはクソレス返しで十分。
460デフォルトの名無しさん (ワッチョイ 4274-miAB)
2022/01/06(木) 10:36:42.54ID:cm3DDwaa0
議論用でやれば
凄い流れるんだけど
461デフォルトの名無しさん (ワッチョイ 8101-ooUO)
2022/01/06(木) 10:38:33.11ID:BMV6DlOj0
数千のvarをマウスオーバーして型を調べるってんだからそんなもん猿以外の何者でもないだろw
それでカネ貰えるんだからいい仕事だなあ

で、var禁止のC#プロジェクトは見つかったのか?
さっさと探してこいよ
462デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 10:42:17.16ID:VWdkYx+r0
ID:BMV6DlOj0 ←無職のクソ野郎が仕事を語る
463デフォルトの名無しさん (スフッ Sd62-XkW2)
2022/01/06(木) 10:52:01.70ID:XJZjWgUBd
戦犯は>>323
464デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 10:58:22.55ID:VWdkYx+r0
>>463
馬鹿の壁の社会実験。参加してくれた馬鹿に感謝する。
465デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/06(木) 11:41:47.82ID:CKbwlJU4M
>>458
メソッドの宣言?
ここの話だろ
> IQueryable<Bar> result = xxxx.Where(predicate).Take(10);
xxxx の定義によるけど普通は var で良くね?
466デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/06(木) 12:18:50.36ID:+o9sIybza
IQueryable<Bar> result = xxxx.Where(predicate).Take(10);
↑だとこの一行でBarとってるとわかる

var result = xxxx.Where(predicate).Take(10);
これだとなにかを取ってるとしかわからない。たった数文字の差だけど受け取れる情報が多くなって読みやすい
俺みたいなエスパー能力低い人間にとっては普通に書いてくれた方がありがたい
467デフォルトの名無しさん (ブーイモ MM26-zmFY)
2022/01/06(木) 12:34:17.18ID:B4j0C8aZM
試してみたけどpredicateの型を明示的にExpression<Func<T>>にしてないと
WhereがIEnumelableで解釈されてだめやね
resultの型をIQueryable指定しててもコンパイルエラー

Whereにlambdaのリテラル入れた場合は varでOk
468デフォルトの名無しさん (ワッチョイ e95f-rbeQ)
2022/01/06(木) 12:57:35.75ID:jegOl+WX0
>>465
すまん、そこ間違えた。varで良い。
言語によってはTask<IQuerable<Bar>>が要らない言語があるんよ。

確かにBar取ってるとわかるが、Barを取っているとわかる必要はある?

>>467
スマホで書いたらダメだな、すまん。
469デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/06(木) 13:20:28.91ID:+o9sIybza
Barだと分かる必要はないけど分かったほうがありがたい
無地のジグソーパズルでも問題なく完成できるけど、絵柄があったほうがありがたいのと同じ
470デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/06(木) 13:50:37.41ID:A4g6fK0TM
わかる必要はないのわかったほうがありがたい?
初心者にありがちな必要ないのにやけに細部にこだわるタイプなのかな?
471デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/06(木) 14:04:18.23ID:+o9sIybza
その行の前後見ればvarとあってもそれがBarだとわかる
でもBarと明示してくれたら前後見る手間なく分かる、たったそれだけの差をありがたいと言ってる

var result = colBar.Where(predicate).Take(10);
xxxxでなくcolBarというように書かれてたらvarでもBarだと分かるからありがたいし
もっと言えばresultとかやめて
var resBarTop10aroundPOI = colBarInTokyo.Where(predicate).Take(10);
こんな風にしてくれたら、この一行見るだけでそれが何しているのかが分かってありがたい
俺みたいに理解力に乏しい人間にとっては情報量多いほうがありがたいんだよ。無駄に多すぎるのは勘弁だが
472デフォルトの名無しさん (ワッチョイ 2247-4nvB)
2022/01/06(木) 14:08:45.09ID:t38juXmg0
class HogeBase
{
・・・
}

class Hoge : HogeBase
{
・・・
}

static Hoge GetHoge()
{
  return new Hoge();
}

の場合


HogeBase hoge = GetHoge();

だと右辺の型確認しない主義の人はhogeの実態がHogeBase型だと勘違いしたまま作業することになるからまずいんじゃないの?
473デフォルトの名無しさん (ワッチョイ 45ad-Rgq3)
2022/01/06(木) 14:13:52.71ID:HsEWm91X0
それは勘違いじゃないんじゃないの?
474デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/06(木) 14:15:52.97ID:+o9sIybza
それはHogeBaseとして扱いたいからHogeBaseに入れてるんでしょ
中身はHoge2やHoge3かもしれない。Hogeと知らなくてもいいよ
475デフォルトの名無しさん (ワッチョイ 2247-8XAc)
2022/01/06(木) 14:19:47.84ID:t38juXmg0
virtualメソッドがHogeとHogeBaseで違う動きするよ?
virtualがHogeBaseの動きする前提でレビューしていいのかい?
>>473
>>474
476デフォルトの名無しさん (ワッチョイ 45ad-Rgq3)
2022/01/06(木) 14:29:24.20ID:HsEWm91X0
何か問題が?
それで困るなら派生させちゃ駄目
477デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/06(木) 14:33:13.09ID:+o9sIybza
HogeBaseがさらにIBaseってインターフェース派生だったらどうするよ
IBase hoge = GetHoge();
hogeは何も実装できないInterfaceだから何の動作もしないはずなんて思うやつはいない

そもそも型に対して前提としてる考え方が違う
GetがHogeじゃなくてHogeBase返してきたら右辺見ても区別つかないよ
static HogeBase GetHoge()
{
  return new Hoge();
}
478デフォルトの名無しさん (ワッチョイ 2247-4nvB)
2022/01/06(木) 14:33:43.94ID:t38juXmg0
>>476
へー、呼ばれるメソッドを間違えて認識しててもレビューできるんだ
すげーな
479デフォルトの名無しさん (ワッチョイ 2247-4nvB)
2022/01/06(木) 14:37:00.03ID:t38juXmg0
>>477
うん、だからレビューするなら真面目に右辺のメソッドの中身まで確認しろってこと
480デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/06(木) 14:41:37.87ID:A4g6fK0TM
>>478
えっ?
多態使ったことないんか?
481デフォルトの名無しさん (ワッチョイ 2247-8XAc)
2022/01/06(木) 14:54:39.91ID:t38juXmg0
使ってるからこの話題持ち出したんだけど
>>480
482デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/06(木) 15:15:22.51ID:FKeKEAH4M
hoge.fuga();
って言うコードをレビューする時に実際に呼ばれるメソッドがまだ作られてないケースもあるんだけどどうやってレビューしてるの?
483デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/06(木) 15:19:14.44ID:Rudq/m5Ya
>>451
人の話聞かない人?何が言いたいのかさっぱり分からん。

恐らく誰も、少なくとも俺は
「varを使うと自動的に左辺の変数が不明瞭になるからvarは一切使うな」
などとは言ってないの。
例えば>>431

むしろ現実的にはほとんどの場合varでいいんだよ。
それはコードの書き手にも読み手にもメリットがある。

論点は>>412に書いた通り、「右辺の型が推測しづらいケースでもvarを使うのは不適切じゃないのか?」だ。
484デフォルトの名無しさん (ブーイモ MM26-zmFY)
2022/01/06(木) 15:20:25.57ID:77VqpiEwM
var嫌がってるのってもしかしてテストコードを書かない種族の人?
485デフォルトの名無しさん (ワッチョイ e549-Loja)
2022/01/06(木) 16:21:47.64ID:7whnQ4QD0
ワイはvarのほうが効率あがる
うちはそこはレビューよりも書き手優先でvar推奨(c#)
レビューも気にするならその段階でIDE起動してる

その現場でいちいち書かせたいんなら型明示を強制すればいいんでね
うちのとこはそんなとこまでちまちま言い合うほど暇じゃないし、それ以上にテスト充実してほしい勢
まあvarにわざわざ書き直させたりもしないねw
486デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/06(木) 16:35:03.08ID:+o9sIybza
俺はvarが嫌なんじゃなくて読みにくいコードが嫌
で、読みにくい要因の一つがvarだということな
さらに自分がvar使うのが嫌なんじゃなくて他人が使ってるのが嫌。自分のコードだったらそんなこと気にしなくても読めるし
自分に優しく他人に厳しくがモットーなんだよ
487デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/06(木) 16:36:42.04ID:OeKJG00I0
私C#良く分からないのですが、
そんな私がC#の説明することになりました。

クラスが参照型なのですが、どういう理由でこうなっているのか、
どういう意図でこうなっているのか、何と言って説明すればいいの?
本読んでも「参照型はポインタ的な雰囲気の何か」的な説明しかなくて
なんでこうなっているのか全く書いてなかった。

ちなみに、参照型=ポインタと言い切っちゃってもいいのかな??
よろしくお願いいたします。
488デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/06(木) 16:38:59.36ID:OeKJG00I0
コード書くときはvarで書いて、
それをintとかlongに変換してくれるツールを作ればいいだけなのでは??
489デフォルトの名無しさん (ワッチョイ 9901-1ka7)
2022/01/06(木) 17:01:20.10ID:WCTWOnks0
>>487
書籍に例えるとどちらも目次に該当する
ポインターがページ数だとすると参照型ってのはタイトル
490デフォルトの名無しさん (ブーイモ MM26-zmFY)
2022/01/06(木) 17:31:36.72ID:ae3RunliM
>>487
参照型はデータそのものじゃなくデータへの参照を持ってる型

C言語しか知らない人にC#を説明するんじゃなければわざわざポインタとの対比で説明する必要ないよ
491デフォルトの名無しさん (ワッチョイ 9901-1ka7)
2022/01/06(木) 17:35:14.31ID:WCTWOnks0
Varでも何でもいいけど読みながらその都度型を類推するよりは読む前に何をしてるか理解してから読む
大まかな流れを理解してから読むのとメクラ滅法に読むのじゃ時間が100倍も1000倍も異なるからね
書く時だってそう
492デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/06(木) 17:50:32.30ID:rL+VifTwM
>>483
> 論点は>>412に書いた通り、「右辺の型が推測しづらいケースでもvarを使うのは不適切じゃないのか?」だ。
具体的にどういうケースを言ってるの?
493デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 17:51:43.10ID:VWdkYx+r0
>>492
型が分からなくてスルーできる脳みそが羨ましいわ〜
494デフォルトの名無しさん (アウグロ MM0a-TiOx)
2022/01/06(木) 17:55:43.01ID:h7LPoqLqM
そもそもvarがいいのって書くときだけじゃん
戻り値なんかでやられると最悪じゃん
495デフォルトの名無しさん (スフッ Sd62-XkW2)
2022/01/06(木) 17:58:59.73ID:XJZjWgUBd
結局宣言行まで戻って型見る面倒
ショートカットでいいような
496デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/06(木) 18:41:32.37ID:6bRgcWdcM
>>493
そういうレスしかできない時点でなにも困ってないのがバレバレやん
497デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 19:04:48.00ID:VWdkYx+r0
>>496
トラが檻に戻ってないのに確認しないで施錠できる脳みそみたいな
498sage (ワッチョイ 9901-qpXy)
2022/01/06(木) 19:25:09.72ID:OeKJG00I0
>>489 >>490 返答ありがとうございます。

「参照型とは何か」を問うているのではなくて、
クラスが参照型なのは、どういう理由でこうなっているのか、
どういう意図でこうなっているのかを問うています。
クラスを参照型にしている思想は何かということです。
499デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/06(木) 19:27:13.03ID:6bRgcWdcM
単なるアホかよ、NGしとくわ
500デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 19:34:15.72ID:VWdkYx+r0
>>499
推測しづらいケースが一つも思い浮かばない→推測をしたことがない→馬鹿の壁
501デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/06(木) 19:34:56.89ID:jNRDp0FJa
>>498
逆に参照型じゃないならどうする?
多くのデータを抱えたクラスを毎度毎度コピーして渡すコピー型にでもする?
502デフォルトの名無しさん (ワッチョイ 9d78-iZeD)
2022/01/06(木) 19:35:48.42ID:Bcw/lb7Z0
>>498
C# クラス 参照型
でググれば一番上にお前が望んでいる答えがあるぞ
503デフォルトの名無しさん (ワッチョイ 9901-Oi6W)
2022/01/06(木) 19:38:04.42ID:OeKJG00I0
var addFunc(var a, var b){ return (a + b); }
とかはありですか??
504デフォルトの名無しさん (ラクッペペ MM26-geyu)
2022/01/06(木) 19:42:33.04ID:Z0ROnAB1M
>>503
その宣言内容だけでどうやって型推論するのか
いくら何でもコンパイラに与える情報が足りなさすぎる
505デフォルトの名無しさん (ワッチョイ 2ee3-iZeD)
2022/01/06(木) 20:15:49.57ID:pGhYWD4M0
>>499
気付くのが遅いぞ
コレいつもの人だわ
506デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 20:27:11.92ID:VWdkYx+r0
>>505
おまえの型推論はバグってるな。
507デフォルトの名無しさん (ワッチョイ 6187-F0I3)
2022/01/06(木) 20:53:48.44ID:2nit6p8q0
>>471
これ、古より嫌われているシステムハンガリアンだから結構嫌がる人多いと思うよ
508デフォルトの名無しさん (ワッチョイ ade6-X9o+)
2022/01/06(木) 20:55:39.69ID:WSidiaMA0
winapiのクソキャストにはハンガリアンぐらいが丁度いい
509デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/06(木) 20:59:03.64ID:snULIxlRa
>>487
問題設定自体を変えた方がいいかもね。
なぜ値型ではだめなのか?と。

値型だと少なくとも「フールドを増やしたサブクラスの値を
ベースクラスの型の変数に入れる」なんて芸当は難しくなるね。

というか、こういう禅問答みたいな話は(たぶん重要なんだろうとは思うけど)
初心者は後回しにした方が絶対にいいと思う。
510デフォルトの名無しさん (ブーイモ MM6d-zmFY)
2022/01/06(木) 21:28:53.73ID:TiVU33P2M
>>498
参照型を理解してないんだからそれを理解するのが先

クラスが参照型なのはポインタ型や値型だと困るから
文字列が値型だとどうなるか考えてみれば?
ポインタを理解してるならすぐわかる
511デフォルトの名無しさん (ワッチョイ 6e33-tkKJ)
2022/01/06(木) 23:17:09.17ID:mv8eR6oh0
C#のスレでメソッド名の先頭が小文字から始まってる時点で、
・意識が低い
・まともに調べたり勉強していない
どちらかであることを認識すべき。
512デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 23:20:50.62ID:VWdkYx+r0
varがある時点でやっつけ専用言語なのに
513デフォルトの名無しさん (ワッチョイ dd5f-HU52)
2022/01/06(木) 23:32:25.27ID:8QDluGwV0
>>512
???
514デフォルトの名無しさん (ワッチョイ 2247-8XAc)
2022/01/06(木) 23:51:42.25ID:t38juXmg0
>>512
今時C++でさえ型推論付いてるというのに
515デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/06(木) 23:53:35.71ID:VWdkYx+r0
どうしてもc++でやっつけコード書きたいから追加した仕様だろ
516デフォルトの名無しさん (ワッチョイ 2247-8XAc)
2022/01/07(金) 00:03:01.88ID:IK3vjsT30
今時型推論ないほうが珍しいだろ
517デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 00:09:41.99ID:qow9t6Ky0
やっつけコードしか書かないプログラマだらけの時代に何言ってんだ
昔はOSの無償サポートは10年とかだったのに今はすぐサポート切れの切り捨て。
なぜならやっつけコードで保守する気ないからだ。Win8とかEdgeとかWPFとかぜーんぶやっつけで作ってたからすぐ捨てられた。
518デフォルトの名無しさん (ワッチョイ 6187-F0I3)
2022/01/07(金) 00:23:20.23ID:bs4RpyaW0
型推論はやっつけなのか。
古き良きなのか、時代についてこれないのか
考え方は人それぞれよね
519デフォルトの名無しさん (ワッチョイ d1ac-Loja)
2022/01/07(金) 00:30:28.71ID:uWMJJK3h0
型推論だめってチームいやだわ
ギスギスしてそうw
520デフォルトの名無しさん (ワッチョイ 2247-8XAc)
2022/01/07(金) 00:32:56.56ID:IK3vjsT30
型推論付きの言語はやっつけ専用か
普段この人は何言語でやっつけじゃない開発してんだろう
521デフォルトの名無しさん (ワッチョイ 42e4-Z3YW)
2022/01/07(金) 00:40:49.40ID:YgufRjXg0
最近は「int key = 0」でなく「Key key = new(0)」みたいに書いてるからvarは使わんな
522デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/07(金) 06:45:05.41ID:j4Wq+RBJM
>>520
・老害のCOBOLer
・自称スーパープログラマーな組込C使い
・Javascriptのvarと混同してるボンクラPG
523デフォルトの名無しさん (スップ Sdc2-MYyk)
2022/01/07(金) 08:15:52.34ID:y6x0s+uzd
var一切使わない人ってラムダの引数型もクソ真面目に書いてそう
524デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 09:50:10.76ID:qow9t6Ky0
スップw 初心者スレでラムダw
525デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 10:00:38.21ID:qow9t6Ky0
知らないうちにLINQスレもなくなってる。過疎なム板で落ちるとかよほど人気ないのか。
>>523 そうやってガキみたいに初心者相手にマウンティグして全部追い出したんじゃないのか。
526デフォルトの名無しさん (ワッチョイ 2e63-Ggfm)
2022/01/07(金) 11:42:40.26ID:yxixByMw0
おーっとここでガキマウントです
527デフォルトの名無しさん (ラクッペペ MM26-X9o+)
2022/01/07(金) 11:50:35.85ID:FRwoYiaWM
>>524
初心者のくせにラムダなんて生意気だ!
ってマウントですね
528デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 12:38:03.65ID:6zNCaZbD0
>>509
>> 値型だと少なくとも「フールドを増やしたサブクラスの値を
>> ベースクラスの型の変数に入れる」なんて芸当は難しくなるね。

すみません。良く分かりません。クラスが値型のC++で
「フールドを増やしたサブクラスの値をベースクラスの型の変数に入れる」
なんて芸当、なんの問題もなくできると思うのですが

>>510
>>文字列が値型だとどうなるか考えてみれば?

文字列は内部実装は参照ですが、ユーザ見えは値型と同じだと思うんですが・・・
内部でどう実装されているのかは、そんなに説明するつもりもないし・・・
529デフォルトの名無しさん (スップ Sdc2-MYyk)
2022/01/07(金) 13:00:57.38ID:y6x0s+uzd
>>528
ベースクラスの変数に入れることはなんの問題もないけど逆の操作派生クラスに戻せなくなる
C++でもそうだけどnewされた時の型をベースクラスが覚えておかないとvirtualとかasが使えない
530デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 13:01:07.20ID:6zNCaZbD0
返答ありがとうございます。

>>501
>>逆に参照型じゃないならどうする?

c++ではクラスは参照型ではないですよね?
c#では構造体は参照型ではないですよね?

>>502
>> C# クラス 参照型
>> でググれば一番上にお前が望んでいる答えがあるぞ

配列が参照型なのを考慮すると、高速化・・・・
いや、そのサイト見てると高速化よりも
ポインタを無理やり追い出した弊害に思えてきました・・
531デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 13:03:35.17ID:qow9t6Ky0
c++に参照あるのに
532デフォルトの名無しさん (スップ Sdc2-MYyk)
2022/01/07(金) 13:03:54.16ID:y6x0s+uzd
>>528
型ってのはコンパイル時に大きさ(byte数と配置)が決まってないといけないという縛りがCのときからある
長さがいくつになるか分からんstringは参照型にするしかない
533デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 13:06:18.93ID:qow9t6Ky0
クラスや構造体の中にポインタもって動的にメモリを確保するだけである。型のサイズは変わらない。
534デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 13:08:54.79ID:6zNCaZbD0
>>529
>>C++でもそうだけど

まことに申し訳ないけど、何を言いたいのか全く理解できません。
クラスが値型のC++でも通用する話を出してきても???と思うんですが
535デフォルトの名無しさん (ワッチョイ e12d-qpXy)
2022/01/07(金) 13:09:35.44ID:IAj8vN+S0
>>530
生のポインタだとオブジェクトを移動して断片化したメモリの整理が出来ない
536デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 13:12:31.36ID:6zNCaZbD0
>>532
それだとクラスは値型でOKという話になっちゃいます。
537デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 13:17:33.66ID:6zNCaZbD0
>>535
ひょっとして私根本的な所を理解していないのかな?
class clsA { class clsB { class clsC { xxx }}}
みたいなクラスの内部にクラスを含んだクラスであっても
GCでガンガン割り当てられているメモリアドレスを
動かされると言いたいのでしょうか??
538デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 13:18:48.25ID:qow9t6Ky0
で参照の何を議論してるんだ?
c#のクラスが参照型なのが許せない!!って言いたいのか? キミがそういうのならそうだろう。キミの中ではな。
539デフォルトの名無しさん (ラクッペペ MM26-X9o+)
2022/01/07(金) 13:26:11.81ID:FRwoYiaWM
参照のほうが便利だからじゃね?
540デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 13:28:12.36ID:6zNCaZbD0
>>538
>> c#のクラスが参照型なのが許せない!!って言いたいのか?

質問を読んでそういう理解なのでしょうか?
質問を読まずにそういう理解なのでしょうか?
541デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 13:34:18.44ID:qow9t6Ky0
>>540
誰が質問をしたかすら知らないが、質問を質問で返す。つまりそれは構ってちゃんだ。
542デフォルトの名無しさん (ワッチョイ 6e33-KZG/)
2022/01/07(金) 13:45:30.30ID:BJs69ghP0
流れを読まず、適当なところに突っかかる
つまりそれは荒らしだ
543デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 13:51:09.32ID:qow9t6Ky0
話題が分散しすぎて流れが分からないから聞いただけなのに酷い言い掛かりだ。

C#のクラスがなぜ参照型かだって?
C#は関係ないよ。.net側の仕様だから。vb.netでも同じ。で終わりの話。
544デフォルトの名無しさん (ラクッペペ MM26-X9o+)
2022/01/07(金) 13:54:19.71ID:FRwoYiaWM
>>543
その仕様をなぜ決めたかを聞いているんでしょ

こんなところで
545デフォルトの名無しさん (ワッチョイ e12d-qpXy)
2022/01/07(金) 14:01:57.02ID:IAj8vN+S0
>>537
そう頻繁では無いにしろ移動されない保証は無いね
546デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 14:24:42.02ID:qow9t6Ky0
>>544
え? コピーのコストが違うから分けたという単純な話だが。
Cだって配列のコピーは重いから引数で参照渡しされるだろう?
547デフォルトの名無しさん (ラクッペペ MM26-X9o+)
2022/01/07(金) 14:55:19.17ID:FRwoYiaWM
だからみんな単純な回答してるじゃん

あ、俺はどちてぼうやじゃないよ
548デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 15:17:14.00ID:6zNCaZbD0
>>546
>> コピーのコストが違うから分けたという単純な話

確かにそんな感じですね。
クラスが値型のc++が遅くて
クラスが参照型のc#が早いなんて
全く聞いたことないのですが、
MSがトチ狂って高速化を優先(それ以外を犠牲)したようですね。
549デフォルトの名無しさん (ラクッペペ MM26-X9o+)
2022/01/07(金) 15:54:45.54ID:FRwoYiaWM
トチ狂っててワロタ
550デフォルトの名無しさん (ドコグロ MM56-wcXw)
2022/01/07(金) 16:20:24.15ID:EZdfrZXhM
>>548
C++ は値型のクラスを作れるけどそれをそのま他の関数に渡すなんてことはほぼやらんぞ
そもそもCでも構造体をそのまま渡したらコピーされるからコピーコストを言うなら参照型にしてるだろ
要はC/C++はそういう制御もプログラマに開放してるがC#は開放してない(コピーはそれなりのメソッドを呼び出す)ってだけの話
551デフォルトの名無しさん (ワッチョイ e95f-N1GP)
2022/01/07(金) 17:18:23.04ID:0zyZKkps0
牛乳飲んで落ち着いて
552デフォルトの名無しさん (ワッチョイ aebb-dPEu)
2022/01/07(金) 17:50:23.82ID:7Nc+xMj80
>C++ は値型のクラスを作れるけど

なんかもう、松永パソコン大先生みたいな話だな
553デフォルトの名無しさん (オッペケ Srf1-Loja)
2022/01/07(金) 18:17:48.54ID:EoqFVcXVr
割りきればいいものを、どうでもよく無駄にこだわるやついるよな
554デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/07(金) 19:02:16.87ID:NAsC2Vwba
>>528
正直C++よく知らんので調べてみたけど、だから↓にあるような「問題」があるわけだよね
https://www.cloverfield.co.jp/%E7%B5%84%E8%BE%BC%E3%81%BF%E7%8F%BE%E5%A0%B4%E3%81%AE%E3%80%8CC++%E3%80%8D%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%20%E6%98%8E%E6%97%A5%E3%81%8B%E3%82%89%E4%BD%BF%E3%81%88%E3%82%8B%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80/3.3%20%E7%B6%99%E6%89%BF%E3%81%AE%E8%A3%8F%E5%81%B4.html

だから他の人が指摘しているstringのようなケースを無視するとしても、
値型で無理に継承を実現しようとすると、

(1) >>509に書いたように多態を諦めるか

(2) メモリ効率を犠牲にして、ベースクラスの変数のメモリ上のサイズは全ての派生クラスの
「共用体」のサイズとする。当然全ての型はinternalとして定義する必要もある。

こういうありがたくない制約が出来ちゃうでしょ
555デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 19:37:25.76ID:6zNCaZbD0
>>546
>>Cだって配列のコピーは重いから引数で参照渡しされるだろう?

つ【std::vectorは参照ではない】
556デフォルトの名無しさん (ワッチョイ 4124-iMNY)
2022/01/07(金) 19:39:06.67ID:46kMC38t0
Unityの座標系って左下起点がデフォなの?
WindowsのGUIとのやり取りが凄い大変なんだけどなぜこういう仕様になってるのか教えてもらいたい
557デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 19:41:19.72ID:6zNCaZbD0
>>554
>> 正直C++よく知らんので調べてみたけど、だから↓にあるような「問題」があるわけだよね

菱形継承はいろいろと問題あるからね。菱形継承問題でググってみな
それにc#は多重継承できないからね・・・
558デフォルトの名無しさん (ワッチョイ 4124-iMNY)
2022/01/07(金) 19:42:11.75ID:46kMC38t0
>>555
push_backでコピーorムーブが発生するってことを言いたいん?
そのコピーコストを無視できないくらい大きなもの扱ってるときは正にC#の参照型Listのようにポインタ型のvectorを作るか、resize+インデクサアクセスで直埋め込みするじゃん
559デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 19:44:39.54ID:6zNCaZbD0
>>554
>> ベースクラスの変数のメモリ上のサイズは

いや、ベースクラスの変数のメモリ上のサイズは
ベースクラスが持っている変数のメモリ上のサイズの合計
(パディング考慮)でしょうが・・・
560デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/07(金) 19:46:03.22ID:NAsC2Vwba
>>556
Unity知らんけど、印刷考えなきゃ最初から普通のデカルト座標採用してくれた方が
自然ではあるね。

むしろCRTなんていう前世紀の遺物の仕様をいまだに引きずってる方が「なぜ」のような気が
561デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/07(金) 19:47:36.10ID:NAsC2Vwba
>>559
だから、そうだとしてそれにフィールドを追加した派生クラスの値を入れられるんですかと
562デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 19:48:35.26ID:6zNCaZbD0
>>558
引数で参照渡しされるだろう?

と言ってるので『std::vectorを引数にする時は参照渡しではない』という意味で言ってるが
563デフォルトの名無しさん (ワッチョイ 4124-iMNY)
2022/01/07(金) 19:54:08.11ID:46kMC38t0
>>562
C/C++には参照型も糞なく全部値型だからvectorそのままだと当然値渡しになるから言葉そのまま受け取ればそういうことになるけど
std::vectorって配列へのポインタを持ってるだけだから疑似参照型みたいなもんってことを言いたいんだろ
sizeof(std::vector<T>)のTが何であろうと固定で16byteくらいだし
564デフォルトの名無しさん (ワッチョイ 9901-45BR)
2022/01/07(金) 19:54:17.18ID:6zNCaZbD0
>>561
つまり『ポインタを無理やり追い出した弊害に』だよなぁ
565デフォルトの名無しさん (ワッチョイ 4124-iMNY)
2022/01/07(金) 19:58:27.54ID:46kMC38t0
>>560
WindowsGUIの方がレアだったのか
C#でもSIMD命令呼べるようになったから_mm_add_psとかで一気にやりたいのにxとyで加算減算分けないといけないから出来ないのが残念すぎる
566デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 20:02:45.79ID:qow9t6Ky0
>>555
それC++やないか。しかもそれはC++でも配列やない、classや。
しかもC++はclassの参照渡しできるねん。
567デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/07(金) 20:49:57.04ID:NAsC2Vwba
>>564
いや何でそうなるw
意味が分からん。

問題設定は「なぜクラスの変数はポインタなのか?」
だからポインタを使わないとどうなるかを示しているわけで、
実際はC#はポインタを追放なんかしてないよ
568デフォルトの名無しさん (アウアウウー Saa5-FJ/U)
2022/01/07(金) 20:56:58.30ID:0Qlm+FNra
他人の話を聞かないタイプだから相手するだけ無駄よ
相手するならMSはトチ狂ってるってのに同意する方向じゃないと
569デフォルトの名無しさん (ワッチョイ ed18-TVXy)
2022/01/07(金) 21:12:41.39ID:qow9t6Ky0
だから.netの仕様だと。
言葉を借りるならポインタを追い出したのが値型だ。値型と参照型の機能の違いを仕様書で確認しなさい。
つまるところガベジコレクションからの分離。値型はスタックに乗せれる。確保も開放も高速。
つまり型が分からなくてもスルーできる奴は元から何も考えてないということだ。
570デフォルトの名無しさん (ワッチョイ 42e4-Z3YW)
2022/01/08(土) 00:48:49.28ID:T5N54j6i0
手動でメモリ確保して解放すんのめんどくせぇなぁって流れから、
全自動でメモリ確保と解放するC#が生まれたってだけの話じゃないの?
571デフォルトの名無しさん (ワッチョイ 2e8e-6dX5)
2022/01/08(土) 01:01:47.02ID:PQBT4Nc/0
>>570
Delphiを知らない馬鹿
572デフォルトの名無しさん (ワッチョイ 2e63-Ggfm)
2022/01/08(土) 01:03:56.61ID:IGpBQzM50
その後10時間もマウンティングゴリラしてたのかw
573デフォルトの名無しさん (ワッチョイ fd54-iWH+)
2022/01/08(土) 02:44:00.27ID:1bILROxT0
大昔にVBで作られた社内業務アプリをC#で作り直す事になったけど、
GUIはWinForms?WPF?WinUI?どれが一番メジャーなの?
WPFは死んでるとか言われてるようだし、WinUIは出たばかりで情報少ないっぽいし、古いけどWinFormsがいいの?
574デフォルトの名無しさん (ワッチョイ e184-4nvB)
2022/01/08(土) 03:02:40.46ID:35B5Rb5B0
>>573
一番メジャーなのはWinFormsだけど
社内でよく使われているモニターが高解像度で
スケーリング表示をきれいにしたいなら
WPFかWinUIの方がいいよ
575デフォルトの名無しさん (ワッチョイ e95f-QhZx)
2022/01/08(土) 03:13:30.02ID:IEuXTu700
WinFormsって2番目だぞ
1番使われているのはWPF
社内アプリならとりあえず.NETのバージョンは6にしたほうがいいな
以前のとパフォーマンスが段違いなので
576デフォルトの名無しさん (アウアウウー Saa5-45BR)
2022/01/08(土) 04:22:41.48ID:BHQyctLJa
>>573
何がベストかは結局何を重視するのかの関数だよね。
だからたぶん各選択肢のいわゆるpros and consを挙げてもらった方がよい気がする

コスト重視ならVBにもっとも近いFormがベストだ。
視覚効果や高DPI対応が重要ならWPFがベストだけど、学習コストが高いし、
はっきり言ってパフォーマンス的にまったく使えない分野もある。

WinUIは知らんw
577デフォルトの名無しさん (ワッチョイ e184-8XAc)
2022/01/08(土) 06:02:52.91ID:35B5Rb5B0
一番楽チンなのはVS2008のコンバーター使ってVB6→VB.netにコンバートし、コンパイルエラーが発生する部分をちょいと修正する事
複雑な計算式使ってる場合に計算式の移植間違いを防げる
578デフォルトの名無しさん (ドコグロ MM8f-KcIn)
2022/01/08(土) 09:09:54.52ID:LhcZsKvbM
>>571
Delphi に GC あったっけ?
579デフォルトの名無しさん (ワッチョイ ff66-WG9p)
2022/01/08(土) 09:30:56.43ID:qvdwzZse0
>>578
ないと思う
580デフォルトの名無しさん (ワッチョイ 5f49-nMpR)
2022/01/08(土) 09:56:39.05ID:PHIkImNk0
関係ないけど、こういう案件て段々広がって収拾つかなくなるか、
客がビビりはじめて結局ほぼ何もしてない変わらないみたいになるか、
ってなりがちよね
客にも腰据えてもらわないとぐだぐだになる
581デフォルトの名無しさん (ワッチョイ 7f01-oH9J)
2022/01/08(土) 10:52:45.90ID:76ewE+lX0
Webで作るという選択肢はないのかな?
ある程度の規模があるところなら配布やサポートコストまで考えるとWebのほうが安上がり
582デフォルトの名無しさん (ドコグロ MM8f-KcIn)
2022/01/08(土) 11:16:30.10ID:6MOJW9HWM
社内業務アプリの内容によるけど今どきならWebだろうね
サーバーやDBMSの構築すらままならんとかならしゃーないけど
583デフォルトの名無しさん (ワッチョイ dfb0-n+fn)
2022/01/08(土) 11:21:14.11ID:eHBvCcl00
クラサバとかの業務システムをWeb化するのはよくある話だが、スタンドアロンで済む
ただのGUIアプリをわざわざWeb化するのは割に合わんと思うがな。
それを上回るなにかメリットがないと。
584デフォルトの名無しさん (アウアウウー Saa3-mx/f)
2022/01/08(土) 11:32:33.07ID:Sgj71hWsa
データをサーバー管理するようなのならまだしも、普通のアプリなら普通に作ったほうが圧倒的に楽
585デフォルトの名無しさん (ドコグロ MM8f-KcIn)
2022/01/08(土) 12:01:38.53ID:6MOJW9HWM
今どき社内業務システムでローカルに閉じてるやつなんてある?
586デフォルトの名無しさん (オッペケ Srb3-nMpR)
2022/01/08(土) 12:13:29.45ID:qVp9qlx6r
ローカルアプリから直接DB見に行くとかならあるんじゃね
ストアで更新配賦とか夢見たこともあったなあ
587デフォルトの名無しさん (ワッチョイ dfb0-n+fn)
2022/01/08(土) 12:18:21.83ID:eHBvCcl00
>>573の業務アプリというのがどういうものかは>>573に聞いてみなけりゃわからんが、
業務で使う内製アプリがスタンドアロンだって例はいくらでもあると思うが。
逆に、なんで無いと思ったの?
588デフォルトの名無しさん (アウアウウー Saa3-mx/f)
2022/01/08(土) 12:18:22.15ID:Sgj71hWsa
社内業務アプリって言ってもいわゆる業務管理システムだけじゃないからな
ローカル完結なんていくらでもある
ちょっとしたツール類なんて全部そうだろ
589デフォルトの名無しさん (スププ Sd9f-ZgsV)
2022/01/08(土) 12:45:29.08ID:+n5rVMIfd
Web化すべき案件なら最初からそっちで検討してるんだから余計なお世話やで
590デフォルトの名無しさん (ブーイモ MM23-gPO7)
2022/01/08(土) 12:47:06.13ID:v0nm/uLMM
ツール類って具体的には?
そりや業務端末でも一般的なフリーソフトとか使ってることはあるけど、
業務用に作られたスタンドアロンなツールなんて機器制御関連以外では滅多に見かけないわ
システム連携が不完全なためにローカルなアプリやVBAで局所的な自動化をやってるケースはあるけど、結局その入出力は手動で他と連携するわけで、スタンドアロンとは違うでしょ
591デフォルトの名無しさん (ワッチョイ df84-ZgsV)
2022/01/08(土) 12:48:22.96ID:35B5Rb5B0
スタンドアロンで作るって言ってるのにしつこいな
592デフォルトの名無しさん (ワッチョイ ffb9-3J+y)
2022/01/08(土) 12:50:35.22ID:VCGpsaaV0
VisualStudioでデバッグ中に変数やらクラスの中身を追っていくとき
大量にプロパティがあるとアルファベットの後半追うのに
▼で下まで流すのがかなりまどろっこしいんですが
スクロールバーもでないし・・・
もうちょっとスムーズにする方法ってあるんですかね
593デフォルトの名無しさん (アウアウウー Saa3-mx/f)
2022/01/08(土) 13:01:28.24ID:Sgj71hWsa
>>590
テキストファイルの文字数や段落数カウントするだけ
指定したウインドウのスクリーンショットを取るだけ
画像をpngにするだけ
ファイルをリネームするだけ
動画からフレームや動画を切り出すだけ

こういうの実際に作ったツールだな。フリーソフトでもできるけどそういうのも開発することあるんだよ
594デフォルトの名無しさん (ブーイモ MM0f-oH9J)
2022/01/08(土) 13:24:30.41ID:a4nwkm/0M
デスクトップアプリじゃなきゃダメな強い理由がなければ
WinFormならともかく今からWPFとかやるのは無駄だよね
595デフォルトの名無しさん (ブーイモ MM0f-oH9J)
2022/01/08(土) 13:25:51.14ID:a4nwkm/0M
>>592
ウォッチ式?
596デフォルトの名無しさん (ドコグロ MM4f-KcIn)
2022/01/08(土) 13:29:23.33ID:Rc/Af6wIM
>>593
そう言うのを社内業務アプリって言うの?
597デフォルトの名無しさん (ワッチョイ 5f18-e3w4)
2022/01/08(土) 13:37:12.89ID:Kbht7+jO0
やっつけアプリ、やっつけツールと言います
598デフォルトの名無しさん (アウアウウー Saa3-7drx)
2022/01/08(土) 13:38:58.06ID:OnpKeph7a
>>596
仕事に使うなら全部業務アプリだろ
区別する意味はないと思うが
599デフォルトの名無しさん (ワッチョイ ff10-aGiv)
2022/01/08(土) 14:16:08.90ID:sJWr1x2I0
業務といっても何を指すかで見当違いなことを言い合ってたりするからな
ちなみに俺は追記式で容量が10メガ超えるログファイルを待ち時間なしに検索&色分けフィルターするビューアー
が必要だったので作った
600デフォルトの名無しさん (ワッチョイ 5f5f-wXXk)
2022/01/08(土) 14:19:48.42ID:QfvG5fL40
プロパティの値についてなんですが
値が変わらないプロパティに関しては
Visual Studioの右側のプロパティから変更するのか
それともForm1.csのなかで変更するのどっちが王道でしょうか?
601デフォルトの名無しさん (ワッチョイ 7f47-ZgsV)
2022/01/08(土) 14:22:07.76ID:LyVlYLKR0
>>600
Visual Studio
602デフォルトの名無しさん (アウアウウー Saa3-mx/f)
2022/01/08(土) 14:45:55.87ID:Sgj71hWsa
変更したってことを把握しにくいからできるだけForm1.csだな
603デフォルトの名無しさん (ワッチョイ 5f6e-3J+y)
2022/01/08(土) 18:25:53.14ID:W7HGPhnA0
>>595
変数にカーソル合わせてポップアップででてくるクラスや変数の中身がでますよね
デバッグ中にそれで実際に入っている値を追っていくことがよくあるんですが
大量にあるとアルファベット順に並んでいるせいで
たとえば コンボボックスでいうと Selected〜まで見に行くのに
Sまで下りてこなければならないですよね
ポップアップにはスクロールバーもでないから毎回スクロールしないとならなくて
それが面倒で・・・
604デフォルトの名無しさん (アウアウウー Saa3-mx/f)
2022/01/08(土) 19:02:53.17ID:9AShM9M8a
デバッグで実行止めてるときに、デバッグ->ウインドウ->ウォッチでウォッチ1開いて、そこに見たい変数をドラッグ&ドロップ
配列の一部だけ見たいなら.Skip(100).Take(20)みたいに適当なlinqでもつけて
605デフォルトの名無しさん (ワッチョイ dfb0-meBQ)
2022/01/08(土) 21:28:00.33ID:WWAiwq7Z0
ArrayクラスのResizeメソッドの引数が参照渡しなのは何故ですか?
他のReverseやSortメソッドが値渡しなので統一されていないと感じてしまうのですが
606デフォルトの名無しさん (ワッチョイ 7f2c-mvA8)
2022/01/08(土) 21:31:36.72ID:7PajA1910
ReverseやSortは要素を置き換えるだけで済むけど
配列は固定長である以上Resizeするには新しく配列を作り直すしかない
607デフォルトの名無しさん (ワッチョイ 5f6e-3J+y)
2022/01/08(土) 22:55:18.70ID:W7HGPhnA0
>>604
レスありがとうございます
ウォッチ、使ったことがなくて知らなかったです
クイックウォッチでも簡単に見渡せるんですごく楽になりました
感謝です
608デフォルトの名無しさん (ワッチョイ dfb0-meBQ)
2022/01/08(土) 23:12:33.36ID:WWAiwq7Z0
>>606
ありがとうございました
納得しました
609デフォルトの名無しさん (ワッチョイ df01-DDP/)
2022/01/10(月) 02:13:23.67ID:LmDP/A0i0
.net6だとプロジェクト作成時にいつものusing systemとかが無かったんですけど暗黙的に使えるようになったか、あるいはどっかに記述を引っ越したんですかね?
610デフォルトの名無しさん (ワッチョイ 5f1a-sCjD)
2022/01/10(月) 03:14:56.13ID:t77ZMTfv0
global usingとかいう迷走の果てみたいなものがあったような覚えがある
611デフォルトの名無しさん (スップ Sd9f-eVCD)
2022/01/10(月) 16:59:27.76ID:9R5shyc4d
>>609
.csproj見てみ
612デフォルトの名無しさん (ワッチョイ df01-DDP/)
2022/01/10(月) 18:05:28.98ID:LmDP/A0i0
>>611
Implicitusingsってやつですか
このglobal usingってのはユーザが任意に追加できるんですかね?.net標準分だけ?標準だけだと有り難みがイマイチ・・・
613デフォルトの名無しさん (ワッチョイ 7f2c-mvA8)
2022/01/10(月) 18:14:37.58ID:Fbfc1ztE0
implicitなのはSDKで固定のはず
global using自体は.csprojに自由に書けるよ
https://ufcpp.net/blog/2021/11/implicitusings/
614デフォルトの名無しさん (ワッチョイ 7f2c-mvA8)
2022/01/10(月) 18:32:28.44ID:Fbfc1ztE0
というか.csにも普通に書けるよ
615デフォルトの名無しさん (ワッチョイ ff33-jRWF)
2022/01/10(月) 19:26:41.39ID:mJ9SvVvR0
というか.txtにも.hogeにも普通に書けるよ
616デフォルトの名無しさん (ドコグロ MM4f-KcIn)
2022/01/10(月) 19:32:53.98ID:Yn6t3tioM
>>614
書けるけど1つに書くと全ファイルに影響するのは怖くね?
なんかやりすぎ感ハンパない
617デフォルトの名無しさん (ワッチョイ ff33-jRWF)
2022/01/10(月) 20:21:18.79ID:mJ9SvVvR0
>>615
悪ふざけじゃなくて、書いたらちゃんと認識されるよって意味ね。
618デフォルトの名無しさん (ワッチョイ 5fad-IEFP)
2022/01/10(月) 21:15:40.34ID:zf/OU/S30
え、readme.txtとかに書いてても影響しちゃうの?
619デフォルトの名無しさん (ワッチョイ df5f-EgL+)
2022/01/10(月) 22:20:21.82ID:pzAlxVbU0
何度も同じことを書かせる仕組みはプログラムの基本的な考えと違うと考えればglobal usingは妥当
620デフォルトの名無しさん (ワッチョイ df2d-bpII)
2022/01/10(月) 22:45:07.71ID:zjcR70ev0
global usingもあれば楽だけど書ける場所は限定された方が良かったような
621デフォルトの名無しさん (ドコグロ MM4f-KcIn)
2022/01/11(火) 06:33:56.47ID:TdDX7t/9M
>>619
それなら.csprojとかでいいでしょ
どこかに書いたら全体に影響するのはなんか違う
622デフォルトの名無しさん (アウグロ MM7f-5a4i)
2022/01/11(火) 07:14:14.80ID:qLFRpNWYM
もうあっちゃう時点でキモいから書けるなら制限なしでいいでしょ
623デフォルトの名無しさん (ワッチョイ df73-0yQm)
2022/01/11(火) 08:18:04.81ID:34v9AEL90
VS2022からC#やる人は結構わかりにくいやろなぁ。
なぜimportもusingもなにも書いてないのに、Console.Writel...
みたいにいきなり書けるのみたいな。

グローバルにいきなり書いてるがクラスに属さないグローバル変数はあるのないのとか。
624デフォルトの名無しさん (ワッチョイ 7f10-2G4o)
2022/01/11(火) 09:25:26.02ID:7v4JZSk/0
えーーーんTT
Console Programつくろうとしたらmain()がないよー><
なにこれ、こわい><
たすけてー
625デフォルトの名無しさん (ワッチョイ ff33-A/Mb)
2022/01/11(火) 09:36:34.63ID:qBZtvv4T0
従来のようなプロジェクトテンプレートでもプロジェクトを作れるようなオプションなりテンプレートなりあればいいのにね
テンプレートぐらい自分で作れって?面倒じゃん
626デフォルトの名無しさん (ワッチョイ 7f47-mvA8)
2022/01/11(火) 11:21:28.14ID:MvizqUHc0
>>625
.NET 5.0をターゲットにプロジェクト作成してから.NET 6.0にターゲット変更する
https://docs.microsoft.com/ja-jp/dotnet/core/tutorials/top-level-templates#use-the-old-program-style
627デフォルトの名無しさん (ワッチョイ 7f10-2G4o)
2022/01/11(火) 11:57:17.32ID:7v4JZSk/0
C#作ってる人たちはC#をスクリプトにしたいの??
何を目指してるのかよくわからない
628デフォルトの名無しさん (アウアウウー Saa3-mx/f)
2022/01/11(火) 12:22:25.87ID:4qGoqi+ca
なんでもできることを目指してるんだよ
もちろんスクリプトとしても使えるぞ。アプリの拡張プラグインをc#スクリプトにするとか簡単にできる
629デフォルトの名無しさん (ブーイモ MM9f-gPO7)
2022/01/11(火) 13:10:40.24ID:Grp1ZbCtM
>>627
IDEによるコード生成を完全に排除しようとしている、と考えると理解しやすい
最近の内製系の開発では、コードの自動生成は避けてソースを極力コンパクトに保とう、という考え方が主流になっているんだよ
630デフォルトの名無しさん (アウアウウー Saa3-94m7)
2022/01/11(火) 13:50:01.49ID:luTEChNva
何で自動生成やめたらコードがコンパクトになるの?
そんなわけないと思うんだけどw
631デフォルトの名無しさん (テテンテンテン MM4f-lUoQ)
2022/01/11(火) 13:58:30.81ID:/T2lNEPNM
コードの自動生成と言うか簡便さを求めてるのだろう
他の簡易な言語と比べると不必要な部分があるからそれを簡略化する

ボイラープレート(決まり切った特定のコードの記述 )やおまじないのような入門者にとって敷居の高いものを減らす
それ自体は問題ないはず

C#は言語的に無駄な記述が多すぎたから一気に来たんだろうな
632デフォルトの名無しさん (テテンテンテン MM4f-lUoQ)
2022/01/11(火) 14:02:02.73ID:/T2lNEPNM
ファイル内のnamespaceは一個なのにそのためにインデントが一つ増えてエディタでのコードが見通しが悪くなる
こんなの早くから導入してくれと思ってた
633デフォルトの名無しさん (ワッチョイ 5f49-n+fn)
2022/01/11(火) 14:14:24.58ID:Jt6jcb4u0
てかusingみたいに冒頭宣言みたくできればよかったのにな
634デフォルトの名無しさん (ワッチョイ 7fad-eVCD)
2022/01/11(火) 14:35:22.28ID:8rbbEYvA0
>>629
コードの自動生成はむしろ最近より進んでるやろ
gRPC周りやソースジェネレーターなんてその最たるもの
635デフォルトの名無しさん (アウアウウー Saa3-94m7)
2022/01/11(火) 14:56:40.93ID:luTEChNva
>>631
それってVBの思想だよねw
ただしい選択とは思えんな
636デフォルトの名無しさん (ワッチョイ df73-0yQm)
2022/01/12(水) 00:03:33.81ID:3DcpczOy0
スクリプトとしては異常に使いにくいよ、
特にアプリのプラグインとしては致命的。
やったことあるひとならわかるよね。

スクリプトだろうと1回実行したら、そのクラス型は解放されないから。
.netは型生成してしまうと、そのクラス型は基本的にアプリ終わるまで解放されない、
間違ったと思ってクラス型の部分のスクリプト変更して再実行しても反映できないのよ、アプリ終了しないと
クラス型が解放されないから。
637デフォルトの名無しさん (ワッチョイ df5f-EgL+)
2022/01/12(水) 04:14:45.93ID:qMg3RrrS0
コンパクトに書けるようになっていくのはいいと思う
元のC#は長く書くことを是としていたようで他の言語と比べると見栄えが悪い
638デフォルトの名無しさん (ワッチョイ 5f49-n+fn)
2022/01/12(水) 10:32:03.61ID:2Wvp4VJl0
C#はいいんだけど、ASP他諸々がなあ
Authorize入れるのも一苦労
639デフォルトの名無しさん (ワッチョイ 7fad-eVCD)
2022/01/12(水) 13:15:42.75ID:++K/dCbX0
何に比べてどう苦労するの?
640デフォルトの名無しさん (アウアウウー Saa3-mx/f)
2022/01/12(水) 15:39:18.51ID:BLJCWDpKa
>>636
作り方しだいだけどアプリ終了しなくても
スクリプト実行&終了→スクリプトファイル書き換え→スクリプト実行で書き換えた編集が反映されるよ
開放されないってのと反映されないってのは別問題でしょ
641デフォルトの名無しさん (テテンテンテン MM4f-MDm+)
2022/01/12(水) 18:17:31.66ID:C1xp3kdWM
おれはC#とASP.NET Core WebAPIが最もやりやすい
フロントは流石にReactとか使ったほうが楽だがJSもAltJSも罠だらけで洗練されてないね
642デフォルトの名無しさん (ワッチョイ df01-pCH8)
2022/01/12(水) 22:52:04.20ID:JXqJfbQh0
>>636
まさにクラスを書き換えて実行するのをやってるけど
そんな現象に出くわしたことがないぞ?
643デフォルトの名無しさん (ドコグロ MM4f-KcIn)
2022/01/13(木) 06:18:56.80ID:hEm3mWj0M
>>642
糞アプリの名前も書けない無能の相手すんなよ
644デフォルトの名無しさん (スッップ Sd9f-ZOz4)
2022/01/13(木) 18:48:22.57ID:OK31jUfcd
質問です。
ピクチャーボックスに描画された物をボタン投下で色を印刷用に変更したいです。
元は背景色黒。線は水色。文字は黄色。四角は緑色塗りされてる物を
背景色白、四角は外枠黒線白塗り、他黒に変更したいです。

これを参考に弄って、背景色は直変更し、線は無事変更、文字は滲んだ感じになり、ほかはそのままでした。
https://dobon.net/vb/dotnet/graphics/setremaptable.html

こんなのやるなら色を再設定して再描画した方が早いですかね?
イメージ的にはCADで書いてる物を印刷時に白黒反転するみたいな感じなんですが。
645デフォルトの名無しさん (アウアウウー Saa3-94m7)
2022/01/13(木) 19:01:26.19ID:Lka/sttda
>>644
印刷の品質の観点から言っても「ビットマップを流用する」
という発想自体が不適切で、「描画処理を流用する」べきでしょうね。
646デフォルトの名無しさん (ワッチョイ 5f54-8+uD)
2022/01/14(金) 07:06:02.10ID:uASM5+QH0
.net 6の Windows Forms の TreeView のサブクラスを作ったのですが、
サブクラスでOnMouseDownをオーバーライドすると動くのに、OnMouseClickをオーバーライドしても動きません。
何が原因でしょうか?
647デフォルトの名無しさん (ワッチョイ 7f2c-mvA8)
2022/01/14(金) 09:52:38.44ID:Wn0kK1te0
そもそもTreeViewのMouseClickはノードのある行の部分しか発生しないけど
ノード上でクリックしても反応しないの?
648デフォルトの名無しさん (ワッチョイ 5f1a-sCjD)
2022/01/14(金) 23:45:25.88ID:8g6TvuWW0
こういう実装の隠蔽ってありだと思う?
https://ideone.com/XNNgQM

リポジトリクラスでしか使わないキークラスを外部から勝手に生成されたくないっていう着想なんだが、
特定のクラスからのみメソッド叩かせたいときとかにも使えそうな気はする
雁字搦め感は出てるし、将来の健忘症になった俺が手を付けてしまう恐れも減るしでメリットはある
ただぶっちゃけちまうとinternalで十分では?と他でもない俺自身が思ってしまった
649デフォルトの名無しさん (ワッチョイ ffbd-qPHf)
2022/01/15(土) 00:11:45.90ID:TZiSYT8I0
質問させてください

using System.Collections.Generic;

class TestEnumerable
{
static public Ienumerable FromTo()
{
yield return 1;
yield return 3.14;
}

static void Main(string[] args)
{
foreach(var I in FromTo())
{
Console.Write(I);
}
}
}

上記のようなコードがあった場合
yield return1を表示、続きから実行されて
yield return3.14を表示すると思うのですが
そのあと、メソッドが終了した場合の処理がイメージできません

FromTo()メソッドが終了した後は何か値がreturnされるのでしょうか?
FromTo()メソッド終了時の挙動の詳細を教えてほしいです
650デフォルトの名無しさん (アウアウウー Saa3-mx/f)
2022/01/15(土) 00:15:49.41ID:Fo59HrKfa
CreateProxyをpublicにしないとエラーになるんじゃないかな
651デフォルトの名無しさん (テテンテンテン MM4f-VpI/)
2022/01/15(土) 00:20:28.44ID:dZ7wz90eM
yieldを使ってるメソッドの末尾には
「yield break」が暗黙のうちに挿入される、みたいなイメージをもっておけばいいんじゃないかな
652デフォルトの名無しさん (アウアウキー Sa53-sCjD)
2022/01/15(土) 00:35:37.46ID:RH/JKl1ia
>>650
そんなページ開いたらダイレクトに書いてあることを指摘されたいわけじゃないんだ
ニュアンス通じれば良いかなって思いながらも一応直したんだけど張るURLを間違えたんだよ
653デフォルトの名無しさん (ワッチョイ df01-DDP/)
2022/01/15(土) 01:00:14.09ID:e/r7AWqZ0
は?
654デフォルトの名無しさん (アウアウウー Saa3-NE3x)
2022/01/15(土) 01:05:14.25ID:mkRG7Oi7a
>>649
メソッドのシグネチャのみたまんま
FromToはIEnumerableを返すのであって1とか3.14を返すんじゃない。

何言ってるのか理解できなかったら川俣さんの記事のイテレーターの
説明でも読んでもらった方が早いよ。
655デフォルトの名無しさん (ワッチョイ df2d-acmQ)
2022/01/15(土) 01:10:18.60ID:JIhdD5Fq0
>>648
キークラスから派生してリポジトリクラスって構造が変
駄目な継承の使い方だと思う
656デフォルトの名無しさん (ワッチョイ 5f1a-sCjD)
2022/01/15(土) 01:25:11.79ID:z3QAlxXC0
>>655
キー生成クラスだぞ?

本来リポジトリ内部で生成するものなのに基底に置いては駄目とは何ぞ
657デフォルトの名無しさん (ワッチョイ df2d-acmQ)
2022/01/15(土) 01:43:23.33ID:JIhdD5Fq0
>>656
この場合は継承(is-a)ではなく包含(has-a)にすべき
658デフォルトの名無しさん (アウアウウー Saa3-NE3x)
2022/01/15(土) 01:57:04.48ID:mkRG7Oi7a
>>648
VBは確か型Bが型Aの内側で定義されている時、
BのインスタンスをAが握っているとBのprivateメンバーに
アクセスできる裏技があった気がしたんでVBならそれを使う手はあったかも。

試してみたらやはりC#ではできないw
659デフォルトの名無しさん (アウアウウー Saa3-NE3x)
2022/01/15(土) 02:01:13.57ID:mkRG7Oi7a
まあセキリティー的な目的じゃなく単なる精神衛生の問題なら
単純にKeyのコンストラクタをprivateにして必要な個所ではリフレクションで使えばいいよね
660デフォルトの名無しさん (アウアウウー Saa3-NE3x)
2022/01/15(土) 02:49:41.70ID:mkRG7Oi7a
「早い者勝ち」にしちゃうのもありかなとか思った。いやねーかw
public class Key
{
  public int Value { get; private set; }
  private static int serial = 0;
  private static Func<Key> func = () => new Key(serial++);

  private Key(int val)
  {
    Value = val;
  }

  public static Func<Key> GetCreator()
  {
    var ret = func; func = null;
    return func;
  }
}
661デフォルトの名無しさん (ワッチョイ dfd2-4G0K)
2022/01/15(土) 03:06:56.37ID:ccrjJyGq0
>>649
関数内にyield returnがあったらイテレータブロック扱いになって普通の関数じゃなくなる

IEnumerable<T>の約束通り、Tの要素を返してって終端がきたらおわり
662デフォルトの名無しさん (ワッチョイ 7f01-KDxU)
2022/01/15(土) 11:19:56.44ID:6qmp/Z4R0
>>649
FromTo()が返すのはIEnumerable

foreachは大雑把に言えば↓に展開される
var iterator = FromTo().GetEnumerator();
while (iterator.MoveNext()){
var I = iterator.Current;
Console.WriteLine(I);
}

イテレータとかイテラブルでググるといい
.NETの型名だとIEnumrator<T>とIEnumerable<T>
663デフォルトの名無しさん (ドコグロ MM4f-KcIn)
2022/01/15(土) 12:29:33.15ID:mY1vrnaaM
>>651 有能
>>654,662 無能、聞きたいのはお前のチンケな知識じゃねーよ
664デフォルトの名無しさん (アウアウウー Saa3-NE3x)
2022/01/15(土) 13:44:23.87ID:agiarv77a
>>663
馬鹿だねこいつw
質問した人と別人みたいだけど
665デフォルトの名無しさん (ドコグロ MM4f-KcIn)
2022/01/15(土) 14:20:07.42ID:XKyr/S8qM
馬鹿としか言えない無能w
666デフォルトの名無しさん (ワッチョイ 5f78-lUoQ)
2022/01/15(土) 14:24:42.58ID:6Adwrh4F0
今週のNDワッチョイ
ドコグロ MM4f-KcIn
667デフォルトの名無しさん (ワッチョイ ff66-acmQ)
2022/01/15(土) 14:48:33.55ID:6bjOtxZz0
WindowFormでTimerクラスを使ってlabelのTextを定期的に変更したのですが
「有効ではないスレッド間の操作」ということでエラーになってしまいます。
どのようにすれば実現できるでしょうか?

public Form1()
{
InitializeComponent();

var timer = new System.Timers.Timer();
timer.Elapsed += new ElapsedEventHandler(OnElapsed_TimersTimer);
timer.Interval = 5000;

timer.Start();
}

private void OnElapsed_TimersTimer(object sender, ElapsedEventArgs e)
{
label1.Text = "1";
}
668デフォルトの名無しさん (ワッチョイ ff2d-acmQ)
2022/01/15(土) 14:53:57.88ID:OfoSB/Yx0
>>667
Timerには何種類かあって
WinFormsならSystem.Windows.Forms.Timerクラスを使うのが簡単
669デフォルトの名無しさん (アウアウウー Saa3-mx/f)
2022/01/15(土) 14:56:31.51ID:2bsBwYtoa
スレッド間の〜は
Invoke((MethodInvoker)delegate{処理});
ってやればわんちゃん
670デフォルトの名無しさん (ワッチョイ ff66-acmQ)
2022/01/15(土) 16:08:48.34ID:6bjOtxZz0
Windows.Forms.Timerクラスでやりたいことができました!
後学のため、Invokeも調べたいと思います
ありがとうございます
671デフォルトの名無しさん (ドコグロ MM66-eOJp)
2022/01/15(土) 20:02:17.15ID:XKyr/S8qM
>>666
黙ってNGできない無能w
672デフォルトの名無しさん (ワッチョイ f901-E35g)
2022/01/16(日) 04:00:49.97ID:az6Mfsfa0
OpenCVSharp入れたらexeのフォルダがdllだらけになったんですが、
これ全部リリースの時にこのまま一緒に渡さないといけないんですか?
exe1個にまとめられないんですか?
673デフォルトの名無しさん (ワッチョイ e247-L0+A)
2022/01/16(日) 07:00:20.21ID:DVPU1vQA0
>>672
単一ファイルの配置と実行可能ファイル
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/single-file
674デフォルトの名無しさん (ワッチョイ 25ad-gbad)
2022/01/16(日) 10:03:18.59ID:gWCKJdmK0
ネイティブじゃね?
675デフォルトの名無しさん (アウアウウー Sa05-1yOP)
2022/01/16(日) 10:19:22.15ID:1ZlPRUHva
インストーラーのexeひとつ渡せばおk
676漆黒の翼 (ワッチョイ f901-T4Xm)
2022/01/16(日) 20:01:08.59ID:VfeV/Qg80
教えていただきたいのですがWindowsでc#のプログラムが落ちた時にメモリダンプを吐くようにするにはどうすればいいのでしょうか?

よろしくお願いいたします
677デフォルトの名無しさん (ワッチョイ 91a7-rJKh)
2022/01/16(日) 20:14:28.43ID:8g0F/aL60
メモリダンプ吐くと何かわかるん?
678漆黒の翼 (ワッチョイ f901-T4Xm)
2022/01/16(日) 20:18:34.35ID:VfeV/Qg80
>>677
メモリダンプをvisual studioに食わせるといろいろ分かります!!
679デフォルトの名無しさん (ワッチョイ cd18-UJPG)
2022/01/16(日) 20:19:29.37ID:el47HiNu0
メモリダンプを解析できない人たちのスレですよ、ここは。
680デフォルトの名無しさん (ワッチョイ 7d78-soNI)
2022/01/16(日) 20:22:15.01ID:F2RYBHf20
明らかに"初心者用"の範疇を超えているよね
681デフォルトの名無しさん (ワッチョイ 6e63-GFFZ)
2022/01/16(日) 20:34:12.82ID:T486FPBl0
C#でゲロ吐く方法はしらん
Windows Error Reportingで取得するはずなので、呼び出せば行けるかもしれない
682デフォルトの名無しさん (ワッチョイ 6ecf-TBWv)
2022/01/16(日) 20:41:28.24ID:X0X6y0PK0
先輩社員から「まずはメモリダンプとって調べてみろよ」と無理難題言われたとか
683デフォルトの名無しさん (ワッチョイ cd18-UJPG)
2022/01/16(日) 20:47:08.84ID:el47HiNu0
Drワトソンって解雇されてたのか。
684デフォルトの名無しさん (ワッチョイ 8202-9BXF)
2022/01/16(日) 21:01:51.64ID:uYZKVP770
メモリダンプを見ると
変数とかスタックとの内容がじかにわかるので
デバグの助けになるかもしれない
そこまで必要になることは珍しいけど
685デフォルトの名無しさん (ワッチョイ f901-T4Xm)
2022/01/16(日) 21:18:19.12ID:VfeV/Qg80
>>677
ダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティング - Grani Engineering Blog
の説明読むとどういうことがわかるかわかります
686デフォルトの名無しさん (ワッチョイ 4201-73fV)
2022/01/16(日) 21:38:53.48ID:zIpkfF6j0
>ダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティング

読んでみたけど支離滅裂な記事だった
でもメモリダンプ吐くよう設定する方法はちゃんと書いてたぞ
687デフォルトの名無しさん (ドコグロ MM96-eOJp)
2022/01/16(日) 21:40:20.63ID:P0LzLgpAM
>>683
出世して Watson Server として MS で働いてます
688デフォルトの名無しさん (ワッチョイ f901-T4Xm)
2022/01/16(日) 21:42:20.27ID:VfeV/Qg80
https://docs.microsoft.com/ja-jp/dotnet/core/diagnostics/dumps
ここ読むと環境変数だけでいけそうだができませんです
689デフォルトの名無しさん (ワッチョイ aeda-soNI)
2022/01/16(日) 22:06:33.35ID:aMgjkUSV0
C#でメモリダンプが必要って、C#の利点捨てまくったクセの強い作りしてるんちゃうか
UnsafeゴリゴリとかそれC#で作る意味あるのっていう
690デフォルトの名無しさん (ワッチョイ 91a7-rJKh)
2022/01/16(日) 22:08:28.63ID:8g0F/aL60
>>686
書くやつも書くやつなら読むやつも読むやつってことだな
691デフォルトの名無しさん (ワッチョイ 91a7-rJKh)
2022/01/16(日) 22:17:34.06ID:8g0F/aL60
まあ、そんなもん調べても結局使ってるライブラリがタコでしたなんて可能性もあるし
それより先にやることあんじゃねーの?
的な
692デフォルトの名無しさん (ワッチョイ f901-T4Xm)
2022/01/16(日) 22:20:42.02ID:VfeV/Qg80
長時間連続運転するプログラムなんだけど、ちょっとずつメモリ使用料が増えていくななんて
時はメモリダンプ一択だと思うんだが・・・

というかID:8g0F/aL60さんはC#のメモリダンプ何回くらい使った経験あるの?
ゴミクズのような経験から導かれた結論は、やっぱりゴ
693デフォルトの名無しさん (ワッチョイ cd18-UJPG)
2022/01/16(日) 22:24:55.74ID:el47HiNu0
例外機構が当たり前になった今ではアプリ内でcatchするだけですからね。
仮にテストですり抜けてもcatchしたらエラーログに吐けよと。

今ではWinDbgでカーネルダンプ解析するぐらいかな。
694デフォルトの名無しさん (ワッチョイ cd18-UJPG)
2022/01/16(日) 22:27:14.39ID:el47HiNu0
C#はガベコレあるからメモリリーク気にしないでいいって後輩が言ってました!!!
695デフォルトの名無しさん (ワッチョイ 6e2c-Nrkm)
2022/01/16(日) 22:41:54.12ID:RG8YDX1E0
少しずつメモリ使用料が増えていくとか、

Ruby みたいに、世代別GC を使っていたら、
古世代は閾値を越えるまで実行されないかも知れないし、

さらに、メモリ領域が大きいと、閾値もかなり大きいだろうし、なかなか実行されない
696デフォルトの名無しさん (ワッチョイ 91a7-rJKh)
2022/01/16(日) 23:17:44.09ID:8g0F/aL60
>>692
正直ないね
無駄だから
c#でリークの対応なんて無駄
精々頑張った挙げ句にウチの会社が組んだところじゃない箇所でリークしてて対応できません
みたいな事実がわかるだけ

まず、c#みたいな
厳密なメモリ管理ができない言語での
組み方を学ぶべき
3日に一度再起動するとか
機能毎にモジュール化して動かすたびに破棄するとかな
廃棄したらガベコレ適当に実行してりゃOSが片付けてくれるだろ
697デフォルトの名無しさん (アウアウウー Sa05-76Y4)
2022/01/16(日) 23:31:50.74ID:I0k7QK8La
何のお役にも立てんけど、「メモリ使用料」って結構じわるねwww

まあマネージドなユーザーコードでリークが発生する原因は限られてるし、
ユーザーコードじゃないならどうしようもないし、ブル中野みたいな大鉈振るう必要って
確かにあるのかなという気はする
698デフォルトの名無しさん (ワッチョイ 4201-73fV)
2022/01/16(日) 23:40:43.96ID:zIpkfF6j0
>>692
メモリ使用量が増えるならまずはプロファイラーじゃないか?
699デフォルトの名無しさん (ワッチョイ 4201-73fV)
2022/01/16(日) 23:42:20.42ID:zIpkfF6j0
C#でも断続的に性能が極端に悪化する問題みたいなのが発生したときに
性能悪化したタイミングでダンプ吐かせると糸口がつかめたりする

そういうのはだいたい.NET Frameworkとか下位の部分が原因だけど
原因が明確になれば回避策が取れる
700デフォルトの名無しさん (ワッチョイ 91a7-rJKh)
2022/01/16(日) 23:44:56.33ID:8g0F/aL60
>>699
それもうガチでわかんねーときの最後の手段で
まずはデバッガで見てみるべきじゃね?
最近は結構いい機能が付いてる
VC6の時代とは違う
701デフォルトの名無しさん (ワッチョイ a9d2-gAe+)
2022/01/17(月) 00:12:14.01ID:BWxacq0R0
C#でのリークは大抵長寿命のeventに+=してるだけでしょ
702デフォルトの名無しさん (アウアウウー Sa05-Xz1T)
2022/01/17(月) 07:41:52.27ID:MbNkwuBfa
GDIなどのシステムリソースの解放忘れとか
703デフォルトの名無しさん (ワッチョイ 91a7-rJKh)
2022/01/17(月) 09:30:07.53ID:9uEhEVX70
リリースの特殊な(?)解放方法なんて半ば作ったやつの趣味だからな
可能であれば別モジュールにしてキックして終わりがいい
個人製作的な(会社内であっても)ライブラリだとusingのdispose実装忘れはよくある
信じて使うと後ろからバッサリだ
704デフォルトの名無しさん (ワッチョイ a124-O5xu)
2022/01/17(月) 10:45:22.36ID:TWhgTM4G0
もう半年以上起動しぱなっしの.NET5で作ったスクレイピンクツールあるけど25mbで安定してるな
705デフォルトの名無しさん (ワッチョイ e247-L0+A)
2022/01/17(月) 12:44:47.10ID:DKJy6PH50
>>704
25ミリバールって気圧かよw
706デフォルトの名無しさん (ワッチョイ 25ad-gbad)
2022/01/17(月) 13:14:05.94ID:U4FphVWG0
ミリビットだろ、この板なんだから
707デフォルトの名無しさん (ラクッペペ MM66-Dw/N)
2022/01/17(月) 13:15:12.00ID:XdTy16+8M
ミリバールって昭和かよ
708デフォルトの名無しさん (アウアウウー Sa05-76Y4)
2022/01/17(月) 13:45:40.07ID:McAG9Ljja
マネージドな世界で閉じている限り、Disposeの実装ミスや呼び出しの忘れは
リークの原因には普通はならないと思うけどね。
単にリソースの解放が逐次的でなくなるだけ。
709デフォルトの名無しさん (ブーイモ MMf6-kEIx)
2022/01/17(月) 13:52:14.45ID:NIAK/ICvM
>>708
Disposeが呼ばれたらstaticなイベントからハンドラを削除するような実装は低品質なライブラリなんかだとたまに見かける
710デフォルトの名無しさん (ドコグロ MM96-eOJp)
2022/01/17(月) 14:02:14.57ID:s/zLKX0LM
>>708
> GDIなどのシステムリソースの解放忘れとか
の話の流れで
> マネージドな世界で閉じている限り
とか頭おかしいのか?
711デフォルトの名無しさん (アウアウウー Sa05-76Y4)
2022/01/17(月) 14:05:18.68ID:McAG9Ljja
>>710
頭がおかしいのは君の方

普通のプログラマはマネージドなライブラリを挟んで
間接的にGDIのリソースを利用するんであって直接使ったりしないの

だからライブラリのコードにバグがない限りGDIを間接的に
利用しているからといってリークの原因にはならないんだよ
712デフォルトの名無しさん (アウアウウー Sa05-76Y4)
2022/01/17(月) 14:10:54.78ID:McAG9Ljja
ついでに言えば、俺は別に>>702に反論したわけじゃないw
すごい被害妄想だよねw
ネトウヨさんじゃねえのw
713デフォルトの名無しさん (ドコグロ MM96-eOJp)
2022/01/17(月) 14:26:56.43ID:ly062VWjM
普通のプログラマw
無能の言い訳に多用されてて笑う
714デフォルトの名無しさん (アウアウウー Sa05-1yOP)
2022/01/17(月) 14:40:41.16ID:IUPVmsWca
理想のマネージドだったらdisposeなんて関係ないし、メモリリークなんて起きない
でもc#は理想のマネージドじゃないんだよ・・・
715デフォルトの名無しさん (ラクッペペ MM66-GFFZ)
2022/01/17(月) 15:20:30.64ID:C2NpqJUJM
ゲロみたいな話題で盛り上がってんなあ
716デフォルトの名無しさん (ワッチョイ bd5f-i7b5)
2022/01/17(月) 17:33:38.89ID:0pf4TYua0
っぱRustよ
717デフォルトの名無しさん (ワッチョイ ae33-Aojf)
2022/01/17(月) 19:32:54.18ID:rqpdgGXW0
mb ミリビットもジワるwww
718デフォルトの名無しさん (ワッチョイ 6e46-76Y4)
2022/01/18(火) 09:23:03.79ID:HVobsaMl0
低レベルな質問で恐縮です。VisualStudioを使っています。
やりたいことは、定期的に更新されるcsvからデータを取得しDataGridViewに表示させたいです。
(つまり、DataGridViewでリアルタイムに更新されているように見せたい)
取得・更新することはできたのですが、更新時にソート状態が解除されて困っています。
DataTable・DataSet・DataSource・データバインドなどのキーワードを見つけて調べているのですが、理解力が乏しく解決できていません。
こんな方法があるよと、ヒントになる助言をいただけたらありがたいです。
よろしくお願いします。
719デフォルトの名無しさん (ワンミングク MM52-a4W3)
2022/01/18(火) 10:13:54.13ID:Tap2eyJjM
>>718
DataGridViewのSort順を復元するだけでは?
720デフォルトの名無しさん (ワッチョイ 022c-Nrkm)
2022/01/18(火) 10:18:04.98ID:jhcMMPao0
・DataGridViewにどうデータをセットしているか、どう更新しているか
・どうソートさせているか
・ソート状態が解除というのは結局どういう状況になっているのか
を具体的に
721デフォルトの名無しさん (ワッチョイ 6e46-76Y4)
2022/01/18(火) 11:36:28.39ID:HVobsaMl0
反応ありがとうございます。
>>719
更新前にソートされている列を取得して、更新後に強制ソートする
という感じですね。試してみます。

>>720
>DataGridViewにどうデータをセットしているか
 今の状態は、あるサイトにのっていたコードをコピペして試しています。
//フォームデザイン
//csvデータ:person_read.csv
//button4のソース
 ソースコードはこちら https://dotnetfiddle.net/i89pR3
///////////////////////////////////
722デフォルトの名無しさん (ワッチョイ 6e46-76Y4)
2022/01/18(火) 11:37:01.32ID:HVobsaMl0
>・どう更新しているか
 button4を押すたびにcsvからデータを更新しています(実現したらtimerで自動更新に変更予定)
>・どうソートさせているか
>・ソート状態が解除というのは結局どういう状況になっているのか
 button4クリック→初期状態(csv並び順)
 GUIのdataGridViewの任意の列(例えば年齢)をクリックしソート
  1,山田,25
  3,鈴木,28
  2,佐藤,30
  4,山田,46
 csvに 5,田中,37 が追加される
 button4クリックで更新
 csvの並びに戻る(希望はこの順で表示させたい)
  1,山田,25 → (1,山田,25)
  2,佐藤,30 → (3,鈴木,28)
  3,鈴木,28 → (2,佐藤,30)
  4,山田,46 → (5,田中,37)
  5,田中,37 → (4,山田,46)
以上です。
723デフォルトの名無しさん (ワッチョイ 6e46-76Y4)
2022/01/18(火) 11:43:01.00ID:HVobsaMl0
リンクが404になっていたので貼り直しします。
これで大丈夫か心配ですが。
https://dotnetfiddle.net/ulZ3M9
724デフォルトの名無しさん (ワッチョイ 022c-Nrkm)
2022/01/18(火) 13:08:53.17ID:jhcMMPao0
DataTableの場合ソート順は
dataTable.DefaultView.Sort
に文字列で格納されるからこれを使えばいい
725デフォルトの名無しさん (ワッチョイ a1d3-T4Xm)
2022/01/18(火) 13:20:14.01ID:k1mhP8XB0
C#で正規表現のperlでの「tr」と同じ事をしたいのですが、
Regexクラスにそれっぽいのがありません。
何か方法はありませんでしょうか?
726デフォルトの名無しさん (アウアウウー Sa05-1yOP)
2022/01/18(火) 13:29:49.03ID:pQS/rHaxa
trは置換なのか?だったらc# regex 置換とかでぐぐりゃ方法出るだろ
痴漢じゃないなら知らない
727デフォルトの名無しさん (ワッチョイ a1d3-T4Xm)
2022/01/18(火) 13:41:14.96ID:k1mhP8XB0
置換ではあるのですが、
pattern [a-z]
replacement [a-z]
とすると半角英字が全角英字に変換されるといった感じです
728デフォルトの名無しさん (アウアウウー Sa05-1yOP)
2022/01/18(火) 13:52:43.16ID:pQS/rHaxa
正規表現でマッチした位置とマッチした文字列を取り出すのはできる
正規表現関係なく文字列を全部変換するってならできる
これを組み合わせて自分でやるしかないんじゃない?
729デフォルトの名無しさん (ワッチョイ f901-JESV)
2022/01/18(火) 13:54:14.42ID:9szJ9jA+0
Regex.Replace(mojiretsu, "[a-zA-Z]", p => ((char)(p.Value[0] - 'a' + 'a')).ToString());
動確はしてない。
730デフォルトの名無しさん (ワッチョイ a1d3-T4Xm)
2022/01/18(火) 14:04:35.01ID:k1mhP8XB0
なるほど、やはりないですか
ありがとうございました
731デフォルトの名無しさん (ワッチョイ cd2f-Nrkm)
2022/01/18(火) 18:17:30.27ID:UqX3jEvG0
全角半角ならVB.NetのStrConv使えばいいじゃね
732デフォルトの名無しさん (オッペケ Srd1-nJbY)
2022/01/18(火) 18:27:21.22ID:80llBYJsr
c#って全角半角変換でまともなメソッド用意してないよな
733デフォルトの名無しさん (ワッチョイ 6e46-76Y4)
2022/01/18(火) 18:49:27.58ID:HVobsaMl0
>>718です。
.SortedColumn で現在のソート選択列を取得
ListSortDirection で昇順・降順の状態を取得
データ更新後、.Sort で更新前のソート状態を復元することができました。

>>719さん>>724さんヒントをありがとうございます。
>>720さん、気にかけていただいてありがとうございます。
また何かあればよろしくお願いします。
734デフォルトの名無しさん (ワッチョイ 6e8e-SRyr)
2022/01/18(火) 19:17:27.38ID:DZmAMHWt0
>>732
C#の言語仕様にそんなのあるわけないだろうが
頭がおかしいのかな?
735デフォルトの名無しさん (ワッチョイ 25ad-gbad)
2022/01/18(火) 19:30:02.02ID:uGAsykz90
.NETのことだろ。
あれ本当に不便。
736デフォルトの名無しさん (アウアウウー Sa05-1yOP)
2022/01/18(火) 19:44:39.78ID:g9d5Z42+a
全角無視した比較はあるんだから変換もあればいいのにな
.net6はいたるとこでCultureInfo受け取れるようになってるから、オリジナルCultureInfo作ってやればtolowerなんかはできそう
737デフォルトの名無しさん (ワッチョイ 0279-H1NS)
2022/01/19(水) 04:15:15.58ID:4BL/bkWB0
nuget辺りに.net言語で使える漢字処理モジュールみたいのないの
738デフォルトの名無しさん (ワッチョイ eebb-76Y4)
2022/01/19(水) 13:57:55.37ID:b1tRS/0c0
あの、Asp.netMVCでサイトを作ったんですが、
robots.txtって
Global.asaxと同じ場所もしくはViews\Layout.cshtmlと同じ場所
のどっちに置けばいいんでしょうか?
739デフォルトの名無しさん (ワッチョイ 495f-Nrkm)
2022/01/19(水) 22:04:21.46ID:67zDZ4RH0
WebProgという板があるからそっち言ってみれば?
740デフォルトの名無しさん (ワンミングク MM52-a4W3)
2022/01/20(木) 08:59:26.49ID:fgAfnzipM
>>738
デプロイしてみればわかる話を、何故聞いてしまうのか?
741デフォルトの名無しさん (ワッチョイ 6e63-GFFZ)
2022/01/20(木) 10:11:03.18ID:8HL1zORE0
めんどいじゃん
ネットでクダ巻いてるゴミが代わりに試して教えてくれれば儲けもんだろう?
742デフォルトの名無しさん (オッペケ Srd1-nADw)
2022/01/20(木) 12:57:10.80ID:MJ6I7RR7r
おっ、そうだな
743デフォルトの名無しさん (ワッチョイ 8202-9BXF)
2022/01/20(木) 14:46:47.86ID:n7chvAG30
>>741
うそを教えられるという可能性は考えないのか?
744デフォルトの名無しさん (ワッチョイ cd2f-Nrkm)
2022/01/20(木) 18:34:05.33ID:NL1fx3HA0
すでにサイト作ってる段階なら、掲示板で聞くより自分で試すほうが早いと思うんだがなぁ
745デフォルトの名無しさん (ワッチョイ e20e-kWPm)
2022/01/21(金) 00:57:35.59ID:yyC8EMRk0
共変と反変という言葉がよく分かりません
アップキャスト/ダウンキャストと何が違うんでしょうか?
746デフォルトの名無しさん (ワッチョイ a9d2-gAe+)
2022/01/21(金) 02:01:57.32ID:r2dC59Vr0
class B{}
class C:B{}
class D:C{}
static D Function(B b){ return new D();}

Func<C,C> fp = Function;

Functionの返り値DはCの派生クラスだから返り値CのFunc扱いしても大丈夫だよねってのが共変
Functionの引数BはCのベースクラスだから引数CのFunc扱いしても大丈夫だよねってのが反変

両方ともアップキャスト(asがいらない)が約束されてるから許される
747デフォルトの名無しさん (アウアウウー Sa05-76Y4)
2022/01/21(金) 04:17:33.74ID:9FYmM/Q0a
ハロウィンの子供にチョコレートを渡せることが反変で
チョコレート工場をお菓子工場とみなせることが共変ってことか
748デフォルトの名無しさん (オッペケ Srd1-nJbY)
2022/01/21(金) 08:32:03.92ID:kufT2hajr
よく理解できるね
これを理解したとしても他人がコードを読むの大変だよね
コメントに書いておくものなの?
749デフォルトの名無しさん (オイコラミネオ MM29-soNI)
2022/01/21(金) 10:57:27.37ID:r8LIAXWEM
c#自体にそういう機能があるので楽だねって感じ
うまくいかない場合は何か思い違いしてる
750デフォルトの名無しさん (ワンミングク MM52-kWPm)
2022/01/21(金) 22:48:46.71ID:0wwLw+zrM
>>746-747
めちゃくちゃ分かりやすいです
ありがとうございました
751デフォルトの名無しさん (ワッチョイ 8210-pjxc)
2022/01/21(金) 22:52:58.30ID:DQ1OUxKV0
なにこれ
もしかしてnullになるかもしれんやつは片っ端から?つけなきゃいけなくなったの??
752デフォルトの名無しさん (ワッチョイ bd5f-i7b5)
2022/01/21(金) 23:17:35.13ID:Yoc43dCB0
そうだぞ
753デフォルトの名無しさん (ワッチョイ 8210-pjxc)
2022/01/21(金) 23:37:35.61ID:DQ1OUxKV0
なんか俺かっぺになった気分だべ・・・
754デフォルトの名無しさん (ワッチョイ a9d2-gAe+)
2022/01/22(土) 01:35:08.87ID:xgyvtLBZ0
nullチェックをコンパイラが管理するやつだから慣れれば神機能
755デフォルトの名無しさん (ブーイモ MM22-kAHk)
2022/01/22(土) 06:49:46.16ID:sQZaaq50M
参照前に必ずnullチェックというコーディング規約から解放される?
756デフォルトの名無しさん (ワッチョイ 25ad-gbad)
2022/01/22(土) 07:48:24.01ID:dpfIrrzB0
なわきゃあない
757デフォルトの名無しさん (ワッチョイ dd1a-QFW6)
2022/01/22(土) 08:36:39.06ID:odBVOzqN0
on/offを行単位で切り替えられるから混乱すると思う
758デフォルトの名無しさん (ドコグロ MM96-eOJp)
2022/01/22(土) 09:30:40.13ID:AMYiKIMXM
行単位でそんな事する奴はすでに混乱してるだろw
759デフォルトの名無しさん (ワッチョイ 91a7-rJKh)
2022/01/22(土) 09:57:57.24ID:dGbyTm5r0
何が利点なんだろうネ?(笑)
760デフォルトの名無しさん (ドコグロ MM96-eOJp)
2022/01/22(土) 10:16:46.92ID:z2LDxi9+M
まあ利点がわからないなら君は今のままでいいんじゃね?
761デフォルトの名無しさん (ワッチョイ 4666-T4Xm)
2022/01/22(土) 10:35:14.93ID:tP9M/cw30
5年ぶりに.Netで作ることになったんだけど、.Net Frameworkってオワコンなの?
Coreとか出てきてさらに.Netに統合されるとか混沌としてて何が今の最適解なのか解らない。
どうせ作るなら今の最適で作りたいからお聞かせ願いたい。
つかWPFって普及前に死んだ感じ?
762デフォルトの名無しさん (ワッチョイ a124-O5xu)
2022/01/22(土) 10:40:46.17ID:om6KWGu40
.NET FrameworkはオワコンだけどWindowsに標準で入ってるのでWindowsユーザー視点だと一番有難い
WPFもWinFormsのWindowsであれば現役
763デフォルトの名無しさん (ワッチョイ 91a7-rJKh)
2022/01/22(土) 11:13:26.21ID:dGbyTm5r0
.netもオワコンだが
WPFもオワコンなので
代わりがない状態
他のはもっと過疎ってて
.netやWPFより更に消えやすい感じ
なので何もオススメできない状態
764デフォルトの名無しさん (アウアウウー Sa05-1yOP)
2022/01/22(土) 11:41:22.99ID:cBfIrJY2a
オワコンっても単なる流行の話だからな中身はオワコンでもない

.NET Framework 4.8
.NET6
今選ぶならこのどちらか。どっちも長期サポートになってるはず
表面的にはどっち選んでも同じ。昔の記憶が残ってるなら4.8使った方がスムーズに扱える

UIは色々増えてるけどwinだけならWinFormsが無難
765デフォルトの名無しさん (ワッチョイ 4666-T4Xm)
2022/01/22(土) 11:45:58.45ID:tP9M/cw30
>なので何もオススメできない状態
調べる限り、今はコレってのが無いんだよね。
WPFも生き腐れしてるみたいなので、
無難なWindowFormsと.Net Framework4.6.Xで良いやって思ってます。
ぬるぬるUIによる快感性はiOSに任せようと。
766デフォルトの名無しさん (ワッチョイ 4666-T4Xm)
2022/01/22(土) 11:49:15.98ID:tP9M/cw30
>.NET Framework 4.8
ユーザーのコンピュータには.NET Framework 4.6が入ってるので
5年程度を稼働を目安にすると.NET Framework 4.6のが導入のハードルが
低くて良いなと思うのですが、.NET Framework 4.8のが何か優れてるんですかね?
純粋にサポートの長さかな。
767デフォルトの名無しさん (アウアウウー Sa05-1yOP)
2022/01/22(土) 12:08:19.50ID:cBfIrJY2a
4.6だと今年でサポート終了かな
サポート気にしないなら・・4.xの差で機能的にはほとんど変わってないから何使っても同じ
ただちょこちょこソースコードの書き方が追加されてる(変更じゃなくて追加だから昔の書き方で問題起きない)
ぐぐってソースコードコピペしたときに新しい書式のソースコードだと思わぬエラーがでて困るかもしれないって程度
わざわざ古いの選ぶ意味もないけど、新しいの入れるのが面倒なら古いままでもいいんじゃないって程度だよ
768デフォルトの名無しさん (テテンテンテン MM66-6Z7J)
2022/01/22(土) 12:11:29.47ID:63g4vstfM
基本的には.NET6を選べばいい
既存システムのメンテナンス・マイグレーションなら資産状況次第だけどFW48の方が低リスクで間違いない
ランタイムのサポート期間は意外にもFW48の方が長い
でも開発環境のサポート期間はわからない
769デフォルトの名無しさん (ワッチョイ ae2d-T4Xm)
2022/01/22(土) 13:06:27.03ID:MOxbGC/+0
最近は4Kとか高解像度ディスプレイ対応(スケーリング対応)が必要になって来たせいか
WPFを使ってる所が前よりは増えた印象
他に良いのが無いから消去法で採用って感じ何だろうけど
770デフォルトの名無しさん (ワッチョイ ae2d-T4Xm)
2022/01/22(土) 13:10:19.88ID:MOxbGC/+0
>>766
スケーリング対応は4.8の方が改良されてる
もっと言えば.NET6の方が進んでるけど
771デフォルトの名無しさん (ワッチョイ bd5f-jKu0)
2022/01/22(土) 13:16:37.15ID:+eWEN8w/0
WPFでもMVVMを考えなくてもWinFormsと同じように使えるし、スケーリング対応が楽なのはいいよね

あと最近のWindows10は標準で4.8が入ってなかったっけ?
772デフォルトの名無しさん (スップ Sd82-kEIx)
2022/01/22(土) 13:25:41.09ID:i+EsaIAtd
サポート期間を気にするなら.NET6は問題外だよ
なんと2024年にサポート切れ
773デフォルトの名無しさん (テテンテンテン MM66-6Z7J)
2022/01/22(土) 13:36:54.52ID:63g4vstfM
十分だよ
.NETは互換性が高いから.NET8への移行も苦労はせんだろう
他の言語と比べたら天国だ
774デフォルトの名無しさん (ワッチョイ ae2d-T4Xm)
2022/01/22(土) 14:04:30.15ID:MOxbGC/+0
>>771
WinFormsの*.Designer.csと*.resxから解放されるのも大きいね
差分を見たりマージするのに問題あり過ぎた

Windows10はMay 2019 Update(1903)から標準で4.8が入ってる
現在サポート中のバージョンは全部4.8が入ってるね
775デフォルトの名無しさん (ワッチョイ 495f-sNUe)
2022/01/22(土) 14:08:40.62ID:gJEoCqwv0
今の最適で作りたいなら.NET 6/WPFだな
776デフォルトの名無しさん (ワッチョイ a9da-teZp)
2022/01/22(土) 14:33:41.83ID:KL4k8E210
.NET Frameworkは最終版の4.8でもC#7.3までの対応
C#8.0は.NET Core 3
C#9.0は.NET 5
C#10.0は.NET 6

C#のバージョンを上げるなら.NETも移行せざるを得ない
777デフォルトの名無しさん (オッペケ Srd1-nADw)
2022/01/22(土) 14:35:53.77ID:nTnTl9DUr
わかりました、Mauiで頑張る
778デフォルトの名無しさん (アウアウウー Sa05-76Y4)
2022/01/22(土) 14:44:13.78ID:Ii2fD9R0a
WPFの方が高DPI(高「解像度」では必ずしもないよね)対応が優れているっていうのは
DPIが異なる複数のディスプレイ間をウィンドウが行ったり来たりするような状況を想定した話?
779デフォルトの名無しさん (ブーイモ MM66-kEIx)
2022/01/22(土) 14:49:58.72ID:ARjVXSY1M
WPFってWebみたいに解像度に合わせて画像切り替えるとか標準じゃできないだろ?
HDPI対応が優れているとか片腹痛い
780デフォルトの名無しさん (ワッチョイ 6ee3-soNI)
2022/01/22(土) 15:19:51.12ID:EyuzyEvM0
俺社環だと2012R2なんで4.5.1なんだよな
サポート外だからさっさと4.6移行に切り替えたいけど、不具合出てないから誰もやりたくないという
781デフォルトの名無しさん (ワッチョイ e101-c2Bm)
2022/01/22(土) 16:54:28.58ID:1FaTcT0G0
>>779
そんなもん解像度は取得できるしなんとでもやりようあるやろ

つうデスクトップGUIアプリに求めることかそれ?
どんなシチュエーションで必要なのかわからん
782デフォルトの名無しさん (ワッチョイ e7ad-KRpb)
2022/01/22(土) 18:01:32.84ID:dpfIrrzB0
想像力が無いだけだなあ
783デフォルトの名無しさん (ワッチョイ 2702-p/vS)
2022/01/22(土) 18:55:07.04ID:Hnp3kh2k0
>>780
誰もやりたがらないけど、OS のサポート切れが迫ってきて対応中。w
いまさらその上で動いてるオレ様ソフトのインストールの手順とか覚えてないんだけどなあ。
784デフォルトの名無しさん (ワッチョイ 7fcf-X7eg)
2022/01/22(土) 19:41:02.79ID:DSkywrpw0
ドキュメントは残しておけよw
785デフォルトの名無しさん (オイコラミネオ MMdb-IuBN)
2022/01/22(土) 19:49:34.26ID:vcUHcBQYM
昔自分用に作った(家で自分の時間を使って)アプリがあって退職時に無理やり引き継ぎさせられて勝手に使われてる
PC壊れたときに連絡あってアプリを送った思い出…
786デフォルトの名無しさん (オイコラミネオ MMdb-IuBN)
2022/01/22(土) 19:51:39.05ID:vcUHcBQYM
毎日使うものなので劇的に工数が減った
あくまでも自分用

それを恨みこそすれ感謝してない元会社がタダでずっと使ってる
787デフォルトの名無しさん (ワッチョイ df00-3lfm)
2022/01/22(土) 21:17:29.45ID:9EvEVFCn0
Main内
Test t = new Test();
t.Num = 1;
t.Add(10);
Console.Write(t.Num);

class Test
{
 public int Num {get; set;}
 public int Add(int p)
 {
  return Num + p;
 }
}

これで出力が1になるのは何故なのでしょう?11になると思うのですが…
788デフォルトの名無しさん (オイコラミネオ MMdb-IuBN)
2022/01/22(土) 21:22:02.32ID:vcUHcBQYM
return Num + p;
これは足したものを返してるだけで
Num自体に変更をかけていないからな

Num = Num + p;
return Num;
ならわかる
789デフォルトの名無しさん (ワッチョイ df00-3lfm)
2022/01/22(土) 21:37:34.36ID:9EvEVFCn0
あ、、、確かに。納得しました。
ありがとうございました
790デフォルトの名無しさん (ワッチョイ 07ac-tMZL)
2022/01/22(土) 23:20:32.09ID:mmM8IstB0
いえいえ
791デフォルトの名無しさん (ワッチョイ e7da-jsoe)
2022/01/23(日) 14:44:30.58ID:is+XSiL/0
すみません、初心者で何からしたら良いのか、何をすべきなのか分からなくて助けてください。

計算アプリを作らなければならず、調べてなんとかボタン配置とかはできたのですが、プログラミングが何をどういった順番でするのか分からなくて…

計算は
固定数字÷ボタン入力した数字(+必要に応じて選択した数字)×ドロップダウンで選択した数字

これを出来るようにしたいのですが、やるべきことは
@ボタンとドロップダウンの紐付け?認識?
A入力した数字の表示
B()の条件付け
C計算結果の表示
これで大丈夫でしょうか?

うまく質問できず、申し訳ありません。
今までプログラミングに触れたことが無く、必要情報が不足していましたら追加致します。
792デフォルトの名無しさん (スッップ Sd7f-lJKu)
2022/01/23(日) 15:13:55.20ID:XkFSmW1wd
今期の単位は諦めましょう
793デフォルトの名無しさん (アウアウウー Sa4b-DZ2P)
2022/01/23(日) 15:15:05.76ID:Wu5qqWWYa
ボタン押したらボタンに対応した値を表示する(固定値で割らなくておk)
それができたら、次は固定値で割った結果を表示するように修正
それができたら、次はドロップダウンの選択が変わったことを知る方法と選択された値を取得する方法調べる
それがわかったら、ドロップダウンの値を掛けた結果を表示できるように修正
それができたら、どんな条件でこういう計算するって条件別け
かな?
794デフォルトの名無しさん (ラクッペペ MM8f-DS0X)
2022/01/23(日) 15:16:44.75ID:CCpFlBt8M
それを決めたら他の人がコードを書いてくれるのか?

それならマルナゲをオススメ
795デフォルトの名無しさん (ワッチョイ e7da-jsoe)
2022/01/23(日) 15:20:46.99ID:is+XSiL/0
>>793
ありがとうございます!

直ぐにやってみます。
やるべきことを分かりやすく教えて頂き、本当にありがとうございます。
796デフォルトの名無しさん (ワッチョイ e7da-jsoe)
2022/01/23(日) 15:30:22.12ID:is+XSiL/0
>>794
いえ、コードも私が書かなければなりません。
丸投げする相手が居ないです…
797デフォルトの名無しさん (ワッチョイ 8701-TNSx)
2022/01/23(日) 19:04:59.40ID:nwzKJ0xW0
ひっでえ課題
そんなもんが何の足しになるんや
798デフォルトの名無しさん (ワッチョイ e7da-jsoe)
2022/01/23(日) 19:47:07.31ID:is+XSiL/0
やっと、数字の表示ができました……
何故か一桁しか表示されなくて、次の数字押したら上書きされるけど、表示はできました…


何のたしになるかは分からないです…

曰く『コロナ禍だけど、この機会に家で出来きることをしよう!』って事らしいです。
799デフォルトの名無しさん (ワッチョイ e7da-jsoe)
2022/01/23(日) 19:48:24.39ID:is+XSiL/0
投稿が重複してしまいました、誠に申し訳ありません。
800デフォルトの名無しさん (ワッチョイ e7da-IuBN)
2022/01/23(日) 23:26:33.12ID:pR5ferbX0
メンバー'hoge' はインスタンスデータにアクセスしないため、static にマークできます
801デフォルトの名無しさん (ワッチョイ 078b-V3GB)
2022/01/24(月) 12:21:02.64ID:bXxRLmwJ0
四角をグラフィックに描画する場合の座標について
g.DrawRectangle(pen, 始点x座標,始点y座標,幅,高さ);
このようにあります

ならば幅が2,2の場合
g.DrawRectangle(pen, 16, 16, 2, 2);
これで(16,16)-(17,17)で2ドットだけの中抜きがないものを想像するのですが
実際は
(16,16)-(18,18)の中央に穴がある状態の四角が描画されるようです
これは3,3指定なら理解できるんですが
幅指定なのになぜこのようになってしまうのでしょうか?
802デフォルトの名無しさん (アウアウウー Sa4b-DZ2P)
2022/01/24(月) 12:39:27.95ID:zeqExr0Ka
g.DrawRectangle(pen, 16, 16, 1, 1);
g.DrawRectangle(pen, 16, 16, 0, 0);
こいつらはどういう挙動をするべきかを考えたら?
803デフォルトの名無しさん (ブーイモ MM8f-X3yx)
2022/01/24(月) 13:27:00.02ID:VRumLvNTM
GDIは終点は描画領域に「含まない」
だから、幅として成立する。

FORTRAN由来とかで「含む」系
もあるので注意だ
804デフォルトの名無しさん (アウアウウー Sa4b-i5gI)
2022/01/24(月) 14:09:38.84ID:97kNTb42a
>>801
まあこうは言える。

まずユークリッド幾何学的な数学的に抽象化された世界で考えるべき。
その世界では、1対の平行線の距離がペンの幅より大きければ必ず平行線の間に「隙間」が出来る。

GDI+の描画はこういう抽象化された世界をピクセルの世界に写像してるだけ
805デフォルトの名無しさん (アウアウウー Sa4b-i5gI)
2022/01/24(月) 18:54:49.46ID:97kNTb42a
まあたぶんこんな感じだね

(1) 論理座標の原点は(0, 0)のピクセルの中心に設定されている。つまり論理座標とピクセル座標は
0.5ずれている(少なくともペンの幅が奇数ピクセルの時は)

(2) DrawRectangleは論理的な矩形の辺がペンの中心になるように描画する

(3) だから描画された矩形はペンの幅の1/2 * 2だけ指定したサイズより大きくなる
806デフォルトの名無しさん (スフッ Sd7f-1Ojp)
2022/01/24(月) 19:46:14.25ID:ph7NlGryd
小数のない世界なら厚みゼロで隙間がないんだろうけど、塗りつぶすならFillRectngleで明示しろってことかな。
807デフォルトの名無しさん (ワッチョイ 5f0e-RLpW)
2022/01/25(火) 22:02:24.84ID:AwkrZJuk0
独習C#やってるんだけど、これを一通りやれば基本は身に付くと思っていい?
808デフォルトの名無しさん (ワッチョイ a718-VhOq)
2022/01/25(火) 22:03:27.85ID:3T3OgJ8A0
信じるしかないだろ。もう買ってしまったのだから。
809デフォルトの名無しさん (ワッチョイ 7f33-AHSv)
2022/01/25(火) 22:23:59.29ID:bPaq+vdr0
>>807
その本なら自信持って良いよ。
record, using var, initなどのC#8以降の機能は別途学習が必要。
LINQや正規表現などは実践でないとなかなか身につかないので、だいたい理解したらどんどん読み進めるのがおすすめ。
ちなみにプログラミング未経験で、全部読むのに3ヶ月かかりました。
810デフォルトの名無しさん (オイコラミネオ MMdb-IuBN)
2022/01/26(水) 00:57:13.82ID:TS8Lm52TM
自分だったら3か月かかるならモチベーションが保てそうにないなw
20年前はそんな本がなく手探りだったけど逆に良かったのかな…
811デフォルトの名無しさん (オイコラミネオ MMdb-IuBN)
2022/01/26(水) 01:14:23.92ID:TS8Lm52TM
仕様もライブラリも今よりペラペラだったから入門しやすかった
812デフォルトの名無しさん (ワッチョイ 5f0e-RLpW)
2022/01/26(水) 01:55:09.45ID:4qIztPSU0
>>809
ありがとう
プログラミング経験はエクセルVBAのみ
C#は簡単な方だと聞いてたけど難しいね、頑張ります
813デフォルトの名無しさん (スプッッ Sdff-12R3)
2022/01/26(水) 12:37:45.33ID:IaxANYMEd
やっつけ仕事するだけなら今も昔も変わらんと思う

C#の便利機能が山ほど増えてて書きやすくはなってるけどどこまでが入門なのかは正直わからん
814デフォルトの名無しさん (テテンテンテン MM8f-LUKT)
2022/01/26(水) 13:20:24.56ID:S6jLK41vM
Recordとかぜってえ使わねえ
815デフォルトの名無しさん (ワッチョイ e749-zlty)
2022/01/26(水) 13:32:46.48ID:MBxJE5i40
ともーじゃん?
・・・まあ使わなくても済むよなあ
816デフォルトの名無しさん (テテンテンテン MM8f-9Kiq)
2022/01/26(水) 13:50:18.74ID:wOQPCoOZM
DTOだらけの低品質なコードが量産されてTypeScriptみたいになりそうな気はしてる
817デフォルトの名無しさん (スッップ Sd7f-lJKu)
2022/01/26(水) 14:28:40.80ID:pfxZ0tMsd
おれも独習で勉強した
分厚いから真ん中ぐらいまでくると最初の方忘れてるわ
んでもう一度戻ってやり直したり、途中で挫折したりで
1年以上うだうだ読んでた

読み終わる前にいろいろ作って遊んでたけど
イベントとか非同期処理とか分からないとまともなの作れないんで
途中すっ飛ばしてその辺読んだり
818デフォルトの名無しさん (NZ 0H1f-ZgEK)
2022/01/26(水) 19:22:56.75ID:uxP3YVvMH
>>817
その独習、旧版(ハーバード・シルト)?
819デフォルトの名無しさん (オイコラミネオ MMdb-IuBN)
2022/01/26(水) 19:59:28.45ID:zF2HduXmM
シルトは過去の人
昔読んだ時もそういうイメージ

文法ぐらいが得意分野
820デフォルトの名無しさん (NZ 0H1f-ZgEK)
2022/01/26(水) 21:16:01.91ID:uxP3YVvMH
>>819
では最近の教科書で優れたものは、どなたの著作ですか?
821デフォルトの名無しさん (ワッチョイ 5f42-4V6Q)
2022/01/27(木) 00:27:57.09ID:XnQeNwtl0
俺はオライリーの薄いやつで大体把握して、デザパタをjavaの結城さんのやつで学んだな
822デフォルトの名無しさん (ワッチョイ e7ae-tBRw)
2022/01/27(木) 10:26:45.87ID:i4V+v3ft0
C++の本で勉強した知識だけでC#の本は買わず、dobonを見ながら書いてる
823デフォルトの名無しさん (ワッチョイ 8701-ZIfX)
2022/01/28(金) 00:37:45.37ID:UrWQ/KNN0
dobonよく参考にしてるけどもしかして見てるとバカにされる風潮とかあるの?
824デフォルトの名無しさん (ワッチョイ 7f2d-dZT1)
2022/01/28(金) 00:43:53.93ID:OmkEpZCo0
昔はよくお世話になったけど、今となっては古い記事が多いので最近はあまり見ないな
825デフォルトの名無しさん (ワッチョイ c55f-dxHz)
2022/01/28(金) 05:13:54.08ID:AmULl7RP0
全ページのヘッダに古い言語仕様の内容であることの明示くらいはしてほしい
あと初心者向けと言いながら
同じ処理でベストプラクティスと非推奨な書き方を同列に載せてるのも印象よくない
826デフォルトの名無しさん (アウアウクー MM7d-CZkQ)
2022/01/28(金) 08:13:42.95ID:MUNMfoCeM
recordはvalueobject作るのに便利
使い捨てのアプリ作るのには不要
827デフォルトの名無しさん (テテンテンテン MM3e-X7Gz)
2022/01/28(金) 12:18:41.61ID:g6bFcMDaM
で、あるか
828デフォルトの名無しさん (ワッチョイ 6646-21ac)
2022/01/28(金) 14:24:04.65ID:C+lFkEfx0
お世話になります。
ComboBox.IsReadOnly を使おうとしてエラー(usingまたはアセンブリが不足)が出ました。
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.combobox?view=windowsdesktop-6.0
で調べ、
名前空間:System.Windows.Controls
アセンブリ:PresentationFramework.dll
を追加しました。
しかし、現時点でエラーに変化がなく困っています。他に考えられる原因があればお教えてください。
829デフォルトの名無しさん (ワッチョイ 11e5-KfKj)
2022/01/28(金) 14:32:54.24ID:QwC8uFzi0
「他」とか言われてもお前以外にゃわからんのよ
830デフォルトの名無しさん (ワッチョイ 5d84-pyKz)
2022/01/28(金) 14:38:21.72ID:S6VsJW6p0
>>828
追加したのはWPF用のアセンブリだけどお前が作ってんのはWPFじゃなくてWinFormsだとか
831デフォルトの名無しさん (スプッッ Sdea-8U/q)
2022/01/28(金) 15:20:17.24ID:D0DTDHxMd
ComboBoxのインスタンス作らずにプロパティ見ようとしてるとか?

プロジェクトのエラー起こしてるコードさえないからわからん
832デフォルトの名無しさん (ワッチョイ 6646-21ac)
2022/01/28(金) 15:31:53.40ID:C+lFkEfx0
>>829>>830
反応ありがとうございます。
はい。WinForms(VisualStudio使用)です。
ソリューションエクスプローラーの参照からアセンブリを探して追加しました。
WPF用ではなかったか確認します。
using System.Windows.Controls と書いて追加した気になっていましたが、
ソリューションエクスプローラーに同名がないのを確認しました。これが原因かもしれないので調べてみます。

>>831
盲点でした。確かにインスタンス化していません。やってみます。

みなさんのアドバイスのおかげで糸口が見えました。あとは自力で頑張ってみます。
また困ったことがあればよろしくお願いします。
833デフォルトの名無しさん (ワッチョイ b6a7-Jl4Y)
2022/01/28(金) 15:36:53.16ID:bcAzYVuU0
>>832
横からレスだけど、次からは情報を端折らずに書いてね
場合によるから
834デフォルトの名無しさん (ワッチョイ b6a7-Jl4Y)
2022/01/28(金) 15:38:40.89ID:bcAzYVuU0
>>832 833の追記
WinFormsのComboBoxはSystem.Windows.Formsの方だったはず
835デフォルトの名無しさん (ワッチョイ 6646-21ac)
2022/01/28(金) 15:51:48.62ID:C+lFkEfx0
>>832
反応ありがとうございます(横レスでも大歓迎です)
情報を端折ってしまったようで今後気を付けます。
必要になる正しい情報とはこちらでよろしいですか?

エラー CS1061 'ComboBox' に 'IsReadOnly' の定義が含まれておらず、型 'ComboBox' の最初の引数を受け付けるアクセス可能な拡張メソッド 'IsReadOnly' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください

それとも部分的であってもソースでしょうか?今回の問題では必要ないと判断してしまいましたが、次回以降気を付けます。
次回もぜひお願いします。ありがとうございました。
836デフォルトの名無しさん (ワッチョイ a633-K61z)
2022/01/28(金) 16:04:30.29ID:AFiLYmq20
単に、WinFormsのComboBoxにはIsReadOnlyプロパティが存在しないだけだな

https://atmarkit.itmedia.co.jp/ait/articles/0711/01/news152.html
837デフォルトの名無しさん (ワッチョイ b6a7-Jl4Y)
2022/01/28(金) 16:32:10.58ID:bcAzYVuU0
>>835

エラーメッセージもそうだけど、こっちが言ってたのは「WinFormsかWPFか」の方だね
WinFormsの方のComboBoxにはDropDownStyleプロパティがあるからこれにComboBoxStyle.DropDownListを渡せば選択可能で文字列入力を受け付けないタイプになるよ
(まあ、他の人がすでに提示しているようだけど)
838デフォルトの名無しさん (ワッチョイ f1ad-x4tF)
2022/01/28(金) 16:34:15.50ID:ycXEhqEs0
もしかして Enabled
839デフォルトの名無しさん (ワッチョイ 6646-21ac)
2022/01/28(金) 17:05:47.31ID:C+lFkEfx0
みなさん親切で涙が出てきます。
>>836・837・838 反応ありがとうございます。

・C#にはWinFormsの他にWPFがあったのですね。WPFという言語なのかと思っていました。
今後はエラーメッセージと共にWinFormsであることを最初に宣言します(初心者すぎてすみません)

IsReadOnlyプロパティが存在しない
・はい。通常のプロパティでは見つけられませんでした。
こちらのサイトを参考にさせてもらい挑戦していました。
https://blog.t5o.me/post/20140316/c-sharp-xaml-combobox-read-only.html

・ComboBoxStyle.DropDownListとEnabledも試しに設定しました。
やりたいことは、
コンボボックス横にチェックボックスを設置
チェックボックスが真の時、コンボボックスを規定値にし操作不可能にすることですが、
上記設定でもドロップダウンボタンが反応するので別の方法を探し、上記サイトにたどり着きました。

・第2案として、チェックボックスが真の時、コンボリストを規定値以外を削除し対応しようかと考えています。
(ドロップダウンリストが空白で1行出てきてしまうのがかっこ悪いかなと考えて最善を探していました)

なんとか頑張ってみます。みなさんありがとうございました。
840デフォルトの名無しさん (ワッチョイ a633-K61z)
2022/01/28(金) 17:14:46.64ID:AFiLYmq20
>>839
System.Windows.Forms.ComboBoxを継承してカスタムコントロールを作るってのが調べると出てくると思うよ
例えばこんなのとか
http://jeanne.wankuma.com/library/readonlycombobox/
841デフォルトの名無しさん (ワッチョイ a62d-Y4FF)
2022/01/28(金) 17:20:12.41ID:OmkEpZCo0
>>839
839のリンク先もそうだけど、記事にXAMLって単語があったらWinFormsと無関係だと思って良いよ
WinFormsのコンボボックスの操作不能にするのは、comboBox.Enabled = false;
842デフォルトの名無しさん (ワッチョイ b501-Y4FF)
2022/01/28(金) 19:13:46.87ID:l6dMzLky0
c# + visual studioでデータブレークポイント使えますか?
c#のクラスは参照型ですが、値のコピー
(int型変数i,jだと、i = jに相当する処理)
するにはどのようにすればよいのでしょうか?
843デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/01/28(金) 19:27:11.67ID:LzvJDC40a
ブレークポイントの上で右クリ→条件
844デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/01/28(金) 20:10:31.96ID:LzvJDC40a
コピーはコピー先をnewして作って、メンバー変数の値をそこに一個ずつコピーしてく
クラスによってはそういうnewとコピーをしてくれるClone()を持ってることもある
845デフォルトの名無しさん (ワッチョイ 4a0e-21ac)
2022/01/29(土) 16:47:47.80ID:3whatsSd0
独習C#で学習されている方が多そうですがマルチスレッド難しすぎないですか(泣)
新版を使っておりますが、P530〜の説明が意味不明です
awaitとWait()メソッドの違いがよくわかりません
どちらもタスク(サブスレッド)の処理を待機するという同じような意味という理解ですが、
なぜかサンプルプログラムで両方使われています
試しに片方削除して実行すると、ループが最後まで実行されないので、意味が違うんでしょうが調べてもよくわかりません…
どなたかご教示いただけないでしょうか
846デフォルトの名無しさん (ワッチョイ 3a32-6WVI)
2022/01/29(土) 17:25:22.69ID:xNgrtKWR0
>>845
大別するならawaitは非同期、Task.Wait()は同期的、という所だけど
Task.Wait()は単純にその場でタスクの終了を待つので足踏みする事になる
awaitを使うと内部的にはその後のコードもTask化されてasyncメソッドの返り値になる

awaitまで到達した時点で呼び出し元に処理が戻るので、主にUIスレッド等でよく使われる
後続処理を追加するだけならTask.ContinueWith()も有るんだけど
UIコンポーネントは作成スレッドからしかアクセスしてはならない制約とか
後続処理を担うスケジューラ指定とか煩雑なのを纏めて糖衣構文にしたのがawait
847デフォルトの名無しさん (アウアウウー Sa21-21ac)
2022/01/29(土) 18:18:28.62ID:5CdUE0YMa
>>845
助手(他のスレッド)がタマネギを炒め終わるのをジャガイモの皮を剥きながら待つのがawait
手を止めてじっと待つのがWait

awaitが画期的なのは、「助手の仕事が完了するまでは別の仕事をしつつ、完了後に
やりかけの仕事の続きをする」という本来シーケンシャルでない手続きを、あたかも
「助手の仕事が完了したら続きをやる」という単純なシーケンスであるかのように記述できること
848デフォルトの名無しさん (ワッチョイ 6da7-HqMb)
2022/01/29(土) 18:22:38.33ID:p/SD7W260
async汚染に注意な
849デフォルトの名無しさん (ワッチョイ a5d2-8U/q)
2022/01/29(土) 18:50:59.09ID:wjo4lb340
awaitの正体は「Taskがすぐに終わらなかったらすぐにreturnする特殊構文」ってことを知っておけば理解はしやすいと思う
Taskが終わったらさっきawaitしたところから(途中処理を飛ばして)再開する

関数先頭に特殊構文を使うことを明記(async)しなきゃいけない

(FormとかWPFとかのGUIアプリなら裏で勝手にやってくれるから気にしなくていいが)
Taskが終わった後にawaitから再開できるように呼び出し元のスレッドでDispatcher.Run()しとかなきゃいけない
850デフォルトの名無しさん (オッペケ Srbd-TR9v)
2022/01/29(土) 19:19:00.14ID:7kxnQq4mr
awaitは「あ!まって!」って覚えればいい
851デフォルトの名無しさん (テテンテンテン MM3e-X7Gz)
2022/01/29(土) 19:28:39.37ID:RKF0PElVM
await 〇〇やっといてよろしく。私いったん席外すんで終わったら連絡ちょうだい。続きこっちで引き継ぐから

Wait 〇〇やれや!終わるまで後ろでじっと見とるからな!はよせえよ!

どっちがいい?
852デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/01/29(土) 19:41:45.39ID:S+vKlyc9a
Threadが一番わかりやすいw
853デフォルトの名無しさん (ワッチョイ a612-21ac)
2022/01/29(土) 20:51:42.02ID:kkw3q4n30
たとえが分かりやすいですw
イメージがわきました、みなさんありがとうございます!
もう一点だけ確認なのですが、asyncメソッドのawaitよりあとのプログラムに移るタイミングですが、
メインスレッドでプログラムが実行中のときはどちらが優先になるのでしょうか?
854デフォルトの名無しさん (ワッチョイ 5d84-pyKz)
2022/01/29(土) 20:57:28.48ID:z01vGxpA0
>>853
OSの気分次第
855デフォルトの名無しさん (ワッチョイ ea2c-Bf/t)
2022/01/29(土) 21:26:41.18ID:qmqxr6WH0
WinFormという前提でいうと
まず前提としてメインスレッドではずっとメッセージループっていうループが回ってる
でマウスの入力とか再描画要求はメッセージって形でキューに貯められる
メッセージループはキューから1つメッセージを取り出してはアプリの実装に流してくる
ちなみにその辺のシステムメッセージはWinFormだとMouseMoveとかPaintとかのイベントとしてアプリが対応することになる

await以降の処理もこのメッセージを使って実現してるから
メインスレッドの手が空いて次のメッセージを処理できる態勢になるまで待たされる
856デフォルトの名無しさん (ワッチョイ 6da7-HqMb)
2022/01/29(土) 22:02:51.88ID:p/SD7W260
スレッド
注意点一覧

・シングルコアで動くか?
・応答がないときに自決するか?
・失敗時のメモリリークはないか?
・タイムスケジュールはあるか?(例:1分の内AスレッドはX秒、BスレッドはY秒等)
・生存確認方法はあるか?
・実行中の状態は取得できるか?
・ログは出力できるか?
・最大使用メモリは把握できているか?
・失敗時のリザルトの受け取り方法は適切か?
・処理が複数失敗する可能性は考慮できているか?(例:ファイルオープン成功→ファイル書き込み失敗→ファイルクローズ失敗→tempフォルダ削除成功のとき何が返る?)
・本体終了時に終了できるか?
857デフォルトの名無しさん (ワッチョイ a612-21ac)
2022/01/29(土) 23:49:44.87ID:kkw3q4n30
ありがとうございました!
858デフォルトの名無しさん (ワッチョイ 7d01-0kD6)
2022/01/30(日) 01:12:48.99ID:XLpABEj80
C#のマルチコアなんたらっていう非同期処理のテキスト読んだらいいよ
859デフォルトの名無しさん (アウアウウー Sa21-xC/n)
2022/01/30(日) 03:05:22.41ID:2zm6GvSaa
async/awaitとTask.Runの使い分けが今でもよくわからん。。
860デフォルトの名無しさん (オッペケ Srbd-TR9v)
2022/01/30(日) 09:00:16.50ID:F79hzdqmr
>>856
それどこかに書いてあったな
5年くらい前の記憶でそのリストがあった
861デフォルトの名無しさん (テテンテンテン MM3e-Xc5L)
2022/01/30(日) 11:27:59.00ID:zEfMsuv9M
それ多分C#じゃなくて組み込みとかの話だから参考にならんよ
862デフォルトの名無しさん (ワッチョイ 6da7-HqMb)
2022/01/30(日) 14:20:38.52ID:6d5Lec+00
>>861
え?どこにC#だと助かる要素があるの?
863デフォルトの名無しさん (テテンテンテン MM3e-Xc5L)
2022/01/30(日) 15:48:10.14ID:WELts56MM
>>856
この記事の内容が組み込みc++じゃないのかと
864デフォルトの名無しさん (ワッチョイ 6da7-HqMb)
2022/01/30(日) 17:06:41.10ID:6d5Lec+00
C++だと駄目でC#だと助かる要素なんて1つもないけど
今まで何やってたん?
865デフォルトの名無しさん (ワッチョイ 66e3-Xc5L)
2022/01/30(日) 17:17:33.02ID:nTSKdiu90
>>856
これスレッドに限らずどのプログラムにも言えることだと思うわ
出典元知りたい
866デフォルトの名無しさん (ワッチョイ a62d-Y4FF)
2022/01/30(日) 17:18:42.01ID:v/uLxU6j0
>>859
Task.Runとawaitは組み合わせて使うものだし、使い分けって何のことだろうか
(同期する必要が無ければawaitしないことはある)
867デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/01/30(日) 17:21:16.29ID:cT0our3Wa
助かるってどっかの方言なのかな。まったく意味わからなかったw
ほぼすべてがc#(とVSの組み合わせ)で助かるか、マルチスレッド関係なくそのぐらい考えとけって項目
868デフォルトの名無しさん (ワッチョイ 6da7-HqMb)
2022/01/30(日) 17:29:29.52ID:6d5Lec+00
>>867
は?c#に特別なギミックなんてないが
君はスレッド使わないほうがいいね
869デフォルトの名無しさん (スププ Sd0a-pyKz)
2022/01/30(日) 19:59:30.72ID:XMZDBma3d
またシングルスレッドおじさんの講釈が始まったのか
870デフォルトの名無しさん (テテンテンテン MM3e-X7Gz)
2022/01/30(日) 20:10:42.59ID:Mi/4eGx6M
awaitのおかげで非同期書きまくる現代のプログラミングでこんなチェックリストいちいち考えてたら工数足りん
それに現代の実行環境は優秀なんでほとんど考えなくていいよう出来てる
C#もJavaScriptもそう
C++とはもう時代が違う

・シングルコアで動くか?→普通に書けば当たり前に動く
・応答がないときに自決するか?→普通に書けばライブラリ側からタイムアウト例外出て落ちる
・失敗時のメモリリークはないか?→普通に書けばあり得ない
・タイムスケジュールはあるか?(例:1分の内AスレッドはX秒、BスレッドはY秒等)→大半のケースで環境に任せるのが正解。制御したいならより上のプロセスレベルで制御する
・生存確認方法はあるか?→死んだら例外でる出てないなら生きてる
・実行中の状態は取得できるか?→大半のケースで取得要件はない
・ログは出力できるか?→出来ないことなんてあるの?
・最大使用メモリは把握できているか?→環境に任せるのが正解。したいならより上のプロセスレベルで制御する
・失敗時のリザルトの受け取り方法は適切か?→例外で標準化されてる
・処理が複数失敗する可能性は考慮できているか?(例:ファイルオープン成功→ファイル書き込み失敗→ファイルクローズ失敗→tempフォルダ削除成功のとき何が返る?)→例外出たら止めろ。例外出ても進めるならしっかり設計しろ。そしてそれは非同期関係ない
・本体終了時に終了できるか?→普通に書けば猶予期間内に終了する。ロングランニングの時だけ気をつけろ
871デフォルトの名無しさん (ブーイモ MM8e-bj7G)
2022/01/30(日) 20:27:29.51ID:MKtsah/wM
各アプリケーションの機能テストで確認すべき項目と
非機能要求のテストで確認すべき項目と
フレームワークの仕様テストで確認すべき項目と
全部ごちゃ混ぜだから分かりにくい

タイムアウトを含め失敗時の振る舞いは一般的な品質レベルなら全部テストする項目
872デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/01/30(日) 20:32:44.54ID:cT0our3Wa
組み込みになるとシングルコアで動くのにマルチコアで動かないとか、通信ライブラリが処理をつかんだままだとほかのスレッドが止まるとか(それマルチスレッドなのか?でも本当に起きる)
そんな感じになっていくからな。特にFreeRTOSは・・・

c#だとlockとかを知らないと色々トラブル。そっちの方が重要だろ
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/statements/lock
873デフォルトの名無しさん (ワッチョイ a95f-Xc5L)
2022/01/30(日) 22:57:40.72ID:aiFnFmm30
doxygenって何処のスレで質問すれば良いですか?
874デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/01/30(日) 23:50:15.42ID:cT0our3Wa
スレ立てるまでもない質問はここで 158匹目
http://2chb.net/r/tech/1635193843/
875デフォルトの名無しさん (ワッチョイ 6da7-HqMb)
2022/01/31(月) 00:03:34.26ID:HAfOA5uC0
>>870
。oO(ああ、こいつダメだ、経験が少なすぎてなんも当たったことねぇのなw)
876デフォルトの名無しさん (ワッチョイ 5d84-pyKz)
2022/01/31(月) 01:18:01.43ID:rap/w09T0
GUIアプリ作るのにシングルスレッド縛りはありえねーって
877デフォルトの名無しさん (ワッチョイ 66b0-K8xK)
2022/01/31(月) 01:20:52.56ID:PXu70Z+W0
(応答なし)
878デフォルトの名無しさん (ワッチョイ 6da7-HqMb)
2022/01/31(月) 01:30:02.02ID:HAfOA5uC0
>>876
うまく行かなかったんだろ?w
879デフォルトの名無しさん (ワッチョイ 5d84-pyKz)
2022/01/31(月) 02:43:38.51ID:rap/w09T0
>>878
GUIアプリでシングルスレッド縛りだと重い処理で画面固まってるように見えてしまうからうまく行かないね
880デフォルトの名無しさん (テテンテンテン MM3e-+Ul7)
2022/01/31(月) 08:09:11.84ID:RgoQRIUnM
>>870のどこがダメなのか分からない
スレッド制御を自前で1から書かなきゃいけなかった00年代ならともかく
async/awaitにほぼすべてを任せられて非同期を安全お手軽に書けるようになってる時代なのにさあ

脳みその中もPentium4あたりで進化が止まった老害が
async/awaitを当たり前に使う現在のコーディングスタイルについていけなくて
誰彼かまわずケチをつけてるだけにしか見えない

年取ってこういうゴミみたいなジジイにはなりたくないもんだ
881デフォルトの名無しさん (ワッチョイ 9e10-l0pG)
2022/01/31(月) 09:50:16.85ID:JauXjIS80
何がしたいかによる
await/asyncを使うのは主に外部要因で待たされる時
ダウンロード残り1GBとかSQLサーバーからレスポンスが2秒以上かかってるとか
そういう感じの時クルクル回したりプログレスバーとキャンセルボタンが欲しいわけ
ボタンすら反応しませんだと、クソ重いソフトと因縁つけられちゃうの
一方マルチスレッドでCPU100%がん回しですってのがしたいことだったら
Partitioner.CreateとParallel.ForEachを使うawait/asyncは関係ない
882デフォルトの名無しさん (テテンテンテン MM3e-X7Gz)
2022/01/31(月) 10:15:13.28ID:FSK5xZBqM
大半のケースで考慮不要

この一言でまあそうだよねと納得できないなら開発経験不足としか言えん
883デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/01/31(月) 10:47:47.62ID:F4OTxaxpa
もともとがc#に合わせた話じゃないからどうとでも読み取れちゃうんだよ
分かりやすいとこで言えば例えば
> ログは出力できるか?→出来ないことなんてあるの?

プログラミングの話をしてるのだからきちんと意図通りに動くことを把握するためのDebug.WriteLineのようなログと捉えたらできないことなんてあるの?となる
でもログファイル出力と捉えたら、マルチスレッドから同じファイルに対して書き込もうとして・・・なんてできないこともある
884デフォルトの名無しさん (テテンテンテン MM3e-X7Gz)
2022/01/31(月) 11:33:05.16ID:I+ECkei6M
そんなのはloggerがなんとかしてくれるから気にするな
つか今時はログは全部標準出力でいい
標準出力を拾って何処に吐くかは環境が担当するところ
885デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/31(月) 11:38:53.86ID:BNlzdeLSM
>>883
> でもログファイル出力と捉えたら、マルチスレッドから同じファイルに対して書き込もうとして・・・なんてできないこともある
キューに書くなりして排他制御するだけじゃね?
886デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/01/31(月) 12:08:05.50ID:F4OTxaxpa
そうなんだよ
だからログ取るならこのクラス使え(c#が勝手にスレッドセーフにしてくれたり管理するよ)
マルチスレッドからファイル操作するならlockで排他制御しろ(自分でスレッドセーフにしないとトラブルぞ)
ってチェックシートならいいんだけどな
887デフォルトの名無しさん (アウアウウー Sa21-21ac)
2022/01/31(月) 12:13:17.55ID:a9TU5xJTa
オラオラ交通整理マン仕事しろや早く議論スレに誘導しろよ
まさか交通整理マン自身が議論してるんじゃねえだろうな?ん?

まあ、個人的には議論は結構だけど論点は明確にして欲しいね。
正直何を争ってるのかさっぱり分からんw
こんなあいまいな話で藁人形と戦ってる奴って普段よっぽど邪険にされてるのかねwww
888デフォルトの名無しさん (テテンテンテン MM3e-X7Gz)
2022/01/31(月) 12:53:42.98ID:80+F6Vz/M
かわいそうに
889デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/31(月) 13:04:34.28ID:dnOSCP4XM
>>886
> マルチスレッドからファイル操作するならlockで排他制御しろ(自分でスレッドセーフにしないとトラブルぞ)
スレッドセーフならいいって話じゃないことぐらいは理解してから議論に参加しようよ…
890デフォルトの名無しさん (ワッチョイ 6663-gS2q)
2022/01/31(月) 15:26:32.90ID:2TQISd5L0
あ、これ議論なの?
891デフォルトの名無しさん (アウアウキー Sa55-/Ngc)
2022/01/31(月) 19:09:11.37ID:yyWr14dta
凄まじく複雑な相談なんだけど良い?

インスタンスと対になる鍵オブジェクトって
xxxIdかxxxKeyかxxxTokenのどれで名付けるべき?

ちなみに中には格納番号が入っててリポジトリからインスタンスを引き出すのに使う
892デフォルトの名無しさん (スップ Sdea-8U/q)
2022/01/31(月) 21:03:11.17ID:eqy2NGbAd
初心者スレだぞ

簡単な使い方ならともかく
なんか動かんだのデータ壊れただのデッドロックしただのの対策を一気に詰め込んでも無理でしょ
893デフォルトの名無しさん (アウアウウー Sa21-21ac)
2022/01/31(月) 21:27:15.36ID:a9TU5xJTa
>>891
そもそも専用クラスにする必要あるの?
っていうかこの板命名スレもあるよ
いや目くじら立てて行くべきと言いたいわけじゃないw
894デフォルトの名無しさん (ワッチョイ 9e10-l0pG)
2022/02/01(火) 11:07:54.02ID:Z6xO941E0
IDを使うときは配列でインデクサがある、とか
Keyを使うときは辞書でKey-Valueの対がある、とか
Tokenを使うときは重複しない文字列(大抵はハッシュ)が入ってる、とか
そういう話なのかな、C#とどう関係するのか知らんけど
895デフォルトの名無しさん (ブーイモ MM0a-4rOF)
2022/02/01(火) 11:19:59.86ID:Tjw+V3tAM
普通にハンドルパターンじゃないのか
896デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/02/01(火) 12:10:52.81ID:LUb4jo/Ua
object xxxと対になる鍵オブジェクト = new object();
897デフォルトの名無しさん (ワッチョイ 4954-l0pG)
2022/02/01(火) 13:48:07.91ID:1d/yMvRJ0
TextBoxの高さに合わせてFormの高さを調整したいのですが、下記のようにすると、TextChangeのたびに高さが減ってしまいます。
何が原因でしょうか?
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox1.Height = textBox1.Lines.Length * textBox1.Font.Height;
ClientSize = new Size(ClientSize.Width ,textBox1.Height);
}
898デフォルトの名無しさん (アウアウキー Sa55-lbKC)
2022/02/01(火) 18:19:16.26ID:R62wNw5Va
https://docs.microsoft.com/ja-jp/dotnet/desktop/winforms/advanced/how-to-obtain-font-metrics?view=netframeworkdesktop-4.8
899デフォルトの名無しさん (アウアウウー Sa21-oAP+)
2022/02/01(火) 18:21:14.03ID:I6aD7b89a
TextBoxの高さに合わせてFormの高さを調整したいだけなのに
textBox1.Height = でテキストボックスの高さまで変更してるからでは?
900デフォルトの名無しさん (ワッチョイ eaad-xK17)
2022/02/01(火) 19:55:39.20ID:x6m1XFOP0
>>897
一回目の呼び出しで
フォントの高さに合わせてtextBox1.Heightを設定する(小さくなる)
textBox1.Heightの高さに合わせてフォントの高さが変わる(小さくなる)

二回目の呼び出しで
フォントの高さに合わせてtextBox1.Heightを設定する(小さくなる)
textBox1.Heightの高さに合わせてフォントの高さが変わる(小さくなる)

というループだからでわ?
少なくともtextBox1.HeightはtextBox1.Font.Height より少し大きいはずだから
そのまま代入していくとどんどん小さくなるんだと思うわ
901デフォルトの名無しさん (アウアウウー Sa21-21ac)
2022/02/02(水) 00:39:48.73ID:TKyxc9mCa
>>897
これで出来た
でも何か気付いてない問題がありそうw
private void textBox1_TextChanged(object sender, EventArgs e)
{
  var delta = textBox1.PreferredSize.Height - textBox1.Height;
  Height += delta;
  textBox1.Height += delta;
}
902デフォルトの名無しさん (ワッチョイ a5d2-8U/q)
2022/02/02(水) 01:06:16.73ID:Xe1+J6sR0
TextChangedのイベントごとにHeight+=deltaの設計自体良くないとは思う

イベントごとにテキスト内容からHeightの再計算させるなら理解できるが
903デフォルトの名無しさん (アウアウウー Sa21-21ac)
2022/02/02(水) 01:14:48.57ID:TKyxc9mCa
>>902
言いたいことは分からないでもないが、
恐らくセッター自身にプロパティーの値に変更がなければ何もせず戻る処理が
入っているはずなので考えすぎ。

実際問題動かしてみてそれに起因する問題があるようには見えない
904デフォルトの名無しさん (ワッチョイ 1e82-21ac)
2022/02/02(水) 09:11:06.71ID:RlffTed50
WinFormsのListViewで、仮想モード、LargeIcon表示にしたとき
Shift+マウスクリックでの項目の範囲選択がクリック位置より広く選択されてしまいます。

以下は2008年の古い情報ですがWindowsXPの不具合のため回避困難とあります。
https://social.msdn.microsoft.com/Forums/ja-JP/484c578a-df46-4624-a4e7-99ceaa0588ef/2020624819212701237512383listview12391389173044612398350792596836?forum=vsgeneralja

Windows10でも解消していないようなのですが、
検索しても有用な情報が見つからずどなたか回避できてる方いないでしょうか。
905デフォルトの名無しさん (ワッチョイ 5e66-vYAo)
2022/02/02(水) 09:12:35.95ID:4XyzPXmZ0
スクリーンロックを抑止したくてネットで調べて下のようなプログラムを書きました。

static async void Test(){
for(;;){
SendKeys.Send("Break");
await Task.Delay(10000);
}
}

目的は達成したのですが、Test()メソッドを終了するにはどう書けば良いでしょうか?
よろしくお願いします。
906デフォルトの名無しさん (ワッチョイ 6ada-Xc5L)
2022/02/02(水) 10:25:26.24ID:qrF7Vqa00
static bool _stopTest;


public void StartTest()
{
 _stopTest = false;
 Test();
}

public void StopTest()
{
 _stopTest = true;
}

static async void Test()
{
 while( !_stopTest )
 {
  SendKeys.Send("Break");
  await Task.Delay(10000);
 }
}

止めたいところでStopTestを呼ぶ
907デフォルトの名無しさん (ワッチョイ a62d-Y4FF)
2022/02/02(水) 11:00:41.80ID:tkuApL0q0
CancellationToken使おう

private CancellationTokenSource cts = new CancellationTokenSource();
private Task task;

public void Start()
{
this.cts = new CancellationTokenSource();
this.task = Test( cts.Token );
}

public void Stop()
{
this.cts.Cancel();
this.task.Wait(); // 必要があれば
}

static async Task Test( CancellationToken ct )
{
while ( ! ct.IsCancellationRequested )
{
SendKeys.Send( "Break" );
try
{
await Task.Delay( 10000, ct );
}
catch ( TaskCanceledException )
{
}
}
}
908デフォルトの名無しさん (ワッチョイ b501-Y4FF)
2022/02/02(水) 12:33:54.15ID:2OSrRGw90
>>842
>> c# + visual studioでデータブレークポイント使えますか?

これひょっとして使えな
909デフォルトの名無しさん (ワッチョイ b501-Y4FF)
2022/02/02(水) 12:47:34.78ID:2OSrRGw90
c#でAddressSanitizerみたいなツールはありますか?

>>これひょっとして使えな

これは「これひょっとして使えないのでは?」です
910デフォルトの名無しさん (ワッチョイ a633-K61z)
2022/02/02(水) 12:49:24.20ID:5pRqnuwX0
>>908
https://docs.microsoft.com/ja-jp/visualstudio/debugger/using-breakpoints?view=vs-2022#set-data-breakpoints-net-core-3x-or-net-5
911デフォルトの名無しさん (アウアウウー Sa21-MO11)
2022/02/02(水) 15:01:03.10ID:MolDdSgsa
https://stackoverflow.com/questions/209281/c-sharp-equivalent-to-javas-wait-and-notify

l

foo.notify() => Monitor.Pulse(foo)
foo.notifyAll() => Monitor.PulseAll(foo)
foo.wait() => Monitor.Wait(foo)
912デフォルトの名無しさん (アウアウウー Sa21-MO11)
2022/02/02(水) 15:06:00.81ID:MolDdSgsa
>>907だと、クリティカルタスクの最中に例外が起きたら壊れそうだなw
>>906は、Pulseが抜けてる
913デフォルトの名無しさん (ワッチョイ 3abd-IClH)
2022/02/02(水) 22:04:43.57ID:GVJKCJUY0
ピクチャーボックスに直線を実寸(o)で引きたいんですけど、どうすればよいですか?
914デフォルトの名無しさん (ワッチョイ 6978-Xc5L)
2022/02/02(水) 22:13:43.42ID:NhKBMVet0
GraphicsオブジェクトのPageUnitプロパティを変更する
915デフォルトの名無しさん (アウアウウー Sa21-21ac)
2022/02/02(水) 22:49:06.74ID:p1re6OTba
>>913
GDI+はたぶん常にdpiを96dpiと仮定しているので
モニターのdpiが96dpiなら>>914で上手く行くがそれ以外の場合は
自分でページ変換を設定しないとだめだと思うよ
916デフォルトの名無しさん (ワッチョイ ea2c-Bf/t)
2022/02/02(水) 23:21:53.08ID:vNzv2HbB0
GDI+のDPIは可変だよ 印刷にも使うんだから
描画先がモニタの場合WindowsのDPI設定に依存して変わる
例えば125%なら120dpiだな
まあDPI設定に従うだけでモニタのDPIは恐らく別だからモニタ上で正しく表現できるわけではないけど
917デフォルトの名無しさん (ワッチョイ 5d84-pyKz)
2022/02/02(水) 23:29:58.32ID:30BhQoQ30
>>916
それってやっぱりモニターの解像度は96dpi固定ってことだろ
32インチ4Kスケーリング100%なら138dpiが取得できる方法を示さないと
918デフォルトの名無しさん (アウアウウー Sa21-21ac)
2022/02/02(水) 23:31:34.80ID:p1re6OTba
>>916
印刷時に物理単位(mmやインチ)を選択できるのは
プリンタの場合はdpiを報告する仕組みが最初から確立してるからで
ディスプレーの場合は残念ながらそうじゃないんでいろいろややこしいよw
919デフォルトの名無しさん (ワッチョイ 0a2e-LlB6)
2022/02/03(木) 09:28:12.33ID:Nd7AcXHS0
質問させてください。
起動すると適当な番号でhttpポートを開くアプリがあります(仮にaaaa.exe)
このaaaa.exeのパスが分っている状態で、アプリが使用しているポート番号を取得したいのですが、どのように処理したら良いでしょうか?
920デフォルトの名無しさん (ブーイモ MM3e-7nMi)
2022/02/03(木) 09:46:56.82ID:X/mng9aEM
>>919
netstat
921デフォルトの名無しさん (ワッチョイ 7961-bU36)
2022/02/03(木) 13:48:25.19ID:EdZmqiFt0
>>919
対象プロセスのプロセスIDを取得してGetExtendedTcpTable/GetExtendedUdpTableで取得できるデータと突き合わせる
922デフォルトの名無しさん (ワッチョイ 0a2e-LlB6)
2022/02/03(木) 14:20:51.83ID:Nd7AcXHS0
>>920
>>921
ありがとう。今日の夜試してみる。
923デフォルトの名無しさん (ワッチョイ 1149-OHvl)
2022/02/03(木) 15:09:05.58ID:1AlNHnvf0
いえいえ
924デフォルトの名無しさん (ワッチョイ 5ee9-Y4FF)
2022/02/04(金) 07:20:32.62ID:34mLDZGV0
スクリーンロック抑止の者ですが、遅れながらメカニズムを理解できました!
ありがとうございます!
SendKeysで"Break"を定期的に押すと文章書いてる時に
ガッツリ消えるので、何のキーが良いかは探求したいと思います。
925デフォルトの名無しさん (ワッチョイ b501-Y6bJ)
2022/02/04(金) 07:42:03.31ID:QVbyni0c0
似たようなソフト作ったことあるけど、キーを押下するよりマウスを現在位置から現在位置に移動するほうが普通に使ってるときの影響なくていいよ
926デフォルトの名無しさん (ワッチョイ 5ee9-Cnlt)
2022/02/04(金) 17:23:13.30ID:34mLDZGV0
>似たようなソフト作ったことあるけど、キーを押下するよりマウスを現在位置から現在位置に移動するほうが普通に使ってるときの影響なくていいよ

キーインする限り、どんなに使わないキーでも影響は避けられないと気が付きました。
マウス操作をトライしたいと思います。ありがとうございます。
927デフォルトの名無しさん (スフッ Sd0a-J5Io)
2022/02/04(金) 21:42:43.56ID:+ZxkHXQpd
画面ロックというのが具体的になんなのかだけど
Windowsシステムのスリープとか退席モードのことならAPIで抑制した方がいいのでは
928デフォルトの名無しさん (ワンミングク MM7f-hzxa)
2022/02/05(土) 15:50:35.16ID:qLntA6C8M
powertoysのawakeでいいだろ
929デフォルトの名無しさん (ワッチョイ d784-2hKW)
2022/02/05(土) 16:19:11.63ID:yLNqj27S0
>>928
それはどうやって実装してるの?
930デフォルトの名無しさん (ワッチョイ ff63-ZM9K)
2022/02/05(土) 23:38:56.22ID:x0YbOETD0
そりゃSetThreadExecutionState呼んでるやろなあ
931デフォルトの名無しさん (ワッチョイ d784-2hKW)
2022/02/06(日) 00:11:20.36ID:66j2bw9/0
あとはキーボードフックでWin+Lを握りつぶせるかだな
932デフォルトの名無しさん (ワッチョイ 9f79-1gYf)
2022/02/06(日) 04:20:06.01ID:D8jWL7f30
Win+Lとかまで対応する気ならOSの設定いじった方がいいのでは
https://i-bitzedge.com/tips/how-to-lock-screen-enable-or-disable-on-windows-10
933デフォルトの名無しさん (ワッチョイ bf66-2cIz)
2022/02/07(月) 12:45:48.73ID:eA8tvD7r0
>Windowsシステムのスリープとか退席モードのことならAPIで抑制した方がいいのでは

SetThreadExecutionStateを使うことでやりたい事がダイレクトに出来ました。
ありがとうございます!

キーイン、マウスカーソルぷるぷるも、非同期処理の使い方を知れたので、
実り多かったと感謝しております。
934デフォルトの名無しさん (ワッチョイ f7e4-zU8i)
2022/02/07(月) 21:03:15.86ID:yNoTcSOm0
質問させてください
EntityFrameworkを使用して自PC内(localhost)のPostgreSQLを操作しています
普段正常に参照や更新といった処理は出来ているのですが、極々まれにデータベースとの接続がタイムアウトするケースがあります
データベースのログにもエラー等が無く、なぜタイムアウトになるのか根本の原因が掴めていないのですが、試しにタイムアウト設定の秒数を伸ばしている状態です

お聞きしたい事は、EFは接続に失敗した場合、タイムアウトの秒数になるまで何度もリトライしているのでしょうか?
また、失敗したクエリを再試行する事は可能なのでしょうか?

直接C#とは関係のない質問かもしれませんが、アドバイス頂きたいです
935デフォルトの名無しさん (ワッチョイ 9fda-rpVz)
2022/02/07(月) 22:00:16.47ID:kx+AzsPB0
ほんとにタイムアウトなのかい?
どこか閉じ忘れて接続数上限まで使い切ってるとかは?
936デフォルトの名無しさん (ワッチョイ 9f7c-wadS)
2022/02/07(月) 22:46:47.42ID:0I88UVsz0
PostgreSQLだと割とあるみたいね、接続数の上限というの
937デフォルトの名無しさん (ワッチョイ f7e4-zU8i)
2022/02/08(火) 04:32:53.12ID:fYph1ArX0
>>935
ありがとうございます
接続する際はusingブロックで囲って使用しているので解放漏れは大丈夫だと思ってはいます…
(こういう接続の仕方です:https://qiita.com/Nossa/items/b6d84aeb134abc85f027)

接続数に関してもpg_stat_activityを使用すると、タイムアウト発生時は見れていないのですが、正常時は15程度でした(デフォルトはMax100)
938デフォルトの名無しさん (アウグロ MMdf-/Qhu)
2022/02/08(火) 07:37:47.00ID:2OtTL/zKM
ログに出すようにしたの?
939デフォルトの名無しさん (アウアウクー MM0b-zU8i)
2022/02/08(火) 09:23:52.16ID:Ki5uCpbuM
>>938
System.TimeoutExceptionとSystem.Data.Entity.Core.EntityExceptionが発生している事は確認出来ました。
ただ、例外処理を書いていなかったので「ハンドルされていない例外が発生しました」以上の情報は得られませんでした…

これらを調べても接続文字列が正しいか確認をするなどの記載が多いのですが、基本的に処理が正常に行われているのでここは問題ないのではかと考えてます…
940デフォルトの名無しさん (スップ Sd3f-EiVI)
2022/02/08(火) 12:22:11.88ID:MACKR5LXd
接続上限を疑って再現を目指すなら接続数をデフォルトから100→10に変えてもいいと思う

ありうるシナリオは接続上限→接続空き待ち→待っても開かないからタイムアウト
941デフォルトの名無しさん (テテンテンテン MM8f-Hkqy)
2022/02/08(火) 12:30:36.89ID:QQmTWHSUM
>>934に便乗して
NpgsqlでDB接続するコンソールアプリを1分おきに起動するタスクがあるんだけど、
それなりの頻度でStsyem.TimeoutExceptionで接続失敗しちゃう
どこに問題があると疑うべきなのかなあ

と思っていまログを確認したら
半年くらい前までは2〜3日に1回(=1/1000〜1/5000位の確率)でTimeoutしてたのが
最近だと月1回くらいしか起こらなくなってた・・・
環境というかPostgreSQLサーバの負荷等の問題だったのかな・・・・・・?
942デフォルトの名無しさん (アウアウウー Sa9b-icCT)
2022/02/08(火) 12:38:00.12ID:Vznqt3iZa
同時に書き込アクセスできず待たされるのはよくある
書き込んでる奴が時間かかってたらタイムアウト
プログラミング分かりやすくするなら、DBアクセスは排他処理して同時に複数接続しない。それで失敗はなくなるだろ
943デフォルトの名無しさん (ブーイモ MM1b-umBj)
2022/02/08(火) 12:44:07.19ID:m2Ico1fWM
>>939
TimeoutExceptionのエラーメッセージに何をした時にタイムアウトが発生したのかが書いてあるから
まずそれを確認したら?
944デフォルトの名無しさん (ワッチョイ 9fda-rpVz)
2022/02/08(火) 12:59:02.44ID:nLjBt9+k0
一概にタイムアウトと言っても、「接続タイムアウト」と「コマンドタイムアウト」があるからどっちが発生しているかをよく確認しないとね。
接続文字列のTimeout、CommandTimeout
(もしくはコード上でef経由で個別設定しているとか)

>>939
npgsqlが吐いてる例外をInnerExceptionで見れません?
945デフォルトの名無しさん (ブーイモ MM1b-umBj)
2022/02/08(火) 14:08:23.98ID:TsBQQX8fM
- 詳細エラーメッセージ
- npgsqlとpostgresのバージョン
- 再現コード
この3点セットがあれば誰か調べてくれるよ
.NETやOSの情報もあればなお良い
946デフォルトの名無しさん (アウアウクー MM0b-zU8i)
2022/02/08(火) 14:33:47.63ID:Ki5uCpbuM
>>940
ありがとうございます
なるほど、確かに下げてみれば再現が出来るかもしれません
早速試してみます
これで同じエラーが出てくれれば良いのですが…


>>944
タイムアウト設定に関して、Timeout、CommandTimeout共にデフォルトで運用していました
現在試しにそれぞれ60に伸ばしています
InnerExceptionは例外の詳細ですよね?
お恥ずかしい話ですが、例外処理を書いていなかったため、今回このエラーが分かったのもwindowsのイベントビューアで発見しました
急遽例外処理を入れたのですが、エラーが再現せず…
947デフォルトの名無しさん (アウアウクー MM0b-zU8i)
2022/02/08(火) 14:42:17.36ID:Ki5uCpbuM
>>945
ありがとうございます

現在分かるエラー内容
@System.TimeoutException
ASystem.Data.Entity.Core.EntityException

各種バージョン
Npgsql:ver.4.1.3.0(ランタイムver.v4.0.30319)
PostgreSQL:PostgreSQL 13.3, compiled by Visual C++ build 1914, 64-bit
.NetFramework:4.6.1
OS:Windows10pro

エラー発生箇所コード

static void GetStartProcessTime()
{
using (var context = new DbContext())
{
var processingTimeTable = context.CheckprocessingTimeTable.First(x => x.id== 1);
processingTimeTable.CreateDate = DateTime.Now;

context.SaveChanges();
}
}
948デフォルトの名無しさん (アウアウクー MM0b-zU8i)
2022/02/08(火) 15:07:00.89ID:Ki5uCpbuM
>>947
すいません言葉足らずでした
エラーはその2つの例外情報は分かるのですが説明は「ハンドルされない例外のため、プロセスが中止されました。」となっており、それ以外はエラーに至るまでの内部的な関数?が呼ばれた場所が記載されている状態です
その呼ばれた場所の最後が、エラー発生箇所コードとして記載させて頂いた部分です
949デフォルトの名無しさん (テテンテンテン MM8f-wadS)
2022/02/08(火) 15:35:11.95ID:4pbgYgTcM
>>856
これをありがたいと思うのは変な人
分からないでありがたがってる

>>870が正解
950デフォルトの名無しさん (オッペケ Sr0b-mOMr)
2022/02/08(火) 15:42:07.62ID:2+2aacXwr
まずは作成日みたいなフィールドを後で更新するなと。
951デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2022/02/08(火) 18:40:08.93ID:11RalhgJ0
>>947
これ同じ処理が複数同時に走る?

複数同時に走る場合でread committedならデッドロックになるケースじゃない?
それが原因かどうかはわからないけどlog_lock_waitsがoffならonにしてしておくといいかも
952デフォルトの名無しさん (ワッチョイ 1779-/Qhu)
2022/02/08(火) 18:50:37.00ID:u9WL3yPq0
>>949
ちゃんとチェックするとこに行ったら全弾被弾して
○○さんって大したことないよねって評価をいただくわけですね
953デフォルトの名無しさん (ワッチョイ 1779-/Qhu)
2022/02/08(火) 18:53:19.11ID:u9WL3yPq0
スタイリッシュなつもりでいるようだけど自分の処理の状態も把握できないもん作って悦に浸ってるのがダセェ
お前がよく見るのはあくまでサンプルだからな
954デフォルトの名無しさん (ワッチョイ 372f-2zGl)
2022/02/08(火) 20:10:07.63ID:pmS2YoNl0
>>951
デッドロックやDB上のロックタイムアウトなら、普通はDBサーバ上で確認できるだろ
まず何がエラーになったのかちゃんと確認すべきじゃね

DB側で何の(接続要求すらの)感知もできてないなら、おれならまずはネットワーク系の問題を疑うがな
ソケットの枯渇とか名前解決の不具合とかファイアウォール関係とか、その辺があやしい
955デフォルトの名無しさん (ワッチョイ f7e4-zU8i)
2022/02/08(火) 20:26:14.86ID:fYph1ArX0
>>951
ありがとうございます
このGetStartProcessTimeが複数の箇所で同時に呼ばれる事はありません
教えて頂いた設定等は私の知識不足で全然触れたことがないので一度調べてみます

>>954
ありがとうございます
postgresのログも見てみましたが、タイムアウト発生時にはエラーや何らかの処理をしているログ自体ありませんでした
データベースがEntityFrameworkから接続を要求されているというのは後からでも見ることが出来るのでしょうか?
956デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2022/02/08(火) 21:45:24.55ID:11RalhgJ0
>>954
>まず何がエラーになったのかちゃんと確認すべきじゃね
そりゃそうよ
ただ本当に詳細が確認できない状態で再現もできないのなら
次に発生した時に情報を取れるようにしておくのは重要

DB側のログで何が確認できるかは設定次第
https://www.postgresql.org/docs/current/runtime-config-logging.html
957デフォルトの名無しさん (ワッチョイ 1779-/Qhu)
2022/02/08(火) 22:06:08.66ID:u9WL3yPq0
そもそもタイムアウトが起きるぐらいの処理時間かかってるの?
958デフォルトの名無しさん (テテンテンテン MM8f-wadS)
2022/02/08(火) 22:25:24.63ID:RReR8OJiM
>>952
c#のwindows環境でシングルコアで動くか?ってやってるところどこにあるんだよ
脳みそ何のために使ってんだ?
959デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2022/02/08(火) 22:34:34.58ID:11RalhgJ0
>>955
自PC内ってことだったからnpgsqlのtraceレベルのログも仕掛けといたら?

NpgsqlLogManager.Provider = new ConsoleLoggingProvider(NpgsqlLogLevel.Trace, true, true);
https://www.npgsql.org/doc/diagnostics/logging.html
960デフォルトの名無しさん (ワッチョイ f7e4-zU8i)
2022/02/08(火) 22:47:06.84ID:fYph1ArX0
>>957
各クエリの時間を測った事は無いのですが、アプリケーション自体の一連の処理が0.5〜0.7秒程度で終わっているので、今回のDBへの接続がタイムアウトになるほど長くかかる事は通常は無いと考えています…


テンプレートにあったサイトを使ってエラーを記載してみました
上手く出来ているか分かりませんが、以下が現在確認出来ているエラー内容です

https://ideone.com/rIerhm
961デフォルトの名無しさん (ワッチョイ 1779-/Qhu)
2022/02/08(火) 22:48:14.55ID:u9WL3yPq0
>>958
っていうかそういう自分の思い込みでしか物事を判断できないから
バグまみれのスレッド立てても気にもならないんだろうな

シングルコアで動かしたログがあればマルチコアで並列で動作してるか
どうかチェックになんだろ
得にオメーのはどうせ並列でなんか動いてねぇからシングルでもマルチでもログかわんねーだろw
962デフォルトの名無しさん (テテンテンテン MM8f-wadS)
2022/02/08(火) 23:01:38.91ID:RReR8OJiM
>>961
シングルコアが分からないなら口出ししなければいいのに
963デフォルトの名無しさん (テテンテンテン MM8f-wadS)
2022/02/08(火) 23:07:43.01ID:RReR8OJiM
あなたの会社ではどのシングルコアCPUを搭載したwindowsPCでスレッドの動作確認を行っているんですか?
そんなことしてる会社などないだろ
964デフォルトの名無しさん (アウアウウー Sa9b-icCT)
2022/02/08(火) 23:18:00.69ID:NUxQNPK7a
初代ラズパイ+monoかな
脳みそ何のために使ってんだ? ← 妄想
965デフォルトの名無しさん (テテンテンテン MM8f-Hkqy)
2022/02/08(火) 23:18:39.86ID:QQmTWHSUM
>>963
わざわざ相手するなよ
その人ろくに有益なこと言えないのにひたすらマウント取ろうと粘着するから
無駄にレス流れて迷惑なんだよ
966デフォルトの名無しさん (ワッチョイ ff63-ZM9K)
2022/02/09(水) 02:29:49.81ID:6+/OHix60
脳みそはマルチコアでも容量が1bitしかないようだなハハハ
967デフォルトの名無しさん (ワッチョイ d784-2hKW)
2022/02/09(水) 03:04:14.67ID:w+huDBHz0
またシングルスレッドおじさん帰ってきたのか
968デフォルトの名無しさん (ワッチョイ 17e5-2zGl)
2022/02/09(水) 10:25:30.10ID:FQOg5JO/0
Windowsフォームのプログラムをタブレットでも使いたいという要望があったのですが
comboboxのスクロールバーを大きくすることはWindowsフォームで出来るでしょうか?
というかタブレットかつ高解像度のPCが出てくると
いよいよWindowsフォームがキツくなってきた気がします。
969デフォルトの名無しさん (ワッチョイ ff33-9RcZ)
2022/02/09(水) 10:27:52.18ID:tI59uOap0
>>968
プロパティでどうこうみたいなお手軽な方法は無くって、カスタムコントロールを作るとかしないとダメだった気がする
970デフォルトの名無しさん (ブーイモ MMcf-uPsg)
2022/02/09(水) 11:46:02.13ID:kunTT2/DM
OwnerDrawは全てを解決します
971デフォルトの名無しさん (ワッチョイ 9f79-1gYf)
2022/02/09(水) 13:55:19.52ID:nVoy06Fa0
つーかAndroidタブのコンボボックスにスクロールバーなんかないよね
指で操作するためのUIに変える必要があるってことよね
オーナードローなんかで解決するかな
972デフォルトの名無しさん (ワッチョイ 17e5-2zGl)
2022/02/09(水) 14:17:49.58ID:P+Dycpf60
>指で操作するためのUIに変える必要があるってことよね
フォームアプリがタッチパネルに反応するだけでも御の字と思っている状況なので、
出来るなら是非とも欲しい動作です。
973デフォルトの名無しさん (ワッチョイ 17e5-2zGl)
2022/02/09(水) 14:17:49.99ID:P+Dycpf60
>指で操作するためのUIに変える必要があるってことよね
フォームアプリがタッチパネルに反応するだけでも御の字と思っている状況なので、
出来るなら是非とも欲しい動作です。
974デフォルトの名無しさん (ワッチョイ 9f7c-wadS)
2022/02/09(水) 14:19:08.14ID:5WmGk4RQ0
スクロールバーを出ないぐらいコンボボックスの範囲を大きくしておけばいいのでは?
オーナードローとかしだしたら大変だからやらない方が身のためかもしれない
975デフォルトの名無しさん (アウアウウー Sa9b-icCT)
2022/02/09(水) 14:35:48.89ID:gJYxYm5Ia
コピペで一発とはいかないけどこれでできるな
スクロールバー二重になったりちょっとおかしいとこ変えるだけだからすぐだろ
https://www.codeproject.com/Questions/552065/Customizepluswindowsplusscrollplusbarplusinpluscom
976デフォルトの名無しさん (アウアウウー Sa9b-AiWJ)
2022/02/09(水) 15:24:21.38ID:lp//LDU1a
WPFのコンボもフリックしてタップで止めるとかできないんだっけ?

まあWPFの方が不十分とはいえ一応タッチパネル系のイベントに対応してるんで
できるならWPFで作り直した方がいいんだろうねたぶん
977デフォルトの名無しさん (アウアウウー Sa9b-icCT)
2022/02/09(水) 16:41:51.90ID:iS0fYVVpa
>>975
これできないな。メッセージ飛ばせば終わりだろと思ったけどまったくだった
978デフォルトの名無しさん (ワッチョイ 9f79-1gYf)
2022/02/09(水) 21:31:08.51ID:nVoy06Fa0
コンボボックスやめてパネルにでかいボタンを並べてスクロールさせるかリストボックスだな
そうなるとやっぱオーナードローか
979デフォルトの名無しさん (ワッチョイ 9f10-foD4)
2022/02/09(水) 22:39:05.34ID:HRI/vJyh0
.Net6.0にしようとしたらSJIS削られてて焦った
980デフォルトの名無しさん (ワッチョイ ffe3-wadS)
2022/02/09(水) 22:43:02.03ID:1A90hyai0
>>979
まじかよ、俺社一生使えないじゃん・・・
981デフォルトの名無しさん (ワッチョイ b778-wadS)
2022/02/09(水) 23:04:40.19ID:7kRrx8rI0
EXCEL用のCSV出力できなくなるの?
982デフォルトの名無しさん (ワッチョイ ffda-u8OQ)
2022/02/09(水) 23:05:53.89ID:a7Kiiaid0
>>980
次スレよろぴく
983デフォルトの名無しさん (ワッチョイ b702-HUp2)
2022/02/09(水) 23:06:30.96ID:gW34M8HF0
それは BOM を付けたげたら済む話じゃないの?
984デフォルトの名無しさん (アウアウウー Sa9b-icCT)
2022/02/09(水) 23:12:22.58ID:iS0fYVVpa
CodePageEncodingProvider.Instance.GetEncoding("shift-jis")
こんな感じで取得できたはず
985デフォルトの名無しさん (ワッチョイ ffe3-wadS)
2022/02/09(水) 23:14:43.66ID:1A90hyai0
>>982
はい次スレ

ふらっと C#,C♯,C#(初心者用) Part154
http://2chb.net/r/tech/1644416019/
986デフォルトの名無しさん (テテンテンテン MM8f-wadS)
2022/02/09(水) 23:25:51.66ID:FxI6XKVTM
CP932とshift-jisは実は別物と2chブラウザを作ったときに理解した
大体20年近く前の話
987デフォルトの名無しさん (ワッチョイ d784-2hKW)
2022/02/10(木) 00:27:38.90ID:WTxAQl/h0
>>981
UnicodeのTSVで出せばいい
988デフォルトの名無しさん (ワッチョイ 1fbd-Bldr)
2022/02/10(木) 04:11:44.10ID:Bfsj9FyQ0
会社で新しくC++MFCからC#に移行しそうなのですが、結構違いますか?
989デフォルトの名無しさん (アウアウウー Sa9b-v6+h)
2022/02/10(木) 04:41:11.49ID:8GgErYEHa
むしろ共通点はほぼないと思いますよ。
UIにWindows Formを使うならWin32の知識が無駄にはならない程度
990デフォルトの名無しさん (スフッ Sdbf-2hKW)
2022/02/10(木) 04:51:25.43ID:nU5m13/Jd
>>988
MFCのDocument/View構造とWPFのMVVMは考え方がほんのちょっと似てるかも
991デフォルトの名無しさん (ワッチョイ 1fbd-Bldr)
2022/02/10(木) 05:16:17.86ID:Bfsj9FyQ0
ありがとうございます
やっぱり違うところもそれなりにあるんですね
本格以降の前に勉強しないと…
992デフォルトの名無しさん (ワッチョイ ffb0-w6GL)
2022/02/10(木) 09:10:07.63ID:0HR3aWgk0
フレームワークのバージョンに右往左往
993デフォルトの名無しさん (アウアウウー Sa9b-nGJX)
2022/02/10(木) 18:20:37.30ID:hh6EUNrwa
Javaと同じ人が作っただけあって
Javaのが似てると思います
994デフォルトの名無しさん (ワッチョイ 9f7c-wadS)
2022/02/10(木) 19:31:29.55ID:G6G2NR290
MFCとC#のWPFなら基本的にまるで別物だよなぁ
WinFormsも別物だけど、C++よりはC#の方が簡単だと思うけど
ラムダ式やらその辺の書き方に付いていけない奴は結構いるらしい
staticおじさんにはC#は辛いかも知れないw
995デフォルトの名無しさん (アウアウウー Sa9b-v6+h)
2022/02/10(木) 19:33:58.19ID:vwYTLp7Ia
JAVAじゃなくてDelphiでしょw
JAVAやC++はむしろ反面教師として否定的継承をしてるのがC#
996デフォルトの名無しさん (アウアウウー Sa9b-v6+h)
2022/02/10(木) 19:37:23.72ID:vwYTLp7Ia
MFCのカオスに耐えられた人がC#は理解できないとかないと思うよw
ラムダ式なんてむしろC++やってた人には馴染みやすいでしょ
997デフォルトの名無しさん (アウアウウー Sa9b-icCT)
2022/02/10(木) 19:57:50.08ID:y+gM+mODa
mfcを初めて触ったときはなんて簡単にwindowsアプリが作れるんだって感動したものだけど、c#はそれより数十倍簡単だからな
mfcとc#はまったく違うけど、mfcできるなら一瞬で使えるようになるよ
998デフォルトの名無しさん (ワッチョイ 175f-pW9B)
2022/02/10(木) 21:50:11.16ID:Wm6mdcT10
MFC今も現役なの?
999デフォルトの名無しさん (ワッチョイ d784-2hKW)
2022/02/10(木) 22:05:49.13ID:WTxAQl/h0
今のC++はラムダ式も型推論もあるもんね
1000デフォルトの名無しさん (ワッチョイ 17d2-EiVI)
2022/02/10(木) 22:41:54.23ID:VfTItntg0
拡張子がcppってだけのC言語使い方だときついでしょ
10011001
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 58日 23時間 48分 33秒
10021002
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

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



lud20250218091712ca
このスレへの固定リンク: http://5chb.net/r/tech/1639403601/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「ふらっと C#,C♯,C#(初心者用) Part153 ->画像>3枚 」を見た人も見ています:
ふらっと C#,C♯,C#(初心者用) Part160
ふらっと C#,C♯,C#(初心者用) Part154
ふらっと C#,C♯,C#(初心者用) Part148
ふらっと C#,C♯,C#(初心者用) Part137
【初心者用】虹ヶ咲学園入門スレ
PC版限定【仁王/Nioh】初心者用
PC版限定【仁王/Nioh】初心者用
くだすれFORTRAN(超初心者用)その6
くだすれFORTRAN(超初心者用)その7
【初心者用】マイニング情報交換スレ30
【初心者用】マイニング情報交換スレ36
Webサイト制作初心者用質問スレ part253
【第五人格】IdentityV 初心者用スレ 22
Webサイト制作初心者用質問スレ part251
【第五人格】IdentityV 初心者用スレ 18
【まず1嫁】くだすれPython(超初心者用) その56
【初心者用】パズル&ドラゴンズ【パズドラ】★127
レイプ初心者だけど、これだけは絶対やっとけっていうことある?
世界情勢を占うマンデン占星術20(研究者用)
詰めチェス部(初心者歓迎)
C#でゲームを開発したいんだけど、、、(初心者)
27: Google AdSense 超初心者スレ35(熟女装師vs薔薇野郎)
/ ´,_ゝ`\初心者のための富士山登山入門131m(ワッチョイなし)
初心者△チビー
初心者Vtuber
carver初心者
精神障害者用金融スレ
VJ初心者あつまれー
ほぼ初心者だが…
自転車初心者です
SF初心者からの質問
麻雀初心者あるある
5ちゃんねる初心者です
[級位者用] 棋譜診断スレ
精神障害者用ゲットー必要論
美容整形 初心者
鬼初心者から一個質問
★完全初心者です★
TS初心者勉強会 30頁目
絵初心者が頑張るスレ
将棋ウォーズ級位者用 88手目
菜食主義初心者スレ 2
ダイエット初心者
浪人初心者 Part2
将棋クエスト 級位者用スレ 10
BL/YT 初心者質問用スレ
初心者の俺に教えてくれ
ダテめがね初心者のスレ
初心者登山相談所123
初心者特定班つくらない?
作曲初心者のためのスレ23
ギター初心者応援スレ
初心者登山相談所90
初心者 質問コーナー
暗黙の了解とかを初心者に教えて
【患者用】双極性障害 249【コテ禁・総合】
FX初心者スレ 323pips
FX初心者スレ 235pips
FX初心者スレ 231pips
パソコン初心者だけど
冬山初心者スレ その73
FX初心者スレ 244pips
FX初心者スレ Part96
FX初心者スレ 226pips
FX初心者スレ Part85
23:43:57 up 50 days, 47 min, 0 users, load average: 7.97, 8.92, 9.09

in 0.82040190696716 sec @0.82040190696716@0b7 on 030413