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

ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚


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

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

1デフォルトの名無しさん (ワッチョイ 0f2c-S5yT)
2021/05/16(日) 10:45:59.00ID:8qTwOc620
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part150
http://2chb.net/r/tech/1616471904/
■関連スレ
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/
・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デフォルトの名無しさん (ワッチョイ bf93-f+4d)
2021/05/16(日) 11:08:45.40ID:U6V1THSr0
関連スレ
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
http://2chb.net/r/tech/1469538912/
3デフォルトの名無しさん (JP 0H9d-gSvD)
2021/05/16(日) 11:58:58.94ID:FgZG9punH
前スレ988ですみなさん相手にしてくださってありがとうございます
わかりやすく教えてくださって感謝しております
またしっくりこないなどと雑な表現をしてしまい申し訳ありませんでした
複数のテキスト上でそのようなコードを確認しておりましたので順序が逆では?と私が考えた書き順でも動作に問題はないのだろうとは理解しておりました
ただあくまでコードの処理が基本的に上から下への流れであるならばそのような書き方はハードウェアなりコンパイラなりに無駄な負担をかけているのでは?との思いもあり質問させていただきました
4デフォルトの名無しさん (ワッチョイ 87b0-TVsO)
2021/05/16(日) 21:49:06.24ID:4Yy6RF+p0
ちょっとお尋ねします
VisualStudio2017の無償版でFormアプリ作って楽しんでますが
昔作って普通に動作していたexeが
1年ほど前のWin10のアプデ以降、動作が重く計算の出力も遅くなったような気がします
これはWin10のアプデによってバージョンが対応しなくなったのでしょうか?
このような場合、何をチェックすればいいのでしょうか?
5デフォルトの名無しさん (ワッチョイ 03da-as9D)
2021/05/16(日) 21:56:47.00ID:w/v5e2LF0
intel CPUの脆弱性対応で計算能力落ちたんじゃね。
アムドのCPU載ったWindowsで試してみるとか

20H2だったらKB4601382適用でパフォーマンスアップするとかしないとか
6デフォルトの名無しさん (ワッチョイ bf93-f+4d)
2021/05/16(日) 22:51:22.50ID:U6V1THSr0
アムド…?
7デフォルトの名無しさん (ワッチョイ bf93-f+4d)
2021/05/16(日) 22:52:08.13ID:U6V1THSr0
鎧化?
8デフォルトの名無しさん (アウアウエー Sa93-xIYq)
2021/05/16(日) 22:53:32.36ID:2iobi2pZa
ヒュンケル?
9デフォルトの名無しさん (ワッチョイ 9114-cp4x)
2021/05/17(月) 03:54:28.62ID:HtlvZdi50
ユンケル
10デフォルトの名無しさん (ワッチョイ 9114-cp4x)
2021/05/17(月) 03:54:53.89ID:HtlvZdi50
皇帝
11デフォルトの名無しさん (ワッチョイ c7e6-JFKK)
2021/05/17(月) 23:47:33.48ID:243nH9hZ0
ウボァー
12デフォルトの名無しさん (ワッチョイ 9f33-SQHu)
2021/05/18(火) 01:57:21.28ID:eaycUWDk0
>>4
そんな事くらいで対応しなくなったら、世の中のソフトは大混乱になってる。
ログやデータが増えて計算量が増えたとか、ディスクアクセスが遅くなってるとかじゃないの?
明らかに遅いのならループ処理中に例外が出てるとかかもしれない。
調査方法はたくさんありますが、まずはタスクマネージャーで確認してみるのが良いと思います。
13デフォルトの名無しさん (スッップ Sd2f-cwNg)
2021/05/18(火) 13:55:59.54ID:awNVHcWQd
質問です。
Form1と2とクラスが1つあって、クラスにForm1と2のTextBox等をを使用してファイル書込み、作成、削除、追加等のコード書きました。
Form1表示→入力→Form2表示→入力→閉じるまで間に何度かクラスを使用したい。
フォーム1のみならthisを渡して、TextBoxをPublicにしてやればいいのはネット見て分かったのですが、Form2も渡すとなると、Form2に辿り着く前にクラス使用する時はどうしたらいいですか?
14デフォルトの名無しさん (ワッチョイ fb62-EUHA)
2021/05/18(火) 15:50:09.78ID:/vNHi2oE0
>>13
何をしたいのかよく分からないけど、Formのコントローラーを公開するのはよくない
Form1とForm2で共通で使いたいクラスあるなら、呼び出し元で定義してそれぞれのFormに投げるじゃダメなの?

class Form1{
private クラス _クラス;
Form1(クラス c){ _クラス = c; }
}

class Form2{
private クラス _クラス;
Form2(クラス c){ _クラス = c; }
}

class クラス{}
15デフォルトの名無しさん (ワッチョイ 1fb0-sort)
2021/05/18(火) 20:29:56.80ID:YLn0XufY0
しっかりと新しい命名規則つかってるw
16デフォルトの名無しさん (ワッチョイ dbbd-cwNg)
2021/05/18(火) 21:13:32.38ID:0pXo6EN80
VBAのコードをVisual Studioでコツコツ書いて勉強してます。
@VBAではフォームに書き込んだ内容をエクセルシートの印刷用のシート(前もって作成済)へ転記して印刷という内容なんですが、エクセルでなくやる方法ってありますか?※転記内容は文字列や数字のみです。

AVBAでいう標準モジュール≒クラス?

BGetSet?ネットでもよく使いどころが分からないのですが、VBAで例えるならどんな感じですか?
17デフォルトの名無しさん (アウアウウー Sa1d-gSvD)
2021/05/18(火) 22:47:16.69ID:VzWE2qZQa
これ煽りとかじゃなくて真面目な話だけど、他人に用件を過不足なく伝える能力って
プログラミングスキルより何百倍も重要だよw

ちっとは「この書き方で自分の言いたいことを理解してもらえるだろうか?」って視点を持ってほしい

>>13
他の人も書いてるけど基本的にUI(Form)の参照を「クラス」に握らせるのはNG。
なんでダメなのか今は理解できないかもしれないがそのうち自然と分かってくる。
逆、つまりFormが「クラス」の参照を握る方向で

>>16
@C#はオフィス製品じゃないんで少なくとも標準では
お手軽に同じことを実現する方法は用意されてない

AVBAにもクラスモジュールはあるよ。もちろん完全に同じ物ではないけど

Bプロパティのことを言ってるならVBAにもプロパティはある。もちろん(以下略
18デフォルトの名無しさん (ブーイモ MM5b-M3SR)
2021/05/18(火) 23:13:37.98ID:zfq3U+DUM
VBAってスレ違いくね?
19デフォルトの名無しさん (ブーイモ MM5b-M3SR)
2021/05/18(火) 23:14:49.24ID:zfq3U+DUM
ああごめん。VBAのをC#に移植してるってことか。脊髄反射してもた。スンマソ
20デフォルトの名無しさん (ワッチョイ aba7-4lYq)
2021/05/18(火) 23:35:28.59ID:Txr9X7xM0
>>17
そんなの書いてみてレスもらわなきゃわかるわけないじゃん
無駄なアドバイスしてるの気が付かないかな?
何度も書いてみて人から反応をもらって鍛える能力でしょそれ
21デフォルトの名無しさん (ワッチョイ 8902-aUbQ)
2021/05/18(火) 23:39:41.70ID:z9H7NlJs0
>視点を持ってほしい
こう言うのってとても大切なことだと思うけれど。
22デフォルトの名無しさん (ワッチョイ 9f33-SQHu)
2021/05/18(火) 23:47:06.61ID:eaycUWDk0
17さんと一緒に仕事したい。
23デフォルトの名無しさん (ワッチョイ 3fac-v+G2)
2021/05/19(水) 00:44:36.75ID:KZ+rGapc0
あれだな、自分がちゃんと理解して回答してるか、そういうのを確認する視点も持たないとな
24デフォルトの名無しさん (スフッ Sdd7-Ratl)
2021/05/19(水) 07:27:19.64ID:yWkX4iecd
>>16
ExcelVBAのことがよく判らなくて、答えづらい。っていうか、その変換にストレスが発生してない?
お勉強なら、VBAのことは忘れてゼロから始めた方が良いんじゃないかと。
25デフォルトの名無しさん (ワッチョイ c7e6-JFKK)
2021/05/19(水) 07:34:53.84ID:AMEX05Gv0
単に印刷をしたいだけだろ
ギョーカイでは印刷用コンポーネント買ってこいで一蹴される案件
26デフォルトの名無しさん (ブーイモ MM5b-M3SR)
2021/05/19(水) 08:48:51.66ID:dvesxogvM
印刷コンポーネントって標準で付いてないっけ?
27デフォルトの名無しさん (スッップ Sd2f-cwNg)
2021/05/19(水) 09:40:36.03ID:TmTcYE5Zd
>>14>>17 ありがとうございます。説明たらずですみません。ネットみてこんな感じで作成しましたが、こういう作りはよろしくないってことですよね?クラスにxmlファイル関連の処理をまとめたいなと思ったのですが...

{}等々は省略します。
class ClsXml
Public Frm1 frm1
Public Frm2 frm2

Public ClsXml(Frm1 frm_1,Frm2 frm_2)
  frm1=frm_1
  frm2=frm_2

 Public void aaa
frm1のコンコロール使用

 Public void bbb
frm2のコントロール使用
 
 Public void ccc
frm1とfrm2のコンコロール使用

※Frm1
ClsXml clsXml = new ClsXml clsXml(this,null)

※Frm2
ClsXml clsXml = new ClsXml clsXml(Frm1,This)
28デフォルトの名無しさん (ワッチョイ 03da-as9D)
2021/05/19(水) 10:02:03.60ID:+JHqwFd70
データ保持クラスを1つ作って、それを受け渡しする
29デフォルトの名無しさん (ワッチョイ 2b7b-gSvD)
2021/05/19(水) 10:08:02.04ID:C6qGRFkz0
C#のプログラミング本を読んでいるのですけど
C#という言語はnewしても失敗することはないのでしょうか
newの戻り値を確認したり
try catchで囲んだりてませんよね
Designer.csをみてもnewだけしてて戻り値を確認していません

識者の方教えてください。よろしくお願いします。
30デフォルトの名無しさん (ラクッペペ MM17-JFKK)
2021/05/19(水) 10:32:55.61ID:TDEniZJiM
>>26
説明するのが面倒だから一蹴するんだよ
真に受けて買うのも別に悪くない選択
31デフォルトの名無しさん (ラクッペペ MM17-JFKK)
2021/05/19(水) 10:37:43.80ID:TDEniZJiM
>>29
catchしたところで他に代替方法がないんだから
諦めてそこで試合終了ですよ
32デフォルトの名無しさん (ワッチョイ a12d-u+PU)
2021/05/19(水) 10:42:01.36ID:RX1B9Flf0
>>29
使い方を間違えていなければコンストラクタで例外が発生しないクラスが多いので
基本的にはコンストラクで例外が発生する場合はバグであり使い方を修正する。
正しい使い方でもコンストラクタで例外が発生する場合があるクラスについては例外を捕捉してフォローする。
33デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2021/05/19(水) 11:56:33.37ID:u9Tr9lyP0
>>27
よくないね

依存性の方向は基本的に「個別処理 ―> 共通処理」
個別処理が共通処理に依存するのはいいが逆はよくない
変更に対して弱くなるから

各フォームが個別処理でXMLの読み書きが共通処理なので
フォームがXMLクラスに依存するのはよくて
XMLクラスが各フォームに依存するのはよくないということ
3429 (ワッチョイ 2b7b-gSvD)
2021/05/19(水) 11:59:42.08ID:C6qGRFkz0
>>31
>>32
回答ありがとうございます
古い人間なもので常に以下のようなコードと思い込んでいました

p = new hogeCalss();
if (!p) {
print("失敗しました");
exit();
}

---------------------------------
try {
p = new hogeClass();
}
catch(exception) {
print("失敗しました");
exit();
}
35デフォルトの名無しさん (アウアウエー Sa93-PbQN)
2021/05/19(水) 12:09:28.47ID:5VIb1gQWa
>>27
Xmlの処理をするクラスなのになんでFormを使うのか?
ということに疑問を持つべき

>>29
コンストラクタでエラーが発生したら例外を投げて
例外を受けてどう処理するかはその場次第で様々なので
無視して上位に任せるのもその場でハンドリングするのも間違いではない
36デフォルトの名無しさん (ワッチョイ a12d-u+PU)
2021/05/19(水) 12:15:53.32ID:RX1B9Flf0
>>34
例外が発生した時に簡単なメッセージを表示して終了するだけなら
個別の例外処理はせずにApplication.ThreadExceptionイベントや
UnhandledExceptionイベントを使うといい
37デフォルトの名無しさん (ワッチョイ f384-gIXh)
2021/05/19(水) 18:35:07.68ID:kJekIUOX0
>>27
何となく何がおかしいか分かったかも
Formのプロパティを外からいじるのいくないとかはおいといて言っていることを
無理やり形にすると多分こんな感じかな
class control
 ClsXml cx=new ClsXml
 cx.aaa
 cx.bbb
 cx.ccc

class ClsXml
Public ClsXml()
 Form frm1=new Form
 From frm2=new From

 Public void aaa
  form1 progress

 public  void bbb
  form2 progress

 public void ccc
  form1&2 progress

Formを独自拡張する必要があるならば、ぞれぞれのFormクラスを作る必要があるけど
そういうことじゃないのではないかと
元の書き方だと違うインスタンスが同じインスタンスのように扱われているのでForm1では
Form1側の操作しか出来ないと思うよ
あとFormを制御する人がいないのでプログラムとして成立しないかな
3829 (ワッチョイ 2b7b-gSvD)
2021/05/19(水) 19:01:35.29ID:C6qGRFkz0
>>36
Application.ThreadExceptionイベント
UnhandledExceptionイベント
ググってみます
ありがとうございました
39デフォルトの名無しさん (スップ Sdcf-dNWz)
2021/05/20(木) 17:15:54.44ID:bilBOnqPd
質問です。
xamarinとC#でAndroidアプリを作成していて、ボタン押下でAndroidからPCの指定の共有サーバーにWi-Fi経由でSMB通信をしてファイル転送する機能があるのですが、それをUSB経由で接続したPCの指定のフォルダに転送する機能に変更したいと思っています。調べてみても方法が分からず、どうやってやればいいのかお教えいただけないでしょうか?
40デフォルトの名無しさん (ワッチョイ 5333-Qmtv)
2021/05/20(木) 17:25:36.42ID:h+nvuHPl0
C#とか関係なく、システム的にAndroid側からPCの中って参照できないんじゃね?
41デフォルトの名無しさん (ワッチョイ 3dad-drH/)
2021/05/20(木) 17:53:35.03ID:1kvRnQEZ0
PC側がホストになるから、PC基点じゃないと何も出来ないよ。
42デフォルトの名無しさん (スップ Sdcf-dNWz)
2021/05/20(木) 19:20:45.57ID:bilBOnqPd
>>40
>>41
回答ありがとうございます。
SMB通信の前はWindows PhoneからPCの指定のフォルダへUSB経由でFTP通信をして指定したフォルダに転送していたのですが、これもandroidだとできない感じでしょうか?
43デフォルトの名無しさん (アウアウウー Sac7-7S+s)
2021/05/21(金) 00:18:51.38ID:uT4ElnGZa
>>42
詳しくないので適当に聞いてね。
結局PC側からUSB接続のアンドロイトが何に見えているかが肝だよねたぶん。

ただのマスストレージに見えてるなら他の人が書いてるように
Android側からPCに対しては何もできない(PC側のアプリでAndroidの
ストレージからファイルを持ってくることは可能なはず)

Androidにそんな器用なことができるのか知らないけど、仮にNICのふりができるなら
理屈上はAndroid側からPCの共有フォルダにアクセスは可能なはずだと思うけど
かなりハードル高そうだよね
44デフォルトの名無しさん (ワッチョイ 0e18-ybya)
2021/05/21(金) 00:35:25.73ID:iGmMnIp90
>>43
ありがとうございます。
とりあえずバッチかアプリでPCからUSB経由でandroidの指定フォルダのファイルをPCの指定フォルダに転送できるか試してみます。
45デフォルトの名無しさん (ワッチョイ cebb-T0p4)
2021/05/21(金) 14:30:29.31ID:i5DLTQw90
Visual StudioでGitを使う場合、Gitによる管理が不要なファイルのために自動で.gitignoreを作ってくれると思います
.NET 5のコマンドラインから同じようなことをするにはどうすれば良いのでしょうか?(手書きなのでしょうか?)
46デフォルトの名無しさん (ワッチョイ 970c-e3Lj)
2021/05/21(金) 14:41:38.94ID:mSvK+x2g0
dotnet new gitignore
47デフォルトの名無しさん (ワッチョイ cebb-T0p4)
2021/05/21(金) 15:07:41.48ID:i5DLTQw90
>>46
全然知らなかったよ、ありがとう!
48デフォルトの名無しさん (スップ Sd5a-dHWj)
2021/05/21(金) 18:18:47.45ID:r4fhOYFqd
フォームが複数あって入力された文字列やチェックBoxの状態記憶して、フォームが閉じて再び開いた時に同じ状態に戻したいんですがどんな方法がありますか?
49デフォルトの名無しさん (ラクッペペ MMb6-jLf6)
2021/05/21(金) 18:38:24.30ID:P35wDmNWM
フォームのコントロールのプロパティを取得したり設定したりします
50デフォルトの名無しさん (アウアウウー Sac7-7S+s)
2021/05/21(金) 18:39:34.68ID:ydARslbAa
>>48
単純にそれを実現するだけならアプリケーション設定を使えばできる。
https://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html

ただ、それがあなたのアプリの要件に合ってるかどうかは分からない。
まともな設計思想で作ってたらほとんどの場合は合わない思うw
51デフォルトの名無しさん (ワッチョイ d733-osNG)
2021/05/21(金) 18:55:24.86ID:b2hwhOft0
>>48
visibleをfalseにする
52デフォルトの名無しさん (ワッチョイ 5ede-nRUw)
2021/05/21(金) 20:55:20.39ID:LYjrJpHE0
>>51
めっちゃきもちわるいわあ
53デフォルトの名無しさん (ワッチョイ 5b36-RMa4)
2021/05/22(土) 08:57:11.87ID:hnUmAMvp0
Winform(.net 4.8)でentity frameworkにてクラス内の値を変換したいのですがどのようにするのでしょうか
public class StringValue
{
public StringValue(string s) { Value = s; }
public string Value { get; set; }
}
モデル内
public class Sample
{
[NotMapped]
public StringValue dummy { get; set; }
public string value { get => dummy.Value; private set => dummy = new StringValue(value); }
}
今は上記のような感じでStringValueをvalueに見立ててデータベース上でnvarchar:valueとして扱っています
コード上はクラスで扱いつつデータベースでは別の型として扱うという事をしたいです
EFCoreではHasConversionでできそうですがEFではそう言ったのは無いのでしょうか?
54デフォルトの名無しさん (ワッチョイ 5b36-RMa4)
2021/05/22(土) 09:46:32.75ID:hnUmAMvp0
>>53なんか解決かもです
出かけるので確認するのは後になりますが駄目ならまた書き込みます
ありがとうございます
55デフォルトの名無しさん (ワッチョイ 9ae4-aEtu)
2021/05/23(日) 21:45:22.13ID:y8mHkt/k0
オブジェクト初期化子とコンストラクタは何が違うのでしょうか?
見た目はインスタンス作成時に()を付与するかどうかの違いがありますが、やってる事は同じに見えます…
別物として扱っているのは理由があるからなのだと思いますがイメージが掴めません
初歩的な質問ですみませんが教えてください
56デフォルトの名無しさん (アウアウウー Sac7-7S+s)
2021/05/23(日) 21:58:29.07ID:pYmK4nAPa
前スレで同じこと聞いてない?w
http://2chb.net/r/tech/1616471904/327-
57デフォルトの名無しさん (アウアウエー Sa52-hK5l)
2021/05/23(日) 22:02:16.32ID:RNjOm9Rva
コンストラクタを実行したあと属性に代入するのが初期化子
コンストラクタにはインスタンス化時に絶対に必要な処理を書く
初期化子にはどっちでもいいオプションを書く
58デフォルトの名無しさん (スップ Sdba-dHWj)
2021/05/24(月) 18:26:23.84ID:x4lG9/QZd
>>27
私感じでやっちゃってますね。みんなさんが言うようにclassでformを使うのは良くないのは言われれば分かりますが、Formを使わないやり方がPublic static使う方法しか分からないし、ネット検索かけてもformを渡してるやり方ばかり出てきますね。

Public static string stA
Public static string stB

Public void AddFile
〇〇.add stA + stB

先生がネット故に...みなさんはどこで学ぶんですか?
59デフォルトの名無しさん (ワッチョイ 4ea7-8D+f)
2021/05/24(月) 18:51:16.14ID:hM0efzfu0
>>58
会社ソースとかMSDNとか
画面とデータを分けるやり方はそういう構造を要求する
フレームワークやライブラリが多かったってだけかも
60デフォルトの名無しさん (ワッチョイ f662-WLSO)
2021/05/24(月) 19:25:01.66ID:f+6lGWLS0
>>58
ネットで調べるなら、GUIアーキテクチャ、MVC、MVVM、関心の分離あたりで調べたら?
ネットで十分に学べる
61デフォルトの名無しさん (ワッチョイ d733-osNG)
2021/05/24(月) 19:49:24.96ID:NzBI28bl0
この短い数行のコード見ただけで相当ヤバいのが分かる。
これは関わっちゃいけないやつだ。
62デフォルトの名無しさん (ワッチョイ 0eda-Eq2K)
2021/05/24(月) 20:41:17.35ID:i2eTwvSN0
葦原将軍の生まれ変わりと見た(^_^)ノ
63デフォルトの名無しさん (ワッチョイ 1b73-RI+G)
2021/05/25(火) 06:29:00.67ID:PTaC3ctB0
LangVersionか何か判定する方法ある?
実際はLangVersionを判定したいわけじゃなく、
C#が「interfaceのデフォルトが使えるバージョン」ならデフォルト実装を用意したものを、
そうでなければデフォルト実装はなし、
というのを#ifプリプロセッサな何かで切り替えたいんだが。
64デフォルトの名無しさん (ワッチョイ 4e2c-dnFn)
2021/05/25(火) 11:32:44.90ID:MwLEufUx0
どうせ.NET Frameworkなら最新のC#使ってもデフォルト実装は使えないんだから
言語のバージョンじゃなくて.NETのバージョンで分けたほうが良くない?
65デフォルトの名無しさん (アウアウウー Sac7-7S+s)
2021/05/25(火) 13:30:21.38ID:FpV6PuqQa
あればここに載せてるだろうからないんでしょうね
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/preprocessor-directives

まああってもC#のプリプロセッサのシンボルは定義済みかどうかしか評価できないから
既述が大変そうだよね

結局VS使うならプロジェクトのプロパティーで自分でシンボル定義してソリューション構成を
手動で切り替えるしかないんじゃないのかな
66デフォルトの名無しさん (ワッチョイ 1b73-RI+G)
2021/05/25(火) 14:32:42.00ID:PTaC3ctB0
#if (NET or NETCOREAPP3_1)

でとりあえず要件満たせそうなので
これでいきます。
67デフォルトの名無しさん (ワッチョイ dfb0-5BAZ)
2021/05/26(水) 09:59:35.98ID:qJ3DTor20
最近VisualStudio2017から2019に変えたんだけど
WindowsAPIは使えなくなったの?
2017で書いたプロジェクトなら2019で読み込んで動くけど
直接2019から同じこコード書き始めると「現在のコンテキストには名前が見つかりません」
ってでて波線がで警告表示される
これは2019から始まったターゲットフレームワークとかいう奴が影響してるのか?
どうしたら以前のようにWindowsAPIが使えますか?
68デフォルトの名無しさん (ワッチョイ 4e2c-dnFn)
2021/05/26(水) 10:14:15.14ID:FSQy2KRV0
普通にやれば普通に今まで通り動くので
何かが普通にできてないんだろう としか言えん

Windows API呼び出すならTargetFrameworkはnet5-windowsにすべきではあるけど
別にそれは必要条件ではない
単にnet5でも問題ない(Windows以外だと実行時例外になるだけ)
69デフォルトの名無しさん (ワッチョイ dfb0-5BAZ)
2021/05/26(水) 10:49:28.94ID:qJ3DTor20
>>68
resありがとうございます
.NET5で試してもできませんでした
ただし「usinディレクティブか、アセンブリの参照が違うのでは?」
と具体的なメッセージに変わりましたから、
何か探しに行ってくれてるようですね
これは単純にIDEとしてのVS2019のバグということでしょうかね?
70デフォルトの名無しさん (ワッチョイ 4e2c-dnFn)
2021/05/26(水) 10:51:53.53ID:FSQy2KRV0
いや単にあなたのコードの記述ミスということだと思うよ
71デフォルトの名無しさん (ワッチョイ 7f42-4P7j)
2021/05/26(水) 11:07:29.14ID:SkyFdszB0
もしかするとDLL参照が黄色いマーク付いてるんじゃね?
72デフォルトの名無しさん (ワッチョイ f6da-p4ls)
2021/05/26(水) 11:19:52.23ID:cScpWA/k0
昨日今日使い始めたやつがツールのバグを疑う世界
73デフォルトの名無しさん (エムゾネ FFba-4Cki)
2021/05/26(水) 11:25:04.91ID:2/BE6bBSF
ソースと環境を晒すべき
74デフォルトの名無しさん (ワッチョイ fa4b-f9J/)
2021/05/26(水) 12:15:50.54ID:Q8/sORJB0
ブラウザからSQL文とパラメータを受け取って、PostgreSQLのテーブルを検索し、結果を返すWebAPIを作成しています。
PostgreSQLとのやり取りはDapperを使っており、パラメータは匿名型で記述しています。

ブラウザからSQL文とパラメータを送る際にjson形式でシリアライズしているのですが、これをAPI側でデシリアライズを行うと匿名型が元と違う形になってしまいます。

var foo = new { Key1 = 1, Key2 = 2};
// foo = { Key1 = 1, Key2 = 2 }

var strJson = JsonSerializer.Serialize(foo);
// strJson = "{\"Key1\":1,\"Key2\":2}"

var bar = JsonSerializer.Deserialize<object>(strJson);
// bar = ValueKind = Object : "{"Key1":1,"Key2":2}"

デシリアライズした時に、シリアライズ前と同じ状態にすることは出来ないのでしょうか。
75デフォルトの名無しさん (ワッチョイ f6da-p4ls)
2021/05/26(水) 12:45:20.58ID:cScpWA/k0
DataContractJsonSerializerの代わりにJavaScriptSerializerを使う
76デフォルトの名無しさん (ワッチョイ 4e2c-dnFn)
2021/05/26(水) 13:08:02.39ID:FSQy2KRV0
Json.NETなら.Deserialize<Dictionary<string, object>>(...)にすればDapperのパラメータオブジェクトに使える
77デフォルトの名無しさん (ワッチョイ fa4b-f9J/)
2021/05/26(水) 14:04:52.01ID:Q8/sORJB0
>>75,76
Json.NET で出来ました。ありがとうございます。
78デフォルトの名無しさん (ワッチョイ 37b0-5zR4)
2021/05/26(水) 17:06:43.67ID:vmYXos7Q0
処理を非同期にするかどうかの切り分けってどうすればいいん?
HTTPリクエストとか、I/Oとか、DB書き込みくらいでいいの?
79デフォルトの名無しさん (ワッチョイ f6da-p4ls)
2021/05/26(水) 17:56:01.15ID:cScpWA/k0
野生の勘
80デフォルトの名無しさん (ワッチョイ 4e2c-dnFn)
2021/05/26(水) 18:02:02.54ID:FSQy2KRV0
基本はIOバウンドなら非同期、CPUバウンドなら同期、でいいんじゃないかな
81デフォルトの名無しさん (ワッチョイ 5a01-S/TN)
2021/05/26(水) 18:17:47.51ID:rgCCVIaL0
処理の完了を待たずに他の処理をしたい場合や
UIスレッドをブロックしたくない場合は非同期にする
82デフォルトの名無しさん (ワッチョイ dbde-8D+f)
2021/05/26(水) 18:34:13.84ID:wtKQcQ0P0
非同期にしたら最後
次の処理が次の行とは限らない地獄
83デフォルトの名無しさん (アウアウエー Sa52-LeRE)
2021/05/26(水) 18:41:14.07ID:UtsUe89ga
基本的にまずは全て非同期
これは非同期にする意味ないなと思ったら同期
84デフォルトの名無しさん (ワッチョイ 1b73-RI+G)
2021/05/26(水) 22:04:01.82ID:c9Vxajem0
いや普通基本は同期でヘビーなとこだけ非同期にすべきだよ。
全てのアプリが何もかも全部のステップ非同期なんかにしたら、
全体的にはCPU食うだけでメッチャ重くなる。
85デフォルトの名無しさん (アウアウエー Sa52-LeRE)
2021/05/26(水) 22:41:04.74ID:UtsUe89ga
>>84
だから意味ないところは同期にする
86デフォルトの名無しさん (ワッチョイ 1a2f-5BAZ)
2021/05/26(水) 23:01:29.12ID:W7oYIEbZ0
その、意味があるとかないとかを、どうやって判断するかと聞いてるんじゃないかね
87デフォルトの名無しさん (ワッチョイ 1b73-RI+G)
2021/05/26(水) 23:02:37.43ID:c9Vxajem0
それだとまずは全てasyncで制作したあと、
ああここは意味がないなと、ひとつひとつあたって普通の同期に変えていく作業するわけでしょ。

だって基本まずはすべて非同期といってるわけだから。
88デフォルトの名無しさん (ワッチョイ 7f42-4P7j)
2021/05/26(水) 23:26:44.94ID:SkyFdszB0
時間がかかるのは非同期にしたほうがいいが、短いのは切り替えの分だけ遅くなるかもな
89デフォルトの名無しさん (アウアウエー Sa52-LeRE)
2021/05/27(木) 00:31:55.35ID:4W3Xfkm6a
>>87
書く前にわかるだろ
90デフォルトの名無しさん (アウアウカー Sac3-Plrk)
2021/05/27(木) 00:56:56.72ID:1MRs9mFSa
もうやめとけってw
91デフォルトの名無しさん (ワッチョイ 37b0-5zR4)
2021/05/27(木) 01:59:03.14ID:4CedIZFv0
>>88
全部taskValueで書けば良いんだな!
92デフォルトの名無しさん (ラクッペペ MMb6-9F53)
2021/05/27(木) 08:30:07.04ID:f+HvaIKyM
非同期中に他になにかやりたいことがあれば非同期

ただ待ってるだけなら同期
93デフォルトの名無しさん (アウアウウー Sac7-BYWF)
2021/05/27(木) 08:35:36.75ID:PMifv8cua
基本非同期とか言ってる人は、本当にアプリ組んだことあるのか疑問
94デフォルトの名無しさん (ブーイモ MM26-LeRE)
2021/05/27(木) 09:12:32.37ID:7nNOolzWM
基本は非同期でいいんだよ
どうせデータアクセスやらAPIコールで呼び出し元まで遡って非同期になる
まずは非同期で考えて考えた結果こいつは非同期にする価値がないと気付いたら同期にする
それでおk
例えばドメインクラスなどはすぐに非同期にする価値ねえなと気付く筈なので同期にすればよい

初心者がやりがちなミスは非同期にすべきインターフェースメソッド、デリゲートを同期で定義してしまうことだ
これは同期デフォルト脳の弊害であるがこのミスは後々ボディブローのように効いてくる
まずは非同期で考えてじっくり考えた結果非同期にする価値なしとわかったら同期にする
こうすればゴミのようなインターフェース、デリゲートに苛つかなくて済む
95デフォルトの名無しさん (ワッチョイ 1aad-yMkI)
2021/05/27(木) 11:25:27.22ID:VDO1F2Iy0
基本は非同期だろ
96デフォルトの名無しさん (オッペケ Srbb-MoBc)
2021/05/27(木) 11:45:36.96ID:FpmPCpLLr
アプリかサーバかとか環境の平準リソースとかでも変わるしなあ

完成までに一度でもちゃんと検討しとけばいいと思うわ
97デフォルトの名無しさん (ワッチョイ 275f-4Cki)
2021/05/27(木) 14:40:09.29ID:U0nLnJgd0
Java は throw が伝染する・・・
C# は async が伝染する・・・
98デフォルトの名無しさん (ワッチョイ f6da-p4ls)
2021/05/27(木) 15:58:32.56ID:59fz6k+L0
async voidで解決
99デフォルトの名無しさん (ワッチョイ 5ede-nRUw)
2021/05/27(木) 20:38:38.25ID:5gyWgj9W0
async使ったことないお
100デフォルトの名無しさん (ワッチョイ 275f-5zR4)
2021/05/27(木) 22:08:31.07ID:P0524FRt0
しばらくお待ちくださいのメッセージは非同期
101デフォルトの名無しさん (ブーイモ MM26-yRoj)
2021/05/27(木) 22:44:17.51ID:GWsz6i+wM
>>99
x async使ったことないお
o async使ったことないよ

日本語は正確に。
102デフォルトの名無しさん (ワッチョイ f954-W1af)
2021/05/28(金) 03:02:26.12ID:ukkv+1yM0
使うのWinFormsだからってナメてたらオーナードローと追加機能まみれで、チャリが戦車になるレベルで原型とどめてないコントロールばっか。
WPFのほうがだいぶ楽だったよ・・・タスケテ・・・
103デフォルトの名無しさん (ワッチョイ 512c-IGeJ)
2021/05/28(金) 04:37:28.38ID:eNCMSwEe0
JavaScript, Node.js は非同期で、例外などが面倒くさい

だから、同期のRuby, Ruby on Rails を使う
104デフォルトの名無しさん (ワッチョイ 5352-OKFq)
2021/05/28(金) 07:07:03.28ID:LkJzbBRc0
>>102
チャリ→チャリオット
原型は完全に残ってるな
105デフォルトの名無しさん (ワッチョイ d1ad-g3z+)
2021/05/28(金) 09:31:52.57ID:6AxbZXMl0
チャリオットの方が古いんだぜ?
106デフォルトの名無しさん (ワッチョイ 0942-6ypv)
2021/05/28(金) 10:05:09.64ID:YP1Y+7z60
名古屋ではケッタマシーンと言う
昭和の頃から
107デフォルトの名無しさん (スップ Sdb3-K2R4)
2021/05/28(金) 18:38:06.39ID:AMiYNwV2d
formで入力→計算→出力てな感じなもの作成してます。
exe起動後一番最初に入力するTextBox1に番号記号を入力します。例A−101など。
それを入力した時から他の人が同一番号記号を使用出来なくなるようにしたいんですがどうすればいいですか?
108デフォルトの名無しさん (ワッチョイ 3978-08Bm)
2021/05/28(金) 19:26:02.56ID:JNHeGsYc0
データベースに文字列を登録して各ユーザーがチェックすればOK
109デフォルトの名無しさん (ワッチョイ abda-eqVy)
2021/05/28(金) 19:29:49.66ID:EVIGfz1i0
他の人は何処に居るの?
110デフォルトの名無しさん (ワッチョイ 5136-xFqk)
2021/05/29(土) 08:53:16.72ID:mnYn/SGN0
データベースからデータグリッドビューに表示させる際の文字列のソートが分かりません
データベース
id(int:主キー,自動採番), code(string:値としては数値で構成"01","02","10"等), name(string)
OrderByとかの使い方が良く分かってないだけだと思うのですがうまくいきません
//登録
Test.SaveChanges();
//登録後、ソートしてコード順で表示したい
Test.DbSetEntity.Where(x => x.id == id).Load();
DGVView.DataSource = DbSetEntity.Local.ToBindingList();

ご教授いただければ幸いです
111デフォルトの名無しさん (ワッチョイ 99b0-4Wjq)
2021/05/30(日) 14:35:56.95ID:borQq+I40
20行程度の1つのメソッドだけポリモーフィズム使って処理させたい&継承するクラスが複数有るとき、
サブクラス毎にファイル別ける? 同じファイルに全部書く?

今までファイル別けてたんだけど、なんか邪魔なのでファイル1個で良い気がしてきた
ただ、そうすると今度はファイル名に悩む
フォルダ作ってそこにファイル別けて全部ぶち込めば良いのかな?
112デフォルトの名無しさん (ブーイモ MM75-WbRb)
2021/05/30(日) 14:53:56.25ID:McAyMcZBM
1メソッドだけの差し替えならデリゲート使えよ
それはともかく、俺は仕事では突っ込まれるのが面倒だから必ず分ける
プライベートなら適当に意味のある単位で纏めることもある
113デフォルトの名無しさん (テテンテンテン MM4b-0MMr)
2021/05/30(日) 15:12:33.91ID:AeBNzYwcM
サブクラスをその継承元クラス内にインナークラスとして定義する前提で同じファイルに書く
仮にそのクラスが肥大化したら「BaseClass.ExtendedClass.cs」って別ファイルにpartialで切り出す
ってのを自分はよくやる

ただしインナークラスをそういう風に使うのは一般的にはやっちゃいけない気もする
114デフォルトの名無しさん (ブーイモ MM75-WbRb)
2021/05/30(日) 15:21:34.04ID:McAyMcZBM
そもそも1メソッドだけなのにあえて多態を使う理由は実装を分散させたいからに尽きるわけで、
結局1ファイルに纏めるんならそれもうswitchでもええやろという気はする
115デフォルトの名無しさん (ワッチョイ dbda-RKyC)
2021/05/30(日) 15:35:09.61ID:4O1ZlwMf0
クソデカclassにすると、newする時間もバカにできない
116デフォルトの名無しさん (アウアウウー Sac5-f5pr)
2021/05/30(日) 15:45:56.38ID:Petj9nTfa
>>111
1ファイルに複数の型があっても全然構わないと思うよ。
Enumにそんな原則誰も適用してないよね?

VSにはクラスビューもあるし必要なら簡単に定義場所に飛べるので
ファイル名にこだわる必要はあまりないと思う。
だから単にベースクラスの名前でもいいと思うけど、気になるなら
「Hogeとその派生クラス」みたいにするだけじゃないの?
117デフォルトの名無しさん (ブーイモ MMab-T0K/)
2021/05/30(日) 16:01:20.36ID:+uKRRzZAM
そうはならんやろ
118デフォルトの名無しさん (ワッチョイ 3978-08Bm)
2021/05/30(日) 16:32:51.89ID:pNxwDlXH0
>>115
それソースある?
119デフォルトの名無しさん (ワッチョイ a193-lO2l)
2021/05/30(日) 17:46:22.08ID:Jq+vr6RQ0
>>111
ボリモーフィズムと継承って単語を並べて使うのが気持ち悪いな
多態性と継承か、ポリモーフィズムとインヘリタンスを使って欲しい
120デフォルトの名無しさん (ワッチョイ 99b0-4Wjq)
2021/05/30(日) 20:33:04.19ID:borQq+I40
>>119
藪からスティック
121デフォルトの名無しさん (ワッチョイ d99c-aH3h)
2021/05/30(日) 22:58:30.65ID:bQ1dCiB60
>>118
newするたびにコードも複製される勘違いしてる知り合いが、似たような事を言ってたなあ
122121 (ワッチョイ d99c-aH3h)
2021/05/30(日) 23:02:02.71ID:bQ1dCiB60
✘ コードも複製される勘違いしてる
○ コードも複製されると勘違いしてる
123デフォルトの名無しさん (ワッチョイ 414f-4Wjq)
2021/05/31(月) 00:13:41.39ID:N0w7o/rO0
でかいクラスってメンバーが多かったりする奴を言ってるのかと思ったけどコードの話なの?
124デフォルトの名無しさん (ワッチョイ 2b63-IOy6)
2021/05/31(月) 00:15:18.85ID:W0rzhAw20
Pentium無印で動かしてるかもしれないだろ
125デフォルトの名無しさん (ワッチョイ 93e4-48kP)
2021/06/01(火) 06:28:16.16ID:jX3vW8oh0
jsonの逆シリアル化について教えてください
以下のコードでローカルのjsonファイルを読み込み、逆シリアル化をしてオブジェクトを得たいと考えています

@var readJsonFile = File.ReadAllText(filePath);

Avar jsonDeserialize =JsonSerializer.Deserialize<List<Food>>(readJsonFile);

public class Food{
public string Name{get;set;}
public int Price{get;set;}
}

しかしAの部分が上手く行きません。
変数readJsonFileには所定のjsonファイルの内容を取得出来ているのですが、jsonDeserializeには値が入ってきません。
具体的にはデバッグで変数の中身を確認すると、jsonファイルに記述している項目数だけ要素は取得していますが、Name:null、Price:0の様にファイルに記載しているName等のデータがありません。
エラーなどもなく、何が原因なのか突き止めることが出来ません…。
初歩的な質問で申し訳ありませんがアドバイス頂きたいです。

長文失礼しました。
126デフォルトの名無しさん (ワッチョイ f101-upCQ)
2021/06/01(火) 06:43:19.75ID:H3fSzkBp0
そのjson上げてもらわないと何も回答できないのでは
127デフォルトの名無しさん (ワッチョイ 93e4-48kP)
2021/06/01(火) 07:00:41.85ID:jX3vW8oh0
>>126
申し訳ありません
jsonファイルには以下の様に記述しています

{
"name": "りんご",
"price":100,
},
{
"name": "みかん",
"price":80,
},
{
"name": "バナナ",
"price":90,
}
128デフォルトの名無しさん (ワッチョイ 2ba7-F9JJ)
2021/06/01(火) 07:15:38.78ID:+vEQR5vy0
>>127
シリアライズは出来てるの?
129デフォルトの名無しさん (ワッチョイ 2ba7-F9JJ)
2021/06/01(火) 07:21:03.13ID:+vEQR5vy0
属性とかなんか色々なくね?
必要ないやつとかもあんの?
https://dev.classmethod.jp/articles/c-sharp-json/
130デフォルトの名無しさん (ワッチョイ 9136-pa/n)
2021/06/01(火) 07:28:17.13ID:T5CL49Lw0
全体を[]で囲って配列にすれば、デシリアライズできるんでないの?
131デフォルトの名無しさん (アウアウクー MM0d-48kP)
2021/06/01(火) 07:54:24.27ID:ILsKj6x4M
>>128
シリアライズは試していません
シリアル化、逆シリアル化はそれぞれ単体で利用出来るものと認識していたのですが、そうではないのでしょうか?


また以下の記事の注釈の箇所を参考にしたのでDataContractJsonSerializerは今回利用していないです
https://docs.microsoft.com/ja-jp/dotnet/api/system.runtime.serialization.json.datacontractjsonserializer
132デフォルトの名無しさん (ワッチョイ 4b7c-Y7ma)
2021/06/01(火) 09:10:03.91ID:9OJVryW40
JSONもC#も(JavaScriptも)CaseSensitive
NameなんてプロパティJSONに含まれてない
DataContractJsonSerializerだとJSONのcamelCaseとC#のPascalCaseをよろしくやってくれる機能はないんだっけ
ならNameとPriceにそれぞれDataMember属性付けて
[DataMember(Name = "name")] public string Name { get; set; }
みたいにする
133デフォルトの名無しさん (ワッチョイ 4b7c-Y7ma)
2021/06/01(火) 09:16:01.04ID:9OJVryW40
あ、System.Text.Json.JsonSerializer使ってるのか
ならDeserializeの第2引数でPropertyNamingPolicyにCamelCase設定したJsonSerializerOptionsを渡せばいい
134デフォルトの名無しさん (アウアウクー MM0d-48kP)
2021/06/01(火) 13:01:10.23ID:ILsKj6x4M
>>133
ありがとうございます
PropertyNamingPolicyを指定すると所望の動作をしてくれました

試しに上記の指定をせず、jsonファイル側の要素をname→Name、price→Priceのように大文字にすると読み込む事も確認出来ました
ただ、ファイル側で合わせ込むのは良いやり方ではなさそうなので教えて頂いた方法を使わせて頂きます

大文字と小文字で挙動が変わるのは想像していませんでした
勉強になりました、ありがとうございます
135デフォルトの名無しさん (ワッチョイ d1ad-g3z+)
2021/06/01(火) 13:48:21.14ID:oPLrhaHk0
いいってことよ。
136デフォルトの名無しさん (ワッチョイ b3bd-K2R4)
2021/06/02(水) 20:02:38.34ID:fQXhEp9r0
form1の中にパネルを貼りそこにformAとformBを追加しました。
追加したformのTextBoxの値ってどう取得するんですか?
137デフォルトの名無しさん (ワッチョイ 2ba7-F9JJ)
2021/06/02(水) 23:11:47.41ID:HCRiwZzS0
>>136
OKボタンを押したときにstring型のpublicメンバ変数にTextBoxの値を入れてCloseメソッドを呼ぶ
呼び出し側のShowDialog的な奴の下でpublicのメンバ変数に入れた値を取得する
138デフォルトの名無しさん (アウアウウー Sac5-f5pr)
2021/06/03(木) 01:34:00.02ID:BJRoM0uaa
>>136
「どう取得するか?」という発想がそもそも間違ってる。
Formから知りたい情報はFormにプロパティとして公開してもらうようにする。
Formというお店の厨房にづけづけ乗り込んで今日のおすすめを
聞き出すようなコードを書いてはいけない。

それとそういう用途には普通はFormじゃなくてUserControlを使う
139デフォルトの名無しさん (ワッチョイ 0bde-+sQd)
2021/06/03(木) 19:27:38.16ID:5o+Zn3rd0
質問なんですが
フォルダを監視したいのですがFileSystemWatcherクラスでCreatedイベントを漏らした時の為に
Timer1_Tickでフォルダを定期的に監視し、差分で新しいファイルをあぶり出したいのですが
これだとリネームした時も、新規ファイルだと誤爆してしまいます

こうゆうときCRCでチェックして同一ファイルだと確認するのが一般的なのでしょか?
140デフォルトの名無しさん (アウアウエー Sa23-T0K/)
2021/06/03(木) 19:42:46.99ID:t//U1Ozza
リネームは削除と追加だよ
141121 (ブーイモ MM05-aH3h)
2021/06/03(木) 20:17:50.85ID:1FWgE7zOM
>>139
CRCより中身比較の方がコスト低くない?
142デフォルトの名無しさん (ワッチョイ 2b10-6ypv)
2021/06/03(木) 20:42:39.32ID:tM/D16b60
FAQっぽいですけど、
pthreadの pthread_cond_* にあたる機能は.netだとどれでしょう?

Mutexは見つけたんですが…。
143デフォルトの名無しさん (ワッチョイ abda-OWrW)
2021/06/03(木) 20:46:48.63ID:FwOpqBj60
https://milestone-of-se.nesuke.com/sv-basic/windows-basic/ntfs-filesystem-structure/
144デフォルトの名無しさん (ワッチョイ 012d-i3vi)
2021/06/03(木) 20:56:09.09ID:C4Iav00n0
>>141
比較元のデータとしてファイルの中身を丸ごとコピーでもするの?
145デフォルトの名無しさん (ワッチョイ 0bde-+sQd)
2021/06/03(木) 21:03:58.18ID:5o+Zn3rd0
>>140
れすさんくすです、ファイルのプロパティみても更新日時が変化するだけで
削除と追加のしっぽをつかまえるのはできませんでした

>>141
れすさんくすです、1個1個のファイルのCRCチェックって確かにやりたくないですね
中身比較って2つのファイル開いてバイナリで比較していくってことでしょか?
146デフォルトの名無しさん (テテンテンテン MM4b-0MMr)
2021/06/03(木) 21:27:04.30ID:qi9W3pS/M
えっと、そもそも>>139の前提の
> FileSystemWatcherクラスでCreatedイベントを漏らした時
って、FileSystemWatcherってOSのファイルシステムの機能で動いてるから
少なくとも現在のWindows版の.NETなら起こらないと思ってたんだけど・・・・
本当に漏れるようなことがあるの?
FileSystemWatcherの使い方が間違ってバグってるとかじゃなくて?
147デフォルトの名無しさん (ワッチョイ d32c-Y7ma)
2021/06/03(木) 21:57:21.53ID:YfnwbSJk0
>>142
知らんけどAutoResetEvent/ManualResetEventとかそうじゃないの

>>146
少なくともバッファあふれはありうる
現実に起こるかどうかは分からんが
148デフォルトの名無しさん (ワッチョイ 0bde-+sQd)
2021/06/03(木) 22:05:51.02ID:5o+Zn3rd0
>>146
ファイルを同時に10個つくったりとか、他に重いアプリあったりしたら
結構取りこぼします、なんとゆう中途半端なクラスだとおもた
149デフォルトの名無しさん (ワッチョイ d90c-vEq5)
2021/06/03(木) 22:08:44.52ID:Ci0sS5ul0
>>142
状態変数が一対ならMonitor.Wait/Pulse
複数ならMunualResetEventSlimをベースに色々使ってがんばれ
150デフォルトの名無しさん (テテンテンテン MM4b-0MMr)
2021/06/03(木) 23:47:49.94ID:qi9W3pS/M
>>147,148
であればバッファサイズを大きくすれば解決するんじゃ
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.filesystemwatcher.internalbuffersize?view=net-5.0
と思ったら既定値は8KB、最大でも64KBなのかあ
64KBにしてもとりこぼし一杯ということであればFileSystemWatcherでの監視は実用に耐えないってことになりそうだね
151デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/04(金) 00:40:20.91ID:4xQVKZkva
FileSystemWatcherほとんど使ったことないけど、ドキュメントを素直に読めば
イベントのバッファを最大にすれば未処理のイベントが4096を超えない限り
オーバーフローは起こらないはず。

本当に取りこぼしなんて起るの?w
何か使い方間違ってへんか

まあ本当に起こると仮定して、ドキュメントには何も書いてないけど
FileSystemWatcherのイベントはたぶん常に同じスレッドからraiseされてるはずで、
であればイベントハンドラでちんたら重い処理をやると当然FileSystemWatcherの
イベントのキューを溢れさせる原因になりうる。

だったらイベントを処理する側もキューを持って、FileSystemWatcherのCreatedイベントハンドラでは
そのキューにFileSystemEventArgsをぶち込んだらすぐに抜けるようにしたら結構改善するんじゃないだろうか?

いや知らんけど
152デフォルトの名無しさん (ワッチョイ 2dad-tQYP)
2021/06/04(金) 08:37:09.09ID:6Sv89xIa0
俺は割と使うけど、あんまりとりこぼした事は無いな。
まあ確かに、その通りで割り込みだと思ってイベントハンドラで上がってきたら即キューに入れてた。
153デフォルトの名無しさん (ワッチョイ a142-IO17)
2021/06/04(金) 09:18:56.44ID:qGu+M2wT0
UWPのStorageLibraryChangeTrackerてのが凄いんだけどね
通常の監視どころかアプリが止まっている間の変化も記録して
アプリの起動時に通知してもらえる

但し音楽やビデオ、画像のライブラリ限定だから使えるアプリはそれほど多くない
帯に短し襷に長しだわ
154デフォルトの名無しさん (ワッチョイ 36de-a12q)
2021/06/04(金) 10:57:48.59ID:o1VgqeFH0
>>150
さんくすね、バッファサイズを大きくしても根本的な解決にはならないとどこかで見て
やってませんでした、一度MAXまで上げて実験してみます
>>151
レスさんくす、FileSystemWatcherのイベント→PathをListBoxに→Timer1_Tickで処理
みたいにしてます、ファイルサイズ見て比較程度の処理しかしてないから多分重くは、
>>152
なるほど自分のコーディングがまずい可能性
>>153
使い道がピンポイントですね、Windows上にリネームとかのファイル操作の履歴があれば
155デフォルトの名無しさん (ワッチョイ 0a01-UPQK)
2021/06/04(金) 11:29:03.52ID:hlBLv8XD0
ファイルのタイムスタンプ使えばよくない?
リネームでLastWriteTime更新される?

同じコンテンツを2度処理したくないなら
ハッシュを記録しておいて比較すればいいけど
それはタイムスタンプでフィルタするのとは少し意味が違う
156デフォルトの名無しさん (ワッチョイ a142-IO17)
2021/06/04(金) 11:35:13.54ID:qGu+M2wT0
>>154
https://docs.microsoft.com/ja-jp/uwp/api/windows.storage.storagelibrarychangetype?view=winrt-20348
一応リネームも検出可能のようだ。UWPのAPIを,net frameworkで使うことが出来るから、これが動くならいいけどね
一番の問題は情報は可也少ないよ
157デフォルトの名無しさん (ワッチョイ 36de-a12q)
2021/06/04(金) 16:09:29.79ID:o1VgqeFH0
>>155
れすさんくすです、確かにタイムスタンプでよさそうな気がします
LastWriteTimeはリネームで更新されるので、
CreationTimeとSizeを足した値をハッシュがわりにしようかと

>>156
レスサンクスです、変更トラッカーみました
ファイルの変更を受け取ることができて、変更あったらアプリをアクティブ化できる
って結構強力な感じがしますね、やりたいことドンピシャなんですが、ちょと難しすぎます
158デフォルトの名無しさん (ワッチョイ 6d01-M9bI)
2021/06/04(金) 16:54:48.33ID:gpmxKXqk0
>>148
実務で10年以上動いてるFileSystemWatcher使ったサービスあるけど取りこぼしたことは一度もないぞ?

何か使い方が間違ってると思う
159142 (ワッチョイ 8610-IO17)
2021/06/04(金) 19:38:18.51ID:U3xCtKY+0
>>147
>>149

ありがとう御座います!
Monitorがまさに探していた機能でした!
160デフォルトの名無しさん (ワッチョイ 36de-a12q)
2021/06/04(金) 21:00:46.11ID:o1VgqeFH0
>>158
まじでっ、一度コードをシンプルにして実験してみます
ありがとうございます

ちょっとバッファをwatcher.InternalBufferSize = 65536;にしたらちょとマシになった気がします
161デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/04(金) 21:18:38.44ID:THKvF98Aa
あとちょっと気になったのが、SynchronizingObjectを設定してUIスレッドでイベントが起こるようにしてたら
たとえイベントハンドラが軽量であってもUIスレッドで重い処理をやってたらその間は当然イベントは
起動されずバッファーにたまってしまうはず。

まあ今時UIスレッドで重い処理を書いちゃう人がいるとは思えんけど
162デフォルトの名無しさん (ブーイモ MM71-f+mB)
2021/06/05(土) 00:34:20.17ID:UFxnTq6PM
親クラスの型ならば
継承したクラスでも親メソッドが呼ばれるのが気持ち悪いです。

どういう利便性や方針があってそうなっているのでしょうか?
163デフォルトの名無しさん (ワッチョイ 5d33-bFHO)
2021/06/05(土) 00:46:21.91ID:KWhOblPR0
>>162
「オブジェクト指向」とGoogle検索
164デフォルトの名無しさん (ブーイモ MM71-f+mB)
2021/06/05(土) 00:48:56.54ID:UFxnTq6PM
どういう思想に基づいてそうなっているのでしょうか?
Javaならこんなときでも子クラスのメソッドが呼ばれるはず。このほうがしっくりくる。
C#はvirtualとかoverrideと書かねばならぬのも記憶のコストがかかって嫌い。
165デフォルトの名無しさん (ワッチョイ 5d33-bFHO)
2021/06/05(土) 00:57:49.40ID:KWhOblPR0
思想は知らないが、あなたがjavaラーだから気持ち悪いと思うのでは?
親の名前なんだから親が動くでいいんじゃん?
166デフォルトの名無しさん (アウアウウー Sa11-HJXF)
2021/06/05(土) 01:03:39.05ID:0C8ccwu5a
親のモノは子供のモノ
167デフォルトの名無しさん (ワッチョイ 2d8e-Wt59)
2021/06/05(土) 01:11:09.73ID:HEfJq5i50
>>164
単にお前が馬鹿なだけだろ
168デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/05(土) 01:19:41.47ID:u8ssEMona
>>162
ちょっと何言ってるのかよく分からんけど、
オーバーライドと隠蔽(new)を混同してない?

サブクラスでオーバーライドしたメソッドは、そのインスタンスがたとえスーパークラスの変数に
入っていようが無関係にサブクラスで再定義されたメソッドが呼ばれる。

「親メソッドが呼ばれ」たりしない。
それはオーバーライドじゃなくnewした時だけ
169デフォルトの名無しさん (アウアウエー Sab2-0HGZ)
2021/06/05(土) 01:32:23.81ID:pzTWcRwba
>>162
1.最適化のため
2.すべてがvirtualだと親クラスはすべてのメソッドがoverrideされうることを想定しなければならないので設計が困難になる
170デフォルトの名無しさん (ワッチョイ 36de-a12q)
2021/06/05(土) 08:24:34.54ID:5AlvgRB30
>>161
レスサンクスね、SynchronizingObjectは設定してないです
でも、そんな感じで重くなってるかもしれません、
ファイルを管理するクラスに詰め込んでいるせいかもしれません
やることが見えてきました
171デフォルトの名無しさん (ワッチョイ 1abd-t/gr)
2021/06/05(土) 17:58:38.56ID:uwZf1eg30
ListViewで選択→PictureBoxに描画したい。描画する絵は連続した折れ線で曲線はなし。ListViewに転記するのはデータNo等を表示。
PictureBoxに描画するのには座標点などが必要と思うんですが、どんなFileを作り、どんなデータを入れとくのがよろしいですか?
172デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/05(土) 18:53:27.80ID:hz/y86P/a
>>171
>ListViewに転記するのはデータNo等を表示。
ごめん、10回読んだけど何を言ってるのかさっぱり分からないw
173デフォルトの名無しさん (ワッチョイ 1abd-t/gr)
2021/06/05(土) 23:57:44.51ID:uwZf1eg30
>>172
ごめんなさい。
ListViewに描画したいファイル名などの一覧を表示しておいて、選択したそのファイルを読み込んでPictureBoxに描画したいんです。
そこで、描画する為に適したファイルや、どのように座標点など保存すればようでしょうか?
174デフォルトの名無しさん (ワッチョイ 86f2-l3mb)
2021/06/06(日) 08:27:26.80ID:5U5467og0
まず固定のファイル読み込んでPictureBoxに表示するまでを作って、
それからListViewでファイル選べるように拡張してください
結局のところ、何もかもわからないんでしょうけど
175デフォルトの名無しさん (ワッチョイ beda-nujg)
2021/06/06(日) 08:45:40.57ID:yEkluAsv0
ますます何言うてるか分からんが、
自前で座標情報を基に描画するなら、PictureBoxじゃなくてCanvasだろ。

WPFならね。。
176デフォルトの名無しさん (ワッチョイ 9978-i9RX)
2021/06/06(日) 10:37:14.40ID:GbQ7CI8h0
PictureBoxって時点でWPFじゃなくてWinFormsなのは一目瞭然だろ
いきなりCanvasがーって言ってるお前かなりヤバいよ
177デフォルトの名無しさん (ブーイモ MM39-uR6V)
2021/06/06(日) 11:43:50.45ID:C8RwWcM+M
InageListを作る
178デフォルトの名無しさん (ワッチョイ 8663-EDrR)
2021/06/06(日) 13:12:39.13ID:zdsuBAAw0
一回でもPictureBoxに画像を表示してみたことがあるのか怪しい
179デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/06(日) 19:51:37.48ID:TKDfd6fka
>>173
もうちょっと読み手の立場になって質問した方がいいと思うよ。
結局何が聞きたいのかどうもよく分からない。

まとまったデータをお手軽にファイルに保存したり復元したいなら
シリアル化が第一選択。シルアル化の方法はいろいろあるのでググって自分で調べて選択してください。
180デフォルトの名無しさん (ワッチョイ 86a7-hRUY)
2021/06/06(日) 21:31:36.38ID:p6YlScZr0
最終的に何が作りたいのか?を書けば早い
似たようなツールがあるならその部分を出せば早い
181デフォルトの名無しさん (ワッチョイ a142-IO17)
2021/06/06(日) 21:57:10.41ID:bRg8+mhR0
つか、特殊な用途まで全部置き換える必要はないだろ
それが出来ないから.NET5は使えないという方がおかしい

MSはMSIXとストアでメインをやるつもりなんだし
182デフォルトの名無しさん (ワッチョイ a142-IO17)
2021/06/06(日) 21:57:54.57ID:bRg8+mhR0
あ、誤爆だ
ごめん
183デフォルトの名無しさん (ワッチョイ eae4-uGAl)
2021/06/06(日) 23:00:15.42ID:TZLMH0nq0
初めてC#を触ってみようと思っている者です。
Visual Studioインストールして、「実戦で役立つ C#プログラミングのイディオム/定石&パターン」の本に書かれているものを動かそうとしているのですが、エラーが出ます。
(ネットに書かれてるHello,World!は動かせました。)
どのようにしたら本に書かれてるものを動かすことができるか、教えて頂けませんでしょうか。
184デフォルトの名無しさん (ワッチョイ 5d93-9meO)
2021/06/06(日) 23:38:33.35ID:ovJCnzuP0
>>183
どんなエラーかコピペしてみて
185デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/07(月) 00:19:44.20ID:zaOoMQToa
自分以外はみんなエスパーだと思ってるのか、悪意でわざとやってるのか、
それとも天然なのかw

いずれにせよちょっとひどすぎるね
186デフォルトの名無しさん (ワッチョイ 5d33-VNmt)
2021/06/07(月) 02:16:40.16ID:zPol7W/x0
これをエスパー出来ないならプロとは言えないね

.net落としてないんじゃね?
187デフォルトの名無しさん (ワッチョイ 5573-EGuX)
2021/06/07(月) 02:57:54.01ID:a/6zg2G30
.net frameworkじゃなく、.net5で組んでしまってるとかじゃないか。
いままで組んできた人は問題ないが、初めてC#と.netの世界に来た人は、別だとも思わないだろうし足をすくわれるかと。
しかも2019だと、.net frameworkが結構見つけにくい。
188デフォルトの名無しさん (ブーイモ MM39-u/gC)
2021/06/07(月) 05:54:54.21ID:Ye13f02sM
>>183
Hello Worldができるなら次はザ・ワールドだ。段階を追って成長していこう。
189デフォルトの名無しさん (ワッチョイ be62-jjbk)
2021/06/07(月) 11:03:01.40ID:mJGxopfd0
>>185
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
190デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/07(月) 15:18:04.07ID:2X7qaFYwa
>>189
スレッドの趣旨は尊重するよ。
その「低レベルな質問」の低レベルとは日本語の能力や質問能力も含むの?
常識的には違うんじゃないのかな。

許容されるべきなのはあくまでプログラミングの初心者だよね
191デフォルトの名無しさん (ワッチョイ 2d7c-9meO)
2021/06/07(月) 15:30:33.66ID:V1O1oOig0
環境構築すら分からない初心者ならどこが分かってないかすら分からないでしょ
だからこそ>>184を書いたわけ
酷いと思っても言葉にせず飲み込むのがこのスレのルールだし、
>>183の質問の日本語が破綻してるとも思ってないよ
192デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/07(月) 15:38:21.95ID:2X7qaFYwa
だから何を理解してないかを理解している必要はない。
必要なのは自分の直面している問題を他人に正確に理解してもらうこと、
少なくともそういう努力をすることだ。
>>183にはそういう努力の痕跡を感じない。

エラーが出ます
何だよそれふざけてるのか。
普通はこうじゃないか。
193デフォルトの名無しさん (ラクッペペ MMde-+uhU)
2021/06/07(月) 15:39:25.40ID:8ILcpsz2M
その本を見たことがないひとはお断りの質問だからね
読んだことがあるやつならつまづきポイントも予想できるだろう
194デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/07(月) 15:41:56.89ID:2X7qaFYwa
家電やソフトウェアのサポートセンターに相談するのにその製品を熟知している必要はない。
だからといって、

「エラーが出てるから何とかしてよ」

これじゃサポセンのお姉さんも困っちゃうよw
195デフォルトの名無しさん (ワッチョイ c633-Ee3U)
2021/06/07(月) 15:49:19.14ID:vppGJBrX0
質問者を横に殴り合いを始めるいつもの光景
196デフォルトの名無しさん (ワッチョイ 2d7c-9meO)
2021/06/07(月) 16:06:22.75ID:V1O1oOig0
>>192
そう思うならスルーするのがルールだよ
ルール違反の方がマナー違反より質悪い事くらい理解しなよ
197デフォルトの名無しさん (ワッチョイ fead-4HZf)
2021/06/07(月) 16:18:15.29ID:6n3ye4AA0
>>195
これ
198デフォルトの名無しさん (ワッチョイ 0a01-UPQK)
2021/06/07(月) 16:23:31.02ID:TK3hG12A0
ここのサンプル見たらv4.5.2依存なのでその環境が無いんじゃないかな
https://gihyo.jp/book/2017/978-4-7741-8758-7/support

何章・何節のどのコードでどういうエラーが出るのか書いてくれれば
わりとすぐ原因分かると思うよ
199デフォルトの名無しさん (ラクッペペ MMde-+uhU)
2021/06/07(月) 16:30:38.76ID:8ILcpsz2M
あまり情報を出しすぎると解決されてしまい悔しいので……
200デフォルトの名無しさん (アークセー Sxed-p9zx)
2021/06/07(月) 16:31:44.36ID:vHTzOnV3x
datetimeについての質問です。
指定した日時の曜日、その月は何日まであるのかという情報を取得したいのですが、
datetimeの使い方を検索すると、現在の日時の取得するばっかりでてきてほしい情報がないです。
どうすれば、指定した日付で、曜日や日数を取得できるのでしょうか?。
201デフォルトの名無しさん (ラクッペペ MMde-+uhU)
2021/06/07(月) 16:32:45.68ID:8ILcpsz2M
F1キーがオススメです!
202デフォルトの名無しさん (ワッチョイ da2d-Fu2c)
2021/06/07(月) 16:39:30.08ID:rS0k1tFj0
>>200
DateTime.DayOfWeek
DateTime.DaysInMonth()
https://docs.microsoft.com/ja-jp/dotnet/api/system.datetime?view=net-5.0
203デフォルトの名無しさん (ワッチョイ cae4-uikQ)
2021/06/07(月) 16:58:25.25ID:fIvdx7SM0
>>200
DateTimeクラスのコンストラクタ呼び出しで調べたい日を引数にして呼び出して
(簡単なのは年月日時分秒でしていするのかな)、確保したインスタンスの
DayOfWeekプロパティに指定した日時の曜日情報がDayOfWeek列挙型定数として
保存されている

月の日数はスタティックメソッドのDateTime.DaysInMonthで調べられるらしいよ
204デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/07(月) 17:04:08.04ID:qN7i706La
>>196
それは君のルールであってスレッドのルールでも俺のルールでもない。
だいたい偉そうに言ってる自分のやってることは何なんだよ。
お前のリプは悪いリプ
俺のリプは正義のリプだ、ってか(笑)
205デフォルトの名無しさん (エアペラ SDea-9meO)
2021/06/07(月) 18:15:25.64ID:oEHCr3aBD
>>204
>>1くらい読もうや
206デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/07(月) 18:34:04.20ID:qN7i706La
>>205
馬鹿な奴だ>>190

だいたい「お前のやってるいことは何なんだ」といってるそばからこれだ。
俺様は特別?ああそうですか(笑)
自分棚上げとか人間として最低だと思うがな
207デフォルトの名無しさん (ワッチョイ 8663-EDrR)
2021/06/07(月) 19:09:02.00ID:hhCMqshC0
目くそと鼻くそと馬のくそだな
208デフォルトの名無しさん (ラクッペペ MMde-+uhU)
2021/06/07(月) 19:12:18.38ID:8ILcpsz2M
初心者プログラマーの為のスレであって
初心者プロファイラーはお呼びでは無いッス
僅かな書き込みから真実を見つけ出す熟練プロファイラーだけが書き込めるッス
209デフォルトの名無しさん (ワッチョイ 6933-cd7n)
2021/06/07(月) 19:25:20.85ID:PkBW/2H40
>>200
datetimeについての質問です。っていう質問がおかしいんだよ。
datetimeってお前が作った変数じゃないの?
210デフォルトの名無しさん (ワッチョイ da2d-Fu2c)
2021/06/07(月) 19:32:41.27ID:rS0k1tFj0
プログラム初心者が質問の仕方がなってないのはよくあることだし
質問の仕方を教えたら良いだけで、それが嫌ならスルーすべき
いちいち怒ったてたら初心者が委縮して寄り付かなくなっちゃうよ
211デフォルトの名無しさん (ワッチョイ 86a7-hRUY)
2021/06/07(月) 19:39:47.74ID:MYtn1DIP0
なんでも質問できるような面しておいて
気に食わないときは叩き潰そうぜ
212デフォルトの名無しさん (ワッチョイ 868e-Wt59)
2021/06/07(月) 19:48:44.02ID:F/OHBSZZ0
>>210
私はプログラム初心者です
あなたは馬鹿ですか?
213デフォルトの名無しさん (ワッチョイ 7954-llGL)
2021/06/07(月) 20:09:51.48ID:31gUAopA0
IEnumerableにAppendで要素を追加してからCountを参照しても0になっています。

IEnumerable<Person> PersonEnum = IEnumerable<Person>();
PersonEnum.Append(new Person());
MessageBox.Show(PersonEnum.Count().ToString()); //なぜか 0

下記のようにすれば正しい要素数を得られます。
IEnumerable<Person> PersonEnum = IEnumerable<Person>();
PersonEnum = PersonEnum.Append(new Person());
MessageBox.Show(PersonEnum.Count().ToString()); //正しい数が表示される。

これは何故でしょうか?
214デフォルトの名無しさん (ワッチョイ ea2c-t37q)
2021/06/07(月) 20:20:42.86ID:vKe1xauk0
そういうもんだから
IEnumerable<Person> PersonEnum = new Person[0];
のPersonEnum自体に追加しろって言われても追加できないでしょ
215デフォルトの名無しさん (ブーイモ MM39-V3Ia)
2021/06/07(月) 20:24:00.69ID:LkPZR8+jM
>>213
https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.append?view=net-5.0
このサンプルコードのコメントにズバリ答えが書いてある
216デフォルトの名無しさん (ワッチョイ 4abd-7DC9)
2021/06/07(月) 20:25:01.48ID:fOxqxjaW0
>>213 Enumerable.Append<TSource>(IEnumerable<TSource>, TSource) メソッド (System.Linq) | Microsoft Docs https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.append

> 注意
>このメソッドは、コレクションの要素を変更しません。 代わりに、新しい要素を使用してコレクションのコピーを作成します。
217デフォルトの名無しさん (ワッチョイ 4abd-7DC9)
2021/06/07(月) 20:25:21.61ID:fOxqxjaW0
ごめんクソかぶった
218213 (ワッチョイ 7954-llGL)
2021/06/07(月) 20:25:59.64ID:31gUAopA0
>>214-216
皆さんありがとうございます。
納得いきました。
219デフォルトの名無しさん (アークセー Sxed-p9zx)
2021/06/07(月) 21:01:52.24ID:vHTzOnV3x
>>202-203
回答ありがとうございます。
無事情報の取得ができました。
ありがとうございました。
220デフォルトの名無しさん (ワッチョイ 0ae4-uGAl)
2021/06/07(月) 21:43:02.89ID:5OLokVZ40
>>184
ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚
こんな具合です。

>>皆様
スレが荒れてしまい、申し訳ないです。
221デフォルトの名無しさん (ワッチョイ 9978-i9RX)
2021/06/07(月) 21:46:21.73ID:ONlJKv7i0
本の内容を間違えずに写経しろ
222デフォルトの名無しさん (ワッチョイ 868e-Wt59)
2021/06/07(月) 21:55:03.58ID:F/OHBSZZ0
>>220
馬鹿過ぎて「死ね」も言えない
223デフォルトの名無しさん (ワッチョイ 1abd-t/gr)
2021/06/07(月) 21:58:27.19ID:JlFJcgFr0
ComboBoxにて選択したTextによって配列?Point?の戻り値を取得したいんですが、未だ使った事のないGetSetの出番ですかね?
ComboBoxにはA.B.CなどのTextです。
配列の中身は固定値で
A [0]X=25、Y=25
 [1]X=30、Y=25
 [3]X=30、Y=50
B [0]X=125、Y=25
 [1]X=160、Y=25
 [3]X=160、Y=250
などです。数値に規則性はないです。

触りのコードでも教えて頂ければ幸いです。
224デフォルトの名無しさん (ワッチョイ 86a7-hRUY)
2021/06/07(月) 22:09:10.97ID:MYtn1DIP0
>>223
コンボボックス選択した瞬間に処理したい?
それとも
決定ボタンを押したときにコンボボックスで選択されてる内容が欲しい?
225デフォルトの名無しさん (ワッチョイ 0a01-UPQK)
2021/06/07(月) 22:21:08.27ID:TK3hG12A0
>>220
これはエラーメッセージが悪いかも

メソッドの中では型を宣言することはできないから
public class Productの前に閉じ括弧がないとおかしいって判断してそういうエラーを出してる
226デフォルトの名無しさん (ワッチョイ be62-jjbk)
2021/06/07(月) 22:24:08.69ID:mJGxopfd0
あるリストを重複なしのグループに分けたいのですがいい方法を知りませんか?
{1,1,1,2,2,2,3,3,3}→{1,2,3}{1,2,3}{1,2,3}
{1,2,2,3,3,3,4,4,4,4}→{1,2,3,4}{2,3,4}{3,4}{4}

例は数字だけど本来はクラスで、各グループのインスタンスは別々のものにしたい
1(1組山田)、1(1組山本)、1(1組山下)
227デフォルトの名無しさん (ワッチョイ 0ae4-uGAl)
2021/06/07(月) 22:35:41.93ID:5OLokVZ40
>>225
ありがとうございます。
最初のVisualStudioを立ち上げた画面で色々選択できますが、そこで選んでいるものが間違っておりますか?
それとも、コードを改善すれば直るのであれば、どのように記述すればよいか教えて頂けますと大変助かります。
228デフォルトの名無しさん (ワッチョイ cae4-7DC9)
2021/06/07(月) 23:09:58.20ID:nUdOwg5l0
>>227
この本の1番最初の方にサンプルコードはこのリンクからダウンロード出来ますってあるからそれ落としてきてvisual studioで開いて自分のと見比べたらわかりやすいと思う
229デフォルトの名無しさん (ワッチョイ 4a3b-szig)
2021/06/07(月) 23:10:06.82ID:wG/D+QQo0
>>227
答えが書いてあるだろ
お前みたいなバカは何をさせてもダメだ
230デフォルトの名無しさん (ワッチョイ 0a01-UPQK)
2021/06/07(月) 23:10:55.91ID:TK3hG12A0
>>227
Productクラスの宣言をMainメソッドの外に出す

例えば
class Program {
static void Main(string[] args) {

}
public class Product {

}
}
231デフォルトの名無しさん (ワッチョイ 0a01-UPQK)
2021/06/07(月) 23:15:43.72ID:TK3hG12A0
>>226
{1,2,2,3,3,3,4,4,4,4}→ {1}{2,2}{3,3,3}{4,4,4,4} → {1,2,3,4}{2,3,4}{3,4}{4}

list
.GroupBy(x=>x)
.SelectMany(x => x.Select((item, index) => new {item, index}))
.GroupBy(x => x.index, x => x.item);
232デフォルトの名無しさん (ワッチョイ 86a7-hRUY)
2021/06/07(月) 23:18:55.50ID:MYtn1DIP0
>>220
え?
マジでこんなコード載ってたの?
233デフォルトの名無しさん (ワッチョイ be62-jjbk)
2021/06/07(月) 23:23:26.45ID:mJGxopfd0
>>231
インデックス割り振ればよかったのか
ありがとう
234デフォルトの名無しさん (ワッチョイ d95f-PRuz)
2021/06/07(月) 23:24:39.59ID:SV+S9/9m0
>>232
紙面に載ってたのを手で入力したんじゃないかな
うちの新人も最初こんな感じのところでけつまずいてた

英文科の人間を取っちゃった人事に文句言うしかないんだけどな
235デフォルトの名無しさん (ワッチョイ 86a7-hRUY)
2021/06/07(月) 23:26:16.47ID:MYtn1DIP0
え?なんだそのクソ本?
駄目なコード例じゃなくて?
ヘイヘイ動くぜ!ってノリで書いてあんの?
236デフォルトの名無しさん (アークセー Sxed-p9zx)
2021/06/07(月) 23:26:31.98ID:vHTzOnV3x
>>220
チャプター1のセクション1のProduct.csのやつかな?
それならこれと見比べな
ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚
237デフォルトの名無しさん (スッップ Sdea-gD/l)
2021/06/07(月) 23:39:17.69ID:aD+fnvJOd
>>220
こういう人って頭に障害があるのだと思う
238デフォルトの名無しさん (ワントンキン MM5a-Srd6)
2021/06/07(月) 23:46:04.25ID:TRkLBERBM
確かに丸写しすらできずに人に丸投げするような人は頭の病気だよね
239デフォルトの名無しさん (ワッチョイ a90c-Maj3)
2021/06/07(月) 23:47:49.16ID:6Fx6+h8R0
エフェクトの効いた直撮り画像に映る言葉を失うようなミステイク
実に趣深い…
240デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/08(火) 00:01:40.82ID:C+l/FTdha
>>231
賢いなw
LINQ的な発想が苦手だからいい頭の体操になった
241デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/08(火) 00:07:22.40ID:C+l/FTdha
>>223
この人もさあ、なんでもうちょっと他人に自分の問題を理解してもらう努力をしないの。
率直に言って何を言ってるのかさっぱり分からん。

別に罵倒したくて言ってるわけじゃなくて、どんなに善意の人でも
理解できない問題には答えようがないと思うよ
242デフォルトの名無しさん (スッップ Sdea-Wt59)
2021/06/08(火) 00:47:15.41ID:OFJQpY+5d
>>227
https://kizuki.or.jp/kbc-column/dd-adult/
243デフォルトの名無しさん (ワッチョイ 6933-cd7n)
2021/06/08(火) 01:47:59.42ID:ib/yEAMa0
あんまりいぢめてやるなよw
ミミズだって オケラだって 220だって
みんな みんな生きているんだ 友だちなんだ
トンボだって カエルだって 223だって
みんな みんな生きているんだ 友だちなんだ
244デフォルトの名無しさん (ワッチョイ 8663-EDrR)
2021/06/08(火) 02:46:10.20ID:ie1akZGa0
友達料の納付がまだのようですが?
245デフォルトの名無しさん (ワッチョイ c6da-BNg5)
2021/06/08(火) 05:24:55.94ID:zfzkcoOR0
あんぱん買ってこいよ
246デフォルトの名無しさん (スプッッ Sdea-cnok)
2021/06/08(火) 07:55:04.09ID:oPwax1u6d
>>224
選択した時に処理したいです。
247デフォルトの名無しさん (アウアウウー Sa11-nZsP)
2021/06/08(火) 08:41:49.03ID:cqfCDeVba
>>223
俺ならComboBoxのitemのTagにPointを入れとくかな
248デフォルトの名無しさん (ワッチョイ 86a7-hRUY)
2021/06/08(火) 10:56:38.50ID:WywmmIjb0
>>246
google「c# コンボボックス 選択」で見つけた

https://www.itlab51.com/?p=3026
249デフォルトの名無しさん (スフッ Sdea-PR6M)
2021/06/08(火) 12:52:13.99ID:T+eZSKNrd
あんぱん買ってくるのでゴミみたいな質問をさせてください…

標準入力で
整数n
n文字の文字列

を取得して、n文字の文字列を1字ずつ縦に出力したい場合は何をどうすれば良いのでしょうか
検索する為のキーワードだけでもご教示いただければ嬉しい限りです…
250デフォルトの名無しさん (ラクッペペ MMde-+uhU)
2021/06/08(火) 13:01:29.32ID:iJBocUpIM
どこに出力するのですか?
251デフォルトの名無しさん (ワッチョイ 86a7-hRUY)
2021/06/08(火) 13:39:59.73ID:WywmmIjb0
>>249
string str="unko";
str.Length←文字数

ループで回して

if(str.Length==n)出力

でええんじゃないだろか?
252デフォルトの名無しさん (ワッチョイ caec-LZmE)
2021/06/08(火) 14:16:53.52ID:qttYqnID0
標準入力からの行読み込み
文字列を整数に変換
文字列から文字取得 あるいは 文字列を配列に分割
改行 出力
253デフォルトの名無しさん (ワッチョイ ea4b-Alfg)
2021/06/08(火) 14:26:06.75ID:eKo67trX0
バイト配列と、構造体の相互変換ですが、Marshal を使った方法
Marshal.PtrToStructure / Marshal.StructureToPtr ではリトルエンディアンしか対応していません。
ラージエンディアンとBCDに対応した相互変換のライブラリ等はありませんでしょうか。
.NET5 を想定しています。
254デフォルトの名無しさん (ワッチョイ 2501-tKmC)
2021/06/08(火) 14:42:51.35ID:bmgoTOXu0
>>249
その文字列の直前直後に改行がある場合はConsole.ReadLine()で読んでforeachで1文字ずつConsole.WriteLine
そうでないならConsole.Read()をn回呼んでConvert.ToCharしてConsole.WriteLine
255デフォルトの名無しさん (テテンテンテン MMde-1bbd)
2021/06/08(火) 15:07:20.57ID:bn01gd5kM
>>253
ないから自作するしかなかったような記憶が
ちょっと漁った限りでは
https://github.com/davidrea-MS/BitConverter/tree/master/EndianBitConverter
 → https://www.nuget.org/packages/EndianBitConverter/
https://github.com/jfoshee/UnpluggedIbmBits
なんてのはあるみたいだけど、この位なら自前で書いてもさほど手間は変わらないような
256デフォルトの名無しさん (ワッチョイ ea4b-Alfg)
2021/06/08(火) 15:22:47.00ID:eKo67trX0
>>255
やっぱ無いですか。
とりあえずアトリビュートで場合分けしてやってみます。
257デフォルトの名無しさん (ワッチョイ 5d33-VNmt)
2021/06/08(火) 18:22:07.24ID:+zfftH1n0
>>249
たぶん、プログラムの基本である、逐次実行を理解して無いんじゃなかろうか

上から処理するし、順に出力されるのが基本
縦に出力させたいなら、上から順に出力する方法が基本

一気に表示させる事は出来るが、結局内部で上から溜めて一気に吐き出してるだけ
258デフォルトの名無しさん (ワッチョイ 0ae6-+uhU)
2021/06/08(火) 18:33:56.39ID:/pGHNa0l0
逐次処理なんて時代遅れ!!
LINQとかで一撃でズバーっと解決しちゃうのがナウいッスよ
259デフォルトの名無しさん (スププ Sdea-mtzw)
2021/06/08(火) 20:04:39.77ID:qmzAArb+d
>>249
任意の場所に縦に並べたいなら、Consoleのカーソル移動をさせるメソッドを使えば良いよ。
260183 (ワッチョイ 0ae4-uGAl)
2021/06/08(火) 20:44:50.12ID:zQ8wWAP20
>>228
>>230
ありがとうございました。
エラーが出なくなりました。
261183 (ワッチョイ 0ae4-uGAl)
2021/06/08(火) 20:46:14.31ID:zQ8wWAP20
>>236
ありがとうございました。
とても助かります。
262デフォルトの名無しさん (ワッチョイ 1abd-t/gr)
2021/06/08(火) 23:24:49.74ID:MpN9Z3mi0
みんなどこでプログラム学ぶの?独学?有料スクール?会社入ってからの教育プログラム?
263デフォルトの名無しさん (ワッチョイ 89b0-PRuz)
2021/06/08(火) 23:57:18.30ID:DII63xyt0
切っ掛けは独学だったり学校だったり新人研修が多いんじゃないかな
けどその後はみんな独学でしょ
264デフォルトの名無しさん (ワンミングク MM1d-Srd6)
2021/06/09(水) 03:51:36.11ID:D8wcA5EVM
>>260
>>261
で?またお前が間違えていたのか、それとも本が間違えていたのかそれくらい書けよ
だからバカだっての
265デフォルトの名無しさん (アウアウウー Sa11-nZsP)
2021/06/09(水) 07:14:35.45ID:lHuF4fd4a
>>262
最初は雑誌、次に趣味でゲーム作る
で、会社入ってOJT
266デフォルトの名無しさん (スププ Sdea-mtzw)
2021/06/09(水) 07:41:07.30ID:T7a0fZeMd
>>265
雑誌はベーマガだった
267デフォルトの名無しさん (ブーイモ MM39-uR6V)
2021/06/09(水) 07:59:02.17ID:1IFZDN1pM
>>262
昔と違って覚える範囲が広いから
最初はセミナー受けた方が楽じゃね
268デフォルトの名無しさん (ワッチョイ 86a7-hRUY)
2021/06/09(水) 08:39:45.92ID:y9xSvLES0
>>267
事前学習無しでセミナーなんて金をドブにすてるだけ
入門書でも買っていくらか触ってみて疑問点をまとめてからうけるべき
269デフォルトの名無しさん (ブーイモ MM39-uR6V)
2021/06/09(水) 09:56:27.08ID:1IFZDN1pM
あーはいはいそうですねー
270デフォルトの名無しさん (ワッチョイ c110-lAlw)
2021/06/09(水) 10:29:54.65ID:tFTHFIz/0
質問です
System.Numerics.BigInteger型の整数を小数含めたfloatで乗算したいのですが、何か方法はありませんか?
271デフォルトの名無しさん (ワッチョイ d95f-b0cn)
2021/06/09(水) 11:07:43.11ID:m05KcYPg0
ASP.NETで作ったWEBアプリにグラフ追加したら、iOSでボタン押しても動作しなくなった。
原因分かる人いる?
272デフォルトの名無しさん (ワッチョイ a1ad-wkOw)
2021/06/09(水) 11:09:12.94ID:aIWwtEZD0
グラフ追加したからじゃないかなあ
273デフォルトの名無しさん (ブーイモ MM2e-V3Ia)
2021/06/09(水) 12:29:29.59ID:paDfdrYmM
>>270
doubleやdecimalで収まる程度の桁数なんだったらそれらに変換してから計算すりゃいい
収まらないんなら必要な精度を決めて予めfloatの方を10^n倍して整数化した上でBigIntegerに入れて乗算するとか
274デフォルトの名無しさん (ワッチョイ be62-jjbk)
2021/06/09(水) 12:42:27.77ID:A3ai3bJf0
>>270
無駄に頑張っても疲れるし外部のライブラリを使うのが楽
BigDecimalとかでググれば色々見つかるよ
275デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/09(水) 12:54:22.23ID:RdncRzI4a
>>270
(1) 与えられるBigIntegerの値の範囲
(2) 演算結果として欲しい型と精度

まずこういう要件を定義しないと何とも言えないのでは?
こまけーことはいいんだよならdoubleにキャストして演算するだけだろうけど
276デフォルトの名無しさん (ワッチョイ 1abd-t/gr)
2021/06/09(水) 22:22:16.62ID:yp9eglBe0
form1にTabControlとボタン2つ配置。
ボタンはnextボタンとreturnボタンとしてボタンのclickに応じてtabpageを切り替える処理がしたいです。
※処理※
起動時tabpageは最初のページ。nextで次ペ頁、 returnボタンで1つ前の頁。
最終ページでnextなら最初の頁。最初頁でreturnならformを閉じる。

それぞれのボタンのイベントに処理はネットみて書けたんですが、うまいこと一つにまとめる方法が知りたいです。
277デフォルトの名無しさん (アウアウウー Sa11-9b/0)
2021/06/09(水) 23:05:51.15ID:7RnwuUIHa
うまいこと一つにまとめる、とは?
278デフォルトの名無しさん (ワッチョイ 8663-EDrR)
2021/06/09(水) 23:09:38.53ID:qAo90TQX0
剰余演算子をうまく使ってくだせえ
279デフォルトの名無しさん (ワッチョイ 86a7-hRUY)
2021/06/10(木) 01:08:35.30ID:M7C9mR8+0
タブに順番なんかあったっけ?
ユーザーがドラックしたら移動できんかったか?
280デフォルトの名無しさん (アウアウウー Sa11-nZsP)
2021/06/10(木) 08:39:52.59ID:+OLSGNkTa
>>276
ボタンのイベントを同じメソッドにしてその中のsenderで処理を分ける
281デフォルトの名無しさん (ワッチョイ ea4b-hvqo)
2021/06/10(木) 11:33:53.07ID:rur9wo/n0
class c {
public byte[] arr;
}

foo = new c(){
arr = new byte[10];
}

var ff = foo.GetType().GetFields(
BindingFlags.Instance |
BindingFlags.Static |
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.GetField
);

var f = ff[0];
var v = f.GetValue(foo);

この時 v は byte[] になりますが、v[0] にアクセスしたい場合はどうコーディングするのでしょうか。
そのままv[0]とすると、object型に[]を付けられないとエラー表示されます。

var zz=(byte[])v;
var z = zz[0];

とすればアクセスできる事は確認していますが、byte 部分が不明でもアクセスできるようにしたいのです。
282デフォルトの名無しさん (ワッチョイ beda-nujg)
2021/06/10(木) 12:01:03.65ID:GQazDyFH0
型が分からないのに配列でアクセスできるわけないだろ。
型制約でも付けてみれば?
283デフォルトの名無しさん (ワッチョイ ea4b-hvqo)
2021/06/10(木) 12:04:21.64ID:rur9wo/n0
自己解決
var zz = (Array)v;
var z = zz.GetValue(0);
284デフォルトの名無しさん (ワッチョイ d95f-PRuz)
2021/06/10(木) 22:54:11.27ID:ZEfq1fzk0
ちょっととりとめのない質問なんですけど
社長が取ってきた仕事でどっかの会社が作ったC#アプリをうちの会社で修正するという仕事の担当になりました

んで中を調べてたら
edmxって言う拡張子があって
それがEntityFrameworkと言うことがわかったのです

データベースももらってきてビルドしたら通るように放ったのですけど
edmx内にあるcsファイル?(ッポイやつ)を開こうとしたらビルドエラーになってデザイナーが表示されなかったり
なんだか訳がわからなくて・・・

EntityFrameworkを猫でもわかるように解説してるところってないですか?
285デフォルトの名無しさん (ワッチョイ 2501-BNg5)
2021/06/10(木) 23:13:12.60ID:RKq3rAMR0
只のXMLなので開いてみるべし
286デフォルトの名無しさん (ワッチョイ d902-oKoI)
2021/06/10(木) 23:28:07.46ID:0U76cbOA0
というか。
それはきちんと全てのファイルを開ける状態を要求しなければダメなパターンでは。

ああ。無駄な要求だと言うことは分かってるけど。
287デフォルトの名無しさん (ワッチョイ ffad-wP0n)
2021/06/11(金) 00:22:08.49ID:6smqcHVx0
EF3のModel Fistとかだったり…
288デフォルトの名無しさん (ワッチョイ bfbd-hyWT)
2021/06/11(金) 00:58:16.80ID:kVdsE3UJ0
public class PropertyCls {
public int PropertyInt{ set; get;}
}

class Program {
static void Main() {
PropertyCls p = new PropertyCls();
p.PropertyInt = 32;
Console.WriteLine(p.PropertyInt);
}
}

GetSetの壁にぶち当たってます。調べてもこんなコード等しか出てないし使い所が分かりません。
Mainの中にint p=32で終わりじゃんとか思えないんですが...
ひとつじゃ使わないけど、PropertyIntの他にもNameとかAgeとか複数の構造体?風な事が変数風?に出来るよって感覚ですか?
社員番号とかの例とかよく見ますが、他によく使うパターンとか教えて下さい。
289284 (ワッチョイ 335f-t88l)
2021/06/11(金) 01:06:01.10ID:qvzRqpry0
xmlファイルと言っても開いてどうなるのでしょうか・・・

とりあえずドキュメントは取説だけあって
doxygenでクラス関連図とか抜き出してみたけどコメントないし名前の付け方も訳がわからないので動かしながら見るしか無いという地獄・・
Totigiとかそんな感じのクラスがあって・・・
290デフォルトの名無しさん (ワッチョイ f30c-l016)
2021/06/11(金) 01:34:48.60ID:rjcQbITm0
>>288
無理して使う必要はないよ
以上
291デフォルトの名無しさん (ワッチョイ cf63-N/EE)
2021/06/11(金) 03:39:29.02ID:SAQrE1k60
つかなんで使いどころがないと進めないんだ?
学校の勉強でいちいち使いどころとか考えてたか?
292デフォルトの名無しさん (ワッチョイ f3de-xoS4)
2021/06/11(金) 07:17:53.54ID:oCvSjx8Y0
getsetなんか俺はゴミだと思う
293デフォルトの名無しさん (スップ Sd1f-ewEI)
2021/06/11(金) 09:38:54.03ID:Pc6dU7Wud
get setは構造化の基本
データの塊はこーゆー設計がいいよねって話

データの塊なので、利用、登録は意識しない
(なるべく他に依存しない)

ただ、オブジェクト指向だからって、車のネジ一本から作るのは間違い
そのアプリが目的としている形のオブジェクトでいい
トラックなのか乗用車なのか、とか、車なのか電車なのか
294デフォルトの名無しさん (ラクッペペ MM7f-WFTr)
2021/06/11(金) 10:22:39.64ID:N5qPgvwKM
×構造化
〇カプセル化(情報隠蔽)
295デフォルトの名無しさん (スップ Sd1f-ewEI)
2021/06/11(金) 10:48:58.40ID:Pc6dU7Wud
すまんね。
ただ「プログラムの構造・設計」って意味で言ったので間違ってないよ
(俺自身は隠蔽する意味を見出していない、日本語訳が間違ってるだけ?)

ちなみに、質問者のプログラムだと、登録と利用が同時に行われてるので、get setの意味は全く無い
意味ないと思うのは当然
296デフォルトの名無しさん (アウアウウー Sa67-gVNt)
2021/06/11(金) 12:12:38.48ID:WhHgYbh2a
訳分からん俺様用語を使っている時点で本当は自分で何も調べてもいなければ
他人とコミュニケーションする意思もないことは明白。

getsetの壁って何やねんw
297デフォルトの名無しさん (ワッチョイ ff01-EoJ9)
2021/06/11(金) 12:36:14.35ID:9brEePq50
>>288
初心者の域をでない俺だけど
そういう理屈っぽい所理解したいなら
ちゃんとした書籍買って読むといいと思うよ
その辺順を追って説明されてるから
298デフォルトの名無しさん (アウアウクー MM87-IdmB)
2021/06/11(金) 12:57:23.03ID:/Ldzrd4UM
>>288
社員番号、入社年度、年齢、性別とか沢山の項目があるなら構造化する
ひとつならたいして意味ない。ただし項目によってはValueObjectにしたほうがいいかもしれない。

で、入社年度から在籍年数をクラス内で計算してgetできるようにするとか。そういったロジックをクラスに用意する。

ただこういうクラスの場合はsetを使うより
コンストラクタで渡すほうがよい。
で、get; private set;
にする
299デフォルトの名無しさん (ワッチョイ bf2d-42hD)
2021/06/11(金) 13:05:02.82ID:FNOyhnqL0
>>298
今はコンストラクタで初期化するならprivate setは不要
300デフォルトの名無しさん (スップ Sd1f-ewEI)
2021/06/11(金) 14:47:45.55ID:Pc6dU7Wud
わかったよ
入門者はget setに注目してるから、訳がわからなくなるんだな

大事な方は、データの塊の持ち方であって、取り方入れ方は副産物

本来はgetって書いてあるから取ってるんだねって一発でわかる様になってたが、今は書かない様になったから、getメソッドのメリットが薄くなってる
301デフォルトの名無しさん (ワッチョイ ff01-NdOG)
2021/06/11(金) 14:55:57.07ID:gX7+uLUh0
>>288
「GetSetの壁」より先に
「公式リファレンスの壁」を越えるといいよ
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/using-properties
302デフォルトの名無しさん (ワッチョイ ff2f-JlJp)
2021/06/11(金) 15:00:19.14ID:hChWWabk0
根本的な疑問は
プロパティじゃなくて(公開)フィールドで良いんじゃないか、ってことじゃないのかね
303デフォルトの名無しさん (アウアウウー Sa67-gVNt)
2021/06/11(金) 16:12:18.68ID:OoWb95ZEa
>>302
恐らくその通りだと思うけど、聞いてる方も答えてる方も
コミュニケーション能力が低すぎてなんか滑稽なことになってるねw

そして、これが肝心だけど、そういうことなら普通
こんなところで質問する前に「プロパティ フールド 使い分け」
とかで検索する。

getsetの壁とか訳わからんこと言ってることから分かるように、
この質問者さんは普通の人がまずやることを何もやってない。
304デフォルトの名無しさん (ワッチョイ cf63-N/EE)
2021/06/11(金) 18:01:38.21ID:SAQrE1k60
コミュニケーションの壁を感じますね(適当)
305デフォルトの名無しさん (スップ Sd1f-ewEI)
2021/06/11(金) 18:06:02.90ID:snOiqcmLd
俺がコミュ症とはひどいなぁ(文才が無いだけ)
人生口先だけで生きてきたよ
それは置いといて

質問者は「Mainの中にint p=32」と言ってる時点で、データ外出しに気づいてないなと思ったよ
306デフォルトの名無しさん (ワッチョイ 63da-0JFK)
2021/06/11(金) 19:22:00.59ID:+sJHqm0v0
>>288
この例ではpを表示してるのは確認の為で主目的ではないね

プロパティはクラスのフィールドみたいな物
フィールドはクラスの変数で、寿命はクラスを作ってから破棄まで
例えば、個人情報のクラスなら住所や電話番号がフィールド

いくつかの理由でフィールドに直接アクセスするのは良くないとされている
つまり
✕personal.phone=09012345678とかnum=personal.phone
○personal.SetPhone(09012345678)やnum=personal.GetPhone()

でも下の表記はクラス側にSetxxx/Getxxxを書かなくてはならず詰まらないコード量が増える

そこでC#は呼出側は上の記述が使え、クラス内では最低限のコード量で書くプロパティが考案された
307デフォルトの名無しさん (スププ Sd1f-+vzQ)
2021/06/11(金) 19:52:45.88ID:95OnglC4d
以前は{ get; set; }って記述は出来なかったよね。
必ずprivateの保存先に読み書きしたり、なんかロジックとか固定値で値を返したり。
さらにラムダ式とか多様な定義が出来るようになったから、着いていけない人も居るのかも。
自分も自信ない。無駄な書き方してないだろうかと。
308デフォルトの名無しさん (ワッチョイ 632f-JlJp)
2021/06/11(金) 20:13:06.43ID:rguC8k2o0
ここは
>「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」
だからな

>>288は、まずプロパティという概念を理解できているのか?
そしてそれがC#ではどのように実装されるのかを理解できているのか?
(今のC#のプロパティにはいろんな書き方ができるのでわかりにくい)

その上でフィールドとの使い分けなら
クラスの外部に公開するものはプロパティにする
単純に値を格納するだけのもの以外はプロパティにする
が基本方針だと思えばいい
309デフォルトの名無しさん (ワッチョイ 73b0-t88l)
2021/06/11(金) 20:37:00.28ID:fG/j16u90
アルゴリズム云々じゃなくてとりあえずコーディングの練習したいときの手軽な問題って何があるかな?

今は競技プログラミングの簡単な問題を最近の記法使いつつ解いてるのだが他に何かあれば知りたいです
310デフォルトの名無しさん (ワッチョイ 6333-ewEI)
2021/06/12(土) 00:34:16.72ID:5WmNz19V0
>>309
テトリスでいい
311デフォルトの名無しさん (ワッチョイ cfa7-xoS4)
2021/06/14(月) 11:10:57.15ID:pnoKn6oo0
Debugger.Breakメソッドってリリースビルドで落ちますか?
312デフォルトの名無しさん (ワッチョイ cfa7-xoS4)
2021/06/14(月) 11:30:41.88ID:pnoKn6oo0
とりあえず
Debugger.isAttachedで解決しました
313デフォルトの名無しさん (ワッチョイ ff05-W6T4)
2021/06/14(月) 20:09:02.57ID:BmiJqBp+0
株価チャートは作れますか?
314デフォルトの名無しさん (ブーイモ MMff-rmNT)
2021/06/14(月) 20:10:32.46ID:mg3Aqqn/M
作れるけど自分で使う用ならPythonの方がいいよ
315デフォルトの名無しさん (ワッチョイ e324-n7fE)
2021/06/14(月) 23:03:12.79ID:JUMQWHQ70
Python遅くない?
316デフォルトの名無しさん (ワッチョイ cf63-ncc4)
2021/06/15(火) 02:51:49.51ID:sfSEzJaG0
完成するまでの時間を考慮すればペイするよ
初心者がC#で完成させるのは不可能だから、速度はゼロだ
317デフォルトの名無しさん (スププ Sd1f-+vzQ)
2021/06/15(火) 06:00:09.68ID:KK4WQfQVd
Pythonとjupyter notebookですぐに欲しい結果が出せるのが良いよね。
実効速度で比較する意味はないってことか。
318313 (ワッチョイ ff05-W6T4)
2021/06/15(火) 07:49:35.29ID:KkBjFpYc0
>>314
ありがとうございました。
319デフォルトの名無しさん (テテンテンテン MM7f-rmNT)
2021/06/15(火) 09:42:34.43ID:7x06OJH8M
そもそもグラフィカルなアプリは人間の知覚や操作がボトルネックになるので、単純なコードの実行速度にはあまり意味がない
320デフォルトの名無しさん (ワッチョイ cf68-8mgH)
2021/06/15(火) 22:28:24.77ID:YIKkkAYj0
アプリの設定情報の保存がイマイチよくわかってない自分。
321デフォルトの名無しさん (ワッチョイ bfbd-gv+s)
2021/06/15(火) 23:06:30.86ID:vcMBupBl0
<ブックリスト>
<アイテム id="11">
<タイトル>XML</タイトル>
<筆者>鈴木</筆者>
<カテゴリ>1</カテゴリ>
</アイテム>
<アイテム id="22">
<タイトル>WORD</タイトル>
<筆者>田中</筆者>
<カテゴリ>2</カテゴリ>
</アイテム>
</ブックリスト>
こんなxmlをID指定で読みたい。ID 22ならば、WORD、田中、2が得られるように。

調べると下のようなものが出てきました。指定で読み込みたいのでforeachでなく読んだ結果を直に欲しいです。(foreachの中身のような)
IEnumerable<XElement> infos = from item in xml.Elements("??") select item;
foreach (XElement info in infos){
info.Element("タイトル")
info.Element("カテゴリ)
}

指定で読むにはどうしたら良いですか?
322デフォルトの名無しさん (ワッチョイ cf63-ncc4)
2021/06/16(水) 00:27:44.40ID:/wNWjCZd0
findByIdはないです
なんで無いのかは知らないです
実用性を無視した意味不明なこだわりを持ってるライブラリ設計者っていますけど、たぶんその類だと思いますね
別の言語ですがElementTreeの設計に関しても似たような後継を見ましたね
XMLは変な設計者を引きつけるのかも知れない
323デフォルトの名無しさん (ワッチョイ ffe6-U+vn)
2021/06/16(水) 00:34:43.94ID:5mM/xZpb0
XPathで一発じゃんか
Linqはコレクション向けの機能だからな
324デフォルトの名無しさん (ワッチョイ cfa7-xoS4)
2021/06/16(水) 01:16:30.17ID:jt20Rl6v0
>>321
読んでみないとわかんないじゃん?
だから全部読むよ
id=22だけっつったって
ネスト入りのテキストである以上全部読まなきゃどんな構造かわからんよの
325デフォルトの名無しさん (アウウィフ FF67-U3V2)
2021/06/16(水) 17:36:15.53ID:uJQ6HHCXF
>>321
bs = BeautifulSoup(xml, features='lxml')
for item in bs.find(id='22'):
if type(item) != bs4.element.NavigableString:
print(item.text)
326デフォルトの名無しさん (ワッチョイ cf63-ncc4)
2021/06/16(水) 18:57:39.81ID:/wNWjCZd0
bsのfindはリストやシーケンスを返さないよ(Tag or Noneを返す)
よってTypeErrorで動かない
327デフォルトの名無しさん (ワッチョイ 232c-W6T4)
2021/06/16(水) 21:45:08.91ID:6jJilgqa0
Ruby, Nokogiri では、XML もHTML のように使える。
CSS セレクターも使える

require 'nokogiri'

doc = Nokogiri::XML(<<EOT)
<root><books>
<book id="1">
<title>one</title>
</book>
<book id="2">
<title>two</title>
</book>
</books></root>
EOT

element = doc.at_css( "#2" )
puts element.at( "title" ).content #=> two
328デフォルトの名無しさん (ワッチョイ 8f67-MHI0)
2021/06/16(水) 23:24:04.21ID:nxmBk19h0
初心者だけどVBAのノリでgosub return使おうとしてコンパイラにエラー出されて悩んだ
goto使えるんならこっちも使えてもいいじゃん
329デフォルトの名無しさん (ワッチョイ cfbb-khlo)
2021/06/16(水) 23:38:57.75ID:5dGb7KxN0
>>321
var doc = XDocument.Load("BookList.xml");
var item = doc.XPathSelectElement("//booklist/item[@id='22']");
Console.WriteLine(item.Element("title"));
330デフォルトの名無しさん (アウアウウー Sa67-tjD1)
2021/06/17(木) 00:41:59.71ID:3qVDU9gDa
>>328
ローカル関数やラムダ式は使えるよ。
どうでもいいけどGoSubなんてまともな人はVBAでも使わないよw
そんなのは80年代の遺物だ
331デフォルトの名無しさん (ワッチョイ 0389-9wAC)
2021/06/17(木) 03:03:58.98ID:ZAUwj7CW0
質問失礼いたします。
0.5秒間隔に、3回連続で2枚の画像を交互に表示させたいのですが、2つ目の画像しか表示されません。
開発環境はVisual Basic Studio、言語はC#です。
プログラムは下記の通りです。
どうぞよろしくお願いいたします。

private void button1_Click(object sender, EventArgs e)
{

Timer timer = new Timer();
timer.Interval = 500;
timer.Start();

int count = 0;

pictureBox1.ImageLocation = @"ファイル名";

pictureBox1.ImageLocation = @"ファイル名";

if (count < 3)
{
count++;
}

else
{
MessageBox.Show("終了");
timer.Stop();
}
332デフォルトの名無しさん (ワッチョイ 6f62-Lkk5)
2021/06/17(木) 05:52:30.68ID:8FKshyx30
>>331
何が悪いとかのレベルじゃない
特定の行でF9でブレークポイントが設定できデバッグ実行を止めることができる
その後F10で一行ずつデバッグ実行を進めることができるから想定している動きになってるか確認することから始めた方がいい
333デフォルトの名無しさん (スププ Sd1f-+vzQ)
2021/06/17(木) 05:54:28.97ID:Y5lXnysMd
>>328
特定の処理を呼んで返したいなら、メソッドに切り出せば良いんじゃないのかな。
334デフォルトの名無しさん (アウアウウー Sa67-tjD1)
2021/06/17(木) 15:21:46.42ID:WS39elSMa
>>331
private bool mIsBusy = false;
private async void StartSlideShow()
{
  if (mIsBusy) return;
  mIsBusy = true;
  var dir = @"C:\Windows\Web\Wallpaper\Theme2";
  var names = new[] { "img7.jpg", "img8.jpg", "img7.jpg", "img8.jpg", "img7.jpg", "img8.jpg" };
  foreach (var name in names)
  {
    var path = System.IO.Path.Combine(dir, name);
    pictureBox1.ImageLocation = path;
    await Task.Delay(500);
  }
  mIsBusy = false;
}
335デフォルトの名無しさん (ワッチョイ 9342-khlo)
2021/06/17(木) 16:07:14.40ID:tBktLRON0
>>330
いや、寧ろGoSub使わずに一つのサブルーチンにすべてを書くやつがコボラーの亡霊です
336デフォルトの名無しさん (ワッチョイ 03e3-nisE)
2021/06/17(木) 16:09:36.15ID:4w07t7GO0
ローカルメソッドはどうなんだろうね
外出せばいいじゃん派と他で使わないならローカルにしとけよ派で争うのかな
337デフォルトの名無しさん (ワッチョイ a3e4-FyPE)
2021/06/17(木) 16:59:01.31ID:ooZzmu2N0
>>331
>>334ががっつり趣旨に沿ったコード書いてくれちゃってるので解決かもしれないけど
>>331のコードだと2つ目だけ表示されるのは正しい動作だぞ
コードとしてはボタンが押されたらタイマー設定のみ行って画像1を表示
待ち時間なく画像2を表示(同じものに上書きしているので結果として画像2だけ表示)
countは常にメソッドの中で初期化されるので永遠に終了ダイアログは表示されないし
timerも止まらない
イベントメソッドも存在しないのでTimerクラスを使った意味がない
っとプログラムとして成立していないよ
338デフォルトの名無しさん (ワッチョイ 0fde-ZikL)
2021/06/17(木) 21:24:02.95ID:gnGFQr/W0
>>334
原型とどめてなくてわろす、でもそうじゃないんだ
339デフォルトの名無しさん (ワッチョイ f6da-Y04N)
2021/06/18(金) 08:14:42.61ID:CeuVWc4D0
if (mIsBusy)と returnの間にスレッドが割り込まれたら複数動いちゃうんじゃね・・。
340デフォルトの名無しさん (ワッチョイ 3e7c-meyV)
2021/06/18(金) 09:03:58.05ID:kks5fFRD0
StartSlideShowはUIスレッドでしか呼び出されない前提だから問題ないよ
341デフォルトの名無しさん (ワッチョイ 0b01-N7Uk)
2021/06/18(金) 12:12:31.58ID:wj2zORhF0
他人のコードにケチつけずにはいられない、嫌われる人。
342デフォルトの名無しさん (ブーイモ MM67-YCR2)
2021/06/18(金) 13:08:32.73ID:ApjvrmIoM
VisualStudioスレで質問しましたが回答を得られなかったのでこちらに投げ直します、よろしくお願いします

c#でWindowsFormのForm1(大きさ以外全てデフォルト)に
richTextbox(大きさ以外全てデフォルト)のコントロールを張り付けて以下のコードを実行

static void Main()
{
Application.Run(new Form1());
}

表示されたrichTextboxにイメージをペーストすると強制的に縮小されてしましまいます、richTextboxのサイズに依存せずすべて同じ大きさになります

どうして等倍で表示されないかの理由と等倍にする方法、又は倍率指定をする方法はありますか?

※キャプチャ画面 http://up-img.net/img.php?mode=jpg&;id=22425

参考1:vb.netでも同じ現象が起きます
参考2:クリップボードのイメージを縮小してからペーストしたところ画像は小さくなるのですが拡大してからペーストをしても同じ大きさのままで一定の大きさを超えることはありませんでした
参考3:イメージのハンドルをマウスカーソルでつかんで大きさを変えることは可能です
343デフォルトの名無しさん (ワッチョイ 9a01-VB6v)
2021/06/18(金) 15:11:40.58ID:BPwODCTr0
テトリス作ってるんだけどおもしれー
もしググったら洗練されたコード出てきちゃってつまんなくなるから一切調べない方向で行く
オブジェクト指向って何ですか?っていうとんでもなく酷いコードなんだけど、とりあえず力尽くで作ってみる
344デフォルトの名無しさん (ワッチョイ 0387-LA4V)
2021/06/18(金) 15:15:28.22ID:IfPYq/+20
>>343
イイね!できたら教えてよ!!
345デフォルトの名無しさん (ワッチョイ 9a01-VB6v)
2021/06/18(金) 15:25:02.03ID:BPwODCTr0
はぁ〜い 時間かかりそうだけど!
346デフォルトの名無しさん (ラクッペペ MMb6-tFUR)
2021/06/18(金) 16:37:12.93ID:tae+NGJOM
wpfのdatagridでmvvmでテトリス
347デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/18(金) 17:29:10.97ID:2oHMGf83a
>>342
再現できんなあ。

コピー元アプリの方で縮小してるんじゃないの?
その問題のクリップボードの画像は、他のアプリ、例えばペイントにペーストした時には
ちゃんと原寸大でペーストされる?

画像サイズがデカい時、ワードパッドだと横幅に合わせて縮小されるけど、
RichTextBoxにそんな気の利いた機能が実装されてるとも思えんけど
348デフォルトの名無しさん (ワッチョイ f6da-Y04N)
2021/06/18(金) 17:35:41.01ID:CeuVWc4D0
DPIじゃねーの
349デフォルトの名無しさん (ブーイモ MM26-YCR2)
2021/06/18(金) 19:34:09.02ID:sIt6goKIM
>>347、348
ペイント、エクセルでは等倍になりましたがOneNoteは少し小さくなりました
確かにDPIが関係していそうな気がするのでそのあたりを調べてみますね
350デフォルトの名無しさん (ブーイモ MM26-YCR2)
2021/06/18(金) 21:14:08.05ID:sIt6goKIM
>>349
色々試してみたところ画像ファイル(jpg)を直接ドラッグしたりコピペした場合には画像が小さくなって、ペイントに一度貼り付けたものをコピペした時は等倍になるようです
つまりクリップボードの中身がファイル名だとなぜか縮小されて、イメージファイルだと正しくコピーされるようです、理由は解らないですがちゃんとイメージをコピーしていない自分のミスでした、すみません
ありがとうございます
351デフォルトの名無しさん (ワッチョイ f6da-Y04N)
2021/06/18(金) 21:18:17.98ID:CeuVWc4D0
マカーが作った画像じゃないの?DPIが72になってるやつ。
Windows標準は96dpiだから、同じ300ピクセルの画像でもdpi情報が72か96かで変な挙動した記憶がある。
テストに使ってる画像を右クリックして詳細タブの「水平/垂直方向の解像度」の値みてみ。

それとテスト画像を96dpiで作られてるもので試してみるとか
352デフォルトの名無しさん (ワッチョイ f6da-Y04N)
2021/06/18(金) 21:21:54.18ID:CeuVWc4D0
右クリックしてプロパティの詳細タブね
中段くらいにあるの「水平方向の解像度/垂直方向の解像度」
353デフォルトの名無しさん (ブーイモ MM26-YCR2)
2021/06/19(土) 00:22:28.91ID:6GSPTGzeM
>>351
私もそう思って色々なDPIのファイルを試したのですけど全て同じ挙動なんですよね、大体は96か300あたりでした
逆に72は今のところはないようです

とりあえずPictureBoxに画像を読み込めば等倍でいけるのでそれで代用するしかないかなと考えています
354デフォルトの名無しさん (ワッチョイ a702-H/9o)
2021/06/19(土) 11:19:41.98ID:aMtkyk0f0
再現はしたけど、解決方法は分からないなあ。
間接的な方法ではこんなのがあるかも。
1) RichTextBox の中に PictureBox を貼り付ける
2) コピー元によっては期待通りになるなら、一度別のコントロールに貼り付けた後にそこからコピペしてみる

RichTextBox.Rtf プロパティをどうにかするって投稿もあったけど、自分にはどうにもならなかった。
355デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/19(土) 13:34:06.66ID:Dd96s04da
だから最初から言ってるけど、コピペにしろD&Dにしろ、まずソース側を疑うのが普通でしょ。
何でそれをやらないのか不思議でしょうがない。

ソース側がサムネイルを提供してるならサムネイルが表示されるのが正常な動作で受け取る側では
どうしようもない。

少なくともデータがビットマップなら勝手に縮小するような仕様になってないのは確かだ。
356デフォルトの名無しさん (ワッチョイ a702-H/9o)
2021/06/19(土) 16:10:20.94ID:aMtkyk0f0
疑うソースがないからでは。
新規作成のプロジェクトに RichTextBox を張っただけで再現したし。
357デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/19(土) 16:34:18.74ID:Dd96s04da
>>356
えっと日本語通じてますか?
358デフォルトの名無しさん (ワッチョイ 4e63-r2cR)
2021/06/19(土) 16:42:34.90ID:uTQPbFOf0
通じるだけでいいのか?(挑発)
359デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/19(土) 17:09:46.83ID:Dd96s04da
>>342の人がソース側(コピー元)に使っているアプリがそうなっているか分からないが、
コピーやドラッグ操作が行われた時、デスティネーション側に提供するデータが

(1) 元画像のファイル名
(2) その画像のサムネイル

この2つを含む時、ペーストまたはドロップされる側のアプリがどちらを優先的に受け取るかによって
何が表示されるかは異なってくる。

>>350に書かれているような現象が起こるとしたらこういう理由でしょうね。
360デフォルトの名無しさん (ワッチョイ 0eda-B2Dz)
2021/06/19(土) 18:35:19.62ID:21QoYkZn0
有料サービスかYahoo!知恵遅れを使いたまえ
361デフォルトの名無しさん (ブーイモ MMff-YCR2)
2021/06/19(土) 23:50:18.43ID:c/Gc9inqM
>>359
ありがとうございます、350です、確かにクリップボードをみてみると同じjpgファイルでも
ペイントに表示させてからコピーしたものはイメージの形式がCF_DIBになっていて
エクスプローラからコピーしたものはCF_HDROPになっていました
予想ではrichTextboxはこのデータの形式によって挙動(優先順位もそうですが)が違うようで
CF_DIB(BITMAP)形式のデータを渡してあげないと等倍にはしてくれないようです

ここまでは教えて頂いて解ったのですがじゃあどうするかというとかなり難しいようで
スキル的にさっぱり解らないので今回は何か他の方法を検討してみようと思います
※ちなみにPictureBoxに表示させてからコピペしてもダメでした
362デフォルトの名無しさん (ワッチョイ b32f-C2Ex)
2021/06/20(日) 02:16:25.90ID:ly1l4Yun0
普通にエクスプローラからコピペとかドロップしたら、ファイル名が表示される気がするんだが
詳しい環境と手順書いてくれ
363デフォルトの名無しさん (ブーイモ MMff-YCR2)
2021/06/20(日) 08:47:45.77ID:j7B8ObuHM
>>362
解る限りですが……
VS:Version 16.7.2 win10 4K
ブラウザ:Chronme
手順は基本 >>342のとおりです、それ以外は特にいじっていないです
あとは下記2点で試しています
元ファイルはネットにある画像ファイル(不特定多数でなんでも)で
縮小は横幅が376(目読み 笑)ピクセル以上あればどれでも起こるようです
※PictureBox1.SizeMode = PictureBoxSizeMode.Zoom;と同じ挙動です

クリップボード内容はこれで確認しました
https://www.officedaytime.com/clipmm/

参考にしたのはここらへんです
https://www.atmarkit.co.jp/ait/articles/0012/19/news005.html
https://johobase.com/clipboard-get-set-csharp/
http://blog.esora.xyz/clipboard-auto-convert
https://docs.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats
https://dobon.net/vb/dotnet/system/clipboardformats.html

もちろんエクスプローラーからコピペしたものはファイル名も入っているのですが
前回その部分は割愛させていただきました
364デフォルトの名無しさん (ワッチョイ 5a01-QZnr)
2021/06/20(日) 11:30:26.30ID:VCVOwR8e0
ここを見るといいと思う
https://weblog.west-wind.com/posts/2020/Sep/16/Retrieving-Images-from-the-Clipboard-and-WPF-Image-Control-Woes
365デフォルトの名無しさん (ワッチョイ b32f-C2Ex)
2021/06/20(日) 13:09:02.38ID:ly1l4Yun0
RichTextBoxのEnableAutoDragDropはデフォルトfalseだから、そもそもドロップできないってのはおいといて

エクスプローラからRichTextBoxに(JPEG)ファイルをドロップやペーストしても
ファイル名が表示されるだけで、そこに画像が表示されたりしないだろって言ってるんだが

俺の環境だけか?
366デフォルトの名無しさん (ワッチョイ 9b0a-mD0S)
2021/06/21(月) 17:49:14.81ID:653L3PyX0
AppendAllTextとアクセス権についてお詳しい方いらっしゃいましたら教えてください。

今、とあるテキストファイルに対しデータを追加するコードを書いています。そのファイルのアクセス権は少し特殊で、上書き保存は許可せず、データの追加のみ許可しようと考えています。

OSはWin10ですので、ファイルのセキュリティの詳細設定から、データの書き込み許可のチェックは外し、データの追加の許可はチェックしてある状態です。
その状態でファイルに対しAppendAllTextを実行すると、ファイルのアクセスが拒否されたとのエラーが発生してしまいます。
StreamWriterやFileStreamを使ってデータの追加を試みても同様の結果でした。
実行アカウントが正しいことはWindowsIdentityから確認済みで、操作対象のファイルに対しデータの追加権限があることもSecurityManagerのIsGrantedで確認しました。
また、データの書き込みを許可するとエラーは出なくなります。

以上の現象は仕様なのでしょうか?
データの書き込みを許可せずにファイルにデータを追加する良い方法は無いでしょうか?
長文になり申し訳ありませんが、教え頂けると幸いです。
367デフォルトの名無しさん (ワッチョイ e778-OGVT)
2021/06/21(月) 18:56:22.55ID:p5QR5ZM70
それC#関係あるの?
368デフォルトの名無しさん (ワッチョイ 9b0a-mD0S)
2021/06/21(月) 19:09:48.17ID:653L3PyX0
>>367
許可は与えているのでできないのはC#側の仕様かと思い込んでいましたが、先程Pythonで同様の処理をしようとしても同じくエラーでした。
アクセス権はあるはずなのにできない理由が不可解ですが、C#固有の問題では無さそうなのでスレ違いでした。
お騒がせしました、ありがとうございました。
369デフォルトの名無しさん (テテンテンテン MMb6-8ohN)
2021/06/21(月) 19:44:00.59ID:ZPtJaOSgM
試さずに書いちゃうけど、
>>366のはFileStreamのコンストラクタでfileModeに「FileMode.Append」を明示的に指定した場合に限っては
エラーにならず意図したとおりに追記書き込みが出来そうな気がする

File.AppendAllTextのソースを軽く見た限りは
https://referencesource.microsoft.com/#mscorlib/system/io/file.cs,d673bcd88b09d5b8

https://referencesource.microsoft.com/#mscorlib/system/io/file.cs,4ff1446b33bdfb6b
って感じで細かいパラメータを指定せずStreamWriterを開いてるから
暗黙のうちにFileMode.Open(=追記に限らない汎用的な書き込み要求)でファイルを開こうとして
エラーになってるんだと思う
370デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/21(月) 19:57:20.17ID:/frx3MW9a
cmdで
echo AAA >> hoge.txt
とかやってもダメだねw

そもそも「書込み不可」なのに「追記可能」というのは矛盾しているようにしか聞こえない。
ググって↓の記事とか読んでみたがどうも判然としないね
https://milestone-of-se.nesuke.com/sv-basic/windows-basic/kind-of-permission/

逆に「書込み可能」と「追記不可」という組み合わせに意味があるってことなんだろうか?
371デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/21(月) 20:01:54.37ID:/frx3MW9a
>>369
やってみたがFileAccess.Writeを指定してオープンできへんので
当然FileMode.AppendもNG
372デフォルトの名無しさん (ワッチョイ b393-wi7e)
2021/06/21(月) 20:25:03.04ID:doqvFJGs0
>>369
スレチで終わってる話を蒸し返す
C#名物教えたがりマン
373デフォルトの名無しさん (ワッチョイ 9b0a-mD0S)
2021/06/21(月) 20:26:07.89ID:653L3PyX0
皆様ありがとうございます。
長くなりすぎて書くのを省いてしまったのですが、FileMode.Appendと明示しても駄目でした。
書き込みは既存の内容を変更するための権限と思っていたので追記は単独で機能すると考えたのですが、追記するにも書き込み権限が必要になるようですね…
374デフォルトの名無しさん (テテンテンテン MMb6-8ohN)
2021/06/21(月) 20:27:24.58ID:R1Q9shF9M
あーできないんかー

FileStreamの初期化処理見てみたら何かわかるかなあと思ったら
歴史の積み重ねというかなんとも泥臭いソースだった・・・
https://referencesource.microsoft.com/#mscorlib/system/io/filestream.cs,76ef6c04de9d0ed8,references
ファイル開く処理って当たり前だけどWin32APIなのね
375デフォルトの名無しさん (テテンテンテン MMb6-8ohN)
2021/06/21(月) 20:32:49.87ID:R1Q9shF9M
えースレチなの?
C#で書くソースでもNETFrameworkAPIの仕様についての話になるようなテーマはこのスレで書いちゃだめなのかあ
こんなんで教えたがりマン呼ばわりされちゃうのかあ
376デフォルトの名無しさん (ワッチョイ b393-wi7e)
2021/06/21(月) 20:41:48.04ID:doqvFJGs0
>>375
.NET APIの話ですらなく、NTFSの話だから完全にスレチ
上書き保存を禁止したファイルには追記もできない
377デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/21(月) 20:47:40.52ID:4MUa/1sNa
また下劣な交通整理マンが威張ってるのかw
ほんとバカだよなこいつ
378デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/21(月) 20:52:11.09ID:4MUa/1sNa
このバカの論理を厳密に適用したらこのスレの大半の質問はスレ違いになる。
そもそも>>366みたいな質問で誰が困るのかね。
だーれも困りゃしねーよバーカ。
単にお前が他人にケチを付けたいって卑しい動機で言ってるだけだろ馬鹿臭い。
379デフォルトの名無しさん (ワッチョイ b393-wi7e)
2021/06/21(月) 21:30:40.10ID:doqvFJGs0
>>378
え?ファイルシステムとC#なり.NET Frameworkなりにどんな関係が?
>>378の言うことを疎漏に適用したら5chにスレは一つで良いってことになるけどその境界は?
380デフォルトの名無しさん (ワッチョイ a75f-3RHv)
2021/06/21(月) 22:14:52.08ID:BUoiO5zG0
フルコントロールを外す
変更、書込に許可
特殊なアクセス許可で削除、ファイルの作成不許可だったかな
381デフォルトの名無しさん (ワッチョイ 0e68-l7Tt)
2021/06/22(火) 19:04:26.06ID:MwXlKMk/0
諸先輩の方々にご教授願いたい事があり、質問させていただきました。

皆さん、アプリを作成する際のアイコンはどこで仕入れてらっしゃいますでしょうか?

ツールバーのアイコンのセットを購入したいのですが、どこで皆さん買われてますか?

教えてください🙇🏻
382デフォルトの名無しさん (ワッチョイ ca33-N7Uk)
2021/06/22(火) 19:30:53.20ID:nUMy0Bm50
C#関係無し。次の方どうぞ。
383デフォルトの名無しさん (ワッチョイ 9a6a-meyV)
2021/06/22(火) 20:15:33.60ID:OGQvzFYh0
https://docs.microsoft.com/ja-jp/visualstudio/designers/the-visual-studio-image-library?view=vs-2019
384デフォルトの名無しさん (ワッチョイ 8754-LgoA)
2021/06/23(水) 02:14:59.51ID:7ER6/IiD0
例外処理をどうするべきか教えて下さい。

処理の流れは以下です。
@DBサーバーに接続
Aサーバーにクエリを投げてデータ取得
A取得したデータをFormのDataGridViewに反映

この場合、通信不調が原因で例外が発生しそうな場所は、
@接続タイムアウト
Aクエリ送信後に通信不調が発生しデータ取得不可
Bデータが取得できなかった場合にNullReferenceException
だと思っているのですが、どこでtry catch処理してユーザーに通知するべきなのでしょうか?
385デフォルトの名無しさん (ワッチョイ ca33-N7Uk)
2021/06/23(水) 08:25:05.59ID:ShlUbf0a0
C#関係無し。次の患者さんどうぞ。
386デフォルトの名無しさん (ワッチョイ 237c-wi7e)
2021/06/23(水) 08:54:43.68ID:Mu5bi6dj0
これは関係あるだろ
歴外処理は言語依存だ
387デフォルトの名無しさん (テテンテンテン MMb6-bi/t)
2021/06/23(水) 09:16:09.79ID:F5LywJDKM
>>384
NullReferenceExceptionが出るのはバグと見做すのが普通であり、明示的にnullチェックして例外を発生させないようにすべき
そもそも例外は個別に処理しないのが基本であり、ユーザーへの通知なんか最終的にはApplication.ThreadExceptionイベントでやればよい
その上でメッセージを出し分けたいとかリトライしたいとか個別の事由がある場合には処理に適した場所でキャッチして処理する
個別にメッセージ出したいならクリックのイベントハンドラなどUIの一番大元で処理するのが適切だろうな
388デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/23(水) 12:59:00.83ID:tnu5qnzMa
>>384
なんか抽象的過ぎて結局何が聞きたいのかよくわからない気が。

tryブロックをどこに書くべきかって話ならもちろん普通は発生個所に書く。っていうか、
通信が絡むならリトライする関係で必然的にそうなるよね?その上で必要ならそのまま再スローするか
ラップしてスローする。

リトライなんかしなくてもtryブロックはいちいち発生個所に書かないとダメ。なぜならどこで例外が
起こりうるかなんてだいたい理解しているのはそのコードを集中して書いてる時だけですぐに忘れるから

エラーメッセージの表示は誰の仕事かという意味ならそれはもちろんUIの仕事で疑問の余地はない。

あと間違ってるかもしれないが、↓の記事にあるような集約的に例外をトラップする機能は
プログラマが想定してない例外の発生(要するにバグ)を想定して使うものであって
手抜きのために使うものではないと思う。
https://www.atmarkit.co.jp/ait/articles/1512/16/news026.html
389デフォルトの名無しさん (ワッチョイ 4ea7-Z1/y)
2021/06/23(水) 22:27:53.29ID:oXoNjVOZ0
終了処理がないなら例外は一番外側でcatchすればいいかな?
一番外側ってのはformでいうclickメソッドみたいなのね

終了処理が必要なとき
つまりDBの更新処理なんかに失敗したとき例外でぶっ飛ばしちゃうと
Rollbackができないのでcatchが必要

よくやる間違った組み方で
例外=エラーとして組んじゃうと
上記のようなときにエラーをうまく伝搬することができない
例外は本当に想定外の受け皿
ある条件下で起こることがわかっているものはエラーとして処理するとうまくいく
390デフォルトの名無しさん (ワッチョイ 5a01-QZnr)
2021/06/23(水) 22:35:03.91ID:mfn5LAEG0
>>389
>Rollbackができないのでcatchが必要

using TransactionScopeするといいよ
391デフォルトの名無しさん (ワッチョイ 4ea7-Z1/y)
2021/06/23(水) 22:58:23.05ID:oXoNjVOZ0
>>390
うーむ、DBのcompleteと
一連の処理の成功が
完全にイコールの場合はいいけど
最後にファイル書き込み&メール送信
失敗したらRollback
みたいなときは注意が必要だな
大抵はうまくいくけども
だからこそ落とし穴になるというか

システムにガッツリ入れ込むんじゃなくて使わないときの選択肢はほしいな
392デフォルトの名無しさん (ワッチョイ 5a01-QZnr)
2021/06/24(木) 00:08:14.09ID:PG/lAwcj0
>>391
>最後にファイル書き込み&メール送信
>失敗したらRollback

それはファイル書き込みやメール送信が成功した後に
DBコミットが失敗するケースを考えないといけないから設計も運用も煩雑になるよ
DBコミット後にEventual Consistencyで対応したほうが楽

特にメール送信はキューへの書き込みくらいまでしかトランザクショナルに処理できないので
DBのトランザクションとは分けたほうがいいケースがほとんど
393デフォルトの名無しさん (ワッチョイ 9b89-3lwz)
2021/06/24(木) 00:42:39.29ID:lRMvkPF00
質問失礼します。
いろいろ調べてこちらのコードを書いてみたのですが、実行するとForm1_Loadの中身が反映されません。
まだHello World くらいしかやったことがないので本当に初歩的な質問かもしれませんが、どうぞよろしくお願いします。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
this.FormBorderStyle = FormBorderStyle.None;

this.WindowState = FormWindowState.Maximized;

this.TransparencyKey = this.BackColor;
}
394デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/24(木) 03:59:04.52ID:rpTvuBDma
>>393
この記事を読んでもらった方が早いねたぶん
http://dobon.net/vb/dotnet/help/eventhandler.html

イベントの「正体」はデリゲートというものを理解するまで理解できないと思う。
デリゲートは初心者にはなかなか理解しづらいと思うので、今は理解できなくてもそのうちわかると
気楽に考えた方がいいと思う。気にするとたぶん挫折する。
395デフォルトの名無しさん (ワッチョイ 8abd-OKjj)
2021/06/24(木) 22:27:46.69ID:i+Vi3+/e0
教えて下さい。

List<List<string>> lstA = new...(略
for( 0から複数回ループ ){
List<string> lstB = new ...(略

switch aa{
case 1
lstB = 代入 break
case 2
   lstB=代入  break
case 3
   lstB = 代入 break

lstA.AddRange(lstB)
}

コード売る覚えですけど、リストの中にリストをぶっこみたいんですけど、未割り当てでdefaultがないと怒られるんですけど、例外がない場合ってどうしたらいいんですか?
396デフォルトの名無しさん (ブーイモ MM26-19dE)
2021/06/24(木) 22:29:11.05ID:rge7FtvrM
× うるおばえ

〇 うろ覚え
397デフォルトの名無しさん (ラクッペペ MMb6-r2cR)
2021/06/24(木) 22:37:46.49ID:aX40sl0UM
不本意かもしれないけどいずれかのcaseをdefaultにする
or
defaultブランチを書いてcontinue
398デフォルトの名無しさん (ブーイモ MM26-19dE)
2021/06/24(木) 22:48:05.74ID:rge7FtvrM
適当な例外投げとけばバグも見つかって一石二鳥

default: throw new InvalidOperationException();
399デフォルトの名無しさん (ワッチョイ f662-p8Qy)
2021/06/24(木) 22:56:46.52ID:b77M28pt0
最近はSwich文を全く使わなくなったな

List<string> lstB = aa swich{
1 => 代入,
2 => 代入,
3 => 代入,
_ => new ...(略,
}
400デフォルトの名無しさん (ワッチョイ f662-p8Qy)
2021/06/24(木) 22:58:50.51ID:b77M28pt0
t が抜けてるけど気にしないでくれ
401デフォルトの名無しさん (ブーイモ MM26-19dE)
2021/06/24(木) 23:02:06.74ID:rge7FtvrM
その前にListの階層からして使い方が適正なのかが怪しい気がする
AddRangeするけど省略されている "代入" がちゃんとそういう内容なのか
402デフォルトの名無しさん (アウアウウー Sad3-kMi9)
2021/06/25(金) 00:41:42.94ID:wXZRavwVa
真面目に質問しているようには見えんねw
こんな過疎スレでつまんないネタ展開して何が楽しいのか俺には理解できない。
普通にスベってるし
403デフォルトの名無しさん (ワッチョイ 7fa7-KW7t)
2021/06/25(金) 13:25:51.80ID:5MBIcCm10
ファイルフォーマットや電文にenum入れたクソがいて
文字列で保存されてたり
数値で保存されてたりして
グチャグチャなんだけど
enumの値ってどうやって保存しておくといいの?
404デフォルトの名無しさん (ワッチョイ cfad-4Zym)
2021/06/25(金) 14:07:21.71ID:GFvOt5Sm0
あたいの知ったこっちゃないね!
405デフォルトの名無しさん (ワッチョイ 7fa7-KW7t)
2021/06/25(金) 14:14:28.34ID:5MBIcCm10
c#側はEnum.Parseとか言うのがあって
数値も文字列もいける?らしいけど
受け側からふざけんなクソがって言われてる

こんなの使ったばっかりに
406デフォルトの名無しさん (ワッチョイ 3f4b-hpQZ)
2021/06/25(金) 14:28:37.77ID:uD9w9riW0
仕事の愚痴は上司に言ってください
407デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/25(金) 14:35:32.46ID:j/rxeqaFM
>>403
> ファイルフォーマットや電文
一番最初に決める事柄だろ…
408デフォルトの名無しさん (ワッチョイ 3f01-0Hhk)
2021/06/25(金) 14:46:03.09ID:eNSUt1x80
enumは何も悪くないような・・・

普通は数値じゃなく文字列でシリアライズする
409デフォルトの名無しさん (ワッチョイ 3fad-D3r+)
2021/06/25(金) 16:13:46.18ID:i6/+pAU60
電文…
410デフォルトの名無しさん (ワッチョイ 8fe3-0Yon)
2021/06/25(金) 16:57:16.22ID:JjIudpyP0
C#側でenumをシリアライズしたなら皆数値になるんじゃないのか
ファイルや電文に文字列や数値が混在するのはそのフォーマットの問題やんけ
411デフォルトの名無しさん (アウアウウー Sad3-kMi9)
2021/06/25(金) 17:04:30.32ID:LgKicgUoa
>>403
別に揚げ足取りとかじゃなく、何がベストな方法かは要件次第なので、
要件をオープンにしたままで何がベストって言われても誰も答えようがないと思うよ。

なんか半年ぐらい前にもenumなんかイラネーって持論を展開してた人が
おった気がしたけどひょっとして同じ人だったりするんだろうかw
412デフォルトの名無しさん (ワッチョイ ff62-ajHE)
2021/06/25(金) 20:50:22.66ID:t4QgArn70
bool値が文字列か01かもバラバラになってそう
413デフォルトの名無しさん (ワッチョイ cfad-4Zym)
2021/06/25(金) 21:02:25.32ID:GFvOt5Sm0
booleanはtrueかfalseであって、文字列でも0/1でもない。
414デフォルトの名無しさん (ワッチョイ 4f02-mRK3)
2021/06/25(金) 23:14:59.07ID:Gf4W5qTu0
true/false も文字列も 0/1 も真偽値の状態を表す状態や表現でしかないけどな。
415デフォルトの名無しさん (ワッチョイ 8fad-7IRr)
2021/06/26(土) 01:39:51.28ID:Gmvay1qu0
真偽値はbooleanだろ
416デフォルトの名無しさん (ワッチョイ 0f93-k2Yt)
2021/06/26(土) 01:47:12.49ID:TsbOcfQ80
>>414
但しここはC#スレ
bool値はtrue/falseを取る
417デフォルトの名無しさん (ワッチョイ ff62-ajHE)
2021/06/26(土) 17:38:38.83ID:nbDJ23iI0
>>413
だからフォーマットを決めとかないとコンバート時にオレオレ変換されるってはなしだろ
418デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/26(土) 18:00:46.03ID:Dfaqq5JIM
>>413
せめて
> ファイルフォーマットや電文
の話であることぐらいは理解しようよ
419デフォルトの名無しさん (ブーイモ MM0f-GPmn)
2021/06/26(土) 19:57:39.60ID:6B9mEdr7M
ValueObjectって構造体とクラスどっちがいい?
デフォルトコンストラクタを禁止できないからクラスにしてるけど
パフォーマンスを考えると構造体にしたい
420デフォルトの名無しさん (ワッチョイ 8f2f-Sr02)
2021/06/26(土) 22:10:38.87ID:jLzVoQEP0
>>419
ValueObjectは一般的にはDBやバックエンドAPIが裏にあり、オブジェクトの生成や破棄のコストはDB操作やWebリクエストに比べれば完全に無視できる
そのため制約が多くORM等のツールとの相性も悪い構造体をあえて採用する理由はないから、議論の余地なくクラスを採用すべき
DBが裏にないんだったらそもそもレールを外れているのでもはや一般論で議論しても仕方なくて、ユースケース等を考慮して君の頭で判断したらいい
421デフォルトの名無しさん (ワッチョイ 4f5f-Kwl4)
2021/06/27(日) 00:14:41.41ID:WofWhilS0
visual studioでデザイナーからマウスポチポチして部品を設置するのと
コードを書いて部品を表示するのはどっちがいいのでしょうか?
422デフォルトの名無しさん (ラクッペペ MM4f-etsk)
2021/06/27(日) 00:33:47.16ID:O5EL/pxwM
しらんがな
好きにしろよ
423デフォルトの名無しさん (スププ Sd5f-haIp)
2021/06/27(日) 05:47:23.56ID:fv02sAlld
>>421
両方やればいいじゃん。
中身を理解できるからコードを書けばいいし、
判んなくなったらマウスで配置しちゃえばいいのさ。
424デフォルトの名無しさん (ワッチョイ 7f2c-0Yon)
2021/06/27(日) 11:05:00.99ID:Vxb3PSG20
>>421
マウスで1ドット2ドット移動調整すんのめんどくさくなって今はコード
TextBoxを10ドット長くしたらその右のTextBoxも10ドットマウスで動かすなんてやってられんわ
425デフォルトの名無しさん (ワッチョイ cfad-4Zym)
2021/06/27(日) 11:11:04.19ID:KmuHayn70
カーソルキー使わんのか
426デフォルトの名無しさん (ワッチョイ 4f78-jM1H)
2021/06/27(日) 14:45:41.50ID:nWiM91TM0
>>424
デザイナ使った方が圧倒的に楽なんですがそれは
427デフォルトの名無しさん (ワッチョイ 3fe4-+WZO)
2021/06/27(日) 15:07:56.63ID:Zt61L+c30
質問させてください。
ある特定のライブラリを使わなくてはいけなくて、そのメソッドは引数にrefが付いているものになります。
このメソッドに渡したいのは不変の値(constの意味)となります。

不変の値自体は別クラスに用意してあって、各所で使いまわしたいので読み取り専用のプロパティかstatic read onlyで定義したのですがrefが付いた関数に渡そうとするとstaticなものは渡せない、型が適していないとエラーとなります。

public constのような記述はすべきでないと見たことがあるので避けたいと思うのですが、初期化以降で変更を受け付けず、かつ各所で使えるようにして、参照渡しのメソッドも使えるようにするにはどのような方法が考えられますでしょうか?

分かりにくい説明で申し訳ありません。
428デフォルトの名無しさん (ワッチョイ 3f2c-aO17)
2021/06/27(日) 15:16:39.25ID:WunkWTgP0
どうもこうもないのでそのメソッドを呼び出すときにいったんローカル変数に移す
429デフォルトの名無しさん (ワッチョイ 7fa7-KW7t)
2021/06/27(日) 15:18:17.29ID:VoyuuGop0
そのメソッド、アホが作ったんでなければ何かの条件で値を書き換える可能性あるんじゃね?
ローカルに移す
430デフォルトの名無しさん (ブーイモ MM0f-GPmn)
2021/06/27(日) 15:23:05.27ID:7o91bmAZM
refパラメータはこいつを書き換えるぞという合図なので読み取り専用の変数を渡したらだめ
バグの原因になる
431デフォルトの名無しさん (スププ Sd5f-haIp)
2021/06/27(日) 15:41:17.93ID:fv02sAlld
なんでrefなのか確認しておいた方が良くない?
432デフォルトの名無しさん (ワッチョイ 3fe4-+WZO)
2021/06/27(日) 16:42:23.92ID:Zt61L+c30
>>427です
ありがとうございます。
そうか、1度ローカル変数に入れれば良いのですね…思いつかなかった。

具体的には制御装置と通信、データ操作する為のライブラリです。
自分は装置データの参照(○○という制御データの値を取得)しか利用するつもりは無かったのですが、よくよく考えれば、プログラム上で値を保持し続けて、そのデータを更新したりする場合には値を書き換えるのでrefでも良いのかもしれません。
もう一度マニュアルを読み直してみます。
433デフォルトの名無しさん (アウアウウー Sad3-nYnz)
2021/06/27(日) 17:03:53.98ID:bJFlr767a
なぜC#にはメソッドの const 修飾が無いのか
434デフォルトの名無しさん (ワッチョイ 3fe4-+WZO)
2021/06/27(日) 17:07:52.92ID:Zt61L+c30
>>432
自分で書きましたが違いますね…
○○ってデータを取ってこいという○○の部分は文字列としてメソッドに渡す仕様になっているのでデータそのものは変えていません。
やっぱり特別な意味があるのかもしれません(ないかもしれません)ので改めて確認してみます。
何度も書き込んですいませんでした。
435デフォルトの名無しさん (アウアウウー Sad3-kMi9)
2021/06/27(日) 18:33:32.39ID:t/dm3/tna
普通は意図をもって引数にrefを付けてるはずでしょうw
もちろんメソッドを書いた人が何か勘違いしてる可能性もないことはないが、普通は考えにくいよね。

いずれにせよ、refの引数を取るメソッドに対して

(1) 定数やリテラルを渡したい
(2) refによる「戻り値」は必要ない

こういうケースは普通にありえる。
436デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/27(日) 18:51:22.05ID:POf4PuR+M
>>435
どういうケース?
437デフォルトの名無しさん (ラクッペペ MM4f-tCTE)
2021/06/27(日) 19:15:22.32ID:mGOIcE7NM
TryParseで真偽値だけで要件満たす場合とか普通にあらあな
そもそもこの話は
* 無理なんでラッパメソッドでも噛ましてください
* そんなに気になるなら作者に質問してください。ここは作者の気持ちを予想するスレッドじゃないんでね(文系板に行くといいと思うよ)
で終わってる
438デフォルトの名無しさん (アウアウウー Sad3-kMi9)
2021/06/27(日) 19:25:36.70ID:t/dm3/tna
>>436
あんまり意味がある質問と思えんけど例えば

// EnqueueとDequeueを同時にやる
bool TryEnDeQueue<T>(ref T inOUt> {...}

こんなメソッドがあったとして、キューにリテラルを
突っ込みたいケースは普通にありえるし、
キューから取り出した値は必ずしも使わない(キューの要素数を変えたくないだけ)
というケースもありえるだろう。
439デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/27(日) 19:26:31.24ID:rwzQBskAM
TryParseって基本TryParse(xxx, out yyy)だろ?
定数渡すのはxxxだし、そもそもrefなんて使ってなくね?
440デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/27(日) 19:30:25.90ID:rwzQBskAM
>>438
> // EnqueueとDequeueを同時にやる
そんなメソッドが普通にあるって?w
441デフォルトの名無しさん (テテンテンテン MM4f-jzci)
2021/06/28(月) 07:27:53.64ID:3BMv071BM
値渡しではなく参照渡しであることを明記するキーワードのつもりで「ref」を書いてるとかじゃないかな
そういうクソみたいなコードのライブラリを平気で売ってる会社も世の中にはごまんとあるぞ
442デフォルトの名無しさん (ワッチョイ cfad-4Zym)
2021/06/28(月) 07:35:50.99ID:a1dCxCbm0
あたいは確かに値渡したよのさ
443デフォルトの名無しさん (アウアウウー Sad3-nYnz)
2021/06/28(月) 08:58:08.83ID:yki3tuNEa
>>441
const修飾が無い以上、表現として分かりやすいと思う
444デフォルトの名無しさん (ワッチョイ ff8b-Rf0K)
2021/06/29(火) 08:13:02.33ID:upDN03IZ0
VisualStudioで、C#を使ってプログラムを作成しています。webview2で待機する方法が見つからず困っています。
どう調べても出てこないので、ヤフー知恵袋で聞いてみましたが、回答をいただけず再投稿中です。質問の仕方がよくないのかもしれないですが…。
どうかよろしくお願いします。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14245327539
445デフォルトの名無しさん (ワッチョイ 3f01-EKdG)
2021/06/29(火) 08:42:27.78ID:WsUITHRN0
俺も初心者だけど、頑張って非同期処理学んだよ
非同期処理ってネット接続前提のプログラム書くなら避けて通れないんじゃね・・・(と思って俺は頑張った
446デフォルトの名無しさん (ササクッテロラ Spa3-Rf0K)
2021/06/29(火) 11:41:07.64ID:0Q09XEclp
いろいろ勉強したら解決しました。すみません。ありがとうございました。
447デフォルトの名無しさん (アウアウクー MMa3-MDar)
2021/06/29(火) 13:32:10.90ID:+VG1N6hxM
>>446
そういう時って解決した方法を書いて残した方が良い
448デフォルトの名無しさん (エアペラ SD5f-k2Yt)
2021/06/29(火) 17:49:08.51ID:OsdWQKMbD
なぜなら昨日の自分はもはや他人だから!
449デフォルトの名無しさん (ブーイモ MM0f-wfqF)
2021/06/29(火) 19:58:28.59ID:d9qF3Zj0M
イミュータブルなんだな
450デフォルトの名無しさん (ワッチョイ 7fa7-KW7t)
2021/06/29(火) 21:31:53.28ID:8Hq2zh0T0
ブラウザを貼るって通信できないとき放送事故みたいな感じだな
webアプリでデータだけとって画面表示は自前にせんと商品に見えんな
451デフォルトの名無しさん (スプッッ Sd4a-M8Gi)
2021/07/03(土) 10:36:51.73ID:afnPLxcZd
C#ってC++より速度遅いですか?
処理量多いともっさりするって聞いた気がするんです
452デフォルトの名無しさん (ワッチョイ 1ea7-tO4e)
2021/07/03(土) 11:39:31.05ID:tKf1c0EP0
>>451
遅い
だから速度に頼った実装はできない
画像処理なんかで速度が動作に関わってくるところは
思い切ってc++で組んでもいいかも?
データ移すのに時間かかってて意味なかったよってあるかもしれんが
453デフォルトの名無しさん (ワッチョイ cf78-gkPs)
2021/07/03(土) 11:58:17.56ID:0WAx0SVV0
動作速度と開発速度のどちらに振るか
まあ好きな方でやればいいんじゃね
454デフォルトの名無しさん (ワッチョイ 8f5f-Q9JX)
2021/07/03(土) 12:08:20.73ID:w8WWCmjZ0
UIをC#、
高速化の必要なロジックはC++とかでもいいんじゃないの

最近色んな機械の監視装置とか作るけど、
監視してアラートを上げるところまではC++にしてるよ
455デフォルトの名無しさん (ワッチョイ 8f5f-QeXB)
2021/07/03(土) 13:13:05.85ID:R7OScebH0
>>451
ボタンのイベントハンドラ内に処理を全部突っ込んで、ボタン押した時にウインドウが「応答無し」になったのを見て
「C#ってモッサリしてるんですね」って言ってる人を思い出した

ライブラリ使わずに自前で画像処理とかするのでもない限り、C#は十分な速度が出るよ
むしろヘタにC++で車輪の再発明されるより、C#でうまくライブラリも活用してくれた方が処理速度も開発速度も早いことが多い

まあ、コンパイラの最適化を超えるような本気で書かれたC++にはもちろん勝てないけど、そんなことができる人はここでそんな質問しないよね
(自分でベンチマークして確かめるから)
456デフォルトの名無しさん (ワッチョイ ab24-U8JP)
2021/07/03(土) 15:13:32.95ID:B0HXpNBH0
>>454
それよく言うけどUI部分でこそ差つくんだよな
WinFormsやWPFでGUI作るとコントロール上でマウス動かすだけでメモリがんがん増えてくしな
OnMouseMoveとか呼ぶたびにオブジェクト生成してるからだと思うけど
457デフォルトの名無しさん (ワッチョイ 8f5f-Q9JX)
2021/07/03(土) 17:54:53.32ID:w8WWCmjZ0
>>456
UIなんか人間相手に間に合えばいいんだから、遅くなっても構わねーだろ
458デフォルトの名無しさん (ワッチョイ deda-BgM4)
2021/07/03(土) 18:00:13.84ID:ZeViGhZj0
>>457
今後動画のFPSが6を超えなくなる呪いをかけたw

画像関係は「七難隠す」って言われるぐらい
速度が重要だよ
459デフォルトの名無しさん (ワッチョイ 63ad-hWEg)
2021/07/03(土) 18:08:16.14ID:IVHyImvm0
>>456
そんな事はない
460デフォルトの名無しさん (ブーイモ MMb6-ThLM)
2021/07/03(土) 18:13:55.16ID:xqsTC6PPM
スレッドセーフじゃないメソッドを擬似的に非同期に見せるためにメッセージループみたいな仕組みを作りたいんだけどなんか簡単な実装方法ってないかな?
非同期キューと無限ループするスレッドを作ってぐるぐる回す的な実装なら作れるんだけど
スレッドが落ちた場合にどうするか、ループぐるぐる回すとCPU無駄じゃないか、でもDelayで待つのもTask大量生成して勿体無い気がする、、、
みたいに考え出すとよくわからなくなった
思考停止して使えるライブラリがあるならそれ使いたい
461デフォルトの名無しさん (アウアウウー Sacf-US9C)
2021/07/03(土) 18:29:30.32ID:gYtBLHlma
>>460
ちょっと何を言ってるのか。

スレッドセーフとは不特定のスレッドからの呼び出しで問題を起こさないこと。
非同期とはメソッドの処理が呼び出し側と別のスレッドで実行されること。

この2つがどう矛盾するのかさっぱり。
462デフォルトの名無しさん (ワッチョイ deda-BgM4)
2021/07/03(土) 18:30:29.23ID:ZeViGhZj0
>>460
backgroundWalker が脳筋でも使える
463デフォルトの名無しさん (ブーイモ MMb6-ThLM)
2021/07/03(土) 19:11:11.92ID:xqsTC6PPM
IObservableとかでうまいことできんかな?
464デフォルトの名無しさん (ブーイモ MMb6-kf3V)
2021/07/04(日) 00:40:45.70ID:YIai1OGNM
>>461
非同期処理は単に処理の終了を待たないだけで必ずしも別スレッドは必須じゃない
非同期処理≠並列実行

時間分割のマルチタスクで同じスレッドで実行されるかもしれない
465デフォルトの名無しさん (アウアウウー Sacf-US9C)
2021/07/04(日) 01:22:13.78ID:xQv4weefa
>>464
C#でわざわざ自分でノンプリエンプティブの
タイムスライスを実装する人っているの?w
OSも乗ってないマイコンの組み込みじゃないんだから
466デフォルトの名無しさん (ワッチョイ 0b90-TnCX)
2021/07/04(日) 01:46:34.84ID:pwN2nm3/0
スレッドプールのスレッドで他のスレッドで長い処理しててしかも一つしか空いてなく、かつ最大スレッド数に達してスレッド数増加できなかったら
同じスレッド使ったりとか
467デフォルトの名無しさん (ワッチョイ 8e2d-NaZp)
2021/07/04(日) 01:58:42.29ID:BjSt84AF0
>>460
キューにBlockingCollection使えば、キューが空の時に待機してくれる
468デフォルトの名無しさん (ワッチョイ 1ee3-U8JP)
2021/07/04(日) 02:03:43.36ID:QwWGOXoT0
>>467
あれキューに入ってから取り出して処理する間に論理コア全て使われてたら処理待つのかな?
469デフォルトの名無しさん (ワッチョイ 1e10-kf3V)
2021/07/04(日) 07:21:36.03ID:8398ur6Y0
SemaphoreSlimじゃダメなん?
470デフォルトの名無しさん (ワッチョイ ea2c-BDhO)
2021/07/04(日) 07:31:38.01ID:P9LAGSNy0
>>465
タイムスライスではないけど
同一スレッドで非同期はCompletionTaskSourceで割とやる
ウィンドウが閉じたら完了になるTaskとかね
471デフォルトの名無しさん (ブーイモ MMc6-kf3V)
2021/07/04(日) 23:19:38.18ID:LPsaiBJHM
>>465
c#どうこうじゃなくて一般的に非同期処理って別に他のスレッドを使いますって言ってない
ノンブロッキングなものが非同期であるだけ

初心者が非同期処理を並列処理そのものと勘違いするから嘘を教えないで欲しいだけだ
472デフォルトの名無しさん (アウアウウー Sacf-US9C)
2021/07/04(日) 23:49:45.24ID:2lvTDu+Ca
>>471
もう言ってること無茶苦茶w
逆である。

「一般的には」マルチスレッドを使って複数の処理を並列に走らせることを非同期という。

VBAみたいなマルチスレッド非対応の環境で疑似的に複数の処理を並列に走らせることを
便宜上「非同期」と呼ぶことはあるいはあるかもしれない。

しかしそれはあくまで括弧つきの「非同期」だ。
一般的な非同期ではない。
473デフォルトの名無しさん (テテンテンテン MMc6-rRq2)
2021/07/05(月) 00:05:47.95ID:YTxGqAmPM
>>472
> 「一般的には」マルチスレッドを使って複数の処理を並列に走らせることを非同期という。
プログラムとデバイスで処理を並列に走らせるのも非同期だよ
お前の一般的の世界が狭すぎるだけ
474デフォルトの名無しさん (アウアウウー Sacf-US9C)
2021/07/05(月) 00:19:55.55ID:7etiVvGGa
>>473
SendXXに対してPostXXを非同期と言ったりもする。
だが>>460はそんな話はしていない。

頭痛いバカだな。少しは文脈を考えてくれ。
こういうバカ、自分がくだらない揚げ足取りをやっている自覚が本気でないんだろうか。
475デフォルトの名無しさん (ワッチョイ 63ad-bt2W)
2021/07/05(月) 01:46:57.93ID:9YH14xqL0
単純に処理がブロックされるかされないかなのでは?同期・非同期って
476デフォルトの名無しさん (ワッチョイ 1ea7-tO4e)
2021/07/05(月) 02:32:04.04ID:lVBHv1fU0
グーグル先生

同期処理では、あるタスクが実行している間、他のタスクの処理は中断される方式です。 非同期処理は、あるタスクが実行をしている際に、他のタスクが別の処理を実行できる方式になります。
477デフォルトの名無しさん (テテンテンテン MMc6-rRq2)
2021/07/05(月) 05:09:53.21ID:qo1brwBhM
>>474
お前は自分が「一般的には」と書いたことも忘れたのかよ

> こういうバカ、自分がくだらない揚げ足取りをやっている自覚が本気でないんだろうか。
でかいブーメラン刺さってんぞw
478デフォルトの名無しさん (ワッチョイ deda-BgM4)
2021/07/05(月) 06:49:42.53ID:2Erd1U7e0
>>475
一票ノシ
479デフォルトの名無しさん (ワッチョイ ab24-U8JP)
2021/07/05(月) 07:40:09.13ID:14em3QBL0
>>472
jsはシングルスレッドだぞ
C#より一般的な言語だからシングルスレッド非同期は一般的とも言える
480デフォルトの名無しさん (ワッチョイ 63ad-hWEg)
2021/07/05(月) 08:30:38.62ID:9YH14xqL0
jsはVB6と同じくマルチスレッドをサポートしていない特殊な環境だからね。
481デフォルトの名無しさん (テテンテンテン MMc6-rRq2)
2021/07/05(月) 09:22:22.36ID:qo1brwBhM
なんでスレッドにこだわってるの?
VB6もJSもマルチプロセスで走らせられるよ
482デフォルトの名無しさん (テテンテンテン MMc6-Gp+e)
2021/07/05(月) 09:32:14.42ID:o1i1lUq1M
Async/Awaitはマネージスレッド使ってるケースのほうがむしろ少数派じゃないの
ネットワーク、DB、ファイルIO、どれをawaitしてもマネージスレッドはほとんどの場合シングルスレッドだよ
483デフォルトの名無しさん (ワッチョイ 23e5-T6PF)
2021/07/05(月) 10:41:33.34ID:hHXc8jy70
インスタンスをもりもり作ってて思ったのですが、プログラムが実行されているコンピュータにインスタンスが作られているんですよね?
クラサバならクライアント
webサーバならwebサーバに
484デフォルトの名無しさん (ラクッペペ MMc6-Q0eP)
2021/07/05(月) 11:49:46.38ID:d5yMegV0M
歴史をコリエイトする!みたいな?
485デフォルトの名無しさん (ブーイモ MMb6-ThLM)
2021/07/05(月) 11:57:54.93ID:WdSYkRT7M
>>460だが結局Channelで実装したよ
Awaitしやすくて便利やねChannel
もう非同期コレクション要らないんじゃないかな
ぐるぐるスレッドが例外でも補足できないレベルで異常終了したら
どう回復すんのかわからんけどそんなこた無いだろうということで妥協
486デフォルトの名無しさん (ワッチョイ 1ea7-tO4e)
2021/07/05(月) 13:22:46.85ID:lVBHv1fU0
まあ、c#のお手軽非同期処理って使ってあるところだいたいバグってるよね

スレッドが2つあったら
単位時間あたりの処理の分け前って一体どうなってん?
って計画されてない処理はだいたい本番であの世行きなんだけど
引数にそんなのいれるとこないしねw
487デフォルトの名無しさん (アウアウクー MM63-uuo+)
2021/07/05(月) 14:37:10.58ID:q4xU82vuM
データベースとの接続やデータのやり取りはEntityFrameorkを使う事が一般的なのでしょうか?
SQLを書くやり方と、EntityFrameorkを使う場合の切り分ける基準はどこになりますか?
488デフォルトの名無しさん (ワッチョイ 86da-YEpR)
2021/07/05(月) 14:50:43.99ID:RRwsgi3K0
開発生産性かな。
テーブル構造がコロコロ変わる開発初期段階でEF使うととっても楽よ。
コードファーストなEFが勝手にDBを変更してくれるから別途DB管理ツールがいらないのでC#のみに集中できる。

すでにかっちりとしたDB(テーブル)があるモデルファーストなら、速度面重視でEFよりdapperかな
EFは機能がリッチな分、テーブル内の大量レコードを扱うと速度面不利なところがある。
小規模人数しか使わないシステムならEFでも全然アリ。
不特定の数万人が使うシステムならEFで初めて方針が固まったところやボトルネック部分を
dapperに置き換えるか、巣のSQL文にしていく。
489デフォルトの名無しさん (ブーイモ MMb6-ThLM)
2021/07/05(月) 16:00:21.70ID:BIU2WbVdM
>>487
今なら迷わずEFでいいと思う
更新系はEF即決
参照系もほとんどEFでいい
生SQLも実はEFで発行可能
マイグレはEFしか選択肢がない
490デフォルトの名無しさん (ワッチョイ 8e67-Z49C)
2021/07/05(月) 19:15:27.44ID:HXCyr6Ze0
try-catchの外からcatchの中にgotoでジャンプって出来ないのね
逆にcatchから抜けるのは出来るみたいだから同じ処理2回書かなくて済んだけど、
ifやループの中にジャンプはできて何故これが出来ないんでしょうか
491デフォルトの名無しさん (ブーイモ MMc7-Gp+e)
2021/07/05(月) 20:18:35.29ID:MBPFCQ16M
例外オブジェクトが必須だからだろ
throw;とかどうすんだよ
492デフォルトの名無しさん (ワッチョイ fabd-36EZ)
2021/07/05(月) 23:20:30.17ID:UriEAYwq0
文字列の空を数値の0にする方法ないですか?
493デフォルトの名無しさん (ワッチョイ 1ea7-tO4e)
2021/07/05(月) 23:34:11.67ID:lVBHv1fU0
変換しろよ
494デフォルトの名無しさん (ワッチョイ 1e63-1TTA)
2021/07/05(月) 23:58:24.33ID:ts/O0CHN0
なんか冷たくない?
495デフォルトの名無しさん (ワッチョイ 1ea7-tO4e)
2021/07/06(火) 00:48:19.77ID:661qfOKl0
なんか隠れてる前提条件にあえて触れたくない
496デフォルトの名無しさん (ワッチョイ 1ea7-tO4e)
2021/07/06(火) 00:52:48.52ID:661qfOKl0
そしてこれは多分まずい
空文字をゼロにできても
ゼロを空文字には戻せないから
また、元からゼロのモノと空文字だったものもどう判別するのか?
まあ、普通はやんね
仕様から見直す必要があると思われる
497デフォルトの名無しさん (ワッチョイ ab2c-Ijop)
2021/07/06(火) 01:00:07.10ID:AJxevGXU0
Ruby on Rails ではデフォルトで、Active Record と言う、O/R マッパー

Web 系では基本、SQL インジェクションされるから、
文字列を結合して、SQL文を作ってはいけない

Place Holder を使っているなら、エラーにされるから良いけど
498デフォルトの名無しさん (アウアウクー MM63-uuo+)
2021/07/06(火) 08:35:52.20ID:WEJnPcRAM
>>487です

>>488
>>489
ありがとうございます。
早速EntityFrameworkを使用してみました。
コードファーストでDBを作成し、visual studioのSQL Serverオブジェクトエクスプローラー上でもDBが作られている事は確認出来ました。
ただこのデータベースはSQL ServerのSSMS上に表示されていません。
SSMSから見れないのが仕様なのでしょうか?
499デフォルトの名無しさん (ワッチョイ de33-BXkI)
2021/07/06(火) 08:46:32.39ID:Wb73fCp10
localDBに作っちゃってるんじゃね?
500デフォルトの名無しさん (ワッチョイ 0be4-06wU)
2021/07/06(火) 17:24:46.35ID:h+E/IFQO0
>>492
エスパーだけど文字列を空白で分割したいならばString.Splitとか使えって話ではない?
501デフォルトの名無しさん (ブーイモ MMef-kf3V)
2021/07/06(火) 19:18:13.51ID:iVjdX3TVM
>>472
言ってることが馬鹿すぎて笑える
502デフォルトの名無しさん (ワッチョイ 1e63-1TTA)
2021/07/06(火) 20:38:06.21ID:qUsPK4G40
目が笑ってないんだよな
503デフォルトの名無しさん (ワッチョイ 035f-Ijop)
2021/07/06(火) 21:32:01.28ID:unMXYXmh0
int x = 0;

x == 0
x.Equals(0)
x is 0

なんで3つも書き方があるんだ?
504デフォルトの名無しさん (ワッチョイ 3a33-S78d)
2021/07/06(火) 21:59:56.43ID:PbL+Rk1v0
C#初心者用のスレだが、
コンパイルできる事くらい確かめてから質問しろよ。
なぜ3通りあると思ったんだ?
505デフォルトの名無しさん (ワッチョイ 1e63-1TTA)
2021/07/06(火) 22:56:03.78ID:qUsPK4G40
いいから質問に答えろよ穀潰し
506デフォルトの名無しさん (スププ Sdaa-Z9vJ)
2021/07/07(水) 05:58:23.14ID:3z2Vox4wd
>>492
あー、前ゼロ付けたいのね?
外出先のスマホだから調べにくいけど、Formatとかの書式変換みたいなの調べれば良いと思うよ。
ただ空白をゼロにするだけならリプレイスで。
507デフォルトの名無しさん (ワッチョイ 63ad-bt2W)
2021/07/07(水) 07:42:20.71ID:7r/+mfxP0
>>503
q)何故か?
a)3通り実装したから
508デフォルトの名無しさん (ラクッペペ MMc6-n/eC)
2021/07/07(水) 11:54:05.00ID:s2USQjL6M
ナイスジョーク!
お前の顔の造形くらいには面白いな
509デフォルトの名無しさん (ワッチョイ ab24-U8JP)
2021/07/07(水) 12:01:06.81ID:Lzprbr4S0
int変数 is 0って書けたっけ?
isって型チェックのみだろ?
510デフォルトの名無しさん (ワッチョイ 8f5f-buyg)
2021/07/07(水) 14:43:54.17ID:8EkUrPvp0
.net frameworkと.net coreの2種類ありますけど
.net coreで作った場合、プログラムを動かす環境に.net coreをインストールしてもらわないと動かないのでしょうか?
511デフォルトの名無しさん (ワッチョイ 7f0c-/WEj)
2021/07/07(水) 15:47:52.56ID:qdKPR4G70
>>510
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/

インストール不要のランタイム丸ごとぶっこ込んで配布する選択肢もあるよ
512デフォルトの名無しさん (ワッチョイ 46de-tO4e)
2021/07/07(水) 17:53:15.05ID:qeN2wEzY0
>>503
マジレスすると
他言語からの移植がしやすいようにするため
片っ端から機能を取り込んだ名残

そして意味不明なc#特有のお便利新機能はすべて
他言語への移植妨害
513デフォルトの名無しさん (ワッチョイ 46de-tO4e)
2021/07/07(水) 17:55:43.88ID:qeN2wEzY0
色んな言語で各社負けじと機能を取り込み&追加したら一つのことやるのに複数の方法があるようになった

ように見える(´∀`*)ウフフ
514デフォルトの名無しさん (ワッチョイ 1ef2-TMbC)
2021/07/07(水) 18:47:14.86ID:Xt2P64w80
山登るのに登山道複数あってもええやん
515デフォルトの名無しさん (ワッチョイ deda-BgM4)
2021/07/07(水) 21:20:44.31ID:WowgMcxm0
偽金庫岩を右折な
516デフォルトの名無しさん (ワッチョイ 7f68-kf3V)
2021/07/08(木) 06:07:58.03ID:1YfxefkH0
>>503
機能は同じでも仕様の由来というか系統が違うんじゃない?

x == 0 は通常の比較演算子。

x.Equals(0) はメソッド。
自分で比較の条件を組んでIEquatable<T>でオブジェクトに等価性判断の実装したりとか。
ぶっちゃけ、自分で組んだら比較した振りも出来てしまう。

x is 0 はパターンマッチングとかいう奴かな。自分はよく理解してない。
517デフォルトの名無しさん (テテンテンテン MMc6-rRq2)
2021/07/08(木) 08:11:23.50ID:4npUp7i4M
== も再定義できるよ

is は悪乗りしすぎ
x is 2 or 3 or 5 なんて書けたりする
518デフォルトの名無しさん (ブーイモ MMb6-ThLM)
2021/07/08(木) 08:55:46.11ID:o2kVhBadM
変数を一回書くだけでいいから便利だね
519デフォルトの名無しさん (ワッチョイ 8ae4-06wU)
2021/07/08(木) 18:29:56.70ID:k+qVnEjt0
>>516
== はC言語
Equals はC#
is はVisualBasic(さかのぼるとCOBOL風?)

って感じではないか?
520デフォルトの名無しさん (ワッチョイ 355f-xNKK)
2021/07/09(金) 13:00:38.04ID:oetY1l3k0
>>510
.NET Frameworkが何もなしに動くと思ってそうだなあ
521デフォルトの名無しさん (ワッチョイ fdad-6KIo)
2021/07/09(金) 13:34:58.55ID:LY/QfnIe0
別にそうは思わんが
522デフォルトの名無しさん (ワッチョイ ab2d-O0xy)
2021/07/09(金) 17:21:34.33ID:amoMJeJ30
Windows10 May 2019 Update以降なら.NET Framework 4.8が最初からインストールされてるので
ほとんど気にしないで良くなった
523デフォルトの名無しさん (ブーイモ MMc9-u7yY)
2021/07/09(金) 19:04:45.72ID:lAEJntQuM
>>510
Core系(.NET5以降含む)は基本的にWindowsに入ってないことを前提にするのが正しい
頻繁に更新されて全部サイドバイサイドだから、利用者にインストールを要求するのもやめた方がいい
デスクトップアプリなら>>511の言うようにランタイムを丸ごとぶっこむ方式の一択と考えていい
実行環境の.NETランタイムに依存していいのはWebアプリなどでデプロイ先のマシンが完全に自分の制御下にある場合のみ
デプロイ時のファイルサイズを抑えるためのキャッシュみたいなもんだ
524デフォルトの名無しさん (ワッチョイ 23ad-wBny)
2021/07/09(金) 22:48:03.29ID:DRESa+zP0
>>523
全部サイドバイサイドってのは嘘
525デフォルトの名無しさん (ワッチョイ 23ad-wBny)
2021/07/09(金) 22:52:18.07ID:DRESa+zP0
昔は確かにそうだったけど、去年から月次アップデートはMicrosoft Updateで配信されてインプレースインストールできるでしょ?
526デフォルトの名無しさん (ワッチョイ 2301-+3pb)
2021/07/10(土) 05:46:33.21ID:QMdSDj/s0
コンソールアプリでHtmlを取得するプログラムを試しています
ちょっと古いのですが、勉強のため、DownloadStringAsyncを使っています
完了処理を登録したイベントハンドラがうまく動きません。理由はどこにあるのでしょうか?

static void Main(string[] args)
{
var uri = new Uri("https://www.yahoo.co.jp/";);
GetHtml(uri);
}

static void GetHtml(Uri uri)
{
var client = new WebClient();


ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

client.DownloadStringCompleted += Client_DownloadStringCompleted;
client.DownloadStringAsync(uri);
}

private static void Client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
MessageBox.Show(e.Result);
}
527デフォルトの名無しさん (ワッチョイ 2301-+3pb)
2021/07/10(土) 05:46:50.70ID:QMdSDj/s0
DownloadStringAsyncではなく、DownloadTaskAsyncを使った場合はHtmlをちゃんと取得できています。
(文字化けにはまだ対応してませんが)

static void Main(string[] args)
{
var uri = new Uri("https://www.yahoo.co.jp/";);
var result = GetHtml2(uri);
MessageBox.Show(result.Result);
}

static async Task<string> GetHtml2(Uri uri)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
var client = new WebClient();
var result = await client.DownloadStringTaskAsync(uri);
return result;
}
528デフォルトの名無しさん (アウアウキー Sa91-6KIo)
2021/07/10(土) 07:46:29.98ID:EJSmba2ua
結果が帰ってくる前にプログラムが終了するから。
529デフォルトの名無しさん (ワッチョイ ab2d-O0xy)
2021/07/10(土) 07:52:08.32ID:Rzopl14C0
>>527はawaitしてるのに>>526はawaitしていないから>>528となる
530デフォルトの名無しさん (ワッチョイ 2301-+3pb)
2021/07/10(土) 08:31:16.30ID:QMdSDj/s0
>>528,529
ありがとうございます

Mainの最期にConsole.Readline();を入れたら動きました
よく見たら自分の使っているテキストにもこれが入ってました
見落としていました

DownloadStringAsyncはawaitには対応していないということなので、>>526をawaitを使って書きかえることはできないという認識でいいですか?
531デフォルトの名無しさん (ワッチョイ ab2d-O0xy)
2021/07/10(土) 08:53:52.68ID:Rzopl14C0
>>530
すまんDownloadStringAsyncの仕様を確かめないで妙なレスをしてしまった
それであってます
532デフォルトの名無しさん (ワッチョイ 355f-xNKK)
2021/07/10(土) 09:13:10.13ID:o1Fr1a0g0
.NET Frameworkはもう先がないので今新規開発するなら.NET 5一択
.NET Frameworkからの移行は手間がかかる
533デフォルトの名無しさん (ワッチョイ 2301-+3pb)
2021/07/10(土) 10:37:58.85ID:QMdSDj/s0
>>531
ありがとうございました!
534デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/10(土) 11:15:59.02ID:6cPOy8xla
HttpClient使わんの?
535デフォルトの名無しさん (ワッチョイ 2301-+3pb)
2021/07/10(土) 11:59:52.40ID:QMdSDj/s0
>>532
VSのアプデがうまくいかなくて.NET5導入失敗してます
ちょっと調べてみます
>>534
自分でたまに作るショボイアプリでは使ってます
ただ、今みたいに適当にググってなんとなく使ってるとわけ分からなくなってくるので
頭整理して、基本的な雛形作っておこうかなと
536デフォルトの名無しさん (ワッチョイ f573-DcAx)
2021/07/10(土) 12:32:26.07ID:fmB/UGP20
移行に手間とかかかるか?
大抵は.net4のものは、net5にそのままコンパイル可能だと思うのだが。
Reflectionの深い機能使ってない限り。
537デフォルトの名無しさん (ワッチョイ 2312-O0xy)
2021/07/10(土) 12:45:55.81ID:vXwtga0B0
どのWindowsにも.net frameworkが最初から入ってるっていうのは長所だと思うんだけど
.net core以降ではその長所を棄てるということなのか?
538デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/10(土) 13:12:27.70ID:6cPOy8xla
俺はフレームワークのプレインストールは要らないと思うな
シングルバイナリとランタイム依存版をセットで提供するだけ
ランタイム依存版は使いたい奴だけ使えばいい
そいつは解ってる奴だからランタイムも自分で勝手にインストールするはずだ
解って無いやつは何も考えずにシングルバイナリでいい
解ってるけど多少の労力を支払ってまでランタイム依存版を使うほどリソースに困ってない人もシングルバイナリでいい
539デフォルトの名無しさん (アウアウウー Sa09-QOAx)
2021/07/10(土) 14:42:20.88ID:PtGlam4/a
>>538
その辺よく知らんのだけど、昔のスタティックリンクとは違うわけ?

つまり、実質的にまったく同一のバイナリが複数メモリーを
占有するようなことは起こらないような仕組みになってるん?
540デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/10(土) 15:39:29.96ID:qTmdpryya
>>539
仕様上はどうなってるか知らんがメモリには別々にロードされるんじゃないかなと思う

殆どの場合はその程度のリソース消費は気にしなくていい
特にDNFがプレインストールされてないとトラブるような情弱にはリソース使用量の最適化とか縁のない話
こいつらには細けぇことはいいからシングルバイナリ使っとけ!でおk
なのでフレームワークのプレインストールは要らない

リソース使用量を最適化してマシンを限界まで使い倒すぞ
なんていう連中なら苦もなくランタイムとランタイム依存版バイナリをインストールして使うはずだ
だからやっぱりプレインストールされている必要はない
541デフォルトの名無しさん (ワッチョイ 2312-O0xy)
2021/07/10(土) 15:44:56.62ID:vXwtga0B0
実行環境と抱き合わせて配布とか
そんなことするんならもうPythonでええやんってなる
542デフォルトの名無しさん (ワッチョイ cbf2-FpXj)
2021/07/10(土) 16:55:53.36ID:Dzo5EFol0
Windowsにフレームワーク入ってるの助かるわ
ネットに繋げられない環境でもcsc.exeとメモ帳でアプリやゲーム作れるから
543デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/10(土) 17:52:10.46ID:qTmdpryya
かわいそうに
544デフォルトの名無しさん (ブーイモ MMeb-+NRx)
2021/07/10(土) 17:58:26.09ID:jZAbZ8pYM
猫にUSBを抱かせるお仕事ですか?
545デフォルトの名無しさん (ワッチョイ f573-DcAx)
2021/07/10(土) 18:11:47.93ID:fmB/UGP20
単一かつ自己完結は実行開始までが遅いからコンソールには向いてない。
フォームだとReadyToRun含めるとウィンドウ表示するだけで100メガあるうえ、起動までi9900KSでも3秒かかるっていう...

よほどnet5の機能つかってるとかでないと、.net frameworkの方が向こう5年は取り回しがしやすい。
546デフォルトの名無しさん (ワッチョイ f5ad-oYkY)
2021/07/10(土) 18:18:51.15ID:EnquCIhL0
.net coreにうまく切り替えられるとは思えないな
547デフォルトの名無しさん (アウアウウー Sa09-QOAx)
2021/07/10(土) 18:20:09.73ID:q3x8ofXXa
>>540
なるほど結局スタティックリンク的な資源を富豪的に使う方法なのかな
548デフォルトの名無しさん (ブーイモ MMc9-u7yY)
2021/07/10(土) 19:10:49.52ID:pM3BYo7pM
>>537
それが逆に.NETの進化を停滞させた、とMSは考えているようだ
まあ元々は.NETってWindowsの基幹になるはずだったわけで、その目論見が頓挫した時点でもうWindowsにバンドルする理由はなくなったんだよ
549デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/10(土) 19:51:59.57ID:SPfFUvAXa
>>547
そう
DNFってことはどうせウィドウズデスクトップだろ
富豪マシン前提でなにも問題はない
550デフォルトの名無しさん (ワッチョイ fdad-6KIo)
2021/07/10(土) 20:03:05.60ID:nri5Fy1s0
バカの発想ってすごいな
551デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/10(土) 20:28:42.50ID:SPfFUvAXa
つぶやきボット
552デフォルトの名無しさん (ワッチョイ 23ad-wBny)
2021/07/10(土) 21:04:13.27ID:hLDcq/e00
>>536
いやいやw
553デフォルトの名無しさん (ワッチョイ cb8e-Fz9b)
2021/07/11(日) 00:00:18.89ID:AMGtLvlu0
>>532
こういう馬鹿がいたよね、WPFの時
554デフォルトの名無しさん (ラクッペペ MMcb-XQdx)
2021/07/11(日) 00:17:00.27ID:+hcDuARUM
WPFの二の舞なら前環境が15年残ることになるな
素晴らしい
555デフォルトの名無しさん (ワッチョイ f5ad-3Ofv)
2021/07/11(日) 01:49:07.68ID:2ghBsept0
>>554
やっぱり .NetFramework 5.0をリリースするは
556デフォルトの名無しさん (ラクッペペ MMcb-9d26)
2021/07/11(日) 06:16:08.91ID:LzQeZkjlM
Win11製品出荷の頃には.NET6が公開予定だろ
標準かオプション機能あたりで載せてくる気がする
557デフォルトの名無しさん (ワッチョイ cbb0-U415)
2021/07/11(日) 09:28:36.06ID:LL6sPKEi0
>>548
進化というと聞こえはいいけど、サポートを長く続けたくないってのもあるんだろうなぁ。
今でも長期サポートするアプリケーションなら.NET Frameworkの方を検討するだろうし。
558デフォルトの名無しさん (ワッチョイ 4d78-a+1V)
2021/07/11(日) 11:18:27.69ID:QsHvX08n0
VB6がずっとサポートされているから.NET Frameworkも同じようにサポートされ続けるだろ
559デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/11(日) 12:16:56.63ID:xAgoNPlJa
VB6はサポート切れてるだろ、とっくの昔に
560デフォルトの名無しさん (ワッチョイ a52f-KGMb)
2021/07/11(日) 14:17:44.18ID:Lbkl8ipl0
開発環境はサポート切れてるが、ランタイムの動作はサポートされてるはず
561デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/11(日) 15:37:15.91ID:xAgoNPlJa
動く=サポートなら、そう
562デフォルトの名無しさん (テテンテンテン MMcb-Yh25)
2021/07/11(日) 15:57:28.85ID:VpNTKYMHM
>>561
傍から見てても恥ずかしいから当分ROMってなよ…
https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy
563デフォルトの名無しさん (ワッチョイ 65ac-FVHZ)
2021/07/11(日) 16:00:55.69ID:A5YZ54Ww0
今時VBを押してるのも恥ずかしいんじゃ
564デフォルトの名無しさん (ワッチョイ 6352-Q14N)
2021/07/11(日) 16:17:44.15ID:KzRRh8fp0
>>563
誰もVB6を推してなんかいないだろう
間違った情報が指摘されただけだろうに
565デフォルトの名無しさん (ワッチョイ 65ac-FVHZ)
2021/07/11(日) 16:26:06.44ID:A5YZ54Ww0
>>564
別に指摘に対して言ったわけでもないが
そういうところ嫌われるよ
566デフォルトの名無しさん (テテンテンテン MMcb-Yh25)
2021/07/11(日) 16:46:46.30ID:qTMmoATzM
>>563,565
推してるとかどこから出てきたんだよ
単にVB6が今でもサポートされてるなら.NETFrameworkもサポートされんじゃね?
って話だろ
人が嫌われるかどうか心配する前に自分の理解力を心配しなよw
567デフォルトの名無しさん (ワッチョイ 65ac-FVHZ)
2021/07/11(日) 16:50:04.47ID:A5YZ54Ww0
>>566
流れに対して言ったんだぞ
理解力がどうとか、そうやって他人を攻撃しようとするところは良くないぞ?
568デフォルトの名無しさん (ワッチョイ cbb0-U415)
2021/07/11(日) 16:58:33.98ID:LL6sPKEi0
言ってる言葉が全部自分に向かってるという、エッシャーの騙し絵みたいな奴だなw
569デフォルトの名無しさん (ワッチョイ 65ac-FVHZ)
2021/07/11(日) 17:03:40.26ID:A5YZ54Ww0
えへへ
これでスレ違いのVBの話題は終わったやろw
570デフォルトの名無しさん (ワッチョイ a301-knaX)
2021/07/11(日) 17:11:11.75ID:FD6lxZ3g0
severityがcriticalじゃなければセキュリティパッチも出ない状況を
「サポートされてる」の一言で済まされるとモヤるな
571デフォルトの名無しさん (ワッチョイ cb63-XQdx)
2021/07/11(日) 17:16:20.09ID:BeeJLMuH0
モヤってもいいが続きはお家の人とやってくれなw
572デフォルトの名無しさん (アウアウウー Sa09-QOAx)
2021/07/11(日) 17:24:32.12ID:pF41bBSFa
こう言ってはなんだけど、「サポート」されているかどうかは
営業面では重要な意味を持つけど、大半のエンジニアにとっては「それが何か実質的な意味を持つのか?」
っていうのが率直なところじゃないの?
573デフォルトの名無しさん (テテンテンテン MMcb-Yh25)
2021/07/11(日) 17:37:23.51ID:y+4j5QejM
VB6推しなんて流れもないし
> そういうところ嫌われるよ
が他人への攻撃じゃないと思ってるのかよ…
そもそも>>563がいなきゃそのまま終わってた話だろw
574デフォルトの名無しさん (テテンテンテン MMcb-Yh25)
2021/07/11(日) 17:40:55.24ID:y+4j5QejM
>>570
少なくともセキュリティパッチが出るんならサポートはされてるだろ
サポートレベルの話はまた別問題
575デフォルトの名無しさん (ワッチョイ f573-DcAx)
2021/07/11(日) 21:48:39.79ID:cxQyUkFy0
.net frameworkはwindows updateに入ってるから勝手にセキュリティの穴や不備も塞がるが、
.netの方はどういう対策予定になってんの?

プログラム無知な個々人さえわざわざあの.net5のランタイムを細かなアップデートに合わせて取りにいく想定なの?
あるいらアプリ作者がこのランタイムの細かなアップデートに合わせてアプリ再配布する想定なの?
576デフォルトの名無しさん (ワッチョイ ab2d-O0xy)
2021/07/11(日) 21:55:49.88ID:JpOAcHlL0
Windows Updateのオプションの他のMS製品の更新プログラムを受け取るを有効にしたら
.NET 5や.NET Core 3.1のセキュリティアップデートが適用された
インストーラーで入れたやつだからかな
577デフォルトの名無しさん (テテンテンテン MMcb-u7yY)
2021/07/11(日) 21:55:56.30ID:gcLNEatSM
基本的に作者の責任だね
.NETに限らず、ライブラリをスタティックリンクしたりDLLを同梱したり普通にあるでしょ
デスクトップアプリが使ってるライブラリの脆弱性が問題になることなんて実際まず無い
そんなことを気にするよりREADMEにパスワード使いまわしはやめましょうとでも書いて啓蒙活動でもしたほうがよほど効果あるよ
578デフォルトの名無しさん (ワッチョイ cba7-YGRz)
2021/07/11(日) 22:03:25.14ID:8QU6GoBD0
.netってなんですか?
579デフォルトの名無しさん (ワッチョイ cbb0-U415)
2021/07/11(日) 22:31:33.80ID:LL6sPKEi0
.NET Core 3.1インストールしてたはずなのにいつのまにか5になってた。あれはWindowsUpdateなんかな。
580デフォルトの名無しさん (ワッチョイ 4bda-2Uns)
2021/07/11(日) 22:35:19.64ID:NwP/aFzk0
>>579
blog で公式発表って嫌ですよね
https://devblogs.microsoft.com/dotnet/net-core-updates-coming-to-microsoft-update/
581デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/11(日) 23:56:07.09ID:W/0BfvqFM
そもそも.NET5って来年2月でサポート切れてWindowsUpdateによる更新もされなくなるし、今後出るであろうLTSでもサポート期間は3年しかない
セキュリティアップデートなんて真面目に気にしてたら塩漬け運用は不可能だ
幸いにもアプリにスタティックリンクされたランタイムやライブラリの更新って組織のセキュリティポリシーでは見過ごされがちなんで、
サポートの切れた.NETランタイムのインストールをユーザーに要求するよりはSCDの方が面倒なことになりにくいだろうね
582デフォルトの名無しさん (ワッチョイ cb8e-Fz9b)
2021/07/12(月) 02:10:19.60ID:IjeYV4lO0
さてここで、繰り返そう

>>532の発言内容

>.NET Frameworkはもう先がないので今新規開発するなら.NET 5一択
>.NET Frameworkからの移行は手間がかかる
583デフォルトの名無しさん (アウアウウー Sa09-6Mb1)
2021/07/12(月) 02:28:22.02ID:PmY8iF4Ja
正直ここ数年は.NETもC#も片手間以下にしか触ってなかったので
CoreってWindows 8の時代のPCLの延長線上のもの、要するに
最大公約数的なサブセット(要するに使えねえ)って認識だったんだけど、そうでもないのかw
584デフォルトの名無しさん (ワッチョイ 355f-KGMb)
2021/07/12(月) 02:28:52.13ID:pg+kHsI00
>>538が正解じゃないの
どっちかだけってのがユーザーに不便強いてるよね
585デフォルトの名無しさん (ワッチョイ 23e4-HFg0)
2021/07/13(火) 02:17:50.11ID:aO3Sze2Q0
変な質問だけどオフライン環境下でしか使わないアプリとかでも.netの更新はしなきゃいけない?
586デフォルトの名無しさん (ワッチョイ 4bda-2Uns)
2021/07/13(火) 03:27:36.04ID:YaNuVgTh0
電文パケットを全て破棄出来るなら
要らないんじゃね?

工場レベルで汚染ってニュースもあるので
そこいらはクリアされてる前提で
587デフォルトの名無しさん (ワッチョイ 054f-O0xy)
2021/07/13(火) 11:33:09.20ID:oyMxwOQE0
C#でアプリ作れるようになったらC++で応用って効きますか?
C++でただ球が跳ねつづける画像とかパックンみたいの作ってみたくて学習始めたんですが
ロベールのコピーコンストラクタ辺りで何してるのかよくわからなくなってしまって
588デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/13(火) 11:38:39.95ID:ugiVX/deM
それはC#もよく分かってないんじゃないかな
C#で値型と参照型を正しく理解していて、C++ではそれぞれがどう表現されるかが分かれば、
コピーコンストラクタがなぜ必要でどういう挙動をするかは自明なはず
589デフォルトの名無しさん (エムゾネ FF43-Keio)
2021/07/13(火) 11:40:40.89ID:WUJYnH4rF
C#とC++は全く別物
そりゃプログラミング未経験から学ぶのに比べればメリットあるけど
せいぜいその程度
590デフォルトの名無しさん (ワッチョイ cbbb-iyCa)
2021/07/13(火) 11:40:46.31ID:npKAmtA00
>>587
文法が似ているとかデザインパターンの学習が無駄にならないっていう限度でなら応用が効くでしょう
しかし、それぞれの言語で難点となっている部分が全くもって別なので、学習が大変な部分には全くと言って良いほど応用が効きません
591デフォルトの名無しさん (エムゾネ FF43-Keio)
2021/07/13(火) 11:41:00.44ID:WUJYnH4rF
場合によってはC#の知識がC++習得の邪魔をするかも知れないね
592デフォルトの名無しさん (エムゾネ FF43-Keio)
2021/07/13(火) 11:42:03.56ID:WUJYnH4rF
Keioワロス
593デフォルトの名無しさん (ワッチョイ 054f-O0xy)
2021/07/13(火) 11:55:37.64ID:oyMxwOQE0
何の言語もまだ習得してない素人なのですが、この目的だとC#あんまり意味ないですか。
本変えてもっかいC++挑戦してみます。ありがとうございました。
594デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/13(火) 11:58:30.95ID:ugiVX/deM
>>591
俺はC#からの類推で自然に馴染めたけどな
C#からC++へ行くときのハマりポイントって多分RAIIの辺りだと思うけど、
C#においてオブジェクトが今どこにあるのかを意識してプログラミングしていればそんなにギャップはないと思う
595デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/13(火) 12:07:48.76ID:gERGfhJva
C++だと学習のハードル高くない?
C#で取りあえず動くものを作りながら学ぶほうが良いと思う
596デフォルトの名無しさん (ワッチョイ 852c-KGMb)
2021/07/13(火) 12:24:59.34ID:dtNqNBdW0
初心者は、Ruby で、
まず、ファイル操作・文字列処理だけを学ぶのが良い

その後、他の言語をやるべき!
597デフォルトの名無しさん (アウアウウー Sa09-6Mb1)
2021/07/13(火) 13:00:54.76ID:oMy7Gq1va
最終目的はC++の習得で、そのためにC#を学ぶことに意味があるか、
それともただ回り道になるだけで無意味かって意味なら、
まったく無意味とも言えない思う。

少なくともOOP的な部分については後発のC#の方が
いきなりキメラでカオスなC++でやるより理解が早い気がする。

案外最短コースはC→C#→C++かもしれんよ。
いや知らんけど。
598デフォルトの名無しさん (ラクッペペ MMcb-XQdx)
2021/07/13(火) 13:21:11.88ID:bYykchBXM
>>596
お前はまず人間になろうな
599デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/13(火) 18:46:02.70ID:gERGfhJva
C++, C標準関数, STL, MFC, ATL などなど覚えなきゃならない事がてんこ盛り
600デフォルトの名無しさん (ワッチョイ cd5f-U415)
2021/07/13(火) 22:08:38.28ID:pN4fUUEP0
ただ、C++のvectorとかあのあたりはC#でListをやってからの方が理解は早いと思う
601デフォルトの名無しさん (ワッチョイ 2390-epCi)
2021/07/14(水) 02:20:44.38ID:cEzLlJ010
でも、今はC++敷居下がってる
俺もずっと前にやったとき挫折したけど、数年前にやったらいけた
俺がその間に経験積んだのも事実だが、modern c++ってすげぇc++で作りやすくなってた
c++20でとりあえず低レベルなコルーチンきて?
c++23でasync/awaitな高レベルなインターフェース用意されるのかな
どんどん使い安くなってると思う
602デフォルトの名無しさん (ワッチョイ 2390-epCi)
2021/07/14(水) 02:24:40.48ID:cEzLlJ010
それでもまぁC#の方を先にやってからの方が楽だと思うな
C++だとややこしいからとりあえずどうでもいいこととかに足をとられたり
するかのしれない
603デフォルトの名無しさん (ワッチョイ 2de6-a+1V)
2021/07/14(水) 02:26:58.50ID:jkqZHJGB0
ネットで適当に検索して〜〜は無理だな
読めない
604デフォルトの名無しさん (ワッチョイ fd88-DcAx)
2021/07/14(水) 02:27:21.43ID:iC7aHD9J0
C++もany variant optionalなどが入ったからある程度はc#のマネージな考え方に近づいてるが、
今から始める人にはchar*とwchar_t*とwstringとstring に加えて u8string やu16string など文字列系がカオスだろなぁ。

しかもdll作る際は結局はインターフェースはプリミティブ型だけしとかないと、
まともに使えないdllになるから、テンプレートや新規に入った型も限定的な環境でしか役にたたんしw
605デフォルトの名無しさん (ワッチョイ 2390-EAnP)
2021/07/14(水) 02:33:39.69ID:cEzLlJ010
>>604
そうそれ。c++選択肢多いから、俺みたいに細かい人が最初やるには向いてない
文字列の話だって.netならutf -16の標準stringを取りあえず使っておけばいいけど
c++だとどのエンコード使おっかなとか下らない事で悩んで先に進まなくなる
606デフォルトの名無しさん (ワッチョイ 8d54-8NFQ)
2021/07/14(水) 02:41:48.38ID:veS53koK0
自分の場合、Windows の GUI アプリ作りたくて C++ 始めたけど、プログラム知識ほぼ 0 の時に、C + API と、C++ + MFC のGUI アプリのサンプルソース読んで一回諦めた。
C# 始めてから C++ 始めたことで救われた。

細かい所を確認しながら進めないと気が済まない + 目標までのハードルがめっちゃ高いと感じると心が折れる。
こんな人は、C++ の前に C# やるべき。
607デフォルトの名無しさん (ワッチョイ 355f-6wWl)
2021/07/14(水) 07:06:12.20ID:QQQ6x1zU0
C++にあっさり挫折した過去があるワイでも、C#だとそこそこに使えて助かってるわ
608デフォルトの名無しさん (エアペラ SD19-NlZa)
2021/07/14(水) 07:56:34.76ID:yzrBZN8qD
そりゃレイヤーが全然違うしね
609デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/14(水) 09:48:23.28ID:gix7WKJqM
>>606
俺もそうだわ
C++はWINAPIだの仮想デストラクタだのと意味不明なお約束があまりにも多すぎて習得できる気がしなかった
C#の後だと重要なところと後回しでいいところの区別がついてすんなり入れたな
610デフォルトの名無しさん (ワッチョイ f5ad-oYkY)
2021/07/14(水) 12:52:36.76ID:89AG2aEZ0
Formにポトペタで作れるしね。
611デフォルトの名無しさん (ワッチョイ a5da-XPwB)
2021/07/14(水) 14:05:49.07ID:XRr9+sqQ0
自分はWTLでGUIアプリ組んでたな
C#は食わず嫌いだったけど今はC#だけだな
612デフォルトの名無しさん (ワッチョイ bdae-6oml)
2021/07/14(水) 17:04:04.00ID:gWKZTcc80
BorlandのC++builderでは作れたけどMFCアプリは作れなかったな
C++じゃなくMFCに問題があるんじゃなかろうか?
613デフォルトの名無しさん (ワッチョイ 23e4-HFg0)
2021/07/14(水) 17:09:46.93ID:9x2VN1AY0
var test1 = メソッド1();
var test2 = メソッド2(test1)
var test3 = メソッド3(test2)

こんなふうに数珠繋ぎみたいに結果を渡していくやり方は作り方を見直したほうが良い?
メソッドの引数は値のコピーを渡してるから呼び出し元には影響ないのは分かるけど、どこでどの値を変えてるか分かりにくくなってバグを生み出しやすい作りな気もしてる
初歩的な質問で申し訳ないけどアドバイスいただきたい
614デフォルトの名無しさん (ワッチョイ 23e4-4PPV)
2021/07/14(水) 17:28:30.06ID:+eseIR4Q0
test1とかtest2に使い道がないならば

var test3=method3(method2(method1()))

でもええって話ではあるけど
要は間の処理がどうなっているかによりけりだと思う
615デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/14(水) 17:34:07.92ID:gix7WKJqM
>>613
うん、良くないね
君も気付いてる通り、引数のコンテキストがどんどん肥大化してどこで何やってんのか分からなくなる典型的なアンチパターンだ
ほんとにそのテスト2〜3は引数に渡されたオブジェクト全体を使ってるの?
やりたいことは、
var c = new C { A = test2(test1.X), B = test3(test1.Y) };
だったりしない?
616デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/14(水) 17:50:29.76ID:QC3eIOjva
>>613
いいと思うよ
例えばだけどこういうことだろ?

基本価格 = 基本価格取得();
割引価格 = サマーキャンペーン割引(基本価格);
税込価格 = 消費税加算(割引価格);

とてもクリーンで見やすいコードじゃないか

ただタイピングが楽になるからメソッドチェーンにしたい欲求はある

基本価格取得()
 .サマーキャンペーン割引()
 .消費税加算();
617デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/14(水) 18:16:23.00ID:gix7WKJqM
>>616
どこでどの値を変えてるか分かりにくくなりそうって言ってるから、単純なスカラー値ではないんじゃないの
var 注文 = 注文を取得();
var キャンペーン適用済み注文 = キャンペーン適用(注文);
var 送料計算済み注文 = 送料計算(キャンペーン適用済み注文);
みたいな感じと想像した
618デフォルトの名無しさん (ワッチョイ 23e4-HFg0)
2021/07/14(水) 18:19:46.23ID:9x2VN1AY0
>>614 >>615
やっぱり良くないか…
引数に渡してるものは部分的にしか使ってない
例えば100個くらいの配列を渡してこの中の10個くらいしか使ってない

>>616
これはこの内容で良さそう
やる事が一貫してるというか意味が通じてるというか

最初に挙げた例と違って申し訳ないんだけど、実際にやりたいのはこんな感じ
数珠繋ぎとは少し違う、ごめん

@全装置データ = 装置A〜Zデータ取得()
A正常or異常 = 装置AデータDB書き込み(全装置データ)
B正常or異常 = 装置BデータDB書き込み(全装置データ)
.
.
.
C正常or異常 = 装置ZデータDB書き込み(全装置データ)
D正常or異常 = 装置へデータ書き込み(全装置データ)

メソッドに渡すのはコピーとはいえ、@で取得したデータを色んな所へ渡して使い回してて、どこかで値が変わってしまう可能性も含んでる作り方なのかなと思って>>613の質問に至ったの
619デフォルトの名無しさん (アウアウウー Sa09-6Mb1)
2021/07/14(水) 18:32:18.26ID:aEJsAOR7a
>>618
結局何が聞きたいのかどうもよく分からないな。

>>613みたいに一時的な説明変数に戻り値を入れるのは
一般論としては何も悪くない。

引数で渡した参照型の値が破壊されるのを心配するなら(そんなのほとんどの場合杞憂だと思うけど)
適当なインターフェイスをかぶせてそのインターフェイスとして渡すか、
イミュータブルにするだけじゃないの?
620デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/14(水) 18:50:03.34ID:gix7WKJqM
>>618
装置AデータDB書き込みは全装置データのうち装置Aのデータしか見ないってことか?
だったらそりゃ装置Aのデータだけを引数に渡したほうがいいわな
621デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/14(水) 19:02:26.74ID:QC3eIOjva
>>617
その場合はその業務は誰の知識なのか?に注目する

メソッドの引数と返り値をスカラーにした場合、そのメソッドの「呼び出し側」が
1 引数のエンティティから適切な属性を取得し、2 メソッドを呼び出し、
3 引数そのものあるいはクローンに対して適切な属性を更新する
方法を「知らなければならない」

例えばサマーキャンペーン割引のロジックが「注文の合計基本価格が10000円以上、注文明細のどれか1つでもキャンペーン対象商品フラグが立っていること」だったらどうだろうか?

メソッドの呼び出し側はきっとこう思う筈だ
俺は注文をサマーキャンペーン割引して欲しいだけなのに、
なぜかサマーキャンペーン割引に合計基本価格と注文明細のキャンペーン対象商品フラグが必要だという業務知識を知らなければならない
ただ黙って割引してほしいだけなのに、なんで俺が適切な情報をいちいち与えてやらなければならんのだ
そんなのはサマーキャンペーン割引の責務を担うメソッドが知っているべきだろう
622デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/14(水) 19:11:44.77ID:QC3eIOjva
>>618
この場合もまずは責務を明確にしてメソッドを分けるといいよ

1. オンメモリのデータセットから特定のデータを正確に抽出する責務を担ったメソッド
2. 単にデータをDBに書き込む責務を担ったメソッド

つまりこういうこと↓

a = Aデータ抽出(全データ)
b = Bデータ抽出(全データ)

z = Zデータ抽出(全データ)

結果A = リポジトリA.save(a)
結果B = リポジトリB.save(b)

結果Z = リポジトリZ.save(z)
結果All = リポジトリAll.save(全データ)
623デフォルトの名無しさん (ワッチョイ a301-knaX)
2021/07/14(水) 23:06:55.57ID:idSc395A0
>>618
>A正常or異常 = 装置AデータDB書き込み(全装置データ)

これって異常ならどうするの?
624デフォルトの名無しさん (ワッチョイ 9b62-yxX3)
2021/07/14(水) 23:09:43.35ID:ikn1S79j0
>>618
メソッドの引数として渡したパラメータを書き換えないというのが基本
コピーして渡さないといけないメソッドとして作られてしまってるのが問題で、更新日時とか何かしらの書き換えがあるならその結果を別途返すべき

メソッドのパラメータとして全データを渡すよりそのメソッドが使う必要最低限のものにしといた方がわかりやすい
まあ、条件にマッチしないデータは無視するという動作でも不自然じゃないからそんなに重要なことじゃないかな
625デフォルトの名無しさん (アウアウクー MM21-HFg0)
2021/07/15(木) 18:33:23.51ID:YvGaZ0G0M
レスくれた人ありがとう
貰ったアドバイスを自分なりにもうちょい整理してみる

>>622
細かくなるけど必要なもの毎に処理を分けるってことだよね
自分みたいな素人目線だとこういうのは小さい処理が増えるのが煩雑に感じてやるのは躊躇するけど一個一個が独立してるしこの方が結果的に良さそう
626デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/15(木) 18:53:56.43ID:p7EIkR62a
1つのメソッド(動作)に複数の動作をやらせない
627デフォルトの名無しさん (スププ Sdfa-VvAo)
2021/07/16(金) 05:44:43.56ID:kw030b9nd
>>626
そういうの好きだな。だから、結果的に>>613になっても俺的にはおk。
メソッド名を見れば判るようになるし。
628デフォルトの名無しさん (ブーイモ MMde-uKKI)
2021/07/16(金) 10:50:53.05ID:5OijHeJ1M
AWS LambdaをC#で使ってる人おる?
DIの正しいやり方がわからん
ググると
FunctionクラスのデフォルトコンストラクタでServiceCollectionをインスタンス化して
Serviceを追加して解決してprivateフィールドに代入
的なコードは出てくるんだけど
なんか無理矢理感があってすごく気持ち悪い
ASP.NET CoreのControllerみたいにコンストラクタインジェクションしてくれればいいんだけどAWS LambdaのFunctionはそういうのないのかな
629デフォルトの名無しさん (ブーイモ MMa1-3nkv)
2021/07/16(金) 12:25:27.67ID:Oq98um8EM
謎のランタイムが勝手にどっかで注入してくる方が気持ち悪いわ
Azure FunctionsなんかだとAzure側のランタイムがASP.NETと統合されてて注入できたりするけど、依存関係地獄になりがちでぶっちゃけ糞
Lambdaはその点余計なこと一切しないから単純明快で楽だ
そもそもLambdaごときにいちいちDIなんか要らんわ
FaaS使うんだったら差し替えはFunctionレベルでやるのが基本だよ
630デフォルトの名無しさん (ブーイモ MMa1-3nkv)
2021/07/16(金) 12:44:52.48ID:Oq98um8EM
WindowsってPowerShell以前はコマンドラインシェルが貧弱だったから、開発者は伝統的に何でもかんでもアプリケーションコードの箱庭内でやってしまう傾向があって、
Azure Functionsの設計思想なんかもそういう箱庭コーディングの文化を引き継いでいるところがある
対してAWSは小物をシェルで組み合わせて使うUNIX的な文化の色が強くて、Lambda関数もコーディング環境というよりはあくまで「ちゃんと単独で機能する小さなコマンド」なの
その中でさらにドメイン切って差し替えられるようにして、みたいな発想はしないんだよ
631628 (ブーイモ MMde-uKKI)
2021/07/16(金) 13:41:32.46ID:YjA+/kj2M
すまん自己解決したわ
AWSオフィシャルのLambda/ASP.NET Coreアダプタがあるらしい
まあそらそうだよなDIもまともに出来ないとかゴミサービスでしか使えんし
632デフォルトの名無しさん (ワッチョイ 9d5f-R8z5)
2021/07/17(土) 01:55:18.52ID:YUa2zwOi0
最終的に保守のしやすいコードが一番ってことになりそうだ
633デフォルトの名無しさん (ワッチョイ 0154-x4cL)
2021/07/17(土) 04:37:12.67ID:SWDN49PP0
どうでもいいけど、状況判定に
if(HogeButton.Text == "あ" && !int.TryParse(HageButton.Text,out _))
みたいにコントロールのテキスト使いまくってるクラス見つけてしまった。

明日から犯人探しかな・・・
634デフォルトの名無しさん (ブーイモ MMde-nkhS)
2021/07/17(土) 05:05:25.92ID:rQBsLn9RM
どうでもいいけど、状況判定に
if(HogeButton.Text == "ほ" && !int.TryParse(HageButton.Text,out _))
みたいにコントロールのテキスト使いまくってるクラス見つけてしまった。

明日から犯人探しかな・・・
635デフォルトの名無しさん (アウアウウー Sa39-kbnc)
2021/07/17(土) 09:29:37.87ID:hzHLbOfFa
数学の積分で使うSの大きなやつって
for文なの?
636デフォルトの名無しさん (ブーイモ MMde-84rc)
2021/07/17(土) 09:47:49.19ID:FY+xgTJtM
そう妄想するのは自由
637デフォルトの名無しさん (ワッチョイ 3a52-KoI6)
2021/07/17(土) 10:05:47.56ID:wcPyadci0
数値積分でググるといいんでないかな
638デフォルトの名無しさん (スププ Sdfa-xGJc)
2021/07/17(土) 12:05:36.74ID:ED/D6NvId
時間の流れが乱れている…
639デフォルトの名無しさん (エムゾネ FFfa-E0YB)
2021/07/17(土) 15:01:08.33ID:eTC1af8gF
Σはforだが(といってもΣの方が遥かに高速な訳だが)
∫はforではない
640デフォルトの名無しさん (ワッチョイ b6da-3z6a)
2021/07/17(土) 15:50:53.78ID:IsTBXftL0
Πは?
641デフォルトの名無しさん (アウアウウー Sa39-E0YB)
2021/07/17(土) 15:59:07.68ID:oVxa7DA2a
>>639
Σも普通は解析的に答えを出すので、数値演算(ループ)を連想するのはかなり違うと思う
642デフォルトの名無しさん (エムゾネ FFfa-E0YB)
2021/07/17(土) 16:04:35.47ID:eTC1af8gF
forの解釈として毎回実行時計算する言語ならそうだが
forでもコンパイル時にΣやΠが解析的に完了してる言語があっても良いだろう
C#スレだからどうでも良いけど
643デフォルトの名無しさん (アウアウウー Sa39-E0YB)
2021/07/17(土) 17:20:34.66ID:6qmea//qa
解析的に求めるっていうのは例えば等差数列の式から
その和の公式を導出するようなことを言うんですよ。
644デフォルトの名無しさん (ワッチョイ 6102-u1ma)
2021/07/17(土) 18:21:36.91ID:tq+22Yf30
プログラマと数学屋で
用語の齟齬が起きているな
645デフォルトの名無しさん (アウアウウー Sa39-E0YB)
2021/07/17(土) 18:51:59.16ID:6qmea//qa
いやいや、解析的っていうのは数値計算の対義語みたいなもので「数学的に解く」
みたいなニュアンスだと思うから数学屋さんはあまり使わないと思うよ知らんけど。

情報屋の言い回しだと思うよ。
俺は大学のアルゴリズムの講義でニュートン法とかやった時に聞いたのが最初の気がする
先生はもちろん情報工学の先生だ
646デフォルトの名無しさん (ワッチョイ 615f-eSYY)
2021/07/17(土) 18:59:49.36ID:RupVd7jf0
>>639
高速って何よ
数学記号のΣとプログラムの制御構文のforで、概念が違うものをどう比較したのさ
647デフォルトの名無しさん (ワッチョイ 76a7-XiFW)
2021/07/17(土) 19:16:24.85ID:NOfppBHx0
ロックマンで見た
648デフォルトの名無しさん (ラクッペペ MM0e-5SdA)
2021/07/17(土) 19:24:46.25ID:iVAlWQfZM
https://ja.wikipedia.org/wiki/%E8%A7%A3%E6%9E%90%E5%AD%A6
649デフォルトの名無しさん (ワッチョイ 76f2-yayT)
2021/07/17(土) 19:29:45.80ID:ALTiYW8P0
シグマゼロビーム
650デフォルトの名無しさん (ワッチョイ b101-E0YB)
2021/07/18(日) 13:09:02.92ID:RVrShVdw0
ビジネスが破綻する大半の原因は、 ”ビジネスを始める人の大半が、真の意味での
「起業家」ではなく、 起業したい、という熱に浮かれた「職人」として働いているに過ぎない。”
という事実にあります。
「職人」によって運営されているビジネスは、ビジネスが働くのではなく、彼ら自身が毎日働くこと
によって、成り立っています。
彼らは毎日、自分がやり方を知っている仕事を一生懸命にこなしていますが、「起業家」としての
視点が無いために、成長に限界が生まれます。
そして、生計を立てるために、彼ら自身がずっと働き続けないとならないのです。

誰もが必ず陥る罠
私が見ている限り、起業熱にうなされる人たちは、必ずと言ってもよいほど誤った
「仮定」を置いてしまうようだ。実は、のちに彼らが苦難の道を歩むことになるのは、
この、「仮定」が致命的に間違っているからなのである
致命的な仮定とは・・・「事業の中心となる専門的な能力があれば、事業を経営する能力は
十分に備わっている」ということである
私がこの仮定を致命的だと書いたのは、この仮定が間違っているからにほかならない
事業の中で専門的な仕事をこなすことと、その能力を生かして事業を経営することは
全く別の問題である。高い専門能力を持つ人にとって、独立は他人の為に働くという苦痛から
解放されるということを意味していた。それにもかかわらず、前提となる「仮定」が致命的とも
いえるほど間違えているために、彼らは自由になるどころか、自分が始めた事業に苦しめ
られるようになってしまうのである
マイケルEガーバー「はじめの一歩を踏み出そう」P28~29
651デフォルトの名無しさん (スップ Sdda-gawc)
2021/07/18(日) 19:33:43.97ID:j2ludHuAd
>>452
>>453
ありがとうございます
亀でスミマセン…
652デフォルトの名無しさん (スップ Sdda-gawc)
2021/07/18(日) 19:34:39.70ID:j2ludHuAd
>>454
ありがとうございます
653デフォルトの名無しさん (スッップ Sdfa-gawc)
2021/07/18(日) 19:35:09.34ID:G9pOURuid
>>455
ありがとうございます
654デフォルトの名無しさん (ワッチョイ 0154-x4cL)
2021/07/20(火) 06:41:50.36ID:oT6fq8l/0
SqlServerへの非同期クエリを、ORマッパー使わずにSqlConnectionとSqlCommandで送信したい場合、
Task.Run(() => sqlCommand.ExecuteReader())
と、
sqlCommand.ExecuteReaderAsync()
のどっちを使うのが理想ですか?
655デフォルトの名無しさん (ワッチョイ 0d01-R8z5)
2021/07/20(火) 08:27:13.73ID:6lATwKKz0
Asyncついたメソッドをawaitしたまへ
656デフォルトの名無しさん (ワッチョイ 76e3-xL6t)
2021/07/20(火) 13:10:25.48ID:mJ2OrUml0
>>654
後者じゃね
657デフォルトの名無しさん (ワッチョイ 462d-Io+N)
2021/07/20(火) 13:19:06.99ID:luEetGrO0
後者があるのに前者を使うメリットが分からない
658デフォルトの名無しさん (ワッチョイ 9d5f-E0YB)
2021/07/20(火) 13:58:57.54ID:DgdZFi450
>>654
その選択肢で悩んじゃう君にぴったりの記事があるぞ
https://www.kekyo.net/2021/02/24/7268
https://www.kekyo.net/2016/12/06/6186
659654 (ワッチョイ 0154-x4cL)
2021/07/20(火) 14:12:48.00ID:oT6fq8l/0
ありがとうございます。
普通に考えたら後者なのですが、フォームのLoadイベント時に上記処理を実行するようになっており、フォームLoad時にサーバーとの通信異常が発生していた場合、
前者の場合はフォームが応答する状態のまま、1〜2秒して例外をキャッチ出来ます。
後者の場合はフォームが応答しなくなり、1〜2秒して例外をキャッチ出来ます。
それでちょっと悩んでましたが、後者にします。
660デフォルトの名無しさん (ワッチョイ 6eda-YhT2)
2021/07/20(火) 14:31:57.96ID:r+hLGJrq0
動作が固まるのはお前さんの使い方がおかしい。
661デフォルトの名無しさん (ワッチョイ 7663-LFeW)
2021/07/20(火) 15:01:47.73ID:BcEcK3qF0
僕も固まりそうです
662デフォルトの名無しさん (アウアウウー Sa39-1ivc)
2021/07/20(火) 18:15:30.23ID:ddjaqKuMa
ボクのお尻も固まりそうです
663デフォルトの名無しさん (アウグロ MMc2-XiFW)
2021/07/20(火) 18:32:55.57ID:P25MFMIuM
async汚染が怖いので使わない方向で
664デフォルトの名無しさん (ワッチョイ 0d01-E0YB)
2021/07/20(火) 19:34:56.43ID:SMoWJv7O0
WPFのバインディングについて質問です。
テキストボックスに読み取り専用プロパティをバインディングしたいのですが、
プロパティの値を変更してもテキストボックスに反映されません。
調べたら、プロパティの変更を通知するイベントが無いとだめとのことだったのですが、
setterなしでに通知イベントを実装する方法は無いでしょうか。

例:
public class ViewModel
{
public int ID { get; set; }
public string Name { get; set; }
public string NameSan { get => Name + "-san"; }
}

<TextBox Text="{Binding NameSan}" />
665デフォルトの名無しさん (ワッチョイ 76a7-XiFW)
2021/07/20(火) 19:59:24.26ID:K5CNGksB0
誰にとっての読み取り専用なん?
666デフォルトの名無しさん (ワッチョイ 76a7-XiFW)
2021/07/20(火) 20:08:36.24ID:K5CNGksB0
wpfでバインドできないプロパティは
DependencyPropertyでないから
DependencyObjectを派生させる必要がある
→UserControlを作ってそこにDependencyPropertyを作成する

ってググったら出てきた
667デフォルトの名無しさん (ワッチョイ 9d5f-Rh1M)
2021/07/20(火) 20:21:36.49ID:GzauUP740
XAML側でNameをバインディングしてコンバーターで-san付けるかなあ
668デフォルトの名無しさん (ワッチョイ 462d-Io+N)
2021/07/20(火) 20:27:17.58ID:luEetGrO0
>>664
NameプロパティのSetterでまとめて通知すれば良い

private string _name;
public string Name
{
get => _name;
set
{
_name = value;
PropertyChanged?.Invoke( nameof( Name ) );
PropertyChanged?.Invoke( nameof( NameSan ) );
}
}
669デフォルトの名無しさん (ワッチョイ 0d01-E0YB)
2021/07/20(火) 20:35:19.09ID:SMoWJv7O0
>>664です。
沢山の回答レスありがとうございます。
例として記入したものが不適切でしたので、訂正させてください。
実際はNamesanのgetterには別クラスから値を取得するメソッドが実装されており、
NameやIDはNamesanでは使用しないものになります。

public class ViewModel
{
 public string NameSan
 {
 get
 { //別クラスから値を取得するメソッド}

なので、>>668様にご教示頂いた方法は使用できない形になります。
670デフォルトの名無しさん (ワッチョイ 462d-Io+N)
2021/07/20(火) 21:00:19.75ID:luEetGrO0
>>669
外のクラスだろうがやることは変わらない
外のクラスからNameSanプロパティの内容が変わるタイミングで同じように通知する
外のクラスを変更するのが出来なければタイマーで通知を出すなんて荒業も思い付いたけどいまいち
671デフォルトの名無しさん (ワッチョイ 0d01-E0YB)
2021/07/20(火) 21:07:59.62ID:SMoWJv7O0
>>670
>外のクラスからNameSanプロパティの内容が変わるタイミングで同じように通知する
ありがとうございます。外のクラスから通知させることができるのですね。
早速試してみたいと思います。

教えてくれた皆様、ありがとうございました。
672デフォルトの名無しさん (ワッチョイ 9d5f-Rh1M)
2021/07/20(火) 21:11:28.67ID:GzauUP740
なんでパターン崩してイレギュラーなことしようとするんだろ
673デフォルトの名無しさん (ワッチョイ 462d-Io+N)
2021/07/20(火) 21:45:11.17ID:luEetGrO0
>>670
ちょっと訂正。忘れてた。
クラスの外からイベントを直接発生させられないから、ViewModelクラスに変更通知イベントを
発生させるメソッドを実装して、外のクラスからはそのメソッドを呼び出す必要がある。

public Class ViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void FirePropetyChangedEvent()
{
PropertyChanged?.Invoke( nameof( NamaSan ) );
}
}
674デフォルトの名無しさん (ワッチョイ 76a7-XiFW)
2021/07/20(火) 22:00:21.86ID:K5CNGksB0
>>672
その時点でこのスレには相応しくないよね
675デフォルトの名無しさん (ワッチョイ 052f-NvNM)
2021/07/21(水) 21:46:25.70ID:Ra0jV4kr0
その外のクラスの変更通知を受け取って、自身の変更通知をだせばいいんじゃないのか
なぜわざわざ外のクラスが別クラスのメソッド呼ぶんだ?依存関係がおかしいだろ
676デフォルトの名無しさん (ワッチョイ 6e62-COnk)
2021/07/22(木) 09:48:14.07ID:H+nzk7c30
>>673
イベントで実装する必要性がよく分からないんだよな
FuncやActionでよくねって思っちゃう
677デフォルトの名無しさん (ワッチョイ 1a01-DrjK)
2021/07/22(木) 11:03:00.91ID:cBUwSw0B0
>>675
だね

Modelの値が変更されたらViewModelの値も変更してUIも更新したいってことだから
ViewModelでModelの変更通知をsubscribeしてsetter経由でPropertyChangedイベントを発生させてUIを更新すればいい
値の更新が必要にもかかわらず読み取り専用プロパティにする意味がよくわからない
678デフォルトの名無しさん (ワッチョイ 052f-Rh1M)
2021/07/22(木) 15:01:08.94ID:2BJFjQfb0
PropertyChangedイベントを発生させれば事足りるのだが
setter経由させる意味がわからん
そのために読み取り専用を読み書きに変えるのか?
679デフォルトの名無しさん (ブーイモ MMfa-3nkv)
2021/07/22(木) 15:10:14.18ID:04ABr3MxM
WPFなら仕方ない
嫌ならオワコンWPFなんか捨ててWebで仮想DOM系のフレームワーク使えば何もしなくても自動的に差分取ってくれるよ
680デフォルトの名無しさん (ワッチョイ 1a01-DrjK)
2021/07/22(木) 15:34:51.65ID:cBUwSw0B0
>>678
>PropertyChangedイベントを発生させれば事足りるのだが

どこで発生させるの?
681デフォルトの名無しさん (ワッチョイ fa2c-NvNM)
2021/07/22(木) 17:41:00.24ID:ViOG2+oF0
適当にはこんな感じでしょ
model.PropertyChanged += (sender, e) => {
if (e.PropertyName == nameof(model.Hoge)) {
this.OnPropertyChanged(nameof(this.Piyo));
}
};

public string Piyo => $"OK {this.model.Hoge}";
682デフォルトの名無しさん (ワッチョイ 69ad-zcwp)
2021/07/22(木) 19:46:33.52ID:UxCXOW0H0
イベントを発生させてないじゃん
683デフォルトの名無しさん (オイコラミネオ MMad-kbnc)
2021/07/22(木) 19:51:13.33ID:vwDpdZeFM
基本をまず理解してないなあw
684デフォルトの名無しさん (ワッチョイ 695f-uCgs)
2021/07/23(金) 21:15:00.87ID:ETT9THzl0
PropertyChangedという言葉の意味を考えてみろ
setterにあるのが自然だろ
おまじないだよ考えなくていい
685デフォルトの名無しさん (ワッチョイ b92f-TOGs)
2021/07/23(金) 23:01:35.61ID:xliiSqIt0
そのためにわざわざ読み取り専用でいいプロパティにsetter作れってか
686デフォルトの名無しさん (ブーイモ MM4d-A0XN)
2021/07/23(金) 23:08:52.13ID:c4wX/KeRM
>>684
よく勘違いしてる人いるけど、イベントの-edは過去分詞じゃなくて動詞の過去形
つまりプロパティが他者によって変更されたのではなくプロパティが主体なので、
setterによらず自発的に変更イベントを発生させたとしてもなんら不自然ではない
687デフォルトの名無しさん (アウアウウー Sa5d-Hgw+)
2021/07/24(土) 00:23:31.06ID:h1SwVBD3a
イベントが過去形か受動態かについては議論があるよ
全部過去形だというのは明らかに無理があるw
どっちの場合もあると思うしそれでいいでしょ。

受動態>過去形>完了形

一般的な使用頻度はこうじゃないかな。
しばらく前からイベントに普通の名詞形を使う命名の仕方もあるよね
688デフォルトの名無しさん (ブーイモ MM4d-A0XN)
2021/07/24(土) 00:26:07.51ID:xo8cuQ5sM
>>687
https://docs.microsoft.com/ja-jp/dotnet/standard/design-guidelines/names-of-type-members#names-of-events
689デフォルトの名無しさん (アウアウウー Sa5d-Hgw+)
2021/07/24(土) 00:33:52.24ID:h1SwVBD3a
>>688
それはあくまでガイドライン。
実態の話をしてるんでしょ。

例えばそこのページに出ているDroppedDown、
dropは自動詞だと思うので過去形だという主張はちょと無理がある
690デフォルトの名無しさん (ワッチョイ 8b63-dIS9)
2021/07/24(土) 00:36:42.84ID:LBBZ+Kmj0
長々と何やってんだこいつらは
691デフォルトの名無しさん (ワッチョイ 59ad-isbc)
2021/07/24(土) 00:55:30.71ID:5I2AJlas0
>>689
droppedは過去形でよく使わんか?
an apple dropped down.とか
stock price dropped.とか。
692デフォルトの名無しさん (ブーイモ MM9d-jH4d)
2021/07/24(土) 01:44:28.78ID:fvYf7+8hM
よく勘違いしてる人いるけどwww
693デフォルトの名無しさん (ワッチョイ 8ba7-tzNt)
2021/07/24(土) 01:47:50.50ID:1HbXMJpe0
その労力でドキュメント書けよと
694デフォルトの名無しさん (ワッチョイ 695f-qCnf)
2021/07/24(土) 02:04:43.55ID:hjQXc5u90
何したいのかよくわからんけど
getterしか必要ないってことはそもそも画面に表示する必要ないプロパティじゃないの
695デフォルトの名無しさん (ワッチョイ 8ba7-tzNt)
2021/07/24(土) 02:16:18.66ID:1HbXMJpe0
イミフ
値に単位でも付いてんじゃん?
696デフォルトの名無しさん (アウアウウー Sa5d-Hgw+)
2021/07/24(土) 02:31:41.54ID:h1SwVBD3a
>>691
何を言っているのか意味がわかんないけど、自動詞って言葉の意味は分かる?
dropしたのはDroppedDownイベントを発生させるオブジェクトではないよね?
イベントを発生させるオブジェクトはdropしたんじゃなくて「された」んだよw

もちろん「何かが落ちた」という現象を通知するイベントなんだと強弁することもできるが、
これ言ってて苦しいでしょ(笑)不自然で無理矢理すぎる。
受動態だって考える方が100倍自然だ。

Clickedイベントとかも同じ。
これが過去形ならButtonが自分で自分をクリックしたのかとw
お前はクリックしたんじゃなくてされたんだろうがとw
697デフォルトの名無しさん (ワッチョイ 4901-3Z6B)
2021/07/24(土) 02:49:48.99ID:hRScAD3a0
どうでもいいことをw
698デフォルトの名無しさん (ワッチョイ 3333-B2Sg)
2021/07/24(土) 07:33:48.35ID:Ogl9r0n00
続きは議論スレでどうぞ。

ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
http://2chb.net/r/tech/1469538912/
699デフォルトの名無しさん (ワッチョイ 59ad-isbc)
2021/07/24(土) 09:11:25.75ID:5I2AJlas0
>>696
自動詞わかるよ?

なんで自制を使うかって理由が抜けてるんだと思う。
ネイティブにとってもそこはMSの方針いけてねえよなって思うところかもしれんのだと思うんだけど、MSはBeforeClickとAfterClickとかそういう接頭語を使ってイベント発火順を表して欲しくないんよ。
なので、Clickのあとに起こるイベントはClickedなんよ。
Click→Clicking→Clickedになる。
700デフォルトの名無しさん (ワッチョイ 0bda-xIv+)
2021/07/24(土) 09:34:03.83ID:LgxXeocX0
NCが無いぞ
701デフォルトの名無しさん (ワッチョイ 2b7c-rYQD)
2021/07/24(土) 10:12:44.82ID:mVGUTLQy0
>>694
ViewModelでの話に限って言うと
setterを持っているってことはViewから入力があるという含意がある
(もちろんケースバイケースでそうでない設計にすることもある)

で、例えばViewのラベルで現在時刻表示するためにViewModelにNowTimeプロパティを用意したとして
Viewからの入力はないんだからsetterを用意するのはおかしいよね、ということ
702デフォルトの名無しさん (ワッチョイ b102-hFcM)
2021/07/24(土) 11:05:01.44ID:syFCi9m80
>>698
誘われてあっちを久し振りに読んでみたけど、ここよりも有意義なことが書いてある気がしてならない。
703デフォルトの名無しさん (ワッチョイ fb62-xnNM)
2021/07/24(土) 12:26:37.04ID:rh7fcU6F0
>>701
現在時刻は変化してくんだからprivateなセッターで値を更新して、プロパティ変更イベント発生させればいいんじゃないの?
704デフォルトの名無しさん (ワッチョイ 9301-416K)
2021/07/24(土) 12:40:41.42ID:qEX1axDl0
>>701
>setterを持っているってことはViewから入力があるという含意がある

ないよ
外部から呼ばれたくなければprivate/protectedなsetterを使う

現在時刻のような呼び出しのたびに変化するような値は一般的にプロパティにすべきじゃないよ
(DateTime.Nowとかあるけど、あれはMSも間違いだと思ってるらしい)
705デフォルトの名無しさん (ワッチョイ 2b7c-rYQD)
2021/07/24(土) 12:42:42.49ID:mVGUTLQy0
別にそれでもいいんだけど
現在時刻そのものはDateTime.Nowでとるじゃん(これがModelに相当する)
わざわざViewModelにDateTimeのフィールド置いたりとかする必要がない
ViewModelは単にDateTime.Nowを返すgetterを持つだけで充分
setter書いても実際には何もsetしないとか違和感バリバリだし
706デフォルトの名無しさん (ワッチョイ 992d-qCnf)
2021/07/24(土) 12:46:48.97ID:M/JULpVd0
>>704
> (DateTime.Nowとかあるけど、あれはMSも間違いだと思ってるらしい
ソースは?
707デフォルトの名無しさん (ワッチョイ b92f-MYQi)
2021/07/24(土) 13:18:24.45ID:v4FoWuLT0
もとの話は他のクラスのプロパティから導出されるプロパティって話だったんだが
708デフォルトの名無しさん (ワッチョイ fb62-xnNM)
2021/07/24(土) 13:23:10.38ID:rh7fcU6F0
>>705
それでもいいじゃなくて、どうクラスを設計するか
取得した時点でモデルプロパティ値が更新されたと見なす仕様なのか、リアルタイムで更新する仕様なのか
単に現在時刻をとれればいいのであれば、それはプロパティじゃなくてメソッドだし、プロパティ変更イベントを用意する必要もない
709デフォルトの名無しさん (テテンテンテン MMeb-BZqs)
2021/07/24(土) 13:39:01.39ID:1RH6PTqTM
DateTime.Nowは設計失敗の産物って話、俺もどこかで読んだ記憶があったんだけど
おおもとのソースは書籍だったみたいだ
ググったら個人ブログの感想でこんなのが引っかかった
https://ufcpp.wordpress.com/2009/12/27/net-%e3%81%ae%e3%82%af%e3%83%a9%e3%82%b9%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e8%a8%ad%e8%a8%88/
710デフォルトの名無しさん (オイコラミネオ MM55-3Z6B)
2021/07/24(土) 13:48:21.00ID:8X55Gw1wM
海外のクソライブライブラリ使うとたまにそういうレベルでメソッドになったりプロパティになったり
非常に邪魔くさい

DateTime.NowがDateTime.Now()になったりDateTime.GetNow()になったりDateTime.GetInstance.Nowになったり
コロコロコロコロ変えてくる

ドキュメントが整備されてないからインテリセンスで推測して変更するしかない
711デフォルトの名無しさん (ワッチョイ b993-jIx1)
2021/07/24(土) 14:41:03.27ID:pChvHGUq0
>>702
向こうでやると初心者用スレに書かない人が現れて論破されちゃうから行きたくないらしいよ
ここで議論してる人はその程度って事
712デフォルトの名無しさん (ワッチョイ 695f-MYQi)
2021/07/24(土) 19:53:22.67ID:hjQXc5u90
>>701
その含意はない
XAMLのModeプロパティでOneWayとか指定するようになってるし
713デフォルトの名無しさん (ワッチョイ 1142-3Z6B)
2021/07/24(土) 20:51:57.91ID:jHuzu2oV0
俺ならModelの方にINotifyPropertyChangedを実装して、VMでは
ReadOnlyReactivePropertyで変更通知を中継するな
714デフォルトの名無しさん (ワッチョイ 41e4-j2WC)
2021/07/25(日) 17:48:33.79ID:jAuNvB3l0
アドバイスを頂きたいです。
簡単なCRUD機能を持ったコンソールアプリがあり、EntityFrameworkを使用してSQL Serverとのやり取りを行っています。
このSQL Serverのデータベースを年毎に個々に持ちたいという要件が出てきました。
テーブル構成等は全く同じで2020年のデータベース、2021年のデータベースをそれぞれ立てるという形です。

ただ、毎年この作業の対応は出来ないので、コマンドを叩くだけのような自動化をしたいと考えております。
理由として社内の事情によりvisual studioを使用する事が難しい点があります。
その為、アプリ側でDBとの接続情報を変更して発行しなおす事がハードルが高いため、可能であれば自動化したいです。

データベースの作成はSQL文を使用すれば良いと思うのですが、EntityFrameworkを使用しているアプリ側への対応として、「接続するデータベースが変更された場合」という部分はどのように対応してよいか分かりません…。

CodeFirst、ModelFirstどちらの場合でもデータベースの変更に対応するにはやはりプログラム側で変更するしかないでしょうか?
データベースを年毎に分けた場合、過去のデータを参照したい時に年毎のデータベースそれぞれのDbContextの情報を作成しないと行けないと考えるとやはり自動化は無理でしょうか…

当方素人レベルなので良い案も浮かばず、何か少しでもアドバイス頂きたいです…。
長文大変失礼しました。
715デフォルトの名無しさん (ワッチョイ fbda-Th4Q)
2021/07/25(日) 17:54:33.09ID:AwazG5ML0
sqlserverで1年に1回ジョブながせばいいのでは?
今年分のdbは常に'hoge'って名前にして、1/1 0:00にhogeをデタッチして名前変更。
でhogeを新規作成
716デフォルトの名無しさん (ワッチョイ 41e4-j2WC)
2021/07/25(日) 18:11:58.13ID:jAuNvB3l0
>>715
ありがとうございます。
通常使用するのは「hoge」固定とし、年が変わるごとに「hoge2020」「hoge2021」のように名前を付けて別物として扱うということですよね。

私もこれなら行けるかもと考えていたのですが、例えば過去のデータを参照したい場合に「hoge2020」「hoge2021」の情報をアプリ側が所持していないので参照出来ないのでは…と思い悩んでいました…。(先程コンソールアプリと記述してしまいました、すみません。正しくはフォームアプリです)
717デフォルトの名無しさん (ワッチョイ fbda-Th4Q)
2021/07/25(日) 18:27:49.79ID:AwazG5ML0
変更した情報をhogeのテーブルに持ち、クライアントへ渡しては?

hogeのConnStrInfoテーブル

ID, db_name, year
1, hoge_2018, 2018
2, hoge_2019, 2019
3, hoge_2020, 2020

これをクライアント側で取得し、動的に接続先を切り替える。
efだとConnection Stringをこねくり回すのはめんどいかもしれないけど
他に方法が思い浮かばない。
718デフォルトの名無しさん (ワッチョイ fb62-xnNM)
2021/07/25(日) 18:42:30.26ID:GuabS5RG0
>>714
DBが分かれていて、別のDBに接続するときに接続情報を切り替えるのは当然だと思うけどなんでそれがダメなの?
719デフォルトの名無しさん (ワッチョイ 41e4-j2WC)
2021/07/25(日) 19:28:19.50ID:jAuNvB3l0
>>717
ありがとうございます。
こんな方法思いつきませんでした。
知識が乏しいので、私にはかなり難しそうですがプログラム側で変更出来ないならDB側で工夫するしかないですね。

>>718
アプリはEntityFrameworkを使用し、既存のデータベースからモデルを構築しています。
年毎にデータベースが増えたとしてもvisual studioの機能を使用し、データベースの構造をモデル化すれば良いのですが、諸事情によりvisual studioの利用が難しい環境ですのでプログラム側を変更しなくて済むような別の方法を探しています…。
回答になってなかったら申し訳ありません…。
720デフォルトの名無しさん (ワッチョイ 29a0-qNbu)
2021/07/25(日) 20:53:07.93ID:bu8XEemW0
それってテーブル設計に変更があったら過去のデータベースも変更するの?
そこ詰めといた方がいいよ
721デフォルトの名無しさん (ワッチョイ fb62-xnNM)
2021/07/26(月) 03:27:45.68ID:ScOxzw7A0
データベースが増えても構造が変わらない限りモデルは増えないけどどんなイメージをしてるのか気になる
722デフォルトの名無しさん (ワッチョイ f154-AKU+)
2021/07/26(月) 03:31:43.27ID:2hg/H2MX0
新しいテーブルに既存のテーブルから正規化しつつ移行ってパターンで1回地獄見たな。
該当の既存のテーブルを、協力会社の古い基幹システムが使ってて、そっちが動かなくなった。
723デフォルトの名無しさん (ワッチョイ b92f-MYQi)
2021/07/26(月) 09:47:45.98ID:jSxCL2fC0
普通に作ってればDBの接続情報をプログラム内に固定でもってることなんてないと思うが

つか年度ごとに別DB作るとかそもそもの発想がもう普通じゃないかw
724デフォルトの名無しさん (オッペケ Sr85-65bx)
2021/07/26(月) 11:04:48.50ID:dSy+WV8fr
まあソースベタがきは確かにないやろな

色々冷静な判断が出来ない現場なんだろう、知らんけど
725デフォルトの名無しさん (ワッチョイ f154-AKU+)
2021/07/26(月) 11:09:22.19ID:2hg/H2MX0
もしかしてパーティショニングの事を言ってる可能性。
726デフォルトの名無しさん (ブーイモ MMeb-A0XN)
2021/07/26(月) 11:11:01.52ID:oZRLaCWQM
年度毎にデータを残しておいていつでも出せるようにしてほしいみたいな客の言葉を
常識的なシステム設計を理解していないバカが鵜呑みにしちゃった結果だろ
ギョウムシステムにはよくあること
727デフォルトの名無しさん (ワッチョイ 9301-416K)
2021/07/26(月) 11:54:28.60ID:JPK+qSgu0
市販の会計ソフトだと年次ごとデータベースを分ける作りにしてるのはよくある

旧年度のDBはそのままにして新年度だけDB構造を変更できたり
確定処理後は読み取り専用にするのをアプリ層じゃなくDB層でできたりと
メリットもあるので一概に否定される考え方でもないと思う
728デフォルトの名無しさん (アウアウウー Sa5d-DFYI)
2021/07/26(月) 12:38:50.17ID:H5g87deEa
イベントソーシングでいいじゃん
729デフォルトの名無しさん (ブーイモ MMeb-A0XN)
2021/07/26(月) 13:14:31.91ID:oZRLaCWQM
>>728
イベントソーシングはスキーマ変更の問題を解決しない
それどころか過去全期間に渡る全データのマイグレーションというとてつもなく面倒な作業となる
730デフォルトの名無しさん (アウアウウー Sa5d-DFYI)
2021/07/26(月) 13:15:54.39ID:H5g87deEa
>>729
何言ってんだ?
731デフォルトの名無しさん (ブーイモ MMeb-A0XN)
2021/07/26(月) 13:18:18.35ID:oZRLaCWQM
>>730
知らんがな
イベントソーシングで何がどう解決するのかお前が説明しろ
732デフォルトの名無しさん (アウアウウー Sa5d-DFYI)
2021/07/26(月) 13:31:24.51ID:H5g87deEa
イベントソーシングなら過去のデータを全てそのまま維持しつつ年度ごと、それどころかあらゆる変化に対応可能
アペンドオンリーなので過去データは最初から読み取り専用
年度ごとにデータベースを分けるなんて間抜けなことはしなくていい
733デフォルトの名無しさん (ワッチョイ 9301-416K)
2021/07/26(月) 14:32:10.50ID:JPK+qSgu0
スキーマ変更に対して取りうる戦略ってのはイベントソーシングでも基本的に同じ

読み取り専用にする話はイベントソーシングで言うと
確定処理後に過年度のイベントが入ってこないようにしたり
入ってきてもプロジェクション時に必ず除外するようなアプリを通す必要がある

アプリ層で処理するって意味では年度別にデータベースを分けずに各データに年度をもたせた場合と同じ
734デフォルトの名無しさん (アウグロ MMbd-tzNt)
2021/07/26(月) 15:09:24.98ID:wC2iVXytM
この業界わけのわからない横文字技術で解決することっていっつも皆無だよね
単に下駄履かせてイキってるだけ
735デフォルトの名無しさん (アウアウウー Sa5d-DFYI)
2021/07/26(月) 15:51:35.56ID:H5g87deEa
>>733
>スキーマ変更に対して取りうる戦略ってのはイベントソーシングでも基本的に同じ
わからない
RDBではデータモデルの変更が発生すればスキーマを変更する
イベントソーシングはデータモデルの変更が発生してもアプリケーションを変更するだけ
つまりイベントの再生方法が変わるだけでデータレイヤは永遠に同じ

>読み取り専用にする話はイベントソーシングで言うと
>確定処理後に過年度のイベントが入ってこないようにしたり
>入ってきてもプロジェクション時に必ず除外するようなアプリを通す必要がある
イベントソーシングでは過去の状態を再生するにはタイムスタンプでフィルタするだけ
過年度の変更イベントが入っても過去の状態の再生には影響しない

>アプリ層で処理するって意味では年度別にデータベースを分けずに各データに年度をもたせた場合と同じ
単にタイムスタンプでフィルタするだけなのでアプリ層の仕事は存在しない
736デフォルトの名無しさん (オッペケ Sr85-qNbu)
2021/07/26(月) 16:18:53.38ID:6FDjB4blr
そんな夢みたいな仕組みがなんのしがらみもなく完璧に動作するならみんな使ってるよ…
737デフォルトの名無しさん (アウアウウー Sa5d-DFYI)
2021/07/26(月) 16:34:40.70ID:H5g87deEa
完璧に動作するんだけど大きなパラダイムシフトだから精神的抵抗orマイグレーション抵抗があってみんな食わず嫌いしてるだけ
738デフォルトの名無しさん (オッペケ Sr85-qNbu)
2021/07/26(月) 16:54:08.24ID:6FDjB4blr
馬鹿なんだろうなあきっと
739デフォルトの名無しさん (ブーイモ MMcb-A0XN)
2021/07/26(月) 16:55:34.22ID:GiNSwnizM
>データレイヤは永遠に同じ
イベントソーシングでは後からのスキーマ変更はすなわち意識高い系アーキテクトにとっては屈辱的な設計の破綻なので、
そうならないように属性を全部JSON型の列に突っ込むような緩いスキーマを採用する場合があるってだけだ
引き換えに失うものはC#プログラマならよく理解してるだろう
もちろんちゃんと型を付けて真面目にDBを使う選択もあって、その場合はよくある普通の取引記録テーブルと変わらん
スキーマvsスキーマレスの違いであり、イベントソーシングとは直接関係ないよ
740デフォルトの名無しさん (アウアウウー Sa5d-DFYI)
2021/07/26(月) 17:00:20.93ID:H5g87deEa
>>738
自己紹介?
741デフォルトの名無しさん (アウアウウー Sa5d-DFYI)
2021/07/26(月) 17:03:55.87ID:H5g87deEa
>>739
ビジネス要件は日々変化するのでスキーマ変更を屈辱と感じるのは古臭い考え方のおじさん達だけだよ
変化に柔軟に適応するために最適化した進化と考えればいい
なおデータレイヤがスキーマレスだからといってモデルがタイプレスになるわけではないことは知っておいたほうがいい
C#や類似の言語が持つ静的型の堅牢性はESでも依然として完全に発揮されるので安心していいよ
742デフォルトの名無しさん (ブーイモ MMcb-A0XN)
2021/07/26(月) 17:12:24.77ID:GiNSwnizM
そうかなあ
スキーマレスだとせっかくのnull許容参照型もあまり役に立たなくなるし、
おかしなデータが混入しててデシリアライズ時に型違いで落ちるとか日常茶飯事だったよ
マイグレーションによる停止が許容できるなら断然スキーマがある方が楽よ
743デフォルトの名無しさん (アウアウウー Sa5d-DFYI)
2021/07/26(月) 17:23:29.78ID:H5g87deEa
>>742
さっきも言ったようにESでモデルの静的な型安全性が損なわれることはない
notnull/nullableは依然として有効だよ
再生時に型違いで落ちるのが日常茶飯事というのは何を言ってるのかわからないね
744デフォルトの名無しさん (アウアウクー MM05-j2WC)
2021/07/28(水) 15:11:51.63ID:DWczQTyVM
初歩的な質問でごめん
EntityFrameworkで2つのテーブルをjoinするやり方を調べてると下のコードみたいに結合した結果を作るように書いてたのね

(book, category) => new{
Title = book.Title,
Category = category.Name,
PublishedYear = book.PublishedYear
}

もしbookテーブル、categoryテーブルが例えば100列ずつあって結合後に全要素取得したい場合はnew以降に全カラム分記述しなきゃいけない?
745デフォルトの名無しさん (ワッチョイ fbda-Th4Q)
2021/07/28(水) 17:18:49.56ID:2UB5YNTT0
いけないことはない
746デフォルトの名無しさん (ワッチョイ fbda-Th4Q)
2021/07/28(水) 17:28:01.17ID:2UB5YNTT0
var q = db.Books.Join( db.Categories, o => o.id, i => i.id, ( o, i ) => new { Book = o, Category = i } );
foreach(var row in q)
{
 int bookId = row.Book.id;
 int categoryId = row.Category.id;
 :
 :
}

まぁ不要なカラムを含んでいる分、使用メモリも増えるが。
生産性優先なら上記のように書くことも多々あり
747デフォルトの名無しさん (ワッチョイ 41e4-j2WC)
2021/07/28(水) 19:36:49.49ID:DIkQ/nRv0
>>746
ありがとう
確認だけど、この部分で全要素をqに格納が出来て

var q = db.Books.Join( db.Categories, o => o.id, i => i.id, ( o, i ) => new { Book = o, Category = i } );

欲しい要素がある場合は後から個別に参照するって感じだよね

foreach(var row in q)
{
 int bookId = row.Book.id;
 int categoryId = row.Category.id;
 :
 :
}

LINQ難しい…
748デフォルトの名無しさん (ワッチョイ b92f-MYQi)
2021/07/28(水) 20:04:32.82ID:eOFL29aD0
テーブルの結合て、モデルの結合だよな
モデルの設計をミスってるとしか思えんのだが

ほんとにテーブルを結合したいなら生SQL流せばいいんじゃね
749デフォルトの名無しさん (ワッチョイ fbda-Th4Q)
2021/07/28(水) 20:37:20.88ID:2UB5YNTT0
>>747
そう。
Linq文は横に長くなりがちなので、一時変数は極力短くすることが多いのも難しく感じる要因かな。
やってるのはただのinner join

もうちょっと丁寧に書くと
using(var db = new HogeContext() )
{
 // 欲しい情報
 string bookName;
 int bookPrice;
 string categoryName;

 // クエリ生成
 var query = db.Books.Join( db.Categories, outer => outer.category_id, inner => inner.id, ( outer, inner ) => new { Book = outer, Category = inner } );

 // 実際のDB接続とクエリ実行はforeach文に到達したとき
 foreach(var row in query)
 {
  bookName = row.Book.name;
  bookPrice = row.Book.price;
  categoryName = row.Category.name;
  :
  :
 }
}

情報取得だけならAsNoTracking()つけたりするから、さらに横に長くなる。
750デフォルトの名無しさん (ワッチョイ d901-qNbu)
2021/07/28(水) 23:03:49.99ID:q6gIxmJG0
こんなトンチみたいなことするより
サクッとSQLでええわってならんの?
751デフォルトの名無しさん (ワッチョイ 8b63-dIS9)
2021/07/28(水) 23:47:01.98ID:dkHjVPwA0
スマートに書けませんか?系のスマートは究極的には人それぞれなものでね…
752デフォルトの名無しさん (ワッチョイ fb62-xnNM)
2021/07/29(木) 11:05:49.23ID:A3ai3bJf0
EF使うようになってから明示的なJoinなんて滅多にやらないしな
今回のもdb.Books.Include(x =>x.Category)でいいし
753デフォルトの名無しさん (アウアウクー MM05-j2WC)
2021/07/29(木) 12:18:33.25ID:wBFFQVArM
>>749
分かりやすくて助かるありがとう

EFで取得した値がnullかどうかをチェックってどうしてるの?
生のSQL書くやり方だと取得した取得したDataReaderをループで回して

while(reader.Read() )
{
for(var i = 0; i <= 10; i++)
{
if(Convert.IsDBNull(reader[i])))
{
testList[i] = 0;
}
else testList[i] = reader[i]
}
}
↑みたいにチェックしてnullだったら0埋めとかやりたい処理を書くんだろうけど、EFで取得した値だと上で教えてくれたように

foreach(var row in query)
 {
  bookName = row.Book.name;
  bookPrice = row.Book.price;
  categoryName = row.Category.name;
 }
ループで回してもrow.Book.nameみたいに個別にアクセスしないといけないからnullのチェックはそれぞれの要素に対してするの?
わかりにくくてごめん
754デフォルトの名無しさん (ブーイモ MM4d-WLdd)
2021/07/29(木) 12:47:21.43ID:qHkX3Ch7M
WPFでcanvasに図形が追加されるたびにその状態を保存してUndoRedo機能を作りたいです
stack<t>にcanvasを入れれば実装できると考えていたのですが出来ませんでした
stackの中身を見てみるとcanvasが全て最新のものになっていました
理想
@図形追加
→stack1 canvas(図形一個だけ)
A図形追加
→stack1 canvas(図形一個だけ)
→stack2 canvas(図形2個)
B図形追加
→stack1 canvas(図形一個だけ)
→stack2 canvas(図形2個)
→stack3 canvas(図形3個)
実際
@図形追加
→stack1 canvas(図形一個だけ)
A図形追加
→stack1 canvas(図形2個)
→stack2 canvas(図形2個)
B図形追加
→stack1 canvas(図形3個)
→stack2 canvas(図形3個)
→stack3 canvas(図形3個)

this.canvasをstackにpopで格納しているのですが恐らく参照型になっている(?)のかと思います
どうすれば解消されるか教えてください
755デフォルトの名無しさん (ワッチョイ fb62-xnNM)
2021/07/29(木) 13:19:29.67ID:A3ai3bJf0
>>754
stack2を作る時に、
var stack2 = stack1;とすると同じインスタンスを参照するのでstack1の追加が反映される
var stack2 = new stack(stack1);とすると別のインスタンスを参照するので反映されなくなる

という話であってるよね
756デフォルトの名無しさん (ワッチョイ 3333-B2Sg)
2021/07/29(木) 18:55:32.43ID:X32y6Www0
分からない事を相手に伝える能力って大切だよな。
757デフォルトの名無しさん (ワッチョイ 41ad-qBdh)
2021/07/29(木) 19:16:32.82ID:aIWwtEZD0
それができる人って、5chで質問しなきゃならんような事態には陥らないんだよね。
758>>754です (ワッチョイ 1a36-SEfg)
2021/07/30(金) 00:50:25.37ID:t+gnevWm0
stackのインスタンスは1個だけです

Stack<Canvas> stack = new Stack<Canvas>();で宣言して
@canvasに図形追加後にstack.Pop(canvas)
→stackの中身1個目(図形一個だけ))
Acanvasに図形追加後にstack.Pop(canvas)
→stackの中身1個目(図形一個だけ)
→stackの中身2個目(図形2個)
Bcanvasに図形追加後にstack.Pop(canvas)
→stackの中身1(図形一個だけ)
→stackの中身2(図形2個)
→stackの中身3(図形3個)

少し書き直しました
これが実現したことです
759>>754です (ワッチョイ 1a36-SEfg)
2021/07/30(金) 00:52:16.98ID:t+gnevWm0
連レス申し訳ないです
PopではなくPushでした
760デフォルトの名無しさん (ワッチョイ 4eda-NYJC)
2021/07/30(金) 02:25:15.43ID:QEEDdLaI0
stackにcanvasをpushしたあと、
そのcanvasは再利用せず、newして作り直してる?
761デフォルトの名無しさん (ワッチョイ f15f-H9Cj)
2021/07/30(金) 05:37:39.20ID:nfAsNhTi0
まず「値型 参照型 C#」 でググってみよう
762>>754です (ブーイモ MM9a-SEfg)
2021/07/30(金) 10:43:57.97ID:RkZ8j2TuM
>>760
Redo(){
Canvas Newcanvas = this.canvas;
stack.Push(NewCanvas);


してます
763デフォルトの名無しさん (ワッチョイ 4eda-NYJC)
2021/07/30(金) 11:05:04.49ID:QEEDdLaI0
それは参照のコピーなので、stackに入ってる実体は全部一緒になる

stack.Push(this.canvas);
this.canvas=new Canvas();;

とやって新しい実体を作って、この上に図形を置いていく
764デフォルトの名無しさん (ワッチョイ 4abd-Gq/8)
2021/07/31(土) 22:58:59.84ID:Z1UuiVog0
添付図のような必ず始点Xが0からなる四角の座標List配列の重複部をチェックして配列を作り直したいんですけど、考え方がさっぱりなので教えて下さい。

@原点XYは四角の左下を押さえ、加工はXは右。Yは上への数値とし、マイナス数字はなしです。

(原点X) / (原点Y) / (加工X) / (加工Y)
・変更前
[0] 0 / 15 / 30 / 10
[1] 0 / 40 / 10 / 120
[2] 0 / 60 / 30 / 30
[3] 0 / 110 / 30 / 30

・変更後
[0] 0 / 15 / 30 / 10
[1] 0 / 40 / 10 / 60
[2] 0 / 60 / 30 / 30
[3] 0 / 90 / 10 / 20
[4] 0 / 110 / 30 / 30
765デフォルトの名無しさん (アウアウウー Sa09-UXpz)
2021/07/31(土) 23:03:01.69ID:bmkKtZ0ga
766デフォルトの名無しさん (アウアウウー Sa09-By/s)
2021/07/31(土) 23:11:36.23ID:E9qR8Cfaa
何回読み返しても何言ってるのかさっぱりわからんw
767デフォルトの名無しさん (ワッチョイ 16da-Z7Y7)
2021/07/31(土) 23:19:55.92ID:ydlk2MeT0
ZDDを独自実装しようとしているのかな
768デフォルトの名無しさん (ワッチョイ 0a33-FUax)
2021/07/31(土) 23:23:58.74ID:9qH0jLVR0
なんかいろいろかわいそうな奴が多いスレだな。
769デフォルトの名無しさん (ワッチョイ d593-DcDN)
2021/08/01(日) 02:08:17.96ID:h7UMfjhz0
宿題か
770デフォルトの名無しさん (ワッチョイ d6f2-RnN5)
2021/08/01(日) 03:45:12.85ID:d6NVMwiu0
添付図ってどれ
771デフォルトの名無しさん (ワッチョイ 4abd-Gq/8)
2021/08/01(日) 07:54:26.92ID:eXU4IEL10
ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚
すみません。これです。
772デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 08:17:39.94ID:bK0+MnNI0
>>764
・加工XYって何?
・変更前、変更後って何?
・表の[番号]は何?
・表の一行は何を表してるの?
・作り直したいって具体的にどうするの?
・そもそも重複部をどうしたいの?
773デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 08:57:03.12ID:bK0+MnNI0
>>771
図だけ見るなら
Xの値が同じ領域のYの範囲を作成する
だけじゃね?

@重複なしのY範囲リストを作成する(矩形のor取ればできるはず)
A開始Y座標のXの最大値を求める
B元の矩形情報からAのY範囲を求める
Cリストに追加
DABCで次のY範囲を求める
以下ループ

みたいな
774デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/01(日) 09:14:55.78ID:WqiJzLKM0
>>764
パズルみたいでなんとなく考えてみたんだけどこういうことか

ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚

これが 変更前の四角形[0] の 「座標」とやらの考え方かな

んで[0]〜[3]の矩形が重なり合う部分を消去
残る矩形の「座標」を求める

変更前[1]の横幅がもっと広かったりするときれいに四角形が作れないけど
そういう場合は存在しないのかな
それとも別のルールで 「変更後」 の四角形をつくるのかな
775デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/01(日) 09:31:09.73ID:WqiJzLKM0
今気づいたんだけどimgurって閲覧数でるのな
20分で16Views
おれが2回ぐらいブラウザから開きなおしてるとしても
こんな時間からここ見てる人結構いるのな
776まあ俺が言うのもなんだがw (ワッチョイ 7a01-stwz)
2021/08/01(日) 09:53:24.09ID:BgB9X1kX0
>>771
X軸側を無視していいなら単純に
for i = 0 to 3
if [i+1].原点Y < [i].原点Y + [i].加工Y then
[i].加工Y = [i+1].原点Y - [i].原点Y
end if
next
でよくね?
777デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 09:54:45.41ID:bK0+MnNI0
>>776
領域分割できそうにないな
778デフォルトの名無しさん (ワッチョイ 4e62-tshE)
2021/08/01(日) 11:25:36.83ID:tRXxqm7b0
>>771
なるほど
ルール説明が不十分なんだけど、その細長い四角形の幅が10ではなくて50とかあったらどうなんの?
779デフォルトの名無しさん (アウアウウー Sa09-UXpz)
2021/08/01(日) 11:41:00.72ID:l/JPeXRia
>>773
Xの開始点が0じゃない場合は対応できる?
例えば真ん中らへんにある正方形(?)がちょっぴり右にズレてる場合
780デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 11:56:08.78ID:bK0+MnNI0
>>779
Xの開始点はゼロ固定なんじゃないかと思ってる多分
781デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 11:59:33.18ID:bK0+MnNI0
Xの開始点がゼロ固定出ない場合は矩形を作成するための優先順位のルールが必要になると思われる
782デフォルトの名無しさん (アウアウウー Sa09-UXpz)
2021/08/01(日) 12:06:37.48ID:l/JPeXRia
あっよく見たらxはゼロ始点って書いてあったわ
783デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/01(日) 12:55:16.92ID:WqiJzLKM0
Y軸を底辺とみなしてX軸側に伸びる棒グラフのようなものと捉えて処理したら一応できた
Y軸で使う最大の値160を要素数とする配列を作る
棒グラフの高さ、つまり加工Xを要素として入れていく
んで、この配列を材料にしていろいろと・・・

ただ、変更前配列の、例えば [0] 0 / 15 / 30 / 10 の 10を1に変えるとまだエラー出ちゃうわ
つまらんところでつまづく
時間ないのでやめたー
784デフォルトの名無しさん (スフッ Sd9a-kof4)
2021/08/01(日) 12:57:59.16ID:z46enDEHd
atcoderとかでありそうな課題だなと思った
やった事ないけど
785デフォルトの名無しさん (アウアウウー Sa09-UXpz)
2021/08/01(日) 13:19:27.15ID:l/JPeXRia
元の矩形リストから各頂点のx, yをリストアップし、重複を排除して格子を作る
格子中の各矩形を走査し、元の矩形リストと衝突するものだけを抽出する
786デフォルトの名無しさん (ワッチョイ f15f-TPha)
2021/08/01(日) 13:35:56.90ID:5QRFhKeu0
>>764 のような質問の仕方を見ると、人に物事を伝える能力や単語の選び方って凄い重要だと実感する
回答者にナゾナゾ出してるんじゃないんだから、加工とか原点という意味不明な単語を使わずに
「左下の座標」「幅」「高さ」
で良いじゃない
あとアップしてある図は右端の縦線がないけど、左(変更前)と右(変更後)で違うというのは質問に関係あるの?

四角の重なりをどうにかしたいなら
System.Windows.Rect(またはSystem.Drawing.Rectangle)として全て総当たりで
IntersectWithで重なり検出したら何かする
Containsで完全に含まれることを検出なら更に何かする、で良いんでない
787デフォルトの名無しさん (アウアウウー Sa09-By/s)
2021/08/01(日) 13:39:33.75ID:8DB1DilKa
なるほどそういう質問だったのねw
これ数学的に厳密なアルゴリズムを考えるのはきつそうだね。

与えられる座標が整数であり上限が確定している(例えば200)なら、
ファミコン時代のテレビゲームのBG面みたいに200×200のタイルでできた盤面上で
考えるのが簡単そうかな知らんけど
788デフォルトの名無しさん (ワッチョイ 4e62-By/s)
2021/08/01(日) 14:23:33.51ID:tRXxqm7b0
途中まで書いたけど面倒になってやめた
普通に順番に処理していけばいいだけだからそんなにきつくなさそう
https://dotnetfiddle.net/7Z8ngH
789デフォルトの名無しさん (ワッチョイ d593-DcDN)
2021/08/01(日) 14:41:06.33ID:h7UMfjhz0
>>786
宿題丸投げだからそういう聞き方になるんじゃないの
790デフォルトの名無しさん (アウアウウー Sa09-By/s)
2021/08/01(日) 14:44:59.53ID:8DB1DilKa
図形の交差関係は目で見たら一目瞭然だけどそれを排他的な長方形に分解する処理が
そんなに簡単とは思えんな

特に抜き出した排他的な長方形をその後どう扱うかが難しい。
791デフォルトの名無しさん (ワッチョイ 4e62-tshE)
2021/08/01(日) 14:48:43.42ID:tRXxqm7b0
yだけ見ればいいから簡単だよ
792デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/01(日) 15:01:47.46ID:WqiJzLKM0
気になって完成させちゃった

・変更前
[0] 0 / 15 / 30 / 10
[1] 0 / 40 / 10 / 120
[2] 0 / 60 / 30 / 30
[3] 0 / 110 / 30 / 30

もし[1]が↑じゃなくて↓だったら

・変更前
[0] 0 / 15 / 30 / 10
[1] 0 / 40 / 100 / 120
[2] 0 / 60 / 30 / 30
[3] 0 / 110 / 30 / 30


結果が
[0] 0 / 15 / 30 / 10
[1] 0 / 40 / 100 / 120

となるようなロジックで書いた
793デフォルトの名無しさん (ワッチョイ 5d01-IKHw)
2021/08/01(日) 15:05:24.32ID:op+dn5mJ0
なんか金属加工みたいな業界用語っていうか専門用語なんやな
x y 加工 で検索したら。
794デフォルトの名無しさん (ワッチョイ d52f-QEAr)
2021/08/01(日) 15:06:38.74ID:A8U13CEq0
矩形の重なった部分のうち、xの低いほうの部分をカットするだけじゃないのか
795デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/01(日) 15:22:41.39ID:WqiJzLKM0
結果見て思ったんだけど、
>>764に例示してある数値だと変更後に6個の矩形が出てこない?
これ、俺の結果↓

[0] 0 / 15 / 30 / 10
[1] 0 / 40 / 10 / 20
[2] 0 / 60 / 30 / 30
[3] 0 / 90 / 10 / 20
[4] 0 / 110 / 30 / 30
[5] 0 / 140 / 10 / 20

なんかおれ間違えてるのかな
796デフォルトの名無しさん (アウアウウー Sa09-UXpz)
2021/08/01(日) 15:26:08.45ID:l/JPeXRia
問題文を素直に解釈するなら何個でもいい筈だろ
極端な話、長さ1の正方形に分割して重複を排除するだけでも条件は満たしてる
答えを1つに収束させたいならもっと強い条件が必要
797デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/01(日) 15:29:22.81ID:WqiJzLKM0
>>796
>>771を見る限りでは横方向にカットしていくんぢゃね
ナゾナゾなんだからさー、そういうところ、くーきよもーよー
798デフォルトの名無しさん (スフッ Sd9a-OhyW)
2021/08/01(日) 15:42:24.01ID:vyyPv1W2d
たとえば加工x値が同じ図形は存在するのか?
存在するならそれらが重なってる場合は結合するのか分離するのか?
分離するならその規則は

加工xが同じ矩形が連続して出力されたらそれらを結合するのかしないのか

>>771はあっさり書いてるが他の未知の情報がありそう
799デフォルトの名無しさん (スフッ Sd9a-OhyW)
2021/08/01(日) 16:07:29.70ID:vyyPv1W2d
3つ以上重なることはあるのかな
800デフォルトの名無しさん (ワッチョイ d52f-QEAr)
2021/08/01(日) 16:50:21.68ID:A8U13CEq0
>>795
もともと提示されている数字と図形があってないんじゃね
数字が正しいのなら、それが正解な気がするなぁ

つかもうC#全く関係ないし
どっかアルゴリズムなスレかプログラムのお題スレか行けばいいんじゃね
801デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 17:00:04.38ID:bK0+MnNI0
>>773でFAだろ
802デフォルトの名無しさん (アウアウウー Sa09-By/s)
2021/08/01(日) 17:32:18.94ID:8DB1DilKa
そんな簡単にできないってw
いろんなケースを想定してちょっと考えれば分かると思うんだけど

これが学校の宿題なら>>787に書いたような話だと思うよ
803デフォルトの名無しさん (アウアウウー Sa09-UXpz)
2021/08/01(日) 17:39:55.10ID:l/JPeXRia
というか>>785これが正解だよ
804デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 17:40:58.62ID:bK0+MnNI0
>>802
>>787は整数でしかできないだろ
805デフォルトの名無しさん (アウアウウー Sa09-By/s)
2021/08/01(日) 18:03:04.12ID:8DB1DilKa
>>804
だからそういう前提の宿題じゃないのと言ってるのよ

なぜなら実数前提だと単純なアリゴリズムで解けないから。
整数なら与えられたデータを使ってタイルにお絵かきして、
完成した「ドット絵」を排他的な長方形に分解すればいい。

これならそんなに難しくない。
806デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/01(日) 18:09:46.69ID:WqiJzLKM0
コード書いてみればいいよ

ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚
フォームアプリまでつくっちゃったわ (なにやってんだおれ
807デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 18:13:24.52ID:bK0+MnNI0
>>805
加工っていうワードから
これ宿題じゃなくて仕事じゃね?って思う
そうなるとこれ整数でしかできないとヤバクネ?って思う
808デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/01(日) 18:23:05.15ID:WqiJzLKM0
>>807
横レスすると、>>771の画像を拡大反転すると
水溶液
電気分解
熱分解
など、化学用語
さらには採点の赤丸まで透けて見えたりするところから
学生なんだろうなーと
809デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 18:51:04.93ID:bK0+MnNI0
>>808
普通に客先の妙なセミナーで似たようなプリント持ってる俺にはそれが学生要素かわからんな
810デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/01(日) 19:03:30.86ID:WqiJzLKM0
あー実数たぶんいけるなぁ
配列の要素数=Y軸、中身=X軸でやったけど、
ゼロと正の整数に限定されちゃう要素数をつかうのやめて
Y値の境目になる値とXの値をペアにしてデータ処理すればいけるわ


>>809
そういうもんかねー
811デフォルトの名無しさん (ワッチョイ d593-DcDN)
2021/08/01(日) 19:40:59.85ID:h7UMfjhz0
宿題どころか仕事なら、なおさらこのスレで扱うのは不適切じゃねーか?
本人はトンズラしてるし「考え方」ってC#の質問ですらないし
812デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/01(日) 19:44:58.89ID:bK0+MnNI0
まあ、そこは初心者やしってとこで
813デフォルトの名無しさん (ワッチョイ 4abd-Gq/8)
2021/08/01(日) 21:20:54.61ID:eXU4IEL10
説明、単語等々もろもろすみません。
宿題でもなんでもなく、私用のものです。

Xは0限定。数値は少数。Xが0以上で同じ場合は分解せず、合体して一つなどなどいろいろありますが、くれたレスを読みもう少し考えてみます。

コード考えてくれた方々、レスくれた方々ありがとうございました。
814デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/02(月) 08:18:57.65ID:C1C7yhSJ0
ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚

こういうことだな
815デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/02(月) 09:33:39.62ID:5+Lx+T2q0
>>814
オメー、GUIまで作ったならグラフィカルに表示できねーのかよ
816デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/02(月) 12:04:08.34ID:C1C7yhSJ0
>>815
ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚

先生もう勘弁してもらえませんか
817デフォルトの名無しさん (アウアウウー Sa09-UXpz)
2021/08/02(月) 12:12:07.77ID:hlxsjNdya
>>816
せっかくだからxが0じゃない場合にも対応しよう
818デフォルトの名無しさん (ワッチョイ d6a7-8s23)
2021/08/02(月) 12:22:05.59ID:5+Lx+T2q0
>>816
重複してるように見えて汚いし
数値と対応した矩形も番号がなくてどれかわからんし
必要なもんまでないのは褒められない
819デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/02(月) 12:24:55.11ID:C1C7yhSJ0
(#^ω^)ピキピキ
820デフォルトの名無しさん (ササクッテロラ Sp05-JKPI)
2021/08/02(月) 12:28:10.64ID:PFIp51b+p
おもちゃにされてるけど結構マジメに頑張ってて草
821デフォルトの名無しさん (アウアウクー MMc5-C9W8)
2021/08/02(月) 12:31:09.83ID:HEcinAc5M
>>819
こういうのササッとつくれるのすげーよ
822デフォルトの名無しさん (アウアウウー Sa09-UXpz)
2021/08/02(月) 12:49:33.82ID:hlxsjNdya
>>816
うーん、まず数値は右寄せが基本ね。
あと小数点、スラッシュも揃えて。
申し訳ないんだけどこれエクセルに出力できない?
それと、変換の文字がボタンと比べて小さすぎ。
フォームタイトルはちゃんと付けようね。
え?ロジック?動けばいいんだよそんなもん。
あ、レビュー記録票、書いといてね。
823デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/02(月) 13:00:00.71ID:C1C7yhSJ0
(#^ω^)ピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキピキ
824デフォルトの名無しさん (スッップ Sd9a-tshE)
2021/08/02(月) 13:16:37.56ID:EVE90KhSd
変換ボタンとか面倒い
自動変換でお願い
825デフォルトの名無しさん (ワッチョイ f102-kOUL)
2021/08/02(月) 20:00:04.38ID:xgB9X/SA0
>>822,823
ワロタ
826デフォルトの名無しさん (ワッチョイ f5ac-ebHA)
2021/08/03(火) 00:17:50.81ID:qAMu+bFX0


だけどいわれがちでちょっと悲しみ
827デフォルトの名無しさん (ワッチョイ 5d01-1vA1)
2021/08/03(火) 19:50:53.41ID:mfdlvppf0
そこまでやったならgithubにでも上げてソース共有してあげてw
828デフォルトの名無しさん (ワッチョイ d5da-4J71)
2021/08/03(火) 21:59:52.15ID:dhOR9Bol0
思い付きだと、データをリストに積んで、0番目と1番目以後を順次比較、重複があったら分割してリストに入れる
それが終わったら1番めと2番目以後を比較、以下繰り返し
829デフォルトの名無しさん (ワッチョイ ed5f-QEAr)
2021/08/04(水) 14:29:24.89ID:y7EJ5FVE0
ここまでひどいGUIを見たのは何年ぶりだろう
830デフォルトの名無しさん (ブーイモ MM69-LfSm)
2021/08/04(水) 14:36:03.90ID:E4A37YloM
TECOでも動かん
831デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/04(水) 17:56:55.20ID:lSduKT6J0
コードは汚くてお前らにコテンパンにこき下ろされるんで上げないけど、使ったロジックはこんな感じ

「変更後」の矩形はまるでY軸を底辺として、X軸方向に伸びる棒グラフのようだとイメージしてる
棒ひとつひとつの「高さ」が加工Xとなるわけなんだけど、これを求めるのに棒の「中間点」を使った
この方法を使うと、「変更前」矩形がどんな重複の仕方をしていても処理できる

詳細はpngで。ちょいでかいけど
ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚

ちなみに@でのY値は重複排除する

こういう図形絡みの問題って、視覚的には簡単そうなんだけど、
どんなイメージで捉えるにせよ、コードに書き起こせなきゃダメなんで
そこが難しくもあるし面白いところでもあるなぁ

もうC#な話題じゃないんですんません
832デフォルトの名無しさん (アウアウウー Sa09-Ln56)
2021/08/04(水) 18:35:09.28ID:ZrYWCpLya
>>831
要は合成図形の「右側」を結んだ包絡線(じゃないけど)みたいなものを考えて、
その包絡線の「高さ」が変わらない区間を矩形として切り出すわけね。

確かに全部の長方形がY軸に張り付いてる前提ならこれでOKっぽいね。
833デフォルトの名無しさん (ブーイモ MMf1-LfSm)
2021/08/04(水) 18:38:07.26ID:nQE6rFQ5M
多角形を直角三角形に分解する
アルゴリズムをC#で実装するには
どうすれば良いですか
834デフォルトの名無しさん (ワッチョイ b178-i0sM)
2021/08/04(水) 18:41:58.03ID:W3tCqDmL0
1. アルゴリズムを探します
2. C#で実装します
3. 完成!
835デフォルトの名無しさん (ブーイモ MM69-W6gZ)
2021/08/04(水) 20:23:47.50ID:6CqfL6EgM
>>834
素晴らしい回答
836デフォルトの名無しさん (ワッチョイ f15f-q8rc)
2021/08/04(水) 20:39:11.14ID:Yx5gCjC80
DLLを読み込んで利用するやり方が細かく書かれている書籍を教えてください
やさしいC#で勉強したんですけど、このあたりの情報がないのです
837デフォルトの名無しさん (ワッチョイ 0d73-mtqC)
2021/08/04(水) 21:11:51.99ID:pwD/1Ntx0
参照として使うんじゃ無く、実行時に
ファイルがあるかどうか確認しつつ読み込むってこと?
AssemblyとかのLoadfileとかをいってるんかな?

それともネイティブのdllの方かな?
LoadLibraly や GetProcAddressの話かな?
838デフォルトの名無しさん (ワッチョイ cdb0-tWs3)
2021/08/04(水) 22:55:38.97ID:DnWwcKGy0
今、スレッド毎に初期化と後始末が必要なとあるライブラリを使用しています。
これを生のThreadで使う場合はThreadProcの先頭と終わりでそれぞれ初期化/終了処理を呼べばよいので問題ありません。
ここでThreadPoolを使いたい場合、ThreadPoolで管理されるスレッドの開始と終了時にそれぞれ初期化/終了処理をさせる
ようにしたいのですがそのような方法はないでしょうか。
839デフォルトの名無しさん (ワッチョイ 7a01-72oH)
2021/08/05(木) 01:09:32.21ID:DUY5J1cF0
>>832
チープな感じでいいでしょ
包絡線を微分して形状分析とかよりね
840デフォルトの名無しさん (ワッチョイ a67c-Oj7i)
2021/08/05(木) 09:00:32.27ID:SUMMbR4B0
>>838
1スレッドで初期化→後始末を2回以上呼ぶのはダメなの?
841デフォルトの名無しさん (ワッチョイ 9a8b-IKHw)
2021/08/05(木) 18:17:03.24ID:Uqt4t3UY0
C#+Selenium+ChromeDriverでブラウザ操縦をしています。

サイト上のリンクをクリックするとポップアップで
別な画面が起動します。
そのポップアップで開いたブラウザを操縦する事は可能でしょうか?
もしご存じでしたら解説サイトなどがあれば教えてください。

【やりたい事】
親サイトを起動→親サイト内のリンクをクリック→子画面がポップアップで起動
→子画面のデータを取得→子画面を閉じる→親画面を閉じる
842デフォルトの名無しさん (ワッチョイ f15f-q8rc)
2021/08/05(木) 20:27:36.54ID:IpKEy4NU0
>>837

この記事のkernel32.dllが使われてるような使い方のことです
https://www.atmarkit.co.jp/ait/articles/0305/09/news004.html

C#でWindows APIを使う勉強をしたいのですが
このあたり詳しく解説している本がほしいです
843デフォルトの名無しさん (アウアウウー Sa09-Ln56)
2021/08/05(木) 20:49:02.48ID:Olt1ICsqa
>>842
アンマネージドの関数呼び出し自体は一度基本を押さえれば
そこまで難しくもなければ奥が深い話でもないと思うので、そこに特化した本は
たぶんないんじゃない?

Win32 API自体の本はいっぱいあると思うけどC#とは関係ないね
844デフォルトの名無しさん (ワッチョイ 257c-O/XZ)
2021/08/05(木) 21:05:07.97ID:c1KSqOye0
>>842
最近出たC#ミックスドプログラミングが詳しそう
持ってないから中身については語れないけど
845デフォルトの名無しさん (ワッチョイ 16da-Z7Y7)
2021/08/05(木) 21:06:31.67ID:o0gnW9wS0
pinvoke.net が大体カバーしているけど
間違っている事もあるよ

猫でも か チャールズの本をちゃんと
読むことをお勧め
846デフォルトの名無しさん (ワッチョイ cdb0-tWs3)
2021/08/05(木) 21:09:02.48ID:f5R4F48m0
>>840
機能的にはたぶんそれでいけるけど、処理単位(Task)が小さいのでその都度初期化を呼ぶと
オーバーヘッドが大きすぎて、スレッド毎に呼ぶ方法はないかなぁと。
847デフォルトの名無しさん (ワッチョイ 9a8b-IKHw)
2021/08/05(木) 21:53:19.68ID:Uqt4t3UY0
>>841
誰かセレニウム詳しい人教えてください。
848デフォルトの名無しさん (ワッチョイ faad-QMpS)
2021/08/05(木) 22:15:49.41ID:we4ci1R90
>>847
↓の"Switch between browser windows or tabs"とか

https://www.automatetheplanet.com/selenium-webdriver-csharp-cheat-sheet/
849デフォルトの名無しさん (ワッチョイ 5d01-IKHw)
2021/08/05(木) 22:21:41.51ID:kyg5zNBn0
>>847
クリックしないでそのUrlに移動してデータ取ったらいいんじゃね?
850デフォルトの名無しさん (ワッチョイ faad-QMpS)
2021/08/05(木) 22:23:48.20ID:we4ci1R90
>>849
スクレイピングならそれでいいけど、E2Eテストならだめだね
851デフォルトの名無しさん (ワッチョイ 5d01-IKHw)
2021/08/05(木) 22:35:30.36ID:kyg5zNBn0
>>850
だめだねってw質問者の情報少なすぎるからこれも解答の一つ
852デフォルトの名無しさん (スッップ Sd33-+mwS)
2021/08/06(金) 13:44:33.77ID:R5QuDoU6d
>>851
別にそれは否定してないやろ
853デフォルトの名無しさん (ワッチョイ 0101-Z6Ah)
2021/08/06(金) 14:20:38.25ID:ibQHoUuD0
>>852
そうかすまん。てか質問者このまま放置か…
行儀悪いな
854デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/06(金) 18:43:01.09ID:+Li2XOPp0
彼は死んだよ
世界の平和を願って一人で立ち向かった
855デフォルトの名無しさん (ワッチョイ eb2f-e++8)
2021/08/07(土) 10:22:50.01ID:uyApmvLi0
switch(angle)
{
case > 180:

}

みたいに変数の値に対する不等号の条件で分岐させることってSwitchでできませんでしょうか?
おとなしくif文使った方がいいのでしょうか
856デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/07(土) 10:25:05.47ID:tsHgyHpm0
おとなしくif文使え
857デフォルトの名無しさん (ワッチョイ eb2f-e++8)
2021/08/07(土) 10:39:41.80ID:uyApmvLi0
>>856
イエッサー<(`・ω・´)
858デフォルトの名無しさん (ワッチョイ 9301-X9Sf)
2021/08/07(土) 14:16:14.62ID:VbMntA3z0
>>855
C#8か9からのswitch expressionなら下記のように書ける

public static string Foo(int angle){
return angle switch {
> 180 => Bar(),
_ => Baz(),
};
}
859デフォルトの名無しさん (ワッチョイ 9301-X9Sf)
2021/08/07(土) 14:26:32.62ID:VbMntA3z0
switch expressionじゃなくてもできたわ
C#9のパターンマッチの拡張機能

public static string Foo(int angle){
switch(angle){
case > 180:
return Bar();
default:
return Baz();
};
}
860デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/07(土) 14:36:12.21ID:RtGgObiga
VBのSelect Caseは最初から何でもありだ

思えばCのswitchは何を狙った機能だったのかね。
直接機械語のジャンプテーブルに変換できるケースなんかほとんどないと思うのに
そのくせ制約だけ結構ある
861まあ俺が言うのもなんだがw (ワッチョイ 1301-bikt)
2021/08/07(土) 14:50:21.15ID:AEz+LKNR0
>>860
> 直接機械語のジャンプテーブルに変換できるケースなんかほとんどないと思うのに
選択肢がenumのケースとかだとほとんど変換できると思うぞ
862デフォルトの名無しさん (ワッチョイ 0101-lWEc)
2021/08/07(土) 16:36:31.69ID:IVDumtGU0
Fortranの多方向gotoやろ
863デフォルトの名無しさん (ワッチョイ 5307-zmvS)
2021/08/08(日) 19:40:30.36ID:nRElWSHG0
小田急10人殺傷の犯人は中央大学理工学部出身。
彼をc# プログラマの同僚か部下にしてあげたい。
864デフォルトの名無しさん (ワッチョイ 0101-lWEc)
2021/08/08(日) 19:46:10.54ID:M2IuSfnu0
37にもなって食用油にマッチで火を
点けようとする人はちょっと
865デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/08(日) 19:56:26.35ID:25oQGPJYa
>>864
スレ違いも甚だしいけどあれは笑ってる奴の方が非常識
衣服を油で湿らせて点火したら普通に延焼する。
その手の事故って時々報道されてると思うんだけど
866デフォルトの名無しさん (ワッチョイ 538b-Z6Ah)
2021/08/08(日) 20:05:26.33ID:WnNaH8ml0
>>848
ありがとうございます!試してみます!
867デフォルトの名無しさん (ワッチョイ 6942-Z6Ah)
2021/08/08(日) 20:07:29.58ID:SB8RNFKf0
>>864
対馬「馬鹿だな、マッチで火がつくわけねーからチャッカマン用意したわ」
868デフォルトの名無しさん (ワッチョイ cbde-ZPwr)
2021/08/08(日) 20:13:44.04ID:snxCB+Nz0
>>865
実際にやってみ

>>863
いやあいつは間違いなく理系じゃないだろ
869デフォルトの名無しさん (ワッチョイ 3193-2NN+)
2021/08/08(日) 20:34:52.10ID:ukLoJDXq0
>>864
報道だと灯油ってあったけど
サラダ油の容器に灯油入れてたのかと思った
870まあ俺が言うのもなんだがw (ワッチョイ 1301-bikt)
2021/08/08(日) 20:48:00.17ID:3G5PI5Y70
>>869
灯油を準備しようとしたけどできなくてサラダ油って話だろ
871デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/08(日) 21:07:56.95ID:RKpEn974a
むしろいい歳こいて本気でサラダ油は延焼しないと思ってる人がいるのが驚き。

灯油は簡単に点火しない(だからポリ容器なんかで携帯できる)が、
「芯」で空気とまざる状態にしてやれば割と簡単に点火して燃焼が継続する。

サラダ油も基本的に同じ。
こぼしたサラダ油をキッチンペーパーで拭いたのを放置したら危険だよw
872デフォルトの名無しさん (ワッチョイ 6942-Z6Ah)
2021/08/08(日) 21:18:12.18ID:SB8RNFKf0
>>871
サラダ油は簡易ランプが作れるほど安全な代物だよ


ユーチューバーじゃなくて東京都謹製の動画
873まあ俺が言うのもなんだがw (ワッチョイ 1301-bikt)
2021/08/08(日) 21:51:30.45ID:3G5PI5Y70
>>871
引火点が全然違う
・灯油: 50℃
・サラダ油: 250℃

サラダ油は単なる可燃性液体類
灯油は第四類 第二石油類な
874デフォルトの名無しさん (ワッチョイ 0978-Z6Ah)
2021/08/08(日) 21:56:11.51ID:xzwJR89D0
テンプレ読め
>C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
875デフォルトの名無しさん (ワッチョイ 3193-2NN+)
2021/08/08(日) 22:17:29.48ID:ukLoJDXq0
>>872
都庁勤めの方ですか?
876デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/08(日) 22:17:48.77ID:RKpEn974a
>>873
この人も痛いねw
論点はそんなところにない。
サラダ油で人を火だるまにできるかだろう。
答えは言うまでもない。
その手の事故は時々報道されてるんだから。

どうでもいいけどサラダ油が燃えないと思ってる人は江戸時代まで行燈の燃料に
何を使ってたのか知らないのかw
877デフォルトの名無しさん (ワッチョイ 3193-2NN+)
2021/08/08(日) 22:32:22.78ID:ukLoJDXq0
>>876
その事故が起きる程度の温度に短時間でできるかどうか考えた?
250℃まで温度が上げられるならそりゃ火だるまにもできるけど、
それができるなら灯油やガソリンならもっと早く火だるまになるって話
行灯の燃料で生身の人を燃やそうとしたソースあるなら是非教えてくれ
878デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/08(日) 22:37:41.78ID:RKpEn974a
>>877
考えた?(笑)
君こそ紙や綿や小麦粉の引火点が何度か考えたのかな?w

まあ理屈は後から考えて欲しいが、とりあえず
キッチンペーパーにサラダ油浸して風呂場で着火して
どうなるか観察してみw
879デフォルトの名無しさん (ワッチョイ 3193-2NN+)
2021/08/08(日) 22:39:11.74ID:ukLoJDXq0
何だただの低学歴か
相手にして損した
880デフォルトの名無しさん (ワッチョイ eb63-gK4y)
2021/08/08(日) 23:32:45.01ID:8yccxak90
ここはC#スレで、人間初心者のスレはここじゃないよ
発達のスレはハンデイキャップ板と同人板にあるのでそっちでやってね
881デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/09(月) 00:55:38.86ID:NQgF/n+j0
サラダ油の人気に嫉妬
882デフォルトの名無しさん (ワッチョイ 6bda-lWEc)
2021/08/09(月) 05:17:47.73ID:3bscJFtj0
渋谷のスクランブル交差点とC#の関係を2行で
883デフォルトの名無しさん (ラクッペペ MM8b-gK4y)
2021/08/09(月) 05:34:57.30ID:4lTsn7ZHM
#は横断歩道のある交差点に見える
Cは知らん
884デフォルトの名無しさん (ワッチョイ 13ad-QnWA)
2021/08/09(月) 07:20:16.10ID:59MCzWek0
>>878
可燃物質なら何でも条件次第で着火するよw

犯人は床に油まいて着火しようとしたんだぞ
それでサラダ油に点火できると思ってるの?
885デフォルトの名無しさん (ワッチョイ 0978-Z6Ah)
2021/08/09(月) 07:47:07.81ID:ygW5fA7n0
サラダ油の議論は余所でやれ
https://find.5ch.net/search?q=%E3%82%B5%E3%83%A9%E3%83%80%E6%B2%B9
886デフォルトの名無しさん (ワッチョイ 6bda-lWEc)
2021/08/09(月) 13:13:57.57ID:3bscJFtj0
>>884
渋谷のスクランブル交差点を爆破しようと
していたんやでw
887デフォルトの名無しさん (ワッチョイ 59ad-zfXN)
2021/08/09(月) 13:30:37.76ID:2z3xPE5Q0
みんながツルツル滑るところを見たかっただけでは
888デフォルトの名無しさん (ワッチョイ cbde-ZPwr)
2021/08/09(月) 16:35:12.50ID:ABs5GNhf0
>>876
その手の事故って天ぷらあげてる時の事故か、天ぷらの時は気をつけろよ

サラダ油が燃えないとか、誰もゆってないのに勝手に拡大解釈して作り上げるな
889デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/09(月) 17:15:32.54ID:NQgF/n+j0
サラダ油で計画してたやつ顔真っ赤だな
890デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/09(月) 17:16:24.19ID:NQgF/n+j0
これがサラダ記念日である
891デフォルトの名無しさん (ブーイモ MMeb-gbE1)
2021/08/09(月) 17:22:56.35ID:Ag9CKTJQM
Fラン理系は国語のできないやつしかいないから
下手なFラン文系よりも頭悪い
892デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/09(月) 18:29:34.78ID:Mbw5cgYZa
頭が悪いのは簡単な実験で確認できることをやりもしないで
自分の思い込みに固執する人のことだと思うよw

キッチンペーパーとサラダオイルぐらい家にあるだろw
なぜ2分でできることをやろうとしない。

やってみりゃサラダオイルで人を火だるまにする狙いがそう荒唐無稽じゃないことぐらい
すぐ分かるだろうに。(理系出身ならそれぐらいやらなくても分かって欲しいけどw)

で、こういうのに限って「老害ガー」と口癖のように言ってたりする。(このスレにも時々いるねw)
自分自身の思考回路がまさに老害のそれであることの自覚すらないんでやんの。

あと、「問題」が再現可能と思われるコードを示しもせずに動きません動きません連呼してるタイプの人ね。
あれと同じだ。
893デフォルトの名無しさん (ワッチョイ ebf2-+UG9)
2021/08/09(月) 18:41:04.04ID:GCrPzKi30
電車の床に撒いて着火したら認めてやるよ
やれよ早くほれ
894デフォルトの名無しさん (ワッチョイ 3193-2NN+)
2021/08/09(月) 18:49:04.34ID:xB+uo/C+0
>>892
老害とか年齢を揶揄する発言が無いのにどうしたの
統失の気があるから心療内科に相談するべきだよ
キッチンペーパーにサラダ油浸して火を付けるのと、
撒いたサラダ油に火を付けるのが同じだと思ってるあたりFラン文系かな
895デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/09(月) 18:54:48.45ID:NQgF/n+j0
サラダ油加熱し過ぎだろ
896デフォルトの名無しさん (ワッチョイ 6942-Z6Ah)
2021/08/09(月) 19:04:13.41ID:qgLZBIzS0
頭がいいやつなら着火に難のあるサラダ油など使わずに
ガソリンやアルコールを使うのが当然
彼が何でサラダ油にこだわるのか誰も理解できないな
897デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/09(月) 19:07:17.36ID:NQgF/n+j0
そこまでは書いてないな
https://news.tv-asahi.co.jp/news_society/articles/000224872.html
898まあ俺が言うのもなんだがw (ワッチョイ 1301-bikt)
2021/08/09(月) 19:46:04.63ID:S8n0VVLE0
>>892
> なぜ2分でできることをやろうとしない。
なら君がやってみてYouTubeに上げてくれ
899デフォルトの名無しさん (ワッチョイ eb2f-e++8)
2021/08/09(月) 22:55:57.07ID:7Ui8gMyq0
フラグを立てるときの変数の型なのですが、2値のときでもboolじゃなくてstring使ってもいいですか?

bool announceRequired=true , false

より

bool announce='on' , 'off'

とした方がアナウンスするかしないかのフラグだよなってわかって、
可読性が高いと思うのですが。
900デフォルトの名無しさん (ワッチョイ 0978-Z6Ah)
2021/08/09(月) 22:58:37.80ID:ygW5fA7n0
思わない
どうしてもやりたければenum使え
901デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/09(月) 23:03:06.28ID:NQgF/n+j0
>>899
たまに

string announce='om';

とかなっててもエラーでないぞ
ビルドエラーをうまく使ったほうが幸せになれるぞ
902デフォルトの名無しさん (ワッチョイ eb2f-e++8)
2021/08/09(月) 23:26:16.83ID:7Ui8gMyq0
なるほどboolだとエラー出ますね
bool使います
903デフォルトの名無しさん (スププ Sd33-UVsA)
2021/08/10(火) 06:01:11.11ID:ke6GGKlCd
>>899
一人で組んでるだけなら、何でも自由にすれば良いよ。
他にも定数でSWITCH_ON="on"とか定義するとか。
なんか事情があるならね。
904デフォルトの名無しさん (ワッチョイ 6942-Z6Ah)
2021/08/10(火) 06:39:04.31ID:WgvQ9Z8W0
可読性が気になるなら

bool announceRequiredOn と変数名にOnをつけるやり方もある
905デフォルトの名無しさん (ワッチョイ 59ad-zfXN)
2021/08/10(火) 07:18:50.64ID:Id2m/Aob0
bool announceRequiredOff {
get { return !announceRequiredOn; }
set { announceRequiredOn = !value }
}
906デフォルトの名無しさん (テテンテンテン MM8b-bikt)
2021/08/10(火) 11:42:36.76ID:JssHBcjdM
>>892
ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚
ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚
907デフォルトの名無しさん (アウアウウー Sa55-QnWA)
2021/08/10(火) 12:05:40.28ID:6jE6oTRda
>>905
やめれw
908デフォルトの名無しさん (ワッチョイ 5124-yyuh)
2021/08/10(火) 15:38:00.75ID:+hM2W1NC0
const string のLengthをconst intに割り当てる事できないのかよ
909デフォルトの名無しさん (ワッチョイ 13ad-+mwS)
2021/08/10(火) 15:52:38.58ID:po0YT3K90
そりゃね
910デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/10(火) 19:11:54.28ID:h/OOXUVK0
enumの継承はできるようにするべき
911デフォルトの名無しさん (スププ Sd33-UVsA)
2021/08/11(水) 05:52:04.11ID:b5WHQBeXd
>>910
継承させるならclassのpropertyでやっちゃえば
912デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/11(水) 07:44:44.77ID:0Wdl4PWx0
だから今はconst intだぜ
913デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/11(水) 12:55:48.34ID:fq+aFcpEa
>>910
前に「自然数を継承して整数にする、という発想は根本的に間違っている」
って説明したと思うんだけどw

Weekdayを継承してDayOfWeekを作るっておかしいでしょw
DayOfWeekのサブセットとしてWeekdayを定義ならありかもしれんが
914デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/11(水) 18:11:34.32ID:0Wdl4PWx0
>>913
ステータスに使うのは間違ってるって言うんだろ?
単に自動でID作ってくれて異なる値でビルドエラーが出ればなんでもいいんだけどね
915デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/11(水) 18:15:00.51ID:0Wdl4PWx0
enumは継承できないと使えない
http://2chb.net/r/tech/1628673253/

ワロタ
916デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/11(水) 18:34:39.09ID:fq+aFcpEa
本当にすごいしょうもない揚げ足取りだしかつスレ違いで恐縮なんだけど、
今時はあんまり「ステータス」って言葉は使わないと思うよ

理由はよく知らないし、たぶんその方が英語的に自然だからだと思うが、
英語でも日本語でもステートの方を使うことの方が多い。

これ偏見かもしれんけど、今還暦間近ぐらいの世代より上の人はよくステータスって言ってた気がする。
特に組み込み系とかの
917デフォルトの名無しさん (エアペラ SDbd-2NN+)
2021/08/11(水) 19:08:03.22ID:laysHNClD
貧乳は?
918デフォルトの名無しさん (ワッチョイ 3193-2NN+)
2021/08/11(水) 19:49:32.27ID:4bcO7mM80
>>916
ステートとステータスは別物だから今時とかそういう話じゃない
組み込みは時間に関わる状態が多いから自然とステータスが増える
時間に関係がなく、物体の状態であればステート
だからオブジェクトに対してはステートが増える
919デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/11(水) 21:32:38.89ID:0Wdl4PWx0
よく考えるとオブジェクト指向言語のくせにオブジェクトの状態を扱う型なり仕組みなりがない欠陥言語なんだな
920デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/11(水) 21:58:23.33ID:fq+aFcpEa
しっくりこないんです
ステータスおじさん誕生の瞬間であった
921デフォルトの名無しさん (アウアウウー Sa55-NW/4)
2021/08/11(水) 22:02:15.18ID:fq+aFcpEa
ちなみに、状態遷移図は英語でstate transition diagramというらしい。
ステートマシンはもちろんstate machineだ
922デフォルトの名無しさん (ワッチョイ eba7-USGx)
2021/08/11(水) 22:28:37.31ID:0Wdl4PWx0
>>921
御託はいいからオブジェクトの状態を何使って組めば満足なのか言えよ
923デフォルトの名無しさん (ワッチョイ 895f-7vv7)
2021/08/12(木) 16:01:23.37ID:L8R9VTGX0
visual studio 2019でnet core 5.0でプロジェクトを作りたいのですが
Windows フォームアプリケーション(.NET Framework)と
Windows フォームアプリケーションどっちを選べば良いのでしょうか?
924デフォルトの名無しさん (ワッチョイ 59ad-zfXN)
2021/08/12(木) 16:51:46.15ID:5+o186700
前者はcoreじゃないぞ
925デフォルトの名無しさん (ワッチョイ e173-ySHw)
2021/08/12(木) 18:39:29.28ID:gZthChm30
このへんも事情知ってる人はわかるが、新規の人にとってはカオスだわな。
Core と Coreなしと Framework
Core と CoreなしはCore の系列なのかとか。
.net から .net frameworkは参照できるのかどうかとか。
926デフォルトの名無しさん (ワッチョイ 59ad-zfXN)
2021/08/12(木) 19:07:18.49ID:5+o186700
あと油断すると.NETはあってても言語がVBになってたりして、新規プロジェクトを作るのなんかめんどい。
927デフォルトの名無しさん (ワッチョイ 895f-7vv7)
2021/08/12(木) 19:42:27.81ID:L8R9VTGX0
後者のWindows フォームアプリケーションで作りました。
作成途中でnet core のバージョン選択する画面が出たのでこれで合ってるのか分かりませんがとりあえず進められました
928デフォルトの名無しさん (ワッチョイ 1342-Z6Ah)
2021/08/12(木) 21:56:24.72ID:wDhBs+9y0
そういやアスペクト指向 AOPってのが有ったよな
929デフォルトの名無しさん (ワッチョイ c2ad-TxRV)
2021/08/13(金) 03:02:59.27ID:IlkUAlv50
アスペ
930デフォルトの名無しさん (ワッチョイ 4124-cJil)
2021/08/13(金) 11:43:04.35ID:bPqZz8e+0
今のC#ってVisualStudio不要でVSCode一本で行けたりするの?
.NET Core以上ならVSCodeでビルドまでできるって聞いた記憶あるんだけど
931デフォルトの名無しさん (アウアウウー Saa5-4Coj)
2021/08/13(金) 12:25:51.22ID:drxTNS6Ja
WebアプリとコンソールアプリはVSCodeで困ったことはない
932デフォルトの名無しさん (ワッチョイ 4124-cJil)
2021/08/13(金) 12:53:44.39ID:bPqZz8e+0
なるほど
GUIデザイナが不要ならVSCodeで問題ないってことか
933デフォルトの名無しさん (アウアウウー Saa5-4Coj)
2021/08/13(金) 12:56:36.93ID:drxTNS6Ja
コード生成、アナライザー、各種リソース作成はVSのが強い
934デフォルトの名無しさん (ワッチョイ 8101-s6ku)
2021/08/13(金) 21:52:20.10ID:LxuJtDaW0
>>923
.netのWinFormsはデザイナに未実装の機能があるよ
データソースの設定とか
935デフォルトの名無しさん (スフッ Sd62-CCsc)
2021/08/14(土) 01:17:01.22ID:ZRC716d0d
Xamlだったら理屈で組めるからデザイナー抜きでも出来そうな気がする。
かといって、プロジェクトとかどうやって作るのか、調べるの面倒だし。
936デフォルトの名無しさん (ワッチョイ e22c-oR4T)
2021/08/14(土) 07:11:34.71ID:q1VZBaGf0
XAML書くにはインテリセンスないとやってられないけど
前に調べた限りまともなインテリセンス出してくれる拡張はなかった
937デフォルトの名無しさん (ワッチョイ 6eda-+dr0)
2021/08/14(土) 08:14:30.72ID:fjej7TFn0
>>936
#metoo
938デフォルトの名無しさん (ワッチョイ 2ea7-5ops)
2021/08/15(日) 13:59:02.86ID:FFma9f9k0
リソースエディタがない時代に戻ったようだぜ
939デフォルトの名無しさん (ワッチョイ e95f-sbZG)
2021/08/15(日) 16:02:52.85ID:5x/3KAJ70
VSのインストーラーでC#とVB.NETってなんでセットになってるんだろ
C#だけをインストールできない
940デフォルトの名無しさん (ワッチョイ 4201-VYeI)
2021/08/15(日) 16:55:04.36ID:U+FsjVqC0
>>939
コンパイル以降の処理は似たようなもんだからリンカとかは共通なんじゃね?
941デフォルトの名無しさん (アウアウウー Saa5-pBez)
2021/08/15(日) 17:52:33.00ID:rBaqdfAea
覚えてないけど、普通にC#だけとか選択できなかったっけ?
選択できた気がするけど。
942デフォルトの名無しさん (ワッチョイ e12d-YgaZ)
2021/08/15(日) 18:00:12.53ID:8M8rDhJ10
インストーラーで個別のコンポーネントを選んでも
「C#およびVisual Basic」「C#およびVisual Basic Roslyn コンパイラ」
とセットになってて分離出来ない
943デフォルトの名無しさん (アウアウウー Saa5-pBez)
2021/08/15(日) 18:07:24.65ID:rBaqdfAea
>>942
へーそうだったっけ。
数十MBのストレージ節約にカリカリする時代じゃないって判断かね
944デフォルトの名無しさん (テテンテンテン MM26-VYeI)
2021/08/15(日) 18:17:51.66ID:JKa+PNxpM
そもそもVisual studioをインストールする前からC#/VB.NETのコンパイラが入ってる時点で何をか言わんやだろうに…
945デフォルトの名無しさん (ワッチョイ 45ad-oCel)
2021/08/15(日) 18:27:49.27ID:LQgMxLcX0
以前はインストール時に選択できたけどな
946デフォルトの名無しさん (ワッチョイ ed68-CCsc)
2021/08/15(日) 19:55:36.99ID:JikFvLiS0
そこまでインストールを削るほどシビアな開発環境じゃ辛かろう。
947デフォルトの名無しさん (ワッチョイ 45ad-oCel)
2021/08/15(日) 19:57:53.13ID:LQgMxLcX0
別に容量削るのが理由ではないぞ。
いらんものはいらんというだけ。
更新にも時間余計にかかるし、
948デフォルトの名無しさん (ワッチョイ dd5f-jBWP)
2021/08/15(日) 20:22:18.63ID:UJhoZndk0
VB「C#さんと一緒じゃないと皆インストールしてくれないじゃん」
949デフォルトの名無しさん (ワッチョイ 3193-rwR3)
2021/08/15(日) 20:25:11.05ID:onk462K10
MS的にはVB殺そうとしてるはずでは
950デフォルトの名無しさん (ワッチョイ 2ea7-5ops)
2021/08/15(日) 20:32:28.88ID:FFma9f9k0
>>949
だから

だってVBしか入ってないもん

って言い訳を潰した
次はVBサポート打ち切りの流れ
951デフォルトの名無しさん (ワッチョイ ed68-NTPF)
2021/08/15(日) 20:40:17.32ID:JikFvLiS0
>>949
だったらOfficeのマクロもC#使えるようにして欲しいな。
952デフォルトの名無しさん (ワッチョイ 3193-rwR3)
2021/08/15(日) 21:14:07.48ID:onk462K10
>>951
そっちはTypeScriptの流れ
953デフォルトの名無しさん (ワッチョイ 8973-un53)
2021/08/15(日) 21:38:24.85ID:n3yCnAOj0
超複雑な型になるCOMと相性悪いからTypeScriptのメリットないのでは...
c#の方がまだCOMと型の自動マーシャル効いてるから相性いいでしょ。
954デフォルトの名無しさん (アウアウウー Saa5-pBez)
2021/08/15(日) 22:09:47.17ID:rBaqdfAea
VB(.NETの方)のOption Strict Off相当の機能を導入しないと
C#をマクロに使うのきついだろうね。
エクセルしか知らんけど、

double[,] hoge = range.Value;

みたいに書けないからね。
エクセルは機能の性格上型安全性とは相性が悪い。
955デフォルトの名無しさん (ワッチョイ 9901-NTPF)
2021/08/15(日) 22:55:07.49ID:mAcWDu/40
VBなんかなれてないからc#でdll作ってやってるわ
956デフォルトの名無しさん (ワッチョイ 4201-VYeI)
2021/08/15(日) 23:27:12.91ID:U+FsjVqC0
dynamic hoge = range.Value; でよくね?
957デフォルトの名無しさん (ブーイモ MM62-H+bG)
2021/08/16(月) 10:37:15.02ID:rx7L9F9WM
>>953
TypeScriptの型は後付けだからどうとでもなるんだよ
特定のプロパティの値に応じて型を変えるとか自由自在
オブジェクトの実体と必ず一致しなければならないC#の型とは違って、
TypeScriptの型というのはオブジェクトの実体とは無関係でTypeScriptでそれを扱うときの外形的な制約を記述したものにすぎないの
958デフォルトの名無しさん (ブーイモ MM62-H+bG)
2021/08/16(月) 11:00:53.08ID:rx7L9F9WM
マーシャリングについて補足しとくと
例えばある変数xにRangeオブジェクトが入っていることを知っているとして、C#の型で扱おうとすればラッパー型で包んでやる必要がある
これってよく考えると無駄で、xがRange型であることは本来コンパイラとVSの静的アナライザだけが知っていればよくて、実行時に実際にラップ(マーシャリング)する必要は本来ない
つまり
dynamic<Range> x; //xはRange型のメンバを持つことが保証される
みたいなことができればよくて、これこそがTypeScriptの型なんだよ
959デフォルトの名無しさん (テテンテンテン MM26-un53)
2021/08/16(月) 22:37:25.98ID:ODXN6hOnM
TypeScriptは保証なんかしてないがな、
JS変換時にチェック走るだけや。
960デフォルトの名無しさん (テテンテンテン MM26-un53)
2021/08/16(月) 22:45:42.50ID:ODXN6hOnM
実際は中の実装変わってしまってるのに、
実装と無関係な定義ファイル使う可能性高いTypeScriptではエラー起きててもなんでエラーなのか気づくの遅くなる。
961デフォルトの名無しさん (ワッチョイ 49b0-jBWP)
2021/08/17(火) 08:45:03.71ID:G/OIjFk20
>>958
COMの場合は実際にQueryInterfaceしないとその型として使えないでしょ。
そこではTypeScriptの静的な型推論は用がない。
加えて、C#などではタイプライブラリからその定義情報を取得できるけど今のTypeScriptにはその機能はない。
まあOfficeに組み込むならその時に追加すればいいんだろうけど。
962デフォルトの名無しさん (テテンテンテン MM26-H+bG)
2021/08/17(火) 09:05:16.33ID:ZZZ7Kz3pM
>>961
そんなもん後付けでTypeScript用の型定義を書けばいいだけだよ
COMのIDLかメタデータから自動生成するんだろう
963デフォルトの名無しさん (ワッチョイ 49b0-jBWP)
2021/08/17(火) 09:22:03.04ID:G/OIjFk20
だからその機能を追加する必要があると書いたわけだが。
そのうえで、タイプライブラリの型情報を使う前提ではTypeScriptの型推論が特に役立つわけではないということ。
964デフォルトの名無しさん (ワッチョイ 8973-un53)
2021/08/17(火) 09:22:30.39ID:fMgDzJWA0
5年以上前から.netもcomも使えるclearscriptとかマイクロソフト出してるが、
TypeScriptとes経由でCOM使ってるユーザ数は
極小に感じるけどね。
965デフォルトの名無しさん (テテンテンテン MM26-H+bG)
2021/08/17(火) 10:00:53.41ID:ZZZ7Kz3pM
>>963
機能追加って何のことを言ってるんだ
普通にMSの社員が型定義書きゃいいだけだよ
966デフォルトの名無しさん (テテンテンテン MM26-un53)
2021/08/17(火) 10:04:16.00ID:7WA9F9AaM
COMのまま扱いなんてことはJSからはないよ。
ut8ベースだからラップしないとムリ。

ラップしてしまうならどっちでも変わらん。
967デフォルトの名無しさん (アウアウウー Saa5-4Coj)
2021/08/17(火) 11:20:26.55ID:ga+A4ydTa
COMはdynamicじゃあかんのか?
968デフォルトの名無しさん (ブーイモ MM85-H+bG)
2021/08/17(火) 12:02:31.57ID:Yv5efE47M
そもそもTypeScriptが使えるのってWeb版のOfficeだけだからCOMなんか無い
仮にTypeScriptでCOM経由でデスクトップ版の操作させるとしたら、dynamicと同じく普通にAutomation使えばいいだけだね
もちろん型定義も普通に書けばいいだけ
969デフォルトの名無しさん (ワッチョイ 4201-oVZa)
2021/08/17(火) 12:53:20.08ID:XddNQS6P0
なんてこったい
net5でChartが使えないぢゃないか
970デフォルトの名無しさん (ワッチョイ be7c-sbZG)
2021/08/17(火) 13:04:33.78ID:ENzl2Kob0
githubでソース公開されてるから自分でビルドはできるよ多分
971デフォルトの名無しさん (ワッチョイ 4201-oVZa)
2021/08/17(火) 16:03:07.73ID:XddNQS6P0
先生さんくそです
972デフォルトの名無しさん (ワッチョイ 2e63-y5f6)
2021/08/17(火) 20:48:53.60ID:9BvuS0Oq0
さんくそだと礼を言ってるか罵倒してるか分かんないね
両方って可能性もあるか
973デフォルトの名無しさん (ワッチョイ 4201-sbZG)
2021/08/17(火) 21:32:03.99ID:ECKc58190
テキストファイルを開いて比較しまくるアプリを作ってつかってたら
Windows Defenderが重大な脅威と判断してアプリを消された
なんで脅威扱いになるんだか
974デフォルトの名無しさん (ワッチョイ 9901-2a+3)
2021/08/18(水) 00:47:38.32ID:K7TyhsAl0
chartの正式な対応っていつなのかな
chart好きだからずっと待ってるんだけどな
975デフォルトの名無しさん (ワッチョイ e5b0-NTPF)
2021/08/18(水) 18:46:34.79ID:LMksndsA0
複数のダイアログで定義して、メソッド中でHttpClientで外部のAPIにアクセスするクラスがあります。
複数のメソッドがあるのですが、それぞれのメソッドの中でHttpClientをnewするのは
ダメだと言うのを今さら知り、修正をもくろんでいます。

そうなると、各ダイアログで宣言するのも良くないとか、ついでに外部に接続せずに
テスト出来るようにしたいとか、直したいところが増えてしまい、どこから手を出せば良いか
分からなくなってしまいました(全面的に直さなければいけないことは分かる)。

この手のクラスについて、わかりやすいサンプルコードがありましたら教えてください。
976デフォルトの名無しさん (ワッチョイ 2ea7-5ops)
2021/08/18(水) 19:20:10.31ID:GqIaKxua0
>>975
1つずつ全部やってけよ
アホか
977デフォルトの名無しさん (ワッチョイ 2ea7-5ops)
2021/08/18(水) 19:24:56.77ID:GqIaKxua0
あー、でも、扱いが厄介であるとわかってるクラスなら自分が使いやすいようにラップしちゃえば?
そうすれば後で

実はこのクラスこうやって使うんですよ(・∀・)ニヤニヤ

ってなったときにそこさえ直せば良くて
他のクラスにはそのクソな部分が伝播しないじゃん
978デフォルトの名無しさん (ブーイモ MMb6-H+bG)
2021/08/18(水) 19:31:33.97ID:kXiitRhKM
>>975
ダイアログ開くときくらいなら毎回newで全く問題ないよ
使い回したほうがいいのは、ループ内で毎回newするとか、多数のユーザーが同時に利用するWebシステムでリクエスト毎にnewするとかのレベルの話
979デフォルトの名無しさん (ワッチョイ 4924-cJil)
2021/08/19(木) 17:14:51.36ID:t0DU0NHa0
WinFormsのDataGridViewColumnのAutoSizeMode.Fillって一番隅じゃないと機能しないの?
ColumnHeader, Fill, ColumnHeaderって並べると一番右がColumnHeader無視されて押しつぶされるんだけど
980デフォルトの名無しさん (ワッチョイ 89ad-+/pc)
2021/08/19(木) 18:18:37.26ID:YT8TdaSe0
>>979
右端の表示カラムにしか使ったことが無い
981デフォルトの名無しさん (ワッチョイ fd54-UpJu)
2021/08/19(木) 20:57:49.44ID:qYwmEXM80
>>979
今やってみたけど、普通に真ん中のカラムもFillされたよ。

https://ideone.com/nC8AFr
※Formに1個だけDataGridViewを置いて、デザイナではプロパティ一切編集していない状態。
982デフォルトの名無しさん (ワッチョイ 9f24-T33Q)
2021/08/20(金) 09:19:57.77ID:o3I8mN8U0
>>980>>981
ありがとう
ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize
こうしてたのが不味かったらしくAutoSize以外にしたらちゃんと右端のもColumnHeader機能するようになった
983デフォルトの名無しさん (ワッチョイ ff02-VfHF)
2021/08/21(土) 23:10:50.06ID:7GAoG1Iq0
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
984デフォルトの名無しさん (ワッチョイ ff02-VfHF)
2021/08/22(日) 13:15:17.99ID:0Cz6ueFz0
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html

第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
985デフォルトの名無しさん (アウアウウー Sa63-ErSB)
2021/08/22(日) 14:58:48.54ID:6XaRws1Na
aws lambdaにdeployしたfunctionのステップ実行ってできる?
986デフォルトの名無しさん (ワッチョイ ff2f-YpYZ)
2021/08/24(火) 22:42:58.40ID:VqhrUkYM0
変数って全てカプセル化して関数でアクセスするようにしないと駄目ですか?
変数がたくさんあるとき
private float hoge;
private float fuga;

void GetFuga
void BetHoge;

って関数たくさん用意するのも見ずらいと感じるのですが
987デフォルトの名無しさん (ワッチョイ 1f78-FcIJ)
2021/08/24(火) 22:44:31.74ID:/tCnVXeL0
プロパティがあるでしょ
988デフォルトの名無しさん (ワッチョイ 1f68-gUa9)
2021/08/25(水) 03:00:37.95ID:ZsIr98ED0
>>986
気にしなくて良いよ。ダメってことはない。
理由が出来てからカプセル化すれば良いんじゃないかな。
989デフォルトの名無しさん (ワッチョイ 7f2c-RUy2)
2021/08/25(水) 06:59:01.74ID:tgvUkE6r0
publicにしたいのは自動実装プロパティ使おう フィールドと大差なく書ける
public float Hoge { get; set; }
990デフォルトの名無しさん (ワッチョイ 9f73-C5Mt)
2021/08/25(水) 07:58:42.14ID:6XLAMhRo0
他の人使わないなら、プロパティーもフィールドも変わらん。
他の人使ってないなら別にdllでアセンブリ状態で参照させてないってことだから、
必要な段階でフィールドからプロパティーに変えればいい。
呼び出し側の書き換えも要らんし。
991デフォルトの名無しさん (オッペケ Sr73-ndhs)
2021/08/25(水) 08:17:57.51ID:IF2R2rJ/r
結局なんでそうするかって言ったら想定外の値が入ることを避けるためと修正が必要になったときに修正範囲を小さくするためだからなあ
992デフォルトの名無しさん (ワッチョイ 9f2d-hCLa)
2021/08/25(水) 10:50:00.29ID:w4zcDk6l0
プロパティで実装しておくとVS上で何か所から参照されているのか表示されて
その参照場所へ簡単に飛べるようになるから個人開発でもお勧め
993デフォルトの名無しさん (スフッ Sd9f-gUa9)
2021/08/25(水) 10:54:21.96ID:8yGiroeZd
個人で開発するなら入力チェックしなくて良いと思う。
見せかけだけのプロパティとか、そういう場合が多いかな。
994デフォルトの名無しさん (ブーイモ MM4f-X+pO)
2021/08/25(水) 10:55:37.16ID:sdRC5LrgM
機械的にプロパティやアクセサメソッドを実装するのはやめたほうがいいよ
面倒だと感じる時点で設計を疑ったほうがいい
DBのエンティティクラスみたいなのを除けば、本当にクラス外に公開する必要のある変数って極僅かなはず
995デフォルトの名無しさん (アウグロ MM23-ujp1)
2021/08/25(水) 11:03:46.23ID:dGOrb7NRM
>>994
そんなことねーだろハゲ
処理1-24までの出力が全部必要な
処理25とか普通にあるだろ
その時処理1-24の閉じられたクラスのプロパティが全部必要になるとか普通によく見るわ
お前はないの?
経験値が足りないんじゃない?
996デフォルトの名無しさん (ブーイモ MM4f-X+pO)
2021/08/25(水) 11:49:57.68ID:sdRC5LrgM
>>995
リファクタすりゃいいんじゃない?
まあSIみたいだから後で弄るのは難しいのかもしれないけど
997デフォルトの名無しさん (ワッチョイ 7f33-wlCP)
2021/08/25(水) 12:22:10.74ID:uVderaMI0
privateなフィールドとプロパティどちらにするか迷ったけど、
プロパティにしとけばgetとset別々に検索できるから便利だと気づいた。
998デフォルトの名無しさん (アウアウアー Sa8f-svmQ)
2021/08/25(水) 15:24:05.86ID:ZkAj8L4Pa
無意味なsetが後々悪さをすることがある
>>990
の言う通り他の人が使うか使わないかで左右されるが、3ヶ月後の自分はほぼ他人だったりする
999デフォルトの名無しさん (ワッチョイ 7f2c-RUy2)
2021/08/25(水) 19:45:50.20ID:tgvUkE6r0
次スレ立てられた
http://2chb.net/r/tech/1629888256/
1000デフォルトの名無しさん (ワッチョイ 9f01-wlCP)
2021/08/25(水) 19:53:31.05ID:2EffLwye0
また逢う日まで
-curl
lud20250119084129nca
このスレへの固定リンク: http://5chb.net/r/tech/1621129559/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

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


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

 ↓「ふらっと C#,C♯,C#(初心者用) Part151 YouTube動画>1本 ->画像>11枚 」を見た人も見ています:
ふらっとC#,C♯,C#(初心者用) Part88
ふらっと C#,C♯,C#(初心者用) Part141
ふらっと C#,C♯,C#(初心者用) Part138
ふらっと C#,C♯,C#(初心者用) Part144
ふらっと C#,C♯,C#(初心者用) Part128 [無断転載禁止]
ドラゴンズドグマオンライン初心者専用スレ Part1
Webサイト制作初心者用質問スレ part239
Webサイト制作初心者用質問スレ part248 [無断転載禁止]
【キンスレ】キングスレイド初心者用スレpart3【初心者】
【初心者用】マイニング情報交換スレ3 [無断転載禁止]
【初心者用】マイニング情報交換スレ45
【初心者用】マイニング情報交換スレ34
初心者から中級者を目指す人の救済スレ(ガンプラ用)
【初心者用】マイニング情報交換スレ17
【初心者用】マイニング情報交換スレ30
UWSC初心者用スレ2
【初心者用】マイニング情報交換スレ60
【チェンクロ】チェインクロニクル初心者専用★14 [無断転載禁止]
【初心者用】マイニング情報交換スレ52
【初心者用】パズル&ドラゴンズ【パズドラ】★116&copy;2ch.net [無断転載禁止]
Webサイト制作初心者用質問スレ part249
【セルフ用】ジェルネイル初心者中級者向け質問・雑談スレ Part.4
【初心者用】マイニング情報交換スレ15 [無断転載禁止]
【初心者用】マイニング情報交換スレ7 [無断転載禁止]
ピアノ大人初心者のためのスレッド(クラシック専用)
【初心者専用】ポケモンユナイト【Switch】 Part.3
Webサイト制作初心者用質問スレ part250
【初心者用】マイニング情報交換スレ35
【初心者用】マイニング情報交換スレ19
【初心者用】マイニング情報交換スレ3
【初心者用】マイニング情報交換スレ36
【初心者用】マイニング情報交換スレ14
【初心者用】マイニング情報交換スレ49
【初心者用】マイニング情報交換スレ46
【初心者用】マイニング情報交換スレ37
【とにかく漏れない】電子タバコ6【超初心者専用】 [無断転載禁止]
【韓国】お国柄の違い?日韓の車に貼られた初心者マーク=ネット「韓国で日本のようなステッカーを貼ったら、人権団体が『差別』と騒ぐ」
【とにかく漏れない】電子タバコ7【超初心者専用】 [無断転載禁止]
山木「石田は初心者なのに何も言わなくてもめちゃくちゃ動く」石田「初心者とは思えない動きだったと梨沙ちゃんにすごく褒めてもらった」
キャンプ場管理人 アニメに影響受けた初心者どもが冬キャンプを舐めてる 最低3万の寝袋は用意しとけ
【とにかく漏れない】電子タバコ9【超初心者専用】
【独学から】弁理士試験初心者スレ【予備校利用まで [無断転載禁止]
くだすれDelphi(超初心者用)その16
教えて、鯖管理の仕方(初心者用)
【目指せ】嘘PC用語辞典@PC初心者【1000】
ブラックなベンチャーについて語るスレ(初心者用)
[初心者用]スマブラXアイテム無しタイマンスレ
囲碁・初心者専用の質問スレッド 第33局
【初心者専用】引き寄せの法則 8【証拠不要】
【VAPE雑談質問】滝内専用スレ【初心者歓迎】
初心者質問スレ その122 ※aitendo利用者出入禁止
くだすれPython(超初心者用) その48【まず1嫁】
【FF14】メンター専用スレ【初心者救済】 [無断転載禁止]
スポーツ科学のエビデンス(標本は初心者)←これ
俺、パチ初心者用質問スレ11本目
【GTS】GRAN TURISMO SPORT初心者専用【Lesson1】
【MHP2G】超絶初心者専用攻略スレ6【村2まで】
自炊初心者になって気付くこと
【初心者専用】引き寄せの法則 2【証拠不要】 [無断転載禁止]
囲碁・初心者専用の質問スレッド 第24局 [無断転載禁止]
【処女・童貞】Hの話【初心者専用】49 [無断転載禁止]
一人暮らし初心者「えっ肉ってこんな安いの…?」「えっ野菜ってこんな高いの…?」
囲碁・初心者専用の質問スレッド 第34局
囲碁・初心者専用の質問スレッド 第32局
【第五人格】IdentityV 初心者用スレ 16
ipad(第3世代)初心者用 アプリ等質問スレ
18:41:29 up 5 days, 19:45, 0 users, load average: 10.06, 12.61, 12.05

in 1.9358510971069 sec @0.063175916671753@0b7 on 011908