C#, C♯, C#相談室 Part91at TECH
C#, C♯, C#相談室 Part91 - 暇つぶし2ch2:デフォルトの名無しさん
16/06/29 23:45:41.68 EZjVZgG6.net
誰もたててなかったんでたてました

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

4:デフォルトの名無しさん
16/06/29 23:54:32.05 IF/e/aAD.net
>>2
えっ
C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
スレリンク(tech板)

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

6:デフォルトの名無しさん
16/08/16 01:59:58.67 jP/bzuFf.net
スレッド違いかもしれないですが教えてください。
Google Analitics でトラフィックを確認したところ
↓の様にIP+ポート番号でのアクセスがありました。
通常であれば、YahooやGoogleなどの検索エンジンからの流入だけになるハズが
この様なアクセスがあり警戒しています。これは何か攻撃を受けているのでしょうか?
10.


7:160.XXX.XXX:XXXXX



8:デフォルトの名無しさん
16/08/16 03:13:01.98 ExAjikQC.net
>>6
法律違反かもしれませんが人を殺しても見逃して下さい
ってか
↓で聞けよ脳タリン
スレ立てるまでもない質問はここで 143匹目 [無断転載禁止]©2ch.net
スレリンク(tech板)

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

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

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

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

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

14:デフォルトの名無しさん
16/11/05 21:25:32.22 yfItjWUA.net
ちゃんとインクリメントしろや

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

16:デフォルトの名無しさん
16/11/06 06:47:09.15 yh+qoP1Q.net
荒らし乙

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

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

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

20:デフォルトの名無しさん
16/11/07 02:02:19.36 8BVz5aV9.net
>18
できると思う。なんだったら自分が実験してやって見せてあげよう。
その前に、ちょっと聞きたいことがある。
>TextBoxとかButtonといった単項目コントロールはINotifyPropertyChangedとBindingSourceを使って
>btnExec.Enabled <-> model.IsValid
>txtHoge.ReadOnly <-> model.HogeIsReadOnly
このやり方を具体的に教えてくれ。
これが解れば俺の応用力と理解力をもってすれば君の要求にこたえられると思う。

21:デフォルトの名無しさん
16/11/07 02:15:23.59 8BVz5aV9.net
バインディングって要するに単なる対応付けだけのことじゃないかなー。
A=1 を B=1で起こす。Bに代入されましたよ。何が? 1が。 じゃあAに入れます。
これだけのことだから、、、、
相手がGridだろうが何だろうが簡単にできると思う。
この簡単なことをわかりにくくしたのがWPFではなかろうか?
俺にはなぜこんなに複雑にするのか理解できない。W

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

23:デフォルトの名無しさん
16/11/07 09:43:19.29 1ZmAoJ5f.net
WPF

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

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

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

27:デフォルトの名無しさん
16/11/07 12:44:44.53 9i/eBlRk.net
っていうか、WPFってどんなに取り巻きが誉めそやしても裸の王様だと思うわ。
可読性がとにかく悪い。
Win Formみたいなイベントドリブンならある機能がどこで実装されているか、それを修正するためには
どこを変えればいいか、ほとんどの場合すぐに検討が付くけど、WPFだとこれがイライラの連続の
苦行そのものに堕落しちゃう

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

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

30:デフォルトの名無しさん
16/11/07 14:26:53.51 lMECrzfj.net
民族だよね

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

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

33:デフォルトの名無しさん
16/11/07 15:09:36.70 8BVz5aV9.net
必須とはどういう意味?
WPFは大失敗だから、いま見直ししてると思うな。もう少し頭のいい奴に考えさせる
んじゃないかな。まあすぐに消えるわ。

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

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

36:デフォルトの名無しさん
16/11/07 18:18:24.24 mmljEldz.net
WindowsServerの共有フォルダに対して
一台のPCで複数のセッションを
張りたいのですが
便利なC#でも難しいでしょうか
セッション枯渇をシュミレーション
したいのですが、数十台の
物理的なクライアントを用意するのが
厳しく

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

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

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

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

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

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

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

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

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

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

47:デフォルトの名無しさん
16/11/08 02:27:54.02 KFsAZFmi.net
>>45
WPFのコードを読みやすい思ったことは一度もないわ。
しかし、凄い倒錯だねw
Windows Formの問題はダメな奴でもそれなりに(可読性のないコードを)書けてしまうことだというが、
それを言うならWPFの問題はまともなプログラマが書いても決して可読的にならないことだろう。

48:デフォルトの名無しさん
16/11/08 03:24:51.90 iu8f14dF.net
可読性が悪いっていってるのは XAML のこと?
それともバインドしてるプロパティがどれなのかわからないみたいなこと?
前者ならもうどうしようもないけど、
後者ならWindows Formでも同じ気がするし、
バインドとかCommandとか使わずにイベントドリブンで作る方法もあるよ。

49:デフォルトの名無しさん
16/11/08 03:48:44.45 mUYwed62.net
>47
どっちがダメかといわれても答えようがないが、ダメなものを平気で追加している
と、少しだけはいいものがあったにしてもダメになるよね。
いいものなら直観的にシンプルに説明ができると思う。
C#の属性拡張なんかも、その点ではかなり危ない。でも本体がしっかりしているので
あまり汚れが目立たない。
WPFは最初からダメでしょ。そもそも取り付けないし見通しも見えない。1日ほど
弄ってみたことがあるが、全然わからんかった。何がいいのかさっぱりわからん。
直観的に説明できないようなものって間違ってると思うよ。
こういう場合二つのアプローチがあると思う。
1.訓練してこれに慣れるという方法
2.何がダメなのか何が問題なのか発見するという方法
後者を採用する人にはこれはある意味チャンスだと思う。まあでもこれを使いこなせる
ってことは「頭いい」って証明にはなると思うから、1.のアプローチも間違い
じゃない。W

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

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

