- 1 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:11:11 ]
- (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
前スレ C#, C♯, C#相談室 Part52 pc12.2ch.net/test/read.cgi/tech/1238548552/ Visual C# 2008 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ その他テンプレ>>2-5くらい
- 879 名前:870 mailto:sage [2009/08/18(火) 16:49:05 ]
- >>873
ironpaythonを使えば、楽に相互運用ができる。
- 880 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 17:25:17 ]
- >>879
paythonって何だよ ironpaythonって何だよ
- 881 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 17:36:43 ]
- 試しにググったらここのPart42が引っかかったw
- 882 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 20:44:15 ]
- SORP?
- 883 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 20:46:14 ]
- >>879
アイロンペイソンってサーバーで動かすPaythonスクリプトにもなれるの?
- 884 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 21:22:55 ]
- おまえらペイトホンも知らねーのかよ。
>>870 マジレスしようと何度か読み直してみたがさっぱり意味が解らない。 とりあえず質問の内容は最後の2行のみ? で、ブロックしそうなのはクライアント側?サーバ側? っつか多分日本語でやりとりしてもらちがあかなそう。簡単なソース出して これはおk?ってやった方が、キミとは上手くやっていけそうな気がする。
- 885 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 21:53:42 ]
- boid mein() {
} とかってコード期待w
- 886 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 22:35:00 ]
- >>869
亀だが・・・ 64M程度ならドトネトでは普通じゃないかと思う 結局メモリ量は予約領域でもあるはずだから純粋に使用しているメモリというわけではないだろうし
- 887 名前:870 mailto:sage [2009/08/18(火) 23:54:18 ]
- >>884
ソースをさらします。 サーバーがRunScriptというパケットを受け取ると実行される void talk() { Thread t = new Thread(executeScript); t.Start(this.remoteip); } private void executeScript(object data) { PythonEngine pe = new PythonEngine(); pe.deliverVarible("_self", this); pe.deliverVarible("_target", target); pe.deliverVarible("_remoteip", (string)data); pe.execute("foo.py"); } //リモートIPとManualResetEventが対になってる static Dictionary<string, ManualResetEvent> ManualEvent = new Dictionary<string, ManualResetEvent>(); //foo.pyがwaitForSignalを実行すると呼び出させる public void waitForSignal() { if (remoteip == null) return; ManualEvent[remoteip].Reset(); ManualEvent[remoteip].WaitOne(Globals.script_wait_time); } //別スレッドから呼び出し public void setSignal() { if (remoteip == null) return; ManualEvent[remoteip].Set(); }
- 888 名前:870 mailto:sage [2009/08/18(火) 23:55:49 ]
- 訂正
×//別スレッドから呼び出し ○//同じクライアントから特定のパケットを受け取ると呼び出される(パケットを受け取る部分は非同期ソケットを使ってます)
- 889 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:08:34 ]
- Directory.Delete("パス",true);
これに64Mはありえない。それからgen2は回収に何度か失敗している領域。 現在使用中かつ長い間確保されている可能性が高い。 とまぁ、レスの情報と自分の経験からの推測な訳です。はい。 本当に64Mが適正か否かは>>837氏のみが知る所でしょう。
- 890 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 19:00:23 ]
- 質問です
今ちょっと頼まれて テキストボックスとボタンのフォームだけがあります。 そしてそれに必須入力チェック、桁数チェック、書式チェックと言う条件を作らないといけないのですが 当方初心者でまるでわかりません。 まず、True,Falseの場合に出すメッセージボックスを作ります。 そしてIF文でどっちに行くかを条件付けるんですが どのようにして記述していけばいいのでしょうか・・・・
- 891 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:30:38 ]
- ググれ
- 892 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:31:42 ]
- 初心者向けの本でも買え。
- 893 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:53:52 ]
- カスどもありがとう助かったわ
- 894 名前:デフォルトの名無しさん [2009/08/19(水) 22:19:58 ]
- タブコントロールのタブなしってあるの?
アクセスではあるらしいね。
- 895 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:34:11 ]
- フラットスタイルじゃなくて?
- 896 名前:デフォルトの名しさん mailto:sage [2009/08/19(水) 22:46:10 ]
- ふらっとの方でもたずねたのですが、返事がないので
C#を始めて1年くらいで、2Dグラフィック周りを主にやってます。 最近、JAVAプログラムのオープンソフトでJDrafter(hhp://jdrafter.com/)とい うソフトを発見したのですが、 このソフトは、イラレ感覚で2Dグラフィックを作成し、Javaの オブジェクトとして保存できるため、Javaプログラムからの表示やアニメーションなどにも応 用できるようなのですが、 どなたか、C#でこんなプログラムをご存知の方いないでしょうか。 もしくは、オープンソフトなので、描画周りのクラスをC#に変換して利用できないか考え ているところですが、どなたかその方法やこれに適したjava→C#変換ツールをご存知 の方があれば、ご教授をお願いします。
- 897 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:54:20 ]
- 何文字目?
- 898 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:55:30 ]
- Java使えよ
- 899 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:56:59 ]
- つJ#
- 900 名前:デフォルトの名無しさん [2009/08/19(水) 22:59:36 ]
- >>895
フラットスタイル… C♯にあるの?
- 901 名前:デフォルトの名しさん mailto:sage [2009/08/19(水) 22:59:48 ]
- >>898
javaに変えてもいいのですが、今までの資産や、C#の将来性を考えると簡単に は決断できません。 ググってもみましたが、どうしてもわからないのでお尋ねしているところです。
- 902 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 23:01:03 ]
- つか xaml に変換できるもの、Expression とかがまさにそのまま
イラレ感覚がいいんならイラレ -> xaml のエクスポータ使えばー
- 903 名前:デフォルトの名しさん mailto:sage [2009/08/19(水) 23:17:21 ]
- >>902
ありがとうございました。 xamlテクノロジーは始めて知りました。(勉強不足ですみません。) xamlについて調べて、フリーの(金がないので) ツールなんかがない かいググります。どうもありがとうございました。
- 904 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 23:36:49 ]
- イラレってxaml生成できんのか。おどろいた。
- 905 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 23:49:29 ]
- XPSじゃねーのと思って調べたらほんとにXAMLだった
- 906 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 00:11:20 ]
- イラレ10でも出力できますか?
- 907 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 00:59:00 ]
- プラグイン形式のやつはCS以降じゃないと無理なんじゃないかな?
Photoshop(.psd)やIllustrator(.ai)を直接取り込めるようになったBlend 3を使うのが楽だとは思うけど↓みたいなのもある。 XamlXporter for Illustrator www.codeplex.com/Wiki/View.aspx?ProjectName=xamlxporter >>903 Inkscapeがオススメ。日本語化されてて標準でXAML出力に対応してる。
- 908 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 02:14:50 ]
- (´・∀・`)ヘー
- 909 名前:デフォルトの名無しさん [2009/08/20(木) 06:44:32 ]
- イラレでコントロールを作成してWPFコントロールにすることは可能なの?
- 910 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 07:02:50 ]
- 仮にCanvasしか吐けなくても好きなルート要素で囲んでやるだけで
ユーザーコントロールでもコントロールテンプレートでも作れるはず
- 911 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 08:27:03 ]
- へーへーへー
- 912 名前:デフォルトの名無しさん [2009/08/20(木) 11:35:37 ]
- すいません。教えてくらはい。
VS2008のプロジェクトに*.iniファイルを含めて プロジェクト出力として一緒に出力したいのですが、 クラスライブラリプロジェクトの場合うまくいきません。 これは仕様でなんでしょうか? <<設定例>> ファイルプロパティ ビルドアクション:コンテンツ 出力ディレクトリにコピー:常にコピー
- 913 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 11:56:20 ]
-
質問ですが、遅延バインディングにてExcelの単一セルの中に入っている情報を取り出すにはどうすればよいでしょうか? 遅延バインディング レイトバインディング 実行時バインディング いろんな呼び方がありますね。 www6.atwiki.jp/we_hate_sunshine/pages/73.html にありましたコードの一部を参照させていただいております。 // セルデータを2次元配列にいっぺんに読み込みます。 objRange_Late = objSheet_Late.GetType().InvokeMember("UsedRange", BindingFlags.GetProperty, null, objSheet_Late, null); Object[,] tmpTable; tmpTable = (System.Object[,])(objRange_Late.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, objRange_Late, null)); ↑上記コードはうまくいったのですが、 単一のセルを指定し(Rangeを使うのだと思います)そのセル内のデータを取得する方法がわかりません。 やりたいこと 例) A1セル「hoge」 の文字列hogeを取得したいです。 試しに書いたコード(実行時にエラーが出たのでできませんでしたが)を乗せておきます。 parameters = new Object[] { "A1",Missing.Value }; objRange_Late = objSheet_Late.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, objSheet_Late, parameters); Object tmpTable = new object[1]; tmpTable = (System.Object[,])(objRange_Late.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, objRange_Late, null)); こういう雰囲気でいけそうな気がするのですが、わかりません。よろしくお願いします。
- 914 名前:デフォルトの名無しさん [2009/08/20(木) 18:43:57 ]
- Webサーバ機能を、作ってるアプリに付けたいのですが、
単一ループ内でkeep-aliveを処理できるお手軽なアプローチ無いでしょうか? // listner起動 while (true) { // Context取得 (ブロック) // Request処理 // Response処理 if (Connection == close) { break; } } と言う様な処理を行い、 要は、ソケットの接続〜切断のモデルと近似にしたいのです。 理由は、データ管理や前回のリクエスト/レスポンスに強く依存した処理の為、簡単に回したいと言う感じです。 アドバイスと慈悲を下さい。
- 915 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:52:23 ]
- >>912
プロジェクト出力ってセットアッププロジェクトの話? セットアッププロジェクトでDLLだけ配布するの? >>914 プロトコルに何使うのさ >>913 Excelの質問には答えられないけど、エラーの内容ぐらい書いた方がいいんでないか
- 916 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:55:59 ]
- >>915
httpです
- 917 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:16:18 ]
- >>916
HTTP で keep-alive でのみセッションが維持されるなんて 仕様外の特殊な事考えたりしてるなら 独自プロトコルでやった方がいい
- 918 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:27:31 ]
- 前回のリクエスト/レスポンスに強く依存した処理ってviewstateじゃだめなん?
- 919 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:37:11 ]
- >>914
つまりソケットの接続〜切断のモデルと同じなんじゃね? ソケットつかえばおk
- 920 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:46:05 ]
- .net 3.5、 WinXP VS2008、C#で開発しています。
開発するアプリケーションの利用環境は、Win2003、Win2008、WinVistaなどを想定している開発です。 質問します。 C#でファイル名の整合性を確認する関数はあるでしょうか? ファイル名に使えない文字を取得する、System.IO.GetInvalidFileNameChars()は知っていますが、これだと CON, PRN, AUX, CLOCK$, NUL COM0, COM1, COM2, COM3…… のような文字列を調べることができません。 また、開発環境こそWinXP Proなんですけれども、開発するアプリケーションは クライアント・サーバ方式のアプリケーションで、クライアントからサーバにファイルを作成する形式のものです。 サーバはWin2003かWin2008、クライアントはWinVistaかWinXPです。 そうなってくると、いったんクライアントでファイルを作成して、実際に有効なファイル名かどうかを 確認する手段もOSの差を吸収できるかどうかに疑問が生じます。 このような場合、一体どのようにしてファイル名として有効な文字列かどうか判断したらよいか 教えてください。 お願いいたします。
- 921 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:48:30 ]
- 最近C#をはじめました。ワケあってちょっと急いで基本を学ばなければなりません。
質問させていただきたいのですが、sqrtやsinなどの数学系の関数を使うとき Math.Sqrt(2.0) といちいちMath.をつけるのが(複雑な式をコーディングするときにMathだらけになる) 嫌なのですがこれを書かないでいいようにするにはどうしたらいいのでしょうか。 多分Console.WriteをWriteだけにしたいというのと同じ意味だと思いますが。 よろしくお願いいたします。
- 922 名前:920 mailto:sage [2009/08/20(木) 23:54:54 ]
- ごめんなさい、よく考えたら権限の問題とかもあるので、サーバ側でディレクトリ作ってみて、失敗するかどうかで判断したほうがよさそうです。
質問を取り消します。
- 923 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:56:21 ]
- >>921
Math.Sinを呼び出すだけのローカル関数でも作っとけば
- 924 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:56:42 ]
- >>919
開発効率が悪いからもっと便利なクラスを使いたいです
- 925 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:58:21 ]
- 便利なクラスを作れ
- 926 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:00:06 ]
- static import は?と思ってしまった・・・orz
- 927 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:16:18 ]
- >>923>>925
それはそういうものなのですか。VC#で開発してるとあまりそういうことは みんな面倒とは思わないためでしょうか? いずれにせよ、手軽にできるわけではないんですね。ありがとうございました。
- 928 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:18:17 ]
- >>927
Math って書くのが普通。とくに面倒じゃないよ。
- 929 名前:デフォルトの名無しさん [2009/08/21(金) 00:36:50 ]
- >>927
オブジェクト指向というのはそういうもの。
- 930 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:52:29 ]
- >>927
Math.Sinをコンパクトに記述することを考えるより、 式そのものを簡単にすることをまず考えるべきだろうね。 数学の数式だって同じだと思うけど、式が複雑だっていうなら いくつかの部分に分けて部分ごとに一時変数に入れるとかね。 まあ数式の場合と違って、数値計算の場合は演算誤差に対する配慮は 必要になるけど。
- 931 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:25:51 ]
- using使えば
- 932 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:29:53 ]
- Func<double, double> sin = Math.Sin;
とかできねーの?
- 933 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:30:22 ]
- >>927
VC#っていうか、フレームワークの関数がいくつあると思ってるん? 全部一発で書けるようトップレベルに置いたらとんでもないことになる。 Mathだけ特別扱いなんて出来ないよ。
- 934 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:37:07 ]
- >>927
そういうのは学生のうちに卒業しよう。 プロジェクトメンバーが迷惑するから。
- 935 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:41:10 ]
- >>932
できるよ
- 936 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:44:44 ]
- >927 うるせーよ
- 937 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 02:17:22 ]
- 普段使わない関数がIntelliSenseでわらわら出られたらよっぽど面倒だわね
- 938 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 06:34:37 ]
- ExpressionTree使え
- 939 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:35:53 ]
- >>927
その書き方だと「面倒だなぁ……。よくみんな我慢してるよなw」って考えてるみたいだが、 こうやって分類されている方が、長い目で見れば便利なんだ。 このめんどくささはむしろ必要なめんどくささ。いずれわかるよ。
- 940 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:36:37 ]
- >>932
Math.を省略したくなるような状況でそんなことしたら遅くなるからやめれ
- 941 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 08:03:24 ]
- コードを書くときには面倒かもしれないけど
コードを読むときには何してるかわかるからいいと思うんだが。 というか実際のところたいした手間じゃないだろう。
- 942 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 08:07:18 ]
- >>939がもっともだと思う
- 943 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 08:47:45 ]
- F#でかけばMath.とか書かずにすむお
- 944 名前:>>913 mailto:sage [2009/08/21(金) 10:39:22 ]
- >>913です。
自己解決したので解決方法を。 parameters = new Object[] { "A1" }; objRange_Late = objSheet_Late.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, objSheet_Late, parameters); Object tmpTable = new object[1]; →tmpTable = (System.Object[])(objRange_Late.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, objRange_Late, null)); // 「→」行部分実行時に Error:型'System.String'オブジェクトを型'System.Object[]'にキャストできません のエラー parameters = new Object[] { "A1" }; objRange_Late = objSheet_Late.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, objSheet_Late, parameters); String str = string.Empty; str = (System.String)(objRange_Late.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, objRange_Late, null)); MessageBox.Show(str); 無事A1セルに入力されていたValueを取得することができました。 無駄にキャストしていたことが問題だったのですね。エラーみろよっていってくれた>>915さんどうもです。
- 945 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 16:47:03 ]
- Double型をString型に変換する方法を教えていただけませんか?
- 946 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 16:53:59 ]
- ToString
- 947 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 17:43:13 ]
- >>946
ありがとうございます。>>945です doubleを無理やりstring型にキャストしようとしてました^^;
- 948 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 17:44:05 ]
- キャストの意味を勉強しなおそう
- 949 名前:デフォルトの名無しさん [2009/08/21(金) 17:51:22 ]
- DataGrid へ適当なクラスリストのバインドを考えています。
ただ、表示対象は対象クラスが保持するプロパティの一つに限定したいです。 後々にDataGrid から SelectedItems として、バインドしたクラスのデータを取得を考えます。 ここで、クラスをそのまま ItemsSource へ突っ込むと、クラス名が表示されてしまいます。 こういった場合、特に二行目の部分ではどんな風にすれば対象プロパティのみ表示可能でしょうか。 よろしくおねがいします。
- 950 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:04:56 ]
- 全体に意味が分からんが、まずそれはWPFか?
- 951 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:07:19 ]
- >>949
>ここで、クラスをそのまま ItemsSource へ突っ込むと、クラス名が表示されてしまいます。 ここで、クラスをそのまま ItemsSource へ突っ込むと、突っ込んだリスト中のクラスが保持するメンバクラスの名前、でした。 class hoge { public int m_hoge; public foo m_foo; } class foo { で言う foo です。 m_hoge | m_foo ------+------ 2 | m_foo 2 | m_foo 3 | m_foo 4 | m_foo
- 952 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:10:29 ]
- >>950
WPF というか、 Silverlight でやってます。 >>951 では途中で送信してしまったので、続きです。 class foo { public int m_x; public int m_y; } ここで、 foo というクラス名ではなく、数字の x を出力したい。
- 953 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:10:59 ]
- パブリックプロパティ用意すりゃいい
- 954 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:18:24 ]
- XAML側でどのプロパティを表示するかの指定があったはず−。
それにしてもpublicなフィールドでm_って気持ち悪い命名規則だね。
- 955 名前:デフォルトの名無しさん [2009/08/21(金) 18:27:16 ]
- >>954
ありがとうございますっ! そういうのを探していました。 とても助かりました。
- 956 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:51:19 ]
- アクセサを使いましょう
- 957 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:53:43 ]
- XAMLのバインディングってわかりづらいよね
もとより人間が書くものじゃないんだろうけど
- 958 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 19:01:24 ]
- >>956
アクセサって get とか set ですよね? XAML と合わせて検索しても、どうにも分らないです。 すみません。 バインディングの記述に利用する識別子でしょうか? >>957 未だにクラス名やそのメンバ名を直接 XAML ファイルに記述するのが気持ち悪くて仕方ありません。 慣れの問題でしょうか……。
- 959 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 19:20:53 ]
- BindingのPathは . 使ってプロパティのプロパティを指すこともできる
つかフィールドってバインディングできたっけ? プロパティじゃないとダメな気が > 未だにクラス名やそのメンバ名を直接 XAML ファイルに記述するのが気持ち悪くて仕方ありません。 XAMLに記述するのはViewModelのクラスのだから問題ない
- 960 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 19:23:48 ]
- >>942
>>927の考えは>>939やチミが勝手に心配しているような意味じゃないと思うぞw 別にクラスの中にしかメソッドが存在できないのがウザい、 というような意味のことは言ってないだろう。 っていうか、複雑な計算式をベタにコーディングしたら >>927のように思うのはむしろ普通のこと。 実際見難くくてかなわんよ。 だから>>930のようにアドバイスするのが正しい。 しかし、今に始まったことじゃないけど本当シロートがシロートに講釈垂れる 図式が多すぎるなここ。
- 961 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 20:55:24 ]
- >> 未だにクラス名やそのメンバ名を直接 XAML ファイルに記述するのが気持ち悪くて仕方ありません。
>XAMLに記述するのはViewModelのクラスのだから問題ない どうにもバインディングを勘違いしていました。 特に制約無く作ったデータでもバインディングは行えるものとして考えていました。 バインディングは特定のインタフェースを実装したクラスしか不可能なのですね。
- 962 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 21:01:05 ]
- >>961
>バインディングは特定のインタフェースを実装したクラスしか不可能なのですね。 違う。 設計の問題で、バインディング自体にそういう制限は無い。
- 963 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:13:55 ]
- >>960
このレベルの自分で頭使わないで文句言うタイプには「黙って書いとけ」が正しい。
- 964 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:39:36 ]
- ""(空文字列)との比較は以下のどれがいいですか?
それぞれのメリット・デメリットを教えてください。 @str.Equals("") AString.Equals(str, "") Bstr == "" Csrt.Length == 0 D"".Equals(str)
- 965 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:45:34 ]
- 個人的には3
他は4以外objectで比較できちゃう 14はstrがnullのときを考慮しないといけない でも大体はString.IsNullOrEmptyで片付けるかな
- 966 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:46:47 ]
- あくまで個人的な意見だけど。
俺は「str==""」が一番シンプルかつ直感的でいいと思うね。 1. 参照アドレスの比較と差別化するという意味合いはご尤もだが…。ここまでする必要あるかなぁ。 2. 冗長。 4. 使う場面による。文字列自体に着目した流れで来てるのか、 文字列の長さに着目した流れで来てるのか、というのが判断基準。 5. これは逆。どういう意図でこう書くんだろう。
- 967 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:58:15 ]
- 5の書き方はJavaかなんかでこうするのがイイ
みたいなのがどっかに載ってた気がする(そして当然叩かれてた) C#だと3かIsNullOrEmptyだよね。
- 968 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:05:59 ]
- fxcopにIsNullOrEmpty使えっていわれたような
- 969 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:14:50 ]
- C#の世界でも割と「==使うなEquals()使え」っていう教条主義的意見は
見かけるね。 というか、俺の見解では、そもそも==がデフォで参照等価の検査なのが直感的じゃない。 少なくともこれに関してはVBの方がまともに感じる。 つまり、参照等価の検査用には別の演算子を導入することにして、==の方は 値等価用にオーバーロードしないと使えない方が分かりやすい。 まあそれを言うと、そもそもC由来の=と==からして逆なんじゃないのかとも思うが…
- 970 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:34:35 ]
- しかし値の同一性ってのはデフォで定義できない
- 971 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:40:47 ]
- Estr == string.Empty
- 972 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:42:52 ]
- IsNullOrEmpty 派です。
- 973 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:14:56 ]
- >>966
>5. これは逆。どういう意図でこう書くんだろう。 これはリテラルのequals()呼び出しだから、コンパイラが最適化してくれる 可能性がある、という説明で自分は納得した。 実際のところ本当かは検証したわけじゃないけど、どう再定義してるかわか んないstrのequals()を呼び出すよりは速い可能性があるというだけで充分 に意味はあると考えてる。
- 974 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:22:55 ]
- Javaでの話だけど、str.equals("")だとstrがnullのときにぬるぽの例外になるので、
"".equals(str)がいいんだって言っていた。 でも、まともな意見の人は"".equals(str)に否定的な人が多いという印象。
- 975 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:25:37 ]
- 君の印象ではなく「まともな意見」でどう否定したかが重要。
- 976 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:29:39 ]
- つか str.Equals("") とほぼ等価でかつ str が null でも大丈夫だから
だろ。2 と 3 がほぼ同じ意味であることを除けば他は意味とか前提が 色々微妙に違う
- 977 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:57:02 ]
- class Tuple<T1,T2>{ T1 _t1,T2 _t2}(アクセッサとか省略)みたいな奴で
Tuple<Hoge,HogeHoge> tuple1,tuple2の比較したいときに、class でなくstructなら_t1,_t2が各々==でtrueの時tuple1==tuple2になるんだっけ? classでEqualsとかoverrideするのめんどくさいよ(´д`)ママン… 属性とかの指定一発でやってくれ・・・
- 978 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 03:46:49 ]
- >>964
俺も>>971と同じ書き方するな。 でも null と空文字列で特別に違う意味がなければ IsNullOrEmpty を使う。
- 979 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 05:58:42 ]
- str.Equals(string.Empty)か
String.Equals(str,stringEmpty) だな。 javaと違って参照でも'=='が使えるのは知ってるんだけどね。
|

|