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

■ このスレッドは過去ログ倉庫に格納されています
2018/03/03(土) 15:09:05.75ID:SBEkwl3H
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part135
http://mevius.5ch.net/test/read.cgi/tech/1517749348/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2018/03/24(土) 22:57:42.79ID:ADnClyNC
>>506
コードも張らないとアドバイスできんがな
2018/03/24(土) 23:01:20.44ID:NMOsnRxi
>>507



WebRequest req_1 = null;
req_1 = WebRequest.Create(str_url);
res = req_1.GetResponse();

でWEBサーバに設置したデータを取得しています。
2018/03/24(土) 23:03:09.08ID:S2nO/hPq
>>506
https://msdn.microsoft.com/ja-jp/library/system.net.cache.httprequestcachepolicy(v=vs.110).aspx
HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
WebRequest request = WebRequest.Create(uri);
request.CachePolicy = noCachePolicy;
uriに文字列設定したら普通にビルド通るけど、他に何やってる?
2018/03/24(土) 23:04:36.74ID:NMOsnRxi
>>509
ありがとうございます。
凡ミスしてました!

using System.Net.Cache;

を別のソースファイルに書いてました、、、
2018/03/24(土) 23:07:50.50ID:bzBaKL6p
なぜいまどきWebRequest?
2018/03/24(土) 23:11:22.61ID:NMOsnRxi
エラーは消えましたが、WEBサーバ上で書き換え前の値が取得されてしまいます。
うーん、キャッシュポリシーの設定はあっているはずなのですが。
HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
request.CachePolicy = noCachePolicy;
2018/03/24(土) 23:13:30.74ID:NMOsnRxi
>>511
今ナウいのは何に使うんですか?


WEBサーバ上にはというファイルをおいてます。
[ hoge_status.dat ]
1,aaa
2,bbb
3,ccc