52:デフォルトの名無しさん
16/11/08 07:31:09.86 TXhVVjP1.net
雑魚排除といえば
VBを残し続ける理由が分からない
VB作る人的リソースを
XAML強化とかに回せば良いのに

53:デフォルトの名無しさん
16/11/08 07:36:07.95 TXhVVjP1.net
WPFはFormアプリが
健在だから使う機会がない
MSの下位互換の精神は悪いと
言わないけど、もう良いんじゃねって
技術が延々と残ってるから
嫌になる

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

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

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

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

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

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

60:デフォルトの名無しさん
16/11/08 11:20:31.78 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();
大事なところを隠蔽されるのはダメだよ。
プロパティを並べるのに<>で囲む必要なんてどこにあるんだよ。
という感じ。文書として保存するときなら<>つけたらいいではない?
でもエディットするときにこんなもんは不要だ。

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

62:デフォルトの名無しさん
16/11/08 11:43:12.95 mUYwed62.net
>47
XAMLはNetをXMLで表現するタグだけのことだろ。
それは別にそれでいいんでないか? 整理できるし。
問題はWPFっていう糞のIDEだな。見通しがきかない保存文書構造のXMLを使って
なんでプログラム組まなきゃなんないのってこと。本末転倒だろ。W

63:デフォルトの名無しさん
16/11/08 12:00:35.75 mUYwed62.net
>コントロールの外観をいじりたいとかって話になると、wpfのほうがずっと楽だろ
>Formsでアニメーショなどどうやってヤるんだよ
 楽なのは抽象度が高くなっていて、逆に言えば細かい処理はできないってことだね。
FormでできないことがWPFでできるわけじゃなくて、それなりのコントロールを用意して
楽にしているだけ。楽なコントロールが楽になってるだけ。そういうのを適宜使うって
のはありだと思うよ。アニメーションとか、、、、アニメーションとかほかにどんなもの
がある? でも.netになくてWPFだけにあるものなんてある?

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

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

66:デフォルトの名無しさん
16/11/08 14:50:51.38 CGI+nyHh.net
男だったのか

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

68:デフォルトの名無しさん
16/11/08 16:42:41.52 TdC6P0sc.net
newも、ソースの見通しとも、xmlnsについてもWinFormsではデザイナが自動生成するコードだからほとんど見ないし、自動生成コードよりはXamlのほうが優れてるだろ
WPFの問題はバインディングとかMVVMとかがなかなか難しいし、情報資産が少ないことにある気がする
少なくとも、外観やコントロールの機能いじったり、バインディングを活用するなら悪くはない

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

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

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

72:デフォルトの名無しさん
16/11/08 18:52:03.52 WSlpNxFl.net
もうザマリンでAndorido準拠の
プログラム作れば良いよ
WindowsPhoneのシェア0.3%で
WPFの先も無さそうだし

73:デフォルトの名無しさん
16/11/08 18:56:36.28 WSlpNxFl.net
FormアプリとVBは
Windows7までにしておけば良いのに
共に役目は終えたし
MSはリソースを少し集中しようよ
モバイルじゃシェア失ってるんだし

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

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

76:デフォルトの名無しさん
16/11/08 20:51:54.08 360M0HJP.net
>>55
すまん。完全にごっちゃになってた。
>>59
その例だとXAMLにx:Name="textBox1"が抜けてるぞ。
XAMLでの<TextBox>タグの宣言こそが、TextBox textbox1 = new TextBox();
に相当するってだけで、別に隠しちゃいない。

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

78:デフォルトの名無しさん
16/11/08 21:15:33.89 360M0HJP.net
>>76
あるポイント数を超えるとまったく実用じゃないくらい遅くなるね。
ポイント数が多くてスピードが要求される場合は、DirectXを使って高速描画出来る有償のコントロールを買うしか無さそう。
数年前の資料だけど、各種チャートコントロールの性能比較
WPF Charting Performance Comparisons (the Battle Continues)
URLリンク(blog.scottlogic.com)

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

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

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

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

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

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

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

86:デフォルトの名無しさん
16/11/09 02:57:40.95 pYqjQFAT.net
>に相当するってだけで、別に隠しちゃいない。
隠すつもりがなくても視認性が悪いから隠れるんだな。これが、、
WPFの肝は
1.UI部分は XAML で記述
2.実行コードは C# または VB
3.グラフィックス描画は DirectX
4.データドリブン的なものをデータバインディングでやる
1.と4.が手抜きでいい加減だから全然だめ。
1が駄目だから2を書こうにもどう書いたらいいのかわからないというジレンマ
4がダメだから遅いし使いにくいし使い物にならないしトータル的には失望を加速
している。
料理の材料はまあこんなものでいいというか素材は素晴らしい。しかし集めて料理
するんならもっと一つ一つを丁寧に作りこまなくてはだめだろ。これじゃ味の
バランスが悪くて料理になってない。もうひと手間かけるのができないんだよな。
最後までやりきることができない。思い付きと能書きは立派。W

87:デフォルトの名無しさん
16/11/09 03:24:51.72 pYqjQFAT.net
<Window x:Class="SliderTest.Window1"
xmlns="URLリンク(schemas.microsoft.com)
xmlns:x="URLリンク(schemas.microsoft.com)
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}"/>

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

89:デフォルトの名無しさん
16/11/09 04:26:59.85 pYqjQFAT.net
プロパティ値の継承に見る手抜き
 プロパティ値が割り当てられていない子要素がある場合、プロパティ値の設定がある
最も近い親要素の値を割り当てる。W 
まあこういう問題が発生するのも、手抜きが手抜きを生むことの良い例だ。ボタンコン
トロールひとつを表すのに手近な要素をかき集めて作りあげるという手抜きをしたこと
で、イベントがうまく取れないという問題が発生した。そこでイベントルーティング
という新たな手抜き概念を導出してしかもプロパティ継承という誤魔化しまでしなくて
はならなくなった。
 トンネル、バブル、ダイレクト イベント一つにこんだけ複雑なことをする羽目にな
