ふらっと C#,C♯,C#(初心者用) Part129 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part128
http://mevius.2ch.net/test/read.cgi/tech/1493730340/

■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

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

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
---
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

0952デフォルトの名無しさん (ドコグロ MM36-KaH7)2017/07/15(土) 20:28:24.07ID:sSrRYJ/sM
enumrableとenumratorの発音にいつも困る。

0953デフォルトの名無しさん (ワッチョイ c469-zKZC)2017/07/15(土) 21:29:22.37ID:nacMKYtH0
>>950
で、その結果がソース全部出せなの?
(*゚∀゚)ズイブンコウリツヨサソウジャン

0954デフォルトの名無しさん (ブーイモ MM5a-1CH6)2017/07/15(土) 21:31:14.89ID:wHixeaDXM
>>953
誰と勘違いしてるんだか

まともにテストツールを使ったことがないか
まともな方法でテストしたことない人の意見は読むだけ無駄

0955デフォルトの名無しさん (ワッチョイ c469-zKZC)2017/07/15(土) 21:35:27.08ID:nacMKYtH0
>>954
おお、そりゃスゲェ
是非その超絶技巧をご披露いただきたい
(*゚∀゚)オモシレー

0956デフォルトの名無しさん (ブーイモ MM5a-1CH6)2017/07/15(土) 21:38:17.50ID:wHixeaDXM
俺にレスしても無駄だよ

お前の超絶技巧で.net framewaorkをinterface無しで再実装してからにしてくれ

0957デフォルトの名無しさん (ワッチョイ c469-zKZC)2017/07/15(土) 21:40:02.60ID:nacMKYtH0
>>956
アレ?お前はなんにもしないの?
(*゚∀゚)イツモドオリダナオマエ

0958デフォルトの名無しさん (ワキゲー MM6e-FZLt)2017/07/15(土) 21:42:12.07ID:+h55DWxyM
NGName:ワッチョイ c469

スッキリ!

0959デフォルトの名無しさん (ワッチョイ c469-zKZC)2017/07/15(土) 21:43:55.73ID:nacMKYtH0
まあ、お前の言いたいことはわかるよ
みずほ銀行のシステムをcobol無しで再実装してからcobolの批判をしてくれないか?

ってことだろ?

0960デフォルトの名無しさん (ワッチョイ e6ea-Icm7)2017/07/15(土) 21:49:16.74ID:g8mCRq5Q0
COBOLの話がすぐ出てくる辺りマジで底辺か、多分ほとんどの奴はお前と話合わないからすっこんでろ

0961デフォルトの名無しさん (ワッチョイ c469-zKZC)2017/07/15(土) 21:51:37.25ID:nacMKYtH0
>>960
え?お前誰?
単発IDが主義主張もなく割り込んでいいcobolじゃねーよ

0962デフォルトの名無しさん (ワッチョイ e6ea-Icm7)2017/07/15(土) 21:53:48.27ID:g8mCRq5Q0
>>961
誰でもいいじゃん、匿名掲示板なんだしお前と議論する気なんて一切ないし

0963デフォルトの名無しさん (ワキゲー MM6e-FZLt)2017/07/15(土) 22:10:48.06ID:+h55DWxyM
>>961
ここはC#のスレだよ
COBOLの話は別でどうぞ

0964デフォルトの名無しさん (ワッチョイ a76f-xIn+)2017/07/16(日) 01:10:42.69ID:YiC7eEBy0
>>959
いくら出すの?

0965デフォルトの名無しさん (ワッチョイ 741b-HOJV)2017/07/16(日) 06:41:53.08ID:S+S2REts0
>>928
たとえばclass PCを定義したいと、
インターフェースとしてUSB、HDMI、DP、PCI-exを持ってる。
この場合
class PC: interface USB, HDMI, DP, PCI-ex
より。
PCはUSBやHDMIを具備していると解釈するのが自然でしょ。つまり

class PC{
public:
Interface USB{
};

Interface HDMI{
};

Interface DP{
};

interface PCI-ex{
};
};

とでもした方が感覚的にしっくりきませんか?
アクセス権としてはclass 内部でInterface宣言されたものはPCのリソースに無条件でアクセスできる。
としたほうが直感的にわかりやすくないですか?
USBやHDMIがPCを出産するってのはあまりに無理がある。

