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


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

ふらっとC#,C♯,C#(初心者用) Part39



1 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:19:33 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ

ふらっとC#,C♯,C#(初心者用) Part38
pc11.2ch.net/test/read.cgi/tech/1235864730/

610 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:29:35 ]
それクラスの外に書くやつですよね
クラスで管理したいです

611 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:31:13 ]
調べようぜ少しくらい
ttp://msdn.microsoft.com/ja-jp/library/yh598w02(VS.80).aspx

612 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:33:15 ]
ワラタ

613 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:33:15 ]
そういうものが必要になることじたい何かおかしいのだが、
プロパティにしたらどう?

int A { get { return bbbb.ccccc.ddddd; } set { bbbb.ccccc.ddddd = value; }}

614 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:37:26 ]
unsafeだめ?

615 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:39:03 ]
>>611
そっちか。それだめです期限付きでその中ではコピーされますよね
参照がいいです。

616 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:45:36 ]
・・・・・・(;´∀`)

617 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:47:43 ]
だからunsafeつかって好きにかけや

618 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 18:55:39 ]
FontDescriptionという構造体を呼び出すときに

fd = new Microsoft.DirectX.Direct3D.FontDescription();

としているんですが
次のエラーが出てしまいます

次のメソッドまたはプロパティ間で呼び出しが不適切です:
'Microsoft.DirectX.Direct3D.FontDescription.FontDescription()' と
'Microsoft.DirectX.Direct3D.FontDescription.FontDescription()'

ビルドしてみるとエラーがあるにもかかわらず問題なく動いているようです
これはどうすればいいんでしょうか



619 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:04:06 ]
質問です。

class HogeCollection : IEnumerable<Hoge>

のように、IEnumerable<T>を実装したコレクションのインスタンスがあるのですが、
そこから動的にHogeの型を取得するにはどうすればよいのでしょう?


620 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:08:24 ]
リフレクション

621 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:12:26 ]
GetType().GetInterfaces().First(i => i.Name == "IEnumerable`1").GetGenericArguments()[0]

かな
もっといい方法もありそうだけど

622 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:17:47 ]
>>613
それも値がコピーされて格納されるじゃん
一瞬でも複製を作りたくないんだけど
ほんとに引数にref指定してその中だけで使えるように渡すしか値型を参照で保持する方法はないの?

623 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:20:37 ]
>>621
Nameを使うと誤判定の可能性があるので、
オープンジェネリック型を使った方がいいな

GetType()
.GetInterfaces()
.First(i => i.GetGenericTypeDefinition() == typeof(IEnumerable<>))
.GetGenericArguments()[0]

624 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:24:10 ]
structのこといってんの?
一瞬でもコピーされるのの何が問題なのかわからんから答えようがないよな

625 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:24:38 ]
>>620-621,623
なるほど!ありがとうございました。

626 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:26:40 ]
unsafeでポインタでFA

627 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:27:44 ]
unsafe対応してないの!

628 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:28:37 ]
すまんunsafeしかないってことか
構造を変えるわ、あきらめたthx




629 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:31:21 ]
>>622
初心者スレに行って質問の仕方から勉強しなおしだな

630 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:40:56 ]
>>622
それくらいの余計なコピーの作成くらい、実行時には最適化で消えると思うよ。

631 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:43:19 ]
もしかして、複数スレッドから読み書きされるからコピーされると困る って話なのか?

632 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:51:16 ]
たぶん異なるスレッドから見てるんでしょ

関係ないけど
参照でコピーしても、そのポインタを保持してるんだからメモリの節約にはならないんだっけ?

633 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:53:22 ]
ただ呼び出しがめんどいってだけじゃね?最初の質問からすると。
最後にまた代入すりゃいいじゃんって思うけどねw

んで質問ですけど、unsafe使って問題になることって何ですか?
unsafe内のコードに問題が無いという前提で。

634 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:56:39 ]
関数の引数でref使う方法もなくはないけど、
aliasをサポートする別の言語を使うしかないな。C++/CLIで何とかならなかったっけ?

