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


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

C#, C♯, C#相談室 Part53



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くらい

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と違って参照でも'=='が使えるのは知ってるんだけどね。


980 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 06:46:21 ]
String以外にも話を展開してみる。

Equalsはタイプセーフではない。
Equalsをoverrideするなら==、!=もoverrideしなければならない。
a.Equals(b)はnullチェックが面倒なので、Object.Equals(a,b)が有効。




981 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 06:50:49 ]
タイプセーフでないというのは事実だけど、型を意識しないで比較するのは個人的にはなしだ。
ライブラリ製作者と使用者で意見が食い違うところか。

982 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 07:22:05 ]
10.0と10は違うのか?→時と場合と人による
"a"と'a'は違うのか?→〃
10と10は違うのか?→〃

しかし”参照”としての比較はドメインが”参照”に固定されているので混乱しない
値の比較はドメインが固定できないので混乱する
値の比較であーだこーだ言っていてもはじまらね

983 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 07:35:17 ]
>>968はこれか
msdn.microsoft.com/ja-jp/library/ms182279.aspx

それはそうと次スレは?

984 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 08:59:39 ]
>>980
>タイプセーフではない。(
値型以外では使うことはまずないけど
IEquatable<T>.Equals(T o)
>Equalsをoverrideするなら==、!=もoverrideしなければならない。 
Stringのようにimutableでない限りは==や!=演算子のoverrideはするべきではない。

985 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 11:02:53 ]
なんで

986 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:31:41 ]
次ぎたててくる

987 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:34:22 ]
C#, C♯, C#相談室 Part54
pc12.2ch.net/test/read.cgi/tech/1250911923/

はい

988 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:44:02 ]
>>987
^^

989 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:00:55 ]
.NET 4では2.0の部分のパフォーマンスの向上とかあるのかな?

990 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:09:55 ]
BCL部分はC#4.0などにあわせて確実に手が入るけど
WinFormsはどうせ放置だろ



991 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:36:55 ]
>WinFormsはどうせ放置だろ
せっかく枯れてきたのに手を入れられてもねぇ…

992 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:40:42 ]
2005以降に追加されたコントロールのバグはしっかり直してくれないと
困ると思うけど…

toolstrip関連はバグ多過ぎなんだよ本当。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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