0966デフォルトの名無しさん (ワッチョイ 741b-HOJV)2017/07/16(日) 06:43:38.07ID:S+S2REts0
つづき
工業製品のシミュレートを考えると継承でインターフェースを増やす、とか機能を増やすとかがしっくりこない。
新製品が旧製品を継承するってならOKだけど、
ある世代のみの製品を定義するなら、
基本モデルに搭載された機能があって、
そこにオプションが追加されて、製品グレードが構成される方がしっくり来ませんか?
この機能追加が継承で実現されるってのはしっくり来ない。

>USBもRS-232Cもイーサも「通信ポート」とみなして
>同じように扱えるようにしたい

これこそ各種インターフェースが通信ポートと派生関係 (is a)関係にある話で、
それらが搭載される大本のPCを派生関係に巻き込むのはおかしな話じゃないですか?
PCから見て同じ通信機能を有するポートと見なしたいだけならエイリアスにでもするとか。
通信ポートがセクロスしてPC出産するなんて考える方が無理ボ

0967デフォルトの名無しさん (ワッチョイ 2623-KaH7)2017/07/16(日) 06:55:25.86ID:QwczUPDI0
何論点に話してるがしらんけど、
部品を組み合わせるんだからhas aで持たせておけよ。
こんなのに継承なんか使ったら破綻するわ。

0968デフォルトの名無しさん (ワッチョイ ec90-k9rv)2017/07/16(日) 07:36:55.65ID:DFiYZAtb0
is-aって電子回路で例えるとICの非公開の隠しコマンド使うようなもんだからなあ
その密結合した側からは百歩譲っていいとしても他からそのICを使うと整合が取れなくて
マニュアル通りの動作をしないような事態になったらほとんど手直し不能と言う

0969デフォルトの名無しさん (スップ Sd02-sREA)2017/07/16(日) 09:15:00.53ID:HardVP8Ld
インターフェイスとしては、
IDataIOConnectable みたいなのを持つのでは?

0970デフォルトの名無しさん (ワッチョイ e266-S4qQ)2017/07/16(日) 11:21:50.59ID:tS49D6IL0
C#は移譲とプロバティーとインターフェースを使って、C++の多重継承と外形上同じものを構築できて
しかもより安全なんだよね
道具は使いようだよ

0971デフォルトの名無しさん (ワッチョイ ec90-k9rv)2017/07/16(日) 12:03:25.24ID:7Dogvjad0
個人的にはis-aは仮想関数のためにあるのだと思ってる

>>970
実際コンポジション(移譲)で90%以上事足りるしな

0972デフォルトの名無しさん (ワッチョイ da4b-MRQN)2017/07/16(日) 14:36:34.61ID:HcadT/Qg0
誰か>>965-966について解説をオナシャス

0973デフォルトの名無しさん (ワッチョイ aa11-OTuW)2017/07/16(日) 14:42:13.82ID:ZbG5GhXO0
よくわからないなら特に理解する必要はないよ
>>967が正解だし

0974デフォルトの名無しさん (ドコグロ MM2e-eqnq)2017/07/16(日) 14:59:39.16ID:qZs6BFdqM
きませんかと言われてもきませんとしか言えんわな

Interfaceを理解することが目的じゃないならチラ裏いき
理解したいならとりあえず自分で利用したコードをかけとしか

0975デフォルトの名無しさん (ワッチョイ 6e69-zKZC)2017/07/16(日) 18:58:11.86ID:N3AOnliK0
機能は理解していても適用でゴミにするんだな

0976デフォルトの名無しさん (ワッチョイ f6e4-esLu)2017/07/17(月) 00:13:06.25ID:rrWwnLpM0
そもそもPCクラスが直接USBインターフェイスを実装する必要なんてないし
USBインターフェイスを実装したUSB1クラスとかUSB2クラスをプロパティで持つのが普通だろ

IO装置としてのインターフェースって用語と、プログラミング用語としてのそれを混同してるとしか思えん

0977デフォルトの名無しさん (ワッチョイ 2623-KaH7)2017/07/17(月) 01:30:28.73ID:ka/V7JjN0
そもそも、USB端子2つ持ってたらどうするの?
PC自体にUSBの機能を持たせたら、usb1と2の区別ができない。
よって、そういった場合を考慮すると、部品化して、プロパティとしてusb1、usb2を持たせるのが正しい。

