■ このスレッドは過去ログ倉庫に格納されています
C#, C♯, C#相談室 Part91
- 1 :デフォルトの名無しさん:2016/06/29(水) 23:45:15.36 ID:EZjVZgG6.net
- ■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1437808445/
C#, C♯, C#相談室 Part89
http://peace.2ch.net/test/read.cgi/tech/1443271409/
C#, C♯, C#相談室 Part90
http://echo.2ch.net/test/read.cgi/tech/1455160063/
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
- 2 :デフォルトの名無しさん:2016/06/29(水) 23:45:41.68 ID:EZjVZgG6.net
- 誰もたててなかったんでたてました
- 3 :デフォルトの名無しさん:2016/06/29(水) 23:51:01.49 ID:mTvmtbdU.net
- まじかよすげーな
- 4 :デフォルトの名無しさん:2016/06/29(水) 23:54:32.05 ID:IF/e/aAD.net
- >>2
えっ
C#, C♯, C#相談室 Part91 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1467142749/
- 5 :デフォルトの名無しさん:2016/07/01(金) 09:02:48.89 ID:2/8SV6DI.net
- >>4
oh
- 6 :デフォルトの名無しさん:2016/08/16(火) 01:59:58.67 ID:jP/bzuFf.net
- スレッド違いかもしれないですが教えてください。
Google Analitics でトラフィックを確認したところ
↓の様にIP+ポート番号でのアクセスがありました。
通常であれば、YahooやGoogleなどの検索エンジンからの流入だけになるハズが
この様なアクセスがあり警戒しています。これは何か攻撃を受けているのでしょうか?
10.160.XXX.XXX:XXXXX
- 7 :デフォルトの名無しさん:2016/08/16(火) 03:13:01.98 ID:ExAjikQC.net
- >>6
法律違反かもしれませんが人を殺しても見逃して下さい
ってか
↓で聞けよ脳タリン
スレ立てるまでもない質問はここで 143匹目 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1464139565/
- 8 :デフォルトの名無しさん:2016/11/05(土) 16:22:08.70 ID:9mC8a8qM.net
- このスレをPart92として使うのかな?
- 9 :デフォルトの名無しさん:2016/11/05(土) 16:28:35.13 ID:N0pRKuvW.net
- 出来ればふらっとみたいにワッチョイ付きで建てて欲しい所だけど、ここでいいんじゃね
- 10 :デフォルトの名無しさん:2016/11/05(土) 17:20:49.55 ID:4QNuq7Ui.net
- >>994
重症だねこりゃ。
- 11 :デフォルトの名無しさん:2016/11/05(土) 19:53:16.07 ID:bx+ldDt8.net
- ワッチョイなんていらないのでここで十分です
- 12 :デフォルトの名無しさん:2016/11/05(土) 20:36:49.81 ID:BoxZvYjG.net
- 次立てるときには付けるのでご安心召されよ
- 13 :デフォルトの名無しさん:2016/11/05(土) 21:25:32.22 ID:yfItjWUA.net
- ちゃんとインクリメントしろや
- 14 :デフォルトの名無しさん:2016/11/06(日) 01:29:59.15 ID:+j3xqinH.net
- ワッチョイが役に立ってるスレなんて見たこと無い
- 15 :デフォルトの名無しさん:2016/11/06(日) 06:47:09.15 ID:yh+qoP1Q.net
- 荒らし乙
- 16 :デフォルトの名無しさん:2016/11/06(日) 09:55:19.69 ID:jO0QNoEc.net
- 荒らしのNGに役立つよ
- 17 :デフォルトの名無しさん:2016/11/06(日) 10:48:53.12 ID:pU7B9Wvc.net
- 日を跨いでくだらない話をだらだら続ける奴は消したいわ
前スレだとdecimalくんとか
LINQとラムダ式に親を殺された君とか
- 18 :デフォルトの名無しさん:2016/11/06(日) 19:36:01.09 ID:ci4MHKnC.net
- Windows Formsの話なんだけど
TextBoxとかButtonといった単項目コントロールはINotifyPropertyChangedとBindingSourceを使って
btnExec.Enabled <-> model.IsValid
txtHoge.ReadOnly <-> model.HogeIsReadOnly
のように柔軟なバインドができる
これと同じようにDataGridViewの各セルのプロパティとそのセルに対応するモデルのプロパティを細かくバインドすることは可能?
具体的には1行に対応するモデルの一部のプロパティがオブジェクトの状態によって変更可不可が変わる
このプロパティの変更可不可をセルの入力可不可に対応付けたい
- 19 :デフォルトの名無しさん:2016/11/07(月) 02:02:19.36 ID:8BVz5aV9.net
- >18
できると思う。なんだったら自分が実験してやって見せてあげよう。
その前に、ちょっと聞きたいことがある。
>TextBoxとかButtonといった単項目コントロールはINotifyPropertyChangedとBindingSourceを使って
>btnExec.Enabled <-> model.IsValid
>txtHoge.ReadOnly <-> model.HogeIsReadOnly
このやり方を具体的に教えてくれ。
これが解れば俺の応用力と理解力をもってすれば君の要求にこたえられると思う。
- 20 :デフォルトの名無しさん:2016/11/07(月) 02:15:23.59 ID:8BVz5aV9.net
- バインディングって要するに単なる対応付けだけのことじゃないかなー。
A=1 を B=1で起こす。Bに代入されましたよ。何が? 1が。 じゃあAに入れます。
これだけのことだから、、、、
相手がGridだろうが何だろうが簡単にできると思う。
この簡単なことをわかりにくくしたのがWPFではなかろうか?
俺にはなぜこんなに複雑にするのか理解できない。W
- 21 :デフォルトの名無しさん:2016/11/07(月) 09:30:16.42 ID:FitVxgu/.net
- 今はWindowsFormとWPFってどっちが主流なの?
- 22 :デフォルトの名無しさん:2016/11/07(月) 09:43:19.29 ID:1ZmAoJ5f.net
- WPF
- 23 :デフォルトの名無しさん:2016/11/07(月) 09:57:52.03 ID:euWTmbm8.net
- wpfの方が騒がれてるけど結局formじゃないか?
- 24 :デフォルトの名無しさん:2016/11/07(月) 12:17:20.02 ID:FyIcdvIJ.net
- 業務アプリ以外はUWPに移行
業務系はWinFormsだろうな
- 25 :デフォルトの名無しさん:2016/11/07(月) 12:20:21.90 ID:fkbDdb5s.net
- WPFは描画にGPU支援あるけど、恩恵なんて極わずかだしな
- 26 :デフォルトの名無しさん:2016/11/07(月) 12:44:44.53 ID:9i/eBlRk.net
- っていうか、WPFってどんなに取り巻きが誉めそやしても裸の王様だと思うわ。
可読性がとにかく悪い。
Win Formみたいなイベントドリブンならある機能がどこで実装されているか、それを修正するためには
どこを変えればいいか、ほとんどの場合すぐに検討が付くけど、WPFだとこれがイライラの連続の
苦行そのものに堕落しちゃう
- 27 :デフォルトの名無しさん:2016/11/07(月) 14:03:36.25 ID:T8rwYGfS.net
- UWPはネイティブ化されたから、C#やJavaなどのVM系特有のもっさり感から開放されたし
リバースエンジニアへの対応もC++と同レベルになった
問題はDataGridViewが標準でないこととリソース使用の制限などだが
そこがクリアできるなら速攻移行するべきだな
- 28 :デフォルトの名無しさん:2016/11/07(月) 14:24:49.81 ID:/8UUm0jP.net
- やっぱりDataGridを切望してるのは日本人だけなんですかな
異常に罫線が好きな民族だからね
- 29 :デフォルトの名無しさん:2016/11/07(月) 14:26:53.51 ID:lMECrzfj.net
- 民族だよね
- 30 :デフォルトの名無しさん:2016/11/07(月) 14:29:08.88 ID:io5w9F+U.net
- >>24
>業務アプリ以外はUWPに移行
>業務系はWinFormsだろうな
何で業務系は移行しないん?
- 31 :デフォルトの名無しさん:2016/11/07(月) 14:51:18.13 ID:pMvOYoph.net
- 業務アプリ以外はUWPに移行してるかどうかは別として
UWPはwin10必須になるからな
- 32 :デフォルトの名無しさん:2016/11/07(月) 15:09:36.70 ID:8BVz5aV9.net
- 必須とはどういう意味?
WPFは大失敗だから、いま見直ししてると思うな。もう少し頭のいい奴に考えさせる
んじゃないかな。まあすぐに消えるわ。
- 33 :デフォルトの名無しさん:2016/11/07(月) 15:15:37.39 ID:T8rwYGfS.net
- しかしCollectionViewSourceに有った機能の殆どを「自分で実装しろ」と言う仕様変更は如何なものか
- 34 :デフォルトの名無しさん:2016/11/07(月) 18:02:50.76 ID:5lIwdUhD.net
- >>32
読んで字のごとく、UWPはWin10じゃないと動作しない
- 35 :デフォルトの名無しさん:2016/11/07(月) 18:18:24.24 ID:mmljEldz.net
- WindowsServerの共有フォルダに対して
一台のPCで複数のセッションを
張りたいのですが
便利なC#でも難しいでしょうか
セッション枯渇をシュミレーション
したいのですが、数十台の
物理的なクライアントを用意するのが
厳しく
- 36 :デフォルトの名無しさん:2016/11/07(月) 22:53:04.02 ID:UfUqh0gR.net
- >>21だけど取り敢えずはWindowsFormも普通に現役っぽいからそっちを使う事にします
回答ありがとう
- 37 :デフォルトの名無しさん:2016/11/07(月) 22:53:34.17 ID:d19P1q1E.net
- その手のはC#のライブラリで用意されてなくて結局P/InvokeでWin32APIを呼ぶことになるから、
Win32APIのスレで訊いた方が良いと思う。
- 38 :デフォルトの名無しさん:2016/11/07(月) 23:00:48.29 ID:GpYwrGgA.net
- WPFは出てからちょうど10年たったけど全然普及しなかったね
- 39 :デフォルトの名無しさん:2016/11/07(月) 23:26:27.59 ID:geFZXkbd.net
- >>37
やはりC#での手段は無さそうなのですね
Win32APIスレで聞いてみます
ありがとうございます
- 40 :デフォルトの名無しさん:2016/11/07(月) 23:46:06.46 ID:d19P1q1E.net
- WPFはせっかくがんばって色々できる土台を作ったのに、完成度を上げ切れてないのが何とも勿体ない。
ReactiveProperty(MS製のオープンソース)とか標準で入っていればずいぶん作りやすくなるのに。
標準のコントロールも数が足りないね。
とは言え、WindowsFormsよりもWPFの方が楽な場合もあるから、結局両方使う。
- 41 :デフォルトの名無しさん:2016/11/08(火) 00:28:14.64 ID:mUYwed62.net
- WPFってWinFormプロジェクトと混在して使えるの?
- 42 :デフォルトの名無しさん:2016/11/08(火) 00:31:06.09 ID:mUYwed62.net
- >40
完成度のもんだいだろうか? そもそも根本的なところで間違ってるような気がする。
何が間違っているのかうまく言えないが、、、W
- 43 :デフォルトの名無しさん:2016/11/08(火) 00:41:11.17 ID:mUYwed62.net
- MSのドキュメントって最近は多少ましになっては来ている部分も少しだけあるけど
ほとんどが駄目だとおもう。頭の悪い奴の書いた文章そのものって感じがする。
簡単なことを難しく書いていて要領を得ない。ワザとやってるのかなと思って
いたがそうでもないらしい。 こんなドキュメントを書くようではスッキリした
まともな言語の開発はできないと思う。
でもC#は奇跡的に素晴らしいと思う。この素晴らしさはMS的ではないな。WPFは
MS的だと思う。
- 44 :デフォルトの名無しさん:2016/11/08(火) 00:51:04.50 ID:360M0HJP.net
- >>41
WPFにWindowsFormsHostコントロールってのがあるので、それを利用してFormsのコントロールを使える。
その逆はやったことないけど、ElementHostコントロールを利用するらしい。
- 45 :デフォルトの名無しさん:2016/11/08(火) 01:21:27.86 ID:Iqb/ffmt.net
- >>26
Formsの何がダメかというと意識の低い雑魚プログラマでも手が出せるところだろうな
雑魚が書くとすぐにレイヤがぐちゃぐちゃに混ざり合い重複したコードが際限なく増えていきオブジェクトから手続きの時代にタイムスリップする
油断して監視を緩めるとあっという間に手に負えなくなる
WPFは雑魚は切り捨てられてるからそういったリスクが少ない
MVVMという共通の概念を身に付けた意識の高い人材が集まるから自然とコーディングスタイルが統制されて読みやすい高品質なコードが出来る
- 46 :デフォルトの名無しさん:2016/11/08(火) 02:27:54.02 ID:KFsAZFmi.net
- >>45
WPFのコードを読みやすい思ったことは一度もないわ。
しかし、凄い倒錯だねw
Windows Formの問題はダメな奴でもそれなりに(可読性のないコードを)書けてしまうことだというが、
それを言うならWPFの問題はまともなプログラマが書いても決して可読的にならないことだろう。
- 47 :デフォルトの名無しさん:2016/11/08(火) 03:24:51.90 ID:iu8f14dF.net
- 可読性が悪いっていってるのは XAML のこと?
それともバインドしてるプロパティがどれなのかわからないみたいなこと?
前者ならもうどうしようもないけど、
後者ならWindows Formでも同じ気がするし、
バインドとかCommandとか使わずにイベントドリブンで作る方法もあるよ。
- 48 :デフォルトの名無しさん:2016/11/08(火) 03:48:44.45 ID:mUYwed62.net
- >47
どっちがダメかといわれても答えようがないが、ダメなものを平気で追加している
と、少しだけはいいものがあったにしてもダメになるよね。
いいものなら直観的にシンプルに説明ができると思う。
C#の属性拡張なんかも、その点ではかなり危ない。でも本体がしっかりしているので
あまり汚れが目立たない。
WPFは最初からダメでしょ。そもそも取り付けないし見通しも見えない。1日ほど
弄ってみたことがあるが、全然わからんかった。何がいいのかさっぱりわからん。
直観的に説明できないようなものって間違ってると思うよ。
こういう場合二つのアプローチがあると思う。
1.訓練してこれに慣れるという方法
2.何がダメなのか何が問題なのか発見するという方法
後者を採用する人にはこれはある意味チャンスだと思う。まあでもこれを使いこなせる
ってことは「頭いい」って証明にはなると思うから、1.のアプローチも間違い
じゃない。W
- 49 :デフォルトの名無しさん:2016/11/08(火) 04:02:41.99 ID:VojG/etj.net
- >>43
英語を読んでる?
日本語版は機械翻訳だよ
- 50 :デフォルトの名無しさん:2016/11/08(火) 05:54:50.91 ID:360M0HJP.net
- >>48
1日しか触ってなくてほとんど何も理解もしてないのにダメ出しってのも何だかな。
従来と仕組みが違う部分が多いから、従来の(WindowsGUIプログラムの)経験からの直観は働きにくい。
学習コストがかかるのもデメリットではあるけどね。
- 51 :デフォルトの名無しさん:2016/11/08(火) 07:31:09.86 ID:TXhVVjP1.net
- 雑魚排除といえば
VBを残し続ける理由が分からない
VB作る人的リソースを
XAML強化とかに回せば良いのに
- 52 :デフォルトの名無しさん:2016/11/08(火) 07:36:07.95 ID:TXhVVjP1.net
- WPFはFormアプリが
健在だから使う機会がない
MSの下位互換の精神は悪いと
言わないけど、もう良いんじゃねって
技術が延々と残ってるから
嫌になる
- 53 :デフォルトの名無しさん:2016/11/08(火) 07:48:59.11 ID:uO4YTQEs.net
- 俺は最初からWPFを使ってるのでWindowsフォームの利点がわからん。
あらゆる点でWPFの劣化版のように思えるのだが。
- 54 :デフォルトの名無しさん:2016/11/08(火) 07:54:17.11 ID:Iqb/ffmt.net
- >>48
こういう人をお断りできるだけでもすごいメリットだよな
WPF程度の難易度のフレームワークを1日で諦めるとかちょっとな
昔は多かったオブジェクト指向はよくわからないから悪もの理論の年配と同じ臭いを感じる
- 55 :デフォルトの名無しさん:2016/11/08(火) 08:01:23.60 ID:6Cpjtpfi.net
- >>40
>ReactiveProperty(MS製のオープンソース)
Prismとごっちゃにしないでね。
ただアレは便利だわ
- 56 :デフォルトの名無しさん:2016/11/08(火) 08:10:26.28 ID:6Cpjtpfi.net
- Formsで出来るレベルのことだけでいいなら、そりゃFormsのほうが楽かもしれんね
でも、コントロールの外観をいじりたいとかって話になると、wpfのほうがずっと楽だろ
Formsでアニメーショなどどうやってヤるんだよ
- 57 :デフォルトの名無しさん:2016/11/08(火) 09:36:53.50 ID:+DS6ozoh.net
- だからそういう用途じゃなきゃFormsだし
そういう用途にしてもUWPに移行するって話だろ
- 58 :デフォルトの名無しさん:2016/11/08(火) 10:24:37.04 ID:h2p8PH96.net
- >>53
例えば、Formの利点というよりWPFの欠点だけどグラフィックのパフォーマンスだね。
GDI+も登場時散々遅いと叩かれたけどWPFはその何十倍も遅い。
ググると出てくると思うけど、あまりに遅くて、2Dの折れ線グラフのような単純なものでも
データ数が多いと全く使い物にならない。
俺自身パフォーマンスの問題をどう工夫しても解決できなかったので結局GDI+で書き直すはめになった
- 59 :デフォルトの名無しさん:2016/11/08(火) 11:20:31.78 ID:mUYwed62.net
- >50
XAML
<TextBox
Width = "100" FontSize = "30" Text = "テスト"
Background = "White" Foreground = "Blue" />
C#
textbox1.Width = 100;
textbox1.FontSize = 30;
textbox1.Background = Colors.White;
textbox1.Foreground = Colors.Blue;
textbox1.Text = "テスト";
文字少なくてよさげだけど、肝心のこの部分が隠れる。
TextBox textbox1 = new TextBox();
大事なところを隠蔽されるのはダメだよ。
プロパティを並べるのに<>で囲む必要なんてどこにあるんだよ。
という感じ。文書として保存するときなら<>つけたらいいではない?
でもエディットするときにこんなもんは不要だ。
- 60 :デフォルトの名無しさん:2016/11/08(火) 11:31:34.08 ID:mUYwed62.net
- <TextBox
Width = "100"
FontSize = "30"
Text = "テスト"
Background = "White"
Foreground = "Blue"
/>
文書保存するときはこれは別にいいと思うけど、もともと簡単に打ち込みできるよう
になってるものを、テキストで打ち込む理由はないな。
- 61 :デフォルトの名無しさん:2016/11/08(火) 11:43:12.95 ID:mUYwed62.net
- >47
XAMLはNetをXMLで表現するタグだけのことだろ。
それは別にそれでいいんでないか? 整理できるし。
問題はWPFっていう糞のIDEだな。見通しがきかない保存文書構造のXMLを使って
なんでプログラム組まなきゃなんないのってこと。本末転倒だろ。W
- 62 :デフォルトの名無しさん:2016/11/08(火) 12:00:35.75 ID:mUYwed62.net
- >コントロールの外観をいじりたいとかって話になると、wpfのほうがずっと楽だろ
>Formsでアニメーショなどどうやってヤるんだよ
楽なのは抽象度が高くなっていて、逆に言えば細かい処理はできないってことだね。
FormでできないことがWPFでできるわけじゃなくて、それなりのコントロールを用意して
楽にしているだけ。楽なコントロールが楽になってるだけ。そういうのを適宜使うって
のはありだと思うよ。アニメーションとか、、、、アニメーションとかほかにどんなもの
がある? でも.netになくてWPFだけにあるものなんてある?
- 63 :デフォルトの名無しさん:2016/11/08(火) 12:12:18.45 ID:mUYwed62.net
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
エディターにロードした段階でこんなタグは不要だろ。なんでこんなのがいちいち
画面を占有しているの? バカっぽいと思わん。
これがなければ余分に2行ソースが見える。W
- 64 :デフォルトの名無しさん:2016/11/08(火) 12:47:02.22 ID:unEOfTV3.net
- >>59
なんでXAMLにすり替えてんだよじじい
- 65 :デフォルトの名無しさん:2016/11/08(火) 14:50:51.38 ID:CGI+nyHh.net
- 男だったのか
- 66 :デフォルトの名無しさん:2016/11/08(火) 15:14:04.09 ID:EaH/m5NR.net
- GUIフレームワークなんて何使っても大差ない
根本的な設計がしっかりしてれば楽
でなければ何やっても苦痛
- 67 :デフォルトの名無しさん:2016/11/08(火) 16:42:41.52 ID:TdC6P0sc.net
- newも、ソースの見通しとも、xmlnsについてもWinFormsではデザイナが自動生成するコードだからほとんど見ないし、自動生成コードよりはXamlのほうが優れてるだろ
WPFの問題はバインディングとかMVVMとかがなかなか難しいし、情報資産が少ないことにある気がする
少なくとも、外観やコントロールの機能いじったり、バインディングを活用するなら悪くはない
- 68 :デフォルトの名無しさん:2016/11/08(火) 17:07:35.31 ID:uO4YTQEs.net
- >>58
そうなのか。
本当にWPFが遅いのかは限界までチューニングしなきゃわからんとは思うが、
少なくとも通常のやり方ではWindowsフォームのほうが速いというわけだな。
WPFでは勝手に画像がスケーリングされたり、
アンチエイリアシングされたりするのでそういったのを
徹底的に無効化しなきゃ速くならんからな。
画像を綺麗に見せるためなのか知らんが、
こういったマクロソフトの俺様仕様は勘弁してほしいところだわ。
>>59
そんなにXAMLが嫌いならXAMLを使わなきゃいいだろ。
そもそもXAMLはWPFとは何の関係もない。
XAMLを使わなくてもWPFプログラミングなどいくらでもできる。
- 69 :デフォルトの名無しさん:2016/11/08(火) 18:00:32.99 ID:mUYwed62.net
- >68
えっ、そうなんだ。チュートリアルはほぼxamlの説明だけだよ。W
- 70 :デフォルトの名無しさん:2016/11/08(火) 18:03:46.28 ID:mUYwed62.net
- 一時期XMLが流行った時があって猫も杓子もXML状態になったよね。そのあと全部
失敗してXAMLはしぶとく残ってるということではないのか?
- 71 :デフォルトの名無しさん:2016/11/08(火) 18:52:03.52 ID:WSlpNxFl.net
- もうザマリンでAndorido準拠の
プログラム作れば良いよ
WindowsPhoneのシェア0.3%で
WPFの先も無さそうだし
- 72 :デフォルトの名無しさん:2016/11/08(火) 18:56:36.28 ID:WSlpNxFl.net
- FormアプリとVBは
Windows7までにしておけば良いのに
共に役目は終えたし
MSはリソースを少し集中しようよ
モバイルじゃシェア失ってるんだし
- 73 :デフォルトの名無しさん:2016/11/08(火) 20:25:06.49 ID:UoXgnYKD.net
- Win32API時代から自分で描画するコントロールを作っていくのが好きすぎて未だにやめられない
- 74 :デフォルトの名無しさん:2016/11/08(火) 20:40:02.61 ID:RPJf2WNu.net
- WinFormは趣味グラマにとってぬるま湯で居心地がいいw
IDEのおかげで下手なスクリプトより楽だし
- 75 :デフォルトの名無しさん:2016/11/08(火) 20:51:54.08 ID:360M0HJP.net
- >>55
すまん。完全にごっちゃになってた。
>>59
その例だとXAMLにx:Name="textBox1"が抜けてるぞ。
XAMLでの<TextBox>タグの宣言こそが、TextBox textbox1 = new TextBox();
に相当するってだけで、別に隠しちゃいない。
- 76 :デフォルトの名無しさん:2016/11/08(火) 20:58:12.04 ID:RPJf2WNu.net
- ついでに流れに乗っておくと
>>58
WPFはGDI+(WinForm)よりもグラフィック関連は速くなるものだと思っていた
WinFormは扱うデータサイズが大きくなると消費するメモリサイズが飛躍的に増えるんで、グラフィック関連は扱うのにあまり適していないんだよな
- 77 :デフォルトの名無しさん:2016/11/08(火) 21:15:33.89 ID:360M0HJP.net
- >>76
あるポイント数を超えるとまったく実用じゃないくらい遅くなるね。
ポイント数が多くてスピードが要求される場合は、DirectXを使って高速描画出来る有償のコントロールを買うしか無さそう。
数年前の資料だけど、各種チャートコントロールの性能比較
WPF Charting Performance Comparisons (the Battle Continues)
http://blog.scottlogic.com/2012/04/24/wpf-charting-performance-comparisons-the-battle-continues.html
- 78 :デフォルトの名無しさん:2016/11/08(火) 23:17:39.44 ID:6Cpjtpfi.net
- ポイント数が多くてスピードが要求されるなら、データを間引いたほうが現実的じゃなかろうか?
データ視覚化なら2、300もアレば十分だろ
- 79 :デフォルトの名無しさん:2016/11/08(火) 23:28:48.20 ID:o3gm2pi/.net
- そんな高度なことができるわけないだろ
- 80 :デフォルトの名無しさん:2016/11/08(火) 23:52:00.16 ID:6Cpjtpfi.net
- >>79
もうちょっと頑張れ
- 81 :デフォルトの名無しさん:2016/11/09(水) 00:13:40.23 ID:HQuuA4JA.net
- >>49
他のベンダーのヘルプとか見たことないんだろ
MS なんてかなりまともな方だと思う
- 82 :デフォルトの名無しさん:2016/11/09(水) 01:04:00.05 ID:SotHgA9V.net
- >>78
系列が少なければね。
- 83 :デフォルトの名無しさん:2016/11/09(水) 01:09:36.44 ID:SotHgA9V.net
- >>62
知らないのに当てずっぽうで書いてるのが良く分かるな
- 84 :デフォルトの名無しさん:2016/11/09(水) 02:23:18.79 ID:pYqjQFAT.net
- >77
イケてるやないか。 でもデータバインディングやったらボロボロ。W
- 85 :デフォルトの名無しさん:2016/11/09(水) 02:57:40.95 ID:pYqjQFAT.net
- >に相当するってだけで、別に隠しちゃいない。
隠すつもりがなくても視認性が悪いから隠れるんだな。これが、、
WPFの肝は
1.UI部分は XAML で記述
2.実行コードは C# または VB
3.グラフィックス描画は DirectX
4.データドリブン的なものをデータバインディングでやる
1.と4.が手抜きでいい加減だから全然だめ。
1が駄目だから2を書こうにもどう書いたらいいのかわからないというジレンマ
4がダメだから遅いし使いにくいし使い物にならないしトータル的には失望を加速
している。
料理の材料はまあこんなものでいいというか素材は素晴らしい。しかし集めて料理
するんならもっと一つ一つを丁寧に作りこまなくてはだめだろ。これじゃ味の
バランスが悪くて料理になってない。もうひと手間かけるのができないんだよな。
最後までやりきることができない。思い付きと能書きは立派。W
- 86 :デフォルトの名無しさん:2016/11/09(水) 03:24:51.72 ID:pYqjQFAT.net
- <Window x:Class="SliderTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Background="LightBlue">
<Grid>
<TextBox Height="24" HorizontalAlignment="Left" Margin="30,19,0,0"
Name="textBox1" VerticalAlignment="Top" Width="72"
Text="{Binding ElementName=slider1, Path=Value}"/>
<Slider Height="22" Margin="28,64,20,0" Name="slider1" VerticalAlignment="Top" />
</Grid>
</Window>
この書き方は糞
Text="{Binding ElementName=slider1, Path=Value}"/>
こうなるのが正解。
Text="{Binding slider1.Value}"/>
- 87 :デフォルトの名無しさん:2016/11/09(水) 04:07:40.94 ID:pYqjQFAT.net
- ファンクションキーのイベント発生に見れるセンスのなさ
こんな書き方はどんだけ糞か? ネーミングのセンスがまるでない。
PreviewKeyDown="Window_PreviewKeyDown"
これがセンスのいいなまえ
FunctionKey = "KeyDown"
もしくは
KeyDown="FunctionKey"
KeyDown="F1"
など
- 88 :デフォルトの名無しさん:2016/11/09(水) 04:26:59.85 ID:pYqjQFAT.net
- プロパティ値の継承に見る手抜き
プロパティ値が割り当てられていない子要素がある場合、プロパティ値の設定がある
最も近い親要素の値を割り当てる。W
まあこういう問題が発生するのも、手抜きが手抜きを生むことの良い例だ。ボタンコン
トロールひとつを表すのに手近な要素をかき集めて作りあげるという手抜きをしたこと
で、イベントがうまく取れないという問題が発生した。そこでイベントルーティング
という新たな手抜き概念を導出してしかもプロパティ継承という誤魔化しまでしなくて
はならなくなった。
トンネル、バブル、ダイレクト イベント一つにこんだけ複雑なことをする羽目にな
ったのも、最初に行ったわずかな手抜きが原因なのだ。
- 89 :デフォルトの名無しさん:2016/11/09(水) 04:29:27.99 ID:9orsc4MQ.net
- >>86
>>87
業務で使う場合はViewとViewModelをきっちり分けるよ
なのでバインディング式は下記のように
<TextBox Text={Binding ResultMessage} />
シンプルになる。
View内の他の要素の値をバインドするなんて
滅多にないから(デバッグ時くらい?)、{Binding ElementName=slider1, Path=Value}
みたいな冗長な書き方はいいと思う。
装飾系も普通はResourceDictionaryにまとめる。TextBoxタグ内にゴテゴテ書いたりしない
<Window.Resources>
<ResourceDictionary>
<Style TargetType="TextBox">
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Foreground" Value="{StaticResource GlobalForeground}" />
</Style>
</ResourceDictionary>
</Window.Resources>
キー押下時のイベント発生もViewはCommandをViewModelに発行するだけだね
<Window.InputBindings>
<KeyBinding Gesture="Ctrl+T" Command="{Binding MenuOpenCommand}" />
</Window.InputBindings>
イベント発生時の処理内容をxaml.csに記述したりはしない
- 90 :デフォルトの名無しさん:2016/11/09(水) 04:36:52.64 ID:pYqjQFAT.net
- データバインディングに見る手抜き
「WPF のデータバインディングはこれだけで 1 冊の本が書けるほど面倒です。」という
関係者。たったこれだけで関係者が本を書いて10年は食える飯のタネになる。W
WPFにおけるデータバインディングの重要性と可能性はこの限りにおいては非常に成功
している。テーマとしては食いつきがいい。「これさえマスターすれば、あとは
データを流し込むだけで自動的に表示してくれる」
魅力的なのだ。
食いつきがよくて、複雑怪奇な場合には関係者は情報を小出しにすればかなり長期に
わたってよい飯の種になる。
- 91 :デフォルトの名無しさん:2016/11/09(水) 04:37:26.02 ID:pYqjQFAT.net
- さあ寝よう。おやすみ
- 92 :デフォルトの名無しさん:2016/11/09(水) 07:27:40.65 ID:ccPtaul1.net
- >>91
そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな?
x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな
つか、アンタの言い分はイソップ童話の酸っぱいブドウそのものです
- 93 :デフォルトの名無しさん:2016/11/09(水) 07:54:15.04 ID:TlbuxVnv.net
- 個人的にUWPに偏見を抱いている理由はOneNoteが糞なせい
OneNoteの糞さはUWP無関係だと思うが、自分の観測範囲にUWPの実用サンプルがそれしかないので
どうしても印象が引っ張られる
- 94 :デフォルトの名無しさん:2016/11/09(水) 09:17:12.31 ID:KnEUpDo2.net
- XAMLに親を……
- 95 :デフォルトの名無しさん:2016/11/09(水) 09:17:36.57 ID:SotHgA9V.net
- >>87
KeyDownってイベントは別にあるぞ
>>88
もはや言いがかりのレベルだな
- 96 :デフォルトの名無しさん:2016/11/09(水) 12:09:48.16 ID:pYqjQFAT.net
- >89
どんな糞言語でも本質をよく見極めてセンス良く使う人はいるものだよ。
しかしそこに到達するまでにどんだけ時間がかかるというのだ。俺なんかわけわからん
から右往左往するばかりだよ。
せめてBlendをまともに作ってくれれば、それなりにUIの問題は解決するのにな。
Blendも糞だろ。W 最近のは使ってないからわからんが、、、
- 97 :デフォルトの名無しさん:2016/11/09(水) 12:10:37.11 ID:pYqjQFAT.net
- >そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな?
>x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな
今度はUWPかよ。小出しにするなー。つまりWPFは糞だったと認めるんだな。W
- 98 :デフォルトの名無しさん:2016/11/09(水) 12:12:21.25 ID:C35LXred.net
- UWPは互換性取るために使えない機能が多すぎてFormやWPFと比較する気にもなれない
- 99 :デフォルトの名無しさん:2016/11/09(水) 13:18:01.59 ID:imHVERPt.net
- で?。W
- 100 :デフォルトの名無しさん:2016/11/09(水) 13:24:22.96 ID:13V/HCY3.net
- またストアアプリみたいにいつ梯子外されるかわからないUWPに手を出す人は
よっぽどお勉強好きなんだろうなw
仕事ならしょうがないけど自分の時間使って勉強する気にはなれんわ
- 101 :デフォルトの名無しさん:2016/11/09(水) 13:44:46.30 ID:U6OuotlL.net
- WPFに手だしちゃった人ならいけるでしょ
- 102 :デフォルトの名無しさん:2016/11/09(水) 16:05:04.67 ID:L45XBX69.net
- >>87
コードビハインドにイベント書くことはおすすめされないし、そもそもPreviewKeyDownってFunctionキーのイベントを受け取るためのイベントじゃないぞ?
WinFormsにも同じ名前のイベントあったじゃん
WPF以前の根本的な能力がかけてるんじゃね?
- 103 :デフォルトの名無しさん:2016/11/09(水) 19:12:41.31 ID:UPD5ANvk.net
- UWPって多重起動できるんですか?
- 104 :デフォルトの名無しさん:2016/11/09(水) 19:23:20.90 ID:c1gJ8Ir2.net
- Windows10のPCは買ったけど、予備にした古いPCで動かす事を考えたらUWPは使いたくないな
まだ動く7とXPのPCがあるからな
- 105 :デフォルトの名無しさん:2016/11/09(水) 20:02:19.12 ID:xK7OwzcU.net
- WPFやってないんだが、そもそもXAMLは人間が見る必要のあるものなのか?
VSのデザイナやBlendがダメすぎるのか?
フォームでさえ、.Designerの中身なんてほぼ見る事ないのに
人間が生のXAML見たり編集したりしないとダメならそら普及しないなと思うが
- 106 :デフォルトの名無しさん:2016/11/09(水) 20:09:14.52 ID:y+VOBp5j.net
- XAMLはなにもかもXML(?)で記述できるようにしようとして失敗してる感じ
レイアウトだけにしとけばいいのに
- 107 :デフォルトの名無しさん:2016/11/09(水) 20:09:22.06 ID:knOh/4SR.net
- データバインディングが遅いとかいって大量データをなんの工夫もなく描画する画面を引き合いに出す人ってたまにいるけどあれって悪意があってやってるの?
- 108 :デフォルトの名無しさん:2016/11/09(水) 21:24:36.59 ID:WmFTPhhE.net
- 普通、設定ファイルを、人が直接いじったりしない
Godot(ゴドー)などのゲームエンジンでは、IDEの右側にある、
インスペクタービューで、プロパティなど設定する
オブジェクト同士の衝突判定・イベント通知なども、同じ
- 109 :デフォルトの名無しさん:2016/11/09(水) 21:25:12.33 ID:TlbuxVnv.net
- どこぞのフレームワークで「人間にXMLを書かせるなんて虐待です」って書いてるのがあったけど
ほんとその通り
- 110 :デフォルトの名無しさん:2016/11/09(水) 23:41:49.58 ID:7n7DDFeG.net
- つうかここってC#+Windowsフォームしかやってないやつばかりなの?
XAMLはそもそもWPFだけのもんじゃないんだが。
Silverlightにも使われていたしUWPにも使われてる。
そしてC#だけじゃなくVBにも使われてる。
つまり、言語やクラスライブラリなどから分離できるものは分離しようっつーのがXAMLでしょ。
C#/VBとXAMLの関係はJavaScriptとHTMLの関係と似てる。
XAMLを批判してる奴ってほんとにXAMLを理解してんの?
- 111 :デフォルトの名無しさん:2016/11/10(木) 00:11:40.20 ID:TlbdJV8L.net
- 1日で挫折したのにここまで批判できる >>48 はすごい人
- 112 :デフォルトの名無しさん:2016/11/10(木) 00:22:28.24 ID:4pFcdHJl.net
- JavaScriptとHTMLではなくJavaScriptとJSONの方が近いな
XAMLはただのシリアライズフォーマットの1つでしかない
WPFと関係ない普通のオブジェクトもXAMLにシリアライズできる
そんでXAMLはJSONと違って型とアセンブリの情報を持つ
UIデザインを宣言する手段として考えると書きにくいXAML形式よりシンプルでインテリセンスもよく働くC#コードの方が優れているのは確かだろう
しかしそうではなく可視性と可搬性のある普遍的なシリアライズフォーマットとして考えるとXAMLがXMLを採用したのは自然な帰結と言える
可視性のためにはテキストでなければならない
可搬性と普遍性では対抗馬としてJSONがあるがJSONはシンプルすぎて表現力がちょっと物足りない
となるとXMLは妥当な選択と言っていい
新しい時代に乗り遅れてXMLにしたわけでもないし虐待目的でXMLにしたわけでもない
XAMLの目的に合致するフォーマットではXMLがベストだったというだけの話なんだ
- 113 :デフォルトの名無しさん:2016/11/10(木) 00:29:57.49 ID:ApowNrKS.net
- wpf使うならelectronでいいや感ある
- 114 :デフォルトの名無しさん:2016/11/10(木) 01:16:39.44 ID:Co+DcSGG.net
- AndroidStudio使っててもXMLは出来るだけいじりたくないw
- 115 :デフォルトの名無しさん:2016/11/10(木) 01:52:09.10 ID:aHkFnxeg.net
- >102
ん?
それは考え方に矛盾があるだろ。UIを切り離すのが目的なら、切り口がシンプルで
綺麗なほうがいい。
例えばスクロールバーと連動して値を表示する場合なんてUI内でまとめて片づけて
しまったほうがいい。
ほしいの値だけで、処理側からしたらくだらないイベントなんて見えないほうがいい。
そっちでまとめてやってほしい。
- 116 :デフォルトの名無しさん:2016/11/10(木) 01:52:28.80 ID:aHkFnxeg.net
- >XAMLを批判してる奴ってほんとにXAMLを理解してんの?
理解できないなから文句を言ってるんだよ。機械が簡単に理解できるからって
人間にそれを押しつけるのは間違い。
XAMLってのは単なるテキスト文書じゃない。プログラム全体から複雑なUIを切り離して
表現するという目的がある。複雑なUIは手打ちで入力するようなものじゃない。
UI={動作、表現、パラメータ、、、、}+窓口
プログラム=>窓口
UIの窓口さんにいえば{、、、}なかはわからなくても大体処理できる。そういう関係
なわけよ。窓口が美人でテキパキしてないとダメだろ。
時々あるんだが、大企業の開発部に電話してるのに田舎のおばちゃんみたいなのが
窓口で
「はあ、田中さんは今日はおらんよ、どっかに出張するからって鞄を下げて出て行った
よ」
みたいな感じな。
XAMLの美人の窓口さんはどこ? ねえ
- 117 :デフォルトの名無しさん:2016/11/10(木) 02:08:02.40 ID:CCFq8Qep.net
- >>111
批判って言うより、ほとんどいちゃもんだけどな。
- 118 :デフォルトの名無しさん:2016/11/10(木) 02:16:50.13 ID:lTw5QLQW.net
- 長文マンは無駄に下手な比喩ばっか使って文意がわかりづらいな
- 119 :デフォルトの名無しさん:2016/11/10(木) 02:20:15.15 ID:aHkFnxeg.net
- じゃあ具体的に書いたろか
textBox1.Text = "Hello, World!"
これでいいのに
public class Data
{
public string TextHelloWorld
{
get { return "Hello, World!"; }
}
}
example.xaml
<TextBox Text="{Binding Path=TextHelloWorld}" />
これだもんな。W
XAMLがデータを取りに行ってくれる。一見便利だが、いちいち細かい指示を出して
説明してやらんと分からんやつだから、教えるほうが手間。自分でHello!!て
書いたほうがなんぼかまし。
あれだ、パラダイムシフトだなんだって言ってるが、シフトダウンだよな。
- 120 :デフォルトの名無しさん:2016/11/10(木) 02:26:27.64 ID:wdbpo9Rt.net
- それXAML側でName="textBox1"と定義してやれば、this.textBox1.Text = "Hello, World!"で済むだろ
- 121 :デフォルトの名無しさん:2016/11/10(木) 02:30:19.81 ID:YdauEkQ9.net
- WPFとFormを同じXAMLから生成出来ればもっと使い道もあるんだけどな
- 122 :デフォルトの名無しさん:2016/11/10(木) 02:31:25.72 ID:aHkFnxeg.net
- 比喩だとわからんか?
窓口ってのは会社の顔だよ。XAMLの顔はというとBindingだ。ここが窓ぐち。
こいつが田舎もんだから、、、、W
- 123 :デフォルトの名無しさん:2016/11/10(木) 02:33:21.09 ID:4pFcdHJl.net
- >>122
でもそれってXAML関係ないじゃん
なんでさっきXAMLディスってたの?
- 124 :デフォルトの名無しさん:2016/11/10(木) 02:33:22.15 ID:wdbpo9Rt.net
- わざとミスしてレスが欲しいのか自分の主張を通したいのかどっちなのよ
- 125 :デフォルトの名無しさん:2016/11/10(木) 02:55:22.89 ID:bu4ikKWV.net
- >>119
ぇ、それだけじゃXAMLは取りに行かないよ。
Dataクラスからの通知機構は無いの?
- 126 :デフォルトの名無しさん:2016/11/10(木) 03:08:35.71 ID:zCCtWAZL.net
- >>115,116
?例が適当すぎて言いたいことがわからん
スクロールバーと連動して値を表示するのはバインディングで済むからUIのイベントなんて使わないだろ
UIを切り離すんじゃなくて、VとVMを切り離すのが目的
- 127 :デフォルトの名無しさん:2016/11/10(木) 03:17:22.84 ID:zCCtWAZL.net
- >>119
バインディングする意味のないソースを出されても
さっき言ったスクロールバーとその値を表示するテキストボックスの例を見ればいいんじゃない?
バインディングを使わないとイベントを利用してそれぞれの値を相互に書き換える必要があって面倒とかそういうの
- 128 :デフォルトの名無しさん:2016/11/10(木) 06:37:59.52 ID:B4277xpo.net
- XAMLを批判したいけどちゃんと理解してないから筋の通った批判ができない悲しさ
- 129 :デフォルトの名無しさん:2016/11/10(木) 07:36:13.26 ID:o8sMendu.net
- >>126
例えばGridSplitter付きのパネルの開閉をアニメ付きでヤるとしたら、xamlじゃとても書けないけど
VMにやらせる仕事じゃないって場合とか、BringToViewなんかもViewで完結させるべき仕事だね
ビヘイビアやトリガーアクション使ってもいいけど無理やり突っ込むこともない
- 130 :デフォルトの名無しさん:2016/11/10(木) 07:51:19.71 ID:aHkFnxeg.net
- <TextBox Name="Text1" Height="23" Width="70" Margin="5"
HorizontalAlignment="Left" VerticalAlignment="Top"
Text="Button" />
<Button Name="btn1" Content="{Binding Text1.Text}" Height="23" Width="70"
Margin="5,35,0,0" HorizontalAlignment="Left" VerticalAlignment="Top"
Click="Button_Click"/>
ちっともBindingせんがーーー。W
エラーもでんし。
- 131 :デフォルトの名無しさん:2016/11/10(木) 07:53:05.39 ID:aHkFnxeg.net
- >128
このバインドの書き方のどこが筋が通ってないんや?
- 132 :デフォルトの名無しさん:2016/11/10(木) 08:11:55.57 ID:aHkFnxeg.net
- this.DataContext =this;
そうだこれがぬけてると検索場所が特定できんのだ。
私は私ですから私を検索してくだされ。
えっ、これでもやっぱりだめ。
- 133 :デフォルトの名無しさん:2016/11/10(木) 08:24:57.67 ID:o8sMendu.net
- 彼の言うXamlの欠点とやらは、マークアップ言語ならどれでも持っているもので
xamlはhtmlと比べたら格段に進歩した代物だ
まあこんなケチを付けているんだから
htmlなんて触ったことない化石プログラマーなんだろうね
- 134 :デフォルトの名無しさん:2016/11/10(木) 08:57:47.72 ID:aHkFnxeg.net
- マークアップの欠点とBindingの欠点と、、、と幾つかの欠点を併せ持っているという
ところが味噌。
- 135 :デフォルトの名無しさん:2016/11/10(木) 09:16:40.69 ID:o8sMendu.net
- 可読性を問題にしていたはずが、ロジックとマークアップが混在するhtmlを批判せずに
それを解決する方法のBindingにケチをつける
化石の末期だなw
- 136 :デフォルトの名無しさん:2016/11/10(木) 09:43:37.91 ID:aHkFnxeg.net
- <Window.Resources>
<SolidColorBrush x:Key="MyBrush" Color="Blue"/>
</Window.Resources>
ボタンのインスタンスIDはNameでリソースの場合hx:Keyかよ。笑かすな。W
- 137 :デフォルトの名無しさん:2016/11/10(木) 10:15:41.71 ID:aHkFnxeg.net
- 物事を識別するには名前が肝心である。名前は適切で少ない方がいい。
大本の識別機構の混乱
XAMLコード中でIDictionaryインターフェイスを実装する要素に子要素を追加する際には
x:Key 属性の指定が必須
ただし、Styleクラス(System.Windows名前空間)のように、クラスにDictionaryKeyPropertyAttributeを付与して、(x:Key 属性の)代替となるプロパティ(Styleクラスの場合はTargetTypeプロパティ)を設定しているクラスの場合には、x:Key属性 を省略可能。
Styleクラスでは、x:Key 属性の代替としてTargetTypeプロパティを利用している。
高々リソースに名前振るだけで、、、ぷっ。
- 138 :デフォルトの名無しさん:2016/11/10(木) 10:16:51.48 ID:aHkFnxeg.net
- >135
無批判に受け入れるのはよくない。「飼いならされて、食用にされる家畜」だよ。
In the world's broad field of battle,
In the bivouac of Life,
Be not like dumb, driven cattle !
Be a hero in the strife !
- 139 :デフォルトの名無しさん:2016/11/10(木) 10:29:24.03 ID:aHkFnxeg.net
- @ITデータバインディングを理解する。
http://www.atmarkit.co.jp/ait/articles/1010/08/news123.html
1ページ何を言ってるのか全然わからん。突っ込みどころが多すぎて、突っ込む気にもならん。
それとも誤字脱字が多いのかな?なんか説明が間違ってるだろ。論理がつながっていない。
うちのばあちゃんにでもわかるように説明してみろや。
{Binding X} という書き方は、{Binding Path=X} と同じ意味である。
藁、「同じ意味である」って、そんなら最初から一つに絞っておけよ。
{Binding Path=X} いらんだろ。
BindingにPath以外のプロパティはないんだろ!! 最初からBindingでいいだろ
パスもプロパティもいらんわ。
- 140 :デフォルトの名無しさん:2016/11/10(木) 10:43:36.65 ID:aHkFnxeg.net
- 外部リソースを取り込むには、<ResourceDictionary>要素にSource属性を付ける
<Window.Resources>
<ResourceDictionary Source="Styles.xaml"/>
</Window.Resources>
includeにしろよな。常識だろ。
- 141 :デフォルトの名無しさん:2016/11/10(木) 11:38:19.49 ID:ElAt+S/3.net
- 質問です
フォームにプロパティグリッドがあります
プロパティグリッドの中でCtrl+Zを押したときに
普通はプロパティグリッドが持っているアンドゥが呼ばれますが
これをフォームの独自のアンドゥ・メソッドを呼び出すようにしたいのですが、
どうすればいいですか?
- 142 :デフォルトの名無しさん:2016/11/10(木) 12:03:59.07 ID:dRW/oH8h.net
- >>141
思いつくのは、IMessageFilterを使ってWM_KEYDOWNでCtrl+Z拾ってやることかな
入力中のコントロールをControl.FromHandleで取れたら幸い
- 143 :デフォルトの名無しさん:2016/11/10(木) 12:19:50.11 ID:CCFq8Qep.net
- >>139
Pathは省略可能ってだけで、他にもプロパティあるし。
自分で張ったリンク先の2ページ目にも書いてあるだろ。
- 144 :デフォルトの名無しさん:2016/11/10(木) 12:41:10.63 ID:lWSBQV9X.net
- >>116
理解できない自分の頭を呪いな
- 145 :デフォルトの名無しさん:2016/11/10(木) 12:59:35.96 ID:otGHoxmh.net
- >>142
.NET1.1の頃からそんなのあったのか
まったく知らなかったw
しかし、IMessageFilterっていうかApplication.AddMessageFilterって結構恐ろしい仕組みだなw
NativeWindowの方が安全な気がするんだけど
- 146 :デフォルトの名無しさん:2016/11/10(木) 13:07:51.76 ID:ElAt+S/3.net
- >>142
IMessageFilterでCtrl+Z拾ってできました
ありがとうございます
- 147 :デフォルトの名無しさん:2016/11/10(木) 14:50:01.95 ID:zCCtWAZL.net
- >>139
結局、言われた指摘には何も返せず自分が理解できないのに適当に騒いでるだけじゃん
C言語とかやったら配列があればポインタいらないじゃん!とか騒いでそう
省略可能な記述についても、html5とかの仕様を見たらhtmlとかbodyとかのタグいらないじゃん!とか叫びそう
http://qiita.com/labocho/items/54fd70c73ced35c8ba49
- 148 :デフォルトの名無しさん:2016/11/10(木) 15:34:39.47 ID:aHkFnxeg.net
- グダグダ言わずに、本質はどういうことかを捉えてどう説明できるかが問題やな。
Bindingの本質はというと要するにXamlのText="{Binding pName}" が意味するのは
var bind = new Binding("pName") { Source = per };
text1.SetBinding(TextBox.TextProperty, bind);
この二つの処理やないか。こいつを省略形で書いてるだけのことやろ。
チュートリアルでちゃんとこう言うように書けよな。そしたら3秒でわかるのに。
原辰。
- 149 :デフォルトの名無しさん:2016/11/10(木) 15:45:02.09 ID:aHkFnxeg.net
- >143
1pが意味不明なので2pは見てなかった。
しかもインテリセンスが糞やからPath以外のプロパティがあるのかないのかわからん。
あくまでも
「BindingのプロパティはPath以外に無い」という前提、仮説の下でケチつけてる
わけであって、それはチャンと明記している。W
一遍にりかいするんは難しい。
OneWay ソースからターゲットへの一方通行の同期になります。
TwoWay ソースとターゲットの双方向の同期になります。
OneWayToSource ターゲットからソースへの一方通行の同期になります。
OneTime ソースからターゲットへ初回の一度だけ同期されます。
モードがあるじゃないか。ならインテリセンス効かせろや。
- 150 :デフォルトの名無しさん:2016/11/10(木) 15:59:51.17 ID:aHkFnxeg.net
- しかしBinding部分は顔だし肝なのにここを
正確に説明できん
プロパティのインテリセンスも出せん
とか、要するに自分の頭で考えたものじゃなくて、アッチコッチから借りてきた借り物をくっつけ
て作り上げてるからだろ。ほんとうのところが正確に把握できてないんだよな。
- 151 :デフォルトの名無しさん:2016/11/10(木) 16:05:52.04 ID:aHkFnxeg.net
- 内容が変更したときにはどうすんの?
INotifyPropertyChangedインターフェースを実装
DependencyPropertyにしてしまう (インスタンスを生成したスレッドのみに限定される)
二つの方法がある。
PropertyChanged(this, new PropertyChangedEventArgs("pName”));
プロパティの変更でこれをやってやればいい。
なんやねん。結局イベント処理は書かなだめやないか? どんだけのメリットがあるか。W
- 152 :デフォルトの名無しさん:2016/11/10(木) 16:10:01.34 ID:ApowNrKS.net
- ラムダ君
LINQ君
XAML君←new
- 153 :デフォルトの名無しさん:2016/11/10(木) 16:33:44.59 ID:aHkFnxeg.net
- 結局普及しないのは、関係者がちゃんと理解できていないのではないかな。
WEBを見たら、いろいろと説明が書いてるがどれも分りにくい。
C#でもVBでも1日も触っていたら、そこそこ使えるようになる。うろ覚えでも
プログラムはできる。
WPFは説明が中途半端なので肝の部分がはっきりしない。
バインディングするんならイベントもちゃんとバインディングしないとだめだわ。
バインディングを間違っていても反応なしだしな。W エラーすらチェックできてない。
中途半端。
- 154 :デフォルトの名無しさん:2016/11/10(木) 17:47:19.45 ID:riiUw9jl.net
- >>152 命名のXAML君は、staticおじさんと同じ加齢臭がする
- 155 :デフォルトの名無しさん:2016/11/10(木) 17:49:55.89 ID:ApowNrKS.net
- ラムダとLINQも新しいことを拒絶するstaticおじさんだろうな
- 156 :デフォルトの名無しさん:2016/11/10(木) 19:15:21.25 ID:pqjjw4yY.net
- ラムダとLINQの時は使うなとか言っているやつがいたからな
拒絶するのは勝手だがいちいち布教しようとするのはウザイ
- 157 :デフォルトの名無しさん:2016/11/10(木) 19:22:39.57 ID:CGPJd07S.net
- IEでニコ生みたいなストリーミング動画を見る際に、動画データがメモリーに展開する前にデータをリアルタイムでキャプチャするにはどうしたらいいでしょうか?
- 158 :デフォルトの名無しさん:2016/11/10(木) 19:23:04.26 ID:ApowNrKS.net
- C#のLINQは名前が他の言語と違うから一瞬迷う
- 159 :157:2016/11/10(木) 19:31:03.19 ID:CGPJd07S.net
- すみません分かりづらかったです。
IEで動画見ながら、IEがダウンロードしてるデータがストリーミング動画かどうかを判断して、動画ならIEの画面に表示される前に手を加えたいんです。
- 160 :デフォルトの名無しさん:2016/11/10(木) 19:36:34.41 ID:hirKpSKv.net
- ストリーミング中の動画に手を加えられるだけの技能があるのがすごい
- 161 :デフォルトの名無しさん:2016/11/10(木) 20:17:59.57 ID:13nZCkn2.net
- 使う価値があると思えば使えばいい
自分が使うのは無理だ参りましたと思ったら使わなければいい
ただどちらを選択したかは別に他人に伝えなくていい
- 162 :デフォルトの名無しさん:2016/11/10(木) 22:17:57.52 ID:c1KzPo7d.net
- >>159
現実的な内容じゃない
基本的に無理
プロキシ―作っても動画をいじれる技量が君にあるとは思えない
- 163 :デフォルトの名無しさん:2016/11/10(木) 23:07:13.32 ID:pEVMYV3p.net
- IEに、そういうプラグインがあるのか、探してみれば?
IEは、オープンソース(OSS)じゃないから、改造するのは難しい。
OSSは、Firefox, Chromium, Safari
Atom, Visual Studio Code, Electron は、Chromiumを使っている
- 164 :デフォルトの名無しさん:2016/11/11(金) 03:04:38.37 ID:+gNs9Nbk.net
- >>153
君はWPFどころかC#もよく理解できてないみたいだから、C#入門書からスタートするのがおすすめ
- 165 :デフォルトの名無しさん:2016/11/11(金) 04:07:56.66 ID:KgVthd+h.net
- >157
ストリーミングをやるコンポーネントはあるだろ。そのデータ取り込み部分を
バッファリングして中を加工すればいいだけだろ。W
画像認識をするのかな?
- 166 :デフォルトの名無しさん:2016/11/11(金) 07:05:40.26 ID:KgVthd+h.net
- MVVMのICommandの使い方
ICommandを実装する理由はなんだ?
ttp://www.atmarkit.co.jp/ait/articles/1011/09/news102_3.html
これは読んでいくとよくまとまっているが、これだけでは難しすぎて
何を言ってるんかわからん。まるでMS。
そもそもICommandってなーに?
1. 処理の実行可否を状態として持つ、また状態の変更を通知
2. XAMLからメソッドの呼び出しはコードビハインドしか利用できないが、ICommandはバインドが利用でき別クラス(ViewModel)の処理を呼び出すことができる
中身は
public interface ICommand
{
void Execute(object parameter);
bool CanExecute(object parameter);
event EventHandler CanExecuteChanged;
}
- 167 :デフォルトの名無しさん:2016/11/11(金) 07:07:03.74 ID:zUQAdwQM.net
- イベントを再定義したかった人生だった(Command辞世の句)
- 168 :デフォルトの名無しさん:2016/11/11(金) 07:08:21.41 ID:KgVthd+h.net
- いい例がある。これならわかる。これを逃してしてしまうと永久にわからないというほどの
優れた例を提示しておく。
優れた例
XAML
<TextBox Text="{Binding Name}"/>
<Button Content="実行" Command="{Binding ExecuteCommand}"/>
<Label Content="{Binding Result}"/>
ViewModel
public DelegateCommand ExecuteCommand { get; }
public MainWindowViewModel(){
ExecuteCommand = new DelegateCommand(() => Result = "登録OK", CanExecute);
}
private bool CanExecute(){
return !string.IsNullOrWhiteSpace(Name);
}
private string _name;
public string Name{
get { return _name; }
set { if (OnPropertyChanged(ref _name, value)) ExecuteCommand.RaiseCanExecuteChanged();}
}
- 169 :デフォルトの名無しさん:2016/11/11(金) 07:09:49.57 ID:KgVthd+h.net
- 肝:DelegateCommandをプロパティとして公開
コンストラクタの中でインスタンス化
() => Result = "登録OK"
これはなんやねん? このアクションの書き方がわからんなーという人。
ラムダ式、、、初めて聞いた?
- 170 :デフォルトの名無しさん:2016/11/11(金) 07:13:06.18 ID:KgVthd+h.net
- >君はWPFどころかC#もよく理解できてないみたいだから、C#入門書からスタートするのがおすすめ
C#の方が難しいわ。まあでも何とか動かせる。WPFもBindingだけわかったので何とか
使えるレベルにはなったな。
問題はMVVMパターンだな。
MVVMじゃなくてM-VM-VかV-VM-Mでないとだめだよな。VVMMの方がいいと思う。
- 171 :デフォルトの名無しさん:2016/11/11(金) 07:23:51.87 ID:KgVthd+h.net
- WPF攻略方法
1.Bindingの理解
2.「優れた例」でVVMM(またはMVVM)を理解する こっちはまあボチボチでもOK
MSの文書は酷いがIT−PROの文書は体裁としてはよくまとまってはいるが説明が難しい。
第一に例が悪い。
第二に例にセンスがない。
第三に例の説明が下手。
単純化したシンプルな例で示さないと「俺はこんなにすごいんだぞ」みたいな
複雑な例では分からん。
- 172 :デフォルトの名無しさん:2016/11/11(金) 08:31:34.35 ID:KgVthd+h.net
- MVVMのVMってわざわざ苦労してクラスをつくる必要あるんか?
コードビハインドをVMにしたらいいんではないか? VとのIFはここで全部やった
らいいと思うがな。
なんか必要性がいまいちわからんなー。
- 173 :デフォルトの名無しさん:2016/11/11(金) 08:51:31.09 ID:qDFZLZyC.net
- >>172
必要性が何なのかちゃんと調べたのかい?
- 174 :デフォルトの名無しさん:2016/11/11(金) 09:40:30.93 ID:yIFyhkZ0.net
- DIコンテナを導入すると、VMとMの2層構造のありがたみが実感できるんだけどな
- 175 :デフォルトの名無しさん:2016/11/11(金) 09:43:11.94 ID:M2uBl8fv.net
- >>169
ラムダ式は、Java, JS, Rubyなど、たいていの言語にある
例えば、独自の方法で、ソートしたい場合、先に比較関数を定義してから、
その関数を引数として、sort()に渡す
比較関数{ ここで定義する };
sort(比較関数);
ところが、先に定義するのは面倒だから、sort()の引数の所で、
匿名(無名)関数として定義して、そのまま引数として渡せれば、簡単。
それの糖衣構文で、関数宣言も無くしたのが、ラムダ式
JSで書くと、
var a = ["Hydrogen", "Helium", "Lithium", "Beryl-lium"];
匿名関数・ラムダ式
var a2 = a.map(function(s){ return s.length });
var a3 = a.map( s => s.length );
- 176 :デフォルトの名無しさん:2016/11/11(金) 13:38:45.67 ID:KgVthd+h.net
- ラムダ式なんて高級なもが巷にあふれているとは初めてしった。めったに
使わないかな。
右も左もわからないのにアンドロイドアプリ(簡単なんだが、、)を作る
羽目になってしまった。しかしXamalinダウンロードしてみたらXamlに似ていて
驚いたわ。W
WPFを勉強したかいがあった。これからバリバリつくってみる。
- 177 :デフォルトの名無しさん:2016/11/11(金) 18:30:50.13 ID:ciOc6C5W.net
- リスト操作系関数を一度使ってしまうともう戻れなくなる
例えば、List<string>をList<object>に変換したい時、
var hoge=list.map(x=>(object)x);
だけで良い。foreachとかで書くより楽で読みやすい
- 178 :デフォルトの名無しさん:2016/11/11(金) 18:55:28.67 ID:+ZeaIXfw.net
- 名前を付けるのも馬鹿らしい単純な操作を表現するには
やっぱりラムダ式が便利だと感じる
- 179 :デフォルトの名無しさん:2016/11/11(金) 18:56:03.62 ID:qDFZLZyC.net
- >>176
Xamlに似てる?勘違いしてんぞお前
- 180 :デフォルトの名無しさん:2016/11/11(金) 18:57:11.76 ID:0OJ17qIg.net
- >>177
List<T>.ComvertAll<TOutput>(Converter<T,TOutput>)ではダメなんか?
- 181 :デフォルトの名無しさん:2016/11/11(金) 19:20:11.62 ID:KgVthd+h.net
- >179
Xamlそのものだわ。C++もC#のFormもXmalinUIもあって、3種類の開発環境がある。
まともに動けば凄いよ。W
でもサンプルを動かしたまではすんなりいったんだが署名ができないとか、文字ばけ
するとかどうも先が思いやられるのでxamalin
やめてAndroid Studioにしようかと迷ってる。こっちはJavaだけど、、
- 182 :デフォルトの名無しさん:2016/11/11(金) 19:58:04.56 ID:JZCe9Y2P.net
- ラムダ厨うぜー
- 183 :デフォルトの名無しさん:2016/11/11(金) 20:14:46.10 ID:tUVkv4AT.net
- おはようラムダ君
- 184 :デフォルトの名無しさん:2016/11/11(金) 20:20:02.48 ID:TqB+9XQ4.net
- ランバダなら知ってる
- 185 :デフォルトの名無しさん:2016/11/11(金) 20:27:50.64 ID:nfVHRfzR.net
- >>181
c#初心者スレがあるからそっちにいった方がいい
いい加減うっとおしい
- 186 :デフォルトの名無しさん:2016/11/11(金) 20:46:50.11 ID:KgVthd+h.net
- アッ、もうC#は卒業したんでこないよ。次はJAVAだ
- 187 :デフォルトの名無しさん:2016/11/11(金) 20:49:06.76 ID:nfVHRfzR.net
- それは良かった
- 188 :デフォルトの名無しさん:2016/11/11(金) 21:09:36.24 ID:TOO7Y3Ld.net
- ε-(´∀`*)ホッ
- 189 :デフォルトの名無しさん:2016/11/11(金) 22:25:05.87 ID:+gNs9Nbk.net
- >>181
XamarinはC#に相当慣れ親しんでるか、androidもiOSもそこそこやってる人がまとめて開発したいって場面以外ではまだおすすめできる状態じゃないかな
まだ情報も少ないし、ラムダ式とかイベントとかの基本を自力で調べられない人には特に厳しいと思う
- 190 :デフォルトの名無しさん:2016/11/12(土) 20:58:13.68 ID:RWma0It4.net
- 古いWindowsマシンでAndoroid開発しようとすると
まずエミュレータが動かない
WindowsPhoneが頑張ってくれてたら
引き続きVisualStudioで開発できたのに
どうしてここまで差を付けられたのか
MSってエリート揃いじゃないのかな?
- 191 :デフォルトの名無しさん:2016/11/12(土) 21:30:04.79 ID:cIUa0gZx.net
- 古いマシンで開発するやつの事なんかMSが面倒見る義理ねえよ
- 192 :デフォルトの名無しさん:2016/11/12(土) 23:10:09.55 ID:l9OhshgV.net
- Win10で露骨にレガシーおじさん切り捨てに来たし
流石の聖人マイクロソフトもお荷物を抱えきれなくなってきたんだろうね
- 193 :デフォルトの名無しさん:2016/11/13(日) 02:11:36.78 ID:PRCnkR8c.net
- xamlが嫌いなら、全部コードで書けば良いのに。
Bindingが理解出来ないのなら、全部コードビハインドで書けば良いのに。
- 194 :デフォルトの名無しさん:2016/11/13(日) 02:55:57.86 ID:+xp6lf8w.net
- WPFって学習コストが高い(少なくとも俺にとっては)から
苦労して覚えたものを擁護したくなる気持ちはわからんでもないけど、
10年経ってもほとんど普及してないのにはやっぱりそれなりに理由があると思う。
パフォーマンスの問題は目をつぶるとしても、個人的には可読的じゃないのが大きいと思うんだよね。
書いてるときはいいんだけど、自分が書いたものであっても後から見るとどこで何をやってるのか
ぱっと見て分からないし見当がつかない。
MVVM(正直これはあんまり理解してないんで誤解してるかもしれんが)にしてもそうだけど、
理念的に綺麗なのはわかるけど何か「これじゃない」感が強いというか、美しい理想の実現のための
コストが大きすぎるというか...
- 195 :デフォルトの名無しさん:2016/11/13(日) 09:01:19.59 ID:sNDrzqcx.net
- >194
綺麗なコードをみてみたら素晴らしさが一発でわかるとおもぞ。直感的にすぐに
わかる。わからないようなのではだめだな。
だれか194のためにだせるかな?
- 196 :デフォルトの名無しさん:2016/11/13(日) 09:45:56.53 ID:lb7gRuG3.net
- >>194
同意。結局世の中に求められてるのは
大ヒットしたVB6レベルなんじゃないかねえ
SOAPがはやらなかったのも一緒。
- 197 :デフォルトの名無しさん:2016/11/13(日) 10:23:03.20 ID:67al7/78.net
- VB6っぽくも書けるんだけどね。
ポトペタも出来るし。
- 198 :デフォルトの名無しさん:2016/11/13(日) 10:23:37.75 ID:sNDrzqcx.net
- んーーーーんと考え込むよりもサクサクと作ったほうが手数は多くても生産性が
上がる。と考える人が殆どだから?
- 199 :デフォルトの名無しさん:2016/11/13(日) 10:50:51.74 ID:lO2MkZMm.net
- html知っていればxamlの可読性にケチを付けること無いと思うんだが
今時html触ったことない人なんだろうか?
- 200 :デフォルトの名無しさん:2016/11/13(日) 11:12:37.23 ID:ZjdX2IN8.net
- >>198
んーーーーんと考え込むよりもサクサクと作れるような案件ばかりだからだろ
- 201 :デフォルトの名無しさん:2016/11/13(日) 11:39:53.10 ID:IKKUDTFw.net
- >>194
そんな擁護とか色眼鏡で見ないでも、単純に学習コストが高いのが一番のネックだろう。
- 202 :デフォルトの名無しさん:2016/11/13(日) 11:52:49.11 ID:fBLfWj6L.net
- どこで何をやってるかわからない、ってのが不思議だな
振るまいを独立にモデリングした上で、UIのどことモデルのどこを対応付けるか、を明確化するのがMVVMであり、バインディングの利点じゃん?
従来のフォーム・イベントゴリ押し的なやり方だとこれが曖昧化してしまうから、どこで何をやってるかがわからなくなる
MVVMでわけわからなくなる人はなにか根本的に間違ったことやってるんじゃないかな?
- 203 :デフォルトの名無しさん:2016/11/13(日) 12:15:54.37 ID:IKKUDTFw.net
- >>202
慣れてないだけだと思う
>>194
MVVMは高コストって主張も分かる。
単純な案件にはオーバースペックだし、Formsでも十分。
- 204 :デフォルトの名無しさん:2016/11/13(日) 14:15:44.38 ID:67al7/78.net
- こうして人は老いて逝くのかな。
- 205 :デフォルトの名無しさん:2016/11/13(日) 15:30:42.14 ID:zWTpia8y.net
- 「フロントエンド界隈」が、声だけでかくて市場としては滅茶苦茶小さいのにに似てる
- 206 :デフォルトの名無しさん:2016/11/13(日) 19:32:23.00 ID:wHFHc9ra.net
- フロントエンドプロセッサ
- 207 :デフォルトの名無しさん:2016/11/13(日) 19:51:43.67 ID:6IaE8voh.net
- MVVMはOOPと相性悪いよな
間違った変更は拒絶して例外を投げるのが基本のOOP
間違った変更を一時的に受け入れて(そのかわりエラーを状態の一部として持つ)コミット時に不変条件を満たせば良いMVVM
Formsなら例外をキャッチしてメッセージを出して入力を戻すだけでいいからOOP的に正しいモデルをそのまま再利用できる
要するにビューがドメインモデルについてよく知らなくてもビジネスルール的に正しい状態に保つことができる
MVVMだとビュー及びビューモデルがビジネスルール的に正しいか正しくないかということを知っていなければならない
それはビューやビューモデルではなくドメインモデルが管理すべき情報でしょ
- 208 :デフォルトの名無しさん:2016/11/13(日) 22:40:30.15 ID:67al7/78.net
- レイヤーが違うと思うけど。
難しいから全部フラットで良いよ。
- 209 :デフォルトの名無しさん:2016/11/14(月) 17:11:40.86 ID:iSq4NCna.net
- var dic1 = new Dictionary<string, string>() { { "key", "value" } };
var dic2 = new Dictionary<string, string> { { "key", "value" } };
どちらでも動くようなのですが、カッコは付けるほうが良いですか?
- 210 :デフォルトの名無しさん:2016/11/14(月) 19:10:02.84 ID:xSfNgSMs.net
- >>209
お好きな方で。
今なら
{["key"] = "value"}
の方が解りやすいかも。
- 211 :デフォルトの名無しさん:2016/11/14(月) 22:10:40.45 ID:p26anzny.net
- テキストボックスの入力欄A, B, Cがある
A, Bは自由入力欄、CはA * Bを出力する読み取り専用(A, Bが変化したら即座に再計算される)
A, Bに数値と解釈できない文字列(decimalに変換できない文字列)が入力された場合、即座にERRVALという文字列に置き換える
Cが計算不能な場合、ERRVALという文字列に置き換える
このような画面をWPFで作成したいのですがViewModelとxamlはどのように書けばいいでしょうか?
- 212 :デフォルトの名無しさん:2016/11/14(月) 22:57:37.38 ID:2SylIT9P.net
- それだけ決まっててむしろどこに悩んでるのさ
- 213 :デフォルトの名無しさん:2016/11/14(月) 23:09:54.35 ID:p26anzny.net
- >>212
他のプログラマがどう書くか参考にしたいです
- 214 :デフォルトの名無しさん:2016/11/15(火) 00:54:17.56 ID:gSjda41/.net
- >>199
htmlにはCSSがあるから見た目は外に出せる
- 215 :デフォルトの名無しさん:2016/11/15(火) 07:18:35.80 ID:wcWx6QZb.net
- >>213
ならまず自分がどう書いたかを晒せよ
- 216 :デフォルトの名無しさん:2016/11/15(火) 07:47:41.89 ID:AaicVHah.net
- キー入力ミスったら最初から入力しなおしな典型的な糞ソフト仕様だな
- 217 :デフォルトの名無しさん:2016/11/15(火) 08:30:57.20 ID:9/yxKzNn.net
- >>213
ReactivePropertyのサンプルならググれば見つかるから参考にすりゃいいよ
- 218 :デフォルトの名無しさん:2016/11/15(火) 10:37:08.44 ID:9/yxKzNn.net
- >>214
xamlを腐しているやつは、xamlを全然知らないんだな
- 219 :デフォルトの名無しさん:2016/11/15(火) 11:29:28.89 ID:f/VYzzwV.net
- XAMLをよく知っているやつがちゃんとした説明してるの見たことない
- 220 :デフォルトの名無しさん:2016/11/15(火) 12:05:59.99 ID:Sy8HLWAK.net
- >>219
残念なやつ
- 221 :デフォルトの名無しさん:2016/11/15(火) 12:12:58.11 ID:f/VYzzwV.net
- というように人格否定しかできない
- 222 :デフォルトの名無しさん:2016/11/15(火) 12:39:21.59 ID:Sy8HLWAK.net
- >>221
顔真っ赤www
- 223 :デフォルトの名無しさん:2016/11/15(火) 14:14:09.51 ID:EsNZ5iro.net
- と、知ったかは発狂するのであった
- 224 :デフォルトの名無しさん:2016/11/15(火) 17:55:17.20 ID:idS/rHgA.net
- CSSはxml形式じゃないから良い
必要なところで必要な形を使うのが良い
- 225 :デフォルトの名無しさん:2016/11/15(火) 18:43:22.99 ID:IxpYJQnb.net
- 全然使われてないのは書店(Amazonでもいいけど)に行くとあからさまにラインナップがしょぼいからすぐ分かる
mizchiと取り巻きの声だけやたらデカいReactみたいなもんだ
- 226 :デフォルトの名無しさん:2016/11/15(火) 22:31:04.10 ID:YqUWOmsB.net
- >>214
style等は外に出せるぞ。
- 227 :デフォルトの名無しさん:2016/11/16(水) 10:35:34.62 ID:hL8zHUS9.net
- 中はやめてー
- 228 :デフォルトの名無しさん:2016/11/18(金) 23:01:26.36 ID:+QqWh5ch.net
- 変数aがnullならbもnullにして、
aがnullでないならaを用いてmyfuncの計算結果をbに入れたいのですが、
var b = (a == null) ? null: myfunc(a);
こんなふうにしたのですが、もっとスッキリ書けそうな気がするのですが、
思い付きません。
もっとスッキリ書けますか?
- 229 :デフォルトの名無しさん:2016/11/18(金) 23:08:28.42 ID:2P9KWEZx.net
- myfuncの戻り値を考え直せとしかwwwwwwwwwwww
- 230 :デフォルトの名無しさん:2016/11/19(土) 01:56:09.52 ID:eBIxsLr/.net
- >>228
var b = a?.myfunc(a);
- 231 :デフォルトの名無しさん:2016/11/19(土) 01:57:55.29 ID:eBIxsLr/.net
- とおもったらmyfuncはaのメソッドじゃないのね
230は間違い。忘れてくだされ
- 232 :デフォルトの名無しさん:2016/11/19(土) 03:57:45.25 ID:gmVZjmNi.net
- myfunc(null)がnullを返すようにすれば
b = myfunc(a)で済むんだがなぁ
まあきっとそうではない何かをする関数なんだろうな
おれならaやbがnullである事に特別な意味があったり、myfuncを呼ばない事に特別な意味があるなら
ちゃんとif文書くけどな
- 233 :デフォルトの名無しさん:2016/11/19(土) 10:29:56.40 ID:0bgRfGhz.net
- >>229
string myfunc(string a){
if(a==null)
return null;
を追加したらスッキリしました!
- 234 :デフォルトの名無しさん:2016/11/19(土) 11:12:00.41 ID:6I7N2mEo.net
- aってstringだったのか…
余計なことを言いたくなるなあ…
- 235 :デフォルトの名無しさん:2016/11/19(土) 11:15:09.05 ID:ZfUdGYAZ.net
- スッキリワロタ
どうしてもならジェネリックの拡張メソッドを作っとく手もあったね。
- 236 :デフォルトの名無しさん:2016/11/19(土) 17:50:29.26 ID:t3MBfDke.net
- nullを返す関数を作ると後々災いの元
- 237 :デフォルトの名無しさん:2016/11/19(土) 17:52:57.62 ID:E8arxXAw.net
- かと言ってstringで""を返す関数を作っても後々災いの元
- 238 :デフォルトの名無しさん:2016/11/19(土) 17:55:21.80 ID:VKIYWaqI.net
- >>236
またその話か
それはないよ。
- 239 :デフォルトの名無しさん:2016/11/19(土) 23:03:49.26 ID:0bgRfGhz.net
- >>236
なんで?
- 240 :デフォルトの名無しさん:2016/11/20(日) 00:13:29.86 ID:BknfpFpO.net
- 暫く使ってみたがWPFというかMVVMはやっぱり良くないな
暫定的にとはいえ不正な状態のオブジェクトを受け入れるってのが致命的にコードを汚くする
カプセル化で状態を保護するのが基本のオブジェクト指向に喧嘩売ってるとしか思えない
- 241 :デフォルトの名無しさん:2016/11/20(日) 00:26:32.91 ID:K2ib4r+U.net
- >>239
その関数使う使う時に一々nullチェックするの面倒。
それを忘れない保証もどこにもないし。
- 242 :デフォルトの名無しさん:2016/11/20(日) 00:30:59.63 ID:ckE9xegj.net
- >>241
何という頭の悪さ。
nullを禁止したらnullを返すことで表現していたことを
もっと面倒な別の方法で呼び出し側に伝達する必要が生じるんだけど。
何でこんな簡単なことが分からないのかね。
- 243 :デフォルトの名無しさん:2016/11/20(日) 01:00:26.85 ID:KPo4Qlq+.net
- FindFirstみたいなメソッドでマッチしない場合にnullじゃないオブジェクトを
返されたとしてもどのみちチェックする必要が出てくる
- 244 :デフォルトの名無しさん:2016/11/20(日) 01:09:39.51 ID:X8MMRSH3.net
- null返す関数禁止じゃなくてnull代入禁止型にしてくれ
- 245 :デフォルトの名無しさん:2016/11/20(日) 01:27:12.98 ID:K2ib4r+U.net
- >>242
勉強不足
- 246 :デフォルトの名無しさん:2016/11/20(日) 01:38:16.74 ID:K2ib4r+U.net
- >>244
C#7.0か8.0に期待。
- 247 :デフォルトの名無しさん:2016/11/20(日) 02:13:42.33 ID:ckE9xegj.net
- 期待するだけ無駄。
馬鹿じゃなきゃちょっと考えればわかるはずだが、
必ず既定値で初期化されるようにするにしろ初期化なしの変数宣言ができないようにするにしろ、
nullを許容することの弊害とは別のより大きい弊害や利便性の低下を生むだけ。
だいたい、nullを許容することの弊害なんて大半はそれを主張してる奴が勘違いしてるだけだ
- 248 :デフォルトの名無しさん:2016/11/20(日) 02:22:59.08 ID:9PtzIqGH.net
- 老害臭が半端無いんだが。
- 249 :デフォルトの名無しさん:2016/11/20(日) 02:25:15.52 ID:ckE9xegj.net
- 年齢の問題じゃないね。
馬鹿かそうでないか、それだけの問題
- 250 :デフォルトの名無しさん:2016/11/20(日) 05:58:45.20 ID:2ye3zmI2.net
- >>244
nullを返す関数や変数にnullを代入する処理をよく使うのですが、
それで混乱した経験も無いのですが、なぜ、
nullを返す関数
変数にnullを代入
に反対する人がいるのでしょうか?
- 251 :デフォルトの名無しさん:2016/11/20(日) 07:22:58.86 ID:pCJ1qvOZ.net
- >>250
>>241と同じ
- 252 :デフォルトの名無しさん:2016/11/20(日) 08:05:54.92 ID:2ye3zmI2.net
- >>251
>その関数使う使う時に一々nullチェックするの面倒。
>それを忘れない保証もどこにもないし。
この意味が分からないのですが、関数を使うときにnullチェックする
と言うのは何ですか?
関数がnullを返す場合もあるように自分でそうしているわけだから
何も問題ないと思いますが。
- 253 :デフォルトの名無しさん:2016/11/20(日) 08:15:43.24 ID:pCJ1qvOZ.net
- >>252
理解できない奴には理解できないからもう気にするな。null禁止にしても同じ問題起きるしw
- 254 :デフォルトの名無しさん:2016/11/20(日) 08:27:09.27 ID:2ye3zmI2.net
- >>253
気になるんです。
教えてください。
- 255 :デフォルトの名無しさん:2016/11/20(日) 08:32:27.43 ID:w/pS54nD.net
- そもそもこれは戻り値がstring限定の話じゃないの?
普通のオブジェクトでnull禁止はありえないからね
- 256 :デフォルトの名無しさん:2016/11/20(日) 08:43:15.40 ID:pCJ1qvOZ.net
- >>255
(nullでなく()デフォルト値を入れた空のオブジェクトを返すって考え方もあるからオブジェクトでも同じだよ
そもそも1つの戻り値で関数失敗成功情報まで返そうとするのが間違い
- 257 :デフォルトの名無しさん:2016/11/20(日) 08:47:01.08 ID:3blV6AGf.net
- 値型は null にならないのでそれで用は足る。面倒なのは、Stringだかが。昔のBASIC の文字列型のように実装した値型を用意すれば解決。
- 258 :デフォルトの名無しさん:2016/11/20(日) 09:29:50.43 ID:2ye3zmI2.net
- >>257
>面倒なのは、String
C#で文字列を扱っていてnullの扱いで面倒だと感じた経験が
一度もないのですが、Stringでnullがなぜ面倒なのですか?
- 259 :デフォルトの名無しさん:2016/11/20(日) 09:42:15.04 ID:BknfpFpO.net
- nullは情報を捨ててしまうから可読性が低くなる
エラー許容型を作ってそれを使うのが定石
Errorable<string> s = func();
if(s.HasNoError) WriteLine(s.Value);
else WriteLine(s.ErrorMessage);
if(s.NotFound) ...
if(s.AuthError) ...
if(s.FormatError) ...
...
- 260 :デフォルトの名無しさん:2016/11/20(日) 09:59:28.46 ID:Y223jndk.net
- >>259
> その関数使う使う時に一々nullチェックするの面倒。
> それを忘れない保証もどこにもないし。
全然改善されてないだろ w
てか、その例なら素直に例外使えよ
- 261 :デフォルトの名無しさん:2016/11/20(日) 10:11:47.90 ID:GbOcvoRT.net
- IsNullアンチパターンみたいだね
- 262 :デフォルトの名無しさん:2016/11/20(日) 10:12:24.08 ID:wbF3tHCA.net
- >>260
チェックなしでValueにアクセスしたら例外を投げる
Errorableという名前が見えることによってチェックを忘れるということを回避できる
チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている
- 263 :デフォルトの名無しさん:2016/11/20(日) 10:27:40.57 ID:9PtzIqGH.net
- もう一歩踏み込んで、Maybe。
Valueプロパティは、もちろん無し。
- 264 :デフォルトの名無しさん:2016/11/20(日) 10:30:00.58 ID:X8MMRSH3.net
- 宗教としてC#にアイデンティティを代替している連中(貧乏人ほどオリンピックが好きなのと同じ)なのに
仕様を否定したって聞き入れる訳ないじゃん
ヘジにアントニー・ホーアの言葉をどう考えるか聞いた奴がいるが
なんて答えたか知らないんだろうし
(あるいは、C#に間違いがあってはならないから目をつぶっているか、そもそも英語は読めないか)
- 265 :デフォルトの名無しさん:2016/11/20(日) 10:30:10.23 ID:9PtzIqGH.net
- >>250
ぼっちで書いてる時は、好きにする宜し。
- 266 :デフォルトの名無しさん:2016/11/20(日) 10:35:26.28 ID:2ye3zmI2.net
- 文字列の場合にはNullも "" も同じだと思えばいいよね
- 267 :デフォルトの名無しさん:2016/11/20(日) 10:37:02.45 ID:NgPgW0rj.net
- 参照型とnull許容型は別の概念にするべきだったと言ってるし
現在、null非許容型を破壊的にならないように言語仕様を変えよう(追加しよう)としている。
将来を全て見通せる人は、いないと言う事だよ。
- 268 :デフォルトの名無しさん:2016/11/20(日) 10:38:09.66 ID:Y223jndk.net
- >>262
> チェックなしでValueにアクセスしたら例外を投げる
ならはじめから例外でいいだろ
> Errorableという名前が見えることによってチェックを忘れるということを回避できる
マジで言ってるの?
チェックする箇所には変数名しか見えないんだが...
まあ IDE でいちいち型を確認すればいいんだろうけど、エラーチェック忘れるような奴はそう言う型の確認も忘れるわけで...
> チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている
たぶん思い付きで書いてるんだろうけど例えば Errorable<string> の
> if(s.AuthError) ...
って何を返すの?
自作のクラスで新しいエラー状態をチェックしたい時はどうするの?
いちいち Errorable を派生させたりしたらチェック方法が統一できないしどうするつもり?
- 269 :デフォルトの名無しさん:2016/11/20(日) 10:40:19.54 ID:Y223jndk.net
- >>266
お前さんがそれでいいならなんの問題もない
- 270 :デフォルトの名無しさん:2016/11/20(日) 10:48:41.71 ID:NgPgW0rj.net
- >>249
最近は若くても「老害」みたいな人が少なくないよね。
新しい事を覚える・勉強するのを嫌がる。
現状のやり方を変えるのを恐れる。
現状維持大好き。
良いか悪いは別問題だけど。
- 271 :デフォルトの名無しさん:2016/11/20(日) 10:58:38.68 ID:wbF3tHCA.net
- >>268
初めから例外を投げるではチェックのためにtryを書かなければならない
パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切
変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い
エラーというのは幾つかの典型的なエラーに分類可能
例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
新しいエラーを定義する必要はない
- 272 :デフォルトの名無しさん:2016/11/20(日) 11:34:52.66 ID:Y223jndk.net
- >>271
> パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切
まあ、これはいいとして
> 変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い
フィールドとかには使えないってことでいいかな?
> エラーというのは幾つかの典型的なエラーに分類可能
へー、すごいね w
> 例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
で、Errorable<string> の AuthError ってなにさ
> 新しいエラーを定義する必要はない
自称エスパーのお前はそうなんだろうね w
- 273 :デフォルトの名無しさん:2016/11/20(日) 11:43:29.92 ID:lYnhz1xv.net
- null非許容型が追加されたら便利だなーとは思う
「nullをなくせ」という意見にはまったく賛同できないが
エラー許容型は、エラーの種類を enum で返すプロパティを付けたものをよく作る
(エラー種類ごとにプロパティ作るようなことはしない)
でも、nullで済む場合も多いんだよね
- 274 :デフォルトの名無しさん:2016/11/20(日) 11:43:53.85 ID:kKwT4/wt.net
- >>272
はぁ
今は返り値の話をしているんだろ
そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか
すごいっていうか、常識
人間がどんだけエラー処理と付き合ってきたと思ってるんだ?
AuthErrorは認証、認可のエラー
2chの書き込みだから横着して省略したがこれらは普通は別にする
nullを見ただけでエラー内容がわかる歴史上類を見ないほどに強力なエスパーの君にはかなわないよ
プログラマにしておくのは勿体無いから新しい宗教でも立ち上げることをお勧めするよ
- 275 :デフォルトの名無しさん:2016/11/20(日) 11:47:36.19 ID:pCJ1qvOZ.net
- 変数にエラーコードを入れるっていう発想がもうw
- 276 :デフォルトの名無しさん:2016/11/20(日) 11:47:38.25 ID:GbOcvoRT.net
- >>266
その考えの場合はnullじゃなくて、""を返すのも良いかもね。
- 277 :デフォルトの名無しさん:2016/11/20(日) 11:56:23.29 ID:Y223jndk.net
- >>274
> そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか
え?
オレオレスタイルをどや顔で言われても困るんだが w
> これらは普通は別にする
結局 Errorable<string> と Errorable<database> は別に作るってことかよ...
チェック方法が統一出来るとかほざいてたのにね w
- 278 :デフォルトの名無しさん:2016/11/20(日) 12:10:20.24 ID:kKwT4/wt.net
- >>277
はぁ
オレオレスタイルではなくオブジェクト指向の基本
別に作らないよ
君は超人的エスパーだから何をどう考えてそういう答えにたどり着いたのか常人にはちょっと理解しがたいんだ
これからはそのことを考慮して常人にもわかるように丁寧に意見して欲しい
- 279 :デフォルトの名無しさん:2016/11/20(日) 12:10:41.53 ID:zFrmc+0J.net
- >>266
オラクルですね
- 280 :デフォルトの名無しさん:2016/11/20(日) 12:23:00.48 ID:L/fyhMFX.net
- >>277
みっともないから、もう止めとけ。
- 281 :デフォルトの名無しさん:2016/11/20(日) 12:30:03.99 ID:Y223jndk.net
- >>278
オレオレスタイルは宗教だろうから教祖さんと争う気はないよ w
で、
> これらは普通は別にする
の意味を説明してみ
- 282 :デフォルトの名無しさん:2016/11/20(日) 12:30:42.62 ID:Y223jndk.net
- >>280
お前がな w
- 283 :デフォルトの名無しさん:2016/11/20(日) 12:37:01.76 ID:kKwT4/wt.net
- >>281
この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
君は何をどう考えてErrorable<string>とErrorable<database>は別に作るという考えに到達したの?
ジェネリック型の新しい使い方を編み出したの?
ハイレベルすぎてついていけないよ
一体何段階思考手続きをスキップできればこの境地にたどり着けるのか
- 284 :デフォルトの名無しさん:2016/11/20(日) 12:38:10.81 ID:aCqfb5MR.net
- 数字の0が無かった時代に0の発明を否定する人みたいだな。
- 285 :デフォルトの名無しさん:2016/11/20(日) 12:43:24.41 ID:h3zFIm5r.net
- 何度も言うけどnullを追放したって問題Aが別の問題Bに置き換わるだけ。
そして普通に考えれば問題Bの悪質性はAより大きくなる場合の方が多いだろう。
nullガーって吠えてる馬鹿って何でこの程度のことが分からんかね。
(a) 値がnullであることで問題が顕在化した
からといって
(b) nullの存在が問題の原因
であるとは限らない。
この程度のことも分からない奴はプログラマ辞めろよ本当
- 286 :デフォルトの名無しさん:2016/11/20(日) 12:45:41.10 ID:2ye3zmI2.net
- >>279
そう、
オレオレスタイルではなてく
オラクルスタイルだ。
- 287 :デフォルトの名無しさん:2016/11/20(日) 12:53:48.90 ID:Jza3G5L3.net
- 結局メソッドがエラーを返せるようにするにはどうするのが一番いいの?
- 288 :デフォルトの名無しさん:2016/11/20(日) 12:54:07.99 ID:Y223jndk.net
- >>283
> この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
そんな話は全くしてないが?
そんなのどうでもいいから
>> で、Errorable<string> の AuthError ってなにさ
の答えを書けよ w
- 289 :デフォルトの名無しさん:2016/11/20(日) 12:54:12.13 ID:L/fyhMFX.net
- まさに、井の中の蛙 (´・ω・`)
- 290 :デフォルトの名無しさん:2016/11/20(日) 12:57:21.73 ID:L/fyhMFX.net
- >>287
1つの手段は、エラー種類と「値」のタプルを返す。
これだと、エラー処理を強制は出来んけどね。
- 291 :デフォルトの名無しさん:2016/11/20(日) 12:57:41.85 ID:Y223jndk.net
- >>289
上から目線で意味のないこと言ってるけどどうしたの?
ここ仮にも技術系の板だから話に加われないなら黙っていてくれるとありがたいんだが
- 292 :デフォルトの名無しさん:2016/11/20(日) 17:21:32.25 ID:XK08TpAy.net
- エラーはほとんどの場合例外でいいよ
でも例外が使えない場面もあるんだよなぁ
- 293 :デフォルトの名無しさん:2016/11/20(日) 18:54:25.34 ID:34y1pXq0.net
- >>287
エラーと言ってもいろんなレイヤーでいろんな事があるわけで
結論としてはケースバイケースでどれが一番とか決めれない
これを理解できずに単一の方法ですべてやろうとするからおかしな話になるわけで
まあ、宗教論はその宗旨に納得できる点がある場合もあるけど、他の宗教を認めないのがなぁ
- 294 :デフォルトの名無しさん:2016/11/20(日) 19:03:56.76 ID:eCa9a5kv.net
- 例外を投げないパターンはここらへんを読むといいんじゃない?
一般的とは行かなくても、オレオレではない
http://faithandbrave.hateblo.jp/entry/2014/05/30/153325
http://ufcpp.net/blog/2016/11/nullproblem/
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4015.pdf
- 295 :デフォルトの名無しさん:2016/11/20(日) 19:18:59.75 ID:V9rEuhsa.net
- nullable-likeの提案は良いね
- 296 :デフォルトの名無しさん:2016/11/20(日) 19:26:56.04 ID:w/pS54nD.net
- nullを排除するために、何故ここまで複雑に作る必要があるのか理解出来ん
普通にnull使えよw
- 297 :デフォルトの名無しさん:2016/11/20(日) 19:31:08.12 ID:34y1pXq0.net
- 単にnullの取り扱いから、例外処理についてに話が拡大してるからな
- 298 :デフォルトの名無しさん:2016/11/20(日) 19:46:59.71 ID:ELwGw4ow.net
- null排除派はごく一部いるけど市民権を得てない
メリットが薄いから
3 == i と言う書き方みたいにこだわる人だけこだわる
- 299 :デフォルトの名無しさん:2016/11/20(日) 20:23:01.03 ID:JNgwCyth.net
- 今後iOS開発の主流になるだろうSwiftがnull非許容ベースだから
将来的には分からないかもよ
- 300 :デフォルトの名無しさん:2016/11/20(日) 20:32:56.89 ID:ixFUSBgZ.net
- 信者にそんな話しても無駄
- 301 :デフォルトの名無しさん:2016/11/20(日) 20:42:02.87 ID:RSV7nlYW.net
- null あってもいいって言ってるのはなきゃなでも構わない人が大半じゃないかと思う。
Swift が非許容でそれを使う必要があるなら、それの流儀でなんの苦もなく対応しそう。
そんなことに拘ってるのはオレオレな一部の人だけじゃねーのかなぁ。。
- 302 :デフォルトの名無しさん:2016/11/20(日) 21:02:17.68 ID:2AHf550w.net
- 異教徒にそんな話しても無駄
- 303 :デフォルトの名無しさん:2016/11/20(日) 22:12:22.04 ID:eCa9a5kv.net
- >>296
それを言い出すとなにも言語仕様がいじれなくなっちゃう
Javaとかは進化が停滞して今必死に挽回してるし
もちろん、実装や文法の複雑さと利点を天秤にかけるのは常にしてるので、Roslynのissueとかを見てみると良いよ。
もっと変なのもたくさんある
http://qiita.com/koher/items/e4835bd429b88809ab33
を見るとわかるが、実際に各言語がnull安全に取り組んでる
- 304 :デフォルトの名無しさん:2016/11/20(日) 23:25:18.49 ID:OrHcogku.net
- null安全ねえw
そういう発想をする人ってよくいう「例外を握りつぶす」コードを書いちゃうタイプなんだろうなとは思うわ。
言いたいことは理解できるが全く同意はできない。
それはただの錯誤だからな。
安全どころか、nullであれば容易に発見できたバグをわざわざ発見困難にするだけ。
何がうれしいんだそんなの。
- 305 :デフォルトの名無しさん:2016/11/21(月) 00:24:21.34 ID:hlf3slD2.net
- ScalaのOption使ってみた感想
・今までは無効な値(null)を返す可能性がある事は、ドキュメントを読まないと分からなかったけど定義だけで分かるから便利
・分解が色々な方法で出来て便利
まあなくても何とかなるけど、あれば便利程度
- 306 :デフォルトの名無しさん:2016/11/21(月) 01:11:30.92 ID:fZvEw43o.net
- F#にもoptionあるけど死ぬ程便利だわw
先ず、エラーを握り潰す事が出来ない。
ドキュメントを読む必要が無い。
monadとして扱うと、一々ifで分岐書く手間がなくなる。
eitherまで踏み込めば、検査例外云々で議論する事自体が馬鹿らしくなる。
面倒くさいけどねw
C#のint?を使った事ある人には解ると思う。
コンパイラに事前チェックをしてもらえる有り難みが。
機械に解る単純作業?に対して、人間が一々苦労する馬鹿らしさが。
- 307 :デフォルトの名無しさん:2016/11/21(月) 01:16:13.30 ID:fZvEw43o.net
- それから、初心者に対してこそ効果抜群だよ。
「そう書く」事しか出来ないから。
強制出来るから。
- 308 :デフォルトの名無しさん:2016/11/21(月) 01:34:00.10 ID:CO+aVjyU.net
- 検査例外も出たときは素晴らしい機能だって絶賛されてたような気がするなぁ
- 309 :デフォルトの名無しさん:2016/11/21(月) 02:03:53.66 ID:n+GSTHBL.net
- 検査例外は他に誰も採用しなかったけど
Optionalはこぞって採用されているという決定的な違いがある
- 310 :デフォルトの名無しさん:2016/11/21(月) 02:04:20.65 ID:n+GSTHBL.net
- あ、ごめん
C#perにそんなこと言っても分からないよね(苦笑)
- 311 :デフォルトの名無しさん:2016/11/21(月) 11:12:26.42 ID:Ka0MFQDU.net
- ん?Optional?VBの話?
- 312 :デフォルトの名無しさん:2016/11/21(月) 11:41:21.77 ID:hLpmxTjl.net
- グラディウスだろ
- 313 :デフォルトの名無しさん:2016/11/21(月) 17:31:28.36 ID:fZvEw43o.net
- >>310
このスレにもいるような「老害」は少数派だよ
と信じたい。
- 314 :デフォルトの名無しさん:2016/11/21(月) 20:45:41.48 ID:HLjti5+r.net
- 実際、エラーの扱いは時代によって色々変わってきてるからね
null安全の手法はこれからの主流になっていくのかもしれない
そんで、また数年後には新しいやり方に置き換えられるんだろう
- 315 :デフォルトの名無しさん:2016/11/21(月) 21:06:27.63 ID:4A1pLeCT.net
- エラーの扱いじゃなくてヒューマンエラーを未然に防ぐのが意図でしょnull安全ってのは。
その意図は認めるけど、null安全がその目的に対して合理的とは全く思わんがね
- 316 :デフォルトの名無しさん:2016/11/21(月) 21:15:05.95 ID:fZvEw43o.net
- option型とnull安全は重なってる部分もあるけど、意味としてズレてる部分もある。
例えば、C#の値型でもoption型は有意義な訳で。
- 317 :デフォルトの名無しさん:2016/11/21(月) 22:30:24.18 ID:wfKopLFy.net
- サードパーティーライブラリーを使えない前提でオブジェクトのマッピングを手軽に行うにはなにを使う?
パフォーマンスはあまり気にしていない
同名同型のプロパティをマッピングできれば十分
今のところシリアライザーで誤魔化してる感じ
- 318 :デフォルトの名無しさん:2016/11/22(火) 00:16:30.64 ID:QATijxTL.net
- null安全よりstring?.lengthの方が合理的に見えるわ
最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな
- 319 :デフォルトの名無しさん:2016/11/22(火) 06:51:43.66 ID:y8FHZWuV.net
- >>318
> 最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな
これには同意するけど
> null安全よりstring?.lengthの方が合理的に見えるわ
これはないわ
string が null になる可能性がないなら普通に string.length って書いた方がエラーが早期にわかるからデバッグも楽だし
- 320 :デフォルトの名無しさん:2016/11/22(火) 07:50:04.91 ID:vhsrXRxU.net
- ?.もnull安全の一環な気はする。
ちなみに、null非許容型導入の影響で、?.を使っていない箇所は全てwarning扱いになる話もあったりする。
- 321 :デフォルトの名無しさん:2016/11/22(火) 13:10:29.71 ID:bfu4FZ0h.net
- string?.length
これって式の左辺に何書くの?
int? hoge
とか?
で結局hoge==nullとか聞いちゃうの?
?.演算子は参照型と値型のペアでは使いにくいし分かりにくいと思う
- 322 :デフォルトの名無しさん:2016/11/22(火) 17:09:05.83 ID:EJKURZYz.net
- 君ら一体何を議論してるの?
分かりやすく解説してくれ
- 323 :デフォルトの名無しさん:2016/11/22(火) 17:11:14.76 ID:VnsYzvlz.net
- Optionalの是非というか使い所の話でないの?
- 324 :デフォルトの名無しさん:2016/11/22(火) 19:57:46.66 ID:vhsrXRxU.net
- >>321
例えば
int len = str?.Length ?? 0;
- 325 :デフォルトの名無しさん:2016/11/22(火) 20:13:33.64 ID:ga0p/qoV.net
- C++の参照は良いものだった
- 326 :デフォルトの名無しさん:2016/11/23(水) 10:56:47.19 ID:Sj0D9A4Y.net
- >>325
なんで過去形?
- 327 :デフォルトの名無しさん:2016/11/23(水) 11:55:24.93 ID:Sj0D9A4Y.net
- http://stackoverflow.com/questions/22595655/how-to-do-a-dictionary-reverse-lookup
このページで
dictionary.FirstOrDefault
とやっていますがディクショナリーにFirstOrDefaultを
やるとなぜこういう結果になるのですか?
- 328 :デフォルトの名無しさん:2016/11/23(水) 13:27:10.63 ID:GLuKyrfg.net
- >>327
何を「何故」と思ってるか分からん
- 329 :デフォルトの名無しさん:2016/11/23(水) 18:46:09.31 ID:QXjR6WNV.net
- >>327
Dictionaryは、IEnumerable<KeyValuePair>を実装しているから。
- 330 :デフォルトの名無しさん:2016/11/23(水) 19:25:46.80 ID:Sj0D9A4Y.net
- >>328
FirstOrDefault って最初の要素を取って来るんじゃないんですか?
何故全ての要素をループ出来るんですか?
- 331 :デフォルトの名無しさん:2016/11/23(水) 19:44:53.91 ID:GLuKyrfg.net
- >>330
『引数の条件に一致した』最初の要素ね。
内部的には列挙子で探してるよ。
- 332 :デフォルトの名無しさん:2016/11/23(水) 19:48:19.93 ID:4RFw+AHR.net
- 列挙子=enum ・・・
- 333 :デフォルトの名無しさん:2016/11/23(水) 19:49:49.71 ID:dUmyuUeh.net
- 列挙子はIEnumeratorですw
- 334 :デフォルトの名無しさん:2016/11/23(水) 20:19:45.57 ID:Sj0D9A4Y.net
- >>331
そういうことですか。
良く分かりました。
皆さん、ありがとうございました。
- 335 :デフォルトの名無しさん:2016/11/23(水) 20:45:31.10 ID:mr7aPRRr.net
- >>322
時代の流れについて行けないおじいちゃん達をいかに介護するかの議論だよww
- 336 :デフォルトの名無しさん:2016/11/24(木) 09:15:21.21 ID:DNYUjCey.net
- プロジェクトA C#DLLライブラリ
プロジェクトB C#ASP.NETアプリケーション(Web サイト)
プロジェクトC C#ASP.NETアプリケーション(Web API)
BとCはAに依存している
BとCは別のサーバーにデプロイする
2つのサーバーにインストールされているフレームワークが異なる(具体的には4と4.5.1)
サーバー管理者の都合によりフレームワークの更新はできない
Bをビルドする時はAのフレームワークバージョンを4にする
Cをビルドする時はAのフレームワークバージョンを4.5.1にする
このビルド時のフレームワーク切り替え作業が手間なのでなんとかして1オペレーションでビルドできるようにしたい
なんとかなりませんか?
- 337 :デフォルトの名無しさん:2016/11/24(木) 09:36:13.90 ID:iMAQMNBa.net
- そういうのは依存してるとは言わない
aだけビルドするsln、bcだけビルドするsln作っておいて
aだけビルドするabcのslnでbcはポストビルドイベントでコマンドラインビルド、
bcだけビルドするabcのslnでaはプリビルドイベントでコマンドラインビルドとか?
- 338 :デフォルトの名無しさん:2016/11/24(木) 14:18:54.69 ID:G2Ig6Dqz.net
- >>336
Webサイトって、Webアプリとは違ってランタイム側でビルドするんじゃなかったっけ?
- 339 :デフォルトの名無しさん:2016/11/24(木) 18:57:30.96 ID:/9TZdtP5.net
- >>336
プロジェクトCを4.0指定で実行させれば良いんじゃ
>>338
webサイトにもプリコンパイルってのがある
VSがサポートしてるのかどうかはしらんが
- 340 :デフォルトの名無しさん:2016/11/24(木) 22:53:33.34 ID:5QlniI4z.net
- 教えて下さい。
C# で Windows のサービスプログラムを書きました。
その中でプロセス間通信を使いたく、パイプ(NamedPipeServerStream/NamedPipeClientStream)の利用を考えました。
サービスプログラムはそのままだとデバッグが面倒なので、
そのサービスプログラムを参照したフォームプログラムを作ってバグ取りをしました。
フォームプログラムからは、ボタンを押すことでサービスの開始や停止の処理をそっくり呼ぶようにしています。
ここで、
・フォームプログラムでは、問題なくパイプの送受信が出来る
・サービスプログラムでは、パイプの送受信が出来ない
ただし、サービスを止めるときにパイプの待ち受けを終了させるために、同じプログラム内から送信するデータは送受信できている
⇒ 実際に待ち受けを抜けているので同プログラム内では出来ていると思われる
と言う状態になりました。
サービスプログラム内でプロセス間通信、この場合は名前付きパイプですが、の使用に制限などはあるのでしょうか。
他の要因を考えるべきか悩みました。情報があれば教えていただけると助かります。
- 341 :デフォルトの名無しさん:2016/11/25(金) 01:40:52.65 ID:gI/r9WkT.net
- >>340
セッション0のアクセス権限の問題。
namedpipeclientstream-can-not-access-to-namedpipeserverstream-under-session-0
http://stackoverflow.com/questions/13174660/
- 342 :デフォルトの名無しさん:2016/11/25(金) 10:25:47.20 ID:2+oHnkxr.net
- fw3.5からfw4.0以上のdllを参照する方法ないかなぁ?
- 343 :デフォルトの名無しさん:2016/11/25(金) 15:18:07.17 ID:6J0+Q2dT.net
- >>341
よくそんなのぱっと出てくるなあw
- 344 :340:2016/11/25(金) 23:09:50.97 ID:Oc8F6euI.net
- >>341
やっぱりそういうのがあったんですね。。
対策を考えます。
ありがとう。
- 345 :デフォルトの名無しさん:2016/11/26(土) 00:37:00.99 ID:pkHe6RQg.net
- 上のリンク先の回答みたいにPipeSecurityとか適切に設定してやればいいんじゃないの
- 346 :デフォルトの名無しさん:2016/11/26(土) 15:34:45.46 ID:w/Dhvdu8.net
- WindowsのAPIだからC#とは直接的には関係ないけど教えてほしい。
特定のウィンドウにキーボードイベントを送信しようと考えている。
keybd_eventを使用してキーボードイベントの送信する事は成功した。
ちなみに第二引数のスキャンコードは使用しない、みたいな事を書いてあるサイト(MSDN含む)が多かったが
スキャンコードを指定しないと対象アプリがキーボード処理を受け付けてくれなかったため指定してある。
対象アプリがバックグラウンド中であっても操作しようと考えてSendMessage(またはPostMessage)に変更しようとしたのだが
スキャンコードはどこにどのように設定すればいいのだろう?
第四引数のlParamであろうと言う事は想像がつくが、スキャンコードをそのまま設定しても駄目だった。
- 347 :デフォルトの名無しさん:2016/11/26(土) 16:13:12.18 ID:dXHq99jt.net
- >>346
WM_KEYDOWNならこれ、カーソルキーとかも24ビット立てる必要があったかな
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646280
SendMessage(hWnd, WM_KEYDOWN, uCode, MapVirtualKey(uCode, 0) << 16 | 1)
とかそんな感じだったはず、離すときはWM_KEYUPにして32ビットを立てる
C++でWM_KEYDOWNイベントのlParamを吐くウィンドウプロシージャでも作ると良い
- 348 :347:2016/11/26(土) 16:22:01.70 ID:dXHq99jt.net
- > 離すときはWM_KEYUPにして32ビットを立てる
うっかりミスった、30〜31ビットね
WM_KEYDOWN時のlParam | 0xC0000000する形
- 349 :347:2016/11/26(土) 16:37:54.65 ID:dXHq99jt.net
- あ、そもそもC#でもウィンドウプロシージャオーバーライド出来たっけ
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
if(0x0100 <= m.Msg && m.Msg <= 0x0102) Text = m.ToString();
}
とか適当なフォームでやれば実際のウィンドウメッセージが確認できるよ
- 350 :デフォルトの名無しさん:2016/11/26(土) 17:19:55.67 ID:w/Dhvdu8.net
- >>347-349
非常に参考になった。
これを元にキー送信処理を作り直すことにするよ。
- 351 :340:2016/11/26(土) 21:03:56.05 ID:ZtR+Z7Wd.net
- >>341,345
昨日はまだ調べていませんでした。
341 に書いていただいた URL の方法で普通に出来ました。
ありがとう。
- 352 :デフォルトの名無しさん:2016/11/27(日) 21:23:49.80 ID:I1ny1q/I.net
- 妙な質問だけど、今2ch以外でユーザー同士でC#関連の質問解答ができるコミュニティーって、
- MSDNフォーラム
- わんくまの掲示板
- DOBON.NETの掲示板
質問して答えが返ってきそうなのはこのぐらい?
あ、別にマルチで質問投げてやろうとかそういう意図ではないので念のため
- 353 :デフォルトの名無しさん:2016/11/28(月) 00:18:17.41 ID:n0A2uJuC.net
- ja.stackoverflowはもう泣く以外の道ないなw
- 354 :デフォルトの名無しさん:2016/11/28(月) 00:18:37.64 ID:VTugBhJZ.net
- >>352
StackOverflow一択だろ
- 355 :デフォルトの名無しさん:2016/11/28(月) 00:23:13.14 ID:fF5TvHl5.net
- google翻訳少し賢くなったんだから「このページを翻訳する」で結構使える
- 356 :デフォルトの名無しさん:2016/11/28(月) 01:04:22.51 ID:v97E8kC6.net
- >>352
最近はteratailもありかも
あとは、.NET共通のことならVB中学校も一応あり
- 357 :デフォルトの名無しさん:2016/11/28(月) 01:42:44.60 ID:9T0ZytTv.net
- >>353-354
stackoverflowって日本語版もあったのかw
ありがとう
>>356
teratailはまったく知らなかったありがとう。
- 358 :デフォルトの名無しさん:2016/11/28(月) 03:25:24.52 ID:PwcZf+No.net
- あとはQA@ITとか
- 359 :デフォルトの名無しさん:2016/11/28(月) 04:33:07.21 ID:VTugBhJZ.net
- >>357
日本語限定ってどこかに書いてあったっけ?
- 360 :デフォルトの名無しさん:2016/11/28(月) 19:31:45.97 ID:FcPInj/k.net
- >>359
>- MSDNフォーラム
>- わんくまの掲示板
>- DOBON.NETの掲示板
日本語って一目で分かるだろ
- 361 :デフォルトの名無しさん:2016/11/28(月) 19:35:28.66 ID:MT+LNPN6.net
- 落ち着けよハゲのブラザー
- 362 :デフォルトの名無しさん:2016/11/28(月) 21:09:47.26 ID:SXoUdBtU.net
- >>354は stackoverflow.com のつもりで書いたが>>357は ja.stackoverflow.com を見つけて、
日本語版の存在を知らなかった>>354は>>357を皮肉と受け取った。
- 363 :デフォルトの名無しさん:2016/11/28(月) 21:23:26.86 ID:C8x/B1Vp.net
- >>360
バカの連鎖反応
- 364 :デフォルトの名無しさん:2016/11/28(月) 21:35:12.23 ID:Efu8jG2p.net
- 人脈作れば全部解決だろ
Xamarinユーザー見習えよ
- 365 :デフォルトの名無しさん:2016/11/28(月) 22:05:43.16 ID:/OQd0iyQ.net
- 元の質問者の>>352だけど、質問の仕方がまずかったなら謝るけど
無意味に喧嘩腰でつっかかるのはどうかと思うよ
意図としては英語も排除しないけど日本語のを中心に教えて欲しかった。
英語は読むのは何とか読めても書く(質問する)のは結構つらいっすわ。
- 366 :デフォルトの名無しさん:2016/11/29(火) 15:41:26.31 ID:07zLg605.net
- >>364
あのオタサー集団と同列に見られるのは非常に辛い
- 367 :デフォルトの名無しさん:2016/11/30(水) 08:32:18.72 ID:rOv2n/Yl.net
- axwindowmediaplayerで次、前のボタンにイベントを割り当てるのはどうしたらいいですか。
this.axWindowsMediaPlayer1.Ctlcontrols.next += new AxWMPLib.なんちゃらなどで記述?
ボタン自体もグレーアウトしていて使えない状態です。
再生などのボタンは初めから再生が割り当てられていてなにも記述しないでもよかったのですが。
- 368 :デフォルトの名無しさん:2016/11/30(水) 11:01:13.74 ID:U6G+25fY.net
- AxWindowsMediaPlayerでそんな細かい制御はできない
currentPlaylistとかでIWMPMedia管理すればそれらも使えるようになるはず
組み込みのプレイリスト使いたくないならUIも自分で全部やる
- 369 :デフォルトの名無しさん:2016/11/30(水) 16:39:10.32 ID:y2jQ/DIV.net
- LINQのQuantifierの日本語訳なんだけど、MSDNだと量指定子、
岩永さんのところだと限定子となってるけど、どっちがより適切だと思う?
https://msdn.microsoft.com/ja-jp/library/bb546128(v=vs.120).aspx
http://ufcpp.net/study/csharp/sp3_stdqueryo.html#quantifier
- 370 :デフォルトの名無しさん:2016/11/30(水) 23:23:25.49 ID:rOv2n/Yl.net
- >>368
ありがとう。プレイリストがよさそうです。
- 371 :デフォルトの名無しさん:2016/12/01(木) 09:05:41.40 ID:ySUX8EsS.net
- >>369
語義的には量指定子じゃない
quantityが量だから
- 372 :デフォルトの名無しさん:2016/12/01(木) 18:33:51.23 ID:CcMyBcAe.net
- でも量指定子って正規表現的な言い回しだよな。
SQL的な言い回しだとALL,ANY,SOMEとかは限定子になるはず。
http://software.fujitsu.com/jp/manual/manualfiles/M100005/J2X17484/01Z200/J7484-00-02-11-06.html
- 373 :デフォルトの名無しさん:2016/12/01(木) 18:37:08.39 ID:CcMyBcAe.net
- ただまあ本家が量指定子ってるんだから、量指定子が正式用語ではあるだろうけど。
- 374 :デフォルトの名無しさん:2016/12/01(木) 18:39:48.63 ID:lOA8D/0g.net
- 英語のまま使ってもらいたい
- 375 :デフォルトの名無しさん:2016/12/01(木) 19:00:45.21 ID:74fND9I4.net
- そもそもそんなキーワードを使う場面が思い浮かばない…
- 376 :デフォルトの名無しさん:2016/12/02(金) 00:05:35.89 ID:ui5LUeC9.net
- AnyとAllとContainsをまとめて分類しただけの言葉のようだが、禿しくどうでも良い
- 377 :デフォルトの名無しさん:2016/12/02(金) 00:27:24.78 ID:57Q76p9I.net
- 一般的な呼び方じゃ量化子だよな。
- 378 :デフォルトの名無しさん:2016/12/02(金) 06:58:37.23 ID:jL2K9FKD.net
- LINQは日本語ではなに? LINQは英語のままで量化子だけ日本語てのは
運用の誤り。
無理やり日本語にするならクオンティフィアでいいと思うがゴミみたいな
概念をわざわざ日本語にするのはよくない。説明的に日本語で「量化を
意味する」のように使うのは問題ないが、「量化子」のように語彙にして
しまうのはよくない。英語のまま運用するのがよい。
- 379 :デフォルトの名無しさん:2016/12/02(金) 07:09:43.00 ID:jL2K9FKD.net
- 訂正
このサイトの説明では
Any,All,Conttainsを総合的に説明するのが目的だからLINQという具体的な
ものよりは上位概念だな。この場合は限定子で正しいと思う。
量指定、量化はちょっと違うな。
- 380 :デフォルトの名無しさん:2016/12/02(金) 07:21:27.21 ID:iUEu5k7c.net
- LINQは固有名詞だから訳しようがないけど量化子はすでに記号論理学でも使われてる一般名詞だろ
- 381 :336:2016/12/02(金) 07:48:29.69 ID:GGzlnXmJ.net
- めんどくさいから英語のままでいいってのはある
- 382 :デフォルトの名無しさん:2016/12/02(金) 10:36:52.50 ID:X9iN1GdM.net
- 明治の人に謝るべき暴言。
- 383 :デフォルトの名無しさん:2016/12/02(金) 14:59:21.44 ID:rEQGNTwO.net
- >>380
LINQはLanguage Integrated Queryを省略してるだけだから日本語化できるでしょ(してもらいたくないが)
OPEC〜石油輸出国機構みたいに訳してる例は多い
- 384 :デフォルトの名無しさん:2016/12/02(金) 17:36:35.56 ID:8D4FZt7r.net
- >>383
してみ
- 385 :デフォルトの名無しさん:2016/12/02(金) 17:40:15.92 ID:DaaN/lCj.net
- 383ではないが、『言語に統合された問い合わせ』
・・・ないわ
- 386 :デフォルトの名無しさん:2016/12/02(金) 18:09:20.76 ID:rEQGNTwO.net
- >>384
統合言語クエリって単語がすでにある。クエリも訳したら統合言語処理要求か?
- 387 :デフォルトの名無しさん:2016/12/02(金) 19:38:47.97 ID:4/nN0nxx.net
- 組込問合せ機能 辺りでいいんじゃね?
- 388 :デフォルトの名無しさん:2016/12/02(金) 20:25:58.53 ID:fkVt0GEN.net
- 統合失調言語
- 389 :デフォルトの名無しさん:2016/12/02(金) 20:31:59.72 ID:57Q76p9I.net
- 「LINQは LINQ Is Not Queryの略」とか言い出して、その後「LINQはLINQ。略語や頭字語じゃない」とか言い出す。
- 390 :デフォルトの名無しさん:2016/12/02(金) 20:59:04.23 ID:fqYy1w3v.net
- 一体誰のことを揶揄した気になっているのかね
- 391 :デフォルトの名無しさん:2016/12/02(金) 21:09:36.57 ID:ui5LUeC9.net
- 横だがストールマン以外の誰と言うんだよ
- 392 :デフォルトの名無しさん:2016/12/04(日) 09:09:46.43 ID:HFDVK7VF.net
- おまえら言語センスがないな。「問式」でOK。今後日本語でのLINQこれだ。
- 393 :デフォルトの名無しさん:2016/12/04(日) 09:20:34.29 ID:a6Aihxwg.net
- Bingに聞いたらLINQの日本語訳はLINQでいいってさ
マイクロソフトのお墨付きだからこれが正解な
- 394 :デフォルトの名無しさん:2016/12/04(日) 09:42:24.52 ID:zAL6lz1+.net
- Binqに聞いたらLINQの日本語での質問はLINEQでいいってさ
に見えた
- 395 :デフォルトの名無しさん:2016/12/04(日) 10:29:28.25 ID:U0Kel+uM.net
- こういう関数を作ったら
void func<T>(T obj, string name) {
obj[name] = ...
}
[name]の部分でエラーが出ます。
こういう関数は作れませんか?
- 396 :デフォルトの名無しさん:2016/12/04(日) 10:41:15.33 ID:0sR5hBHN.net
- すべてのクラスが this[string] を持つわけじゃないから…
自分がTに入れたいクラスをwhere T: で指定しては
- 397 :デフォルトの名無しさん:2016/12/04(日) 11:15:31.06 ID:U0Kel+uM.net
- >>396
ありがとうございました。
上手く行きました。
- 398 :デフォルトの名無しさん:2016/12/04(日) 12:05:02.46 ID:OeUSkEhR.net
- ジェネリックは使いにくいよな
C++みたいな仕様にしてくれりゃいいのに
- 399 :デフォルトの名無しさん:2016/12/04(日) 12:33:20.31 ID:sIaSQQRI.net
- >>398
あほす
- 400 :デフォルトの名無しさん:2016/12/04(日) 12:56:13.33 ID:3+5uaoN5.net
- C++のテンプレートの糞エラーは酷いよな
C#みたいにしてくれりゃあいいのにww
- 401 :デフォルトの名無しさん:2016/12/04(日) 13:58:45.59 ID:VS/jD7cp.net
- >>398
なんでわざとあんな文法になってると思うんだよ
JIT言語の特長を最大限に活かすためだぜ
コンパイラ言語みたいに使うコードを全てあらかじめ生成しておくわけではなく
Tでnewされた時に初めてコードを生成するからメモリ使用量も少ない
ただ利点はそのまま欠点にもなる
T型同士の演算コードを書くとたちまちエラーになるのでdynamic型にキャストするとかしないとな
- 402 :デフォルトの名無しさん:2016/12/04(日) 15:28:39.35 ID:UcElfbev.net
- dynamicにするとbox/unboxが発生するから式木で殴る解決策あったな
- 403 :デフォルトの名無しさん:2016/12/04(日) 19:05:36.47 ID:U4ZfHibQ.net
- ガッチガチにチューニングしようとすると式木やILを触る必要があってツライ
- 404 :デフォルトの名無しさん:2016/12/04(日) 19:37:47.45 ID:OeUSkEhR.net
- コンパイルするタイミングを実行時に移すだけだろ
プログラマがCodeDOMや式木でやってる退屈で定型的なプロセスを自動化するだけじゃん
マイクロソフトの怠慢だよこれは
- 405 :デフォルトの名無しさん:2016/12/05(月) 00:12:25.29 ID:wzEk6zml.net
- >>402
dynamicの偉大な点は勝手に内部で式木に変換してしかもそれをキャッシュしてくれるから
完全なリフレクションに比べて速度的にそんなに不利ではない
http://ufcpp.net/study/csharp/misc_dynamic.html
ここら辺が有名だよな
- 406 :デフォルトの名無しさん:2016/12/05(月) 01:54:32.46 ID:kX3Q4svv.net
- >>404
だいぶ違うぞ
プログラミング学び直したほうがいい
- 407 :デフォルトの名無しさん:2016/12/05(月) 02:10:45.39 ID:u0DsEOY/.net
- 使いにくいと言う奴の99%は理解してないだけだからな
1%くらいには李左車の言うように有意義な指摘もあろうが
それは404ではないだろう
- 408 :デフォルトの名無しさん:2016/12/05(月) 03:06:07.61 ID:TC/GOrDD.net
- 使いやすいという奴は仕事で使ってない
- 409 :デフォルトの名無しさん:2016/12/05(月) 07:38:13.09 ID:FYlXKnN9.net
- >>406
お前は黙ってJavaかVBでもやってろ
- 410 :デフォルトの名無しさん:2016/12/05(月) 16:46:58.81 ID:5hp1IXjD.net
- >李左車
誰だよ?
- 411 :デフォルトの名無しさん:2016/12/05(月) 17:16:33.12 ID:uj/2rcDx.net
- さーしゃちゃん知らないってモグリかよ
- 412 :デフォルトの名無しさん:2016/12/05(月) 17:35:03.83 ID:PG/Hzji5.net
- クポ?
- 413 :デフォルトの名無しさん:2016/12/08(木) 00:12:08.98 ID:/aGxLpEu.net
- AWS LambdaでC#が使えるようになったらしいな
Googleも.NETの開発に参加したことだし、本格的に波が来ている
- 414 :デフォルトの名無しさん:2016/12/08(木) 05:07:13.06 ID:Vn/geEUt.net
- ついにJava終わったか
- 415 :デフォルトの名無しさん:2016/12/08(木) 13:08:55.01 ID:0EWqwyqo.net
- C#というより.NETの質問なんですがいいでしょうか?
リストビューの各項目のクリックを拾いたいんですが方法ありますか?
例えば以下の様な構成になってる場合「山田」のクリックとか「21歳」のクリックとかを
拾いたい感じです。
---------------------
[項目1][項目2][項目3]
山田 20歳 東京
斎藤 22歳 埼玉
戸川 21歳 千葉
---------------------
やっぱりクリックイベントから現在選択されている項目を取得する
という方法が一番でしょうか?
- 416 :デフォルトの名無しさん:2016/12/08(木) 13:14:33.65 ID:h9KBoTPl.net
- >クリックイベントから現在選択されている項目を取得する
という方法で何か困っていることがあるならそれを書くのが早い
- 417 :デフォルトの名無しさん:2016/12/08(木) 13:15:32.08 ID:RR5e4yCq.net
- 行と列両方いるならListViewHitTestInfo
- 418 :デフォルトの名無しさん:2016/12/08(木) 13:33:02.23 ID:0EWqwyqo.net
- >>417
おぉ〜クリックイベントに以下でイケました!>>416さんもありがとうございました!
Point pt = new Point(e.X, e.Y);
ListViewHitTestInfo lvHti = lstv.HitTest(pt);
int row = lvHti.Item.Index;
int col = lvHti.Item.SubItems.IndexOf(lvHti.SubItem);
MessageBox.Show(row.ToString() + ", " + col.ToString());
- 419 :デフォルトの名無しさん:2016/12/08(木) 14:57:23.01 ID:vKAf8GkY.net
- カスタムコントロールについて教えてください。
FontとColorのセットとなるクラスの配列を特定のコントロールのプロパティ値として持ちたいのですが、デザイン時に値を入れると
「ResXファイル.RESXファイルで使用される型XXXXXX..を読み込めませんでした。必要な参照がプロジェクトに追加されていることを確認してください。」というエラーとなってコンパイルできなくなってしまいます。
どの様にすれば、正しく、デザイン時の値を保持&読込ができるのでしょうか?
【ソース】
public class TestCmb:ComboBox
{
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public List<FontAndColorSet> TestProperty { get; set; } = new List<FontAndColorSet>();
}
[Serializable]
public class FontAndColorSet
{
public Font Font { get; set; }
public Color Color { get; set; }
}
- 420 :デフォルトの名無しさん:2016/12/08(木) 18:44:29.79 ID:Ayid3Uvv.net
- >public Font Font { get; set; }
>public Color Color { get; set; }
C#では、クラス名を、2回も書けるのか?
- 421 :デフォルトの名無しさん:2016/12/08(木) 18:47:17.57 ID:6K2Be21z.net
- >>420
public 型名 プロパティ名 {get;set;}
public Object Object(){
return null;
}
って書けるのと同じ
- 422 :デフォルトの名無しさん:2016/12/08(木) 18:48:35.47 ID:6K2Be21z.net
- C#はフィールドとローカル変数はhogeFooで、プロパティ、メソッド、クラス、名前空間はHogeFooだから結構型名と被る事多いよ
- 423 :デフォルトの名無しさん:2016/12/09(金) 01:37:38.58 ID:nk5rcDEa.net
- >>419
とりあえずこんな感じ
public class TestCmb : ComboBox
{
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public FontAndColorSetCollection TestProperty { get; set; } = new FontAndColorSetCollection();
}
//[Serializable] これいらない
public class FontAndColorSet
{
public Font Font { get; set; }
public Color Color { get; set; }
}
public class FontAndColorSetCollection : Collection<FontAndColorSet>
{
public void AddRange(FontAndColorSet[] items)
{
foreach (var x in items)
this.Items.Add(x);
}
}
ここが参考になる
https://www.codeproject.com/articles/5372/how-to-edit-and-persist-collections-with-collectio
- 424 :419:2016/12/09(金) 09:31:24.99 ID:pxgVwarY.net
- >>423
おおおおおおおおおおお!!!!!!!
ありがとうございます♪さっそく試したところうまくいきました!!
これだけでかなりコード量が減るのでホントたすかりました;w;
ありがとうございますm(_ _)m
- 425 :デフォルトの名無しさん:2016/12/09(金) 11:25:46.06 ID:nQ2cVzw4.net
- 質問者じゃないけど、>>419のコードというか、List<T>じゃダメな理由は何なんだろう
AddRangeの引数の型がT[]じゃないから?
- 426 :デフォルトの名無しさん:2016/12/09(金) 12:43:50.54 ID:73dS9ox0.net
- C#でWindows.formアプリを勉強中なんですが
controlとの絡みばかりでクラスを作って色々やるといったことなく出来上がってしまいます
複雑化すればそうもならないのでしょうか。。
- 427 :デフォルトの名無しさん:2016/12/09(金) 13:56:37.83 ID:3kVVURfS.net
- >>426
単純なアプリだとそんなもんだよ
規模が大きくなってきても、ある程度まではその流儀でやれなくはないけど、そのうち
プログラムの見通しが悪くなって、メンテする際にイライラする事が多くなって、
やり方を変えたくなってくる
- 428 :デフォルトの名無しさん:2016/12/09(金) 18:10:47.21 ID:73dS9ox0.net
- >>427
ありがとうございます
頑張ってみます
- 429 :デフォルトの名無しさん:2016/12/09(金) 18:31:58.73 ID:IAKedM2U.net
- ドカタ開発だとそのままのノリで大きなシステム作っちゃうけどね
共有していいのはDBだけ、あとはコピペ上等で画面単位でぶった切れ、という開発スタイルなら設計スキルが無くても容易にスケールするよ
まあ一度書いたものは弄らないことが大前提のやり方なので、後で大きな仕様変更が入ったら炎上するんだけど
- 430 :デフォルトの名無しさん:2016/12/09(金) 20:14:42.74 ID:RJlryFXO.net
- >>429
特定企業への破壊工作を目的とする場合以外に絶対にやってはいけないアーキテクチャパターンランキング第1位のやつじゃん
- 431 :デフォルトの名無しさん:2016/12/09(金) 20:54:48.40 ID:0cPrt4mX.net
- >>430
とはいえ日本の高度経済成長を支えた伝統ある開発手法だからね
低スキルな要員で案件を確実に終わらせて逃げることに関しては現代においても最強よ
古典的なウォーターフォールが正しく機能してるなら客の後出し要件なんか無視できるんだし
- 432 :デフォルトの名無しさん:2016/12/09(金) 21:03:09.07 ID:SmYH2aqj.net
- その頃のシステムのリプレイスで付けを払わされて炎上してるところいっぱいありそう
- 433 :デフォルトの名無しさん:2016/12/09(金) 21:12:50.85 ID:0cPrt4mX.net
- >>432
しかしそのツケを払うのは当時のSIerではなく客だ
際限なく肥大化する保守費用、しかしリプレースしようにも見積は天文学的な金額になる
売る側にとっちゃメリットしかないんだよ
- 434 :デフォルトの名無しさん:2016/12/09(金) 21:22:01.74 ID:4/j9vJm7.net
- コメントしっかりしててすげー綺麗なコード書く奴いるけど
いつもスケジュール間に合わず動かず役に立たず。ぎりぎりになると周りがフォローよ
- 435 :デフォルトの名無しさん:2016/12/09(金) 21:38:16.31 ID:RJlryFXO.net
- >>431
借金は日本のお家芸だな
日本中でそれやってビジネス停滞してんだから国家的損失はデカイ
- 436 :デフォルトの名無しさん:2016/12/09(金) 21:41:54.69 ID:inzQIL9U.net
- >>433
そこで魔法の言葉「過去資産の流用」が出て来るのか
- 437 :デフォルトの名無しさん:2016/12/09(金) 21:50:33.79 ID:YFW7nsEC.net
- >>433
マジで経験したことないやろ
そんな案件の尻拭いってモチベーションだだ下がりやし
二度と経験したくない
- 438 :デフォルトの名無しさん:2016/12/09(金) 22:28:31.44 ID:RJlryFXO.net
- レガシーシステムのリファクタリングは楽しい
でもリファクタリングをしたら正しく動いてるものに触るなと怒られる
ジャアアアアップ
- 439 :デフォルトの名無しさん:2016/12/09(金) 22:32:26.54 ID:o6zCM5vx.net
- >>438
草
- 440 :デフォルトの名無しさん:2016/12/09(金) 23:11:31.83 ID:SjD2GByw.net
- 周りにC#プログラミングをやっている人がおらず、推奨/非推奨の判断ができないので相談させてください
次のような書き方はアリでしょうか
たとえばWindowsフォームアプリケーションのForm1クラスの
直下に
Regex.CacheSize = 100;
などとほかのクラスのプロパティ代入文を書くとエラーでコンパイルが通りませんが、これを
int dummy_int = Regex.CacheSize = 100;
というようにダミーの変数代入を噛ませれば、
コンパイルエラーを起こすことなく書くことができてしまいます
これは普通に使われるようなテクニックですか?
それとも仕様上はコンパイルできるがあまり好ましくない書き方ですか?
- 441 :デフォルトの名無しさん:2016/12/09(金) 23:20:41.59 ID:SmYH2aqj.net
- 使っちゃ駄目。
上の書き方でコンストラクタ内とかで設定。
- 442 :デフォルトの名無しさん:2016/12/09(金) 23:22:54.69 ID:AFnkuo0i.net
- 考えたこともなかったからちょっと感心したわ
視点の違いってすごいわ
- 443 :デフォルトの名無しさん:2016/12/09(金) 23:39:59.90 ID:pDhW8mKL.net
- コンストラクタが呼ばれた時に暗黙的に変数の初期化が走るとは言え上手くいくのだろうか。
普通はコンストラクタかForm1がロードされた時に代入かな。
- 444 :デフォルトの名無しさん:2016/12/09(金) 23:45:53.15 ID:SjD2GByw.net
- >>441
ありがとうございます、やっぱりダメですか
ちなみにどういった理由でダメなんでしょう
実際には色々なクラスの色々な所でRegexオブジェクトを定義しているので
なるべく早くキャッシュサイズを拡大したいんですが、
(あまりProgram.csは触りたくないけど)素直にMain()内に書くしかないんでしょうか
>>443
ステップ実行してみたら、Form1のコンストラクタ(InitializeComponent();)よりも前に実行されてました
- 445 :デフォルトの名無しさん:2016/12/09(金) 23:51:08.34 ID:vatll/rz.net
- >>440
こんな仕様初めて聞いたんだが、誰かkwsk
- 446 :デフォルトの名無しさん:2016/12/10(土) 00:10:15.56 ID:htA28gv+.net
- >>442 >>444
int a=b=100;
みたいな書き方ができること自体は以前どこかで読んだことがあったものの
なんとなく気持ち悪くてこれまで使ったことがなかったのですが、
最近改めて=演算子の戻り値と演算順序(先に実行される「b=100」の結果が100を返すので
それがaにも代入される)を勉強したところだったので、コンパイルできるかなと思ったらできてしまいました
- 447 :デフォルトの名無しさん:2016/12/10(土) 00:11:39.47 ID:htA28gv+.net
- >>446は442と>>445へのレスでした。
- 448 :デフォルトの名無しさん:2016/12/10(土) 00:14:55.08 ID:HOF4U6Im.net
- >>446
それは分かる
でも何故エラーが出なくなるのかって話
- 449 :デフォルトの名無しさん:2016/12/10(土) 00:24:59.06 ID:mt2BmPb5.net
- そもそも単なる文法上の制約だからだろ
そういう制約をわざわざ付けてるってことは、そういう事はやるべきじゃないって思想の表現だと思うが
- 450 :デフォルトの名無しさん:2016/12/10(土) 02:21:43.03 ID:XBbQ6S0E.net
- >>444
横だし俺はC#専門ではないけど、それってコンストラクタ内に書けばいいだけだよね。
果たして>>440で動くのかも疑問だけど、
仮に動いたとしても、ダミー変数がインスタンス内に残ってしまうのが無駄だよね。
そもそも a=b=c の書き方自体をしない。(ただしRubyの連中はするのかもしれない)
何故かは知らんが、おそらく見にくいという主張をする奴が多いからだろう。
どのみち普通はコーディングルールで禁止してあるし、
行数をケチる以外のメリットもないからいちいち文句を言う価値もないし。
- 451 :デフォルトの名無しさん:2016/12/10(土) 02:29:36.15 ID:THyFY8cN.net
- >>444
単純に分かり難いから。このスレの反応見ても、普通使わなそうなのが見て取れるでしょ。
Program.csが嫌でなるべく早くというなら、Form1のコンストラクタが良いんじゃないの。
Form1のコンストラクタよりも先である必要ってないでしょ。
- 452 :デフォルトの名無しさん:2016/12/10(土) 03:10:58.12 ID:jJfPnpDE.net
- static IDisposable SubscribeTracer<T>(this IObservable<T> source, string name) {
var disposer =
source.Subscribe(value => Console.WriteLine("{0} : OnNext({1})", name, value));
return disposer;
}
このプログラムは一体なんなのだ。全然わからない。そこで理解しようと思ってラムダ部分を
関数に置き換えてみると
void ramda(string value ){ Console.WriteLine("{0} : OnNext({1})", name, value); };
だあーー、nameを持ってこれない。持ってくるとすればグローバルにするしかない。
ラムダ関数は単なる匿名関数というだけでなくて、こういう便利な機能があるんだと初めて
分かった。つまり普通の関数にするとスコープを閉じるがラムダにするとスコープが開く。
オープンスコープ機能だ。ダダだい発見だ。と思ってほかにも気が付いた奴がいないかと
「ラムダ関数はスコープを開く」でググってみると、無い。俺の発見だ。w
- 453 :デフォルトの名無しさん:2016/12/10(土) 03:13:11.24 ID:jJfPnpDE.net
- MSの説明 ラムダ式(C#プログラミングガイド)
ラムダ式は、デリゲート型または式ツリー型を作成するために使用できる匿名関数です。 ラムダ式を使用すると、引数として渡したり関数呼び出しの結果値として返すことができるローカル関数を記述できます。 ラムダ式は、LINQ クエリ式を記述する場合に特に便利です。
以下省略(間違いがおおすぎ、、、、)
1行目から間違ってるよな。W デリゲート型をつくるのは delegate int del(int i); この部分で
あって
del myDelegate = x => x * x;
これではないな。
2行目も間違ってるよな。w ローカル関数ってのはC#7(VS2017)からなのでまだサポート
ないだろ。
- 454 :デフォルトの名無しさん:2016/12/10(土) 04:49:24.16 ID:jJfPnpDE.net
- delegate void del(string valule);
static string _name;
static IDisposable SubscribeTracer<T>(this IObservable<T> source, string name)
{
_name = name;
//var disposer = source.Subscribe(value => Console.WriteLine("{0} : OnNext({1})", name, value));
del aa;
aa= eventdo;
var disposer = source.Subscribe( aa(val ) );
}
static void eventdo(string value){
Console.WriteLine("{0} : OnNext({1})", _name, value);
}
452をDelegateで書き換えてみたがコンパイルエラーになる。なんでだ?
- 455 :デフォルトの名無しさん:2016/12/10(土) 08:12:40.98 ID:htA28gv+.net
- >>450-451
なるほど、見にくい・分かりづらいというのは同意見です
(自分もint a=b=0みたいな表現は今回の件まで一度も使おうとしなかったので)
ただ、Form1のコンストラクタに書いても
実行順序はForm1のメンバ変数定義より後回しになってしまうようなので…
Form1のメンバ変数としてRegexオブジェクトを大量に定義しているので
もっと早くキャッシュサイズを拡張しないと意味ないのかな?と
- 456 :デフォルトの名無しさん:2016/12/10(土) 09:33:27.42 ID:jJfPnpDE.net
- すまん。454は自己解決した。
そもそもIObservableをまったく理解してなかった。
- 457 :デフォルトの名無しさん:2016/12/10(土) 10:41:12.43 ID:scmr7sdZ.net
- >>455
メンバ変数の初期化もコンストラクタでやったらどうかな?
- 458 :デフォルトの名無しさん:2016/12/10(土) 12:31:00.36 ID:rHn5Q6ti.net
- >>455
変な小細工せずにForm1のコンストラクタを呼び出す前に書くのが筋だと思う。
っていうか、Regexあんまり使わないので自信ないけど、そもそもRegex.CacheSizeなんか設定しなくても
RegexのコンストラクタでRegexOptions.Compiledを指定すれば済むんじゃないの?
- 459 :デフォルトの名無しさん:2016/12/10(土) 12:43:23.50 ID:rHn5Q6ti.net
- http://smdn.jp/programming/netfx/regex/1_regex_cached_compiled/
↑によるとCacheSizeが影響するのはスタティックメソッドを使う場合だけ?
>>455はRegexのインスタンスを生成してるみたいだから、だったらそもそもCacheSizeの
設定は無意味ってことかな。
- 460 :デフォルトの名無しさん:2016/12/10(土) 12:53:41.37 ID:rHn5Q6ti.net
- 考えてみたら、どっからでもアクセスできちゃうstaticなプロパティの値が
個々のインスタンスの挙動に影響を与えるような筋悪な設計は
普通はありえないよな
- 461 :デフォルトの名無しさん:2016/12/10(土) 12:59:36.57 ID:9rLOEiC0.net
- >>459
>>455も設定先はstaticでしょ。そうしないとエラーになるはず
- 462 :デフォルトの名無しさん:2016/12/10(土) 14:07:24.95 ID:8ZN9Ra/9.net
- キャッシュが影響するのはRegex.IsMatchみたいな静的メソッド使うときだけ
new Regexする時はキャッシュ関係ないと思う
あと、フィールドの初期化はわかりにくいので軽くて副作用のないものだけにした方が良い
正規表現の作成が時間食うなら、コンストラクタで行った方があとあと変更するときによい
- 463 :デフォルトの名無しさん:2016/12/10(土) 14:32:08.61 ID:ZQIWZdV9.net
- >(あまりProgram.csは触りたくないけど)
ドンドン触れ!
変なこだわりは捨てるべき
- 464 :デフォルトの名無しさん:2016/12/10(土) 16:30:39.28 ID:SuPtWdia.net
- 分かっててあえてやってるなら大きなお世話かもしれんけど、
そもそも処理をFormに書いちゃうところから間違ってるな
- 465 :デフォルトの名無しさん:2016/12/10(土) 18:25:04.69 ID:9rLOEiC0.net
- >>464
世話焼くならForm1って名前からにしろ
- 466 :デフォルトの名無しさん:2016/12/10(土) 18:42:35.17 ID:L/PQ4lRu.net
- 自前で適当に作ってる自分用アプリならネーミングセンス(とデフォルト名変更)についてとやかく言う必要は無いがな。
- 467 :デフォルトの名無しさん:2016/12/10(土) 19:02:21.05 ID:YyXkI5ew.net
- Form1とかの名前、あれはもうつけかえるのはやめにしたんだ
- 468 :デフォルトの名無しさん:2016/12/10(土) 19:07:08.15 ID:BtzSATc1.net
- ListViewのItemを高速に消す方法はないでしょうか?
BeginUpdateをしていても遅くて。3万件のItemから29800件消すといった場合です。
- 469 :デフォルトの名無しさん:2016/12/10(土) 19:17:12.33 ID:htA28gv+.net
- >>459 >>462
インスタンスの場合はキャッシュ関係ないんですね…勘違いしてました
>>458後半
コンパイルすればキャッシュは無関係、というわけではなかったと思います
キャッシュが少ない状態で何種類ものパターンで静的メソッド(コンパイルオプションつき)を使うと
何度もコンパイルされる羽目になるはずです
>>463
キャッシュの拡大はRegexを使うクラス内に書いておきたいという気持ちがあるんですが
「なるべく早めに」ということならやはりMain()‎に書いた方がいいのかなあ…
- 470 :デフォルトの名無しさん:2016/12/10(土) 19:19:43.47 ID:0TBYagU6.net
- つうかいいか
そういうのはコードじゃなくて設定ファイルに書くもんだよ
- 471 :デフォルトの名無しさん:2016/12/10(土) 19:22:20.67 ID:wTYgtvkF.net
- >>468
コントロールを再作成して必要な分だけ追加したら?
- 472 :デフォルトの名無しさん:2016/12/10(土) 20:00:23.99 ID:g6CF/PBV.net
- >>468
その前に3万件追加した作業が無駄だよね
0件から200件追加することが出来ないのかプログラムを見直すべき
- 473 :デフォルトの名無しさん:2016/12/10(土) 20:24:13.29 ID:BtzSATc1.net
- >>471
ありかもしれません。
>>472
追加と削除のタイミングが違うので・・・
- 474 :デフォルトの名無しさん:2016/12/10(土) 20:32:26.08 ID:moWXVb0v.net
- 仮想化しててもそんなに遅くなるもんかね
- 475 :デフォルトの名無しさん:2016/12/10(土) 20:33:06.95 ID:g6CF/PBV.net
- >>473
3万件をスクロールして閲覧する用途が有るはずもなく、最初から考えが間違っているんだよ
とはいえ、割りとありがちなんだけどね
- 476 :デフォルトの名無しさん:2016/12/10(土) 20:46:01.62 ID:iMqvKcIt.net
- VirtualModeなら速いんでねの?
- 477 :デフォルトの名無しさん:2016/12/10(土) 20:48:19.32 ID:0TBYagU6.net
- お客様は何万件でも表示させるといったらPGが死んでも表示させる
もちろんパフォーマンスの低下は許さない
つまりこれは現実的な用件なんだよね
- 478 :デフォルトの名無しさん:2016/12/10(土) 21:14:17.86 ID:f57StUOL.net
- 御意!
- 479 :デフォルトの名無しさん:2016/12/10(土) 21:45:14.07 ID:BtzSATc1.net
- VirtualMode速すぎる
なんだこれ
これを待ってました。
- 480 :デフォルトの名無しさん:2016/12/10(土) 21:53:53.30 ID:mMrYCd0+.net
- Formsは長いことやってたんだけど.net coreでのWebシステムって容易く出来るんけ?
PHPでのMVCフレームワークとかrailsはわかる
- 481 :デフォルトの名無しさん:2016/12/10(土) 22:08:22.01 ID:0TBYagU6.net
- 基本がしっかりしてれば簡単だよ
そのためにUIフレームワークに依存しないように作れっていつも言われるだろ
- 482 :デフォルトの名無しさん:2016/12/10(土) 22:09:21.73 ID:mMrYCd0+.net
- >>481
さんくす
手を出してみるわ
何を選んでもMFCのドキュメントビューよりは良いだろうってのが心の拠り所です
- 483 :デフォルトの名無しさん:2016/12/10(土) 22:28:44.20 ID:moWXVb0v.net
- 仮想化せずにListViewで3万アイテム扱ってたのか・・・
- 484 :デフォルトの名無しさん:2016/12/10(土) 22:31:16.68 ID:BtzSATc1.net
- 仮想化するとInsertionMarkが使えないみたいです。
どうしましょうか?
- 485 :デフォルトの名無しさん:2016/12/10(土) 23:55:43.96 ID:VtzX6XaJ.net
- >>468
発想を変えて、ListViewを作り直したら?
- 486 :デフォルトの名無しさん:2016/12/11(日) 07:29:54.22 ID:9qlRR3sU.net
- >>484
WM_SETREDRAWで描画停止してやれば、Virtualでなくても3万件ぐらいいけると思う。
やり方は、検索すれば出てくる。
- 487 :デフォルトの名無しさん:2016/12/11(日) 08:09:32.73 ID:tSe+v4ik.net
- 3万件用と200件用は別のListViewを用意して、Visibleで切り替えるとか
- 488 :デフォルトの名無しさん:2016/12/11(日) 10:51:04.21 ID:rgeKQ1h1.net
- 質問させてください。
Microsoft Press の「プログラミング.NET Framework 第2版」という本に、下記の記述があるのですが、
【【【【【引用ここから】】】】】
internal sealed class Transaction {
private DateTime timeOfLastTransaction; // 最後にトランザクションが行われた時間を記録するフィールド
public void PerformTransaction() {
Monitor.Enter(this); // thisオブジェクトのロックを取得
// トランザクションを実施...
timeOfLastTransaction = DateTime.Now; // 直前のトランザクションの時間を記録
Monitor.Exit(this); // thisオフジエクトのロックを開放
}
public DateTime LastTransaction { // 最後にトランザクションが行われた時間を返す読み取り専用プロパティ
get {
Monitor.Enter(this); // thisオブジ工クトのロックを取得
DateTime dt = timeOfLastTransaction; // 最近のトランザクションの時間を一時変数に保存
Monitor.Exit(this); // thisオブジェク卜のロックを開放
return dt; // 保存された日時を返す
}
}
}
【【【【【中略】】】】】
プロパティの実装でEnterとExitと一時変数dtが必要なことに注意してください。
破壊されている可能性のある値を返さないようにするために、これが重要です。
あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティにアクセスすると、これが起こりえます。
【【【【【引用ここまで】】】】】
Monitorでロックをしてるのに、なぜ「あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティに
アクセスする」ことがありえるのでしょうか?
- 489 :デフォルトの名無しさん:2016/12/11(日) 11:00:53.02 ID:E1v0n/uN.net
- >>488
プロパティの実装でEnterとExitと一時変数dtが必要なことに注意してください。
破壊されている可能性のある値を返さないようにするために、これ(enter/exit/dtの存在)が重要です。
(enter/exit/dtが存在しないなら、)あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティにアクセスすると、これ(破壊されている値を返すこと)が起こりえます。
つまり(きちんと)ロックしてるならアクセスすることはない
- 490 :デフォルトの名無しさん:2016/12/11(日) 11:14:59.06 ID:rgeKQ1h1.net
- すみません。質問の書き方がマズかったですね。
それと、もう一度自分でよく考えて、自己解決しました。
疑問に思ったのは、
・複数スレッドが同時にアクセスしないようにするために、EnterとExitが必要なことは
わかるが一時変数dtはなぜ必要なのか?
・Enter〜Exitでロックしてても、PerformTransactionの呼び出し中に別スレッドが
アクセスすることがありえるのか?
・その問題を回避するために、いったん一時変数dtに退避する必要があるという意味か?
ということでした。
しかし、よく考えれば、疑問が解消しました。
・dtが無いとreturnで値を直接返すことになる
・そのためにはreturnをEnterとExitで囲む必要がある(がそんなことはできない)
・だから、dtに入れてる
ってだけのことですね。お騒がせしました。
回答いただいた方、ありがとうございました。
- 491 :デフォルトの名無しさん:2016/12/11(日) 14:59:01.41 ID:o/YiWCEr.net
- >>486
WM〜でなんかやるならInsertionMark云々だって自己解決できるような気が
- 492 :デフォルトの名無しさん:2016/12/11(日) 22:39:52.04 ID:9qlRR3sU.net
- >>491
描画止めるくらいであればウインドウメッセージとかよくわからなくてもググって数行コピペするだけで出来るし、既に非Virtualで作ったものをVirtualに変更するより手っ取り早いかなと思って。
- 493 :デフォルトの名無しさん:2016/12/11(日) 23:37:43.42 ID:rW4zRmsa.net
- InsertionMarkってNearestIndexが使えないだけみたいで
そこだけ計算で出してやれば使えました。
お陰で高速な動作ができるようになりました。ありがとうございました。
- 494 :デフォルトの名無しさん:2016/12/14(水) 22:10:21.05 ID:zGQk9RuM.net
- 正規表現Regexのインスタンスを作る際の文字列指定をするときに、
@を先頭につけているのを見るのですが、
これはどういったことでしょうか
必要なのでしょうか
- 495 :デフォルトの名無しさん:2016/12/14(水) 22:16:24.21 ID:LQhYfqJw.net
- >>494
\を大量に書かなくていいようにするため
- 496 :デフォルトの名無しさん:2016/12/14(水) 23:05:36.02 ID:PdV20HuV.net
- Rubyには、こういう関数があるけど、C#には無いの?
rp = Regexp.escape("$bc^")
\$bc\^
Regexp.escape(string) -> String
string の中で正規表現において、特別な意味を持つ文字の直前に、
エスケープ文字(バックスラッシュ)を挿入した文字列を返します
- 497 :デフォルトの名無しさん:2016/12/14(水) 23:08:32.15 ID:+dTErpY/.net
- そのまんまのがあるが
Regex.Escape(string)
- 498 :デフォルトの名無しさん:2016/12/14(水) 23:16:39.96 ID:zGQk9RuM.net
- >>495
494です
ありがとうございます
- 499 :デフォルトの名無しさん:2016/12/15(木) 08:46:01.32 ID:3NUBKOAZ.net
- 完全に市場はJavaの圧勝が決まったようだ。
- 500 :デフォルトの名無しさん:2016/12/15(木) 12:09:47.56 ID:VtGam84M.net
- >>499
へーすごいね
- 501 :デフォルトの名無しさん:2016/12/15(木) 12:57:24.49 ID:4tPXC7sh.net
- 金箔貼っても糞は糞。を思い出した。
- 502 :デフォルトの名無しさん:2016/12/15(木) 13:45:31.77 ID:7KRIzock.net
- https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
- 503 :デフォルトの名無しさん:2016/12/15(木) 13:55:12.96 ID:8Dy0z+2t.net
- chrome.webRequest.onBeforeRequest.addListenerでこれブロックしてる
"*://b.st-hatena.com/*",
"*://b.hatena.ne.jp/entrylist/*",
"*://b.hatena.ne.jp/entry/image/http*",
"*://b.hatena.ne.jp/entry/json*",
"*://b.hatena.ne.jp/bc/or/http*",
"*://api.b.st-hatena.com/entry.count*",
"*://cdn-ak.b.st-hatena.com/*",
- 504 :デフォルトの名無しさん:2016/12/15(木) 19:32:58.03 ID:aesj07do.net
- c#で書かれた解析機を吐き出すyaccみたいなツールってないの?
- 505 :デフォルトの名無しさん:2016/12/15(木) 20:28:20.48 ID:u3iwxuUX.net
- 自分に合ったのを探せ
https://en.wikipedia.org/wiki/Comparison_of_parser_generators
- 506 :デフォルトの名無しさん:2016/12/19(月) 00:22:28.34 ID:hPPOameE.net
- テキストボックスでValidatingを実装し、e.cancel=trueにした場合について2つ質問があります。
1.フォームの×ボタンを押してValidatingが発生しe.cancel=trueになっても、form.closingを実装するとフォームを閉じれるとネットブログであったのですが、
これはどういった仕組みでしょうか?
cancelになっても別のコントロールについては実装すれば、その処理が走るのでしょうか。
また、msdnでのそこに関する説明はどこにありますでしょうか?
2.そもそも,フォームの×ボタンでValidatingを走らせないようにするにはどうしたらいいでしょうか?
- 507 :デフォルトの名無しさん:2016/12/19(月) 14:59:52.95 ID:/uogIQCg.net
- 2つと言いつつ1に3つぐらい質問があるように見える
> form.closingを実装するとフォームを閉じれる
実装するとじゃない。
Closingイベントのイベントハンドラでe.Cancelをfalseに設定したら閉じられる。
> これはどういった仕組みでしょうか?
Validatingで設定したe.CancelがClosingで設定されるe.Cancelで上書きされるだけ。
> cancelになっても別のコントロールについては実装すれば、その処理が走るのでしょうか。
ちょっと何言ってるか分からない。
> msdnでのそこに関する説明はどこにありますでしょうか?
ValidatingとClosing(FormClosing)のページにないんなら、ないんじゃない?
> フォームの×ボタンでValidatingを走らせないようにするにはどうしたらいいでしょうか?
WM_CLOSEをハンドルする方法とか提案されてる
http://d.hatena.ne.jp/dotnetmemo/20060702/1151839515
- 508 :デフォルトの名無しさん:2016/12/19(月) 21:55:11.26 ID:m20BeiOW.net
- 前から疑問だったんだがValidatingでフォーカス移動封じるタイプのUIって誰が得するんだ?
- 509 :デフォルトの名無しさん:2016/12/19(月) 23:07:10.38 ID:nxaByp7v.net
- 開発者の保身に役立つ
ユーザビリティ何それ
- 510 :デフォルトの名無しさん:2016/12/21(水) 22:02:28.59 ID:OBoWPQLO.net
- VisualStudioでスキャフォールディングっていうの?
あのC#コード生成ってどうやってんの?
右クリックメニューのコマンドで画面開いてパラメータ入力したらコードがいくつかババっと出力されてプロジェクトにインクルードされて時にはconfigまで書き換わるあの便利なやつ
- 511 :デフォルトの名無しさん:2016/12/21(水) 22:13:35.55 ID:I2xL3xVw.net
- 子供発見
- 512 :デフォルトの名無しさん:2016/12/21(水) 23:15:00.27 ID:EydnUon0.net
- >>510
テンプレートで生成してるだけだよ
自分で同じようなことやりたければT4でも調べてみたら
- 513 :デフォルトの名無しさん:2016/12/22(木) 00:41:34.58 ID:0KrqUh09.net
- >507
506です。遅くなりましたがお答えありがとうございます。
補足で質問です。
> cancelになっても別のコントロールについては>実装すれば、その処理が走るのでしょうか。
ここに関しては、validatingでe.cancel=trueにしたら、そもそもclosingが走らないかと思っていたのですが、そういうことではないのでしょうか。validatedまでキャンセルになるということでしょうか。
- 514 :デフォルトの名無しさん:2016/12/22(木) 00:52:26.00 ID:3F8kH50r.net
- closingにデバッグポイント置いてそこで停まったら実行されるってことだろ
そんくらいもできないのかよ
- 515 :デフォルトの名無しさん:2016/12/22(木) 10:02:04.72 ID:i/pZa1E8.net
- https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
- 516 :デフォルトの名無しさん:2016/12/22(木) 10:12:48.15 ID:hYDEOt1H.net
- mbgdnfmdelffjdhkdggilmphfdihnmcj をNGワード設定だな。この開発者そこらに張りまくってやがる
- 517 :デフォルトの名無しさん:2016/12/23(金) 13:13:48.39 ID:/B2iyB1G.net
- そうなの?登録しとこっと…ハッ
- 518 :デフォルトの名無しさん:2016/12/24(土) 06:16:26.82 ID:WEJSRv5C.net
- PythonのコードをC#で書き直してるんだけどさあ
C#で関数の引数に関数を指定することって出来ないのかな?
具体的にしたいことは関数の傾きを求めることで、たとえば適当な関数
float A(float x){return x^2;}
があったときに、傾きを求める関数
float B(関数, float x){return xでの傾き;}
みたいなものを作成して
d = B(A(), 0.1f);
のような呼び出し方をしたいんだけど・・・・なにかそれに近いC#のコードの記述方法ってないかな?
- 519 :デフォルトの名無しさん:2016/12/24(土) 06:53:00.31 ID:kPI05Gb3.net
- delegate じゃ駄目なの?
- 520 :デフォルトの名無しさん:2016/12/24(土) 06:56:25.78 ID:iV5eYun0.net
- float B(Func<float, float>, float) ということなのかな
- 521 :デフォルトの名無しさん:2016/12/24(土) 07:23:08.42 ID:WEJSRv5C.net
- >>519-520
デリゲートを使うのが一番近い記述ができるのかな?
そうするとミスって複数メソッドを登録したときの処理も記述しとかなきゃなんないかな・・・・
- 522 :デフォルトの名無しさん:2016/12/24(土) 07:41:28.77 ID:qXNVWWNf.net
- >>518
関数を引数にしたいなら520でいいけど
そもそもC#で任意の関数を引数にして傾きを求めるのは無理だと思うよ
引数の関数が微分可能かどうか(下手すると連続かどうか)も保証されてないのに
- 523 :デフォルトの名無しさん:2016/12/24(土) 09:21:29.09 ID:3LTJc3r/.net
- 微分可能であることの保証ができないなんてどの言語でも一緒だろ
イベントハンドラ以外のデリゲートでマルチキャストを使う馬鹿もいない(いたら今すぐやめろ)から無視していい
あとそういう計算にfloat使うと激しく誤差が出るからfloatじゃなくてdouble使え
Pythonの浮動小数点数もdouble精度だ
- 524 :デフォルトの名無しさん:2016/12/24(土) 10:31:06.47 ID:dPbQS77J.net
- >>522
微分可能とか最近覚えた用語を使いたくてしょうがないんだな w
- 525 :デフォルトの名無しさん:2016/12/24(土) 10:37:23.24 ID:qXNVWWNf.net
- あらかじめコーディングされた関数たちしか使わないなら、導関数も事前に用意しておけばいいよね
>>523
mathematica等の数式処理言語ならできるよ
- 526 :デフォルトの名無しさん:2016/12/24(土) 12:25:20.15 ID:1tLIoM8k.net
- 関数の数値微分は機械学習とかシミュレーションとかで普通に使うぞ
- 527 :デフォルトの名無しさん:2016/12/24(土) 15:05:19.64 ID:uriaUnJG.net
- 数学とC#の関数の定義の区別ができないお子ちゃまですか。
- 528 :デフォルトの名無しさん:2016/12/24(土) 15:50:11.41 ID:IXC75mXH.net
- おまえはC#の関数で、俺は数学の関数だ!
そこになんの違いもありゃしねぇだろうが!
- 529 :デフォルトの名無しさん:2016/12/24(土) 15:52:59.52 ID:51ELz7Bu.net
- 空のWebアプリプロジェクトからASP.NET MVCをインストールして適当にビューを作ったんだけど
マークアップエディタのインテリセンスにViewBagがないって怒られます
コードエディタでは普通にViewBagにアクセスできます
これはいったいどういうことなんでしょうか
- 530 :デフォルトの名無しさん:2016/12/24(土) 16:49:07.86 ID:uriaUnJG.net
- 式をこねくり回したいんだろう。
自分ですうしきクラスを作れよ。
- 531 :デフォルトの名無しさん:2016/12/24(土) 17:01:13.35 ID:WEJSRv5C.net
- >>522
たしかに解析的に正しい微分できないけど、僅かにXをずらしてそれっぽい数値を出したいんです
- 532 :デフォルトの名無しさん:2016/12/24(土) 17:07:45.02 ID:3KzFEnUI.net
- 微分可能かとどう実装するかは別の問題だからどうでもいいなw
ちょっと大げさめだが、俺ならinterface使う
- 533 :デフォルトの名無しさん:2016/12/24(土) 18:08:40.53 ID:2kirY5E3.net
- >>531
何が言いたいのかよく分からんけど普通にこういうのじゃいかんの?
static double GetSlope(Func<double, double> func, double x, double delta = 1e-6)
{
var left = func(x - delta/2);
var right = func(x + delta/2);
return (right - left) / delta;
}
- 534 :デフォルトの名無しさん:2016/12/24(土) 19:30:16.14 ID:dPbQS77J.net
- >>533
いや実装方法はわかってるでしょ
python からの移植なんだし
>>531 は >>522 が微分可能とか言い出してるからそれへの説明だと思うぞ
- 535 :デフォルトの名無しさん:2016/12/24(土) 22:57:47.19 ID:ZPnvY2Gu.net
- >>524
えっ?
- 536 :デフォルトの名無しさん:2016/12/25(日) 01:15:18.80 ID:2bXL0gSr.net
- 音声付の外国語の単語学習アプリを
作ろうとしてます。
数千の単語の音声を、少数のファイルで扱うには
どのような方法使えばいいんでしょうか?
- 537 :デフォルトの名無しさん:2016/12/25(日) 02:05:37.96 ID:1Va0hmvu.net
- 全部つなげて1つのファイルにしておいて、
欲しい時にはその単語データのオフセットと長さを指定して取り出して再生、かな
- 538 :デフォルトの名無しさん:2016/12/25(日) 02:11:45.12 ID:xhZEf65t.net
- 圧縮された音声データでそんな高精度のシークが可能なのかなw
っていうか、今時のWindowsってたいがいの言語の音声合成エンジンがタダで提供されてなかったっけ?
- 539 :デフォルトの名無しさん:2016/12/25(日) 02:18:12.49 ID:tQvSe6Qr.net
- >>538
バイト配列にしてつなげてサイズと順番のインデックス作ればいいだけ
- 540 :デフォルトの名無しさん:2016/12/25(日) 02:45:35.51 ID:bvgmOMUN.net
- 話が噛み合ってないな
>>537や>>539はバラバラの既存の単語音声データを単一ファイルにまとめる話
>>538はボインや子音とかから合成するTTSライブラリ使えって話
>>536の目的は学習アプリ
前者なのか後者なのかはっきりさせないと答えようがないが
TTSから垂れ流す音声が正しいとは限らないので
単語レベルなら既存の音声辞書から引っ張って来た方がいい気はする
- 541 :デフォルトの名無しさん:2016/12/25(日) 07:18:53.50 ID:MTT7ZR6N.net
- ボインは赤ちゃんのためやでー
- 542 :デフォルトの名無しさん:2016/12/25(日) 08:51:11.94 ID:NMeoNRf0.net
- 音声を64kぐらいでMP3化してSQLiteに登録するのが最善じゃね?
- 543 :デフォルトの名無しさん:2016/12/25(日) 09:09:11.14 ID:r6LchLOJ.net
- 今時はクラウドだろ
バラバラのままでS3にでも突っ込んどけ
- 544 :デフォルトの名無しさん:2016/12/25(日) 10:03:57.23 ID:bejmTeDn.net
- 再生の度にHDDから読み込むともたつくときがあるんだよね
だからといってゲームみたいにシーンに必要なデータを予め読める量でもないし
難しかったな
- 545 :デフォルトの名無しさん:2016/12/27(火) 19:34:32.54 ID:r2C7TXrR.net
- ASP.NET WebフォームとMVC勉強するならMVC一択ですか?
- 546 :デフォルトの名無しさん:2016/12/27(火) 19:44:21.85 ID:RazBYv5e.net
- >>545
もちろん
CoreもFullも使えるし
- 547 :デフォルトの名無しさん:2016/12/27(火) 21:03:13.98 ID:kWoV7/2e.net
- >>546
ありがとうございます
やはりそうなんですね
- 548 :デフォルトの名無しさん:2016/12/27(火) 22:49:58.42 ID:DbM4OtJE.net
- ASP.NETの基本的なことを学ぶなら空のWebFormsから始めた方がいい
MVCから入るとプロジェクトテンプレートの時点で訳が分からなくなって意欲を損なう
- 549 :デフォルトの名無しさん:2016/12/28(水) 00:24:46.29 ID:6PQ8eENJ.net
- >>548
いやいや今どきWeb Formsとかないわ
仕事で仕方なくっていう理由ならわかるけど
- 550 :デフォルトの名無しさん:2016/12/28(水) 02:37:03.12 ID:tHS+BZPK.net
- windows formでtwitterクライアントを作ろうとしているのですがタイムラインをどう表示するかで詰まっています
具体的に言うとブラウザや携帯のtwitterアプリで見るような形でタイムラインを表示したいのですがどのようなコントロールを使えばいいのか分かりません
どなたか教えていただけないでしょうか
- 551 :デフォルトの名無しさん:2016/12/28(水) 06:10:33.37 ID:U/Wkcgn0.net
- WebBrowser
- 552 :デフォルトの名無しさん:2016/12/28(水) 06:28:56.80 ID:hLvgF446.net
- >>550
まずはタイムラインの仕様を詳しく書いて
- 553 :デフォルトの名無しさん:2016/12/28(水) 07:40:36.68 ID:EECpjgXG.net
- 俺もWebBrowserコントロールがいいと思うな。
- 554 :デフォルトの名無しさん:2016/12/28(水) 07:55:45.93 ID:nclhbqFU.net
- Twitterはツイートの表示の仕方がディスプレイガイドラインによってガチガチに決められてる
独自に作ったところで結局同じものを再発明することになるだけで時間の無駄でしかない
結論として、WebBrowserでいい
- 555 :デフォルトの名無しさん:2016/12/28(水) 11:01:45.01 ID:Xid52+QB.net
- electron使え
- 556 :デフォルトの名無しさん:2016/12/28(水) 11:06:16.13 ID:WHhbvFAo.net
- UWFは知らんけどWin8のストアアプリにはそんなサンプルが結構あったね。
あの手のUIとXAMLは相性がいいとか何とか。
そういうのパクってWPFで....と思ったけどWindos Formで作るのか
- 557 :デフォルトの名無しさん:2016/12/28(水) 11:11:05.17 ID:Xid52+QB.net
- Krileとかいう うぃんどうずさいきょうくらいあんと はWPFだぞ
- 558 :デフォルトの名無しさん:2016/12/28(水) 11:33:29.67 ID:tDjKTni2.net
- まったく同じもん作りたいならWebBrowserコントロールだけど
そうじゃなきゃリストビューのオーナードローかな
なんか意図があるから作りたいわけだろうからそれに合わせて作れとしかw
- 559 :デフォルトの名無しさん:2016/12/28(水) 16:33:19.65 ID:XPsq6pGc.net
- PictureBoxだろ。
- 560 :デフォルトの名無しさん:2016/12/28(水) 17:04:41.95 ID:hmpOAOdC.net
- ツイッターほとんど使わんので勘違いしてるかもしれんけど、
Windows Formなら複合コントロール(UserControl)使うのが一番現実的なような気はする
- 561 :デフォルトの名無しさん:2016/12/28(水) 20:06:12.28 ID:tHS+BZPK.net
- >>552
基本的にはブラウザで見るものと同じです
が、リプライ、RTなどのアイコンがなくなっておりさらに時間の表示位置と形式が違います
また、どのクライアントでツイートしたかの情報も表示します
クライアントの情報はツイート文の下に表示し、時間は絶対時間表記でクライアント情報の右に表示します
- 562 :デフォルトの名無しさん:2016/12/28(水) 20:09:09.19 ID:ace8uG6s.net
- >>561
Twitterの規約に違反してる
- 563 :デフォルトの名無しさん:2016/12/28(水) 20:15:46.64 ID:tHS+BZPK.net
- >>562
違反している部分は例えば時間表記はデフォルトでの設定は相対時間表記にしておき設定を変更することによって絶対時間表記にすることができるといった方法で回避しようと考えています
- 564 :デフォルトの名無しさん:2016/12/28(水) 20:34:23.74 ID:EECpjgXG.net
- なんでWebBrowserコントロールは嫌なの?
手軽に見た目もきれいに作れるし仕様変更もし易いのに。
PictureBoxにゴリゴリ描くのも楽しいだろうけど仕様変更が辛いよ。
- 565 :デフォルトの名無しさん:2016/12/28(水) 20:42:16.89 ID:tHS+BZPK.net
- >>564
個人的な考えなのですがWebBrowserコントロールを使うのであれば普通のブラウザソフトを使ってTwitterをすればいいと考えているからです
- 566 :デフォルトの名無しさん:2016/12/28(水) 21:54:16.84 ID:Bwga9xUV.net
- >>556
確かにWPFはこういうの得意だね。
>>563
誤魔化してるだけで、回避は出来てないような。
- 567 :デフォルトの名無しさん:2016/12/28(水) 22:32:59.93 ID:tHS+BZPK.net
- >>566
WPFの方が作りやすいでしょうか?
規約については他のクライアントがこのような方法をとっていたのでこれで良いものと思いまして…
- 568 :デフォルトの名無しさん:2016/12/28(水) 22:43:34.20 ID:6Nd1Z00H.net
- TwitterのタイムラインをWebBrowserでやろうとした場合ってHTMLを加工してタイムラインだけを取る的な感じになるの?
- 569 :デフォルトの名無しさん:2016/12/28(水) 22:56:26.65 ID:EECpjgXG.net
- 普通はタイムラインのデータを取得してHTMLを生成してWebBrowserコントロールに
流し込むってイメージだと思うよ。
- 570 :デフォルトの名無しさん:2016/12/28(水) 23:00:12.19 ID:Bwga9xUV.net
- >>567
WPFはちょっと凝ったUI作るのにはお勧めなんだけど、初期の学習コストが大きいのがネック。
規約に関してはグレーゾーンでしょ。Twitter社次第。
- 571 :デフォルトの名無しさん:2016/12/28(水) 23:30:17.32 ID:NekU8PBK.net
- var dic = new Dictionary<object, object>();
var isd = dic is IEnumerable<object>;
var asd = dic as IEnumerable<object>;
↑これなんだけど、vs2015だと
実際の値は
isdがfalse
asdがnull
なんだけど、ウォッチ式上は
isdがtrue
asdには値が入ってるんよ。
オレの環境だけ?
vs2010はどっちもfalseのnullなんだよね。
他の環境は手持ちがなくて確認できず
で、本題なんだけど
Dictionary<T, U>をIEnumerable<object>に変換できないかね?
誰かやり方知りない?
- 572 :デフォルトの名無しさん:2016/12/28(水) 23:32:42.76 ID:gapvLjp6.net
- Cast<object>()
- 573 :デフォルトの名無しさん:2016/12/28(水) 23:52:57.99 ID:NekU8PBK.net
- >572
サンクス
すまんがもう一個
Dictionary<T, U>を一度object型に変換した後にDictionaryに変換せずに
IEnumerable<object>に直接変換する方法ってある?
元々、object型の値がIEnumerable<V>を継承してるか、継承していたら変換するって処理を作ってる時に気付いたもんで
後出しで申し訳ないが知ってたら教えてくり
- 574 :デフォルトの名無しさん:2016/12/29(木) 00:33:10.83 ID:u+8RF5XF.net
- >>569
なるほどthx
- 575 :デフォルトの名無しさん:2016/12/29(木) 00:38:59.83 ID:ICm4kcbN.net
- >>573
ターゲットフレームワークが4以降なら直接IEnumerable<object>にキャストできる
Dictionary<,> は IEnumerable<KeyValuePair<,>> を実装している
.NET4以降ではIEnumerable<>は共変だからIEnumerable<派生>をIEnumerable<既定>として扱える
あと関係ないけど.NETの場合ジェネリックの型引数は
1つの場合はT、複数の場合はTKey, TValueのようにT〇〇と名付ける決まりだから
Java臭いキモい書き方はやめろ
- 576 :573:2016/12/29(木) 00:49:52.62 ID:ICm4kcbN.net
- すまん訂正
KeyValuePair<,>は値型だから不変だな
直接キャストはできないので>>572で全要素を個別にボックス化してやる必要がある
- 577 :デフォルトの名無しさん:2016/12/29(木) 00:58:24.25 ID:ICm4kcbN.net
- あと >object型の値がIEnumerable<V>を継承してるか、継承していたら変換する だけど、
IEnumerable<object>のかわりに単に非ジェネリックのIEnumerableにキャストすりゃいいよ
IEnumerable<>はIEnumerableを継承しているので、
IEnumerable<>なら要素が値型だろうが何だろうがIEnumerableには確実にキャストできる
どうしても<object>にしたいなら ((IEnumerable)obj).Cast<object>() で変換できる
- 578 :デフォルトの名無しさん:2016/12/29(木) 01:43:17.27 ID:yvgqyy5k.net
- おぉ、サンクス!!
値型だとダメなのか。知らんかったわ。
名前については気を付けるよ。
.NETのクラスライブラリ設計にも書いてあんね。もう一度読み返すよ。
助かった。ありがとう
- 579 :デフォルトの名無しさん:2016/12/29(木) 15:12:21.99 ID:ZEkDPYau.net
- >>529
msdnフォーラムで聞くほうがいいよ
- 580 :デフォルトの名無しさん:2016/12/30(金) 07:18:33.47 ID:WuCbATao.net
- vb.netではなくc#を選ぶ理由を教えてください。
- 581 :デフォルトの名無しさん:2016/12/30(金) 07:52:06.59 ID:ztwR1BBS.net
- コーディング量が多く単価が安い言語は選ばない
- 582 :デフォルトの名無しさん:2016/12/30(金) 08:01:52.99 ID:pFqShxhH.net
- むしろ VB
・に慣れてる
・しか知らない
・しか使えない環境
以外の理由で VB.net を選ぶ理由が知りたいよ
- 583 :デフォルトの名無しさん:2016/12/30(金) 08:22:40.21 ID:ztwR1BBS.net
- そやな。SharpDevelopの変換機能も優秀だし
- 584 :デフォルトの名無しさん:2016/12/30(金) 08:28:44.57 ID:wot9qjtL.net
- 未だにVBやPHPの学習コストがどうのとか言ってるの見ると
はぁ…90年代からいらしたんですか?そりゃどうも…って感じになる
- 585 :デフォルトの名無しさん:2016/12/30(金) 08:38:34.39 ID:fHdmB1av.net
- VBは使えない新人にやらせるものだからね
毎年素人に教えなきゃいけないから学習コストは常にホットな話題なんだよ
- 586 :デフォルトの名無しさん:2016/12/30(金) 08:55:52.86 ID:IhX7anmL.net
- VBなんてもはや学習コストが低い言語ではないし、PHPだってHTMLのマクロだった時代ではない。
まぁそういう会社ってVB6なんだろーけどさ。
- 587 :デフォルトの名無しさん:2016/12/30(金) 09:23:58.96 ID:ylI4PuDY.net
- MSのサポートがより盤石な方と言われれば基本C#じゃないの
と思ってたら最新のTIOBEインデックスが不可解な事になってるけど
http://news.mynavi.jp/news/2016/12/08/031/
- 588 :デフォルトの名無しさん:2016/12/30(金) 10:37:03.00 ID:z+0XLzNt.net
- >>587
TIOBEは昔から滅茶苦茶で
指標として価値がないよ
PYPLのが実態にあってるとおもう
http://pypl.github.io/PYPL.html
- 589 :デフォルトの名無しさん:2016/12/30(金) 11:36:38.80 ID:LToUj4mC.net
- 新しく作るならvb.net選ぶ理由なんてないんだろうけど、会社が90年代から続いてるからな
VB6よりも古い時代の資料を改定しながら使いまわしてる
今の時代に合わせて作り直したら大変だ
- 590 :デフォルトの名無しさん:2016/12/30(金) 12:03:55.88 ID:WuCbATao.net
- >>581
コーディング量が多いってほんまかいな。
.netならどっちも同じことができるはずやないんかいな。
vb.netなら何行も書く必要のあるものがc#なら1行で書けるコードがあるわけか。
社員に還元する気のない会社なら単価は安くていい。
- 591 :デフォルトの名無しさん:2016/12/30(金) 12:21:39.74 ID:WuCbATao.net
- >>582
vbに慣れてない人なんか少数派ではないんかいな。
vbなんかほとんどの人ができると思うけどな。
それで、vbの手続き(Sub)や関数(Function)も使える利点もある。
- 592 :デフォルトの名無しさん:2016/12/30(金) 12:28:11.59 ID:FgVAt5LY.net
- は?それVB独特の利点だと思ってんの?
葦の髄並みに視界が広いんだね!驚いた
- 593 :デフォルトの名無しさん:2016/12/30(金) 12:30:49.02 ID:3Ls/pupf.net
- VB は使えば使えるけど出来れば使いたくない、って人は多そう。自分はそう。
- 594 :デフォルトの名無しさん:2016/12/30(金) 12:30:52.92 ID:WuCbATao.net
- .netのプログラム方法を知らないがvb6の方法なら知ってるときは、調べる時間を省いて早く作れる利点がある。
- 595 :デフォルトの名無しさん:2016/12/30(金) 12:31:12.31 ID:1dqi8t3C.net
- >>591
リファレンスの差が圧倒的だからな。ライブラリもC#の方が充実してる。
- 596 :デフォルトの名無しさん:2016/12/30(金) 12:36:38.79 ID:TrhPacUJ.net
- VBAをC#表記にすればいいのにと
- 597 :デフォルトの名無しさん:2016/12/30(金) 12:39:17.24 ID:WuCbATao.net
- >>595
リファレンスは、c#でも普通に利用してvb.netでプログラムしてるから別にいい。
ライブラリって、サードパーティ製でc#にしか使えないものがあるということか?
- 598 :デフォルトの名無しさん:2016/12/30(金) 12:40:53.78 ID:a9lBhbdO.net
- >>594
VBerの世界では日本語のゴミのことを利点って表現するんだな
勉強になったわ
- 599 :デフォルトの名無しさん:2016/12/30(金) 12:44:33.76 ID:p8PwMXsr.net
- >>597
利点がどうかをお前の主観で判断するなら人に問いかけるな
お前のキンタマ脳味噌でしこたまオナってろカス野郎
- 600 :デフォルトの名無しさん:2016/12/30(金) 12:55:30.88 ID:WuCbATao.net
- c#はどの言語とも互換性がない。
- 601 :デフォルトの名無しさん:2016/12/30(金) 13:02:37.99 ID:E/JZqwpg.net
- VB製のまともなソフト見たことがない
- 602 :デフォルトの名無しさん:2016/12/30(金) 13:05:31.05 ID:pFqShxhH.net
- >>591
VB なんて10年以上使ったことない
って奴はごろごろいると思うけど?
- 603 :デフォルトの名無しさん:2016/12/30(金) 13:15:31.59 ID:WuCbATao.net
- どの言語プログラマーがc#になったのか教えてください。
- 604 :デフォルトの名無しさん:2016/12/30(金) 13:19:37.16 ID:LToUj4mC.net
- こいつNGでいいだろw
- 605 :デフォルトの名無しさん:2016/12/30(金) 13:29:15.01 ID:/QGVHUc5.net
- >>601
tweenが確かソースコード非公開化する前はVB.NETじゃなかったっけ
- 606 :デフォルトの名無しさん:2016/12/30(金) 14:03:07.38 ID:WuCbATao.net
- java scriptやphpやperlやjavaに比べてc++やcに類似しているとはいえないし、
もちろん互換性もないのにc#とはおかしい言語名だ。
- 607 :デフォルトの名無しさん:2016/12/30(金) 14:21:47.87 ID:B5+tn9xF.net
- 単にJavaScriptがJavaの名前を付けて恩恵を受けようとしたのと同じようにCとつけたのでは
未だにJavaよりもC/C++使いの方がエキスパートみたいな風潮はあるしCって付けたのは悪くないと思うけど
- 608 :デフォルトの名無しさん:2016/12/30(金) 15:56:44.65 ID:hgBVSCl8.net
- Java開発者の.NET取り込みを狙った言語としてはJ#が別にあったからな
Java、C++、VBという当時の三大勢力のうちC#はC++開発者をターゲットにしていたから、
Cの名前を冠するのは戦略上当然
- 609 :デフォルトの名無しさん:2016/12/30(金) 17:46:25.33 ID:U2S2spdu.net
- VBにはC#のunsafe相当が無い
以上
- 610 :デフォルトの名無しさん:2016/12/30(金) 18:31:14.27 ID:WuCbATao.net
- そうか、ポインタが使えなかったが、unsafeのブロックで囲って、プロジェクトのプロパティのビルドのページの
「アンセーフコードを許可する」にチェックを入れないといけなかったのか。C#ってぼろいな。
- 611 :デフォルトの名無しさん:2016/12/30(金) 18:53:07.80 ID:WuCbATao.net
- unsafeブロックとビルドの設定変更で初めてポインタが使える、これでようやくCに近づいたか。
- 612 :デフォルトの名無しさん:2016/12/30(金) 19:06:33.29 ID:B5+tn9xF.net
- 意図的に使いにくくしてるわけでCに近づける意味も必要性もないけどな
- 613 :デフォルトの名無しさん:2016/12/30(金) 21:27:21.00 ID:rzMADc8/.net
- >>606
そもそもVB.NETもVB6と互換性無いしな
互換性の維持は欠点の引き継ぎでもあるから、良いことばかりではない
- 614 :デフォルトの名無しさん:2016/12/31(土) 01:38:04.63 ID:9j/vHbfh.net
- クサレ脳ミソに触るなよ
年末で暇なのか?
- 615 :デフォルトの名無しさん:2017/01/03(火) 12:36:47.28 ID:6G2Z4dX0.net
- ASP.NETってリクエストと同じスコープの共有変数って無いの?
ApplicationとSessionだけ?
- 616 :デフォルトの名無しさん:2017/01/03(火) 13:07:31.73 ID:bKYKotyv.net
- ThreadLocal<T>使えば?
async使ってたりforkしてたりすると死ぬけど
- 617 :デフォルトの名無しさん:2017/01/03(火) 18:21:36.81 ID:GxvhYohc.net
- >>615
何がしたいん?
- 618 :デフォルトの名無しさん:2017/01/03(火) 19:30:11.31 ID:7mNkwS/N.net
- >>617
リクエストとトランザクションのスコープを同期させたい
フレームワーク側でトランザクション管理して
個々のリクエストからはトランザクションを参照するだけにして透過的に扱えるようにしたい
- 619 :デフォルトの名無しさん:2017/01/03(火) 19:33:32.03 ID:GxvhYohc.net
- >>618
カタカナが多くて理解出来ないわ
すまん
- 620 :デフォルトの名無しさん:2017/01/03(火) 23:21:22.46 ID:rV3i3AFU.net
- リクエストのスコープで、誰と共有するんだ?
フレームワーク側でトランザクション管理って何の事を言ってるんだ?
@PageのTransactionならページ=リクエスト単位でのトランザクション管理だったと思うが
- 621 :デフォルトの名無しさん:2017/01/04(水) 11:10:13.30 ID:P9CxkEKM.net
- 単にリクエストの前後でTransactionScopeの生成解放とcommitを入れたらいいだけじゃないのか?
明示的に共有する必要なんかないだろ
現在のトランザクションはTransaction.Currentで取れるし、
TransactionScopeAsyncFlowOption.Enabledでasyncにも対応できる
- 622 :デフォルトの名無しさん:2017/01/06(金) 15:01:19.97 ID:ugUrUcmU.net
- C#といっこも関係ないけど、ここのブログChromeだと問題ないけどFirefoxだと
なぜか糞重いんだけど、どうしてなんだろう
http://blog.xin9le.net/archive/category/C%23
.NET関係のブックマークはFirefoxで統一してるので出来たらFirefoxでも快適に見る方法ないかな
ブログ主が修正してくれたらそれが一番いいんだけど、こんなスレ見てないだろうし
こっちから指摘して直してくれってのもちょっとアレなんで
- 623 :デフォルトの名無しさん:2017/01/06(金) 19:33:41.04 ID:UonIfHoY.net
- 2chに書くなボケ
- 624 :デフォルトの名無しさん:2017/01/08(日) 04:55:07.07 ID:AV67jRu6.net
- C#なんか制御文と演算子がCに似てるだけで、それは他の多くのプログラム言語にも同じことが言えるし、
見かけがCに少し似てるだけで、中身はVB.NETと同じだろ。
VB.NETを拒絶してC#にこだわる理由がない。
挙句の果てに、「VBAをC#表記にすればいいのにと 」とまで言い出す始末。
- 625 :デフォルトの名無しさん:2017/01/08(日) 05:21:47.77 ID:gvW6zVP3.net
- いきなり何言ってんだこいつ
- 626 :デフォルトの名無しさん:2017/01/08(日) 05:24:36.52 ID:AV67jRu6.net
- C#人は性格が異常な人が多いのかいな
- 627 :デフォルトの名無しさん:2017/01/08(日) 05:38:16.16 ID:qYFGvy5R.net
- なんの話をしてるんだ?
- 628 :デフォルトの名無しさん:2017/01/08(日) 06:27:27.71 ID:TbfsFEah.net
- ID:WuCbATaoだろ
消しとけ
- 629 :デフォルトの名無しさん:2017/01/08(日) 09:01:21.88 ID:FbXxDY90.net
- >>626
狂った人から見ると普通の人が狂ってるように見えるんだってさ
- 630 :デフォルトの名無しさん:2017/01/08(日) 09:40:46.74 ID:vasp0ss6.net
- 普通の人からするとプログラムできる人は普通の人ではないんだってさ。
- 631 :デフォルトの名無しさん:2017/01/08(日) 11:10:32.86 ID:qEmyXRDT.net
- それは確かに
- 632 :デフォルトの名無しさん:2017/01/08(日) 11:24:30.92 ID:mLyjhJYP.net
- VBとかうんこだろ
VBAはうんこ オブ ザ うんこ
- 633 :デフォルトの名無しさん:2017/01/08(日) 11:50:35.91 ID:aANViJyG.net
- バカでも書きやすいのがVB系なのでVBAがそういう書き方なのは当然だろう
c#への橋渡しとしてのVB.NETだと思うし
- 634 :デフォルトの名無しさん:2017/01/08(日) 11:59:14.80 ID:AV67jRu6.net
- どうせVBではないという見栄だけでC#なんだろ
- 635 :デフォルトの名無しさん:2017/01/08(日) 12:14:57.49 ID:G2Ue1pwT.net
- VBからC#に入ったけどいまさらVBになんかめんどくさくて戻れん
使いたい人は勝手にしたらいいがC#のスレにきてわざわざ暴れるなよ
- 636 :デフォルトの名無しさん:2017/01/08(日) 12:15:40.75 ID:8d6R2/PQ.net
- >>634
何を勘違いしてるのか知らないが、普通のC#使いのほとんどはVBも普通に使えるぞ?
逆はそうでもないが
- 637 :デフォルトの名無しさん:2017/01/08(日) 12:21:38.45 ID:ZKkxHQju.net
- VBってC#と比べて新機能が遅れて導入されるから大嫌い
- 638 :デフォルトの名無しさん:2017/01/08(日) 12:22:57.20 ID:U62MbfoD.net
- VB6系はともかく別に誰もVB.NETを否定してないと思うが
というか幾らなんでも名前に踊らされ過ぎ
- 639 :デフォルトの名無しさん:2017/01/08(日) 12:29:52.90 ID:6Rfsv7h0.net
- VB.NETはC#と同じっていうのは実はC#er目線の話なんだよな
VB専に聞いてみりゃわかるが、彼ら自身はC#は別物だと思ってるし
実際彼らの書くコードはC#とは全く似つかないよ
- 640 :デフォルトの名無しさん:2017/01/08(日) 12:47:23.31 ID:vasp0ss6.net
- あえて言おう。VB.NETは出すべきじゃなかった。
- 641 :デフォルトの名無しさん:2017/01/08(日) 13:03:51.40 ID:AV67jRu6.net
- 「VB なんて10年以上使ったことないって奴はごろごろいると思うけど」という人がいる一方で、別の人は「普通
のC#使いのほとんどはVBも普通に使えるぞ」という人がある。10年以上使わないなら、普通に使えるとは思えないの
で、後者は前者の主張を否定したようなものだ。
「VBにはC#のunsafe相当が無い」という人がいる一方で、別の人は「意図的に使いにくくしてるわけでCに近づける
意味も必要性もない」といってunsafeの存在価値を否定した。
それぞれの主張に客観性がないんだろうな。
- 642 :デフォルトの名無しさん:2017/01/08(日) 13:10:39.99 ID:ZKkxHQju.net
- お前はちょっと黙ってろ
- 643 :デフォルトの名無しさん:2017/01/08(日) 13:25:57.09 ID:Dfhzw297.net
- >>641
「意図的に使いにくくしてるわけでCに近づける意味も必要性もない」は別にunsafeの存在を否定はしてないだろ。
普段使いするものじゃないからわざと使いにくくしてあるけど、いざという時はちゃんと使えるんだから。
- 644 :デフォルトの名無しさん:2017/01/08(日) 13:26:42.71 ID:G2Ue1pwT.net
- VBは使えるけどC#が使えないから職場でいじめられたのかな
それでここで憂さ晴らししていると
ここでもバカにされるだけなのに
- 645 :デフォルトの名無しさん:2017/01/08(日) 13:34:55.06 ID:Dfhzw297.net
- >>636
最初からVBに興味ないか、少しだけ触って見限ったきりって人も多い。
少し勉強すればVBもできる人は多いだろうけど、そうする意味もあまりないし。
- 646 :デフォルトの名無しさん:2017/01/08(日) 13:39:59.92 ID:mLyjhJYP.net
- VB.NETは構文調べて20分で捨てた
VB.NETで出来ることはC#で出来るし
何となく感覚で読めるけど書けない
- 647 :デフォルトの名無しさん:2017/01/08(日) 13:43:29.27 ID:AV67jRu6.net
- (エセC)#、もしくは (エセC++)++ だろ
- 648 :デフォルトの名無しさん:2017/01/08(日) 13:48:31.81 ID:AV67jRu6.net
- >>642 どうせ他のレスが滞ってて沈黙が続いてるから、他人の邪魔してるわけではないからいいじゃないか。
- 649 :デフォルトの名無しさん:2017/01/08(日) 13:58:48.72 ID:euA+r4Nb.net
- VBerはC#erにコンプレックスだらけ。C#erは相手にしてない
東京、大阪の関係みたいなもんだな
- 650 :デフォルトの名無しさん:2017/01/08(日) 13:59:50.66 ID:pxQLZoyB.net
- もともとはVBの方が好きだったけどさすがに2008以降はちょっと使う気にならん感じになっちゃったねVBは
ExcelをCOM Interop;する時はOption Strict Offで適当にキャストかましてくれる
VBの方がまだちょっと使いやすいけどそれ以外はあえてVBを選ぶ理由は消滅したな。
- 651 :デフォルトの名無しさん:2017/01/08(日) 14:00:51.70 ID:vasp0ss6.net
- 確かに東京ってVB案件ばかりだな。
- 652 :デフォルトの名無しさん:2017/01/08(日) 14:06:57.00 ID:ZKkxHQju.net
- >>650
Office関連はNetOffice使った方が便利で安全だぞ
わざわざVB.NETを選ぶ必要は無い
- 653 :デフォルトの名無しさん:2017/01/08(日) 14:22:29.23 ID:XDbKIsfA.net
- VBerでもC#やらせれば書けるよ
あいつら食わず嫌いしてるだけ
ただ書けるだけであってVBっぽい気持ち悪いC#コードが生産されるので書かせない方がいいのは確かだ
- 654 :デフォルトの名無しさん:2017/01/08(日) 14:37:23.20 ID:C9GVPqMv.net
- >>641
> 10年以上使わないなら、普通に使えるとは思えない
30年以上 FORTRAN を使ってないけど普通に使えるけど?
- 655 :デフォルトの名無しさん:2017/01/08(日) 14:51:06.05 ID:dpJgVr6u.net
- >>650
VB2008からはC#の開発チームと統合されて、VBを馬鹿にしてるアンダースの配下になったからね
それまでは独自路線だったが、以降は開発方針が変わってC#の方言になった
- 656 :デフォルトの名無しさん:2017/01/08(日) 14:59:20.01 ID:AV67jRu6.net
- Aの「vbに慣れてない人なんか少数派ではないんかいな」という主張にBが「vbに慣れてない奴はごろごろいる」
と反論するために「10年以上使ったことないって奴はごろごろいると思うけど」と反論の理由を言ったんだろう
と解釈できるし、そうなると、Cが「FORTRANを30年以上使ってなくても普通に使える」という主張は、Bへの反
論かいな。
- 657 :デフォルトの名無しさん:2017/01/08(日) 15:03:11.58 ID:dpJgVr6u.net
- 慣れてなくてもC#使いがVB使うのは何の問題もないわ
3日で生え抜きのベテランVBerより品質の高いコードを書ける
- 658 :デフォルトの名無しさん:2017/01/08(日) 15:07:20.67 ID:AV67jRu6.net
- 「普通のC#使いのほとんどはVBも普通に使えるぞ」や「普通のC#使いのほとんどはVBも普通に使えるぞ」
や「3日で生え抜きのベテランVBerより品質の高いコードを書ける 」等の発言から自分らを高く見せたい
というプライドがあるんだな。
- 659 :デフォルトの名無しさん:2017/01/08(日) 15:11:41.76 ID:AV67jRu6.net
- 間違えた、2つ目の「・・・・」は正しくは「FORTRANを30年以上使ってなくても普通に使える」
と書こうとした。
- 660 :デフォルトの名無しさん:2017/01/08(日) 15:21:13.72 ID:tl4nBuMM.net
- わざわざ訂正しなくてもいいよ。読んでないから
- 661 :デフォルトの名無しさん:2017/01/08(日) 15:33:55.81 ID:j7hkxIjf.net
- VBerは動けばいいやって人が多い
C#erはコードにもこだわる
- 662 :デフォルトの名無しさん:2017/01/08(日) 15:41:15.76 ID:hmvsmXiF.net
- >>654
30年前のfortranってどんなの?
- 663 :デフォルトの名無しさん:2017/01/08(日) 15:46:08.09 ID:dpJgVr6u.net
- F77じゃね
パンチガードで入力してたから、固定フォーマットでコメント文字は何文字目に打つというような決まりがあった
- 664 :デフォルトの名無しさん:2017/01/08(日) 16:02:54.22 ID:XDbKIsfA.net
- VBは言語そのものではなく言語に纏わる文化が劣悪
VBで書ければC#でも書けるし逆も同じ
でも品質は全く違うものが出来上がる
- 665 :デフォルトの名無しさん:2017/01/08(日) 16:14:56.03 ID:AV67jRu6.net
- >>646 VB.NETスレで「キチガイ引き取って」と発言したな
- 666 :デフォルトの名無しさん:2017/01/08(日) 16:17:18.08 ID:mLyjhJYP.net
- とりあえずvb.netスレに移動しろ
- 667 :デフォルトの名無しさん:2017/01/08(日) 16:51:42.42 ID:CzVAxFca.net
- 朝早くからわけわからんレス書き込んでいる基地外に触んなよ
お前らも暇だなあ
- 668 :デフォルトの名無しさん:2017/01/08(日) 17:06:56.44 ID:AV67jRu6.net
- 何でお前らは人格異常なのか。
普通に疑問に答えればいいものを人格攻撃かいな。
- 669 :デフォルトの名無しさん:2017/01/08(日) 17:07:39.75 ID:bz1GF1b+.net
- ちょまどでも使えるのがC#
- 670 :デフォルトの名無しさん:2017/01/08(日) 17:18:11.47 ID:ZD9uWaqV.net
- VB使いはC#も読めなけきゃスレタイも読めないのか(呆れ
- 671 :デフォルトの名無しさん:2017/01/08(日) 17:22:24.24 ID:bz1GF1b+.net
- >>670
俺は褒めてるんだけど?
- 672 :デフォルトの名無しさん:2017/01/08(日) 19:41:33.47 ID:GefrbuSU.net
- 別に言語なんてなんだろうが出来るに越したことはないだろ
世の中にはプログラミングが出来るだけで神様のように崇める挫折した人らがごまんといるんだからさぁ
ただ今さらVBは無いわなってだけで
ある程度のプログラミングのスキルがあれば大抵の言語やればできるわ
- 673 :デフォルトの名無しさん:2017/01/08(日) 19:47:55.76 ID:TbfsFEah.net
- 消しとけって言っただろうが1日中相手しやがって休みに予定の一つもない暇人どもめ
- 674 :デフォルトの名無しさん:2017/01/08(日) 19:55:49.52 ID:zjQfPtHB.net
- >ある程度のプログラミングのスキルがあれば大抵の言語やればできるわ
察してあげる優しさも必要だと思うの。
・・・そうじゃなきゃこんなに拘ったりしないだろ。こんなどうでもいいことに。
- 675 :デフォルトの名無しさん:2017/01/09(月) 01:08:12.74 ID:vxkpROxT.net
- VBの問題は、VB6上がりがクソコード量産することであって、言語自体の問題とも思えんな
一部を除けばなれの問題じゃね?
- 676 :デフォルトの名無しさん:2017/01/09(月) 03:40:15.39 ID:iFTSomz+.net
- 構造が異なるのにVisual Basicって名前が良くなかったな
C# LITEとかのがよかった
本当はVB6の文法のまま.NET化したほうがよかったが気がするけど
- 677 :デフォルトの名無しさん:2017/01/09(月) 08:28:02.64 ID:PTkphACT.net
- VB6的なものは、残してもらいたかった。
- 678 :デフォルトの名無しさん:2017/01/09(月) 09:27:26.68 ID:4NqOEoqD.net
- VB6は基本そのままでCLIインターフェースを定義・公開できるようにするだけでよかった
レガシーコンポーネントとの接合面に徹するということね
- 679 :デフォルトの名無しさん:2017/01/09(月) 10:11:36.58 ID:ES9C16us.net
- そもそも言語の違いだけで
やれることが変わるっておかしいだろ
Basicで低級から高級まで、技術計算からwebまで全部網羅しなさいよ
- 680 :デフォルトの名無しさん:2017/01/09(月) 10:20:44.97 ID:EPA1tS/m.net
- >>676
書き方が違うのにc#の名前つけるのと不自然だろ
- 681 :デフォルトの名無しさん:2017/01/09(月) 10:28:05.78 ID:5eZppcho.net
- 不自然な日本語
- 682 :デフォルトの名無しさん:2017/01/09(月) 10:46:51.41 ID:4NqOEoqD.net
- 日本語そのものがまず不自然
規格化して機械可読にしろ
曖昧過ぎて話にならん
- 683 :デフォルトの名無しさん:2017/01/09(月) 10:53:09.63 ID:Ml4ZG/LK.net
- >>681
「と」が多いだけで不自然じゃないだろ
そっちじゃなくて、>>679の相手してやれよ
- 684 :デフォルトの名無しさん:2017/01/09(月) 10:55:14.48 ID:qNaaD21i.net
- >>683
不自然すぎるだろ
- 685 :デフォルトの名無しさん:2017/01/09(月) 11:28:05.30 ID:EPA1tS/m.net
- 不自然と言うかただの誤字脱字なんだが
- 686 :デフォルトの名無しさん:2017/01/09(月) 11:34:45.57 ID:GZgSniwS.net
- this.RemoveRange(スレタイ読めないやつら);
- 687 :デフォルトの名無しさん:2017/01/09(月) 11:49:57.75 ID:CAx+Qp4q.net
- RemoveAllじゃね
- 688 :デフォルトの名無しさん:2017/01/09(月) 12:04:50.19 ID:Ml4ZG/LK.net
- thisのスコープに注意
- 689 :デフォルトの名無しさん:2017/01/09(月) 23:22:09.65 ID:PtjtbCa1.net
- >>687
いやすでにゴミなら
GC.Collect();
が妥当
- 690 :デフォルトの名無しさん:2017/01/10(火) 22:17:04.74 ID:uwegHVoP.net
- //デブはLOHに残る
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
- 691 :デフォルトの名無しさん:2017/01/11(水) 23:03:15.22 ID:5ZcY/57e.net
- PHPのコンストラクタって__construct()で統一されてるけど
C#は相変わらずクラス名と同名で行くのかな
<?php
class BaseClass {
function __construct() {
}
}
- 692 :デフォルトの名無しさん:2017/01/11(水) 23:08:33.22 ID:1SbN3a75.net
- >>691
地味に面倒臭いな確かに
数が多くなると発狂レベル
- 693 :デフォルトの名無しさん:2017/01/11(水) 23:45:27.30 ID:SOQiv9G3.net
- public class Hoge(IFuga fuga) : IHoge {
public void DoSomething() { fuga.Hello(); }
}
こういう構文をサポートしてほしい
インジェクションで決まりきったコンストラクタと読み取り専用フィールドをダラダラ書くのがめんどくさい
- 694 :デフォルトの名無しさん:2017/01/11(水) 23:49:54.18 ID:IQVyJq11.net
- PHPは特殊だから比較にならない
- 695 :デフォルトの名無しさん:2017/01/12(木) 01:46:35.54 ID:9/EXlZU1.net
- >>691
同じ名前にするのって歴史的以外になんか理由があるのかね
まぁ、手打ちすることはないからコピペしたときぐらいしか気にはならんが
>>693
入りそうになったけど、レコード型と一緒に入れようとかで延期になった気がする
- 696 :デフォルトの名無しさん:2017/01/12(木) 07:05:51.82 ID:0A4eRqXF.net
- >>695
歴史って言うか C++ 由来でしょ
Delphi みたいにキーワードで指定する方法もあるし、PHP みたいに固定的な名前もある
- 697 :デフォルトの名無しさん:2017/01/12(木) 07:57:37.19 ID:gDCHiAoV.net
- まあ自動生成が面倒になったりするだけで特にメリットは無いわな
単にC++やJavaの人が違和感なく入れるように配慮しただけ
メソッド名にキーワード使うのはインデクサのthisとかあるから public new() がベストだと思う
- 698 :デフォルトの名無しさん:2017/01/12(木) 08:22:28.72 ID:arip6tnc.net
- PHP(笑)
- 699 :デフォルトの名無しさん:2017/01/12(木) 19:27:23.13 ID:xSuUU/8s.net
- >>698
ASP.NETよりも桁違いに普及してる時点で
.NETのが格下扱いだろ
- 700 :デフォルトの名無しさん:2017/01/12(木) 19:33:30.95 ID:2oeweQcz.net
- 普及している方が優秀なの?
- 701 :デフォルトの名無しさん:2017/01/12(木) 20:12:53.07 ID:wTRJIMgP.net
- 昔に流行ったけど保守性が低くて駆逐できなかっただけなんだとさ
- 702 :デフォルトの名無しさん:2017/01/12(木) 20:13:54.54 ID:QYJftQFG.net
- >>701
phpがか?
- 703 :デフォルトの名無しさん:2017/01/12(木) 21:40:32.87 ID:TJ6nofkx.net
- >>697
> public new() がベストだと思う
構造体は常に new する訳じゃないから
- 704 :デフォルトの名無しさん:2017/01/12(木) 22:00:11.00 ID:b+ED7Ag1.net
- >>703
構造体のコンストラクタが呼ばれるのは明示的にnewされた場合だけだからそれでいいだろ
- 705 :デフォルトの名無しさん:2017/01/12(木) 22:29:17.14 ID:3WOOMgjX.net
- new a()が
new new()扱いになるのがキモイ
- 706 :デフォルトの名無しさん:2017/01/12(木) 22:30:43.93 ID:3WOOMgjX.net
- a.が抜けてた
new a.new()
- 707 :デフォルトの名無しさん:2017/01/12(木) 22:38:31.12 ID:ja9bCuYX.net
- .NET Coreって普及してるの?もしくはこれからweb開発のスタンダードになりそう?
- 708 :デフォルトの名無しさん:2017/01/12(木) 22:47:22.93 ID:oQ7f95Jk.net
- なってほしいな
今は仕事だとphpとrailsメインだけどc#でなんでもやりたいわ
LAMPがどかーんと行ったのだって言語云々じゃなくサーバが無料ってのが大きかったと思うんよね
- 709 :デフォルトの名無しさん:2017/01/12(木) 22:50:38.88 ID:wTRJIMgP.net
- コスト安くなるし普及するだろうね
海外では
- 710 :デフォルトの名無しさん:2017/01/12(木) 22:53:57.51 ID:XIu+56Iq.net
- 静的型でポータブルでオールインワンって他にないからな
Goの代わりくらいにはなれるかもね
- 711 :デフォルトの名無しさん:2017/01/12(木) 23:10:57.73 ID:xSuUU/8s.net
- >>708
VisualStudioも無料になったら
本気で普及し始めると思う
あと、ザマリンの導入がもうちょっと
解りやすくなったら
- 712 :デフォルトの名無しさん:2017/01/12(木) 23:45:09.08 ID:vtJ2CftH.net
- >>705
ならないでしょ
VBが>>697の言う仕様だけど、そんなことにはなってない
- 713 :デフォルトの名無しさん:2017/01/13(金) 07:15:03.66 ID:hmsqUFNG.net
- >>700
じゃあ俺の自作言語が最強だな
変数ないけど
- 714 :デフォルトの名無しさん:2017/01/14(土) 08:53:21.93 ID:rv9Bkqpt.net
- C#にはヘッダーファイルがない。
クラスはC++と全然書き方が違う。
Cの派生言語のように見せかけた、中身はVBと同じ言語だ。
こんなもんでVBよりC#のほうが偉いはずがない。
- 715 :デフォルトの名無しさん:2017/01/14(土) 09:02:17.10 ID:exppjyX7.net
- 相談スレでは相談しろ
- 716 :デフォルトの名無しさん:2017/01/14(土) 10:10:34.71 ID:H4kTcvBH.net
- VBよりC#が偉い理由はラムダが書きやすいのと直感に反する余計な事をしないってとこだな
- 717 :デフォルトの名無しさん:2017/01/14(土) 11:52:35.26 ID:C/3o1CZS.net
- 一つの言語にやたらこだわるのは無能だからだろうな
>>714
お前がバカなのはこのスレでよくわかったから、もう書かなくていいぞ
- 718 :デフォルトの名無しさん:2017/01/14(土) 12:41:03.27 ID:DO73KmNH.net
- これ以上カスに触るなら二郎コピペでこのスレ埋めてやる
- 719 :デフォルトの名無しさん:2017/01/14(土) 16:48:32.83 ID:OgQ0DzZw.net
- おう、はよ埋めろや
- 720 :デフォルトの名無しさん:2017/01/14(土) 20:18:03.67 ID:rv9Bkqpt.net
- >>717 どうバカなのかどうせまともな説明できないくせに黙ってろよ
- 721 :デフォルトの名無しさん:2017/01/14(土) 20:41:22.94 ID:JD3u+vgV.net
- スレタイ読めないのはバカだろ
- 722 :デフォルトの名無しさん:2017/01/14(土) 20:43:39.19 ID:dtN7VWLV.net
- むしろ埋めてもらった方がワッチョイで立て直せるし、いいかも
ネタも無いしいいだろって住み着くオカシイ奴ってどこにでもいるから
- 723 :デフォルトの名無しさん:2017/01/14(土) 20:44:39.50 ID:adzUep7y.net
- ワッチョイなんてつけるまでもなく一人だからスルーしとけばよくね
- 724 :デフォルトの名無しさん:2017/01/14(土) 20:45:16.55 ID:JD3u+vgV.net
- ワッチョイつけりゃ一週間は登録の手間が省ける
- 725 :デフォルトの名無しさん:2017/01/14(土) 20:58:45.21 ID:adzUep7y.net
- 大きいコピペの連投とか見づらいもの以外でも細かくNG入れてる人も居るのか
自分が使ってないから登録のことは考えてなかったわすまんな
- 726 :デフォルトの名無しさん:2017/01/14(土) 22:03:54.65 ID:4p1bTVm6.net
- それ以上C#スレ荒らす気ならVBスレ荒らすぞ
- 727 :デフォルトの名無しさん:2017/01/14(土) 23:42:52.47 ID:OgQ0DzZw.net
- おう、はよ荒らせや
- 728 :デフォルトの名無しさん:2017/01/15(日) 06:06:15.67 ID:N0spz/4F.net
- 異常な嫌悪してるやつ自身が荒らしとる自覚もてよ
- 729 :デフォルトの名無しさん:2017/01/16(月) 18:22:07.32 ID:h1Gia5xw.net
- 俺も色々やってみたほうが良いと思うけど、PHPだけは専門にやってる人以外は危ないからやらないほうが良いかもな
- 730 :デフォルトの名無しさん:2017/01/17(火) 17:50:34.77 ID:cbxfPpyL.net
- ASPもPHPも言語ではなくフレームワークみたいな認識。
- 731 :デフォルトの名無しさん:2017/01/17(火) 18:27:11.28 ID:VcB0QsgY.net
- web系全般そんなもんじゃね?
- 732 :デフォルトの名無しさん:2017/01/17(火) 18:38:01.09 ID:TNo9RdVK.net
- web系以外のも同じだな
- 733 :デフォルトの名無しさん:2017/01/19(木) 02:27:36.32 ID:zUZJ1T5E.net
- VBのLike演算子が必要なので、C#という選択肢にならない。
InputBoxも使えるのがVB。
C#人は、C#使いながら、Microsoft.VisualBasic名前空間のライブラリを使ったりもしないのかな。
- 734 :デフォルトの名無しさん:2017/01/19(木) 03:12:26.89 ID:mclODO+O.net
- .NET標準になくてMicrosoft.VisualBasic名前空間にしかないライブラリ機能ってあるの?
- 735 :デフォルトの名無しさん:2017/01/19(木) 03:16:26.12 ID:HUduSCHL.net
- >>734
CSV絡みでTextFieldParserとか
CsvHelperあるしもう誰も使わんと思うけど
- 736 :デフォルトの名無しさん:2017/01/19(木) 03:28:23.32 ID:zUZJ1T5E.net
- ならばInputBoxの代わりになる.NET標準を教えてほしい。
Like演算子の代わりなるものもあるんかいな。正規表現まで持ち出するのは一手間だし。
- 737 :デフォルトの名無しさん:2017/01/19(木) 03:33:28.73 ID:zUZJ1T5E.net
- マネージ拡張C++でTextFieldParser使おうとして、clコマンドでコンパイルしようとしたら、
なぜかコンパイラが異常終了したことがあった。VB.NETでないとexeが作れなかった。当時はC#
は勉強不足だったから、それでは試してない。
- 738 :デフォルトの名無しさん:2017/01/19(木) 04:14:58.96 ID:LVeuyfqa.net
- >>733
http://www.atmarkit.co.jp/ait/spv/1412/02/news129.html
- 739 :デフォルトの名無しさん:2017/01/19(木) 04:20:46.87 ID:LVeuyfqa.net
- >>736
inputBoxが必要でVBにしがみつく理由がわからない
そんなform一瞬で作れるだろ
- 740 :デフォルトの名無しさん:2017/01/19(木) 04:30:24.85 ID:zUZJ1T5E.net
- InputBoxは、すでに用意されているので、正に一瞬だが、互換Formを作るのは少なくとも1分はかかる。
VBならこんなものを自作して管理する煩わしさもなく、作成済みのフォームをプロジェクトに追加する
必要もない。
- 741 :デフォルトの名無しさん:2017/01/19(木) 04:39:21.41 ID:LVeuyfqa.net
- >>740
じゃあ逆に聞くけど、VBで.NET Core使ってんの?
- 742 :デフォルトの名無しさん:2017/01/19(木) 04:44:31.30 ID:zUZJ1T5E.net
- >>741 そんなものは知らん。だがVB.NETでInputBox利用すればそれを利用する必要もない。
- 743 :デフォルトの名無しさん:2017/01/19(木) 04:46:13.14 ID:LVeuyfqa.net
- >>742
…やっぱ触っちゃいけない人だった
- 744 :デフォルトの名無しさん:2017/01/19(木) 04:47:52.86 ID:2A4qP/TB.net
- >>740
https://blogs.msdn.microsoft.com/dotnet/2017/01/18/the-week-in-net-on-net-with-david-pine-pwdless-terraria/
.NETの勉強しててこれのF#以外をVBで試そうと思ったら、かなり大変じゃない?というかできるの?
- 745 :デフォルトの名無しさん:2017/01/19(木) 04:59:14.61 ID:zUZJ1T5E.net
- >>744 何のことについて書いてあるのかね。仮に日本語であったとしても、事前に何の説明もなくいきなり読んで理解できるかも疑問だ。
- 746 :デフォルトの名無しさん:2017/01/19(木) 05:04:07.77 ID:bDIUTWZ4.net
- >>745
英語も読めないなら消えな
- 747 :デフォルトの名無しさん:2017/01/19(木) 05:11:17.04 ID:zUZJ1T5E.net
- 事前に何の説明もなく、話の背景や前提もわからず学術論文とかを急に読まされても、専門家でもない限り日本語でも理解できるはずがない。
専門家でも、論文全体ではなく、ある一部分だけを抜き出して、それが何の論文から引用したかも何かも示されなければ、理解できるとは限らないだろう。
- 748 :デフォルトの名無しさん:2017/01/19(木) 05:23:49.86 ID:bDIUTWZ4.net
- >>747
学術論文の話なんかしてねーよ
.NETのtipsがいろいろとまとめられてるけど、どうやってそれをVBに読み換えてんの?
- 749 :デフォルトの名無しさん:2017/01/19(木) 05:25:18.75 ID:LVeuyfqa.net
- >>747
ただのブログだろバカ
- 750 :デフォルトの名無しさん:2017/01/19(木) 05:26:05.83 ID:mclODO+O.net
- 英語とはいえただのブログ記事を学術論文て
- 751 :デフォルトの名無しさん:2017/01/19(木) 05:31:36.41 ID:mclODO+O.net
- ていうかTerrariaってC#/XNAで書かれてたんだ…その記事で初めて知ったわ
- 752 :デフォルトの名無しさん:2017/01/19(木) 06:06:50.67 ID:zUZJ1T5E.net
- 学術論文は例えばの話だろが。
いきなり長文を出されて、どこの何をどのようにして読むのか何も示さず、それをどうしてもらいたいのかも
説明がないと困るだろ。
- 753 :デフォルトの名無しさん:2017/01/19(木) 06:10:42.55 ID:JVh2O255.net
- >>752
説明してるだろVB脳
- 754 :デフォルトの名無しさん:2017/01/19(木) 06:16:44.40 ID:zUZJ1T5E.net
- このリンク先ページに示されてるC#のプログラムコードをVBに読み替える、あるいはVB用にコードを作り替える
のが大変ではないか、またはできるのか、あるいはその前に読み替えもできるのかを聞きたいのかね。
- 755 :デフォルトの名無しさん:2017/01/19(木) 06:18:51.75 ID:zUZJ1T5E.net
- >>753 わかるように説明しろよ
- 756 :デフォルトの名無しさん:2017/01/19(木) 06:21:00.70 ID:JVh2O255.net
- >>754
仕方ないからその中のこれだけでいいよ
http://www.codemag.com/Article/1701061
これVBでやってみ
- 757 :デフォルトの名無しさん:2017/01/19(木) 06:21:30.66 ID:mclODO+O.net
- >>754
最初からVBじゃなくてC#使ってれば何も悩まず書いてあるのをコピペして使えるよねって話じゃねえの
- 758 :デフォルトの名無しさん:2017/01/19(木) 06:21:31.93 ID:zUZJ1T5E.net
- C#の技術力以前に人格をどうにかしろよ。
バカ扱いすれば自分が偉くて高い立場だとでも思ってるのかね。
- 759 :デフォルトの名無しさん:2017/01/19(木) 06:25:06.37 ID:zUZJ1T5E.net
- >>756 仕方がないからこれだけでいいというから、分量を大幅に絞り込んだものかと思えば、これも大量にあるじゃないか。
- 760 :デフォルトの名無しさん:2017/01/19(木) 06:29:21.58 ID:JVh2O255.net
- >>759
少し見たらわかると思うけど、これ極々基本的なことしかやってないよ?むしろこれができないならVBには無理だわ
- 761 :デフォルトの名無しさん:2017/01/19(木) 06:29:25.97 ID:BbnbZdnl.net
- VBやると頭がおかしくなるということがよくわかった
- 762 :デフォルトの名無しさん:2017/01/19(木) 06:31:34.13 ID:LVeuyfqa.net
- そもそもVBなんて、まだ.NET Core1.0ですら正式対応してないからな
- 763 :デフォルトの名無しさん:2017/01/19(木) 06:34:19.96 ID:mclODO+O.net
- ID:zUZJ1T5Eが頭おかしくても、VB.NETのことは嫌いにならないでねっ!
- 764 :デフォルトの名無しさん:2017/01/19(木) 06:38:41.20 ID:zUZJ1T5E.net
- >>761 >>763
お前の頭がおかしいから、他人の頭がおかしいと思い込んでるだけだ。
- 765 :デフォルトの名無しさん:2017/01/19(木) 06:52:09.97 ID:zUZJ1T5E.net
- 自分の主張を正当化できないから、相手をバカ扱いしてごまかすだけか。
- 766 :デフォルトの名無しさん:2017/01/19(木) 07:07:47.10 ID:krZQnAr8.net
- >>765
vb.netは自分も嫌いじゃないけど
ここはスレ違いと認識してそろそろやめませんか?
- 767 :デフォルトの名無しさん:2017/01/19(木) 07:09:56.04 ID:EGANxKDd.net
- 伸びてると思えばまたVBネタかぁ
VBといえば
Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile()
は便利だよね。よく使う
- 768 :デフォルトの名無しさん:2017/01/19(木) 07:30:09.62 ID:zUZJ1T5E.net
- >>766
vbにはない有利なところ、切り替える価値を探ってるんだけどな。vbだけの有利
と思えるところが.netで代替策があるならそれもまず知る必要がある。その準備
なしで、漠然とC#使うだけなら意味がないし。そのためにC#を知るための話題だか
らな。
- 769 :デフォルトの名無しさん:2017/01/19(木) 07:38:27.30 ID:Xmxeyump.net
- >>768
知ろうとしてないだろ
- 770 :デフォルトの名無しさん:2017/01/19(木) 07:42:49.69 ID:b0abdje/.net
- 俺もN-BASIC世代だからVB好き
- 771 :デフォルトの名無しさん:2017/01/19(木) 07:55:09.76 ID:mclODO+O.net
- >vbにはない有利なところ、切り替える価値
なんて、>>744をはじめとする最先端のコード資源がほぼコピペだけで使えるってだけで十分じゃん
- 772 :デフォルトの名無しさん:2017/01/19(木) 07:57:11.06 ID:q3hudiC7.net
- 行番号のないBASICは所詮偽モノ。インタプリタでもねーし。
BASICのいいところはすべて失われた。
- 773 :デフォルトの名無しさん:2017/01/19(木) 07:59:57.29 ID:Ntb3+hAE.net
- .NET Coreに関する和書かいいサイトってある?
- 774 :デフォルトの名無しさん:2017/01/19(木) 08:00:00.05 ID:Xmxeyump.net
- >>771
VBでも同様の処理を書けるならまだしも、そもそもフレームワークでサポートされてないからな
- 775 :デフォルトの名無しさん:2017/01/19(木) 08:02:10.58 ID:Xmxeyump.net
- >>773
体系的にまとめられてるのは見たことないから、素直に公式のdocs読むのが一番手っ取り早いよ
まあVisual Studio2017が出た時点で大幅に修正が入るからね
- 776 :デフォルトの名無しさん:2017/01/19(木) 08:29:16.46 ID:9oxUjj4Y.net
- 急に伸びてると思ったらこれかー
- 777 :デフォルトの名無しさん:2017/01/19(木) 09:22:15.10 ID:X4NEWeGC.net
- >>758
相対的にそうなるね
- 778 :デフォルトの名無しさん:2017/01/19(木) 13:01:19.54 ID:0ZEPc8s2.net
- MODIを使って並列処理をすると、スレッド数が論理コア数では固まるが物理コア数だと動いてしまう
原因わかりますか?
- 779 :デフォルトの名無しさん:2017/01/19(木) 16:18:48.05 ID:C+ssGhBJ.net
- またVBガイジかよ
- 780 :デフォルトの名無しさん:2017/01/19(木) 18:03:11.37 ID:t+KfFfyK.net
- コピペって・・・。そのままコピーするだけか。
普通はコードを理解して、自分の作る目的のプログラムに合わせて必要変更をするだろうが。
ただのコピペ厨の自称プログラマーかいな。
- 781 :デフォルトの名無しさん:2017/01/19(木) 18:10:34.08 ID:yUxFIvB5.net
- 真っ赤だな
- 782 :デフォルトの名無しさん:2017/01/19(木) 19:01:51.57 ID:Ccs4bPhG.net
- >>767
ワイルドカードが使えるから便利ってこと?
- 783 :デフォルトの名無しさん:2017/01/19(木) 19:56:33.00 ID:mclODO+O.net
- >>780
もちろん必要があれば読むよ
でも他人がもう書いてるコードなんて可能な限り自分で書き直さないで済むほうがいいんだよ
そもそもライブラリってそういうもんだろ
- 784 :デフォルトの名無しさん:2017/01/19(木) 20:37:07.91 ID:Ntb3+hAE.net
- >>775
ありがとう
Core始めてみてEntity Framework使おうとしたら
dotnet efのコマンドが通らなくていきなりくじけたでござる
- 785 :デフォルトの名無しさん:2017/01/19(木) 20:45:51.31 ID:xEZd6WIv.net
- >>784
Entity Framework Coreは、まだOracleが正式にサポートされてないのが辛いね
- 786 :デフォルトの名無しさん:2017/01/20(金) 03:17:40.48 ID:mnoV+t38.net
- >>782
ゴミ箱に入れられるからでしょ
- 787 :デフォルトの名無しさん:2017/01/20(金) 07:11:21.34 ID:1c/0Zcpc.net
- 君らcoreは何に使うん?
- 788 :デフォルトの名無しさん:2017/01/20(金) 07:26:59.76 ID:73D0Dll6.net
- 何にもクソもCoreはLinuxサーバーでWebサイトを運用するためのもんだよ
Windowsで運用とか苦痛でしかないし
- 789 :デフォルトの名無しさん:2017/01/20(金) 07:30:05.91 ID:1c/0Zcpc.net
- >>788
iis便利やん。何が苦痛なん?
- 790 :デフォルトの名無しさん:2017/01/20(金) 07:32:52.88 ID:Bg1tCMvm.net
- Linuxの方が苦痛だよ
システムやアプリの設定方法に統一感なくてわかりにくいし
SeLinuxとか鬱陶しいし
コマンドへのIOが文字列とか前時代的だし
スイッチも一文字じゃ何やってるサッパリかわからん
- 791 :デフォルトの名無しさん:2017/01/20(金) 08:16:51.86 ID:uaOwYInA.net
- >>788
APIも知らないのかな?ASP.NETにおけるWebサイトとWebアプリの違いはわかってるかい?
- 792 :デフォルトの名無しさん:2017/01/20(金) 08:43:19.35 ID:kuRbEAeZ.net
- >>791
さすがにその言いがかりは無理があるだろ
Webサイトと聞いてASP.NET用語のWebサイトのことだと思っちゃう人は相当特殊だということを自覚したほうがいいよ
- 793 :デフォルトの名無しさん:2017/01/20(金) 10:28:22.73 ID:l+Qn6xw4.net
- .NET Core 自体には 1 つのアプリケーション モデル (コンソール アプリ) が含まれており、ツール、ローカル サービス、およびテキストベースのゲームに便利です。
次のような機能を拡張するために、.NET Core の上に追加のアプリケーション モデルがビルドされています。
ASP.NET Core
Windows 10 ユニバーサル Windows プラットフォーム (UWP)
Xamarin.Forms
https://docs.microsoft.com/ja-jp/dotnet/articles/core/
- 794 :デフォルトの名無しさん:2017/01/20(金) 11:07:17.26 ID:uaOwYInA.net
- >>792
単に無知なやつを茶化してるだけだろ
- 795 :デフォルトの名無しさん:2017/01/21(土) 12:06:38.55 ID:qCdjOj58.net
- C#を勉強してるのですが、無償環境の為インストーラーの作成が出来ません
動作環境を知ることができる特定の相手のみアプリケーションを配布するのにインストーラーが必要なのはどういった場合になるでしょうか
- 796 :デフォルトの名無しさん:2017/01/21(土) 12:42:00.19 ID:wnvzR/a/.net
- >>795
どんな無償環境?
無償環境だけが条件ならVisual Studio Community 2015 でインストーラーを作れるけど
- 797 :デフォルトの名無しさん:2017/01/21(土) 13:15:17.44 ID:3w6w5xSi.net
- 翻訳ソフト使ったのかな
- 798 :デフォルトの名無しさん:2017/01/21(土) 13:26:11.74 ID:DU5/M7G9.net
- >>796
ありがとう。調べてみたら
Installer projectっていうのがあるんだね
- 799 :デフォルトの名無しさん:2017/01/22(日) 05:11:30.27 ID:SRnP25ta.net
- コードはいじれないdllにClickイベントがあって
private void OnClick(object sender, DeviceGestureEventArgs e)
{
// いろいろ処理
}
Clickイベント自体はpublicです。
Clickイベントをどうにかしてこの いろいろ処理 を無効にできますか?
button.Click -= OnClick; みたいなことがやりたいのですが。
- 800 :デフォルトの名無しさん:2017/01/22(日) 08:34:45.29 ID:6kGfbYFS.net
- HogeクラスにClickとOnclickがあって、イベントの型がFugaEventHandlerとして
var m = hoge.GetType().GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
var h = (FugaEventHandler)m.CreateDelegate(typeof(FugaEventHandler), hoge);
hoge.Click -= h;
- 801 :デフォルトの名無しさん:2017/01/22(日) 09:43:23.66 ID:phG9hQKS.net
- >>799
継承して OnClick (>>799に書いてあるものではなくてこれhttps://msdn.microsoft.com/en-us/library/system.windows.forms.control.onclick(v=vs.110).aspx)
をオーバーライドして潰せばClickイベントは発生しなくなる
- 802 :デフォルトの名無しさん:2017/01/22(日) 10:20:22.86 ID:SRnP25ta.net
- >>800-801
ありがとうございます。
いけそうです。
- 803 :デフォルトの名無しさん:2017/01/22(日) 23:41:02.88 ID:B37Hjrvb.net
- 2GBを超えるバイナリファイルをbyte配列に取り込もうとしているのですがうまくいきません
byte[] bs = System.IO.File.ReadAllBytes(file_path);
↑これだと2GB未満にしろといわれます
できるだけ分割したくないのですが方法はありますか?
- 804 :デフォルトの名無しさん:2017/01/22(日) 23:47:39.67 ID:5CC/gWkn.net
- [] ←これが2Gまでじゃないかな
- 805 :デフォルトの名無しさん:2017/01/22(日) 23:56:07.82 ID:f0ZpZ2O5.net
- C#って2GiBの壁も超えられないクソ言語なの!?
- 806 :デフォルトの名無しさん:2017/01/22(日) 23:58:32.97 ID:2orbyh8h.net
- https://msdn.microsoft.com/ja-jp/library/hh285054(v=vs.110).aspx
- 807 :デフォルトの名無しさん:2017/01/22(日) 23:59:03.69 ID:7Uo1H//c.net
- >>803
配列の長さは仕様上Int32なのでどうしようもない
- 808 :デフォルトの名無しさん:2017/01/23(月) 00:06:09.00 ID:dQYVkXPH.net
- >>803
http://stackoverflow.com/questions/26882004/system-io-file-readallbytes-for-file-larger-than-2gb
http://msdn.microsoft.com/ja-jp/library/hh285054%28v=vs.110%29.aspx
http://abe-masato.cocolog-nifty.com/blog/2014/08/c-2gb-8da2.html
C# 2GB でググレカス
- 809 :デフォルトの名無しさん:2017/01/23(月) 00:14:05.50 ID:iJ5kh901.net
- 2GBってネタじゃなくて真面目に言ってるのかw
少なくとも現時点では富豪的過ぎる気がするんだけどw
ムーアの法則とっくに終わってるし将来的にも疑問だなあw
まあ現時点でも動作環境を限定できるならそれほど非現実な数字でもないんだろうけど
- 810 :デフォルトの名無しさん:2017/01/23(月) 00:41:33.95 ID:ft2qOqRV.net
- 803じゃないけど、
10〜20個くらいのプロパティを持つクラス(ほとんどstring型)の、数百万個単位のインスタンスを処理したい
(現在百数十万個だがデータは日々増えていて、将来的には500万個以上のデータを扱いたい)
データ追加時を除けば1つのデータのプロパティを書き換えることはあまりない
全データを対象に集計や抽出をバリバリやる
今はこのクラスのジェネリックリストでメモリ上に保持していて、XmlSerializerとStreamReader/Writerでロード/セーブしてるけど、
500MB以上のファイル読み書きに十秒単位で時間が掛かるようになってきてしまい、使用メモリも多いときは1GBに届きそうになってきた
個人のPCでも実現出来る範囲で何か工夫して軽量化するとすれば、どういうやり方があるだろうか
データベースを使うと却って重くなる?
- 811 :デフォルトの名無しさん:2017/01/23(月) 01:00:04.12 ID:AKblCqbZ.net
- DB使え
- 812 :デフォルトの名無しさん:2017/01/23(月) 01:17:39.68 ID:ft2qOqRV.net
- やはりデータベースか…
この規模のデータでデータベースを使うなら何がいいですかね?
- 813 :デフォルトの名無しさん:2017/01/23(月) 05:19:54.65 ID:3LnhEFNW.net
- >>810
むしろそんなになるまでデータベースを使わない選択をしてたのが信じられんわ
- 814 :デフォルトの名無しさん:2017/01/23(月) 07:25:59.67 ID:4eKNVnEB.net
- >>812
postgresかな
高性能で、ライセンスが緩く、比較的ローカルでも利用されることの多い非常に有名なDBMSだ
広く配布するようなものではなさそうに見えるから、
SQLiteみたいな組込型に拘る必要はないと思う
- 815 :デフォルトの名無しさん:2017/01/23(月) 08:36:41.41 ID:mc6Hyr1K.net
- >>812
SQL-SERVER LocaDB でいいんじゃね?
Visual Studio から操作できるし
他の端末からも参照したいって言われたら SQL-SERVER Express に移行すればいいし
もっとでかくなったら Standard や DataCenter Edition あるし
- 816 :803:2017/01/23(月) 11:57:28.95 ID:Enhoy4E3.net
- >>804
>>805
>>807
>>808
レスありがとうございます
<gcAllowVeryLargeObjects> を有効にしてもbyte配列自体が2GB超えて作ることができないため
それそも不可能ということでよろしいですか?
その場合、int32などに配列作りなおしたいと思います
- 817 :デフォルトの名無しさん:2017/01/23(月) 12:04:12.14 ID:uKeJP+/b.net
- byte[]としては無理
byte*にするなら可能
- 818 :デフォルトの名無しさん:2017/01/23(月) 13:01:08.68 ID:GKpZ78C8.net
- >>816
バイナリファイルの編集が目的ならreader/writer使えば良いんじゃないの
- 819 :デフォルトの名無しさん:2017/01/23(月) 21:01:33.61 ID:bI3M8V88.net
- >>816
ビルドターゲットはx64になってる?
AnyCPUだと最近のは32bitを優先がデフォルト設定だから上手く行かないかも。こっちを直しても良いけど。
いずれにせよ、64bit環境は必須。
- 820 :デフォルトの名無しさん:2017/01/23(月) 21:16:01.30 ID:4O+fDoKV.net
- >>815
SQL Server Expressは10GB制限があるから話にならんよ
DBまでわざわざMSにロックインとかアホらしいし
- 821 :デフォルトの名無しさん:2017/01/23(月) 21:55:33.04 ID:3LnhEFNW.net
- >>820
じゃあ何がおすすめなの?教えて先生!
- 822 :デフォルトの名無しさん:2017/01/23(月) 21:58:50.93 ID:hTicmAdc.net
- postgreオヌヌメ
- 823 :デフォルトの名無しさん:2017/01/23(月) 21:59:47.37 ID:LuyUsAN1.net
- >>820
10GBも有れば十分だと思う
- 824 :デフォルトの名無しさん:2017/01/23(月) 22:29:35.23 ID:4O+fDoKV.net
- >>823
既に500MBあってまだまだ増えるって言ってるのに何を根拠に十分だというのか
いくつも一時テーブル作ったりしたらカツカツだろ
DBってそれぞれに結構癖屋独特のノウハウがあるから、後で問題が出てから乗り換えるより最初から一本に決めたほうがいい
MSに金払う気がないならpostgresにしとけ
- 825 :デフォルトの名無しさん:2017/01/23(月) 22:53:34.66 ID:uKeJP+/b.net
- >>824
>(現在百数十万個だがデータは日々増えていて、将来的には500万個以上のデータを扱いたい)
> XmlSerializerとStreamReader/Writerでロード/セーブしてるけど、
> 500MB以上のファイル読み書きに十秒単位で時間が掛かる
今のデータで考えると10GBには百数十万個の20倍
今のデータはxml
どんな根拠で10GBが不十分だというのか逆に聞きたい
- 826 :デフォルトの名無しさん:2017/01/23(月) 22:59:20.56 ID:UsEI+ALW.net
- >>824
理由もなしにpostgresとな
- 827 :デフォルトの名無しさん:2017/01/23(月) 23:08:01.01 ID:wWnQplUy.net
- 話は変わるけど、LocalDBをOS標準にしてくれると嬉しいんだけどな
- 828 :デフォルトの名無しさん:2017/01/23(月) 23:15:06.54 ID:wcSM/s0i.net
- いまだにPOCOの概念がよくわからないんだけど、POCOと対になるものと併せて誰か教えてクレメンス
- 829 :デフォルトの名無しさん:2017/01/23(月) 23:19:31.21 ID:4eKNVnEB.net
- >>828
わかりやすいのは型付データセットだな
強制された基底クラスや大量の自動生成コードにクソミソに汚されたクラスのことだ
- 830 :デフォルトの名無しさん:2017/01/23(月) 23:25:33.94 ID:8CargB7Y.net
- DBはころころ変わり続けるのはもうやめてほしいな
- 831 :デフォルトの名無しさん:2017/01/24(火) 01:13:39.09 ID:JiOoKhp+.net
- >>816
GetValueなら64bitを指定できはする
64bitなら一応確保できるのかなぁ
だけど、そもそも2GB超の連続領域を安定して確保できるかは不安
メモリマップとかも検討したら?
- 832 :デフォルトの名無しさん:2017/01/24(火) 08:39:50.24 ID:HHZbO6eg.net
- >>820
> SQL Server Expressは10GB制限があるから話にならんよ
生の XML を格納する訳じゃないだろうしデータ圧縮もできるし話にならないのは君のちんけな知識じゃないかな? w
PostgreSQL もいいと思うけどちょっとしたデータの確認とかを Visual Studio でできる SQL-Server の便利さは捨てがたい
- 833 :デフォルトの名無しさん:2017/01/24(火) 08:42:05.80 ID:JKcqAdCJ.net
- その程度の便利さならどうでもいいな
GUIの管理ツールを使えば済む話
- 834 :デフォルトの名無しさん:2017/01/24(火) 08:42:56.64 ID:HHZbO6eg.net
- >>827
内部的には SQL-Server のプロセス動いてるから大多数の人には邪魔にしかならんと思う
- 835 :デフォルトの名無しさん:2017/01/24(火) 08:46:39.86 ID:ghFC1Ntr.net
- sqlserverってselectでもデッドロックするからヤダ
- 836 :デフォルトの名無しさん:2017/01/24(火) 10:25:32.84 ID:tgh5wy6g.net
- >>834
Vistaか7あたりから、ファイルシステムがSQL Serverベースになるという話があったよな
- 837 :デフォルトの名無しさん:2017/01/24(火) 10:52:48.75 ID:g9KGWoah.net
- >>835
ちょっとはググれよ
- 838 :デフォルトの名無しさん:2017/01/24(火) 11:02:46.65 ID:tjYeiy24.net
- OSにDBもたせるとかまたセキュリティホールの温床やん
無駄な機能は悪
- 839 :デフォルトの名無しさん:2017/01/24(火) 11:05:54.15 ID:4uwrNeCv.net
- DB=セキュリティホールときたかw
- 840 :デフォルトの名無しさん:2017/01/24(火) 11:23:21.18 ID:1ohBhH6C.net
- 痴性溢れる御意見ですね
- 841 :デフォルトの名無しさん:2017/01/24(火) 11:25:32.73 ID:b/7/gkXo.net
- たしかにレジストリも一種のDBでセキュリティホールの温床だから
OSで各種設定を保持するのはやめよう(名案)
- 842 :デフォルトの名無しさん:2017/01/24(火) 11:28:18.15 ID:nhx4+y/y.net
- >>836
頓挫しちゃったのが勿体無い
- 843 :デフォルトの名無しさん:2017/01/24(火) 11:47:35.47 ID:HE6oytLN.net
- ゲイツ3世さんがずいぶん入れ込んでたみたいだったけど、正直俺にはアレのメリットが
さっぱり理解できんかった。
- 844 :デフォルトの名無しさん:2017/01/24(火) 12:20:30.56 ID:b/7/gkXo.net
- ツリー式のファイル管理はもう人が把握できる限界に近づいてると思うし
もっとリッチなタグ情報をファイルシステムで持たせて
OSの検索機能に統合する思想は支持するよ
- 845 :デフォルトの名無しさん:2017/01/24(火) 12:43:39.44 ID:HHZbO6eg.net
- >>833
> GUIの管理ツールを使えば済む話
それをいちいちインストールするのが面倒だって話
- 846 :デフォルトの名無しさん:2017/01/24(火) 12:47:25.25 ID:HHZbO6eg.net
- >>836
WinFS か
いい考え方だと思うがちょっと構想が壮大すぎたな
- 847 :デフォルトの名無しさん:2017/01/24(火) 13:11:04.23 ID:VXWwcrkC.net
- ゲイツは過去にXMLは使い物にならないと言った。
WinFS、WPF・・・ゲイツはやはり生粋のプログラマである。
- 848 :デフォルトの名無しさん:2017/01/24(火) 15:21:09.38 ID:iRQG5obN.net
- WPFでXAMLにGoサインだしておいてよく言う
- 849 :デフォルトの名無しさん:2017/01/24(火) 15:39:07.83 ID:VXWwcrkC.net
- ゲイツはVista以降はタッチしていない。
- 850 :デフォルトの名無しさん:2017/01/25(水) 03:10:02.58 ID:WHRwTArY.net
- >>847
全部読まないと一部分が取り出せないってのがデータが多くなると致命的だよね
- 851 :デフォルトの名無しさん:2017/01/25(水) 07:15:37.99 ID:fntd/u0o.net
- そこまででかいならDB使えってことでしょ
- 852 :デフォルトの名無しさん:2017/01/25(水) 11:50:15.36 ID:3NBpStvW.net
- JAVAやVB6、WPF、LINQが遅くないと暴れてるアホと同じ臭いがする。
機械語NativeとそうでないPGとに根本的な認識の断絶がある。
- 853 :デフォルトの名無しさん:2017/01/25(水) 11:53:43.34 ID:2idQLFdG.net
- 悪いけど暴れてるのは君の方だと思うw
- 854 :デフォルトの名無しさん:2017/01/25(水) 11:59:10.65 ID:uJriqNlz.net
- 同感w
- 855 :デフォルトの名無しさん:2017/01/25(水) 12:27:26.41 ID:eMOc+Lms.net
- もう一票
時代について行けてないお爺ちゃん頑張って
- 856 :デフォルトの名無しさん:2017/01/25(水) 12:38:38.29 ID:obtTERoQ.net
- そもそもVB6は割りと早かっただろうに
C#に移行するときにモッサリ感でイライラした人も多かったはずだが
- 857 :デフォルトの名無しさん:2017/01/25(水) 14:12:06.66 ID:LppA2Fcl.net
- C#も実行時は機械語だし、VB6なんて完全に機械語だろ
- 858 :デフォルトの名無しさん:2017/01/25(水) 14:18:51.33 ID:7AoQtGUX.net
- >>855
+1
>>854
+1
>>853
+1
>>852
-1
- 859 :デフォルトの名無しさん:2017/01/25(水) 16:32:03.08 ID:ABI1PFb6.net
- ラムダガイジ、LINQガイジ、staticおじさん、VBガイジは巣に帰れ
- 860 :デフォルトの名無しさん:2017/01/25(水) 19:30:14.67 ID:/wdbuGDr.net
- 俺も>>853にもう一票。
ただそれ以前に暴れている奴がいないと思うが。
あとC#はnativeでは無くMSILだろ。そして必要十分な速度は出ていると思うよ。
DBについては、自前でDBモドキを作る位なら最初からDB使えって話だろ。
ただしOSは今のNTFS+検索用インデックス(現行システム)でいいと思うけどね。
大半は階層化で問題ないし、必要あればDBを動作させればいいだけ。
WPFは使ったこと無いが、中途半端なものを作るのではなく、
最初からHTMLにしとけばよかったと思う。
- 861 :デフォルトの名無しさん:2017/01/25(水) 19:33:54.26 ID:G7Mt73tJ.net
- >>860
C#は実行時はネイティブだよ
Javaみたいなインタプリタとのハイブリッドとも違い、ほぼAOTな方式
- 862 :デフォルトの名無しさん:2017/01/25(水) 19:34:38.55 ID:uJriqNlz.net
- >>857が言ってるのはCPUに命令渡されるときは機械語だってような意味でしょw
- 863 :デフォルトの名無しさん:2017/01/25(水) 20:00:27.57 ID:/wdbuGDr.net
- >>861
JITと言えよ。話が余計におかしくなるだろ。
とはいえMonoは直接native吐けるようだが。
- 864 :デフォルトの名無しさん:2017/01/25(水) 20:06:49.55 ID:a2fwv9ft.net
- >>863
.NETは起動時にコンパイルだから、JavaのHotSpotみたいなのが真のJITだとするなら実質的にはAOT寄りでしょ
あくまでコンパイルするタイミングの問題でしかないので、ngenや.NET Nativeみたいなのも技術的に難しくない
Cのソースを実行前にコンパイルしてるようなもんだ
- 865 :デフォルトの名無しさん:2017/01/25(水) 21:03:29.96 ID:/wdbuGDr.net
- >>864
所詮は言葉の定義だから争う意味はないんだが、
普通は「直接実行出来ない形式」(=MSIL)で配布され、
それを実行時(=CLR)に機械語に変換して実行するのなら、それはJITと言う。
MonoのAOTは見た目EXビットの対策用で、結果的にnativeが入手出来るが、それはJITより効率が悪い。
例えばJavaScript(V8)の場合は実行時にまず手抜きJITを行い、実行する。
そして何度も実行される部分だけ、最適化JITを行う。
最適化JITを最初から全面的に行わないのは、最適化にも時間がかかるから。
つまり、「JITコンパイル時間+実行時間」が最小になるように最適化している。
もちろん最適化JIT済みのnativeを吐くのも簡単なはずだが、必要ないから見たことはない。
Javaは知らんがHotJavaも同じようなコンセプトだったので、多分同じ。
結局、MonoのAOTは「常に最適化JIT」を全面的に行う分だけ効率が悪い。
ただしAOT済みのexeを配布/使用する場合はJIT時間分だけ効率がよくなる。
MonoはLinux等もターゲットにしているのでAOTが必要だが、
動的コードを実行出来る環境(windows)では必要なかった。
ここで.NET Nativeが出てきたところをも見ると、MSもJIT時間が気になっていたということではある。
.NET NativeならAOTと言っていい。
ただの.NET(MSIL)なら、やっぱりJITだよ。それは実行時(ダブルクリック以降)にコンパイルしている。
最初から全面最適化JITするという、頭の悪いJITを積んでいるだけでしかない。
ではC#は?というのはこの意味では質問が悪いが、
今のC#はMSILが主流だと思うが、
所詮大半はwindows/x86(x64)でしかないのでexeでも問題ないし、今後は変わるのかもね。
ちなみに.NET Nativeにしたら、難読化はかなり進むのかな?
- 866 :デフォルトの名無しさん:2017/01/26(木) 02:07:47.45 ID:NrOKhjjD.net
- >>865
技術が進歩したり、複合技を使うようになったから言及することにあんまり意味はないんだけどね
MSILで配布してインストーラでngenをかけるソフトとか、AndroidのArtの事前コンパイルを見ればAOTというのも間違いではない
- 867 :デフォルトの名無しさん:2017/01/26(木) 07:09:13.07 ID:hf6GrTPo.net
- 今度は完全に論破しないと気がすまない奴が集まりだしたなぁ
- 868 :デフォルトの名無しさん:2017/01/26(木) 09:22:35.13 ID:+HXQGO57.net
- c#で出来たms製の製品って何がありますか?
- 869 :デフォルトの名無しさん:2017/01/26(木) 09:47:45.25 ID:e+Zq8z+D.net
- >>868
Visual Studio
- 870 :デフォルトの名無しさん:2017/01/26(木) 10:33:30.90 ID:MZPXqvXg.net
- >>869
devenv.exe
cl.exe
ml.exe
nmake.exe
link.exe
こういうの全部ネイティブなんだが、C#で作ってネイティブ化してるのか?w
- 871 :デフォルトの名無しさん:2017/01/26(木) 11:30:14.20 ID:Bx3m0kqD.net
- >>870
例えばdevenv.exeとかファイルサイズが1MBすら無いけどそれだけでVS動いてんの?
- 872 :デフォルトの名無しさん:2017/01/26(木) 12:08:47.81 ID:sD2fcvWW.net
- >>871
何馬鹿なこと言ってるんだ?
今俺が起動してるVSだとntdll.dlljから数えて426モジュールロードされてるが、その中にはC#で作られてるのもあるよ
VSはVSで作られてるかもしれんが、VSはC#で作られてるとは言わないだろ
- 873 :デフォルトの名無しさん:2017/01/26(木) 12:13:43.88 ID:ecr0NxNG.net
- 馬鹿はおめーだよ死ねガイジ
- 874 :デフォルトの名無しさん:2017/01/26(木) 12:23:03.13 ID:A9+CgNOi.net
- どうでもいいですよ
- 875 :デフォルトの名無しさん:2017/01/26(木) 14:11:50.02 ID:+5gKaLQm.net
- >>872
>その中にはC#で作られてるのもあるよ
どのくらいの割合で?
- 876 :デフォルトの名無しさん:2017/01/26(木) 14:51:13.51 ID:sD2fcvWW.net
- >>875
このスレにいるならVSぐらい入れてるだろ。興味あるなら自分で数えろよ
- 877 :デフォルトの名無しさん:2017/01/26(木) 15:46:52.91 ID:NrOKhjjD.net
- VSはWPF製
- 878 :デフォルトの名無しさん:2017/01/26(木) 15:54:26.65 ID:mfu+uciH.net
- ガワがWPFでネイティブツール群を呼び出しているならC#製と言っていいね
- 879 :デフォルトの名無しさん:2017/01/26(木) 16:25:36.23 ID:eYmqMcR3.net
- VS2010からWPFになって激重。
- 880 :デフォルトの名無しさん:2017/01/26(木) 17:41:07.76 ID:Ofw1Wwb+.net
- SSD君登場
- 881 :デフォルトの名無しさん:2017/01/26(木) 18:25:52.64 ID:BIlB42US.net
- "PrismUnityApplication" は名前空間 "using:Prism.Unity.Windows" に存在しません。
とエラー一覧に出るようになって
<prism:PrismUnityApplication
に波線が付くようになったんだけどどうすれば直りますか?
プログラムは何の問題もなく動きます。
- 882 :デフォルトの名無しさん:2017/01/26(木) 18:38:59.08 ID:RbsnIhge.net
- >>879
逆でしょ
偶にVS2010使うと糞重くてイライラするぐらいなのに
- 883 :デフォルトの名無しさん:2017/01/26(木) 20:12:45.99 ID:FrBndq/i.net
- 質問すみません
今MVCでEntityFrameworkの勉強中なんですけど、DisplayNameの属性で日本語指定すると文字化けするんですが何が原因と思われるでしょうか
- 884 :デフォルトの名無しさん:2017/01/26(木) 20:39:43.56 ID:kmw2XayL.net
- >>883
えーっと俺も経験あるような気がするんだが思い出せない。
どうにかしたら直ったと思う。
- 885 :デフォルトの名無しさん:2017/01/26(木) 20:50:44.48 ID:Ofw1Wwb+.net
- >>881
気にしない
xamlのコンパイラ統合は未だみたいだね
- 886 :デフォルトの名無しさん:2017/01/26(木) 21:45:58.05 ID:3P/eAUHh.net
- >>884
ありがとうございます
そうですか。このあいだまでは確か普通に出来てたんですよね。。
プロジェクト変えたりweb.configでencoding書いてみてもダメでどうしたものかと
- 887 :デフォルトの名無しさん:2017/01/26(木) 21:47:05.34 ID:He8RO7U3.net
- >>866
何で君がAOTということにしたいのかよく分からんが、
俺は誤解の少ない言葉を使えと言っているだけ。
主流派がMSILならJITと言うべき。
主流派が君の言うようにnativeならAOTと言うべき。それだけ。
君がAOTだと言い張るのは自由だが、周りから見たら面倒な奴でしかない。
ただAOTは時間予算が潤沢であるところが本質的に異なる。
> しかし,AOT方式をいざ導入してみると,サイズの大きなアプリのインストールや,
> 一度に複数のアプリをアップデートするような場合にコンパイルに時間がかかり,
> 場合によっては20分程度かかるケースが存在していたようです。
> このインストール時間を問題と捉えて,
> Android NのARTでは,JIT方式をもう一度使うことになりました。
> これまでのAOT方式を止めてしまったというワケではなく,実行のタイミングが変わり,
> 端末がアイドル中かつ充電されている場合のみに変更されることになりました。
> http://gihyo.jp/lifestyle/clip/01/awt/201603/24
だから単純に持ってきた場合にはこういう事が起きる。
ちなみにngenも同様の仕組みは持っている。
> https://msdn.microsoft.com/ja-jp/library/6t9t5wcf(v=vs.110).aspx
最近思うのは○○言語スゲーという信者が多いこと。
C#はそういう馬鹿は比較的少ない感じだが、君がそうなら、それは止めた方がいい。
C#は開発速度を最適化した言語で、結果的に実行効率はC/C++より悪いし、よくなることはない。
これを踏まえた上で、そのアプリにとって最適な言語を選択すればいいだけのこと。
- 888 :デフォルトの名無しさん:2017/01/26(木) 21:48:44.28 ID:6c1mJ3TJ.net
- >>875
デバッガのホストのように、目的の性質上ネイティブでなければならない一部のものを除けばほぼ全て
VS2010のときに全面的にC#で作り直したらしいよ
VSはC#で書かれたマネージドアプリだと公言してるし
- 889 :デフォルトの名無しさん:2017/01/26(木) 21:57:18.89 ID:6c1mJ3TJ.net
- >>887
誤解の少ない言葉を使えと言いながら実行速度の話とJITをごっちゃにして不要な混乱を招くのはいかがなものか
原理的にはJITの方が実行時のプロファイルをヒントとして最適化ができる分だけ有利だ
あとは起動時間や実行時にコードを差し替えるコストとのトレードオフだが、
サーバーならそこは全く問題にならないので実際JavaのHotSpotなんか(あくまでサーバー用としてはだが)すごく高性能だよ
重い処理やらせると段階的に最適化されて速くなっていくのが目に見えて、最終的には素直に書いたC++を超えるケースもある
- 890 :デフォルトの名無しさん:2017/01/26(木) 22:14:43.93 ID:kmw2XayL.net
- >>883
ファイルのエンコードデングが関係してないか?
- 891 :デフォルトの名無しさん:2017/01/26(木) 22:15:11.50 ID:BIlB42US.net
- >>885
Blendで試したらエラーもなく、デザイナーも表示されたのでこれでしのぐことにします。
- 892 :デフォルトの名無しさん:2017/01/26(木) 22:19:59.87 ID:vDjllkLc.net
- >>881
可也期待薄だが、俺の環境のxamlのトラブルは
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/f7541527-df77-4bd7-8458-f90565bf34b4/visual-studio-2015-?forum=wpfja
の一番最後の方の解決法で何とかなった
こっちはblend関係だから望み薄だが、やっても害が出るものじゃないしよろしければどうぞ
- 893 :デフォルトの名無しさん:2017/01/26(木) 22:28:27.88 ID:uLxLwJKu.net
- >>888
> VSはC#で書かれたマネージドアプリだと公言してるし
ソースある?
- 894 :デフォルトの名無しさん:2017/01/26(木) 22:34:12.57 ID:He8RO7U3.net
- >>889
つか、全体として何が言いたいのか分からない。
C#についてなら、俺は主流はMSILだと思っているから、JITと言う方が適切だと言っている。
俺の認識が間違いで、主流は既にnativeであれば、AOTという方が適切だ。
君がそう思っているのならそれでいい。
C#の方がC/C++よりも高速であれば、高速アプリは全てC#で開発されることになる。
実際は、高速アプリは全てC/C++で組まれてるだろ。これが現実。
速度差は仕様差から来ているから、今後ともこれは埋まらない。
> 最終的には素直に書いたC++を超えるケースもある
JA馬鹿も同じ事を言うのだが、探して見つけて喜んでいる時点でゴミ。
アプリの性質を考えて、適切な言語を選択すればいいだけ。
ただ現実的にGUIも含めて全部C/C++で組むのもだるいので、
NumPyが流行るのも分かるし、実際あのアプローチがいいと思うが。
いずれにしても、C#信者ならそれは止めておけ。
それぞれ得手不得手はある。それは当たり前の話。
万能言語があったらこんなに乱立しない。
- 895 :デフォルトの名無しさん:2017/01/26(木) 22:54:19.21 ID:7sPtmcfc.net
- 長文ウゼエ
- 896 :デフォルトの名無しさん:2017/01/26(木) 22:57:35.93 ID:SLW9Whol.net
- 速度はC++の方が早いよ
でも普通のアプリならそこまで問題にならない程度の差
- 897 :デフォルトの名無しさん:2017/01/26(木) 23:03:14.05 ID:C8HlRM2h.net
- なんか昨日から長文野郎が常駐してて空気が悪くなってる
- 898 :デフォルトの名無しさん:2017/01/26(木) 23:03:30.86 ID:GQnwZs38.net
- >>890
ありがとうございます
確認してみます!
- 899 :デフォルトの名無しさん:2017/01/26(木) 23:30:49.26 ID:NrOKhjjD.net
- >>894
自分で争う意味はないって言ったのになんでそんなに定義にこだわるんだ?
俺を含めて、一般的にはJITと呼ぶ(個々を見るとAOT的な側面や使い方もあるね)って言ってるだけだぞ
- 900 :デフォルトの名無しさん:2017/01/26(木) 23:50:28.00 ID:NrOKhjjD.net
- >>894
あと、>>889はJavaやC#がC++よりはやいとか優れてるなんていってないじゃん
Javaも悪くはない言語選択だよっていってるのに
お前は何か、みんなが前提として理解してることを延々と説明してる感じ
- 901 :デフォルトの名無しさん:2017/01/27(金) 00:00:30.43 ID:sOrVpnzk.net
- 高速アプリが全てC++で組まれてるというのも思い込みもいいとこだな
AmazonがC++でやっててクソ遅かった大規模データ処理が
Java+Hadoopに乗り換えることで大幅に改善されたという例もある
今時言語の速度なんてあくまで要素の一つに過ぎないんだよ
- 902 :デフォルトの名無しさん:2017/01/27(金) 00:06:54.41 ID:FPm896mM.net
- >>901
こういう馬鹿のデスマーチの尻拭いを何度したことか。氏ね。
- 903 :デフォルトの名無しさん:2017/01/27(金) 00:07:53.10 ID:fDORPAeX.net
- 別に長文でもスレ違いでも参考になるようなレスなら何とも思わないけど
今のこれは実にくだらないねw
- 904 :デフォルトの名無しさん:2017/01/27(金) 00:11:06.35 ID:a4ei9zsf.net
- ガチのHPCだとコアはCUDAだったりFortranも現役だったりで、これまたC++とは限らない
あまりにも見識が狭すぎる
- 905 :デフォルトの名無しさん:2017/01/27(金) 00:24:44.98 ID:QXZBJ6J+.net
- 長文はキチガイ
- 906 :デフォルトの名無しさん:2017/01/27(金) 00:29:28.64 ID:CH0FWDPd.net
- >>899
おいおいすりかえんなよ。
俺はC#はJITと言う方が近いと言っている。
君はC#はAOTだと言い張っている。
俺は君が「C#はAOTだ」と言い張る理由が分からない。
C#に問題があるとしたらまずは速度だ。AOTと言い張る理由にもなる。
だからそれに言及しただけ。
では何故AOTだと言い張るのか理由をを言ってみてくれ。
俺はCUDAも使ったことあるよ。
ただそれをここで言う意味もないだろ。
- 907 :デフォルトの名無しさん:2017/01/27(金) 00:30:54.80 ID:iNBXS39I.net
- 申し訳ないが3行以上はNG
- 908 :デフォルトの名無しさん:2017/01/27(金) 00:31:00.69 ID:g7nuPYvQ.net
- >>906
.NET Native知らないの?
- 909 :デフォルトの名無しさん:2017/01/27(金) 00:54:42.49 ID:9J0c8boi.net
- 本日のNGID:CH0FWDPd
- 910 :デフォルトの名無しさん:2017/01/27(金) 01:49:06.49 ID:z/+I8zAR.net
- >>906
「JITのほうが近い、ただしAOT的な側面もある」をどうやったら「C#はAOTだ」に変換できるんだ?
多分、お前は「AOT=配布時に機械語、JITとは真逆の概念」みたいな定義にこだわりがあるから話が合わない
みんなは「AOT的=実行する瞬間以外の機械語へのコンパイル」程度の認識だから、ネイティブキャッシュとかArtの事前コンパイルもAOT的と捉えてるだけだ
ただ、.NET Nativeはまだしも、iOS向けUnityとXamarinがそれなりに使われてるので「C#はJIT」は誤解を招く気もするけどね
- 911 :デフォルトの名無しさん:2017/01/27(金) 02:14:06.13 ID:fDORPAeX.net
- 実にどうでもいいんだけど、そういうアーキテクチャー的な話をするんなら、
言語としてのC#と、そのWindows版.NET Framework用の実装は
一応理念的には別門だって前提で議論しないとまずいんじゃないのそもそもw
- 912 :デフォルトの名無しさん:2017/01/27(金) 02:19:16.89 ID:fDORPAeX.net
- しかしあれだね「、.NETの言語はJITだから実行環境に合わせた最適化がされるようになる」
っていううたい文句は最初の.NET1.0のころからあるけど、
これ今はちゃんと実現されてるんだっけ?
- 913 :デフォルトの名無しさん:2017/01/27(金) 03:21:05.61 ID:z/+I8zAR.net
- >>912
SSE命令関連とかは結構頑張ってるみたいだね
一応.NET NativeでAOTするのと比べて優位を保てる程度には最適化してるらしい
http://blogs.microsoft.co.il/sasha/2014/04/28/net-native-performance-internals/
ちょっと古いから今はどちらも改善されてるかもしれんが
- 914 :デフォルトの名無しさん:2017/01/27(金) 23:51:25.19 ID:CH0FWDPd.net
- >>910
俺が問題にしているのは>>861の
> ほぼAOTな方式
についてだぞ。全然そんなこと無いだろ、という話をしている。
ただまあ、お前らが過剰に反応するのはお前ら自身も理解出来ているからだと思うが、
誤解のない表現で言い切ってしまうと以下だ。
・C#は遅い
・C#は20年後には無くなる言語
速度面については、native化や最適化でいいところまでは行くだろうが、
仕様上、保護無し、ランタイム無しで突っ走るC/C++には勝てない。
JITガーって言う意見もあるだろうが、CでもJITしてはいけないわけではなくて、
Cでも関数ポインタが不変なら関数の中身を差し替えたところで問題はない。
だからスカスカに配置しておいて差し替えることも可能ではある。(誰もやってないが)
そもそもDLLだけアップグレードすることは今でも問題ないわけだし。
速度面でC/C++に勝つ芽は今後ともない。
.NETのコンセプト、全ての言語/環境で同じフレームワーク、というのは素晴らしかった。
ただそれも過去形だ。
色々あった言語(VB/J++/VC++)も結局C#に統合されつつあるし、あとはせいぜいF#位か。
.NET compactは結果的にマーケットを取れずに失敗した。
全ての言語/環境での共通フレームワークはHTML/ブラウザでほぼ確定した。
今C#がまだ生きているのはJavaがあの体たらくだからだ。
とはいえ、見て分かるとおり結果的にC#とJavaはモロ被りだ。
そして一応Javaも動きだした。(Java8)
JavaとC#のシェアでは喧嘩にならないし、Javaで済む場合にC#を選ぶ理由がない。
今現在はJavaは相変わらず糞だが、今後機能追加されてC#との差が無くなると死ぬのはC#。
C#信者はこれをちゃんと認識しておいた方がいい。
C#は差別化出来ていない。
- 915 :デフォルトの名無しさん:2017/01/28(土) 00:01:46.77 ID:lJFdXfrP.net
- 20年も残るなら十分
- 916 :デフォルトの名無しさん:2017/01/28(土) 00:15:29.48 ID:vlmW/cIj.net
- >>914 ※個人の思い込みです。
- 917 :デフォルトの名無しさん:2017/01/28(土) 00:16:54.48 ID:rD7WeMm9.net
- 後はbuilderスレ辺りで続きをやって下さいって事で
- 918 :デフォルトの名無しさん:2017/01/28(土) 00:24:24.84 ID:lGyRVc7d.net
- >>914
10年前の過去スレかと思ったわ。
- 919 :デフォルトの名無しさん:2017/01/28(土) 00:29:22.98 ID:GpK52peC.net
- JAVAは特許絡みで自滅しそうだけどな。
Googleも.NET Foundationに加入したことだし、脱JAVA考えてたりして。
- 920 :デフォルトの名無しさん:2017/01/28(土) 00:33:11.09 ID:B8Cbj4aW.net
- >>918
だなww
- 921 :デフォルトの名無しさん:2017/01/28(土) 00:50:41.15 ID:cRpkhDFF.net
- Javaは環境に排他的なところがあるからなあ
JVMの世界にどっぷり浸かってしまえば楽なんだが、
PHPやらRailsやら他にもいろいろ使ってるとJavaだけデプロイが異色すぎる
その点 .NET Core は今時のWebらしいデプロイ方法を実現してるので非常に馴染みやすい
Javaの置き換えというより、スクリプト+αとしてのGoに代わる選択肢の一つとして普及する可能性は高いんじゃないかな
- 922 :デフォルトの名無しさん:2017/01/28(土) 01:05:26.39 ID:iWacJ3fP.net
- .net nativeがスタティックリンクでライブラリから必要なクラスだけ取り込む仕組みなのを知らないとはね
- 923 :デフォルトの名無しさん:2017/01/28(土) 03:02:12.31 ID:VlCpYCgG.net
- >>914
それ俺じゃないし、そのレスもAOTの定義次第でしょ
君が言葉の定義にこだわりがあるのはわかったからそんなにAOTに過剰反応するな
言語の20年後は予想するだけ無駄
C/C++もgoやrustに置き換えられてるかもしれないし、Javaの代わりにKotlinがJVMの中心になってるかもしれない
ハードと通信の向上で富豪プログラミングができるといいけど、ナノマシンとかの制御のために今より貧相なハードウェア要件だったりするかもね
- 924 :デフォルトの名無しさん:2017/01/28(土) 06:50:26.81 ID:7LkpJPRm.net
- C++が、FORTRAN化している。
- 925 :デフォルトの名無しさん:2017/01/28(土) 07:29:56.62 ID:bLDCN2m1.net
- >>916
妄想だろ w
本人楽しそうだしいいんじゃね?
- 926 :デフォルトの名無しさん:2017/01/28(土) 09:05:59.37 ID:O0GHMxPw.net
- VisualStudioの無いC#なんて
- 927 :デフォルトの名無しさん:2017/01/28(土) 09:35:59.59 ID:O0GHMxPw.net
- rust.NETは未だかね?
- 928 :デフォルトの名無しさん:2017/01/28(土) 09:48:31.29 ID:vlmW/cIj.net
- >>926
Windows7に標準装備されてるcsc.exeは役立ったよ
入力支援のないメモ帳でコーディングするのはちょっと面倒だったけど
小物アプリ作ったり、暇つぶしに十分だった
- 929 :デフォルトの名無しさん:2017/01/28(土) 11:45:36.61 ID:QNTErMWx.net
- >>918
確かに10年前もほぼ同じ状況だったろうね。
ただJavaはそこから全く進歩しなかった。それで延命してる。
>>919
MSは何だかんだで技術力は相当あるし、OracleではJavaを発展させられないのも事実だ。
とはいえ、周回遅れでよければ他言語のいいところを採り入れればいいだけ。
これならOracleにも出来る。
今のC#が生き残るとしたらJavaを食らうことだが、
現代のCOBOL化しつつあるJavaはもう食いきれない。
(Javaは向こう30年の需要はあるし、その後他言語に移行するメリットもない)
周回遅れであってもJavaが追いついてくる限りC#は死ぬ運命だ。
(ただし逆に、周回遅れであるうちは死にきらないとも言えるが.。)
>>921
Javaが殿様商売でブラウザから外されてあたふたしていたのは事実だ。
Web系の連中はその辺も含めてJavaは嫌いかもしれないね。
とはいえC#がサーバサイド言語として君臨するとも思えない。
C#にはサーバ用途のサポートがなく、移行される理由がない。
C#の特徴はLINQだけど、それがどこの分野にフィットするかだね。
- 930 :デフォルトの名無しさん:2017/01/28(土) 11:46:16.89 ID:QNTErMWx.net
- >>923
分からないことは考えない、さすがのゆとりだな。
確実に言えるのは、今のままのC#だと生き残る芽がないこと。
もちろんMSも分かっているだろうから、色々試してはいるのだろうけど。
C#はPascalと同じでベンダーが一つだ。よってMSが辞めますといったらいきなり終わる。
C/C++はその点各社各様なので誰も終わりの号令を出せない。
機能的にもあの範囲では完成しているし、今後共、流行はしないが使われ続けるだろう。
ただし開発効率がいいとは誰も思ってないだろうし、その点色々努力は為されるはずだ。
JVM言語群はJavaの発展には寄与するだろう。
ただそれらもJavaが追いついてくれば死ぬ運命にある。もっともこれは幸せな死だが。
で、C#もランタイムが違うだけでほぼJVM言語群と立ち位置が同じだろ、という話。
お前らが「C#は永久に不滅です!」なんて思ってるのなら完全に勘違いだぞ、というだけ。
ただそこまで信者化する理由もよく分からんのだがな。
C#が死ぬ頃にはC#とJavaの差異も今より無くなっているはずで、移行は容易だ。
逆に差異がある状態ならC#が死ぬこともない。
- 931 :デフォルトの名無しさん:2017/01/28(土) 11:51:01.14 ID:sBhxwabY.net
- 次スレはふらっとみたいにワッチョイ付けてもらえるとNG楽でありがたい
- 932 :デフォルトの名無しさん:2017/01/28(土) 12:03:08.93 ID:PWlkAQF7.net
- C#の心配はもういいからとりあえず病院行ってこいよ
- 933 :デフォルトの名無しさん:2017/01/28(土) 12:09:23.15 ID:7tAJxods.net
- もう言語の優劣とかこの後とか考えるのやめようよ
好きなの使えばいいじゃん
- 934 :デフォルトの名無しさん:2017/01/28(土) 12:09:39.25 ID:q55sXuC9.net
- >>926
つ SharpDevelop
- 935 :デフォルトの名無しさん:2017/01/28(土) 12:13:41.44 ID:7tAJxods.net
- C#なんてこの後廃れる一方だから気にするんじゃないよ
俺は使いたいから使ってるだけ
コンピューターサイエンスジャンルとかじゃもうpythonに追いつけない
入門者もc#よりpy選んでるらしいし
時代遅れのc++使ってる人も流行ってるからとか他が使えないって理由じゃないでしょ
使いたいから使うでいいよ
- 936 :デフォルトの名無しさん:2017/01/28(土) 12:29:18.26 ID:op86qfG/.net
- >>931
あんたがNGにしやすくするためだけに
2ちゃんねるの特徴を捨て去って全員強制コテつけろというのはひどいエゴだと思う
- 937 :デフォルトの名無しさん:2017/01/28(土) 12:36:35.24 ID:kK1HMpWm.net
- >>929
C#にサーバー用途のサポートがないって、一体こいつはなんのことを言ってるんだ
まさかどっか別のパラレルワールドの住人なのか、それともC#と言う名の別のマイナーな別言語の話をしていたのか
- 938 :デフォルトの名無しさん:2017/01/28(土) 12:38:31.29 ID:GpK52peC.net
- ワッチョイ付けてるスレは増えてきてるし、賛成が多ければ構わないだろ
強制コテも一週間で変わるんだし、IP表示が無ければ反対する真っ当な理由が思いつかない
- 939 :デフォルトの名無しさん:2017/01/28(土) 12:41:01.92 ID:XpAKmUmz.net
- >>936
みんなエゴ丸出し自己中でいくのが2ちゃんねるの特徴よ
- 940 :デフォルトの名無しさん:2017/01/28(土) 12:41:42.84 ID:rD7WeMm9.net
- 言語の優劣がどうでもいい訳じゃないけど
比較なら他所のスレでやってくれ
C++ Builder vs C# どっちがいいか教えて
http://echo.2ch.net/test/read.cgi/tech/1459000291/
- 941 :デフォルトの名無しさん:2017/01/28(土) 12:42:51.15 ID:s1e/PAHl.net
- >>938
それぞれ好きなスレ立てて使えばいいんだよ
どの板でもワッチョイ有り無しでスレが分かれているのをよく見るし
逆にその手の議論で荒れだすとどこでもひどい有様になる
- 942 :デフォルトの名無しさん:2017/01/28(土) 12:50:41.06 ID:op86qfG/.net
- >>938
一週間で変わるというのは違うよ
3、4文字目は仕様上永久固定だし、表面上変わる1、2、5〜8文字目も簡単に逆引きできるから実質永久固定だよ
- 943 :デフォルトの名無しさん:2017/01/28(土) 12:58:20.48 ID:ivgBCMum.net
- 「SNSじゃあるまいし、なんで2chでわざわざコテハンを強制されなきゃならないのか」は真っ当な理由じゃないのかな…
- 944 :デフォルトの名無しさん:2017/01/28(土) 13:00:33.35 ID:k4gxsyFf.net
- 俺もワッチョイスレには書かなくなった
- 945 :デフォルトの名無しさん:2017/01/28(土) 13:01:40.71 ID:mpmWyhNT.net
- 明らかに不適切な発言をしない限りはコテハンでも問題ないでしょ
- 946 :デフォルトの名無しさん:2017/01/28(土) 13:16:35.58 ID:1Ptz3K6u.net
- そんなコテハン好きならstackoverflowにでも行けばよろしいやん
なぜ2ちゃんをコテハン化する必要があんの?
- 947 :デフォルトの名無しさん:2017/01/28(土) 13:29:21.18 ID:yHdW8px1.net
- 荒しがいるからだろw
- 948 :デフォルトの名無しさん:2017/01/28(土) 13:33:06.15 ID:WlIlAAzs.net
- >>946
よう荒らし
元気か?死ね
- 949 :デフォルトの名無しさん:2017/01/28(土) 13:40:45.05 ID:op86qfG/.net
- 自治厨が自分に賛同する奴以外を荒らし扱いしてるだけか
- 950 :デフォルトの名無しさん:2017/01/28(土) 13:45:46.68 ID:Bb/tAbed.net
- 荒らしだけならまだいいが、沸点が低いのかプライドが安いのか
煽りにのって相手を始める低脳が多過ぎる
本当に目障りでNGが面倒臭くてワッチョイもやむを得ないと考えてしまうのはこっちが原因
- 951 :デフォルトの名無しさん:2017/01/28(土) 13:47:14.75 ID:5yCHiIBr.net
- c#のスレで他言語の話を連投してる時点で
誰がどう見ても荒らしだと思うが
- 952 :デフォルトの名無しさん:2017/01/28(土) 13:47:33.37 ID:6ehsSW1c.net
- uyのスレ立て荒らし以来変なのが増えたな
- 953 :デフォルトの名無しさん:2017/01/28(土) 13:48:54.50 ID:ktdFkm2m.net
- そんなにNGされたくないのかな?
- 954 :デフォルトの名無しさん:2017/01/28(土) 13:50:24.20 ID:WlIlAAzs.net
- どう見てもそうだろ
- 955 :デフォルトの名無しさん:2017/01/28(土) 13:53:53.44 ID:ya7J4hzr.net
- 他言語の話なんてしてないのに荒らし扱いされて死ねって言われたんだけど
- 956 :デフォルトの名無しさん:2017/01/28(土) 13:55:50.40 ID:JTtKbdRr.net
- 昔、JavaやVBで暴れてた低脳馬鹿が今はC#で暴れてるふうにしか見えない。
だって言ってることが同じだものw ○○は遅くない!! ○○で十分!!!
- 957 :デフォルトの名無しさん:2017/01/28(土) 13:58:32.18 ID:yHdW8px1.net
- >>948
それは酷すぎ。荒しと変わらんぞ。
- 958 :デフォルトの名無しさん:2017/01/28(土) 13:59:47.36 ID:vlyo6wmu.net
- 相手してる生ゴミがうざいって人は連鎖NGができるブラウザに変えるのはどうだろうか?
強制はできないけど…。
- 959 :デフォルトの名無しさん:2017/01/28(土) 14:06:49.21 ID:ya7J4hzr.net
- ワッチョイでNGが便利になるって言う人たちは、なぜかNGwordを工夫したり連鎖NGすることはできないという不思議現象
- 960 :デフォルトの名無しさん:2017/01/28(土) 14:07:29.61 ID:y9Lbrz1V.net
- 自分でNGできないような奴がこの板にいる方がどうかしている
無能と自白しているようなもんだろ
- 961 :デフォルトの名無しさん:2017/01/28(土) 14:11:07.34 ID:XpAKmUmz.net
- ごちゃごちゃ言わず、ワッチョイありなし、2つ立てて盛り上がった方を採用すりゃいんだよ
- 962 :デフォルトの名無しさん:2017/01/28(土) 14:44:57.36 ID:k4gxsyFf.net
- スレも無料じゃないんだぞ
節約しないと
- 963 :デフォルトの名無しさん:2017/01/28(土) 14:48:10.28 ID:s1e/PAHl.net
- ほらスレ違いで荒れる
このまま埋めてくれればいいよw
>>961
採用っていうか使われなくなった方が消えたり過疎るだけ
- 964 :デフォルトの名無しさん:2017/01/28(土) 14:53:25.19 ID:GmC+rupt.net
- 2chの基本だけど、スレが荒れる(このスレの現状はそこまで行ってないと思うが)と
ギャーギャー騒ぎだす連中の大半は本当はギャーギャー言いたいだけの寂しい奴ではある。
要するに、本当はスレッドの趣旨にそったレスが淡々と続く状況なんか内心望んでない奴、
もっと言えばまともなレスをする能力がない奴に限って文句言ってるのね。
本当はウンコが大好物なウンコ蠅がウンコの周りを周回しながらウンコが臭いって文句言ってる図式だねw
「スレッドの平和」を本当に望んでいる人(俺もその一人)は、逆説的だけど
神経質にスレ違いの話題を咎める連中に与しない方がいいと思うよ。
それは上記の「ウンコ以上にうっとうしいウンコ蠅」をのさばらせることにしかならないからね。
まあそうは言ってもあんまりスレ違いの議論が延々続くのもうっとうしいのも確かだから、
このスレに限らずスレ違いの議論が続いた時に誘導する「何でも議論スレ」みたいのが
あったらいいのかもしれないとも思う。
- 965 :デフォルトの名無しさん:2017/01/28(土) 15:11:26.13 ID:VlCpYCgG.net
- >>930
C#は永久に不滅とか信者とか、存在しない敵を叩くなよ
他の言語でも同等の処理があるLINQを特徴というのは、理解してないからか?
C#もJavaも互換性最優先なので、いつか時代遅れの限界が来て、保守以外では使わない言語になる気もする
死ぬならVB6みたいな長期サポートで亡霊にならないといいんだけど
- 966 :デフォルトの名無しさん:2017/01/28(土) 15:16:41.71 ID:VlCpYCgG.net
- そういえば、llilacはどうなったのかな
LLVM化は結構需要ある気がするんだが
- 967 :デフォルトの名無しさん:2017/01/28(土) 16:06:14.69 ID:VlGJ2K6H.net
- 荒れすぎだろ
投票による自治機能があるanontownに来ないか?
登録制だけどメアド不要だから簡単
https://anontown.com/
- 968 :デフォルトの名無しさん:2017/01/28(土) 16:20:45.03 ID:BREm5bG1.net
- >>965
いつかはそうなるだろうけど、今のところはその兆候はないな
- 969 :デフォルトの名無しさん:2017/01/28(土) 16:41:32.14 ID:ktdFkm2m.net
- >>964
2ちゃんにおいて三行以上の長文はマナー違反だぞ
- 970 :デフォルトの名無しさん:2017/01/28(土) 16:44:14.69 ID:op86qfG/.net
- 立てにいく
- 971 :デフォルトの名無しさん:2017/01/28(土) 16:48:51.77 ID:op86qfG/.net
- 次スレ
C#, C♯, C#相談室 Part92
http://echo.2ch.net/test/read.cgi/tech/1485589613/
- 972 :デフォルトの名無しさん:2017/01/28(土) 17:45:23.05 ID:JQ2q8v+C.net
- >>965
数年前、高速なNVRAM的な物が安価で作れるようになって
コンピュータの構成が大きく変わるなんて話が一部で盛り上がってたけど、
その手のパラダイムシフトが起こらない限り、プログラミング言語の世界でも
そんなガラガラポンは起こらないだろう
- 973 :デフォルトの名無しさん:2017/01/28(土) 19:05:48.32 ID:oY/klkah.net
- 一体みんな誰と戦っているんだ
- 974 :デフォルトの名無しさん:2017/01/28(土) 20:01:47.30 ID:XnHJw37P.net
- >>973
オラもそう思う
- 975 :デフォルトの名無しさん:2017/01/28(土) 20:12:25.54 ID:09upZDzm.net
- 自分以外は敵というスタンスがトランプ流w
- 976 :デフォルトの名無しさん:2017/01/28(土) 21:15:25.00 ID:yCMaAzsY.net
- C#はマルチプラットフォーム化でサーバーサイドで需要がますます拡大するし
クライアントでもWPFが実用的になってくるんじゃないかな
- 977 :デフォルトの名無しさん:2017/01/28(土) 21:23:25.46 ID:buSCJS7G.net
- 胡散臭いCMだな
- 978 :803:2017/01/29(日) 12:03:54.50 ID:6CKnMYhm.net
- >>818
>>819
>>831
64bitでコンパイルする
2GB内に配列を分割する
などいろいろやりましたがメモリオーバーになってしまいどうしても実行できませんでした
結局、元のファイルを分割し、最後に結合する方式にしてやっと通りました
使用メモリ見ると10GB位食ってましたが一応全部実行できています
ご協力ありがとうございます
- 979 :デフォルトの名無しさん:2017/01/29(日) 12:28:52.14 ID:NqGwYzj0.net
- >>978
配列に入れて何がしたいのか最後まで聞けなかったけど、FileStreamで読み書きじゃ駄目だったの?
- 980 :デフォルトの名無しさん:2017/01/29(日) 12:34:03.49 ID:Be2uFNKC.net
- 同意見
そんなもん全部メモリに読んだところで
どうせシーケンシャルに処理する以外にやれることがあるとは思えない
- 981 :803:2017/01/29(日) 13:07:42.19 ID:6CKnMYhm.net
- >>979
BinaryWriterで挿入操作ができれば使っていたのですが
以下を見るとできないようなので使いませんでした
http://dobon.net/vb/bbs/log3-46/27592.html
- 982 :デフォルトの名無しさん:2017/01/29(日) 13:12:51.28 ID:WfZCQfEI.net
- 一時ファイルに元のファイルの内容と挿入データを書き込む
→元のファイルを削除する
→作成した一時ファイルの名前を元のファイルの名前に書き換える
でできると思うけど自分の好きな方法でうまくいったのならいいんじゃね
- 983 :803:2017/01/29(日) 13:29:04.76 ID:6CKnMYhm.net
- >>982
>一時ファイルに元のファイルの内容と挿入データを書き込む
確かにこのやり方がスマートでした
元のコード流用しようとしたので今のやり方になってしまいました
あらかじめわかっていたら・・・
- 984 :デフォルトの名無しさん:2017/01/29(日) 17:25:54.20 ID:UOF0Asn0.net
- うめ
- 985 :810:2017/01/29(日) 22:35:39.11 ID:F8/CipCU.net
- >>810です。反応が遅れてすいません。現在は、
クラスのインスタンスの複数のプロパティの値を比較して等価かどうか判定しているのですが
データをリストに追加する際、2種類の等価比較法(IEqualityComparer)を用いています
つまり追加対象のデータのうち、
まず弱い比較(少なめのプロパティだけが一致するか比較)で
既存のリストにないデータの「候補」をざっくりピックアップして、
候補たちに少々時間のかかる処理をかけてから(一部プロパティが書き換えられる)、
次に強い比較(多めのプロパティを比較)で候補の中から真に「新しい」ものをリストに追加しています
PosgresやLocalDBといったデータベースでは、こういうことって簡単にできるんでしょうか
ネット検索してみたところ複数のプロパティを比較すること自体は
UNIQUE制約(?)というので出来そうに思ったんですが、
現在やっているような2段構えの比較法は実現可能なんでしょうか?
- 986 :デフォルトの名無しさん:2017/01/29(日) 22:51:26.56 ID:M0HgmB1M.net
- 二段構えにする必要はない
比較に必要な全てのカラムセットにuniqueインデックス張りなさい
- 987 :デフォルトの名無しさん:2017/01/29(日) 22:55:35.08 ID:F8/CipCU.net
- >>986
それだと誤判定になりませんか?
追加前のデータと実際に追加するデータでは
一部プロパティ(弱比較ではチェックしないが、強比較ではチェックするプロパティ)の値が異なっているのですが…
- 988 :デフォルトの名無しさん:2017/01/29(日) 23:02:20.70 ID:faIlAfcC.net
- >>987
強比較の値がDB上に固定できるなら、最初から強比較でやっても十分な速度が出ます
取り出してから変化する性質なら、弱比較でDBから取り出し値を生成してからメモリー上で強比較で良いんじゃないの?
- 989 :デフォルトの名無しさん:2017/01/29(日) 23:27:53.21 ID:F8/CipCU.net
- >>988
すいません、「DBから取り出す」という表現が何を指しているのかよくわかりません…
いま思案しているのはデータの集計作業時ではなく登録作業時の話です
各データについて、一部のプロパティの値を確定させるには処理時間がかなり必要になっています
追加登録したいデータたちについて、このプロパティ値をあらかじめすべて確定するのは非常に時間がかかるので
まず弱比較でざっくりと追加可能な候補(プロパティ値を確定しなければならないデータたち)を絞っているのです
今はこんな風にしてます(実際のコードでは日本語変数じゃないです)
候補データリスト = 追加したいデータのリスト.Except(全リスト, new MyClass_WeakComparator()).ToList();
↓
候補データリスト について全プロパティ確定作業; //←重い
↓
全リスト = 全リスト.Union(候補データリスト).ToList();
- 990 :デフォルトの名無しさん:2017/01/29(日) 23:33:19.34 ID:F8/CipCU.net
- >989補足
Union()のところで既定の等値比較子として強比較が使われています
- 991 :デフォルトの名無しさん:2017/01/29(日) 23:37:15.13 ID:M0HgmB1M.net
- >>989
insert into 処理対象テーブル
select 追加後の値を得る計算式
from 処理対象テーブル
where 追加対象を得る条件式
これでいいんじゃないの?
弱比較とかよくわからん言葉遣いはやめた方がいい混乱するから
- 992 :デフォルトの名無しさん:2017/01/29(日) 23:50:32.58 ID:M0HgmB1M.net
- なんか違うなこうか
insert into 全リスト
select 任意の計算式
from 追加データ
where not exists (
select *
from 全リスト
where 簡易な比較条件式)
and 完全な比較条件式
インデックスは簡易な比較に使うカラムだけでいいよ
- 993 :デフォルトの名無しさん:2017/01/30(月) 00:02:56.22 ID:kb+lR8OL.net
- >>992
やはり、条件式を2種類地道に書くしかないんですか…長くてハゲそう
>インデックスは簡易な比較に使うカラムだけでいいよ
アドバイスありがとうございます
- 994 :デフォルトの名無しさん:2017/01/30(月) 00:07:16.67 ID:YrqXkGEW.net
- >>989
それだと「弱比較」で一致してしまった物は全部捨ててしまっているがいいのか?
>>985の書き方だと、「弱比較」で一致しても「強比較」で一致しない物があり、
それは書き込むと読める。
まあこの辺はそちらがやればいい話だが。
- 995 :デフォルトの名無しさん:2017/01/30(月) 00:14:31.63 ID:GO+RhKVN.net
- 数千行のSQLとか当たり前だから!!!
そのためのDBMSでしょ!!!
- 996 :デフォルトの名無しさん:2017/01/30(月) 00:23:01.74 ID:RAZ09caE.net
- 1回のクエリで完結させようとせず
1次候補抽出クエリ → ローカルで1次候補のプロパティ書き換え → 最終候補抽出&インサートのクエリ
の3段構えにしてもいいんじゃないかと思うけど
- 997 :デフォルトの名無しさん:2017/01/30(月) 00:33:18.83 ID:kb+lR8OL.net
- >>994
>「弱比較」で一致してしまった物は全部捨ててしまっているがいいのか?
詳しくは書けませんが、やりたい動作としてはその動作でOKです
985の説明はちょっと正確ではありませんでした
>>995
大規模なデータベースを触ろうとするのは初めてだったので…すいません
>>996
どっちみち長い比較条件を書かないといけないのは避けられそうにないので
その方法でもよさそうですね
- 998 :デフォルトの名無しさん:2017/01/30(月) 01:03:13.10 ID:9w4b/GJp.net
- >>995
SQLが数千行もあって当たり前なの?異常じゃないの?SQLだよ?
- 999 :デフォルトの名無しさん:2017/01/30(月) 02:19:40.86 ID:ty17mMxy.net
- SQL Serverは問合せ文と制御文を1つのストアドに混在できるので複雑な工夫が容易で、
腕が良ければ数千行の複雑な処理を書くことによって物凄く高速化できることがある
Oracleは混在できないため複雑な処理を書くには手間がかかり、プログラマーがあまり工夫しなくなり、
そのため腕が上がらず、結果としてSQL Serverより遅いシステムが多いらしい
現在のSQL ServerにはOracleと同じスナップショット分離(古い人は「行ロック」って言う)があるが、
2000の頃はなかった(今でもデフォルトでオフになってる)ため、高速な更新処理が必要だったことも腕に関係すると思われる
(スナップショット分離があれば、ダラダラ更新しても他ユーザーの閲覧に迷惑かけない)
- 1000 :デフォルトの名無しさん:2017/01/30(月) 02:31:32.87 ID:RISpHKLn.net
- 次スレ
C#, C♯, C#相談室 Part92 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1485589613/
総レス数 1000
273 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★