トップページ⇒tech
1001コメント299KB

C#, C♯, C#相談室 Part42

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/08/26(日) 12:42:25
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part41
http://pc11.2ch.net/test/read.cgi/tech/1184840053/

過去スレは>>2-5あたり。
0628デフォルトの名無しさん2007/09/15(土) 11:04:58
>>627
C++のメンバ関数の実装を想像して、thisポインタの分が節約できるかも、と考えたが
CLRだと変わらないんだっけ?
0629デフォルトの名無しさん2007/09/15(土) 11:04:59
>>625
普通にFxCopとかでstaticにしろやって言われるやん
0630デフォルトの名無しさん2007/09/15(土) 11:13:16
>>626
ファクトリとか指定できるようになってたらSingletonにしたりとかもっといろいろできるんだけど、
フレームワーク側で勝手にシングルトンはできてもあまりうれしくもないと思う。
0631デフォルトの名無しさん2007/09/15(土) 12:31:17
object obj = new object();
の時、下の2つは何が違うんですか?
function(obj);
function(ref obj);

参照型の場合refありもなしも変わらないんですか?
0632デフォルトの名無しさん2007/09/15(土) 12:35:12
void function( object obj )
{
 obj = new NewObject();// このメソッド内でしか意味がない
}

void fuction2( ref object obj )
{
 obj = new NewObject();
}

object obj = new object();
function(obj);   //何もおこらず
function2(ref obj); //objはもう昔のobjじゃないわ
0633デフォルトの名無しさん2007/09/15(土) 12:35:14
呼び出し先で obj に代入したときの動作
06346312007/09/15(土) 12:41:52
なるほど。ありがとうございます。
関数内でnewしない場合は関係ないんですね。

関数内で参照先の値を変更するだけで、newしない場合も
コード的には明示的にrefをつけといた方がいいんですかね?
もしくは参照型を引数にとる関数で引数にrefをつける=関数内で新たにnewしちゃう関数なんだぜ!
て意味合いがあるんですか?
0635デフォルトの名無しさん2007/09/15(土) 12:43:58
標準のクラスライブラリに ref つきのメソッドがどれほどある?
0636デフォルトの名無しさん2007/09/15(土) 12:44:31
void fun01(int x) { x = 2; }
void fun02(ref int x) { x = 2; }

int foo = 1:
fun01(foo);    // foo の値は 1 のまま
foo02(ref foo);   // foo の値は 2 に変わる
0637デフォルトの名無しさん2007/09/15(土) 12:45:22
たしかに。。
ではrefなしで行きたいと思います。
ありがとうございました〜
0638デフォルトの名無しさん2007/09/15(土) 12:55:03
refなんてめったに使わん。
フレームワークなど基盤部分で値型を扱う際に、
内部的に使うことはあるかもしれんが。

0639デフォルトの名無しさん2007/09/15(土) 13:03:27
必要もないのに使うべきでないのは確かだが、
教条主義的に否定する馬鹿にはならないで欲しいな。
この業界そういう馬鹿が案外多いから
0640デフォルトの名無しさん2007/09/15(土) 13:10:37
も一個質問なんですけど、
privateな関数で、メンバ変数、メンバ関数に一切アクセスしない場合
private staticにしたほうがいいんですか?
staticつきでも、なしでも動作は同じなんですけど。呼び出し方が変わるくらいで。
0641デフォルトの名無しさん2007/09/15(土) 13:13:05
うん
0642デフォルトの名無しさん2007/09/15(土) 13:13:18
>>639
気をつけます!
(といっても趣味なので話す相手もいませんが。。)
0643デフォルトの名無しさん2007/09/15(土) 13:17:45
>>641
なるほど。どうもです
06447622007/09/15(土) 13:49:15
>>638
XNA Frameworkなんかパフォーマンス目的でrefやoutだらけだよ
void Matrix.Multiply (ref Matrix matrix1, ref Matrix matrix2, out Matrix result)
みたいに
0645デフォルトの名無しさん2007/09/15(土) 13:50:46
>>639
その気持ち自体はとってもよく分かるんだが、
現実は結構加減が難しくない?
自分がレビューとかできる範囲ならまだいいんだけどね〜
0646デフォルトの名無しさん2007/09/15(土) 13:53:37
>>644
実質同じこといってるような気がする。
0647デフォルトの名無しさん2007/09/15(土) 15:53:53
荒れてるねw
0648デフォルトの名無しさん2007/09/15(土) 22:31:15
ム板でスレ違いと言われたのでここにて質問させて下さい。