ったのも、最初に行ったわずかな手抜きが原因なのだ。

90:デフォルトの名無しさん
16/11/09 04:29:27.99 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に記述したりはしない

91:デフォルトの名無しさん
16/11/09 04:36:52.64 pYqjQFAT.net
データバインディングに見る手抜き
「WPF のデータバインディングはこれだけで 1 冊の本が書けるほど面倒です。」という
関係者。たったこれだけで関係者が本を書いて10年は食える飯のタネになる。W
WPFにおけるデータバインディングの重要性と可能性はこの限りにおいては非常に成功
している。テーマとしては食いつきがいい。「これさえマスターすれば、あとは
データを流し込むだけで自動的に表示してくれる」
魅力的なのだ。
食いつきがよくて、複雑怪奇な場合には関係者は情報を小出しにすればかなり長期に
わたってよい飯の種になる。

92:デフォルトの名無しさん
16/11/09 04:37:26.02 pYqjQFAT.net
さあ寝よう。おやすみ

93:デフォルトの名無しさん
16/11/09 07:27:40.65 ccPtaul1.net
>>91
そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな?
x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな
つか、アンタの言い分はイソップ童話の酸っぱいブドウそのものです

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

95:デフォルトの名無しさん
16/11/09 09:17:12.31 KnEUpDo2.net
XAMLに親を……

96:デフォルトの名無しさん
16/11/09 09:17:36.57 SotHgA9V.net
>>87
KeyDownってイベントは別にあるぞ
>>88
もはや言いがかりのレベルだな

97:デフォルトの名無しさん
16/11/09 12:09:48.16 pYqjQFAT.net
>89
どんな糞言語でも本質をよく見極めてセンス良く使う人はいるものだよ。
しかしそこに到達するまでにどんだけ時間がかかるというのだ。俺なんかわけわからん
から右往左往するばかりだよ。
せめてBlendをまともに作ってくれれば、それなりにUIの問題は解決するのにな。
Blendも糞だろ。W 最近のは使ってないからわからんが、、、

98:デフォルトの名無しさん
16/11/09 12:10:37.11 pYqjQFAT.net
>そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな?
>x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな
今度はUWPかよ。小出しにするなー。つまりWPFは糞だったと認めるんだな。W

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

100:デフォルトの名無しさん
16/11/09 13:18:01.59 imHVERPt.net
で?。W

101:デフォルトの名無しさん
16/11/09 13:24:22.96 13V/HCY3.net
またストアアプリみたいにいつ梯子外されるかわからないUWPに手を出す人は
よっぽどお勉強好きなんだろうなw
仕事ならしょうがないけど自分の時間使って勉強する気にはなれんわ

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

103:デフォルトの名無しさん
16/11/09 16:05:04.67 L45XBX69.net
>>87
コードビハインドにイベント書くことはおすすめされないし、そもそもPreviewKeyDownってFunctionキーのイベントを受け取るためのイベントじゃないぞ?
WinFormsにも同じ名前のイベントあったじゃん
WPF以前の根本的な能力がかけてるんじゃね?

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

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

106:デフォルトの名無しさん
16/11/09 20:02:19.12 xK7OwzcU.net
WPFやってないんだが、そもそもXAMLは人間が見る必要のあるものなのか?
VSのデザイナやBlendがダメすぎるのか?
フォームでさえ、.Designerの中身なんてほぼ見る事ないのに
人間が生のXAML見たり編集したりしないとダメならそら普及しないなと思うが

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

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

109:デフォルトの名無しさん
16/11/09 21:24:36.59 WmFTPhhE.net
普通、設定ファイルを、人が直接いじったりしない
Godot(ゴドー)などのゲームエンジンでは、IDEの右側にある、
インスペクタービューで、プロパティなど設定する
オブジェクト同士の衝突判定・イベント通知なども、同じ

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

111:デフォルトの名無しさん
16/11/09 23:41:49.58 7n7DDFeG.net
つうかここってC#+Windowsフォームしかやってないやつばかりなの?
XAMLはそもそもWPFだけのもんじゃないんだが。
Silverlightにも使われていたしUWPにも使われてる。
そしてC#だけじゃなくVBにも使われてる。
つまり、言語や�


112:Nラスライブラリなどから分離できるものは分離しようっつーのがXAMLでしょ。 C#/VBとXAMLの関係はJavaScriptとHTMLの関係と似てる。 XAMLを批判してる奴ってほんとにXAMLを理解してんの?



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

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

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

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

117:デフォルトの名無しさん
16/11/10 01:52:09.10 aHkFnxeg.net
>102
ん?
それは考え方に矛盾があるだろ。UIを切り離すのが目的�


118:ネら、切り口がシンプルで 綺麗なほうがいい。 例えばスクロールバーと連動して値を表示する場合なんてUI内でまとめて片づけて しまったほうがいい。 ほしいの値だけで、処理側からしたらくだらないイベントなんて見えないほうがいい。 そっちでまとめてやってほしい。



119:デフォルトの名無しさん
16/11/10 01:52:28.80 aHkFnxeg.net
>XAMLを批判してる奴ってほんとにXAMLを理解してんの?
理解できないなから文句を言ってるんだよ。機械が簡単に理解できるからって
人間にそれを押しつけるのは間違い。
XAMLってのは単なるテキスト文書じゃない。プログラム全体から複雑なUIを切り離して
表現するという目的がある。複雑なUIは手打ちで入力するようなものじゃない。
UI={動作、表現、パラメータ、、、、}+窓口
プログラム=>窓口
UIの窓口さんにいえば{、、、}なかはわからなくても大体処理できる。そういう関係
なわけよ。窓口が美人でテキパキしてないとダメだろ。
時々あるんだが、大企業の開発部に電話してるのに田舎のおばちゃんみたいなのが
窓口で
「はあ、田中さんは今日はおらんよ、どっかに出張するからって鞄を下げて出て行った
よ」
みたいな感じな。
XAMLの美人の窓口さんはどこ? ねえ

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

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