終了。

0978デフォルトの名無しさん (スププ Sd70-KmKO)2017/07/17(月) 08:04:00.32ID:Ijzu2DgTd
この話どーせCOMやActiveXの時代までさかのぼるんでしょ?

0979デフォルトの名無しさん (ワッチョイ 8ee3-S4qQ)2017/07/17(月) 12:18:55.20ID:tm+LZBsa0
Visual Studio2017でタプルを使いたいのですが
(ネットで公開されている)正しいコードを入力しても「valueTupleがインポートされていません」
と言われてしまいます。
ターゲットフレームワークがタプルをサポートしているものより古い4.6.1であるのが原因だと思うのですが、
プロジェクトのプロパティには4.6.1までしか表示できず、visual studioの更新もいろいろ試したのですが(CreatorsUpdateなど)
どうしても4.7を採用できません。

どうしたらよいでしょうか OSはwin10です

0980デフォルトの名無しさん (ワッチョイ ec90-k9rv)2017/07/17(月) 12:32:26.53ID:+UBTk6HR0
>>979
新しいプロジェクトの作成画面で.NET Framework 4.7になってないとか
もし古い.NETでプロジェクトを作成してしまっていたらソリューションを右クリック→プロパティ→アプリケーション
で、ターゲットフレームワークを.NET Framwork 4.7に変更する

0981デフォルトの名無しさん (アウアウウー Sa08-1CH6)2017/07/17(月) 12:45:01.80ID:50vkYHara
>>979
インストーラーから4.7開発ツールインストールしてないなら当たり前

0982479 (ワッチョイ 8ee3-S4qQ)2017/07/17(月) 12:55:32.89ID:tm+LZBsa0
http://imgur.com/a/F6nPY
>>979さんがいうプロパティの画面はこれで良いでしょうか
画像の通り4.7が表示されません。

プロジェクトの作成画面も同様です。

0983デフォルトの名無しさん (アウアウウー Sa08-1CH6)2017/07/17(月) 12:57:07.69ID:50vkYHara
ただのアップデートしただけじゃ4.7は使えない
インストーラーから個別のコンポーネント選んでインストール

0984979 (ワッチョイ 8ee3-S4qQ)2017/07/17(月) 13:13:20.69ID:tm+LZBsa0
解決しました ありがとうございます

個別のコンポーネントを選択していませんでした。

0985デフォルトの名無しさん (ワッチョイ 4128-NvYO)2017/07/17(月) 13:59:58.84ID:T9aCvdZt0
複数の読み込みタスクと一つの書き込みタスクを並列で動かすとき、
書き込みタスクを優先させて動かしたいんだけど、どうするのが正解?

タスクのプライオリティ上げるのかと思ったけど、調べるとどうも違いそうで。
ConcurrentExclusiveSchedulerPairとかのスケジューラをうまく使うのかな?

0986デフォルトの名無しさん (ワッチョイ c469-zKZC)2017/07/17(月) 14:19:08.39ID:hqPHwZli0
実際何やるの?
並列で動かすよりPC買えよ

0987985 (ワッチョイ 4128-NvYO)2017/07/17(月) 17:22:16.54ID:T9aCvdZt0
・複数サーバからネットワーク経由でファイルDL
・ファイル数が閾値を超える毎にDB書き込み(シリアル)
DLタスクの並列数を増やすと、書き込みタスク1つあたりの処理時間が伸びて困ってる・・

0988デフォルトの名無しさん (ワッチョイ e9c0-S4qQ)2017/07/17(月) 17:27:24.08ID:aUy3ijYs0
それタスクの優先度じゃなくて単にファイルIOの問題じゃないの
ファイルDLの書き込みとDLしたファイルの読み込みとDB書き込みを同じストレージに対して行っているなら処理時間伸びるのは当然に思えるが

0989985 (ワッチョイ 4128-NvYO)2017/07/17(月) 17:41:44.40ID:T9aCvdZt0
>>988
書き方が悪かったかな、すまない。
DLタスクは書き込まない、HttpClientのGetStringAsyncでメモリに読み込む