.NETからoracleに接続をする、つまりDB接続文字列が分かりません。

String sConnectionString = "Provider=MSDAORA;User ID=sys;password=test_pass ; Data Source =ORCL10GR2;Persist Security Info=False";

恐らく
1)Provide
2)Data Source
の部分が怪しいと思うのですが、この部分はどうすれば適切なDB接続
文字列を見つける事が出来るでしょうか?

以上 どなたかoracleに詳しい方お教え願います。
0649デフォルトの名無しさん2007/09/15(土) 22:41:23
>648
スレ違い。
0650デフォルトの名無しさん2007/09/15(土) 22:46:15
ですねw
0651デフォルトの名無しさん2007/09/15(土) 22:59:31
>>648
VS2005のメニューで「ツール」→「データベースの接続」でデータベースに接続できるなら、
サーバーエクスプローラ上の接続済みデータベースのプロパティに接続文字列が表示されるけど、
それでも駄目かな(実際にOracle使っていないので保証できないけど)?
0652デフォルトの名無しさん2007/09/15(土) 23:44:37
>>648
ttp://www.connectionstrings.com/
0653デフォルトの名無しさん2007/09/15(土) 23:50:45
>>652 なんかよさげなサイトだな。
0654デフォルトの名無しさん2007/09/16(日) 00:06:38
>>651
Oracle10g Express Editionに接続をしようと
>>651さんのおっしゃる手順にて試した上でプロパティにて確認を行い、
テスト接続を行ったところ正常に接続は出来ました。
しかしながら、自動生成された接続文字列をコードの中に次の様に指定して
いるのですが接続が出来ません。

string constr1 = "Data Source=127.0.0.1;Persist Security Info=True;User ID=test_user;Unicode=True";
OracleConnection con = new OracleConnection(constr1);
con.Open(); //←この部分でエラーが発生します。

06556542007/09/16(日) 00:07:49
>>652
そんな便利なサイトがあったんですね。ありがとうございます。
そちらも参考にしつつ試してみます。
06566542007/09/16(日) 00:14:08
因みに>>651の手順で作成されたServer Explorer上の表示は次の
状態なのです。しかしながらOracle10g Express EditionのWEB上から
createしたテーブルが見えません。(TB_TESTテーブル)
>>651の手順で「正常に接続が出来ました。」というガイダンスが
表示されたのですがそもそも接続先が違っているのでしょうか?
【VS2005 Server Explorer状況】
Data Connections
127.0.0.1.TEST_USER
Tables
WWV_FLOW_DUAL100(FLOWS_020100)
WWWV_FLOW_FIELD_TEMPLATES(FLOWS_020100)
WWWV_FLOW_LIST_OF_VALUES_DATA(FLOWS_020100)
  ・
  ・
  ・
  (TB_TESTテーブル が本来見えるハズなのに見えません。)
0657デフォルトの名無しさん2007/09/16(日) 00:34:24
だからスレ違いだと何度・・・
06586512007/09/16(日) 00:35:39
>>656
さっきも書きましたが、Oracleを使っていないので、
Oracleのスレに書き込んだほうがいいですよ
(ここまでくると完全にスレ違いですし^^;)。