そして、サーバ上で「2,bbb」→「2,babaa」に
書き換えて、クライアント(C#)から上のコードを実行した時に
「2,bbb」が取得されてしまいます。
2018/03/24(土) 23:16:00.40ID:rHDBuOYV
https://code.i-harness.com/ja/q/81ef3
2018/03/24(土) 23:24:46.34ID:NMOsnRxi
ありがとうございます。
サイトに記載の内容を参考に↓のコードを書きました。


namespace ns_test
{
public class c_udoxn
{
[DllImport("WinInet.dll", PreserveSig = true, SetLastError = true)]


Error 29 The type or namespace name 'DllImportAttribute' could not be found
(are you missing a using directive or an assembly reference?)

すると今度は、DllImportAttributeが見つからないというエラーがでます。
何か間違っていますか?
2018/03/24(土) 23:27:01.58ID:NMOsnRxi
using System.Runtime.InteropServices; // DLL Import

これでエラー消えました。
2018/03/24(土) 23:32:05.55ID:NMOsnRxi
解決しました!!
ありがとうございました!
2018/03/25(日) 00:22:20.31ID:30He22WI
How can I view the allocation unit size of a NTFS partition in Windows 10?
2018/03/25(日) 02:55:25.41ID:QkJGWpF+
>>518
fsutil fsinfo ntfsinfo
2018/03/25(日) 02:58:05.04ID:Z3IDZNHN
>>511
>>513
いまだとHAPかな?
521デフォルトの名無しさん
垢版 |
2018/03/25(日) 03:08:23.05ID:eoB6ZVmc
特定のクラスのインスタンスを探したり列挙したりすることって出来ないのでしょうか?

A a = A();//オブジェクトの生成をどこかに記録するとか面倒なこと無しに
A b = A();
A c = A();
FindObjects(A).ForEach(・・・・・);//雰囲気としてはこんなことがやりたいんです
522デフォルトの名無しさん
垢版 |
2018/03/25(日) 03:09:02.83ID:eoB6ZVmc
嗚呼、今見たらnewが抜けてた・・・・
523デフォルトの名無しさん
垢版 |
2018/03/25(日) 06:50:33.94ID:ODva5YKs
コンパイラの選択次第で出来上がりの性能でそんなに変わる?
2018/03/25(日) 07:44:12.53ID:iS73Z4MS
>>521
できない
お前が言ってるのを実現してしまったら、
var a = new Message(text: "うんこ");
a.Print(); //textに渡した内容を出力する
で一行目と二行目の間にaの内容が勝手に他所から書き換えられている可能性を常に考慮しないといけなくなるんだぞ?
初心者ならピンとこないかもしれないけどね
初心者がプログラミング言語を学ぶときは常に以下のように考えることが大切
・これを作った人は自分より遥かに頭が良く経験豊富である
・普通の方法でできないのは、それが悪いことだから
2018/03/25(日) 08:04:35.72ID:vPJlyNvz
>>521
コンストラクタでどこかに記録しときゃいいだけじゃね?
任意のクラスでやりたいならコンパイラに手を入れるなりしないと無理
2018/03/25(日) 09:55:55.34ID:Z3IDZNHN
>>521
生成後、List<A> Alistにaddすれば可能。
2018/03/25(日) 10:33:10.02ID:sIW0PrXb
グローバル変数が大好きなんだな
2018/03/25(日) 10:36:47.24ID:XLrMHO3h
時代はグローバル
2018/03/25(日) 10:37:55.50ID:5WPMat6H
>>521
class A{
 public static readonry List<A> allList = new List<A>();
 public A(){
  allList.Add(this);
 }
 public void Dispose(){
  allList.Remove(this);
 }

自分ならこうやってクラス内のstaticに入れておく
2018/03/25(日) 10:40:15.38ID:BGDDphgd
>>521
参照するだけなら自分に属しているフォームやクラスは列挙できるだろ
あとは名前で探せよ
2018/03/25(日) 10:54:23.63ID:5WPMat6H
明示的にDisposeを呼ぶのが面倒というなら、
リストに入れるのを弱参照にしてデストラクタを実装すれば全自動に出来るよ
2018/03/25(日) 10:57:31.10ID:BGDDphgd
>>531
探して代入したものでDisposeやCloseもできる。インスタンスの書き換えはできない
521が何のためにやりたいかによる
2018/03/25(日) 11:09:02.92ID:Ol/c1EKt
レガシーシステムで一番困るのはグローバル変数
これ以外は簡単にリファクタリング出来るがグローバル変数だけは簡単にはいかない
2018/03/25(日) 11:20:06.56ID:vPJlyNvz
普通の知能持ってたら>>529みたいにクラス内のスタティック変数でやると思う
グローバル連呼してる奴は知能足らなさすぎじゃね?
2018/03/25(日) 11:21:28.40ID:Kz38QhUD
他言語のグローバル変数マンがpublic staticマンになる
2018/03/25(日) 11:31:07.75ID:sIW0PrXb
>>534
ただ、
UnkoWorld-●UnkoArea-●Unko
みたいな関係にしたくなったとき
それでやってると
ウンコみたいにウンコウンコになるんちゃう?
2018/03/25(日) 11:34:42.78ID:Ol/c1EKt
>>534
パブリックなら同じ
最初に書くときにらくだからって堕落して思考停止してグローバルを使うと
だんだん考える力が衰えてこういう判断ができなくなる
2018/03/25(日) 11:40:28.11ID:Ol/c1EKt
パブリックスタティック書くお^q^
グローバル連呼は知能がたらないお^q^
ぼくはかしこいんだお^q^
おっおっ^q^


これがグローバル変数を使う人間の末路です
恐ろしですね
539デフォルトの名無しさん
垢版 |
2018/03/25(日) 11:42:06.07ID:hyW7/lyL
末期やな>>538のグロ厨
2018/03/25(日) 11:42:40.12ID:sIW0PrXb
俺も一瞬いいかな?
とか思ったけどpublicにされた時点ですべてが駄目なことに気づいた
2018/03/25(日) 11:45:41.52ID:/CvrewET
具体的にどういうときにそうしたくなるか書いてあればヒントがでてくるかもしれないけど
一般的になんでもかんでもそうしたいと言うのはNGだと思う
2018/03/25(日) 11:53:10.41ID:yM5ntbb+
>>529のケースだとpublicにする必要ないよね
2018/03/25(日) 11:58:50.34ID:/CvrewET
ローカルで使い捨て目的でAを作ったとしても
明示的にdisposeしないと消えない
c++のnew deleteのメモリリーク問題を回避するためにガベージコレクションの仕組みができたのに
また逆戻りするだけ
2018/03/25(日) 12:01:37.82ID:Ol/c1EKt
privateならOKってのも短絡的だよな
独立に生成したはずのオブジェクト同士が外から見えない部分で密かに連携し合っているとか破滅の臭いがプンプンするぜ
2018/03/25(日) 12:02:42.33ID:sIW0PrXb
>>542
>>529はNG
こうやって使いたくないときもこうなっちゃうじゃん
static抱えちゃうのは悪手
2018/03/25(日) 12:10:21.24ID:/CvrewET
public じゃなかったらどうやって要素を列挙するんだよ
2018/03/25(日) 12:15:08.82ID:sIW0PrXb
>>546
多分仕様がウンコ
客と詰めきれてない
コードばっかり見てるとバカになるやつの典型
外の空気でも吸ってきたらよい
2018/03/25(日) 12:16:49.43ID:vPJlyNvz
>>546
えっ? w

まあパブリックにしても外部から書き換えられないなら大抵は問題ない
>>537とかはパブリックと言うだけで思考停止してる老害なんだろうな
2018/03/25(日) 12:20:32.55ID:/CvrewET
>>548
えじゃねーよ
考えてなかっただろ
2018/03/25(日) 12:22:41.04ID:yM5ntbb+
>>545
フレームワーク側でstaticをガンガン使ってるけどそれには文句言わないの?
551デフォルトの名無しさん
垢版 |
2018/03/25(日) 12:26:42.83ID:eoB6ZVmc
そうか、>>521で書いちゃったのが実現できるようにすると、いつまでもインスタンスへの到達可能性が残ってGCが機能しなくなるのか
全然わからなかったわ
2018/03/25(日) 12:27:48.76ID:/CvrewET
>>551
そういうこと
目的を絞った特殊な状況でしか使えない

一般的に使うのはNG
553デフォルトの名無しさん
垢版 |
2018/03/25(日) 12:29:14.40ID:hyW7/lyL
>>551
ならんわw
2018/03/25(日) 12:42:56.52ID:PVODPgu2
いつもそうだけど、本質を少しも突かない頭の悪いやり取りしかないねw

論点は>>521,>>529的な仕組みが必要になるケースがあるかどうか。
俺はないことはないと思う。

ただ、揚げ足取りかもしれんが、>>529はList<T>をそのまま公開してるのはまずい
2018/03/25(日) 13:09:44.61ID:5WPMat6H
>>554
実際やるときはさすがにprivateにしてstatic ForEachを実装するし、
ライブラリ化するならセーフティとしてリストをWeakReference<T>にしてデストラクタで自動削除するよ
ただ掲示板でそこまで長々と書く気はないだけで
556デフォルトの名無しさん
垢版 |
2018/03/25(日) 13:13:01.00ID:Tb46nDVy
指定の時刻を過ぎたらbackgroundworkerを止める仕組みを作りたいのですが
なにかおすすめの方法はありますでしょうか?
2018/03/25(日) 13:27:59.98ID:lVxRvEma
>>555
クラスの扱いの話がクラス自身を変更しちゃってる実装に違和感
2018/03/25(日) 13:51:57.79ID:JPEij3S4
>>556
それだけだとどこで時間を確認するべきかすらわからん
仕様きちんと決めてから質問して
2018/03/25(日) 13:55:31.94ID:5MzIJnBg
>>549
はあ?
そう言うイテレーター作るだけだろ w
2018/03/25(日) 14:09:46.22ID:5MzIJnBg
>>551
デストラクタでリストから外せばいいだけ
もしくはIDisposableにしてdispose( )で外すとかでもいい
2018/03/25(日) 14:39:30.42ID:HUiARVtR
>>560
参照が残った状態でデストラクタが働くの?
2018/03/25(日) 14:41:03.20ID:5WPMat6H
>>561
世の中には弱参照というものがあってな
2018/03/25(日) 15:22:13.04ID:Ol/c1EKt
そういやここ初心者スレだったか
>>548みたいなのも居るか
2018/03/25(日) 15:29:41.34ID:Zk7ZAw6P
また元の質問者蚊帳の外に置いて盛り上がっている
オレオレ仕様で議論されても誰の役にも立たないんだよ
2018/03/25(日) 15:39:34.96ID:vPJlyNvz
>>563
グローバルガーって知ったかして恥ずかしいからって粘着するなよ w
2018/03/25(日) 15:40:34.61ID:Ol/c1EKt
>>565
は?
2018/03/25(日) 15:48:44.21ID:XJO2spvZ
初心者スレでマウントするイキリオタクにはなりたくないね
2018/03/25(日) 16:05:42.72ID:vPJlyNvz
グローバルガーでマウント取ろうとして失敗したID:Ol/c1EKtをそこまでバカにしてやるなよ w
2018/03/25(日) 16:28:46.20ID:n/bZLhLz
インスタンス生成と生成されたインスタンスをコレクションに追加するのは別のクラスの役割

>>521はコレクションの要素を型でフィルタリングできたらいいわけだから素直に実装したほうがいい
2018/03/25(日) 16:28:46.85ID:rmzLSBrs
よう分かりませんけど、このスレをプリントアウトして明日朝一番で精神科にかかることをお勧めします
このIDが僕です!って正直に言うんだよ
2018/03/25(日) 16:46:03.35ID:TrFdb9nA
>>569
わざわざクラスを増やす必然性はないだろ
2018/03/25(日) 16:50:54.77ID:5WPMat6H
>>569
クラス単体で閉じてる機構をわざわざ外部に別けて何がしたいんだよ
メンテナンス性が下がるだけじゃん
2018/03/25(日) 16:55:50.35ID:sIW0PrXb
>>572
いや、この仕組みが入っているがために使えない状況が出てきちゃうんじゃね?
2018/03/25(日) 16:57:56.62ID:sIW0PrXb
本来クラスAがクラスA足る為に必要な処理じゃないんだよ
リストに追加なんてのは
2018/03/25(日) 17:00:09.33ID:n/bZLhLz
>>571
>>572

きみたちマジか!!
オブジェクト指向設計原則の基礎だぞ
それを破るだけのメリットがあるユースケースなのかな?
2018/03/25(日) 17:11:36.39ID:5WPMat6H
>>573-575
そこまで言うなら実際に書いて見せてみろ?
2018/03/25(日) 17:19:41.51ID:sIW0PrXb
>>576
普通にlist外に出せよ
2018/03/25(日) 17:27:26.70ID:+wly4/Cl
>>577
グローバルがだいしゅきなの?
2018/03/25(日) 17:35:09.99ID:vPJlyNvz
>>577
へっ?
外出ししてグローバルにしろとでも言うのか? w
2018/03/25(日) 17:37:41.15ID:+wly4/Cl
>>575
型として絶対使わない機能を分離してどうするの?
オブジェクト指向の目的もしかして理解してない?
2018/03/25(日) 17:38:38.10ID:sIW0PrXb
>>579
誰もグローバルなんて言ってないけど
どっから出てきたん?
2018/03/25(日) 17:44:59.40ID:+wly4/Cl
>>581
どこの誰がどんなスコープでList持つ想定でいるの?
2018/03/25(日) 17:45:57.80ID:sIW0PrXb
>>582
まあ、それ次第だよな
2018/03/25(日) 17:49:26.15ID:+wly4/Cl
>>583
A.ForEachでアクセスする変数をA以外に持たせたら漏れなくグローバルになるけど、何を思ってAの外に出せと言ったの?
2018/03/25(日) 17:50:30.14ID:sIW0PrXb
>>584
ならねーよ
死ねよ
2018/03/25(日) 17:50:49.15ID:vPJlyNvz
>>581
なら
> 普通にlist外に出せよ
のlistをどこに置くのか言ってみろよ
2018/03/25(日) 17:52:11.71ID:sIW0PrXb
>>586
使うやつが勝手に作ればいいじゃん
クラスAにはなんの関係もないことだ
2018/03/25(日) 17:52:42.22ID:vPJlyNvz
はい、逃げた w
2018/03/25(日) 17:53:06.16ID:sIW0PrXb
>>588
は?どこが?
2018/03/25(日) 18:04:31.71ID:5WPMat6H
>>587
自身の生成したインスタンス一覧を保持するのはclass Aの基本要件だが、
何でお前はそれを無視してclass Aの仕様そのものを変えたがるんだよ
2018/03/25(日) 18:11:58.07ID:sIW0PrXb
>>590
え?要件定義でそんなの出てくるの?
頭おかしいからだろ?
2018/03/25(日) 18:12:36.02ID:Vv01uOP7
初心者がマウントのために吠えあうスレになってんなw
>>521は作成したインスタンスをコレクションで持っていれば終わる話なのに
2018/03/25(日) 18:13:47.46ID:+wly4/Cl
>>591
あたまわっるー
2018/03/25(日) 18:16:24.49ID:a4i6A50g
>>591
要件定義クソワロタwww
2018/03/25(日) 18:17:30.34ID:sIW0PrXb
>>592
だよね
2018/03/25(日) 18:17:53.31ID:h+QwjUa5
たった数行のコードなりUMLなり書けば伝わる話なのに、
何十行も日本語書き連ねて言い訳してる時点で初心者以下だと思うのね

俺の考えた設計が最高と思うならC#で書けよ
書けないなら黙れ、素人
2018/03/25(日) 18:18:45.66ID:sIW0PrXb
>>596
でもお前単発じゃん
ご自慢の主張したいコードが付いてないけど?
2018/03/25(日) 18:19:20.14ID:xrxDySNz
しょうもな
一般論を言えば>>587が正しいが、これでは質問者の要件は満たせない。

>587は必要があってシングルトンにしてるクラスについて、
そんなことしなくても使う側が一つのインスタンスだ作ればいいじゃないか、って言ってるのと同じ
2018/03/25(日) 18:23:46.34ID:sIW0PrXb
>しょうもな
>一般論を言えば>>587が正しい
ここで止めろよ
初心者の質問なんだからよ
正しいこと覆して話進める価値あるの?
2018/03/25(日) 19:06:07.44ID:vPJlyNvz
>>592
> >>521は作成したインスタンスをコレクションで持っていれば終わる話なのに
いや、そんなことはみんなわかっててそのコレクションをどこに置くんだって話
老害レベルの知ったかがグローバルとか口走ってごまかすのに必死になってるだけ w
2018/03/25(日) 19:43:00.47ID:Ol/c1EKt
グローバル変数を使うど素人はさっさと転職したほうがいいぞ
2018/03/25(日) 19:50:31.57ID:XLrMHO3h
え?まさかプロがこんな所覗いて浅い知識ひけらかしてる訳じゃないよな?
2018/03/25(日) 20:11:31.70ID:sIW0PrXb
>>602
時代はグローバル
2018/03/25(日) 20:13:55.09ID:XLrMHO3h
>>603
山田くん、座布団一枚!w
2018/03/25(日) 21:08:37.79ID:ntckGCHi
Nugetでdll等をインストールする時にApp.configも一緒に差し替える事って可能なのでしょうか?
無理ならApp.configを書き換える手段を知りたいです

EntityFrameworkをインストールするとプロジェクトのApp.configも一緒に書き換えられてると思います
これと同じことがやりたいです
2018/03/25(日) 21:18:29.22ID:o6f1Dm/5
>>520
しらなんだー
使ってみます!


仕事でプログラム組んでた時にはいろいろと新技術を追いかけて勉強してたんだけど、
仕事じゃなくなるととりあえず、やりたい事を達成する為に
必要な機能をおいかける様になりますな。
2018/03/25(日) 23:07:48.90ID:30He22WI
引数ありで起動した場合はフォームを表示させずに処理させたいんだけど……?(°_ 。)?(。_ °)?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。