2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

C#, C♯, C#相談室 Part91

1 :デフォルトの名無しさん:2016/06/29(水) 23:45:15.36 ID:EZjVZgG6.net
■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1437808445/
C#, C♯, C#相談室 Part89
http://peace.2ch.net/test/read.cgi/tech/1443271409/
C#, C♯, C#相談室 Part90
http://echo.2ch.net/test/read.cgi/tech/1455160063/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

2 :デフォルトの名無しさん:2016/06/29(水) 23:45:41.68 ID:EZjVZgG6.net
誰もたててなかったんでたてました

3 :デフォルトの名無しさん:2016/06/29(水) 23:51:01.49 ID:mTvmtbdU.net
まじかよすげーな

4 :デフォルトの名無しさん:2016/06/29(水) 23:54:32.05 ID:IF/e/aAD.net
>>2
えっ

C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1467142749/

5 :デフォルトの名無しさん:2016/07/01(金) 09:02:48.89 ID:2/8SV6DI.net
>>4
oh

6 :デフォルトの名無しさん:2016/08/16(火) 01:59:58.67 ID:jP/bzuFf.net
スレッド違いかもしれないですが教えてください。

Google Analitics でトラフィックを確認したところ
↓の様にIP+ポート番号でのアクセスがありました。

通常であれば、YahooやGoogleなどの検索エンジンからの流入だけになるハズが
この様なアクセスがあり警戒しています。これは何か攻撃を受けているのでしょうか?

10.160.XXX.XXX:XXXXX

7 :デフォルトの名無しさん:2016/08/16(火) 03:13:01.98 ID:ExAjikQC.net
>>6
法律違反かもしれませんが人を殺しても見逃して下さい
ってか

↓で聞けよ脳タリン

スレ立てるまでもない質問はここで 143匹目 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1464139565/

8 :デフォルトの名無しさん:2016/11/05(土) 16:22:08.70 ID:9mC8a8qM.net
このスレをPart92として使うのかな?

9 :デフォルトの名無しさん:2016/11/05(土) 16:28:35.13 ID:N0pRKuvW.net
出来ればふらっとみたいにワッチョイ付きで建てて欲しい所だけど、ここでいいんじゃね

10 :デフォルトの名無しさん:2016/11/05(土) 17:20:49.55 ID:4QNuq7Ui.net
>>994
重症だねこりゃ。

11 :デフォルトの名無しさん:2016/11/05(土) 19:53:16.07 ID:bx+ldDt8.net
ワッチョイなんていらないのでここで十分です

12 :デフォルトの名無しさん:2016/11/05(土) 20:36:49.81 ID:BoxZvYjG.net
次立てるときには付けるのでご安心召されよ

13 :デフォルトの名無しさん:2016/11/05(土) 21:25:32.22 ID:yfItjWUA.net
ちゃんとインクリメントしろや

14 :デフォルトの名無しさん:2016/11/06(日) 01:29:59.15 ID:+j3xqinH.net
ワッチョイが役に立ってるスレなんて見たこと無い

15 :デフォルトの名無しさん:2016/11/06(日) 06:47:09.15 ID:yh+qoP1Q.net
荒らし乙

16 :デフォルトの名無しさん:2016/11/06(日) 09:55:19.69 ID:jO0QNoEc.net
荒らしのNGに役立つよ

17 :デフォルトの名無しさん:2016/11/06(日) 10:48:53.12 ID:pU7B9Wvc.net
日を跨いでくだらない話をだらだら続ける奴は消したいわ
前スレだとdecimalくんとか
LINQとラムダ式に親を殺された君とか

18 :デフォルトの名無しさん:2016/11/06(日) 19:36:01.09 ID:ci4MHKnC.net
Windows Formsの話なんだけど
TextBoxとかButtonといった単項目コントロールはINotifyPropertyChangedとBindingSourceを使って
btnExec.Enabled <-> model.IsValid
txtHoge.ReadOnly <-> model.HogeIsReadOnly
のように柔軟なバインドができる
これと同じようにDataGridViewの各セルのプロパティとそのセルに対応するモデルのプロパティを細かくバインドすることは可能?
具体的には1行に対応するモデルの一部のプロパティがオブジェクトの状態によって変更可不可が変わる
このプロパティの変更可不可をセルの入力可不可に対応付けたい

19 :デフォルトの名無しさん:2016/11/07(月) 02:02:19.36 ID:8BVz5aV9.net
>18
できると思う。なんだったら自分が実験してやって見せてあげよう。
その前に、ちょっと聞きたいことがある。
>TextBoxとかButtonといった単項目コントロールはINotifyPropertyChangedとBindingSourceを使って
>btnExec.Enabled <-> model.IsValid
>txtHoge.ReadOnly <-> model.HogeIsReadOnly

このやり方を具体的に教えてくれ。
これが解れば俺の応用力と理解力をもってすれば君の要求にこたえられると思う。

20 :デフォルトの名無しさん:2016/11/07(月) 02:15:23.59 ID:8BVz5aV9.net
バインディングって要するに単なる対応付けだけのことじゃないかなー。
A=1 を B=1で起こす。Bに代入されましたよ。何が? 1が。 じゃあAに入れます。
これだけのことだから、、、、
相手がGridだろうが何だろうが簡単にできると思う。

この簡単なことをわかりにくくしたのがWPFではなかろうか?
俺にはなぜこんなに複雑にするのか理解できない。W

21 :デフォルトの名無しさん:2016/11/07(月) 09:30:16.42 ID:FitVxgu/.net
今はWindowsFormとWPFってどっちが主流なの?

22 :デフォルトの名無しさん:2016/11/07(月) 09:43:19.29 ID:1ZmAoJ5f.net
WPF

23 :デフォルトの名無しさん:2016/11/07(月) 09:57:52.03 ID:euWTmbm8.net
wpfの方が騒がれてるけど結局formじゃないか?

24 :デフォルトの名無しさん:2016/11/07(月) 12:17:20.02 ID:FyIcdvIJ.net
業務アプリ以外はUWPに移行
業務系はWinFormsだろうな

25 :デフォルトの名無しさん:2016/11/07(月) 12:20:21.90 ID:fkbDdb5s.net
WPFは描画にGPU支援あるけど、恩恵なんて極わずかだしな

26 :デフォルトの名無しさん:2016/11/07(月) 12:44:44.53 ID:9i/eBlRk.net
っていうか、WPFってどんなに取り巻きが誉めそやしても裸の王様だと思うわ。
可読性がとにかく悪い。

Win Formみたいなイベントドリブンならある機能がどこで実装されているか、それを修正するためには
どこを変えればいいか、ほとんどの場合すぐに検討が付くけど、WPFだとこれがイライラの連続の
苦行そのものに堕落しちゃう

27 :デフォルトの名無しさん:2016/11/07(月) 14:03:36.25 ID:T8rwYGfS.net
UWPはネイティブ化されたから、C#やJavaなどのVM系特有のもっさり感から開放されたし
リバースエンジニアへの対応もC++と同レベルになった
問題はDataGridViewが標準でないこととリソース使用の制限などだが
そこがクリアできるなら速攻移行するべきだな

28 :デフォルトの名無しさん:2016/11/07(月) 14:24:49.81 ID:/8UUm0jP.net
やっぱりDataGridを切望してるのは日本人だけなんですかな
異常に罫線が好きな民族だからね

29 :デフォルトの名無しさん:2016/11/07(月) 14:26:53.51 ID:lMECrzfj.net
民族だよね

30 :デフォルトの名無しさん:2016/11/07(月) 14:29:08.88 ID:io5w9F+U.net
>>24
>業務アプリ以外はUWPに移行
>業務系はWinFormsだろうな
何で業務系は移行しないん?

31 :デフォルトの名無しさん:2016/11/07(月) 14:51:18.13 ID:pMvOYoph.net
業務アプリ以外はUWPに移行してるかどうかは別として
UWPはwin10必須になるからな

32 :デフォルトの名無しさん:2016/11/07(月) 15:09:36.70 ID:8BVz5aV9.net
必須とはどういう意味?

WPFは大失敗だから、いま見直ししてると思うな。もう少し頭のいい奴に考えさせる
んじゃないかな。まあすぐに消えるわ。

33 :デフォルトの名無しさん:2016/11/07(月) 15:15:37.39 ID:T8rwYGfS.net
しかしCollectionViewSourceに有った機能の殆どを「自分で実装しろ」と言う仕様変更は如何なものか

34 :デフォルトの名無しさん:2016/11/07(月) 18:02:50.76 ID:5lIwdUhD.net
>>32
読んで字のごとく、UWPはWin10じゃないと動作しない

35 :デフォルトの名無しさん:2016/11/07(月) 18:18:24.24 ID:mmljEldz.net
WindowsServerの共有フォルダに対して
一台のPCで複数のセッションを
張りたいのですが
便利なC#でも難しいでしょうか

セッション枯渇をシュミレーション
したいのですが、数十台の
物理的なクライアントを用意するのが
厳しく

36 :デフォルトの名無しさん:2016/11/07(月) 22:53:04.02 ID:UfUqh0gR.net
>>21だけど取り敢えずはWindowsFormも普通に現役っぽいからそっちを使う事にします
回答ありがとう

37 :デフォルトの名無しさん:2016/11/07(月) 22:53:34.17 ID:d19P1q1E.net
その手のはC#のライブラリで用意されてなくて結局P/InvokeでWin32APIを呼ぶことになるから、
Win32APIのスレで訊いた方が良いと思う。

38 :デフォルトの名無しさん:2016/11/07(月) 23:00:48.29 ID:GpYwrGgA.net
WPFは出てからちょうど10年たったけど全然普及しなかったね

39 :デフォルトの名無しさん:2016/11/07(月) 23:26:27.59 ID:geFZXkbd.net
>>37
やはりC#での手段は無さそうなのですね
Win32APIスレで聞いてみます
ありがとうございます

40 :デフォルトの名無しさん:2016/11/07(月) 23:46:06.46 ID:d19P1q1E.net
WPFはせっかくがんばって色々できる土台を作ったのに、完成度を上げ切れてないのが何とも勿体ない。
ReactiveProperty(MS製のオープンソース)とか標準で入っていればずいぶん作りやすくなるのに。
標準のコントロールも数が足りないね。
とは言え、WindowsFormsよりもWPFの方が楽な場合もあるから、結局両方使う。

41 :デフォルトの名無しさん:2016/11/08(火) 00:28:14.64 ID:mUYwed62.net
WPFってWinFormプロジェクトと混在して使えるの?

42 :デフォルトの名無しさん:2016/11/08(火) 00:31:06.09 ID:mUYwed62.net
>40
完成度のもんだいだろうか? そもそも根本的なところで間違ってるような気がする。
何が間違っているのかうまく言えないが、、、W

43 :デフォルトの名無しさん:2016/11/08(火) 00:41:11.17 ID:mUYwed62.net
MSのドキュメントって最近は多少ましになっては来ている部分も少しだけあるけど
ほとんどが駄目だとおもう。頭の悪い奴の書いた文章そのものって感じがする。
簡単なことを難しく書いていて要領を得ない。ワザとやってるのかなと思って
いたがそうでもないらしい。 こんなドキュメントを書くようではスッキリした
まともな言語の開発はできないと思う。
 でもC#は奇跡的に素晴らしいと思う。この素晴らしさはMS的ではないな。WPFは
MS的だと思う。

44 :デフォルトの名無しさん:2016/11/08(火) 00:51:04.50 ID:360M0HJP.net
>>41
WPFにWindowsFormsHostコントロールってのがあるので、それを利用してFormsのコントロールを使える。
その逆はやったことないけど、ElementHostコントロールを利用するらしい。

45 :デフォルトの名無しさん:2016/11/08(火) 01:21:27.86 ID:Iqb/ffmt.net
>>26
Formsの何がダメかというと意識の低い雑魚プログラマでも手が出せるところだろうな
雑魚が書くとすぐにレイヤがぐちゃぐちゃに混ざり合い重複したコードが際限なく増えていきオブジェクトから手続きの時代にタイムスリップする
油断して監視を緩めるとあっという間に手に負えなくなる
WPFは雑魚は切り捨てられてるからそういったリスクが少ない
MVVMという共通の概念を身に付けた意識の高い人材が集まるから自然とコーディングスタイルが統制されて読みやすい高品質なコードが出来る

46 :デフォルトの名無しさん:2016/11/08(火) 02:27:54.02 ID:KFsAZFmi.net
>>45
WPFのコードを読みやすい思ったことは一度もないわ。

しかし、凄い倒錯だねw
Windows Formの問題はダメな奴でもそれなりに(可読性のないコードを)書けてしまうことだというが、
それを言うならWPFの問題はまともなプログラマが書いても決して可読的にならないことだろう。

47 :デフォルトの名無しさん:2016/11/08(火) 03:24:51.90 ID:iu8f14dF.net
可読性が悪いっていってるのは XAML のこと?
それともバインドしてるプロパティがどれなのかわからないみたいなこと?

前者ならもうどうしようもないけど、
後者ならWindows Formでも同じ気がするし、
バインドとかCommandとか使わずにイベントドリブンで作る方法もあるよ。

48 :デフォルトの名無しさん:2016/11/08(火) 03:48:44.45 ID:mUYwed62.net
>47
どっちがダメかといわれても答えようがないが、ダメなものを平気で追加している
と、少しだけはいいものがあったにしてもダメになるよね。
いいものなら直観的にシンプルに説明ができると思う。

C#の属性拡張なんかも、その点ではかなり危ない。でも本体がしっかりしているので
あまり汚れが目立たない。
WPFは最初からダメでしょ。そもそも取り付けないし見通しも見えない。1日ほど
弄ってみたことがあるが、全然わからんかった。何がいいのかさっぱりわからん。
直観的に説明できないようなものって間違ってると思うよ。
こういう場合二つのアプローチがあると思う。

1.訓練してこれに慣れるという方法
2.何がダメなのか何が問題なのか発見するという方法

後者を採用する人にはこれはある意味チャンスだと思う。まあでもこれを使いこなせる
ってことは「頭いい」って証明にはなると思うから、1.のアプローチも間違い
じゃない。W

49 :デフォルトの名無しさん:2016/11/08(火) 04:02:41.99 ID:VojG/etj.net
>>43
英語を読んでる?
日本語版は機械翻訳だよ

50 :デフォルトの名無しさん:2016/11/08(火) 05:54:50.91 ID:360M0HJP.net
>>48
1日しか触ってなくてほとんど何も理解もしてないのにダメ出しってのも何だかな。
従来と仕組みが違う部分が多いから、従来の(WindowsGUIプログラムの)経験からの直観は働きにくい。
学習コストがかかるのもデメリットではあるけどね。

51 :デフォルトの名無しさん:2016/11/08(火) 07:31:09.86 ID:TXhVVjP1.net
雑魚排除といえば
VBを残し続ける理由が分からない

VB作る人的リソースを
XAML強化とかに回せば良いのに

52 :デフォルトの名無しさん:2016/11/08(火) 07:36:07.95 ID:TXhVVjP1.net
WPFはFormアプリが
健在だから使う機会がない

MSの下位互換の精神は悪いと
言わないけど、もう良いんじゃねって
技術が延々と残ってるから
嫌になる

53 :デフォルトの名無しさん:2016/11/08(火) 07:48:59.11 ID:uO4YTQEs.net
俺は最初からWPFを使ってるのでWindowsフォームの利点がわからん。
あらゆる点でWPFの劣化版のように思えるのだが。

54 :デフォルトの名無しさん:2016/11/08(火) 07:54:17.11 ID:Iqb/ffmt.net
>>48
こういう人をお断りできるだけでもすごいメリットだよな
WPF程度の難易度のフレームワークを1日で諦めるとかちょっとな
昔は多かったオブジェクト指向はよくわからないから悪もの理論の年配と同じ臭いを感じる

55 :デフォルトの名無しさん:2016/11/08(火) 08:01:23.60 ID:6Cpjtpfi.net
>>40
>ReactiveProperty(MS製のオープンソース)
Prismとごっちゃにしないでね。
ただアレは便利だわ

56 :デフォルトの名無しさん:2016/11/08(火) 08:10:26.28 ID:6Cpjtpfi.net
Formsで出来るレベルのことだけでいいなら、そりゃFormsのほうが楽かもしれんね
でも、コントロールの外観をいじりたいとかって話になると、wpfのほうがずっと楽だろ
Formsでアニメーショなどどうやってヤるんだよ

57 :デフォルトの名無しさん:2016/11/08(火) 09:36:53.50 ID:+DS6ozoh.net
だからそういう用途じゃなきゃFormsだし
そういう用途にしてもUWPに移行するって話だろ

58 :デフォルトの名無しさん:2016/11/08(火) 10:24:37.04 ID:h2p8PH96.net
>>53
例えば、Formの利点というよりWPFの欠点だけどグラフィックのパフォーマンスだね。
GDI+も登場時散々遅いと叩かれたけどWPFはその何十倍も遅い。
ググると出てくると思うけど、あまりに遅くて、2Dの折れ線グラフのような単純なものでも
データ数が多いと全く使い物にならない。
俺自身パフォーマンスの問題をどう工夫しても解決できなかったので結局GDI+で書き直すはめになった

59 :デフォルトの名無しさん:2016/11/08(火) 11:20:31.78 ID:mUYwed62.net
>50
XAML
<TextBox
Width = "100" FontSize = "30" Text = "テスト"
Background = "White" Foreground = "Blue" />

C#
textbox1.Width = 100;
textbox1.FontSize = 30;
textbox1.Background = Colors.White;
textbox1.Foreground = Colors.Blue;
textbox1.Text = "テスト";

文字少なくてよさげだけど、肝心のこの部分が隠れる。

TextBox textbox1 = new TextBox();

大事なところを隠蔽されるのはダメだよ。
プロパティを並べるのに<>で囲む必要なんてどこにあるんだよ。
という感じ。文書として保存するときなら<>つけたらいいではない?
でもエディットするときにこんなもんは不要だ。

60 :デフォルトの名無しさん:2016/11/08(火) 11:31:34.08 ID:mUYwed62.net
<TextBox
Width = "100"
FontSize = "30"
Text = "テスト"
Background = "White"
Foreground = "Blue"
/>
文書保存するときはこれは別にいいと思うけど、もともと簡単に打ち込みできるよう
になってるものを、テキストで打ち込む理由はないな。

61 :デフォルトの名無しさん:2016/11/08(火) 11:43:12.95 ID:mUYwed62.net
>47
XAMLはNetをXMLで表現するタグだけのことだろ。
それは別にそれでいいんでないか? 整理できるし。

問題はWPFっていう糞のIDEだな。見通しがきかない保存文書構造のXMLを使って
なんでプログラム組まなきゃなんないのってこと。本末転倒だろ。W

62 :デフォルトの名無しさん:2016/11/08(火) 12:00:35.75 ID:mUYwed62.net
>コントロールの外観をいじりたいとかって話になると、wpfのほうがずっと楽だろ
>Formsでアニメーショなどどうやってヤるんだよ

 楽なのは抽象度が高くなっていて、逆に言えば細かい処理はできないってことだね。
FormでできないことがWPFでできるわけじゃなくて、それなりのコントロールを用意して
楽にしているだけ。楽なコントロールが楽になってるだけ。そういうのを適宜使うって
のはありだと思うよ。アニメーションとか、、、、アニメーションとかほかにどんなもの
がある? でも.netになくてWPFだけにあるものなんてある?

63 :デフォルトの名無しさん:2016/11/08(火) 12:12:18.45 ID:mUYwed62.net
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
エディターにロードした段階でこんなタグは不要だろ。なんでこんなのがいちいち
画面を占有しているの? バカっぽいと思わん。
これがなければ余分に2行ソースが見える。W

64 :デフォルトの名無しさん:2016/11/08(火) 12:47:02.22 ID:unEOfTV3.net
>>59
なんでXAMLにすり替えてんだよじじい

65 :デフォルトの名無しさん:2016/11/08(火) 14:50:51.38 ID:CGI+nyHh.net
男だったのか

66 :デフォルトの名無しさん:2016/11/08(火) 15:14:04.09 ID:EaH/m5NR.net
GUIフレームワークなんて何使っても大差ない
根本的な設計がしっかりしてれば楽
でなければ何やっても苦痛

67 :デフォルトの名無しさん:2016/11/08(火) 16:42:41.52 ID:TdC6P0sc.net
newも、ソースの見通しとも、xmlnsについてもWinFormsではデザイナが自動生成するコードだからほとんど見ないし、自動生成コードよりはXamlのほうが優れてるだろ

WPFの問題はバインディングとかMVVMとかがなかなか難しいし、情報資産が少ないことにある気がする

少なくとも、外観やコントロールの機能いじったり、バインディングを活用するなら悪くはない

68 :デフォルトの名無しさん:2016/11/08(火) 17:07:35.31 ID:uO4YTQEs.net
>>58
そうなのか。
本当にWPFが遅いのかは限界までチューニングしなきゃわからんとは思うが、
少なくとも通常のやり方ではWindowsフォームのほうが速いというわけだな。
WPFでは勝手に画像がスケーリングされたり、
アンチエイリアシングされたりするのでそういったのを
徹底的に無効化しなきゃ速くならんからな。
画像を綺麗に見せるためなのか知らんが、
こういったマクロソフトの俺様仕様は勘弁してほしいところだわ。

>>59
そんなにXAMLが嫌いならXAMLを使わなきゃいいだろ。
そもそもXAMLはWPFとは何の関係もない。
XAMLを使わなくてもWPFプログラミングなどいくらでもできる。

69 :デフォルトの名無しさん:2016/11/08(火) 18:00:32.99 ID:mUYwed62.net
>68
えっ、そうなんだ。チュートリアルはほぼxamlの説明だけだよ。W

70 :デフォルトの名無しさん:2016/11/08(火) 18:03:46.28 ID:mUYwed62.net
一時期XMLが流行った時があって猫も杓子もXML状態になったよね。そのあと全部
失敗してXAMLはしぶとく残ってるということではないのか?

71 :デフォルトの名無しさん:2016/11/08(火) 18:52:03.52 ID:WSlpNxFl.net
もうザマリンでAndorido準拠の
プログラム作れば良いよ

WindowsPhoneのシェア0.3%で
WPFの先も無さそうだし

72 :デフォルトの名無しさん:2016/11/08(火) 18:56:36.28 ID:WSlpNxFl.net
FormアプリとVBは
Windows7までにしておけば良いのに

共に役目は終えたし
MSはリソースを少し集中しようよ

モバイルじゃシェア失ってるんだし

73 :デフォルトの名無しさん:2016/11/08(火) 20:25:06.49 ID:UoXgnYKD.net
Win32API時代から自分で描画するコントロールを作っていくのが好きすぎて未だにやめられない

74 :デフォルトの名無しさん:2016/11/08(火) 20:40:02.61 ID:RPJf2WNu.net
WinFormは趣味グラマにとってぬるま湯で居心地がいいw
IDEのおかげで下手なスクリプトより楽だし

75 :デフォルトの名無しさん:2016/11/08(火) 20:51:54.08 ID:360M0HJP.net
>>55
すまん。完全にごっちゃになってた。

>>59
その例だとXAMLにx:Name="textBox1"が抜けてるぞ。
XAMLでの<TextBox>タグの宣言こそが、TextBox textbox1 = new TextBox();
に相当するってだけで、別に隠しちゃいない。

76 :デフォルトの名無しさん:2016/11/08(火) 20:58:12.04 ID:RPJf2WNu.net
ついでに流れに乗っておくと
>>58
WPFはGDI+(WinForm)よりもグラフィック関連は速くなるものだと思っていた
WinFormは扱うデータサイズが大きくなると消費するメモリサイズが飛躍的に増えるんで、グラフィック関連は扱うのにあまり適していないんだよな

77 :デフォルトの名無しさん:2016/11/08(火) 21:15:33.89 ID:360M0HJP.net
>>76
あるポイント数を超えるとまったく実用じゃないくらい遅くなるね。
ポイント数が多くてスピードが要求される場合は、DirectXを使って高速描画出来る有償のコントロールを買うしか無さそう。

数年前の資料だけど、各種チャートコントロールの性能比較
WPF Charting Performance Comparisons (the Battle Continues)
http://blog.scottlogic.com/2012/04/24/wpf-charting-performance-comparisons-the-battle-continues.html

78 :デフォルトの名無しさん:2016/11/08(火) 23:17:39.44 ID:6Cpjtpfi.net
ポイント数が多くてスピードが要求されるなら、データを間引いたほうが現実的じゃなかろうか?
データ視覚化なら2、300もアレば十分だろ

79 :デフォルトの名無しさん:2016/11/08(火) 23:28:48.20 ID:o3gm2pi/.net
そんな高度なことができるわけないだろ

80 :デフォルトの名無しさん:2016/11/08(火) 23:52:00.16 ID:6Cpjtpfi.net
>>79
もうちょっと頑張れ

81 :デフォルトの名無しさん:2016/11/09(水) 00:13:40.23 ID:HQuuA4JA.net
>>49
他のベンダーのヘルプとか見たことないんだろ
MS なんてかなりまともな方だと思う

82 :デフォルトの名無しさん:2016/11/09(水) 01:04:00.05 ID:SotHgA9V.net
>>78
系列が少なければね。

83 :デフォルトの名無しさん:2016/11/09(水) 01:09:36.44 ID:SotHgA9V.net
>>62
知らないのに当てずっぽうで書いてるのが良く分かるな

84 :デフォルトの名無しさん:2016/11/09(水) 02:23:18.79 ID:pYqjQFAT.net
>77
イケてるやないか。 でもデータバインディングやったらボロボロ。W

85 :デフォルトの名無しさん:2016/11/09(水) 02:57:40.95 ID:pYqjQFAT.net
>に相当するってだけで、別に隠しちゃいない。

隠すつもりがなくても視認性が悪いから隠れるんだな。これが、、

WPFの肝は
1.UI部分は XAML で記述
2.実行コードは C# または VB
3.グラフィックス描画は DirectX
4.データドリブン的なものをデータバインディングでやる

1.と4.が手抜きでいい加減だから全然だめ。
1が駄目だから2を書こうにもどう書いたらいいのかわからないというジレンマ
4がダメだから遅いし使いにくいし使い物にならないしトータル的には失望を加速
している。

料理の材料はまあこんなものでいいというか素材は素晴らしい。しかし集めて料理
するんならもっと一つ一つを丁寧に作りこまなくてはだめだろ。これじゃ味の
バランスが悪くて料理になってない。もうひと手間かけるのができないんだよな。
最後までやりきることができない。思い付きと能書きは立派。W

86 :デフォルトの名無しさん:2016/11/09(水) 03:24:51.72 ID:pYqjQFAT.net
<Window x:Class="SliderTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Background="LightBlue">
<Grid>
<TextBox Height="24" HorizontalAlignment="Left" Margin="30,19,0,0"
Name="textBox1" VerticalAlignment="Top" Width="72"
Text="{Binding ElementName=slider1, Path=Value}"/>
<Slider Height="22" Margin="28,64,20,0" Name="slider1" VerticalAlignment="Top" />
</Grid>
</Window>

この書き方は糞
Text="{Binding ElementName=slider1, Path=Value}"/>

こうなるのが正解。
Text="{Binding slider1.Value}"/>

87 :デフォルトの名無しさん:2016/11/09(水) 04:07:40.94 ID:pYqjQFAT.net
ファンクションキーのイベント発生に見れるセンスのなさ
こんな書き方はどんだけ糞か? ネーミングのセンスがまるでない。
PreviewKeyDown="Window_PreviewKeyDown"

これがセンスのいいなまえ
FunctionKey = "KeyDown"
もしくは
KeyDown="FunctionKey"
KeyDown="F1"
など

88 :デフォルトの名無しさん:2016/11/09(水) 04:26:59.85 ID:pYqjQFAT.net
プロパティ値の継承に見る手抜き
 プロパティ値が割り当てられていない子要素がある場合、プロパティ値の設定がある
最も近い親要素の値を割り当てる。W 

まあこういう問題が発生するのも、手抜きが手抜きを生むことの良い例だ。ボタンコン
トロールひとつを表すのに手近な要素をかき集めて作りあげるという手抜きをしたこと
で、イベントがうまく取れないという問題が発生した。そこでイベントルーティング
という新たな手抜き概念を導出してしかもプロパティ継承という誤魔化しまでしなくて
はならなくなった。
 トンネル、バブル、ダイレクト イベント一つにこんだけ複雑なことをする羽目にな
ったのも、最初に行ったわずかな手抜きが原因なのだ。

89 :デフォルトの名無しさん:2016/11/09(水) 04:29:27.99 ID:9orsc4MQ.net
>>86
>>87

業務で使う場合はViewとViewModelをきっちり分けるよ
なのでバインディング式は下記のように
<TextBox Text={Binding ResultMessage} />
シンプルになる。

View内の他の要素の値をバインドするなんて
滅多にないから(デバッグ時くらい?)、{Binding ElementName=slider1, Path=Value}
みたいな冗長な書き方はいいと思う。

装飾系も普通はResourceDictionaryにまとめる。TextBoxタグ内にゴテゴテ書いたりしない
<Window.Resources>
 <ResourceDictionary>
  <Style TargetType="TextBox">
   <Setter Property="VerticalContentAlignment" Value="Center" />
   <Setter Property="HorizontalAlignment" Value="Left" />
   <Setter Property="Foreground" Value="{StaticResource GlobalForeground}" />
  </Style>
 </ResourceDictionary>
</Window.Resources>

キー押下時のイベント発生もViewはCommandをViewModelに発行するだけだね
<Window.InputBindings>
 <KeyBinding Gesture="Ctrl+T" Command="{Binding MenuOpenCommand}" />
</Window.InputBindings>

イベント発生時の処理内容をxaml.csに記述したりはしない

90 :デフォルトの名無しさん:2016/11/09(水) 04:36:52.64 ID:pYqjQFAT.net
データバインディングに見る手抜き
「WPF のデータバインディングはこれだけで 1 冊の本が書けるほど面倒です。」という
関係者。たったこれだけで関係者が本を書いて10年は食える飯のタネになる。W

WPFにおけるデータバインディングの重要性と可能性はこの限りにおいては非常に成功
している。テーマとしては食いつきがいい。「これさえマスターすれば、あとは
データを流し込むだけで自動的に表示してくれる」
魅力的なのだ。
食いつきがよくて、複雑怪奇な場合には関係者は情報を小出しにすればかなり長期に
わたってよい飯の種になる。

91 :デフォルトの名無しさん:2016/11/09(水) 04:37:26.02 ID:pYqjQFAT.net
さあ寝よう。おやすみ

92 :デフォルトの名無しさん:2016/11/09(水) 07:27:40.65 ID:ccPtaul1.net
>>91
そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな?
x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな

つか、アンタの言い分はイソップ童話の酸っぱいブドウそのものです

93 :デフォルトの名無しさん:2016/11/09(水) 07:54:15.04 ID:TlbuxVnv.net
個人的にUWPに偏見を抱いている理由はOneNoteが糞なせい
OneNoteの糞さはUWP無関係だと思うが、自分の観測範囲にUWPの実用サンプルがそれしかないので
どうしても印象が引っ張られる

94 :デフォルトの名無しさん:2016/11/09(水) 09:17:12.31 ID:KnEUpDo2.net
XAMLに親を……

95 :デフォルトの名無しさん:2016/11/09(水) 09:17:36.57 ID:SotHgA9V.net
>>87
KeyDownってイベントは別にあるぞ

>>88
もはや言いがかりのレベルだな

96 :デフォルトの名無しさん:2016/11/09(水) 12:09:48.16 ID:pYqjQFAT.net
>89
どんな糞言語でも本質をよく見極めてセンス良く使う人はいるものだよ。

しかしそこに到達するまでにどんだけ時間がかかるというのだ。俺なんかわけわからん
から右往左往するばかりだよ。

せめてBlendをまともに作ってくれれば、それなりにUIの問題は解決するのにな。
Blendも糞だろ。W 最近のは使ってないからわからんが、、、

97 :デフォルトの名無しさん:2016/11/09(水) 12:10:37.11 ID:pYqjQFAT.net
>そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな?
>x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな

今度はUWPかよ。小出しにするなー。つまりWPFは糞だったと認めるんだな。W

98 :デフォルトの名無しさん:2016/11/09(水) 12:12:21.25 ID:C35LXred.net
UWPは互換性取るために使えない機能が多すぎてFormやWPFと比較する気にもなれない

99 :デフォルトの名無しさん:2016/11/09(水) 13:18:01.59 ID:imHVERPt.net
で?。W

100 :デフォルトの名無しさん:2016/11/09(水) 13:24:22.96 ID:13V/HCY3.net
またストアアプリみたいにいつ梯子外されるかわからないUWPに手を出す人は
よっぽどお勉強好きなんだろうなw

仕事ならしょうがないけど自分の時間使って勉強する気にはなれんわ

101 :デフォルトの名無しさん:2016/11/09(水) 13:44:46.30 ID:U6OuotlL.net
WPFに手だしちゃった人ならいけるでしょ

102 :デフォルトの名無しさん:2016/11/09(水) 16:05:04.67 ID:L45XBX69.net
>>87
コードビハインドにイベント書くことはおすすめされないし、そもそもPreviewKeyDownってFunctionキーのイベントを受け取るためのイベントじゃないぞ?
WinFormsにも同じ名前のイベントあったじゃん

WPF以前の根本的な能力がかけてるんじゃね?

103 :デフォルトの名無しさん:2016/11/09(水) 19:12:41.31 ID:UPD5ANvk.net
UWPって多重起動できるんですか?

104 :デフォルトの名無しさん:2016/11/09(水) 19:23:20.90 ID:c1gJ8Ir2.net
Windows10のPCは買ったけど、予備にした古いPCで動かす事を考えたらUWPは使いたくないな
まだ動く7とXPのPCがあるからな

105 :デフォルトの名無しさん:2016/11/09(水) 20:02:19.12 ID:xK7OwzcU.net
WPFやってないんだが、そもそもXAMLは人間が見る必要のあるものなのか?
VSのデザイナやBlendがダメすぎるのか?
フォームでさえ、.Designerの中身なんてほぼ見る事ないのに

人間が生のXAML見たり編集したりしないとダメならそら普及しないなと思うが

106 :デフォルトの名無しさん:2016/11/09(水) 20:09:14.52 ID:y+VOBp5j.net
XAMLはなにもかもXML(?)で記述できるようにしようとして失敗してる感じ
レイアウトだけにしとけばいいのに

107 :デフォルトの名無しさん:2016/11/09(水) 20:09:22.06 ID:knOh/4SR.net
データバインディングが遅いとかいって大量データをなんの工夫もなく描画する画面を引き合いに出す人ってたまにいるけどあれって悪意があってやってるの?

108 :デフォルトの名無しさん:2016/11/09(水) 21:24:36.59 ID:WmFTPhhE.net
普通、設定ファイルを、人が直接いじったりしない

Godot(ゴドー)などのゲームエンジンでは、IDEの右側にある、
インスペクタービューで、プロパティなど設定する

オブジェクト同士の衝突判定・イベント通知なども、同じ

109 :デフォルトの名無しさん:2016/11/09(水) 21:25:12.33 ID:TlbuxVnv.net
どこぞのフレームワークで「人間にXMLを書かせるなんて虐待です」って書いてるのがあったけど
ほんとその通り