作成した側で作成したテーブルが見えているなら、
>>654さんの言うとおり、参照先(インスタンスもしくはデータベース)が違うのでしょう。
OracleのVS2005アドオンツールを使って、
VS2005上で直接テーブル設計するのもいいかもしれません。
http://www.oracle.com/technology/tech/dotnet/tools/index.html
065965672007/09/16(日) 00:44:37
>>658
色々試してみましたところ何とか接続する事は出来ました。
ありがとうございます。

0660デフォルトの名無しさん2007/09/16(日) 03:32:41
VC#で作成したアプリを別PCで使用する場合はEXEをコピーすればいいのですか?
0661デフォルトの名無しさん2007/09/16(日) 07:59:10
他のファイルを参照したりしてなければ
06625122007/09/16(日) 09:06:24
>>632
function(obj); の場合、メソッド内にObjectのコピーが作成されるのでしょうか?
0663デフォルトの名無しさん2007/09/16(日) 09:08:14
Objectの実体の住所を書いた紙を書き写す感じ
0664デフォルトの名無しさん2007/09/16(日) 10:17:43
>>662
「値渡し」と「参照渡し」を調べてみるといいよ。
こういうプログラミング概念は、
他の言語でも使われているので、
理解しておいても損はない。

ちなみに、function(obj)が値渡し、
function(ref obj)が参照渡し(・・・だったはず)
0665デフォルトの名無しさん2007/09/16(日) 10:50:29
>>664
「値渡し」と「参照渡し」を調べてみるといいよ。
こういうプログラミング概念は、
他の言語でも使われているので、
理解しておいても損はない。
0666デフォルトの名無しさん2007/09/16(日) 13:50:18
参照の値渡し/参照の参照渡しとでも言えばいいの?w
0667デフォルトの名無しさん2007/09/16(日) 13:57:31
>>666
「値渡し」と「参照渡し」を調べてみるといいよ。
こういうプログラミング概念は、
他の言語でも使われているので、
理解しておいても損はない。
0668デフォルトの名無しさん2007/09/16(日) 14:10:06
参照型の値渡し、参照型の参照渡しと言うべきだな
0669デフォルトの名無しさん2007/09/16(日) 14:13:19
>>668
「値渡し」と「参照渡し」を調べてみるといいよ。
こういうプログラミング概念は、
他の言語でも使われているので、
理解しておいても損はない。
0670デフォルトの名無しさん2007/09/16(日) 14:15:23
参照型のインスタンスへの参照を格納する変数への参照の値渡し ならどうだ(ref object)
0671デフォルトの名無しさん2007/09/16(日) 14:16:42
>>670
「値渡し」と「参照渡し」を調べてみるといいよ。
こういうプログラミング概念は、
他の言語でも使われているので、
理解しておいても損はない。
0672デフォルトの名無しさん2007/09/16(日) 14:22:24
こんちたびなし
0673デフォルトの名無しさん2007/09/16(日) 14:22:46
コピペ君って馬鹿だな、まで読んだ。
繰言クンも馬鹿だな、まで読んだ。
0674デフォルトの名無しさん2007/09/16(日) 14:24:54
>>673