122:デフォルトの名無しさん
16/11/10 02:20:15.15 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!!て
書いたほうがなんぼかまし。
あれだ、パラダイムシフトだなんだって言ってるが、シフトダウンだよな。

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

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

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

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

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

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

129:デフォルトの名無しさん
16/11/10 03:08:35.71 zCCtWAZL.net
>>115,116
?例が適当すぎて言いたいことがわからん
スクロールバーと連動して値を表示するのはバインディングで済むからUIのイベントなんて使わないだろ
UIを切り離すんじゃなくて、VとVMを切り離すのが目的

130:デフォルトの名無しさん
16/11/10 03:17:22.84 zCCtWAZL.net
>>119
バインディングする意味のないソースを出されても
さっき言ったスクロールバーとその値を表示するテキストボックスの例を見ればいいんじゃない?
バインディングを使わないとイベントを利用してそれぞれの値を相互に書き換える必要があって面倒とかそういうの

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

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

133:デフォルトの名無しさん
16/11/10 07:51:19.71 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
エラーもでんし。

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

135:デフォルトの名無しさん
16/11/10 08:11:55.57 aHkFnxeg.net
this.DataContext =this;
 そうだこれがぬけてると検索場所が特定できんのだ。
私は私ですから私を検索してくだされ。
えっ、これでもやっぱりだめ。

136:デフォルトの名無しさん
16/11/10 08:24:57.67 o8sMendu.net
彼の言うXamlの欠点とやらは、マークアップ言語ならどれでも持っているもので
xamlはhtmlと比べたら格段に進歩した代物だ
まあこんなケチを付けているんだから
htmlなんて触ったことない化石プログラマーなんだろうね

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

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

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

140:デフォルトの名無しさん
16/11/10 10:15:41.71 aHkFnxeg.net
物事を識別するには名前が肝心である。名前は適切で少ない方がいい。
大本の識別機構の混乱
XAMLコード中でIDictionaryインターフェイスを実装する要素に子要素を追加する際には
x:Key 属性の指定が必須
 ただし、Styleクラス(System.Windows名前空間)のように、クラスにDictionaryKeyPropertyAttributeを付与して、(x:Key 属性の)代替となるプロパティ(Styleクラスの場合はTargetTypeプロパティ)を設定しているクラスの場合には、x:Key属性 を省略可能。
Styleクラスでは、x:Key 属性の代替としてTargetTypeプロパティを利用している。
高々リソースに名前振るだけで、、、ぷっ。

141:デフォルトの名無しさん
16/11/10 10:16:51.48 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 !

142:デフォルトの名無しさん
16/11/10 10:29:24.03 aHkFnxeg.net
@ITデータバインディングを理解する。
URLリンク(www.atmarkit.co.jp)
1ページ何を言ってるのか全然わからん。突っ込みどころが多すぎて、突っ込む気にもならん。
それとも誤字脱字が多いのかな?なんか説明が間違ってるだろ。論理がつながっていない。
うちのばあちゃんにでもわかるように説明してみろや。
{Binding X} という書き方は


143:、{Binding Path=X} と同じ意味である。 藁、「同じ意味である」って、そんなら最初から一つに絞っておけよ。 {Binding Path=X} いらんだろ。 BindingにPath以外のプロパティはないんだろ!! 最初からBindingでいいだろ パスもプロパティもいらんわ。



144:デフォルトの名無しさん
16/11/10 10:43:36.65 aHkFnxeg.net
 外部リソースを取り込むには、<ResourceDictionary>要素にSource属性を付ける
<Window.Resources>
<ResourceDictionary Source="Styles.xaml"/>
</Window.Resources>
includeにしろよな。常識だろ。

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

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

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

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

149:デフォルトの名無しさん
16/11/10 12:59:35.96 otGHoxmh.net
>>142
.NET1.1の頃からそんなのあったのか
まったく知らなかったw
しかし、IMessageFilterっていうかApplication.AddMessageFilterって結構恐ろしい仕組みだなw
NativeWindowの方が安全な気がするんだけど

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

151:デフォルトの名無しさん
16/11/10 14:50:01.95 zCCtWAZL.net
>>139
結局、言われた指摘には何も返せず自分が理解できないのに適当に騒いでるだけじゃん
C言語とかやったら配列があればポインタいらないじゃん!とか騒いでそう
省略可能な記述についても、html5とかの仕様を見たらhtmlとかbodyとかのタグいらないじゃん!とか叫びそう
URLリンク(qiita.com)

152:デフォルトの名無しさん
16/11/10 15:34:39.47 aHkFnxeg.net
グダグダ言わずに、本質はどういうことかを捉えてどう説明できるかが問題やな。
Bindingの本質はというと要するにXamlのText="{Binding pName}" が意味するのは
var bind = new Binding("pName") { Source = per };
  text1.SetBinding(TextBox.TextProperty, bind);
この二つの処理やないか。こいつを省略形で書いてるだけのことやろ。
チュートリアルでちゃんとこう言うように書けよな。そしたら3秒でわかるのに。
原辰。

153:デフォルトの名無しさん
16/11/10 15:45:02.09 aHkFnxeg.net
>143
1pが意味不明なので2pは見てなかった。
しかもインテリセンスが糞やからPath以外のプロパティがあるのかないのかわからん。
あくまでも
「BindingのプロパティはPath以外に無い」という前提、仮説の下でケチつけてる
わけであって、それはチャンと明記している。W
一遍にりかいするんは難しい。
OneWay ソースからターゲットへの一方通行の同期になります。
TwoWay ソースとターゲットの双方向の同期になります。
OneWayToSource ターゲットからソースへの一方通行の同期になります。
OneTime ソースからターゲットへ初回の一度だけ同期されます。
モードがあるじゃないか。ならインテリセンス効かせろや。

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

