!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part146
https://mevius.5ch.net/test/read.cgi/tech/1576069931/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://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/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://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
探検
ふらっと C#,C♯,C#(初心者用) Part147
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (エムゾネ FF9f-HF0o)
2020/02/19(水) 17:25:41.55ID:IsrGexiaF74デフォルトの名無しさん (ワッチョイ ca42-DFeu)
2020/02/26(水) 18:22:19.21ID:uSMym8r00 >>72
つか、インスタンスは自分自身の中にスタティックで用意する
そのクラスのスタティックプロパティー経由でインスタンスを参照するが
最初の参照時にシングルトンクラスで自身の中に生成する
だから外部で使うクラスはインスタンスを明示的に生成しません
つか、インスタンスは自分自身の中にスタティックで用意する
そのクラスのスタティックプロパティー経由でインスタンスを参照するが
最初の参照時にシングルトンクラスで自身の中に生成する
だから外部で使うクラスはインスタンスを明示的に生成しません
75デフォルトの名無しさん (ワッチョイ 4e7c-FlcA)
2020/02/26(水) 18:30:13.02ID:/kjPVa9J0 > インスタンスは自分自身の中にスタティックで用意する
private static Form2 Singleton { get; set; }
用意してるな
> 外部で使うクラスはインスタンスを明示的に生成しません
public static void ShowSingleton()
{
if (Singleton == null || Singleton.IsDisposed) Singleton = new Form2();
してないな
private static Form2 Singleton { get; set; }
用意してるな
> 外部で使うクラスはインスタンスを明示的に生成しません
public static void ShowSingleton()
{
if (Singleton == null || Singleton.IsDisposed) Singleton = new Form2();
してないな
76デフォルトの名無しさん (ドコグロ MM13-bE1b)
2020/02/26(水) 18:40:31.49ID:qN9Z1rJQM >>62
それ実体が生成されないだけでLazy<T>自体はロードされるだろ
それ実体が生成されないだけでLazy<T>自体はロードされるだろ
77デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
2020/02/26(水) 18:42:00.84ID:sMj0eedP0 シングルトンじゃなく
シングルトン的な発想が有用なケースって確かに書いてるね
シングルトン的な発想が有用なケースって確かに書いてるね
78デフォルトの名無しさん (ワッチョイ ca42-DFeu)
2020/02/26(水) 18:50:11.01ID:uSMym8r0079デフォルトの名無しさん (ワッチョイ 9e2d-9Aak)
2020/02/26(水) 19:43:16.15ID:JBdLkQQ40 シングルトンって、昔は、複数インスタンスが作られる可能性を潰すためにやってたんだろうけどさ
今は、主にDIコンテナへの指示みたいなもんとして役立ってんじゃねえのか?
今は、主にDIコンテナへの指示みたいなもんとして役立ってんじゃねえのか?
80デフォルトの名無しさん (ドコグロ MM0b-ff41)
2020/02/26(水) 20:21:07.70ID:J/Z+GoCJM DIコンテナ使ってるなら、DIコンテナが自動的にインスタンス化して単一のインスタンスを各所へ注入してくれるから、
GoFのシングルトンパターン(というかグローバルインスタンスアンチパターンとでも呼ぶべきもの)は全く必要ないよ
GoFのシングルトンパターン(というかグローバルインスタンスアンチパターンとでも呼ぶべきもの)は全く必要ないよ
81デフォルトの名無しさん (ワッチョイ 9e2d-9Aak)
2020/02/26(水) 21:07:30.64ID:JBdLkQQ40 単一かどうかはコンテナへの突っ込み具合で違ってくるんじゃないの
シングルトンでって指定していなければ複数インスタンス化されちゃうでしょう
シングルトンでって指定していなければ複数インスタンス化されちゃうでしょう
82デフォルトの名無しさん (アウアウウー Sa2f-ff41)
2020/02/26(水) 21:12:48.10ID:pSd33gsra 属性などで指定するだけだよ
83デフォルトの名無しさん (ワッチョイ 4e02-zb1h)
2020/02/27(木) 08:46:08.57ID:LiuiNLxS0 >>77
グローバル変数を単にフォームにおいてアクセス制御しただけで次とほぼ変わらないな
staticでいいじゃん側の話に思える
private static Form2 _form;
public static Form2 Hoge{
get{
if(_form == null || _form.IsDisposed)_form ==new Form2();
return _form;
}
}
グローバル変数を単にフォームにおいてアクセス制御しただけで次とほぼ変わらないな
staticでいいじゃん側の話に思える
private static Form2 _form;
public static Form2 Hoge{
get{
if(_form == null || _form.IsDisposed)_form ==new Form2();
return _form;
}
}
84デフォルトの名無しさん (ササクッテロル Sp03-0+be)
2020/02/27(木) 08:57:22.75ID:/W1ksVR5p もうめんどくせえからstaticも中でシングルトン使ってるから
実質シングルトンパターンって事でいいよ
実質シングルトンパターンって事でいいよ
85デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
2020/02/27(木) 12:49:09.42ID:ENhVujQ1a86デフォルトの名無しさん (オッペケ Sr03-8X5p)
2020/02/27(木) 17:27:49.50ID:0jrc+WC1r そのアイデアを実現する手法としてstaticはどうだって話してたんじゃないないのか
87デフォルトの名無しさん (ドコグロ MM02-bE1b)
2020/02/27(木) 19:49:51.32ID:6N44UBOdM88デフォルトの名無しさん (ワッチョイ 03a7-efYq)
2020/02/27(木) 20:14:51.21ID:NGAf+NLq0 うっかり2つ作らせない方法だからな
89デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
2020/02/27(木) 22:15:47.05ID:ENhVujQ1a >>87
日本人と欧米人の論争の仕方の違いは明らかで、
それは別に俺のオリジナルの見解でも何でもないよw
今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
という議論が苦手なこと。
日本人は一度決めた「立場」に固執して全肯定か全否定かになりやすい。
好き嫌いを持ち込むべきでない評価に好き嫌いを持ち込みがち。
エディターとかはいいんよ別に好き嫌いで語れば。技術的な話はおかしいでしょ。
板違いだからもう止めるけどね。
日本人と欧米人の論争の仕方の違いは明らかで、
それは別に俺のオリジナルの見解でも何でもないよw
今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
という議論が苦手なこと。
日本人は一度決めた「立場」に固執して全肯定か全否定かになりやすい。
好き嫌いを持ち込むべきでない評価に好き嫌いを持ち込みがち。
エディターとかはいいんよ別に好き嫌いで語れば。技術的な話はおかしいでしょ。
板違いだからもう止めるけどね。
90デフォルトの名無しさん (ワッチョイ ca01-bE1b)
2020/02/27(木) 22:46:12.99ID:RMeeA8fN0 >>89
> 今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
> という議論が苦手なこと。
それでどちらかに決まるなら宗教戦争なんてすぐに解決してるよw
そもそも技術的な話とか言うわりには
> それが分かりやすいですか?
なんて人によって意見が違うことを言い出すから戦争はいつまで経っても終わらないわけで…
> 今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
> という議論が苦手なこと。
それでどちらかに決まるなら宗教戦争なんてすぐに解決してるよw
そもそも技術的な話とか言うわりには
> それが分かりやすいですか?
なんて人によって意見が違うことを言い出すから戦争はいつまで経っても終わらないわけで…
91デフォルトの名無しさん (ワッチョイ 03a7-efYq)
2020/02/27(木) 23:52:28.63ID:NGAf+NLq0 >>89
まあ、外人ならってのは幻想だな
そもそも奴らがそんなに頭が良かったのならオブジェクト指向なんて流行ってない
リーナスが言ったようにオブジェクト指向はカルトだ
誰もメリットなんて説明できない
それでも海を超えて日本へ来たのさ
まあ、外人ならってのは幻想だな
そもそも奴らがそんなに頭が良かったのならオブジェクト指向なんて流行ってない
リーナスが言ったようにオブジェクト指向はカルトだ
誰もメリットなんて説明できない
それでも海を超えて日本へ来たのさ
92デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
2020/02/28(金) 00:58:28.47ID:W4dF7kHwa93デフォルトの名無しさん (ワッチョイ ca01-bE1b)
2020/02/28(金) 06:43:53.39ID:lgmUZMDZ094デフォルトの名無しさん (ワッチョイ 4a63-ZWRU)
2020/02/28(金) 09:46:17.62ID:JX0D/Sej0 いつもいつも同じ流れでよく飽きないですねカスども
95デフォルトの名無しさん (ワッチョイ 4a42-DFeu)
2020/02/28(金) 14:13:28.76ID:zv3KdV1x0 シングルトン的なものが必要になったら、殆どはDIのインジェクションでなんとかするけど
コレクションの要素にインジェクションなんて鬱陶しいから普通のシングルトンやStatic Class使ったりするな
コレクションの要素にインジェクションなんて鬱陶しいから普通のシングルトンやStatic Class使ったりするな
96デフォルトの名無しさん (スフッ Sdea-S34E)
2020/02/28(金) 16:17:34.85ID:5jfHvjE1d シングルトンに依存するコレクションのエレメントとかちょっと悪夢だな。
97デフォルトの名無しさん (ワッチョイ cb4f-/wOo)
2020/03/01(日) 05:50:05.37ID:wVHwYgLC0 これが最新ぽいな
98デフォルトの名無しさん (ワッチョイ af17-DFeu)
2020/03/01(日) 07:54:47.18ID:cyJFDbBK0 42 デフォルトの名無しさん 2020/03/01(日) 05:43:23.78 ID:wVHwYgLC
なんだ?この糞スレ
と思ったら2016年だとwww
どこから引っ張り出したんだよ
なんだ?この糞スレ
と思ったら2016年だとwww
どこから引っ張り出したんだよ
99デフォルトの名無しさん (ワッチョイ 679b-DFeu)
2020/03/02(月) 10:29:43.95ID:NX3+Q9hq0 C#というより.NET Framework全般の問題かもしれませんが・・・
ビルドした実行ファイルの拡張子を7zにして開けると
.rsrc(フォルダ)
.text
.reloc
というファイルが出てきます
このうち「.text」をエディタで開けると
「C:\Users\ユーザー名\source\repos\プロジェクト名\obj\Release\実行ファイル名.pdb」
の文字列がそのまま入っておりユーザー名まで見えてしまいます
プロジェクトのプロパティなど見てみましたが該当する文字列は設定されていませんでした
この文字列が入らないようにビルドするにはどうすれば良いでしょうか?
ビルドした実行ファイルの拡張子を7zにして開けると
.rsrc(フォルダ)
.text
.reloc
というファイルが出てきます
このうち「.text」をエディタで開けると
「C:\Users\ユーザー名\source\repos\プロジェクト名\obj\Release\実行ファイル名.pdb」
の文字列がそのまま入っておりユーザー名まで見えてしまいます
プロジェクトのプロパティなど見てみましたが該当する文字列は設定されていませんでした
この文字列が入らないようにビルドするにはどうすれば良いでしょうか?
100デフォルトの名無しさん (ワッチョイ 1bda-himO)
2020/03/02(月) 10:31:50.59ID:++2P6Dav0 mtawmg
101デフォルトの名無しさん (ワッチョイ 4e7c-FlcA)
2020/03/02(月) 10:56:03.68ID:dv6bLfIQ0 プロジェクトのプロパティでデバッグ情報の出力を「なし」か「埋め込み」にする
なしの場合はデバッグが難しいから頒布する用のリリースビルドだけにした方が良い
なしの場合はデバッグが難しいから頒布する用のリリースビルドだけにした方が良い
102デフォルトの名無しさん (アウウィフ FF2f-X91k)
2020/03/02(月) 11:01:21.30ID:glnmwhpKF103デフォルトの名無しさん (ワッチョイ 679b-DFeu)
2020/03/02(月) 11:30:46.56ID:NX3+Q9hq0104デフォルトの名無しさん (ワッチョイ 9f24-xiWk)
2020/03/04(水) 15:33:24.81ID:WNB6X6E30 yield returnの挙動について知りたいのですが、
例えばHuman[]からある苗字のHumanインスタンスだけを列挙する場合、
yield returnで貰えば新たな配列は生成されないという理解で良いんでしょうか?(無駄なヒープの生成なども無いと)
例えばHuman[]からある苗字のHumanインスタンスだけを列挙する場合、
yield returnで貰えば新たな配列は生成されないという理解で良いんでしょうか?(無駄なヒープの生成なども無いと)
105デフォルトの名無しさん (ワッチョイ 4f7c-MjGO)
2020/03/04(水) 15:41:47.96ID:VYRn8ATr0 配列は生成されないけどIEnumerable<T>/IEnumerator<T>の実体クラスのインスタンスは作られるよ
具体的にどんなクラスになるかはildasm.exeとかで確認してみるといいよ
具体的にどんなクラスになるかはildasm.exeとかで確認してみるといいよ
106デフォルトの名無しさん (ワッチョイ ef4a-Xzyn)
2020/03/04(水) 20:59:26.02ID:i/lDlkx00 var a = new int[10];
for(......){
......
}
for(......){
var a = new int[10];
......
}
配列変数の場合はどちらの書き方が正しいでしょうか?
下のほうはループを繰り返す毎に配列を宣言してるので無駄だと思うのですが
for(......){
......
}
for(......){
var a = new int[10];
......
}
配列変数の場合はどちらの書き方が正しいでしょうか?
下のほうはループを繰り返す毎に配列を宣言してるので無駄だと思うのですが
107デフォルトの名無しさん (ドコグロ MM4f-blPw)
2020/03/04(水) 21:02:11.58ID:O/qwuvY6M >>106
意味が違うからどっちが正しいもクソもない
意味が違うからどっちが正しいもクソもない
108デフォルトの名無しさん (ワッチョイ efda-Lqe9)
2020/03/04(水) 21:03:35.42ID:nSjoZipw0 ......の内容が大事だよなw
109デフォルトの名無しさん (ワッチョイ 4b35-odL1)
2020/03/04(水) 21:18:09.87ID:vFPRvz7l0 >>106
どっちが正しいかは何をしたいかによる
どっちが正しいかは何をしたいかによる
110デフォルトの名無しさん (ワッチョイ 4b2d-hds7)
2020/03/04(水) 22:58:57.68ID:Mg+OXMHj0111デフォルトの名無しさん (ワッチョイ 8b63-UVo+)
2020/03/04(水) 23:03:21.69ID:w6hLhDKv0 全然違うと思う
112デフォルトの名無しさん (ワッチョイ 9fad-b9E5)
2020/03/05(木) 02:53:17.71ID:FOFXma0P0 >>106
後者はループ処理毎にaが初期化されるが
前者はループ処理毎にaは初期化されない
って違いがあるので、バグが発生しにくいのは後者で
バグは発生しやすいけど効率がいいのが前者
前のループのaを使わないなら、どちらも正しいよ
後者はループ処理毎にaが初期化されるが
前者はループ処理毎にaは初期化されない
って違いがあるので、バグが発生しにくいのは後者で
バグは発生しやすいけど効率がいいのが前者
前のループのaを使わないなら、どちらも正しいよ
113デフォルトの名無しさん (ワッチョイ 8b48-107Z)
2020/03/05(木) 09:03:52.56ID:Zalo0Xqn0 for内部で毎回一時バッファが必要ならfor内に書くべきだけど、ループ枚に配列生成は高コストなのでstackalloc使って良いと思うけどな
unsafe for ()
{
var a = stackalloc int[10]; //配列サイズが[200000]ほど以上になるとスタックオーバーフローの恐れが出てくるので注意
a[0] = 123;
}
unsafe for ()
{
var a = stackalloc int[10]; //配列サイズが[200000]ほど以上になるとスタックオーバーフローの恐れが出てくるので注意
a[0] = 123;
}
114デフォルトの名無しさん (ワッチョイ 1bad-Ff7g)
2020/03/05(木) 09:55:29.22ID:C+Zq+iEs0115デフォルトの名無しさん (ワッチョイ 9f01-AjW4)
2020/03/05(木) 10:13:49.21ID:sz7+iaAj0 言語ではなくて設計のことなのですが、C#でデスクトップアプリを作っていて、canvasに描画する処理を書いてます
そこで、描画部分で状態の更新(例えばlabelで表示する値の計算)を一緒にやった方が負荷が減らせるなと思ったのですがこれは設計としていいのでしょうか?
描画部分は複雑になっていくので、そこにcanvasの描画に関係ない処理を持ってくるのはどうなのかと悩んでます
でも一連の処理で共通部分があるので出来る限り負荷を減らしたいです
canvasの描画とその他の更新でうまく分けた方がいいでしょうか
そこで、描画部分で状態の更新(例えばlabelで表示する値の計算)を一緒にやった方が負荷が減らせるなと思ったのですがこれは設計としていいのでしょうか?
描画部分は複雑になっていくので、そこにcanvasの描画に関係ない処理を持ってくるのはどうなのかと悩んでます
でも一連の処理で共通部分があるので出来る限り負荷を減らしたいです
canvasの描画とその他の更新でうまく分けた方がいいでしょうか
116デフォルトの名無しさん (アウアウウー Sa0f-blPw)
2020/03/05(木) 10:16:15.59ID:4EDBtik+a >>113
悪いけど、それは全く意味ないと思うよ
ループ内で配列を生成する必要があるとしたら、それを他の非同期なメソッドなどに渡していて毎回インスタンスを別にしなければならないケースだろう
stackallocだと領域が結局使い回されてしまうから、それでいいんだったら単純に最初にnewした配列をループ内で毎回クリアして使えばよい
悪いけど、それは全く意味ないと思うよ
ループ内で配列を生成する必要があるとしたら、それを他の非同期なメソッドなどに渡していて毎回インスタンスを別にしなければならないケースだろう
stackallocだと領域が結局使い回されてしまうから、それでいいんだったら単純に最初にnewした配列をループ内で毎回クリアして使えばよい
117デフォルトの名無しさん (ドコグロ MM0f-blPw)
2020/03/05(木) 10:28:10.79ID:9nI/lMlHM >>115
描画処理は今の状態のスナップショットを画面に反映させるだけなんだろ?
そんなもん状態の更新処理と何をどう共有するんだよ
分けるかどうかは別にして、そんな頭がごっちゃになった状態で書かれたコードなんて俺は読みたくないな
描画処理は今の状態のスナップショットを画面に反映させるだけなんだろ?
そんなもん状態の更新処理と何をどう共有するんだよ
分けるかどうかは別にして、そんな頭がごっちゃになった状態で書かれたコードなんて俺は読みたくないな
118デフォルトの名無しさん (ワッチョイ 9f24-CBSz)
2020/03/05(木) 10:30:44.90ID:e30M4A2z0119デフォルトの名無しさん (ワッチョイ 9f01-AjW4)
2020/03/05(木) 11:02:10.43ID:sz7+iaAj0 >>117
すみません誤解を招く書き方でした
状態の更新ではなくviewの更新です
viewで表示する値を計算するのに一連の処理が必要ということです
改めて考えてみたら元のデータは頻繁に変わるものではないのでメモ化で対処できそうです
すみません誤解を招く書き方でした
状態の更新ではなくviewの更新です
viewで表示する値を計算するのに一連の処理が必要ということです
改めて考えてみたら元のデータは頻繁に変わるものではないのでメモ化で対処できそうです
120デフォルトの名無しさん (ワッチョイ cb01-xiWk)
2020/03/05(木) 15:17:30.80ID:X7H8oXB10 自分で使う用のWindows用WinFormsくらいしか作らない俺もSpan利用したいんだけど、そろそろ.NetCore3.1インスコしてええの?
CoreのWinFormsは不完全みたいな事どっかで聞いたからもうかれこれ1年以上.Net Framework4.7.2しか使ってないんだけど
CoreのWinFormsは不完全みたいな事どっかで聞いたからもうかれこれ1年以上.Net Framework4.7.2しか使ってないんだけど
121デフォルトの名無しさん (ワッチョイ efd6-Inmc)
2020/03/06(金) 12:20:46.76ID:H9scC1320 System.Memoryパッケージ入れれば、slow spanになるけど.NET FrameworkでもSpan<T>が使える
122デフォルトの名無しさん (ベーイモ MM7f-9hvn)
2020/03/06(金) 12:24:09.85ID:7SrrBNmuM SpanならnugetからSystem.Memoryを入れればNET47でも使えるんじゃ?
123デフォルトの名無しさん (ベーイモ MM7f-9hvn)
2020/03/06(金) 12:24:46.59ID:7SrrBNmuM あ、かぶった
124デフォルトの名無しさん (ワッチョイ 4f7c-kMfZ)
2020/03/10(火) 13:54:33.08ID:Xb+4Rppb0 Hoge[] h = new Hoge[]{...};
ArraySegment<Hoge> slice_of_h = new ArraySegment<Hoge>(h, a, b);
Hoge[] new_instance = slice_of_h.ToArray();
ArraySegment<Hoge> slice_of_h = new ArraySegment<Hoge>(h, a, b);
Hoge[] new_instance = slice_of_h.ToArray();
125デフォルトの名無しさん (ラクッペペ MMe6-0jaE)
2020/03/11(水) 20:14:38.79ID:Atur+UVNM FormアプリケーションのGUIをそのままWebサイトにできますか?
126デフォルトの名無しさん (ワッチョイ 0263-Xa2H)
2020/03/11(水) 20:15:50.74ID:JtvZFGdC0 無理
127デフォルトの名無しさん (ワイーワ2 FFca-cUsN)
2020/03/12(木) 13:35:24.24ID:MzPDqAwNF128デフォルトの名無しさん (アウアウウー Sac5-Syvm)
2020/03/12(木) 14:08:08.81ID:jMpYX7Pla >>127
懐かしい話だな
.NET Standard はあろうことか 2.1 で .NET Framework を切り捨てたから、もはや .NET Standard には何の意味もなくなり事実上消滅したよ
懐かしい話だな
.NET Standard はあろうことか 2.1 で .NET Framework を切り捨てたから、もはや .NET Standard には何の意味もなくなり事実上消滅したよ
129デフォルトの名無しさん (スップ Sd02-YgZJ)
2020/03/12(木) 14:19:52.98ID:GlTl0MmId まだ消滅してないよ
130デフォルトの名無しさん (ワッチョイ 51da-cUsN)
2020/03/12(木) 14:40:04.55ID:dkoVUBxw0131デフォルトの名無しさん (アウアウウー Sac5-Syvm)
2020/03/12(木) 15:00:48.26ID:jMpYX7Pla >>130
下の方は誤解を招く書き方(というか本人が理解してなさそう)だね
.NET5は.NET CoreとXamarinの新バージョンを含むが、.NET Frameworkは含まない
.NET Frameworkは4.xが最後のバージョンとなり、(Xamarinを除けば).NET Coreへ一本化される
下の方は誤解を招く書き方(というか本人が理解してなさそう)だね
.NET5は.NET CoreとXamarinの新バージョンを含むが、.NET Frameworkは含まない
.NET Frameworkは4.xが最後のバージョンとなり、(Xamarinを除けば).NET Coreへ一本化される
132デフォルトの名無しさん (オッペケ Sr91-drwQ)
2020/03/12(木) 20:38:24.41ID:RlMroztpr > Xamarin は、テクノロジー自体は、.NET Framework と C# を基盤としていますが、
> Mono というライブラリを使用します
> Mono というライブラリを使用します
133デフォルトの名無しさん (ドコグロ MM4a-Syvm)
2020/03/12(木) 23:53:50.67ID:jAjbL2IrM >>132
それは明確に間違いだね
Monoは元々MSとは無関係の会社による.NET Frameworkの非公式かつ独自な互換実装で、.NET Frameworkとはソースを共有していない
based on かなんかを誤訳したんじゃね
それは明確に間違いだね
Monoは元々MSとは無関係の会社による.NET Frameworkの非公式かつ独自な互換実装で、.NET Frameworkとはソースを共有していない
based on かなんかを誤訳したんじゃね
134デフォルトの名無しさん (ワッチョイ 0135-0jaE)
2020/03/13(金) 00:04:41.45ID:1UhKFURs0 テクノロジーを基盤してるって書いてるだけじゃん
ライブラリがおかしい
ライブラリがおかしい
135デフォルトの名無しさん (スフッ Sda2-Wi6o)
2020/03/13(金) 07:54:41.51ID:/kxy81/Ad136デフォルトの名無しさん (アウアウウー Sac5-cOBK)
2020/03/13(金) 12:12:59.24ID:1Ll5zbJna 毎度のことだけど用語の定義のあいまいさからくる混乱だろうね
>>132の引用部分を書いた人は「NET FrameworkをVS2002とかの時代の意味で使ってるんでしょ。
当時は仮想OSみたいに言われてた
その定義だと.NET Coreも.NET Frameworkになっちゃうので(以下略
>>132の引用部分を書いた人は「NET FrameworkをVS2002とかの時代の意味で使ってるんでしょ。
当時は仮想OSみたいに言われてた
その定義だと.NET Coreも.NET Frameworkになっちゃうので(以下略
137デフォルトの名無しさん (ワッチョイ 61dd-gN7l)
2020/03/14(土) 03:14:07.89ID:+KBSM6L30 C#の正規表現についてですが...
new Regex(@"^a").IsMatch("abc",0) → true : 納得。
new Regex(@"^a").IsMatch("abc",1) → false : 納得。
new Regex(@"^b").IsMatch("abc",0) → false : 納得。
new Regex(@"^b").IsMatch("abc",1) → false : 納得...できん!!
第2引数が1なら、^で示す入力文字列の先頭が2文字目になってて欲しいじゃん!?
MSDNとか、この挙動について何か書いてある?見つけられなかったわ。
substringとかしたくないんだよな...
なんでこういう挙動になるか、ご存じの方いますか。
new Regex(@"^a").IsMatch("abc",0) → true : 納得。
new Regex(@"^a").IsMatch("abc",1) → false : 納得。
new Regex(@"^b").IsMatch("abc",0) → false : 納得。
new Regex(@"^b").IsMatch("abc",1) → false : 納得...できん!!
第2引数が1なら、^で示す入力文字列の先頭が2文字目になってて欲しいじゃん!?
MSDNとか、この挙動について何か書いてある?見つけられなかったわ。
substringとかしたくないんだよな...
なんでこういう挙動になるか、ご存じの方いますか。
138デフォルトの名無しさん (ワッチョイ 7e02-JJJ8)
2020/03/14(土) 03:47:52.84ID:eoDNI2O30139デフォルトの名無しさん (ワッチョイ 7e02-JJJ8)
2020/03/14(土) 03:55:38.88ID:eoDNI2O30 第二引数は探索の開始位置を指定するのであって検索範囲をどうこうするためのもんじゃないってことかな?
でもその理屈だと二つ目がfalseである説明にならんし流し読みだから解釈間違ってるかもしれないわ
でもその理屈だと二つ目がfalseである説明にならんし流し読みだから解釈間違ってるかもしれないわ
140デフォルトの名無しさん (ワッチョイ 7e02-JJJ8)
2020/03/14(土) 04:35:36.35ID:eoDNI2O30 139は間違いっぽいので忘れて
IsMatch("abc",0) → abcを探索
IsMatch("abc",1) → bcを探索
リンク先を見るに^は行頭を表すもんでbは行頭ではないのでfalse
aは探索外なので二つ目もfalseってことかな
https://docs.microsoft.com/en-us/dotnet/standard/base-types/anchors-in-regular-expressions
IsMatch("abc",0) → abcを探索
IsMatch("abc",1) → bcを探索
リンク先を見るに^は行頭を表すもんでbは行頭ではないのでfalse
aは探索外なので二つ目もfalseってことかな
https://docs.microsoft.com/en-us/dotnet/standard/base-types/anchors-in-regular-expressions
141デフォルトの名無しさん (アウアウウー Sac5-M7Q/)
2020/03/14(土) 09:39:43.32ID:S+o/zRAGa new Regex()するときにRegexOptions.Multilineを指定して『^』『$』の意味づけを変更・・・しても駄目そうだね
日本語のほうで
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expression-options?view=netframework-4.8#multiline-mode
を読んだけど、
あくまで『^』は入力文字列全体(>>137のなら"bc"ではなく"abc")の先頭、MultiLine指定時は\nを行区切りとした行頭についてのみマッチするんだろう
日本語のほうで
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expression-options?view=netframework-4.8#multiline-mode
を読んだけど、
あくまで『^』は入力文字列全体(>>137のなら"bc"ではなく"abc")の先頭、MultiLine指定時は\nを行区切りとした行頭についてのみマッチするんだろう
142137 (ワッチョイ 61dd-gN7l)
2020/03/14(土) 11:29:21.74ID:+KBSM6L30 >>138-141
ありがとう!
俺だけではそれらの情報を見つけられなかったわ。
いったん \G を使用することで何とかなりました。
というか \G の仕様(影響範囲)もよくわからん。
最終のマッチってRegexのインスタンスに保存されるのかな?
そうだと思うけど、今一つ確証が持てない。
あと、 \A が正しいんじゃないか、って思いましたが、\Aは「文字列の先頭」でしかないんだね。
Singlelineの場合は^と同じみたい。
ありがとう!
俺だけではそれらの情報を見つけられなかったわ。
いったん \G を使用することで何とかなりました。
というか \G の仕様(影響範囲)もよくわからん。
最終のマッチってRegexのインスタンスに保存されるのかな?
そうだと思うけど、今一つ確証が持てない。
あと、 \A が正しいんじゃないか、って思いましたが、\Aは「文字列の先頭」でしかないんだね。
Singlelineの場合は^と同じみたい。
143デフォルトの名無しさん (ワッチョイ c201-ThK6)
2020/03/17(火) 10:51:26.76ID:phFjovqc0 プログラムではなくライセンスについての質問なのですが、NAudioというライブラリを使いたくてプロジェクトに導入したのですがMs-PLライセンスとなっていて、この場合著作権表示等は具体的にどう表示すればいいのでしょうか。
著作権表示自体がいまいち分かりません。ライセンスの文書(LICENSE.txt等)とは別なのでしょうか。
調べているのですが具体的な表記方法が書かれている記事が無く分かりません。
ご教示お願いします。
著作権表示自体がいまいち分かりません。ライセンスの文書(LICENSE.txt等)とは別なのでしょうか。
調べているのですが具体的な表記方法が書かれている記事が無く分かりません。
ご教示お願いします。
144デフォルトの名無しさん (ワッチョイ 13b9-hdmr)
2020/03/21(土) 13:43:45.29ID:/FH0o/RH0 相談させてください。
以下のような MyClass1 クラスを作ると、
「IDE0054 複合代入を使用」というメッセージが表示されます。
class MyClass1 {
int MyProperty { get; set; } = 0;
public void IncreaseMyProperty(int x)
=> MyProperty = MyProperty + x; // ここでメッセージ
}
まあそりゃそうでしょうということで以下の MyClass2 のように直すと、今度は
「IDE0052 C# プライベート プロパティ は、
その get アクセサーが呼び出されることがないため、メソッドに変換できます。」
というメッセージが表示されてしまいます。
class MyClass2 {
int MyProperty { get; set; } = 0; // ここでメッセージ
public void IncreaseMyProperty(int x)
=> MyProperty += x;
}
なんだそりゃと思いつつ言われたとおり以下の MyClass3 のように直せば
メッセージは表示されなくなるのですが、こんな直し方でいいのでしょうか。
class MyClass3 {
int _MyProperty = 0;
void SetMyProperty(int value) => _MyProperty = value;
public void IncreaseMyProperty(int x)
=> SetMyProperty(_MyProperty + x);
}
ご意見をお聞かせいただけると幸いです。よろしくお願いいたします。
以下のような MyClass1 クラスを作ると、
「IDE0054 複合代入を使用」というメッセージが表示されます。
class MyClass1 {
int MyProperty { get; set; } = 0;
public void IncreaseMyProperty(int x)
=> MyProperty = MyProperty + x; // ここでメッセージ
}
まあそりゃそうでしょうということで以下の MyClass2 のように直すと、今度は
「IDE0052 C# プライベート プロパティ は、
その get アクセサーが呼び出されることがないため、メソッドに変換できます。」
というメッセージが表示されてしまいます。
class MyClass2 {
int MyProperty { get; set; } = 0; // ここでメッセージ
public void IncreaseMyProperty(int x)
=> MyProperty += x;
}
なんだそりゃと思いつつ言われたとおり以下の MyClass3 のように直せば
メッセージは表示されなくなるのですが、こんな直し方でいいのでしょうか。
class MyClass3 {
int _MyProperty = 0;
void SetMyProperty(int value) => _MyProperty = value;
public void IncreaseMyProperty(int x)
=> SetMyProperty(_MyProperty + x);
}
ご意見をお聞かせいただけると幸いです。よろしくお願いいたします。
145デフォルトの名無しさん (ワッチョイ 132c-+ZyR)
2020/03/21(土) 18:45:34.77ID:qqrYKjlY0 MyPropertyが本当に自動実装プロパティなら
そもそもフィールドでいいんでは?
そもそもフィールドでいいんでは?
146デフォルトの名無しさん (アウアウウー Sa5d-NT4g)
2020/03/21(土) 19:30:58.03ID:zN2aQcNta 最近のIDEは賢いから定義されてるけど使用されないことが明らかなプロパティやメソッドが見つかったら警告が出るようになってる
>>144のは文法等のお勉強でてきとうなソースを書いてるんだと思うけど、MyClass2なら
MyPropertyをpublicなプロパティにするか、MyPropertyを参照するような処理をちゃんと書けば警告解消するはず
ToString()あたりをオーバーライドして override string ToString() => MyProperty; とか書いてもいいかもね
>>144のは文法等のお勉強でてきとうなソースを書いてるんだと思うけど、MyClass2なら
MyPropertyをpublicなプロパティにするか、MyPropertyを参照するような処理をちゃんと書けば警告解消するはず
ToString()あたりをオーバーライドして override string ToString() => MyProperty; とか書いてもいいかもね
147デフォルトの名無しさん (ワッチョイ 13b9-hdmr)
2020/03/21(土) 20:37:06.12ID:/FH0o/RH0 >>145
レスありがとうございます。
説明が不十分で申し訳ありません。
実際には、以下の様な感じにしていまして、
できればプロパティを使いたいと考えております。
class MyClass4 {
int _MyProperty = 0;
event EventHandler MyPropertyChanged;
int MyProperty
{
get => _MyProperty;
set {
if (value != _MyProperty) {
_MyProperty = value;
MyPropertyChanged?.Invoke(
this, EventArgs.Empty);
}
}
}
public void IncreaseMyProperty(int x)
=> MyProperty += x;
}
レスありがとうございます。
説明が不十分で申し訳ありません。
実際には、以下の様な感じにしていまして、
できればプロパティを使いたいと考えております。
class MyClass4 {
int _MyProperty = 0;
event EventHandler MyPropertyChanged;
int MyProperty
{
get => _MyProperty;
set {
if (value != _MyProperty) {
_MyProperty = value;
MyPropertyChanged?.Invoke(
this, EventArgs.Empty);
}
}
}
public void IncreaseMyProperty(int x)
=> MyProperty += x;
}
148デフォルトの名無しさん (ワッチョイ 13b9-hdmr)
2020/03/21(土) 20:37:42.93ID:/FH0o/RH0 >>146
レスありがとうございます。
おっしゃるとおりなのですが、MyProperty += x; で
MyProperty の get アクセサーが参照されていることに
ならないため困ってしまっています。
C# の文法的に、自動実装プロパティでなければ
int _MyProperty = 0;
int MyProperty { set => _MyProperty; }
のような書き方も許されているようなのですが、
MyClasss2 の MyProperty の定義をこのように書き換えると、
MyProperty += x;
のところでエラーが出てしまうのです。
レスありがとうございます。
おっしゃるとおりなのですが、MyProperty += x; で
MyProperty の get アクセサーが参照されていることに
ならないため困ってしまっています。
C# の文法的に、自動実装プロパティでなければ
int _MyProperty = 0;
int MyProperty { set => _MyProperty; }
のような書き方も許されているようなのですが、
MyClasss2 の MyProperty の定義をこのように書き換えると、
MyProperty += x;
のところでエラーが出てしまうのです。
149デフォルトの名無しさん (ワッチョイ b963-lb9A)
2020/03/21(土) 20:45:29.55ID:rK+/4ZiL0 警告とエラーを混同しないで
+=オペレータがget使ってないだけでしょ
開発中で今後使う予定がありまだ未実装なら警告はスルーすればいい
+=オペレータがget使ってないだけでしょ
開発中で今後使う予定がありまだ未実装なら警告はスルーすればいい
150デフォルトの名無しさん (アウアウウー Sa5d-NT4g)
2020/03/21(土) 21:05:47.28ID:zN2aQcNta いやだからIDEからは「結局MyPropertyってインクリメントで更新はしてるけどどこからも参照されてないんでしょ、無駄なんじゃない?」と怒られてるわけで
他のC#ソースなりXAMLなりでMyPropertyが参照されてればそのメッセージは出ないはずだけど
例示されてるソースであればMyPropertyだけでなくインクリメントする処理も意味のない無駄な処理だから削ればいいし
GUI側etcのソースがまだ書けてないのであれば中途半端な書きかけソースで警告が出るのは当たり前のお話
というかそもそもでいえば、VisualStudioの設定がデフォルトならそのメッセージは
「コンパイルエラー」でも「警告」でもないただの注意喚起なメッセージでしかないから開発にも実行にも一切支障がないので
とりあえずほっとけばいいと思うんだけど
他のC#ソースなりXAMLなりでMyPropertyが参照されてればそのメッセージは出ないはずだけど
例示されてるソースであればMyPropertyだけでなくインクリメントする処理も意味のない無駄な処理だから削ればいいし
GUI側etcのソースがまだ書けてないのであれば中途半端な書きかけソースで警告が出るのは当たり前のお話
というかそもそもでいえば、VisualStudioの設定がデフォルトならそのメッセージは
「コンパイルエラー」でも「警告」でもないただの注意喚起なメッセージでしかないから開発にも実行にも一切支障がないので
とりあえずほっとけばいいと思うんだけど
151デフォルトの名無しさん (オッペケ Sr85-ED79)
2020/03/22(日) 09:23:59.74ID:knoRzRG7r classをpublicにと言う話ではなく?
152デフォルトの名無しさん (スッップ Sd33-Hfmd)
2020/03/22(日) 15:10:18.53ID:aFZi4Cdad >>147
MyPropatyをSetメソッドにして、インクリメント_MyPropaty+xを渡せばいいんじゃないの?
これでいいんでしょうか?って内容通りだけど単に値を入れるだけならフィールド直接やればって感じだけど追加作業あるならメソッドでやるのは普通だと思う
MyPropatyをSetメソッドにして、インクリメント_MyPropaty+xを渡せばいいんじゃないの?
これでいいんでしょうか?って内容通りだけど単に値を入れるだけならフィールド直接やればって感じだけど追加作業あるならメソッドでやるのは普通だと思う
153デフォルトの名無しさん (ワッチョイ 13ad-hdmr)
2020/03/24(火) 22:53:25.92ID:7FKkbPj60 読んでる入門書の練習問題にアクセサのGetNameメソッドで八文字以下の文字列が渡された場合だけname変数に代入するプログラムを書きなさい
というのがあるんですが、どうやって書けばいいのでしょうか?文字数を判定するプログラムは習ってないので困ってます
というのがあるんですが、どうやって書けばいいのでしょうか?文字数を判定するプログラムは習ってないので困ってます
154デフォルトの名無しさん (ワッチョイ fbd6-hdmr)
2020/03/24(火) 22:59:57.52ID:0+ccCJA90 >>153
stringクラスのメンバーを見てみよう
stringクラスのメンバーを見てみよう
155デフォルトの名無しさん (ワッチョイ 8b7b-EBql)
2020/03/24(火) 23:01:03.36ID:Q5H6MOZK0 >>153
文字数を判定=String.Lengthで判定
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.length?view=netframework-4.8
入門書ならその前の部分の内容で全部答えられるものしか無いはず。そうじゃないのならその入門書は捨てた方がいい
文字数を判定=String.Lengthで判定
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.length?view=netframework-4.8
入門書ならその前の部分の内容で全部答えられるものしか無いはず。そうじゃないのならその入門書は捨てた方がいい
156デフォルトの名無しさん (ワッチョイ 13ad-hdmr)
2020/03/24(火) 23:13:43.00ID:7FKkbPj60157デフォルトの名無しさん (ワッチョイ d1da-InxD)
2020/03/24(火) 23:41:48.49ID:lhWkdEvF0 「猫でもわかる」のほうが良いかも
158デフォルトの名無しさん (ワッチョイ 29f1-dbH2)
2020/03/24(火) 23:51:16.61ID:hJYqJTPr0 猫に分かるわけがない、こんな難しいものを。
「ハゲでもわかる」だろ、どう考えても。
「ハゲでもわかる」だろ、どう考えても。
159デフォルトの名無しさん (ワッチョイ 6e02-hHac)
2020/03/25(水) 04:47:11.72ID:LvLtJ7JB0 猫は誰でもできるということを比喩的に表している
じゃあハゲは?
じゃあハゲは?
160デフォルトの名無しさん (ワッチョイ b1f1-Go5d)
2020/03/25(水) 08:43:43.21ID:nn3rUaIL0 能力の劣る者でもできる
このハゲー、と言われるような者でも
このハゲー、と言われるような者でも
161デフォルトの名無しさん (ワンミングク MM62-iy+3)
2020/03/25(水) 09:09:57.70ID:IkumKzuJM162デフォルトの名無しさん (ワッチョイ 5561-Cd0d)
2020/03/25(水) 10:06:03.74ID:tUU69eV70 >>153
てかなんでGetNameなんだ?SetNameじゃないの?
てかなんでGetNameなんだ?SetNameじゃないの?
163デフォルトの名無しさん (ワッチョイ 852c-zagE)
2020/03/26(木) 00:40:52.54ID:KtVIRudY0 >>162
主観の違いかと思ったけど、確かにセットですね
主観の違いかと思ったけど、確かにセットですね
164デフォルトの名無しさん (ワッチョイ 764a-1K1t)
2020/03/27(金) 23:27:00.17ID:MpMbbGem0 プロポーショナル文字の場合に、画面上の文字の表示位置はどうやって求めるんでしょうか?
1文字ごとに(x,y)座標を計算して配列変数に記憶しておく、
文字を削除、挿入などして位置がずれたときにはすべて計算し直す
というような方法しか思いつきません
1文字ごとに(x,y)座標を計算して配列変数に記憶しておく、
文字を削除、挿入などして位置がずれたときにはすべて計算し直す
というような方法しか思いつきません
165デフォルトの名無しさん (アウアウウー Sacd-PYaq)
2020/03/28(土) 00:41:06.51ID:PEyzMklSa >>164
↓のサンプルコードみたいな話?やったことないから知らんけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.graphics.measurecharacterranges
↓のサンプルコードみたいな話?やったことないから知らんけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.graphics.measurecharacterranges
166デフォルトの名無しさん (ワッチョイ 764a-1K1t)
2020/03/28(土) 01:33:04.22ID:7wRTqyNf0 そんな感じです
毎度毎度文字列の長さを測定するのもなあ〜と、ちょっと思ったもので質問しました
毎度毎度文字列の長さを測定するのもなあ〜と、ちょっと思ったもので質問しました
167デフォルトの名無しさん (ワッチョイ 0935-lv27)
2020/03/28(土) 01:43:01.14ID:ngUeRIaE0 削除・挿入した文字列のサイズを全体から足し引きする
168デフォルトの名無しさん (ワッチョイ 55b3-T/6F)
2020/03/28(土) 06:08:44.57ID:k+10ZvFP0 フォントは左右は良いけど上下に謎のスペースが入って扱いづらい。フォント毎に仕様が違うので厄介
169デフォルトの名無しさん (エムゾネ FFb2-nBi6)
2020/03/28(土) 10:27:24.65ID:juOTiA3TF オリンピックじゃないけどカーリング
170デフォルトの名無しさん (ワッチョイ d201-skQs)
2020/03/28(土) 11:24:58.10ID:+WXFsbEZ0 >>164
基本は再描画時に行頭から行末まで1文字つずつカウントアップ
基本は再描画時に行頭から行末まで1文字つずつカウントアップ
171デフォルトの名無しさん (ワッチョイ 92ad-B4Y8)
2020/03/30(月) 07:25:35.74ID:h/V/0o0/0172デフォルトの名無しさん (ワッチョイ b5da-3LRk)
2020/03/30(月) 07:29:34.72ID:6/Nsoznj0 両方たっているのが1000bだから
173デフォルトの名無しさん (ワッチョイ 5ef2-Bt6E)
2020/03/30(月) 07:32:55.44ID:X05REbKS0 >>171
2進数を理解したらわかるよ
2進数を理解したらわかるよ
174デフォルトの名無しさん (ワッチョイ 92ad-B4Y8)
2020/03/30(月) 07:45:18.96ID:h/V/0o0/0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★6 [BFU★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 【サッカー】U-17W杯 日本代表、無念のベスト8敗退… チャンスは多く作ったが仕留め切れず オーストリアに0-1で敗戦 [冬月記者★]
- 高市首相が異例の“買春行為の罰則化の検討”に言及…世界では“買う側”に罰則を科すのが先進国のスタンダード ★2 [樽悶★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- こういっちゃなんだが「蕪(株)が上がりますよ~!」やらない奴って総理の器じゃないよな。別に株価は上げんでいいが [928194223]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ157
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
- 【ぺこ専🐰】なんG 兎田ぺこら突発配信実況スレ🏡【ホロライブ▶】
- WTO世界のコメ🌾価格は記録的な豊作により1年で35%下落(5キロで200円程度)と発表※日本は1年で3倍値上がり [709039863]
- 中国大使館、「高市早苗の正体」を完璧に絵にしてしまう。こら才能あるでぇ! [592058334]