110 :デフォルトの名無しさん:2016/11/09(水) 23:41:49.58 ID:7n7DDFeG.net
つうかここってC#+Windowsフォームしかやってないやつばかりなの?
XAMLはそもそもWPFだけのもんじゃないんだが。
Silverlightにも使われていたしUWPにも使われてる。
そしてC#だけじゃなくVBにも使われてる。
つまり、言語やクラスライブラリなどから分離できるものは分離しようっつーのがXAMLでしょ。
C#/VBとXAMLの関係はJavaScriptとHTMLの関係と似てる。
XAMLを批判してる奴ってほんとにXAMLを理解してんの?

111 :デフォルトの名無しさん:2016/11/10(木) 00:11:40.20 ID:TlbdJV8L.net
1日で挫折したのにここまで批判できる >>48 はすごい人

112 :デフォルトの名無しさん:2016/11/10(木) 00:22:28.24 ID:4pFcdHJl.net
JavaScriptとHTMLではなくJavaScriptとJSONの方が近いな
XAMLはただのシリアライズフォーマットの1つでしかない
WPFと関係ない普通のオブジェクトもXAMLにシリアライズできる
そんでXAMLはJSONと違って型とアセンブリの情報を持つ
UIデザインを宣言する手段として考えると書きにくいXAML形式よりシンプルでインテリセンスもよく働くC#コードの方が優れているのは確かだろう
しかしそうではなく可視性と可搬性のある普遍的なシリアライズフォーマットとして考えるとXAMLがXMLを採用したのは自然な帰結と言える
可視性のためにはテキストでなければならない
可搬性と普遍性では対抗馬としてJSONがあるがJSONはシンプルすぎて表現力がちょっと物足りない
となるとXMLは妥当な選択と言っていい
新しい時代に乗り遅れてXMLにしたわけでもないし虐待目的でXMLにしたわけでもない
XAMLの目的に合致するフォーマットではXMLがベストだったというだけの話なんだ

113 :デフォルトの名無しさん:2016/11/10(木) 00:29:57.49 ID:ApowNrKS.net
wpf使うならelectronでいいや感ある

114 :デフォルトの名無しさん:2016/11/10(木) 01:16:39.44 ID:Co+DcSGG.net
AndroidStudio使っててもXMLは出来るだけいじりたくないw

115 :デフォルトの名無しさん:2016/11/10(木) 01:52:09.10 ID:aHkFnxeg.net
>102
ん?
それは考え方に矛盾があるだろ。UIを切り離すのが目的なら、切り口がシンプルで
綺麗なほうがいい。
例えばスクロールバーと連動して値を表示する場合なんてUI内でまとめて片づけて
しまったほうがいい。
ほしいの値だけで、処理側からしたらくだらないイベントなんて見えないほうがいい。
そっちでまとめてやってほしい。

116 :デフォルトの名無しさん:2016/11/10(木) 01:52:28.80 ID:aHkFnxeg.net
>XAMLを批判してる奴ってほんとにXAMLを理解してんの?

理解できないなから文句を言ってるんだよ。機械が簡単に理解できるからって
人間にそれを押しつけるのは間違い。
XAMLってのは単なるテキスト文書じゃない。プログラム全体から複雑なUIを切り離して
表現するという目的がある。複雑なUIは手打ちで入力するようなものじゃない。

UI={動作、表現、パラメータ、、、、}+窓口

プログラム=>窓口

UIの窓口さんにいえば{、、、}なかはわからなくても大体処理できる。そういう関係
なわけよ。窓口が美人でテキパキしてないとダメだろ。
時々あるんだが、大企業の開発部に電話してるのに田舎のおばちゃんみたいなのが
窓口で
「はあ、田中さんは今日はおらんよ、どっかに出張するからって鞄を下げて出て行った
よ」
みたいな感じな。
XAMLの美人の窓口さんはどこ? ねえ

117 :デフォルトの名無しさん:2016/11/10(木) 02:08:02.40 ID:CCFq8Qep.net
>>111
批判って言うより、ほとんどいちゃもんだけどな。

118 :デフォルトの名無しさん:2016/11/10(木) 02:16:50.13 ID:lTw5QLQW.net
長文マンは無駄に下手な比喩ばっか使って文意がわかりづらいな

119 :デフォルトの名無しさん:2016/11/10(木) 02:20:15.15 ID:aHkFnxeg.net
じゃあ具体的に書いたろか

textBox1.Text = "Hello, World!"
これでいいのに

public class Data
{
public string TextHelloWorld
{
get { return "Hello, World!"; }
}
}
example.xaml
<TextBox Text="{Binding Path=TextHelloWorld}" />

これだもんな。W
XAMLがデータを取りに行ってくれる。一見便利だが、いちいち細かい指示を出して
説明してやらんと分からんやつだから、教えるほうが手間。自分でHello!!て
書いたほうがなんぼかまし。
あれだ、パラダイムシフトだなんだって言ってるが、シフトダウンだよな。

120 :デフォルトの名無しさん:2016/11/10(木) 02:26:27.64 ID:wdbpo9Rt.net
それXAML側でName="textBox1"と定義してやれば、this.textBox1.Text = "Hello, World!"で済むだろ

121 :デフォルトの名無しさん:2016/11/10(木) 02:30:19.81 ID:YdauEkQ9.net
WPFとFormを同じXAMLから生成出来ればもっと使い道もあるんだけどな

122 :デフォルトの名無しさん:2016/11/10(木) 02:31:25.72 ID:aHkFnxeg.net
比喩だとわからんか?
窓口ってのは会社の顔だよ。XAMLの顔はというとBindingだ。ここが窓ぐち。
こいつが田舎もんだから、、、、W

123 :デフォルトの名無しさん:2016/11/10(木) 02:33:21.09 ID:4pFcdHJl.net
>>122
でもそれってXAML関係ないじゃん
なんでさっきXAMLディスってたの?

124 :デフォルトの名無しさん:2016/11/10(木) 02:33:22.15 ID:wdbpo9Rt.net
わざとミスしてレスが欲しいのか自分の主張を通したいのかどっちなのよ

125 :デフォルトの名無しさん:2016/11/10(木) 02:55:22.89 ID:bu4ikKWV.net
>>119
ぇ、それだけじゃXAMLは取りに行かないよ。
Dataクラスからの通知機構は無いの?

126 :デフォルトの名無しさん:2016/11/10(木) 03:08:35.71 ID:zCCtWAZL.net
>>115,116
?例が適当すぎて言いたいことがわからん
スクロールバーと連動して値を表示するのはバインディングで済むからUIのイベントなんて使わないだろ

UIを切り離すんじゃなくて、VとVMを切り離すのが目的

127 :デフォルトの名無しさん:2016/11/10(木) 03:17:22.84 ID:zCCtWAZL.net
>>119
バインディングする意味のないソースを出されても

さっき言ったスクロールバーとその値を表示するテキストボックスの例を見ればいいんじゃない?
バインディングを使わないとイベントを利用してそれぞれの値を相互に書き換える必要があって面倒とかそういうの

128 :デフォルトの名無しさん:2016/11/10(木) 06:37:59.52 ID:B4277xpo.net
XAMLを批判したいけどちゃんと理解してないから筋の通った批判ができない悲しさ

129 :デフォルトの名無しさん:2016/11/10(木) 07:36:13.26 ID:o8sMendu.net
>>126
例えばGridSplitter付きのパネルの開閉をアニメ付きでヤるとしたら、xamlじゃとても書けないけど
VMにやらせる仕事じゃないって場合とか、BringToViewなんかもViewで完結させるべき仕事だね
ビヘイビアやトリガーアクション使ってもいいけど無理やり突っ込むこともない

130 :デフォルトの名無しさん:2016/11/10(木) 07:51:19.71 ID:aHkFnxeg.net
<TextBox Name="Text1" Height="23" Width="70" Margin="5"
HorizontalAlignment="Left" VerticalAlignment="Top"
Text="Button" />

<Button Name="btn1" Content="{Binding Text1.Text}" Height="23" Width="70"
Margin="5,35,0,0" HorizontalAlignment="Left" VerticalAlignment="Top"
Click="Button_Click"/>

ちっともBindingせんがーーー。W
エラーもでんし。

131 :デフォルトの名無しさん:2016/11/10(木) 07:53:05.39 ID:aHkFnxeg.net
>128
このバインドの書き方のどこが筋が通ってないんや?

132 :デフォルトの名無しさん:2016/11/10(木) 08:11:55.57 ID:aHkFnxeg.net
this.DataContext =this;
 そうだこれがぬけてると検索場所が特定できんのだ。
私は私ですから私を検索してくだされ。

えっ、これでもやっぱりだめ。

133 :デフォルトの名無しさん:2016/11/10(木) 08:24:57.67 ID:o8sMendu.net
彼の言うXamlの欠点とやらは、マークアップ言語ならどれでも持っているもので
xamlはhtmlと比べたら格段に進歩した代物だ

まあこんなケチを付けているんだから
htmlなんて触ったことない化石プログラマーなんだろうね

134 :デフォルトの名無しさん:2016/11/10(木) 08:57:47.72 ID:aHkFnxeg.net
マークアップの欠点とBindingの欠点と、、、と幾つかの欠点を併せ持っているという
ところが味噌。

135 :デフォルトの名無しさん:2016/11/10(木) 09:16:40.69 ID:o8sMendu.net
可読性を問題にしていたはずが、ロジックとマークアップが混在するhtmlを批判せずに
それを解決する方法のBindingにケチをつける

化石の末期だなw

136 :デフォルトの名無しさん:2016/11/10(木) 09:43:37.91 ID:aHkFnxeg.net
<Window.Resources>
<SolidColorBrush x:Key="MyBrush" Color="Blue"/>
</Window.Resources>
ボタンのインスタンスIDはNameでリソースの場合hx:Keyかよ。笑かすな。W

137 :デフォルトの名無しさん:2016/11/10(木) 10:15:41.71 ID:aHkFnxeg.net
物事を識別するには名前が肝心である。名前は適切で少ない方がいい。

大本の識別機構の混乱
XAMLコード中でIDictionaryインターフェイスを実装する要素に子要素を追加する際には
x:Key 属性の指定が必須
 ただし、Styleクラス(System.Windows名前空間)のように、クラスにDictionaryKeyPropertyAttributeを付与して、(x:Key 属性の)代替となるプロパティ(Styleクラスの場合はTargetTypeプロパティ)を設定しているクラスの場合には、x:Key属性 を省略可能。
Styleクラスでは、x:Key 属性の代替としてTargetTypeプロパティを利用している。

高々リソースに名前振るだけで、、、ぷっ。

138 :デフォルトの名無しさん:2016/11/10(木) 10:16:51.48 ID:aHkFnxeg.net
>135
無批判に受け入れるのはよくない。「飼いならされて、食用にされる家畜」だよ。
In the world's broad field of battle,
In the bivouac of Life,
Be not like dumb, driven cattle !
Be a hero in the strife !

139 :デフォルトの名無しさん:2016/11/10(木) 10:29:24.03 ID:aHkFnxeg.net
@ITデータバインディングを理解する。
http://www.atmarkit.co.jp/ait/articles/1010/08/news123.html
1ページ何を言ってるのか全然わからん。突っ込みどころが多すぎて、突っ込む気にもならん。
それとも誤字脱字が多いのかな?なんか説明が間違ってるだろ。論理がつながっていない。

うちのばあちゃんにでもわかるように説明してみろや。

{Binding X} という書き方は、{Binding Path=X} と同じ意味である。
藁、「同じ意味である」って、そんなら最初から一つに絞っておけよ。

{Binding Path=X} いらんだろ。
BindingにPath以外のプロパティはないんだろ!! 最初からBindingでいいだろ
パスもプロパティもいらんわ。

140 :デフォルトの名無しさん:2016/11/10(木) 10:43:36.65 ID:aHkFnxeg.net
 外部リソースを取り込むには、<ResourceDictionary>要素にSource属性を付ける
<Window.Resources>
<ResourceDictionary Source="Styles.xaml"/>
</Window.Resources>

includeにしろよな。常識だろ。

141 :デフォルトの名無しさん:2016/11/10(木) 11:38:19.49 ID:ElAt+S/3.net
質問です
フォームにプロパティグリッドがあります
プロパティグリッドの中でCtrl+Zを押したときに
普通はプロパティグリッドが持っているアンドゥが呼ばれますが
これをフォームの独自のアンドゥ・メソッドを呼び出すようにしたいのですが、
どうすればいいですか?

142 :デフォルトの名無しさん:2016/11/10(木) 12:03:59.07 ID:dRW/oH8h.net
>>141
思いつくのは、IMessageFilterを使ってWM_KEYDOWNでCtrl+Z拾ってやることかな
入力中のコントロールをControl.FromHandleで取れたら幸い

143 :デフォルトの名無しさん:2016/11/10(木) 12:19:50.11 ID:CCFq8Qep.net
>>139
Pathは省略可能ってだけで、他にもプロパティあるし。
自分で張ったリンク先の2ページ目にも書いてあるだろ。

144 :デフォルトの名無しさん:2016/11/10(木) 12:41:10.63 ID:lWSBQV9X.net
>>116
理解できない自分の頭を呪いな

145 :デフォルトの名無しさん:2016/11/10(木) 12:59:35.96 ID:otGHoxmh.net
>>142
.NET1.1の頃からそんなのあったのか
まったく知らなかったw

しかし、IMessageFilterっていうかApplication.AddMessageFilterって結構恐ろしい仕組みだなw
NativeWindowの方が安全な気がするんだけど

146 :デフォルトの名無しさん:2016/11/10(木) 13:07:51.76 ID:ElAt+S/3.net
>>142
IMessageFilterでCtrl+Z拾ってできました
ありがとうございます

147 :デフォルトの名無しさん:2016/11/10(木) 14:50:01.95 ID:zCCtWAZL.net
>>139
結局、言われた指摘には何も返せず自分が理解できないのに適当に騒いでるだけじゃん
C言語とかやったら配列があればポインタいらないじゃん!とか騒いでそう

省略可能な記述についても、html5とかの仕様を見たらhtmlとかbodyとかのタグいらないじゃん!とか叫びそう
http://qiita.com/labocho/items/54fd70c73ced35c8ba49

148 :デフォルトの名無しさん:2016/11/10(木) 15:34:39.47 ID:aHkFnxeg.net
グダグダ言わずに、本質はどういうことかを捉えてどう説明できるかが問題やな。
Bindingの本質はというと要するにXamlのText="{Binding pName}" が意味するのは

var bind = new Binding("pName") { Source = per };
  text1.SetBinding(TextBox.TextProperty, bind);

この二つの処理やないか。こいつを省略形で書いてるだけのことやろ。
チュートリアルでちゃんとこう言うように書けよな。そしたら3秒でわかるのに。
原辰。

149 :デフォルトの名無しさん:2016/11/10(木) 15:45:02.09 ID:aHkFnxeg.net
>143
1pが意味不明なので2pは見てなかった。

しかもインテリセンスが糞やからPath以外のプロパティがあるのかないのかわからん。
あくまでも
「BindingのプロパティはPath以外に無い」という前提、仮説の下でケチつけてる
わけであって、それはチャンと明記している。W

一遍にりかいするんは難しい。

OneWay ソースからターゲットへの一方通行の同期になります。
TwoWay ソースとターゲットの双方向の同期になります。
OneWayToSource ターゲットからソースへの一方通行の同期になります。
OneTime ソースからターゲットへ初回の一度だけ同期されます。

モードがあるじゃないか。ならインテリセンス効かせろや。

150 :デフォルトの名無しさん:2016/11/10(木) 15:59:51.17 ID:aHkFnxeg.net
しかしBinding部分は顔だし肝なのにここを
 正確に説明できん
 プロパティのインテリセンスも出せん
とか、要するに自分の頭で考えたものじゃなくて、アッチコッチから借りてきた借り物をくっつけ
て作り上げてるからだろ。ほんとうのところが正確に把握できてないんだよな。

151 :デフォルトの名無しさん:2016/11/10(木) 16:05:52.04 ID:aHkFnxeg.net
内容が変更したときにはどうすんの?
 INotifyPropertyChangedインターフェースを実装
 DependencyPropertyにしてしまう (インスタンスを生成したスレッドのみに限定される)
二つの方法がある。

