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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7bde-MYX9)
垢版 |
2017/11/07(火) 21:11:25.20ID:LeQqgpmT0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

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

■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/

■コードを貼る場合は↓を使いましょう。
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: checked:vvvvv:1000:512:----: EXT was configured
2デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/07(火) 22:06:49.52ID:cTk2bFo+0
2017/11/07(火) 22:38:29.65ID:h1H7Fbnm0
2017/11/07(火) 22:53:03.49ID:6NdbJPOz0
5デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/07(火) 23:17:05.39ID:cTk2bFo+0
開発になんのフォント使ってる?
2017/11/07(火) 23:29:09.05ID:bwe89n7Ka
男は黙ってCourier New
7デフォルトの名無しさん (ワッチョイ 0676-9Rqp)
垢版 |
2017/11/07(火) 23:37:30.45ID:mi3cUHZI0
前スレでリストの抽象化に関して聞いた者ですが
もう少し整理して説明すると下記のコードの"IList<共通の型>"部分を
共通の型で作れないかなと考えておりました
クラスならばインターフェースで共通の型に出来ますが
リストのようなコレクションも出来たら良いなと

class Hoge
{
public string Hogege { get; set; }
}

class Fuge
{
public string Fugaga { get; set; }
}

class Program
{
static void Main(string[] args)
{
IList<共通の型> dto1 = new List<Hoge>();
IList<共通の型> dto2 = new List<Fuge>();
}
}
2017/11/07(火) 23:52:09.22ID:bwe89n7Ka
>>7
直接的な答じゃないけど、どうしてC#の(っていうか.NETの)配列の共変が
批判されてるかを理解してからその問題をもう一度考えた方がいいんじゃないかな
http://ufcpp.net/study/csharp/sp4_variance.html?p=2
9デフォルトの名無しさん (ワッチョイ e58a-cDlW)
垢版 |
2017/11/08(水) 00:15:38.90ID:anngrWrU0
>>7
いまいち意味不明なんだが、同じリスト型で管理したいクラスってことは
それぞれis-a関係になる共通の継承元があるはずだろ?

class Hoge : 共通の型 {...}
class Fuga : 共通の型{...}

var List<共通の型> = new List<共通の型>();

でダメな理由がわからん
これで「HogeとFugaを抽象化した型」のリストができるだろ?

リストその物の抽象化って話なら、List<T>がそのものズバリなんだから、
何を言いたいのか理解できてない
せめて用途を説明してくれ
10デフォルトの名無しさん (ワッチョイ e58a-cDlW)
垢版 |
2017/11/08(水) 00:20:45.56ID:anngrWrU0
>>9
あ、変数名抜けてた
11デフォルトの名無しさん (ワッチョイ 2ee8-BQiS)
垢版 |
2017/11/08(水) 00:40:48.04ID:CLyn8lVQ0
みんなListList
Dictionaryのがいいよ
2017/11/08(水) 06:04:51.80ID:Kp5qntjW0
>>11
キー重複できなくない?
2017/11/08(水) 07:02:24.37ID:d89kNCGzr
何がやりたいか(目的)を書いた方が良いと思うよ

未だ意図不明だけど
System.Collections.ArrayList
が望みのもの?
2017/11/08(水) 21:22:35.00ID:+tPWiI0Ta
>>7
それが実現できても何の得もないよ

IList<object>にして突っ込めばいいけどそれで何の意味があるんだか
2017/11/08(水) 21:40:52.71ID:370P83AX0
ふらっとあるある
万能クラスをListに突っ込んで俺すげー
2017/11/08(水) 22:18:42.71ID:kPo1IP0w0
プロパティについて教えてください
setとgetが呼び出されるタイミングがよくわかりません
以下のようなコードがあったとしてsetが呼び出されるのはTestに値が代入された時という理解で合っていますか?
getはsetが呼び出されると自動的に呼び出されるというようなぼんやりした理解なのですが正しいでしょうか?