C#でもこういう裏技はあるけど正直おすすめしない。
int hoge = 0; 
TypedReference tref = __makeref(hoge); 
__refvalue(tref, int) = 5; 
Console.WriteLine(hoge); 


635 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:57:31 ]
>>633
>unsafe内のコードに問題が無いという前提で。
その前提が"成り立つ事を保障できない"事こそが最大の問題だと思うのだけど

636 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:01:34 ]
インテリセンスではエラー波線でないんですが、
オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーが出るのですが、なんでですか?

637 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:02:41 ]
オブジェクトがnullなのにメソッドを呼び出したかなんかしたんだよ

638 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:04:35 ]
宣言時に値は入れてるんですが、起動時の順番が問題で宣言がまだ見つからないってことですか?



639 名前:デフォルトの名無しさん [2009/04/02(木) 20:06:40 ]
入れてると思ってるだけで入ってないんだよ
ぬるぽってやつだよ

640 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:07:40 ]
  ∧_∧
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__∧∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>639

641 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:09:10 ]
pub class a
pub int data = 500;

pub class b
pub int data;
pub b(a aa)
{
data = aa.data;
}

でdata = aa.data;でエラーでるんです

642 名前:デフォルトの名無しさん [2009/04/02(木) 20:10:40 ]
aaがnullなんだよ

643 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:11:31 ]
>>635
そりゃそうなんだけど、それ以外にもなんかあるのかなーと思ったけど
それ以外ないわな。unsafeは使用禁止とか普通にあるだろし

今回の参照の件とかはそれほど問題にする意味もないのかなと考えてたけど
まぁunsafeなんだし、使わなけりゃ一番問題ないな

644 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:14:19 ]
>>642
ありえないです。class bをaaを渡してnewした時初めてthis.dataに入れようとしますよね
ここでエラーになるってことはaaは入ってるんです

645 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:17:31 ]
ブレークポイント設定してaa.data;のところにカーソルあててみなよ
aaがnullになってるから

646 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:20:49 ]
nullになってました
自信あったのにショックです
ありがとうです

647 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:28:51 ]
エラーが出てるけど、自信があるのでデバッグしません!

648 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:29:49 ]
>>634
ref 使う方法。変態のきわみだ。

delegate void Alias(ref int i);
static void Main() {
  int bbbb_ccccc_ddddd = 0;
  ((Alias) delegate(ref int i) {
    i = 98765;
  })(ref bbbb_ccccc_ddddd);
  Console.WriteLine(bbbb_ccccc_ddddd);
}




649 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:30:21 ]
事前にエラーがわかる静的言語は便利なことがよくわかるよな
特に初心者の人にとっては

650 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:09:57 ]
構造体の初期化はどうかけばいいのでしょうか
Vector3 a = {0.0f, 0.0f, 0.0f};


651 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:12:41 ]
コンストラクタが使えるだろ

652 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:12:52 ]
Vector3 a = new Vector3(0.0f, 0.0f, 0.0f);

653 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:13:05 ]
構造体内にコンストラクタを書いてそこで初期化

654 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:18:52 ]
thx!

655 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:20:18 ]
>>633
部分信頼とかセキュリティ上の理由でunsafeコードを実行させてくれない仕組みに引っ掛かるとか。

656 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:24:22 ]
struct Data {
 int a, b, c, d, e......;
}

class Cupsel {
  Data data;
}


657 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:49:48 ]
>>655
はーなるほど。そういう仕組みがあったのねぇ
セキュリティポリシーによるようだね。通常はローカルだと問題ないのかな
今までなんも考えなかったわ。ありがとう

658 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:01:07 ]
System.Drawing.Graphics g = Graphics.FromImage(backBuffer);
g.Clear(Color.Black);
g.DrawImage((Image)image, new Point());
Graphics.FromHwnd(panel1.Handle).DrawImage((Image)backBuffer, new Point());

WinFormsで、高速に、ちらつかせずに画像表示をさせたいんですが
どうやるのがいいんでしょうか?
描画するまで画面を更新されないようにするやり方がわかりません・・

それと、加算合成とかをするにはDrawImageでは無理そうですがどうすれば。