155:デフォルトの名無しさん
16/11/10 16:05:52.04 aHkFnxeg.net
内容が変更したときにはどうすんの?
 INotifyPropertyChangedインターフェースを実装
 DependencyPropertyにしてしまう (インスタンスを生成したスレッドのみに限定される)
二つの方法がある。
PropertyChanged(this, new PropertyChangedEventArgs("pName”));
プロパティの変更でこれをやってやればいい。
なんやねん。結局イベント処理は書かなだめやないか? どんだけのメリットがあるか。W

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

157:デフォルトの名無しさん
16/11/10 16:33:44.59 aHkFnxeg.net
結局普及しないのは、関係者がちゃんと理解できていないのではないかな。
WEBを見たら、いろいろと説明が書いてるがどれも分りにくい。
C#でもVBでも1日も触っていたら、そこそこ使えるようになる。うろ覚えでも
プログラムはできる。
 WPFは説明が中途半端なので肝の部分がはっきりしない。
バインディングするんならイベントもちゃんとバインディングしないとだめだわ。
バインディングを間違っていても反応なしだしな。W エラーすらチェックできてない。
中途半端。

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

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

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

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

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

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

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

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

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

167:デフォルトの名無しさん
16/11/10 23:07:13.32 pEVMYV3p.net
IEに、そういうプラグインがあるのか、探してみれば?
IEは、オープンソース(OSS)じゃないから、改造するのは難しい。
OSSは、Firefox, Chromium, Safari
Atom, Visual Studio Code, Electron は、Chromiumを使っている

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

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

170:デフォルトの名無しさん
16/11/11 07:05:40.26 KgVthd+h.net
MVVMのICommandの使い方
ICommandを実装する理由はなんだ?
 URLリンク(www.atmarkit.co.jp)
これは読んでいくとよくまとまっているが、これだけでは難しすぎて
何を言ってるんかわからん。まるでMS。
そもそもICommandってなーに?
1. 処理の実行可否を状態として持つ、また状態の変更を通知
2. XAMLからメソッドの呼び出しはコードビハインドしか利用できないが、ICommandはバインドが利用でき別クラス(ViewModel)の処理を呼び出すことができる
中身は
public interface ICommand
{
void Execute(object parameter);
bool CanExecute(object parameter);
event EventHandler CanExecuteChanged;
}

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

172:デフォルトの名無しさん
16/11/11 07:08:21.41 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();}
}

173:デフォルトの名無しさん
16/11/11 07:09:49.57 KgVthd+h.net
肝:DelegateCommandをプロパティとして公開
  コンストラクタの中でインスタンス化
() => Result = "登録OK"
これはなんやねん? このアクションの書き方がわからんなーという人。
ラムダ式、、、初めて聞いた?

174:デフォルトの名無しさん
16/11/11 07:13:06.18 KgVthd+h.net
>君はWPFどころかC#もよく理解できてないみたいだから、C#入門書からスタートするのがおすすめ
C#の方が難しいわ。まあでも何とか動かせる。WPFもBindingだけわかったので何とか
使えるレベルにはなったな。
問題はMVVMパターンだな。
MVVMじゃなくてM-VM-VかV-VM-Mでないとだめだよな。VVMMの方がいいと思う。

175:デフォルトの名無しさん
16/11/11 07:23:51.87 KgVthd+h.net
WPF攻略方法
1.Bindingの理解
2.「優れた例」でVVMM(またはMVVM)を理解する こっちはまあボチボチでもOK
MSの文書は酷いがIT-PROの文書は体裁としてはよくまとまってはいるが説明が難しい。
 第一に例が悪い。
 第二に例にセンスがない。
 第三に例の説明が下手。
単純化したシンプルな例で示さないと「俺はこんなにすごいんだぞ」みたいな
複雑な例では分からん。

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

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

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

179:デフォルトの名無しさん
16/11/11 09:43:11.94 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 );

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

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

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

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

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

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

186:デフォルトの名無しさん
16/11/11 19:58:04.56 JZCe9Y2P.net
ラムダ厨うぜー

187:デフォルトの名無しさん
16/11/11 20:14:46.10 tUVkv4AT.net
おはようラムダ君

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

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

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

191:デフォルトの名無しさん
16/11/11 20:49:06.76 nfVHRfzR.net
それは良かった

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

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

194:デフォルトの名無しさん
16/11/12 20:58:13.68 RWma0It4.net
古いWindowsマシンでAndoroid開発しようとすると
まずエミュレータが動かない
WindowsPhoneが頑張ってくれてたら
引き続きVisualStudioで開発できたのに
どうしてここまで差を付けられたのか
MSってエリート揃いじゃないのかな?

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

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

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

198:デフォルトの名無しさん
16/11/13 02:55:57.86 +xp6lf8w.net
WPFって学習コストが高い(少なくとも俺にとっては)から
苦労して覚えたものを擁護したくなる気持ちはわからんでもないけど、
10年経ってもほとんど普及してないのにはやっぱりそれなりに理由があると思う。
パフォーマンスの問題は目をつぶるとしても、個人的には可読的じゃないのが大きいと思うんだよね。
書いてるときはいいんだけど、自分が書いたものであっても後から見るとどこで何をやってるのか
ぱっと見て分からないし見当がつかない。
MVVM(正直これはあんまり理解してないんで誤解してるかもしれんが)にしてもそうだけど、
理念的に綺麗なのはわかるけど何か「これじゃない」感が強いというか、美しい理想の実現のための
コストが大きすぎるというか...

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

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

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

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

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

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

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

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

207:デフォルトの名無しさん
16/11/13 12:15:54.37 IKKUDTFw.net
>>202
慣れてないだけだと思う
>>194
MVVMは高コストって主張も分かる。
単純な案件にはオーバースペックだし、Formsでも十分。

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

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

210:デフォルトの名無しさん
16/11/13 19:32:23.00 wHFHc9ra.net
フロントエンドプロセッサ

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