0990デフォルトの名無しさん (ワッチョイ 7666-S4qQ)2017/07/17(月) 18:38:09.74ID:DedzLYOT0
>>989
System.Threading.Thread.CurrentThread.Priorityで、優先度弄れるらしいが、実際に使ったこと無いから何とも・・・
スレッドのメソッドの上の方で指定すればOK

スケジューラを実装するといいよ
優先度の設定があるけどそれをどう解釈するかはスケジューラの実装によるからね

0992デフォルトの名無しさん (ワッチョイ c469-zKZC)2017/07/17(月) 19:20:13.04ID:hqPHwZli0
並列にするメリットが全くわからないのだけれど?
分析能力の欠如っていうか脳がやられたの?

0993デフォルトの名無しさん (ワッチョイ 3cc4-WfmG)2017/07/17(月) 20:49:23.39ID:NQ4+oaEv0
謎行為やってるなとは思うが
謎行為をする動機を語ってないからそう見えるだけだろ
と好意的に解釈してやる

0994デフォルトの名無しさん (ワントンキン MM88-roJc)2017/07/17(月) 21:19:25.73ID:c9FD5MjOM
とりあえずダウンロードしたファイルはさっさとローカルに保存しなよ
ネットワークに余裕がある時にDBにストアすればいい

0995デフォルトの名無しさん (ワッチョイ ce19-MRQN)2017/07/18(火) 00:41:32.31ID:SlyZJJmU0
現役PGの頃に宇宙仮面のサイトみてたけど

2014年で更新止まってるんだよね。

あの人生きてる???

0996デフォルトの名無しさん (ワッチョイ c469-zKZC)2017/07/18(火) 00:46:21.86ID:y43ZtB+J0
>>995
そういうのここでやんないでくんない?

0997985 (ワッチョイ 4128-NvYO)2017/07/18(火) 01:08:53.19ID:4C5Wl6we0
>>990,991
ありがとう。スケジューラの方向で色々やってみる

>>992,993
ありがとう。動機を説明してみるので、おかしな実装だったら指摘してもらえると嬉しい。
わりと見たことある実装だと思ってるんだけど・・
どこの部分に対する指摘かわからなかったので3点で書いてみる

1.なんでファイルDLしてるの
→空いた時間にダウンロードして、日時の決まった時間にDBを更新するようなバッチじゃないから

2.DLタスクが並列な理由
DLタスクでは数kbのファイルを読み込んで、それをパースしてDBに格納するデータに変換してる。
ファイルは10数個のサーバ毎に日時で1万個くらい生成される。
→各サーバに対して並列で一斉(ないし数台)にリクエストを送る方が、サーバ*ファイル数分、直列でやるより速いと思ってる

3.DLタスクとDBへの書き込みが並列な理由
DLタスクが終了してからDB書き込みしてももちろん動作はする
(実際はメモリの関係で、何度かに分割するだろうけど)

DLタスクはネットワークがボトルネック
DBタスクはDBでの処理がボトルネック*1

→だったらDLタスクが一部終わる毎にDBに書き込ませていった方が、全体のパフォーマンスとして効率的だと思ってる

(本当にpriorityが問題なのかとか、*1が正いかとか、スケールの話は実装とか環境によると思うので省いてほしい。パースはDBタスクの方じゃってのも)

0998985 (ワッチョイ 4128-NvYO)2017/07/18(火) 01:13:35.64ID:4C5Wl6we0
訂正
誤)1.なんでファイルDLしてるの
正)1.なんでファイルDLして保存しないの

0999デフォルトの名無しさん (ワッチョイ 1e6e-5eCk)2017/07/18(火) 02:18:02.65ID:tovqy0R70
書き込みタスクもファイル毎に別なのか?
どうせシリアルなら書き込みはBlockingQueue使って単一コンテキストでループさせ続けるのが無難だと思うが

1000999 (ワッチョイ 1e6e-5eCk)2017/07/18(火) 02:23:36.02ID:tovqy0R70
訂正
ConcurrentQueueを使ったBlockingCollectionだな
BlockingCollectionなら上限数を指定しとけばコンシューマの処理が追いつかないときにプロデューサをブロックすることもできるよ

10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 38日 7時間 47分 35秒

10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

レス数が1000を超えています。これ以上書き込みはできません。