PropertyChanged(this, new PropertyChangedEventArgs("pName”));
プロパティの変更でこれをやってやればいい。

なんやねん。結局イベント処理は書かなだめやないか? どんだけのメリットがあるか。W

152 :デフォルトの名無しさん:2016/11/10(木) 16:10:01.34 ID:ApowNrKS.net
ラムダ君
LINQ君
XAML君←new

153 :デフォルトの名無しさん:2016/11/10(木) 16:33:44.59 ID:aHkFnxeg.net
結局普及しないのは、関係者がちゃんと理解できていないのではないかな。
WEBを見たら、いろいろと説明が書いてるがどれも分りにくい。

C#でもVBでも1日も触っていたら、そこそこ使えるようになる。うろ覚えでも
プログラムはできる。
 WPFは説明が中途半端なので肝の部分がはっきりしない。

バインディングするんならイベントもちゃんとバインディングしないとだめだわ。
バインディングを間違っていても反応なしだしな。W エラーすらチェックできてない。
中途半端。

154 :デフォルトの名無しさん:2016/11/10(木) 17:47:19.45 ID:riiUw9jl.net
>>152 命名のXAML君は、staticおじさんと同じ加齢臭がする

155 :デフォルトの名無しさん:2016/11/10(木) 17:49:55.89 ID:ApowNrKS.net
ラムダとLINQも新しいことを拒絶するstaticおじさんだろうな

156 :デフォルトの名無しさん:2016/11/10(木) 19:15:21.25 ID:pqjjw4yY.net
ラムダとLINQの時は使うなとか言っているやつがいたからな
拒絶するのは勝手だがいちいち布教しようとするのはウザイ

157 :デフォルトの名無しさん:2016/11/10(木) 19:22:39.57 ID:CGPJd07S.net
IEでニコ生みたいなストリーミング動画を見る際に、動画データがメモリーに展開する前にデータをリアルタイムでキャプチャするにはどうしたらいいでしょうか?

158 :デフォルトの名無しさん:2016/11/10(木) 19:23:04.26 ID:ApowNrKS.net
C#のLINQは名前が他の言語と違うから一瞬迷う

159 :157:2016/11/10(木) 19:31:03.19 ID:CGPJd07S.net
すみません分かりづらかったです。
IEで動画見ながら、IEがダウンロードしてるデータがストリーミング動画かどうかを判断して、動画ならIEの画面に表示される前に手を加えたいんです。

160 :デフォルトの名無しさん:2016/11/10(木) 19:36:34.41 ID:hirKpSKv.net
ストリーミング中の動画に手を加えられるだけの技能があるのがすごい

161 :デフォルトの名無しさん:2016/11/10(木) 20:17:59.57 ID:13nZCkn2.net
使う価値があると思えば使えばいい
自分が使うのは無理だ参りましたと思ったら使わなければいい
ただどちらを選択したかは別に他人に伝えなくていい

162 :デフォルトの名無しさん:2016/11/10(木) 22:17:57.52 ID:c1KzPo7d.net
>>159
現実的な内容じゃない
基本的に無理
プロキシ―作っても動画をいじれる技量が君にあるとは思えない

163 :デフォルトの名無しさん:2016/11/10(木) 23:07:13.32 ID:pEVMYV3p.net
IEに、そういうプラグインがあるのか、探してみれば?

IEは、オープンソース(OSS)じゃないから、改造するのは難しい。
OSSは、Firefox, Chromium, Safari

Atom, Visual Studio Code, Electron は、Chromiumを使っている

164 :デフォルトの名無しさん:2016/11/11(金) 03:04:38.37 ID:+gNs9Nbk.net
>>153
君はWPFどころかC#もよく理解できてないみたいだから、C#入門書からスタートするのがおすすめ

165 :デフォルトの名無しさん:2016/11/11(金) 04:07:56.66 ID:KgVthd+h.net
>157
ストリーミングをやるコンポーネントはあるだろ。そのデータ取り込み部分を
バッファリングして中を加工すればいいだけだろ。W
画像認識をするのかな?

166 :デフォルトの名無しさん:2016/11/11(金) 07:05:40.26 ID:KgVthd+h.net
MVVMのICommandの使い方
ICommandを実装する理由はなんだ?
 ttp://www.atmarkit.co.jp/ait/articles/1011/09/news102_3.html
これは読んでいくとよくまとまっているが、これだけでは難しすぎて
何を言ってるんかわからん。まるでMS。

そもそもICommandってなーに?

1. 処理の実行可否を状態として持つ、また状態の変更を通知
2. XAMLからメソッドの呼び出しはコードビハインドしか利用できないが、ICommandはバインドが利用でき別クラス(ViewModel)の処理を呼び出すことができる
中身は
public interface ICommand
{
void Execute(object parameter);
bool CanExecute(object parameter);
event EventHandler CanExecuteChanged;
}

167 :デフォルトの名無しさん:2016/11/11(金) 07:07:03.74 ID:zUQAdwQM.net
イベントを再定義したかった人生だった(Command辞世の句)

168 :デフォルトの名無しさん:2016/11/11(金) 07:08:21.41 ID:KgVthd+h.net
いい例がある。これならわかる。これを逃してしてしまうと永久にわからないというほどの
優れた例を提示しておく。

優れた例
XAML
<TextBox Text="{Binding Name}"/>
<Button Content="実行" Command="{Binding ExecuteCommand}"/>
<Label Content="{Binding Result}"/>

ViewModel
  public DelegateCommand ExecuteCommand { get; }
public MainWindowViewModel(){
ExecuteCommand = new DelegateCommand(() => Result = "登録OK", CanExecute);
}
private bool CanExecute(){
return !string.IsNullOrWhiteSpace(Name);
}
private string _name;
public string Name{
get { return _name; }
set { if (OnPropertyChanged(ref _name, value)) ExecuteCommand.RaiseCanExecuteChanged();}
}

169 :デフォルトの名無しさん:2016/11/11(金) 07:09:49.57 ID:KgVthd+h.net
肝:DelegateCommandをプロパティとして公開
  コンストラクタの中でインスタンス化

() => Result = "登録OK"
これはなんやねん? このアクションの書き方がわからんなーという人。
ラムダ式、、、初めて聞いた?

170 :デフォルトの名無しさん:2016/11/11(金) 07:13:06.18 ID:KgVthd+h.net
>君はWPFどころかC#もよく理解できてないみたいだから、C#入門書からスタートするのがおすすめ

C#の方が難しいわ。まあでも何とか動かせる。WPFもBindingだけわかったので何とか
使えるレベルにはなったな。

問題はMVVMパターンだな。
MVVMじゃなくてM-VM-VかV-VM-Mでないとだめだよな。VVMMの方がいいと思う。

171 :デフォルトの名無しさん:2016/11/11(金) 07:23:51.87 ID:KgVthd+h.net
WPF攻略方法
1.Bindingの理解
2.「優れた例」でVVMM(またはMVVM)を理解する こっちはまあボチボチでもOK

MSの文書は酷いがIT−PROの文書は体裁としてはよくまとまってはいるが説明が難しい。
 第一に例が悪い。
 第二に例にセンスがない。
 第三に例の説明が下手。
単純化したシンプルな例で示さないと「俺はこんなにすごいんだぞ」みたいな
複雑な例では分からん。

172 :デフォルトの名無しさん:2016/11/11(金) 08:31:34.35 ID:KgVthd+h.net
MVVMのVMってわざわざ苦労してクラスをつくる必要あるんか?
コードビハインドをVMにしたらいいんではないか? VとのIFはここで全部やった
らいいと思うがな。
なんか必要性がいまいちわからんなー。

173 :デフォルトの名無しさん:2016/11/11(金) 08:51:31.09 ID:qDFZLZyC.net
>>172
必要性が何なのかちゃんと調べたのかい?

174 :デフォルトの名無しさん:2016/11/11(金) 09:40:30.93 ID:yIFyhkZ0.net
DIコンテナを導入すると、VMとMの2層構造のありがたみが実感できるんだけどな

175 :デフォルトの名無しさん:2016/11/11(金) 09:43:11.94 ID:M2uBl8fv.net
>>169
ラムダ式は、Java, JS, Rubyなど、たいていの言語にある

例えば、独自の方法で、ソートしたい場合、先に比較関数を定義してから、
その関数を引数として、sort()に渡す

比較関数{ ここで定義する };
sort(比較関数);

ところが、先に定義するのは面倒だから、sort()の引数の所で、
匿名(無名)関数として定義して、そのまま引数として渡せれば、簡単。
それの糖衣構文で、関数宣言も無くしたのが、ラムダ式

JSで書くと、
var a = ["Hydrogen", "Helium", "Lithium", "Beryl-lium"];

匿名関数・ラムダ式
var a2 = a.map(function(s){ return s.length });
var a3 = a.map( s => s.length );

176 :デフォルトの名無しさん:2016/11/11(金) 13:38:45.67 ID:KgVthd+h.net
ラムダ式なんて高級なもが巷にあふれているとは初めてしった。めったに
使わないかな。
 右も左もわからないのにアンドロイドアプリ(簡単なんだが、、)を作る
羽目になってしまった。しかしXamalinダウンロードしてみたらXamlに似ていて
驚いたわ。W
 WPFを勉強したかいがあった。これからバリバリつくってみる。

177 :デフォルトの名無しさん:2016/11/11(金) 18:30:50.13 ID:ciOc6C5W.net
リスト操作系関数を一度使ってしまうともう戻れなくなる
例えば、List<string>をList<object>に変換したい時、
var hoge=list.map(x=>(object)x);
だけで良い。foreachとかで書くより楽で読みやすい

178 :デフォルトの名無しさん:2016/11/11(金) 18:55:28.67 ID:+ZeaIXfw.net
名前を付けるのも馬鹿らしい単純な操作を表現するには
やっぱりラムダ式が便利だと感じる

179 :デフォルトの名無しさん:2016/11/11(金) 18:56:03.62 ID:qDFZLZyC.net
>>176
Xamlに似てる?勘違いしてんぞお前

180 :デフォルトの名無しさん:2016/11/11(金) 18:57:11.76 ID:0OJ17qIg.net
>>177
List<T>.ComvertAll<TOutput>(Converter<T,TOutput>)ではダメなんか?

181 :デフォルトの名無しさん:2016/11/11(金) 19:20:11.62 ID:KgVthd+h.net
>179
Xamlそのものだわ。C++もC#のFormもXmalinUIもあって、3種類の開発環境がある。
まともに動けば凄いよ。W
でもサンプルを動かしたまではすんなりいったんだが署名ができないとか、文字ばけ
するとかどうも先が思いやられるのでxamalin
やめてAndroid Studioにしようかと迷ってる。こっちはJavaだけど、、

182 :デフォルトの名無しさん:2016/11/11(金) 19:58:04.56 ID:JZCe9Y2P.net
ラムダ厨うぜー

183 :デフォルトの名無しさん:2016/11/11(金) 20:14:46.10 ID:tUVkv4AT.net
おはようラムダ君

184 :デフォルトの名無しさん:2016/11/11(金) 20:20:02.48 ID:TqB+9XQ4.net
ランバダなら知ってる

185 :デフォルトの名無しさん:2016/11/11(金) 20:27:50.64 ID:nfVHRfzR.net
>>181
c#初心者スレがあるからそっちにいった方がいい
いい加減うっとおしい

186 :デフォルトの名無しさん:2016/11/11(金) 20:46:50.11 ID:KgVthd+h.net
アッ、もうC#は卒業したんでこないよ。次はJAVAだ

187 :デフォルトの名無しさん:2016/11/11(金) 20:49:06.76 ID:nfVHRfzR.net
それは良かった

188 :デフォルトの名無しさん:2016/11/11(金) 21:09:36.24 ID:TOO7Y3Ld.net
ε-(´∀`*)ホッ

189 :デフォルトの名無しさん:2016/11/11(金) 22:25:05.87 ID:+gNs9Nbk.net
>>181
XamarinはC#に相当慣れ親しんでるか、androidもiOSもそこそこやってる人がまとめて開発したいって場面以外ではまだおすすめできる状態じゃないかな
まだ情報も少ないし、ラムダ式とかイベントとかの基本を自力で調べられない人には特に厳しいと思う

190 :デフォルトの名無しさん:2016/11/12(土) 20:58:13.68 ID:RWma0It4.net
古いWindowsマシンでAndoroid開発しようとすると
まずエミュレータが動かない

WindowsPhoneが頑張ってくれてたら
引き続きVisualStudioで開発できたのに
どうしてここまで差を付けられたのか

MSってエリート揃いじゃないのかな?

191 :デフォルトの名無しさん:2016/11/12(土) 21:30:04.79 ID:cIUa0gZx.net
古いマシンで開発するやつの事なんかMSが面倒見る義理ねえよ

192 :デフォルトの名無しさん:2016/11/12(土) 23:10:09.55 ID:l9OhshgV.net
Win10で露骨にレガシーおじさん切り捨てに来たし
流石の聖人マイクロソフトもお荷物を抱えきれなくなってきたんだろうね

193 :デフォルトの名無しさん:2016/11/13(日) 02:11:36.78 ID:PRCnkR8c.net
xamlが嫌いなら、全部コードで書けば良いのに。
Bindingが理解出来ないのなら、全部コードビハインドで書けば良いのに。

194 :デフォルトの名無しさん:2016/11/13(日) 02:55:57.86 ID:+xp6lf8w.net
WPFって学習コストが高い(少なくとも俺にとっては)から
苦労して覚えたものを擁護したくなる気持ちはわからんでもないけど、
10年経ってもほとんど普及してないのにはやっぱりそれなりに理由があると思う。

パフォーマンスの問題は目をつぶるとしても、個人的には可読的じゃないのが大きいと思うんだよね。
書いてるときはいいんだけど、自分が書いたものであっても後から見るとどこで何をやってるのか
ぱっと見て分からないし見当がつかない。

MVVM(正直これはあんまり理解してないんで誤解してるかもしれんが)にしてもそうだけど、
理念的に綺麗なのはわかるけど何か「これじゃない」感が強いというか、美しい理想の実現のための
コストが大きすぎるというか...

195 :デフォルトの名無しさん:2016/11/13(日) 09:01:19.59 ID:sNDrzqcx.net
>194
綺麗なコードをみてみたら素晴らしさが一発でわかるとおもぞ。直感的にすぐに
わかる。わからないようなのではだめだな。

だれか194のためにだせるかな?

196 :デフォルトの名無しさん:2016/11/13(日) 09:45:56.53 ID:lb7gRuG3.net
>>194
同意。結局世の中に求められてるのは
大ヒットしたVB6レベルなんじゃないかねえ
SOAPがはやらなかったのも一緒。

197 :デフォルトの名無しさん:2016/11/13(日) 10:23:03.20 ID:67al7/78.net
VB6っぽくも書けるんだけどね。
ポトペタも出来るし。

198 :デフォルトの名無しさん:2016/11/13(日) 10:23:37.75 ID:sNDrzqcx.net
んーーーーんと考え込むよりもサクサクと作ったほうが手数は多くても生産性が
上がる。と考える人が殆どだから?

199 :デフォルトの名無しさん:2016/11/13(日) 10:50:51.74 ID:lO2MkZMm.net
html知っていればxamlの可読性にケチを付けること無いと思うんだが
今時html触ったことない人なんだろうか?

200 :デフォルトの名無しさん:2016/11/13(日) 11:12:37.23 ID:ZjdX2IN8.net
>>198
んーーーーんと考え込むよりもサクサクと作れるような案件ばかりだからだろ

201 :デフォルトの名無しさん:2016/11/13(日) 11:39:53.10 ID:IKKUDTFw.net
>>194
そんな擁護とか色眼鏡で見ないでも、単純に学習コストが高いのが一番のネックだろう。

202 :デフォルトの名無しさん:2016/11/13(日) 11:52:49.11 ID:fBLfWj6L.net
どこで何をやってるかわからない、ってのが不思議だな
振るまいを独立にモデリングした上で、UIのどことモデルのどこを対応付けるか、を明確化するのがMVVMであり、バインディングの利点じゃん?
従来のフォーム・イベントゴリ押し的なやり方だとこれが曖昧化してしまうから、どこで何をやってるかがわからなくなる
MVVMでわけわからなくなる人はなにか根本的に間違ったことやってるんじゃないかな?

203 :デフォルトの名無しさん:2016/11/13(日) 12:15:54.37 ID:IKKUDTFw.net
>>202
慣れてないだけだと思う

>>194
MVVMは高コストって主張も分かる。
単純な案件にはオーバースペックだし、Formsでも十分。

204 :デフォルトの名無しさん:2016/11/13(日) 14:15:44.38 ID:67al7/78.net
こうして人は老いて逝くのかな。

205 :デフォルトの名無しさん:2016/11/13(日) 15:30:42.14 ID:zWTpia8y.net
「フロントエンド界隈」が、声だけでかくて市場としては滅茶苦茶小さいのにに似てる

206 :デフォルトの名無しさん:2016/11/13(日) 19:32:23.00 ID:wHFHc9ra.net
フロントエンドプロセッサ

207 :デフォルトの名無しさん:2016/11/13(日) 19:51:43.67 ID:6IaE8voh.net
MVVMはOOPと相性悪いよな
間違った変更は拒絶して例外を投げるのが基本のOOP
間違った変更を一時的に受け入れて(そのかわりエラーを状態の一部として持つ)コミット時に不変条件を満たせば良いMVVM
Formsなら例外をキャッチしてメッセージを出して入力を戻すだけでいいからOOP的に正しいモデルをそのまま再利用できる
要するにビューがドメインモデルについてよく知らなくてもビジネスルール的に正しい状態に保つことができる
MVVMだとビュー及びビューモデルがビジネスルール的に正しいか正しくないかということを知っていなければならない
それはビューやビューモデルではなくドメインモデルが管理すべき情報でしょ

208 :デフォルトの名無しさん:2016/11/13(日) 22:40:30.15 ID:67al7/78.net
レイヤーが違うと思うけど。

難しいから全部フラットで良いよ。

209 :デフォルトの名無しさん:2016/11/14(月) 17:11:40.86 ID:iSq4NCna.net
var dic1 = new Dictionary<string, string>() { { "key", "value" } };
var dic2 = new Dictionary<string, string> { { "key", "value" } };
どちらでも動くようなのですが、カッコは付けるほうが良いですか?

210 :デフォルトの名無しさん:2016/11/14(月) 19:10:02.84 ID:xSfNgSMs.net
>>209
お好きな方で。

今なら
{["key"] = "value"}
の方が解りやすいかも。

211 :デフォルトの名無しさん:2016/11/14(月) 22:10:40.45 ID:p26anzny.net
テキストボックスの入力欄A, B, Cがある
A, Bは自由入力欄、CはA * Bを出力する読み取り専用(A, Bが変化したら即座に再計算される)
A, Bに数値と解釈できない文字列(decimalに変換できない文字列)が入力された場合、即座にERRVALという文字列に置き換える
Cが計算不能な場合、ERRVALという文字列に置き換える
このような画面をWPFで作成したいのですがViewModelとxamlはどのように書けばいいでしょうか?

212 :デフォルトの名無しさん:2016/11/14(月) 22:57:37.38 ID:2SylIT9P.net
それだけ決まっててむしろどこに悩んでるのさ

213 :デフォルトの名無しさん:2016/11/14(月) 23:09:54.35 ID:p26anzny.net
>>212
他のプログラマがどう書くか参考にしたいです

214 :デフォルトの名無しさん:2016/11/15(火) 00:54:17.56 ID:gSjda41/.net
>>199
htmlにはCSSがあるから見た目は外に出せる

215 :デフォルトの名無しさん:2016/11/15(火) 07:18:35.80 ID:wcWx6QZb.net
>>213
ならまず自分がどう書いたかを晒せよ

216 :デフォルトの名無しさん:2016/11/15(火) 07:47:41.89 ID:AaicVHah.net
キー入力ミスったら最初から入力しなおしな典型的な糞ソフト仕様だな

217 :デフォルトの名無しさん:2016/11/15(火) 08:30:57.20 ID:9/yxKzNn.net
>>213
ReactivePropertyのサンプルならググれば見つかるから参考にすりゃいいよ

218 :デフォルトの名無しさん:2016/11/15(火) 10:37:08.44 ID:9/yxKzNn.net
>>214
xamlを腐しているやつは、xamlを全然知らないんだな

219 :デフォルトの名無しさん:2016/11/15(火) 11:29:28.89 ID:f/VYzzwV.net
XAMLをよく知っているやつがちゃんとした説明してるの見たことない

220 :デフォルトの名無しさん:2016/11/15(火) 12:05:59.99 ID:Sy8HLWAK.net
>>219
残念なやつ

221 :デフォルトの名無しさん:2016/11/15(火) 12:12:58.11 ID:f/VYzzwV.net
というように人格否定しかできない

222 :デフォルトの名無しさん:2016/11/15(火) 12:39:21.59 ID:Sy8HLWAK.net
>>221
顔真っ赤www

223 :デフォルトの名無しさん:2016/11/15(火) 14:14:09.51 ID:EsNZ5iro.net
と、知ったかは発狂するのであった

224 :デフォルトの名無しさん:2016/11/15(火) 17:55:17.20 ID:idS/rHgA.net
CSSはxml形式じゃないから良い
必要なところで必要な形を使うのが良い

225 :デフォルトの名無しさん:2016/11/15(火) 18:43:22.99 ID:IxpYJQnb.net
全然使われてないのは書店(Amazonでもいいけど)に行くとあからさまにラインナップがしょぼいからすぐ分かる
mizchiと取り巻きの声だけやたらデカいReactみたいなもんだ

226 :デフォルトの名無しさん:2016/11/15(火) 22:31:04.10 ID:YqUWOmsB.net
>>214
style等は外に出せるぞ。

227 :デフォルトの名無しさん:2016/11/16(水) 10:35:34.62 ID:hL8zHUS9.net
中はやめてー

228 :デフォルトの名無しさん:2016/11/18(金) 23:01:26.36 ID:+QqWh5ch.net
変数aがnullならbもnullにして、
aがnullでないならaを用いてmyfuncの計算結果をbに入れたいのですが、

var b = (a == null) ? null: myfunc(a);

こんなふうにしたのですが、もっとスッキリ書けそうな気がするのですが、
思い付きません。
もっとスッキリ書けますか?

229 :デフォルトの名無しさん:2016/11/18(金) 23:08:28.42 ID:2P9KWEZx.net
myfuncの戻り値を考え直せとしかwwwwwwwwwwww

230 :デフォルトの名無しさん:2016/11/19(土) 01:56:09.52 ID:eBIxsLr/.net
>>228
var b = a?.myfunc(a);

231 :デフォルトの名無しさん:2016/11/19(土) 01:57:55.29 ID:eBIxsLr/.net
とおもったらmyfuncはaのメソッドじゃないのね
230は間違い。忘れてくだされ

232 :デフォルトの名無しさん:2016/11/19(土) 03:57:45.25 ID:gmVZjmNi.net
myfunc(null)がnullを返すようにすれば
b = myfunc(a)で済むんだがなぁ
まあきっとそうではない何かをする関数なんだろうな

おれならaやbがnullである事に特別な意味があったり、myfuncを呼ばない事に特別な意味があるなら
ちゃんとif文書くけどな

233 :デフォルトの名無しさん:2016/11/19(土) 10:29:56.40 ID:0bgRfGhz.net
>>229
string myfunc(string a){
 if(a==null)
  return null;

を追加したらスッキリしました!

234 :デフォルトの名無しさん:2016/11/19(土) 11:12:00.41 ID:6I7N2mEo.net
aってstringだったのか…
余計なことを言いたくなるなあ…

235 :デフォルトの名無しさん:2016/11/19(土) 11:15:09.05 ID:ZfUdGYAZ.net
スッキリワロタ

どうしてもならジェネリックの拡張メソッドを作っとく手もあったね。

236 :デフォルトの名無しさん:2016/11/19(土) 17:50:29.26 ID:t3MBfDke.net
nullを返す関数を作ると後々災いの元

237 :デフォルトの名無しさん:2016/11/19(土) 17:52:57.62 ID:E8arxXAw.net
かと言ってstringで""を返す関数を作っても後々災いの元

238 :デフォルトの名無しさん:2016/11/19(土) 17:55:21.80 ID:VKIYWaqI.net
>>236
またその話か
それはないよ。

239 :デフォルトの名無しさん:2016/11/19(土) 23:03:49.26 ID:0bgRfGhz.net
>>236
なんで?

240 :デフォルトの名無しさん:2016/11/20(日) 00:13:29.86 ID:BknfpFpO.net
暫く使ってみたがWPFというかMVVMはやっぱり良くないな
暫定的にとはいえ不正な状態のオブジェクトを受け入れるってのが致命的にコードを汚くする
カプセル化で状態を保護するのが基本のオブジェクト指向に喧嘩売ってるとしか思えない

241 :デフォルトの名無しさん:2016/11/20(日) 00:26:32.91 ID:K2ib4r+U.net
>>239
その関数使う使う時に一々nullチェックするの面倒。
それを忘れない保証もどこにもないし。

242 :デフォルトの名無しさん:2016/11/20(日) 00:30:59.63 ID:ckE9xegj.net
>>241
何という頭の悪さ。

nullを禁止したらnullを返すことで表現していたことを
もっと面倒な別の方法で呼び出し側に伝達する必要が生じるんだけど。

何でこんな簡単なことが分からないのかね。

243 :デフォルトの名無しさん:2016/11/20(日) 01:00:26.85 ID:KPo4Qlq+.net
FindFirstみたいなメソッドでマッチしない場合にnullじゃないオブジェクトを
返されたとしてもどのみちチェックする必要が出てくる

244 :デフォルトの名無しさん:2016/11/20(日) 01:09:39.51 ID:X8MMRSH3.net
null返す関数禁止じゃなくてnull代入禁止型にしてくれ

245 :デフォルトの名無しさん:2016/11/20(日) 01:27:12.98 ID:K2ib4r+U.net
>>242
勉強不足

246 :デフォルトの名無しさん:2016/11/20(日) 01:38:16.74 ID:K2ib4r+U.net
>>244
C#7.0か8.0に期待。

247 :デフォルトの名無しさん:2016/11/20(日) 02:13:42.33 ID:ckE9xegj.net
期待するだけ無駄。

馬鹿じゃなきゃちょっと考えればわかるはずだが、
必ず既定値で初期化されるようにするにしろ初期化なしの変数宣言ができないようにするにしろ、
nullを許容することの弊害とは別のより大きい弊害や利便性の低下を生むだけ。

だいたい、nullを許容することの弊害なんて大半はそれを主張してる奴が勘違いしてるだけだ

248 :デフォルトの名無しさん:2016/11/20(日) 02:22:59.08 ID:9PtzIqGH.net
老害臭が半端無いんだが。

249 :デフォルトの名無しさん:2016/11/20(日) 02:25:15.52 ID:ckE9xegj.net
年齢の問題じゃないね。
馬鹿かそうでないか、それだけの問題

250 :デフォルトの名無しさん:2016/11/20(日) 05:58:45.20 ID:2ye3zmI2.net
>>244
nullを返す関数や変数にnullを代入する処理をよく使うのですが、
それで混乱した経験も無いのですが、なぜ、
 nullを返す関数
 変数にnullを代入
に反対する人がいるのでしょうか?

251 :デフォルトの名無しさん:2016/11/20(日) 07:22:58.86 ID:pCJ1qvOZ.net
>>250
>>241と同じ

252 :デフォルトの名無しさん:2016/11/20(日) 08:05:54.92 ID:2ye3zmI2.net
>>251
>その関数使う使う時に一々nullチェックするの面倒。
>それを忘れない保証もどこにもないし。
この意味が分からないのですが、関数を使うときにnullチェックする
と言うのは何ですか?
関数がnullを返す場合もあるように自分でそうしているわけだから
何も問題ないと思いますが。

253 :デフォルトの名無しさん:2016/11/20(日) 08:15:43.24 ID:pCJ1qvOZ.net
>>252
理解できない奴には理解できないからもう気にするな。null禁止にしても同じ問題起きるしw

254 :デフォルトの名無しさん:2016/11/20(日) 08:27:09.27 ID:2ye3zmI2.net
>>253
気になるんです。
教えてください。

255 :デフォルトの名無しさん:2016/11/20(日) 08:32:27.43 ID:w/pS54nD.net
そもそもこれは戻り値がstring限定の話じゃないの?
普通のオブジェクトでnull禁止はありえないからね

256 :デフォルトの名無しさん:2016/11/20(日) 08:43:15.40 ID:pCJ1qvOZ.net
>>255
(nullでなく()デフォルト値を入れた空のオブジェクトを返すって考え方もあるからオブジェクトでも同じだよ
そもそも1つの戻り値で関数失敗成功情報まで返そうとするのが間違い

257 :デフォルトの名無しさん:2016/11/20(日) 08:47:01.08 ID:3blV6AGf.net
値型は null にならないのでそれで用は足る。面倒なのは、Stringだかが。昔のBASIC の文字列型のように実装した値型を用意すれば解決。

258 :デフォルトの名無しさん:2016/11/20(日) 09:29:50.43 ID:2ye3zmI2.net
>>257
>面倒なのは、String
C#で文字列を扱っていてnullの扱いで面倒だと感じた経験が
一度もないのですが、Stringでnullがなぜ面倒なのですか?

259 :デフォルトの名無しさん:2016/11/20(日) 09:42:15.04 ID:BknfpFpO.net
nullは情報を捨ててしまうから可読性が低くなる
エラー許容型を作ってそれを使うのが定石

Errorable<string> s = func();

if(s.HasNoError) WriteLine(s.Value);
else WriteLine(s.ErrorMessage);

if(s.NotFound) ...
if(s.AuthError) ...
if(s.FormatError) ...
...

260 :デフォルトの名無しさん:2016/11/20(日) 09:59:28.46 ID:Y223jndk.net
>>259
> その関数使う使う時に一々nullチェックするの面倒。
> それを忘れない保証もどこにもないし。
全然改善されてないだろ w
てか、その例なら素直に例外使えよ

261 :デフォルトの名無しさん:2016/11/20(日) 10:11:47.90 ID:GbOcvoRT.net
IsNullアンチパターンみたいだね

262 :デフォルトの名無しさん:2016/11/20(日) 10:12:24.08 ID:wbF3tHCA.net
>>260
チェックなしでValueにアクセスしたら例外を投げる
Errorableという名前が見えることによってチェックを忘れるということを回避できる
チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている

263 :デフォルトの名無しさん:2016/11/20(日) 10:27:40.57 ID:9PtzIqGH.net
もう一歩踏み込んで、Maybe。
Valueプロパティは、もちろん無し。

264 :デフォルトの名無しさん:2016/11/20(日) 10:30:00.58 ID:X8MMRSH3.net
宗教としてC#にアイデンティティを代替している連中(貧乏人ほどオリンピックが好きなのと同じ)なのに
仕様を否定したって聞き入れる訳ないじゃん

ヘジにアントニー・ホーアの言葉をどう考えるか聞いた奴がいるが
なんて答えたか知らないんだろうし
(あるいは、C#に間違いがあってはならないから目をつぶっているか、そもそも英語は読めないか)

265 :デフォルトの名無しさん:2016/11/20(日) 10:30:10.23 ID:9PtzIqGH.net
>>250
ぼっちで書いてる時は、好きにする宜し。

266 :デフォルトの名無しさん:2016/11/20(日) 10:35:26.28 ID:2ye3zmI2.net
文字列の場合にはNullも "" も同じだと思えばいいよね

267 :デフォルトの名無しさん:2016/11/20(日) 10:37:02.45 ID:NgPgW0rj.net
参照型とnull許容型は別の概念にするべきだったと言ってるし
現在、null非許容型を破壊的にならないように言語仕様を変えよう(追加しよう)としている。

将来を全て見通せる人は、いないと言う事だよ。

268 :デフォルトの名無しさん:2016/11/20(日) 10:38:09.66 ID:Y223jndk.net
>>262
> チェックなしでValueにアクセスしたら例外を投げる
ならはじめから例外でいいだろ

> Errorableという名前が見えることによってチェックを忘れるということを回避できる
マジで言ってるの?
チェックする箇所には変数名しか見えないんだが...
まあ IDE でいちいち型を確認すればいいんだろうけど、エラーチェック忘れるような奴はそう言う型の確認も忘れるわけで...

> チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている
たぶん思い付きで書いてるんだろうけど例えば Errorable<string> の
> if(s.AuthError) ...
って何を返すの?
自作のクラスで新しいエラー状態をチェックしたい時はどうするの?
いちいち Errorable を派生させたりしたらチェック方法が統一できないしどうするつもり?

269 :デフォルトの名無しさん:2016/11/20(日) 10:40:19.54 ID:Y223jndk.net
>>266
お前さんがそれでいいならなんの問題もない

270 :デフォルトの名無しさん:2016/11/20(日) 10:48:41.71 ID:NgPgW0rj.net
>>249
最近は若くても「老害」みたいな人が少なくないよね。

新しい事を覚える・勉強するのを嫌がる。
現状のやり方を変えるのを恐れる。
現状維持大好き。

良いか悪いは別問題だけど。

271 :デフォルトの名無しさん:2016/11/20(日) 10:58:38.68 ID:wbF3tHCA.net
>>268
初めから例外を投げるではチェックのためにtryを書かなければならない
パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切

変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い

エラーというのは幾つかの典型的なエラーに分類可能
例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
新しいエラーを定義する必要はない

272 :デフォルトの名無しさん:2016/11/20(日) 11:34:52.66 ID:Y223jndk.net
>>271
> パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切
まあ、これはいいとして

> 変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い
フィールドとかには使えないってことでいいかな?

> エラーというのは幾つかの典型的なエラーに分類可能
へー、すごいね w

> 例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
で、Errorable<string> の AuthError ってなにさ

> 新しいエラーを定義する必要はない
自称エスパーのお前はそうなんだろうね w

273 :デフォルトの名無しさん:2016/11/20(日) 11:43:29.92 ID:lYnhz1xv.net
null非許容型が追加されたら便利だなーとは思う
「nullをなくせ」という意見にはまったく賛同できないが

エラー許容型は、エラーの種類を enum で返すプロパティを付けたものをよく作る
(エラー種類ごとにプロパティ作るようなことはしない)
でも、nullで済む場合も多いんだよね

274 :デフォルトの名無しさん:2016/11/20(日) 11:43:53.85 ID:kKwT4/wt.net
>>272
はぁ

今は返り値の話をしているんだろ
そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか

すごいっていうか、常識
人間がどんだけエラー処理と付き合ってきたと思ってるんだ?

AuthErrorは認証、認可のエラー
2chの書き込みだから横着して省略したがこれらは普通は別にする

nullを見ただけでエラー内容がわかる歴史上類を見ないほどに強力なエスパーの君にはかなわないよ
プログラマにしておくのは勿体無いから新しい宗教でも立ち上げることをお勧めするよ

275 :デフォルトの名無しさん:2016/11/20(日) 11:47:36.19 ID:pCJ1qvOZ.net
変数にエラーコードを入れるっていう発想がもうw

276 :デフォルトの名無しさん:2016/11/20(日) 11:47:38.25 ID:GbOcvoRT.net
>>266
その考えの場合はnullじゃなくて、""を返すのも良いかもね。

277 :デフォルトの名無しさん:2016/11/20(日) 11:56:23.29 ID:Y223jndk.net
>>274
> そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか
え?
オレオレスタイルをどや顔で言われても困るんだが w

> これらは普通は別にする
結局 Errorable<string> と Errorable<database> は別に作るってことかよ...
チェック方法が統一出来るとかほざいてたのにね w

278 :デフォルトの名無しさん:2016/11/20(日) 12:10:20.24 ID:kKwT4/wt.net
>>277
はぁ

オレオレスタイルではなくオブジェクト指向の基本

別に作らないよ
君は超人的エスパーだから何をどう考えてそういう答えにたどり着いたのか常人にはちょっと理解しがたいんだ
これからはそのことを考慮して常人にもわかるように丁寧に意見して欲しい

279 :デフォルトの名無しさん:2016/11/20(日) 12:10:41.53 ID:zFrmc+0J.net
>>266
オラクルですね

280 :デフォルトの名無しさん:2016/11/20(日) 12:23:00.48 ID:L/fyhMFX.net
>>277
みっともないから、もう止めとけ。

281 :デフォルトの名無しさん:2016/11/20(日) 12:30:03.99 ID:Y223jndk.net
>>278
オレオレスタイルは宗教だろうから教祖さんと争う気はないよ w

で、
> これらは普通は別にする
の意味を説明してみ

282 :デフォルトの名無しさん:2016/11/20(日) 12:30:42.62 ID:Y223jndk.net
>>280
お前がな w

283 :デフォルトの名無しさん:2016/11/20(日) 12:37:01.76 ID:kKwT4/wt.net
>>281
この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
君は何をどう考えてErrorable<string>とErrorable<database>は別に作るという考えに到達したの?
ジェネリック型の新しい使い方を編み出したの?
ハイレベルすぎてついていけないよ
一体何段階思考手続きをスキップできればこの境地にたどり着けるのか

284 :デフォルトの名無しさん:2016/11/20(日) 12:38:10.81 ID:aCqfb5MR.net
数字の0が無かった時代に0の発明を否定する人みたいだな。

285 :デフォルトの名無しさん:2016/11/20(日) 12:43:24.41 ID:h3zFIm5r.net
何度も言うけどnullを追放したって問題Aが別の問題Bに置き換わるだけ。
そして普通に考えれば問題Bの悪質性はAより大きくなる場合の方が多いだろう。

nullガーって吠えてる馬鹿って何でこの程度のことが分からんかね。

(a) 値がnullであることで問題が顕在化した

からといって

(b) nullの存在が問題の原因

であるとは限らない。
この程度のことも分からない奴はプログラマ辞めろよ本当

286 :デフォルトの名無しさん:2016/11/20(日) 12:45:41.10 ID:2ye3zmI2.net
>>279
そう、
オレオレスタイルではなてく
オラクルスタイルだ。

287 :デフォルトの名無しさん:2016/11/20(日) 12:53:48.90 ID:Jza3G5L3.net
結局メソッドがエラーを返せるようにするにはどうするのが一番いいの?

288 :デフォルトの名無しさん:2016/11/20(日) 12:54:07.99 ID:Y223jndk.net
>>283
> この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
そんな話は全くしてないが?
そんなのどうでもいいから
>> で、Errorable<string> の AuthError ってなにさ
の答えを書けよ w

289 :デフォルトの名無しさん:2016/11/20(日) 12:54:12.13 ID:L/fyhMFX.net
まさに、井の中の蛙 (´・ω・`)

290 :デフォルトの名無しさん:2016/11/20(日) 12:57:21.73 ID:L/fyhMFX.net
>>287
1つの手段は、エラー種類と「値」のタプルを返す。
これだと、エラー処理を強制は出来んけどね。

291 :デフォルトの名無しさん:2016/11/20(日) 12:57:41.85 ID:Y223jndk.net
>>289
上から目線で意味のないこと言ってるけどどうしたの?
ここ仮にも技術系の板だから話に加われないなら黙っていてくれるとありがたいんだが

292 :デフォルトの名無しさん:2016/11/20(日) 17:21:32.25 ID:XK08TpAy.net
エラーはほとんどの場合例外でいいよ
でも例外が使えない場面もあるんだよなぁ

293 :デフォルトの名無しさん:2016/11/20(日) 18:54:25.34 ID:34y1pXq0.net
>>287
エラーと言ってもいろんなレイヤーでいろんな事があるわけで
結論としてはケースバイケースでどれが一番とか決めれない

これを理解できずに単一の方法ですべてやろうとするからおかしな話になるわけで
まあ、宗教論はその宗旨に納得できる点がある場合もあるけど、他の宗教を認めないのがなぁ

294 :デフォルトの名無しさん:2016/11/20(日) 19:03:56.76 ID:eCa9a5kv.net
例外を投げないパターンはここらへんを読むといいんじゃない?
一般的とは行かなくても、オレオレではない
http://faithandbrave.hateblo.jp/entry/2014/05/30/153325
http://ufcpp.net/blog/2016/11/nullproblem/
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4015.pdf

295 :デフォルトの名無しさん:2016/11/20(日) 19:18:59.75 ID:V9rEuhsa.net
nullable-likeの提案は良いね

296 :デフォルトの名無しさん:2016/11/20(日) 19:26:56.04 ID:w/pS54nD.net
nullを排除するために、何故ここまで複雑に作る必要があるのか理解出来ん
普通にnull使えよw

297 :デフォルトの名無しさん:2016/11/20(日) 19:31:08.12 ID:34y1pXq0.net
単にnullの取り扱いから、例外処理についてに話が拡大してるからな

298 :デフォルトの名無しさん:2016/11/20(日) 19:46:59.71 ID:ELwGw4ow.net
null排除派はごく一部いるけど市民権を得てない
メリットが薄いから

3 == i と言う書き方みたいにこだわる人だけこだわる

299 :デフォルトの名無しさん:2016/11/20(日) 20:23:01.03 ID:JNgwCyth.net
今後iOS開発の主流になるだろうSwiftがnull非許容ベースだから
将来的には分からないかもよ

300 :デフォルトの名無しさん:2016/11/20(日) 20:32:56.89 ID:ixFUSBgZ.net
信者にそんな話しても無駄

301 :デフォルトの名無しさん:2016/11/20(日) 20:42:02.87 ID:RSV7nlYW.net
null あってもいいって言ってるのはなきゃなでも構わない人が大半じゃないかと思う。
Swift が非許容でそれを使う必要があるなら、それの流儀でなんの苦もなく対応しそう。

そんなことに拘ってるのはオレオレな一部の人だけじゃねーのかなぁ。。

302 :デフォルトの名無しさん:2016/11/20(日) 21:02:17.68 ID:2AHf550w.net
異教徒にそんな話しても無駄

303 :デフォルトの名無しさん:2016/11/20(日) 22:12:22.04 ID:eCa9a5kv.net
>>296
それを言い出すとなにも言語仕様がいじれなくなっちゃう
Javaとかは進化が停滞して今必死に挽回してるし

もちろん、実装や文法の複雑さと利点を天秤にかけるのは常にしてるので、Roslynのissueとかを見てみると良いよ。
もっと変なのもたくさんある

http://qiita.com/koher/items/e4835bd429b88809ab33
を見るとわかるが、実際に各言語がnull安全に取り組んでる

304 :デフォルトの名無しさん:2016/11/20(日) 23:25:18.49 ID:OrHcogku.net
null安全ねえw
そういう発想をする人ってよくいう「例外を握りつぶす」コードを書いちゃうタイプなんだろうなとは思うわ。
言いたいことは理解できるが全く同意はできない。
それはただの錯誤だからな。

安全どころか、nullであれば容易に発見できたバグをわざわざ発見困難にするだけ。
何がうれしいんだそんなの。

305 :デフォルトの名無しさん:2016/11/21(月) 00:24:21.34 ID:hlf3slD2.net
ScalaのOption使ってみた感想
・今までは無効な値(null)を返す可能性がある事は、ドキュメントを読まないと分からなかったけど定義だけで分かるから便利
・分解が色々な方法で出来て便利
まあなくても何とかなるけど、あれば便利程度

306 :デフォルトの名無しさん:2016/11/21(月) 01:11:30.92 ID:fZvEw43o.net
F#にもoptionあるけど死ぬ程便利だわw
先ず、エラーを握り潰す事が出来ない。
ドキュメントを読む必要が無い。
monadとして扱うと、一々ifで分岐書く手間がなくなる。
eitherまで踏み込めば、検査例外云々で議論する事自体が馬鹿らしくなる。
面倒くさいけどねw

C#のint?を使った事ある人には解ると思う。
コンパイラに事前チェックをしてもらえる有り難みが。
機械に解る単純作業?に対して、人間が一々苦労する馬鹿らしさが。

307 :デフォルトの名無しさん:2016/11/21(月) 01:16:13.30 ID:fZvEw43o.net
それから、初心者に対してこそ効果抜群だよ。
「そう書く」事しか出来ないから。
強制出来るから。

308 :デフォルトの名無しさん:2016/11/21(月) 01:34:00.10 ID:CO+aVjyU.net
検査例外も出たときは素晴らしい機能だって絶賛されてたような気がするなぁ

309 :デフォルトの名無しさん:2016/11/21(月) 02:03:53.66 ID:n+GSTHBL.net
検査例外は他に誰も採用しなかったけど
Optionalはこぞって採用されているという決定的な違いがある

310 :デフォルトの名無しさん:2016/11/21(月) 02:04:20.65 ID:n+GSTHBL.net
あ、ごめん
C#perにそんなこと言っても分からないよね(苦笑)

311 :デフォルトの名無しさん:2016/11/21(月) 11:12:26.42 ID:Ka0MFQDU.net
ん?Optional?VBの話?

312 :デフォルトの名無しさん:2016/11/21(月) 11:41:21.77 ID:hLpmxTjl.net
グラディウスだろ

313 :デフォルトの名無しさん:2016/11/21(月) 17:31:28.36 ID:fZvEw43o.net
>>310
このスレにもいるような「老害」は少数派だよ



と信じたい。

314 :デフォルトの名無しさん:2016/11/21(月) 20:45:41.48 ID:HLjti5+r.net
実際、エラーの扱いは時代によって色々変わってきてるからね
null安全の手法はこれからの主流になっていくのかもしれない
そんで、また数年後には新しいやり方に置き換えられるんだろう

315 :デフォルトの名無しさん:2016/11/21(月) 21:06:27.63 ID:4A1pLeCT.net
エラーの扱いじゃなくてヒューマンエラーを未然に防ぐのが意図でしょnull安全ってのは。
その意図は認めるけど、null安全がその目的に対して合理的とは全く思わんがね

316 :デフォルトの名無しさん:2016/11/21(月) 21:15:05.95 ID:fZvEw43o.net
option型とnull安全は重なってる部分もあるけど、意味としてズレてる部分もある。
例えば、C#の値型でもoption型は有意義な訳で。

317 :デフォルトの名無しさん:2016/11/21(月) 22:30:24.18 ID:wfKopLFy.net
サードパーティーライブラリーを使えない前提でオブジェクトのマッピングを手軽に行うにはなにを使う?
パフォーマンスはあまり気にしていない
同名同型のプロパティをマッピングできれば十分
今のところシリアライザーで誤魔化してる感じ

318 :デフォルトの名無しさん:2016/11/22(火) 00:16:30.64 ID:QATijxTL.net
null安全よりstring?.lengthの方が合理的に見えるわ
最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな

319 :デフォルトの名無しさん:2016/11/22(火) 06:51:43.66 ID:y8FHZWuV.net
>>318
> 最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな
これには同意するけど

> null安全よりstring?.lengthの方が合理的に見えるわ
これはないわ
string が null になる可能性がないなら普通に string.length って書いた方がエラーが早期にわかるからデバッグも楽だし

320 :デフォルトの名無しさん:2016/11/22(火) 07:50:04.91 ID:vhsrXRxU.net
?.もnull安全の一環な気はする。

ちなみに、null非許容型導入の影響で、?.を使っていない箇所は全てwarning扱いになる話もあったりする。

321 :デフォルトの名無しさん:2016/11/22(火) 13:10:29.71 ID:bfu4FZ0h.net
string?.length
これって式の左辺に何書くの?

int? hoge
とか?
で結局hoge==nullとか聞いちゃうの?

?.演算子は参照型と値型のペアでは使いにくいし分かりにくいと思う

322 :デフォルトの名無しさん:2016/11/22(火) 17:09:05.83 ID:EJKURZYz.net
君ら一体何を議論してるの?
分かりやすく解説してくれ

323 :デフォルトの名無しさん:2016/11/22(火) 17:11:14.76 ID:VnsYzvlz.net
Optionalの是非というか使い所の話でないの?

324 :デフォルトの名無しさん:2016/11/22(火) 19:57:46.66 ID:vhsrXRxU.net
>>321
例えば
int len = str?.Length ?? 0;

325 :デフォルトの名無しさん:2016/11/22(火) 20:13:33.64 ID:ga0p/qoV.net
C++の参照は良いものだった

326 :デフォルトの名無しさん:2016/11/23(水) 10:56:47.19 ID:Sj0D9A4Y.net
>>325
なんで過去形?

327 :デフォルトの名無しさん:2016/11/23(水) 11:55:24.93 ID:Sj0D9A4Y.net
http://stackoverflow.com/questions/22595655/how-to-do-a-dictionary-reverse-lookup
このページで
dictionary.FirstOrDefault
とやっていますがディクショナリーにFirstOrDefaultを
やるとなぜこういう結果になるのですか?

328 :デフォルトの名無しさん:2016/11/23(水) 13:27:10.63 ID:GLuKyrfg.net
>>327
何を「何故」と思ってるか分からん

329 :デフォルトの名無しさん:2016/11/23(水) 18:46:09.31 ID:QXjR6WNV.net
>>327
Dictionaryは、IEnumerable<KeyValuePair>を実装しているから。

330 :デフォルトの名無しさん:2016/11/23(水) 19:25:46.80 ID:Sj0D9A4Y.net
>>328
FirstOrDefault って最初の要素を取って来るんじゃないんですか?
何故全ての要素をループ出来るんですか?

331 :デフォルトの名無しさん:2016/11/23(水) 19:44:53.91 ID:GLuKyrfg.net
>>330
『引数の条件に一致した』最初の要素ね。
内部的には列挙子で探してるよ。

332 :デフォルトの名無しさん:2016/11/23(水) 19:48:19.93 ID:4RFw+AHR.net
列挙子=enum ・・・

333 :デフォルトの名無しさん:2016/11/23(水) 19:49:49.71 ID:dUmyuUeh.net
列挙子はIEnumeratorですw

334 :デフォルトの名無しさん:2016/11/23(水) 20:19:45.57 ID:Sj0D9A4Y.net
>>331
そういうことですか。
良く分かりました。
皆さん、ありがとうございました。

335 :デフォルトの名無しさん:2016/11/23(水) 20:45:31.10 ID:mr7aPRRr.net
>>322
時代の流れについて行けないおじいちゃん達をいかに介護するかの議論だよww

336 :デフォルトの名無しさん:2016/11/24(木) 09:15:21.21 ID:DNYUjCey.net
プロジェクトA C#DLLライブラリ
プロジェクトB C#ASP.NETアプリケーション(Web サイト)
プロジェクトC C#ASP.NETアプリケーション(Web API)

BとCはAに依存している
BとCは別のサーバーにデプロイする
2つのサーバーにインストールされているフレームワークが異なる(具体的には4と4.5.1)
サーバー管理者の都合によりフレームワークの更新はできない

Bをビルドする時はAのフレームワークバージョンを4にする
Cをビルドする時はAのフレームワークバージョンを4.5.1にする

このビルド時のフレームワーク切り替え作業が手間なのでなんとかして1オペレーションでビルドできるようにしたい
なんとかなりませんか?

337 :デフォルトの名無しさん:2016/11/24(木) 09:36:13.90 ID:iMAQMNBa.net
そういうのは依存してるとは言わない

aだけビルドするsln、bcだけビルドするsln作っておいて
aだけビルドするabcのslnでbcはポストビルドイベントでコマンドラインビルド、
bcだけビルドするabcのslnでaはプリビルドイベントでコマンドラインビルドとか?

338 :デフォルトの名無しさん:2016/11/24(木) 14:18:54.69 ID:G2Ig6Dqz.net
>>336
Webサイトって、Webアプリとは違ってランタイム側でビルドするんじゃなかったっけ?

339 :デフォルトの名無しさん:2016/11/24(木) 18:57:30.96 ID:/9TZdtP5.net
>>336
プロジェクトCを4.0指定で実行させれば良いんじゃ

>>338
webサイトにもプリコンパイルってのがある
VSがサポートしてるのかどうかはしらんが

340 :デフォルトの名無しさん:2016/11/24(木) 22:53:33.34 ID:5QlniI4z.net
教えて下さい。

C# で Windows のサービスプログラムを書きました。
その中でプロセス間通信を使いたく、パイプ(NamedPipeServerStream/NamedPipeClientStream)の利用を考えました。

サービスプログラムはそのままだとデバッグが面倒なので、
そのサービスプログラムを参照したフォームプログラムを作ってバグ取りをしました。
フォームプログラムからは、ボタンを押すことでサービスの開始や停止の処理をそっくり呼ぶようにしています。

ここで、
・フォームプログラムでは、問題なくパイプの送受信が出来る
・サービスプログラムでは、パイプの送受信が出来ない
 ただし、サービスを止めるときにパイプの待ち受けを終了させるために、同じプログラム内から送信するデータは送受信できている
 ⇒ 実際に待ち受けを抜けているので同プログラム内では出来ていると思われる

と言う状態になりました。
サービスプログラム内でプロセス間通信、この場合は名前付きパイプですが、の使用に制限などはあるのでしょうか。
他の要因を考えるべきか悩みました。情報があれば教えていただけると助かります。

341 :デフォルトの名無しさん:2016/11/25(金) 01:40:52.65 ID:gI/r9WkT.net
>>340
セッション0のアクセス権限の問題。

namedpipeclientstream-can-not-access-to-namedpipeserverstream-under-session-0
http://stackoverflow.com/questions/13174660/

342 :デフォルトの名無しさん:2016/11/25(金) 10:25:47.20 ID:2+oHnkxr.net
fw3.5からfw4.0以上のdllを参照する方法ないかなぁ?

343 :デフォルトの名無しさん:2016/11/25(金) 15:18:07.17 ID:6J0+Q2dT.net
>>341
よくそんなのぱっと出てくるなあw

344 :340:2016/11/25(金) 23:09:50.97 ID:Oc8F6euI.net
>>341
やっぱりそういうのがあったんですね。。
対策を考えます。
ありがとう。

345 :デフォルトの名無しさん:2016/11/26(土) 00:37:00.99 ID:pkHe6RQg.net
上のリンク先の回答みたいにPipeSecurityとか適切に設定してやればいいんじゃないの

346 :デフォルトの名無しさん:2016/11/26(土) 15:34:45.46 ID:w/Dhvdu8.net
WindowsのAPIだからC#とは直接的には関係ないけど教えてほしい。
特定のウィンドウにキーボードイベントを送信しようと考えている。
keybd_eventを使用してキーボードイベントの送信する事は成功した。
ちなみに第二引数のスキャンコードは使用しない、みたいな事を書いてあるサイト(MSDN含む)が多かったが
スキャンコードを指定しないと対象アプリがキーボード処理を受け付けてくれなかったため指定してある。
対象アプリがバックグラウンド中であっても操作しようと考えてSendMessage(またはPostMessage)に変更しようとしたのだが
スキャンコードはどこにどのように設定すればいいのだろう?
第四引数のlParamであろうと言う事は想像がつくが、スキャンコードをそのまま設定しても駄目だった。

347 :デフォルトの名無しさん:2016/11/26(土) 16:13:12.18 ID:dXHq99jt.net
>>346
WM_KEYDOWNならこれ、カーソルキーとかも24ビット立てる必要があったかな
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646280
SendMessage(hWnd, WM_KEYDOWN, uCode, MapVirtualKey(uCode, 0) << 16 | 1)
とかそんな感じだったはず、離すときはWM_KEYUPにして32ビットを立てる

C++でWM_KEYDOWNイベントのlParamを吐くウィンドウプロシージャでも作ると良い

348 :347:2016/11/26(土) 16:22:01.70 ID:dXHq99jt.net
> 離すときはWM_KEYUPにして32ビットを立てる
うっかりミスった、30〜31ビットね
WM_KEYDOWN時のlParam | 0xC0000000する形

349 :347:2016/11/26(土) 16:37:54.65 ID:dXHq99jt.net
あ、そもそもC#でもウィンドウプロシージャオーバーライド出来たっけ
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
if(0x0100 <= m.Msg && m.Msg <= 0x0102) Text = m.ToString();
}
とか適当なフォームでやれば実際のウィンドウメッセージが確認できるよ

350 :デフォルトの名無しさん:2016/11/26(土) 17:19:55.67 ID:w/Dhvdu8.net
>>347-349
非常に参考になった。
これを元にキー送信処理を作り直すことにするよ。

351 :340:2016/11/26(土) 21:03:56.05 ID:ZtR+Z7Wd.net
>>341,345
昨日はまだ調べていませんでした。
341 に書いていただいた URL の方法で普通に出来ました。
ありがとう。

352 :デフォルトの名無しさん:2016/11/27(日) 21:23:49.80 ID:I1ny1q/I.net
妙な質問だけど、今2ch以外でユーザー同士でC#関連の質問解答ができるコミュニティーって、

- MSDNフォーラム
- わんくまの掲示板
- DOBON.NETの掲示板

質問して答えが返ってきそうなのはこのぐらい?
あ、別にマルチで質問投げてやろうとかそういう意図ではないので念のため

353 :デフォルトの名無しさん:2016/11/28(月) 00:18:17.41 ID:n0A2uJuC.net
ja.stackoverflowはもう泣く以外の道ないなw

354 :デフォルトの名無しさん:2016/11/28(月) 00:18:37.64 ID:VTugBhJZ.net
>>352
StackOverflow一択だろ

355 :デフォルトの名無しさん:2016/11/28(月) 00:23:13.14 ID:fF5TvHl5.net
google翻訳少し賢くなったんだから「このページを翻訳する」で結構使える

356 :デフォルトの名無しさん:2016/11/28(月) 01:04:22.51 ID:v97E8kC6.net
>>352
最近はteratailもありかも
あとは、.NET共通のことならVB中学校も一応あり

357 :デフォルトの名無しさん:2016/11/28(月) 01:42:44.60 ID:9T0ZytTv.net
>>353-354
stackoverflowって日本語版もあったのかw
ありがとう

>>356
teratailはまったく知らなかったありがとう。

358 :デフォルトの名無しさん:2016/11/28(月) 03:25:24.52 ID:PwcZf+No.net
あとはQA@ITとか

359 :デフォルトの名無しさん:2016/11/28(月) 04:33:07.21 ID:VTugBhJZ.net
>>357
日本語限定ってどこかに書いてあったっけ?

360 :デフォルトの名無しさん:2016/11/28(月) 19:31:45.97 ID:FcPInj/k.net
>>359
>- MSDNフォーラム
>- わんくまの掲示板
>- DOBON.NETの掲示板
日本語って一目で分かるだろ

361 :デフォルトの名無しさん:2016/11/28(月) 19:35:28.66 ID:MT+LNPN6.net
落ち着けよハゲのブラザー

362 :デフォルトの名無しさん:2016/11/28(月) 21:09:47.26 ID:SXoUdBtU.net
>>354は stackoverflow.com のつもりで書いたが>>357は ja.stackoverflow.com を見つけて、
日本語版の存在を知らなかった>>354>>357を皮肉と受け取った。

363 :デフォルトの名無しさん:2016/11/28(月) 21:23:26.86 ID:C8x/B1Vp.net
>>360
バカの連鎖反応

364 :デフォルトの名無しさん:2016/11/28(月) 21:35:12.23 ID:Efu8jG2p.net
人脈作れば全部解決だろ
Xamarinユーザー見習えよ

365 :デフォルトの名無しさん:2016/11/28(月) 22:05:43.16 ID:/OQd0iyQ.net
元の質問者の>>352だけど、質問の仕方がまずかったなら謝るけど
無意味に喧嘩腰でつっかかるのはどうかと思うよ

意図としては英語も排除しないけど日本語のを中心に教えて欲しかった。
英語は読むのは何とか読めても書く(質問する)のは結構つらいっすわ。

366 :デフォルトの名無しさん:2016/11/29(火) 15:41:26.31 ID:07zLg605.net
>>364
あのオタサー集団と同列に見られるのは非常に辛い

367 :デフォルトの名無しさん:2016/11/30(水) 08:32:18.72 ID:rOv2n/Yl.net
axwindowmediaplayerで次、前のボタンにイベントを割り当てるのはどうしたらいいですか。
this.axWindowsMediaPlayer1.Ctlcontrols.next += new AxWMPLib.なんちゃらなどで記述?
ボタン自体もグレーアウトしていて使えない状態です。

再生などのボタンは初めから再生が割り当てられていてなにも記述しないでもよかったのですが。

368 :デフォルトの名無しさん:2016/11/30(水) 11:01:13.74 ID:U6G+25fY.net
AxWindowsMediaPlayerでそんな細かい制御はできない
currentPlaylistとかでIWMPMedia管理すればそれらも使えるようになるはず
組み込みのプレイリスト使いたくないならUIも自分で全部やる

369 :デフォルトの名無しさん:2016/11/30(水) 16:39:10.32 ID:y2jQ/DIV.net
LINQのQuantifierの日本語訳なんだけど、MSDNだと量指定子、
岩永さんのところだと限定子となってるけど、どっちがより適切だと思う?

https://msdn.microsoft.com/ja-jp/library/bb546128(v=vs.120).aspx
http://ufcpp.net/study/csharp/sp3_stdqueryo.html#quantifier

370 :デフォルトの名無しさん:2016/11/30(水) 23:23:25.49 ID:rOv2n/Yl.net
>>368
ありがとう。プレイリストがよさそうです。

371 :デフォルトの名無しさん:2016/12/01(木) 09:05:41.40 ID:ySUX8EsS.net
>>369
語義的には量指定子じゃない
quantityが量だから

372 :デフォルトの名無しさん:2016/12/01(木) 18:33:51.23 ID:CcMyBcAe.net
でも量指定子って正規表現的な言い回しだよな。
SQL的な言い回しだとALL,ANY,SOMEとかは限定子になるはず。

http://software.fujitsu.com/jp/manual/manualfiles/M100005/J2X17484/01Z200/J7484-00-02-11-06.html

373 :デフォルトの名無しさん:2016/12/01(木) 18:37:08.39 ID:CcMyBcAe.net
ただまあ本家が量指定子ってるんだから、量指定子が正式用語ではあるだろうけど。

374 :デフォルトの名無しさん:2016/12/01(木) 18:39:48.63 ID:lOA8D/0g.net
英語のまま使ってもらいたい

375 :デフォルトの名無しさん:2016/12/01(木) 19:00:45.21 ID:74fND9I4.net
そもそもそんなキーワードを使う場面が思い浮かばない…

376 :デフォルトの名無しさん:2016/12/02(金) 00:05:35.89 ID:ui5LUeC9.net
AnyとAllとContainsをまとめて分類しただけの言葉のようだが、禿しくどうでも良い

377 :デフォルトの名無しさん:2016/12/02(金) 00:27:24.78 ID:57Q76p9I.net
一般的な呼び方じゃ量化子だよな。

378 :デフォルトの名無しさん:2016/12/02(金) 06:58:37.23 ID:jL2K9FKD.net
LINQは日本語ではなに? LINQは英語のままで量化子だけ日本語てのは
運用の誤り。
無理やり日本語にするならクオンティフィアでいいと思うがゴミみたいな
概念をわざわざ日本語にするのはよくない。説明的に日本語で「量化を
意味する」のように使うのは問題ないが、「量化子」のように語彙にして
しまうのはよくない。英語のまま運用するのがよい。

379 :デフォルトの名無しさん:2016/12/02(金) 07:09:43.00 ID:jL2K9FKD.net
訂正
このサイトの説明では
Any,All,Conttainsを総合的に説明するのが目的だからLINQという具体的な
ものよりは上位概念だな。この場合は限定子で正しいと思う。
量指定、量化はちょっと違うな。

380 :デフォルトの名無しさん:2016/12/02(金) 07:21:27.21 ID:iUEu5k7c.net
LINQは固有名詞だから訳しようがないけど量化子はすでに記号論理学でも使われてる一般名詞だろ

381 :336:2016/12/02(金) 07:48:29.69 ID:GGzlnXmJ.net
めんどくさいから英語のままでいいってのはある

382 :デフォルトの名無しさん:2016/12/02(金) 10:36:52.50 ID:X9iN1GdM.net
明治の人に謝るべき暴言。

383 :デフォルトの名無しさん:2016/12/02(金) 14:59:21.44 ID:rEQGNTwO.net
>>380
LINQはLanguage Integrated Queryを省略してるだけだから日本語化できるでしょ(してもらいたくないが)
OPEC〜石油輸出国機構みたいに訳してる例は多い

384 :デフォルトの名無しさん:2016/12/02(金) 17:36:35.56 ID:8D4FZt7r.net
>>383
してみ

385 :デフォルトの名無しさん:2016/12/02(金) 17:40:15.92 ID:DaaN/lCj.net
383ではないが、『言語に統合された問い合わせ』
・・・ないわ

386 :デフォルトの名無しさん:2016/12/02(金) 18:09:20.76 ID:rEQGNTwO.net
>>384
統合言語クエリって単語がすでにある。クエリも訳したら統合言語処理要求か?

387 :デフォルトの名無しさん:2016/12/02(金) 19:38:47.97 ID:4/nN0nxx.net
組込問合せ機能 辺りでいいんじゃね?

388 :デフォルトの名無しさん:2016/12/02(金) 20:25:58.53 ID:fkVt0GEN.net
統合失調言語

389 :デフォルトの名無しさん:2016/12/02(金) 20:31:59.72 ID:57Q76p9I.net
「LINQは LINQ Is Not Queryの略」とか言い出して、その後「LINQはLINQ。略語や頭字語じゃない」とか言い出す。

390 :デフォルトの名無しさん:2016/12/02(金) 20:59:04.23 ID:fqYy1w3v.net
一体誰のことを揶揄した気になっているのかね

391 :デフォルトの名無しさん:2016/12/02(金) 21:09:36.57 ID:ui5LUeC9.net
横だがストールマン以外の誰と言うんだよ

392 :デフォルトの名無しさん:2016/12/04(日) 09:09:46.43 ID:HFDVK7VF.net
おまえら言語センスがないな。「問式」でOK。今後日本語でのLINQこれだ。

393 :デフォルトの名無しさん:2016/12/04(日) 09:20:34.29 ID:a6Aihxwg.net
Bingに聞いたらLINQの日本語訳はLINQでいいってさ
マイクロソフトのお墨付きだからこれが正解な

394 :デフォルトの名無しさん:2016/12/04(日) 09:42:24.52 ID:zAL6lz1+.net
Binqに聞いたらLINQの日本語での質問はLINEQでいいってさ
に見えた

395 :デフォルトの名無しさん:2016/12/04(日) 10:29:28.25 ID:U0Kel+uM.net
こういう関数を作ったら
void func<T>(T obj, string name) {

  obj[name] = ...

}

[name]の部分でエラーが出ます。
こういう関数は作れませんか?

396 :デフォルトの名無しさん:2016/12/04(日) 10:41:15.33 ID:0sR5hBHN.net
すべてのクラスが this[string] を持つわけじゃないから…
自分がTに入れたいクラスをwhere T: で指定しては

397 :デフォルトの名無しさん:2016/12/04(日) 11:15:31.06 ID:U0Kel+uM.net
>>396
ありがとうございました。
上手く行きました。

398 :デフォルトの名無しさん:2016/12/04(日) 12:05:02.46 ID:OeUSkEhR.net
ジェネリックは使いにくいよな
C++みたいな仕様にしてくれりゃいいのに

399 :デフォルトの名無しさん:2016/12/04(日) 12:33:20.31 ID:sIaSQQRI.net
>>398
あほす

400 :デフォルトの名無しさん:2016/12/04(日) 12:56:13.33 ID:3+5uaoN5.net
C++のテンプレートの糞エラーは酷いよな
C#みたいにしてくれりゃあいいのにww

401 :デフォルトの名無しさん:2016/12/04(日) 13:58:45.59 ID:VS/jD7cp.net
>>398
なんでわざとあんな文法になってると思うんだよ
JIT言語の特長を最大限に活かすためだぜ
コンパイラ言語みたいに使うコードを全てあらかじめ生成しておくわけではなく
Tでnewされた時に初めてコードを生成するからメモリ使用量も少ない

ただ利点はそのまま欠点にもなる
T型同士の演算コードを書くとたちまちエラーになるのでdynamic型にキャストするとかしないとな

402 :デフォルトの名無しさん:2016/12/04(日) 15:28:39.35 ID:UcElfbev.net
dynamicにするとbox/unboxが発生するから式木で殴る解決策あったな

403 :デフォルトの名無しさん:2016/12/04(日) 19:05:36.47 ID:U4ZfHibQ.net
ガッチガチにチューニングしようとすると式木やILを触る必要があってツライ

404 :デフォルトの名無しさん:2016/12/04(日) 19:37:47.45 ID:OeUSkEhR.net
コンパイルするタイミングを実行時に移すだけだろ
プログラマがCodeDOMや式木でやってる退屈で定型的なプロセスを自動化するだけじゃん
マイクロソフトの怠慢だよこれは

405 :デフォルトの名無しさん:2016/12/05(月) 00:12:25.29 ID:wzEk6zml.net
>>402
dynamicの偉大な点は勝手に内部で式木に変換してしかもそれをキャッシュしてくれるから
完全なリフレクションに比べて速度的にそんなに不利ではない

http://ufcpp.net/study/csharp/misc_dynamic.html

ここら辺が有名だよな

406 :デフォルトの名無しさん:2016/12/05(月) 01:54:32.46 ID:kX3Q4svv.net
>>404
だいぶ違うぞ
プログラミング学び直したほうがいい

407 :デフォルトの名無しさん:2016/12/05(月) 02:10:45.39 ID:u0DsEOY/.net
使いにくいと言う奴の99%は理解してないだけだからな
1%くらいには李左車の言うように有意義な指摘もあろうが
それは404ではないだろう

408 :デフォルトの名無しさん:2016/12/05(月) 03:06:07.61 ID:TC/GOrDD.net
使いやすいという奴は仕事で使ってない

409 :デフォルトの名無しさん:2016/12/05(月) 07:38:13.09 ID:FYlXKnN9.net
>>406
お前は黙ってJavaかVBでもやってろ

410 :デフォルトの名無しさん:2016/12/05(月) 16:46:58.81 ID:5hp1IXjD.net
>李左車
誰だよ?

411 :デフォルトの名無しさん:2016/12/05(月) 17:16:33.12 ID:uj/2rcDx.net
さーしゃちゃん知らないってモグリかよ

412 :デフォルトの名無しさん:2016/12/05(月) 17:35:03.83 ID:PG/Hzji5.net
クポ?

413 :デフォルトの名無しさん:2016/12/08(木) 00:12:08.98 ID:/aGxLpEu.net
AWS LambdaでC#が使えるようになったらしいな
Googleも.NETの開発に参加したことだし、本格的に波が来ている

414 :デフォルトの名無しさん:2016/12/08(木) 05:07:13.06 ID:Vn/geEUt.net
ついにJava終わったか

415 :デフォルトの名無しさん:2016/12/08(木) 13:08:55.01 ID:0EWqwyqo.net
C#というより.NETの質問なんですがいいでしょうか?
リストビューの各項目のクリックを拾いたいんですが方法ありますか?
例えば以下の様な構成になってる場合「山田」のクリックとか「21歳」のクリックとかを
拾いたい感じです。
---------------------
[項目1][項目2][項目3]
山田  20歳  東京
斎藤  22歳  埼玉
戸川  21歳  千葉
---------------------
やっぱりクリックイベントから現在選択されている項目を取得する
という方法が一番でしょうか?

416 :デフォルトの名無しさん:2016/12/08(木) 13:14:33.65 ID:h9KBoTPl.net
>クリックイベントから現在選択されている項目を取得する
という方法で何か困っていることがあるならそれを書くのが早い

417 :デフォルトの名無しさん:2016/12/08(木) 13:15:32.08 ID:RR5e4yCq.net
行と列両方いるならListViewHitTestInfo

418 :デフォルトの名無しさん:2016/12/08(木) 13:33:02.23 ID:0EWqwyqo.net
>>417
おぉ〜クリックイベントに以下でイケました!>>416さんもありがとうございました!
Point pt = new Point(e.X, e.Y);
ListViewHitTestInfo lvHti = lstv.HitTest(pt);
int row = lvHti.Item.Index;
int col = lvHti.Item.SubItems.IndexOf(lvHti.SubItem);
MessageBox.Show(row.ToString() + ", " + col.ToString());

419 :デフォルトの名無しさん:2016/12/08(木) 14:57:23.01 ID:vKAf8GkY.net
カスタムコントロールについて教えてください。

FontとColorのセットとなるクラスの配列を特定のコントロールのプロパティ値として持ちたいのですが、デザイン時に値を入れると
「ResXファイル.RESXファイルで使用される型XXXXXX..を読み込めませんでした。必要な参照がプロジェクトに追加されていることを確認してください。」というエラーとなってコンパイルできなくなってしまいます。

どの様にすれば、正しく、デザイン時の値を保持&読込ができるのでしょうか?

【ソース】
public class TestCmb:ComboBox
{
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public List<FontAndColorSet> TestProperty { get; set; } = new List<FontAndColorSet>();
}

[Serializable]
public class FontAndColorSet
{
public Font Font { get; set; }
public Color Color { get; set; }
}

420 :デフォルトの名無しさん:2016/12/08(木) 18:44:29.79 ID:Ayid3Uvv.net
>public Font Font { get; set; }
>public Color Color { get; set; }

C#では、クラス名を、2回も書けるのか?

421 :デフォルトの名無しさん:2016/12/08(木) 18:47:17.57 ID:6K2Be21z.net
>>420
public 型名 プロパティ名 {get;set;}
public Object Object(){
  return null;
}
って書けるのと同じ

422 :デフォルトの名無しさん:2016/12/08(木) 18:48:35.47 ID:6K2Be21z.net
C#はフィールドとローカル変数はhogeFooで、プロパティ、メソッド、クラス、名前空間はHogeFooだから結構型名と被る事多いよ

423 :デフォルトの名無しさん:2016/12/09(金) 01:37:38.58 ID:nk5rcDEa.net
>>419
とりあえずこんな感じ
public class TestCmb : ComboBox
{
  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  public FontAndColorSetCollection TestProperty { get; set; } = new FontAndColorSetCollection();
}

//[Serializable] これいらない
public class FontAndColorSet
{
  public Font Font { get; set; }
  public Color Color { get; set; }
}
public class FontAndColorSetCollection : Collection<FontAndColorSet>
{
  public void AddRange(FontAndColorSet[] items)
  {
    foreach (var x in items)
      this.Items.Add(x);
  }
}

ここが参考になる
https://www.codeproject.com/articles/5372/how-to-edit-and-persist-collections-with-collectio

424 :419:2016/12/09(金) 09:31:24.99 ID:pxgVwarY.net
>>423
おおおおおおおおおおお!!!!!!!
ありがとうございます♪さっそく試したところうまくいきました!!
これだけでかなりコード量が減るのでホントたすかりました;w;

ありがとうございますm(_ _)m

425 :デフォルトの名無しさん:2016/12/09(金) 11:25:46.06 ID:nQ2cVzw4.net
質問者じゃないけど、>>419のコードというか、List<T>じゃダメな理由は何なんだろう
AddRangeの引数の型がT[]じゃないから?

426 :デフォルトの名無しさん:2016/12/09(金) 12:43:50.54 ID:73dS9ox0.net
C#でWindows.formアプリを勉強中なんですが
controlとの絡みばかりでクラスを作って色々やるといったことなく出来上がってしまいます
複雑化すればそうもならないのでしょうか。。

427 :デフォルトの名無しさん:2016/12/09(金) 13:56:37.83 ID:3kVVURfS.net
>>426
単純なアプリだとそんなもんだよ
規模が大きくなってきても、ある程度まではその流儀でやれなくはないけど、そのうち
プログラムの見通しが悪くなって、メンテする際にイライラする事が多くなって、
やり方を変えたくなってくる

428 :デフォルトの名無しさん:2016/12/09(金) 18:10:47.21 ID:73dS9ox0.net
>>427
ありがとうございます
頑張ってみます

429 :デフォルトの名無しさん:2016/12/09(金) 18:31:58.73 ID:IAKedM2U.net
ドカタ開発だとそのままのノリで大きなシステム作っちゃうけどね
共有していいのはDBだけ、あとはコピペ上等で画面単位でぶった切れ、という開発スタイルなら設計スキルが無くても容易にスケールするよ
まあ一度書いたものは弄らないことが大前提のやり方なので、後で大きな仕様変更が入ったら炎上するんだけど

430 :デフォルトの名無しさん:2016/12/09(金) 20:14:42.74 ID:RJlryFXO.net
>>429
特定企業への破壊工作を目的とする場合以外に絶対にやってはいけないアーキテクチャパターンランキング第1位のやつじゃん

431 :デフォルトの名無しさん:2016/12/09(金) 20:54:48.40 ID:0cPrt4mX.net
>>430
とはいえ日本の高度経済成長を支えた伝統ある開発手法だからね
低スキルな要員で案件を確実に終わらせて逃げることに関しては現代においても最強よ
古典的なウォーターフォールが正しく機能してるなら客の後出し要件なんか無視できるんだし

432 :デフォルトの名無しさん:2016/12/09(金) 21:03:09.07 ID:SmYH2aqj.net
その頃のシステムのリプレイスで付けを払わされて炎上してるところいっぱいありそう

433 :デフォルトの名無しさん:2016/12/09(金) 21:12:50.85 ID:0cPrt4mX.net
>>432
しかしそのツケを払うのは当時のSIerではなく客だ
際限なく肥大化する保守費用、しかしリプレースしようにも見積は天文学的な金額になる
売る側にとっちゃメリットしかないんだよ

434 :デフォルトの名無しさん:2016/12/09(金) 21:22:01.74 ID:4/j9vJm7.net
コメントしっかりしててすげー綺麗なコード書く奴いるけど
いつもスケジュール間に合わず動かず役に立たず。ぎりぎりになると周りがフォローよ

435 :デフォルトの名無しさん:2016/12/09(金) 21:38:16.31 ID:RJlryFXO.net
>>431
借金は日本のお家芸だな
日本中でそれやってビジネス停滞してんだから国家的損失はデカイ

436 :デフォルトの名無しさん:2016/12/09(金) 21:41:54.69 ID:inzQIL9U.net
>>433
そこで魔法の言葉「過去資産の流用」が出て来るのか

437 :デフォルトの名無しさん:2016/12/09(金) 21:50:33.79 ID:YFW7nsEC.net
>>433
マジで経験したことないやろ
そんな案件の尻拭いってモチベーションだだ下がりやし
二度と経験したくない

438 :デフォルトの名無しさん:2016/12/09(金) 22:28:31.44 ID:RJlryFXO.net
レガシーシステムのリファクタリングは楽しい
でもリファクタリングをしたら正しく動いてるものに触るなと怒られる
ジャアアアアップ

439 :デフォルトの名無しさん:2016/12/09(金) 22:32:26.54 ID:o6zCM5vx.net
>>438


440 :デフォルトの名無しさん:2016/12/09(金) 23:11:31.83 ID:SjD2GByw.net
周りにC#プログラミングをやっている人がおらず、推奨/非推奨の判断ができないので相談させてください
次のような書き方はアリでしょうか

たとえばWindowsフォームアプリケーションのForm1クラスの
直下に
Regex.CacheSize = 100;
などとほかのクラスのプロパティ代入文を書くとエラーでコンパイルが通りませんが、これを
int dummy_int = Regex.CacheSize = 100;
というようにダミーの変数代入を噛ませれば、
コンパイルエラーを起こすことなく書くことができてしまいます

これは普通に使われるようなテクニックですか?
それとも仕様上はコンパイルできるがあまり好ましくない書き方ですか?

441 :デフォルトの名無しさん:2016/12/09(金) 23:20:41.59 ID:SmYH2aqj.net
使っちゃ駄目。
上の書き方でコンストラクタ内とかで設定。

442 :デフォルトの名無しさん:2016/12/09(金) 23:22:54.69 ID:AFnkuo0i.net
考えたこともなかったからちょっと感心したわ
視点の違いってすごいわ

443 :デフォルトの名無しさん:2016/12/09(金) 23:39:59.90 ID:pDhW8mKL.net
コンストラクタが呼ばれた時に暗黙的に変数の初期化が走るとは言え上手くいくのだろうか。
普通はコンストラクタかForm1がロードされた時に代入かな。

444 :デフォルトの名無しさん:2016/12/09(金) 23:45:53.15 ID:SjD2GByw.net
>>441
ありがとうございます、やっぱりダメですか
ちなみにどういった理由でダメなんでしょう

実際には色々なクラスの色々な所でRegexオブジェクトを定義しているので
なるべく早くキャッシュサイズを拡大したいんですが、
(あまりProgram.csは触りたくないけど)素直にMain()内に書くしかないんでしょうか

>>443
ステップ実行してみたら、Form1のコンストラクタ(InitializeComponent();)よりも前に実行されてました

445 :デフォルトの名無しさん:2016/12/09(金) 23:51:08.34 ID:vatll/rz.net
>>440
こんな仕様初めて聞いたんだが、誰かkwsk

446 :デフォルトの名無しさん:2016/12/10(土) 00:10:15.56 ID:htA28gv+.net
>>442 >>444
int a=b=100;
みたいな書き方ができること自体は以前どこかで読んだことがあったものの
なんとなく気持ち悪くてこれまで使ったことがなかったのですが、
最近改めて=演算子の戻り値と演算順序(先に実行される「b=100」の結果が100を返すので
それがaにも代入される)を勉強したところだったので、コンパイルできるかなと思ったらできてしまいました

447 :デフォルトの名無しさん:2016/12/10(土) 00:11:39.47 ID:htA28gv+.net
>>446は442と>>445へのレスでした。

448 :デフォルトの名無しさん:2016/12/10(土) 00:14:55.08 ID:HOF4U6Im.net
>>446
それは分かる
でも何故エラーが出なくなるのかって話

449 :デフォルトの名無しさん:2016/12/10(土) 00:24:59.06 ID:mt2BmPb5.net
そもそも単なる文法上の制約だからだろ

そういう制約をわざわざ付けてるってことは、そういう事はやるべきじゃないって思想の表現だと思うが

450 :デフォルトの名無しさん:2016/12/10(土) 02:21:43.03 ID:XBbQ6S0E.net
>>444
横だし俺はC#専門ではないけど、それってコンストラクタ内に書けばいいだけだよね。
果たして>>440で動くのかも疑問だけど、
仮に動いたとしても、ダミー変数がインスタンス内に残ってしまうのが無駄だよね。

そもそも a=b=c の書き方自体をしない。(ただしRubyの連中はするのかもしれない)
何故かは知らんが、おそらく見にくいという主張をする奴が多いからだろう。
どのみち普通はコーディングルールで禁止してあるし、
行数をケチる以外のメリットもないからいちいち文句を言う価値もないし。

451 :デフォルトの名無しさん:2016/12/10(土) 02:29:36.15 ID:THyFY8cN.net
>>444
単純に分かり難いから。このスレの反応見ても、普通使わなそうなのが見て取れるでしょ。

Program.csが嫌でなるべく早くというなら、Form1のコンストラクタが良いんじゃないの。
Form1のコンストラクタよりも先である必要ってないでしょ。

452 :デフォルトの名無しさん:2016/12/10(土) 03:10:58.12 ID:jJfPnpDE.net
static IDisposable SubscribeTracer<T>(this IObservable<T> source, string name) {
var disposer =
source.Subscribe(value => Console.WriteLine("{0} : OnNext({1})", name, value));
return disposer;
}
このプログラムは一体なんなのだ。全然わからない。そこで理解しようと思ってラムダ部分を
関数に置き換えてみると
void ramda(string value ){ Console.WriteLine("{0} : OnNext({1})", name, value); };

だあーー、nameを持ってこれない。持ってくるとすればグローバルにするしかない。
 ラムダ関数は単なる匿名関数というだけでなくて、こういう便利な機能があるんだと初めて
分かった。つまり普通の関数にするとスコープを閉じるがラムダにするとスコープが開く。
オープンスコープ機能だ。ダダだい発見だ。と思ってほかにも気が付いた奴がいないかと
「ラムダ関数はスコープを開く」でググってみると、無い。俺の発見だ。w

453 :デフォルトの名無しさん:2016/12/10(土) 03:13:11.24 ID:jJfPnpDE.net
MSの説明 ラムダ式(C#プログラミングガイド)
ラムダ式は、デリゲート型または式ツリー型を作成するために使用できる匿名関数です。 ラムダ式を使用すると、引数として渡したり関数呼び出しの結果値として返すことができるローカル関数を記述できます。 ラムダ式は、LINQ クエリ式を記述する場合に特に便利です。
以下省略(間違いがおおすぎ、、、、)

1行目から間違ってるよな。W デリゲート型をつくるのは delegate int del(int i); この部分で
あって
del myDelegate = x => x * x;
これではないな。
2行目も間違ってるよな。w ローカル関数ってのはC#7(VS2017)からなのでまだサポート
ないだろ。

454 :デフォルトの名無しさん:2016/12/10(土) 04:49:24.16 ID:jJfPnpDE.net
delegate void del(string valule);
static string _name;
static IDisposable SubscribeTracer<T>(this IObservable<T> source, string name)
{
_name = name;
//var disposer = source.Subscribe(value => Console.WriteLine("{0} : OnNext({1})", name, value));
del aa;
aa= eventdo;
var disposer = source.Subscribe( aa(val ) );
}
static void eventdo(string value){
Console.WriteLine("{0} : OnNext({1})", _name, value);
}
452をDelegateで書き換えてみたがコンパイルエラーになる。なんでだ?

455 :デフォルトの名無しさん:2016/12/10(土) 08:12:40.98 ID:htA28gv+.net
>>450-451
なるほど、見にくい・分かりづらいというのは同意見です
(自分もint a=b=0みたいな表現は今回の件まで一度も使おうとしなかったので)
ただ、Form1のコンストラクタに書いても
実行順序はForm1のメンバ変数定義より後回しになってしまうようなので…

Form1のメンバ変数としてRegexオブジェクトを大量に定義しているので
もっと早くキャッシュサイズを拡張しないと意味ないのかな?と

456 :デフォルトの名無しさん:2016/12/10(土) 09:33:27.42 ID:jJfPnpDE.net
すまん。454は自己解決した。
そもそもIObservableをまったく理解してなかった。

457 :デフォルトの名無しさん:2016/12/10(土) 10:41:12.43 ID:scmr7sdZ.net
>>455
メンバ変数の初期化もコンストラクタでやったらどうかな?

458 :デフォルトの名無しさん:2016/12/10(土) 12:31:00.36 ID:rHn5Q6ti.net
>>455
変な小細工せずにForm1のコンストラクタを呼び出す前に書くのが筋だと思う。

っていうか、Regexあんまり使わないので自信ないけど、そもそもRegex.CacheSizeなんか設定しなくても
RegexのコンストラクタでRegexOptions.Compiledを指定すれば済むんじゃないの?

459 :デフォルトの名無しさん:2016/12/10(土) 12:43:23.50 ID:rHn5Q6ti.net
http://smdn.jp/programming/netfx/regex/1_regex_cached_compiled/
↑によるとCacheSizeが影響するのはスタティックメソッドを使う場合だけ?

>>455はRegexのインスタンスを生成してるみたいだから、だったらそもそもCacheSizeの
設定は無意味ってことかな。

460 :デフォルトの名無しさん:2016/12/10(土) 12:53:41.37 ID:rHn5Q6ti.net
考えてみたら、どっからでもアクセスできちゃうstaticなプロパティの値が
個々のインスタンスの挙動に影響を与えるような筋悪な設計は
普通はありえないよな

461 :デフォルトの名無しさん:2016/12/10(土) 12:59:36.57 ID:9rLOEiC0.net
>>459
>>455も設定先はstaticでしょ。そうしないとエラーになるはず

462 :デフォルトの名無しさん:2016/12/10(土) 14:07:24.95 ID:8ZN9Ra/9.net
キャッシュが影響するのはRegex.IsMatchみたいな静的メソッド使うときだけ
new Regexする時はキャッシュ関係ないと思う

あと、フィールドの初期化はわかりにくいので軽くて副作用のないものだけにした方が良い
正規表現の作成が時間食うなら、コンストラクタで行った方があとあと変更するときによい

463 :デフォルトの名無しさん:2016/12/10(土) 14:32:08.61 ID:ZQIWZdV9.net
>(あまりProgram.csは触りたくないけど)
ドンドン触れ!
変なこだわりは捨てるべき

464 :デフォルトの名無しさん:2016/12/10(土) 16:30:39.28 ID:SuPtWdia.net
分かっててあえてやってるなら大きなお世話かもしれんけど、
そもそも処理をFormに書いちゃうところから間違ってるな

465 :デフォルトの名無しさん:2016/12/10(土) 18:25:04.69 ID:9rLOEiC0.net
>>464
世話焼くならForm1って名前からにしろ

466 :デフォルトの名無しさん:2016/12/10(土) 18:42:35.17 ID:L/PQ4lRu.net
自前で適当に作ってる自分用アプリならネーミングセンス(とデフォルト名変更)についてとやかく言う必要は無いがな。

467 :デフォルトの名無しさん:2016/12/10(土) 19:02:21.05 ID:YyXkI5ew.net
Form1とかの名前、あれはもうつけかえるのはやめにしたんだ

468 :デフォルトの名無しさん:2016/12/10(土) 19:07:08.15 ID:BtzSATc1.net
ListViewのItemを高速に消す方法はないでしょうか?
BeginUpdateをしていても遅くて。3万件のItemから29800件消すといった場合です。

469 :デフォルトの名無しさん:2016/12/10(土) 19:17:12.33 ID:htA28gv+.net
>>459 >>462
インスタンスの場合はキャッシュ関係ないんですね…勘違いしてました

>>458後半
コンパイルすればキャッシュは無関係、というわけではなかったと思います
キャッシュが少ない状態で何種類ものパターンで静的メソッド(コンパイルオプションつき)を使うと
何度もコンパイルされる羽目になるはずです

>>463
キャッシュの拡大はRegexを使うクラス内に書いておきたいという気持ちがあるんですが
「なるべく早めに」ということならやはりMain()&#8206;に書いた方がいいのかなあ…

470 :デフォルトの名無しさん:2016/12/10(土) 19:19:43.47 ID:0TBYagU6.net
つうかいいか
そういうのはコードじゃなくて設定ファイルに書くもんだよ

471 :デフォルトの名無しさん:2016/12/10(土) 19:22:20.67 ID:wTYgtvkF.net
>>468
コントロールを再作成して必要な分だけ追加したら?

472 :デフォルトの名無しさん:2016/12/10(土) 20:00:23.99 ID:g6CF/PBV.net
>>468
その前に3万件追加した作業が無駄だよね
0件から200件追加することが出来ないのかプログラムを見直すべき

473 :デフォルトの名無しさん:2016/12/10(土) 20:24:13.29 ID:BtzSATc1.net
>>471
ありかもしれません。

>>472
追加と削除のタイミングが違うので・・・

474 :デフォルトの名無しさん:2016/12/10(土) 20:32:26.08 ID:moWXVb0v.net
仮想化しててもそんなに遅くなるもんかね

475 :デフォルトの名無しさん:2016/12/10(土) 20:33:06.95 ID:g6CF/PBV.net
>>473
3万件をスクロールして閲覧する用途が有るはずもなく、最初から考えが間違っているんだよ
とはいえ、割りとありがちなんだけどね

476 :デフォルトの名無しさん:2016/12/10(土) 20:46:01.62 ID:iMqvKcIt.net
VirtualModeなら速いんでねの?

477 :デフォルトの名無しさん:2016/12/10(土) 20:48:19.32 ID:0TBYagU6.net
お客様は何万件でも表示させるといったらPGが死んでも表示させる
もちろんパフォーマンスの低下は許さない
つまりこれは現実的な用件なんだよね

478 :デフォルトの名無しさん:2016/12/10(土) 21:14:17.86 ID:f57StUOL.net
御意!

479 :デフォルトの名無しさん:2016/12/10(土) 21:45:14.07 ID:BtzSATc1.net
VirtualMode速すぎる
なんだこれ
これを待ってました。

480 :デフォルトの名無しさん:2016/12/10(土) 21:53:53.30 ID:mMrYCd0+.net
Formsは長いことやってたんだけど.net coreでのWebシステムって容易く出来るんけ?
PHPでのMVCフレームワークとかrailsはわかる

481 :デフォルトの名無しさん:2016/12/10(土) 22:08:22.01 ID:0TBYagU6.net
基本がしっかりしてれば簡単だよ
そのためにUIフレームワークに依存しないように作れっていつも言われるだろ

482 :デフォルトの名無しさん:2016/12/10(土) 22:09:21.73 ID:mMrYCd0+.net
>>481
さんくす
手を出してみるわ
何を選んでもMFCのドキュメントビューよりは良いだろうってのが心の拠り所です

483 :デフォルトの名無しさん:2016/12/10(土) 22:28:44.20 ID:moWXVb0v.net
仮想化せずにListViewで3万アイテム扱ってたのか・・・

484 :デフォルトの名無しさん:2016/12/10(土) 22:31:16.68 ID:BtzSATc1.net
仮想化するとInsertionMarkが使えないみたいです。
どうしましょうか?

485 :デフォルトの名無しさん:2016/12/10(土) 23:55:43.96 ID:VtzX6XaJ.net
>>468
発想を変えて、ListViewを作り直したら?

486 :デフォルトの名無しさん:2016/12/11(日) 07:29:54.22 ID:9qlRR3sU.net
>>484
WM_SETREDRAWで描画停止してやれば、Virtualでなくても3万件ぐらいいけると思う。
やり方は、検索すれば出てくる。

487 :デフォルトの名無しさん:2016/12/11(日) 08:09:32.73 ID:tSe+v4ik.net
3万件用と200件用は別のListViewを用意して、Visibleで切り替えるとか

488 :デフォルトの名無しさん:2016/12/11(日) 10:51:04.21 ID:rgeKQ1h1.net
質問させてください。
Microsoft Press の「プログラミング.NET Framework 第2版」という本に、下記の記述があるのですが、

【【【【【引用ここから】】】】】
internal sealed class Transaction {
 private DateTime timeOfLastTransaction; // 最後にトランザクションが行われた時間を記録するフィールド

 public void PerformTransaction() {
  Monitor.Enter(this); // thisオブジェクトのロックを取得
  // トランザクションを実施...

  timeOfLastTransaction = DateTime.Now; // 直前のトランザクションの時間を記録
  Monitor.Exit(this); // thisオフジエクトのロックを開放
 }

 public DateTime LastTransaction { // 最後にトランザクションが行われた時間を返す読み取り専用プロパティ
  get {
   Monitor.Enter(this); // thisオブジ工クトのロックを取得
   DateTime dt = timeOfLastTransaction; // 最近のトランザクションの時間を一時変数に保存
   Monitor.Exit(this); // thisオブジェク卜のロックを開放
   return dt; // 保存された日時を返す
  }
 }
}
【【【【【中略】】】】】
プロパティの実装でEnterとExitと一時変数dtが必要なことに注意してください。
破壊されている可能性のある値を返さないようにするために、これが重要です。
あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティにアクセスすると、これが起こりえます。
【【【【【引用ここまで】】】】】

Monitorでロックをしてるのに、なぜ「あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティに
アクセスする」ことがありえるのでしょうか?

489 :デフォルトの名無しさん:2016/12/11(日) 11:00:53.02 ID:E1v0n/uN.net
>>488
プロパティの実装でEnterとExitと一時変数dtが必要なことに注意してください。
破壊されている可能性のある値を返さないようにするために、これ(enter/exit/dtの存在)が重要です。
(enter/exit/dtが存在しないなら、)あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティにアクセスすると、これ(破壊されている値を返すこと)が起こりえます。

つまり(きちんと)ロックしてるならアクセスすることはない

490 :デフォルトの名無しさん:2016/12/11(日) 11:14:59.06 ID:rgeKQ1h1.net
すみません。質問の書き方がマズかったですね。
それと、もう一度自分でよく考えて、自己解決しました。

疑問に思ったのは、

・複数スレッドが同時にアクセスしないようにするために、EnterとExitが必要なことは
 わかるが一時変数dtはなぜ必要なのか?
・Enter〜Exitでロックしてても、PerformTransactionの呼び出し中に別スレッドが
 アクセスすることがありえるのか?
・その問題を回避するために、いったん一時変数dtに退避する必要があるという意味か?

ということでした。

しかし、よく考えれば、疑問が解消しました。

・dtが無いとreturnで値を直接返すことになる
・そのためにはreturnをEnterとExitで囲む必要がある(がそんなことはできない)
・だから、dtに入れてる

ってだけのことですね。お騒がせしました。
回答いただいた方、ありがとうございました。

491 :デフォルトの名無しさん:2016/12/11(日) 14:59:01.41 ID:o/YiWCEr.net
>>486
WM〜でなんかやるならInsertionMark云々だって自己解決できるような気が

492 :デフォルトの名無しさん:2016/12/11(日) 22:39:52.04 ID:9qlRR3sU.net
>>491
描画止めるくらいであればウインドウメッセージとかよくわからなくてもググって数行コピペするだけで出来るし、既に非Virtualで作ったものをVirtualに変更するより手っ取り早いかなと思って。

493 :デフォルトの名無しさん:2016/12/11(日) 23:37:43.42 ID:rW4zRmsa.net
InsertionMarkってNearestIndexが使えないだけみたいで
そこだけ計算で出してやれば使えました。
お陰で高速な動作ができるようになりました。ありがとうございました。

494 :デフォルトの名無しさん:2016/12/14(水) 22:10:21.05 ID:zGQk9RuM.net
正規表現Regexのインスタンスを作る際の文字列指定をするときに、
@を先頭につけているのを見るのですが、
これはどういったことでしょうか
必要なのでしょうか

495 :デフォルトの名無しさん:2016/12/14(水) 22:16:24.21 ID:LQhYfqJw.net
>>494
\を大量に書かなくていいようにするため

496 :デフォルトの名無しさん:2016/12/14(水) 23:05:36.02 ID:PdV20HuV.net
Rubyには、こういう関数があるけど、C#には無いの?

rp = Regexp.escape("$bc^")
\$bc\^

Regexp.escape(string) -> String
string の中で正規表現において、特別な意味を持つ文字の直前に、
エスケープ文字(バックスラッシュ)を挿入した文字列を返します

497 :デフォルトの名無しさん:2016/12/14(水) 23:08:32.15 ID:+dTErpY/.net
そのまんまのがあるが
Regex.Escape(string)

498 :デフォルトの名無しさん:2016/12/14(水) 23:16:39.96 ID:zGQk9RuM.net
>>495
494です
ありがとうございます

499 :デフォルトの名無しさん:2016/12/15(木) 08:46:01.32 ID:3NUBKOAZ.net
完全に市場はJavaの圧勝が決まったようだ。

500 :デフォルトの名無しさん:2016/12/15(木) 12:09:47.56 ID:VtGam84M.net
>>499
へーすごいね

501 :デフォルトの名無しさん:2016/12/15(木) 12:57:24.49 ID:4tPXC7sh.net
金箔貼っても糞は糞。を思い出した。

502 :デフォルトの名無しさん:2016/12/15(木) 13:45:31.77 ID:7KRIzock.net
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja

503 :デフォルトの名無しさん:2016/12/15(木) 13:55:12.96 ID:8Dy0z+2t.net
chrome.webRequest.onBeforeRequest.addListenerでこれブロックしてる
"*://b.st-hatena.com/*",
"*://b.hatena.ne.jp/entrylist/*",
"*://b.hatena.ne.jp/entry/image/http*",
"*://b.hatena.ne.jp/entry/json*",
"*://b.hatena.ne.jp/bc/or/http*",
"*://api.b.st-hatena.com/entry.count*",
"*://cdn-ak.b.st-hatena.com/*",

504 :デフォルトの名無しさん:2016/12/15(木) 19:32:58.03 ID:aesj07do.net
c#で書かれた解析機を吐き出すyaccみたいなツールってないの?

505 :デフォルトの名無しさん:2016/12/15(木) 20:28:20.48 ID:u3iwxuUX.net
自分に合ったのを探せ
https://en.wikipedia.org/wiki/Comparison_of_parser_generators

506 :デフォルトの名無しさん:2016/12/19(月) 00:22:28.34 ID:hPPOameE.net
テキストボックスでValidatingを実装し、e.cancel=trueにした場合について2つ質問があります。
1.フォームの×ボタンを押してValidatingが発生しe.cancel=trueになっても、form.closingを実装するとフォームを閉じれるとネットブログであったのですが、
これはどういった仕組みでしょうか?
cancelになっても別のコントロールについては実装すれば、その処理が走るのでしょうか。
また、msdnでのそこに関する説明はどこにありますでしょうか?
2.そもそも,フォームの×ボタンでValidatingを走らせないようにするにはどうしたらいいでしょうか?

507 :デフォルトの名無しさん:2016/12/19(月) 14:59:52.95 ID:/uogIQCg.net
2つと言いつつ1に3つぐらい質問があるように見える

> form.closingを実装するとフォームを閉じれる
実装するとじゃない。
Closingイベントのイベントハンドラでe.Cancelをfalseに設定したら閉じられる。

> これはどういった仕組みでしょうか?
Validatingで設定したe.CancelがClosingで設定されるe.Cancelで上書きされるだけ。

> cancelになっても別のコントロールについては実装すれば、その処理が走るのでしょうか。
ちょっと何言ってるか分からない。

> msdnでのそこに関する説明はどこにありますでしょうか?
ValidatingとClosing(FormClosing)のページにないんなら、ないんじゃない?

> フォームの×ボタンでValidatingを走らせないようにするにはどうしたらいいでしょうか?
WM_CLOSEをハンドルする方法とか提案されてる
http://d.hatena.ne.jp/dotnetmemo/20060702/1151839515

508 :デフォルトの名無しさん:2016/12/19(月) 21:55:11.26 ID:m20BeiOW.net
前から疑問だったんだがValidatingでフォーカス移動封じるタイプのUIって誰が得するんだ?

509 :デフォルトの名無しさん:2016/12/19(月) 23:07:10.38 ID:nxaByp7v.net
開発者の保身に役立つ
ユーザビリティ何それ

510 :デフォルトの名無しさん:2016/12/21(水) 22:02:28.59 ID:OBoWPQLO.net
VisualStudioでスキャフォールディングっていうの?
あのC#コード生成ってどうやってんの?
右クリックメニューのコマンドで画面開いてパラメータ入力したらコードがいくつかババっと出力されてプロジェクトにインクルードされて時にはconfigまで書き換わるあの便利なやつ

511 :デフォルトの名無しさん:2016/12/21(水) 22:13:35.55 ID:I2xL3xVw.net
子供発見

512 :デフォルトの名無しさん:2016/12/21(水) 23:15:00.27 ID:EydnUon0.net
>>510
テンプレートで生成してるだけだよ
自分で同じようなことやりたければT4でも調べてみたら

513 :デフォルトの名無しさん:2016/12/22(木) 00:41:34.58 ID:0KrqUh09.net
>507
506です。遅くなりましたがお答えありがとうございます。

補足で質問です。
> cancelになっても別のコントロールについては>実装すれば、その処理が走るのでしょうか。
ここに関しては、validatingでe.cancel=trueにしたら、そもそもclosingが走らないかと思っていたのですが、そういうことではないのでしょうか。validatedまでキャンセルになるということでしょうか。

514 :デフォルトの名無しさん:2016/12/22(木) 00:52:26.00 ID:3F8kH50r.net
closingにデバッグポイント置いてそこで停まったら実行されるってことだろ
そんくらいもできないのかよ

515 :デフォルトの名無しさん:2016/12/22(木) 10:02:04.72 ID:i/pZa1E8.net
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja

516 :デフォルトの名無しさん:2016/12/22(木) 10:12:48.15 ID:hYDEOt1H.net
mbgdnfmdelffjdhkdggilmphfdihnmcj をNGワード設定だな。この開発者そこらに張りまくってやがる

517 :デフォルトの名無しさん:2016/12/23(金) 13:13:48.39 ID:/B2iyB1G.net
そうなの?登録しとこっと…ハッ

518 :デフォルトの名無しさん:2016/12/24(土) 06:16:26.82 ID:WEJSRv5C.net
PythonのコードをC#で書き直してるんだけどさあ
C#で関数の引数に関数を指定することって出来ないのかな?

具体的にしたいことは関数の傾きを求めることで、たとえば適当な関数
float A(float x){return x^2;}
があったときに、傾きを求める関数
float B(関数, float x){return xでの傾き;}
みたいなものを作成して
d = B(A(), 0.1f);
のような呼び出し方をしたいんだけど・・・・なにかそれに近いC#のコードの記述方法ってないかな?

519 :デフォルトの名無しさん:2016/12/24(土) 06:53:00.31 ID:kPI05Gb3.net
delegate じゃ駄目なの?

520 :デフォルトの名無しさん:2016/12/24(土) 06:56:25.78 ID:iV5eYun0.net
float B(Func<float, float>, float) ということなのかな

521 :デフォルトの名無しさん:2016/12/24(土) 07:23:08.42 ID:WEJSRv5C.net
>>519-520
デリゲートを使うのが一番近い記述ができるのかな?
そうするとミスって複数メソッドを登録したときの処理も記述しとかなきゃなんないかな・・・・

522 :デフォルトの名無しさん:2016/12/24(土) 07:41:28.77 ID:qXNVWWNf.net
>>518
関数を引数にしたいなら520でいいけど

そもそもC#で任意の関数を引数にして傾きを求めるのは無理だと思うよ
引数の関数が微分可能かどうか(下手すると連続かどうか)も保証されてないのに

523 :デフォルトの名無しさん:2016/12/24(土) 09:21:29.09 ID:3LTJc3r/.net
微分可能であることの保証ができないなんてどの言語でも一緒だろ
イベントハンドラ以外のデリゲートでマルチキャストを使う馬鹿もいない(いたら今すぐやめろ)から無視していい
あとそういう計算にfloat使うと激しく誤差が出るからfloatじゃなくてdouble使え
Pythonの浮動小数点数もdouble精度だ

524 :デフォルトの名無しさん:2016/12/24(土) 10:31:06.47 ID:dPbQS77J.net
>>522
微分可能とか最近覚えた用語を使いたくてしょうがないんだな w

525 :デフォルトの名無しさん:2016/12/24(土) 10:37:23.24 ID:qXNVWWNf.net
あらかじめコーディングされた関数たちしか使わないなら、導関数も事前に用意しておけばいいよね

>>523
mathematica等の数式処理言語ならできるよ

526 :デフォルトの名無しさん:2016/12/24(土) 12:25:20.15 ID:1tLIoM8k.net
関数の数値微分は機械学習とかシミュレーションとかで普通に使うぞ

527 :デフォルトの名無しさん:2016/12/24(土) 15:05:19.64 ID:uriaUnJG.net
数学とC#の関数の定義の区別ができないお子ちゃまですか。

528 :デフォルトの名無しさん:2016/12/24(土) 15:50:11.41 ID:IXC75mXH.net
おまえはC#の関数で、俺は数学の関数だ!
そこになんの違いもありゃしねぇだろうが!

529 :デフォルトの名無しさん:2016/12/24(土) 15:52:59.52 ID:51ELz7Bu.net
空のWebアプリプロジェクトからASP.NET MVCをインストールして適当にビューを作ったんだけど
マークアップエディタのインテリセンスにViewBagがないって怒られます
コードエディタでは普通にViewBagにアクセスできます
これはいったいどういうことなんでしょうか

530 :デフォルトの名無しさん:2016/12/24(土) 16:49:07.86 ID:uriaUnJG.net
式をこねくり回したいんだろう。

自分ですうしきクラスを作れよ。

531 :デフォルトの名無しさん:2016/12/24(土) 17:01:13.35 ID:WEJSRv5C.net
>>522
たしかに解析的に正しい微分できないけど、僅かにXをずらしてそれっぽい数値を出したいんです

532 :デフォルトの名無しさん:2016/12/24(土) 17:07:45.02 ID:3KzFEnUI.net
微分可能かとどう実装するかは別の問題だからどうでもいいなw
ちょっと大げさめだが、俺ならinterface使う

533 :デフォルトの名無しさん:2016/12/24(土) 18:08:40.53 ID:2kirY5E3.net
>>531
何が言いたいのかよく分からんけど普通にこういうのじゃいかんの?
static double GetSlope(Func<double, double> func, double x, double delta = 1e-6)
{
  var left = func(x - delta/2);
  var right = func(x + delta/2);
  return (right - left) / delta;
}

534 :デフォルトの名無しさん:2016/12/24(土) 19:30:16.14 ID:dPbQS77J.net
>>533
いや実装方法はわかってるでしょ
python からの移植なんだし
>>531>>522 が微分可能とか言い出してるからそれへの説明だと思うぞ

535 :デフォルトの名無しさん:2016/12/24(土) 22:57:47.19 ID:ZPnvY2Gu.net
>>524
えっ?

536 :デフォルトの名無しさん:2016/12/25(日) 01:15:18.80 ID:2bXL0gSr.net
音声付の外国語の単語学習アプリを
作ろうとしてます。
数千の単語の音声を、少数のファイルで扱うには
どのような方法使えばいいんでしょうか?

537 :デフォルトの名無しさん:2016/12/25(日) 02:05:37.96 ID:1Va0hmvu.net
全部つなげて1つのファイルにしておいて、
欲しい時にはその単語データのオフセットと長さを指定して取り出して再生、かな

538 :デフォルトの名無しさん:2016/12/25(日) 02:11:45.12 ID:xhZEf65t.net
圧縮された音声データでそんな高精度のシークが可能なのかなw

っていうか、今時のWindowsってたいがいの言語の音声合成エンジンがタダで提供されてなかったっけ?

539 :デフォルトの名無しさん:2016/12/25(日) 02:18:12.49 ID:tQvSe6Qr.net
>>538
バイト配列にしてつなげてサイズと順番のインデックス作ればいいだけ

540 :デフォルトの名無しさん:2016/12/25(日) 02:45:35.51 ID:bvgmOMUN.net
話が噛み合ってないな
>>537>>539はバラバラの既存の単語音声データを単一ファイルにまとめる話
>>538はボインや子音とかから合成するTTSライブラリ使えって話
>>536の目的は学習アプリ
前者なのか後者なのかはっきりさせないと答えようがないが
TTSから垂れ流す音声が正しいとは限らないので
単語レベルなら既存の音声辞書から引っ張って来た方がいい気はする

541 :デフォルトの名無しさん:2016/12/25(日) 07:18:53.50 ID:MTT7ZR6N.net
ボインは赤ちゃんのためやでー

542 :デフォルトの名無しさん:2016/12/25(日) 08:51:11.94 ID:NMeoNRf0.net
音声を64kぐらいでMP3化してSQLiteに登録するのが最善じゃね?

543 :デフォルトの名無しさん:2016/12/25(日) 09:09:11.14 ID:r6LchLOJ.net
今時はクラウドだろ
バラバラのままでS3にでも突っ込んどけ

544 :デフォルトの名無しさん:2016/12/25(日) 10:03:57.23 ID:bejmTeDn.net
再生の度にHDDから読み込むともたつくときがあるんだよね
だからといってゲームみたいにシーンに必要なデータを予め読める量でもないし
難しかったな

545 :デフォルトの名無しさん:2016/12/27(火) 19:34:32.54 ID:r2C7TXrR.net
ASP.NET WebフォームとMVC勉強するならMVC一択ですか?

546 :デフォルトの名無しさん:2016/12/27(火) 19:44:21.85 ID:RazBYv5e.net
>>545
もちろん
CoreもFullも使えるし

547 :デフォルトの名無しさん:2016/12/27(火) 21:03:13.98 ID:kWoV7/2e.net
>>546
ありがとうございます
やはりそうなんですね

548 :デフォルトの名無しさん:2016/12/27(火) 22:49:58.42 ID:DbM4OtJE.net
ASP.NETの基本的なことを学ぶなら空のWebFormsから始めた方がいい
MVCから入るとプロジェクトテンプレートの時点で訳が分からなくなって意欲を損なう

549 :デフォルトの名無しさん:2016/12/28(水) 00:24:46.29 ID:6PQ8eENJ.net
>>548
いやいや今どきWeb Formsとかないわ
仕事で仕方なくっていう理由ならわかるけど

550 :デフォルトの名無しさん:2016/12/28(水) 02:37:03.12 ID:tHS+BZPK.net
windows formでtwitterクライアントを作ろうとしているのですがタイムラインをどう表示するかで詰まっています
具体的に言うとブラウザや携帯のtwitterアプリで見るような形でタイムラインを表示したいのですがどのようなコントロールを使えばいいのか分かりません
どなたか教えていただけないでしょうか

551 :デフォルトの名無しさん:2016/12/28(水) 06:10:33.37 ID:U/Wkcgn0.net
WebBrowser

552 :デフォルトの名無しさん:2016/12/28(水) 06:28:56.80 ID:hLvgF446.net
>>550
まずはタイムラインの仕様を詳しく書いて

553 :デフォルトの名無しさん:2016/12/28(水) 07:40:36.68 ID:EECpjgXG.net
俺もWebBrowserコントロールがいいと思うな。

554 :デフォルトの名無しさん:2016/12/28(水) 07:55:45.93 ID:nclhbqFU.net
Twitterはツイートの表示の仕方がディスプレイガイドラインによってガチガチに決められてる
独自に作ったところで結局同じものを再発明することになるだけで時間の無駄でしかない
結論として、WebBrowserでいい

555 :デフォルトの名無しさん:2016/12/28(水) 11:01:45.01 ID:Xid52+QB.net
electron使え

556 :デフォルトの名無しさん:2016/12/28(水) 11:06:16.13 ID:WHhbvFAo.net
UWFは知らんけどWin8のストアアプリにはそんなサンプルが結構あったね。
あの手のUIとXAMLは相性がいいとか何とか。

そういうのパクってWPFで....と思ったけどWindos Formで作るのか

557 :デフォルトの名無しさん:2016/12/28(水) 11:11:05.17 ID:Xid52+QB.net
Krileとかいう うぃんどうずさいきょうくらいあんと はWPFだぞ

558 :デフォルトの名無しさん:2016/12/28(水) 11:33:29.67 ID:tDjKTni2.net
まったく同じもん作りたいならWebBrowserコントロールだけど
そうじゃなきゃリストビューのオーナードローかな
なんか意図があるから作りたいわけだろうからそれに合わせて作れとしかw

559 :デフォルトの名無しさん:2016/12/28(水) 16:33:19.65 ID:XPsq6pGc.net
PictureBoxだろ。

560 :デフォルトの名無しさん:2016/12/28(水) 17:04:41.95 ID:hmpOAOdC.net
ツイッターほとんど使わんので勘違いしてるかもしれんけど、
Windows Formなら複合コントロール(UserControl)使うのが一番現実的なような気はする

561 :デフォルトの名無しさん:2016/12/28(水) 20:06:12.28 ID:tHS+BZPK.net
>>552
基本的にはブラウザで見るものと同じです
が、リプライ、RTなどのアイコンがなくなっておりさらに時間の表示位置と形式が違います
また、どのクライアントでツイートしたかの情報も表示します
クライアントの情報はツイート文の下に表示し、時間は絶対時間表記でクライアント情報の右に表示します

562 :デフォルトの名無しさん:2016/12/28(水) 20:09:09.19 ID:ace8uG6s.net
>>561
Twitterの規約に違反してる

563 :デフォルトの名無しさん:2016/12/28(水) 20:15:46.64 ID:tHS+BZPK.net
>>562
違反している部分は例えば時間表記はデフォルトでの設定は相対時間表記にしておき設定を変更することによって絶対時間表記にすることができるといった方法で回避しようと考えています

564 :デフォルトの名無しさん:2016/12/28(水) 20:34:23.74 ID:EECpjgXG.net
なんでWebBrowserコントロールは嫌なの?
手軽に見た目もきれいに作れるし仕様変更もし易いのに。
PictureBoxにゴリゴリ描くのも楽しいだろうけど仕様変更が辛いよ。

565 :デフォルトの名無しさん:2016/12/28(水) 20:42:16.89 ID:tHS+BZPK.net
>>564
個人的な考えなのですがWebBrowserコントロールを使うのであれば普通のブラウザソフトを使ってTwitterをすればいいと考えているからです

566 :デフォルトの名無しさん:2016/12/28(水) 21:54:16.84 ID:Bwga9xUV.net
>>556
確かにWPFはこういうの得意だね。

>>563
誤魔化してるだけで、回避は出来てないような。

567 :デフォルトの名無しさん:2016/12/28(水) 22:32:59.93 ID:tHS+BZPK.net
>>566
WPFの方が作りやすいでしょうか?
規約については他のクライアントがこのような方法をとっていたのでこれで良いものと思いまして…

568 :デフォルトの名無しさん:2016/12/28(水) 22:43:34.20 ID:6Nd1Z00H.net
TwitterのタイムラインをWebBrowserでやろうとした場合ってHTMLを加工してタイムラインだけを取る的な感じになるの?

569 :デフォルトの名無しさん:2016/12/28(水) 22:56:26.65 ID:EECpjgXG.net
普通はタイムラインのデータを取得してHTMLを生成してWebBrowserコントロールに
流し込むってイメージだと思うよ。

570 :デフォルトの名無しさん:2016/12/28(水) 23:00:12.19 ID:Bwga9xUV.net
>>567
WPFはちょっと凝ったUI作るのにはお勧めなんだけど、初期の学習コストが大きいのがネック。
規約に関してはグレーゾーンでしょ。Twitter社次第。

571 :デフォルトの名無しさん:2016/12/28(水) 23:30:17.32 ID:NekU8PBK.net
var dic = new Dictionary<object, object>();
var isd = dic is IEnumerable<object>;
var asd = dic as IEnumerable<object>;

↑これなんだけど、vs2015だと
実際の値は
isdがfalse
asdがnull
なんだけど、ウォッチ式上は
isdがtrue
asdには値が入ってるんよ。
オレの環境だけ?
vs2010はどっちもfalseのnullなんだよね。
他の環境は手持ちがなくて確認できず

で、本題なんだけど

Dictionary<T, U>をIEnumerable<object>に変換できないかね?
誰かやり方知りない?

572 :デフォルトの名無しさん:2016/12/28(水) 23:32:42.76 ID:gapvLjp6.net
Cast<object>()

573 :デフォルトの名無しさん:2016/12/28(水) 23:52:57.99 ID:NekU8PBK.net
>572
サンクス

すまんがもう一個
Dictionary<T, U>を一度object型に変換した後にDictionaryに変換せずに
IEnumerable<object>に直接変換する方法ってある?
元々、object型の値がIEnumerable<V>を継承してるか、継承していたら変換するって処理を作ってる時に気付いたもんで

後出しで申し訳ないが知ってたら教えてくり

574 :デフォルトの名無しさん:2016/12/29(木) 00:33:10.83 ID:u+8RF5XF.net
>>569
なるほどthx

575 :デフォルトの名無しさん:2016/12/29(木) 00:38:59.83 ID:ICm4kcbN.net
>>573
ターゲットフレームワークが4以降なら直接IEnumerable<object>にキャストできる
Dictionary<,> は IEnumerable<KeyValuePair<,>> を実装している
.NET4以降ではIEnumerable<>は共変だからIEnumerable<派生>をIEnumerable<既定>として扱える
あと関係ないけど.NETの場合ジェネリックの型引数は
1つの場合はT、複数の場合はTKey, TValueのようにT〇〇と名付ける決まりだから
Java臭いキモい書き方はやめろ

576 :573:2016/12/29(木) 00:49:52.62 ID:ICm4kcbN.net
すまん訂正
KeyValuePair<,>は値型だから不変だな
直接キャストはできないので>>572で全要素を個別にボックス化してやる必要がある

577 :デフォルトの名無しさん:2016/12/29(木) 00:58:24.25 ID:ICm4kcbN.net
あと >object型の値がIEnumerable<V>を継承してるか、継承していたら変換する だけど、
IEnumerable<object>のかわりに単に非ジェネリックのIEnumerableにキャストすりゃいいよ
IEnumerable<>はIEnumerableを継承しているので、
IEnumerable<>なら要素が値型だろうが何だろうがIEnumerableには確実にキャストできる
どうしても<object>にしたいなら ((IEnumerable)obj).Cast<object>() で変換できる

578 :デフォルトの名無しさん:2016/12/29(木) 01:43:17.27 ID:yvgqyy5k.net
おぉ、サンクス!!
値型だとダメなのか。知らんかったわ。

名前については気を付けるよ。
.NETのクラスライブラリ設計にも書いてあんね。もう一度読み返すよ。
助かった。ありがとう

579 :デフォルトの名無しさん:2016/12/29(木) 15:12:21.99 ID:ZEkDPYau.net
>>529
msdnフォーラムで聞くほうがいいよ

580 :デフォルトの名無しさん:2016/12/30(金) 07:18:33.47 ID:WuCbATao.net
vb.netではなくc#を選ぶ理由を教えてください。

581 :デフォルトの名無しさん:2016/12/30(金) 07:52:06.59 ID:ztwR1BBS.net
コーディング量が多く単価が安い言語は選ばない

582 :デフォルトの名無しさん:2016/12/30(金) 08:01:52.99 ID:pFqShxhH.net
むしろ VB
・に慣れてる
・しか知らない
・しか使えない環境
以外の理由で VB.net を選ぶ理由が知りたいよ

583 :デフォルトの名無しさん:2016/12/30(金) 08:22:40.21 ID:ztwR1BBS.net
そやな。SharpDevelopの変換機能も優秀だし

584 :デフォルトの名無しさん:2016/12/30(金) 08:28:44.57 ID:wot9qjtL.net
未だにVBやPHPの学習コストがどうのとか言ってるの見ると
はぁ…90年代からいらしたんですか?そりゃどうも…って感じになる

585 :デフォルトの名無しさん:2016/12/30(金) 08:38:34.39 ID:fHdmB1av.net
VBは使えない新人にやらせるものだからね
毎年素人に教えなきゃいけないから学習コストは常にホットな話題なんだよ

586 :デフォルトの名無しさん:2016/12/30(金) 08:55:52.86 ID:IhX7anmL.net
VBなんてもはや学習コストが低い言語ではないし、PHPだってHTMLのマクロだった時代ではない。

まぁそういう会社ってVB6なんだろーけどさ。

587 :デフォルトの名無しさん:2016/12/30(金) 09:23:58.96 ID:ylI4PuDY.net
MSのサポートがより盤石な方と言われれば基本C#じゃないの
と思ってたら最新のTIOBEインデックスが不可解な事になってるけど
http://news.mynavi.jp/news/2016/12/08/031/

588 :デフォルトの名無しさん:2016/12/30(金) 10:37:03.00 ID:z+0XLzNt.net
>>587
TIOBEは昔から滅茶苦茶で
指標として価値がないよ

PYPLのが実態にあってるとおもう
http://pypl.github.io/PYPL.html

589 :デフォルトの名無しさん:2016/12/30(金) 11:36:38.80 ID:LToUj4mC.net
新しく作るならvb.net選ぶ理由なんてないんだろうけど、会社が90年代から続いてるからな
VB6よりも古い時代の資料を改定しながら使いまわしてる
今の時代に合わせて作り直したら大変だ

590 :デフォルトの名無しさん:2016/12/30(金) 12:03:55.88 ID:WuCbATao.net
>>581
コーディング量が多いってほんまかいな。
.netならどっちも同じことができるはずやないんかいな。
vb.netなら何行も書く必要のあるものがc#なら1行で書けるコードがあるわけか。

社員に還元する気のない会社なら単価は安くていい。

591 :デフォルトの名無しさん:2016/12/30(金) 12:21:39.74 ID:WuCbATao.net
>>582
vbに慣れてない人なんか少数派ではないんかいな。
vbなんかほとんどの人ができると思うけどな。
それで、vbの手続き(Sub)や関数(Function)も使える利点もある。

592 :デフォルトの名無しさん:2016/12/30(金) 12:28:11.59 ID:FgVAt5LY.net
は?それVB独特の利点だと思ってんの?
葦の髄並みに視界が広いんだね!驚いた

593 :デフォルトの名無しさん:2016/12/30(金) 12:30:49.02 ID:3Ls/pupf.net
VB は使えば使えるけど出来れば使いたくない、って人は多そう。自分はそう。

594 :デフォルトの名無しさん:2016/12/30(金) 12:30:52.92 ID:WuCbATao.net
.netのプログラム方法を知らないがvb6の方法なら知ってるときは、調べる時間を省いて早く作れる利点がある。

595 :デフォルトの名無しさん:2016/12/30(金) 12:31:12.31 ID:1dqi8t3C.net
>>591
リファレンスの差が圧倒的だからな。ライブラリもC#の方が充実してる。

596 :デフォルトの名無しさん:2016/12/30(金) 12:36:38.79 ID:TrhPacUJ.net
VBAをC#表記にすればいいのにと

597 :デフォルトの名無しさん:2016/12/30(金) 12:39:17.24 ID:WuCbATao.net
>>595
リファレンスは、c#でも普通に利用してvb.netでプログラムしてるから別にいい。
ライブラリって、サードパーティ製でc#にしか使えないものがあるということか?

598 :デフォルトの名無しさん:2016/12/30(金) 12:40:53.78 ID:a9lBhbdO.net
>>594
VBerの世界では日本語のゴミのことを利点って表現するんだな
勉強になったわ

599 :デフォルトの名無しさん:2016/12/30(金) 12:44:33.76 ID:p8PwMXsr.net
>>597
利点がどうかをお前の主観で判断するなら人に問いかけるな
お前のキンタマ脳味噌でしこたまオナってろカス野郎

600 :デフォルトの名無しさん:2016/12/30(金) 12:55:30.88 ID:WuCbATao.net
c#はどの言語とも互換性がない。

601 :デフォルトの名無しさん:2016/12/30(金) 13:02:37.99 ID:E/JZqwpg.net
VB製のまともなソフト見たことがない

602 :デフォルトの名無しさん:2016/12/30(金) 13:05:31.05 ID:pFqShxhH.net
>>591
VB なんて10年以上使ったことない
って奴はごろごろいると思うけど?

603 :デフォルトの名無しさん:2016/12/30(金) 13:15:31.59 ID:WuCbATao.net
どの言語プログラマーがc#になったのか教えてください。

604 :デフォルトの名無しさん:2016/12/30(金) 13:19:37.16 ID:LToUj4mC.net
こいつNGでいいだろw

605 :デフォルトの名無しさん:2016/12/30(金) 13:29:15.01 ID:/QGVHUc5.net
>>601
tweenが確かソースコード非公開化する前はVB.NETじゃなかったっけ

606 :デフォルトの名無しさん:2016/12/30(金) 14:03:07.38 ID:WuCbATao.net
java scriptやphpやperlやjavaに比べてc++やcに類似しているとはいえないし、
もちろん互換性もないのにc#とはおかしい言語名だ。

607 :デフォルトの名無しさん:2016/12/30(金) 14:21:47.87 ID:B5+tn9xF.net
単にJavaScriptがJavaの名前を付けて恩恵を受けようとしたのと同じようにCとつけたのでは
未だにJavaよりもC/C++使いの方がエキスパートみたいな風潮はあるしCって付けたのは悪くないと思うけど

608 :デフォルトの名無しさん:2016/12/30(金) 15:56:44.65 ID:hgBVSCl8.net
Java開発者の.NET取り込みを狙った言語としてはJ#が別にあったからな
Java、C++、VBという当時の三大勢力のうちC#はC++開発者をターゲットにしていたから、
Cの名前を冠するのは戦略上当然

609 :デフォルトの名無しさん:2016/12/30(金) 17:46:25.33 ID:U2S2spdu.net
VBにはC#のunsafe相当が無い
以上

610 :デフォルトの名無しさん:2016/12/30(金) 18:31:14.27 ID:WuCbATao.net
そうか、ポインタが使えなかったが、unsafeのブロックで囲って、プロジェクトのプロパティのビルドのページの
「アンセーフコードを許可する」にチェックを入れないといけなかったのか。C#ってぼろいな。

611 :デフォルトの名無しさん:2016/12/30(金) 18:53:07.80 ID:WuCbATao.net
unsafeブロックとビルドの設定変更で初めてポインタが使える、これでようやくCに近づいたか。

612 :デフォルトの名無しさん:2016/12/30(金) 19:06:33.29 ID:B5+tn9xF.net
意図的に使いにくくしてるわけでCに近づける意味も必要性もないけどな

613 :デフォルトの名無しさん:2016/12/30(金) 21:27:21.00 ID:rzMADc8/.net
>>606
そもそもVB.NETもVB6と互換性無いしな
互換性の維持は欠点の引き継ぎでもあるから、良いことばかりではない

614 :デフォルトの名無しさん:2016/12/31(土) 01:38:04.63 ID:9j/vHbfh.net
クサレ脳ミソに触るなよ
年末で暇なのか?

615 :デフォルトの名無しさん:2017/01/03(火) 12:36:47.28 ID:6G2Z4dX0.net
ASP.NETってリクエストと同じスコープの共有変数って無いの?
ApplicationとSessionだけ?

616 :デフォルトの名無しさん:2017/01/03(火) 13:07:31.73 ID:bKYKotyv.net
ThreadLocal<T>使えば?
async使ってたりforkしてたりすると死ぬけど

617 :デフォルトの名無しさん:2017/01/03(火) 18:21:36.81 ID:GxvhYohc.net
>>615
何がしたいん?

618 :デフォルトの名無しさん:2017/01/03(火) 19:30:11.31 ID:7mNkwS/N.net
>>617
リクエストとトランザクションのスコープを同期させたい
フレームワーク側でトランザクション管理して
個々のリクエストからはトランザクションを参照するだけにして透過的に扱えるようにしたい

619 :デフォルトの名無しさん:2017/01/03(火) 19:33:32.03 ID:GxvhYohc.net
>>618
カタカナが多くて理解出来ないわ
すまん

620 :デフォルトの名無しさん:2017/01/03(火) 23:21:22.46 ID:rV3i3AFU.net
リクエストのスコープで、誰と共有するんだ?
フレームワーク側でトランザクション管理って何の事を言ってるんだ?
@PageのTransactionならページ=リクエスト単位でのトランザクション管理だったと思うが

621 :デフォルトの名無しさん:2017/01/04(水) 11:10:13.30 ID:P9CxkEKM.net
単にリクエストの前後でTransactionScopeの生成解放とcommitを入れたらいいだけじゃないのか?
明示的に共有する必要なんかないだろ
現在のトランザクションはTransaction.Currentで取れるし、
TransactionScopeAsyncFlowOption.Enabledでasyncにも対応できる

622 :デフォルトの名無しさん:2017/01/06(金) 15:01:19.97 ID:ugUrUcmU.net
C#といっこも関係ないけど、ここのブログChromeだと問題ないけどFirefoxだと
なぜか糞重いんだけど、どうしてなんだろう
http://blog.xin9le.net/archive/category/C%23

.NET関係のブックマークはFirefoxで統一してるので出来たらFirefoxでも快適に見る方法ないかな
ブログ主が修正してくれたらそれが一番いいんだけど、こんなスレ見てないだろうし
こっちから指摘して直してくれってのもちょっとアレなんで

623 :デフォルトの名無しさん:2017/01/06(金) 19:33:41.04 ID:UonIfHoY.net
2chに書くなボケ

624 :デフォルトの名無しさん:2017/01/08(日) 04:55:07.07 ID:AV67jRu6.net
C#なんか制御文と演算子がCに似てるだけで、それは他の多くのプログラム言語にも同じことが言えるし、
見かけがCに少し似てるだけで、中身はVB.NETと同じだろ。
VB.NETを拒絶してC#にこだわる理由がない。
挙句の果てに、「VBAをC#表記にすればいいのにと 」とまで言い出す始末。

625 :デフォルトの名無しさん:2017/01/08(日) 05:21:47.77 ID:gvW6zVP3.net
いきなり何言ってんだこいつ

626 :デフォルトの名無しさん:2017/01/08(日) 05:24:36.52 ID:AV67jRu6.net
C#人は性格が異常な人が多いのかいな

627 :デフォルトの名無しさん:2017/01/08(日) 05:38:16.16 ID:qYFGvy5R.net
なんの話をしてるんだ?

628 :デフォルトの名無しさん:2017/01/08(日) 06:27:27.71 ID:TbfsFEah.net
ID:WuCbATaoだろ
消しとけ

629 :デフォルトの名無しさん:2017/01/08(日) 09:01:21.88 ID:FbXxDY90.net
>>626
狂った人から見ると普通の人が狂ってるように見えるんだってさ

630 :デフォルトの名無しさん:2017/01/08(日) 09:40:46.74 ID:vasp0ss6.net
普通の人からするとプログラムできる人は普通の人ではないんだってさ。

631 :デフォルトの名無しさん:2017/01/08(日) 11:10:32.86 ID:qEmyXRDT.net
それは確かに

632 :デフォルトの名無しさん:2017/01/08(日) 11:24:30.92 ID:mLyjhJYP.net
VBとかうんこだろ
VBAはうんこ オブ ザ うんこ

633 :デフォルトの名無しさん:2017/01/08(日) 11:50:35.91 ID:aANViJyG.net
バカでも書きやすいのがVB系なのでVBAがそういう書き方なのは当然だろう
c#への橋渡しとしてのVB.NETだと思うし

634 :デフォルトの名無しさん:2017/01/08(日) 11:59:14.80 ID:AV67jRu6.net
どうせVBではないという見栄だけでC#なんだろ

635 :デフォルトの名無しさん:2017/01/08(日) 12:14:57.49 ID:G2Ue1pwT.net
VBからC#に入ったけどいまさらVBになんかめんどくさくて戻れん
使いたい人は勝手にしたらいいがC#のスレにきてわざわざ暴れるなよ

636 :デフォルトの名無しさん:2017/01/08(日) 12:15:40.75 ID:8d6R2/PQ.net
>>634
何を勘違いしてるのか知らないが、普通のC#使いのほとんどはVBも普通に使えるぞ?
逆はそうでもないが

637 :デフォルトの名無しさん:2017/01/08(日) 12:21:38.45 ID:ZKkxHQju.net
VBってC#と比べて新機能が遅れて導入されるから大嫌い

638 :デフォルトの名無しさん:2017/01/08(日) 12:22:57.20 ID:U62MbfoD.net
VB6系はともかく別に誰もVB.NETを否定してないと思うが
というか幾らなんでも名前に踊らされ過ぎ

639 :デフォルトの名無しさん:2017/01/08(日) 12:29:52.90 ID:6Rfsv7h0.net
VB.NETはC#と同じっていうのは実はC#er目線の話なんだよな
VB専に聞いてみりゃわかるが、彼ら自身はC#は別物だと思ってるし
実際彼らの書くコードはC#とは全く似つかないよ

640 :デフォルトの名無しさん:2017/01/08(日) 12:47:23.31 ID:vasp0ss6.net
あえて言おう。VB.NETは出すべきじゃなかった。

641 :デフォルトの名無しさん:2017/01/08(日) 13:03:51.40 ID:AV67jRu6.net
 「VB なんて10年以上使ったことないって奴はごろごろいると思うけど」という人がいる一方で、別の人は「普通
のC#使いのほとんどはVBも普通に使えるぞ」という人がある。10年以上使わないなら、普通に使えるとは思えないの
で、後者は前者の主張を否定したようなものだ。

「VBにはC#のunsafe相当が無い」という人がいる一方で、別の人は「意図的に使いにくくしてるわけでCに近づける
意味も必要性もない」といってunsafeの存在価値を否定した。

 それぞれの主張に客観性がないんだろうな。

642 :デフォルトの名無しさん:2017/01/08(日) 13:10:39.99 ID:ZKkxHQju.net
お前はちょっと黙ってろ

643 :デフォルトの名無しさん:2017/01/08(日) 13:25:57.09 ID:Dfhzw297.net
>>641
「意図的に使いにくくしてるわけでCに近づける意味も必要性もない」は別にunsafeの存在を否定はしてないだろ。
普段使いするものじゃないからわざと使いにくくしてあるけど、いざという時はちゃんと使えるんだから。

644 :デフォルトの名無しさん:2017/01/08(日) 13:26:42.71 ID:G2Ue1pwT.net
VBは使えるけどC#が使えないから職場でいじめられたのかな
それでここで憂さ晴らししていると
ここでもバカにされるだけなのに

645 :デフォルトの名無しさん:2017/01/08(日) 13:34:55.06 ID:Dfhzw297.net
>>636
最初からVBに興味ないか、少しだけ触って見限ったきりって人も多い。
少し勉強すればVBもできる人は多いだろうけど、そうする意味もあまりないし。

646 :デフォルトの名無しさん:2017/01/08(日) 13:39:59.92 ID:mLyjhJYP.net
VB.NETは構文調べて20分で捨てた
VB.NETで出来ることはC#で出来るし
何となく感覚で読めるけど書けない

647 :デフォルトの名無しさん:2017/01/08(日) 13:43:29.27 ID:AV67jRu6.net
(エセC)#、もしくは (エセC++)++ だろ

648 :デフォルトの名無しさん:2017/01/08(日) 13:48:31.81 ID:AV67jRu6.net
>>642 どうせ他のレスが滞ってて沈黙が続いてるから、他人の邪魔してるわけではないからいいじゃないか。

649 :デフォルトの名無しさん:2017/01/08(日) 13:58:48.72 ID:euA+r4Nb.net
VBerはC#erにコンプレックスだらけ。C#erは相手にしてない
東京、大阪の関係みたいなもんだな

650 :デフォルトの名無しさん:2017/01/08(日) 13:59:50.66 ID:pxQLZoyB.net
もともとはVBの方が好きだったけどさすがに2008以降はちょっと使う気にならん感じになっちゃったねVBは

ExcelをCOM Interop;する時はOption Strict Offで適当にキャストかましてくれる
VBの方がまだちょっと使いやすいけどそれ以外はあえてVBを選ぶ理由は消滅したな。

651 :デフォルトの名無しさん:2017/01/08(日) 14:00:51.70 ID:vasp0ss6.net
確かに東京ってVB案件ばかりだな。

652 :デフォルトの名無しさん:2017/01/08(日) 14:06:57.00 ID:ZKkxHQju.net
>>650
Office関連はNetOffice使った方が便利で安全だぞ
わざわざVB.NETを選ぶ必要は無い

653 :デフォルトの名無しさん:2017/01/08(日) 14:22:29.23 ID:XDbKIsfA.net
VBerでもC#やらせれば書けるよ
あいつら食わず嫌いしてるだけ
ただ書けるだけであってVBっぽい気持ち悪いC#コードが生産されるので書かせない方がいいのは確かだ

654 :デフォルトの名無しさん:2017/01/08(日) 14:37:23.20 ID:C9GVPqMv.net
>>641
> 10年以上使わないなら、普通に使えるとは思えない
30年以上 FORTRAN を使ってないけど普通に使えるけど?

655 :デフォルトの名無しさん:2017/01/08(日) 14:51:06.05 ID:dpJgVr6u.net
>>650
VB2008からはC#の開発チームと統合されて、VBを馬鹿にしてるアンダースの配下になったからね
それまでは独自路線だったが、以降は開発方針が変わってC#の方言になった

656 :デフォルトの名無しさん:2017/01/08(日) 14:59:20.01 ID:AV67jRu6.net
Aの「vbに慣れてない人なんか少数派ではないんかいな」という主張にBが「vbに慣れてない奴はごろごろいる」
と反論するために「10年以上使ったことないって奴はごろごろいると思うけど」と反論の理由を言ったんだろう
と解釈できるし、そうなると、Cが「FORTRANを30年以上使ってなくても普通に使える」という主張は、Bへの反
論かいな。

657 :デフォルトの名無しさん:2017/01/08(日) 15:03:11.58 ID:dpJgVr6u.net
慣れてなくてもC#使いがVB使うのは何の問題もないわ
3日で生え抜きのベテランVBerより品質の高いコードを書ける

658 :デフォルトの名無しさん:2017/01/08(日) 15:07:20.67 ID:AV67jRu6.net
「普通のC#使いのほとんどはVBも普通に使えるぞ」や「普通のC#使いのほとんどはVBも普通に使えるぞ」
や「3日で生え抜きのベテランVBerより品質の高いコードを書ける 」等の発言から自分らを高く見せたい
というプライドがあるんだな。

659 :デフォルトの名無しさん:2017/01/08(日) 15:11:41.76 ID:AV67jRu6.net
間違えた、2つ目の「・・・・」は正しくは「FORTRANを30年以上使ってなくても普通に使える」
と書こうとした。

660 :デフォルトの名無しさん:2017/01/08(日) 15:21:13.72 ID:tl4nBuMM.net
わざわざ訂正しなくてもいいよ。読んでないから

661 :デフォルトの名無しさん:2017/01/08(日) 15:33:55.81 ID:j7hkxIjf.net
VBerは動けばいいやって人が多い
C#erはコードにもこだわる

662 :デフォルトの名無しさん:2017/01/08(日) 15:41:15.76 ID:hmvsmXiF.net
>>654
30年前のfortranってどんなの?

663 :デフォルトの名無しさん:2017/01/08(日) 15:46:08.09 ID:dpJgVr6u.net
F77じゃね
パンチガードで入力してたから、固定フォーマットでコメント文字は何文字目に打つというような決まりがあった

664 :デフォルトの名無しさん:2017/01/08(日) 16:02:54.22 ID:XDbKIsfA.net
VBは言語そのものではなく言語に纏わる文化が劣悪
VBで書ければC#でも書けるし逆も同じ
でも品質は全く違うものが出来上がる

665 :デフォルトの名無しさん:2017/01/08(日) 16:14:56.03 ID:AV67jRu6.net
>>646 VB.NETスレで「キチガイ引き取って」と発言したな

666 :デフォルトの名無しさん:2017/01/08(日) 16:17:18.08 ID:mLyjhJYP.net
とりあえずvb.netスレに移動しろ

667 :デフォルトの名無しさん:2017/01/08(日) 16:51:42.42 ID:CzVAxFca.net
朝早くからわけわからんレス書き込んでいる基地外に触んなよ
お前らも暇だなあ

668 :デフォルトの名無しさん:2017/01/08(日) 17:06:56.44 ID:AV67jRu6.net
何でお前らは人格異常なのか。
普通に疑問に答えればいいものを人格攻撃かいな。

669 :デフォルトの名無しさん:2017/01/08(日) 17:07:39.75 ID:bz1GF1b+.net
ちょまどでも使えるのがC#

670 :デフォルトの名無しさん:2017/01/08(日) 17:18:11.47 ID:ZD9uWaqV.net
VB使いはC#も読めなけきゃスレタイも読めないのか(呆れ

671 :デフォルトの名無しさん:2017/01/08(日) 17:22:24.24 ID:bz1GF1b+.net
>>670
俺は褒めてるんだけど?

672 :デフォルトの名無しさん:2017/01/08(日) 19:41:33.47 ID:GefrbuSU.net
別に言語なんてなんだろうが出来るに越したことはないだろ
世の中にはプログラミングが出来るだけで神様のように崇める挫折した人らがごまんといるんだからさぁ
ただ今さらVBは無いわなってだけで
ある程度のプログラミングのスキルがあれば大抵の言語やればできるわ

673 :デフォルトの名無しさん:2017/01/08(日) 19:47:55.76 ID:TbfsFEah.net
消しとけって言っただろうが1日中相手しやがって休みに予定の一つもない暇人どもめ

674 :デフォルトの名無しさん:2017/01/08(日) 19:55:49.52 ID:zjQfPtHB.net
>ある程度のプログラミングのスキルがあれば大抵の言語やればできるわ

察してあげる優しさも必要だと思うの。
・・・そうじゃなきゃこんなに拘ったりしないだろ。こんなどうでもいいことに。

675 :デフォルトの名無しさん:2017/01/09(月) 01:08:12.74 ID:vxkpROxT.net
VBの問題は、VB6上がりがクソコード量産することであって、言語自体の問題とも思えんな
一部を除けばなれの問題じゃね?

676 :デフォルトの名無しさん:2017/01/09(月) 03:40:15.39 ID:iFTSomz+.net
構造が異なるのにVisual Basicって名前が良くなかったな
C# LITEとかのがよかった

本当はVB6の文法のまま.NET化したほうがよかったが気がするけど

677 :デフォルトの名無しさん:2017/01/09(月) 08:28:02.64 ID:PTkphACT.net
VB6的なものは、残してもらいたかった。

678 :デフォルトの名無しさん:2017/01/09(月) 09:27:26.68 ID:4NqOEoqD.net
VB6は基本そのままでCLIインターフェースを定義・公開できるようにするだけでよかった
レガシーコンポーネントとの接合面に徹するということね

679 :デフォルトの名無しさん:2017/01/09(月) 10:11:36.58 ID:ES9C16us.net
そもそも言語の違いだけで
やれることが変わるっておかしいだろ

Basicで低級から高級まで、技術計算からwebまで全部網羅しなさいよ

680 :デフォルトの名無しさん:2017/01/09(月) 10:20:44.97 ID:EPA1tS/m.net
>>676
書き方が違うのにc#の名前つけるのと不自然だろ

681 :デフォルトの名無しさん:2017/01/09(月) 10:28:05.78 ID:5eZppcho.net
不自然な日本語

682 :デフォルトの名無しさん:2017/01/09(月) 10:46:51.41 ID:4NqOEoqD.net
日本語そのものがまず不自然
規格化して機械可読にしろ
曖昧過ぎて話にならん

683 :デフォルトの名無しさん:2017/01/09(月) 10:53:09.63 ID:Ml4ZG/LK.net
>>681
「と」が多いだけで不自然じゃないだろ
そっちじゃなくて、>>679の相手してやれよ

684 :デフォルトの名無しさん:2017/01/09(月) 10:55:14.48 ID:qNaaD21i.net
>>683
不自然すぎるだろ

685 :デフォルトの名無しさん:2017/01/09(月) 11:28:05.30 ID:EPA1tS/m.net
不自然と言うかただの誤字脱字なんだが

686 :デフォルトの名無しさん:2017/01/09(月) 11:34:45.57 ID:GZgSniwS.net
this.RemoveRange(スレタイ読めないやつら);

687 :デフォルトの名無しさん:2017/01/09(月) 11:49:57.75 ID:CAx+Qp4q.net
RemoveAllじゃね

688 :デフォルトの名無しさん:2017/01/09(月) 12:04:50.19 ID:Ml4ZG/LK.net
thisのスコープに注意

689 :デフォルトの名無しさん:2017/01/09(月) 23:22:09.65 ID:PtjtbCa1.net
>>687
いやすでにゴミなら
GC.Collect();
が妥当

690 :デフォルトの名無しさん:2017/01/10(火) 22:17:04.74 ID:uwegHVoP.net
//デブはLOHに残る
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();

691 :デフォルトの名無しさん:2017/01/11(水) 23:03:15.22 ID:5ZcY/57e.net
PHPのコンストラクタって__construct()で統一されてるけど
C#は相変わらずクラス名と同名で行くのかな

<?php
class BaseClass {
function __construct() {

}
}

692 :デフォルトの名無しさん:2017/01/11(水) 23:08:33.22 ID:1SbN3a75.net
>>691
地味に面倒臭いな確かに
数が多くなると発狂レベル

693 :デフォルトの名無しさん:2017/01/11(水) 23:45:27.30 ID:SOQiv9G3.net
public class Hoge(IFuga fuga) : IHoge {
public void DoSomething() { fuga.Hello(); }
}

こういう構文をサポートしてほしい
インジェクションで決まりきったコンストラクタと読み取り専用フィールドをダラダラ書くのがめんどくさい

694 :デフォルトの名無しさん:2017/01/11(水) 23:49:54.18 ID:IQVyJq11.net
PHPは特殊だから比較にならない

695 :デフォルトの名無しさん:2017/01/12(木) 01:46:35.54 ID:9/EXlZU1.net
>>691
同じ名前にするのって歴史的以外になんか理由があるのかね
まぁ、手打ちすることはないからコピペしたときぐらいしか気にはならんが

>>693
入りそうになったけど、レコード型と一緒に入れようとかで延期になった気がする

696 :デフォルトの名無しさん:2017/01/12(木) 07:05:51.82 ID:0A4eRqXF.net
>>695
歴史って言うか C++ 由来でしょ
Delphi みたいにキーワードで指定する方法もあるし、PHP みたいに固定的な名前もある

697 :デフォルトの名無しさん:2017/01/12(木) 07:57:37.19 ID:gDCHiAoV.net
まあ自動生成が面倒になったりするだけで特にメリットは無いわな
単にC++やJavaの人が違和感なく入れるように配慮しただけ
メソッド名にキーワード使うのはインデクサのthisとかあるから public new() がベストだと思う

698 :デフォルトの名無しさん:2017/01/12(木) 08:22:28.72 ID:arip6tnc.net
PHP(笑)

699 :デフォルトの名無しさん:2017/01/12(木) 19:27:23.13 ID:xSuUU/8s.net
>>698
ASP.NETよりも桁違いに普及してる時点で
.NETのが格下扱いだろ

700 :デフォルトの名無しさん:2017/01/12(木) 19:33:30.95 ID:2oeweQcz.net
普及している方が優秀なの?

701 :デフォルトの名無しさん:2017/01/12(木) 20:12:53.07 ID:wTRJIMgP.net
昔に流行ったけど保守性が低くて駆逐できなかっただけなんだとさ

702 :デフォルトの名無しさん:2017/01/12(木) 20:13:54.54 ID:QYJftQFG.net
>>701
phpがか?

703 :デフォルトの名無しさん:2017/01/12(木) 21:40:32.87 ID:TJ6nofkx.net
>>697
> public new() がベストだと思う
構造体は常に new する訳じゃないから

704 :デフォルトの名無しさん:2017/01/12(木) 22:00:11.00 ID:b+ED7Ag1.net
>>703
構造体のコンストラクタが呼ばれるのは明示的にnewされた場合だけだからそれでいいだろ

705 :デフォルトの名無しさん:2017/01/12(木) 22:29:17.14 ID:3WOOMgjX.net
new a()が

new new()扱いになるのがキモイ

706 :デフォルトの名無しさん:2017/01/12(木) 22:30:43.93 ID:3WOOMgjX.net
a.が抜けてた

new a.new()

707 :デフォルトの名無しさん:2017/01/12(木) 22:38:31.12 ID:ja9bCuYX.net
.NET Coreって普及してるの?もしくはこれからweb開発のスタンダードになりそう?

708 :デフォルトの名無しさん:2017/01/12(木) 22:47:22.93 ID:oQ7f95Jk.net
なってほしいな
今は仕事だとphpとrailsメインだけどc#でなんでもやりたいわ
LAMPがどかーんと行ったのだって言語云々じゃなくサーバが無料ってのが大きかったと思うんよね

709 :デフォルトの名無しさん:2017/01/12(木) 22:50:38.88 ID:wTRJIMgP.net
コスト安くなるし普及するだろうね
海外では

710 :デフォルトの名無しさん:2017/01/12(木) 22:53:57.51 ID:XIu+56Iq.net
静的型でポータブルでオールインワンって他にないからな
Goの代わりくらいにはなれるかもね

711 :デフォルトの名無しさん:2017/01/12(木) 23:10:57.73 ID:xSuUU/8s.net
>>708
VisualStudioも無料になったら
本気で普及し始めると思う

あと、ザマリンの導入がもうちょっと
解りやすくなったら

712 :デフォルトの名無しさん:2017/01/12(木) 23:45:09.08 ID:vtJ2CftH.net
>>705
ならないでしょ
VBが>>697の言う仕様だけど、そんなことにはなってない

713 :デフォルトの名無しさん:2017/01/13(金) 07:15:03.66 ID:hmsqUFNG.net
>>700
じゃあ俺の自作言語が最強だな
変数ないけど

714 :デフォルトの名無しさん:2017/01/14(土) 08:53:21.93 ID:rv9Bkqpt.net
C#にはヘッダーファイルがない。
クラスはC++と全然書き方が違う。
Cの派生言語のように見せかけた、中身はVBと同じ言語だ。
こんなもんでVBよりC#のほうが偉いはずがない。

715 :デフォルトの名無しさん:2017/01/14(土) 09:02:17.10 ID:exppjyX7.net
相談スレでは相談しろ

716 :デフォルトの名無しさん:2017/01/14(土) 10:10:34.71 ID:H4kTcvBH.net
VBよりC#が偉い理由はラムダが書きやすいのと直感に反する余計な事をしないってとこだな

717 :デフォルトの名無しさん:2017/01/14(土) 11:52:35.26 ID:C/3o1CZS.net
一つの言語にやたらこだわるのは無能だからだろうな
>>714
お前がバカなのはこのスレでよくわかったから、もう書かなくていいぞ

718 :デフォルトの名無しさん:2017/01/14(土) 12:41:03.27 ID:DO73KmNH.net
これ以上カスに触るなら二郎コピペでこのスレ埋めてやる

719 :デフォルトの名無しさん:2017/01/14(土) 16:48:32.83 ID:OgQ0DzZw.net
おう、はよ埋めろや

720 :デフォルトの名無しさん:2017/01/14(土) 20:18:03.67 ID:rv9Bkqpt.net
>>717 どうバカなのかどうせまともな説明できないくせに黙ってろよ

721 :デフォルトの名無しさん:2017/01/14(土) 20:41:22.94 ID:JD3u+vgV.net
スレタイ読めないのはバカだろ

722 :デフォルトの名無しさん:2017/01/14(土) 20:43:39.19 ID:dtN7VWLV.net
むしろ埋めてもらった方がワッチョイで立て直せるし、いいかも
ネタも無いしいいだろって住み着くオカシイ奴ってどこにでもいるから

723 :デフォルトの名無しさん:2017/01/14(土) 20:44:39.50 ID:adzUep7y.net
ワッチョイなんてつけるまでもなく一人だからスルーしとけばよくね

724 :デフォルトの名無しさん:2017/01/14(土) 20:45:16.55 ID:JD3u+vgV.net
ワッチョイつけりゃ一週間は登録の手間が省ける

725 :デフォルトの名無しさん:2017/01/14(土) 20:58:45.21 ID:adzUep7y.net
大きいコピペの連投とか見づらいもの以外でも細かくNG入れてる人も居るのか
自分が使ってないから登録のことは考えてなかったわすまんな

726 :デフォルトの名無しさん:2017/01/14(土) 22:03:54.65 ID:4p1bTVm6.net
それ以上C#スレ荒らす気ならVBスレ荒らすぞ

727 :デフォルトの名無しさん:2017/01/14(土) 23:42:52.47 ID:OgQ0DzZw.net
おう、はよ荒らせや

728 :デフォルトの名無しさん:2017/01/15(日) 06:06:15.67 ID:N0spz/4F.net
異常な嫌悪してるやつ自身が荒らしとる自覚もてよ

729 :デフォルトの名無しさん:2017/01/16(月) 18:22:07.32 ID:h1Gia5xw.net
俺も色々やってみたほうが良いと思うけど、PHPだけは専門にやってる人以外は危ないからやらないほうが良いかもな

730 :デフォルトの名無しさん:2017/01/17(火) 17:50:34.77 ID:cbxfPpyL.net
ASPもPHPも言語ではなくフレームワークみたいな認識。

731 :デフォルトの名無しさん:2017/01/17(火) 18:27:11.28 ID:VcB0QsgY.net
web系全般そんなもんじゃね?

732 :デフォルトの名無しさん:2017/01/17(火) 18:38:01.09 ID:TNo9RdVK.net
web系以外のも同じだな

733 :デフォルトの名無しさん:2017/01/19(木) 02:27:36.32 ID:zUZJ1T5E.net
VBのLike演算子が必要なので、C#という選択肢にならない。

InputBoxも使えるのがVB。
C#人は、C#使いながら、Microsoft.VisualBasic名前空間のライブラリを使ったりもしないのかな。

734 :デフォルトの名無しさん:2017/01/19(木) 03:12:26.89 ID:mclODO+O.net
.NET標準になくてMicrosoft.VisualBasic名前空間にしかないライブラリ機能ってあるの?

735 :デフォルトの名無しさん:2017/01/19(木) 03:16:26.12 ID:HUduSCHL.net
>>734
CSV絡みでTextFieldParserとか
CsvHelperあるしもう誰も使わんと思うけど

736 :デフォルトの名無しさん:2017/01/19(木) 03:28:23.32 ID:zUZJ1T5E.net
ならばInputBoxの代わりになる.NET標準を教えてほしい。
Like演算子の代わりなるものもあるんかいな。正規表現まで持ち出するのは一手間だし。

737 :デフォルトの名無しさん:2017/01/19(木) 03:33:28.73 ID:zUZJ1T5E.net
 マネージ拡張C++でTextFieldParser使おうとして、clコマンドでコンパイルしようとしたら、
なぜかコンパイラが異常終了したことがあった。VB.NETでないとexeが作れなかった。当時はC#
は勉強不足だったから、それでは試してない。

738 :デフォルトの名無しさん:2017/01/19(木) 04:14:58.96 ID:LVeuyfqa.net
>>733
http://www.atmarkit.co.jp/ait/spv/1412/02/news129.html

739 :デフォルトの名無しさん:2017/01/19(木) 04:20:46.87 ID:LVeuyfqa.net
>>736
inputBoxが必要でVBにしがみつく理由がわからない
そんなform一瞬で作れるだろ

740 :デフォルトの名無しさん:2017/01/19(木) 04:30:24.85 ID:zUZJ1T5E.net
InputBoxは、すでに用意されているので、正に一瞬だが、互換Formを作るのは少なくとも1分はかかる。
VBならこんなものを自作して管理する煩わしさもなく、作成済みのフォームをプロジェクトに追加する
必要もない。

741 :デフォルトの名無しさん:2017/01/19(木) 04:39:21.41 ID:LVeuyfqa.net
>>740
じゃあ逆に聞くけど、VBで.NET Core使ってんの?

742 :デフォルトの名無しさん:2017/01/19(木) 04:44:31.30 ID:zUZJ1T5E.net
>>741 そんなものは知らん。だがVB.NETでInputBox利用すればそれを利用する必要もない。

743 :デフォルトの名無しさん:2017/01/19(木) 04:46:13.14 ID:LVeuyfqa.net
>>742
…やっぱ触っちゃいけない人だった

744 :デフォルトの名無しさん:2017/01/19(木) 04:47:52.86 ID:2A4qP/TB.net
>>740
https://blogs.msdn.microsoft.com/dotnet/2017/01/18/the-week-in-net-on-net-with-david-pine-pwdless-terraria/

.NETの勉強しててこれのF#以外をVBで試そうと思ったら、かなり大変じゃない?というかできるの?

745 :デフォルトの名無しさん:2017/01/19(木) 04:59:14.61 ID:zUZJ1T5E.net
>>744 何のことについて書いてあるのかね。仮に日本語であったとしても、事前に何の説明もなくいきなり読んで理解できるかも疑問だ。

746 :デフォルトの名無しさん:2017/01/19(木) 05:04:07.77 ID:bDIUTWZ4.net
>>745
英語も読めないなら消えな

747 :デフォルトの名無しさん:2017/01/19(木) 05:11:17.04 ID:zUZJ1T5E.net
事前に何の説明もなく、話の背景や前提もわからず学術論文とかを急に読まされても、専門家でもない限り日本語でも理解できるはずがない。
専門家でも、論文全体ではなく、ある一部分だけを抜き出して、それが何の論文から引用したかも何かも示されなければ、理解できるとは限らないだろう。

748 :デフォルトの名無しさん:2017/01/19(木) 05:23:49.86 ID:bDIUTWZ4.net
>>747
学術論文の話なんかしてねーよ
.NETのtipsがいろいろとまとめられてるけど、どうやってそれをVBに読み換えてんの?

749 :デフォルトの名無しさん:2017/01/19(木) 05:25:18.75 ID:LVeuyfqa.net
>>747
ただのブログだろバカ

750 :デフォルトの名無しさん:2017/01/19(木) 05:26:05.83 ID:mclODO+O.net
英語とはいえただのブログ記事を学術論文て

751 :デフォルトの名無しさん:2017/01/19(木) 05:31:36.41 ID:mclODO+O.net
ていうかTerrariaってC#/XNAで書かれてたんだ…その記事で初めて知ったわ

752 :デフォルトの名無しさん:2017/01/19(木) 06:06:50.67 ID:zUZJ1T5E.net
学術論文は例えばの話だろが。
いきなり長文を出されて、どこの何をどのようにして読むのか何も示さず、それをどうしてもらいたいのかも
説明がないと困るだろ。

753 :デフォルトの名無しさん:2017/01/19(木) 06:10:42.55 ID:JVh2O255.net
>>752
説明してるだろVB脳

754 :デフォルトの名無しさん:2017/01/19(木) 06:16:44.40 ID:zUZJ1T5E.net
このリンク先ページに示されてるC#のプログラムコードをVBに読み替える、あるいはVB用にコードを作り替える
のが大変ではないか、またはできるのか、あるいはその前に読み替えもできるのかを聞きたいのかね。

755 :デフォルトの名無しさん:2017/01/19(木) 06:18:51.75 ID:zUZJ1T5E.net
>>753 わかるように説明しろよ

756 :デフォルトの名無しさん:2017/01/19(木) 06:21:00.70 ID:JVh2O255.net
>>754
仕方ないからその中のこれだけでいいよ
http://www.codemag.com/Article/1701061

これVBでやってみ

757 :デフォルトの名無しさん:2017/01/19(木) 06:21:30.66 ID:mclODO+O.net
>>754
最初からVBじゃなくてC#使ってれば何も悩まず書いてあるのをコピペして使えるよねって話じゃねえの

758 :デフォルトの名無しさん:2017/01/19(木) 06:21:31.93 ID:zUZJ1T5E.net
C#の技術力以前に人格をどうにかしろよ。
バカ扱いすれば自分が偉くて高い立場だとでも思ってるのかね。

759 :デフォルトの名無しさん:2017/01/19(木) 06:25:06.37 ID:zUZJ1T5E.net
>>756 仕方がないからこれだけでいいというから、分量を大幅に絞り込んだものかと思えば、これも大量にあるじゃないか。

760 :デフォルトの名無しさん:2017/01/19(木) 06:29:21.58 ID:JVh2O255.net
>>759
少し見たらわかると思うけど、これ極々基本的なことしかやってないよ?むしろこれができないならVBには無理だわ

761 :デフォルトの名無しさん:2017/01/19(木) 06:29:25.97 ID:BbnbZdnl.net
VBやると頭がおかしくなるということがよくわかった

762 :デフォルトの名無しさん:2017/01/19(木) 06:31:34.13 ID:LVeuyfqa.net
そもそもVBなんて、まだ.NET Core1.0ですら正式対応してないからな

763 :デフォルトの名無しさん:2017/01/19(木) 06:34:19.96 ID:mclODO+O.net
ID:zUZJ1T5Eが頭おかしくても、VB.NETのことは嫌いにならないでねっ!

764 :デフォルトの名無しさん:2017/01/19(木) 06:38:41.20 ID:zUZJ1T5E.net
>>761 >>763
お前の頭がおかしいから、他人の頭がおかしいと思い込んでるだけだ。

765 :デフォルトの名無しさん:2017/01/19(木) 06:52:09.97 ID:zUZJ1T5E.net
自分の主張を正当化できないから、相手をバカ扱いしてごまかすだけか。

766 :デフォルトの名無しさん:2017/01/19(木) 07:07:47.10 ID:krZQnAr8.net
>>765
vb.netは自分も嫌いじゃないけど
ここはスレ違いと認識してそろそろやめませんか?

767 :デフォルトの名無しさん:2017/01/19(木) 07:09:56.04 ID:EGANxKDd.net
伸びてると思えばまたVBネタかぁ
VBといえば
Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile()
は便利だよね。よく使う

768 :デフォルトの名無しさん:2017/01/19(木) 07:30:09.62 ID:zUZJ1T5E.net
>>766
 vbにはない有利なところ、切り替える価値を探ってるんだけどな。vbだけの有利
と思えるところが.netで代替策があるならそれもまず知る必要がある。その準備
なしで、漠然とC#使うだけなら意味がないし。そのためにC#を知るための話題だか
らな。

769 :デフォルトの名無しさん:2017/01/19(木) 07:38:27.30 ID:Xmxeyump.net
>>768
知ろうとしてないだろ

770 :デフォルトの名無しさん:2017/01/19(木) 07:42:49.69 ID:b0abdje/.net
俺もN-BASIC世代だからVB好き

771 :デフォルトの名無しさん:2017/01/19(木) 07:55:09.76 ID:mclODO+O.net
>vbにはない有利なところ、切り替える価値
なんて、>>744をはじめとする最先端のコード資源がほぼコピペだけで使えるってだけで十分じゃん

772 :デフォルトの名無しさん:2017/01/19(木) 07:57:11.06 ID:q3hudiC7.net
行番号のないBASICは所詮偽モノ。インタプリタでもねーし。
BASICのいいところはすべて失われた。

773 :デフォルトの名無しさん:2017/01/19(木) 07:59:57.29 ID:Ntb3+hAE.net
.NET Coreに関する和書かいいサイトってある?

774 :デフォルトの名無しさん:2017/01/19(木) 08:00:00.05 ID:Xmxeyump.net
>>771
VBでも同様の処理を書けるならまだしも、そもそもフレームワークでサポートされてないからな

775 :デフォルトの名無しさん:2017/01/19(木) 08:02:10.58 ID:Xmxeyump.net
>>773
体系的にまとめられてるのは見たことないから、素直に公式のdocs読むのが一番手っ取り早いよ
まあVisual Studio2017が出た時点で大幅に修正が入るからね

776 :デフォルトの名無しさん:2017/01/19(木) 08:29:16.46 ID:9oxUjj4Y.net
急に伸びてると思ったらこれかー

777 :デフォルトの名無しさん:2017/01/19(木) 09:22:15.10 ID:X4NEWeGC.net
>>758
相対的にそうなるね

778 :デフォルトの名無しさん:2017/01/19(木) 13:01:19.54 ID:0ZEPc8s2.net
MODIを使って並列処理をすると、スレッド数が論理コア数では固まるが物理コア数だと動いてしまう
原因わかりますか?

779 :デフォルトの名無しさん:2017/01/19(木) 16:18:48.05 ID:C+ssGhBJ.net
またVBガイジかよ

780 :デフォルトの名無しさん:2017/01/19(木) 18:03:11.37 ID:t+KfFfyK.net
コピペって・・・。そのままコピーするだけか。
普通はコードを理解して、自分の作る目的のプログラムに合わせて必要変更をするだろうが。
ただのコピペ厨の自称プログラマーかいな。

781 :デフォルトの名無しさん:2017/01/19(木) 18:10:34.08 ID:yUxFIvB5.net
真っ赤だな

782 :デフォルトの名無しさん:2017/01/19(木) 19:01:51.57 ID:Ccs4bPhG.net
>>767
ワイルドカードが使えるから便利ってこと?

783 :デフォルトの名無しさん:2017/01/19(木) 19:56:33.00 ID:mclODO+O.net
>>780
もちろん必要があれば読むよ
でも他人がもう書いてるコードなんて可能な限り自分で書き直さないで済むほうがいいんだよ
そもそもライブラリってそういうもんだろ

784 :デフォルトの名無しさん:2017/01/19(木) 20:37:07.91 ID:Ntb3+hAE.net
>>775
ありがとう
Core始めてみてEntity Framework使おうとしたら
dotnet efのコマンドが通らなくていきなりくじけたでござる

785 :デフォルトの名無しさん:2017/01/19(木) 20:45:51.31 ID:xEZd6WIv.net
>>784
Entity Framework Coreは、まだOracleが正式にサポートされてないのが辛いね

786 :デフォルトの名無しさん:2017/01/20(金) 03:17:40.48 ID:mnoV+t38.net
>>782
ゴミ箱に入れられるからでしょ

787 :デフォルトの名無しさん:2017/01/20(金) 07:11:21.34 ID:1c/0Zcpc.net
君らcoreは何に使うん?

788 :デフォルトの名無しさん:2017/01/20(金) 07:26:59.76 ID:73D0Dll6.net
何にもクソもCoreはLinuxサーバーでWebサイトを運用するためのもんだよ
Windowsで運用とか苦痛でしかないし

789 :デフォルトの名無しさん:2017/01/20(金) 07:30:05.91 ID:1c/0Zcpc.net
>>788
iis便利やん。何が苦痛なん?

790 :デフォルトの名無しさん:2017/01/20(金) 07:32:52.88 ID:Bg1tCMvm.net
Linuxの方が苦痛だよ
システムやアプリの設定方法に統一感なくてわかりにくいし
SeLinuxとか鬱陶しいし
コマンドへのIOが文字列とか前時代的だし
スイッチも一文字じゃ何やってるサッパリかわからん

791 :デフォルトの名無しさん:2017/01/20(金) 08:16:51.86 ID:uaOwYInA.net
>>788
APIも知らないのかな?ASP.NETにおけるWebサイトとWebアプリの違いはわかってるかい?

792 :デフォルトの名無しさん:2017/01/20(金) 08:43:19.35 ID:kuRbEAeZ.net
>>791
さすがにその言いがかりは無理があるだろ
Webサイトと聞いてASP.NET用語のWebサイトのことだと思っちゃう人は相当特殊だということを自覚したほうがいいよ

793 :デフォルトの名無しさん:2017/01/20(金) 10:28:22.73 ID:l+Qn6xw4.net
.NET Core 自体には 1 つのアプリケーション モデル (コンソール アプリ) が含まれており、ツール、ローカル サービス、およびテキストベースのゲームに便利です。

次のような機能を拡張するために、.NET Core の上に追加のアプリケーション モデルがビルドされています。
ASP.NET Core
Windows 10 ユニバーサル Windows プラットフォーム (UWP)
Xamarin.Forms

https://docs.microsoft.com/ja-jp/dotnet/articles/core/

794 :デフォルトの名無しさん:2017/01/20(金) 11:07:17.26 ID:uaOwYInA.net
>>792
単に無知なやつを茶化してるだけだろ

795 :デフォルトの名無しさん:2017/01/21(土) 12:06:38.55 ID:qCdjOj58.net
C#を勉強してるのですが、無償環境の為インストーラーの作成が出来ません
動作環境を知ることができる特定の相手のみアプリケーションを配布するのにインストーラーが必要なのはどういった場合になるでしょうか

796 :デフォルトの名無しさん:2017/01/21(土) 12:42:00.19 ID:wnvzR/a/.net
>>795
どんな無償環境?
無償環境だけが条件ならVisual Studio Community 2015 でインストーラーを作れるけど

797 :デフォルトの名無しさん:2017/01/21(土) 13:15:17.44 ID:3w6w5xSi.net
翻訳ソフト使ったのかな

798 :デフォルトの名無しさん:2017/01/21(土) 13:26:11.74 ID:DU5/M7G9.net
>>796
ありがとう。調べてみたら
Installer projectっていうのがあるんだね

799 :デフォルトの名無しさん:2017/01/22(日) 05:11:30.27 ID:SRnP25ta.net
コードはいじれないdllにClickイベントがあって

private void OnClick(object sender, DeviceGestureEventArgs e)
{
  // いろいろ処理
}

Clickイベント自体はpublicです。
Clickイベントをどうにかしてこの いろいろ処理 を無効にできますか?
button.Click -= OnClick; みたいなことがやりたいのですが。

800 :デフォルトの名無しさん:2017/01/22(日) 08:34:45.29 ID:6kGfbYFS.net
HogeクラスにClickとOnclickがあって、イベントの型がFugaEventHandlerとして
var m = hoge.GetType().GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
var h = (FugaEventHandler)m.CreateDelegate(typeof(FugaEventHandler), hoge);
hoge.Click -= h;

801 :デフォルトの名無しさん:2017/01/22(日) 09:43:23.66 ID:phG9hQKS.net
>>799
継承して OnClick (>>799に書いてあるものではなくてこれhttps://msdn.microsoft.com/en-us/library/system.windows.forms.control.onclick(v=vs.110).aspx)
をオーバーライドして潰せばClickイベントは発生しなくなる

802 :デフォルトの名無しさん:2017/01/22(日) 10:20:22.86 ID:SRnP25ta.net
>>800-801
ありがとうございます。
いけそうです。

803 :デフォルトの名無しさん:2017/01/22(日) 23:41:02.88 ID:B37Hjrvb.net
2GBを超えるバイナリファイルをbyte配列に取り込もうとしているのですがうまくいきません

byte[] bs = System.IO.File.ReadAllBytes(file_path);
↑これだと2GB未満にしろといわれます

できるだけ分割したくないのですが方法はありますか?

804 :デフォルトの名無しさん:2017/01/22(日) 23:47:39.67 ID:5CC/gWkn.net
[] ←これが2Gまでじゃないかな

805 :デフォルトの名無しさん:2017/01/22(日) 23:56:07.82 ID:f0ZpZ2O5.net
C#って2GiBの壁も超えられないクソ言語なの!?

806 :デフォルトの名無しさん:2017/01/22(日) 23:58:32.97 ID:2orbyh8h.net
https://msdn.microsoft.com/ja-jp/library/hh285054(v=vs.110).aspx

807 :デフォルトの名無しさん:2017/01/22(日) 23:59:03.69 ID:7Uo1H//c.net
>>803
配列の長さは仕様上Int32なのでどうしようもない

808 :デフォルトの名無しさん:2017/01/23(月) 00:06:09.00 ID:dQYVkXPH.net
>>803
http://stackoverflow.com/questions/26882004/system-io-file-readallbytes-for-file-larger-than-2gb
http://msdn.microsoft.com/ja-jp/library/hh285054%28v=vs.110%29.aspx
http://abe-masato.cocolog-nifty.com/blog/2014/08/c-2gb-8da2.html
C# 2GB でググレカス

809 :デフォルトの名無しさん:2017/01/23(月) 00:14:05.50 ID:iJ5kh901.net
2GBってネタじゃなくて真面目に言ってるのかw
少なくとも現時点では富豪的過ぎる気がするんだけどw
ムーアの法則とっくに終わってるし将来的にも疑問だなあw

まあ現時点でも動作環境を限定できるならそれほど非現実な数字でもないんだろうけど

810 :デフォルトの名無しさん:2017/01/23(月) 00:41:33.95 ID:ft2qOqRV.net
803じゃないけど、

10〜20個くらいのプロパティを持つクラス(ほとんどstring型)の、数百万個単位のインスタンスを処理したい
(現在百数十万個だがデータは日々増えていて、将来的には500万個以上のデータを扱いたい)
データ追加時を除けば1つのデータのプロパティを書き換えることはあまりない
全データを対象に集計や抽出をバリバリやる

今はこのクラスのジェネリックリストでメモリ上に保持していて、XmlSerializerとStreamReader/Writerでロード/セーブしてるけど、
500MB以上のファイル読み書きに十秒単位で時間が掛かるようになってきてしまい、使用メモリも多いときは1GBに届きそうになってきた

個人のPCでも実現出来る範囲で何か工夫して軽量化するとすれば、どういうやり方があるだろうか
データベースを使うと却って重くなる?

811 :デフォルトの名無しさん:2017/01/23(月) 01:00:04.12 ID:AKblCqbZ.net
DB使え

812 :デフォルトの名無しさん:2017/01/23(月) 01:17:39.68 ID:ft2qOqRV.net
やはりデータベースか…
この規模のデータでデータベースを使うなら何がいいですかね?

813 :デフォルトの名無しさん:2017/01/23(月) 05:19:54.65 ID:3LnhEFNW.net
>>810
むしろそんなになるまでデータベースを使わない選択をしてたのが信じられんわ

814 :デフォルトの名無しさん:2017/01/23(月) 07:25:59.67 ID:4eKNVnEB.net
>>812
postgresかな
高性能で、ライセンスが緩く、比較的ローカルでも利用されることの多い非常に有名なDBMSだ
広く配布するようなものではなさそうに見えるから、
SQLiteみたいな組込型に拘る必要はないと思う

815 :デフォルトの名無しさん:2017/01/23(月) 08:36:41.41 ID:mc6Hyr1K.net
>>812
SQL-SERVER LocaDB でいいんじゃね?
Visual Studio から操作できるし
他の端末からも参照したいって言われたら SQL-SERVER Express に移行すればいいし
もっとでかくなったら Standard や DataCenter Edition あるし

816 :803:2017/01/23(月) 11:57:28.95 ID:Enhoy4E3.net
>>804
>>805
>>807
>>808
レスありがとうございます
<gcAllowVeryLargeObjects> を有効にしてもbyte配列自体が2GB超えて作ることができないため
それそも不可能ということでよろしいですか?
その場合、int32などに配列作りなおしたいと思います

817 :デフォルトの名無しさん:2017/01/23(月) 12:04:12.14 ID:uKeJP+/b.net
byte[]としては無理
byte*にするなら可能

818 :デフォルトの名無しさん:2017/01/23(月) 13:01:08.68 ID:GKpZ78C8.net
>>816
バイナリファイルの編集が目的ならreader/writer使えば良いんじゃないの

819 :デフォルトの名無しさん:2017/01/23(月) 21:01:33.61 ID:bI3M8V88.net
>>816
ビルドターゲットはx64になってる?
AnyCPUだと最近のは32bitを優先がデフォルト設定だから上手く行かないかも。こっちを直しても良いけど。
いずれにせよ、64bit環境は必須。

820 :デフォルトの名無しさん:2017/01/23(月) 21:16:01.30 ID:4O+fDoKV.net
>>815
SQL Server Expressは10GB制限があるから話にならんよ
DBまでわざわざMSにロックインとかアホらしいし

821 :デフォルトの名無しさん:2017/01/23(月) 21:55:33.04 ID:3LnhEFNW.net
>>820
じゃあ何がおすすめなの?教えて先生!

822 :デフォルトの名無しさん:2017/01/23(月) 21:58:50.93 ID:hTicmAdc.net
postgreオヌヌメ

823 :デフォルトの名無しさん:2017/01/23(月) 21:59:47.37 ID:LuyUsAN1.net
>>820
10GBも有れば十分だと思う

824 :デフォルトの名無しさん:2017/01/23(月) 22:29:35.23 ID:4O+fDoKV.net
>>823
既に500MBあってまだまだ増えるって言ってるのに何を根拠に十分だというのか
いくつも一時テーブル作ったりしたらカツカツだろ
DBってそれぞれに結構癖屋独特のノウハウがあるから、後で問題が出てから乗り換えるより最初から一本に決めたほうがいい
MSに金払う気がないならpostgresにしとけ

825 :デフォルトの名無しさん:2017/01/23(月) 22:53:34.66 ID:uKeJP+/b.net
>>824
>(現在百数十万個だがデータは日々増えていて、将来的には500万個以上のデータを扱いたい)
> XmlSerializerとStreamReader/Writerでロード/セーブしてるけど、
> 500MB以上のファイル読み書きに十秒単位で時間が掛かる

今のデータで考えると10GBには百数十万個の20倍
今のデータはxml
どんな根拠で10GBが不十分だというのか逆に聞きたい

826 :デフォルトの名無しさん:2017/01/23(月) 22:59:20.56 ID:UsEI+ALW.net
>>824
理由もなしにpostgresとな

827 :デフォルトの名無しさん:2017/01/23(月) 23:08:01.01 ID:wWnQplUy.net
話は変わるけど、LocalDBをOS標準にしてくれると嬉しいんだけどな

828 :デフォルトの名無しさん:2017/01/23(月) 23:15:06.54 ID:wcSM/s0i.net
いまだにPOCOの概念がよくわからないんだけど、POCOと対になるものと併せて誰か教えてクレメンス

829 :デフォルトの名無しさん:2017/01/23(月) 23:19:31.21 ID:4eKNVnEB.net
>>828
わかりやすいのは型付データセットだな
強制された基底クラスや大量の自動生成コードにクソミソに汚されたクラスのことだ

830 :デフォルトの名無しさん:2017/01/23(月) 23:25:33.94 ID:8CargB7Y.net
DBはころころ変わり続けるのはもうやめてほしいな

831 :デフォルトの名無しさん:2017/01/24(火) 01:13:39.09 ID:JiOoKhp+.net
>>816
GetValueなら64bitを指定できはする
64bitなら一応確保できるのかなぁ

だけど、そもそも2GB超の連続領域を安定して確保できるかは不安
メモリマップとかも検討したら?

832 :デフォルトの名無しさん:2017/01/24(火) 08:39:50.24 ID:HHZbO6eg.net
>>820
> SQL Server Expressは10GB制限があるから話にならんよ
生の XML を格納する訳じゃないだろうしデータ圧縮もできるし話にならないのは君のちんけな知識じゃないかな? w
PostgreSQL もいいと思うけどちょっとしたデータの確認とかを Visual Studio でできる SQL-Server の便利さは捨てがたい

833 :デフォルトの名無しさん:2017/01/24(火) 08:42:05.80 ID:JKcqAdCJ.net
その程度の便利さならどうでもいいな
GUIの管理ツールを使えば済む話

834 :デフォルトの名無しさん:2017/01/24(火) 08:42:56.64 ID:HHZbO6eg.net
>>827
内部的には SQL-Server のプロセス動いてるから大多数の人には邪魔にしかならんと思う

835 :デフォルトの名無しさん:2017/01/24(火) 08:46:39.86 ID:ghFC1Ntr.net
sqlserverってselectでもデッドロックするからヤダ

836 :デフォルトの名無しさん:2017/01/24(火) 10:25:32.84 ID:tgh5wy6g.net
>>834
Vistaか7あたりから、ファイルシステムがSQL Serverベースになるという話があったよな

837 :デフォルトの名無しさん:2017/01/24(火) 10:52:48.75 ID:g9KGWoah.net
>>835
ちょっとはググれよ

838 :デフォルトの名無しさん:2017/01/24(火) 11:02:46.65 ID:tjYeiy24.net
OSにDBもたせるとかまたセキュリティホールの温床やん

無駄な機能は悪

839 :デフォルトの名無しさん:2017/01/24(火) 11:05:54.15 ID:4uwrNeCv.net
DB=セキュリティホールときたかw

840 :デフォルトの名無しさん:2017/01/24(火) 11:23:21.18 ID:1ohBhH6C.net
痴性溢れる御意見ですね

841 :デフォルトの名無しさん:2017/01/24(火) 11:25:32.73 ID:b/7/gkXo.net
たしかにレジストリも一種のDBでセキュリティホールの温床だから
OSで各種設定を保持するのはやめよう(名案)

842 :デフォルトの名無しさん:2017/01/24(火) 11:28:18.15 ID:nhx4+y/y.net
>>836
頓挫しちゃったのが勿体無い

843 :デフォルトの名無しさん:2017/01/24(火) 11:47:35.47 ID:HE6oytLN.net
ゲイツ3世さんがずいぶん入れ込んでたみたいだったけど、正直俺にはアレのメリットが
さっぱり理解できんかった。

844 :デフォルトの名無しさん:2017/01/24(火) 12:20:30.56 ID:b/7/gkXo.net
ツリー式のファイル管理はもう人が把握できる限界に近づいてると思うし
もっとリッチなタグ情報をファイルシステムで持たせて
OSの検索機能に統合する思想は支持するよ

845 :デフォルトの名無しさん:2017/01/24(火) 12:43:39.44 ID:HHZbO6eg.net
>>833
> GUIの管理ツールを使えば済む話
それをいちいちインストールするのが面倒だって話

846 :デフォルトの名無しさん:2017/01/24(火) 12:47:25.25 ID:HHZbO6eg.net
>>836
WinFS か
いい考え方だと思うがちょっと構想が壮大すぎたな

847 :デフォルトの名無しさん:2017/01/24(火) 13:11:04.23 ID:VXWwcrkC.net
ゲイツは過去にXMLは使い物にならないと言った。

WinFS、WPF・・・ゲイツはやはり生粋のプログラマである。

848 :デフォルトの名無しさん:2017/01/24(火) 15:21:09.38 ID:iRQG5obN.net
WPFでXAMLにGoサインだしておいてよく言う

849 :デフォルトの名無しさん:2017/01/24(火) 15:39:07.83 ID:VXWwcrkC.net
ゲイツはVista以降はタッチしていない。

850 :デフォルトの名無しさん:2017/01/25(水) 03:10:02.58 ID:WHRwTArY.net
>>847
全部読まないと一部分が取り出せないってのがデータが多くなると致命的だよね

851 :デフォルトの名無しさん:2017/01/25(水) 07:15:37.99 ID:fntd/u0o.net
そこまででかいならDB使えってことでしょ

852 :デフォルトの名無しさん:2017/01/25(水) 11:50:15.36 ID:3NBpStvW.net
JAVAやVB6、WPF、LINQが遅くないと暴れてるアホと同じ臭いがする。
機械語NativeとそうでないPGとに根本的な認識の断絶がある。

853 :デフォルトの名無しさん:2017/01/25(水) 11:53:43.34 ID:2idQLFdG.net
悪いけど暴れてるのは君の方だと思うw

854 :デフォルトの名無しさん:2017/01/25(水) 11:59:10.65 ID:uJriqNlz.net
同感w

855 :デフォルトの名無しさん:2017/01/25(水) 12:27:26.41 ID:eMOc+Lms.net
もう一票
時代について行けてないお爺ちゃん頑張って

856 :デフォルトの名無しさん:2017/01/25(水) 12:38:38.29 ID:obtTERoQ.net
そもそもVB6は割りと早かっただろうに
C#に移行するときにモッサリ感でイライラした人も多かったはずだが

857 :デフォルトの名無しさん:2017/01/25(水) 14:12:06.66 ID:LppA2Fcl.net
C#も実行時は機械語だし、VB6なんて完全に機械語だろ

858 :デフォルトの名無しさん:2017/01/25(水) 14:18:51.33 ID:7AoQtGUX.net
>>855
+1
>>854
+1
>>853
+1
>>852
-1

859 :デフォルトの名無しさん:2017/01/25(水) 16:32:03.08 ID:ABI1PFb6.net
ラムダガイジ、LINQガイジ、staticおじさん、VBガイジは巣に帰れ

860 :デフォルトの名無しさん:2017/01/25(水) 19:30:14.67 ID:/wdbuGDr.net
俺も>>853にもう一票。
ただそれ以前に暴れている奴がいないと思うが。

あとC#はnativeでは無くMSILだろ。そして必要十分な速度は出ていると思うよ。
DBについては、自前でDBモドキを作る位なら最初からDB使えって話だろ。
ただしOSは今のNTFS+検索用インデックス(現行システム)でいいと思うけどね。
大半は階層化で問題ないし、必要あればDBを動作させればいいだけ。
WPFは使ったこと無いが、中途半端なものを作るのではなく、
最初からHTMLにしとけばよかったと思う。

861 :デフォルトの名無しさん:2017/01/25(水) 19:33:54.26 ID:G7Mt73tJ.net
>>860
C#は実行時はネイティブだよ
Javaみたいなインタプリタとのハイブリッドとも違い、ほぼAOTな方式

862 :デフォルトの名無しさん:2017/01/25(水) 19:34:38.55 ID:uJriqNlz.net
>>857が言ってるのはCPUに命令渡されるときは機械語だってような意味でしょw

863 :デフォルトの名無しさん:2017/01/25(水) 20:00:27.57 ID:/wdbuGDr.net
>>861
JITと言えよ。話が余計におかしくなるだろ。
とはいえMonoは直接native吐けるようだが。

864 :デフォルトの名無しさん:2017/01/25(水) 20:06:49.55 ID:a2fwv9ft.net
>>863
.NETは起動時にコンパイルだから、JavaのHotSpotみたいなのが真のJITだとするなら実質的にはAOT寄りでしょ
あくまでコンパイルするタイミングの問題でしかないので、ngenや.NET Nativeみたいなのも技術的に難しくない
Cのソースを実行前にコンパイルしてるようなもんだ

865 :デフォルトの名無しさん:2017/01/25(水) 21:03:29.96 ID:/wdbuGDr.net
>>864
所詮は言葉の定義だから争う意味はないんだが、
普通は「直接実行出来ない形式」(=MSIL)で配布され、
それを実行時(=CLR)に機械語に変換して実行するのなら、それはJITと言う。

MonoのAOTは見た目EXビットの対策用で、結果的にnativeが入手出来るが、それはJITより効率が悪い。
例えばJavaScript(V8)の場合は実行時にまず手抜きJITを行い、実行する。
そして何度も実行される部分だけ、最適化JITを行う。
最適化JITを最初から全面的に行わないのは、最適化にも時間がかかるから。
つまり、「JITコンパイル時間+実行時間」が最小になるように最適化している。
もちろん最適化JIT済みのnativeを吐くのも簡単なはずだが、必要ないから見たことはない。
Javaは知らんがHotJavaも同じようなコンセプトだったので、多分同じ。

結局、MonoのAOTは「常に最適化JIT」を全面的に行う分だけ効率が悪い。
ただしAOT済みのexeを配布/使用する場合はJIT時間分だけ効率がよくなる。
MonoはLinux等もターゲットにしているのでAOTが必要だが、
動的コードを実行出来る環境(windows)では必要なかった。
ここで.NET Nativeが出てきたところをも見ると、MSもJIT時間が気になっていたということではある。

.NET NativeならAOTと言っていい。
ただの.NET(MSIL)なら、やっぱりJITだよ。それは実行時(ダブルクリック以降)にコンパイルしている。
最初から全面最適化JITするという、頭の悪いJITを積んでいるだけでしかない。
ではC#は?というのはこの意味では質問が悪いが、
今のC#はMSILが主流だと思うが、
所詮大半はwindows/x86(x64)でしかないのでexeでも問題ないし、今後は変わるのかもね。

ちなみに.NET Nativeにしたら、難読化はかなり進むのかな?

866 :デフォルトの名無しさん:2017/01/26(木) 02:07:47.45 ID:NrOKhjjD.net
>>865
技術が進歩したり、複合技を使うようになったから言及することにあんまり意味はないんだけどね

MSILで配布してインストーラでngenをかけるソフトとか、AndroidのArtの事前コンパイルを見ればAOTというのも間違いではない

867 :デフォルトの名無しさん:2017/01/26(木) 07:09:13.07 ID:hf6GrTPo.net
今度は完全に論破しないと気がすまない奴が集まりだしたなぁ

868 :デフォルトの名無しさん:2017/01/26(木) 09:22:35.13 ID:+HXQGO57.net
c#で出来たms製の製品って何がありますか?

869 :デフォルトの名無しさん:2017/01/26(木) 09:47:45.25 ID:e+Zq8z+D.net
>>868
Visual Studio

870 :デフォルトの名無しさん:2017/01/26(木) 10:33:30.90 ID:MZPXqvXg.net
>>869
devenv.exe
cl.exe
ml.exe
nmake.exe
link.exe
こういうの全部ネイティブなんだが、C#で作ってネイティブ化してるのか?w

871 :デフォルトの名無しさん:2017/01/26(木) 11:30:14.20 ID:Bx3m0kqD.net
>>870
例えばdevenv.exeとかファイルサイズが1MBすら無いけどそれだけでVS動いてんの?

872 :デフォルトの名無しさん:2017/01/26(木) 12:08:47.81 ID:sD2fcvWW.net
>>871
何馬鹿なこと言ってるんだ?
今俺が起動してるVSだとntdll.dlljから数えて426モジュールロードされてるが、その中にはC#で作られてるのもあるよ
VSはVSで作られてるかもしれんが、VSはC#で作られてるとは言わないだろ

873 :デフォルトの名無しさん:2017/01/26(木) 12:13:43.88 ID:ecr0NxNG.net
馬鹿はおめーだよ死ねガイジ

874 :デフォルトの名無しさん:2017/01/26(木) 12:23:03.13 ID:A9+CgNOi.net
どうでもいいですよ

875 :デフォルトの名無しさん:2017/01/26(木) 14:11:50.02 ID:+5gKaLQm.net
>>872
>その中にはC#で作られてるのもあるよ
どのくらいの割合で?

876 :デフォルトの名無しさん:2017/01/26(木) 14:51:13.51 ID:sD2fcvWW.net
>>875
このスレにいるならVSぐらい入れてるだろ。興味あるなら自分で数えろよ

877 :デフォルトの名無しさん:2017/01/26(木) 15:46:52.91 ID:NrOKhjjD.net
VSはWPF製

878 :デフォルトの名無しさん:2017/01/26(木) 15:54:26.65 ID:mfu+uciH.net
ガワがWPFでネイティブツール群を呼び出しているならC#製と言っていいね

879 :デフォルトの名無しさん:2017/01/26(木) 16:25:36.23 ID:eYmqMcR3.net
VS2010からWPFになって激重。

880 :デフォルトの名無しさん:2017/01/26(木) 17:41:07.76 ID:Ofw1Wwb+.net
SSD君登場

881 :デフォルトの名無しさん:2017/01/26(木) 18:25:52.64 ID:BIlB42US.net
"PrismUnityApplication" は名前空間 "using:Prism.Unity.Windows" に存在しません。

とエラー一覧に出るようになって

<prism:PrismUnityApplication

に波線が付くようになったんだけどどうすれば直りますか?
プログラムは何の問題もなく動きます。

882 :デフォルトの名無しさん:2017/01/26(木) 18:38:59.08 ID:RbsnIhge.net
>>879
逆でしょ
偶にVS2010使うと糞重くてイライラするぐらいなのに

883 :デフォルトの名無しさん:2017/01/26(木) 20:12:45.99 ID:FrBndq/i.net
質問すみません
今MVCでEntityFrameworkの勉強中なんですけど、DisplayNameの属性で日本語指定すると文字化けするんですが何が原因と思われるでしょうか

884 :デフォルトの名無しさん:2017/01/26(木) 20:39:43.56 ID:kmw2XayL.net
>>883
えーっと俺も経験あるような気がするんだが思い出せない。
どうにかしたら直ったと思う。

885 :デフォルトの名無しさん:2017/01/26(木) 20:50:44.48 ID:Ofw1Wwb+.net
>>881
気にしない
xamlのコンパイラ統合は未だみたいだね

886 :デフォルトの名無しさん:2017/01/26(木) 21:45:58.05 ID:3P/eAUHh.net
>>884
ありがとうございます
そうですか。このあいだまでは確か普通に出来てたんですよね。。
プロジェクト変えたりweb.configでencoding書いてみてもダメでどうしたものかと

887 :デフォルトの名無しさん:2017/01/26(木) 21:47:05.34 ID:He8RO7U3.net
>>866
何で君がAOTということにしたいのかよく分からんが、
俺は誤解の少ない言葉を使えと言っているだけ。
主流派がMSILならJITと言うべき。
主流派が君の言うようにnativeならAOTと言うべき。それだけ。
君がAOTだと言い張るのは自由だが、周りから見たら面倒な奴でしかない。

ただAOTは時間予算が潤沢であるところが本質的に異なる。
> しかし,AOT方式をいざ導入してみると,サイズの大きなアプリのインストールや,
> 一度に複数のアプリをアップデートするような場合にコンパイルに時間がかかり,
> 場合によっては20分程度かかるケースが存在していたようです。
> このインストール時間を問題と捉えて,
> Android NのARTでは,JIT方式をもう一度使うことになりました。
> これまでのAOT方式を止めてしまったというワケではなく,実行のタイミングが変わり,
> 端末がアイドル中かつ充電されている場合のみに変更されることになりました。
> http://gihyo.jp/lifestyle/clip/01/awt/201603/24
だから単純に持ってきた場合にはこういう事が起きる。
ちなみにngenも同様の仕組みは持っている。
> https://msdn.microsoft.com/ja-jp/library/6t9t5wcf(v=vs.110).aspx

最近思うのは○○言語スゲーという信者が多いこと。
C#はそういう馬鹿は比較的少ない感じだが、君がそうなら、それは止めた方がいい。
C#は開発速度を最適化した言語で、結果的に実行効率はC/C++より悪いし、よくなることはない。
これを踏まえた上で、そのアプリにとって最適な言語を選択すればいいだけのこと。

888 :デフォルトの名無しさん:2017/01/26(木) 21:48:44.28 ID:6c1mJ3TJ.net
>>875
デバッガのホストのように、目的の性質上ネイティブでなければならない一部のものを除けばほぼ全て
VS2010のときに全面的にC#で作り直したらしいよ
VSはC#で書かれたマネージドアプリだと公言してるし

889 :デフォルトの名無しさん:2017/01/26(木) 21:57:18.89 ID:6c1mJ3TJ.net
>>887
誤解の少ない言葉を使えと言いながら実行速度の話とJITをごっちゃにして不要な混乱を招くのはいかがなものか
原理的にはJITの方が実行時のプロファイルをヒントとして最適化ができる分だけ有利だ
あとは起動時間や実行時にコードを差し替えるコストとのトレードオフだが、
サーバーならそこは全く問題にならないので実際JavaのHotSpotなんか(あくまでサーバー用としてはだが)すごく高性能だよ
重い処理やらせると段階的に最適化されて速くなっていくのが目に見えて、最終的には素直に書いたC++を超えるケースもある

890 :デフォルトの名無しさん:2017/01/26(木) 22:14:43.93 ID:kmw2XayL.net
>>883
ファイルのエンコードデングが関係してないか?

891 :デフォルトの名無しさん:2017/01/26(木) 22:15:11.50 ID:BIlB42US.net
>>885
Blendで試したらエラーもなく、デザイナーも表示されたのでこれでしのぐことにします。

892 :デフォルトの名無しさん:2017/01/26(木) 22:19:59.87 ID:vDjllkLc.net
>>881
可也期待薄だが、俺の環境のxamlのトラブルは
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/f7541527-df77-4bd7-8458-f90565bf34b4/visual-studio-2015-?forum=wpfja
の一番最後の方の解決法で何とかなった

こっちはblend関係だから望み薄だが、やっても害が出るものじゃないしよろしければどうぞ

893 :デフォルトの名無しさん:2017/01/26(木) 22:28:27.88 ID:uLxLwJKu.net
>>888
> VSはC#で書かれたマネージドアプリだと公言してるし
ソースある?

894 :デフォルトの名無しさん:2017/01/26(木) 22:34:12.57 ID:He8RO7U3.net
>>889
つか、全体として何が言いたいのか分からない。

C#についてなら、俺は主流はMSILだと思っているから、JITと言う方が適切だと言っている。
俺の認識が間違いで、主流は既にnativeであれば、AOTという方が適切だ。
君がそう思っているのならそれでいい。

C#の方がC/C++よりも高速であれば、高速アプリは全てC#で開発されることになる。
実際は、高速アプリは全てC/C++で組まれてるだろ。これが現実。
速度差は仕様差から来ているから、今後ともこれは埋まらない。

> 最終的には素直に書いたC++を超えるケースもある
JA馬鹿も同じ事を言うのだが、探して見つけて喜んでいる時点でゴミ。
アプリの性質を考えて、適切な言語を選択すればいいだけ。
ただ現実的にGUIも含めて全部C/C++で組むのもだるいので、
NumPyが流行るのも分かるし、実際あのアプローチがいいと思うが。

いずれにしても、C#信者ならそれは止めておけ。
それぞれ得手不得手はある。それは当たり前の話。
万能言語があったらこんなに乱立しない。

895 :デフォルトの名無しさん:2017/01/26(木) 22:54:19.21 ID:7sPtmcfc.net
長文ウゼエ

896 :デフォルトの名無しさん:2017/01/26(木) 22:57:35.93 ID:SLW9Whol.net
速度はC++の方が早いよ
でも普通のアプリならそこまで問題にならない程度の差

897 :デフォルトの名無しさん:2017/01/26(木) 23:03:14.05 ID:C8HlRM2h.net
なんか昨日から長文野郎が常駐してて空気が悪くなってる

898 :デフォルトの名無しさん:2017/01/26(木) 23:03:30.86 ID:GQnwZs38.net
>>890
ありがとうございます
確認してみます!

899 :デフォルトの名無しさん:2017/01/26(木) 23:30:49.26 ID:NrOKhjjD.net
>>894
自分で争う意味はないって言ったのになんでそんなに定義にこだわるんだ?
俺を含めて、一般的にはJITと呼ぶ(個々を見るとAOT的な側面や使い方もあるね)って言ってるだけだぞ

900 :デフォルトの名無しさん:2017/01/26(木) 23:50:28.00 ID:NrOKhjjD.net
>>894
あと、>>889はJavaやC#がC++よりはやいとか優れてるなんていってないじゃん
Javaも悪くはない言語選択だよっていってるのに

お前は何か、みんなが前提として理解してることを延々と説明してる感じ

901 :デフォルトの名無しさん:2017/01/27(金) 00:00:30.43 ID:sOrVpnzk.net
高速アプリが全てC++で組まれてるというのも思い込みもいいとこだな
AmazonがC++でやっててクソ遅かった大規模データ処理が
Java+Hadoopに乗り換えることで大幅に改善されたという例もある
今時言語の速度なんてあくまで要素の一つに過ぎないんだよ

902 :デフォルトの名無しさん:2017/01/27(金) 00:06:54.41 ID:FPm896mM.net
>>901
こういう馬鹿のデスマーチの尻拭いを何度したことか。氏ね。

903 :デフォルトの名無しさん:2017/01/27(金) 00:07:53.10 ID:fDORPAeX.net
別に長文でもスレ違いでも参考になるようなレスなら何とも思わないけど
今のこれは実にくだらないねw

904 :デフォルトの名無しさん:2017/01/27(金) 00:11:06.35 ID:a4ei9zsf.net
ガチのHPCだとコアはCUDAだったりFortranも現役だったりで、これまたC++とは限らない
あまりにも見識が狭すぎる

905 :デフォルトの名無しさん:2017/01/27(金) 00:24:44.98 ID:QXZBJ6J+.net
長文はキチガイ

906 :デフォルトの名無しさん:2017/01/27(金) 00:29:28.64 ID:CH0FWDPd.net
>>899
おいおいすりかえんなよ。
俺はC#はJITと言う方が近いと言っている。
君はC#はAOTだと言い張っている。

俺は君が「C#はAOTだ」と言い張る理由が分からない。
C#に問題があるとしたらまずは速度だ。AOTと言い張る理由にもなる。
だからそれに言及しただけ。
では何故AOTだと言い張るのか理由をを言ってみてくれ。

俺はCUDAも使ったことあるよ。
ただそれをここで言う意味もないだろ。

907 :デフォルトの名無しさん:2017/01/27(金) 00:30:54.80 ID:iNBXS39I.net
申し訳ないが3行以上はNG

908 :デフォルトの名無しさん:2017/01/27(金) 00:31:00.69 ID:g7nuPYvQ.net
>>906
.NET Native知らないの?

909 :デフォルトの名無しさん:2017/01/27(金) 00:54:42.49 ID:9J0c8boi.net
本日のNGID:CH0FWDPd

910 :デフォルトの名無しさん:2017/01/27(金) 01:49:06.49 ID:z/+I8zAR.net
>>906
「JITのほうが近い、ただしAOT的な側面もある」をどうやったら「C#はAOTだ」に変換できるんだ?

多分、お前は「AOT=配布時に機械語、JITとは真逆の概念」みたいな定義にこだわりがあるから話が合わない
みんなは「AOT的=実行する瞬間以外の機械語へのコンパイル」程度の認識だから、ネイティブキャッシュとかArtの事前コンパイルもAOT的と捉えてるだけだ

ただ、.NET Nativeはまだしも、iOS向けUnityとXamarinがそれなりに使われてるので「C#はJIT」は誤解を招く気もするけどね

911 :デフォルトの名無しさん:2017/01/27(金) 02:14:06.13 ID:fDORPAeX.net
実にどうでもいいんだけど、そういうアーキテクチャー的な話をするんなら、
言語としてのC#と、そのWindows版.NET Framework用の実装は
一応理念的には別門だって前提で議論しないとまずいんじゃないのそもそもw

912 :デフォルトの名無しさん:2017/01/27(金) 02:19:16.89 ID:fDORPAeX.net
しかしあれだね「、.NETの言語はJITだから実行環境に合わせた最適化がされるようになる」
っていううたい文句は最初の.NET1.0のころからあるけど、
これ今はちゃんと実現されてるんだっけ?

913 :デフォルトの名無しさん:2017/01/27(金) 03:21:05.61 ID:z/+I8zAR.net
>>912
SSE命令関連とかは結構頑張ってるみたいだね
一応.NET NativeでAOTするのと比べて優位を保てる程度には最適化してるらしい
http://blogs.microsoft.co.il/sasha/2014/04/28/net-native-performance-internals/
ちょっと古いから今はどちらも改善されてるかもしれんが

914 :デフォルトの名無しさん:2017/01/27(金) 23:51:25.19 ID:CH0FWDPd.net
>>910
俺が問題にしているのは>>861
> ほぼAOTな方式
についてだぞ。全然そんなこと無いだろ、という話をしている。
ただまあ、お前らが過剰に反応するのはお前ら自身も理解出来ているからだと思うが、
誤解のない表現で言い切ってしまうと以下だ。

・C#は遅い
・C#は20年後には無くなる言語

速度面については、native化や最適化でいいところまでは行くだろうが、
仕様上、保護無し、ランタイム無しで突っ走るC/C++には勝てない。
JITガーって言う意見もあるだろうが、CでもJITしてはいけないわけではなくて、
Cでも関数ポインタが不変なら関数の中身を差し替えたところで問題はない。
だからスカスカに配置しておいて差し替えることも可能ではある。(誰もやってないが)
そもそもDLLだけアップグレードすることは今でも問題ないわけだし。
速度面でC/C++に勝つ芽は今後ともない。

.NETのコンセプト、全ての言語/環境で同じフレームワーク、というのは素晴らしかった。
ただそれも過去形だ。
色々あった言語(VB/J++/VC++)も結局C#に統合されつつあるし、あとはせいぜいF#位か。
.NET compactは結果的にマーケットを取れずに失敗した。
全ての言語/環境での共通フレームワークはHTML/ブラウザでほぼ確定した。

今C#がまだ生きているのはJavaがあの体たらくだからだ。
とはいえ、見て分かるとおり結果的にC#とJavaはモロ被りだ。
そして一応Javaも動きだした。(Java8)
JavaとC#のシェアでは喧嘩にならないし、Javaで済む場合にC#を選ぶ理由がない。

今現在はJavaは相変わらず糞だが、今後機能追加されてC#との差が無くなると死ぬのはC#。
C#信者はこれをちゃんと認識しておいた方がいい。
C#は差別化出来ていない。

915 :デフォルトの名無しさん:2017/01/28(土) 00:01:46.77 ID:lJFdXfrP.net
20年も残るなら十分

916 :デフォルトの名無しさん:2017/01/28(土) 00:15:29.48 ID:vlmW/cIj.net
>>914 ※個人の思い込みです。

917 :デフォルトの名無しさん:2017/01/28(土) 00:16:54.48 ID:rD7WeMm9.net
後はbuilderスレ辺りで続きをやって下さいって事で

918 :デフォルトの名無しさん:2017/01/28(土) 00:24:24.84 ID:lGyRVc7d.net
>>914
10年前の過去スレかと思ったわ。

919 :デフォルトの名無しさん:2017/01/28(土) 00:29:22.98 ID:GpK52peC.net
JAVAは特許絡みで自滅しそうだけどな。
Googleも.NET Foundationに加入したことだし、脱JAVA考えてたりして。

920 :デフォルトの名無しさん:2017/01/28(土) 00:33:11.09 ID:B8Cbj4aW.net
>>918
だなww

921 :デフォルトの名無しさん:2017/01/28(土) 00:50:41.15 ID:cRpkhDFF.net
Javaは環境に排他的なところがあるからなあ
JVMの世界にどっぷり浸かってしまえば楽なんだが、
PHPやらRailsやら他にもいろいろ使ってるとJavaだけデプロイが異色すぎる
その点 .NET Core は今時のWebらしいデプロイ方法を実現してるので非常に馴染みやすい
Javaの置き換えというより、スクリプト+αとしてのGoに代わる選択肢の一つとして普及する可能性は高いんじゃないかな

922 :デフォルトの名無しさん:2017/01/28(土) 01:05:26.39 ID:iWacJ3fP.net
.net nativeがスタティックリンクでライブラリから必要なクラスだけ取り込む仕組みなのを知らないとはね

923 :デフォルトの名無しさん:2017/01/28(土) 03:02:12.31 ID:VlCpYCgG.net
>>914
それ俺じゃないし、そのレスもAOTの定義次第でしょ
君が言葉の定義にこだわりがあるのはわかったからそんなにAOTに過剰反応するな

言語の20年後は予想するだけ無駄
C/C++もgoやrustに置き換えられてるかもしれないし、Javaの代わりにKotlinがJVMの中心になってるかもしれない
ハードと通信の向上で富豪プログラミングができるといいけど、ナノマシンとかの制御のために今より貧相なハードウェア要件だったりするかもね

924 :デフォルトの名無しさん:2017/01/28(土) 06:50:26.81 ID:7LkpJPRm.net
C++が、FORTRAN化している。

925 :デフォルトの名無しさん:2017/01/28(土) 07:29:56.62 ID:bLDCN2m1.net
>>916
妄想だろ w
本人楽しそうだしいいんじゃね?

926 :デフォルトの名無しさん:2017/01/28(土) 09:05:59.37 ID:O0GHMxPw.net
VisualStudioの無いC#なんて

927 :デフォルトの名無しさん:2017/01/28(土) 09:35:59.59 ID:O0GHMxPw.net
rust.NETは未だかね?

928 :デフォルトの名無しさん:2017/01/28(土) 09:48:31.29 ID:vlmW/cIj.net
>>926
Windows7に標準装備されてるcsc.exeは役立ったよ
入力支援のないメモ帳でコーディングするのはちょっと面倒だったけど
小物アプリ作ったり、暇つぶしに十分だった

929 :デフォルトの名無しさん:2017/01/28(土) 11:45:36.61 ID:QNTErMWx.net
>>918
確かに10年前もほぼ同じ状況だったろうね。
ただJavaはそこから全く進歩しなかった。それで延命してる。

>>919
MSは何だかんだで技術力は相当あるし、OracleではJavaを発展させられないのも事実だ。
とはいえ、周回遅れでよければ他言語のいいところを採り入れればいいだけ。
これならOracleにも出来る。
今のC#が生き残るとしたらJavaを食らうことだが、
現代のCOBOL化しつつあるJavaはもう食いきれない。
(Javaは向こう30年の需要はあるし、その後他言語に移行するメリットもない)
周回遅れであってもJavaが追いついてくる限りC#は死ぬ運命だ。
(ただし逆に、周回遅れであるうちは死にきらないとも言えるが.。)

>>921
Javaが殿様商売でブラウザから外されてあたふたしていたのは事実だ。
Web系の連中はその辺も含めてJavaは嫌いかもしれないね。
とはいえC#がサーバサイド言語として君臨するとも思えない。
C#にはサーバ用途のサポートがなく、移行される理由がない。
C#の特徴はLINQだけど、それがどこの分野にフィットするかだね。

930 :デフォルトの名無しさん:2017/01/28(土) 11:46:16.89 ID:QNTErMWx.net
>>923
分からないことは考えない、さすがのゆとりだな。
確実に言えるのは、今のままのC#だと生き残る芽がないこと。
もちろんMSも分かっているだろうから、色々試してはいるのだろうけど。

C#はPascalと同じでベンダーが一つだ。よってMSが辞めますといったらいきなり終わる。
C/C++はその点各社各様なので誰も終わりの号令を出せない。
機能的にもあの範囲では完成しているし、今後共、流行はしないが使われ続けるだろう。
ただし開発効率がいいとは誰も思ってないだろうし、その点色々努力は為されるはずだ。

JVM言語群はJavaの発展には寄与するだろう。
ただそれらもJavaが追いついてくれば死ぬ運命にある。もっともこれは幸せな死だが。
で、C#もランタイムが違うだけでほぼJVM言語群と立ち位置が同じだろ、という話。

お前らが「C#は永久に不滅です!」なんて思ってるのなら完全に勘違いだぞ、というだけ。
ただそこまで信者化する理由もよく分からんのだがな。
C#が死ぬ頃にはC#とJavaの差異も今より無くなっているはずで、移行は容易だ。
逆に差異がある状態ならC#が死ぬこともない。

931 :デフォルトの名無しさん:2017/01/28(土) 11:51:01.14 ID:sBhxwabY.net
次スレはふらっとみたいにワッチョイ付けてもらえるとNG楽でありがたい

932 :デフォルトの名無しさん:2017/01/28(土) 12:03:08.93 ID:PWlkAQF7.net
C#の心配はもういいからとりあえず病院行ってこいよ

933 :デフォルトの名無しさん:2017/01/28(土) 12:09:23.15 ID:7tAJxods.net
もう言語の優劣とかこの後とか考えるのやめようよ
好きなの使えばいいじゃん

934 :デフォルトの名無しさん:2017/01/28(土) 12:09:39.25 ID:q55sXuC9.net
>>926
つ SharpDevelop

935 :デフォルトの名無しさん:2017/01/28(土) 12:13:41.44 ID:7tAJxods.net
C#なんてこの後廃れる一方だから気にするんじゃないよ
俺は使いたいから使ってるだけ

コンピューターサイエンスジャンルとかじゃもうpythonに追いつけない
入門者もc#よりpy選んでるらしいし

時代遅れのc++使ってる人も流行ってるからとか他が使えないって理由じゃないでしょ
使いたいから使うでいいよ

936 :デフォルトの名無しさん:2017/01/28(土) 12:29:18.26 ID:op86qfG/.net
>>931
あんたがNGにしやすくするためだけに
2ちゃんねるの特徴を捨て去って全員強制コテつけろというのはひどいエゴだと思う

937 :デフォルトの名無しさん:2017/01/28(土) 12:36:35.24 ID:kK1HMpWm.net
>>929
C#にサーバー用途のサポートがないって、一体こいつはなんのことを言ってるんだ
まさかどっか別のパラレルワールドの住人なのか、それともC#と言う名の別のマイナーな別言語の話をしていたのか

938 :デフォルトの名無しさん:2017/01/28(土) 12:38:31.29 ID:GpK52peC.net
ワッチョイ付けてるスレは増えてきてるし、賛成が多ければ構わないだろ
強制コテも一週間で変わるんだし、IP表示が無ければ反対する真っ当な理由が思いつかない

939 :デフォルトの名無しさん:2017/01/28(土) 12:41:01.92 ID:XpAKmUmz.net
>>936
みんなエゴ丸出し自己中でいくのが2ちゃんねるの特徴よ

940 :デフォルトの名無しさん:2017/01/28(土) 12:41:42.84 ID:rD7WeMm9.net
言語の優劣がどうでもいい訳じゃないけど
比較なら他所のスレでやってくれ
C++ Builder vs C# どっちがいいか教えて
http://echo.2ch.net/test/read.cgi/tech/1459000291/

941 :デフォルトの名無しさん:2017/01/28(土) 12:42:51.15 ID:s1e/PAHl.net
>>938
それぞれ好きなスレ立てて使えばいいんだよ
どの板でもワッチョイ有り無しでスレが分かれているのをよく見るし
逆にその手の議論で荒れだすとどこでもひどい有様になる

942 :デフォルトの名無しさん:2017/01/28(土) 12:50:41.06 ID:op86qfG/.net
>>938
一週間で変わるというのは違うよ
3、4文字目は仕様上永久固定だし、表面上変わる1、2、5〜8文字目も簡単に逆引きできるから実質永久固定だよ

943 :デフォルトの名無しさん:2017/01/28(土) 12:58:20.48 ID:ivgBCMum.net
「SNSじゃあるまいし、なんで2chでわざわざコテハンを強制されなきゃならないのか」は真っ当な理由じゃないのかな…

944 :デフォルトの名無しさん:2017/01/28(土) 13:00:33.35 ID:k4gxsyFf.net
俺もワッチョイスレには書かなくなった

945 :デフォルトの名無しさん:2017/01/28(土) 13:01:40.71 ID:mpmWyhNT.net
明らかに不適切な発言をしない限りはコテハンでも問題ないでしょ

946 :デフォルトの名無しさん:2017/01/28(土) 13:16:35.58 ID:1Ptz3K6u.net
そんなコテハン好きならstackoverflowにでも行けばよろしいやん
なぜ2ちゃんをコテハン化する必要があんの?

947 :デフォルトの名無しさん:2017/01/28(土) 13:29:21.18 ID:yHdW8px1.net
荒しがいるからだろw

948 :デフォルトの名無しさん:2017/01/28(土) 13:33:06.15 ID:WlIlAAzs.net
>>946
よう荒らし
元気か?死ね

949 :デフォルトの名無しさん:2017/01/28(土) 13:40:45.05 ID:op86qfG/.net
自治厨が自分に賛同する奴以外を荒らし扱いしてるだけか

950 :デフォルトの名無しさん:2017/01/28(土) 13:45:46.68 ID:Bb/tAbed.net
荒らしだけならまだいいが、沸点が低いのかプライドが安いのか
煽りにのって相手を始める低脳が多過ぎる
本当に目障りでNGが面倒臭くてワッチョイもやむを得ないと考えてしまうのはこっちが原因

951 :デフォルトの名無しさん:2017/01/28(土) 13:47:14.75 ID:5yCHiIBr.net
c#のスレで他言語の話を連投してる時点で
誰がどう見ても荒らしだと思うが

952 :デフォルトの名無しさん:2017/01/28(土) 13:47:33.37 ID:6ehsSW1c.net
uyのスレ立て荒らし以来変なのが増えたな

953 :デフォルトの名無しさん:2017/01/28(土) 13:48:54.50 ID:ktdFkm2m.net
そんなにNGされたくないのかな?

954 :デフォルトの名無しさん:2017/01/28(土) 13:50:24.20 ID:WlIlAAzs.net
どう見てもそうだろ

955 :デフォルトの名無しさん:2017/01/28(土) 13:53:53.44 ID:ya7J4hzr.net
他言語の話なんてしてないのに荒らし扱いされて死ねって言われたんだけど

956 :デフォルトの名無しさん:2017/01/28(土) 13:55:50.40 ID:JTtKbdRr.net
昔、JavaやVBで暴れてた低脳馬鹿が今はC#で暴れてるふうにしか見えない。

だって言ってることが同じだものw ○○は遅くない!! ○○で十分!!!

957 :デフォルトの名無しさん:2017/01/28(土) 13:58:32.18 ID:yHdW8px1.net
>>948
それは酷すぎ。荒しと変わらんぞ。

958 :デフォルトの名無しさん:2017/01/28(土) 13:59:47.36 ID:vlyo6wmu.net
相手してる生ゴミがうざいって人は連鎖NGができるブラウザに変えるのはどうだろうか?
強制はできないけど…。

959 :デフォルトの名無しさん:2017/01/28(土) 14:06:49.21 ID:ya7J4hzr.net
ワッチョイでNGが便利になるって言う人たちは、なぜかNGwordを工夫したり連鎖NGすることはできないという不思議現象

960 :デフォルトの名無しさん:2017/01/28(土) 14:07:29.61 ID:y9Lbrz1V.net
自分でNGできないような奴がこの板にいる方がどうかしている
無能と自白しているようなもんだろ

961 :デフォルトの名無しさん:2017/01/28(土) 14:11:07.34 ID:XpAKmUmz.net
ごちゃごちゃ言わず、ワッチョイありなし、2つ立てて盛り上がった方を採用すりゃいんだよ

962 :デフォルトの名無しさん:2017/01/28(土) 14:44:57.36 ID:k4gxsyFf.net
スレも無料じゃないんだぞ
節約しないと

963 :デフォルトの名無しさん:2017/01/28(土) 14:48:10.28 ID:s1e/PAHl.net
ほらスレ違いで荒れる
このまま埋めてくれればいいよw
>>961
採用っていうか使われなくなった方が消えたり過疎るだけ

964 :デフォルトの名無しさん:2017/01/28(土) 14:53:25.19 ID:GmC+rupt.net
2chの基本だけど、スレが荒れる(このスレの現状はそこまで行ってないと思うが)と
ギャーギャー騒ぎだす連中の大半は本当はギャーギャー言いたいだけの寂しい奴ではある。

要するに、本当はスレッドの趣旨にそったレスが淡々と続く状況なんか内心望んでない奴、
もっと言えばまともなレスをする能力がない奴に限って文句言ってるのね。
本当はウンコが大好物なウンコ蠅がウンコの周りを周回しながらウンコが臭いって文句言ってる図式だねw

「スレッドの平和」を本当に望んでいる人(俺もその一人)は、逆説的だけど
神経質にスレ違いの話題を咎める連中に与しない方がいいと思うよ。
それは上記の「ウンコ以上にうっとうしいウンコ蠅」をのさばらせることにしかならないからね。

まあそうは言ってもあんまりスレ違いの議論が延々続くのもうっとうしいのも確かだから、
このスレに限らずスレ違いの議論が続いた時に誘導する「何でも議論スレ」みたいのが
あったらいいのかもしれないとも思う。

965 :デフォルトの名無しさん:2017/01/28(土) 15:11:26.13 ID:VlCpYCgG.net
>>930
C#は永久に不滅とか信者とか、存在しない敵を叩くなよ
他の言語でも同等の処理があるLINQを特徴というのは、理解してないからか?

C#もJavaも互換性最優先なので、いつか時代遅れの限界が来て、保守以外では使わない言語になる気もする
死ぬならVB6みたいな長期サポートで亡霊にならないといいんだけど

966 :デフォルトの名無しさん:2017/01/28(土) 15:16:41.71 ID:VlCpYCgG.net
そういえば、llilacはどうなったのかな
LLVM化は結構需要ある気がするんだが

967 :デフォルトの名無しさん:2017/01/28(土) 16:06:14.69 ID:VlGJ2K6H.net
荒れすぎだろ
投票による自治機能があるanontownに来ないか?
登録制だけどメアド不要だから簡単
https://anontown.com/

968 :デフォルトの名無しさん:2017/01/28(土) 16:20:45.03 ID:BREm5bG1.net
>>965
いつかはそうなるだろうけど、今のところはその兆候はないな

969 :デフォルトの名無しさん:2017/01/28(土) 16:41:32.14 ID:ktdFkm2m.net
>>964
2ちゃんにおいて三行以上の長文はマナー違反だぞ

970 :デフォルトの名無しさん:2017/01/28(土) 16:44:14.69 ID:op86qfG/.net
立てにいく

971 :デフォルトの名無しさん:2017/01/28(土) 16:48:51.77 ID:op86qfG/.net
次スレ

C#, C♯, C#相談室 Part92
http://echo.2ch.net/test/read.cgi/tech/1485589613/

972 :デフォルトの名無しさん:2017/01/28(土) 17:45:23.05 ID:JQ2q8v+C.net
>>965
数年前、高速なNVRAM的な物が安価で作れるようになって
コンピュータの構成が大きく変わるなんて話が一部で盛り上がってたけど、
その手のパラダイムシフトが起こらない限り、プログラミング言語の世界でも
そんなガラガラポンは起こらないだろう

973 :デフォルトの名無しさん:2017/01/28(土) 19:05:48.32 ID:oY/klkah.net
一体みんな誰と戦っているんだ

974 :デフォルトの名無しさん:2017/01/28(土) 20:01:47.30 ID:XnHJw37P.net
>>973
オラもそう思う

975 :デフォルトの名無しさん:2017/01/28(土) 20:12:25.54 ID:09upZDzm.net
自分以外は敵というスタンスがトランプ流w

976 :デフォルトの名無しさん:2017/01/28(土) 21:15:25.00 ID:yCMaAzsY.net
C#はマルチプラットフォーム化でサーバーサイドで需要がますます拡大するし
クライアントでもWPFが実用的になってくるんじゃないかな

977 :デフォルトの名無しさん:2017/01/28(土) 21:23:25.46 ID:buSCJS7G.net
胡散臭いCMだな

978 :803:2017/01/29(日) 12:03:54.50 ID:6CKnMYhm.net
>>818
>>819
>>831
64bitでコンパイルする
2GB内に配列を分割する
などいろいろやりましたがメモリオーバーになってしまいどうしても実行できませんでした
結局、元のファイルを分割し、最後に結合する方式にしてやっと通りました
使用メモリ見ると10GB位食ってましたが一応全部実行できています
ご協力ありがとうございます

979 :デフォルトの名無しさん:2017/01/29(日) 12:28:52.14 ID:NqGwYzj0.net
>>978
配列に入れて何がしたいのか最後まで聞けなかったけど、FileStreamで読み書きじゃ駄目だったの?

980 :デフォルトの名無しさん:2017/01/29(日) 12:34:03.49 ID:Be2uFNKC.net
同意見
そんなもん全部メモリに読んだところで
どうせシーケンシャルに処理する以外にやれることがあるとは思えない

981 :803:2017/01/29(日) 13:07:42.19 ID:6CKnMYhm.net
>>979
BinaryWriterで挿入操作ができれば使っていたのですが
以下を見るとできないようなので使いませんでした
http://dobon.net/vb/bbs/log3-46/27592.html

982 :デフォルトの名無しさん:2017/01/29(日) 13:12:51.28 ID:WfZCQfEI.net
一時ファイルに元のファイルの内容と挿入データを書き込む
→元のファイルを削除する
→作成した一時ファイルの名前を元のファイルの名前に書き換える
でできると思うけど自分の好きな方法でうまくいったのならいいんじゃね

983 :803:2017/01/29(日) 13:29:04.76 ID:6CKnMYhm.net
>>982
>一時ファイルに元のファイルの内容と挿入データを書き込む
確かにこのやり方がスマートでした
元のコード流用しようとしたので今のやり方になってしまいました
あらかじめわかっていたら・・・

984 :デフォルトの名無しさん:2017/01/29(日) 17:25:54.20 ID:UOF0Asn0.net
うめ

985 :810:2017/01/29(日) 22:35:39.11 ID:F8/CipCU.net
>>810です。反応が遅れてすいません。現在は、
クラスのインスタンスの複数のプロパティの値を比較して等価かどうか判定しているのですが
データをリストに追加する際、2種類の等価比較法(IEqualityComparer)を用いています

つまり追加対象のデータのうち、
まず弱い比較(少なめのプロパティだけが一致するか比較)で
既存のリストにないデータの「候補」をざっくりピックアップして、
候補たちに少々時間のかかる処理をかけてから(一部プロパティが書き換えられる)、
次に強い比較(多めのプロパティを比較)で候補の中から真に「新しい」ものをリストに追加しています

PosgresやLocalDBといったデータベースでは、こういうことって簡単にできるんでしょうか
ネット検索してみたところ複数のプロパティを比較すること自体は
UNIQUE制約(?)というので出来そうに思ったんですが、
現在やっているような2段構えの比較法は実現可能なんでしょうか?

986 :デフォルトの名無しさん:2017/01/29(日) 22:51:26.56 ID:M0HgmB1M.net
二段構えにする必要はない
比較に必要な全てのカラムセットにuniqueインデックス張りなさい

987 :デフォルトの名無しさん:2017/01/29(日) 22:55:35.08 ID:F8/CipCU.net
>>986
それだと誤判定になりませんか?
追加前のデータと実際に追加するデータでは
一部プロパティ(弱比較ではチェックしないが、強比較ではチェックするプロパティ)の値が異なっているのですが…

988 :デフォルトの名無しさん:2017/01/29(日) 23:02:20.70 ID:faIlAfcC.net
>>987
強比較の値がDB上に固定できるなら、最初から強比較でやっても十分な速度が出ます
取り出してから変化する性質なら、弱比較でDBから取り出し値を生成してからメモリー上で強比較で良いんじゃないの?

989 :デフォルトの名無しさん:2017/01/29(日) 23:27:53.21 ID:F8/CipCU.net
>>988
すいません、「DBから取り出す」という表現が何を指しているのかよくわかりません…

いま思案しているのはデータの集計作業時ではなく登録作業時の話です
各データについて、一部のプロパティの値を確定させるには処理時間がかなり必要になっています

追加登録したいデータたちについて、このプロパティ値をあらかじめすべて確定するのは非常に時間がかかるので
まず弱比較でざっくりと追加可能な候補(プロパティ値を確定しなければならないデータたち)を絞っているのです

今はこんな風にしてます(実際のコードでは日本語変数じゃないです)

候補データリスト = 追加したいデータのリスト.Except(全リスト, new MyClass_WeakComparator()).ToList();

候補データリスト について全プロパティ確定作業; //←重い

全リスト = 全リスト.Union(候補データリスト).ToList();

990 :デフォルトの名無しさん:2017/01/29(日) 23:33:19.34 ID:F8/CipCU.net
>989補足
Union()のところで既定の等値比較子として強比較が使われています

991 :デフォルトの名無しさん:2017/01/29(日) 23:37:15.13 ID:M0HgmB1M.net
>>989
insert into 処理対象テーブル
select 追加後の値を得る計算式
from 処理対象テーブル
where 追加対象を得る条件式

これでいいんじゃないの?
弱比較とかよくわからん言葉遣いはやめた方がいい混乱するから

992 :デフォルトの名無しさん:2017/01/29(日) 23:50:32.58 ID:M0HgmB1M.net
なんか違うなこうか

insert into 全リスト
select 任意の計算式
from 追加データ
where not exists (
select *
from 全リスト
where 簡易な比較条件式)
and 完全な比較条件式

インデックスは簡易な比較に使うカラムだけでいいよ

993 :デフォルトの名無しさん:2017/01/30(月) 00:02:56.22 ID:kb+lR8OL.net
>>992
やはり、条件式を2種類地道に書くしかないんですか…長くてハゲそう

>インデックスは簡易な比較に使うカラムだけでいいよ

アドバイスありがとうございます

994 :デフォルトの名無しさん:2017/01/30(月) 00:07:16.67 ID:YrqXkGEW.net
>>989
それだと「弱比較」で一致してしまった物は全部捨ててしまっているがいいのか?
>>985の書き方だと、「弱比較」で一致しても「強比較」で一致しない物があり、
それは書き込むと読める。
まあこの辺はそちらがやればいい話だが。

995 :デフォルトの名無しさん:2017/01/30(月) 00:14:31.63 ID:GO+RhKVN.net
数千行のSQLとか当たり前だから!!!
そのためのDBMSでしょ!!!

996 :デフォルトの名無しさん:2017/01/30(月) 00:23:01.74 ID:RAZ09caE.net
1回のクエリで完結させようとせず
1次候補抽出クエリ → ローカルで1次候補のプロパティ書き換え → 最終候補抽出&インサートのクエリ
の3段構えにしてもいいんじゃないかと思うけど

997 :デフォルトの名無しさん:2017/01/30(月) 00:33:18.83 ID:kb+lR8OL.net
>>994
>「弱比較」で一致してしまった物は全部捨ててしまっているがいいのか?

詳しくは書けませんが、やりたい動作としてはその動作でOKです
985の説明はちょっと正確ではありませんでした

>>995
大規模なデータベースを触ろうとするのは初めてだったので…すいません

>>996
どっちみち長い比較条件を書かないといけないのは避けられそうにないので
その方法でもよさそうですね

998 :デフォルトの名無しさん:2017/01/30(月) 01:03:13.10 ID:9w4b/GJp.net
>>995
SQLが数千行もあって当たり前なの?異常じゃないの?SQLだよ?

999 :デフォルトの名無しさん:2017/01/30(月) 02:19:40.86 ID:ty17mMxy.net
SQL Serverは問合せ文と制御文を1つのストアドに混在できるので複雑な工夫が容易で、
腕が良ければ数千行の複雑な処理を書くことによって物凄く高速化できることがある

Oracleは混在できないため複雑な処理を書くには手間がかかり、プログラマーがあまり工夫しなくなり、
そのため腕が上がらず、結果としてSQL Serverより遅いシステムが多いらしい

現在のSQL ServerにはOracleと同じスナップショット分離(古い人は「行ロック」って言う)があるが、
2000の頃はなかった(今でもデフォルトでオフになってる)ため、高速な更新処理が必要だったことも腕に関係すると思われる
(スナップショット分離があれば、ダラダラ更新しても他ユーザーの閲覧に迷惑かけない)

1000 :デフォルトの名無しさん:2017/01/30(月) 02:31:32.87 ID:RISpHKLn.net
次スレ

C#, C♯, C#相談室 Part92 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1485589613/

総レス数 1000
273 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★