!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:IsrGexiaF280デフォルトの名無しさん (ワッチョイ 067b-Ryj7)
2020/04/12(日) 18:08:22.86ID:sgzIx9p/0281デフォルトの名無しさん (ワッチョイ 67a7-Oz6P)
2020/04/12(日) 18:11:50.67ID:7/OoXgJO0 >>277
関数にする
関数にする
282デフォルトの名無しさん (ワッチョイ a201-vZv9)
2020/04/12(日) 19:13:16.89ID:tx1YNXXn0 if (foo.IsEnabled && !bar.IsEnabled) を
if (foo.IsEnabled && bar.IsDisabled) にすることはある
単語の頭につけるエクスクラメーションマークは
見落としやすいから可読性がやや低い
>>278のパターンで変数にすることはあんまりないけど関数化するのもよくやる
if (foo.IsEnabled && bar.IsDisabled) にすることはある
単語の頭につけるエクスクラメーションマークは
見落としやすいから可読性がやや低い
>>278のパターンで変数にすることはあんまりないけど関数化するのもよくやる
283デフォルトの名無しさん (アウアウウー Sabb-b+QY)
2020/04/12(日) 19:22:29.59ID:xeq/pDNWa284デフォルトの名無しさん (ワッチョイ c62d-kdbN)
2020/04/12(日) 19:43:51.07ID:WBJoN6ah0 一発で書けるのかなと、すごく疑問に思ってたよ
ありがとう!
ありがとう!
285デフォルトの名無しさん (アウアウウー Sabb-KL7n)
2020/04/12(日) 21:05:32.57ID:0dL6T2+Wa 一発で書けた
if (b ? false : a) {...}
一発で書けた
if (!(!a || b)) {...}
一発で書けた
Func<bool, bool, bool> ippatu = (x, y) => x && !y;
if (ippatu(a, b)) {...}
if (b ? false : a) {...}
一発で書けた
if (!(!a || b)) {...}
一発で書けた
Func<bool, bool, bool> ippatu = (x, y) => x && !y;
if (ippatu(a, b)) {...}
286デフォルトの名無しさん (ワッチョイ cb02-AglQ)
2020/04/12(日) 21:27:27.71ID:JCmsoVoe0 XORでいいんだったら^一個で済むけど違うよな
287デフォルトの名無しさん (ワッチョイ 622c-N9MB)
2020/04/12(日) 21:57:13.58ID:NV9JxSja0 Not演算子が見辛いから関数に置き換える
ぐらいでいい気はする
ぐらいでいい気はする
288デフォルトの名無しさん (アウアウウー Sabb-b+QY)
2020/04/12(日) 23:13:55.75ID:PHqFJcwka >>285
1つ目は短絡評価の場合の動作が異なるから等価な式になってないし、2つ目の式は元の式より見辛くなって無意味だろう
1つ目は短絡評価の場合の動作が異なるから等価な式になってないし、2つ目の式は元の式より見辛くなって無意味だろう
289デフォルトの名無しさん (ワッチョイ cb5f-zfCe)
2020/04/13(月) 10:34:31.41ID:xWnIwwwl0 >>286
カルノー図描いて観ろ
カルノー図描いて観ろ
290デフォルトの名無しさん (ワッチョイ bbda-P/Zs)
2020/04/13(月) 11:05:23.07ID:DkcwYYbx0291デフォルトの名無しさん (ワッチョイ 47ac-q7V1)
2020/04/13(月) 14:35:31.90ID:6KK4qS560 てかそんな条件がパット見でわからんくなるなら、根本的にそこにいたる道筋がおかしいと思うよ
292デフォルトの名無しさん (ワッチョイ 6207-O/Sq)
2020/04/13(月) 17:03:53.08ID:wlUJ1QGb0 SSH.net使った事ある人います?
フォワードポイント設定後、Startしてプログラムは通ってるんですけど、なぜかポートが開かないので困ってます
RloginというフリーのSShソフト使うと同じポートが開くので、SSH.net側かVS側が原因と考えてます
ネットの先人たちの知恵を拝見して同じようにしてるんですけど、なぜか上手くいきません
開発環境
VS2017
Nugetより最新のSSH.netを入れてます
netstatコマンドでポートの確認したら、192.168.〜の所が開かず、[::]の所が開いてるようです
これはなんなんでしょう?
フォワードポイント設定後、Startしてプログラムは通ってるんですけど、なぜかポートが開かないので困ってます
RloginというフリーのSShソフト使うと同じポートが開くので、SSH.net側かVS側が原因と考えてます
ネットの先人たちの知恵を拝見して同じようにしてるんですけど、なぜか上手くいきません
開発環境
VS2017
Nugetより最新のSSH.netを入れてます
netstatコマンドでポートの確認したら、192.168.〜の所が開かず、[::]の所が開いてるようです
これはなんなんでしょう?
293デフォルトの名無しさん (ワッチョイ 17ad-qv0W)
2020/04/13(月) 17:14:22.22ID:Szw9E2890294デフォルトの名無しさん (ワッチョイ ebb2-zja/)
2020/04/13(月) 17:18:05.18ID:ujcK/XL20 ポートフォアード開始してる?ステップインで状態とエラーメッセージ追えば理由なんとなくわかるんじゃね?
295デフォルトの名無しさん (ワッチョイ 6207-O/Sq)
2020/04/13(月) 17:41:05.66ID:wlUJ1QGb0296デフォルトの名無しさん (ワッチョイ 36eb-AglQ)
2020/04/13(月) 19:23:38.52ID:o+L/gyE50 拡張メソッドがあるのに、拡張プロパティなどが無いのは何故でしょう?
多くの日本語解説サイトで DirectoryInfoではなくDirectoryを、EnumerateFilesでなくGetFilesを使ってるのは何故でしょう?
(対応していないバージョンのC#を利用する人も、その方が高速・妥当なコードも稀だと思うのですが…)
多くの日本語解説サイトで DirectoryInfoではなくDirectoryを、EnumerateFilesでなくGetFilesを使ってるのは何故でしょう?
(対応していないバージョンのC#を利用する人も、その方が高速・妥当なコードも稀だと思うのですが…)
297デフォルトの名無しさん (ワッチョイ 9f43-AglQ)
2020/04/13(月) 19:55:51.75ID:i5ardRu40 >>296
> 拡張メソッドがあるのに、拡張プロパティなどが無いのは何故でしょう?
Why No Extension Properties?
https://blogs.msdn.microsoft.com/ericlippert/2009/10/05/why-no-extension-properties/
> 多くの日本語解説サイトで
解説を書いてるヤツらに聞け
> 拡張メソッドがあるのに、拡張プロパティなどが無いのは何故でしょう?
Why No Extension Properties?
https://blogs.msdn.microsoft.com/ericlippert/2009/10/05/why-no-extension-properties/
> 多くの日本語解説サイトで
解説を書いてるヤツらに聞け
298デフォルトの名無しさん (ワッチョイ 622c-N9MB)
2020/04/13(月) 20:03:19.03ID:Bv/vlgUb0 拡張プロパティの類はC#10かもうちょい先ぐらいで追加されそう
https://ufcpp.net/blog/2018/7/pickuproslyn0714/
https://ufcpp.net/blog/2018/7/pickuproslyn0714/
299デフォルトの名無しさん (ドコグロ MM7a-juGi)
2020/04/13(月) 20:08:08.68ID:Wzp4v7WxM300デフォルトの名無しさん (ワッチョイ 36eb-AglQ)
2020/04/13(月) 20:26:56.25ID:o+L/gyE50301デフォルトの名無しさん (ワッチョイ 0b17-AglQ)
2020/04/13(月) 20:49:56.31ID:4T6PL/Gc0 >>298
リフレクション使うとどんな挙動になるんだろ
リフレクション使うとどんな挙動になるんだろ
302デフォルトの名無しさん (ワッチョイ 622c-N9MB)
2020/04/13(月) 21:10:08.00ID:Bv/vlgUb0303デフォルトの名無しさん (アウアウウー Sabb-juGi)
2020/04/13(月) 21:18:16.05ID:VqvNVGMOa >>302
そういう失敗例ならScalaでも見てみたら
そういう失敗例ならScalaでも見てみたら
304デフォルトの名無しさん (ワッチョイ 6233-AglQ)
2020/04/13(月) 23:30:22.44ID:IBaPMQxT0 Taskとasync/awaitの使い方について質問です
await Task.Delay(100);
と
task.Wait();
を組み合わせるとデッドロックすると色々なページで書かれていますが
試したらデッドロックしませんでした
https://ideone.com/d6BWCC
ConfigureAwaitもよく分かっていません(コンテキストとかマーシャリングとかも・・・)
https://docs.microsoft.com/ja-jp/dotnet/api/system.threading.tasks.task.configureawait?view=netframework-4.8
なぜデッドロックしなかったのか教えてください
await Task.Delay(100);
と
task.Wait();
を組み合わせるとデッドロックすると色々なページで書かれていますが
試したらデッドロックしませんでした
https://ideone.com/d6BWCC
ConfigureAwaitもよく分かっていません(コンテキストとかマーシャリングとかも・・・)
https://docs.microsoft.com/ja-jp/dotnet/api/system.threading.tasks.task.configureawait?view=netframework-4.8
なぜデッドロックしなかったのか教えてください
305デフォルトの名無しさん (ワッチョイ f7c3-RPGu)
2020/04/13(月) 23:33:06.25ID:LODcFAHq0 >>304
guiでWaitメソッドを使ってみて
guiでWaitメソッドを使ってみて
306304 (ワッチョイ 6233-AglQ)
2020/04/14(火) 00:04:17.51ID:wwnZT3mo0 WPFで適当なボタン作ってクリックイベント内で同じようなことをしたらフリーズしました
GUIじゃなければ起きない、とかでしょうか
CUIだとフリーズせず実行できてしまいます
GUIじゃなければ起きない、とかでしょうか
CUIだとフリーズせず実行できてしまいます
307デフォルトの名無しさん (ワッチョイ 8eda-KRXG)
2020/04/14(火) 02:23:36.56ID:hp+6QaJX0 ・UIスレッドは1つしかない
・GUIアプリの場合、await後は生成元のスレッドに戻ろうとする
・ところがUIスレッドはawaitしている
・お互い待ち合うことでデッドロック発生
CUIの場合はawait後に元のスレッドに戻らないのでデッドロックしない。
GUIでもAsync1、Async2のメソッド内で
await Task.Delay(100).ConfigureAwait(false);
とすればデッドロックしないが、Async1やAsync2でDelay後にUI部品触ると(ボタンのキャプション変えるとか)落ちる
・GUIアプリの場合、await後は生成元のスレッドに戻ろうとする
・ところがUIスレッドはawaitしている
・お互い待ち合うことでデッドロック発生
CUIの場合はawait後に元のスレッドに戻らないのでデッドロックしない。
GUIでもAsync1、Async2のメソッド内で
await Task.Delay(100).ConfigureAwait(false);
とすればデッドロックしないが、Async1やAsync2でDelay後にUI部品触ると(ボタンのキャプション変えるとか)落ちる
308304 (ワッチョイ 6233-AglQ)
2020/04/14(火) 09:01:56.56ID:wwnZT3mo0 なんとなくわかった気がしました
SynchronizationContext.Currentで取得できる同期コンテキストでawaitの動作が変わってるみたいで
CUIはもともとnull、WPFは
await Task.Delay(100).ConfigureAwait(false);
のあとはnullになるようです
一度nullにしてしまえば
await Task.Delay(100);
Async().Wait();
とやってもフリーズしませんでした
というかCUIと同じようにawait毎にスレッドがコロコロ変わるようになります
逆にCUIでも同期コンテキストを設定してしまえばデッドロックも起こせるみたいです
SynchronizationContext.SetSynchronizationContext(new WindowsFormsSynchronizationContext());
とやったらCUIでもフリーズしました
普通のnew SynchronizationContext()ではフリーズしないので、知らない仕掛けがありそうですが
同期コンテキストの作られ方によってawaitの動作が変わるから
デッドロックが起きたり起きなかったりする、という感じがしました
SynchronizationContext.Currentで取得できる同期コンテキストでawaitの動作が変わってるみたいで
CUIはもともとnull、WPFは
await Task.Delay(100).ConfigureAwait(false);
のあとはnullになるようです
一度nullにしてしまえば
await Task.Delay(100);
Async().Wait();
とやってもフリーズしませんでした
というかCUIと同じようにawait毎にスレッドがコロコロ変わるようになります
逆にCUIでも同期コンテキストを設定してしまえばデッドロックも起こせるみたいです
SynchronizationContext.SetSynchronizationContext(new WindowsFormsSynchronizationContext());
とやったらCUIでもフリーズしました
普通のnew SynchronizationContext()ではフリーズしないので、知らない仕掛けがありそうですが
同期コンテキストの作られ方によってawaitの動作が変わるから
デッドロックが起きたり起きなかったりする、という感じがしました
309デフォルトの名無しさん (ワッチョイ 7b0c-AglQ)
2020/04/14(火) 11:04:24.75ID:27IsOs6K0 WinformsやWPFは各々フレームワークのコンポーネントの初回呼び出しで
それぞれ専用の同期コンテキストを自動で現在のスレッドに設定して
await 式から自動生成されたコードで現在の同期コンテキストのSendやPostを呼び出してるって割と単純な話だわよ
それぞれ専用の同期コンテキストを自動で現在のスレッドに設定して
await 式から自動生成されたコードで現在の同期コンテキストのSendやPostを呼び出してるって割と単純な話だわよ
310デフォルトの名無しさん (ワッチョイ 7b59-vo9w)
2020/04/14(火) 21:47:37.07ID:kOEIvzYK0 質問失礼致します。
ttps://xr-hub.com/archives/20326
の2番目のサンプルコード「Person.cs」に
public Person(string name, Job job)
という行があるのですが、これは関数ですか?
publicの後の型やvoidを省略した時、どういう扱いになっているのでしょうか?
(暗黙的にvoidなど)
初歩的すぎる質問ですが知恵をお借し頂ければと思います。
よろしくお願い致します。
ttps://xr-hub.com/archives/20326
の2番目のサンプルコード「Person.cs」に
public Person(string name, Job job)
という行があるのですが、これは関数ですか?
publicの後の型やvoidを省略した時、どういう扱いになっているのでしょうか?
(暗黙的にvoidなど)
初歩的すぎる質問ですが知恵をお借し頂ければと思います。
よろしくお願い致します。
311デフォルトの名無しさん (ワッチョイ 6763-Ib7D)
2020/04/14(火) 21:49:20.96ID:LYeRKBcY0 >>310
コンストラクタで検索してみよう
コンストラクタで検索してみよう
312デフォルトの名無しさん (ワッチョイ d701-P/Zs)
2020/04/14(火) 21:52:06.64ID:LIgN/yKN0313デフォルトの名無しさん (ワッチョイ 7b59-vo9w)
2020/04/14(火) 22:02:45.41ID:kOEIvzYK0314デフォルトの名無しさん (ワッチョイ a201-vZv9)
2020/04/14(火) 22:48:21.91ID:GtUt/+gx0 コンストラクタが関数じゃないだとっ?
315デフォルトの名無しさん (ワッチョイ 62ad-0DgC)
2020/04/14(火) 23:10:59.52ID:e1S+5JbE0 >>312
え?
え?
316デフォルトの名無しさん (ワッチョイ ebb2-zja/)
2020/04/14(火) 23:32:09.30ID:a7j1JMim0 >>313
コンストラクタ知らないとか煽り抜きで基礎からやり直せ。この先すぐに行き止まりやぞ
コンストラクタ知らないとか煽り抜きで基礎からやり直せ。この先すぐに行き止まりやぞ
317デフォルトの名無しさん (ワッチョイ 06f2-shd/)
2020/04/14(火) 23:38:54.68ID:aqCEjjHy0 ゆっくり進んでいけばいいさ
318デフォルトの名無しさん (ワッチョイ d7ac-DNPS)
2020/04/15(水) 00:53:54.59ID:fYr2Vm730 コンストラクタは言語によってちょこちょこ違いがあるからなあ
それによって作法も、チームとかのなかでの使い方も違うんだよな
それによって作法も、チームとかのなかでの使い方も違うんだよな
319デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
2020/04/15(水) 06:29:23.91ID:ElrUDxqt0 初心者で妥当な用語もよく分からないのですが、
Sytem.IO.File全体を Sytem.IO.FileInfoで上書きしたり
Sytem.IO.File全体を FileUtilsにリネームして利用ってできるでしょうか
多分歴史的経緯とかなんでしょうが、名前も機能も違和感ある・・・あるよね?
Sytem.IO.File全体を Sytem.IO.FileInfoで上書きしたり
Sytem.IO.File全体を FileUtilsにリネームして利用ってできるでしょうか
多分歴史的経緯とかなんでしょうが、名前も機能も違和感ある・・・あるよね?
320デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
2020/04/15(水) 06:30:19.71ID:ElrUDxqt0 正system
誤sytem
誤sytem
321デフォルトの名無しさん (ワッチョイ 5701-xSTm)
2020/04/15(水) 07:39:24.57ID:0X0pe0WE0322デフォルトの名無しさん (ブーイモ MMbb-XMn9)
2020/04/15(水) 07:54:03.68ID:HIqtt51zM マニュアル読むならこのスレには来ないよ
323今度はビルドとはとか言い出すんだろうか? (ドコグロ MMbf-A2g6)
2020/04/15(水) 07:59:57.33ID:WVx1tERFM 進歩しろってことだろ
>>322には一生無理っぽいが…
>>322には一生無理っぽいが…
324デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
2020/04/15(水) 08:16:40.55ID:ElrUDxqt0325デフォルトの名無しさん (ワッチョイ 9f63-jdMw)
2020/04/15(水) 11:11:56.53ID:O8tgepsJ0 >>319
名前も機能もべつに違和感ないけど
名前も機能もべつに違和感ないけど
326デフォルトの名無しさん (ワッチョイ d763-oiAQ)
2020/04/15(水) 11:38:37.86ID:hXBJaVw20327デフォルトの名無しさん (アウアウウー Sa1b-V/21)
2020/04/15(水) 12:23:21.76ID:4U/dMrxba >>319
あなたの違和感をなくすために他人に違和感を与えるコードを書いてはダメでしょうw
そういう尾崎豊的な「世の中間違ってる!」は義務教育で卒業しておけよw
インフラはみんなが慣れ親しんで知識を共有していることに意味があるんだよw
変なエイリアスを使うことはあなたの「俺流」を理解する手間を読む人に押し付けることになる。
それは1年後の自分自身かもしれないよw
あなたの違和感をなくすために他人に違和感を与えるコードを書いてはダメでしょうw
そういう尾崎豊的な「世の中間違ってる!」は義務教育で卒業しておけよw
インフラはみんなが慣れ親しんで知識を共有していることに意味があるんだよw
変なエイリアスを使うことはあなたの「俺流」を理解する手間を読む人に押し付けることになる。
それは1年後の自分自身かもしれないよw
328デフォルトの名無しさん (ワッチョイ d7ac-DNPS)
2020/04/15(水) 15:49:28.85ID:fYr2Vm730 自分だけのコードなら好きにすればとしか
チームで共有するならレビューしろとしか
チームで共有するならレビューしろとしか
329デフォルトの名無しさん (ワッチョイ 372c-+ZVK)
2020/04/15(水) 23:14:10.59ID:erSE2P+N0 添付プロパティがあるじゃない
330デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
2020/04/16(木) 00:47:09.81ID:97EKYXOu0 まさにそういう話で、(大多数が慣れ親しんだ知識である)自然言語で full path of a file だから
(FileInfo) hoge.FullName より
(File) file.FullPath の方が読みやすく、知識なく利用しやすくない? と思ったんだ
自分が知らないだけでFileInfoやFullNameの方が妥当な理由あるのかな
(FileInfo) hoge.FullName より
(File) file.FullPath の方が読みやすく、知識なく利用しやすくない? と思ったんだ
自分が知らないだけでFileInfoやFullNameの方が妥当な理由あるのかな
331デフォルトの名無しさん (アウアウウー Sa1b-7wDT)
2020/04/16(木) 00:49:55.71ID:PmElPVF7a 質問です。
visual studio2013 のWEBフォーム(.aspx)を使用しています。
以下のようなフォームを作りたいです。 どうやってつくったらよいでしょうか?
▼コンビニ ←選択すると▼マークになり、折り畳みのチェックボックスリストが出る
■セブンイレブン ←選択するとレ点でなく、□を塗りつぶす
□ローソン
■ファミリーマート
△ショッピングモール ←選択しないときは△マークでリストは折りたたまれている
△スーパー
よろしくお願いいたします。
visual studio2013 のWEBフォーム(.aspx)を使用しています。
以下のようなフォームを作りたいです。 どうやってつくったらよいでしょうか?
▼コンビニ ←選択すると▼マークになり、折り畳みのチェックボックスリストが出る
■セブンイレブン ←選択するとレ点でなく、□を塗りつぶす
□ローソン
■ファミリーマート
△ショッピングモール ←選択しないときは△マークでリストは折りたたまれている
△スーパー
よろしくお願いいたします。
332デフォルトの名無しさん (ワッチョイ d7ac-DNPS)
2020/04/16(木) 00:52:31.21ID:5emHbHZx0 チーム内でそれを浸透させる実力があるならいいんじゃね
俺はデフォルト推奨派なので、それだけの理由なら無意味な改変に見えるので
、それは賛成しないがな
「俺が見易い」は「皆が見易い」ではない
俺はデフォルト推奨派なので、それだけの理由なら無意味な改変に見えるので
、それは賛成しないがな
「俺が見易い」は「皆が見易い」ではない
333デフォルトの名無しさん (ワッチョイ 5701-xSTm)
2020/04/16(木) 00:52:46.91ID:tiZKLZWE0 ベースはアコーディオンかな?
334デフォルトの名無しさん (ワッチョイ 5701-xSTm)
2020/04/16(木) 00:56:55.23ID:tiZKLZWE0 CreateFontがMFCではCreateFontIndirect
でオーヴァーライドされている事を
知った時の驚き。😵
世の中広いからそういう常識の所も
あるのでしょう❤
でオーヴァーライドされている事を
知った時の驚き。😵
世の中広いからそういう常識の所も
あるのでしょう❤
335デフォルトの名無しさん (ワッチョイ d763-oiAQ)
2020/04/16(木) 01:31:46.69ID:kjXrQDZb0 windowsならpathってだけで他システムでもpathかどうか?
組み込み系OSだったらディレクトリ構造持ってないようなやつあったりしないかね?全然しらんけど
つうかその程度なら332と同じく公式に準拠する
IDEがヘルプ付きで候補出してくれるんだし、リファレンスもあるんだから困るほどのことじゃない
あくまでもプログラムであって自然言語じゃない
組み込み系OSだったらディレクトリ構造持ってないようなやつあったりしないかね?全然しらんけど
つうかその程度なら332と同じく公式に準拠する
IDEがヘルプ付きで候補出してくれるんだし、リファレンスもあるんだから困るほどのことじゃない
あくまでもプログラムであって自然言語じゃない
336デフォルトの名無しさん (ワッチョイ ff2c-8Jcx)
2020/04/16(木) 02:36:44.98ID:tywb42E30 PowerShell では、FullName
$files = ls -File
echo $files[ 0 ].FullName
$files = ls -File
echo $files[ 0 ].FullName
337デフォルトの名無しさん (ワッチョイ 1701-wIxw)
2020/04/16(木) 07:33:52.84ID:9ICqslwr0 共有フォルダに置いてる実行ファイルで、一人が起動している時に別の人が起動したら処理中ですとお断りメッセージ出したいのですが、どういう方法で実現できるでしょうか?
DBでフラグ監理しようかとも思っているのですが、世間様はどうしているのかなと思い
DBでフラグ監理しようかとも思っているのですが、世間様はどうしているのかなと思い
338デフォルトの名無しさん (ワッチョイ ff2c-8Jcx)
2020/04/16(木) 07:47:41.61ID:tywb42E30 共有フォルダ内に、ファイルを置いて、それに記録すれば?
339デフォルトの名無しさん (ワッチョイ d733-YvxL)
2020/04/16(木) 08:37:52.82ID:vjXf34hg0 ロックファイル的なものを起動時に作成・チェックさせるとかかねぇ?
異常終了したりしてロックファイルが残った時が面倒だけど
そもそも共有フォルダに実行ファイルを置いて、それを起動するって運用が微妙な気がするけど
異常終了したりしてロックファイルが残った時が面倒だけど
そもそも共有フォルダに実行ファイルを置いて、それを起動するって運用が微妙な気がするけど
340デフォルトの名無しさん (オッペケ Sr8b-DNPS)
2020/04/16(木) 09:47:16.73ID:ADqfPc91r それな
ファイルおいたとこで実行ユーザはローカルとか、なにそれって感じ
なんでサーバにしないのとかね
ファイルおいたとこで実行ユーザはローカルとか、なにそれって感じ
なんでサーバにしないのとかね
341デフォルトの名無しさん (ワッチョイ d790-eJAq)
2020/04/16(木) 10:45:00.68ID:+RUJOV4w0 Unix環境とかならファイルオープン時に共有モード指定できないから、ロックファイルを「作成」できるかで排他制御するけど、
Windows環境なら共有モード指定できるから、「排他モードでオープン」できるかで排他制御できないの?
そうすれば、ロックの解放は単にファイルハンドルを閉じるだけでロックファイルを削除する必要はない。
で、異常終了してプロセスが終了した場合はOSがプロセスによって開かれてたファイルハンドルをクローズしてくれるので、
自動的にロックも解放されるってことにはならないの??
Windows環境なら共有モード指定できるから、「排他モードでオープン」できるかで排他制御できないの?
そうすれば、ロックの解放は単にファイルハンドルを閉じるだけでロックファイルを削除する必要はない。
で、異常終了してプロセスが終了した場合はOSがプロセスによって開かれてたファイルハンドルをクローズしてくれるので、
自動的にロックも解放されるってことにはならないの??
342デフォルトの名無しさん (ワッチョイ d790-eJAq)
2020/04/16(木) 11:06:22.69ID:+RUJOV4w0 途中共有モードを無視するような輩がいたらあれだけど、とりあえず全部Windowsで揃えてSMBで共有すればそれでいけそうな気がする
343デフォルトの名無しさん (ワッチョイ 9fad-10V6)
2020/04/16(木) 11:06:44.41ID:X8YLxQCs0 設計が悪い
344デフォルトの名無しさん (ワッチョイ 5701-xSTm)
2020/04/16(木) 11:07:10.39ID:tiZKLZWE0 理論通りに動けば良いなぁ
なおopenfiles ってコマンドで強制解除出来る
なおopenfiles ってコマンドで強制解除出来る
345デフォルトの名無しさん (ワッチョイ d790-eJAq)
2020/04/16(木) 11:17:40.23ID:+RUJOV4w0 そうすれば、アプリ起動時にnew FileStream(特定のファイル、FileShare.None) アプリ終了時にStream.Closeの2行で実装終了
Windows最強
Windows最強
346デフォルトの名無しさん (ワッチョイ d733-YvxL)
2020/04/16(木) 11:28:29.69ID:vjXf34hg0 >>345
それって共有フォルダ側が安いNAS(≒samba)でも使えるの?
それって共有フォルダ側が安いNAS(≒samba)でも使えるの?
347デフォルトの名無しさん (ワッチョイ d790-eJAq)
2020/04/16(木) 11:51:08.70ID:+RUJOV4w0 >>346
それは知らない。
すべては要件次第。あくまで全部Windowsで揃えられる場合の一番簡単な実装を示しただけ。
安いNASでダメだったら、君のいうロックファイルのやり方でやればいい。ただし、君の方法もひょっとしたら安いNASで「ファイルの存在確認とファイルなければ作成」をアトミックにやってくれないSMBの実装があって使えない可能性もあるので。
それは知らない。
すべては要件次第。あくまで全部Windowsで揃えられる場合の一番簡単な実装を示しただけ。
安いNASでダメだったら、君のいうロックファイルのやり方でやればいい。ただし、君の方法もひょっとしたら安いNASで「ファイルの存在確認とファイルなければ作成」をアトミックにやってくれないSMBの実装があって使えない可能性もあるので。
348今度はビルドとはとか言い出すんだろうか? (ドコグロ MMbf-A2g6)
2020/04/16(木) 12:10:19.37ID:7ingXuoIM >>339
> そもそも共有フォルダに実行ファイルを置いて、それを起動するって運用が微妙な気がするけど
バージョンアップの手間を省きたいとかでしょ
Web化しろとかの話もあるだろうけどそこまで工数かけられないとか普通にあると思う
> そもそも共有フォルダに実行ファイルを置いて、それを起動するって運用が微妙な気がするけど
バージョンアップの手間を省きたいとかでしょ
Web化しろとかの話もあるだろうけどそこまで工数かけられないとか普通にあると思う
349デフォルトの名無しさん (アウアウウー Sa1b-V/21)
2020/04/16(木) 12:11:00.19ID:qm5c5Rqxa >>337
微妙に要件と違うけど、昔のアドビのアプリは同一ネットワーク内のPCでは
同じプロダクトキーでアクティベートされたソフトは同時に起動できなかった
あれと同じ仕組みを使うことは可能じゃないか
具体的にどういう仕組みか知らんけどw
微妙に要件と違うけど、昔のアドビのアプリは同一ネットワーク内のPCでは
同じプロダクトキーでアクティベートされたソフトは同時に起動できなかった
あれと同じ仕組みを使うことは可能じゃないか
具体的にどういう仕組みか知らんけどw
350デフォルトの名無しさん (ワッチョイ 5701-xSTm)
2020/04/16(木) 12:45:50.28ID:tiZKLZWE0 udpでマルチキャストする
351337 (ワッチョイ 1701-wIxw)
2020/04/16(木) 18:51:55.07ID:9ICqslwr0 DBにログインIDと開始時刻を記録して処理が成功したら記録削除、失敗してたら20分経過で無効情報で良いかと思ってます
処理が20分超えたらアウトというイケてない部分をどうしようかとも思ってます
だったらファイル管理でも良いかなと思ってますが
処理が20分超えたらアウトというイケてない部分をどうしようかとも思ってます
だったらファイル管理でも良いかなと思ってますが
352デフォルトの名無しさん (ワッチョイ 57ad-7Qxr)
2020/04/16(木) 19:13:42.88ID:jOE4Vo+O0 DBに処理対象を一意な文字列にして、ユーザIDとIPアドレスをもってロックを確保しに行ってるな。
弾かれた側に「誰々がどこでロックしてるから諦めるか直談判しにいけ」ってメッセージにしてる。
ロックが外れる時間は2分にしてるけど、ロック掛けてる側が、30秒ごとに延長するように更新してる。
トランザクションは増えるけど、強制終了してロックが残ったのを外す方が手間。
20分待ってくれる方が少ないと思うぞ。
1000人ぐらいが同時に使ってるが、それほど負荷は無い。ジャーナルの残し方だけ気にした方がいいぐらいか。
弾かれた側に「誰々がどこでロックしてるから諦めるか直談判しにいけ」ってメッセージにしてる。
ロックが外れる時間は2分にしてるけど、ロック掛けてる側が、30秒ごとに延長するように更新してる。
トランザクションは増えるけど、強制終了してロックが残ったのを外す方が手間。
20分待ってくれる方が少ないと思うぞ。
1000人ぐらいが同時に使ってるが、それほど負荷は無い。ジャーナルの残し方だけ気にした方がいいぐらいか。
353デフォルトの名無しさん (ワッチョイ 9f01-7Des)
2020/04/16(木) 22:10:16.88ID:phPWx1q30 >>351
タイムアウトを含めて失敗したら即リソースを解放すればいいだけでは?
あと排他制御が必要なリソースの状態を管理するテーブルと
そのリソースを誰が使ってるかみたいな情報を管理するテーブルは別にしたほうがいいよ
タイムアウトを含めて失敗したら即リソースを解放すればいいだけでは?
あと排他制御が必要なリソースの状態を管理するテーブルと
そのリソースを誰が使ってるかみたいな情報を管理するテーブルは別にしたほうがいいよ
354337 (ワッチョイ 1701-wIxw)
2020/04/17(金) 07:33:58.48ID:sST11acE0 >>353
処理失敗とかイベント取れる所なら良いのですがパソコンがネットワークからいきなり外れた時とかどうしようかなと
処理失敗とかイベント取れる所なら良いのですがパソコンがネットワークからいきなり外れた時とかどうしようかなと
355デフォルトの名無しさん (ワッチョイ 9f01-7Des)
2020/04/17(金) 15:28:13.52ID:xgpGiYXu0356デフォルトの名無しさん (ワッチョイ d777-Ho7r)
2020/04/17(金) 23:54:48.06ID:66fHRI6x0 chartのX軸のスクロールバーを動かしたときのイベントハンドラ的なものってありますか?
具体的には、縦軸(Y軸)の範囲を表示されている範囲内の最大値と最小値に逐次変更したいです。
具体的には、縦軸(Y軸)の範囲を表示されている範囲内の最大値と最小値に逐次変更したいです。
357デフォルトの名無しさん (ワッチョイ d777-Ho7r)
2020/04/18(土) 15:39:00.86ID:9PsozTHm0358デフォルトの名無しさん (アウアウウー Sa1b-7wDT)
2020/04/18(土) 23:09:11.85ID:fgVpQ9I4a359デフォルトの名無しさん (ワッチョイ 57ad-DoiI)
2020/04/18(土) 23:47:30.29ID:Fpx5gr7r0 >>358
cssで装飾したら?
cssで装飾したら?
360デフォルトの名無しさん (ワッチョイ 9f8a-ycCE)
2020/04/19(日) 17:56:07.02ID:a5Bxo0wQ0 FormにWebboewserコントロールを張り付けて ↓のコードコピペしたのですがThis がFrom1を参照しているのでエラーになります。
正しく使うのはうすればいいのでしょうか?
https://todosoft.net/blog/?p=380
正しく使うのはうすればいいのでしょうか?
https://todosoft.net/blog/?p=380
361デフォルトの名無しさん (ワッチョイ 5701-lL3q)
2020/04/19(日) 18:02:11.94ID:jRRmPQvY0 今時、IE7ベース?
cefsharp使ったら?
cefsharp使ったら?
362デフォルトの名無しさん (ワッチョイ 9f8a-ycCE)
2020/04/19(日) 18:32:01.51ID:a5Bxo0wQ0 今時WebBrowserコントロールは古いんですね
とりあえず、これは勉強の為のなので、WebBrowserで大丈夫です。
上記コードの this を webBrowser1 に置換すれば問題なく動きますが、thisのまま使う場合はどのようなコードになるのでしょうか?
とりあえず、これは勉強の為のなので、WebBrowserで大丈夫です。
上記コードの this を webBrowser1 に置換すれば問題なく動きますが、thisのまま使う場合はどのようなコードになるのでしょうか?
363デフォルトの名無しさん (アウアウウー Sa1b-V/21)
2020/04/19(日) 19:46:35.97ID:E7TwXw1va ちょっと何言ってるのか
364デフォルトの名無しさん (アウアウウー Sa1b-LzhE)
2020/04/19(日) 19:56:24.71ID:3Oe7CVmea >>362
リンク先のソースのメソッドは、おそらくはFormではなくWebBrowserを継承したコントロールに書くメソッド
WinForms標準のコントロール自体に機能追加することで、あちこちのFormでWebBrowserを使うつどそういうソースを書かなくて済むようにしてる
初学者でカスタムコントロールの作りかたとか未学習なら「this を webBrowser1に置き換え」で回避してよいと思う
リンク先のソースのメソッドは、おそらくはFormではなくWebBrowserを継承したコントロールに書くメソッド
WinForms標準のコントロール自体に機能追加することで、あちこちのFormでWebBrowserを使うつどそういうソースを書かなくて済むようにしてる
初学者でカスタムコントロールの作りかたとか未学習なら「this を webBrowser1に置き換え」で回避してよいと思う
365デフォルトの名無しさん (ワッチョイ 9f8a-ycCE)
2020/04/19(日) 21:42:29.85ID:a5Bxo0wQ0366デフォルトの名無しさん (ワッチョイ 779b-+5sX)
2020/04/21(火) 13:34:05.32ID:3bJr7zNG0 Form1に以下のような構造体を作ったんです。
// ----------通知方法の構造体--------------------
public struct Nortification
{
public bool OpenBrowser;
public bool MessageboxShow;
public bool ToolchipBaloonShow;
}
次にメンバ変数として以下を定義しました
static Nortification _nort = new Nortification(); //構造体のインスタンス
で、プロパティを作ったんです
public static Nortification nort
{
get
{
return _nort;
}
set
{
_nort = value;
}
}
ところが、このプロパティをForm2で書き込もうとすると
Form1.nort.OpenBrowser = true;
「変数ではないため Form1.nort の戻り値を変更出来ません」とエラーになります。
// ----------通知方法の構造体--------------------
public struct Nortification
{
public bool OpenBrowser;
public bool MessageboxShow;
public bool ToolchipBaloonShow;
}
次にメンバ変数として以下を定義しました
static Nortification _nort = new Nortification(); //構造体のインスタンス
で、プロパティを作ったんです
public static Nortification nort
{
get
{
return _nort;
}
set
{
_nort = value;
}
}
ところが、このプロパティをForm2で書き込もうとすると
Form1.nort.OpenBrowser = true;
「変数ではないため Form1.nort の戻り値を変更出来ません」とエラーになります。
367デフォルトの名無しさん (ワッチョイ 779b-+5sX)
2020/04/21(火) 13:38:13.11ID:3bJr7zNG0 >>366の続き
しかし、以下のようにするとエラーは消えました。
Nortification nt = new Nortification();
nt = Form1.nort;
nt.OpenBrowser = true;
Form1.nort = nt;
いったん別のインスタンスを作ってそこに構造体ごとコピーし、
コピーのメンバなら値を設定出来ました。
最後に元のインスタンスへコピーし直します。
なぜ元の構造体のメンバに直接値を書き込めないのでしょうか?
そもそも構造体の使い方が間違っていますか?
しかし、以下のようにするとエラーは消えました。
Nortification nt = new Nortification();
nt = Form1.nort;
nt.OpenBrowser = true;
Form1.nort = nt;
いったん別のインスタンスを作ってそこに構造体ごとコピーし、
コピーのメンバなら値を設定出来ました。
最後に元のインスタンスへコピーし直します。
なぜ元の構造体のメンバに直接値を書き込めないのでしょうか?
そもそも構造体の使い方が間違っていますか?
368デフォルトの名無しさん (JP 0H8f-nkQT)
2020/04/21(火) 13:51:21.58ID:cdjEy/7BH >>367
C#入門者が必ず嵌るポイント
c# 値型と参照型 とかでググれば腐るほど出てくる
構造体は特性をよく理解した上でパフォーマンス上のメリットがある場合のみ使うもの
今は忘れてクラスだけ使ってればいい
C#入門者が必ず嵌るポイント
c# 値型と参照型 とかでググれば腐るほど出てくる
構造体は特性をよく理解した上でパフォーマンス上のメリットがある場合のみ使うもの
今は忘れてクラスだけ使ってればいい
369デフォルトの名無しさん (ワッチョイ 37b2-BRXw)
2020/04/21(火) 15:53:17.78ID:1MDMdwK80 このメモリ大容量時代に構造体プログラミングなんてすなや
370デフォルトの名無しさん (ワッチョイ 9fad-7eNI)
2020/04/21(火) 16:02:20.66ID:LjsiMFkA0 必要なとこでは必要なんだよ
371デフォルトの名無しさん (オッペケ Sr8b-s6iC)
2020/04/21(火) 16:39:28.13ID:tax3JV1pr でもまあここでは要らないわな
372デフォルトの名無しさん (ワッチョイ 9fad-7eNI)
2020/04/21(火) 16:39:46.61ID:LjsiMFkA0 そだね
373デフォルトの名無しさん (ワッチョイ 779b-+5sX)
2020/04/21(火) 16:44:50.57ID:3bJr7zNG0 おっしゃるとおりクラスに変更したところエラーは出なくなりました。
ググると以下のページのような記述がありました
https://smdn.jp/programming/netfx/valuetype_referencetype/#value_type_property
値型では代入時にコピーが作成されますが、値型のプロパティやインデクサから値を
取得しようとする場合も同様にコピーが作成されます。
値型のプロパティ・インデクサはインスタンスそのものではなくインスタンスのコピーを
返すことから、直接インスタンスを変更することができません。
そのため、次の例のように値型のプロパティを直接変更しようとするとコンパイルエラーとなります。
参照型では変更しようとするインスタンスを参照によって取得することができるため、
コンパイルエラーとはなりません。
>値型のプロパティはインスタンスそのものではなくインスタンスのコピーを返す
ということなのでやはり構造体の型をプロパティにするのは使い勝手が悪そうですね
いっそインスタンス作成時にpublicにしたほうがいいかもと思いました
ググると以下のページのような記述がありました
https://smdn.jp/programming/netfx/valuetype_referencetype/#value_type_property
値型では代入時にコピーが作成されますが、値型のプロパティやインデクサから値を
取得しようとする場合も同様にコピーが作成されます。
値型のプロパティ・インデクサはインスタンスそのものではなくインスタンスのコピーを
返すことから、直接インスタンスを変更することができません。
そのため、次の例のように値型のプロパティを直接変更しようとするとコンパイルエラーとなります。
参照型では変更しようとするインスタンスを参照によって取得することができるため、
コンパイルエラーとはなりません。
>値型のプロパティはインスタンスそのものではなくインスタンスのコピーを返す
ということなのでやはり構造体の型をプロパティにするのは使い勝手が悪そうですね
いっそインスタンス作成時にpublicにしたほうがいいかもと思いました
374デフォルトの名無しさん (アウアウウー Sa1b-V/21)
2020/04/21(火) 16:56:16.12ID:K2Bh67Tta >>373
コードを書く側の立場で考えると
>構造体の型をプロパティにするのは使い勝手が悪そう
これはむしろ逆の場合が多いと思うよ。
考えてもみてよ。
プロパティーの値が変更された時の処理をプログラマは普通プロパティーのセッターに書く。
ゲッター経由でプロパティーが実質的に変更されてしまう可能性があるとしたら?
コードを書く側の立場で考えると
>構造体の型をプロパティにするのは使い勝手が悪そう
これはむしろ逆の場合が多いと思うよ。
考えてもみてよ。
プロパティーの値が変更された時の処理をプログラマは普通プロパティーのセッターに書く。
ゲッター経由でプロパティーが実質的に変更されてしまう可能性があるとしたら?
375デフォルトの名無しさん (ワッチョイ bfda-ycCE)
2020/04/21(火) 17:27:49.13ID:2AP1dLJq0 もしかして: notification
376デフォルトの名無しさん (ワッチョイ ff2d-QsZ8)
2020/04/21(火) 17:34:55.97ID:Q9kb1Yoh0 値型で高速化の話が出てきたついでに教えて欲しいんだけどさあ
下のそれぞれの変数って、スタックとヒープどっちにメモリが確保されてるの?これであってる???
静的なint型の変数・・・・スタック
静的な構造体・・・・スタック
mainメソッド内に宣言されたint型の変数・・・・ヒープ
mainメソッド内に宣言された構造体・・・・ヒープ
インスタンス内で宣言されたint型変数・・・・ヒープ
インスタンス内で宣言された構造体・・・・ヒープ
下のそれぞれの変数って、スタックとヒープどっちにメモリが確保されてるの?これであってる???
静的なint型の変数・・・・スタック
静的な構造体・・・・スタック
mainメソッド内に宣言されたint型の変数・・・・ヒープ
mainメソッド内に宣言された構造体・・・・ヒープ
インスタンス内で宣言されたint型変数・・・・ヒープ
インスタンス内で宣言された構造体・・・・ヒープ
377デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
2020/04/21(火) 18:06:24.10ID:3Z0ku97Y0 VisualStudioプロフェッショナル版以下使用時、
プログラムの概観を素早く把握したい時ってどうするのがベストなんでしょう?
ctrl + m → o ?
逆に把握してもらいたい時はDocFXとかに頼る形になるのかな
プログラムの概観を素早く把握したい時ってどうするのがベストなんでしょう?
ctrl + m → o ?
逆に把握してもらいたい時はDocFXとかに頼る形になるのかな
378デフォルトの名無しさん (ワッチョイ d763-/zZG)
2020/04/21(火) 18:43:14.63ID:gorOElOo0 概要をさくっと把握する、にコード見ろになるの?
概要こそドキュメント、もしくはファイル先頭に概要コメントで詳細は各メソッドのコメントなりコード見ろじゃない?
docをコメントから自動生成するなら書いてある内容の粒度はコメントだろうがドキュメントだろうが変わらん
プログラマが見るならIDEで見れたほうがいい場合もあるしそうじゃないなたhtmlドキュメントみたいなのが良い場合もある
概要こそドキュメント、もしくはファイル先頭に概要コメントで詳細は各メソッドのコメントなりコード見ろじゃない?
docをコメントから自動生成するなら書いてある内容の粒度はコメントだろうがドキュメントだろうが変わらん
プログラマが見るならIDEで見れたほうがいい場合もあるしそうじゃないなたhtmlドキュメントみたいなのが良い場合もある
379デフォルトの名無しさん (ワッチョイ ff8e-eUuY)
2020/04/21(火) 18:50:11.10ID:XAeWC18v0 >>366
なんでget,setしとるの?
なんでget,setしとるの?
380デフォルトの名無しさん (JP 0H8f-nkQT)
2020/04/21(火) 18:52:56.43ID:cdjEy/7BH■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★9 [BFU★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 脳ぶっ壊れワイにおすすめの快楽手段
- 【旧Twitter】高市早苗 飲みぃのヤりぃの動画 paypayのみ [455031798]
- ジャパニーズってジャパニーズじゃん?
- 【ガチ正論】一般人「中国に規制制裁されて、『中国ムカつく』じゃなくて矛先が『許さんぞ高市』になってる奴、頭おかしいの?」 ★2 [153490809]
- ツキノワグマ vs ヒグマ vs メカヒグマ vs モスラ vs キングギドラ
- お前らの悪影響を受けて頭がおかしくなったし性格が悪くなった