>>673
0675デフォルトの名無しさん2007/09/16(日) 14:34:26
C#相談室
0676デフォルトの名無しさん2007/09/16(日) 15:07:38
♯
0677デフォルトの名無しさん2007/09/16(日) 15:18:59
C#で月を表す定数を使用したいのですがCalendarクラスに見つかりません。
JavaでいうCalendar.JANUARYのような定数はC#ではどこにおいてあるのでしょうか?
0678デフォルトの名無しさん2007/09/16(日) 15:30:51
俺の部屋のベッドの下
0679デフォルトの名無しさん2007/09/16(日) 15:42:32
.NETはグローバリゼーションを考えてるから、一年が12ヶ月と決め付けてはいないんだ
0680デフォルトの名無しさん2007/09/16(日) 15:44:17
>>677
intの1 ~ 12でいいよ。
0681デフォルトの名無しさん2007/09/16(日) 15:45:25
Javaは月が0-11だから、こういうのがないとつらいのか。
.NETは1-12だからそのまま使え。
06826772007/09/16(日) 15:53:45
工工エエエエ(´Д`)エエエエ工工
enum自作します・・・
0683デフォルトの名無しさん2007/09/16(日) 15:59:26
おれ英語表記だとJanから順番に唱えないと自身持って数字に変換できないわw
0684デフォルトの名無しさん2007/09/16(日) 16:03:03
定数にした方が見やすいような場面が思いつかない
0685デフォルトの名無しさん2007/09/16(日) 16:04:06
でもあちこちで例外処理するよりはenumのほうがいいんじゃまいか?
0686デフォルトの名無しさん2007/09/16(日) 16:12:24
どんな処理にそれが必要なんだろう
と思ったがMONTHLYDATEとかのときに作る羽目になったなそう言えば
0687デフォルトの名無しさん2007/09/16(日) 16:16:46
俺は677の発想に一票。
コードが見やすいかどうか、というより(まあ数字の方が見やすいのはたぶん日本人ぐらいのものだと思うが)
「月の名」っていう型が存在することの方が重要でしょ。
0688デフォルトの名無しさん2007/09/16(日) 16:19:28
それじゃlocale毎に違う型が必要になっちゃわね?
0689デフォルトの名無しさん2007/09/16(日) 16:22:23
まあ時と場合による、で良いんじゃね
Flags 属性が必要な場合なんか列挙体にするしかないし
// ロケールとの食い合わせが悪いのは仕方なし
0690デフォルトの名無しさん2007/09/16(日) 16:22:56
それ一般論としては間違ってないが、
しかしイスラム暦やチャイニーズカレンダーでコード書く必要ってそんなにあるの?w
0691デフォルトの名無しさん2007/09/16(日) 16:29:17
>>685
enumでも範囲チェックはできないがな
0692デフォルトの名無しさん2007/09/16(日) 16:30:09
>>687
日本人なんだから見やすい数字を選ぶほうが当たり前だろ。
で、なにが重要なの?
0693デフォルトの名無しさん2007/09/16(日) 16:36:44
>>692
重要じゃないと思うなら思っても別にいいんだが、
それならboolをすべてintで代用(いやboolが本来「代用」なんだが)している
コードをみても文句を言うなよ。
0694デフォルトの名無しさん2007/09/16(日) 16:39:27
いや、日本人ならというなら、むしろこうしようぜ。
enum 月
{
  睦月 = 1,
  如月 = 2,
  弥生 = 3,
  ...
}
0695デフォルトの名無しさん2007/09/16(日) 16:40:51
enumにするにしても、何に使うかでどういう値になって欲しいか違いそうだから後付けの方がいいかなあ。
0696デフォルトの名無しさん2007/09/16(日) 16:42:40
曜日のenumはあってもよいと思うが、月はいるのかな?
月が必要なら、enum { DAY1, DAY2, DAY3 .... DAY31 } も必要になるか。
その調子で enum { YEAR0001, ... YEAR9999 } は...勘弁してください。
0697デフォルトの名無しさん2007/09/16(日) 16:58:59
そこで強いtypedefという無いものねだり。
0698デフォルトの名無しさん2007/09/16(日) 18:10:15
構造体に型変換演算子を定義すれば
0699デフォルトの名無しさん2007/09/16(日) 18:19:13
C井って、つおい?
0700デフォルトの名無しさん2007/09/16(日) 19:06:02
C丼はおいしいですよ
0701デフォルトの名無しさん2007/09/16(日) 20:09:08
Vb6よりよわいですw
0702デフォルトの名無しさん2007/09/16(日) 22:35:21
>>701
スパゲッティ量産するんだからVB厨はこっちに来ないでよ
0703デフォルトの名無しさん2007/09/16(日) 22:41:12
スパゲッティなんて20年ぶりに聞いたw
0704デフォルトの名無しさん2007/09/16(日) 23:00:13
>>703
本人に向かって言うわけ無いだろ?
0705デフォルトの名無しさん2007/09/16(日) 23:40:46
C#厨はパフォーマンスのこと言われるとすぐ頭に血が上るみたいですね

実行速度はVB6より遅いことに疑問をはさむ余地はないのにね
0706デフォルトの名無しさん2007/09/16(日) 23:43:38
そうだね
0707デフォルトの名無しさん2007/09/16(日) 23:45:51
パフォーマンスが重要ならC++で書くから
0708デフォルトの名無しさん2007/09/16(日) 23:52:58
>>705
せっかくだから自慢のVB6で挑戦してみたら?
ttp://d.hatena.ne.jp/siokoshou/20070411
0709デフォルトの名無しさん2007/09/17(月) 00:20:30
>>705
すまん、パフォーマンスの事言ってるのどこら辺から?
0710デフォルトの名無しさん2007/09/17(月) 00:51:44
>>707
パフォーマンスが重要でない案件なんて今まで出会ったこと無い。
0711デフォルトの名無しさん2007/09/17(月) 00:55:28
>>710
ならばクロック数えながらすべてアセンブラで書け。
0712デフォルトの名無しさん2007/09/17(月) 00:57:40
クロック数えながら?
なにとんちんかんなこといってんの?

0713デフォルトの名無しさん2007/09/17(月) 00:59:41
パフォーマンスが最重要の案件なんて今まで出会ったこと無い。
0714デフォルトの名無しさん2007/09/17(月) 00:59:46
.NETだとパフォーマンスが悪いから仕事で使えないというなら
Javaは使えないしPerlやPHPもダメ、Rubyなんて論外だろう
まあ大体の仕事では逆にC++が論外なんだがな
0715デフォルトの名無しさん2007/09/17(月) 01:06:43
>>712
意味わからんのか、かわいそうにw
0716デフォルトの名無しさん2007/09/17(月) 01:15:41
>>711
発言が幼稚園児なみだな
0717デフォルトの名無しさん2007/09/17(月) 01:18:55
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
0718デフォルトの名無しさん2007/09/17(月) 01:20:27
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
0719デフォルトの名無しさん2007/09/17(月) 01:21:11
ファビョった
0720デフォルトの名無しさん2007/09/17(月) 01:21:25
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
0721デフォルトの名無しさん2007/09/17(月) 01:22:14
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
ならばクロック数えながらすべてアセンブラで書け。
0722デフォルトの名無しさん2007/09/17(月) 01:23:43
>>716 死ね
>>716 死ね
>>716 死ね
>>716 死ね
>>716 死ね
>>716 死ね
>>716 死ね
0723デフォルトの名無しさん2007/09/17(月) 01:24:24
>>716 死ね
>>716 死ね
>>716 死ね
>>716 死ね
>>716 死ね
>>716 死ね
>>716 死ね
0724デフォルトの名無しさん2007/09/17(月) 01:34:40
お前らくだらない事だけ頑張るよなw
0725デフォルトの名無しさん2007/09/17(月) 01:49:39
まあ、だから実際自分でコードのひとつも書いてみれば分かるけど、
ドトネトって言ったからって別にVMで動いてるわけじゃないから
パフォーマンスが悪くなる理由はないし、実際悪くないんだけどね。

初回起動の遅さとGUIのロードの遅さは確かにかなり気になるんだけどさ。
0726デフォルトの名無しさん2007/09/17(月) 01:49:56
クロック数えながらw
0727デフォルトの名無しさん2007/09/17(月) 02:09:38
>>725
初回起動の遅さはなんかディスクアクセスのせいな気もするな。
CPU速度関係なさげ。
■ このスレッドは過去ログ倉庫に格納されています