212:デフォルトの名無しさん
16/11/13 22:40:30.15 67al7/78.net
レイヤーが違うと思うけど。
難しいから全部フラットで良いよ。

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

214:デフォルトの名無しさん
16/11/14 19:10:02.84 xSfNgSMs.net
>>209
お好きな方で。
今なら
{["key"] = "value"}
の方が解りやすいかも。

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

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

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

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

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

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

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

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

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

224:デフォルトの名無しさん
16/11/15 12:05:59.99 Sy8HLWAK.net
>>219
残念なやつ

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

226:デフォルトの名無しさん
16/11/15 12:39:21.59 Sy8HLWAK.net
>>221
顔真っ赤www

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

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

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

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

231:デフォルトの名無しさん
16/11/16 10:35:34.62 hL8zHUS9.net
中はやめてー

232:デフォルトの名無しさん
16/11/18 23:01:26.36 +QqWh5ch.net
変数aがnullならbもnullにして、
aがnullでないならaを用いてmyfuncの計算結果をbに入れたいのですが、
var b = (a == null) ? null: myfunc(a);
こんなふうにしたのですが、もっとスッキリ書けそうな気がするのですが、
思い付きません。
もっとスッキリ書けますか?

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

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

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

236:デフォルトの名無しさん
16/11/19 03:57:45.25 gmVZjmNi.net
myfunc(null)がnullを返すようにすれば
b = myfunc(a)で済むんだがなぁ
まあきっとそうではない何かをする関数なんだろうな
おれならaやbがnullである事に特別な意味があったり、myfuncを呼ばない事に特別な意味があるなら
ちゃんとif文書くけどな

237:デフォルトの名無しさん
16/11/19 10:29:56.40 0bgRfGhz.net
>>229
string myfunc(string a){
 if(a==null)
  return null;
を追加したらスッキリしました!

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

239:デフォルトの名無しさん
16/11/19 11:15:09.05 ZfUdGYAZ.net
スッキリワロタ
どうしてもならジェネリックの拡張メソッドを作っとく手もあったね。

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

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

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

243:デフォルトの名無しさん
16/11/19 23:03:49.26 0bgRfGhz.net
>>236
なんで?

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

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

246:デフォルトの名無しさん
16/11/20 00:30:59.63 ckE9xegj.net
>>241
何という頭の悪さ。
nullを禁止したらnullを返すことで表現していたことを
もっと面倒な別の方法で呼び出し側に伝達する必要が生じるんだけど。
何でこんな簡単なことが分からないのかね。

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

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

249:デフォルトの名無しさん
16/11/20 01:27:12.98 K2ib4r+U.net
>>242
勉強不足

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

251:デフォルトの名無しさん
16/11/20 02:13:42.33 ckE9xegj.net
期待するだけ無駄。
馬鹿じゃなきゃちょっと考えればわかるはずだが、
必ず既定値で初期化されるようにするにしろ初期化なしの変数宣言ができないようにするにしろ、
nullを許容することの弊害とは別のより大きい弊害や利便性の低下を生むだけ。
だいたい、nullを許容することの弊害なんて大半はそれを主張してる奴が勘違いしてるだけだ

252:デフォルトの名無しさん
16/11/20 02:22:5


253:9.08 ID:9PtzIqGH.net



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

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

256:デフォルトの名無しさん
16/11/20 07:22:58.86 pCJ1qvOZ.net
>>250
>>241と同じ

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

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

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

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

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

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

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

264:デフォルトの名無しさん
16/11/20 09:42:15.04 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) ...
...

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

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

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

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