659 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:02:18 ]
ちらつき防止はコントロールのDoubleBufferedでいけるんじゃないの?
あと、Graphics.FromHwnd(panel1.Handle)よりもpanel1.CreateGraphics()のほうが普通だと思う。

660 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:02:33 ]
>>634
話は戻るが、そこでusingだ。

661 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:05:46 ]
>>618分かる人いませんか?

662 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:26:07 ]
何だろう。よく分からんけど、バージョン違いのアセンブリを参照してるとか?
参照設定はどうなってる?

663 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:02:12 ]
>>660
usingディレクティブの別名は名前空間と型名だけだったと思うが、
質問者は変数の別名が欲しいといってるんじゃないのかな?

664 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:23:36 ]
>>662
DirectX関係で参照してるのは

DirectX
Direct3D
Direct3DX
DirectInput
DirectSound

です
Direct3DXのバージョンは1.0.2911.0で他のものより新しいのを使ってたんですけど
バージョンをそろえてみても同じエラーが出ます


665 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 02:44:15 ]
>>664
CS0121?
msdn.microsoft.com/en-us/library/ky5f1hz8.aspx
どうやらオーバーロードなどをしていて,複数の選択肢が暗黙的な型変換で,動作が決定不能になる時に発せられるらしい.
状況によって変わってくるから,他の部分で名前と名前,型と型がバッティングしていないか確かめてみたら?

あと,なんだか Microsoft.DirectX.Direct3D.FontDescription で検索すると,成功している人が少ない雰囲気.

666 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 07:06:03 ]
アクセス制限機能つきのアプリを作りたいです。

ユーザ権限やパスワード管理機能つけたいんだけど、
一から作るしかないですか?

.NET Framework 2.0 ならいいライブラリがありそうだけど見つけきれません。。。



667 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 07:51:41 ]
使ったことないけど、System.Security名前空間から適切な制限を見つけてDemaidメソッド呼び出せばいいんじゃね?

668 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:34:17 ]
System.Windows.Form.WebBrowserをIE8に変更できませんか?
OSのIEは8に更新しました

Vista + VS2008 です



669 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:41:42 ]
>>668
更新した時点でもうなっとるがな。

670 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:13:53 ]
windowsアプリで自動アップデート機能をつけようと思うのですが
Program Files以下のファイルを更新するときは
管理者権限が必要ですよね。
Vistaの場合管理者でログインしても
普通にアプリを実行するとWindowsPrincipalはUserになっちゃいますよね。
右クリックで管理者として実行を行わないと
管理者権限で実行されませんよね。
そのため自動アップデートによるアップデートができないと思うのですが、
世に出回っているVista対応アプリはどうやって対処しているのでしょうか?

671 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:18:24 ]
>>670
UAC の昇格をしてるでしょ。

672 名前:668 mailto:sage [2009/04/03(金) 15:21:40 ]
>>669さん
確認くんで調べたらIE7のままなんです

673 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:25:11 ]
>>672
その結果を貼り付けてみ。互換モードになってるとかの落ちじゃないよね?

674 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:41:32 ]
IE8 WebBrowser Control で検索したらすぐに答えが出てきたぞ
ttp://blogs.msdn.com/ie/archive/2008/03/18/webbrowser-control-rendering-modes-in-ie8.aspx

675 名前:670 mailto:sage [2009/04/03(金) 16:08:08 ]
>>671
ユーザが意図的に管理者として実行をして、
昇格をしてもらわないとアップデートできないので、
世に出回ってるアプリはどう対応してるのかということを質問しています。
普通に実行したときはバージョンアップの通知だけで、
通知があったら「管理者として実行」してもらうと言うことになるんでしょうか。
でもそれだとUACを知らない、年配などのライト層は
ずっとバージョンアップできないってことになりますよね。
しかもそれって、自動アップデートではないですよね。

676 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:11:59 ]
>>675
よくわからんけど、セキュリティソフトなんかは予めUAC昇格させる設定を
ユーザーにさせてるんでないの?
都度か一括かの違いで

677 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:17:35 ]
>>675
つか、何言ってんの?

「管理者として実行」しなくても、UAC の昇格を行うことはできるよ。
一般的な方法としては、マニフェストを書いておいて、そのアプリを呼び出す。
新しいバージョンがあるかを確認するアプリと、実際に更新をするアプリに分ける、
って感じだね。

Firefox も、ATOK も HP のプリンタドライバも、そんな感じでやってると
思うけど・・・。

678 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:24:46 ]
Google ChromeがAppData内にインストールされるのは
UACの昇格なしでアップデート可能にする為だって話を聞いたことがある



679 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:25:02 ]
>>677
何言ってんのか分からないのに答えられるってすごいなぁ。
しかも最後、自信なさげなところがなんとも。

680 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:25:20 ]
>>678
そもそも ClickOnce だし。

681 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:27:37 ]
XPユーザーとしてはUACの昇格とかわけわかんないし怖いよ
今はそんなのも気にしなきゃならんのか

682 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:29:51 ]
VistaユーザーだってUACなんか訳わからんよw
Linuxみたいにアクセス権限だけでいいだろって突っ込まれまくりだろ

683 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:32:42 ]
>>679
「UAC 昇格起動」と「修辞的疑問文」でくぐってからまた来てね。


684 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:33:35 ]
全世界の奴がMSに文句つけまくっていじめまくった結果がこれだよ
そして無意味なセキュリティをつけたらフルボッコだよ

685 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:34:51 ]
>>684
× 全世界の奴
○ 狂ったLinuxユーザー

686 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:35:58 ]
なんでLinuxユーザーが文句つけるんだ

687 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:38:37 ]
>>680
ClickOnceって.NETアプリ以外でも使えたのか

ClickOnceと同じ場所を使ってるだけかと思ってたよ

688 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:40:53 ]
>>687
正確には、インストーラとして使ってる、ってとこかと。
そのおかげで、統合認証以外のプロクシを使ってると、インストールすらできないw



689 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:29:47 ]
>>675
Verb を runas にしたら昇格するよ。
アップデータの PE わけて起動させたほうがいいかもしれないけど。
なんとなーく勘違いしてそうなので UAC についてプログラマの視点から
指摘しとくと、昇格ダイアログ出すまではプログラムで可能。
OK ボタン押したら昇格ダイアログ→OK → アップデートってやるんだよ。

あとアップデートに関して言えば、パッチパッケージにすれば明示的な
昇格はいらない(ポリシーにより不可になるし署名が要るけど)。
Program Files 以下でも。実は古くからある機能だが。
実際には、パッチは管理や検証がめんどくさくなるのであまり使われな
いけどな。

>>681
Vista ユーザーからしたら XP の何もなく管理者で動くの不安になる正直
かといって Users で使おうとしたら不便極まりないし。両立できてかなり
いい機能だと思うがなぁ >UAC。リダイレクトとかの機能含めてな。

690 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:26:26 ]
>>665
はい、CS0121です

引数なしのコンストラクタを呼び出しているのに
二つ選択肢があるっていうのがちょっと理解できません・・・
ヘルプのコンパイラ エラー CS0121の使用例は理解できるんですが・・・

エラーは吐いているんですがビルドできるし正常に動作しています
それも理解できないし気持ち悪いです

691 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 02:14:56 ]
int a=0,b=0,c=0;
int line_count = arrText.Count;
ar_OKPOS = new List<int[]>[line_count];
for (int i = 0; i < ar_OKPOS.Length; i++){
ar_OKPOS[i] = new List<int[]>(new int[][] { new int[2] });
}
foreach (string sOutput in arrText)
{
// 一行ずつ読み込んで,各行をsplitメソッドで分ける
string temp = (string)arrText[a]; // string型にキャスト
string[] temp2 = temp.Split(',');// splitメソッドで文字列アレイにして数える
int col_count = temp2.Length; // 列数を数えているだけ

string[] temp_line = sOutput.Split(',');
for(int i=0;i<temp_line.Length;i++)
{
for(int k=0;k<2;k++){
i = i + k;
ar_OKPOS[a][b][c]=Convert.ToInt32(temp_line[i]);
c++;
}
c = 0;
b++;
}
b = 0;
a++;
}

692 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 02:24:35 ]
すいません 誤爆してしました

693 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 08:52:22 ]
デザインパターンとか全然勉強せずにプログラマやってるけど、勉強したほうがいいのかな?

694 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 08:54:14 ]
デザインパターンはなんかJava臭いよな
C#はオブジェクト指向至上主義じゃないから合わないんじゃない

695 名前:デフォルトの名無しさん [2009/04/04(土) 09:52:38 ]
標準のクラスライブラリでも結構それっぽいのはよくでてくるよ
ただjavaと違って、MSはほとんどデザインパターン用語を使わない

696 名前:デフォルトの名無しさん [2009/04/04(土) 13:38:17 ]
privateなメンバ変数もprivateなプロパティとして表示させたほうがいいですか?

またメソッドでメンバ変数を利用するときなるべく引数として渡した方がいいですか?
それともメソッド内でいきなり使用しても問題無いですか?

たとえばクラスに以下のようなメソッド等があったとして
private int _num;
public void Method()
 int num = CalcMethod(2);
private int CalcMethod(int num1)
 return num1+_num:
こういう書き方が良いのか
private int _num:
public void Method()
 int num = CalcMethod(2, _num);
private int CalcMethod(int num1. int num2)
 return num1+num2;
こんな書き方のほうがいいのか知りたいです。
例では単なる足し算ですが、複雑な計算をしているという仮定です。

697 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 13:41:03 ]
演算要素を全て引数で取らせるならstaticにする

698 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:20:05 ]
メソッドを呼び出す側からすれば,メソッド呼び出しはオブジェクトを操作することなので
内部状態を存分に使ってもらって構わない気がする.



699 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 15:33:03 ]
ありがとう
なるべく引数で渡したほうが、その中で完結するのでわかりやすい気がして
じゃあ、あんまり気にしなくていいってことかな?


700 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 15:58:22 ]
計算処理のように内部状態に関係なしに定義できるものは、
内部状態非依存(static)の方が単体テストしやすい

まあ、その例くらいの規模なら大して変わらないんだが

701 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 16:06:09 ]
>>696
むしろそのメソッドを定義したクラスはどんな責任と制約をもってんのよ?
メソッド単体じゃあなんともいえない

>699
時と場合による
プログラミングしやすい分かりやすさもあれば、
利用しやすいわかりやすさもある

702 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:48:14 ]
VC#単体(他から持ってきたライブラリを使わず)で開発したソフトやゲームを
販売する場合、ライセンス等の問題ってありますか?


703 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:59:31 ]
場合による。

704 名前:デフォルトの名無しさん [2009/04/04(土) 21:17:48 ]
ミサイル防衛システム作りたいんですがヒントだけでもください

705 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 21:25:07 ]
MDIで作成した子フォームに含まれるコントロールを取得後、アクセスしたいんですが
foreachでいちいちループ回さないといけない・・・
なんか他にいい方法ないでしょうか?
子フォームはアクティブな状態のものです

if (!(this.ActiveMdiChild as Form == null))

{
foreach (Control Ctrl in (this.ActiveMdiChild as Form).Controls)
{
 if (Ctrl is TextBox /*例としてテキストボックス*/ )
 {
  //処理
 }
}
}


706 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 21:41:58 ]
全コントロールを対象に処理が必要なら foreach で回さざるを得ないだろ。
特定のコントロールのみを対象にするなら Panel か UserControl に貼り付けて
必要なコントロールへのアクセスを容易にすればいいよ。

707 名前:705 [2009/04/04(土) 21:54:17 ]
ん〜じゃあ無理か
Panelのリストを管理するとまた手間がかかりますしねえ・・・
どうもありがとうございました

708 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:05:22 ]
動的に作成する場合でもIList<>に入れればいいし、
あらかじめポトペタならコントロールが限られてるから
どちらにしても最低限のループでいけるんじゃないの?



709 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:16:50 ]
Linqでコントロールの種類ごとに連想配列に分配するクエリを作れば?

710 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:29:30 ]
>>702
ないよ






[ 続きを読む ] / [ 携帯版 ]

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

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