またgetだけが呼び出されるケースもあると資料で見たのですがそれはどのような使い方をした時なのでしょうか?
初歩的な質問で申し訳ありませんがよろしくお願い致します

Private int test
Public int Test()
{
set {
test= value;
}

get {
return test
}
}


public void Main()
{
Test=100;
}
2017/11/08(水) 22:19:45.50ID:kPo1IP0w0
>>16
すいません
iPhoneから書いたのでコードを上手く書くことが出来ていません
2017/11/08(水) 22:31:13.66ID:rbcWTqbu0
get setの中にConsole.WriteLineでも書いてみたら分かるよ
2017/11/08(水) 22:43:50.87ID:B6KPAK+i0
もしくはステップ実行するとか
2017/11/08(水) 23:05:18.83ID:0mQs8SG20
>>16
作成したプロパティを使う方からは、変数のように見えるって言えば分かる?
2017/11/08(水) 23:26:13.90ID:niKmJlUIM
>>16
プロパティに代入 setだけが呼ばれる
プロパティを読出し getだけが呼ばれる

現在時刻を返すプロパティ DateTime.Nowとかだとgetしかいらない
22デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/08(水) 23:33:00.93ID:8vwit5Fs0
俺が作ったプログラムを起動させた結果
https://i.imgur.com/WFwZTSM.png
2017/11/08(水) 23:38:55.04ID:FLS9cqpb0
>>22
電気の無駄使いやね。使った分発電しなされ
24デフォルトの名無しさん (ワッチョイ e175-3oFj)
垢版 |
2017/11/08(水) 23:41:19.13ID:Fypp0IbQ0
>>22
なんか描画してるの?
25デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/08(水) 23:46:07.65ID:8vwit5Fs0
>>24
エロ動画詰まったZIPを
Parallelで解凍したらこうなった
40個位
2017/11/09(木) 00:59:59.93ID:LfxevOKY0
>>25
parallelぱねぇなw
2017/11/09(木) 01:16:45.19ID:LfxevOKY0
>>25
並列数5くらいに制御すれば良い?
2017/11/09(木) 07:31:45.15ID:hfkiYsiWM
リストの抽象化を相談した者ですがList<T>の使い方を調べようと思います
ありがとうございます
2017/11/09(木) 08:38:02.64ID:T0f+zXRUM
>>22
しょぼいcpuだな。i9に買い換えろ。
2017/11/09(木) 09:08:10.16ID:zzCkJYsb0
車輪の再発明
2017/11/09(木) 09:50:42.15ID:jWnrq6EeM
parallelって、積んでるCPUの数以上に並列化するとしぬの?
2017/11/09(木) 10:29:51.90ID:T0f+zXRUM
>>31
効率が落ちるだけ。
2017/11/09(木) 10:57:42.45ID:rCwX7bXUM
>>31
必ずしもそうではない
IOなどでCPUが暇になることがあるならその時間を有効に使える場合がある
2017/11/09(木) 11:49:27.46ID:jWnrq6EeM
オラ、わくわくしてきたぞ!
2017/11/09(木) 14:02:56.21ID:Rh18RfgB0
たまに単純すぎる処理までParallel化してあって逆に糞遅くなってるの見るともにょる
2017/11/09(木) 14:07:05.33ID:xkkUp3yc0
これまで客の要望で20個ぐらいParalleにしたけど
一つとして早くなったことないよ
ボトルネックがIO周りなのに勘違いしてる奴多過ぎな気がする
ハードディスクに保存するのもIOやで?
って言ってわかるやついねーよな
パンピーじゃ
37デフォルトの名無しさん (ワッチョイ df8a-KLCy)
垢版 |
2017/11/09(木) 16:51:34.36ID:cNKMHUR60
>>28
>>7で既に使ってると思うんだが何を調べるのか…
2017/11/09(木) 22:15:36.82ID:HphgsDwT0
>>36
ファイルI/O関連は下手にパラるとシーク待ち時間が増大しちゃうしね
39デフォルトの名無しさん (ワッチョイ ffe8-yfb/)
垢版 |
2017/11/10(金) 00:17:10.66ID:J/IcK0Bh0
parallelで解凍したエロ動画はRAMディスクに出力したよ
7分→2分になったよ
2017/11/10(金) 00:59:14.89ID:WaNBZPrLp
VSでもC#でもないからややスレチになるが、
make に-j4 付けてもビルド70分くらいから60分くらいになるだけであまり速くならなかったのに
さらにノートン先生でビルドするディレクトリ外したら20分になったことがある
新規ファイルが大量に出来る場合、パラレルにしても変わらないと感じるなら、I/O以外にもタスクマネージャーでウィルスチェックしてないか確認必要
2017/11/10(金) 01:25:16.74ID:kPoID+4E0
いまの最新並列プログラミング手法はparallelなの?
2017/11/10(金) 06:25:02.22ID:RXFByZDW0
シングルスレッドで非同期I/Oが速いと言って見る。
2017/11/10(金) 07:28:15.81ID:wtQgej54M
技術的な質問じゃないんですが、C#よりVBが優勢って本当ですか?
2017/11/10(金) 07:43:03.92ID:/A7eCTDw0
>>43
スレチ
んでもってアスペ
2017/11/10(金) 07:43:26.98ID:Mk8W5pJQM
>>43
荒らす気満々だろw
2017/11/10(金) 07:46:11.03ID:g/THXaNi0
非同期IOは旧来のクライアントごとのスレッドでリクエストをさばくやり方よりオーバーヘッドが少ないから
C10Kに耐えられるってだけで、シングルスレッドのままじゃ性能は高くない。
性能を求めるならそれをコア数分のスレッドで走らせる。
2017/11/10(金) 08:04:26.22ID:YLtBUtjTr
>>41
ケースバイケース
2017/11/10(金) 08:05:17.46ID:YLtBUtjTr
>>43
「優勢」の定義次第
49デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/10(金) 18:45:01.22ID:i6RuFN3y0
>>43
技術的に答えさせていだだきます
C#よりもVBの方がキーワードの数が多く難易度も高くなりますから
使用するプログラマーの能力的にはVBの方が優勢であると言えるでしょう
2017/11/10(金) 18:59:38.48ID:OPEeW8tb0
>>49
はいキチガイ
2017/11/10(金) 19:14:30.49ID:rSnLVHog0
>>50
キチガイに触るな
2017/11/10(金) 19:15:23.24ID:QpY7y4nlM
あれだろ?バリアントとかいう魔法の変数だろ?
2017/11/10(金) 19:42:51.45ID:alfIXjUy0
>>43
裾野という底辺はc#より遥かに広い
54デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/10(金) 20:21:19.35ID:i6RuFN3y0
>>53
底辺のお前が言うなw
55デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 20:48:46.88ID:SSmhpTC60
Parallel処理内で
一つのListにAddしてっても文句言われない?
2017/11/10(金) 20:51:59.49ID:rSnLVHog0
>>55
https://msdn.microsoft.com/ja-jp/library/6sh2ey19(v=vs.110).aspx
これの一番下に書いてある
2017/11/10(金) 20:52:36.97ID:alfIXjUy0
>>55
lockしてれば
58デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 20:56:22.58ID:SSmhpTC60
>>56
天才かよ
>この型のpublic static (Visual Basic ではShared) メンバーは、スレッド セーフです。

>>57
それ遅いらしい
2017/11/10(金) 21:02:22.44ID:kHWlHLuRM
>>58
それstaticメンバ以外はスレッドセーフじゃないってことだぞ
あと、たかがListのAddのロックのコストが問題になるような状況なら
Listを共有しないでスレッドローカルでList作って終わってからマージした方がいい
2017/11/10(金) 21:05:11.63ID:alfIXjUy0
>>58
lockしたら並列の意味が無いからなw
61デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/10(金) 21:07:25.77ID:7i6+bCDW0
>>58
Addとかインデックスでの参照はオブジェクトのメンバだろ?ダメじゃん。
結局lockしかない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況