269:デフォルトの名無しさん
16/11/20 10:30:00.58 X8MMRSH3.net
宗教としてC#にアイデンティティを代替している連中(貧乏人ほどオリンピックが好きなのと同じ)なのに
仕様を否定したって聞き入れる訳ないじゃん
ヘジにアントニー・ホーアの言葉をどう考えるか聞いた奴がいるが
なんて答えたか知らないんだろうし
(あるいは、C#に間違いがあってはならないから目をつぶっているか、そもそも英語は読めないか)

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

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

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

273:デフォルトの名無しさん
16/11/20 10:38:09.66 Y223jndk.net
>>262
> チェックなしでValueにアクセスしたら例外を投げる
ならはじめから例外でいいだろ
> Errorableという名前が見えることによってチェックを忘れるということを回避できる
マジで言ってるの?
チェックする箇所には変数名しか見えないんだが...
まあ IDE でいちいち型を確認すればいいんだろうけど、エラーチェック忘れるような奴はそう言う型の確認も忘れるわけで...
> チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている
たぶん思い付きで書いてるんだろうけど例えば Errorable<string> の
> if(s.AuthError) ...
って何を返すの?
自作のクラスで新しいエラー状態をチェックしたい時はどうするの?
いちいち Errorable を派生させたりしたらチェック方法が統一できないしどうするつもり?

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

275:デフォルトの名無しさん
16/11/20 10:48:41.71 NgPgW0rj.net
>>249
最近は若くても「老害」みたいな人が少なくないよね。
新しい事を覚える・勉強するのを嫌がる。
現状のやり方を変えるのを恐れる。
現状維持大好き。
良いか悪いは別問題だけど。

276:デフォルトの名無しさん
16/11/20 10:58:38.68 wbF3tHCA.net
>>268
初めから例外を投げるではチェックのためにtryを書かなければならない
パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切
変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い
エラーというのは幾つかの典型的なエラーに分類可能
例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
新しいエラーを定義する必要はない

277:デフォルトの名無しさん
16/11/20 11:34:52.66 Y223jndk.net
>>271
> パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切
まあ、これはいいとして
> 変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い
フィールドとかには使えないってことでいいかな?
> エラーというのは幾つかの典型的なエラーに分類可能
へー、すごいね w
> 例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
で、Errorable<string> の AuthError ってなにさ
> 新しいエラーを定義する必要はない
自称エスパーのお前はそうなんだろうね w

278:デフォルトの名無しさん
16/11/20 11:43:29.92 lYnhz1xv.net
null非許容型が追加されたら便利だなーとは思う
「nullをなくせ」という意見にはまったく賛同できないが
エラー許容型は、エラーの種類を enum で返すプロパティを付けたものをよく作る
(エラー種類ごとにプロパティ作るようなことはしない)
でも、nullで済む場合も多いんだよね

279:デフォルトの名無しさん
16/11/20 11:43:53.85 kKwT4/wt.net
>>272
はぁ
今は返り値の話をしているんだろ
そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか
すごいっていうか、常識
人間がどんだけエラー処理と付き合ってきたと思ってるんだ?
AuthErrorは認証、認可のエラー
2chの書き込みだから横着して省略したがこれらは普通は別にする
nullを見ただけでエラー内容がわかる歴史上類を見ないほどに強力なエスパーの君にはかなわないよ
プログラマにしておくのは勿体無いから新しい宗教でも立ち上げることをお勧めするよ

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

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

282:デフォルトの名無しさん
16/11/20 11:56:23.29 Y223jndk.net
>>274
> そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか
え?
オレオレスタイルをどや顔で言われても困るんだが w
> これらは普通は別にする
結局 Errorable<string> と Errorable<database> は別に作るってことかよ...
チェック方法が統一出来るとかほざいてたのにね w

283:デフォルトの名無しさん
16/11/20 12:10:20.24 kKwT4/wt.net
>>277
はぁ
オレオレスタイルではなくオブジェクト指向の基本
別に作らないよ
君は超人的エスパーだから何をどう考えてそういう答えにたどり着いたのか常人にはちょっと理解しがたいんだ
これからはそのことを考慮して常人にもわかるように丁寧に意見して欲しい

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

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

286:デフォルトの名無しさん
16/11/20 12:30:03.99 Y223jndk.net
>>278
オレオレスタイルは宗教だろうから教祖さんと争う気はないよ w
で、
> これらは普通は別にする
の意味を説明してみ

287:デフォルトの名無しさん
16/11/20 12:30:42.62 Y223jndk.net
>>280
お前がな w

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

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

290:デフォルトの名無しさん
16/11/20 12:43:24.41 h3zFIm5r.net
何度も言うけどnullを追放したって問題Aが別の問題Bに置き換わるだけ。
そして普通に考えれば問題Bの悪質性はAより大きくなる場合の方が多いだろう。
nullガーって吠えてる馬鹿って何でこの程度のことが分からんかね。
(a) 値がnullであることで問題が顕在化した
からといって
(b) nullの存在が問題の原因
であるとは限らない。
この程度のことも分からない奴はプログラマ辞めろよ本当

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

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

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

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

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

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

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

298:デフォルトの名無しさん
16/11/20 18:54:25.34 34y1pXq0.net
>>287
エラーと言ってもいろんなレイヤーでいろんな事があるわけで
結論としてはケースバイケースでどれが一番とか決めれない
これを理解できずに単一の方法ですべてやろうとするからおかしな話になるわけで
まあ、宗教論はその宗旨に納得できる点がある場合もあるけど、他の宗教を認めないのがなぁ

299:デフォルトの名無しさん
16/11/20 19:03:56.76 eCa9a5kv.net
例外を投げないパターンはここらへんを読むといいんじゃない?
一般的とは行かなくても、オレオレではない
URLリンク(faithandbrave.hateblo.jp)
URLリンク(ufcpp.net)
URLリンク(www.open-std.org)

300:デフォルトの名無しさん
16/11/20 19:18:59.75 V9rEuhsa.net
nullable-likeの提案は良いね

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

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

303:デフォルトの名無しさん
16/11/20 19:46:59.71 ELwGw4ow.net
null排除派はごく一部いるけど市民権を得てない
メリットが薄いから
3 == i と言う書き方みたいにこだわる人だけこだわる

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

305:デフォルトの名無しさん
16/11/20 20:32:56.89 ixFUSBgZ.net
信者にそんな話しても無駄

306:デフォルトの名無しさん
16/11/20 20:42:02.87 RSV7nlYW.net
null あってもいいって言ってるのはなきゃなでも構わない人が大半じゃないかと思う。
Swift が非許容でそれを使う必要があるなら、それの流儀でなんの苦もなく対応しそう。
そんなことに拘ってるのはオレオレな一部の人だけじゃねーのかなぁ。。

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

308:デフォルトの名無しさん
16/11/20 22:12:22.04 eCa9a5kv.net
>>296
それを言い出すとなにも言語仕様がいじれなくなっちゃう
Javaとかは進化が停滞して今必死に挽回してるし
もちろん、実装や文法の複雑さと利点を天秤にかけるのは常にしてるので、Roslynのissueとかを見てみると良いよ。
もっと変なのもたくさんある
URLリンク(qiita.com)
を見るとわかるが、実際に各言語がnull安全に取り組んでる

309:デフォルトの名無しさん
16/11/20 23:25:18.49 OrHcogku.net
null安全ねえw
そういう発想をする人ってよくいう「例外を握りつぶす」コードを書いちゃうタイプなんだろうなとは思うわ。
言いたいことは理解できるが全く同意はできない。
それはただの錯誤だからな。
安全どころか、nullであれば容易に発見できたバグをわざわざ発見困難にするだけ。
何がうれしいんだそんなの。

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

311:デフォルトの名無しさん
16/11/21 01:11:30.92 fZvEw43o.net
F#にもoptionあるけど死ぬ程便利だわw
先ず、エラーを握り潰す事が出来ない。
ドキュメントを読む必要が無い。
monadとして扱うと、一々ifで分岐書く手間がなくなる。
eitherまで踏み込めば、検査例外云々で議論する事自体が馬鹿らしくなる。
面倒くさいけどねw
C#のint?を使った事ある人には解ると思う。
コンパイラに事前チェックをしてもらえる有り難みが。
機械に解る単純作業?に対して、人間が一々苦労する馬鹿らしさが。

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

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

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

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

316:デフォルトの名無しさん
16/11/21 11:12:26.42 Ka0MFQDU.net
ん?Optional?VBの話?

317:デフォルトの名無しさん
16/11/21 11:41:21.77 hLpmxTjl.net
グラディウスだろ

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

と信じたい。

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

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

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

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

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

324:デフォルトの名無しさん
16/11/22 06:51:43.66 y8FHZWuV.net
>>318
> 最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな
これには同意するけど
> null安全よりstring?.lengthの方が合理的に見えるわ
これはないわ
string が null になる可能性がないなら普通に string.length って書いた方がエラーが早期にわかるからデバッグも楽だし

325:デフォルトの名無しさん
16/11/22 07:50:04.91 vhsrXRxU.net
?.もnull安全の一環な気はする。
ちなみに、null非許容型導入の影響で、?.を使っていない箇所は全てwarning扱いになる話もあったりする。

326:デフォルトの名無しさん
16/11/22 13:10:29.71 bfu4FZ0h.net
string?.length
これって式の左辺に何書くの?
int? hoge
とか?
で結局hoge==nullとか聞いちゃうの?
?.演算子は参照型と値型のペアでは使いにくいし分かりにくいと思う

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

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

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

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

331:デフォルトの名無しさん
16/11/23 10:56:47.19 Sj0D9A4Y.net
>>325
なんで過去形?

332:デフォルトの名無しさん
16/11/23 11:55:24.93 Sj0D9A4Y.net
URLリンク(stackoverflow.com)
このページで
dictionary.FirstOrDefault
とやっていますがディクショナリーにFirstOrDefaultを
やるとなぜこういう結果になるのですか?

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

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

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

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

337:デフォルトの名無しさん
16/11/23 19:48:19.93 4RFw+AHR.net
列挙子=enum ・・・

338:デフォルトの名無しさん
16/11/23 19:49:49.71 dUmyuUeh.net
列挙子はIEnumeratorですw

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

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

341:デフォルトの名無しさん
16/11/24 09:15:21.21 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オペレーションでビルドできるようにしたい
なんとかなりませんか?

342:デフォルトの名無しさん
16/11/24 09:36:13.90 iMAQMNBa.net
そういうのは依存してるとは言わない
aだけビルドするsln、bcだけビルドするsln作っておいて
aだけビルドするabcのslnでbcはポストビルドイベントでコマンドラインビルド、
bcだけビルドするabcのslnでaはプリビルドイベントでコマンドラインビルドとか?

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

344:デフォルトの名無しさん
16/11/24 18:57:30.96 /9TZdtP5.net
>>336
プロジェクトCを4.0指定で実行させれば良いんじゃ
>>338
webサイトにもプリコンパイルってのがある
VSがサポートしてるのかどうかはしらんが

345:デフォルトの名無しさん
16/11/24 22:53:33.34 5QlniI4z.net
教えて下さい。
C# で Windows のサービスプログラムを書きました。
その中でプロセス間通信を使いたく、パイプ(NamedPipeServerStream/NamedPipeClientStream)の利用を考えました。
サービスプログラムはそのままだとデバッグが面倒なので、
そのサービスプログラムを参照したフォームプログラムを作ってバグ取りをしました。
フォームプログラムからは、ボタンを押すことでサービスの開始や停止の処理をそっくり呼ぶようにしています。
ここで、
・フォームプログラムでは、問題なくパイプの送受信が出来る
・サービスプログラムでは、パイプの送受信が出来�


346:ネい  ただし、サービスを止めるときにパイプの待ち受けを終了させるために、同じプログラム内から送信するデータは送受信できている  ⇒ 実際に待ち受けを抜けているので同プログラム内では出来ていると思われる と言う状態になりました。 サービスプログラム内でプロセス間通信、この場合は名前付きパイプですが、の使用に制限などはあるのでしょうか。 他の要因を考えるべきか悩みました。情報があれば教えていただけると助かります。



347:デフォルトの名無しさん
16/11/25 01:40:52.65 gI/r9WkT.net
>>340
セッション0のアクセス権限の問題。
namedpipeclientstream-can-not-access-to-namedpipeserverstream-under-session-0
URLリンク(stackoverflow.com)

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

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

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

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

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

353:デフォルトの名無しさん
16/11/26 16:13:12.18 dXHq99jt.net
>>346
WM_KEYDOWNならこれ、カーソルキーとかも24ビット立てる必要があったかな
URLリンク(msdn.microsoft.com)
SendMessage(hWnd, WM_KEYDOWN, uCode, MapVirtualKey(uCode, 0) << 16 | 1)
とかそんな感じだったはず、離すときはWM_KEYUPにして32ビットを立てる
C++でWM_KEYDOWNイベントのlParamを吐くウィンドウプロシージャでも作ると良い

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

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

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

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

358:デフォルトの名無しさん
16/11/27 21:23:49.80 I1ny1q/I.net
妙な質問だけど、今2ch以外でユーザー同士でC#関連の質問解答ができるコミュニティーって、
- MSDNフォーラム
- わんくまの掲示板
- DOBON.NETの掲示板
質問して答えが返ってきそうなのはこのぐらい?
あ、別にマルチで質問投げてやろうとかそういう意図ではないので念のため

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

360:デフォルトの名無しさん
16/11/28 00:18:37.64 VTugBhJZ.net
>>352
StackOverflow一択だろ

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

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

363:デフォルトの名無しさん
16/11/28 01:42:44.60 9T0ZytTv.net
>>353-354
stackoverflowって日本語版もあったのかw
ありがとう
>>356
teratailはまったく知らなかったありがとう。

364:デフォルトの名無しさん
16/11/28 03:25:24.52 PwcZf+No.net
あとはQA@ITとか

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

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

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


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch