トップページ⇒tech
1002コメント344KB

C#, C♯, C#相談室 Part91 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2016/06/29(水) 23:45:15.36ID:EZjVZgG6
■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が建てる事。
建てられない場合は他を指定する事。
0002デフォルトの名無しさん2016/06/29(水) 23:45:41.68ID:EZjVZgG6
誰もたててなかったんでたてました
0003デフォルトの名無しさん2016/06/29(水) 23:51:01.49ID:mTvmtbdU
まじかよすげーな
0004デフォルトの名無しさん2016/06/29(水) 23:54:32.05ID:IF/e/aAD
>>2
えっ

C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1467142749/
0005デフォルトの名無しさん2016/07/01(金) 09:02:48.89ID:2/8SV6DI
>>4
oh
0006デフォルトの名無しさん2016/08/16(火) 01:59:58.67ID:jP/bzuFf
スレッド違いかもしれないですが教えてください。

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

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

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

↓で聞けよ脳タリン

スレ立てるまでもない質問はここで 143匹目 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1464139565/
0008デフォルトの名無しさん2016/11/05(土) 16:22:08.70ID:9mC8a8qM
このスレをPart92として使うのかな?
0009デフォルトの名無しさん2016/11/05(土) 16:28:35.13ID:N0pRKuvW
出来ればふらっとみたいにワッチョイ付きで建てて欲しい所だけど、ここでいいんじゃね
0010デフォルトの名無しさん2016/11/05(土) 17:20:49.55ID:4QNuq7Ui
>>994
重症だねこりゃ。
0011デフォルトの名無しさん2016/11/05(土) 19:53:16.07ID:bx+ldDt8
ワッチョイなんていらないのでここで十分です
0012デフォルトの名無しさん2016/11/05(土) 20:36:49.81ID:BoxZvYjG
次立てるときには付けるのでご安心召されよ
0013デフォルトの名無しさん2016/11/05(土) 21:25:32.22ID:yfItjWUA
ちゃんとインクリメントしろや
0014デフォルトの名無しさん2016/11/06(日) 01:29:59.15ID:+j3xqinH
ワッチョイが役に立ってるスレなんて見たこと無い
0015デフォルトの名無しさん2016/11/06(日) 06:47:09.15ID:yh+qoP1Q
荒らし乙
0016デフォルトの名無しさん2016/11/06(日) 09:55:19.69ID:jO0QNoEc
荒らしのNGに役立つよ
0017デフォルトの名無しさん2016/11/06(日) 10:48:53.12ID:pU7B9Wvc
日を跨いでくだらない話をだらだら続ける奴は消したいわ
前スレだとdecimalくんとか
LINQとラムダ式に親を殺された君とか
0018デフォルトの名無しさん2016/11/06(日) 19:36:01.09ID:ci4MHKnC
Windows Formsの話なんだけど
TextBoxとかButtonといった単項目コントロールはINotifyPropertyChangedとBindingSourceを使って
btnExec.Enabled <-> model.IsValid
txtHoge.ReadOnly <-> model.HogeIsReadOnly
のように柔軟なバインドができる
これと同じようにDataGridViewの各セルのプロパティとそのセルに対応するモデルのプロパティを細かくバインドすることは可能?
具体的には1行に対応するモデルの一部のプロパティがオブジェクトの状態によって変更可不可が変わる
このプロパティの変更可不可をセルの入力可不可に対応付けたい
0019デフォルトの名無しさん2016/11/07(月) 02:02:19.36ID:8BVz5aV9
>18
できると思う。なんだったら自分が実験してやって見せてあげよう。
その前に、ちょっと聞きたいことがある。
>TextBoxとかButtonといった単項目コントロールはINotifyPropertyChangedとBindingSourceを使って
>btnExec.Enabled <-> model.IsValid
>txtHoge.ReadOnly <-> model.HogeIsReadOnly

このやり方を具体的に教えてくれ。
これが解れば俺の応用力と理解力をもってすれば君の要求にこたえられると思う。
0020デフォルトの名無しさん2016/11/07(月) 02:15:23.59ID:8BVz5aV9
バインディングって要するに単なる対応付けだけのことじゃないかなー。
A=1 を B=1で起こす。Bに代入されましたよ。何が? 1が。 じゃあAに入れます。
これだけのことだから、、、、
相手がGridだろうが何だろうが簡単にできると思う。

この簡単なことをわかりにくくしたのがWPFではなかろうか?
俺にはなぜこんなに複雑にするのか理解できない。W
0021デフォルトの名無しさん2016/11/07(月) 09:30:16.42ID:FitVxgu/
今はWindowsFormとWPFってどっちが主流なの?
0022デフォルトの名無しさん2016/11/07(月) 09:43:19.29ID:1ZmAoJ5f
WPF
0023デフォルトの名無しさん2016/11/07(月) 09:57:52.03ID:euWTmbm8
wpfの方が騒がれてるけど結局formじゃないか?
0024デフォルトの名無しさん2016/11/07(月) 12:17:20.02ID:FyIcdvIJ
業務アプリ以外はUWPに移行
業務系はWinFormsだろうな
0025デフォルトの名無しさん2016/11/07(月) 12:20:21.90ID:fkbDdb5s
WPFは描画にGPU支援あるけど、恩恵なんて極わずかだしな
0026デフォルトの名無しさん2016/11/07(月) 12:44:44.53ID:9i/eBlRk
っていうか、WPFってどんなに取り巻きが誉めそやしても裸の王様だと思うわ。
可読性がとにかく悪い。

Win Formみたいなイベントドリブンならある機能がどこで実装されているか、それを修正するためには
どこを変えればいいか、ほとんどの場合すぐに検討が付くけど、WPFだとこれがイライラの連続の
苦行そのものに堕落しちゃう
0027デフォルトの名無しさん2016/11/07(月) 14:03:36.25ID:T8rwYGfS
UWPはネイティブ化されたから、C#やJavaなどのVM系特有のもっさり感から開放されたし
リバースエンジニアへの対応もC++と同レベルになった
問題はDataGridViewが標準でないこととリソース使用の制限などだが
そこがクリアできるなら速攻移行するべきだな
0028デフォルトの名無しさん2016/11/07(月) 14:24:49.81ID:/8UUm0jP
やっぱりDataGridを切望してるのは日本人だけなんですかな
異常に罫線が好きな民族だからね
0029デフォルトの名無しさん2016/11/07(月) 14:26:53.51ID:lMECrzfj
民族だよね
0030デフォルトの名無しさん2016/11/07(月) 14:29:08.88ID:io5w9F+U
>>24
>業務アプリ以外はUWPに移行
>業務系はWinFormsだろうな
何で業務系は移行しないん?
0031デフォルトの名無しさん2016/11/07(月) 14:51:18.13ID:pMvOYoph
業務アプリ以外はUWPに移行してるかどうかは別として
UWPはwin10必須になるからな
0032デフォルトの名無しさん2016/11/07(月) 15:09:36.70ID:8BVz5aV9
必須とはどういう意味?

WPFは大失敗だから、いま見直ししてると思うな。もう少し頭のいい奴に考えさせる
んじゃないかな。まあすぐに消えるわ。
0033デフォルトの名無しさん2016/11/07(月) 15:15:37.39ID:T8rwYGfS
しかしCollectionViewSourceに有った機能の殆どを「自分で実装しろ」と言う仕様変更は如何なものか
0034デフォルトの名無しさん2016/11/07(月) 18:02:50.76ID:5lIwdUhD
>>32
読んで字のごとく、UWPはWin10じゃないと動作しない
0035デフォルトの名無しさん2016/11/07(月) 18:18:24.24ID:mmljEldz
WindowsServerの共有フォルダに対して
一台のPCで複数のセッションを
張りたいのですが
便利なC#でも難しいでしょうか

セッション枯渇をシュミレーション
したいのですが、数十台の
物理的なクライアントを用意するのが
厳しく
0036デフォルトの名無しさん2016/11/07(月) 22:53:04.02ID:UfUqh0gR
>>21だけど取り敢えずはWindowsFormも普通に現役っぽいからそっちを使う事にします
回答ありがとう
0037デフォルトの名無しさん2016/11/07(月) 22:53:34.17ID:d19P1q1E
その手のはC#のライブラリで用意されてなくて結局P/InvokeでWin32APIを呼ぶことになるから、
Win32APIのスレで訊いた方が良いと思う。
0038デフォルトの名無しさん2016/11/07(月) 23:00:48.29ID:GpYwrGgA
WPFは出てからちょうど10年たったけど全然普及しなかったね
0039デフォルトの名無しさん2016/11/07(月) 23:26:27.59ID:geFZXkbd
>>37
やはりC#での手段は無さそうなのですね
Win32APIスレで聞いてみます
ありがとうございます
0040デフォルトの名無しさん2016/11/07(月) 23:46:06.46ID:d19P1q1E
WPFはせっかくがんばって色々できる土台を作ったのに、完成度を上げ切れてないのが何とも勿体ない。
ReactiveProperty(MS製のオープンソース)とか標準で入っていればずいぶん作りやすくなるのに。
標準のコントロールも数が足りないね。
とは言え、WindowsFormsよりもWPFの方が楽な場合もあるから、結局両方使う。
0041デフォルトの名無しさん2016/11/08(火) 00:28:14.64ID:mUYwed62
WPFってWinFormプロジェクトと混在して使えるの?
0042デフォルトの名無しさん2016/11/08(火) 00:31:06.09ID:mUYwed62
>40
完成度のもんだいだろうか? そもそも根本的なところで間違ってるような気がする。
何が間違っているのかうまく言えないが、、、W
0043デフォルトの名無しさん2016/11/08(火) 00:41:11.17ID:mUYwed62
MSのドキュメントって最近は多少ましになっては来ている部分も少しだけあるけど
ほとんどが駄目だとおもう。頭の悪い奴の書いた文章そのものって感じがする。
簡単なことを難しく書いていて要領を得ない。ワザとやってるのかなと思って
いたがそうでもないらしい。 こんなドキュメントを書くようではスッキリした
まともな言語の開発はできないと思う。
 でもC#は奇跡的に素晴らしいと思う。この素晴らしさはMS的ではないな。WPFは
MS的だと思う。
0044デフォルトの名無しさん2016/11/08(火) 00:51:04.50ID:360M0HJP
>>41
WPFにWindowsFormsHostコントロールってのがあるので、それを利用してFormsのコントロールを使える。
その逆はやったことないけど、ElementHostコントロールを利用するらしい。
0045デフォルトの名無しさん2016/11/08(火) 01:21:27.86ID:Iqb/ffmt
>>26
Formsの何がダメかというと意識の低い雑魚プログラマでも手が出せるところだろうな
雑魚が書くとすぐにレイヤがぐちゃぐちゃに混ざり合い重複したコードが際限なく増えていきオブジェクトから手続きの時代にタイムスリップする
油断して監視を緩めるとあっという間に手に負えなくなる
WPFは雑魚は切り捨てられてるからそういったリスクが少ない
MVVMという共通の概念を身に付けた意識の高い人材が集まるから自然とコーディングスタイルが統制されて読みやすい高品質なコードが出来る
0046デフォルトの名無しさん2016/11/08(火) 02:27:54.02ID:KFsAZFmi
>>45
WPFのコードを読みやすい思ったことは一度もないわ。

しかし、凄い倒錯だねw
Windows Formの問題はダメな奴でもそれなりに(可読性のないコードを)書けてしまうことだというが、
それを言うならWPFの問題はまともなプログラマが書いても決して可読的にならないことだろう。
0047デフォルトの名無しさん2016/11/08(火) 03:24:51.90ID:iu8f14dF
可読性が悪いっていってるのは XAML のこと?
それともバインドしてるプロパティがどれなのかわからないみたいなこと?

前者ならもうどうしようもないけど、
後者ならWindows Formでも同じ気がするし、
バインドとかCommandとか使わずにイベントドリブンで作る方法もあるよ。
0048デフォルトの名無しさん2016/11/08(火) 03:48:44.45ID:mUYwed62
>47
どっちがダメかといわれても答えようがないが、ダメなものを平気で追加している
と、少しだけはいいものがあったにしてもダメになるよね。
いいものなら直観的にシンプルに説明ができると思う。

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

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

後者を採用する人にはこれはある意味チャンスだと思う。まあでもこれを使いこなせる
ってことは「頭いい」って証明にはなると思うから、1.のアプローチも間違い
じゃない。W
0049デフォルトの名無しさん2016/11/08(火) 04:02:41.99ID:VojG/etj
>>43
英語を読んでる?
日本語版は機械翻訳だよ
0050デフォルトの名無しさん2016/11/08(火) 05:54:50.91ID:360M0HJP
>>48
1日しか触ってなくてほとんど何も理解もしてないのにダメ出しってのも何だかな。
従来と仕組みが違う部分が多いから、従来の(WindowsGUIプログラムの)経験からの直観は働きにくい。
学習コストがかかるのもデメリットではあるけどね。
0051デフォルトの名無しさん2016/11/08(火) 07:31:09.86ID:TXhVVjP1
雑魚排除といえば
VBを残し続ける理由が分からない

VB作る人的リソースを
XAML強化とかに回せば良いのに
0052デフォルトの名無しさん2016/11/08(火) 07:36:07.95ID:TXhVVjP1
WPFはFormアプリが
健在だから使う機会がない

MSの下位互換の精神は悪いと
言わないけど、もう良いんじゃねって
技術が延々と残ってるから
嫌になる
0053デフォルトの名無しさん2016/11/08(火) 07:48:59.11ID:uO4YTQEs
俺は最初からWPFを使ってるのでWindowsフォームの利点がわからん。
あらゆる点でWPFの劣化版のように思えるのだが。
0054デフォルトの名無しさん2016/11/08(火) 07:54:17.11ID:Iqb/ffmt
>>48
こういう人をお断りできるだけでもすごいメリットだよな
WPF程度の難易度のフレームワークを1日で諦めるとかちょっとな
昔は多かったオブジェクト指向はよくわからないから悪もの理論の年配と同じ臭いを感じる
0055デフォルトの名無しさん2016/11/08(火) 08:01:23.60ID:6Cpjtpfi
>>40
>ReactiveProperty(MS製のオープンソース)
Prismとごっちゃにしないでね。
ただアレは便利だわ
0056デフォルトの名無しさん2016/11/08(火) 08:10:26.28ID:6Cpjtpfi
Formsで出来るレベルのことだけでいいなら、そりゃFormsのほうが楽かもしれんね
でも、コントロールの外観をいじりたいとかって話になると、wpfのほうがずっと楽だろ
Formsでアニメーショなどどうやってヤるんだよ
0057デフォルトの名無しさん2016/11/08(火) 09:36:53.50ID:+DS6ozoh
だからそういう用途じゃなきゃFormsだし
そういう用途にしてもUWPに移行するって話だろ
0058デフォルトの名無しさん2016/11/08(火) 10:24:37.04ID:h2p8PH96
>>53
例えば、Formの利点というよりWPFの欠点だけどグラフィックのパフォーマンスだね。
GDI+も登場時散々遅いと叩かれたけどWPFはその何十倍も遅い。
ググると出てくると思うけど、あまりに遅くて、2Dの折れ線グラフのような単純なものでも
データ数が多いと全く使い物にならない。
俺自身パフォーマンスの問題をどう工夫しても解決できなかったので結局GDI+で書き直すはめになった
0059デフォルトの名無しさん2016/11/08(火) 11:20:31.78ID:mUYwed62
>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();

大事なところを隠蔽されるのはダメだよ。
プロパティを並べるのに<>で囲む必要なんてどこにあるんだよ。
という感じ。文書として保存するときなら<>つけたらいいではない?
でもエディットするときにこんなもんは不要だ。
0060デフォルトの名無しさん2016/11/08(火) 11:31:34.08ID:mUYwed62
<TextBox
Width = "100"
FontSize = "30"
Text = "テスト"
Background = "White"
Foreground = "Blue"
/>
文書保存するときはこれは別にいいと思うけど、もともと簡単に打ち込みできるよう
になってるものを、テキストで打ち込む理由はないな。
0061デフォルトの名無しさん2016/11/08(火) 11:43:12.95ID:mUYwed62
>47
XAMLはNetをXMLで表現するタグだけのことだろ。
それは別にそれでいいんでないか? 整理できるし。

問題はWPFっていう糞のIDEだな。見通しがきかない保存文書構造のXMLを使って
なんでプログラム組まなきゃなんないのってこと。本末転倒だろ。W
0062デフォルトの名無しさん2016/11/08(火) 12:00:35.75ID:mUYwed62
>コントロールの外観をいじりたいとかって話になると、wpfのほうがずっと楽だろ
>Formsでアニメーショなどどうやってヤるんだよ

 楽なのは抽象度が高くなっていて、逆に言えば細かい処理はできないってことだね。
FormでできないことがWPFでできるわけじゃなくて、それなりのコントロールを用意して
楽にしているだけ。楽なコントロールが楽になってるだけ。そういうのを適宜使うって
のはありだと思うよ。アニメーションとか、、、、アニメーションとかほかにどんなもの
がある? でも.netになくてWPFだけにあるものなんてある?
0063デフォルトの名無しさん2016/11/08(火) 12:12:18.45ID:mUYwed62
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation";
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";
エディターにロードした段階でこんなタグは不要だろ。なんでこんなのがいちいち
画面を占有しているの? バカっぽいと思わん。
これがなければ余分に2行ソースが見える。W
0064デフォルトの名無しさん2016/11/08(火) 12:47:02.22ID:unEOfTV3
>>59
なんでXAMLにすり替えてんだよじじい
0065デフォルトの名無しさん2016/11/08(火) 14:50:51.38ID:CGI+nyHh
男だったのか
0066デフォルトの名無しさん2016/11/08(火) 15:14:04.09ID:EaH/m5NR
GUIフレームワークなんて何使っても大差ない
根本的な設計がしっかりしてれば楽
でなければ何やっても苦痛
0067デフォルトの名無しさん2016/11/08(火) 16:42:41.52ID:TdC6P0sc
newも、ソースの見通しとも、xmlnsについてもWinFormsではデザイナが自動生成するコードだからほとんど見ないし、自動生成コードよりはXamlのほうが優れてるだろ

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

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

>>59
そんなにXAMLが嫌いならXAMLを使わなきゃいいだろ。
そもそもXAMLはWPFとは何の関係もない。
XAMLを使わなくてもWPFプログラミングなどいくらでもできる。
0069デフォルトの名無しさん2016/11/08(火) 18:00:32.99ID:mUYwed62
>68
えっ、そうなんだ。チュートリアルはほぼxamlの説明だけだよ。W
0070デフォルトの名無しさん2016/11/08(火) 18:03:46.28ID:mUYwed62
一時期XMLが流行った時があって猫も杓子もXML状態になったよね。そのあと全部
失敗してXAMLはしぶとく残ってるということではないのか?
0071デフォルトの名無しさん2016/11/08(火) 18:52:03.52ID:WSlpNxFl
もうザマリンでAndorido準拠の
プログラム作れば良いよ

WindowsPhoneのシェア0.3%で
WPFの先も無さそうだし
0072デフォルトの名無しさん2016/11/08(火) 18:56:36.28ID:WSlpNxFl
FormアプリとVBは
Windows7までにしておけば良いのに

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

モバイルじゃシェア失ってるんだし
0073デフォルトの名無しさん2016/11/08(火) 20:25:06.49ID:UoXgnYKD
Win32API時代から自分で描画するコントロールを作っていくのが好きすぎて未だにやめられない
0074デフォルトの名無しさん2016/11/08(火) 20:40:02.61ID:RPJf2WNu
WinFormは趣味グラマにとってぬるま湯で居心地がいいw
IDEのおかげで下手なスクリプトより楽だし
0075デフォルトの名無しさん2016/11/08(火) 20:51:54.08ID:360M0HJP
>>55
すまん。完全にごっちゃになってた。

>>59
その例だとXAMLにx:Name="textBox1"が抜けてるぞ。
XAMLでの<TextBox>タグの宣言こそが、TextBox textbox1 = new TextBox();
に相当するってだけで、別に隠しちゃいない。
0076デフォルトの名無しさん2016/11/08(火) 20:58:12.04ID:RPJf2WNu
ついでに流れに乗っておくと
>>58
WPFはGDI+(WinForm)よりもグラフィック関連は速くなるものだと思っていた
WinFormは扱うデータサイズが大きくなると消費するメモリサイズが飛躍的に増えるんで、グラフィック関連は扱うのにあまり適していないんだよな
0077デフォルトの名無しさん2016/11/08(火) 21:15:33.89ID:360M0HJP
>>76
あるポイント数を超えるとまったく実用じゃないくらい遅くなるね。
ポイント数が多くてスピードが要求される場合は、DirectXを使って高速描画出来る有償のコントロールを買うしか無さそう。

数年前の資料だけど、各種チャートコントロールの性能比較
WPF Charting Performance Comparisons (the Battle Continues)
http://blog.scottlogic.com/2012/04/24/wpf-charting-performance-comparisons-the-battle-continues.html
0078デフォルトの名無しさん2016/11/08(火) 23:17:39.44ID:6Cpjtpfi
ポイント数が多くてスピードが要求されるなら、データを間引いたほうが現実的じゃなかろうか?
データ視覚化なら2、300もアレば十分だろ
0079デフォルトの名無しさん2016/11/08(火) 23:28:48.20ID:o3gm2pi/
そんな高度なことができるわけないだろ
0080デフォルトの名無しさん2016/11/08(火) 23:52:00.16ID:6Cpjtpfi
>>79
もうちょっと頑張れ
0081デフォルトの名無しさん2016/11/09(水) 00:13:40.23ID:HQuuA4JA
>>49
他のベンダーのヘルプとか見たことないんだろ
MS なんてかなりまともな方だと思う
0082デフォルトの名無しさん2016/11/09(水) 01:04:00.05ID:SotHgA9V
>>78
系列が少なければね。
0083デフォルトの名無しさん2016/11/09(水) 01:09:36.44ID:SotHgA9V
>>62
知らないのに当てずっぽうで書いてるのが良く分かるな
0084デフォルトの名無しさん2016/11/09(水) 02:23:18.79ID:pYqjQFAT
>77
イケてるやないか。 でもデータバインディングやったらボロボロ。W
0085デフォルトの名無しさん2016/11/09(水) 02:57:40.95ID:pYqjQFAT
>に相当するってだけで、別に隠しちゃいない。

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

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

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

料理の材料はまあこんなものでいいというか素材は素晴らしい。しかし集めて料理
するんならもっと一つ一つを丁寧に作りこまなくてはだめだろ。これじゃ味の
バランスが悪くて料理になってない。もうひと手間かけるのができないんだよな。
最後までやりきることができない。思い付きと能書きは立派。W
0086デフォルトの名無しさん2016/11/09(水) 03:24:51.72ID:pYqjQFAT
<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}"/>
0087デフォルトの名無しさん2016/11/09(水) 04:07:40.94ID:pYqjQFAT
ファンクションキーのイベント発生に見れるセンスのなさ
こんな書き方はどんだけ糞か? ネーミングのセンスがまるでない。
PreviewKeyDown="Window_PreviewKeyDown"

これがセンスのいいなまえ
FunctionKey = "KeyDown"
もしくは
KeyDown="FunctionKey"
KeyDown="F1"
など
0088デフォルトの名無しさん2016/11/09(水) 04:26:59.85ID:pYqjQFAT
プロパティ値の継承に見る手抜き
 プロパティ値が割り当てられていない子要素がある場合、プロパティ値の設定がある
最も近い親要素の値を割り当てる。W 

まあこういう問題が発生するのも、手抜きが手抜きを生むことの良い例だ。ボタンコン
トロールひとつを表すのに手近な要素をかき集めて作りあげるという手抜きをしたこと
で、イベントがうまく取れないという問題が発生した。そこでイベントルーティング
という新たな手抜き概念を導出してしかもプロパティ継承という誤魔化しまでしなくて
はならなくなった。
 トンネル、バブル、ダイレクト イベント一つにこんだけ複雑なことをする羽目にな
ったのも、最初に行ったわずかな手抜きが原因なのだ。
0089デフォルトの名無しさん2016/11/09(水) 04:29:27.99ID:9orsc4MQ
>>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に記述したりはしない
0090デフォルトの名無しさん2016/11/09(水) 04:36:52.64ID:pYqjQFAT
データバインディングに見る手抜き
「WPF のデータバインディングはこれだけで 1 冊の本が書けるほど面倒です。」という
関係者。たったこれだけで関係者が本を書いて10年は食える飯のタネになる。W

WPFにおけるデータバインディングの重要性と可能性はこの限りにおいては非常に成功
している。テーマとしては食いつきがいい。「これさえマスターすれば、あとは
データを流し込むだけで自動的に表示してくれる」
魅力的なのだ。
食いつきがよくて、複雑怪奇な場合には関係者は情報を小出しにすればかなり長期に
わたってよい飯の種になる。
0091デフォルトの名無しさん2016/11/09(水) 04:37:26.02ID:pYqjQFAT
さあ寝よう。おやすみ
0092デフォルトの名無しさん2016/11/09(水) 07:27:40.65ID:ccPtaul1
>>91
そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな?
x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな

つか、アンタの言い分はイソップ童話の酸っぱいブドウそのものです
0093デフォルトの名無しさん2016/11/09(水) 07:54:15.04ID:TlbuxVnv
個人的にUWPに偏見を抱いている理由はOneNoteが糞なせい
OneNoteの糞さはUWP無関係だと思うが、自分の観測範囲にUWPの実用サンプルがそれしかないので
どうしても印象が引っ張られる
0094デフォルトの名無しさん2016/11/09(水) 09:17:12.31ID:KnEUpDo2
XAMLに親を……
0095デフォルトの名無しさん2016/11/09(水) 09:17:36.57ID:SotHgA9V
>>87
KeyDownってイベントは別にあるぞ

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

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

せめてBlendをまともに作ってくれれば、それなりにUIの問題は解決するのにな。
Blendも糞だろ。W 最近のは使ってないからわからんが、、、
0097デフォルトの名無しさん2016/11/09(水) 12:10:37.11ID:pYqjQFAT
>そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな?
>x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな

今度はUWPかよ。小出しにするなー。つまりWPFは糞だったと認めるんだな。W
0098デフォルトの名無しさん2016/11/09(水) 12:12:21.25ID:C35LXred
UWPは互換性取るために使えない機能が多すぎてFormやWPFと比較する気にもなれない
0099デフォルトの名無しさん2016/11/09(水) 13:18:01.59ID:imHVERPt
で?。W
0100デフォルトの名無しさん2016/11/09(水) 13:24:22.96ID:13V/HCY3
またストアアプリみたいにいつ梯子外されるかわからないUWPに手を出す人は
よっぽどお勉強好きなんだろうなw

仕事ならしょうがないけど自分の時間使って勉強する気にはなれんわ
0101デフォルトの名無しさん2016/11/09(水) 13:44:46.30ID:U6OuotlL
WPFに手だしちゃった人ならいけるでしょ
0102デフォルトの名無しさん2016/11/09(水) 16:05:04.67ID:L45XBX69
>>87
コードビハインドにイベント書くことはおすすめされないし、そもそもPreviewKeyDownってFunctionキーのイベントを受け取るためのイベントじゃないぞ?
WinFormsにも同じ名前のイベントあったじゃん

WPF以前の根本的な能力がかけてるんじゃね?
0103デフォルトの名無しさん2016/11/09(水) 19:12:41.31ID:UPD5ANvk
UWPって多重起動できるんですか?
0104デフォルトの名無しさん2016/11/09(水) 19:23:20.90ID:c1gJ8Ir2
Windows10のPCは買ったけど、予備にした古いPCで動かす事を考えたらUWPは使いたくないな
まだ動く7とXPのPCがあるからな
0105デフォルトの名無しさん2016/11/09(水) 20:02:19.12ID:xK7OwzcU
WPFやってないんだが、そもそもXAMLは人間が見る必要のあるものなのか?
VSのデザイナやBlendがダメすぎるのか?
フォームでさえ、.Designerの中身なんてほぼ見る事ないのに

人間が生のXAML見たり編集したりしないとダメならそら普及しないなと思うが
0106デフォルトの名無しさん2016/11/09(水) 20:09:14.52ID:y+VOBp5j
XAMLはなにもかもXML(?)で記述できるようにしようとして失敗してる感じ
レイアウトだけにしとけばいいのに
0107デフォルトの名無しさん2016/11/09(水) 20:09:22.06ID:knOh/4SR
データバインディングが遅いとかいって大量データをなんの工夫もなく描画する画面を引き合いに出す人ってたまにいるけどあれって悪意があってやってるの?
0108デフォルトの名無しさん2016/11/09(水) 21:24:36.59ID:WmFTPhhE
普通、設定ファイルを、人が直接いじったりしない

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

オブジェクト同士の衝突判定・イベント通知なども、同じ
0109デフォルトの名無しさん2016/11/09(水) 21:25:12.33ID:TlbuxVnv
どこぞのフレームワークで「人間にXMLを書かせるなんて虐待です」って書いてるのがあったけど
ほんとその通り
0110デフォルトの名無しさん2016/11/09(水) 23:41:49.58ID:7n7DDFeG
つうかここってC#+Windowsフォームしかやってないやつばかりなの?
XAMLはそもそもWPFだけのもんじゃないんだが。
Silverlightにも使われていたしUWPにも使われてる。
そしてC#だけじゃなくVBにも使われてる。
つまり、言語やクラスライブラリなどから分離できるものは分離しようっつーのがXAMLでしょ。
C#/VBとXAMLの関係はJavaScriptとHTMLの関係と似てる。
XAMLを批判してる奴ってほんとにXAMLを理解してんの?
0111デフォルトの名無しさん2016/11/10(木) 00:11:40.20ID:TlbdJV8L
1日で挫折したのにここまで批判できる >>48 はすごい人
0112デフォルトの名無しさん2016/11/10(木) 00:22:28.24ID:4pFcdHJl
JavaScriptとHTMLではなくJavaScriptとJSONの方が近いな
XAMLはただのシリアライズフォーマットの1つでしかない
WPFと関係ない普通のオブジェクトもXAMLにシリアライズできる
そんでXAMLはJSONと違って型とアセンブリの情報を持つ
UIデザインを宣言する手段として考えると書きにくいXAML形式よりシンプルでインテリセンスもよく働くC#コードの方が優れているのは確かだろう
しかしそうではなく可視性と可搬性のある普遍的なシリアライズフォーマットとして考えるとXAMLがXMLを採用したのは自然な帰結と言える
可視性のためにはテキストでなければならない
可搬性と普遍性では対抗馬としてJSONがあるがJSONはシンプルすぎて表現力がちょっと物足りない
となるとXMLは妥当な選択と言っていい
新しい時代に乗り遅れてXMLにしたわけでもないし虐待目的でXMLにしたわけでもない
XAMLの目的に合致するフォーマットではXMLがベストだったというだけの話なんだ
0113デフォルトの名無しさん2016/11/10(木) 00:29:57.49ID:ApowNrKS
wpf使うならelectronでいいや感ある
0114デフォルトの名無しさん2016/11/10(木) 01:16:39.44ID:Co+DcSGG
AndroidStudio使っててもXMLは出来るだけいじりたくないw
0115デフォルトの名無しさん2016/11/10(木) 01:52:09.10ID:aHkFnxeg
>102
ん?
それは考え方に矛盾があるだろ。UIを切り離すのが目的なら、切り口がシンプルで
綺麗なほうがいい。
例えばスクロールバーと連動して値を表示する場合なんてUI内でまとめて片づけて
しまったほうがいい。
ほしいの値だけで、処理側からしたらくだらないイベントなんて見えないほうがいい。
そっちでまとめてやってほしい。
0116デフォルトの名無しさん2016/11/10(木) 01:52:28.80ID:aHkFnxeg
>XAMLを批判してる奴ってほんとにXAMLを理解してんの?

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

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

プログラム=>窓口

UIの窓口さんにいえば{、、、}なかはわからなくても大体処理できる。そういう関係
なわけよ。窓口が美人でテキパキしてないとダメだろ。
時々あるんだが、大企業の開発部に電話してるのに田舎のおばちゃんみたいなのが
窓口で
「はあ、田中さんは今日はおらんよ、どっかに出張するからって鞄を下げて出て行った
よ」
みたいな感じな。
XAMLの美人の窓口さんはどこ? ねえ
0117デフォルトの名無しさん2016/11/10(木) 02:08:02.40ID:CCFq8Qep
>>111
批判って言うより、ほとんどいちゃもんだけどな。
0118デフォルトの名無しさん2016/11/10(木) 02:16:50.13ID:lTw5QLQW
長文マンは無駄に下手な比喩ばっか使って文意がわかりづらいな
0119デフォルトの名無しさん2016/11/10(木) 02:20:15.15ID:aHkFnxeg
じゃあ具体的に書いたろか

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

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

これだもんな。W
XAMLがデータを取りに行ってくれる。一見便利だが、いちいち細かい指示を出して
説明してやらんと分からんやつだから、教えるほうが手間。自分でHello!!て
書いたほうがなんぼかまし。
あれだ、パラダイムシフトだなんだって言ってるが、シフトダウンだよな。
0120デフォルトの名無しさん2016/11/10(木) 02:26:27.64ID:wdbpo9Rt
それXAML側でName="textBox1"と定義してやれば、this.textBox1.Text = "Hello, World!"で済むだろ
0121デフォルトの名無しさん2016/11/10(木) 02:30:19.81ID:YdauEkQ9
WPFとFormを同じXAMLから生成出来ればもっと使い道もあるんだけどな
0122デフォルトの名無しさん2016/11/10(木) 02:31:25.72ID:aHkFnxeg
比喩だとわからんか?
窓口ってのは会社の顔だよ。XAMLの顔はというとBindingだ。ここが窓ぐち。
こいつが田舎もんだから、、、、W
0123デフォルトの名無しさん2016/11/10(木) 02:33:21.09ID:4pFcdHJl
>>122
でもそれってXAML関係ないじゃん
なんでさっきXAMLディスってたの?
0124デフォルトの名無しさん2016/11/10(木) 02:33:22.15ID:wdbpo9Rt
わざとミスしてレスが欲しいのか自分の主張を通したいのかどっちなのよ
0125デフォルトの名無しさん2016/11/10(木) 02:55:22.89ID:bu4ikKWV
>>119
ぇ、それだけじゃXAMLは取りに行かないよ。
Dataクラスからの通知機構は無いの?
0126デフォルトの名無しさん2016/11/10(木) 03:08:35.71ID:zCCtWAZL
>>115,116
?例が適当すぎて言いたいことがわからん
スクロールバーと連動して値を表示するのはバインディングで済むからUIのイベントなんて使わないだろ

UIを切り離すんじゃなくて、VとVMを切り離すのが目的
0127デフォルトの名無しさん2016/11/10(木) 03:17:22.84ID:zCCtWAZL
>>119
バインディングする意味のないソースを出されても

さっき言ったスクロールバーとその値を表示するテキストボックスの例を見ればいいんじゃない?
バインディングを使わないとイベントを利用してそれぞれの値を相互に書き換える必要があって面倒とかそういうの
0128デフォルトの名無しさん2016/11/10(木) 06:37:59.52ID:B4277xpo
XAMLを批判したいけどちゃんと理解してないから筋の通った批判ができない悲しさ
0129デフォルトの名無しさん2016/11/10(木) 07:36:13.26ID:o8sMendu
>>126
例えばGridSplitter付きのパネルの開閉をアニメ付きでヤるとしたら、xamlじゃとても書けないけど
VMにやらせる仕事じゃないって場合とか、BringToViewなんかもViewで完結させるべき仕事だね
ビヘイビアやトリガーアクション使ってもいいけど無理やり突っ込むこともない
0130デフォルトの名無しさん2016/11/10(木) 07:51:19.71ID:aHkFnxeg
<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
エラーもでんし。
0131デフォルトの名無しさん2016/11/10(木) 07:53:05.39ID:aHkFnxeg
>128
このバインドの書き方のどこが筋が通ってないんや?
0132デフォルトの名無しさん2016/11/10(木) 08:11:55.57ID:aHkFnxeg
this.DataContext =this;
 そうだこれがぬけてると検索場所が特定できんのだ。
私は私ですから私を検索してくだされ。

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

まあこんなケチを付けているんだから
htmlなんて触ったことない化石プログラマーなんだろうね
0134デフォルトの名無しさん2016/11/10(木) 08:57:47.72ID:aHkFnxeg
マークアップの欠点とBindingの欠点と、、、と幾つかの欠点を併せ持っているという
ところが味噌。
0135デフォルトの名無しさん2016/11/10(木) 09:16:40.69ID:o8sMendu
可読性を問題にしていたはずが、ロジックとマークアップが混在するhtmlを批判せずに
それを解決する方法のBindingにケチをつける

化石の末期だなw
0136デフォルトの名無しさん2016/11/10(木) 09:43:37.91ID:aHkFnxeg
<Window.Resources>
<SolidColorBrush x:Key="MyBrush" Color="Blue"/>
</Window.Resources>
ボタンのインスタンスIDはNameでリソースの場合hx:Keyかよ。笑かすな。W
0137デフォルトの名無しさん2016/11/10(木) 10:15:41.71ID:aHkFnxeg
物事を識別するには名前が肝心である。名前は適切で少ない方がいい。

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

高々リソースに名前振るだけで、、、ぷっ。
0138デフォルトの名無しさん2016/11/10(木) 10:16:51.48ID:aHkFnxeg
>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 !
0139デフォルトの名無しさん2016/11/10(木) 10:29:24.03ID:aHkFnxeg
@ITデータバインディングを理解する。
http://www.atmarkit.co.jp/ait/articles/1010/08/news123.html
1ページ何を言ってるのか全然わからん。突っ込みどころが多すぎて、突っ込む気にもならん。
それとも誤字脱字が多いのかな?なんか説明が間違ってるだろ。論理がつながっていない。

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

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

{Binding Path=X} いらんだろ。
BindingにPath以外のプロパティはないんだろ!! 最初からBindingでいいだろ
パスもプロパティもいらんわ。
0140デフォルトの名無しさん2016/11/10(木) 10:43:36.65ID:aHkFnxeg
 外部リソースを取り込むには、<ResourceDictionary>要素にSource属性を付ける
<Window.Resources>
<ResourceDictionary Source="Styles.xaml"/>
</Window.Resources>

includeにしろよな。常識だろ。
0141デフォルトの名無しさん2016/11/10(木) 11:38:19.49ID:ElAt+S/3
質問です
フォームにプロパティグリッドがあります
プロパティグリッドの中でCtrl+Zを押したときに
普通はプロパティグリッドが持っているアンドゥが呼ばれますが
これをフォームの独自のアンドゥ・メソッドを呼び出すようにしたいのですが、
どうすればいいですか?
0142デフォルトの名無しさん2016/11/10(木) 12:03:59.07ID:dRW/oH8h
>>141
思いつくのは、IMessageFilterを使ってWM_KEYDOWNでCtrl+Z拾ってやることかな
入力中のコントロールをControl.FromHandleで取れたら幸い
0143デフォルトの名無しさん2016/11/10(木) 12:19:50.11ID:CCFq8Qep
>>139
Pathは省略可能ってだけで、他にもプロパティあるし。
自分で張ったリンク先の2ページ目にも書いてあるだろ。
0144デフォルトの名無しさん2016/11/10(木) 12:41:10.63ID:lWSBQV9X
>>116
理解できない自分の頭を呪いな
0145デフォルトの名無しさん2016/11/10(木) 12:59:35.96ID:otGHoxmh
>>142
.NET1.1の頃からそんなのあったのか
まったく知らなかったw

しかし、IMessageFilterっていうかApplication.AddMessageFilterって結構恐ろしい仕組みだなw
NativeWindowの方が安全な気がするんだけど
0146デフォルトの名無しさん2016/11/10(木) 13:07:51.76ID:ElAt+S/3
>>142
IMessageFilterでCtrl+Z拾ってできました
ありがとうございます
0147デフォルトの名無しさん2016/11/10(木) 14:50:01.95ID:zCCtWAZL
>>139
結局、言われた指摘には何も返せず自分が理解できないのに適当に騒いでるだけじゃん
C言語とかやったら配列があればポインタいらないじゃん!とか騒いでそう

省略可能な記述についても、html5とかの仕様を見たらhtmlとかbodyとかのタグいらないじゃん!とか叫びそう
http://qiita.com/labocho/items/54fd70c73ced35c8ba49
0148デフォルトの名無しさん2016/11/10(木) 15:34:39.47ID:aHkFnxeg
グダグダ言わずに、本質はどういうことかを捉えてどう説明できるかが問題やな。
Bindingの本質はというと要するにXamlのText="{Binding pName}" が意味するのは

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

この二つの処理やないか。こいつを省略形で書いてるだけのことやろ。
チュートリアルでちゃんとこう言うように書けよな。そしたら3秒でわかるのに。
原辰。
0149デフォルトの名無しさん2016/11/10(木) 15:45:02.09ID:aHkFnxeg
>143
1pが意味不明なので2pは見てなかった。

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

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

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

モードがあるじゃないか。ならインテリセンス効かせろや。
0150デフォルトの名無しさん2016/11/10(木) 15:59:51.17ID:aHkFnxeg
しかしBinding部分は顔だし肝なのにここを
 正確に説明できん
 プロパティのインテリセンスも出せん
とか、要するに自分の頭で考えたものじゃなくて、アッチコッチから借りてきた借り物をくっつけ
て作り上げてるからだろ。ほんとうのところが正確に把握できてないんだよな。
0151デフォルトの名無しさん2016/11/10(木) 16:05:52.04ID:aHkFnxeg
内容が変更したときにはどうすんの?
 INotifyPropertyChangedインターフェースを実装
 DependencyPropertyにしてしまう (インスタンスを生成したスレッドのみに限定される)
二つの方法がある。

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

なんやねん。結局イベント処理は書かなだめやないか? どんだけのメリットがあるか。W
0152デフォルトの名無しさん2016/11/10(木) 16:10:01.34ID:ApowNrKS
ラムダ君
LINQ君
XAML君←new
0153デフォルトの名無しさん2016/11/10(木) 16:33:44.59ID:aHkFnxeg
結局普及しないのは、関係者がちゃんと理解できていないのではないかな。
WEBを見たら、いろいろと説明が書いてるがどれも分りにくい。

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

バインディングするんならイベントもちゃんとバインディングしないとだめだわ。
バインディングを間違っていても反応なしだしな。W エラーすらチェックできてない。
中途半端。
0154デフォルトの名無しさん2016/11/10(木) 17:47:19.45ID:riiUw9jl
>>152 命名のXAML君は、staticおじさんと同じ加齢臭がする
0155デフォルトの名無しさん2016/11/10(木) 17:49:55.89ID:ApowNrKS
ラムダとLINQも新しいことを拒絶するstaticおじさんだろうな
0156デフォルトの名無しさん2016/11/10(木) 19:15:21.25ID:pqjjw4yY
ラムダとLINQの時は使うなとか言っているやつがいたからな
拒絶するのは勝手だがいちいち布教しようとするのはウザイ
0157デフォルトの名無しさん2016/11/10(木) 19:22:39.57ID:CGPJd07S
IEでニコ生みたいなストリーミング動画を見る際に、動画データがメモリーに展開する前にデータをリアルタイムでキャプチャするにはどうしたらいいでしょうか?
0158デフォルトの名無しさん2016/11/10(木) 19:23:04.26ID:ApowNrKS
C#のLINQは名前が他の言語と違うから一瞬迷う
01591572016/11/10(木) 19:31:03.19ID:CGPJd07S
すみません分かりづらかったです。
IEで動画見ながら、IEがダウンロードしてるデータがストリーミング動画かどうかを判断して、動画ならIEの画面に表示される前に手を加えたいんです。
0160デフォルトの名無しさん2016/11/10(木) 19:36:34.41ID:hirKpSKv
ストリーミング中の動画に手を加えられるだけの技能があるのがすごい
0161デフォルトの名無しさん2016/11/10(木) 20:17:59.57ID:13nZCkn2
使う価値があると思えば使えばいい
自分が使うのは無理だ参りましたと思ったら使わなければいい
ただどちらを選択したかは別に他人に伝えなくていい
0162デフォルトの名無しさん2016/11/10(木) 22:17:57.52ID:c1KzPo7d
>>159
現実的な内容じゃない
基本的に無理
プロキシ―作っても動画をいじれる技量が君にあるとは思えない
0163デフォルトの名無しさん2016/11/10(木) 23:07:13.32ID:pEVMYV3p
IEに、そういうプラグインがあるのか、探してみれば?

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

Atom, Visual Studio Code, Electron は、Chromiumを使っている
0164デフォルトの名無しさん2016/11/11(金) 03:04:38.37ID:+gNs9Nbk
>>153
君はWPFどころかC#もよく理解できてないみたいだから、C#入門書からスタートするのがおすすめ
0165デフォルトの名無しさん2016/11/11(金) 04:07:56.66ID:KgVthd+h
>157
ストリーミングをやるコンポーネントはあるだろ。そのデータ取り込み部分を
バッファリングして中を加工すればいいだけだろ。W
画像認識をするのかな?
0166デフォルトの名無しさん2016/11/11(金) 07:05:40.26ID:KgVthd+h
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;
}
0167デフォルトの名無しさん2016/11/11(金) 07:07:03.74ID:zUQAdwQM
イベントを再定義したかった人生だった(Command辞世の句)
0168デフォルトの名無しさん2016/11/11(金) 07:08:21.41ID:KgVthd+h
いい例がある。これならわかる。これを逃してしてしまうと永久にわからないというほどの
優れた例を提示しておく。

優れた例
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();}
}
0169デフォルトの名無しさん2016/11/11(金) 07:09:49.57ID:KgVthd+h
肝:DelegateCommandをプロパティとして公開
  コンストラクタの中でインスタンス化

() => Result = "登録OK"
これはなんやねん? このアクションの書き方がわからんなーという人。
ラムダ式、、、初めて聞いた?
0170デフォルトの名無しさん2016/11/11(金) 07:13:06.18ID:KgVthd+h
>君はWPFどころかC#もよく理解できてないみたいだから、C#入門書からスタートするのがおすすめ

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

問題はMVVMパターンだな。
MVVMじゃなくてM-VM-VかV-VM-Mでないとだめだよな。VVMMの方がいいと思う。
0171デフォルトの名無しさん2016/11/11(金) 07:23:51.87ID:KgVthd+h
WPF攻略方法
1.Bindingの理解
2.「優れた例」でVVMM(またはMVVM)を理解する こっちはまあボチボチでもOK

MSの文書は酷いがIT−PROの文書は体裁としてはよくまとまってはいるが説明が難しい。
 第一に例が悪い。
 第二に例にセンスがない。
 第三に例の説明が下手。
単純化したシンプルな例で示さないと「俺はこんなにすごいんだぞ」みたいな
複雑な例では分からん。
0172デフォルトの名無しさん2016/11/11(金) 08:31:34.35ID:KgVthd+h
MVVMのVMってわざわざ苦労してクラスをつくる必要あるんか?
コードビハインドをVMにしたらいいんではないか? VとのIFはここで全部やった
らいいと思うがな。
なんか必要性がいまいちわからんなー。
0173デフォルトの名無しさん2016/11/11(金) 08:51:31.09ID:qDFZLZyC
>>172
必要性が何なのかちゃんと調べたのかい?
0174デフォルトの名無しさん2016/11/11(金) 09:40:30.93ID:yIFyhkZ0
DIコンテナを導入すると、VMとMの2層構造のありがたみが実感できるんだけどな
0175デフォルトの名無しさん2016/11/11(金) 09:43:11.94ID:M2uBl8fv
>>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 );
0176デフォルトの名無しさん2016/11/11(金) 13:38:45.67ID:KgVthd+h
ラムダ式なんて高級なもが巷にあふれているとは初めてしった。めったに
使わないかな。
 右も左もわからないのにアンドロイドアプリ(簡単なんだが、、)を作る
羽目になってしまった。しかしXamalinダウンロードしてみたらXamlに似ていて
驚いたわ。W
 WPFを勉強したかいがあった。これからバリバリつくってみる。
0177デフォルトの名無しさん2016/11/11(金) 18:30:50.13ID:ciOc6C5W
リスト操作系関数を一度使ってしまうともう戻れなくなる
例えば、List<string>をList<object>に変換したい時、
var hoge=list.map(x=>(object)x);
だけで良い。foreachとかで書くより楽で読みやすい
0178デフォルトの名無しさん2016/11/11(金) 18:55:28.67ID:+ZeaIXfw
名前を付けるのも馬鹿らしい単純な操作を表現するには
やっぱりラムダ式が便利だと感じる
0179デフォルトの名無しさん2016/11/11(金) 18:56:03.62ID:qDFZLZyC
>>176
Xamlに似てる?勘違いしてんぞお前
0180デフォルトの名無しさん2016/11/11(金) 18:57:11.76ID:0OJ17qIg
>>177
List<T>.ComvertAll<TOutput>(Converter<T,TOutput>)ではダメなんか?
0181デフォルトの名無しさん2016/11/11(金) 19:20:11.62ID:KgVthd+h
>179
Xamlそのものだわ。C++もC#のFormもXmalinUIもあって、3種類の開発環境がある。
まともに動けば凄いよ。W
でもサンプルを動かしたまではすんなりいったんだが署名ができないとか、文字ばけ
するとかどうも先が思いやられるのでxamalin
やめてAndroid Studioにしようかと迷ってる。こっちはJavaだけど、、
0182デフォルトの名無しさん2016/11/11(金) 19:58:04.56ID:JZCe9Y2P
ラムダ厨うぜー
0183デフォルトの名無しさん2016/11/11(金) 20:14:46.10ID:tUVkv4AT
おはようラムダ君
0184デフォルトの名無しさん2016/11/11(金) 20:20:02.48ID:TqB+9XQ4
ランバダなら知ってる
0185デフォルトの名無しさん2016/11/11(金) 20:27:50.64ID:nfVHRfzR
>>181
c#初心者スレがあるからそっちにいった方がいい
いい加減うっとおしい
0186デフォルトの名無しさん2016/11/11(金) 20:46:50.11ID:KgVthd+h
アッ、もうC#は卒業したんでこないよ。次はJAVAだ
0187デフォルトの名無しさん2016/11/11(金) 20:49:06.76ID:nfVHRfzR
それは良かった
0188デフォルトの名無しさん2016/11/11(金) 21:09:36.24ID:TOO7Y3Ld
ε-(´∀`*)ホッ
0189デフォルトの名無しさん2016/11/11(金) 22:25:05.87ID:+gNs9Nbk
>>181
XamarinはC#に相当慣れ親しんでるか、androidもiOSもそこそこやってる人がまとめて開発したいって場面以外ではまだおすすめできる状態じゃないかな
まだ情報も少ないし、ラムダ式とかイベントとかの基本を自力で調べられない人には特に厳しいと思う
0190デフォルトの名無しさん2016/11/12(土) 20:58:13.68ID:RWma0It4
古いWindowsマシンでAndoroid開発しようとすると
まずエミュレータが動かない

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

MSってエリート揃いじゃないのかな?
0191デフォルトの名無しさん2016/11/12(土) 21:30:04.79ID:cIUa0gZx
古いマシンで開発するやつの事なんかMSが面倒見る義理ねえよ
0192デフォルトの名無しさん2016/11/12(土) 23:10:09.55ID:l9OhshgV
Win10で露骨にレガシーおじさん切り捨てに来たし
流石の聖人マイクロソフトもお荷物を抱えきれなくなってきたんだろうね
0193デフォルトの名無しさん2016/11/13(日) 02:11:36.78ID:PRCnkR8c
xamlが嫌いなら、全部コードで書けば良いのに。
Bindingが理解出来ないのなら、全部コードビハインドで書けば良いのに。
0194デフォルトの名無しさん2016/11/13(日) 02:55:57.86ID:+xp6lf8w
WPFって学習コストが高い(少なくとも俺にとっては)から
苦労して覚えたものを擁護したくなる気持ちはわからんでもないけど、
10年経ってもほとんど普及してないのにはやっぱりそれなりに理由があると思う。

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

MVVM(正直これはあんまり理解してないんで誤解してるかもしれんが)にしてもそうだけど、
理念的に綺麗なのはわかるけど何か「これじゃない」感が強いというか、美しい理想の実現のための
コストが大きすぎるというか...
0195デフォルトの名無しさん2016/11/13(日) 09:01:19.59ID:sNDrzqcx
>194
綺麗なコードをみてみたら素晴らしさが一発でわかるとおもぞ。直感的にすぐに
わかる。わからないようなのではだめだな。

だれか194のためにだせるかな?
0196デフォルトの名無しさん2016/11/13(日) 09:45:56.53ID:lb7gRuG3
>>194
同意。結局世の中に求められてるのは
大ヒットしたVB6レベルなんじゃないかねえ
SOAPがはやらなかったのも一緒。
0197デフォルトの名無しさん2016/11/13(日) 10:23:03.20ID:67al7/78
VB6っぽくも書けるんだけどね。
ポトペタも出来るし。
0198デフォルトの名無しさん2016/11/13(日) 10:23:37.75ID:sNDrzqcx
んーーーーんと考え込むよりもサクサクと作ったほうが手数は多くても生産性が
上がる。と考える人が殆どだから?
0199デフォルトの名無しさん2016/11/13(日) 10:50:51.74ID:lO2MkZMm
html知っていればxamlの可読性にケチを付けること無いと思うんだが
今時html触ったことない人なんだろうか?
0200デフォルトの名無しさん2016/11/13(日) 11:12:37.23ID:ZjdX2IN8
>>198
んーーーーんと考え込むよりもサクサクと作れるような案件ばかりだからだろ
0201デフォルトの名無しさん2016/11/13(日) 11:39:53.10ID:IKKUDTFw
>>194
そんな擁護とか色眼鏡で見ないでも、単純に学習コストが高いのが一番のネックだろう。
0202デフォルトの名無しさん2016/11/13(日) 11:52:49.11ID:fBLfWj6L
どこで何をやってるかわからない、ってのが不思議だな
振るまいを独立にモデリングした上で、UIのどことモデルのどこを対応付けるか、を明確化するのがMVVMであり、バインディングの利点じゃん?
従来のフォーム・イベントゴリ押し的なやり方だとこれが曖昧化してしまうから、どこで何をやってるかがわからなくなる
MVVMでわけわからなくなる人はなにか根本的に間違ったことやってるんじゃないかな?
0203デフォルトの名無しさん2016/11/13(日) 12:15:54.37ID:IKKUDTFw
>>202
慣れてないだけだと思う

>>194
MVVMは高コストって主張も分かる。
単純な案件にはオーバースペックだし、Formsでも十分。
0204デフォルトの名無しさん2016/11/13(日) 14:15:44.38ID:67al7/78
こうして人は老いて逝くのかな。
0205デフォルトの名無しさん2016/11/13(日) 15:30:42.14ID:zWTpia8y
「フロントエンド界隈」が、声だけでかくて市場としては滅茶苦茶小さいのにに似てる
0206デフォルトの名無しさん2016/11/13(日) 19:32:23.00ID:wHFHc9ra
フロントエンドプロセッサ
0207デフォルトの名無しさん2016/11/13(日) 19:51:43.67ID:6IaE8voh
MVVMはOOPと相性悪いよな
間違った変更は拒絶して例外を投げるのが基本のOOP
間違った変更を一時的に受け入れて(そのかわりエラーを状態の一部として持つ)コミット時に不変条件を満たせば良いMVVM
Formsなら例外をキャッチしてメッセージを出して入力を戻すだけでいいからOOP的に正しいモデルをそのまま再利用できる
要するにビューがドメインモデルについてよく知らなくてもビジネスルール的に正しい状態に保つことができる
MVVMだとビュー及びビューモデルがビジネスルール的に正しいか正しくないかということを知っていなければならない
それはビューやビューモデルではなくドメインモデルが管理すべき情報でしょ
0208デフォルトの名無しさん2016/11/13(日) 22:40:30.15ID:67al7/78
レイヤーが違うと思うけど。

難しいから全部フラットで良いよ。
0209デフォルトの名無しさん2016/11/14(月) 17:11:40.86ID:iSq4NCna
var dic1 = new Dictionary<string, string>() { { "key", "value" } };
var dic2 = new Dictionary<string, string> { { "key", "value" } };
どちらでも動くようなのですが、カッコは付けるほうが良いですか?
0210デフォルトの名無しさん2016/11/14(月) 19:10:02.84ID:xSfNgSMs
>>209
お好きな方で。

今なら
{["key"] = "value"}
の方が解りやすいかも。
0211デフォルトの名無しさん2016/11/14(月) 22:10:40.45ID:p26anzny
テキストボックスの入力欄A, B, Cがある
A, Bは自由入力欄、CはA * Bを出力する読み取り専用(A, Bが変化したら即座に再計算される)
A, Bに数値と解釈できない文字列(decimalに変換できない文字列)が入力された場合、即座にERRVALという文字列に置き換える
Cが計算不能な場合、ERRVALという文字列に置き換える
このような画面をWPFで作成したいのですがViewModelとxamlはどのように書けばいいでしょうか?
0212デフォルトの名無しさん2016/11/14(月) 22:57:37.38ID:2SylIT9P
それだけ決まっててむしろどこに悩んでるのさ
0213デフォルトの名無しさん2016/11/14(月) 23:09:54.35ID:p26anzny
>>212
他のプログラマがどう書くか参考にしたいです
0214デフォルトの名無しさん2016/11/15(火) 00:54:17.56ID:gSjda41/
>>199
htmlにはCSSがあるから見た目は外に出せる
0215デフォルトの名無しさん2016/11/15(火) 07:18:35.80ID:wcWx6QZb
>>213
ならまず自分がどう書いたかを晒せよ
0216デフォルトの名無しさん2016/11/15(火) 07:47:41.89ID:AaicVHah
キー入力ミスったら最初から入力しなおしな典型的な糞ソフト仕様だな
0217デフォルトの名無しさん2016/11/15(火) 08:30:57.20ID:9/yxKzNn
>>213
ReactivePropertyのサンプルならググれば見つかるから参考にすりゃいいよ
0218デフォルトの名無しさん2016/11/15(火) 10:37:08.44ID:9/yxKzNn
>>214
xamlを腐しているやつは、xamlを全然知らないんだな
0219デフォルトの名無しさん2016/11/15(火) 11:29:28.89ID:f/VYzzwV
XAMLをよく知っているやつがちゃんとした説明してるの見たことない
0220デフォルトの名無しさん2016/11/15(火) 12:05:59.99ID:Sy8HLWAK
>>219
残念なやつ
0221デフォルトの名無しさん2016/11/15(火) 12:12:58.11ID:f/VYzzwV
というように人格否定しかできない
0222デフォルトの名無しさん2016/11/15(火) 12:39:21.59ID:Sy8HLWAK
>>221
顔真っ赤www
0223デフォルトの名無しさん2016/11/15(火) 14:14:09.51ID:EsNZ5iro
と、知ったかは発狂するのであった
0224デフォルトの名無しさん2016/11/15(火) 17:55:17.20ID:idS/rHgA
CSSはxml形式じゃないから良い
必要なところで必要な形を使うのが良い
0225デフォルトの名無しさん2016/11/15(火) 18:43:22.99ID:IxpYJQnb
全然使われてないのは書店(Amazonでもいいけど)に行くとあからさまにラインナップがしょぼいからすぐ分かる
mizchiと取り巻きの声だけやたらデカいReactみたいなもんだ
0226デフォルトの名無しさん2016/11/15(火) 22:31:04.10ID:YqUWOmsB
>>214
style等は外に出せるぞ。
0227デフォルトの名無しさん2016/11/16(水) 10:35:34.62ID:hL8zHUS9
中はやめてー
0228デフォルトの名無しさん2016/11/18(金) 23:01:26.36ID:+QqWh5ch
変数aがnullならbもnullにして、
aがnullでないならaを用いてmyfuncの計算結果をbに入れたいのですが、

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

こんなふうにしたのですが、もっとスッキリ書けそうな気がするのですが、
思い付きません。
もっとスッキリ書けますか?
0229デフォルトの名無しさん2016/11/18(金) 23:08:28.42ID:2P9KWEZx
myfuncの戻り値を考え直せとしかwwwwwwwwwwww
0230デフォルトの名無しさん2016/11/19(土) 01:56:09.52ID:eBIxsLr/
>>228
var b = a?.myfunc(a);
0231デフォルトの名無しさん2016/11/19(土) 01:57:55.29ID:eBIxsLr/
とおもったらmyfuncはaのメソッドじゃないのね
230は間違い。忘れてくだされ
0232デフォルトの名無しさん2016/11/19(土) 03:57:45.25ID:gmVZjmNi
myfunc(null)がnullを返すようにすれば
b = myfunc(a)で済むんだがなぁ
まあきっとそうではない何かをする関数なんだろうな

おれならaやbがnullである事に特別な意味があったり、myfuncを呼ばない事に特別な意味があるなら
ちゃんとif文書くけどな
0233デフォルトの名無しさん2016/11/19(土) 10:29:56.40ID:0bgRfGhz
>>229
string myfunc(string a){
 if(a==null)
  return null;

を追加したらスッキリしました!
0234デフォルトの名無しさん2016/11/19(土) 11:12:00.41ID:6I7N2mEo
aってstringだったのか…
余計なことを言いたくなるなあ…
0235デフォルトの名無しさん2016/11/19(土) 11:15:09.05ID:ZfUdGYAZ
スッキリワロタ

どうしてもならジェネリックの拡張メソッドを作っとく手もあったね。
0236デフォルトの名無しさん2016/11/19(土) 17:50:29.26ID:t3MBfDke
nullを返す関数を作ると後々災いの元
0237デフォルトの名無しさん2016/11/19(土) 17:52:57.62ID:E8arxXAw
かと言ってstringで""を返す関数を作っても後々災いの元
0238デフォルトの名無しさん2016/11/19(土) 17:55:21.80ID:VKIYWaqI
>>236
またその話か
それはないよ。
0239デフォルトの名無しさん2016/11/19(土) 23:03:49.26ID:0bgRfGhz
>>236
なんで?
0240デフォルトの名無しさん2016/11/20(日) 00:13:29.86ID:BknfpFpO
暫く使ってみたがWPFというかMVVMはやっぱり良くないな
暫定的にとはいえ不正な状態のオブジェクトを受け入れるってのが致命的にコードを汚くする
カプセル化で状態を保護するのが基本のオブジェクト指向に喧嘩売ってるとしか思えない
0241デフォルトの名無しさん2016/11/20(日) 00:26:32.91ID:K2ib4r+U
>>239
その関数使う使う時に一々nullチェックするの面倒。
それを忘れない保証もどこにもないし。
0242デフォルトの名無しさん2016/11/20(日) 00:30:59.63ID:ckE9xegj
>>241
何という頭の悪さ。

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

何でこんな簡単なことが分からないのかね。
0243デフォルトの名無しさん2016/11/20(日) 01:00:26.85ID:KPo4Qlq+
FindFirstみたいなメソッドでマッチしない場合にnullじゃないオブジェクトを
返されたとしてもどのみちチェックする必要が出てくる
0244デフォルトの名無しさん2016/11/20(日) 01:09:39.51ID:X8MMRSH3
null返す関数禁止じゃなくてnull代入禁止型にしてくれ
0245デフォルトの名無しさん2016/11/20(日) 01:27:12.98ID:K2ib4r+U
>>242
勉強不足
0246デフォルトの名無しさん2016/11/20(日) 01:38:16.74ID:K2ib4r+U
>>244
C#7.0か8.0に期待。
0247デフォルトの名無しさん2016/11/20(日) 02:13:42.33ID:ckE9xegj
期待するだけ無駄。

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

だいたい、nullを許容することの弊害なんて大半はそれを主張してる奴が勘違いしてるだけだ
0248デフォルトの名無しさん2016/11/20(日) 02:22:59.08ID:9PtzIqGH
老害臭が半端無いんだが。
0249デフォルトの名無しさん2016/11/20(日) 02:25:15.52ID:ckE9xegj
年齢の問題じゃないね。
馬鹿かそうでないか、それだけの問題
0250デフォルトの名無しさん2016/11/20(日) 05:58:45.20ID:2ye3zmI2
>>244
nullを返す関数や変数にnullを代入する処理をよく使うのですが、
それで混乱した経験も無いのですが、なぜ、
 nullを返す関数
 変数にnullを代入
に反対する人がいるのでしょうか?
0251デフォルトの名無しさん2016/11/20(日) 07:22:58.86ID:pCJ1qvOZ
>>250
>>241と同じ
0252デフォルトの名無しさん2016/11/20(日) 08:05:54.92ID:2ye3zmI2
>>251
>その関数使う使う時に一々nullチェックするの面倒。
>それを忘れない保証もどこにもないし。
この意味が分からないのですが、関数を使うときにnullチェックする
と言うのは何ですか?
関数がnullを返す場合もあるように自分でそうしているわけだから
何も問題ないと思いますが。
0253デフォルトの名無しさん2016/11/20(日) 08:15:43.24ID:pCJ1qvOZ
>>252
理解できない奴には理解できないからもう気にするな。null禁止にしても同じ問題起きるしw
0254デフォルトの名無しさん2016/11/20(日) 08:27:09.27ID:2ye3zmI2
>>253
気になるんです。
教えてください。
0255デフォルトの名無しさん2016/11/20(日) 08:32:27.43ID:w/pS54nD
そもそもこれは戻り値がstring限定の話じゃないの?
普通のオブジェクトでnull禁止はありえないからね
0256デフォルトの名無しさん2016/11/20(日) 08:43:15.40ID:pCJ1qvOZ
>>255
(nullでなく()デフォルト値を入れた空のオブジェクトを返すって考え方もあるからオブジェクトでも同じだよ
そもそも1つの戻り値で関数失敗成功情報まで返そうとするのが間違い
0257デフォルトの名無しさん2016/11/20(日) 08:47:01.08ID:3blV6AGf
値型は null にならないのでそれで用は足る。面倒なのは、Stringだかが。昔のBASIC の文字列型のように実装した値型を用意すれば解決。
0258デフォルトの名無しさん2016/11/20(日) 09:29:50.43ID:2ye3zmI2
>>257
>面倒なのは、String
C#で文字列を扱っていてnullの扱いで面倒だと感じた経験が
一度もないのですが、Stringでnullがなぜ面倒なのですか?
0259デフォルトの名無しさん2016/11/20(日) 09:42:15.04ID:BknfpFpO
nullは情報を捨ててしまうから可読性が低くなる
エラー許容型を作ってそれを使うのが定石

Errorable<string> s = func();

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

if(s.NotFound) ...
if(s.AuthError) ...
if(s.FormatError) ...
...
0260デフォルトの名無しさん2016/11/20(日) 09:59:28.46ID:Y223jndk
>>259
> その関数使う使う時に一々nullチェックするの面倒。
> それを忘れない保証もどこにもないし。
全然改善されてないだろ w
てか、その例なら素直に例外使えよ
0261デフォルトの名無しさん2016/11/20(日) 10:11:47.90ID:GbOcvoRT
IsNullアンチパターンみたいだね
0262デフォルトの名無しさん2016/11/20(日) 10:12:24.08ID:wbF3tHCA
>>260
チェックなしでValueにアクセスしたら例外を投げる
Errorableという名前が見えることによってチェックを忘れるということを回避できる
チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている
0263デフォルトの名無しさん2016/11/20(日) 10:27:40.57ID:9PtzIqGH
もう一歩踏み込んで、Maybe。
Valueプロパティは、もちろん無し。
0264デフォルトの名無しさん2016/11/20(日) 10:30:00.58ID:X8MMRSH3
宗教としてC#にアイデンティティを代替している連中(貧乏人ほどオリンピックが好きなのと同じ)なのに
仕様を否定したって聞き入れる訳ないじゃん

ヘジにアントニー・ホーアの言葉をどう考えるか聞いた奴がいるが
なんて答えたか知らないんだろうし
(あるいは、C#に間違いがあってはならないから目をつぶっているか、そもそも英語は読めないか)
0265デフォルトの名無しさん2016/11/20(日) 10:30:10.23ID:9PtzIqGH
>>250
ぼっちで書いてる時は、好きにする宜し。
0266デフォルトの名無しさん2016/11/20(日) 10:35:26.28ID:2ye3zmI2
文字列の場合にはNullも "" も同じだと思えばいいよね
0267デフォルトの名無しさん2016/11/20(日) 10:37:02.45ID:NgPgW0rj
参照型とnull許容型は別の概念にするべきだったと言ってるし
現在、null非許容型を破壊的にならないように言語仕様を変えよう(追加しよう)としている。

将来を全て見通せる人は、いないと言う事だよ。
0268デフォルトの名無しさん2016/11/20(日) 10:38:09.66ID:Y223jndk
>>262
> チェックなしでValueにアクセスしたら例外を投げる
ならはじめから例外でいいだろ

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

> チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている
たぶん思い付きで書いてるんだろうけど例えば Errorable<string> の
> if(s.AuthError) ...
って何を返すの?
自作のクラスで新しいエラー状態をチェックしたい時はどうするの?
いちいち Errorable を派生させたりしたらチェック方法が統一できないしどうするつもり?
0269デフォルトの名無しさん2016/11/20(日) 10:40:19.54ID:Y223jndk
>>266
お前さんがそれでいいならなんの問題もない
0270デフォルトの名無しさん2016/11/20(日) 10:48:41.71ID:NgPgW0rj
>>249
最近は若くても「老害」みたいな人が少なくないよね。

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

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

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

エラーというのは幾つかの典型的なエラーに分類可能
例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
新しいエラーを定義する必要はない
0272デフォルトの名無しさん2016/11/20(日) 11:34:52.66ID:Y223jndk
>>271
> パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切
まあ、これはいいとして

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

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

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

> 新しいエラーを定義する必要はない
自称エスパーのお前はそうなんだろうね w
0273デフォルトの名無しさん2016/11/20(日) 11:43:29.92ID:lYnhz1xv
null非許容型が追加されたら便利だなーとは思う
「nullをなくせ」という意見にはまったく賛同できないが

エラー許容型は、エラーの種類を enum で返すプロパティを付けたものをよく作る
(エラー種類ごとにプロパティ作るようなことはしない)
でも、nullで済む場合も多いんだよね
0274デフォルトの名無しさん2016/11/20(日) 11:43:53.85ID:kKwT4/wt
>>272
はぁ

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

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

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

nullを見ただけでエラー内容がわかる歴史上類を見ないほどに強力なエスパーの君にはかなわないよ
プログラマにしておくのは勿体無いから新しい宗教でも立ち上げることをお勧めするよ
0275デフォルトの名無しさん2016/11/20(日) 11:47:36.19ID:pCJ1qvOZ
変数にエラーコードを入れるっていう発想がもうw
0276デフォルトの名無しさん2016/11/20(日) 11:47:38.25ID:GbOcvoRT
>>266
その考えの場合はnullじゃなくて、""を返すのも良いかもね。
0277デフォルトの名無しさん2016/11/20(日) 11:56:23.29ID:Y223jndk
>>274
> そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか
え?
オレオレスタイルをどや顔で言われても困るんだが w

> これらは普通は別にする
結局 Errorable<string> と Errorable<database> は別に作るってことかよ...
チェック方法が統一出来るとかほざいてたのにね w
0278デフォルトの名無しさん2016/11/20(日) 12:10:20.24ID:kKwT4/wt
>>277
はぁ

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

別に作らないよ
君は超人的エスパーだから何をどう考えてそういう答えにたどり着いたのか常人にはちょっと理解しがたいんだ
これからはそのことを考慮して常人にもわかるように丁寧に意見して欲しい
0279デフォルトの名無しさん2016/11/20(日) 12:10:41.53ID:zFrmc+0J
>>266
オラクルですね
0280デフォルトの名無しさん2016/11/20(日) 12:23:00.48ID:L/fyhMFX
>>277
みっともないから、もう止めとけ。
0281デフォルトの名無しさん2016/11/20(日) 12:30:03.99ID:Y223jndk
>>278
オレオレスタイルは宗教だろうから教祖さんと争う気はないよ w

で、
> これらは普通は別にする
の意味を説明してみ
0282デフォルトの名無しさん2016/11/20(日) 12:30:42.62ID:Y223jndk
>>280
お前がな w
0283デフォルトの名無しさん2016/11/20(日) 12:37:01.76ID:kKwT4/wt
>>281
この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
君は何をどう考えてErrorable<string>とErrorable<database>は別に作るという考えに到達したの?
ジェネリック型の新しい使い方を編み出したの?
ハイレベルすぎてついていけないよ
一体何段階思考手続きをスキップできればこの境地にたどり着けるのか
0284デフォルトの名無しさん2016/11/20(日) 12:38:10.81ID:aCqfb5MR
数字の0が無かった時代に0の発明を否定する人みたいだな。
0285デフォルトの名無しさん2016/11/20(日) 12:43:24.41ID:h3zFIm5r
何度も言うけどnullを追放したって問題Aが別の問題Bに置き換わるだけ。
そして普通に考えれば問題Bの悪質性はAより大きくなる場合の方が多いだろう。

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

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

からといって

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

であるとは限らない。
この程度のことも分からない奴はプログラマ辞めろよ本当
0286デフォルトの名無しさん2016/11/20(日) 12:45:41.10ID:2ye3zmI2
>>279
そう、
オレオレスタイルではなてく
オラクルスタイルだ。
0287デフォルトの名無しさん2016/11/20(日) 12:53:48.90ID:Jza3G5L3
結局メソッドがエラーを返せるようにするにはどうするのが一番いいの?
0288デフォルトの名無しさん2016/11/20(日) 12:54:07.99ID:Y223jndk
>>283
> この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
そんな話は全くしてないが?
そんなのどうでもいいから
>> で、Errorable<string> の AuthError ってなにさ
の答えを書けよ w
0289デフォルトの名無しさん2016/11/20(日) 12:54:12.13ID:L/fyhMFX
まさに、井の中の蛙 (´・ω・`)
0290デフォルトの名無しさん2016/11/20(日) 12:57:21.73ID:L/fyhMFX
>>287
1つの手段は、エラー種類と「値」のタプルを返す。
これだと、エラー処理を強制は出来んけどね。
0291デフォルトの名無しさん2016/11/20(日) 12:57:41.85ID:Y223jndk
>>289
上から目線で意味のないこと言ってるけどどうしたの?
ここ仮にも技術系の板だから話に加われないなら黙っていてくれるとありがたいんだが
0292デフォルトの名無しさん2016/11/20(日) 17:21:32.25ID:XK08TpAy
エラーはほとんどの場合例外でいいよ
でも例外が使えない場面もあるんだよなぁ
0293デフォルトの名無しさん2016/11/20(日) 18:54:25.34ID:34y1pXq0
>>287
エラーと言ってもいろんなレイヤーでいろんな事があるわけで
結論としてはケースバイケースでどれが一番とか決めれない

これを理解できずに単一の方法ですべてやろうとするからおかしな話になるわけで
まあ、宗教論はその宗旨に納得できる点がある場合もあるけど、他の宗教を認めないのがなぁ
0294デフォルトの名無しさん2016/11/20(日) 19:03:56.76ID:eCa9a5kv
例外を投げないパターンはここらへんを読むといいんじゃない?
一般的とは行かなくても、オレオレではない
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
0295デフォルトの名無しさん2016/11/20(日) 19:18:59.75ID:V9rEuhsa
nullable-likeの提案は良いね
0296デフォルトの名無しさん2016/11/20(日) 19:26:56.04ID:w/pS54nD
nullを排除するために、何故ここまで複雑に作る必要があるのか理解出来ん
普通にnull使えよw
0297デフォルトの名無しさん2016/11/20(日) 19:31:08.12ID:34y1pXq0
単にnullの取り扱いから、例外処理についてに話が拡大してるからな
0298デフォルトの名無しさん2016/11/20(日) 19:46:59.71ID:ELwGw4ow
null排除派はごく一部いるけど市民権を得てない
メリットが薄いから

3 == i と言う書き方みたいにこだわる人だけこだわる
0299デフォルトの名無しさん2016/11/20(日) 20:23:01.03ID:JNgwCyth
今後iOS開発の主流になるだろうSwiftがnull非許容ベースだから
将来的には分からないかもよ
0300デフォルトの名無しさん2016/11/20(日) 20:32:56.89ID:ixFUSBgZ
信者にそんな話しても無駄
0301デフォルトの名無しさん2016/11/20(日) 20:42:02.87ID:RSV7nlYW
null あってもいいって言ってるのはなきゃなでも構わない人が大半じゃないかと思う。
Swift が非許容でそれを使う必要があるなら、それの流儀でなんの苦もなく対応しそう。

そんなことに拘ってるのはオレオレな一部の人だけじゃねーのかなぁ。。
0302デフォルトの名無しさん2016/11/20(日) 21:02:17.68ID:2AHf550w
異教徒にそんな話しても無駄
0303デフォルトの名無しさん2016/11/20(日) 22:12:22.04ID:eCa9a5kv
>>296
それを言い出すとなにも言語仕様がいじれなくなっちゃう
Javaとかは進化が停滞して今必死に挽回してるし

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

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

安全どころか、nullであれば容易に発見できたバグをわざわざ発見困難にするだけ。
何がうれしいんだそんなの。
0305デフォルトの名無しさん2016/11/21(月) 00:24:21.34ID:hlf3slD2
ScalaのOption使ってみた感想
・今までは無効な値(null)を返す可能性がある事は、ドキュメントを読まないと分からなかったけど定義だけで分かるから便利
・分解が色々な方法で出来て便利
まあなくても何とかなるけど、あれば便利程度
0306デフォルトの名無しさん2016/11/21(月) 01:11:30.92ID:fZvEw43o
F#にもoptionあるけど死ぬ程便利だわw
先ず、エラーを握り潰す事が出来ない。
ドキュメントを読む必要が無い。
monadとして扱うと、一々ifで分岐書く手間がなくなる。
eitherまで踏み込めば、検査例外云々で議論する事自体が馬鹿らしくなる。
面倒くさいけどねw

C#のint?を使った事ある人には解ると思う。
コンパイラに事前チェックをしてもらえる有り難みが。
機械に解る単純作業?に対して、人間が一々苦労する馬鹿らしさが。
0307デフォルトの名無しさん2016/11/21(月) 01:16:13.30ID:fZvEw43o
それから、初心者に対してこそ効果抜群だよ。
「そう書く」事しか出来ないから。
強制出来るから。
0308デフォルトの名無しさん2016/11/21(月) 01:34:00.10ID:CO+aVjyU
検査例外も出たときは素晴らしい機能だって絶賛されてたような気がするなぁ
0309デフォルトの名無しさん2016/11/21(月) 02:03:53.66ID:n+GSTHBL
検査例外は他に誰も採用しなかったけど
Optionalはこぞって採用されているという決定的な違いがある
0310デフォルトの名無しさん2016/11/21(月) 02:04:20.65ID:n+GSTHBL
あ、ごめん
C#perにそんなこと言っても分からないよね(苦笑)
0311デフォルトの名無しさん2016/11/21(月) 11:12:26.42ID:Ka0MFQDU
ん?Optional?VBの話?
0312デフォルトの名無しさん2016/11/21(月) 11:41:21.77ID:hLpmxTjl
グラディウスだろ
0313デフォルトの名無しさん2016/11/21(月) 17:31:28.36ID:fZvEw43o
>>310
このスレにもいるような「老害」は少数派だよ



と信じたい。
0314デフォルトの名無しさん2016/11/21(月) 20:45:41.48ID:HLjti5+r
実際、エラーの扱いは時代によって色々変わってきてるからね
null安全の手法はこれからの主流になっていくのかもしれない
そんで、また数年後には新しいやり方に置き換えられるんだろう
0315デフォルトの名無しさん2016/11/21(月) 21:06:27.63ID:4A1pLeCT
エラーの扱いじゃなくてヒューマンエラーを未然に防ぐのが意図でしょnull安全ってのは。
その意図は認めるけど、null安全がその目的に対して合理的とは全く思わんがね
0316デフォルトの名無しさん2016/11/21(月) 21:15:05.95ID:fZvEw43o
option型とnull安全は重なってる部分もあるけど、意味としてズレてる部分もある。
例えば、C#の値型でもoption型は有意義な訳で。
0317デフォルトの名無しさん2016/11/21(月) 22:30:24.18ID:wfKopLFy
サードパーティーライブラリーを使えない前提でオブジェクトのマッピングを手軽に行うにはなにを使う?
パフォーマンスはあまり気にしていない
同名同型のプロパティをマッピングできれば十分
今のところシリアライザーで誤魔化してる感じ
0318デフォルトの名無しさん2016/11/22(火) 00:16:30.64ID:QATijxTL
null安全よりstring?.lengthの方が合理的に見えるわ
最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな
0319デフォルトの名無しさん2016/11/22(火) 06:51:43.66ID:y8FHZWuV
>>318
> 最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな
これには同意するけど

> null安全よりstring?.lengthの方が合理的に見えるわ
これはないわ
string が null になる可能性がないなら普通に string.length って書いた方がエラーが早期にわかるからデバッグも楽だし
0320デフォルトの名無しさん2016/11/22(火) 07:50:04.91ID:vhsrXRxU
?.もnull安全の一環な気はする。

ちなみに、null非許容型導入の影響で、?.を使っていない箇所は全てwarning扱いになる話もあったりする。
0321デフォルトの名無しさん2016/11/22(火) 13:10:29.71ID:bfu4FZ0h
string?.length
これって式の左辺に何書くの?

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

?.演算子は参照型と値型のペアでは使いにくいし分かりにくいと思う
0322デフォルトの名無しさん2016/11/22(火) 17:09:05.83ID:EJKURZYz
君ら一体何を議論してるの?
分かりやすく解説してくれ
0323デフォルトの名無しさん2016/11/22(火) 17:11:14.76ID:VnsYzvlz
Optionalの是非というか使い所の話でないの?
0324デフォルトの名無しさん2016/11/22(火) 19:57:46.66ID:vhsrXRxU
>>321
例えば
int len = str?.Length ?? 0;
0325デフォルトの名無しさん2016/11/22(火) 20:13:33.64ID:ga0p/qoV
C++の参照は良いものだった
0326デフォルトの名無しさん2016/11/23(水) 10:56:47.19ID:Sj0D9A4Y
>>325
なんで過去形?
0327デフォルトの名無しさん2016/11/23(水) 11:55:24.93ID:Sj0D9A4Y
http://stackoverflow.com/questions/22595655/how-to-do-a-dictionary-reverse-lookup
このページで
dictionary.FirstOrDefault
とやっていますがディクショナリーにFirstOrDefaultを
やるとなぜこういう結果になるのですか?
0328デフォルトの名無しさん2016/11/23(水) 13:27:10.63ID:GLuKyrfg
>>327
何を「何故」と思ってるか分からん
0329デフォルトの名無しさん2016/11/23(水) 18:46:09.31ID:QXjR6WNV
>>327
Dictionaryは、IEnumerable<KeyValuePair>を実装しているから。
0330デフォルトの名無しさん2016/11/23(水) 19:25:46.80ID:Sj0D9A4Y
>>328
FirstOrDefault って最初の要素を取って来るんじゃないんですか?
何故全ての要素をループ出来るんですか?
0331デフォルトの名無しさん2016/11/23(水) 19:44:53.91ID:GLuKyrfg
>>330
『引数の条件に一致した』最初の要素ね。
内部的には列挙子で探してるよ。
0332デフォルトの名無しさん2016/11/23(水) 19:48:19.93ID:4RFw+AHR
列挙子=enum ・・・
0333デフォルトの名無しさん2016/11/23(水) 19:49:49.71ID:dUmyuUeh
列挙子はIEnumeratorですw
0334デフォルトの名無しさん2016/11/23(水) 20:19:45.57ID:Sj0D9A4Y
>>331
そういうことですか。
良く分かりました。
皆さん、ありがとうございました。
0335デフォルトの名無しさん2016/11/23(水) 20:45:31.10ID:mr7aPRRr
>>322
時代の流れについて行けないおじいちゃん達をいかに介護するかの議論だよww
0336デフォルトの名無しさん2016/11/24(木) 09:15:21.21ID:DNYUjCey
プロジェクト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オペレーションでビルドできるようにしたい
なんとかなりませんか?
0337デフォルトの名無しさん2016/11/24(木) 09:36:13.90ID:iMAQMNBa
そういうのは依存してるとは言わない

aだけビルドするsln、bcだけビルドするsln作っておいて
aだけビルドするabcのslnでbcはポストビルドイベントでコマンドラインビルド、
bcだけビルドするabcのslnでaはプリビルドイベントでコマンドラインビルドとか?
0338デフォルトの名無しさん2016/11/24(木) 14:18:54.69ID:G2Ig6Dqz
>>336
Webサイトって、Webアプリとは違ってランタイム側でビルドするんじゃなかったっけ?
0339デフォルトの名無しさん2016/11/24(木) 18:57:30.96ID:/9TZdtP5
>>336
プロジェクトCを4.0指定で実行させれば良いんじゃ

>>338
webサイトにもプリコンパイルってのがある
VSがサポートしてるのかどうかはしらんが
0340デフォルトの名無しさん2016/11/24(木) 22:53:33.34ID:5QlniI4z
教えて下さい。

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

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

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

と言う状態になりました。
サービスプログラム内でプロセス間通信、この場合は名前付きパイプですが、の使用に制限などはあるのでしょうか。
他の要因を考えるべきか悩みました。情報があれば教えていただけると助かります。
0341デフォルトの名無しさん2016/11/25(金) 01:40:52.65ID:gI/r9WkT
>>340
セッション0のアクセス権限の問題。

namedpipeclientstream-can-not-access-to-namedpipeserverstream-under-session-0
http://stackoverflow.com/questions/13174660/
0342デフォルトの名無しさん2016/11/25(金) 10:25:47.20ID:2+oHnkxr
fw3.5からfw4.0以上のdllを参照する方法ないかなぁ?
0343デフォルトの名無しさん2016/11/25(金) 15:18:07.17ID:6J0+Q2dT
>>341
よくそんなのぱっと出てくるなあw
03443402016/11/25(金) 23:09:50.97ID:Oc8F6euI
>>341
やっぱりそういうのがあったんですね。。
対策を考えます。
ありがとう。
0345デフォルトの名無しさん2016/11/26(土) 00:37:00.99ID:pkHe6RQg
上のリンク先の回答みたいにPipeSecurityとか適切に設定してやればいいんじゃないの
0346デフォルトの名無しさん2016/11/26(土) 15:34:45.46ID:w/Dhvdu8
WindowsのAPIだからC#とは直接的には関係ないけど教えてほしい。
特定のウィンドウにキーボードイベントを送信しようと考えている。
keybd_eventを使用してキーボードイベントの送信する事は成功した。
ちなみに第二引数のスキャンコードは使用しない、みたいな事を書いてあるサイト(MSDN含む)が多かったが
スキャンコードを指定しないと対象アプリがキーボード処理を受け付けてくれなかったため指定してある。
対象アプリがバックグラウンド中であっても操作しようと考えてSendMessage(またはPostMessage)に変更しようとしたのだが
スキャンコードはどこにどのように設定すればいいのだろう?
第四引数のlParamであろうと言う事は想像がつくが、スキャンコードをそのまま設定しても駄目だった。
0347デフォルトの名無しさん2016/11/26(土) 16:13:12.18ID:dXHq99jt
>>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を吐くウィンドウプロシージャでも作ると良い
03483472016/11/26(土) 16:22:01.70ID:dXHq99jt
> 離すときはWM_KEYUPにして32ビットを立てる
うっかりミスった、30〜31ビットね
WM_KEYDOWN時のlParam | 0xC0000000する形
03493472016/11/26(土) 16:37:54.65ID:dXHq99jt
あ、そもそもC#でもウィンドウプロシージャオーバーライド出来たっけ
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
if(0x0100 <= m.Msg && m.Msg <= 0x0102) Text = m.ToString();
}
とか適当なフォームでやれば実際のウィンドウメッセージが確認できるよ
0350デフォルトの名無しさん2016/11/26(土) 17:19:55.67ID:w/Dhvdu8
>>347-349
非常に参考になった。
これを元にキー送信処理を作り直すことにするよ。
03513402016/11/26(土) 21:03:56.05ID:ZtR+Z7Wd
>>341,345
昨日はまだ調べていませんでした。
341 に書いていただいた URL の方法で普通に出来ました。
ありがとう。
0352デフォルトの名無しさん2016/11/27(日) 21:23:49.80ID:I1ny1q/I
妙な質問だけど、今2ch以外でユーザー同士でC#関連の質問解答ができるコミュニティーって、

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

質問して答えが返ってきそうなのはこのぐらい?
あ、別にマルチで質問投げてやろうとかそういう意図ではないので念のため
0353デフォルトの名無しさん2016/11/28(月) 00:18:17.41ID:n0A2uJuC
ja.stackoverflowはもう泣く以外の道ないなw
0354デフォルトの名無しさん2016/11/28(月) 00:18:37.64ID:VTugBhJZ
>>352
StackOverflow一択だろ
0355デフォルトの名無しさん2016/11/28(月) 00:23:13.14ID:fF5TvHl5
google翻訳少し賢くなったんだから「このページを翻訳する」で結構使える
0356デフォルトの名無しさん2016/11/28(月) 01:04:22.51ID:v97E8kC6
>>352
最近はteratailもありかも
あとは、.NET共通のことならVB中学校も一応あり
0357デフォルトの名無しさん2016/11/28(月) 01:42:44.60ID:9T0ZytTv
>>353-354
stackoverflowって日本語版もあったのかw
ありがとう

>>356
teratailはまったく知らなかったありがとう。
0358デフォルトの名無しさん2016/11/28(月) 03:25:24.52ID:PwcZf+No
あとはQA@ITとか
0359デフォルトの名無しさん2016/11/28(月) 04:33:07.21ID:VTugBhJZ
>>357
日本語限定ってどこかに書いてあったっけ?
0360デフォルトの名無しさん2016/11/28(月) 19:31:45.97ID:FcPInj/k
>>359
>- MSDNフォーラム
>- わんくまの掲示板
>- DOBON.NETの掲示板
日本語って一目で分かるだろ
0361デフォルトの名無しさん2016/11/28(月) 19:35:28.66ID:MT+LNPN6
落ち着けよハゲのブラザー
0362デフォルトの名無しさん2016/11/28(月) 21:09:47.26ID:SXoUdBtU
>>354は stackoverflow.com のつもりで書いたが>>357は ja.stackoverflow.com を見つけて、
日本語版の存在を知らなかった>>354は>>357を皮肉と受け取った。
0363デフォルトの名無しさん2016/11/28(月) 21:23:26.86ID:C8x/B1Vp
>>360
バカの連鎖反応
0364デフォルトの名無しさん2016/11/28(月) 21:35:12.23ID:Efu8jG2p
人脈作れば全部解決だろ
Xamarinユーザー見習えよ
0365デフォルトの名無しさん2016/11/28(月) 22:05:43.16ID:/OQd0iyQ
元の質問者の>>352だけど、質問の仕方がまずかったなら謝るけど
無意味に喧嘩腰でつっかかるのはどうかと思うよ

意図としては英語も排除しないけど日本語のを中心に教えて欲しかった。
英語は読むのは何とか読めても書く(質問する)のは結構つらいっすわ。
0366デフォルトの名無しさん2016/11/29(火) 15:41:26.31ID:07zLg605
>>364
あのオタサー集団と同列に見られるのは非常に辛い
0367デフォルトの名無しさん2016/11/30(水) 08:32:18.72ID:rOv2n/Yl
axwindowmediaplayerで次、前のボタンにイベントを割り当てるのはどうしたらいいですか。
this.axWindowsMediaPlayer1.Ctlcontrols.next += new AxWMPLib.なんちゃらなどで記述?
ボタン自体もグレーアウトしていて使えない状態です。

再生などのボタンは初めから再生が割り当てられていてなにも記述しないでもよかったのですが。
0368デフォルトの名無しさん2016/11/30(水) 11:01:13.74ID:U6G+25fY
AxWindowsMediaPlayerでそんな細かい制御はできない
currentPlaylistとかでIWMPMedia管理すればそれらも使えるようになるはず
組み込みのプレイリスト使いたくないならUIも自分で全部やる
0369デフォルトの名無しさん2016/11/30(水) 16:39:10.32ID:y2jQ/DIV
LINQのQuantifierの日本語訳なんだけど、MSDNだと量指定子、
岩永さんのところだと限定子となってるけど、どっちがより適切だと思う?

https://msdn.microsoft.com/ja-jp/library/bb546128(v=vs.120).aspx
http://ufcpp.net/study/csharp/sp3_stdqueryo.html#quantifier
0370デフォルトの名無しさん2016/11/30(水) 23:23:25.49ID:rOv2n/Yl
>>368
ありがとう。プレイリストがよさそうです。
0371デフォルトの名無しさん2016/12/01(木) 09:05:41.40ID:ySUX8EsS
>>369
語義的には量指定子じゃない
quantityが量だから
0372デフォルトの名無しさん2016/12/01(木) 18:33:51.23ID:CcMyBcAe
でも量指定子って正規表現的な言い回しだよな。
SQL的な言い回しだとALL,ANY,SOMEとかは限定子になるはず。

http://software.fujitsu.com/jp/manual/manualfiles/M100005/J2X17484/01Z200/J7484-00-02-11-06.html
0373デフォルトの名無しさん2016/12/01(木) 18:37:08.39ID:CcMyBcAe
ただまあ本家が量指定子ってるんだから、量指定子が正式用語ではあるだろうけど。
0374デフォルトの名無しさん2016/12/01(木) 18:39:48.63ID:lOA8D/0g
英語のまま使ってもらいたい
0375デフォルトの名無しさん2016/12/01(木) 19:00:45.21ID:74fND9I4
そもそもそんなキーワードを使う場面が思い浮かばない…
0376デフォルトの名無しさん2016/12/02(金) 00:05:35.89ID:ui5LUeC9
AnyとAllとContainsをまとめて分類しただけの言葉のようだが、禿しくどうでも良い
0377デフォルトの名無しさん2016/12/02(金) 00:27:24.78ID:57Q76p9I
一般的な呼び方じゃ量化子だよな。
0378デフォルトの名無しさん2016/12/02(金) 06:58:37.23ID:jL2K9FKD
LINQは日本語ではなに? LINQは英語のままで量化子だけ日本語てのは
運用の誤り。
無理やり日本語にするならクオンティフィアでいいと思うがゴミみたいな
概念をわざわざ日本語にするのはよくない。説明的に日本語で「量化を
意味する」のように使うのは問題ないが、「量化子」のように語彙にして
しまうのはよくない。英語のまま運用するのがよい。
0379デフォルトの名無しさん2016/12/02(金) 07:09:43.00ID:jL2K9FKD
訂正
このサイトの説明では
Any,All,Conttainsを総合的に説明するのが目的だからLINQという具体的な
ものよりは上位概念だな。この場合は限定子で正しいと思う。
量指定、量化はちょっと違うな。
0380デフォルトの名無しさん2016/12/02(金) 07:21:27.21ID:iUEu5k7c
LINQは固有名詞だから訳しようがないけど量化子はすでに記号論理学でも使われてる一般名詞だろ
03813362016/12/02(金) 07:48:29.69ID:GGzlnXmJ
めんどくさいから英語のままでいいってのはある
0382デフォルトの名無しさん2016/12/02(金) 10:36:52.50ID:X9iN1GdM
明治の人に謝るべき暴言。
0383デフォルトの名無しさん2016/12/02(金) 14:59:21.44ID:rEQGNTwO
>>380
LINQはLanguage Integrated Queryを省略してるだけだから日本語化できるでしょ(してもらいたくないが)
OPEC〜石油輸出国機構みたいに訳してる例は多い
0384デフォルトの名無しさん2016/12/02(金) 17:36:35.56ID:8D4FZt7r
>>383
してみ
0385デフォルトの名無しさん2016/12/02(金) 17:40:15.92ID:DaaN/lCj
383ではないが、『言語に統合された問い合わせ』
・・・ないわ
0386デフォルトの名無しさん2016/12/02(金) 18:09:20.76ID:rEQGNTwO
>>384
統合言語クエリって単語がすでにある。クエリも訳したら統合言語処理要求か?
0387デフォルトの名無しさん2016/12/02(金) 19:38:47.97ID:4/nN0nxx
組込問合せ機能 辺りでいいんじゃね?
0388デフォルトの名無しさん2016/12/02(金) 20:25:58.53ID:fkVt0GEN
統合失調言語
0389デフォルトの名無しさん2016/12/02(金) 20:31:59.72ID:57Q76p9I
「LINQは LINQ Is Not Queryの略」とか言い出して、その後「LINQはLINQ。略語や頭字語じゃない」とか言い出す。
0390デフォルトの名無しさん2016/12/02(金) 20:59:04.23ID:fqYy1w3v
一体誰のことを揶揄した気になっているのかね
0391デフォルトの名無しさん2016/12/02(金) 21:09:36.57ID:ui5LUeC9
横だがストールマン以外の誰と言うんだよ
0392デフォルトの名無しさん2016/12/04(日) 09:09:46.43ID:HFDVK7VF
おまえら言語センスがないな。「問式」でOK。今後日本語でのLINQこれだ。
0393デフォルトの名無しさん2016/12/04(日) 09:20:34.29ID:a6Aihxwg
Bingに聞いたらLINQの日本語訳はLINQでいいってさ
マイクロソフトのお墨付きだからこれが正解な
0394デフォルトの名無しさん2016/12/04(日) 09:42:24.52ID:zAL6lz1+
Binqに聞いたらLINQの日本語での質問はLINEQでいいってさ
に見えた
0395デフォルトの名無しさん2016/12/04(日) 10:29:28.25ID:U0Kel+uM
こういう関数を作ったら
void func<T>(T obj, string name) {

  obj[name] = ...

}

[name]の部分でエラーが出ます。
こういう関数は作れませんか?
0396デフォルトの名無しさん2016/12/04(日) 10:41:15.33ID:0sR5hBHN
すべてのクラスが this[string] を持つわけじゃないから…
自分がTに入れたいクラスをwhere T: で指定しては
0397デフォルトの名無しさん2016/12/04(日) 11:15:31.06ID:U0Kel+uM
>>396
ありがとうございました。
上手く行きました。
0398デフォルトの名無しさん2016/12/04(日) 12:05:02.46ID:OeUSkEhR
ジェネリックは使いにくいよな
C++みたいな仕様にしてくれりゃいいのに
0399デフォルトの名無しさん2016/12/04(日) 12:33:20.31ID:sIaSQQRI
>>398
あほす
0400デフォルトの名無しさん2016/12/04(日) 12:56:13.33ID:3+5uaoN5
C++のテンプレートの糞エラーは酷いよな
C#みたいにしてくれりゃあいいのにww
0401デフォルトの名無しさん2016/12/04(日) 13:58:45.59ID:VS/jD7cp
>>398
なんでわざとあんな文法になってると思うんだよ
JIT言語の特長を最大限に活かすためだぜ
コンパイラ言語みたいに使うコードを全てあらかじめ生成しておくわけではなく
Tでnewされた時に初めてコードを生成するからメモリ使用量も少ない

ただ利点はそのまま欠点にもなる
T型同士の演算コードを書くとたちまちエラーになるのでdynamic型にキャストするとかしないとな
0402デフォルトの名無しさん2016/12/04(日) 15:28:39.35ID:UcElfbev
dynamicにするとbox/unboxが発生するから式木で殴る解決策あったな
0403デフォルトの名無しさん2016/12/04(日) 19:05:36.47ID:U4ZfHibQ
ガッチガチにチューニングしようとすると式木やILを触る必要があってツライ
0404デフォルトの名無しさん2016/12/04(日) 19:37:47.45ID:OeUSkEhR
コンパイルするタイミングを実行時に移すだけだろ
プログラマがCodeDOMや式木でやってる退屈で定型的なプロセスを自動化するだけじゃん
マイクロソフトの怠慢だよこれは
0405デフォルトの名無しさん2016/12/05(月) 00:12:25.29ID:wzEk6zml
>>402
dynamicの偉大な点は勝手に内部で式木に変換してしかもそれをキャッシュしてくれるから
完全なリフレクションに比べて速度的にそんなに不利ではない

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

ここら辺が有名だよな
0406デフォルトの名無しさん2016/12/05(月) 01:54:32.46ID:kX3Q4svv
>>404
だいぶ違うぞ
プログラミング学び直したほうがいい
0407デフォルトの名無しさん2016/12/05(月) 02:10:45.39ID:u0DsEOY/
使いにくいと言う奴の99%は理解してないだけだからな
1%くらいには李左車の言うように有意義な指摘もあろうが
それは404ではないだろう
0408デフォルトの名無しさん2016/12/05(月) 03:06:07.61ID:TC/GOrDD
使いやすいという奴は仕事で使ってない
0409デフォルトの名無しさん2016/12/05(月) 07:38:13.09ID:FYlXKnN9
>>406
お前は黙ってJavaかVBでもやってろ
0410デフォルトの名無しさん2016/12/05(月) 16:46:58.81ID:5hp1IXjD
>李左車
誰だよ?
0411デフォルトの名無しさん2016/12/05(月) 17:16:33.12ID:uj/2rcDx
さーしゃちゃん知らないってモグリかよ
0412デフォルトの名無しさん2016/12/05(月) 17:35:03.83ID:PG/Hzji5
クポ?
0413デフォルトの名無しさん2016/12/08(木) 00:12:08.98ID:/aGxLpEu
AWS LambdaでC#が使えるようになったらしいな
Googleも.NETの開発に参加したことだし、本格的に波が来ている
0414デフォルトの名無しさん2016/12/08(木) 05:07:13.06ID:Vn/geEUt
ついにJava終わったか
0415デフォルトの名無しさん2016/12/08(木) 13:08:55.01ID:0EWqwyqo
C#というより.NETの質問なんですがいいでしょうか?
リストビューの各項目のクリックを拾いたいんですが方法ありますか?
例えば以下の様な構成になってる場合「山田」のクリックとか「21歳」のクリックとかを
拾いたい感じです。
---------------------
[項目1][項目2][項目3]
山田  20歳  東京
斎藤  22歳  埼玉
戸川  21歳  千葉
---------------------
やっぱりクリックイベントから現在選択されている項目を取得する
という方法が一番でしょうか?
0416デフォルトの名無しさん2016/12/08(木) 13:14:33.65ID:h9KBoTPl
>クリックイベントから現在選択されている項目を取得する
という方法で何か困っていることがあるならそれを書くのが早い
0417デフォルトの名無しさん2016/12/08(木) 13:15:32.08ID:RR5e4yCq
行と列両方いるならListViewHitTestInfo
0418デフォルトの名無しさん2016/12/08(木) 13:33:02.23ID:0EWqwyqo
>>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());
0419デフォルトの名無しさん2016/12/08(木) 14:57:23.01ID:vKAf8GkY
カスタムコントロールについて教えてください。

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; }
}
0420デフォルトの名無しさん2016/12/08(木) 18:44:29.79ID:Ayid3Uvv
>public Font Font { get; set; }
>public Color Color { get; set; }

C#では、クラス名を、2回も書けるのか?
0421デフォルトの名無しさん2016/12/08(木) 18:47:17.57ID:6K2Be21z
>>420
public 型名 プロパティ名 {get;set;}
public Object Object(){
  return null;
}
って書けるのと同じ
0422デフォルトの名無しさん2016/12/08(木) 18:48:35.47ID:6K2Be21z
C#はフィールドとローカル変数はhogeFooで、プロパティ、メソッド、クラス、名前空間はHogeFooだから結構型名と被る事多いよ
0423デフォルトの名無しさん2016/12/09(金) 01:37:38.58ID:nk5rcDEa
>>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
04244192016/12/09(金) 09:31:24.99ID:pxgVwarY
>>423
おおおおおおおおおおお!!!!!!!
ありがとうございます♪さっそく試したところうまくいきました!!
これだけでかなりコード量が減るのでホントたすかりました;w;

ありがとうございますm(_ _)m
0425デフォルトの名無しさん2016/12/09(金) 11:25:46.06ID:nQ2cVzw4
質問者じゃないけど、>>419のコードというか、List<T>じゃダメな理由は何なんだろう
AddRangeの引数の型がT[]じゃないから?
0426デフォルトの名無しさん2016/12/09(金) 12:43:50.54ID:73dS9ox0
C#でWindows.formアプリを勉強中なんですが
controlとの絡みばかりでクラスを作って色々やるといったことなく出来上がってしまいます
複雑化すればそうもならないのでしょうか。。
0427デフォルトの名無しさん2016/12/09(金) 13:56:37.83ID:3kVVURfS
>>426
単純なアプリだとそんなもんだよ
規模が大きくなってきても、ある程度まではその流儀でやれなくはないけど、そのうち
プログラムの見通しが悪くなって、メンテする際にイライラする事が多くなって、
やり方を変えたくなってくる
0428デフォルトの名無しさん2016/12/09(金) 18:10:47.21ID:73dS9ox0
>>427
ありがとうございます
頑張ってみます
0429デフォルトの名無しさん2016/12/09(金) 18:31:58.73ID:IAKedM2U
ドカタ開発だとそのままのノリで大きなシステム作っちゃうけどね
共有していいのはDBだけ、あとはコピペ上等で画面単位でぶった切れ、という開発スタイルなら設計スキルが無くても容易にスケールするよ
まあ一度書いたものは弄らないことが大前提のやり方なので、後で大きな仕様変更が入ったら炎上するんだけど
0430デフォルトの名無しさん2016/12/09(金) 20:14:42.74ID:RJlryFXO
>>429
特定企業への破壊工作を目的とする場合以外に絶対にやってはいけないアーキテクチャパターンランキング第1位のやつじゃん
0431デフォルトの名無しさん2016/12/09(金) 20:54:48.40ID:0cPrt4mX
>>430
とはいえ日本の高度経済成長を支えた伝統ある開発手法だからね
低スキルな要員で案件を確実に終わらせて逃げることに関しては現代においても最強よ
古典的なウォーターフォールが正しく機能してるなら客の後出し要件なんか無視できるんだし
0432デフォルトの名無しさん2016/12/09(金) 21:03:09.07ID:SmYH2aqj
その頃のシステムのリプレイスで付けを払わされて炎上してるところいっぱいありそう
0433デフォルトの名無しさん2016/12/09(金) 21:12:50.85ID:0cPrt4mX
>>432
しかしそのツケを払うのは当時のSIerではなく客だ
際限なく肥大化する保守費用、しかしリプレースしようにも見積は天文学的な金額になる
売る側にとっちゃメリットしかないんだよ
0434デフォルトの名無しさん2016/12/09(金) 21:22:01.74ID:4/j9vJm7
コメントしっかりしててすげー綺麗なコード書く奴いるけど
いつもスケジュール間に合わず動かず役に立たず。ぎりぎりになると周りがフォローよ
0435デフォルトの名無しさん2016/12/09(金) 21:38:16.31ID:RJlryFXO
>>431
借金は日本のお家芸だな
日本中でそれやってビジネス停滞してんだから国家的損失はデカイ
0436デフォルトの名無しさん2016/12/09(金) 21:41:54.69ID:inzQIL9U
>>433
そこで魔法の言葉「過去資産の流用」が出て来るのか
0437デフォルトの名無しさん2016/12/09(金) 21:50:33.79ID:YFW7nsEC
>>433
マジで経験したことないやろ
そんな案件の尻拭いってモチベーションだだ下がりやし
二度と経験したくない
0438デフォルトの名無しさん2016/12/09(金) 22:28:31.44ID:RJlryFXO
レガシーシステムのリファクタリングは楽しい
でもリファクタリングをしたら正しく動いてるものに触るなと怒られる
ジャアアアアップ
0439デフォルトの名無しさん2016/12/09(金) 22:32:26.54ID:o6zCM5vx
>>438
草
0440デフォルトの名無しさん2016/12/09(金) 23:11:31.83ID:SjD2GByw
周りにC#プログラミングをやっている人がおらず、推奨/非推奨の判断ができないので相談させてください
次のような書き方はアリでしょうか

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

これは普通に使われるようなテクニックですか?
それとも仕様上はコンパイルできるがあまり好ましくない書き方ですか?
0441デフォルトの名無しさん2016/12/09(金) 23:20:41.59ID:SmYH2aqj
使っちゃ駄目。
上の書き方でコンストラクタ内とかで設定。
0442デフォルトの名無しさん2016/12/09(金) 23:22:54.69ID:AFnkuo0i
考えたこともなかったからちょっと感心したわ
視点の違いってすごいわ
0443デフォルトの名無しさん2016/12/09(金) 23:39:59.90ID:pDhW8mKL
コンストラクタが呼ばれた時に暗黙的に変数の初期化が走るとは言え上手くいくのだろうか。
普通はコンストラクタかForm1がロードされた時に代入かな。
0444デフォルトの名無しさん2016/12/09(金) 23:45:53.15ID:SjD2GByw
>>441
ありがとうございます、やっぱりダメですか
ちなみにどういった理由でダメなんでしょう

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

>>443
ステップ実行してみたら、Form1のコンストラクタ(InitializeComponent();)よりも前に実行されてました
0445デフォルトの名無しさん2016/12/09(金) 23:51:08.34ID:vatll/rz
>>440
こんな仕様初めて聞いたんだが、誰かkwsk
0446デフォルトの名無しさん2016/12/10(土) 00:10:15.56ID:htA28gv+
>>442 >>444
int a=b=100;
みたいな書き方ができること自体は以前どこかで読んだことがあったものの
なんとなく気持ち悪くてこれまで使ったことがなかったのですが、
最近改めて=演算子の戻り値と演算順序(先に実行される「b=100」の結果が100を返すので
それがaにも代入される)を勉強したところだったので、コンパイルできるかなと思ったらできてしまいました
0447デフォルトの名無しさん2016/12/10(土) 00:11:39.47ID:htA28gv+
>>446は442と>>445へのレスでした。
0448デフォルトの名無しさん2016/12/10(土) 00:14:55.08ID:HOF4U6Im
>>446
それは分かる
でも何故エラーが出なくなるのかって話
0449デフォルトの名無しさん2016/12/10(土) 00:24:59.06ID:mt2BmPb5
そもそも単なる文法上の制約だからだろ

そういう制約をわざわざ付けてるってことは、そういう事はやるべきじゃないって思想の表現だと思うが
0450デフォルトの名無しさん2016/12/10(土) 02:21:43.03ID:XBbQ6S0E
>>444
横だし俺はC#専門ではないけど、それってコンストラクタ内に書けばいいだけだよね。
果たして>>440で動くのかも疑問だけど、
仮に動いたとしても、ダミー変数がインスタンス内に残ってしまうのが無駄だよね。

そもそも a=b=c の書き方自体をしない。(ただしRubyの連中はするのかもしれない)
何故かは知らんが、おそらく見にくいという主張をする奴が多いからだろう。
どのみち普通はコーディングルールで禁止してあるし、
行数をケチる以外のメリットもないからいちいち文句を言う価値もないし。
0451デフォルトの名無しさん2016/12/10(土) 02:29:36.15ID:THyFY8cN
>>444
単純に分かり難いから。このスレの反応見ても、普通使わなそうなのが見て取れるでしょ。

Program.csが嫌でなるべく早くというなら、Form1のコンストラクタが良いんじゃないの。
Form1のコンストラクタよりも先である必要ってないでしょ。
0452デフォルトの名無しさん2016/12/10(土) 03:10:58.12ID:jJfPnpDE
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
0453デフォルトの名無しさん2016/12/10(土) 03:13:11.24ID:jJfPnpDE
MSの説明 ラムダ式(C#プログラミングガイド)
ラムダ式は、デリゲート型または式ツリー型を作成するために使用できる匿名関数です。 ラムダ式を使用すると、引数として渡したり関数呼び出しの結果値として返すことができるローカル関数を記述できます。 ラムダ式は、LINQ クエリ式を記述する場合に特に便利です。
以下省略(間違いがおおすぎ、、、、)

1行目から間違ってるよな。W デリゲート型をつくるのは delegate int del(int i); この部分で
あって
del myDelegate = x => x * x;
これではないな。
2行目も間違ってるよな。w ローカル関数ってのはC#7(VS2017)からなのでまだサポート
ないだろ。
0454デフォルトの名無しさん2016/12/10(土) 04:49:24.16ID:jJfPnpDE
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で書き換えてみたがコンパイルエラーになる。なんでだ?
0455デフォルトの名無しさん2016/12/10(土) 08:12:40.98ID:htA28gv+
>>450-451
なるほど、見にくい・分かりづらいというのは同意見です
(自分もint a=b=0みたいな表現は今回の件まで一度も使おうとしなかったので)
ただ、Form1のコンストラクタに書いても
実行順序はForm1のメンバ変数定義より後回しになってしまうようなので…

Form1のメンバ変数としてRegexオブジェクトを大量に定義しているので
もっと早くキャッシュサイズを拡張しないと意味ないのかな?と
0456デフォルトの名無しさん2016/12/10(土) 09:33:27.42ID:jJfPnpDE
すまん。454は自己解決した。
そもそもIObservableをまったく理解してなかった。
0457デフォルトの名無しさん2016/12/10(土) 10:41:12.43ID:scmr7sdZ
>>455
メンバ変数の初期化もコンストラクタでやったらどうかな?
0458デフォルトの名無しさん2016/12/10(土) 12:31:00.36ID:rHn5Q6ti
>>455
変な小細工せずにForm1のコンストラクタを呼び出す前に書くのが筋だと思う。

っていうか、Regexあんまり使わないので自信ないけど、そもそもRegex.CacheSizeなんか設定しなくても
RegexのコンストラクタでRegexOptions.Compiledを指定すれば済むんじゃないの?
0459デフォルトの名無しさん2016/12/10(土) 12:43:23.50ID:rHn5Q6ti
http://smdn.jp/programming/netfx/regex/1_regex_cached_compiled/
↑によるとCacheSizeが影響するのはスタティックメソッドを使う場合だけ?

>>455はRegexのインスタンスを生成してるみたいだから、だったらそもそもCacheSizeの
設定は無意味ってことかな。
0460デフォルトの名無しさん2016/12/10(土) 12:53:41.37ID:rHn5Q6ti
考えてみたら、どっからでもアクセスできちゃうstaticなプロパティの値が
個々のインスタンスの挙動に影響を与えるような筋悪な設計は
普通はありえないよな
0461デフォルトの名無しさん2016/12/10(土) 12:59:36.57ID:9rLOEiC0
>>459
>>455も設定先はstaticでしょ。そうしないとエラーになるはず
0462デフォルトの名無しさん2016/12/10(土) 14:07:24.95ID:8ZN9Ra/9
キャッシュが影響するのはRegex.IsMatchみたいな静的メソッド使うときだけ
new Regexする時はキャッシュ関係ないと思う

あと、フィールドの初期化はわかりにくいので軽くて副作用のないものだけにした方が良い
正規表現の作成が時間食うなら、コンストラクタで行った方があとあと変更するときによい
0463デフォルトの名無しさん2016/12/10(土) 14:32:08.61ID:ZQIWZdV9
>(あまりProgram.csは触りたくないけど)
ドンドン触れ!
変なこだわりは捨てるべき
0464デフォルトの名無しさん2016/12/10(土) 16:30:39.28ID:SuPtWdia
分かっててあえてやってるなら大きなお世話かもしれんけど、
そもそも処理をFormに書いちゃうところから間違ってるな
0465デフォルトの名無しさん2016/12/10(土) 18:25:04.69ID:9rLOEiC0
>>464
世話焼くならForm1って名前からにしろ
0466デフォルトの名無しさん2016/12/10(土) 18:42:35.17ID:L/PQ4lRu
自前で適当に作ってる自分用アプリならネーミングセンス(とデフォルト名変更)についてとやかく言う必要は無いがな。
0467デフォルトの名無しさん2016/12/10(土) 19:02:21.05ID:YyXkI5ew
Form1とかの名前、あれはもうつけかえるのはやめにしたんだ
0468デフォルトの名無しさん2016/12/10(土) 19:07:08.15ID:BtzSATc1
ListViewのItemを高速に消す方法はないでしょうか?
BeginUpdateをしていても遅くて。3万件のItemから29800件消すといった場合です。
0469デフォルトの名無しさん2016/12/10(土) 19:17:12.33ID:htA28gv+
>>459 >>462
インスタンスの場合はキャッシュ関係ないんですね…勘違いしてました

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

>>463
キャッシュの拡大はRegexを使うクラス内に書いておきたいという気持ちがあるんですが
「なるべく早めに」ということならやはりMain()‎に書いた方がいいのかなあ…
0470デフォルトの名無しさん2016/12/10(土) 19:19:43.47ID:0TBYagU6
つうかいいか
そういうのはコードじゃなくて設定ファイルに書くもんだよ
0471デフォルトの名無しさん2016/12/10(土) 19:22:20.67ID:wTYgtvkF
>>468
コントロールを再作成して必要な分だけ追加したら?
0472デフォルトの名無しさん2016/12/10(土) 20:00:23.99ID:g6CF/PBV
>>468
その前に3万件追加した作業が無駄だよね
0件から200件追加することが出来ないのかプログラムを見直すべき
0473デフォルトの名無しさん2016/12/10(土) 20:24:13.29ID:BtzSATc1
>>471
ありかもしれません。

>>472
追加と削除のタイミングが違うので・・・
0474デフォルトの名無しさん2016/12/10(土) 20:32:26.08ID:moWXVb0v
仮想化しててもそんなに遅くなるもんかね
0475デフォルトの名無しさん2016/12/10(土) 20:33:06.95ID:g6CF/PBV
>>473
3万件をスクロールして閲覧する用途が有るはずもなく、最初から考えが間違っているんだよ
とはいえ、割りとありがちなんだけどね
0476デフォルトの名無しさん2016/12/10(土) 20:46:01.62ID:iMqvKcIt
VirtualModeなら速いんでねの?
0477デフォルトの名無しさん2016/12/10(土) 20:48:19.32ID:0TBYagU6
お客様は何万件でも表示させるといったらPGが死んでも表示させる
もちろんパフォーマンスの低下は許さない
つまりこれは現実的な用件なんだよね
0478デフォルトの名無しさん2016/12/10(土) 21:14:17.86ID:f57StUOL
御意!
0479デフォルトの名無しさん2016/12/10(土) 21:45:14.07ID:BtzSATc1
VirtualMode速すぎる
なんだこれ
これを待ってました。
0480デフォルトの名無しさん2016/12/10(土) 21:53:53.30ID:mMrYCd0+
Formsは長いことやってたんだけど.net coreでのWebシステムって容易く出来るんけ?
PHPでのMVCフレームワークとかrailsはわかる
0481デフォルトの名無しさん2016/12/10(土) 22:08:22.01ID:0TBYagU6
基本がしっかりしてれば簡単だよ
そのためにUIフレームワークに依存しないように作れっていつも言われるだろ
0482デフォルトの名無しさん2016/12/10(土) 22:09:21.73ID:mMrYCd0+
>>481
さんくす
手を出してみるわ
何を選んでもMFCのドキュメントビューよりは良いだろうってのが心の拠り所です
0483デフォルトの名無しさん2016/12/10(土) 22:28:44.20ID:moWXVb0v
仮想化せずにListViewで3万アイテム扱ってたのか・・・
0484デフォルトの名無しさん2016/12/10(土) 22:31:16.68ID:BtzSATc1
仮想化するとInsertionMarkが使えないみたいです。
どうしましょうか?
0485デフォルトの名無しさん2016/12/10(土) 23:55:43.96ID:VtzX6XaJ
>>468
発想を変えて、ListViewを作り直したら?
0486デフォルトの名無しさん2016/12/11(日) 07:29:54.22ID:9qlRR3sU
>>484
WM_SETREDRAWで描画停止してやれば、Virtualでなくても3万件ぐらいいけると思う。
やり方は、検索すれば出てくる。
0487デフォルトの名無しさん2016/12/11(日) 08:09:32.73ID:tSe+v4ik
3万件用と200件用は別のListViewを用意して、Visibleで切り替えるとか
0488デフォルトの名無しさん2016/12/11(日) 10:51:04.21ID:rgeKQ1h1
質問させてください。
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を呼び出している問に別のスレッドがプロパティに
アクセスする」ことがありえるのでしょうか?
0489デフォルトの名無しさん2016/12/11(日) 11:00:53.02ID:E1v0n/uN
>>488
プロパティの実装でEnterとExitと一時変数dtが必要なことに注意してください。
破壊されている可能性のある値を返さないようにするために、これ(enter/exit/dtの存在)が重要です。
(enter/exit/dtが存在しないなら、)あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティにアクセスすると、これ(破壊されている値を返すこと)が起こりえます。

つまり(きちんと)ロックしてるならアクセスすることはない
0490デフォルトの名無しさん2016/12/11(日) 11:14:59.06ID:rgeKQ1h1
すみません。質問の書き方がマズかったですね。
それと、もう一度自分でよく考えて、自己解決しました。

疑問に思ったのは、

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

ということでした。

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

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

ってだけのことですね。お騒がせしました。
回答いただいた方、ありがとうございました。
0491デフォルトの名無しさん2016/12/11(日) 14:59:01.41ID:o/YiWCEr
>>486
WM〜でなんかやるならInsertionMark云々だって自己解決できるような気が
0492デフォルトの名無しさん2016/12/11(日) 22:39:52.04ID:9qlRR3sU
>>491
描画止めるくらいであればウインドウメッセージとかよくわからなくてもググって数行コピペするだけで出来るし、既に非Virtualで作ったものをVirtualに変更するより手っ取り早いかなと思って。
0493デフォルトの名無しさん2016/12/11(日) 23:37:43.42ID:rW4zRmsa
InsertionMarkってNearestIndexが使えないだけみたいで
そこだけ計算で出してやれば使えました。
お陰で高速な動作ができるようになりました。ありがとうございました。
0494デフォルトの名無しさん2016/12/14(水) 22:10:21.05ID:zGQk9RuM
正規表現Regexのインスタンスを作る際の文字列指定をするときに、
@を先頭につけているのを見るのですが、
これはどういったことでしょうか
必要なのでしょうか
0495デフォルトの名無しさん2016/12/14(水) 22:16:24.21ID:LQhYfqJw
>>494
\を大量に書かなくていいようにするため
0496デフォルトの名無しさん2016/12/14(水) 23:05:36.02ID:PdV20HuV
Rubyには、こういう関数があるけど、C#には無いの?

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

Regexp.escape(string) -> String
string の中で正規表現において、特別な意味を持つ文字の直前に、
エスケープ文字(バックスラッシュ)を挿入した文字列を返します
0497デフォルトの名無しさん2016/12/14(水) 23:08:32.15ID:+dTErpY/
そのまんまのがあるが
Regex.Escape(string)
0498デフォルトの名無しさん2016/12/14(水) 23:16:39.96ID:zGQk9RuM
>>495
494です
ありがとうございます
0499デフォルトの名無しさん2016/12/15(木) 08:46:01.32ID:3NUBKOAZ
完全に市場はJavaの圧勝が決まったようだ。
0500デフォルトの名無しさん2016/12/15(木) 12:09:47.56ID:VtGam84M
>>499
へーすごいね
0501デフォルトの名無しさん2016/12/15(木) 12:57:24.49ID:4tPXC7sh
金箔貼っても糞は糞。を思い出した。
0502デフォルトの名無しさん2016/12/15(木) 13:45:31.77ID:7KRIzock
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
0503デフォルトの名無しさん2016/12/15(木) 13:55:12.96ID:8Dy0z+2t
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/*",
0504デフォルトの名無しさん2016/12/15(木) 19:32:58.03ID:aesj07do
c#で書かれた解析機を吐き出すyaccみたいなツールってないの?
0505デフォルトの名無しさん2016/12/15(木) 20:28:20.48ID:u3iwxuUX
自分に合ったのを探せ
https://en.wikipedia.org/wiki/Comparison_of_parser_generators
0506デフォルトの名無しさん2016/12/19(月) 00:22:28.34ID:hPPOameE
テキストボックスでValidatingを実装し、e.cancel=trueにした場合について2つ質問があります。
1.フォームの×ボタンを押してValidatingが発生しe.cancel=trueになっても、form.closingを実装するとフォームを閉じれるとネットブログであったのですが、
これはどういった仕組みでしょうか?
cancelになっても別のコントロールについては実装すれば、その処理が走るのでしょうか。
また、msdnでのそこに関する説明はどこにありますでしょうか?
2.そもそも,フォームの×ボタンでValidatingを走らせないようにするにはどうしたらいいでしょうか?
0507デフォルトの名無しさん2016/12/19(月) 14:59:52.95ID:/uogIQCg
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
0508デフォルトの名無しさん2016/12/19(月) 21:55:11.26ID:m20BeiOW
前から疑問だったんだがValidatingでフォーカス移動封じるタイプのUIって誰が得するんだ?
0509デフォルトの名無しさん2016/12/19(月) 23:07:10.38ID:nxaByp7v
開発者の保身に役立つ
ユーザビリティ何それ
0510デフォルトの名無しさん2016/12/21(水) 22:02:28.59ID:OBoWPQLO
VisualStudioでスキャフォールディングっていうの?
あのC#コード生成ってどうやってんの?
右クリックメニューのコマンドで画面開いてパラメータ入力したらコードがいくつかババっと出力されてプロジェクトにインクルードされて時にはconfigまで書き換わるあの便利なやつ
0511デフォルトの名無しさん2016/12/21(水) 22:13:35.55ID:I2xL3xVw
子供発見
0512デフォルトの名無しさん2016/12/21(水) 23:15:00.27ID:EydnUon0
>>510
テンプレートで生成してるだけだよ
自分で同じようなことやりたければT4でも調べてみたら
0513デフォルトの名無しさん2016/12/22(木) 00:41:34.58ID:0KrqUh09
>507
506です。遅くなりましたがお答えありがとうございます。

補足で質問です。
> cancelになっても別のコントロールについては>実装すれば、その処理が走るのでしょうか。
ここに関しては、validatingでe.cancel=trueにしたら、そもそもclosingが走らないかと思っていたのですが、そういうことではないのでしょうか。validatedまでキャンセルになるということでしょうか。
0514デフォルトの名無しさん2016/12/22(木) 00:52:26.00ID:3F8kH50r
closingにデバッグポイント置いてそこで停まったら実行されるってことだろ
そんくらいもできないのかよ
0515デフォルトの名無しさん2016/12/22(木) 10:02:04.72ID:i/pZa1E8
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
0516デフォルトの名無しさん2016/12/22(木) 10:12:48.15ID:hYDEOt1H
mbgdnfmdelffjdhkdggilmphfdihnmcj をNGワード設定だな。この開発者そこらに張りまくってやがる
0517デフォルトの名無しさん2016/12/23(金) 13:13:48.39ID:/B2iyB1G
そうなの?登録しとこっと…ハッ
0518デフォルトの名無しさん2016/12/24(土) 06:16:26.82ID:WEJSRv5C
PythonのコードをC#で書き直してるんだけどさあ
C#で関数の引数に関数を指定することって出来ないのかな?

具体的にしたいことは関数の傾きを求めることで、たとえば適当な関数
float A(float x){return x^2;}
があったときに、傾きを求める関数
float B(関数, float x){return xでの傾き;}
みたいなものを作成して
d = B(A(), 0.1f);
のような呼び出し方をしたいんだけど・・・・なにかそれに近いC#のコードの記述方法ってないかな?
0519デフォルトの名無しさん2016/12/24(土) 06:53:00.31ID:kPI05Gb3
delegate じゃ駄目なの?
0520デフォルトの名無しさん2016/12/24(土) 06:56:25.78ID:iV5eYun0
float B(Func<float, float>, float) ということなのかな
0521デフォルトの名無しさん2016/12/24(土) 07:23:08.42ID:WEJSRv5C
>>519-520
デリゲートを使うのが一番近い記述ができるのかな?
そうするとミスって複数メソッドを登録したときの処理も記述しとかなきゃなんないかな・・・・
0522デフォルトの名無しさん2016/12/24(土) 07:41:28.77ID:qXNVWWNf
>>518
関数を引数にしたいなら520でいいけど

そもそもC#で任意の関数を引数にして傾きを求めるのは無理だと思うよ
引数の関数が微分可能かどうか(下手すると連続かどうか)も保証されてないのに
0523デフォルトの名無しさん2016/12/24(土) 09:21:29.09ID:3LTJc3r/
微分可能であることの保証ができないなんてどの言語でも一緒だろ
イベントハンドラ以外のデリゲートでマルチキャストを使う馬鹿もいない(いたら今すぐやめろ)から無視していい
あとそういう計算にfloat使うと激しく誤差が出るからfloatじゃなくてdouble使え
Pythonの浮動小数点数もdouble精度だ
0524デフォルトの名無しさん2016/12/24(土) 10:31:06.47ID:dPbQS77J
>>522
微分可能とか最近覚えた用語を使いたくてしょうがないんだな w
0525デフォルトの名無しさん2016/12/24(土) 10:37:23.24ID:qXNVWWNf
あらかじめコーディングされた関数たちしか使わないなら、導関数も事前に用意しておけばいいよね

>>523
mathematica等の数式処理言語ならできるよ
0526デフォルトの名無しさん2016/12/24(土) 12:25:20.15ID:1tLIoM8k
関数の数値微分は機械学習とかシミュレーションとかで普通に使うぞ
0527デフォルトの名無しさん2016/12/24(土) 15:05:19.64ID:uriaUnJG
数学とC#の関数の定義の区別ができないお子ちゃまですか。
0528デフォルトの名無しさん2016/12/24(土) 15:50:11.41ID:IXC75mXH
おまえはC#の関数で、俺は数学の関数だ!
そこになんの違いもありゃしねぇだろうが!
0529デフォルトの名無しさん2016/12/24(土) 15:52:59.52ID:51ELz7Bu
空のWebアプリプロジェクトからASP.NET MVCをインストールして適当にビューを作ったんだけど
マークアップエディタのインテリセンスにViewBagがないって怒られます
コードエディタでは普通にViewBagにアクセスできます
これはいったいどういうことなんでしょうか
0530デフォルトの名無しさん2016/12/24(土) 16:49:07.86ID:uriaUnJG
式をこねくり回したいんだろう。

自分ですうしきクラスを作れよ。
0531デフォルトの名無しさん2016/12/24(土) 17:01:13.35ID:WEJSRv5C
>>522
たしかに解析的に正しい微分できないけど、僅かにXをずらしてそれっぽい数値を出したいんです
0532デフォルトの名無しさん2016/12/24(土) 17:07:45.02ID:3KzFEnUI
微分可能かとどう実装するかは別の問題だからどうでもいいなw
ちょっと大げさめだが、俺ならinterface使う
0533デフォルトの名無しさん2016/12/24(土) 18:08:40.53ID:2kirY5E3
>>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;
}
0534デフォルトの名無しさん2016/12/24(土) 19:30:16.14ID:dPbQS77J
>>533
いや実装方法はわかってるでしょ
python からの移植なんだし
>>531 は >>522 が微分可能とか言い出してるからそれへの説明だと思うぞ
0535デフォルトの名無しさん2016/12/24(土) 22:57:47.19ID:ZPnvY2Gu
>>524
えっ?
0536デフォルトの名無しさん2016/12/25(日) 01:15:18.80ID:2bXL0gSr
音声付の外国語の単語学習アプリを
作ろうとしてます。
数千の単語の音声を、少数のファイルで扱うには
どのような方法使えばいいんでしょうか?
0537デフォルトの名無しさん2016/12/25(日) 02:05:37.96ID:1Va0hmvu
全部つなげて1つのファイルにしておいて、
欲しい時にはその単語データのオフセットと長さを指定して取り出して再生、かな
0538デフォルトの名無しさん2016/12/25(日) 02:11:45.12ID:xhZEf65t
圧縮された音声データでそんな高精度のシークが可能なのかなw

っていうか、今時のWindowsってたいがいの言語の音声合成エンジンがタダで提供されてなかったっけ?
0539デフォルトの名無しさん2016/12/25(日) 02:18:12.49ID:tQvSe6Qr
>>538
バイト配列にしてつなげてサイズと順番のインデックス作ればいいだけ
0540デフォルトの名無しさん2016/12/25(日) 02:45:35.51ID:bvgmOMUN
話が噛み合ってないな
>>537や>>539はバラバラの既存の単語音声データを単一ファイルにまとめる話
>>538はボインや子音とかから合成するTTSライブラリ使えって話
>>536の目的は学習アプリ
前者なのか後者なのかはっきりさせないと答えようがないが
TTSから垂れ流す音声が正しいとは限らないので
単語レベルなら既存の音声辞書から引っ張って来た方がいい気はする
0541デフォルトの名無しさん2016/12/25(日) 07:18:53.50ID:MTT7ZR6N
ボインは赤ちゃんのためやでー
0542デフォルトの名無しさん2016/12/25(日) 08:51:11.94ID:NMeoNRf0
音声を64kぐらいでMP3化してSQLiteに登録するのが最善じゃね?
0543デフォルトの名無しさん2016/12/25(日) 09:09:11.14ID:r6LchLOJ
今時はクラウドだろ
バラバラのままでS3にでも突っ込んどけ
0544デフォルトの名無しさん2016/12/25(日) 10:03:57.23ID:bejmTeDn
再生の度にHDDから読み込むともたつくときがあるんだよね
だからといってゲームみたいにシーンに必要なデータを予め読める量でもないし
難しかったな
0545デフォルトの名無しさん2016/12/27(火) 19:34:32.54ID:r2C7TXrR
ASP.NET WebフォームとMVC勉強するならMVC一択ですか?
0546デフォルトの名無しさん2016/12/27(火) 19:44:21.85ID:RazBYv5e
>>545
もちろん
CoreもFullも使えるし
0547デフォルトの名無しさん2016/12/27(火) 21:03:13.98ID:kWoV7/2e
>>546
ありがとうございます
やはりそうなんですね
0548デフォルトの名無しさん2016/12/27(火) 22:49:58.42ID:DbM4OtJE
ASP.NETの基本的なことを学ぶなら空のWebFormsから始めた方がいい
MVCから入るとプロジェクトテンプレートの時点で訳が分からなくなって意欲を損なう
0549デフォルトの名無しさん2016/12/28(水) 00:24:46.29ID:6PQ8eENJ
>>548
いやいや今どきWeb Formsとかないわ
仕事で仕方なくっていう理由ならわかるけど
0550デフォルトの名無しさん2016/12/28(水) 02:37:03.12ID:tHS+BZPK
windows formでtwitterクライアントを作ろうとしているのですがタイムラインをどう表示するかで詰まっています
具体的に言うとブラウザや携帯のtwitterアプリで見るような形でタイムラインを表示したいのですがどのようなコントロールを使えばいいのか分かりません
どなたか教えていただけないでしょうか
0551デフォルトの名無しさん2016/12/28(水) 06:10:33.37ID:U/Wkcgn0
WebBrowser
0552デフォルトの名無しさん2016/12/28(水) 06:28:56.80ID:hLvgF446
>>550
まずはタイムラインの仕様を詳しく書いて
0553デフォルトの名無しさん2016/12/28(水) 07:40:36.68ID:EECpjgXG
俺もWebBrowserコントロールがいいと思うな。
0554デフォルトの名無しさん2016/12/28(水) 07:55:45.93ID:nclhbqFU
Twitterはツイートの表示の仕方がディスプレイガイドラインによってガチガチに決められてる
独自に作ったところで結局同じものを再発明することになるだけで時間の無駄でしかない
結論として、WebBrowserでいい
0555デフォルトの名無しさん2016/12/28(水) 11:01:45.01ID:Xid52+QB
electron使え
0556デフォルトの名無しさん2016/12/28(水) 11:06:16.13ID:WHhbvFAo
UWFは知らんけどWin8のストアアプリにはそんなサンプルが結構あったね。
あの手のUIとXAMLは相性がいいとか何とか。

そういうのパクってWPFで....と思ったけどWindos Formで作るのか
0557デフォルトの名無しさん2016/12/28(水) 11:11:05.17ID:Xid52+QB
Krileとかいう うぃんどうずさいきょうくらいあんと はWPFだぞ
0558デフォルトの名無しさん2016/12/28(水) 11:33:29.67ID:tDjKTni2
まったく同じもん作りたいならWebBrowserコントロールだけど
そうじゃなきゃリストビューのオーナードローかな
なんか意図があるから作りたいわけだろうからそれに合わせて作れとしかw
0559デフォルトの名無しさん2016/12/28(水) 16:33:19.65ID:XPsq6pGc
PictureBoxだろ。
0560デフォルトの名無しさん2016/12/28(水) 17:04:41.95ID:hmpOAOdC
ツイッターほとんど使わんので勘違いしてるかもしれんけど、
Windows Formなら複合コントロール(UserControl)使うのが一番現実的なような気はする
0561デフォルトの名無しさん2016/12/28(水) 20:06:12.28ID:tHS+BZPK
>>552
基本的にはブラウザで見るものと同じです
が、リプライ、RTなどのアイコンがなくなっておりさらに時間の表示位置と形式が違います
また、どのクライアントでツイートしたかの情報も表示します
クライアントの情報はツイート文の下に表示し、時間は絶対時間表記でクライアント情報の右に表示します
0562デフォルトの名無しさん2016/12/28(水) 20:09:09.19ID:ace8uG6s
>>561
Twitterの規約に違反してる
0563デフォルトの名無しさん2016/12/28(水) 20:15:46.64ID:tHS+BZPK
>>562
違反している部分は例えば時間表記はデフォルトでの設定は相対時間表記にしておき設定を変更することによって絶対時間表記にすることができるといった方法で回避しようと考えています
0564デフォルトの名無しさん2016/12/28(水) 20:34:23.74ID:EECpjgXG
なんでWebBrowserコントロールは嫌なの?
手軽に見た目もきれいに作れるし仕様変更もし易いのに。
PictureBoxにゴリゴリ描くのも楽しいだろうけど仕様変更が辛いよ。
0565デフォルトの名無しさん2016/12/28(水) 20:42:16.89ID:tHS+BZPK
>>564
個人的な考えなのですがWebBrowserコントロールを使うのであれば普通のブラウザソフトを使ってTwitterをすればいいと考えているからです
0566デフォルトの名無しさん2016/12/28(水) 21:54:16.84ID:Bwga9xUV
>>556
確かにWPFはこういうの得意だね。

>>563
誤魔化してるだけで、回避は出来てないような。
0567デフォルトの名無しさん2016/12/28(水) 22:32:59.93ID:tHS+BZPK
>>566
WPFの方が作りやすいでしょうか?
規約については他のクライアントがこのような方法をとっていたのでこれで良いものと思いまして…
0568デフォルトの名無しさん2016/12/28(水) 22:43:34.20ID:6Nd1Z00H
TwitterのタイムラインをWebBrowserでやろうとした場合ってHTMLを加工してタイムラインだけを取る的な感じになるの?
0569デフォルトの名無しさん2016/12/28(水) 22:56:26.65ID:EECpjgXG
普通はタイムラインのデータを取得してHTMLを生成してWebBrowserコントロールに
流し込むってイメージだと思うよ。
0570デフォルトの名無しさん2016/12/28(水) 23:00:12.19ID:Bwga9xUV
>>567
WPFはちょっと凝ったUI作るのにはお勧めなんだけど、初期の学習コストが大きいのがネック。
規約に関してはグレーゾーンでしょ。Twitter社次第。
0571デフォルトの名無しさん2016/12/28(水) 23:30:17.32ID:NekU8PBK
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>に変換できないかね?
誰かやり方知りない?
0572デフォルトの名無しさん2016/12/28(水) 23:32:42.76ID:gapvLjp6
Cast<object>()
0573デフォルトの名無しさん2016/12/28(水) 23:52:57.99ID:NekU8PBK
>572
サンクス

すまんがもう一個
Dictionary<T, U>を一度object型に変換した後にDictionaryに変換せずに
IEnumerable<object>に直接変換する方法ってある?
元々、object型の値がIEnumerable<V>を継承してるか、継承していたら変換するって処理を作ってる時に気付いたもんで

後出しで申し訳ないが知ってたら教えてくり
0574デフォルトの名無しさん2016/12/29(木) 00:33:10.83ID:u+8RF5XF
>>569
なるほどthx
0575デフォルトの名無しさん2016/12/29(木) 00:38:59.83ID:ICm4kcbN
>>573
ターゲットフレームワークが4以降なら直接IEnumerable<object>にキャストできる
Dictionary<,> は IEnumerable<KeyValuePair<,>> を実装している
.NET4以降ではIEnumerable<>は共変だからIEnumerable<派生>をIEnumerable<既定>として扱える
あと関係ないけど.NETの場合ジェネリックの型引数は
1つの場合はT、複数の場合はTKey, TValueのようにT〇〇と名付ける決まりだから
Java臭いキモい書き方はやめろ
05765732016/12/29(木) 00:49:52.62ID:ICm4kcbN
すまん訂正
KeyValuePair<,>は値型だから不変だな
直接キャストはできないので>>572で全要素を個別にボックス化してやる必要がある
0577デフォルトの名無しさん2016/12/29(木) 00:58:24.25ID:ICm4kcbN
あと >object型の値がIEnumerable<V>を継承してるか、継承していたら変換する だけど、
IEnumerable<object>のかわりに単に非ジェネリックのIEnumerableにキャストすりゃいいよ
IEnumerable<>はIEnumerableを継承しているので、
IEnumerable<>なら要素が値型だろうが何だろうがIEnumerableには確実にキャストできる
どうしても<object>にしたいなら ((IEnumerable)obj).Cast<object>() で変換できる
0578デフォルトの名無しさん2016/12/29(木) 01:43:17.27ID:yvgqyy5k
おぉ、サンクス!!
値型だとダメなのか。知らんかったわ。

名前については気を付けるよ。
.NETのクラスライブラリ設計にも書いてあんね。もう一度読み返すよ。
助かった。ありがとう
0579デフォルトの名無しさん2016/12/29(木) 15:12:21.99ID:ZEkDPYau
>>529
msdnフォーラムで聞くほうがいいよ
0580デフォルトの名無しさん2016/12/30(金) 07:18:33.47ID:WuCbATao
vb.netではなくc#を選ぶ理由を教えてください。
0581デフォルトの名無しさん2016/12/30(金) 07:52:06.59ID:ztwR1BBS
コーディング量が多く単価が安い言語は選ばない
0582デフォルトの名無しさん2016/12/30(金) 08:01:52.99ID:pFqShxhH
むしろ VB
・に慣れてる
・しか知らない
・しか使えない環境
以外の理由で VB.net を選ぶ理由が知りたいよ
0583デフォルトの名無しさん2016/12/30(金) 08:22:40.21ID:ztwR1BBS
そやな。SharpDevelopの変換機能も優秀だし
0584デフォルトの名無しさん2016/12/30(金) 08:28:44.57ID:wot9qjtL
未だにVBやPHPの学習コストがどうのとか言ってるの見ると
はぁ…90年代からいらしたんですか?そりゃどうも…って感じになる
0585デフォルトの名無しさん2016/12/30(金) 08:38:34.39ID:fHdmB1av
VBは使えない新人にやらせるものだからね
毎年素人に教えなきゃいけないから学習コストは常にホットな話題なんだよ
0586デフォルトの名無しさん2016/12/30(金) 08:55:52.86ID:IhX7anmL
VBなんてもはや学習コストが低い言語ではないし、PHPだってHTMLのマクロだった時代ではない。

まぁそういう会社ってVB6なんだろーけどさ。
0587デフォルトの名無しさん2016/12/30(金) 09:23:58.96ID:ylI4PuDY
MSのサポートがより盤石な方と言われれば基本C#じゃないの
と思ってたら最新のTIOBEインデックスが不可解な事になってるけど
http://news.mynavi.jp/news/2016/12/08/031/
0588デフォルトの名無しさん2016/12/30(金) 10:37:03.00ID:z+0XLzNt
>>587
TIOBEは昔から滅茶苦茶で
指標として価値がないよ

PYPLのが実態にあってるとおもう
http://pypl.github.io/PYPL.html
0589デフォルトの名無しさん2016/12/30(金) 11:36:38.80ID:LToUj4mC
新しく作るならvb.net選ぶ理由なんてないんだろうけど、会社が90年代から続いてるからな
VB6よりも古い時代の資料を改定しながら使いまわしてる
今の時代に合わせて作り直したら大変だ
0590デフォルトの名無しさん2016/12/30(金) 12:03:55.88ID:WuCbATao
>>581
コーディング量が多いってほんまかいな。
.netならどっちも同じことができるはずやないんかいな。
vb.netなら何行も書く必要のあるものがc#なら1行で書けるコードがあるわけか。

社員に還元する気のない会社なら単価は安くていい。
0591デフォルトの名無しさん2016/12/30(金) 12:21:39.74ID:WuCbATao
>>582
vbに慣れてない人なんか少数派ではないんかいな。
vbなんかほとんどの人ができると思うけどな。
それで、vbの手続き(Sub)や関数(Function)も使える利点もある。
0592デフォルトの名無しさん2016/12/30(金) 12:28:11.59ID:FgVAt5LY
は?それVB独特の利点だと思ってんの?
葦の髄並みに視界が広いんだね!驚いた
0593デフォルトの名無しさん2016/12/30(金) 12:30:49.02ID:3Ls/pupf
VB は使えば使えるけど出来れば使いたくない、って人は多そう。自分はそう。
0594デフォルトの名無しさん2016/12/30(金) 12:30:52.92ID:WuCbATao
.netのプログラム方法を知らないがvb6の方法なら知ってるときは、調べる時間を省いて早く作れる利点がある。
0595デフォルトの名無しさん2016/12/30(金) 12:31:12.31ID:1dqi8t3C
>>591
リファレンスの差が圧倒的だからな。ライブラリもC#の方が充実してる。
0596デフォルトの名無しさん2016/12/30(金) 12:36:38.79ID:TrhPacUJ
VBAをC#表記にすればいいのにと
0597デフォルトの名無しさん2016/12/30(金) 12:39:17.24ID:WuCbATao
>>595
リファレンスは、c#でも普通に利用してvb.netでプログラムしてるから別にいい。
ライブラリって、サードパーティ製でc#にしか使えないものがあるということか?
0598デフォルトの名無しさん2016/12/30(金) 12:40:53.78ID:a9lBhbdO
>>594
VBerの世界では日本語のゴミのことを利点って表現するんだな
勉強になったわ
0599デフォルトの名無しさん2016/12/30(金) 12:44:33.76ID:p8PwMXsr
>>597
利点がどうかをお前の主観で判断するなら人に問いかけるな
お前のキンタマ脳味噌でしこたまオナってろカス野郎
0600デフォルトの名無しさん2016/12/30(金) 12:55:30.88ID:WuCbATao
c#はどの言語とも互換性がない。
0601デフォルトの名無しさん2016/12/30(金) 13:02:37.99ID:E/JZqwpg
VB製のまともなソフト見たことがない
0602デフォルトの名無しさん2016/12/30(金) 13:05:31.05ID:pFqShxhH
>>591
VB なんて10年以上使ったことない
って奴はごろごろいると思うけど?
0603デフォルトの名無しさん2016/12/30(金) 13:15:31.59ID:WuCbATao
どの言語プログラマーがc#になったのか教えてください。
0604デフォルトの名無しさん2016/12/30(金) 13:19:37.16ID:LToUj4mC
こいつNGでいいだろw
0605デフォルトの名無しさん2016/12/30(金) 13:29:15.01ID:/QGVHUc5
>>601
tweenが確かソースコード非公開化する前はVB.NETじゃなかったっけ
0606デフォルトの名無しさん2016/12/30(金) 14:03:07.38ID:WuCbATao
java scriptやphpやperlやjavaに比べてc++やcに類似しているとはいえないし、
もちろん互換性もないのにc#とはおかしい言語名だ。
0607デフォルトの名無しさん2016/12/30(金) 14:21:47.87ID:B5+tn9xF
単にJavaScriptがJavaの名前を付けて恩恵を受けようとしたのと同じようにCとつけたのでは
未だにJavaよりもC/C++使いの方がエキスパートみたいな風潮はあるしCって付けたのは悪くないと思うけど
0608デフォルトの名無しさん2016/12/30(金) 15:56:44.65ID:hgBVSCl8
Java開発者の.NET取り込みを狙った言語としてはJ#が別にあったからな
Java、C++、VBという当時の三大勢力のうちC#はC++開発者をターゲットにしていたから、
Cの名前を冠するのは戦略上当然
0609デフォルトの名無しさん2016/12/30(金) 17:46:25.33ID:U2S2spdu
VBにはC#のunsafe相当が無い
以上
0610デフォルトの名無しさん2016/12/30(金) 18:31:14.27ID:WuCbATao
そうか、ポインタが使えなかったが、unsafeのブロックで囲って、プロジェクトのプロパティのビルドのページの
「アンセーフコードを許可する」にチェックを入れないといけなかったのか。C#ってぼろいな。
0611デフォルトの名無しさん2016/12/30(金) 18:53:07.80ID:WuCbATao
unsafeブロックとビルドの設定変更で初めてポインタが使える、これでようやくCに近づいたか。
0612デフォルトの名無しさん2016/12/30(金) 19:06:33.29ID:B5+tn9xF
意図的に使いにくくしてるわけでCに近づける意味も必要性もないけどな
0613デフォルトの名無しさん2016/12/30(金) 21:27:21.00ID:rzMADc8/
>>606
そもそもVB.NETもVB6と互換性無いしな
互換性の維持は欠点の引き継ぎでもあるから、良いことばかりではない
0614デフォルトの名無しさん2016/12/31(土) 01:38:04.63ID:9j/vHbfh
クサレ脳ミソに触るなよ
年末で暇なのか?
0615デフォルトの名無しさん2017/01/03(火) 12:36:47.28ID:6G2Z4dX0
ASP.NETってリクエストと同じスコープの共有変数って無いの?
ApplicationとSessionだけ?
0616デフォルトの名無しさん2017/01/03(火) 13:07:31.73ID:bKYKotyv
ThreadLocal<T>使えば?
async使ってたりforkしてたりすると死ぬけど
0617デフォルトの名無しさん2017/01/03(火) 18:21:36.81ID:GxvhYohc
>>615
何がしたいん?
0618デフォルトの名無しさん2017/01/03(火) 19:30:11.31ID:7mNkwS/N
>>617
リクエストとトランザクションのスコープを同期させたい
フレームワーク側でトランザクション管理して
個々のリクエストからはトランザクションを参照するだけにして透過的に扱えるようにしたい
0619デフォルトの名無しさん2017/01/03(火) 19:33:32.03ID:GxvhYohc
>>618
カタカナが多くて理解出来ないわ
すまん
0620デフォルトの名無しさん2017/01/03(火) 23:21:22.46ID:rV3i3AFU
リクエストのスコープで、誰と共有するんだ?
フレームワーク側でトランザクション管理って何の事を言ってるんだ?
@PageのTransactionならページ=リクエスト単位でのトランザクション管理だったと思うが
0621デフォルトの名無しさん2017/01/04(水) 11:10:13.30ID:P9CxkEKM
単にリクエストの前後でTransactionScopeの生成解放とcommitを入れたらいいだけじゃないのか?
明示的に共有する必要なんかないだろ
現在のトランザクションはTransaction.Currentで取れるし、
TransactionScopeAsyncFlowOption.Enabledでasyncにも対応できる
0622デフォルトの名無しさん2017/01/06(金) 15:01:19.97ID:ugUrUcmU
C#といっこも関係ないけど、ここのブログChromeだと問題ないけどFirefoxだと
なぜか糞重いんだけど、どうしてなんだろう
http://blog.xin9le.net/archive/category/C%23

.NET関係のブックマークはFirefoxで統一してるので出来たらFirefoxでも快適に見る方法ないかな
ブログ主が修正してくれたらそれが一番いいんだけど、こんなスレ見てないだろうし
こっちから指摘して直してくれってのもちょっとアレなんで
0623デフォルトの名無しさん2017/01/06(金) 19:33:41.04ID:UonIfHoY
2chに書くなボケ
0624デフォルトの名無しさん2017/01/08(日) 04:55:07.07ID:AV67jRu6
C#なんか制御文と演算子がCに似てるだけで、それは他の多くのプログラム言語にも同じことが言えるし、
見かけがCに少し似てるだけで、中身はVB.NETと同じだろ。
VB.NETを拒絶してC#にこだわる理由がない。
挙句の果てに、「VBAをC#表記にすればいいのにと 」とまで言い出す始末。
0625デフォルトの名無しさん2017/01/08(日) 05:21:47.77ID:gvW6zVP3
いきなり何言ってんだこいつ
0626デフォルトの名無しさん2017/01/08(日) 05:24:36.52ID:AV67jRu6
C#人は性格が異常な人が多いのかいな
0627デフォルトの名無しさん2017/01/08(日) 05:38:16.16ID:qYFGvy5R
なんの話をしてるんだ?
0628デフォルトの名無しさん2017/01/08(日) 06:27:27.71ID:TbfsFEah
ID:WuCbATaoだろ
消しとけ
0629デフォルトの名無しさん2017/01/08(日) 09:01:21.88ID:FbXxDY90
>>626
狂った人から見ると普通の人が狂ってるように見えるんだってさ
0630デフォルトの名無しさん2017/01/08(日) 09:40:46.74ID:vasp0ss6
普通の人からするとプログラムできる人は普通の人ではないんだってさ。
0631デフォルトの名無しさん2017/01/08(日) 11:10:32.86ID:qEmyXRDT
それは確かに
0632デフォルトの名無しさん2017/01/08(日) 11:24:30.92ID:mLyjhJYP
VBとかうんこだろ
VBAはうんこ オブ ザ うんこ
0633デフォルトの名無しさん2017/01/08(日) 11:50:35.91ID:aANViJyG
バカでも書きやすいのがVB系なのでVBAがそういう書き方なのは当然だろう
c#への橋渡しとしてのVB.NETだと思うし
0634デフォルトの名無しさん2017/01/08(日) 11:59:14.80ID:AV67jRu6
どうせVBではないという見栄だけでC#なんだろ
0635デフォルトの名無しさん2017/01/08(日) 12:14:57.49ID:G2Ue1pwT
VBからC#に入ったけどいまさらVBになんかめんどくさくて戻れん
使いたい人は勝手にしたらいいがC#のスレにきてわざわざ暴れるなよ
0636デフォルトの名無しさん2017/01/08(日) 12:15:40.75ID:8d6R2/PQ
>>634
何を勘違いしてるのか知らないが、普通のC#使いのほとんどはVBも普通に使えるぞ?
逆はそうでもないが
0637デフォルトの名無しさん2017/01/08(日) 12:21:38.45ID:ZKkxHQju
VBってC#と比べて新機能が遅れて導入されるから大嫌い
0638デフォルトの名無しさん2017/01/08(日) 12:22:57.20ID:U62MbfoD
VB6系はともかく別に誰もVB.NETを否定してないと思うが
というか幾らなんでも名前に踊らされ過ぎ
0639デフォルトの名無しさん2017/01/08(日) 12:29:52.90ID:6Rfsv7h0
VB.NETはC#と同じっていうのは実はC#er目線の話なんだよな
VB専に聞いてみりゃわかるが、彼ら自身はC#は別物だと思ってるし
実際彼らの書くコードはC#とは全く似つかないよ
0640デフォルトの名無しさん2017/01/08(日) 12:47:23.31ID:vasp0ss6
あえて言おう。VB.NETは出すべきじゃなかった。
0641デフォルトの名無しさん2017/01/08(日) 13:03:51.40ID:AV67jRu6
 「VB なんて10年以上使ったことないって奴はごろごろいると思うけど」という人がいる一方で、別の人は「普通
のC#使いのほとんどはVBも普通に使えるぞ」という人がある。10年以上使わないなら、普通に使えるとは思えないの
で、後者は前者の主張を否定したようなものだ。

「VBにはC#のunsafe相当が無い」という人がいる一方で、別の人は「意図的に使いにくくしてるわけでCに近づける
意味も必要性もない」といってunsafeの存在価値を否定した。

 それぞれの主張に客観性がないんだろうな。
0642デフォルトの名無しさん2017/01/08(日) 13:10:39.99ID:ZKkxHQju
お前はちょっと黙ってろ
0643デフォルトの名無しさん2017/01/08(日) 13:25:57.09ID:Dfhzw297
>>641
「意図的に使いにくくしてるわけでCに近づける意味も必要性もない」は別にunsafeの存在を否定はしてないだろ。
普段使いするものじゃないからわざと使いにくくしてあるけど、いざという時はちゃんと使えるんだから。
0644デフォルトの名無しさん2017/01/08(日) 13:26:42.71ID:G2Ue1pwT
VBは使えるけどC#が使えないから職場でいじめられたのかな
それでここで憂さ晴らししていると
ここでもバカにされるだけなのに
0645デフォルトの名無しさん2017/01/08(日) 13:34:55.06ID:Dfhzw297
>>636
最初からVBに興味ないか、少しだけ触って見限ったきりって人も多い。
少し勉強すればVBもできる人は多いだろうけど、そうする意味もあまりないし。
0646デフォルトの名無しさん2017/01/08(日) 13:39:59.92ID:mLyjhJYP
VB.NETは構文調べて20分で捨てた
VB.NETで出来ることはC#で出来るし
何となく感覚で読めるけど書けない
0647デフォルトの名無しさん2017/01/08(日) 13:43:29.27ID:AV67jRu6
(エセC)#、もしくは (エセC++)++ だろ
0648デフォルトの名無しさん2017/01/08(日) 13:48:31.81ID:AV67jRu6
>>642 どうせ他のレスが滞ってて沈黙が続いてるから、他人の邪魔してるわけではないからいいじゃないか。
0649デフォルトの名無しさん2017/01/08(日) 13:58:48.72ID:euA+r4Nb
VBerはC#erにコンプレックスだらけ。C#erは相手にしてない
東京、大阪の関係みたいなもんだな
0650デフォルトの名無しさん2017/01/08(日) 13:59:50.66ID:pxQLZoyB
もともとはVBの方が好きだったけどさすがに2008以降はちょっと使う気にならん感じになっちゃったねVBは

ExcelをCOM Interop;する時はOption Strict Offで適当にキャストかましてくれる
VBの方がまだちょっと使いやすいけどそれ以外はあえてVBを選ぶ理由は消滅したな。
0651デフォルトの名無しさん2017/01/08(日) 14:00:51.70ID:vasp0ss6
確かに東京ってVB案件ばかりだな。
0652デフォルトの名無しさん2017/01/08(日) 14:06:57.00ID:ZKkxHQju
>>650
Office関連はNetOffice使った方が便利で安全だぞ
わざわざVB.NETを選ぶ必要は無い
0653デフォルトの名無しさん2017/01/08(日) 14:22:29.23ID:XDbKIsfA
VBerでもC#やらせれば書けるよ
あいつら食わず嫌いしてるだけ
ただ書けるだけであってVBっぽい気持ち悪いC#コードが生産されるので書かせない方がいいのは確かだ
0654デフォルトの名無しさん2017/01/08(日) 14:37:23.20ID:C9GVPqMv
>>641
> 10年以上使わないなら、普通に使えるとは思えない
30年以上 FORTRAN を使ってないけど普通に使えるけど?
0655デフォルトの名無しさん2017/01/08(日) 14:51:06.05ID:dpJgVr6u
>>650
VB2008からはC#の開発チームと統合されて、VBを馬鹿にしてるアンダースの配下になったからね
それまでは独自路線だったが、以降は開発方針が変わってC#の方言になった
0656デフォルトの名無しさん2017/01/08(日) 14:59:20.01ID:AV67jRu6
Aの「vbに慣れてない人なんか少数派ではないんかいな」という主張にBが「vbに慣れてない奴はごろごろいる」
と反論するために「10年以上使ったことないって奴はごろごろいると思うけど」と反論の理由を言ったんだろう
と解釈できるし、そうなると、Cが「FORTRANを30年以上使ってなくても普通に使える」という主張は、Bへの反
論かいな。
0657デフォルトの名無しさん2017/01/08(日) 15:03:11.58ID:dpJgVr6u
慣れてなくてもC#使いがVB使うのは何の問題もないわ
3日で生え抜きのベテランVBerより品質の高いコードを書ける
0658デフォルトの名無しさん2017/01/08(日) 15:07:20.67ID:AV67jRu6
「普通のC#使いのほとんどはVBも普通に使えるぞ」や「普通のC#使いのほとんどはVBも普通に使えるぞ」
や「3日で生え抜きのベテランVBerより品質の高いコードを書ける 」等の発言から自分らを高く見せたい
というプライドがあるんだな。
0659デフォルトの名無しさん2017/01/08(日) 15:11:41.76ID:AV67jRu6
間違えた、2つ目の「・・・・」は正しくは「FORTRANを30年以上使ってなくても普通に使える」
と書こうとした。
0660デフォルトの名無しさん2017/01/08(日) 15:21:13.72ID:tl4nBuMM
わざわざ訂正しなくてもいいよ。読んでないから
0661デフォルトの名無しさん2017/01/08(日) 15:33:55.81ID:j7hkxIjf
VBerは動けばいいやって人が多い
C#erはコードにもこだわる
0662デフォルトの名無しさん2017/01/08(日) 15:41:15.76ID:hmvsmXiF
>>654
30年前のfortranってどんなの?
0663デフォルトの名無しさん2017/01/08(日) 15:46:08.09ID:dpJgVr6u
F77じゃね
パンチガードで入力してたから、固定フォーマットでコメント文字は何文字目に打つというような決まりがあった
0664デフォルトの名無しさん2017/01/08(日) 16:02:54.22ID:XDbKIsfA
VBは言語そのものではなく言語に纏わる文化が劣悪
VBで書ければC#でも書けるし逆も同じ
でも品質は全く違うものが出来上がる
0665デフォルトの名無しさん2017/01/08(日) 16:14:56.03ID:AV67jRu6
>>646 VB.NETスレで「キチガイ引き取って」と発言したな
0666デフォルトの名無しさん2017/01/08(日) 16:17:18.08ID:mLyjhJYP
とりあえずvb.netスレに移動しろ
0667デフォルトの名無しさん2017/01/08(日) 16:51:42.42ID:CzVAxFca
朝早くからわけわからんレス書き込んでいる基地外に触んなよ
お前らも暇だなあ
0668デフォルトの名無しさん2017/01/08(日) 17:06:56.44ID:AV67jRu6
何でお前らは人格異常なのか。
普通に疑問に答えればいいものを人格攻撃かいな。
0669デフォルトの名無しさん2017/01/08(日) 17:07:39.75ID:bz1GF1b+
ちょまどでも使えるのがC#
0670デフォルトの名無しさん2017/01/08(日) 17:18:11.47ID:ZD9uWaqV
VB使いはC#も読めなけきゃスレタイも読めないのか(呆れ
0671デフォルトの名無しさん2017/01/08(日) 17:22:24.24ID:bz1GF1b+
>>670
俺は褒めてるんだけど?
0672デフォルトの名無しさん2017/01/08(日) 19:41:33.47ID:GefrbuSU
別に言語なんてなんだろうが出来るに越したことはないだろ
世の中にはプログラミングが出来るだけで神様のように崇める挫折した人らがごまんといるんだからさぁ
ただ今さらVBは無いわなってだけで
ある程度のプログラミングのスキルがあれば大抵の言語やればできるわ
0673デフォルトの名無しさん2017/01/08(日) 19:47:55.76ID:TbfsFEah
消しとけって言っただろうが1日中相手しやがって休みに予定の一つもない暇人どもめ
0674デフォルトの名無しさん2017/01/08(日) 19:55:49.52ID:zjQfPtHB
>ある程度のプログラミングのスキルがあれば大抵の言語やればできるわ

察してあげる優しさも必要だと思うの。
・・・そうじゃなきゃこんなに拘ったりしないだろ。こんなどうでもいいことに。
0675デフォルトの名無しさん2017/01/09(月) 01:08:12.74ID:vxkpROxT
VBの問題は、VB6上がりがクソコード量産することであって、言語自体の問題とも思えんな
一部を除けばなれの問題じゃね?
0676デフォルトの名無しさん2017/01/09(月) 03:40:15.39ID:iFTSomz+
構造が異なるのにVisual Basicって名前が良くなかったな
C# LITEとかのがよかった

本当はVB6の文法のまま.NET化したほうがよかったが気がするけど
0677デフォルトの名無しさん2017/01/09(月) 08:28:02.64ID:PTkphACT
VB6的なものは、残してもらいたかった。
0678デフォルトの名無しさん2017/01/09(月) 09:27:26.68ID:4NqOEoqD
VB6は基本そのままでCLIインターフェースを定義・公開できるようにするだけでよかった
レガシーコンポーネントとの接合面に徹するということね
0679デフォルトの名無しさん2017/01/09(月) 10:11:36.58ID:ES9C16us
そもそも言語の違いだけで
やれることが変わるっておかしいだろ

Basicで低級から高級まで、技術計算からwebまで全部網羅しなさいよ
0680デフォルトの名無しさん2017/01/09(月) 10:20:44.97ID:EPA1tS/m
>>676
書き方が違うのにc#の名前つけるのと不自然だろ
0681デフォルトの名無しさん2017/01/09(月) 10:28:05.78ID:5eZppcho
不自然な日本語
0682デフォルトの名無しさん2017/01/09(月) 10:46:51.41ID:4NqOEoqD
日本語そのものがまず不自然
規格化して機械可読にしろ
曖昧過ぎて話にならん
0683デフォルトの名無しさん2017/01/09(月) 10:53:09.63ID:Ml4ZG/LK
>>681
「と」が多いだけで不自然じゃないだろ
そっちじゃなくて、>>679の相手してやれよ
0684デフォルトの名無しさん2017/01/09(月) 10:55:14.48ID:qNaaD21i
>>683
不自然すぎるだろ
0685デフォルトの名無しさん2017/01/09(月) 11:28:05.30ID:EPA1tS/m
不自然と言うかただの誤字脱字なんだが
0686デフォルトの名無しさん2017/01/09(月) 11:34:45.57ID:GZgSniwS
this.RemoveRange(スレタイ読めないやつら);
0687デフォルトの名無しさん2017/01/09(月) 11:49:57.75ID:CAx+Qp4q
RemoveAllじゃね
0688デフォルトの名無しさん2017/01/09(月) 12:04:50.19ID:Ml4ZG/LK
thisのスコープに注意
0689デフォルトの名無しさん2017/01/09(月) 23:22:09.65ID:PtjtbCa1
>>687
いやすでにゴミなら
GC.Collect();
が妥当
0690デフォルトの名無しさん2017/01/10(火) 22:17:04.74ID:uwegHVoP
//デブはLOHに残る
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
0691デフォルトの名無しさん2017/01/11(水) 23:03:15.22ID:5ZcY/57e
PHPのコンストラクタって__construct()で統一されてるけど
C#は相変わらずクラス名と同名で行くのかな

<?php
class BaseClass {
function __construct() {

}
}
0692デフォルトの名無しさん2017/01/11(水) 23:08:33.22ID:1SbN3a75
>>691
地味に面倒臭いな確かに
数が多くなると発狂レベル
0693デフォルトの名無しさん2017/01/11(水) 23:45:27.30ID:SOQiv9G3
public class Hoge(IFuga fuga) : IHoge {
public void DoSomething() { fuga.Hello(); }
}

こういう構文をサポートしてほしい
インジェクションで決まりきったコンストラクタと読み取り専用フィールドをダラダラ書くのがめんどくさい
0694デフォルトの名無しさん2017/01/11(水) 23:49:54.18ID:IQVyJq11
PHPは特殊だから比較にならない
0695デフォルトの名無しさん2017/01/12(木) 01:46:35.54ID:9/EXlZU1
>>691
同じ名前にするのって歴史的以外になんか理由があるのかね
まぁ、手打ちすることはないからコピペしたときぐらいしか気にはならんが

>>693
入りそうになったけど、レコード型と一緒に入れようとかで延期になった気がする
0696デフォルトの名無しさん2017/01/12(木) 07:05:51.82ID:0A4eRqXF
>>695
歴史って言うか C++ 由来でしょ
Delphi みたいにキーワードで指定する方法もあるし、PHP みたいに固定的な名前もある
0697デフォルトの名無しさん2017/01/12(木) 07:57:37.19ID:gDCHiAoV
まあ自動生成が面倒になったりするだけで特にメリットは無いわな
単にC++やJavaの人が違和感なく入れるように配慮しただけ
メソッド名にキーワード使うのはインデクサのthisとかあるから public new() がベストだと思う
0698デフォルトの名無しさん2017/01/12(木) 08:22:28.72ID:arip6tnc
PHP(笑)
0699デフォルトの名無しさん2017/01/12(木) 19:27:23.13ID:xSuUU/8s
>>698
ASP.NETよりも桁違いに普及してる時点で
.NETのが格下扱いだろ
0700デフォルトの名無しさん2017/01/12(木) 19:33:30.95ID:2oeweQcz
普及している方が優秀なの?
0701デフォルトの名無しさん2017/01/12(木) 20:12:53.07ID:wTRJIMgP
昔に流行ったけど保守性が低くて駆逐できなかっただけなんだとさ
0702デフォルトの名無しさん2017/01/12(木) 20:13:54.54ID:QYJftQFG
>>701
phpがか?
0703デフォルトの名無しさん2017/01/12(木) 21:40:32.87ID:TJ6nofkx
>>697
> public new() がベストだと思う
構造体は常に new する訳じゃないから
0704デフォルトの名無しさん2017/01/12(木) 22:00:11.00ID:b+ED7Ag1
>>703
構造体のコンストラクタが呼ばれるのは明示的にnewされた場合だけだからそれでいいだろ
0705デフォルトの名無しさん2017/01/12(木) 22:29:17.14ID:3WOOMgjX
new a()が

new new()扱いになるのがキモイ
0706デフォルトの名無しさん2017/01/12(木) 22:30:43.93ID:3WOOMgjX
a.が抜けてた

new a.new()
0707デフォルトの名無しさん2017/01/12(木) 22:38:31.12ID:ja9bCuYX
.NET Coreって普及してるの?もしくはこれからweb開発のスタンダードになりそう?
0708デフォルトの名無しさん2017/01/12(木) 22:47:22.93ID:oQ7f95Jk
なってほしいな
今は仕事だとphpとrailsメインだけどc#でなんでもやりたいわ
LAMPがどかーんと行ったのだって言語云々じゃなくサーバが無料ってのが大きかったと思うんよね
0709デフォルトの名無しさん2017/01/12(木) 22:50:38.88ID:wTRJIMgP
コスト安くなるし普及するだろうね
海外では
0710デフォルトの名無しさん2017/01/12(木) 22:53:57.51ID:XIu+56Iq
静的型でポータブルでオールインワンって他にないからな
Goの代わりくらいにはなれるかもね
0711デフォルトの名無しさん2017/01/12(木) 23:10:57.73ID:xSuUU/8s
>>708
VisualStudioも無料になったら
本気で普及し始めると思う

あと、ザマリンの導入がもうちょっと
解りやすくなったら
0712デフォルトの名無しさん2017/01/12(木) 23:45:09.08ID:vtJ2CftH
>>705
ならないでしょ
VBが>>697の言う仕様だけど、そんなことにはなってない
0713デフォルトの名無しさん2017/01/13(金) 07:15:03.66ID:hmsqUFNG
>>700
じゃあ俺の自作言語が最強だな
変数ないけど
0714デフォルトの名無しさん2017/01/14(土) 08:53:21.93ID:rv9Bkqpt
C#にはヘッダーファイルがない。
クラスはC++と全然書き方が違う。
Cの派生言語のように見せかけた、中身はVBと同じ言語だ。
こんなもんでVBよりC#のほうが偉いはずがない。
0715デフォルトの名無しさん2017/01/14(土) 09:02:17.10ID:exppjyX7
相談スレでは相談しろ
0716デフォルトの名無しさん2017/01/14(土) 10:10:34.71ID:H4kTcvBH
VBよりC#が偉い理由はラムダが書きやすいのと直感に反する余計な事をしないってとこだな
0717デフォルトの名無しさん2017/01/14(土) 11:52:35.26ID:C/3o1CZS
一つの言語にやたらこだわるのは無能だからだろうな
>>714
お前がバカなのはこのスレでよくわかったから、もう書かなくていいぞ
0718デフォルトの名無しさん2017/01/14(土) 12:41:03.27ID:DO73KmNH
これ以上カスに触るなら二郎コピペでこのスレ埋めてやる
0719デフォルトの名無しさん2017/01/14(土) 16:48:32.83ID:OgQ0DzZw
おう、はよ埋めろや
0720デフォルトの名無しさん2017/01/14(土) 20:18:03.67ID:rv9Bkqpt
>>717 どうバカなのかどうせまともな説明できないくせに黙ってろよ
0721デフォルトの名無しさん2017/01/14(土) 20:41:22.94ID:JD3u+vgV
スレタイ読めないのはバカだろ
0722デフォルトの名無しさん2017/01/14(土) 20:43:39.19ID:dtN7VWLV
むしろ埋めてもらった方がワッチョイで立て直せるし、いいかも
ネタも無いしいいだろって住み着くオカシイ奴ってどこにでもいるから
0723デフォルトの名無しさん2017/01/14(土) 20:44:39.50ID:adzUep7y
ワッチョイなんてつけるまでもなく一人だからスルーしとけばよくね
0724デフォルトの名無しさん2017/01/14(土) 20:45:16.55ID:JD3u+vgV
ワッチョイつけりゃ一週間は登録の手間が省ける
0725デフォルトの名無しさん2017/01/14(土) 20:58:45.21ID:adzUep7y
大きいコピペの連投とか見づらいもの以外でも細かくNG入れてる人も居るのか
自分が使ってないから登録のことは考えてなかったわすまんな
0726デフォルトの名無しさん2017/01/14(土) 22:03:54.65ID:4p1bTVm6
それ以上C#スレ荒らす気ならVBスレ荒らすぞ
0727デフォルトの名無しさん2017/01/14(土) 23:42:52.47ID:OgQ0DzZw
おう、はよ荒らせや
0728デフォルトの名無しさん2017/01/15(日) 06:06:15.67ID:N0spz/4F
異常な嫌悪してるやつ自身が荒らしとる自覚もてよ
0729デフォルトの名無しさん2017/01/16(月) 18:22:07.32ID:h1Gia5xw
俺も色々やってみたほうが良いと思うけど、PHPだけは専門にやってる人以外は危ないからやらないほうが良いかもな
0730デフォルトの名無しさん2017/01/17(火) 17:50:34.77ID:cbxfPpyL
ASPもPHPも言語ではなくフレームワークみたいな認識。
0731デフォルトの名無しさん2017/01/17(火) 18:27:11.28ID:VcB0QsgY
web系全般そんなもんじゃね?
0732デフォルトの名無しさん2017/01/17(火) 18:38:01.09ID:TNo9RdVK
web系以外のも同じだな
0733デフォルトの名無しさん2017/01/19(木) 02:27:36.32ID:zUZJ1T5E
VBのLike演算子が必要なので、C#という選択肢にならない。

InputBoxも使えるのがVB。
C#人は、C#使いながら、Microsoft.VisualBasic名前空間のライブラリを使ったりもしないのかな。
0734デフォルトの名無しさん2017/01/19(木) 03:12:26.89ID:mclODO+O
.NET標準になくてMicrosoft.VisualBasic名前空間にしかないライブラリ機能ってあるの?
0735デフォルトの名無しさん2017/01/19(木) 03:16:26.12ID:HUduSCHL
>>734
CSV絡みでTextFieldParserとか
CsvHelperあるしもう誰も使わんと思うけど
0736デフォルトの名無しさん2017/01/19(木) 03:28:23.32ID:zUZJ1T5E
ならばInputBoxの代わりになる.NET標準を教えてほしい。
Like演算子の代わりなるものもあるんかいな。正規表現まで持ち出するのは一手間だし。
0737デフォルトの名無しさん2017/01/19(木) 03:33:28.73ID:zUZJ1T5E
 マネージ拡張C++でTextFieldParser使おうとして、clコマンドでコンパイルしようとしたら、
なぜかコンパイラが異常終了したことがあった。VB.NETでないとexeが作れなかった。当時はC#
は勉強不足だったから、それでは試してない。
0738デフォルトの名無しさん2017/01/19(木) 04:14:58.96ID:LVeuyfqa
>>733
http://www.atmarkit.co.jp/ait/spv/1412/02/news129.html
0739デフォルトの名無しさん2017/01/19(木) 04:20:46.87ID:LVeuyfqa
>>736
inputBoxが必要でVBにしがみつく理由がわからない
そんなform一瞬で作れるだろ
0740デフォルトの名無しさん2017/01/19(木) 04:30:24.85ID:zUZJ1T5E
InputBoxは、すでに用意されているので、正に一瞬だが、互換Formを作るのは少なくとも1分はかかる。
VBならこんなものを自作して管理する煩わしさもなく、作成済みのフォームをプロジェクトに追加する
必要もない。
0741デフォルトの名無しさん2017/01/19(木) 04:39:21.41ID:LVeuyfqa
>>740
じゃあ逆に聞くけど、VBで.NET Core使ってんの?
0742デフォルトの名無しさん2017/01/19(木) 04:44:31.30ID:zUZJ1T5E
>>741 そんなものは知らん。だがVB.NETでInputBox利用すればそれを利用する必要もない。
0743デフォルトの名無しさん2017/01/19(木) 04:46:13.14ID:LVeuyfqa
>>742
…やっぱ触っちゃいけない人だった
0744デフォルトの名無しさん2017/01/19(木) 04:47:52.86ID:2A4qP/TB
>>740
https://blogs.msdn.microsoft.com/dotnet/2017/01/18/the-week-in-net-on-net-with-david-pine-pwdless-terraria/

.NETの勉強しててこれのF#以外をVBで試そうと思ったら、かなり大変じゃない?というかできるの?
0745デフォルトの名無しさん2017/01/19(木) 04:59:14.61ID:zUZJ1T5E
>>744 何のことについて書いてあるのかね。仮に日本語であったとしても、事前に何の説明もなくいきなり読んで理解できるかも疑問だ。
0746デフォルトの名無しさん2017/01/19(木) 05:04:07.77ID:bDIUTWZ4
>>745
英語も読めないなら消えな
0747デフォルトの名無しさん2017/01/19(木) 05:11:17.04ID:zUZJ1T5E
事前に何の説明もなく、話の背景や前提もわからず学術論文とかを急に読まされても、専門家でもない限り日本語でも理解できるはずがない。
専門家でも、論文全体ではなく、ある一部分だけを抜き出して、それが何の論文から引用したかも何かも示されなければ、理解できるとは限らないだろう。
0748デフォルトの名無しさん2017/01/19(木) 05:23:49.86ID:bDIUTWZ4
>>747
学術論文の話なんかしてねーよ
.NETのtipsがいろいろとまとめられてるけど、どうやってそれをVBに読み換えてんの?
0749デフォルトの名無しさん2017/01/19(木) 05:25:18.75ID:LVeuyfqa
>>747
ただのブログだろバカ
0750デフォルトの名無しさん2017/01/19(木) 05:26:05.83ID:mclODO+O
英語とはいえただのブログ記事を学術論文て
0751デフォルトの名無しさん2017/01/19(木) 05:31:36.41ID:mclODO+O
ていうかTerrariaってC#/XNAで書かれてたんだ…その記事で初めて知ったわ
0752デフォルトの名無しさん2017/01/19(木) 06:06:50.67ID:zUZJ1T5E
学術論文は例えばの話だろが。
いきなり長文を出されて、どこの何をどのようにして読むのか何も示さず、それをどうしてもらいたいのかも
説明がないと困るだろ。
0753デフォルトの名無しさん2017/01/19(木) 06:10:42.55ID:JVh2O255
>>752
説明してるだろVB脳
0754デフォルトの名無しさん2017/01/19(木) 06:16:44.40ID:zUZJ1T5E
このリンク先ページに示されてるC#のプログラムコードをVBに読み替える、あるいはVB用にコードを作り替える
のが大変ではないか、またはできるのか、あるいはその前に読み替えもできるのかを聞きたいのかね。
0755デフォルトの名無しさん2017/01/19(木) 06:18:51.75ID:zUZJ1T5E
>>753 わかるように説明しろよ
0756デフォルトの名無しさん2017/01/19(木) 06:21:00.70ID:JVh2O255
>>754
仕方ないからその中のこれだけでいいよ
http://www.codemag.com/Article/1701061

これVBでやってみ
0757デフォルトの名無しさん2017/01/19(木) 06:21:30.66ID:mclODO+O
>>754
最初からVBじゃなくてC#使ってれば何も悩まず書いてあるのをコピペして使えるよねって話じゃねえの
0758デフォルトの名無しさん2017/01/19(木) 06:21:31.93ID:zUZJ1T5E
C#の技術力以前に人格をどうにかしろよ。
バカ扱いすれば自分が偉くて高い立場だとでも思ってるのかね。
0759デフォルトの名無しさん2017/01/19(木) 06:25:06.37ID:zUZJ1T5E
>>756 仕方がないからこれだけでいいというから、分量を大幅に絞り込んだものかと思えば、これも大量にあるじゃないか。
0760デフォルトの名無しさん2017/01/19(木) 06:29:21.58ID:JVh2O255
>>759
少し見たらわかると思うけど、これ極々基本的なことしかやってないよ?むしろこれができないならVBには無理だわ
0761デフォルトの名無しさん2017/01/19(木) 06:29:25.97ID:BbnbZdnl
VBやると頭がおかしくなるということがよくわかった
0762デフォルトの名無しさん2017/01/19(木) 06:31:34.13ID:LVeuyfqa
そもそもVBなんて、まだ.NET Core1.0ですら正式対応してないからな
0763デフォルトの名無しさん2017/01/19(木) 06:34:19.96ID:mclODO+O
ID:zUZJ1T5Eが頭おかしくても、VB.NETのことは嫌いにならないでねっ!
0764デフォルトの名無しさん2017/01/19(木) 06:38:41.20ID:zUZJ1T5E
>>761 >>763
お前の頭がおかしいから、他人の頭がおかしいと思い込んでるだけだ。
0765デフォルトの名無しさん2017/01/19(木) 06:52:09.97ID:zUZJ1T5E
自分の主張を正当化できないから、相手をバカ扱いしてごまかすだけか。
0766デフォルトの名無しさん2017/01/19(木) 07:07:47.10ID:krZQnAr8
>>765
vb.netは自分も嫌いじゃないけど
ここはスレ違いと認識してそろそろやめませんか?
0767デフォルトの名無しさん2017/01/19(木) 07:09:56.04ID:EGANxKDd
伸びてると思えばまたVBネタかぁ
VBといえば
Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile()
は便利だよね。よく使う
0768デフォルトの名無しさん2017/01/19(木) 07:30:09.62ID:zUZJ1T5E
>>766
 vbにはない有利なところ、切り替える価値を探ってるんだけどな。vbだけの有利
と思えるところが.netで代替策があるならそれもまず知る必要がある。その準備
なしで、漠然とC#使うだけなら意味がないし。そのためにC#を知るための話題だか
らな。
0769デフォルトの名無しさん2017/01/19(木) 07:38:27.30ID:Xmxeyump
>>768
知ろうとしてないだろ
0770デフォルトの名無しさん2017/01/19(木) 07:42:49.69ID:b0abdje/
俺もN-BASIC世代だからVB好き
0771デフォルトの名無しさん2017/01/19(木) 07:55:09.76ID:mclODO+O
>vbにはない有利なところ、切り替える価値
なんて、>>744をはじめとする最先端のコード資源がほぼコピペだけで使えるってだけで十分じゃん
0772デフォルトの名無しさん2017/01/19(木) 07:57:11.06ID:q3hudiC7
行番号のないBASICは所詮偽モノ。インタプリタでもねーし。
BASICのいいところはすべて失われた。
0773デフォルトの名無しさん2017/01/19(木) 07:59:57.29ID:Ntb3+hAE
.NET Coreに関する和書かいいサイトってある?
0774デフォルトの名無しさん2017/01/19(木) 08:00:00.05ID:Xmxeyump
>>771
VBでも同様の処理を書けるならまだしも、そもそもフレームワークでサポートされてないからな
0775デフォルトの名無しさん2017/01/19(木) 08:02:10.58ID:Xmxeyump
>>773
体系的にまとめられてるのは見たことないから、素直に公式のdocs読むのが一番手っ取り早いよ
まあVisual Studio2017が出た時点で大幅に修正が入るからね
0776デフォルトの名無しさん2017/01/19(木) 08:29:16.46ID:9oxUjj4Y
急に伸びてると思ったらこれかー
0777デフォルトの名無しさん2017/01/19(木) 09:22:15.10ID:X4NEWeGC
>>758
相対的にそうなるね
0778デフォルトの名無しさん2017/01/19(木) 13:01:19.54ID:0ZEPc8s2
MODIを使って並列処理をすると、スレッド数が論理コア数では固まるが物理コア数だと動いてしまう
原因わかりますか?
0779デフォルトの名無しさん2017/01/19(木) 16:18:48.05ID:C+ssGhBJ
またVBガイジかよ
0780デフォルトの名無しさん2017/01/19(木) 18:03:11.37ID:t+KfFfyK
コピペって・・・。そのままコピーするだけか。
普通はコードを理解して、自分の作る目的のプログラムに合わせて必要変更をするだろうが。
ただのコピペ厨の自称プログラマーかいな。
0781デフォルトの名無しさん2017/01/19(木) 18:10:34.08ID:yUxFIvB5
真っ赤だな
0782デフォルトの名無しさん2017/01/19(木) 19:01:51.57ID:Ccs4bPhG
>>767
ワイルドカードが使えるから便利ってこと?
0783デフォルトの名無しさん2017/01/19(木) 19:56:33.00ID:mclODO+O
>>780
もちろん必要があれば読むよ
でも他人がもう書いてるコードなんて可能な限り自分で書き直さないで済むほうがいいんだよ
そもそもライブラリってそういうもんだろ
0784デフォルトの名無しさん2017/01/19(木) 20:37:07.91ID:Ntb3+hAE
>>775
ありがとう
Core始めてみてEntity Framework使おうとしたら
dotnet efのコマンドが通らなくていきなりくじけたでござる
0785デフォルトの名無しさん2017/01/19(木) 20:45:51.31ID:xEZd6WIv
>>784
Entity Framework Coreは、まだOracleが正式にサポートされてないのが辛いね
0786デフォルトの名無しさん2017/01/20(金) 03:17:40.48ID:mnoV+t38
>>782
ゴミ箱に入れられるからでしょ
0787デフォルトの名無しさん2017/01/20(金) 07:11:21.34ID:1c/0Zcpc
君らcoreは何に使うん?
0788デフォルトの名無しさん2017/01/20(金) 07:26:59.76ID:73D0Dll6
何にもクソもCoreはLinuxサーバーでWebサイトを運用するためのもんだよ
Windowsで運用とか苦痛でしかないし
0789デフォルトの名無しさん2017/01/20(金) 07:30:05.91ID:1c/0Zcpc
>>788
iis便利やん。何が苦痛なん?
0790デフォルトの名無しさん2017/01/20(金) 07:32:52.88ID:Bg1tCMvm
Linuxの方が苦痛だよ
システムやアプリの設定方法に統一感なくてわかりにくいし
SeLinuxとか鬱陶しいし
コマンドへのIOが文字列とか前時代的だし
スイッチも一文字じゃ何やってるサッパリかわからん
0791デフォルトの名無しさん2017/01/20(金) 08:16:51.86ID:uaOwYInA
>>788
APIも知らないのかな?ASP.NETにおけるWebサイトとWebアプリの違いはわかってるかい?
0792デフォルトの名無しさん2017/01/20(金) 08:43:19.35ID:kuRbEAeZ
>>791
さすがにその言いがかりは無理があるだろ
Webサイトと聞いてASP.NET用語のWebサイトのことだと思っちゃう人は相当特殊だということを自覚したほうがいいよ
0793デフォルトの名無しさん2017/01/20(金) 10:28:22.73ID:l+Qn6xw4
.NET Core 自体には 1 つのアプリケーション モデル (コンソール アプリ) が含まれており、ツール、ローカル サービス、およびテキストベースのゲームに便利です。

次のような機能を拡張するために、.NET Core の上に追加のアプリケーション モデルがビルドされています。
ASP.NET Core
Windows 10 ユニバーサル Windows プラットフォーム (UWP)
Xamarin.Forms

https://docs.microsoft.com/ja-jp/dotnet/articles/core/
0794デフォルトの名無しさん2017/01/20(金) 11:07:17.26ID:uaOwYInA
>>792
単に無知なやつを茶化してるだけだろ
0795デフォルトの名無しさん2017/01/21(土) 12:06:38.55ID:qCdjOj58
C#を勉強してるのですが、無償環境の為インストーラーの作成が出来ません
動作環境を知ることができる特定の相手のみアプリケーションを配布するのにインストーラーが必要なのはどういった場合になるでしょうか
0796デフォルトの名無しさん2017/01/21(土) 12:42:00.19ID:wnvzR/a/
>>795
どんな無償環境?
無償環境だけが条件ならVisual Studio Community 2015 でインストーラーを作れるけど
0797デフォルトの名無しさん2017/01/21(土) 13:15:17.44ID:3w6w5xSi
翻訳ソフト使ったのかな
0798デフォルトの名無しさん2017/01/21(土) 13:26:11.74ID:DU5/M7G9
>>796
ありがとう。調べてみたら
Installer projectっていうのがあるんだね
0799デフォルトの名無しさん2017/01/22(日) 05:11:30.27ID:SRnP25ta
コードはいじれないdllにClickイベントがあって

private void OnClick(object sender, DeviceGestureEventArgs e)
{
  // いろいろ処理
}

Clickイベント自体はpublicです。
Clickイベントをどうにかしてこの いろいろ処理 を無効にできますか?
button.Click -= OnClick; みたいなことがやりたいのですが。
0800デフォルトの名無しさん2017/01/22(日) 08:34:45.29ID:6kGfbYFS
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;
0801デフォルトの名無しさん2017/01/22(日) 09:43:23.66ID:phG9hQKS
>>799
継承して OnClick (>>799に書いてあるものではなくてこれhttps://msdn.microsoft.com/en-us/library/system.windows.forms.control.onclick(v=vs.110).aspx)
をオーバーライドして潰せばClickイベントは発生しなくなる
0802デフォルトの名無しさん2017/01/22(日) 10:20:22.86ID:SRnP25ta
>>800-801
ありがとうございます。
いけそうです。
0803デフォルトの名無しさん2017/01/22(日) 23:41:02.88ID:B37Hjrvb
2GBを超えるバイナリファイルをbyte配列に取り込もうとしているのですがうまくいきません

byte[] bs = System.IO.File.ReadAllBytes(file_path);
↑これだと2GB未満にしろといわれます

できるだけ分割したくないのですが方法はありますか?
0804デフォルトの名無しさん2017/01/22(日) 23:47:39.67ID:5CC/gWkn
[] ←これが2Gまでじゃないかな
0805デフォルトの名無しさん2017/01/22(日) 23:56:07.82ID:f0ZpZ2O5
C#って2GiBの壁も超えられないクソ言語なの!?
0806デフォルトの名無しさん2017/01/22(日) 23:58:32.97ID:2orbyh8h
https://msdn.microsoft.com/ja-jp/library/hh285054(v=vs.110).aspx
0807デフォルトの名無しさん2017/01/22(日) 23:59:03.69ID:7Uo1H//c
>>803
配列の長さは仕様上Int32なのでどうしようもない
0808デフォルトの名無しさん2017/01/23(月) 00:06:09.00ID:dQYVkXPH
>>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 でググレカス
0809デフォルトの名無しさん2017/01/23(月) 00:14:05.50ID:iJ5kh901
2GBってネタじゃなくて真面目に言ってるのかw
少なくとも現時点では富豪的過ぎる気がするんだけどw
ムーアの法則とっくに終わってるし将来的にも疑問だなあw

まあ現時点でも動作環境を限定できるならそれほど非現実な数字でもないんだろうけど
0810デフォルトの名無しさん2017/01/23(月) 00:41:33.95ID:ft2qOqRV
803じゃないけど、

10〜20個くらいのプロパティを持つクラス(ほとんどstring型)の、数百万個単位のインスタンスを処理したい
(現在百数十万個だがデータは日々増えていて、将来的には500万個以上のデータを扱いたい)
データ追加時を除けば1つのデータのプロパティを書き換えることはあまりない
全データを対象に集計や抽出をバリバリやる

今はこのクラスのジェネリックリストでメモリ上に保持していて、XmlSerializerとStreamReader/Writerでロード/セーブしてるけど、
500MB以上のファイル読み書きに十秒単位で時間が掛かるようになってきてしまい、使用メモリも多いときは1GBに届きそうになってきた

個人のPCでも実現出来る範囲で何か工夫して軽量化するとすれば、どういうやり方があるだろうか
データベースを使うと却って重くなる?
0811デフォルトの名無しさん2017/01/23(月) 01:00:04.12ID:AKblCqbZ
DB使え
0812デフォルトの名無しさん2017/01/23(月) 01:17:39.68ID:ft2qOqRV
やはりデータベースか…
この規模のデータでデータベースを使うなら何がいいですかね?
0813デフォルトの名無しさん2017/01/23(月) 05:19:54.65ID:3LnhEFNW
>>810
むしろそんなになるまでデータベースを使わない選択をしてたのが信じられんわ
0814デフォルトの名無しさん2017/01/23(月) 07:25:59.67ID:4eKNVnEB
>>812
postgresかな
高性能で、ライセンスが緩く、比較的ローカルでも利用されることの多い非常に有名なDBMSだ
広く配布するようなものではなさそうに見えるから、
SQLiteみたいな組込型に拘る必要はないと思う
0815デフォルトの名無しさん2017/01/23(月) 08:36:41.41ID:mc6Hyr1K
>>812
SQL-SERVER LocaDB でいいんじゃね?
Visual Studio から操作できるし
他の端末からも参照したいって言われたら SQL-SERVER Express に移行すればいいし
もっとでかくなったら Standard や DataCenter Edition あるし
08168032017/01/23(月) 11:57:28.95ID:Enhoy4E3
>>804
>>805
>>807
>>808
レスありがとうございます
<gcAllowVeryLargeObjects> を有効にしてもbyte配列自体が2GB超えて作ることができないため
それそも不可能ということでよろしいですか?
その場合、int32などに配列作りなおしたいと思います
0817デフォルトの名無しさん2017/01/23(月) 12:04:12.14ID:uKeJP+/b
byte[]としては無理
byte*にするなら可能
0818デフォルトの名無しさん2017/01/23(月) 13:01:08.68ID:GKpZ78C8
>>816
バイナリファイルの編集が目的ならreader/writer使えば良いんじゃないの
0819デフォルトの名無しさん2017/01/23(月) 21:01:33.61ID:bI3M8V88
>>816
ビルドターゲットはx64になってる?
AnyCPUだと最近のは32bitを優先がデフォルト設定だから上手く行かないかも。こっちを直しても良いけど。
いずれにせよ、64bit環境は必須。
0820デフォルトの名無しさん2017/01/23(月) 21:16:01.30ID:4O+fDoKV
>>815
SQL Server Expressは10GB制限があるから話にならんよ
DBまでわざわざMSにロックインとかアホらしいし
0821デフォルトの名無しさん2017/01/23(月) 21:55:33.04ID:3LnhEFNW
>>820
じゃあ何がおすすめなの?教えて先生!
0822デフォルトの名無しさん2017/01/23(月) 21:58:50.93ID:hTicmAdc
postgreオヌヌメ
0823デフォルトの名無しさん2017/01/23(月) 21:59:47.37ID:LuyUsAN1
>>820
10GBも有れば十分だと思う
0824デフォルトの名無しさん2017/01/23(月) 22:29:35.23ID:4O+fDoKV
>>823
既に500MBあってまだまだ増えるって言ってるのに何を根拠に十分だというのか
いくつも一時テーブル作ったりしたらカツカツだろ
DBってそれぞれに結構癖屋独特のノウハウがあるから、後で問題が出てから乗り換えるより最初から一本に決めたほうがいい
MSに金払う気がないならpostgresにしとけ
0825デフォルトの名無しさん2017/01/23(月) 22:53:34.66ID:uKeJP+/b
>>824
>(現在百数十万個だがデータは日々増えていて、将来的には500万個以上のデータを扱いたい)
> XmlSerializerとStreamReader/Writerでロード/セーブしてるけど、
> 500MB以上のファイル読み書きに十秒単位で時間が掛かる

今のデータで考えると10GBには百数十万個の20倍
今のデータはxml
どんな根拠で10GBが不十分だというのか逆に聞きたい
0826デフォルトの名無しさん2017/01/23(月) 22:59:20.56ID:UsEI+ALW
>>824
理由もなしにpostgresとな
0827デフォルトの名無しさん2017/01/23(月) 23:08:01.01ID:wWnQplUy
話は変わるけど、LocalDBをOS標準にしてくれると嬉しいんだけどな
0828デフォルトの名無しさん2017/01/23(月) 23:15:06.54ID:wcSM/s0i
いまだにPOCOの概念がよくわからないんだけど、POCOと対になるものと併せて誰か教えてクレメンス
0829デフォルトの名無しさん2017/01/23(月) 23:19:31.21ID:4eKNVnEB
>>828
わかりやすいのは型付データセットだな
強制された基底クラスや大量の自動生成コードにクソミソに汚されたクラスのことだ
0830デフォルトの名無しさん2017/01/23(月) 23:25:33.94ID:8CargB7Y
DBはころころ変わり続けるのはもうやめてほしいな
0831デフォルトの名無しさん2017/01/24(火) 01:13:39.09ID:JiOoKhp+
>>816
GetValueなら64bitを指定できはする
64bitなら一応確保できるのかなぁ

だけど、そもそも2GB超の連続領域を安定して確保できるかは不安
メモリマップとかも検討したら?
0832デフォルトの名無しさん2017/01/24(火) 08:39:50.24ID:HHZbO6eg
>>820
> SQL Server Expressは10GB制限があるから話にならんよ
生の XML を格納する訳じゃないだろうしデータ圧縮もできるし話にならないのは君のちんけな知識じゃないかな? w
PostgreSQL もいいと思うけどちょっとしたデータの確認とかを Visual Studio でできる SQL-Server の便利さは捨てがたい
0833デフォルトの名無しさん2017/01/24(火) 08:42:05.80ID:JKcqAdCJ
その程度の便利さならどうでもいいな
GUIの管理ツールを使えば済む話
0834デフォルトの名無しさん2017/01/24(火) 08:42:56.64ID:HHZbO6eg
>>827
内部的には SQL-Server のプロセス動いてるから大多数の人には邪魔にしかならんと思う
0835デフォルトの名無しさん2017/01/24(火) 08:46:39.86ID:ghFC1Ntr
sqlserverってselectでもデッドロックするからヤダ
0836デフォルトの名無しさん2017/01/24(火) 10:25:32.84ID:tgh5wy6g
>>834
Vistaか7あたりから、ファイルシステムがSQL Serverベースになるという話があったよな
0837デフォルトの名無しさん2017/01/24(火) 10:52:48.75ID:g9KGWoah
>>835
ちょっとはググれよ
0838デフォルトの名無しさん2017/01/24(火) 11:02:46.65ID:tjYeiy24
OSにDBもたせるとかまたセキュリティホールの温床やん

無駄な機能は悪
0839デフォルトの名無しさん2017/01/24(火) 11:05:54.15ID:4uwrNeCv
DB=セキュリティホールときたかw
0840デフォルトの名無しさん2017/01/24(火) 11:23:21.18ID:1ohBhH6C
痴性溢れる御意見ですね
0841デフォルトの名無しさん2017/01/24(火) 11:25:32.73ID:b/7/gkXo
たしかにレジストリも一種のDBでセキュリティホールの温床だから
OSで各種設定を保持するのはやめよう(名案)
0842デフォルトの名無しさん2017/01/24(火) 11:28:18.15ID:nhx4+y/y
>>836
頓挫しちゃったのが勿体無い
0843デフォルトの名無しさん2017/01/24(火) 11:47:35.47ID:HE6oytLN
ゲイツ3世さんがずいぶん入れ込んでたみたいだったけど、正直俺にはアレのメリットが
さっぱり理解できんかった。
0844デフォルトの名無しさん2017/01/24(火) 12:20:30.56ID:b/7/gkXo
ツリー式のファイル管理はもう人が把握できる限界に近づいてると思うし
もっとリッチなタグ情報をファイルシステムで持たせて
OSの検索機能に統合する思想は支持するよ
0845デフォルトの名無しさん2017/01/24(火) 12:43:39.44ID:HHZbO6eg
>>833
> GUIの管理ツールを使えば済む話
それをいちいちインストールするのが面倒だって話
0846デフォルトの名無しさん2017/01/24(火) 12:47:25.25ID:HHZbO6eg
>>836
WinFS か
いい考え方だと思うがちょっと構想が壮大すぎたな
0847デフォルトの名無しさん2017/01/24(火) 13:11:04.23ID:VXWwcrkC
ゲイツは過去にXMLは使い物にならないと言った。

WinFS、WPF・・・ゲイツはやはり生粋のプログラマである。
0848デフォルトの名無しさん2017/01/24(火) 15:21:09.38ID:iRQG5obN
WPFでXAMLにGoサインだしておいてよく言う
0849デフォルトの名無しさん2017/01/24(火) 15:39:07.83ID:VXWwcrkC
ゲイツはVista以降はタッチしていない。
0850デフォルトの名無しさん2017/01/25(水) 03:10:02.58ID:WHRwTArY
>>847
全部読まないと一部分が取り出せないってのがデータが多くなると致命的だよね
0851デフォルトの名無しさん2017/01/25(水) 07:15:37.99ID:fntd/u0o
そこまででかいならDB使えってことでしょ
0852デフォルトの名無しさん2017/01/25(水) 11:50:15.36ID:3NBpStvW
JAVAやVB6、WPF、LINQが遅くないと暴れてるアホと同じ臭いがする。
機械語NativeとそうでないPGとに根本的な認識の断絶がある。
0853デフォルトの名無しさん2017/01/25(水) 11:53:43.34ID:2idQLFdG
悪いけど暴れてるのは君の方だと思うw
0854デフォルトの名無しさん2017/01/25(水) 11:59:10.65ID:uJriqNlz
同感w
0855デフォルトの名無しさん2017/01/25(水) 12:27:26.41ID:eMOc+Lms
もう一票
時代について行けてないお爺ちゃん頑張って
0856デフォルトの名無しさん2017/01/25(水) 12:38:38.29ID:obtTERoQ
そもそもVB6は割りと早かっただろうに
C#に移行するときにモッサリ感でイライラした人も多かったはずだが
0857デフォルトの名無しさん2017/01/25(水) 14:12:06.66ID:LppA2Fcl
C#も実行時は機械語だし、VB6なんて完全に機械語だろ
0858デフォルトの名無しさん2017/01/25(水) 14:18:51.33ID:7AoQtGUX
>>855
+1
>>854
+1
>>853
+1
>>852
-1
0859デフォルトの名無しさん2017/01/25(水) 16:32:03.08ID:ABI1PFb6
ラムダガイジ、LINQガイジ、staticおじさん、VBガイジは巣に帰れ
0860デフォルトの名無しさん2017/01/25(水) 19:30:14.67ID:/wdbuGDr
俺も>>853にもう一票。
ただそれ以前に暴れている奴がいないと思うが。

あとC#はnativeでは無くMSILだろ。そして必要十分な速度は出ていると思うよ。
DBについては、自前でDBモドキを作る位なら最初からDB使えって話だろ。
ただしOSは今のNTFS+検索用インデックス(現行システム)でいいと思うけどね。
大半は階層化で問題ないし、必要あればDBを動作させればいいだけ。
WPFは使ったこと無いが、中途半端なものを作るのではなく、
最初からHTMLにしとけばよかったと思う。
0861デフォルトの名無しさん2017/01/25(水) 19:33:54.26ID:G7Mt73tJ
>>860
C#は実行時はネイティブだよ
Javaみたいなインタプリタとのハイブリッドとも違い、ほぼAOTな方式
0862デフォルトの名無しさん2017/01/25(水) 19:34:38.55ID:uJriqNlz
>>857が言ってるのはCPUに命令渡されるときは機械語だってような意味でしょw
0863デフォルトの名無しさん2017/01/25(水) 20:00:27.57ID:/wdbuGDr
>>861
JITと言えよ。話が余計におかしくなるだろ。
とはいえMonoは直接native吐けるようだが。
0864デフォルトの名無しさん2017/01/25(水) 20:06:49.55ID:a2fwv9ft
>>863
.NETは起動時にコンパイルだから、JavaのHotSpotみたいなのが真のJITだとするなら実質的にはAOT寄りでしょ
あくまでコンパイルするタイミングの問題でしかないので、ngenや.NET Nativeみたいなのも技術的に難しくない
Cのソースを実行前にコンパイルしてるようなもんだ
0865デフォルトの名無しさん2017/01/25(水) 21:03:29.96ID:/wdbuGDr
>>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にしたら、難読化はかなり進むのかな?
0866デフォルトの名無しさん2017/01/26(木) 02:07:47.45ID:NrOKhjjD
>>865
技術が進歩したり、複合技を使うようになったから言及することにあんまり意味はないんだけどね

MSILで配布してインストーラでngenをかけるソフトとか、AndroidのArtの事前コンパイルを見ればAOTというのも間違いではない
0867デフォルトの名無しさん2017/01/26(木) 07:09:13.07ID:hf6GrTPo
今度は完全に論破しないと気がすまない奴が集まりだしたなぁ
0868デフォルトの名無しさん2017/01/26(木) 09:22:35.13ID:+HXQGO57
c#で出来たms製の製品って何がありますか?
0869デフォルトの名無しさん2017/01/26(木) 09:47:45.25ID:e+Zq8z+D
>>868
Visual Studio
0870デフォルトの名無しさん2017/01/26(木) 10:33:30.90ID:MZPXqvXg
>>869
devenv.exe
cl.exe
ml.exe
nmake.exe
link.exe
こういうの全部ネイティブなんだが、C#で作ってネイティブ化してるのか?w
0871デフォルトの名無しさん2017/01/26(木) 11:30:14.20ID:Bx3m0kqD
>>870
例えばdevenv.exeとかファイルサイズが1MBすら無いけどそれだけでVS動いてんの?
0872デフォルトの名無しさん2017/01/26(木) 12:08:47.81ID:sD2fcvWW
>>871
何馬鹿なこと言ってるんだ?
今俺が起動してるVSだとntdll.dlljから数えて426モジュールロードされてるが、その中にはC#で作られてるのもあるよ
VSはVSで作られてるかもしれんが、VSはC#で作られてるとは言わないだろ
0873デフォルトの名無しさん2017/01/26(木) 12:13:43.88ID:ecr0NxNG
馬鹿はおめーだよ死ねガイジ
0874デフォルトの名無しさん2017/01/26(木) 12:23:03.13ID:A9+CgNOi
どうでもいいですよ
0875デフォルトの名無しさん2017/01/26(木) 14:11:50.02ID:+5gKaLQm
>>872
>その中にはC#で作られてるのもあるよ
どのくらいの割合で?
0876デフォルトの名無しさん2017/01/26(木) 14:51:13.51ID:sD2fcvWW
>>875
このスレにいるならVSぐらい入れてるだろ。興味あるなら自分で数えろよ
0877デフォルトの名無しさん2017/01/26(木) 15:46:52.91ID:NrOKhjjD
VSはWPF製
0878デフォルトの名無しさん2017/01/26(木) 15:54:26.65ID:mfu+uciH
ガワがWPFでネイティブツール群を呼び出しているならC#製と言っていいね
0879デフォルトの名無しさん2017/01/26(木) 16:25:36.23ID:eYmqMcR3
VS2010からWPFになって激重。
0880デフォルトの名無しさん2017/01/26(木) 17:41:07.76ID:Ofw1Wwb+
SSD君登場
0881デフォルトの名無しさん2017/01/26(木) 18:25:52.64ID:BIlB42US
"PrismUnityApplication" は名前空間 "using:Prism.Unity.Windows" に存在しません。

とエラー一覧に出るようになって

<prism:PrismUnityApplication

に波線が付くようになったんだけどどうすれば直りますか?
プログラムは何の問題もなく動きます。
0882デフォルトの名無しさん2017/01/26(木) 18:38:59.08ID:RbsnIhge
>>879
逆でしょ
偶にVS2010使うと糞重くてイライラするぐらいなのに
0883デフォルトの名無しさん2017/01/26(木) 20:12:45.99ID:FrBndq/i
質問すみません
今MVCでEntityFrameworkの勉強中なんですけど、DisplayNameの属性で日本語指定すると文字化けするんですが何が原因と思われるでしょうか
0884デフォルトの名無しさん2017/01/26(木) 20:39:43.56ID:kmw2XayL
>>883
えーっと俺も経験あるような気がするんだが思い出せない。
どうにかしたら直ったと思う。
0885デフォルトの名無しさん2017/01/26(木) 20:50:44.48ID:Ofw1Wwb+
>>881
気にしない
xamlのコンパイラ統合は未だみたいだね
0886デフォルトの名無しさん2017/01/26(木) 21:45:58.05ID:3P/eAUHh
>>884
ありがとうございます
そうですか。このあいだまでは確か普通に出来てたんですよね。。
プロジェクト変えたりweb.configでencoding書いてみてもダメでどうしたものかと
0887デフォルトの名無しさん2017/01/26(木) 21:47:05.34ID:He8RO7U3
>>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++より悪いし、よくなることはない。
これを踏まえた上で、そのアプリにとって最適な言語を選択すればいいだけのこと。
0888デフォルトの名無しさん2017/01/26(木) 21:48:44.28ID:6c1mJ3TJ
>>875
デバッガのホストのように、目的の性質上ネイティブでなければならない一部のものを除けばほぼ全て
VS2010のときに全面的にC#で作り直したらしいよ
VSはC#で書かれたマネージドアプリだと公言してるし
0889デフォルトの名無しさん2017/01/26(木) 21:57:18.89ID:6c1mJ3TJ
>>887
誤解の少ない言葉を使えと言いながら実行速度の話とJITをごっちゃにして不要な混乱を招くのはいかがなものか
原理的にはJITの方が実行時のプロファイルをヒントとして最適化ができる分だけ有利だ
あとは起動時間や実行時にコードを差し替えるコストとのトレードオフだが、
サーバーならそこは全く問題にならないので実際JavaのHotSpotなんか(あくまでサーバー用としてはだが)すごく高性能だよ
重い処理やらせると段階的に最適化されて速くなっていくのが目に見えて、最終的には素直に書いたC++を超えるケースもある
0890デフォルトの名無しさん2017/01/26(木) 22:14:43.93ID:kmw2XayL
>>883
ファイルのエンコードデングが関係してないか?
0891デフォルトの名無しさん2017/01/26(木) 22:15:11.50ID:BIlB42US
>>885
Blendで試したらエラーもなく、デザイナーも表示されたのでこれでしのぐことにします。
0892デフォルトの名無しさん2017/01/26(木) 22:19:59.87ID:vDjllkLc
>>881
可也期待薄だが、俺の環境のxamlのトラブルは
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/f7541527-df77-4bd7-8458-f90565bf34b4/visual-studio-2015-?forum=wpfja
の一番最後の方の解決法で何とかなった

こっちはblend関係だから望み薄だが、やっても害が出るものじゃないしよろしければどうぞ
0893デフォルトの名無しさん2017/01/26(木) 22:28:27.88ID:uLxLwJKu
>>888
> VSはC#で書かれたマネージドアプリだと公言してるし
ソースある?
0894デフォルトの名無しさん2017/01/26(木) 22:34:12.57ID:He8RO7U3
>>889
つか、全体として何が言いたいのか分からない。

C#についてなら、俺は主流はMSILだと思っているから、JITと言う方が適切だと言っている。
俺の認識が間違いで、主流は既にnativeであれば、AOTという方が適切だ。
君がそう思っているのならそれでいい。

C#の方がC/C++よりも高速であれば、高速アプリは全てC#で開発されることになる。
実際は、高速アプリは全てC/C++で組まれてるだろ。これが現実。
速度差は仕様差から来ているから、今後ともこれは埋まらない。

> 最終的には素直に書いたC++を超えるケースもある
JA馬鹿も同じ事を言うのだが、探して見つけて喜んでいる時点でゴミ。
アプリの性質を考えて、適切な言語を選択すればいいだけ。
ただ現実的にGUIも含めて全部C/C++で組むのもだるいので、
NumPyが流行るのも分かるし、実際あのアプローチがいいと思うが。

いずれにしても、C#信者ならそれは止めておけ。
それぞれ得手不得手はある。それは当たり前の話。
万能言語があったらこんなに乱立しない。
0895デフォルトの名無しさん2017/01/26(木) 22:54:19.21ID:7sPtmcfc
長文ウゼエ
0896デフォルトの名無しさん2017/01/26(木) 22:57:35.93ID:SLW9Whol
速度はC++の方が早いよ
でも普通のアプリならそこまで問題にならない程度の差
0897デフォルトの名無しさん2017/01/26(木) 23:03:14.05ID:C8HlRM2h
なんか昨日から長文野郎が常駐してて空気が悪くなってる
0898デフォルトの名無しさん2017/01/26(木) 23:03:30.86ID:GQnwZs38
>>890
ありがとうございます
確認してみます!
0899デフォルトの名無しさん2017/01/26(木) 23:30:49.26ID:NrOKhjjD
>>894
自分で争う意味はないって言ったのになんでそんなに定義にこだわるんだ?
俺を含めて、一般的にはJITと呼ぶ(個々を見るとAOT的な側面や使い方もあるね)って言ってるだけだぞ
0900デフォルトの名無しさん2017/01/26(木) 23:50:28.00ID:NrOKhjjD
>>894
あと、>>889はJavaやC#がC++よりはやいとか優れてるなんていってないじゃん
Javaも悪くはない言語選択だよっていってるのに

お前は何か、みんなが前提として理解してることを延々と説明してる感じ
0901デフォルトの名無しさん2017/01/27(金) 00:00:30.43ID:sOrVpnzk
高速アプリが全てC++で組まれてるというのも思い込みもいいとこだな
AmazonがC++でやっててクソ遅かった大規模データ処理が
Java+Hadoopに乗り換えることで大幅に改善されたという例もある
今時言語の速度なんてあくまで要素の一つに過ぎないんだよ
0902デフォルトの名無しさん2017/01/27(金) 00:06:54.41ID:FPm896mM
>>901
こういう馬鹿のデスマーチの尻拭いを何度したことか。氏ね。
0903デフォルトの名無しさん2017/01/27(金) 00:07:53.10ID:fDORPAeX
別に長文でもスレ違いでも参考になるようなレスなら何とも思わないけど
今のこれは実にくだらないねw
0904デフォルトの名無しさん2017/01/27(金) 00:11:06.35ID:a4ei9zsf
ガチのHPCだとコアはCUDAだったりFortranも現役だったりで、これまたC++とは限らない
あまりにも見識が狭すぎる
0905デフォルトの名無しさん2017/01/27(金) 00:24:44.98ID:QXZBJ6J+
長文はキチガイ
0906デフォルトの名無しさん2017/01/27(金) 00:29:28.64ID:CH0FWDPd
>>899
おいおいすりかえんなよ。
俺はC#はJITと言う方が近いと言っている。
君はC#はAOTだと言い張っている。

俺は君が「C#はAOTだ」と言い張る理由が分からない。
C#に問題があるとしたらまずは速度だ。AOTと言い張る理由にもなる。
だからそれに言及しただけ。
では何故AOTだと言い張るのか理由をを言ってみてくれ。

俺はCUDAも使ったことあるよ。
ただそれをここで言う意味もないだろ。
0907デフォルトの名無しさん2017/01/27(金) 00:30:54.80ID:iNBXS39I
申し訳ないが3行以上はNG
0908デフォルトの名無しさん2017/01/27(金) 00:31:00.69ID:g7nuPYvQ
>>906
.NET Native知らないの?
0909デフォルトの名無しさん2017/01/27(金) 00:54:42.49ID:9J0c8boi
本日のNGID:CH0FWDPd
0910デフォルトの名無しさん2017/01/27(金) 01:49:06.49ID:z/+I8zAR
>>906
「JITのほうが近い、ただしAOT的な側面もある」をどうやったら「C#はAOTだ」に変換できるんだ?

多分、お前は「AOT=配布時に機械語、JITとは真逆の概念」みたいな定義にこだわりがあるから話が合わない
みんなは「AOT的=実行する瞬間以外の機械語へのコンパイル」程度の認識だから、ネイティブキャッシュとかArtの事前コンパイルもAOT的と捉えてるだけだ

ただ、.NET Nativeはまだしも、iOS向けUnityとXamarinがそれなりに使われてるので「C#はJIT」は誤解を招く気もするけどね
0911デフォルトの名無しさん2017/01/27(金) 02:14:06.13ID:fDORPAeX
実にどうでもいいんだけど、そういうアーキテクチャー的な話をするんなら、
言語としてのC#と、そのWindows版.NET Framework用の実装は
一応理念的には別門だって前提で議論しないとまずいんじゃないのそもそもw
0912デフォルトの名無しさん2017/01/27(金) 02:19:16.89ID:fDORPAeX
しかしあれだね「、.NETの言語はJITだから実行環境に合わせた最適化がされるようになる」
っていううたい文句は最初の.NET1.0のころからあるけど、
これ今はちゃんと実現されてるんだっけ?
0913デフォルトの名無しさん2017/01/27(金) 03:21:05.61ID:z/+I8zAR
>>912
SSE命令関連とかは結構頑張ってるみたいだね
一応.NET NativeでAOTするのと比べて優位を保てる程度には最適化してるらしい
http://blogs.microsoft.co.il/sasha/2014/04/28/net-native-performance-internals/
ちょっと古いから今はどちらも改善されてるかもしれんが
0914デフォルトの名無しさん2017/01/27(金) 23:51:25.19ID:CH0FWDPd
>>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#は差別化出来ていない。
0915デフォルトの名無しさん2017/01/28(土) 00:01:46.77ID:lJFdXfrP
20年も残るなら十分
0916デフォルトの名無しさん2017/01/28(土) 00:15:29.48ID:vlmW/cIj
>>914 ※個人の思い込みです。
0917デフォルトの名無しさん2017/01/28(土) 00:16:54.48ID:rD7WeMm9
後はbuilderスレ辺りで続きをやって下さいって事で
0918デフォルトの名無しさん2017/01/28(土) 00:24:24.84ID:lGyRVc7d
>>914
10年前の過去スレかと思ったわ。
0919デフォルトの名無しさん2017/01/28(土) 00:29:22.98ID:GpK52peC
JAVAは特許絡みで自滅しそうだけどな。
Googleも.NET Foundationに加入したことだし、脱JAVA考えてたりして。
0920デフォルトの名無しさん2017/01/28(土) 00:33:11.09ID:B8Cbj4aW
>>918
だなww
0921デフォルトの名無しさん2017/01/28(土) 00:50:41.15ID:cRpkhDFF
Javaは環境に排他的なところがあるからなあ
JVMの世界にどっぷり浸かってしまえば楽なんだが、
PHPやらRailsやら他にもいろいろ使ってるとJavaだけデプロイが異色すぎる
その点 .NET Core は今時のWebらしいデプロイ方法を実現してるので非常に馴染みやすい
Javaの置き換えというより、スクリプト+αとしてのGoに代わる選択肢の一つとして普及する可能性は高いんじゃないかな
0922デフォルトの名無しさん2017/01/28(土) 01:05:26.39ID:iWacJ3fP
.net nativeがスタティックリンクでライブラリから必要なクラスだけ取り込む仕組みなのを知らないとはね
0923デフォルトの名無しさん2017/01/28(土) 03:02:12.31ID:VlCpYCgG
>>914
それ俺じゃないし、そのレスもAOTの定義次第でしょ
君が言葉の定義にこだわりがあるのはわかったからそんなにAOTに過剰反応するな

言語の20年後は予想するだけ無駄
C/C++もgoやrustに置き換えられてるかもしれないし、Javaの代わりにKotlinがJVMの中心になってるかもしれない
ハードと通信の向上で富豪プログラミングができるといいけど、ナノマシンとかの制御のために今より貧相なハードウェア要件だったりするかもね
0924デフォルトの名無しさん2017/01/28(土) 06:50:26.81ID:7LkpJPRm
C++が、FORTRAN化している。
0925デフォルトの名無しさん2017/01/28(土) 07:29:56.62ID:bLDCN2m1
>>916
妄想だろ w
本人楽しそうだしいいんじゃね?
0926デフォルトの名無しさん2017/01/28(土) 09:05:59.37ID:O0GHMxPw
VisualStudioの無いC#なんて
0927デフォルトの名無しさん2017/01/28(土) 09:35:59.59ID:O0GHMxPw
rust.NETは未だかね?
0928デフォルトの名無しさん2017/01/28(土) 09:48:31.29ID:vlmW/cIj
>>926
Windows7に標準装備されてるcsc.exeは役立ったよ
入力支援のないメモ帳でコーディングするのはちょっと面倒だったけど
小物アプリ作ったり、暇つぶしに十分だった
0929デフォルトの名無しさん2017/01/28(土) 11:45:36.61ID:QNTErMWx
>>918
確かに10年前もほぼ同じ状況だったろうね。
ただJavaはそこから全く進歩しなかった。それで延命してる。

>>919
MSは何だかんだで技術力は相当あるし、OracleではJavaを発展させられないのも事実だ。
とはいえ、周回遅れでよければ他言語のいいところを採り入れればいいだけ。
これならOracleにも出来る。
今のC#が生き残るとしたらJavaを食らうことだが、
現代のCOBOL化しつつあるJavaはもう食いきれない。
(Javaは向こう30年の需要はあるし、その後他言語に移行するメリットもない)
周回遅れであってもJavaが追いついてくる限りC#は死ぬ運命だ。
(ただし逆に、周回遅れであるうちは死にきらないとも言えるが.。)

>>921
Javaが殿様商売でブラウザから外されてあたふたしていたのは事実だ。
Web系の連中はその辺も含めてJavaは嫌いかもしれないね。
とはいえC#がサーバサイド言語として君臨するとも思えない。
C#にはサーバ用途のサポートがなく、移行される理由がない。
C#の特徴はLINQだけど、それがどこの分野にフィットするかだね。
0930デフォルトの名無しさん2017/01/28(土) 11:46:16.89ID:QNTErMWx
>>923
分からないことは考えない、さすがのゆとりだな。
確実に言えるのは、今のままのC#だと生き残る芽がないこと。
もちろんMSも分かっているだろうから、色々試してはいるのだろうけど。

C#はPascalと同じでベンダーが一つだ。よってMSが辞めますといったらいきなり終わる。
C/C++はその点各社各様なので誰も終わりの号令を出せない。
機能的にもあの範囲では完成しているし、今後共、流行はしないが使われ続けるだろう。
ただし開発効率がいいとは誰も思ってないだろうし、その点色々努力は為されるはずだ。

JVM言語群はJavaの発展には寄与するだろう。
ただそれらもJavaが追いついてくれば死ぬ運命にある。もっともこれは幸せな死だが。
で、C#もランタイムが違うだけでほぼJVM言語群と立ち位置が同じだろ、という話。

お前らが「C#は永久に不滅です!」なんて思ってるのなら完全に勘違いだぞ、というだけ。
ただそこまで信者化する理由もよく分からんのだがな。
C#が死ぬ頃にはC#とJavaの差異も今より無くなっているはずで、移行は容易だ。
逆に差異がある状態ならC#が死ぬこともない。
0931デフォルトの名無しさん2017/01/28(土) 11:51:01.14ID:sBhxwabY
次スレはふらっとみたいにワッチョイ付けてもらえるとNG楽でありがたい
0932デフォルトの名無しさん2017/01/28(土) 12:03:08.93ID:PWlkAQF7
C#の心配はもういいからとりあえず病院行ってこいよ
0933デフォルトの名無しさん2017/01/28(土) 12:09:23.15ID:7tAJxods
もう言語の優劣とかこの後とか考えるのやめようよ
好きなの使えばいいじゃん
0934デフォルトの名無しさん2017/01/28(土) 12:09:39.25ID:q55sXuC9
>>926
つ SharpDevelop
0935デフォルトの名無しさん2017/01/28(土) 12:13:41.44ID:7tAJxods
C#なんてこの後廃れる一方だから気にするんじゃないよ
俺は使いたいから使ってるだけ

コンピューターサイエンスジャンルとかじゃもうpythonに追いつけない
入門者もc#よりpy選んでるらしいし

時代遅れのc++使ってる人も流行ってるからとか他が使えないって理由じゃないでしょ
使いたいから使うでいいよ
0936デフォルトの名無しさん2017/01/28(土) 12:29:18.26ID:op86qfG/
>>931
あんたがNGにしやすくするためだけに
2ちゃんねるの特徴を捨て去って全員強制コテつけろというのはひどいエゴだと思う
0937デフォルトの名無しさん2017/01/28(土) 12:36:35.24ID:kK1HMpWm
>>929
C#にサーバー用途のサポートがないって、一体こいつはなんのことを言ってるんだ
まさかどっか別のパラレルワールドの住人なのか、それともC#と言う名の別のマイナーな別言語の話をしていたのか
0938デフォルトの名無しさん2017/01/28(土) 12:38:31.29ID:GpK52peC
ワッチョイ付けてるスレは増えてきてるし、賛成が多ければ構わないだろ
強制コテも一週間で変わるんだし、IP表示が無ければ反対する真っ当な理由が思いつかない
0939デフォルトの名無しさん2017/01/28(土) 12:41:01.92ID:XpAKmUmz
>>936
みんなエゴ丸出し自己中でいくのが2ちゃんねるの特徴よ
0940デフォルトの名無しさん2017/01/28(土) 12:41:42.84ID:rD7WeMm9
言語の優劣がどうでもいい訳じゃないけど
比較なら他所のスレでやってくれ
C++ Builder vs C# どっちがいいか教えて
http://echo.2ch.net/test/read.cgi/tech/1459000291/
0941デフォルトの名無しさん2017/01/28(土) 12:42:51.15ID:s1e/PAHl
>>938
それぞれ好きなスレ立てて使えばいいんだよ
どの板でもワッチョイ有り無しでスレが分かれているのをよく見るし
逆にその手の議論で荒れだすとどこでもひどい有様になる
0942デフォルトの名無しさん2017/01/28(土) 12:50:41.06ID:op86qfG/
>>938
一週間で変わるというのは違うよ
3、4文字目は仕様上永久固定だし、表面上変わる1、2、5〜8文字目も簡単に逆引きできるから実質永久固定だよ
0943デフォルトの名無しさん2017/01/28(土) 12:58:20.48ID:ivgBCMum
「SNSじゃあるまいし、なんで2chでわざわざコテハンを強制されなきゃならないのか」は真っ当な理由じゃないのかな…
0944デフォルトの名無しさん2017/01/28(土) 13:00:33.35ID:k4gxsyFf
俺もワッチョイスレには書かなくなった
0945デフォルトの名無しさん2017/01/28(土) 13:01:40.71ID:mpmWyhNT
明らかに不適切な発言をしない限りはコテハンでも問題ないでしょ
0946デフォルトの名無しさん2017/01/28(土) 13:16:35.58ID:1Ptz3K6u
そんなコテハン好きならstackoverflowにでも行けばよろしいやん
なぜ2ちゃんをコテハン化する必要があんの?
0947デフォルトの名無しさん2017/01/28(土) 13:29:21.18ID:yHdW8px1
荒しがいるからだろw
0948デフォルトの名無しさん2017/01/28(土) 13:33:06.15ID:WlIlAAzs
>>946
よう荒らし
元気か?死ね
0949デフォルトの名無しさん2017/01/28(土) 13:40:45.05ID:op86qfG/
自治厨が自分に賛同する奴以外を荒らし扱いしてるだけか
0950デフォルトの名無しさん2017/01/28(土) 13:45:46.68ID:Bb/tAbed
荒らしだけならまだいいが、沸点が低いのかプライドが安いのか
煽りにのって相手を始める低脳が多過ぎる
本当に目障りでNGが面倒臭くてワッチョイもやむを得ないと考えてしまうのはこっちが原因
0951デフォルトの名無しさん2017/01/28(土) 13:47:14.75ID:5yCHiIBr
c#のスレで他言語の話を連投してる時点で
誰がどう見ても荒らしだと思うが
0952デフォルトの名無しさん2017/01/28(土) 13:47:33.37ID:6ehsSW1c
uyのスレ立て荒らし以来変なのが増えたな
0953デフォルトの名無しさん2017/01/28(土) 13:48:54.50ID:ktdFkm2m
そんなにNGされたくないのかな?
0954デフォルトの名無しさん2017/01/28(土) 13:50:24.20ID:WlIlAAzs
どう見てもそうだろ
0955デフォルトの名無しさん2017/01/28(土) 13:53:53.44ID:ya7J4hzr
他言語の話なんてしてないのに荒らし扱いされて死ねって言われたんだけど
0956デフォルトの名無しさん2017/01/28(土) 13:55:50.40ID:JTtKbdRr
昔、JavaやVBで暴れてた低脳馬鹿が今はC#で暴れてるふうにしか見えない。

だって言ってることが同じだものw ○○は遅くない!! ○○で十分!!!
0957デフォルトの名無しさん2017/01/28(土) 13:58:32.18ID:yHdW8px1
>>948
それは酷すぎ。荒しと変わらんぞ。
0958デフォルトの名無しさん2017/01/28(土) 13:59:47.36ID:vlyo6wmu
相手してる生ゴミがうざいって人は連鎖NGができるブラウザに変えるのはどうだろうか?
強制はできないけど…。
0959デフォルトの名無しさん2017/01/28(土) 14:06:49.21ID:ya7J4hzr
ワッチョイでNGが便利になるって言う人たちは、なぜかNGwordを工夫したり連鎖NGすることはできないという不思議現象
0960デフォルトの名無しさん2017/01/28(土) 14:07:29.61ID:y9Lbrz1V
自分でNGできないような奴がこの板にいる方がどうかしている
無能と自白しているようなもんだろ
0961デフォルトの名無しさん2017/01/28(土) 14:11:07.34ID:XpAKmUmz
ごちゃごちゃ言わず、ワッチョイありなし、2つ立てて盛り上がった方を採用すりゃいんだよ
0962デフォルトの名無しさん2017/01/28(土) 14:44:57.36ID:k4gxsyFf
スレも無料じゃないんだぞ
節約しないと
0963デフォルトの名無しさん2017/01/28(土) 14:48:10.28ID:s1e/PAHl
ほらスレ違いで荒れる
このまま埋めてくれればいいよw
>>961
採用っていうか使われなくなった方が消えたり過疎るだけ
0964デフォルトの名無しさん2017/01/28(土) 14:53:25.19ID:GmC+rupt
2chの基本だけど、スレが荒れる(このスレの現状はそこまで行ってないと思うが)と
ギャーギャー騒ぎだす連中の大半は本当はギャーギャー言いたいだけの寂しい奴ではある。

要するに、本当はスレッドの趣旨にそったレスが淡々と続く状況なんか内心望んでない奴、
もっと言えばまともなレスをする能力がない奴に限って文句言ってるのね。
本当はウンコが大好物なウンコ蠅がウンコの周りを周回しながらウンコが臭いって文句言ってる図式だねw

「スレッドの平和」を本当に望んでいる人(俺もその一人)は、逆説的だけど
神経質にスレ違いの話題を咎める連中に与しない方がいいと思うよ。
それは上記の「ウンコ以上にうっとうしいウンコ蠅」をのさばらせることにしかならないからね。

まあそうは言ってもあんまりスレ違いの議論が延々続くのもうっとうしいのも確かだから、
このスレに限らずスレ違いの議論が続いた時に誘導する「何でも議論スレ」みたいのが
あったらいいのかもしれないとも思う。
0965デフォルトの名無しさん2017/01/28(土) 15:11:26.13ID:VlCpYCgG
>>930
C#は永久に不滅とか信者とか、存在しない敵を叩くなよ
他の言語でも同等の処理があるLINQを特徴というのは、理解してないからか?

C#もJavaも互換性最優先なので、いつか時代遅れの限界が来て、保守以外では使わない言語になる気もする
死ぬならVB6みたいな長期サポートで亡霊にならないといいんだけど
0966デフォルトの名無しさん2017/01/28(土) 15:16:41.71ID:VlCpYCgG
そういえば、llilacはどうなったのかな
LLVM化は結構需要ある気がするんだが
0967デフォルトの名無しさん2017/01/28(土) 16:06:14.69ID:VlGJ2K6H
荒れすぎだろ
投票による自治機能があるanontownに来ないか?
登録制だけどメアド不要だから簡単
https://anontown.com/
0968デフォルトの名無しさん2017/01/28(土) 16:20:45.03ID:BREm5bG1
>>965
いつかはそうなるだろうけど、今のところはその兆候はないな
0969デフォルトの名無しさん2017/01/28(土) 16:41:32.14ID:ktdFkm2m
>>964
2ちゃんにおいて三行以上の長文はマナー違反だぞ
0970デフォルトの名無しさん2017/01/28(土) 16:44:14.69ID:op86qfG/
立てにいく
0971デフォルトの名無しさん2017/01/28(土) 16:48:51.77ID:op86qfG/
次スレ

C#, C♯, C#相談室 Part92
http://echo.2ch.net/test/read.cgi/tech/1485589613/
0972デフォルトの名無しさん2017/01/28(土) 17:45:23.05ID:JQ2q8v+C
>>965
数年前、高速なNVRAM的な物が安価で作れるようになって
コンピュータの構成が大きく変わるなんて話が一部で盛り上がってたけど、
その手のパラダイムシフトが起こらない限り、プログラミング言語の世界でも
そんなガラガラポンは起こらないだろう
0973デフォルトの名無しさん2017/01/28(土) 19:05:48.32ID:oY/klkah
一体みんな誰と戦っているんだ
0974デフォルトの名無しさん2017/01/28(土) 20:01:47.30ID:XnHJw37P
>>973
オラもそう思う
0975デフォルトの名無しさん2017/01/28(土) 20:12:25.54ID:09upZDzm
自分以外は敵というスタンスがトランプ流w
0976デフォルトの名無しさん2017/01/28(土) 21:15:25.00ID:yCMaAzsY
C#はマルチプラットフォーム化でサーバーサイドで需要がますます拡大するし
クライアントでもWPFが実用的になってくるんじゃないかな
0977デフォルトの名無しさん2017/01/28(土) 21:23:25.46ID:buSCJS7G
胡散臭いCMだな
09788032017/01/29(日) 12:03:54.50ID:6CKnMYhm
>>818
>>819
>>831
64bitでコンパイルする
2GB内に配列を分割する
などいろいろやりましたがメモリオーバーになってしまいどうしても実行できませんでした
結局、元のファイルを分割し、最後に結合する方式にしてやっと通りました
使用メモリ見ると10GB位食ってましたが一応全部実行できています
ご協力ありがとうございます
0979デフォルトの名無しさん2017/01/29(日) 12:28:52.14ID:NqGwYzj0
>>978
配列に入れて何がしたいのか最後まで聞けなかったけど、FileStreamで読み書きじゃ駄目だったの?
0980デフォルトの名無しさん2017/01/29(日) 12:34:03.49ID:Be2uFNKC
同意見
そんなもん全部メモリに読んだところで
どうせシーケンシャルに処理する以外にやれることがあるとは思えない
09818032017/01/29(日) 13:07:42.19ID:6CKnMYhm
>>979
BinaryWriterで挿入操作ができれば使っていたのですが
以下を見るとできないようなので使いませんでした
http://dobon.net/vb/bbs/log3-46/27592.html
0982デフォルトの名無しさん2017/01/29(日) 13:12:51.28ID:WfZCQfEI
一時ファイルに元のファイルの内容と挿入データを書き込む
→元のファイルを削除する
→作成した一時ファイルの名前を元のファイルの名前に書き換える
でできると思うけど自分の好きな方法でうまくいったのならいいんじゃね
09838032017/01/29(日) 13:29:04.76ID:6CKnMYhm
>>982
>一時ファイルに元のファイルの内容と挿入データを書き込む
確かにこのやり方がスマートでした
元のコード流用しようとしたので今のやり方になってしまいました
あらかじめわかっていたら・・・
0984デフォルトの名無しさん2017/01/29(日) 17:25:54.20ID:UOF0Asn0
うめ
09858102017/01/29(日) 22:35:39.11ID:F8/CipCU
>>810です。反応が遅れてすいません。現在は、
クラスのインスタンスの複数のプロパティの値を比較して等価かどうか判定しているのですが
データをリストに追加する際、2種類の等価比較法(IEqualityComparer)を用いています

つまり追加対象のデータのうち、
まず弱い比較(少なめのプロパティだけが一致するか比較)で
既存のリストにないデータの「候補」をざっくりピックアップして、
候補たちに少々時間のかかる処理をかけてから(一部プロパティが書き換えられる)、
次に強い比較(多めのプロパティを比較)で候補の中から真に「新しい」ものをリストに追加しています

PosgresやLocalDBといったデータベースでは、こういうことって簡単にできるんでしょうか
ネット検索してみたところ複数のプロパティを比較すること自体は
UNIQUE制約(?)というので出来そうに思ったんですが、
現在やっているような2段構えの比較法は実現可能なんでしょうか?
0986デフォルトの名無しさん2017/01/29(日) 22:51:26.56ID:M0HgmB1M
二段構えにする必要はない
比較に必要な全てのカラムセットにuniqueインデックス張りなさい
0987デフォルトの名無しさん2017/01/29(日) 22:55:35.08ID:F8/CipCU
>>986
それだと誤判定になりませんか?
追加前のデータと実際に追加するデータでは
一部プロパティ(弱比較ではチェックしないが、強比較ではチェックするプロパティ)の値が異なっているのですが…
0988デフォルトの名無しさん2017/01/29(日) 23:02:20.70ID:faIlAfcC
>>987
強比較の値がDB上に固定できるなら、最初から強比較でやっても十分な速度が出ます
取り出してから変化する性質なら、弱比較でDBから取り出し値を生成してからメモリー上で強比較で良いんじゃないの?
0989デフォルトの名無しさん2017/01/29(日) 23:27:53.21ID:F8/CipCU
>>988
すいません、「DBから取り出す」という表現が何を指しているのかよくわかりません…

いま思案しているのはデータの集計作業時ではなく登録作業時の話です
各データについて、一部のプロパティの値を確定させるには処理時間がかなり必要になっています

追加登録したいデータたちについて、このプロパティ値をあらかじめすべて確定するのは非常に時間がかかるので
まず弱比較でざっくりと追加可能な候補(プロパティ値を確定しなければならないデータたち)を絞っているのです

今はこんな風にしてます(実際のコードでは日本語変数じゃないです)

候補データリスト = 追加したいデータのリスト.Except(全リスト, new MyClass_WeakComparator()).ToList();
↓
候補データリスト について全プロパティ確定作業; //←重い
↓
全リスト = 全リスト.Union(候補データリスト).ToList();
0990デフォルトの名無しさん2017/01/29(日) 23:33:19.34ID:F8/CipCU
>989補足
Union()のところで既定の等値比較子として強比較が使われています
0991デフォルトの名無しさん2017/01/29(日) 23:37:15.13ID:M0HgmB1M
>>989
insert into 処理対象テーブル
select 追加後の値を得る計算式
from 処理対象テーブル
where 追加対象を得る条件式

これでいいんじゃないの?
弱比較とかよくわからん言葉遣いはやめた方がいい混乱するから
0992デフォルトの名無しさん2017/01/29(日) 23:50:32.58ID:M0HgmB1M
なんか違うなこうか

insert into 全リスト
select 任意の計算式
from 追加データ
where not exists (
select *
from 全リスト
where 簡易な比較条件式)
and 完全な比較条件式

インデックスは簡易な比較に使うカラムだけでいいよ
0993デフォルトの名無しさん2017/01/30(月) 00:02:56.22ID:kb+lR8OL
>>992
やはり、条件式を2種類地道に書くしかないんですか…長くてハゲそう

>インデックスは簡易な比較に使うカラムだけでいいよ

アドバイスありがとうございます
0994デフォルトの名無しさん2017/01/30(月) 00:07:16.67ID:YrqXkGEW
>>989
それだと「弱比較」で一致してしまった物は全部捨ててしまっているがいいのか?
>>985の書き方だと、「弱比較」で一致しても「強比較」で一致しない物があり、
それは書き込むと読める。
まあこの辺はそちらがやればいい話だが。
0995デフォルトの名無しさん2017/01/30(月) 00:14:31.63ID:GO+RhKVN
数千行のSQLとか当たり前だから!!!
そのためのDBMSでしょ!!!
0996デフォルトの名無しさん2017/01/30(月) 00:23:01.74ID:RAZ09caE
1回のクエリで完結させようとせず
1次候補抽出クエリ → ローカルで1次候補のプロパティ書き換え → 最終候補抽出&インサートのクエリ
の3段構えにしてもいいんじゃないかと思うけど
0997デフォルトの名無しさん2017/01/30(月) 00:33:18.83ID:kb+lR8OL
>>994
>「弱比較」で一致してしまった物は全部捨ててしまっているがいいのか?

詳しくは書けませんが、やりたい動作としてはその動作でOKです
985の説明はちょっと正確ではありませんでした

>>995
大規模なデータベースを触ろうとするのは初めてだったので…すいません

>>996
どっちみち長い比較条件を書かないといけないのは避けられそうにないので
その方法でもよさそうですね
0998デフォルトの名無しさん2017/01/30(月) 01:03:13.10ID:9w4b/GJp
>>995
SQLが数千行もあって当たり前なの?異常じゃないの?SQLだよ?
0999デフォルトの名無しさん2017/01/30(月) 02:19:40.86ID:ty17mMxy
SQL Serverは問合せ文と制御文を1つのストアドに混在できるので複雑な工夫が容易で、
腕が良ければ数千行の複雑な処理を書くことによって物凄く高速化できることがある

Oracleは混在できないため複雑な処理を書くには手間がかかり、プログラマーがあまり工夫しなくなり、
そのため腕が上がらず、結果としてSQL Serverより遅いシステムが多いらしい

現在のSQL ServerにはOracleと同じスナップショット分離(古い人は「行ロック」って言う)があるが、
2000の頃はなかった(今でもデフォルトでオフになってる)ため、高速な更新処理が必要だったことも腕に関係すると思われる
(スナップショット分離があれば、ダラダラ更新しても他ユーザーの閲覧に迷惑かけない)
1000デフォルトの名無しさん2017/01/30(月) 02:31:32.87ID:RISpHKLn
次スレ

C#, C♯, C#相談室 Part92 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1485589613/
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 214日 2時間 46分 18秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。