[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/01 19:54 / Filesize : 272 KB / Number-of Response : 1014
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

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

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

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

152 名前:デフォルトの名無しさん [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秒でわかるのに。
原辰。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

170 名前:デフォルトの名無しさん [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;
}



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

172 名前:デフォルトの名無しさん [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();}
}

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

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

174 名前:デフォルトの名無しさん [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の方がいいと思う。

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

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

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

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

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

179 名前:デフォルトの名無しさん mailto:sage [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 );

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



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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

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

213 名前:デフォルトの名無しさん mailto:sage [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" } };
どちらでも動くようなのですが、カッコは付けるほうが良いですか?

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

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

215 名前:デフォルトの名無しさん mailto:sage [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はどのように書けばいいでしょうか?

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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



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

232 名前:デフォルトの名無しさん mailto:sage [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);

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

252 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 02:22:5 ]
[ここ壊れてます]






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<272KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef