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


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

C#, C♯, C#相談室 Part54



1 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:32:03 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part53
pc12.2ch.net/test/read.cgi/tech/1245150671/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい

2 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:33:24 ]
関連スレ

ふらっとC#,C♯,C#(初心者用) Part43
pc12.2ch.net/test/read.cgi/tech/1248573707/

Visual Studio 2008 Part 17
pc12.2ch.net/test/read.cgi/tech/1245309571/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
pc12.2ch.net/test/read.cgi/tech/1245384489/

【VB.NET】LINQ友の会【C#, C♯, C#】
pc12.2ch.net/test/read.cgi/tech/1202568694/

C#,C#の宿題片付けます。
pc12.2ch.net/test/read.cgi/tech/1197620454/

3 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:33:52 ]
参考リンク

MSDNライブラリ
msdn.microsoft.com/ja-jp/library/

@IT Insider.NET
www.atmarkit.co.jp/fdotnet/
Insider.NET 会議室 ディレクトリ
www.atmarkit.co.jp/fdotnet/index/bbs/
MSDN フォーラム
forums.microsoft.com/MSDN-JA/default.aspx?SiteID=7

pinvoke.net: the interop wiki!
pinvoke.net/
宇宙仮面の C# プログラミング / C# Programming
ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
wisdom.sakura.ne.jp/programming/cs/
WisdomSoft Microsoft .NET入門
wisdom.sakura.ne.jp/system/msnet/
どっとねっとふぁん
dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
dobon.net/vb/dotnet/

4 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:34:07 ]
質問する前に"必ず"WikiやFAQ集を参照し、同じような質問がないか確認してください。

初歩的な質問はPC初心者板で・・・
pc11.2ch.net/pcqa/
参考リンク(よく出てくる情報リンク)
Windows Vista Wiki
windowsvista.ms/index.php
Windows VistaFAQ
vistafaq.stdo.net/index.html
インストールから設定・活用まで〜 すべてが分かるWindows Vista大百科
journal.mycom.co.jp/special/2007/windowsvista/menu.html

5 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:26:55 ]
>>1乙!

6 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 19:41:07 ]
さっそく質問なんですが

VC♯で画面を作っていて、
ListBoxを二つ用意して、ListBox1の項目を選択した場合に、ListBox2に表示されている項目もListBox1の項目に対応したフォーカスが自動でセットされる仕組みにしたいのですがうまくいきません。
例えば、ListBox1に名前を表示させて、ListBox2に誕生日を表示させた場合、名前を選んだら自動的にその名前に対応した誕生日にフォーカスがあたる仕組みを作りたいのです。

それぞれのListBoxに表示するものはXMLファイルから読み取って表示させています。
一応、名前と誕生日はXMLファイルの中で関連付けもしています


7 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 19:53:33 ]
Ajax的なものをWinFormでしたいのな。
ListBoxが変化したときにイベント起こせばいけそう。

8 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 20:07:24 ]
バインディングで
ListBoxだとDataSourceか

9 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 21:13:26 ]
>>6
「うまくいかない」という質問は、ありえないほど酷い。
PCが煙吐いて空の果てに飛び立ったまま戻ってこなくなりました、だって「うまく
いかない」のうちだ。
どううまくいかないのかを書け。

リストボックスの項目選択をプログラム的に行うだけならListBox#SelectedIndex
プロパティに値をセットすれば動くが。

10 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 21:13:41 ]
>>6 汚いソースでごめんよ。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private const string xmldoc =
@"<?xml version='1.0'?>
<names>
<person name='satou'>2009/01/01</person>
<person name='saitou'>2009/02/01</person>
<person name='sakata'>2009/03/01</person>
</names> ";
private void Form1_Load(object sender, EventArgs e)
{
var doc = XElement.Parse(xmldoc);
var q = from n in doc.Descendants("person")
select n.Attribute("name").Value;
this.lstName.DataSource = q.ToList();
}
private void lstName_SelectedIndexChanged(object sender, EventArgs e)
{
var item = (sender as ListBox).SelectedItem.ToString();
var doc = XElement.Parse(xmldoc);
var q = from n in doc.Descendants("person")
where n.Attribute("name").Value == item
select n.Value;
this.lstBirthday.DataSource = q.ToList();
}
}




11 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 21:23:32 ]
一応、貼っておくね?
www.redout.net/data/osietekun.html

12 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 00:58:34 ]
おお、皆さんありがとうございます
とりあえず今から試してみます

13 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 01:46:18 ]
d.hatena.ne.jp/kiichi55/20090429/1241021253
ここ参考にMeCab(形態素解析器)呼び出し作ってみたんだけど

1000文字くらいの解析を数万ループしたら
メモリがバカほど膨らんでしまった

GC.Collect();
しても解放されないのでMeCab内で持っているらしいんだけど
こういうのって対策ある?

14 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 02:30:29 ]
その DLL が解放するための関数を提供してないなら、
DLL 自体をアンロードするしかないんじゃね?

15 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 02:34:58 ]
>>13
mecab_destroy よんでないんじゃないのか?

16 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 02:35:36 ]
相互参照は開放するように指示は出せるけど、いつ開放するかは決まらないんじゃなかったけ


17 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 02:51:03 ]
>14-16
返信どうもです

mecab_destroyは呼んでます
それでも駄目なので困ってたところ

ロード アンロードは時間がかかるので
あまりやりたくないのですが,それしか方法なさそうですか...

18 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 07:17:53 ]
どうせ目的の処理自体が重いんだからどうでもいいだろ
別プロセスにして標準出力で受けるとかでもよくね

19 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 07:43:51 ]
>>13
リンク先、PtrToStringAnsi呼ぶ位置がおかしいな
それはともかく手元のVistaでmecab0.98pre2のlibmecabを4000文字10000回ほど
mecab_new2〜mecab_sparse_tostr〜mecab.destroyしてみたが
とくに問題なかった 非プライベートなワーキングセットも含めて

20 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 09:06:40 ]
>>19
0.97->0.98pre3
バージョン上げることでメモリ問題解決しました
気づかせてくれてありがとうございます

わざわざサンプルまで作っていただいてすみません


アンカー後先逆ですが
>>18
以前までそういう風に組んでたんですが
アンマネージのDLL読み込めることを知ったのでやってみたらこうなった感じです




21 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:55:34 ]
System.Net.Socketsが見つからないため
TcpListenerクラスが使えません。 System.Netはありました。
どうすればいいですか? VC#2008です

22 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:57:34 ]
必要なアセンブリを参照設定して、必要な名前空間を using する。
それだけ。

23 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 14:30:05 ]
>>22
いえ、それでも見つからなかったのです

24 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 14:34:23 ]
じゃあアンドレカンドレの「夢の中へ」でも歌っとけ

25 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 14:43:14 ]
じゃあ、あきらめろよ。

26 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 15:00:11 ]
>>23
具体的にどんな環境でどんなことやって見つからなかったの?

27 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 16:10:00 ]
>>23
気合が足りない

28 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 16:26:12 ]
昨日の>>6で質問した者なんですが>>10さんが書いてくださったソースを基に試してるのですが
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

var doc = XElement.Parse(xmldoc);
var q = from n in doc.Descendants("person")
select n.Attribute("name").Value;
var lll = from a in doc.Descendants("aaa")
select a.Attribute("name").Value;
this.listBox1.DataSource = q.ToList();
this.listBox2.DataSource = lll.ToList();
}
private const string xmldoc =
@"<?xml version='1.0'?>
<names>
<person name='satou'>2009/01/01</person>
<person name='saitou'>2009/02/01</person>
<person name='sakata'>2009/03/01</person>
<person name='sakamoto'>2009/01/01</person>
<aaa name='2009/01/01'></aaa>
<aaa name='2009/02/01'></aaa>
<aaa name='2009/03/01'></aaa>
<aaa name='2009/04/01'></aaa>
</names> ";
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
このようしてにXMLから表示させる時にpersonの名前と関連させた誕生日だけを表示させるのではなく、まず初めに名前一覧と誕生日一覧をそれぞれのListBoxに表示させてから名前を選ぶとそれに関連する誕生日にフォーカスが移るようにしたいのですが、
この場合personの誕生日をみてaaaの誕生日と関連付けをしてフォーカスを移させることは可能なのでしょうか?

29 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:12:59 ]
無理無理。なにせpersonとaaaを関連づける情報が無いじゃないか。
エスパーするとaaaのnameが参照キーでテキストノードが関連するデータのつもりかもしれないけど。
名前ならいざしらず誕生日をキーにする気?(名前も同じ名前があったらどうする)

あくまで一例だけど、こんなのはどう?
1.DataSet 配置して、その中に persons テーブル作る。
2.persons の中に name と birthday 項目を作る。
3.二個のリストボックスの DataSource に配置した DataSet を設定。
4.二個のリストボックスのそれぞれの DisplayMember に "persons.name" と "persons.birthday" を設定。
5.DataSet に以下のようにデータを食わせる。
string data
= @"<?xml version='1.0' standalone='yes'?>
<data>
<persons><name>satou</name><birthday>2009/01/01</birthday></persons>
<persons><name>saitou</name><birthday>2009/02/01</birthday></persons>
<persons><name>sakata</name><birthday>2009/03/01</birthday></persons>
<persons><name>sakamoto</name><birthday>2009/04/01</birthday></persons>
</data>";
public Form3() {
InitializeComponent();
dataSet1.ReadXml(new StringReader(data));
}
これで名前を選択すると誕生日、誕生日を選択すると名前が自動にセレクトされる。

他の関連付けたい情報は、誕生日と同じようにpersonsテーブルに入れて誕生日と同じように関連付け。
ラベルとかに選択されてるデータを連動表示させたいなら
label1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dataSet1, "persons.birthday", true));
という感じ。

30 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:39:51 ]
興味のない方はすみません(スルーお願いします。)
新しくコンテストを来年開きたいと思っています
プログラマー(ゲーム・ツール・)の方は
pc12.2ch.net/test/read.cgi/tech/1221701297/l50
のスレに来てもらえるとうれしいです。
運営も募集しています。
↓のような感じでコンテストを開始する予定です。
219.113.110.143/




31 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:48:00 ]
なぜHSP・・・

32 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:51:24 ]
つーかIPアドレス直でやるなよ。
ちょっとDDNS登録すりゃ済む話じゃないか

33 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 15:28:15 ]
そんなスレがム板にあったのか。
ゲ制作板でやるべきじゃね?

34 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 19:22:24 ]
これ誰得・・・?
豪華商品にふいたw

35 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 21:01:45 ]
リアル中学生だな……

36 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 21:31:40 ]
中古w

37 名前:デフォルトの名無しさん [2009/08/25(火) 23:23:56 ]
treeview(4階層)を最初はエクスパンドしていない状態にし、
検索ボックスで該当した4レベル目のノードとその親ノードと祖父ノードのみを表示させたいときはどうやるのでしょうか?

38 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 00:02:47 ]
気合い

39 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 00:08:48 ]
ふらっとの方でレスもらってたろw

40 名前:デフォルトの名無しさん [2009/08/28(金) 11:19:41 ]
カスタムコントロール作るのは大変???????????



41 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 11:40:09 ]
そんな質問をするレベルなら大変

42 名前:デフォルトの名無しさん [2009/08/28(金) 13:21:36 ]
ツリービューを開いたのを、一度完全に折り畳むには、どういうメソッドを設けたらよいですか?

43 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 13:35:55 ]
WinForm?
CollapseAll 呼び出すだけだが

44 名前:デフォルトの名無しさん [2009/08/28(金) 14:39:49 ]
>>43
A
B1
C1
B2
C2
C3
というツリーがあり、これが全て畳んだ状態でC3ノードを検索したとき、
A1
B2
C3
のみを表示させることはできますか?

45 名前:デフォルトの名無しさん [2009/08/28(金) 14:42:50 ]
>>43
A
B1
C1
B2
C2
C3
というツリーがあり、これが全て畳んだ状態でC3ノードを検索したとき、
A1
B2
C3
のみを表示させることはできますか?


46 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 14:45:08 ]
Aが開かれてる時その子ノードのB1が表示されてなかったらおかしいだろ

47 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 15:02:12 ]
表示するようにすればいいじゃん

48 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 15:42:47 ]
元のツリーを変更してもいいけど、検索結果閉じた時に面倒なんで
新しいツリー用意してA1->B2->C3だけ表示すればいいじゃん

49 名前:デフォルトの名無しさん [2009/08/28(金) 15:54:04 ]
同じレベルのノードは、常に表示されてしまうわけか…。

50 名前:デフォルトの名無しさん [2009/08/28(金) 17:18:31 ]
データセットの特定のレコードを削除するには、どう記述すればいいですか?



51 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 19:48:07 ]
dataSet.Tables[0].Rows.Remove

52 名前:デフォルトの名無しさん [2009/08/28(金) 20:09:18 ]
>>51
ありがとう(*^_^*)。

53 名前:デフォルトの名無しさん [2009/08/28(金) 21:30:07 ]
( object sender , EventArgs e )という形の引数が取られる形をよく見るのですが
この引数に何かが代入(参照)するコードはどこにあるのでしょうか。
senderには


54 名前:デフォルトの名無しさん [2009/08/28(金) 21:30:58 ]
ごめんなさい、途中送信してしまいました。

55 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 21:31:58 ]
senderにはそのなのとおり呼び出し元が渡されます
キャストでもして使えばいいじゃないんでしょうか

56 名前:デフォルトの名無しさん [2009/08/28(金) 21:49:55 ]
>>55
お答えありがとうございます。

sender = オブジェクト名 ;のようなコードを書かなくても
呼び出し元が自動で渡されるという理解でいいのでしょうか?

57 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 21:56:29 ]
自動も何も引数って呼び出す側が渡すものだから。
誰が呼び出してるかというと,イベントの発生源が呼び出してる。
つまりイベントの発生源がそのイベントを呼び出すときにはsenderにthisを渡してるわけ。

58 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 22:13:24 ]
>>56
www.akadia.com/services/dotnet_delegates_and_events.html
Clockのところが参考になるよ。

59 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 22:41:25 ]
方法 : .NET Framework ガイドラインに準拠したイベントを発行する (C# プログラミング ガイド)
msdn.microsoft.com/ja-jp/library/w369ty8x.aspx

この辺を紹介しておけばいいような

60 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 23:04:05 ]
一度終了したスレッドをもう一回再開するにはどうすればいいですか?



61 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 23:06:58 ]
できないよ

62 名前:デフォルトの名無しさん [2009/08/29(土) 00:41:20 ]
コンソールって何ですか。

63 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 00:53:03 ]
メンソールみたいなもんだ。

64 名前:デフォルトの名無しさん [2009/08/29(土) 01:02:14 ]
チェックボックスの外観をラジオボタンと同じ丸型にできると聞いたことがあります。
どのようにすればできるのでしょうか。
appealanceプロパティだと、コマンドボタンの形状になってしまいます。

65 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:15:54 ]
>>64
もうこれと同じ質問を今週だけで3回見たが、
どっかの学校の夏休みの宿題か何かなのかね。

それとも同じ奴が粘着してるのか?

66 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:16:42 ]
>>64
やめろ。チェックボックスは四角のままにしとけ。

67 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:31:34 ]
こんな宿題を出す学校は存在しないと思いたい…
UIデザインとしては最悪じゃん。

68 名前:デフォルトの名無しさん [2009/08/29(土) 01:43:48 ]
ラジオボタンは複数の選択肢から選らばせるとき…
チェックボックスは単純に有無を示すとき…
という典型的な使用方法があるのだから。
チェックボックスを丸にすると逆に不気味。

69 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:47:35 ]
普通に丸にするやり方を調べて来た生徒は落第

「丸にする理由が無くまた機能を視覚化するデザインとして最悪でうんぬん」
と課題をやらない理由をレポートしてきた生徒は合格

70 名前:デフォルトの名無しさん [2009/08/29(土) 01:58:33 ]
C#をマスターするために読むべき、すばらしい本を教えてください。
入門書は読み終えました。



71 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 02:20:30 ]
ぐぐれ

72 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 02:24:02 ]
入門書読み終わったのなら、理解度を確認するためにも小規模なアプリケーション作っとけ
本読んで理解したつもりになりたいだけなら作んなくてもいいけど

73 名前:デフォルトの名無しさん [2009/08/29(土) 02:40:29 ]
>>69
そこまで頭が働く奴は、独立SEとして食べていけるだろうね。

74 名前:デフォルトの名無しさん [2009/08/29(土) 02:44:08 ]
>>70
俺のお勧めは、

作って覚えるV…C#2008
秀和システム

だね。Express向きだけど、家計簿を作りながらイメージを掴める。
他の本でアプリケーション作成の一連の作業を例示してくれている本は知らない。

75 名前:56 mailto:sage [2009/08/29(土) 02:44:14 ]
>>57さん
つまり例えばpaintイベントなどにも見えてはいないけれども、senderに実引数(となるオブジェクト)を渡すような
コードが書かれているとことなのですね。

>>58さん >>59さん
参考になりました。

みなさんありがとうございました。



76 名前:デフォルトの名無しさん [2009/08/29(土) 10:05:47 ]
教えてください。
propertyGridで表示しているプロパティの名称一覧は取得できますか?
できるのであれば、どのようにすればよいのでしょうか?

77 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 10:08:00 ]
TypeDescriptor.GetProperties
なんだってそんな面妖なことを

78 名前:デフォルトの名無しさん [2009/08/29(土) 10:13:26 ]
>>77
ありがとうございます

プロパティウィンドウに表示されている順番にすべてを取得したくて
propertyGridに表示させれば簡単に取得できるのかな?と調べてました

79 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 13:24:40 ]
おまえらいくつ?

80 名前:デフォルトの名無しさん [2009/08/29(土) 13:34:41 ]
>>79
33歳独身。現在、社内SE。
4月入社だがついていけなくて、毎日が地獄。



81 名前:デフォルトの名無しさん [2009/08/29(土) 15:38:05 ]
>>79
独り身

82 名前:デフォルトの名無しさん [2009/08/29(土) 16:06:20 ]
C#は実行ファイル(中間コード)が見えると聞きました。
結構簡単に見えてしまうんですか?


83 名前:デフォルトの名無しさん [2009/08/29(土) 16:10:20 ]
↑すいません日本語が変でした。

C#は実行ファイル(中間コード)からソースコードが容易に解析できると聞きました。




84 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 16:14:33 ]
>>83
reflectorでググれ

85 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 16:15:00 ]
うん、.NetでもJavaでも、中間コードを見るツールは標準で入ってる。

86 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 16:34:59 ]
難読かすればだいぶ見にくくなる。
それかましとけば十分。

87 名前:デフォルトの名無しさん [2009/08/29(土) 17:18:09 ]
>>81
何歳?

88 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 17:21:54 ]
88

89 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 17:23:43 ]
89

90 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 18:27:21 ]
僕3さい!



91 名前:デフォルトの名無しさん [2009/08/29(土) 18:39:04 ]
前に、デリケートに関する質問があったが、
結局デリケートは、サブルーチンを呼ぶサブルーチンを呼ぶサブルーチンを1オブジェクトのように見立てるようなもの?

92 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 18:40:26 ]
ふらっとの方で質問した方がいいんじゃね?

93 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 18:48:36 ]
それから delegate な

94 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 19:06:59 ]
サブルーチンなんて言葉を聞いたのはドクター宮永以来だ

95 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 19:21:00 ]
デリケートゾーン?

96 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 20:01:43 ]
覚えたての頃、得意げにサルブーチンって言ってたの思い出して赤面した

97 名前:デフォルトの名無しさん [2009/08/29(土) 20:08:25 ]
サブルーチンって死後??????
私は34歳。COBOL歴5年ののち、金融機関の内勤5年…のブランクがあるからか。。。

98 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 20:10:30 ]
昔のFORTRANなら「サブルーチン副プログラム」というのが正しい。

99 名前:デフォルトの名無しさん [2009/08/29(土) 20:13:30 ]
>>94
今は、なんて言っているの?
共通プログラムとか?

100 名前:デフォルトの名無しさん [2009/08/29(土) 20:16:41 ]
「C#の初心者や修行者あつまれ!!!!!」in 大阪城公園
なんてイベントを企画したら、みんな来てくれるかな?
私は関西在住なので関西でしか企画できないですが
(+_+;)。



101 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 20:19:31 ]
行く分けねーだろ馬鹿

102 名前:デフォルトの名無しさん [2009/08/29(土) 20:20:16 ]
>>101
そんな言い方ないだろ。てめえの面が見てみたいよ。

103 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 20:31:28 ]
>>102
見せるわけねーだろカス

104 名前:デフォルトの名無しさん [2009/08/29(土) 20:32:49 ]
>>103
どんだけひねくれているんだよ。
大手でプロジェクトリーダーでもやってるのか?

105 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 20:55:24 ]
何でひねくれてると大手でプロジェクトリーダーやってることになるんだよw

106 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 21:18:33 ]
それが彼の常識だから

107 名前:デフォルトの名無しさん [2009/08/29(土) 21:34:50 ]
ひねくれている奴がリーダーだったりするけどね…。
○○○データとか。

108 名前:デフォルトの名無しさん [2009/08/29(土) 22:11:16 ]
>>107
ひねくれているのはお前だろうが。
風呂屋でひとっ風呂浴びて頭を温めてこい。

109 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 22:29:35 ]
dataはいい評判聞かないね
N,F,Hのほうがまだまし

110 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 22:40:57 ]
メーカーとSI一緒にすんなハゲ



111 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 22:41:40 ]
ひねくれよばわりする前に、下請けに甘んじている自分の人生を省みろよ。

112 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 22:44:47 ]
そのアホ話、いつまで続けるつもりだよ。
しかし、無能な奴ほど被害妄想が激しいのはこの業界もう鉄板といっていい法則だな。

113 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 22:48:47 ]
マ板でやれ!だな

114 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 09:10:18 ]
おいおい大学生の俺にも住処をあたえてくれよ

115 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 09:21:23 ]
就職板でやれガキ

116 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 13:49:07 ]
ニートの俺にも(ry

117 名前:83 mailto:sage [2009/08/30(日) 20:07:28 ]
>>84-86
詳しく教えていただき、ありがとうございました。

118 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 04:18:28 ]
.Net2.0で開発してるんだけども、DictionaryのValuesをIListを受け入れるメソッドに使いたい。
Listに代入してしまうのが楽だけど、Valuesの変更が即反映させるようにしたい場合、
IListを継承した独自クラスを作ってそれに入れるしかない?

119 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 04:22:29 ]
変更が即反映する,ってどういう感じ?

120 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 04:43:23 ]
Dictionary<int,char> dic = new Dictionary<int,char>()
{
  { 0, 'a' },
  { 1, 'b' },
};

***List<char> lis = new ***List<char>(dic.Values);

dic.Add( 2, 'c');

こんな処理の時、lis[2]に'c'が入ってて欲しいのですよ。
とりあえずIListを継承したクラスを用意して実現はできたけど、
あまりにも汎用的なので何かクラスが既にあるような気がしてならない。



121 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 04:53:07 ]
Dictionary<TKey, TValue>.ValueCollectionが
ICollection<T>しか実装せずIList<T>を実装しないのには理由があるわけで、
IList<T>はICollection<T>より限定的なリストなので
そんなの汎用的に作れと言われても無理。

122 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 05:59:04 ]
FUNC<DIC,ILIST>とかで毎回作るのだめ?


123 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 08:17:22 ]
IListを実装するってことは要素の順番に意味があるってこと
だから要素の順番を全く保証しないDictionaryがIListを実装するのは不適切

124 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 09:29:31 ]
Javaには標準でLikedHashMapがあるのに・・
C#まじ使えねーな

125 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 09:38:22 ]
>>120の例ではSortedList<TKey, TValue>が使える
SortedList<TKey, TValue>.ValuesはIList<TValue>型

126 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 11:20:07 ]
>>124
ばかだろあんた。
そりゃList違いだ。


127 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 12:15:44 ]
(・∀・)クスクス

128 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 16:08:40 ]
キャスト不要のenumみたいなのってありますか?
全部int型みたいな

129 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 16:15:53 ]
こんなふうにする
struct MyEnum : IEquatable<MyEnum>, IComparable<MyEnum> {
public static readonly MyEnum One = 1;
public static readonly MyEnum Two = 2;

private int value;
private MyEnum(int value) { this.value = value; }
public static operator int(MyEnum value) { return value.value; }
public static operator MyEnum(int value) { return new MyEnum(value; }; }
//以下略(インターフェイスメンバや演算子などを実装)
}

130 名前:129 mailto:sage [2009/09/01(火) 16:17:15 ]
訂正
public static implicit operator int(MyEnum value) { return value.value; }
public static implicit operator MyEnum(int value) { return new MyEnum(value; }; }



131 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 16:18:12 ]
全部定数でいいじゃん

132 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 16:35:53 ]
>>129-131
ありがとうございます
全部定数にしますっ!

133 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 16:48:43 ]
ワロタ

134 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 20:16:19 ]
そもそも:intなenumは普通にキャストなんかせずにintとして扱えると思うんだが

135 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 20:51:54 ]
扱えません

136 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 21:14:22 ]
ん?と思ったが、そうかキャスト要らないのはenumな型の変数に整数を入れる場合であって
逆ではなかったのか。

冷静に考えるとこれって本来逆であるべきじゃないのかね。
まあ深くは考えてないんでいろいろ何か事情があるんだろうが。

137 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 21:17:33 ]
試してから言えよ
どっちもキャストが必要

138 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 21:21:01 ]
>>137
棚上げクンって恥ずかしいなw

139 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 21:42:54 ]
>>138は0しか試してないのか?

140 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 21:57:52 ]
>>137
すまん確かに試さずに言ってた。

そもそもenumを数値的に扱うことをほとんどしないのと、
あとVBも触るんでそっちの知識がゴッチャになってた。



141 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 22:00:32 ]
0からのみ暗黙に変換できるのはcharも同じだな
変換というよりは0は数値じゃなくて特別な記号みたいなものとして扱われてるんだろうな

142 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 22:20:47 ]
しかし、逆はともかくenumを基になってる整数型として暗黙的に扱えても
そんなに害にも落とし穴になるとも思えないけど、なんで明示的キャストが
強制されるルールになってるんだろう。

143 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 22:28:49 ]
特に必要もないのにenumを数値として意識したり明示的に型指定することは
非推奨とされてるからなあ

144 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 08:02:47 ]
>>63
土曜日からずっとメンソールに関して調べましたがタバコ関係の情報しか得られませんでした。
もっとヒントください

145 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 08:30:45 ]
コンソメみたいなもんじゃね

146 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 00:53:10 ]
めんそーれー

147 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 08:40:19 ]
麺魂

148 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:36:57 ]
おまいらスピン付数値入力コントロール作るとしたらテキストボックスから派生させる?それともcompositionつかう?

149 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:54:27 ]
作らない

150 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 21:35:41 ]
コンポジション



151 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:10:27 ]
NumericUpDownが使えない環境でってこと?

152 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:11:44 ]
コンポジションっていうか、この場合は普通にユーザーコントロールでしょ。

153 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:14:16 ]
コンポジションが使いやすい

154 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:23:30 ]
>151
いや、一般的な設計の話で。
コンポジションの方が作る分には良いんだが、使う側としてはテキストボックスでもあった方がプロパティ設定出来て良いものか。
んでも余計なものない方がよい気もする。

155 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:29:24 ]
スピン付数値入力コントロールならキャレット関連はあんまり意味無いだろ

それ以外でTextBox固有の機能で特に必要なものなんてあるか?

156 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:33:22 ]
主に外環の設定だな。


157 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:35:21 ]
テキストボックスのように使うのなら継承だ

158 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:40:22 ]
んでテキストボックスとして使うことがそれほどあるのかって問題だな。
用途としては違うとも思うけれどかぶってるところもある。


159 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 00:05:53 ]
だからこういう場合はユーザーコントロールにするんだよ。
本当にコントロールを自分で作ったり拡張したことがある奴が
経験に基づいて継承だのコンポジションだの言ってるのか?

やってみろよ実際。
そんな方法じゃめんどくさくてやってられないから。

160 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 00:52:06 ]
ネタで言ってるんだと思ってた



161 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 05:04:28 ]
ユーザーコントロールとカスタムコントロールの違い

162 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 06:51:04 ]
>>159
ユーザーコントロールにコントロールを乗せて行くという方法をコンポジションと
言うんだと思っていたが?普通に合成という意味だから。
拡張して作るカスタムコントロールはどう考えてもコンポジットではない。

163 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:44:32 ]
それならユーザーコントロールって言おうよ。
ユーザーコントロールはオブジェクトコンポジションより意味が狭いのだから。
ユーザーコントロールはコンポジョションだが、逆は違うよ。

普通は前提条件なしで「コンポジション」と言えば、NativeWindow的なものを想像するぞ。

164 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 19:38:25 ]
俺はオブジェクト指向的な包含の事かと思ってた

165 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 21:18:59 ]
同じだよ
数値入力コントロールを作るためにユーザーコントロールにテキストボックス置いたら
それはオブジェクト指向的な包含

166 名前:デフォルトの名無しさん [2009/09/05(土) 22:10:20 ]
未経験でC#アプリの製作をしているが、
汎用系の開発しかしたことがなかったから、GUI設計をしたことがない
(-_-;)。
どういう点に心がけたらいいんだろ。
もう50回くらいやり直しをしまくって、
フォームを分けてみてはやはりパネルにしてみたり、
縦スクロールにしてみては横にしたり…。
未だに使いやすいフォームができない。
担当者は俺だけ。
どうすりゃいいんだよ…。先が見えない。

167 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:12:40 ]
諦めちゃえばいいじゃん

168 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:13:12 ]
馬鹿でも簡単に使えるように気をつけてるな

169 名前:デフォルトの名無しさん [2009/09/05(土) 22:19:55 ]
>>168
それが一番大事だね。

170 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:30:23 ]
・選択肢を少なくする。
 →1画面内にあるコントロールを少なくする。
・クリック回数を少なくする
 →処理を完了するまでのステップ数を少なくする。

この相反する2つの調度良いバランスを求める。
後は既存の似た処理をするツールのUIをオマージュ。
開発経験者か、UIを発注した事ある人に意見を聞くのがいいんだろうけど。



171 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:39:39 ]
c#上からpingして疎通確認するアプリ作って xp上からは動いたんですが

2003にいれたら他のマシンへのping完了しないのはどこらへんがまずいんでしょうか
ちなみにcmd.exe起動してping打つと普通に他のマシンへも通ります。

なんかファイアウォールとかいわれたけど
windosのファイアウォールってなにもいわないからなどこで止められてるのかわかんないし
もうつかれたよ・・・。

172 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:41:52 ]
ファイアウォールの例外に追加したら?

173 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:25:48 ]
>>166
作るのは初めてでも、使ったことくらいはあるだろ。
そこから何か学ばなかったか?

174 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:27:11 ]
GUIデザインの草案は紙とペンで作るのがいいとおもうまう

175 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:45:01 ]
はじめまして、ちょっと質問させてください。
DataGridViewで列ヘッダをクリックして並び替える際に、行を選択していたりするとこの選択状態の位置がそのまま維持されてしまい、
並び替えられた(選択されていた)行へ追従しません。

これを、並び替えたときに行とともに選択状態の位置が移動するようにするにはどうしたらよいでしょうか?

176 名前:デフォルトの名無しさん [2009/09/06(日) 08:43:02 ]
今まで見てきたGUIで、感動したものを教えてください。
サイトでも何かのコントロールでもいいです。

177 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 09:00:38 ]
ユーザーインターフェイスデザイン―Windows95時代のソフトウェアデザインを考える

でも買え。って、About Face の 3 が出てるのな。ぽちっとしておこう。

178 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 09:13:40 ]
>>176
Windows Vista 版 Explorer のアドレスバー。
パンくず型リストの理想型だと思う。
ただし、1 つのコントロールが複数の機能を兼ねているので、
賛否が分かれそうだが。

あと FL Studio の GUI 全般。
複雑になりがちな DAW というジャンルで、画面遷移や
ウィンドウ数の増大を上手く回避してる点に感心してる。

179 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 09:48:42 ]
EclipseのPerspectiveの機能はVSにもほしい

180 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 11:03:11 ]
不景気で6月末でMSDNサブスクリプション更新しなかったのにWindows7製品板が落とせるんだけど。
後から請求きたりするの?

問い合わせてみて「手続き上のミス」とか言われて終わっちゃうのも残念なんで問い合わせしてないんだけど。



181 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 12:15:02 ]
Pro は落とせるみたい。
5年以上前に Expire したアカウントでも落とせた。

182 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 13:11:15 ]
>>179
Eclipseのパースペクティブと、VSのソリューションがあると自分的には完璧だなぁ。
ソリューションは機能であってUIじゃないけど。

GUIで最も感動したのはポップアップメニューというかコンテキストメニュー。
オブジェクト選択して右クリックで動詞選ぶなんて最高だ。

183 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 13:24:59 ]
VSのソリューションがEclipseのWorkspaceに相当するんじゃないのかな?

184 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 14:04:54 ]
だってワークスペース切り替えは-dataで起動時指定だしなぁ。
いいとこProjectsレベル。

185 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 14:11:31 ]
solutionはライブラリ作りつつアプリ作ってる時とか便利

186 名前:デフォルトの名無しさん [2009/09/06(日) 18:46:36 ]
年配向けの顧客データ管理ソフトを作るよう特命を受けた。
顧客データや商品データなど100項目以上あり、1画面に入りきらない。
タブコントロールを使いたいけど相手は年寄り。
急にパネルが見えなくなれば、疲れるだろう。
スクロールを多様すればいくらでも画面内に情報が入れられるが、
相手は年寄り。
スクロールによって見えなくなった情報が気になって疲れるだろう。
マウスを当てたら新しいウインドウが立ち上がり、隠れた情報を知ることができても、相手は年寄り。
消えたときに疲れるだろう。
どうしたら年寄りから満足してもらえるかなぁ。
やはりスクロールをするしかないかな。

187 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:53:34 ]
「誰か他の若者に仕事をさせる」機能が無いぞ

188 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:56:05 ]
>>186
またお前か

189 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:56:46 ]
考えすぎ。

俺なら操作手順の少ないタブで押し通す。
新しいウィンドウなんて視線があちこち飛んで疲れるだけ。それならタブでいいし。
スクロールするにしても目次のリスト出しておいてクリックするとその位置まで
自動的にスクロールとか、タブとほとんど同じにして操作の手数にこだわる。

190 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 19:00:12 ]
ボタン一発でリモートアシスタンスを実行できるようにすればいいと思う



191 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 19:26:11 ]
>>186
何回も同じ質問するな。少しは自分で考えろよ。

192 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 19:33:36 ]
>>186
画面のほうをでかくしろ

193 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 20:24:51 ]
その程度で疲れる相手に管理ソフトなんか作ってもすぐに使われなくなるのがオチ
「ええのう、わしの若い頃を思い出すのう みwなwぎwっwてwきwたwww」
って思わせるような画面でも考えてろ

194 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 20:25:21 ]
タッチパネルにしてウィザード方式。大丈夫、たぶん ATM とかで
お年寄りでも慣れてる

195 名前:デフォルトの名無しさん [2009/09/06(日) 20:50:29 ]
>>193
それも立派な視点だね。

196 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:40:25 ]
>>186
ウィザード方式に俺も一票。最初に目的を押させた後は
質問に答えてもらうとあら不思議、登録が終わってるみたいな。

197 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:45:30 ]
>>181

そんなもんなんだ。
たしかにプロだったなぁ。
なぜに放置なんだろ

198 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:24:06 ]
でもアクティベーションキーの取得はさすがにダメなんでしょ?
それじゃほぼ無意味じゃないかn。

199 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:07:40 ]
>>186
100項目もあるのがおかしい。
20項目まで削れ。

200 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:18:07 ]
>>186
年寄りに一度に100項目も見せて殺す気かよw




201 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:23:12 ]
>>186
てか何故に100項目も出来るのかが知りたい

202 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:26:23 ]
だって正規化してないDBなんだもんっ♪
みたいな

203 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:29:13 ]
>>202

204 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:32:24 ]
>>202

205 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:19:43 ]
>>202


206 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:00:30 ]
WinFormのWYSIWYGなHTMLエディタコントロール探してるんだけど、
ASPとか有料のしか見つからないんだがフリーでないんだろうか。

文字サイズと色変えれるくらいでいいんだが、何か知らない?

207 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 14:26:03 ]
JavaScriptのやつが山ほどあるから、WebBrowserでホストして使うのが楽。
文字サイズとか色変えるぐらいなら自分で実装してもいい。

208 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 15:09:04 ]
>>207
なるほど、調べてみるよ
サンクス

209 名前:デフォルトの名無しさん [2009/09/07(月) 20:14:06 ]
>>203
なんで202を笑う?
普通の意見だろうが。

210 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:19:43 ]
>>209



211 名前:デフォルトの名無しさん [2009/09/07(月) 20:27:48 ]
>>210
なんでだよ禿げ野郎!

212 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 21:56:23 ]
UIの項目数とテーブルの正規化になんの関係があるんだよハゲ

213 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:15:29 ]
例えばPCの諸元で言うなら、CPU : Core2 Duo T5600 という項目と動作周波数・
コア数・FSB・・・の項目があるような。普通ならCore2 Duo T5600だけでいいのに。

キー項目以外の項目を表示するということはあるかもしれないけど、全項目に
渡って表示しているなら第二正規化していない可能性高いヨネーという話かと。

214 名前:デフォルトの名無しさん [2009/09/07(月) 22:44:12 ]
月末、大阪城公園か淀川河川敷でオフ会をやりませんか?
参加費は1人100円いただきます(ビニールシートを買うため)。
C♯を語りつくしましょう。

215 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:47:09 ]
ビニールシートくらいだれか一人が持っていけよ

216 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 23:07:07 ]
じゃ1メートル四方の一枚もっていく

217 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:26:04 ]
ビニールシートなら大阪城にたくさんあるじゃん

218 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:50:46 ]
そういうの好きだけど大阪在住でないのが残念

219 名前:デフォルトの名無しさん [2009/09/08(火) 20:04:24 ]
まじで企画しようかな。
大阪城公園、または本町の居酒屋でもいいね。
参加していい人は、書き込みしてください。
ミクシイに似たようなコミュニティがあれば、そちらでもできるので教えてください。

220 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:10:13 ]
九州ならいったのに・・・



221 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:25:42 ]
河川敷よりネット環境のあるところのほうが良くね?

222 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:26:26 ]
オーストラリアならいったのに。。。

223 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:36:15 ]
太宰府市なら行く

224 名前:デフォルトの名無しさん [2009/09/08(火) 20:58:15 ]
第一回は大阪で…
(理由:私が関西におりますので…。)
達人から初心者まで、C#に日々打ち込む人たちが集うコミュニティがあればなぁ…。
関西でうまくいけば、九州でも集まりたいですね。
一度きりの人生、こういうきっかけであっても、先に楽しみが生まれるならば
こういう集まりでもいいじゃないですか。

225 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:07:13 ]
普通のコミュニティで充分。

226 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:28:25 ]
わんくまとか各都市でやってるじゃん
俺は行ったことないけど

227 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:36:26 ]
わんくまは・・・いいやw

228 名前:デフォルトの名無しさん [2009/09/08(火) 22:29:20 ]
わんくまってなに?


229 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:31:27 ]
幼稚園のクラスの名前。

230 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:33:59 ]
わんくまかw



231 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:36:50 ]
マルチポストを忌み嫌うヤカラの集団。

232 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:47:05 ]
>>231
いやむしろあそこの掲示板はそうでもないよ。
dobon氏の掲示板にいるようなキチガイ監視員はいないと思う。

233 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:48:42 ]
っていうか、ひょっとして>>231まマルチポスタークンなのかなw

234 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:50:06 ]
インフルエンザで勉強会中止だぜー

235 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 23:02:21 ]
プロしかいないのけ?

236 名前:デフォルトの名無しさん [2009/09/08(火) 23:10:28 ]
どうせお前らは、友人もおらず同僚からも距離を開けられ、家族からも怪訝な目で見られ、親戚からも寡黙に思われている孤独男児だろ。
集まろうよ。俺と会って話そうよ。ネットができる喫茶店にでも集まるか。

237 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 23:53:44 ]
行きたいけどニートなのが恥ずかしいのでそこら辺には触れないでくれると嬉しいです

238 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 00:17:35 ]
オフ板でやれ

239 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 00:57:36 ]
ここでいいよ

240 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 02:14:10 ]
初心者スレで聞いてみたんですが、誰も相手してくれなかったのでお願いします。

VS2005、C#なんですが
大きな画像、というか地図を格子状に区切って分割して保存してある画像があり、
任意の場所を中心として周囲8近傍結合、pictureBoxに表示するソースを書いてます。

pictureBoxの画像をマウスドラッグでgoogleMapのように滑らかにスクロールさせたく思い
その際表示領域より少し大きめの画像に結合したあと表示領域分切り出しているんですが
動作がもっさりであんまり満足できていません。

上手くやる方法ないでしょうか?
またはpictureBox以外でもこのような実装を行う方法ってありますか?



241 名前:デフォルトの名無しさん [2009/09/09(水) 02:19:20 ]
>>240
> 動作がもっさりであんまり満足できていません。
この原因をくわしく

242 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 02:24:00 ]
>>241
Graphics g = g.DrawImage(〜〜〜〜);
という感じで大き目の画像を結合した上で
さらに同じ方法で切り出しを行ってるためだと思うんですが・・・

243 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 02:27:15 ]
で?

244 名前:デフォルトの名無しさん [2009/09/09(水) 02:33:44 ]
>>242
原因調査が不十分って感じなんだが
とりあえず,どの部分でどれだけ時間がかかっているか実測してみて

245 名前:デフォルトの名無しさん [2009/09/09(水) 09:15:33 ]
C#は糞
pc12.2ch.net/test/read.cgi/tech/1246520657/

246 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 09:38:43 ]
C#すげー
LINQすげー
blogs.msdn.com/lukeh/archive/2007/10/01/taking-linq-to-objects-to-extremes-a-fully-linqified-raytracer.aspx

247 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 15:44:55 ]
>>246
変態的だwww

248 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 10:38:36 ]
あれ、カスタム書式指定文字列で整数部はカンマ区切り、小数部は有れば全部表示とかしたかったんだが、整数部と小数部分けてごにょごにょやらないと出来ない?
#とか使うと小数部が指定した桁数分に丸められてしまふ…

249 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 11:00:34 ]
#を310個ほど並べたらいいよ

250 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 11:06:23 ]
全部表示は無茶だろ
とんでもない桁になる



251 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 14:56:55 ]


252 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:26:40 ]
小数部を全部出すという要件が思いつかんが。

253 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:06:29 ]
仮に全部出したところで桁数なんてしれてるだろう。


254 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:19:05 ]
1/3

255 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:21:40 ]
表示は上の数桁だけに制限して,コピーしたら全部取得されるみたいな工夫をするべき

256 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:31:12 ]
要するに普通にdoubleなりdecimalなりで扱えばいいってことだな

257 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:06:24 ]
なんか分かって無さげなのいるから横から。

System.Double.Epsilon 見てみれば分かるが、
指数部が e-324 とかになる。

「有効桁数」ならまぁ高々15桁としても小数部とかみた
いな表現すりゃ 300 文字オーバーみたいになりうるよと
いう話。

ちなみに Epsilon で . 以下 # を 339 個並べてみたら全部
出たので >>249 の方法論でいいんじゃね(310 では足り
ないみたいだが)

ちなみに整数部も同じ。e308 かな。


258 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:39:55 ]
ああごめん、確かにぼけてたわ。


259 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 06:15:46 ]
>248
すまん、数値入力の部分の表示だったので小数部がえらいことになるとか考えてなかったw
桁数制限、ごもっともです。

260 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:45:31 ]
WebBrowserコントロールで表示してるWebページを、コントロールの大きさ(横幅)に合わせて拡大縮小しだいのたけど
どんな属性やメソッドを使えば良いのか全く分からない……
MSDNのフォーラムに似たような質問があったけど、そもそもその解決したと言われるプロパティが見つからない

環境は学生用のVS2008なんだけど、誰か突破方法に心当たりありません?



261 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:47:41 ]
属性とかスタイルシートとかでやってんじゃねーの
そのプロパティとやらを書いてみろよ

262 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:52:06 ]
>>260
そのフォーラムのスレッドどこ?

263 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:56:30 ]
>>262
social.msdn.microsoft.com/Forums/ja-JP/csharpexpressja/thread/6545bb8b-02c5-443c-ba9b-b0d58955cab0

264 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:08:01 ]
>>263
JavaScript じゃねーか

265 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:11:27 ]
JavaScriptっつーか、HTML DOMな
StyleプロパティまではWinFormでもサポートしてるから
そこにzoomの設定つけたしゃいい

266 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:19:08 ]
だって>>260はコントロールの話じゃなくてHTMLのビジビリティの話なんだもんっほしみ

267 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 20:37:54 ]
>>264-266
いまいちよく分からなかったけど、ありがとう

268 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 20:42:57 ]
さすが学生^^

269 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 20:49:13 ]
俺はそのWebBrowserコントロールのClientSizeをいじればいいだけの話に思えたんだけど、違うんだろうなあ。

270 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 08:06:35 ]
よくわからんがOperaの拡大縮小みたいなかんじ?



271 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 08:30:08 ]
ディスプレイが2台ある状態でdualviewかcloneか片方のディスプレイのみ利用の切り替えと
それぞれのディスプレイの解像度を変更したいのですが、どうしてもやりかたがわかりません。

とりあえず解像度だけでも変更してみようと調べました。
DirectXのSDKをインストールしてDirectDrawを使って以下のコードを実行したところメインディスプレイの解像度が変わりましたが
DualViewになっている場合セカンダリディスプレイはNo signalになってしまいます・・・
セカンダリディスプレイの解像度を変更する方法がわかりません。

Microsoft.DirectX.DirectDraw.Device device;
device = new Microsoft.DirectX.DirectDraw.Device();
device.SetCooperativeLevel(this, Microsoft.DirectX.DirectDraw.CooperativeLevelFlags.Normal);
device.SetDisplayMode(800, 600, 32, 0, false);

どなたか助言お願いします。

272 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 09:02:50 ]
解像度は ChangeDisplaySettingsEx() でいけるだろ。

273 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 10:54:08 ]
型名とかに日本語使ってますか?

274 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 11:23:08 ]
別の言語だったかで文字コードの違うソースコード作っちゃって、リンクで
エラー起こして以降、多バイトコードで識別子は書かないと心に決めてる。
あと、タイプミスが思いのほか多いんだアレ。てにおはとか。

275 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 12:56:56 ]
すっごい関係ないが
てにをは
だよ

276 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 12:59:15 ]
手爾遠波

277 名前:271 mailto:sage [2009/09/12(土) 14:49:37 ]
>>272
いけました!!ありがとうございます。
後はデュアルディスプレイ・クローン・一つのディスプレイのみの設定の変更です・・・
なにか方法ありますか?

278 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:07:07 ]
>>273
IMEの変換とインテリセンスの親和性が最悪じゃない?
Migemoのアドインとかあればましかもしれんが

279 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:09:01 ]
初歩的なことですがサブクラスaをメンバとして持つAからA1というオブジェクトインスタンスを作成しました
aで定義したメソッドやプロパティにA1からアクセスできません
aの内部でもAでもpulicは設定したんですが・・・

なんか勘違いしてますか?

280 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:17:00 ]
>>279
日本語で書け、と言われる前に質問を推敲したほうがいいんじゃないの?
しかし、そんな日本語で他人に通じると思ってる神経が理解できん。

言葉の使い方に自信がないのなら、同じ事を複数の別の言い方で表現しておくとか、
馬鹿は馬鹿なりに少しは工夫しようよ。



281 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:43:15 ]
>>279
Dotfuscatorを通したようなクラスでも作っているんだろうか。
public class A
{
public a a1 = new a();

public class a
{
public void f() { }
}

static void Main(string[] args)
{
A A1 = new A();
A1.a1.f();
}
}


282 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 16:46:25 ]
>>281
こんな感じですまさに
A1.a1.f();
これができないんです。

できないわけがないですよね?
そもそもできないのがあたりまえかと思ってしまって
もういちどチェックしてみます。

283 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 17:31:36 ]
>>282
コンパイルエラーならメッセージをよく確認する。
質問するときはエラーメッセージもアップ。

内部クラスをpublicにしてないという話だと思うけど、
他にはstaticなメンバーを参照経由で呼び出そうとしているなど他の可能性はある。
どれかはエラーメッセージを見れば分かる。

284 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:03:00 ]
>>282
public class Outer
{
public class Inner
{
public static void f() { }
public void g() { }
}

public Inner innerObj = new Inner();

static void Main(string[] args)
{
Outer outerObj = new Outer();
outerObj.innerObj.g();

Outer.Inner.f();
}
}
ふらっとでやれ。

285 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:16:35 ]
>>274
なるほど、タイプミス多いなww

286 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:33:52 ]
>>283
エラーメッセージはアセンブリに対する参照を設定しろと言われました
今チェックしています

>>284
ごもっともでした

287 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:44:56 ]
内部クラスをpublicにしたらガイドライン違反だよ

288 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:50:49 ]
support.microsoft.com/default.aspx/kb/308216/ja
ここのソースの中に
ChangeDisplaySettingsEx((LPSTR)DisplayDevice.DeviceName,
&defaultMode, NULL, CDS_NORESET|CDS_UPDATEREGISTRY, NULL);

// A second call to ChangeDisplaySettings updates the monitor.
ChangeDisplaySettings(NULL, 0);
とあるのですが、C#ではChangeDisplaySettingsの第一引数に
通常DEVMODEの構造体を受け渡すところを上記のようにnullにすると

エラー1'ConsoleApplication1.Program.ChangeDisplaySettings
(ref ConsoleApplication1.Program.DEVMODE, int)' に最も適している
オーバーロード メソッドには無効な引数がいくつか含まれています。

というエラーが出てしまいます・・・ nullを受け渡したいのですがどうしたらいいですか?


289 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:53:39 ]
適当なnull渡せるオーバーロードを書く

290 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:54:12 ]
IntPtrとして宣言してIntPtr.Zeroを渡す



291 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:04:54 ]
>>290
出来ました!
ありがとう!

292 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:12:53 ]
DEVMODEをクラスで定義して値渡しすりゃいいんじゃないの?

293 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 23:55:04 ]
>>292
どういうこと?

294 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 00:27:39 ]
どういうこと、って言われても「そういうこと」だよ。
>>292が説明の限界じゃないか?
msdn.microsoft.com/ja-jp/library/hc662t8k.aspx

295 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 00:28:21 ]
エスパーすると多分、自力で定義して渡したら?
と言っていると思うけど、リセットのためのNULLを渡したいという話なので的外れだね。

296 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 00:31:37 ]
>>295
エスパーってチミが無知なだけだと思うけど。
頭大丈夫かよ。

297 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 00:35:28 ]
あ、こっちが的外れだったか、すまん。

298 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 17:40:58 ]
フリーソフトで出回っているYouTubeのダウンローダが使い辛いので
自分専用のダウンローダを作ろうとしています。

やりたい事は、検索キーワードを入力してヒットする動画のうち
埋め込みタグが禁止されていない物は全て丸ごとダウンロードできるものを
作りたいと思っています。

そこで質問なのですがYouTubeから動画をダウンロードするにはどうすればよいでしょか?
参考になるサイトがあれば教えてください。

299 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:25:06 ]
>>298
来年1月1日以降に作って発表するといいと思うよ

300 名前:デフォルトの名無しさん [2009/09/13(日) 18:34:40 ]
(1)のtreeview から(2)のように
stringの配列を受け取るにはどう処理すれば良いでしょうか?
階層の深さは何段になるかわからない環境です。

(1)
foo
├─bar
│ └─hoge
├─bar2
└─bar3
├─hoge2
└─hoge3
(2)
foo\bar\hoge
foo\bar2
foo\bar3\
foo\bar3\hoge2
foo\bar3\hoge3



301 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:37:41 ]
再帰的な処理にすれば簡単だろうが

302 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:44:26 ]
barは取らないのにbar3は取るとか謎仕様だな

303 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:49:41 ]
>>300

304 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:53:21 ]
>>302
すいません、bar3も取らない形で作りたいです。

305 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:55:04 ]
再帰的処理で葉が無ければ上に受け渡す
受け取ったものがあればそれを\で連結
超簡単じゃないか

306 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:59:35 ]
TreeNode.FullPath使えば連結する必要すらない

307 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 19:14:35 ]
>>301>>305>>306
レスありがとうございます。

結局string[]で返すのは自分には書けませんでしたので
配列を引数にしてそれを再帰で変更するようにすれば
希望通りの動作にできました。

308 名前:298 mailto:sage [2009/09/13(日) 20:03:03 ]
>>299
なぜに来年1月1日以降なのでしょうか?
まぁ、作っても自分が欲しい動画を出回っているソフトだと色々と制限があって
使い辛いので自分用に使おうと思ってます。

ってかYouTubeからC#(つか .Net) を使用して動画をダウンロードする方法はありますか?
FLV ⇒ mpg( or AVI)形式に自動変換した上でDLしたいと思っています。

309 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:04:41 ]
来年1月1日から特許出願したらいいとおもうよ

310 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:10:18 ]
他の言語でできるならC#でもできる
やり方はスレ違い
それくらい自分で調べられないなら無理



311 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:14:43 ]
>>309
もう既に色々あるしwネタだろうけどw

つかマジで出回ってるYouTubeのダウンローダー宣伝が入ってたり
遅かったりマジで使い辛いんだよね〜


教えて頂戴

312 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:16:52 ]
そういったの開発しているところがオープンソースだったらもらってくればいいんじゃないの

313 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:24:41 ]
>FLV ⇒ mpg( or AVI)形式に自動変換した上でDLしたい
えっ

314 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:24:44 ]
>>312
だから教えて頂戴と。
出回ってるフリーソフトよりも遥かに使い勝手のいいものを作るから

315 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:25:51 ]
>>311
お前には作れないよ

316 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:28:34 ]
やり方を教えろって、ソースまで出せって事なんだろうな

317 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:33:32 ]
ヒントを教えて頂戴

例えばSystem.IO.FileStreem とかね

318 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:35:42 ]
System.IO.FileStreem









System.IO.FileStreem

319 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:39:42 ]
>>318
なんか知らんが爆笑した

320 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:45:10 ]
>>318
頭打ちぬかれてしね



321 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:51:18 ]
Streemワロタw

322 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:56:20 ]
Streeeeeeeeeeem

323 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 23:33:57 ]
【利用環境】
.net3.5、WinXPPro、VS2008Proの環境で開発しています。
利用環境は主に、.net3.5、Win2008 or WinVistaを想定しています。

【質問内容】
C#で、以下の機能を実現するには、どうしたらいいでしょうか?
tp://www.bohyoh.com/CandCPP/FAQ/FAQ00108.html
順列組み合わせを出力する機能です。これ関連の、クラスがあれば教えてください。

324 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 23:36:23 ]
>>323
自分でコーディングする。

325 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 23:59:28 ]
>>323
VC/CRTのalgorithm読んでpermutation関係を移植する。

326 名前:323 mailto:sage [2009/09/14(月) 00:08:49 ]
実はすでに自分でコーディングしたものはあるんですよ。
問題なく動いていますが、新しいプログラムを作成する際に、既存のものがあれば、活用したいと思ったのです。
その方が何かと助かると思っていたので……

しかし、なさそうでしたら、今まで通り、自作の物を使用します。
どうもありがとうございました。

327 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 01:41:14 ]
順列生成はわりかし単純だで、俺も昔アルゴリズム辞典とかを読んで理解できた
でも組み合わせの効率的生成はnext_combination.cのソース見ても理解できなかった

なにが言いたいかというと、やっぱそういうのは標準ライブラリに入れといてほしいよね

328 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 04:15:09 ]
>>327
順列生成なんて簡単でしょ?と思って見てきたけど、んー…こりゃ難しい。

329 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 04:42:07 ]
直感だけど再帰っぽくなりそう

330 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 14:31:07 ]
勉強がてら作ってみた

class Permutation
{
public static IEnumerable<int[]> GetPermutationSet(int[] array)
{
return GetPermutationSet(new List<int>(array), new List<int>());
}
//とりあえず何も考えずにListに
private static IEnumerable<int[]> GetPermutationSet(List<int> left, List<int> permutation)
{
if (left.Count == 0)
yield return permutation.ToArray();

for (int i = 0; i < left.Count; i++)
{
int element = left[i];
left.RemoveAt(i);
permutation.Add(element);
foreach (var tItem in GetPermutationSet(left, permutation))
yield return tItem;
left.Insert(i, element);
permutation.RemoveAt(permutation.Count - 1);
}
}
}



331 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 14:38:10 ]
順列って俺もしらんかったが、とりあえずすべての組み合わせのことを言うのか?

すべてのデータが違うというのを前提として、文字列でやると
private void func()
{
List<string> ret = new List<string>();
junretsu("あいうえお", "", ret);
foreach (string s in ret)
{
Console.WriteLine(s);
}
}
private void junretsu(string str, string junretsustr, List<string> ret)
{
if (str.Length == 1)
ret.Add(junretsustr + str);
else
foreach (char c in str)
{
junretsu(string.Join("", str.Split(c)), junretsustr + c, ret);
}
}
こんな感じのこと?

332 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 15:00:41 ]
>>331
全てのデータが違う前提だとそうだけど、同じデータが含まれる場合も考慮するのが普通。
例えば {1,1,2} に対する並び替えで、「組み合わせ」と言ったら {1,1,2}, {1,2,1}, {2,1,1} の3通りだけど
「順列」と言ったら {1,1,2}, {1,2,1}, {1,1,2}, {1,2,1}, {2,1,1}, {2,1,1} の6通り(2つの1をそれぞれ別ものとみなす)。

333 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 15:04:48 ]
>>332
ふむ。理解した。

334 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 18:26:03 ]
組み合わせは{1,1,2}なら
{1}{2}
{1,1}{1,2}
{1,1,2}
じゃないか?
で、順列なら3!/1!2!=6/2=3コあって
{1,1,2}{1,2,1}{2,1,1}
だよ

335 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:46:22 ]
順列・組み合わせって中三の内容だったぞ俺の時代はw
今は高校でもやらんの?
知らないってことはないはずだと思うが。

336 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:50:54 ]
こういう発言から学歴論争に発展する

337 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:52:54 ]
義務教育レベルの話に学歴も糞もないだろ真面目な話。
俺だって中学なんて田舎の公立校だよ。

338 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 20:05:52 ]
今は数学I・A(高校)なのかな?
多分文系でもやってると思うけど、高校数学は10年以上縁がないので違ってるかもしれん

339 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 20:09:47 ]
オレの時台は高校で選択だったから同年代の半数は順列組み合わせを知らない

340 名前:334 mailto:sage [2009/09/14(月) 21:45:00 ]
え、俺が間違ってた?



341 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 21:47:59 ]
うん

342 名前:334 mailto:sage [2009/09/14(月) 22:03:07 ]
うそーん
一応現役なのにorz

でも332はあからさまに間違ってるよね??

343 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 22:25:35 ]
うん

344 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:14:11 ]
>>334
それは組み合わせじゃなくて
{∅} と合わせて冪集合。
俺の知る限り高校じゃ習わん。

順列はあってる

345 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:41:23 ]
1個選ぶ組合せ
2個選ぶ組合せ
3個選ぶ組合せ
っていうつもりで書いたんだがそれでも間違ってる?
てか、激しく論点がずれてしまった
この辺で自重します

346 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:23:29 ]
ja.wikipedia.org/wiki/%E7%B5%84%E5%90%88%E3%81%9B_(%E6%95%B0%E5%AD%A6)

347 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 07:56:00 ]
すいません、質問させてください。

Formのサイズ変更枠がありますよね。
その枠の長さを動的に得たいのですが、方法はありますか?

↓マウスでつまんでサイズ変更ができる枠の長さです。
f42.aaa.livedoor.jp/~imawaka/imgboardphp/src/1252968758611.jpg

VistaだとXPに比べて枠が長いですよね。おそらく・・・
それを現在のウィンドウ(Form)の状態によって動的に値を得たい。
たとえば、BorderStyleがNoneのときは、「0」になるとか。
そういうのを得るメソッド・プロパティってありますか?

348 名前:347 mailto:sage [2009/09/15(火) 08:07:33 ]
dobon.net/vb/dotnet/form/formborderstyle.html
このサイトにかかれているフォームの境界線の長さを得たいわけです。はい。

349 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 08:45:35 ]
arimasen

350 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 08:59:20 ]
GetSystem…




351 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 10:12:25 ]
SystemInformation..::.Border3DSize

352 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 10:16:08 ]
それは違うだろう

353 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 11:42:52 ]
>>347
長さ?幅じゃなくて?

354 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:49:28 ]
幅のことだろう。

(form.Width - form.ClientSize.Width) / 2

でいいんじゃね。

355 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 23:52:41 ]
組み合わせは、3C2=3通りだろ。
高校の時にやったぞ。
ちなみに年齢は30のおっさんだ。
たぶん1つ上の年代までは教育課程が違ってやってないかもしれない。
数T、U、V、A、B、C世代な。


356 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 00:17:48 ]
それも組み合わせの一つ

357 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 00:58:37 ]
さすがに普通科の理系コースで高校卒業までに確率統計を一度も習わない、
なんてことはありえんと思うが(ありえるなら日本終わってるだろ)
俺の時代も何故か確率統計ってあまり重要視はされてなかったね。

何だろうね。
個人的には微積はともかく線形代数より役に立つ場面が多いと思うけど。

358 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 01:04:08 ]
>>354
左右対称とは限らないだろう

359 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 02:18:26 ]
じゃあフォームのleftとクライアントのleftで左枠の幅を求めてから引けばいい

360 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 02:51:59 ]
>>359
ClientRectangleの座標値はクライアント座標だから左端は常に0



361 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 09:19:05 ]
>>357
30代の俺の代ですら、受験で稼げない確統なんざ理系選抜クラスでも選択科目扱いだった
今なんてなおさらでしょ

362 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 11:21:00 ]
>>360
PointToScreen使えばクライアント座標をデスクトップ座標に変換できる

363 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 11:45:56 ]
>>357
ありえるし、すでに終わってる
それが授業のカリキュラムを大幅に削減したゆとり教育の結果
学力が下がって企業の開発力が落ちてこのザマ
工業製品が台湾や韓国にどんどん追い越されてる

364 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 17:41:00 ]
>>357
確率は数Aでやるけど統計は習わないはず。
もちろん進学校は別。
来年以降高校の教育課程で統計を本格的に入れるという話を聞いた。
数字カードの組み合わせ問題はゆとり教育時代でも小学校で習うし中学入試にも出る。

確率統計が後回しにされるのは、文系で統計学をやる時に積分を沢山使うから
それを先に学ばせないと授業にならないからだそうだ。
俺理系で文系の人から聞いた話だから、嘘ついてたらすまん。

365 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 18:17:56 ]
初心者以下の質問のような気がしますが

C#3.0って、VisualStudio2008以上でないと開発に使えないのですか?
あと.NET以外でC#を使うことはできないのですか?

366 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 18:27:40 ]
>>365
MONO

367 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 22:34:02 ]
C#のバージョン(1.x,2.0,3.0とか)と、
VisualStudio(VisualC#)のバージョン(VisualStudio2005とか、VisualC#2008とか)と、
.NET Frameworkのバージョン(2.0とか3.0とか)の違いがいまいちわかりません。

どなたかわかりやすく説明していただけませんか?

たとえば、C#3.0から追加になったLINQの機能を、VisualStudio2005でソースを書くとどうなりますか?
C#3.0はVisualStudio2008がサポートしていると聞いたのですが、動かなかったりコンパイルエラーになったりするのでしょうか?

368 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 22:49:56 ]
VSのバージョンと使用可能言語・開発可能ターゲットは以下の通り
VS2002: C#1.0 .NET1.0
VS2003: C#1.1 .NET1.1
VS2005: C#2.0 .NET2.0 ※.NET3.0用の拡張があったけど今はもうないはず
VS2008: C#3.0 .NET2.0/.NET3.0/NET3.5

LINQはC#3.0の機能なのでVS2008でしか使えない
ただし、LINQは基本的に.NET3.5のライブラリを使ってるので
開発ターゲットが.NET2.0/.NET3.0の場合は普通には使えない

違いと一口に言われても困るな

369 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 22:50:41 ]
>>367
VS2005 - C# 2.0
VS2008 - C# 3.0
VS2010 - C# 4.0
といった感じでいいんでないかな。
.NET Frameworkのバージョンは0.5とかSP1とか出てきて面倒くさいので考えない方向で。

VS2005でLinqのコードを書くとコンパイルエラーになります。

370 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 23:05:21 ]
VS2002 -> 1.0
VS2003 -> 1.1
VS2005 -> 2.0
VS2005 + Extention -> 3.0(2.0)
VS2008 -> 2.0、3.0(2.0)、3.5(2.0、3.0)




371 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 23:05:38 ]
>>368
>>369
ありがとうございます。

もうひとつ質問なのですが、
1つのパソコンに異なるバージョンのVisualStudioを共存させるのはよくないのでしょうか?
会社で使うのが主に旧バージョンなので、
自宅PCには会社と同じ環境用の旧バージョンと自己学習用の新バージョンを入れたいと思っているのですが

372 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 23:14:58 ]
問題ない。

373 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 23:15:43 ]
複数の環境を作るためにVirtualPCを無料で配布しているんです

374 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 23:37:14 ]
いあ普通に共存できるし。

375 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 23:50:38 ]
そういう問題じゃないんだよ

376 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 00:01:06 ]
どういう問題だよ。

377 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 00:05:50 ]
趣味グラマにゃ関係ねえわなwww

378 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 00:23:42 ]
いや仮想環境はいいぞ

379 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 00:27:37 ]
むしろパソヲタ的な趣味グラマの方が意味なく(おまけにライセンス的にヤバい方法で)
VMで遊んでる気もしますが。

380 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 00:42:46 ]
趣味グラマ(初心者)で意味なくVMで遊んでるけど
ライセンス的にやばいことはしないぞw
win7(RC)入れて見たり、linuxで遊んでるだけだ



381 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 00:47:49 ]
仮想環境って、2台としてカウントされるのだろうか…

382 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 00:55:17 ]
職業グラマ(上級者)だけどVMはLinux・BSD開発に使ってる
Win開発は実機

383 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 01:06:34 ]
HDDイメージをDVDに焼いておけば簡単に初期状態に戻せるから重宝してるよ
クリーンな状態でテストしたいからね

384 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 01:07:44 ]
>>382
上級者は自分を上級者だと言わない

385 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 01:11:01 ]
>>384
そういう突っ込みを入れさせるために書いといた
まあちょっとした遊び心


386 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 01:11:51 ]
涙目。

387 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 01:37:35 ]
後釣り宣言ほど恥ずかしいものはないな

388 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 01:39:05 ]
まあちょっとした遊び心

389 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 01:41:05 ]
釣れた釣れた

390 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 01:41:40 ]
MSDNで開発用のライセンス貰ってVMで動かしてる。



391 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 01:49:07 ]
俺はDreamSparkでもらったやつをホストOSにして
それで余ったやつをゲストOSにしてる

392 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 02:01:45 ]
大学生羨ましい

393 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 02:10:50 ]
ちなみに専門学校です
しかも情報系ではありません

394 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 02:41:21 ]
なら私は高専生低学年です
しかも情報系ではありません

395 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 02:54:33 ]
そうですか。

396 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 03:20:29 ]
いいから寝ろ

397 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 03:51:43 ]
仕事中

398 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 04:05:50 ]
いいから仕事しろ

399 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 04:30:12 ]
おはよう、おまいら

400 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 04:34:44 ]
いいから眠らせろ



401 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 08:12:14 ]
2005と2008を共存させるのビビッて仮想環境で
開発しようとか、典型的なおっさんプログラマーだろうなw

402 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 08:56:14 ]
えっ

403 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 10:47:59 ]
2005のupdateがきて関連付けを2005にされたときは、ふざけるなと思った

404 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 20:35:57 ]
>>403
ごめんね。MSがばかでごめんね。

405 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 21:28:03 ]
エスケープ文字についての質問です。

\nは改行、\rは復帰だそうですが、復帰とはどういう意味ですか?
また、サンプルソースで改行を\r\nとしていたのですが、ただの\nと何が違うのですか?

406 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 21:30:05 ]
C#とは関係ない
「改行コード」でぐぐれ

407 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 22:22:27 ]
放送大学の学籍番号キター

408 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 23:01:19 ]
>>405
行頭に戻る

409 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 23:05:53 ]
>>405
「\r 復帰」で検索すればすぐにわかるのに

410 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 23:16:00 ]
まあ、別に非難するつもりはないけど
>>405みたいな話でいちいち人に聞いてたら学習効率悪すぎるな。
>>405は自分で自分の首を絞めてることに気づいた方がいいね。
無理強いはしないけど。



411 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 08:34:04 ]
ゆとり

412 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 09:35:04 ]
TransportBindingElement.MaxReceivedMessageSizeで
WCFで受信する最大のメッセージサイズを指定しているのですが、
最大値より大きなメッセージを受信した時に
「最大値を増やすことを検討して下さい」
といった感じのログを残したいと考えています。

メッセージを受信する側で
「最大値より大きいメッセージを受信し、リクエストを拒否した」
という事を検出するにはどうすれば良いのでしょうか?

413 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 11:03:47 ]
Visual C# 2008 Express Editionを使っています。
スタートアップ時、前回終了時のプロジェクトがそのまま開けるようにできる設定方法はないでしょうか?

414 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 11:23:29 ]
>>413
オプションにあるだろ

415 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 11:34:43 ]
>>414
ありがとうございます。見逃していました。
「ツール」→「オプション」→【全ての設定を表示】→『スタートアップ』の手順で、
【全ての設定を表示】のチェックを見逃していたため、気づきませんでした。

416 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 11:56:10 ]
全ての設定を表示って邪魔くさいよな。

417 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:09:46 ]
Expressのその機能はかえって初心者を混乱させてるよな
何度それに起因する質問を見たことか

418 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:17:31 ]
そう?
「まず落ち着いて状況をよく見る」という、プログラマに不可欠な能力の欠如を
初心者に思い知らせる、いい薬になってると思うけど。

個人的には、そんな「よく見れば誰でもわかる」プログラムの設定程度で
躓く人間にまともなプログラムなんて書けっこないと思う。

419 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:31:09 ]
不明瞭な機能をスキルに対するリトマス試験紙とか言う馬鹿がまだいるとは

420 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:36:03 ]
一通りオプションを眺めるとかHELPを読むとかしろよ
ど素人じゃないんだからさ



421 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:37:34 ]
ど素人なんだろ。

422 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:40:57 ]
あのオプションはチェックが入った状態が逆ならまだましな気がする。
すべて表示、じゃなくて一部隠す、にするということね。

423 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:42:58 ]
Express以外は、チェック自体がないのか?

424 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:43:18 ]
項目大杉! って文句付けた奴がいるんだろうな。

425 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 14:47:32 ]
>>423
無い。
つーかそもそもExpressEdition以外はC#専用ってわけじゃないしね。
同じExpressEditionでもC++もこのオプション無い。

426 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 14:55:14 ]
チェックボックスは上位エディションでも設定で出せるよ

427 名前:デフォルトの名無しさん [2009/09/20(日) 18:49:32 ]
テキストボックスに日付を入力させて、
もし、値がおかしければ、Leave時にそのテキストボックスの背景色を赤にしたいと思っています。
しかし、Leave時のactiveコントロールは次のタブオーダーのコントロールに変わってしまっていますし、
どうやって、Leaveされたコントロールを取得したらいいのか分かりません。
ご存知の方、教えてください。

428 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 18:53:07 ]
Validateとかねーの?

429 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 18:53:32 ]
テキストボックスのイベントハンドラじゃダメなの

430 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 18:54:18 ]
uchukamen.com/Programming1/Validation/



431 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 18:54:30 ]
TextBox.Validatedイベントを使う
見た目も任せていいならErrorProviderを使うのが楽

432 名前:デフォルトの名無しさん [2009/09/20(日) 21:09:13 ]
>>427です。
お返事ありがとうございます。
Validatedのイベントに記述します。

このチェックを共通サブルーチンのようにし、
複数の日付項目のValidatedイベントから呼ぶようにしたいと思っています。
もしエラーなら、その該当のコントロールの背景色を変えたいのですが、
どのコントロールから呼ばれたかを取り出して、
そのコントロールの背景色を変えるにはどうしたらいいでしょうか。
senderの中身を見ても、コントロールの種類だけしか見つかりません。

たびたびで申し訳ないですが
よろしくお願いします。


433 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 21:22:54 ]
キャストしろ

434 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 21:44:23 ]
>>432
いやいやValidatedイベントハンドラ(ってかデリゲータ)を一つ用意すればいいだけだから
無駄に分ける必要ないから

435 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 22:38:02 ]
ヘルプの EventHandler デリゲートより
「このメソッドの最初のパラメータの型は Object であり、イベントを発生させるインスタンスを参照します。」


436 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 22:42:18 ]
>>431
へえ。ErrorProviderなんてあるんだな。
俺ならユーザコントロールでコードを分離してイベントを書くな。

437 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 00:55:51 ]
>senderの中身を見ても、コントロールの種類だけしか見つかりません。
ワロタ


438 名前:デフォルトの名無しさん [2009/09/21(月) 02:09:39 ]
テキストボックスのマルチラインをtrueにした状態で、
改行をさせないようにするにはどうすればいいですか?
マルチラインをtrueにしているのは、テキストボックスの高さを少し上げたかったからであり、
複数行入れたいわけではありません。

何かテクニックがあれば教えてください・・・!


439 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 10:36:18 ]
テキストボックスの高さを普通に上げればいいじゃない

440 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 11:00:54 ]
そういうスタイルもあるけどコピペに対応できないから
入力時にチェックしてはじいたら?



441 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 12:11:47 ]
RichTextBox使ってMultiLine=falseにしたら?

442 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 14:07:47 ]
フォント大きくするか>>441だな。

443 名前:デフォルトの名無しさん [2009/09/22(火) 08:42:11 ]
>>441
リッチテキストボックスとテキストボックスは外観がちがうんだね。同じフィックスド3Dでも。
同じならいいのに。

444 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 13:03:02 ]
C# .NETアプリケーション開発 徹底攻略
て本に、LOADイベントはInitializeComponent完了前、
正確にはResumeLayout直後に発生する事があるって書いてあるんだが
そんなことホントにあるのか?
ちょっと考えられないってかありえない気がするんだが。
Newするだけで表示しなかったらどうなるの?とか疑問だらけだ。

どうもこの本は、正しく理解してない開発者が多いなんて書きながら、
あちこちに間違いとか思い込みとか極端な例を元にしてる話がある感じで
今ひとつ信用できない。
本自体の方向性は好きなんだが。


445 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 13:06:27 ]
イマイチ信用できなくなったきっかけは、非同期処理絡みでいろんなこと書きながら、
実は正しい非同期処理のルールすら理解せずに書いてるから。
思い込みでおかしな動作すると言ってんじゃないかと思ってしまう。


446 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 13:08:57 ]
>>444
見た覚えあったので辿ってみた。
C#, C♯, C#相談室 Part52
pc12.2ch.net/test/read.cgi/tech/1238548552/
の574あたり。

447 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 13:12:21 ]
非同期処理では例外は握りつぶされるとか
スレッドプールのスレッドでも同様とか
各種Timerクラスとスレッドプールの関係で勘違いしてるとか
文字列連結パフォーマンス関連の不適切な例と説明とか(ここは言いたいことは理解は出来るが)
ngenの勘違いした記述とか

448 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 13:31:36 ]
C#はパラダイム詰め込みすぎでパラダイム間の共認知が薄れてるきがす

449 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 13:35:49 ]
444も447も大体.NETの問題でC#とは直接関係はなさそうだが

450 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 14:07:46 ]
>>446
サンクス。
読んでみたけど、うーん、そりゃそんなことしたら呼ばれることはあるわな。
これは当たり前の話だよねー。

気になるのは、そんなおかしなことしてる場合じゃなくて、
普通にあり得るのか?ってことなんだよなー。

例え話としては、
「Loadイベントではまだフォームは表示されていない」に対して、
「そんなことはない、Load内でShowを呼び出したら表示される」
「だからLoad中はまだフォームが表示されていないというのは間違い」
とか言ってるみたいな感じ。
※MDIとかだとまたややこしいは話があったかも知れんがそれはそれ

本を見ると、InitializeComponent完了前にLoadが発生するのは
Vistaで起こりやすい?らしいんだが、どうなんだろう…




451 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:20:15 ]
>>450
普通にはありえないんじゃない?

OnLoadで初期化をするとか割とありふれたことだから、
そんな現象がありうるのならもっと大騒ぎされてると思う。

俺が検索した限りでは、そんな現象を指摘する情報は見つからない。
個人的にもそんな現象にあたったことはないね。

452 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:23:53 ]
要するに「可能性があるからできる限りそれに依存しないコードにしましょう」ってことでしょ
その本は読んでないから文脈分からんけど

453 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:04:31 ]
外部 DLL の null 終端されていない文字列を string に変換するにはどうすればいいですか。
以下の方法だとうまくいきませんでした。

struct Hoge {
// 文字列(null terminate されてない)
IntPtr str; // const char*
// 文字列のバイト数
int length; // int
}

[DllImport("hoge.dll", CharSet = CharSet.Ansi)]
extern static IntPtr get_struct(); // 構造体 Hoge のポインタを返す

IntPtr p = get_struct();
Hoge hoge = (Hoge)Marshal.PtrToStructure(p, typeof(Hoge));
string s = Marshal.PtrToStringAnsi(hoge.str, (int)hoge.length); // ここで変換がうまくいっていない


ちなみに length が正しく文字列のバイト数を格納していることは確認しています。

454 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:11:16 ]
RtlMoveMemory() で文字数分切り取ればOK。

455 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:12:33 ]
「うまくいかない」の具体的な事象は?

456 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:17:43 ]
>>454
試してみます。

>>455
文字がシングルバイトかマルチバイトかにかかわらず文字化けします。

457 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:25:12 ]
一部だけ?全部?
char*はANSI(ASCII/Shift_JIS)の文字列で良いの? たまに違う文字セット使う場合もあるけど
取り敢えずMarshal.CopyでIntPtrをbyte[]に転写して中身調べたらどんな感じ?

458 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:37:26 ]
>>457
全部です。
Copy すると byte 配列が明らかにおかしいですね。
char* は ANSI で間違っていないのですが、
byte[] に格納されたバイトは ANSI でも Unicode でもなさそうです。

期待する文字列: 太郎
Marshal.Copy(hoge.str, bytes, 0, hoge.length) の結果: {8, 0, 0, 0}

もしかしたら>>453とは関係ない部分かもしれないので API 等見直します。
ありがとうございました。

459 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 20:54:01 ]
>>452
可能性でいやなんでも可能性はあるぜ?
大体NewしただけでLoadイベントが発生する作りのFormなんて明らかにおかしいわけで。

----引用開始
またLoadイベントは、コンストラクタの完了を待って同期的に呼ばれるのでは、
といったイメージをもたれがちですが、これも間違っています。
Loadイベントは、コンストラクタで実行されるInitializeComponentメソッドが
完了した後に呼ばれます(正確にはデザイナコードのResumeLayoutメソッドで
レイアウト描画が開始された時)。
つまり、InitializeComponentの直後に記述したロジックと、Loadイベントに
記述したロジックは、どちらが先に実行されてもおかしくありません。
この現象は、マルチスレッド、マルチコアCPUの実行パフォーマンスが最適化
されたWindows Vistaでよく起こるようです。

どちらの現象も開発者に正しく理解されてないことが多く

----引用終了
いややっぱりおかしいって。
多分作りのおかしなアプリ動かして、普通に起こる現象だと勘違いしてる。


460 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:02:29 ]
>>453
C#側の構造体に[StructLayout(LayoutKind.Sequential)]とか書いてある?



461 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:02:54 ]
あー、確かにその記述はフォローできないな
WinFormなんだからシングルスレッドで同期的に動かされるのは当然だもの

462 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:04:12 ]
>>459
明らかにおかしいとは思えんね。
Loadの意味的な定義は「ShowまたはShowDialogが呼ばれた」なんだから、
InitializeComponentの中だろうがなんだろうが、それが起これば発生してくれなきゃ
逆にそっちの方が「オカシイ」よ。

463 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:06:08 ]
発生することがおかしいと言ってるんじゃないよ。
本の記述というか、説明がおかしいと言ってる。
どこかでShowしたらそりゃそのタイミングで発生するのは当たり前。


464 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:11:33 ]
ついでに言うと、マルチスレッドでの例外はこんな感じだ。
デリゲートの非同期実行での例外に関する記述で、EndInvokeを使用してないコードを書いてて、

----引用開始
このマルチスレッド例外のしくみは、ほとんどの開発者に正しく理解されていません

つまり別スレッドで起こった例外は、メインスレッドから検知できません。
これはマルチスレッドにおける重要な仕様です。
別スレッドで起こった例外は、何事もなかったかのように例外の起こったスレッドを
終了しています。

たとえばSocketを使用した非同期通信のしくみを利用した場合、非同期処理の部分は
別スレッドで実行される場合があります。

通信エラーが起こっても正しく検知できません。
通常のスレッド処理や、スレッドプールが暗黙的に使われるタイマー処理、デリゲート
でも同じことが言えます。
----引用終了

そりゃEndInvokeとか使ってないんだから当たり前。
それにBegin〜系以外ならちゃんとハンドルされてない例外になるから
タイマーとか普通のスレッドとか普通のスレッドプール利用とかでは当てはまらない。

この人のコードは基本的に非同期処理でEnd〜を使ってない。
非同期処理は不安定とか結構文句が書いてあるんだが、
それってちゃんとEnd〜してないからってのと、他にもなんか
ぽかやってんじゃないかと思ってしまう。


465 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:23:03 ]
これに対する対処として書かれてる方法が、
非同期実行する対象のメソッドの先頭で、
InvokeRequired調べてコントロールにInvoke。

いくらなんでも例として不適切だ。


466 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:29:24 ]
>>463
なるほど失礼。

467 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:43:43 ]
MSの記事のどこかでMS社員が
FormsのFormの内部実装でスレッドの見落としがあってバグ採りしたってあったなー

コントロールのメソッド一つ一つにInvokeRequiredをガードに入れるという作業

468 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:16:52 ]
質問です。

Set xls = CreateObject("Excel.Application")
xls.Visible = True
Set book = xls.Workbooks.Add

これをC#で書くと、どんな感じになりますか?

469 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:21:36 ]
・ExcelをCOM参照すればまあ似たような感じに書ける
・レイトバインドじゃないと嫌なら、C#で記述するのは諦めてVBで書く
・Excelの相手はVBScriptにやらせて、C#からはProcess.StartでそのVBSを起動するだけにする
お勧めは3つめ

470 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:33:43 ]
レイトバインドもできないわけじゃないけど、かなり面倒だわな。



471 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:35:28 ]
C#4.0待ち

472 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:36:20 ]
お勧めは、Excel Web Service。

473 名前:デフォルトの名無しさん [2009/09/22(火) 22:38:16 ]
Visual Studio 2008 で開発してます。
DataGridViewの一行のデータDataRowに、画面には表示しないバイナリデータや、
ArrayListなどを紐付けたいのですが、
DataRowあるいはDataGridViewに、そういう画面非表示のデータを紐付けて管理するメソッド等ありますか?
MFCのCComboBoxのSetItemDataPtr()のようなメソッドです。

474 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:41:58 ]
そういうのは"バインディング"といって,メソッドとかそんなレベルじゃなくてちゃんとした仕組みがあります

475 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:42:12 ]
Dictionary<DataRow, T>辺りで別管理した方が楽じゃね?

476 名前:473 mailto:sage [2009/09/22(火) 22:57:02 ]
ありがとう。
今はSQLの結果のDataTableをDataGridViewのDataSourceに設定してから、
その1行のデータの一部からバイナリデータやArrayListを作ってDataTableに付加してたが
付加してからBindするようにしてみる。
Dictionaryもちょっと検索してみます。ありがとう

477 名前:468 mailto:sage [2009/09/22(火) 23:09:02 ]
ありがとうございます。
COM参照が(自分の中で)一番わかりやすいです。
Excel Web Serviceとやらは初めて聞きました。勉強してみます。

478 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:11:25 ]
COM参照は正直お勧めできない
ReleaseComObject&Missing地獄

479 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:42:53 ]
>>469
アーリーバインディングが抜けてると思う。
Excelのtlbからアセンブリ作って参照に追加。
お手軽だけどExcelのバージョンアップ時には再ビルド。

まあ、余程の事情(Wordのスペルチェックを呼び出して結果を取りたいとか)
じゃなければ俺も3がお勧め。

480 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:52:05 ]
>>479
それって COM 参照と何が違うの?



481 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 00:56:36 ]
>>480
COM使ってレイトバインディングと同じ事をやる技がある。
その場合は、固定の参照設定は使わない。
しかし、生でCOMを使うわけだから自分でマーシャリングとかCOMオブジェクト
の始末とかをやらないとならない。

482 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 00:58:58 ]
そんなこと聞いてないんだけど。

> アーリーバインディングが抜けてると思う。
> Excelのtlbからアセンブリ作って参照に追加。

これと、COM 参照の違いは何?

483 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 01:01:54 ]
「ただExcelファイルを開くだけの」COMを使ったレイトバインディング例
d.hatena.ne.jp/zecl/20080128/p1

484 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 01:03:58 ]
あ、COM参照==アーリーバインディングを意味して書かれてたか。
すまん、読み違えた。

485 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 01:06:01 ]
>>484=>>479とか>>481でいいの?

486 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 01:08:08 ]
さすがに違うだろ。

487 名前:デフォルトの名無しさん [2009/09/23(水) 01:29:34 ]
まじキチ…ユダヤが人工地震を起こすぞ

【緊急情報カクサンよろしく】

ついに来ました。

大きい動きです。250nT超えてきました。ほぼ間違いありません。もう一度言います。

友人、知人、親類縁者、あらゆるつながりを駆使して巨大地震がくることを教えて下さい。

四川地震より大きいのが来る可能性があります。
g★olde★ntam★atama.b★lo★g84.fc2.c★om/

★★★★★危険度MAX★★★★★
★★★★★★★★★★★★★★★★

★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★

★★★★★★★★★★★★★★★★
★★★★★危険度MAX★★★★★

警告!連休中の21、22、23日が危ない!かも2
live24.2ch.net/test/read.cgi/eq/1★253494015/
【大気イオン】e-PISCO Part11【また延長】
live24.2ch.net/test/read.cgi/eq/1★252991726/

本当に地震が来たら、犯人は特権階級全員だということ2


488 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 02:31:32 ]
Windows Form 上に
ラジオボタン、TextBox(MultiLine)にあるとします。

そしてTextBox上の文字列を選択し、その上の部分にあるラジオボタンの選択を
切り替えた場合にも、TextBox上の選択文字(背景色黒)が解除されない様にするには
どうすれば良いでしょうか?

TestWindowsForm

●トマト ○きゅうり ○りんご

AA【AA】AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAA

※この【**】の部分を選択した状態で上のラジオボタンの選択を切り替えても
選択状態が解除され無い様にしたいです。


489 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 02:39:45 ]
しつこいな

490 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 03:44:11 ]
プロパティが上手く使えないんだが…
どうしてもメソッドでやってしまう。



491 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 04:30:49 ]
>>488
宿題スレいけ

492 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 04:34:47 ]
>>488
TextBox.HideSelection = false
でOK

493 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 10:41:54 ]
>>487
コピペ君って馬鹿だな、まで読んだ。

494 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 01:37:11 ]
>>492
遅くなったけどありがとうございます。

495 名前:デフォルトの名無しさん [2009/09/24(木) 23:57:07 ]
C# ネイティブ化ツールでお勧めはどっち? (処理速度など)
Xenocode Postbuild 2009 for .NET
Salamander .NET

496 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 00:02:42 ]
なんか期待してるモノと違くね?

497 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 00:05:17 ]
C#使っている時点で処理速度はあきらめるしかない

498 名前:デフォルトの名無しさん [2009/09/25(金) 00:13:12 ]
速度はやっぱりあきらめるしかないですか・・

説明に
Compile .NET to native executables.
eliminating .NET Framework installs
って書いてあるから期待したんだけど
ildasmとかの難読化がメインかな? このツール

499 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 00:14:50 ]
つーか、それなりのハードなら、それほど遅くない。

500 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 00:25:26 ]
難読化とインストール時のNgenで十分だろ



501 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 00:40:18 ]
GCや型システムのようなものをそのまま残している以上
ネイディブにコンパイルできても速度は代わらない。
GC無くし型システムを変更してしまうともうC#ではない。
javaに対するgcjと同じ流れだよね。

.NETはIOが無い部分のコードを局所的に測定すると分かるけど、
ネイティブと比べてほとんど遜色ないスピードが出ている。
起動から終了まで全体測ると遅くなるけどね。

502 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 01:15:20 ]
言語とライブラリの区別はつけような

503 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 01:21:28 ]
その突っ込みもズレてね?

504 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 01:24:11 ]
そういやそんな気がしてきた

505 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 01:33:54 ]
C#ってCなんかに比べてメソッドコール遅くない?


506 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 01:57:40 ]
気になるならアセンブリ言語にしとけば?

507 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 02:37:39 ]
気になるならC言語にしとけば?

508 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 02:53:22 ]
.Netで作ったアプリを Adobe の Flash8 みたくアクティベーション形式にするには

どうすれば良いでしょうか?

コピーして作ったソフトを使われるのを防ぎたいです。

509 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 02:58:40 ]
スレ違い

510 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 03:03:53 ]
>>505
Cって・・・当たり前やんけ。
何が言いたいの?



511 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 06:47:31 ]
>>508
そういう風に作れば良い

512 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 10:44:23 ]
メソッドコールは条件によってだいぶ変わるな。
だが特に遅いことはない。

むしろCとかと比べて遅いのはstatic変数へのアクセスとか、特に参照型メンバなんかへの書き込み。


513 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 16:36:14 ]
Directory.GetFilesで得られるstring[]の中に入るファイル名は、
ちゃんと昇順で並んでいるっぽいんですけれど、保障はあるんですかね?
自分でソートする必要があるんでしょうか?

514 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 16:43:18 ]
>>513
ドキュメント読めよ。
「返されるファイル名の順序は保証されません。」って書いてある。

515 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 16:44:05 ]
なんの保証もないって明記されてなかったか?
ファイル作りなおしたりして見てみろ

516 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 17:02:02 ]
ううぅ、MSDN見たつもりだったんですが‥‥。
書いてありましたか、どうもすみませんでした。


517 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 17:13:33 ]
ファイル名順になっている理由は、NTFSのMFTにはファイル名順で
格納されているからじゃなかったかな?

518 名前:デフォルトの名無しさん [2009/09/25(金) 19:16:38 ]
トライアル版でネイティブにコンパイルにしたら
.NET Framework入れてない環境でも動いたよ。

欲しいけど高い...

519 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 23:23:08 ]
WinPEで動くexeをC#で作りたいけど・・・高い。
htaでいいや。と感じてしまう。

520 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 01:41:32 ]
>>511
アプリの起動時にどこかの鯖にアクセスするイメージで大丈夫?
私が思いついたのはそれ位です。



521 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 02:50:56 ]
ネットがつながらないと起動もできないアプリ


522 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 03:30:41 ]
質問です、すいませんがお願いいたします。
C#については、最近使い始めたところで、正直なところ理解が浅いレベルです。


1.やりたいこと
プログラムを実行するとWindowsフォームが起動して、自動的に処理を開始。
処理に問題が無ければ、自動的にWindowsフォームを終了させたいです。

2.問題現象
「ObjectDisposedExceptionはハンドルされませんでした。破棄されたオブジェクトに
アクセスできません。オブジェクト名'Form1'です。」というエラーが発生します。

3.やってみたこと
切り分けというか、試行錯誤として下記のことを試してみました。
・Windowsフォームにボタンを追加し、ボタンが押された場合にCloseメソッドを呼び出し。
  ⇒正常に終了できるが、ただ、ボタンをクリックする必要があるため要件を満たさず。
・this.Close()の代わりにthis.Dispose()を使用
  ⇒エラー内容の変化なし。
・Main関数の中で、Application.Exitを実行。
  ⇒Application.Run以降の行が実行されない。
・Main関数の中で、例外処理を入れ、try-finallyで終了処理を入れてみた。
  ⇒エラー内容の変化なし。finally節まで行かない。

4.分からない点/お聞きしたい点
・エラーを出さずに、自動的にWindowsフォームを終了させる方法が分かりません。
・サンプルコード等、例になるようなサイトはありますか?「どぼん!の .NET Tips」の
 サイトを参考に、Closeメソッド等を試してみてました。
・自動的に処理を実施させたかったので、コンストラクタ内に処理を書いたのですが、
 あまり良い書き方ではないのでしょうか?作法などありますか?


523 名前:522 mailto:sage [2009/09/26(土) 03:33:04 ]
5.環境
OS: Windows XP SP3
Visual C# 2008 Express Edition 9.0.2
.NET Framework 3.5 SP1


6.コード
static void Main()
{
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRenderingDefault(false);
  Application.Run(new Form1()); ←★ここでエラーが出ます。
}



namespace WindowsFormsApplication1
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      
      //ここに将来的に自動化処理を入れたい
      
      this.Close();
    }
  }
}


524 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 03:47:21 ]
Environment.Exitなら一応終了できる
しかしコンストラクタでやったらフォーム表示される前に終わるんだが

Shownイベントでやってみたら?
最後呼ぶのはCloseでおk

525 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 04:44:28 ]
>>522
フォーム起動後に処理を行うのでフォームのロード後に処理を始める必要がある。
フォームのロード完了時に処理を行う方法は以下の 3 通り。
1. Form1 で OnLoad をオーバーライドする
 public Form1() {
  InitializeComponent();
 }
 protected override void OnLoad(EventArgs e) {
  base.OnLoad(e);
  // 自動化処理
  this.Close();
 }
2. Form1 のコンストラクタで Load イベントにイベントハンドラを追加する
 public Form1() {
  InitializeComponent();
  this.Load += new EventHandler(Form1_Load);
 }
 private void Form1_Load(object sender, EventArgs e) {
  // 自動化処理
  this.Close();
 }
3. Form1 のインスタンスの Load イベントにイベントハンドラを追加する
 static void Main() {
  Form1 form = new Form1();
  form.Load += new EventHandler(form_Load);
  Application.Run(form);
 }
 private static void form_Load(object sender, EventArgs e) {
  // 自動化処理
  ((Form1)sender).Close();
 }

526 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 07:26:01 ]
>>522
実行中にフォームを表示させておきたいなら、
Loadイベントでタイマーで1回だけキックかけるのが一番楽かな。
フォームにキャンセルボタンを付けたいならスレッドがスマート。


527 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 08:05:13 ]
表示は最初にApplication.DoEventsでいいよ

528 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 08:06:58 ]
それはないわ。

529 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 08:19:30 ]
あーごめんLoadでやったら無理だったわ、忘れて

530 名前:522 mailto:sage [2009/09/26(土) 08:38:49 ]
皆さんレスありがとうございます。非常に助かりました。
幾つか解法を頂きましたが、スキル不足のため、どれが一番
合っているか判断がつけづらいため、頂いたレスを参考にして、
少し色々と試してみることにします。


>>524
Shownイベント、ぐぐって見ました。なるほど楽に実装できるかも
しれませんね。

>>525
ソースコードまで書いていただきありがとうございます。
正直なところ、イベントハンドラやオーバーロード自体の扱いに
あまり慣れていないので、これを機に、頂いたソースを元にして
色々と試してみたいと思います。

>>526
すいません、526さん=529さんですか?そうであれば、実際に
試していただくところまでやっていただきありがとうございました。

>>527
Application.DoEventsというのは、イベントが溜まった際に、意識的に
実行させたい時に使うことくらいしか出来ないかと思っていました。
ちょっとどうやって処理するか分からないので参考にさせていただきたいと
思います。



531 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 09:59:44 ]
つうかよ、そもそもそれForm作成表示する必要あんのか?
コンソールアプリにするかか、
Windowsアプリで単にMainで必要な処理書くだけでいいんじゃないのか?


532 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 10:02:03 ]
もし表示する必要あるなら、
BackgroundWorkerを貼り付けてForm_Loadで実行開始
完了イベントでClose


533 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 10:02:45 ]
これならキャンセルにも対応させられる


534 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 10:10:52 ]
Form1が必要無いように思える
Main内で処理してApplication.Runを使わずに自動的に終わることもできる

535 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 10:50:34 ]
>>531、534
正直おっしゃるとおりと思います。実は、作成開始時点で、コンソールアプリにすることも考えました。
ただ、下記の様な理由で、コンソールアプリではなくGUIアプリとして作成することにしました。
開発動機が自身の勉強目的でGUIアプリが作りたい!というところから来ているのかもしれません。

・C#/Windows GUIプログラムの勉強ができる。
・ユーザ毎に入力すべきパラメータが異なり、その部分はGUIにしてユービリティを向上したかった。
・既にコーディング済みのソースを再利用したい。

また、冗長になり、焦点がぼけてしまうかとかと思い、>>522では省いたのですが以下の様な
完成品を目指しています。「下記3の項目以外」は既にコーディング/動作確認も完了しているため、
>>522では下記3の項目のみ質問させて頂きました。省かずに記述した方が良かったですかね・・・。

1.アプリを起動するとWEBページに自動的にアクセス
2.ID/パスワードなど幾つかの設定済みパラメータを自動送信し、処理を行う(実行状況をフォーム上で表示)
3.処理が正常に完了した場合はユーザがOKボタンを押すことなく自動的に終了する
4.パラメータが間違っているなど異常な場合のみ、フォーム上でパラメータ設定変更/保存をユーザにさせる
5.2を手動で実行することも可能


皆さんのレスを頂いてから、Main内の処理(特にフォームの扱い)について勉強が必要かなと思いました。
完了イベントを自動で行う機能追加をプラスすると>>532さんの実装が一番理想に近いのかもしれません。
こうした方が、よりよい実装じゃないかとアドバイス頂けるのは正直参考になり有りがたいです。

536 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 10:52:14 ]
Shown でやればいいだけだな。

537 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 11:00:16 ]
もしくはロードでControl.BeginInvokeとかな

538 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 11:02:40 ]
設定用のとプロセス分けることを考える

539 名前:522 mailto:sage [2009/09/26(土) 11:08:52 ]
結局幾つか試してみて下記のようにShownイベントを追加する事にしました。
みなさん、レスありがとうございました、本当に助かりました。

static void Main()
{
 Application.EnableVisualStyles();
 Application.SetCompatibleTextRenderingDefault(false);
 Application.Run(new Form1());
}


namespace WindowsFormsApplication1
{
 public partial class Form1 : Form
 {
  public Form1()
  {
    InitializeComponent();
  }

  private void Form1_Shown(object sender, EventArgs e)
  {
    // 自動化処理を記述

    if(//自動化処理結果がOK){
      this.Close();
    }
  }
 }
}

540 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 14:00:42 ]
ListViewを2つ用意して、同じContextMenuStripを起動していろいろ処理をしたいのですが、

1)listView1.ContextMenuStrip = contextMenuStrip1;
listView2.ContextMenuStrip = contextMenuStrip1;

2)contextMenuStrip1にはtoolStripMenuItem1があり

3)toolStripMenuItem1_Click()で
ListView parentListView = (ListView)((ContextMenuStrip)(((ToolStripMenuItem)sender).Owner)).SourceControl;
としてメニューがクリックされたときのListViewを識別します。

4)普通にtoolStripMenuItem1をクリックすると3)のparentListViewはlistView1またはlistView2が正しくセットされていますが
5)listView1、listView2のダブルクリックイベントでtoolStripMenuItem1.PerformClick()をすると
 3)ではparentListViewはNULLになってしまいます。
 デバッグするとcontextMenuStrip1_Openingイベントも通らないので当然の気がしますが、
 なんとかダブルクリックしたListViewを知る方法は無いでしょうか?




541 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 14:06:14 ]
Click か DoubleClick イベントでどこかに設定しとけばいいんじゃね?

542 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 14:06:48 ]
最近初心者級の質問が増えたな

543 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 15:09:35 ]
>>541
さんくす
ダブルクリック時にprivate変数に退避しておくことにしました。
せっかくSourceControlなんていうプロパティがあるのでなんとかだませないかなと思ったのですが。

544 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 16:37:07 ]
今更ながらPropertyGridって便利だねする
初期処理の重いアプリの外観の細かいところを見ながら調節したり
プロパティがどういう動作するのか試したいときに
なんでもアプリ起動させなくていいから助かる

545 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 17:02:23 ]
>>544
???

546 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 05:08:55 ]
Shownイベントで記述する人が多いんだな。
通常はLoadイベントでやってたよ。

547 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 09:49:48 ]
プログレスバーとかラベル表示出すために Shown 使ってる。
Load では出せないと思い込んでいるが、試したことないな。

548 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 10:56:12 ]
表示前と表示後で使い分けるだけでしょ
普通はこっちとかじゃなくて処理に応じて考える

549 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 11:02:55 ]
だね

550 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 15:56:18 ]
コンストラクタとLoadの使い分けがよくわからない



551 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 16:07:32 ]
コントロールを触るようなコードはLoadに書くのが確実
他は全部コンストラクタ

552 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 16:31:33 ]
WindowsForm上で右クリックをした時に
メニューを表示させるにはどういうコントロールを使った方がいいのでしょうか?

553 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 16:34:55 ]
ContextMenuStrip

554 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 16:36:12 ]
ContextMenuStrip クラス

555 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 16:47:20 ]
ちょっと調べりゃわかるようなことを聞く奴って精神分析の対象にしか思えん。
ひょっとしてMって奴?
叩かれたいのかな。

556 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 16:54:03 ]
ちょっと調べれば分かるようなことだから聞かれるんでそ

557 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 17:03:27 ]
え?

558 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 17:17:40 ]
ちょっと調べる=2chで聞く

559 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 17:41:34 ]
調べずに聞くw

560 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:02:03 ]
ネットで情報収集=2chで聞く



561 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:02:23 ]
職場とかでコミュニケーションの一環としてどうでもいいこと軽く聞いただけで
キレる人っているよね。

そうだね、俺嫌われてるね。

562 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:27:06 ]
そーかそーか、1+1は?とコーヒーブレイクにでも聞いてみろ。
ついに頭イッたかと病院行くことを薦められることうけあい。

563 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:29:19 ]
ちょっと調べれば分かるだろうが
調べなければ分からない奴はそもそも来ない

564 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:30:56 ]
お前ら、マ板でやれ

565 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 21:15:22 ]
「明日晴れるかねぇ〜?」
「ググれカス」

566 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 21:16:55 ]
>>553 >>554
ありがとうございます。

567 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 23:42:02 ]
>>562
それはどーでも良いことですらない

568 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 08:20:56 ]
ググレかすとか自分で調べろとか言う奴はそもそも何でこのスレをみているの?

569 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 08:30:04 ]
知識の劣る者を見下すためでしょう

570 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 10:40:49 ]
リアルで怒鳴られる前にそれぐらいのマナーは知っとけ



571 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 11:11:31 ]
ググったらすぐ分かるようなものを掲示板を使って質問することに合理性を見出せない。
誰かがレスしてくれるまでその問題はお預けになるじゃない。
っていうかそのくらい調べられないでプログラムの道を進んでいくことに不安を覚えてしまう。
そういった優しさからググレカスと言ってるのではないだろうか。

572 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 12:07:09 ]
どういう質問をしたらウザがられるかとか、そういう周辺知識を学ぶのもプログラミングの勉強のうちだよ。
一番最初はね。
コードが書けるだけじゃプログラマーにはなれない。対人コミュニケーションが重要。

573 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 12:28:28 ]
あんたがウザいよ
人の事を言う前に自分をどうにかしろ

574 名前:デフォルトの名無しさん [2009/09/28(月) 12:50:34 ]
しかし伸びないな

575 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 13:27:03 ]
ググれカスって書きこむとアドレナリンが出るんだよな


576 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 16:20:34 ]
例外処理で
catch(AException){
A();
B();
}
catch(BException){
A();
C();
}
catch(CException){
A();
D();
}

例外時に(DExceptionが加わったとしても)Aは必ず実行するのですが全ての例外にAを書くしかないんですか?

577 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 16:21:46 ]
ちなみに例外が無い場合Aは実行しません

578 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 16:30:13 ]
全てに書くしかありません
ILレベルでは何らかの例外が発生した場合に実行されるfaultブロックというのがありますが
C#ではサポートされていません
ちなみに,いくら面倒だからって一つのException型を受け取るcatchで受けて
その中で型で振り分けたりするのはガイドライン違反になるのでダメです

579 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 16:36:01 ]
一つ下のブロックに落として再スローした例外をキャッチしたところでA()を呼ぶとか。
try {
try {
} catch (AException ex) {
B();
throw new Exception(ex);
} catch (BException ex) {
C();
throw new Exception(ex);
}
} catch (Exception) {
A();
}

580 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 16:44:08 ]
なんだそのデタラメコードは。
せめて内側でExceptionでうけてA実行した後
throw;
だろ



581 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 20:18:48 ]
それもおかしい。

582 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:34:22 ]
CCRって.NET4.0で統合されるんだったよね?
ググってもうまく見つけられん・・・
.NETとか検索しずらいよ(´д`)ママン…

583 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:37:55 ]
>>576
AとBCDが順不同なら、

try {
  // do something
  return;
} catch(AException) {
  B();
}
A();

そうでなければ、

Actoin handler = A;
try {
  // do something
} catch(AException) {
  handler += B;
}
handler();

ただし、前者はともかfく、後者はお勧めしない

584 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:45:55 ]
後者にするくらいなら>>578の禁じ手の方が遥かにマシ

585 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 22:37:34 ]
ひとつのExceptionにして何が悪い。
困ることなんてないだろう。

586 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 22:46:00 ]
困らない人はそりゃ困らないだろうね

587 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 22:54:35 ]
catch(Exception ex) {
A();
if (ex is AException) { … }
else if (ex is BException) { … }
else throw ex;
}
ありそうだけど,これは再スローにならん
スタックトレースがクリアされてしまう

588 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 22:59:24 ]
throw ex; → throw;



589 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:40:18 ]
>>581
いいかどうかは別としておかしくはないんじゃないの?
Exceptionでホントにいいかにはよるけれども
もともと>>579に対して書いてるんだし。

try
{
try
{
}
catch(Exception)
{
A();
throw;
}
}
catch(AException)
{
B();
}
catch(BException)
{
C();
}
catch(CException)
{
D();
}
な感じだろ。


590 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:41:52 ]
って思ったけどやっぱりおかしいなってか>>579を読み違えてたわ。




591 名前:デフォルトの名無しさん [2009/09/28(月) 23:49:23 ]
C#のコンソールのほうで質問です。
名前、年齢を入力して
20歳以上なら〜以下なら〜で作ったのですが
入力が両方から文字の場合エラーを報告するにはどうしたらいいのでしょうか

今はif(name == "" && toshi == "")
{ Console.W〜えらーだよ
}
な感じなんですが
空文字で進めるとコンソールのほうからエラーをだしてきます
どのように対処したらいいでしょうか・・・

592 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:52:23 ]
日本語でおk

593 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:52:40 ]
何のエラーか書け


594 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:56:23 ]
コンソール「のほう」って何だよ
コンソールじゃねえのかよ


595 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:57:51 ]
消防署のほうから来ました

596 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 23:59:16 ]
消防署の方から来ました

597 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 00:00:14 ]
ご結婚おめでとうございます。

598 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 00:32:25 ]
末永くよろしく

599 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 01:34:50 ]
ttp://xy.yu.to/
寂しい人向け
混む時間帯は人気ありすぎて定員オーバーで入れん

24時間荒れ放題の超カオスな絵チャット
本当の本当に完全無法地帯の絵チャット
(2ちゃんとは比較にならない)

荒しとプログラマーと防衛プログラマーの攻防戦
防衛側が強し、求む強力荒しプログラマー
しかも外国サーバー(イギリス)で管理人は荒し容認
殺人予告すらOKっぽい。ログなんて当然取ってないし

600 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 03:08:28 ]
見てないけど絵チャット関係なくね



601 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 03:12:03 ]
>>599
ウィルス仕込まれた

602 名前:601 mailto:sage [2009/09/29(火) 06:33:25 ]
ウイルス仕込まれた
ってそれ>>509の犯罪じゃねーか?


603 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 07:12:30 ]
はいはい、コピペ乙っと

604 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 10:58:23 ]
自作アプリ起動時にlog.txtの作成日時を確認して、当日で無い場合は
その古くなったlog.txtを作成日時にリネームして退避し、
新たにlog.txtを生成してそこにログを書きこみたいと思いました。

起動時しか確認しない理由は、処理コストを考えて。
一般的なファイルの更新日時を確認するやり方で無く、作成日時で行うのは、
24時間以上、アプリが再起動されなかった場合を考慮してです。

さて、本題ですが、例えば作成日時が25日のlog.txtをlog_25.txtにリネームして、
新たにlog.txtを作成した場合に、新しいlog.txtの作成日時も25日のままです。
File.GetCreationTime(filePath).Dateで取得しています。

ファイルのタイムスタンプってファイルじゃ無くファイル名に紐付くという
そういう性質のものなんでしょうか?

605 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:06:29 ]
>>604
はじめからlogyyyymmdd.txtってファイル名じゃだめな理由は?
あとlog4netでぐぐると幸せになれるかもしれない。

606 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:11:46 ]
>>605
ログファイルは、別の運用監視ツールで状況をチェックされる可能性があるので、
一般的にアクティブログのファイル名は一定にするのです。

CF3.5で作っているので、log4netは古すぎてちょっと怖いのです。
CF1.0になんとなく対応しているサンプルは入っていましたが。

log4netは毎回日時をチェックするタイプで、更新日付でチェックするタイプですよね。
今の.NETってDiagnostics.Traceがリリースビルドでも使えるように出来るので、
これをうまく使うと、良い感じでログクラスが使えるかと思ったんですが。

どうやらファイルシステムによっても違うのかも。VistaのNTFSなんですけれど。

607 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:36:46 ]
毎日0:00にlog.txtが存在するかを確認する。
log.txtがあればリネーム退避する。
ファイルを作る時にlog.txtがあれば書き込み、なければ新規作成して書き込む。

これでいけそうだが。
24時間に1回の処理をコスト高というなら何も言わない。


608 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:53:10 ]
log4net嫌い。
NLOGだったか、忘れたけどそっちの方がまだいい。

でまあ俺も最初から日付で作りゃいいと思うぞ。


609 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:55:12 ]
あ悪い読んでなかったわ

610 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:57:49 ]
う〜ん、でも毎日0:00にアプリが起動しているか分からないし、
0時1分に起動することだってあり得るし。
タスクスケジューラで別処理するほどのことじゃないし。

まぁ、作成日時では無く最終更新日時では上手くいくみたいなので、
最終更新日時でお茶を濁してみます。
毎日、0時をまたいで起動されていたら、ローテーションしなくなっちゃいますけれど。

ログ自体に各行に日付が入っているので、
先頭行を読んで処理したりしても良いんですけれど‥‥



611 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:03:40 ]
レジストリなど他媒体を使うってのもあり。

612 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:41:20 ]
ヘッダ行付けるか1行目のログの日付読むのがまあ無難ちゃ無難なんじゃない?


613 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:42:44 ]
ファイル作る時にヘッダにその日時かいておけば?

614 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 12:48:23 ]
みなさん、有難うございます。
レジストリは盲点でした。
他でレジストリ使うなら、ちょこっとローテ履歴を書いちゃいますか。

そうですよね、やっぱりログファイルの中身を読めば済むことですよね。
>>604のようなファイル生成日時の怪異が疑問だったのです。
まぁ、ファイル本体とジャーナル情報が別だと考えれば、
>>604も起こりそうですよね。

615 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 13:01:08 ]
syshup とばしたらログ切りかえとか
基本日付で作って現在のファイルに対して ln -s logyyyymmdd.txt log.txt とか


616 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 13:48:41 ]
>>604
msdn.microsoft.com/ja-jp/library/cc429198.aspx

Windows NT/2000:ファイルの名前変更または削除を行い、その後短時間のうちに復元を行うと、システムは復元対象のファイルの情報をキャッシュ内で検索します。キャッシュに置かれている情報として、短い名前と長い名前のペア、および作成日時が挙げられます。

617 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 09:10:36 ]
はじめまして

エラーorz

内容:
イントーラの下のほうに、ダウンロードが完了しました。インターネットを切断できます。
って表示されてから数秒後・・・

セットアップ中にエラーが発生しました。

セットアップは以下のコンポーネントをインストールできませんでした:
×Microsoft Visual C# 2008 Express Edition with SP1 - JPN
□これらのコンポーネントを後でインストールするために、セットアップへのショートカットをデスクトップに追加します。

と表示されます。
何回も試しましたが、まったく同じ結果です。。。

visual studio c# は前(今より空き容量が少なかったとき)インストールに成功したことが
あるので(その後誤ってアンインストール・・・)空き容量の問題ではないと思います。
現在の空き容量は2.8GB

どうか解決策などあればお願いします。

618 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 09:26:23 ]
OS再インストール

619 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 19:56:03 ]
using System;
using System.Drawing;
using System.Windows.Forms;
class MyClass : Form
{
public static void Main()
{
MyClass mf = new MyClass();
Application.Run(mf);
}
MyClass(){
ListBox lb = new ListBox();
lb.Parent = this;
lb.Location = new Point(10,10);
lb.AllowDrop = true;
}
}
ドラッグ&ドロップ可能なリストボックスを作ろうとしてます。
これだと実行した直後に、「DragDrop登録は成功しませんでした」と
例外エラーが表示されてうまくいきません。
AllowDropをtrueにする以外に何か必要なのでしょうか?
どなたか助けてください 初歩的な質問ですみません

620 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:34:13 ]
プログラムを実行した時
他のプロセスの窓を隠したい(this.Hide())のですが
どのように書けばいいんでしょう。調べるにもワードが分からなくて・・・。
他のプロセスに介入するのは始めてです。基本だけでもいいので教えて下さい。
よろしくお願いします。



621 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:37:20 ]
>>620
ShowWindow() API とかだな。

622 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:38:55 ]
>>619
STAThread

623 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:49:11 ]
>>621
調べてみます。ありがとうございました。

624 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:41:44 ]
>>622
見事に解決しました
ありがとうございます

625 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 22:14:15 ]
どういたしまして

626 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:21:48 ]
C#初心者だけど、コンパイルしたらEXEファイルが出てきました。

EXEってWindowsネイティブでしょ?
これでマルチプラットフォームが実現できてるの?


627 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:33:36 ]
初級レベルのコードならLinux&Monoでもそのままコンパイルできると思うが

628 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:38:09 ]
Javaなんかjarとかそんなファイルなのにマルチプラットフォームできてるぜ?

629 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:46:09 ]
Windowsネイティブじゃないよ


630 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:46:59 ]
その.exeをLinuxに持っていってMonoで動かしてごらん




631 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:55:09 ]
EXE だけど実体は IL なのよ。
で、実行時にコンパイルされる。

632 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 21:49:10 ]
Silverlightなんかdllなどをzipで固めただけのパッケージがmacで動くぜ

633 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 22:06:14 ]
そもそも.NETをそういうこともできるように設計しましたってだけで
MS自身はクロスプラットフォームなんて目指してねぇぞ。
アセンブリがexeやdllになってるのもWindows上での利便性を考慮してのことだし。

634 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 22:15:59 ]
ハードの環境に応じた対応ができるし,
そのうち今と全く構造の違うWindowsが出るかもしれないし

635 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 23:56:32 ]
windowsで動けば何の問題もないし

636 名前:626 mailto:sage [2009/10/01(木) 23:57:09 ]
レス感謝です。

環境がWinしか無くて他は試せませんが、多分動くんですよね。

気になっているのが>>631の[EXEだけどIL]ってフレーズ。
EXEはWinが直接開いちゃうからIL読めないはず。
だからEXEを叩いた時、何らかの仕組みによって先にCLRを起動しEXEを読ませるんですよね。
それがどんな仕組み(関連付け?)なのか知りたいんです。

あと、クロスプラットフォームは建前だから
どっか設定変えなきゃWinネイティブなEXEになっちゃうのかな〜と思ったんです。
まぁさすがにそれは無いですよね

637 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 00:00:57 ]
ネイティブになれるもんならなってほしいなあ


638 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 00:18:18 ]
>>636
これ読むといいよ
www.atmarkit.co.jp/fdotnet/dotnetwork/dotnetwork02/dotnetwork02_02.html

639 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 00:26:09 ]
>>636
.NET Frameworkの初期化処理を呼び出すだけのネイティブコードがEXEに入っていた。
それで、WindowsではEXEファイルとして実行できた。

もっとも、それは過去の話。
そのネイティブコード部分を書き換えるウィルスが流行ったせいで、
(あるいはそれ以前から計画されていたのかも)
今では、Winodwsローダに手が加えられていて、EXEのヘッダを見て.NETアセンブリなら
EXE内のコードを実行せずに直接.NET Frameworkの初期化処理を実行するようになっている。

ちなみに、.NET Frameworkの初期化処理 = mscoree.dllの_CorExeMain。
msdn.microsoft.com/ja-jp/library/xh0859k0.aspx

640 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 00:42:26 ]
>あるいはそれ以前から計画されていたのかも
そのはず。
win2000などでは今でもCLRのブートコードが使用されるが、
XP以降は実行されない。
/platform:x64などでコンパイルするとブートコード自体生成されない。



641 名前:626 mailto:sage [2009/10/02(金) 01:58:44 ]
ありがとうございます!
まさにこんなのが知りたかったんです!

いや〜MS製品って難しいですね。
ちょっとした便利機能の一つ一つが魔法に見えます。

自分でももうちょっと調べてみます。

642 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 10:32:56 ]
IEquatable<T>を実装したクラスを==で比較しても
Equals(T other)メソッドを実行してくれません。
CodeとNameが同じでもfalseとなってしまいます。
何がおかしいのでしょうか・・・?

public override bool Equals(object obj)
{
  if (obj == null)
  {
    return false;
  }
  return this.Equals(obj as Foo);
}
public bool Equals(Foo other)
{
  if (other == null) //ここにブレイク張っても止まらない。
  {
    return false;
  }
  return this.Code == other.Code && this.Name == other.Name;
}

643 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 10:34:59 ]
>>642
object で比較してるところ。

644 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 10:53:12 ]
>>643
すみませんが、なぜおかしいのか教えていただけませんか?

645 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 11:46:40 ]
いや==演算子オーバーロードしないと自動でそんなことしてくれないから。


646 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 12:19:54 ]
>>645
今まで作成したクラスではブレイク張るときちんと止まってくれてました。==はオーバーライドしてません。今も別のプロジェクトのクラスはブレイクします。

647 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 12:27:12 ]
まったく同じソースで別のマシンでは止まりました。よくわからなくなってきた。
既にリリース済のプロジェクトも複数ありますがなぜ動いているんでしょ…

648 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:12:14 ]
EqualsをoverrideするならGetHashCodeもoverrideしよう。
詳細はコードスニペットのequalsで。

649 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:17:21 ]
動いてるは引数がFooクラスじゃないんだろ。
誰かがMSにバグだって報告してたな。
結果は仕様どおりだったけど。

650 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 22:15:14 ]
ありえない。ブレークするのがおかしい。
==とIEquatable<T>は全く関係ない。
==演算子をオーバーライドしないと呼ばれるはずがない。どこかで勘違いしてる。



651 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 22:27:19 ]
再現可能な状態のシンプルなソースを貼った方がはやそう

652 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 22:37:26 ]
不変でないクラスでEqualsやGetHashCodeを実装するのはお勧めしない
辻褄が合わなくなって正しく動かない場合がある

653 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 22:42:49 ]
以下のサンプルを見ながら画像を返すWCFサービスを作っています。
msdn.microsoft.com/ja-jp/library/cc681221.aspx

画像を返すには戻り値をStreamにするのですが、このStreamは
Closeはしなくても大丈夫なんでしょうか?

クライアントでStreamをCloseしたらサーバ側でもCloseされる?
そもそもMemoryStreamだからCloseしなくても大丈夫?

APIを繰り返し呼んでみてもメモリリークしている様子はないので大丈夫そうなんですが、
いまいち確証が得られず心配です。

654 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 22:50:55 ]
ファイルIOなのだからdispose()しなくてはならない。


655 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 22:50:58 ]
実際MemoryStreamのDisposeって何もしてないからなw

656 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 22:58:47 ]
>>650
演算子はオーバーロードなー

657 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 23:38:40 ]
>>653
すいません、解決しました。

・OperationContractのOperationBehaviorAttributeのAutoDisposeParametersがtrueならば
 Streamの終端に達すると自動的にDisposeされる。
 デフォルトはtrue
・↑をfalseに設定した場合はOperationCompletedで自分でCloseする

msdn.microsoft.com/ja-jp/library/system.servicemodel.operationcontext.operationcompleted.aspx
ttp://devdump.wordpress.com/2008/12/07/disposing-return-values/


658 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 23:52:05 ]
>>653
動きを勘違いしてるんじゃないか?
これは明らかに、バインディングがビヘイビアか知らんがストリームをバイト列として送信する機能が入ってる。
クライアント側がどうしようが関係ない。
サーバ側では受け取ったストリームを読みだして最後にCloseしてることだろう。
気になるならStreamのラッパー作って返すようにしてブレイクさせてみりゃ多分分かる。


659 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 23:54:29 ]
って遅かった


660 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 02:01:01 ]
ところでおまえら、スレタイの最初と三番目はシャープじゃ無いのは知ってたかい?



661 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 02:05:02 ]
何度繰り返せば気が済むの?その話題

662 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 02:08:30 ]
59回

663 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 13:40:56 ]
しってるよ
あなたがバカなこともしってるよ

664 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:22:51 ]
Window Formのデザイナって、何を目印にコンテナコントロールをコンテナコントロールと
認識しているの?

聞きたいことは、要するにControlから派生してコンテナを作るには
どうしたらいいのかということなんですが。

MSDNのGroupBoxの項を読んでも、特別な属性がついてるわけでも
特別なインターフェイスを実装しているわけでもないようだけど。

665 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:56:34 ]
ControlStyles.ContainerControl 辺りじゃね

666 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 23:26:24 ]
>>665
なるほど、気がつかなかった。
ありがとう。

667 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 04:47:00 ]
拡張メソッドの引数で、this T @thisというのが指定してあったのですが、この@thisは
何を表すのでしょうか? @について調べたいのですが検索できない状態です。

668 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 04:59:25 ]
>>667
キーワードをエスケープするための表現。
"this"という名前の変数を使いたいときは@thisと書く。

669 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 05:03:34 ]
>>668 さっそくありがとうございます。
逐語的識別子ですね。
msdn.microsoft.com/ja-jp/library/aa664670%28VS.71%29.aspx
www.atmarkit.co.jp/fdotnet/dotnettips/250identifier/identifier.html

670 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 02:20:31 ]
質問なのですが
AとBと言う2つのComboBoxを作って
Aにアイテム1とアイテム2を入れる、Bにグループ1とグループ2を入れる
Aでアイテム1が選択された時は、Bにグループ1だけが表示される様にする
同様にアイテム2が選択された時は、Bにグループ2だけが表示される様にする
としたい場合、どうしたらいいのでしょうか?



671 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 02:41:11 ]
>>670
データソースはなに?

672 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 02:49:09 ]
VC#です、すみません

673 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 02:55:34 ]
全く理解できてないな

674 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 03:01:38 ]
>>670
むしろそこまで具体的なのに何がどう行えないのかわからない

675 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 04:30:00 ]
解決しました、意味不明ですみませんでした

676 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 17:36:09 ]
.NETはそんな仕組みになってたのか。知らんかった

677 名前:デフォルトの名無しさん [2009/10/06(火) 00:50:53 ]
.asfファイルのプロパティをC#で取得できないでしょうか?
エクスプローラで.asfファイルのプロパティを見て概要タブをクリックすると
タイトルや画像サイズ等が表示されます。この情報です。

Java等、別の言語でも良いので何か良い方法があれば教えてください。

678 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 01:02:22 ]
.asfってなんだっけ

679 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 01:21:45 ]
動画

680 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 01:32:33 ]
Shell32.dll使えばFolder::DetailsOfで色々取れる



681 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 11:30:47 ]
>>677
www.microsoft.com/japan/windows/windowsmedia/format/asfspec.aspx
仕様見て自分でBinaryReaderで読めばいい
ヘッダだけなら全然難しくなさそう

682 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 11:32:04 ]


683 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 22:46:13 ]
MEFのrecompositionってどういう風にして動いてるの?

684 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 22:46:49 ]
お世話になってます。
少し前に質問したものです。

いまだに分からないものがあり質問させてください。
@RC2CryptoServiceProvider

AICryptoTransform
っていうのは何をしているものなのでしょうか・・・・

調べても正直わからないのです。
// データ ストリームを暗号変換にリンクするストリームを生成
                      変数名  変数名   ストリームのモード(書き込み)
CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);
これも分からずリンクするというのはどういうことなんでしょうか。

685 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 23:09:24 ]
ICryptoTransform ったら、暗号変換を実行するためのインタフェースで、
xxCryptoServiceProvider は、それぞれの ICryptoTransform を得るファクトリ。
ってところまではヘルプ読めるなら分かるとおもうが、読み込みが足りていないんじゃない?
んでCryptoStreamのコンストラクタだけど、

暗号化の対象とするストリーム、実行する変換、およびストリームのモードを指定して、
CryptoStream クラスの新しいインスタンスを初期化します。
public CryptoStream(
Stream stream,
ICryptoTransform transform,
CryptoStreamMode mode
)

つまりencryptorが暗号変換のオブジェクトで、これを使ってストリームをラップしているだけ。
人様のコメント頼っちゃだめよ。

686 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 23:21:27 ]
ファイナライザ内でインスタンスメンバがGCの対象になっているかどうかを知る安全な方法はありますか?
class Hoge {
object member;
~Hoge() { /* ここでmemberがGC対象になっているかどうかを知りたい */
}

687 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 23:29:12 ]
>>686
ない

688 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 23:40:55 ]
memberを弱参照に入れてmember自身はnull突っ込んで、
GC.WaitForPendingFinalizers してから解放されたか調べる。
というのは駄目かなぁ?

689 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 00:24:26 ]
それをファイナライザでやるの?

690 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 00:29:07 ]
というか普通にファイナライザで他のオブジェクト触っちゃ駄目



691 名前:686 mailto:sage [2009/10/07(水) 00:30:16 ]
static List<WeakReference> weakRefList;
class Hoge {
public object member;
public WeakReference weakRef;
~Hoge() { Console.WriteLine(weakRef.IsAlive); weakRefList.Remove(weakRef); }
}
static void Test(){
var hoge = new Hoge();
hoge.member = new object();
hoge.weakRef = new WeakReference(hoge.member);
weakRefList.Add(hoge.weakRef);
}
正しいのかはわかりませんが,それっぽい動作にはなりました。
weakRefはどこかで強参照を確保しておかないとそれ自身がGC対象になってしまってうまくいかないようです。

692 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 07:44:10 ]
GCHandleを使うのはどうなの?

693 名前:686 mailto:sage [2009/10/07(水) 12:58:30 ]
GCHandleを割り当てると強参照のrootができて常にGCの対象外になってしまう

694 名前:686 mailto:sage [2009/10/07(水) 13:06:19 ]
訂正
GCHandleって弱参照にもできたんですね。知りませんでした。
GCHandleなら>>691のように参照を確保しておく必要はなさそうです。ありがとうございます。

695 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 14:09:39 ]
つかウィーク〜もGCHandleのラッパーだよ。


696 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:33:15 ]
ようやくユーザーコントロール貼り付けられた    MSDNに書いてないことが大杉www

697 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 22:48:48 ]
今までC# expressを使っていたんですが、先日C++ expressも入れてみたところ
何故かC#とC++の関数, メソッドのヒントが英語で表示されるようになってしまいました
ツール→オプション→国際対応の設定は日本語に設定してあります
元に戻す方法を教えて下さい

698 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 22:50:49 ]
それはまずい
OSを再インストールするしかない
早く窓から投げ捨てろ

699 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 22:53:27 ]
>>697
名前忘れたけどパッチが出てるから探すヨロし

700 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 22:54:28 ]
>>697
support.microsoft.com/kb/957507



701 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 22:59:16 ]
>>699-700
これバグなんですか?
パッチ当ててみます

702 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 23:07:46 ]
戻りました
迅速なレスありがとうございました

703 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 01:01:36 ]
>>702
一応。バグっつーかたぶん翻訳が終わる前に SP を出した
のだと思う。
実際このパッチが出るまで結構かかったからこの判断は
ありがたかったとは思う

704 名前:デフォルトの名無しさん [2009/10/08(木) 02:09:10 ]
指定した列挙型のToStringをoverrideするにはどうしたらよいのでしょうか?

目的は
public enum test {test1,test2}
test.test1.ToString()
とした場合、結果をTEST1という風にしたいのです

(最初からTEST1,TEST2にしておけといわれればそれまでなんですが
コードの書式のポリシーに反するからオーバーライドで解決したいのです)

705 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 02:12:55 ]
>>704
無理。
属性を使うとかして、全く別のものを定義してやる必要がある。

706 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 02:27:49 ]
>>705
ありがとうございます
むむむ、やはり無理ですか…

属性について色々みてみたのですが
新しいメソッドやクラスの属性化は何となくわかったのですが
既存のクラス、System.Enum.ToStringの属性化が今ひとつわからず…

規約破って実装するかswitch等で判別して一つ一つ置き換えるしかなさそうですね…

707 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 05:32:24 ]
カスタムアトリビュート
neue.cc/2009/08/25_194.html
拡張メソッド+switch
d.hatena.ne.jp/siokoshou/20080124#p1

他になんかもっと面白いのないかな

708 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 07:18:23 ]
ILで無理やりToStringのoverrideを突っ込もうとしたが、
Enumにメソッドは駄目とILレベルでエラーにされた。

709 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 15:38:07 ]
たとえば以下のようなクラスがあったとして、

class Person { public string Name; public Person[] Children; }
person.Children[i].Children[j].Children[k] …

一番最初の Name == "太郎" な Person を
Linq で検索するにはどうしたらよいでしょうか?

世代が一段であれば
person.Children.Where(p => p.Name == "太郎").FirstOrDefault()
でよいのですが、無限に世代が続く場合がわかりません。

そもそも Linq では無理でしょうか・・

710 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 15:48:06 ]
Linqじゃ無理だな
素直に探索メソッド作った方がいいんじゃないの?



711 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 15:56:43 ]
まあ再帰的に検索する拡張メソッドを用意すればいいだけだ

712 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 15:58:54 ]
自分自身と子孫を連結して返す拡張メソッドを作って、
その結果に対してFirstOrDefaultするしかないな

713 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 16:10:18 ]
全子孫のEnumerator返すメソッドでいいんじゃね

714 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 18:54:07 ]
俺ならこうするかな

IEnumerable<T> TraverseDepthFirst<T>(T node, Func<T, IEnumerable<T>> childrenSelector)
IEnumerable<T> TraverseBreadthFirst<T>(T node, Func<T, IEnumerable<T>> childrenSelector)

ライセンス気にしなくてもいいなら、探せば見つかるからコピペでも
あと、TraverseじゃなくてSelectDescendentsとかでもいいかも

715 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 20:16:56 ]
TreeViewの兄弟ノードと子ノードの区別、追加のサンプルありませんか?
ググってみても子ノード追加のみでどこにもみあたりません・・・

716 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 20:21:02 ]
何を言いたいのか分からん
兄弟なら親ノードのNodesを参照すればいいだけだろ

717 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 20:22:20 ]
>>716
言葉足らずですみせん
正確にはDragAndDropでの区別、追加のサンプルです


718 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 20:38:37 ]
区別、追加の意味がわからんのだが

719 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 20:43:38 ]
>>718
区別は兄弟ノードの上下又は孫ノードの区別になります
追加(又は移動)はノードをDragAndDropして何処に追加又は移動するかになります

dobon.net/vb/dotnet/control/tvdraganddrop.html
例えばここのサンプルは区別をせず孫ノードへの移動(又は追加)のみとなり
これに加えて兄弟ノードへのノードの移動(又は追加)をしたいのです

720 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 01:17:27 ]
いろいろ書いてくれてるけど、全然わかんねーよ。
「何」の「何」が知りたいの?

>区別は兄弟ノードの上下

上下の区別って何?位置が知りたいのじゃなくて?

>孫ノードの区別になります

意味不明





721 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 03:03:38 ]
意訳) ちょっと図解しろよ

722 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 03:09:52 ]
>>720-721
んー書き方が悪いのかな
DragAndDropでノードを移動させたい
やりたいのはこれです

>>719のサンプルだと移動先が常に子ノードになるから目的にはそわない

www.devcomponents.com/dotnetbar/img/AdvTree2.png
この海外の有料コンポのようにDrop先の子ノードじゃなく兄弟ノードに移動させたい
ついでにいうとこのようにラインも引きたい

と言うような事をやりたいのです

723 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 04:19:33 ]
そのノードに子ノードがあるかどうかでで判断すればいいんじゃね?

724 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 04:41:10 ]
>>723
ユーザにはDrag先のノードの子にするか兄弟にするか選択させたいのです
兄弟のみ子のみなのであれば簡単に実装できるのですが
両方となると判定方法がよくわかりません

725 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 04:42:38 ]
- 間もなくVCが新種のDarkBASICに追い抜かれますが

確かにC言語の衰退は避けられない事実です。

- それはどうしてですか

趣味でC言語を体得しようとするプログラマがいないからでしょうね。

- 会社で使ってるのに趣味で使いたくない?

そうでしょうね。
そもそもC言語は生産効率向上には寄与しなかったと言う事実があります。
仕様書を噛み砕くだけの、馬耳東風な感覚では愛着が湧かないでしょう。

- 将来的にCプログラマは切り捨てられる?

すでに旧来のCプログラマは他の言語に移管してると思います。
職業的にもCでは使えない状況ですし。

- 加速するIT化に対応できないと言うことですか。

他の言語群がCを包括的に上回っています。

- BASIC言語の台頭の可能性はあると思いますか。

あるでしょうね。
言語仕様が簡素化されて生産効率が上がれば可能性はあると思います。

- かつてCはBASICより速い実行コードを生成すると自慢していましたが。

それは過去の幻想でしょうね。

726 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 05:40:40 ]
>>724
それってつまり、自分がどういうUIをデザインしたいか分からない
ってことでは?

727 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 06:53:46 ]
TreeViewの処理は難しいよ
C#でも簡単じゃない
その手の処理は海外のコントロールを使用した方が無難
TreeViewとGridのコントロールは金になるからね
ググっても出てこないのはその為

728 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 08:08:46 ]
うむ、自前フレームワークでTreeViewとGrid作ったがかなり手こずった。
リファクタも2,3回やってやっときれいでまともなものになったな。

729 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 10:44:52 ]
くれくれ

730 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 11:37:45 ]
>>722
CodeProjectでダウンロードできるぞ。



731 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 11:45:33 ]
>>726


>>727
なる程…
そう言った理由があるんですね…

>>730
たしかVBでかかれてるものですよね?
昨日、ダウンロードしてみましたが望みの物と違いました

732 名前:デフォルトの名無しさん [2009/10/09(金) 12:42:29 ]
C#で、自分でクラスをつくり、その中にスレッドを走らせます。
そのクラスのなかにイベントを作り、スレッドのなかからそのイベントを発生させるようにしました。
メインフォームからこのクラスのインスタンスを作り、メインフォームの中に、
イベントハンドラを書き、登録、そしれスレッドを走らせます。
このときスレッドのなかからイベントが起こり、メインフォームのイベントハンドラに
きて、スレッドで計算したものをメインフォームで表示させています。
このとき、イベントハンドラの処理が重くて、イベントハンドラ中の処理が終わる前に、
スレッドからまたイベントが起きた場合どうなるのでしょうか?
ハンドラの処理がおわっていなくてもスレッドがとまるとか、そういうことはありますか?
初歩的質問で申し訳ありませんが、よろしくご教授おねがいいたします。

733 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 12:48:48 ]
Control.Invoke/BeginInvokeしたりしない限り、
イベントハンドラが走るスレッドはイベントを起こしたスレッドと同じ。

734 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 12:52:07 ]
>>731
ttp://www.codeproject.com/KB/tree/treeviewadv.aspx

735 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 13:40:05 ]
>>734
おお!目的の物はこれだ〜
わざわざありがとうございます
助かりました

736 名前:デフォルトの名無しさん [2009/10/09(金) 15:21:33 ]
csc.exe をコマンドラインから使っています。
このとき、ライブラリパスを指定するオプションは何になりますか?(Javaの -classpath 相当です)
やりたいのはライブラリの検索パスにカレントディレクトリを追加することです。
csc /lib:. hello.cs を試したのですが、効果がなさそうでした。


737 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 15:26:16 ]
cscはデフォルトでカレントディレクトリのアセンブリも探す
つか肝心の参照アセンブリ未指定じゃんかそのコマンドライン

738 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 16:04:28 ]
自己レスです。
>>736
csc /r:FooBar.dll helo.cs
でいけました。おさわがせしました。
まあコマンドラインから使うほうが頭どうかしてると言われるとその通りなんですが。

739 名前:デフォルトの名無しさん [2009/10/09(金) 19:05:38 ]
>>733さん
ということは、そのスレッドがイベントを発生した場合、
そのイベントハンドラ中の処理がおわるまで、スレッドは進まないということですね・・・
勉強不測ですいません。ありがとうございます。

実はそのスレッドは、他アプリケーションが出すデータを取得しつづけていて、
あるデータが取得したときにイベントを起こしていたわけですが、
イベントハンドラの処理が重い場合、次のデータと取りこぼしてしまう可能性があるわけですねぇ・・

ということはスレッド内では目的のデータを取得したらQueにつめるとかして、
別スレッドでQueからみていたほうがいいのかな・・・


740 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 20:12:03 ]
一般にはキューを使うかな。
イベントを非同期で発行する方法もあるけど、
まあ止めといた方が無難だね。



741 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 20:24:31 ]
timerを使わず特定のプロセス開始を知ることは出来ませんか?


742 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:08:42 ]
なんでタイマーを使わないの?

743 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:13:21 ]
それより
timerを使って特定のプロセス開始を知る
というのがどういうことか理解できる人間はエスパーだと思うよ。

744 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:13:52 ]
そちらさんから俺様のプログラムに知らせるのが筋ってもんでしょう?

745 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:43:53 ]
>>743
10秒も待てば始まってるんじゃないの?ってことでは?

746 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 00:47:06 ]
>732
ぶっちゃけいうと、スレッドを使ったプログラムを作れる段階にいません。
もう少し精進してから本番に取りかからないと死ねます。

747 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 01:27:38 ]
>等の文字を>等に変換する関数はありませんか?

748 名前:747 mailto:sage [2009/10/10(土) 01:29:10 ]
変換されてしましました
&gt;を>に変換する関数を探してます


749 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 01:33:37 ]
えいちてぃーてぃーぴーゆーてぃりてぃ

750 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 01:37:05 ]
>>749
sannkusu



751 名前:デフォルトの名無しさん [2009/10/10(土) 06:36:43 ]
delphiからこしてきて不思議に思ったのですが
抽象クラスからしか抽象メソッドは作れないのでしょうか?
継承元Formで抽象メソッドを定義したいのですがコンパイラに怒られてしまいます

752 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 06:41:58 ]
>>751
隠蔽ならできるよ。

753 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 06:48:29 ]
>>752
隠蔽というとprivateかな?
以前の作り方として継承元Formを作って
それを継承したFormで実装し忘れ等を無くす為にabstractを使用してました
メソッドの定義を忘れるとコンパイラが教えてくれるので重宝していたのですが…

継承元のメソッドをvirtualで定義するとなると実装し忘れが防げないですよね…
かといって継承元Formを抽象化する事も出来ないし
うーむ…

754 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 06:58:50 ]
やりたいことが良く見えないけど。
継承元のフォームは単独でnew出来るようにしたい。
継承先のフォームでは特定のメソッドのoverrideを強制したい。
つうこと??

755 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:12:13 ]
>>754
> 継承先のフォームでは特定のメソッドのoverrideを強制したい。
そうです
ただ最初の”継承元のフォームは単独でnew出来るようにしたい。”はちょっと違います

上手く説明出来るかわかりませんがこのようにしたいのです

継承先のFormのコントロールのデータが更新されてれば
継承元のFormにあるbtnApply.Enabledを変更するようにします
継承元Form
    protected abstract bool isChangeData(); //これを必ず継承先で定義させたい
    protected void updateApplyButton(){
      btnApply.Enabled = isChangeData();
    }
継承先Form
    protected abstract bool isChangeData(){
      return (data1 != tbxData1.Text 〜)//データ更新の判定処理
    }

このやり方のメリットは不必要にコントロールをprotectedにしないくてもいい点
実装し忘れを防げる点
この2点です

しかしisChangeDataが抽象化出来ないのでvirtualで代用すると実装し忘れが防げませんし
btnApplyをprotectedにして継承先Formで触ると設計上変更に弱いのでそれはやめたいのです

756 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:14:31 ]
>>755の修正

継承先Form
×protected abstract bool isChangeData(){
○protected override bool isChangeData(){

757 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:17:59 ]
継承元クラスをabstractにすればabstactなメソッドを作れるはずだけど。
それを避けたい理由が分からない。

abstract public partial class Form2 : Form
{
 public abstract void Hoge();

758 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:21:00 ]
>>757
あら…、勘違いしてました
partialをアクセス識別子と思ってましたw

仰るとおり、クラスを抽象化して実装できました
ありがとうございます助かりました

759 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:26:31 ]
それするとデザイナが…


760 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 07:27:07 ]
>>757
デザイナが…

>>759
Yeswww
ビルドしたらなったwwww



761 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 09:52:46 ]
まあ「設計を見直せ」といえばそれまでだな
フォームに直接データの処理を書くのが間違い

762 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:07:29 ]
というかそもそも、.NET 的にはイベントハンドラーは継承&overrideじゃなくて、
デリゲートで Click += hoge でやるのが普通な気が。

763 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:19:19 ]
デリゲートの+=って使いにくい。

特にデリゲートを取り消すために-=使うのが面倒。

764 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:21:32 ]
-= は邪悪だと思うけどもなぁ、
取り消す場面ってそんなに多い?


765 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:25:40 ]
自分より寿命の長いオブジェクトに+=したら
使い終わったら-=しないかぎりメモリリークするよ

766 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:28:15 ]
寿命が違うケースがそんなに多い?、って話でしょ

767 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:30:04 ]
むしろ寿命の違わないケースがそんなにあるのか?


768 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:34:29 ]
フォーム間で共通のイベントのソースがある場合なんか。

フォーム閉じるときにデリゲート切らないとリソース開放できないし。

769 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:34:34 ]
デザイナで追加したLoadとかClickとかのイベントを
いちいち手動で解除してるの?

770 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:35:14 ]
>>761
>>755の処理ってFormのビューの部分だからデータ処理じゃなくね?
>>757みたいにしてエラー出なければベストだと思う



771 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:36:02 ]
コントロールの寿命はたいてい親と一致する(親に依存する)から放置して問題ない
でも自分より寿命の長いオブジェクトに登録することが全く無いかというとそういうわけでもない
そのときは必ず-=しないとメモリリーク

772 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:36:56 ]
>>768
フォーム間で共通のイベント?

773 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:41:00 ]
世の中のFlashアプリがメモリリークしまくりな理由がそれだからなぁ<イベントリスナーのremoveし忘れ。

-= を自動でしてもらう仕組みがあった方がいいのかな。
Reaction Framework ではどうなってるんだろう。

774 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:43:23 ]
まあstaticイベントとか使いまくったらメモリリークの温床になるだろうな
WPFには呼び出し対象への参照をWeakReferenceで保持することでGCの対象から外れないようにする
WeakEventパターンというのがある

775 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:44:22 ]
Shownイベントがなかった.net1.1のころは
Application.Idleで対応してたな。
あれは-=をこまめにしないといけなかったから面倒だった。
でもまあ、そういうケースは多くはないと思うけど。

776 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:47:41 ]
>>772
データソースへのバインディングとか

777 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 10:54:49 ]
>>776
なるほど、理解した
ん?ってことはここの人はみんな-=してんの?
WeakEventパターン使うにしてもコスト高くね?

778 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 11:08:43 ]
デリゲートでWeakReferenceを使えればいいんだけどな。

779 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 11:12:01 ]
おまえらの言ってる事が1%も理解出来ないのは俺だけでいい

780 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 11:30:14 ]
初心者なんだけど教えて!
MVCの理念でいくと
TextBox1.Text = "hoge";
TextBox2.Text = "foo";
TextBox3.Text = "bar";
ってどうやって実装するの?

dataはデータを保持するクラスとして
TextBox1.Text = data.hoge;
TextBox2.Text = data.foo;
TextBox3.Text = data.bar;
とFormに書いたら邪道なのかな?

間に何か挟むクラスを作らないと駄目?
ワケワカメ><



781 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 11:33:28 ]
AがBのイベントにイベントハンドラを登録するとBはAへの参照を持つことになる
だからBが生きてる限りはAはGCに回収されない
構造上自然で必要なことなんだけどしばしば問題になる

782 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 11:38:13 ]
baka

783 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 11:50:55 ]
>>780
バインディング使うのがいいんじゃね?

784 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 12:02:08 ]
WeakEventって考え方が最初から用意されてりゃ良かったんだがな。
まあそんな頻繁に困ることはないけど。


785 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 18:44:31 ]
ここには天才がいるときいてまいりました
早速質問なんですがソースありきのサードパーティ製のコントロールをdll参照無しに取り込む事は出来ますか?
配布時、単一(.Netの時点で単一はないけれど…)のexeで配布したいと思っています


786 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 18:50:24 ]
「取り込む」っていうのは俺様用語じゃないの?
それを理解しろというのは天才じゃなくエスパーマターでは

787 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 18:53:37 ]
>>785
書き直してみますた!

通常、サードパーティ製のコントロールはdllも配布しないと配布先でアプリが起動できない
でもdll配布したくないよー
サードパーティ製のコントロールのソースあるからプロジェクトに取り込んでdll配布無しでも行ける気がするぞ・・・
よし、ここで聞いてみよう

こうです・・・

788 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 18:55:50 ]
ソースあるんだったらプロジェクトにそのソースを全部突っ込めばいける
ライセンス違反にならないかどうかちゃんと確認しろよ

789 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 18:58:50 ]
>>788
おーさっそくやってみますだー
ありがとー

790 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:05:30 ]
あ、そだ、もう一つ
リソースにdllぶちこんで実行時にアプリフォルダに展開
エセ単一アプリ><って出来る?
起動すら出来ないからdllをリソースから取り出してアプリフォルダに置く事が出来ないっぽいけど・・・



791 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:08:04 ]
直接参照せずに動的ロードすればいい
設計に工夫が必要だけどできないことはないはず

792 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:10:06 ]
>>791
えーと、、つまりdll使用してるフォームを使う前にdllを取り出して動的参照するって事かのぉ
どうやるんだろ?
どっかにサンプルないかな?
あっしのヘタレ脳みそじゃどうググればいいのかワケワカメ・・・

793 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:11:06 ]
ILMerge使えばいいんじゃね?
おれは使ったことないからよくわかんないけど

794 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:13:31 ]
>>793
すごーーーーーーーーーい!!!!!!
チュウしたいぐらい感動した
これよこれ!
これならdll展開しなくてもよさそうじゃん!
やばい、かっこいい、惚れた><

795 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 20:00:30 ]
なんかライセンス違反してそうだな、この人w

796 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 20:46:54 ]
絶対にしてると思う。

797 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:14:51 ]
人間としてすでにライセンス違反

798 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:15:31 ]
つまんないよ

799 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:15:35 ]
例に海外のコントロールをあげただけで
実際に使っうのは自社のdllじゃーーーーー

配布の時、めんどくさいじゃん
頻繁にupdateするならdllで分けた方がいいけどそうじゃないし

つかいいすぎだろ、おまえらw
なんでdllをexeに取り込んだら人間失格みたいになるんだよw

800 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:16:49 ]
何がめんどくさいのか全く分からんから
VB6と違ってexeの隣に置くだけだし



801 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:17:57 ]
>>800
かっこわるいじゃん
dllはモジュール名ついてるし
それをばらばらーってexeのあるフォルダに100個も並べるとかキチガイでしょー

802 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:20:07 ]
おや? めんどくさい がいつの間にか かっこわるい に変わったぞ?

803 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:21:43 ]
>>802
マウスでびろろーんって選択して右クリックして圧縮を選ぶのがめんど、、、

いや、コマンドラインでやるから面倒じゃないんだけどね
なんていうか単にかっこわるいから単一で配布したいだけです、ハイ

804 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:24:11 ]
好きにしろ

805 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:26:04 ]
.NET出てきたときからSxSは言われ続けてますのでそんなもんです
GACにブチこんでもそんなもんです

806 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:26:31 ]
ILMergeでパックしたら自社ライブラリが外に漏れないっていう恩恵もあるんじゃね?

807 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:28:08 ]
>>806
別に無い
exeの参照だって可能だし

808 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:29:13 ]
ILMergeしてできたDLLをさらにILMergeってできるのかな?


809 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:30:17 ]
ILMergeした後にupxかませば少しは・・・

810 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:31:57 ]
>>809
upxも簡単に解凍できるはずがな



811 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:36:06 ]
バイナリ埋め込んでワケワカメになるよりだったら
ソースレベルで取り込んだ方がまし

812 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:37:37 ]
こいつの気持ちは分かるなぁ
単一で配布するのはなんか気持ちいいし
.NETにも静的リンクが欲しくなる

813 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:37:48 ]
ソースレベルで統合したらコンパイルが遅くなってデバッグに支障が出るような気もする

814 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:38:32 ]
実際ほとんど変わらないけどね

815 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:41:41 ]
納品先に納品物のexeに付随するアセンブリを勝手に再利用して販売してる人がいて
ちょっと困惑してるから笑えないな。

アイコンとかも勝手に再利用。
ああいう物にはコピーライトがないとでも思ってるのか

816 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:46:04 ]
どこにでもそういう奴はいるな
自アプリからしか使えないようにシリアル設定するとか
色んなパッカーの重ねがけぐらいしか防ぐ手立てがない
ハックしてまで使おうとは思わないだろうしな

817 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:46:27 ]
>>815
それは単に契約違反か契約がいい加減すぎたかのどっちかだろ

818 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:55:54 ]
>>817
まあそうなんだけど、中小企業同士だとお互いに面倒だからきっちり契約書かわすなんて
しないのが世の中の実態じゃない?

819 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:17:49 ]
タイマーって1000個ぐらい同時に使っても大丈夫?
もしかしてスレッドだからOSによっては制限かかってむりかな?

820 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:22:36 ]
なんという、もう罵倒してくださいといわんばかりの質問……



821 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:25:49 ]
せんこどころかまんこつかってもだいじょうぶ

822 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:25:59 ]
スレッドプールが使われるから大丈夫かもしれないけど気持ち悪すぎる
1000個も必要になる意味が分からない

823 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:27:03 ]
>>819
あなたは一体何を作ろうとしているんだ

824 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:28:15 ]
そっか!大丈夫なら安心した
Cのソースだけど
これd.hatena.ne.jp/kkkos/20090509/1241853767
みたいに使い回さないとだめなのかなーとか思ってました

>>823
えっと、各オブジェクト毎にタイマー持たせて定期的にイベントを起こそうかと…

825 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:32:54 ]
>>824
そのオブジェクトは何をするオブジェクトですか?

826 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:33:55 ]
使い回すべき
1000個もあるなら1000個がバラバラに動くわけじゃないだろ?

827 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:35:46 ]
>>825
えと、定期的にイベントを起こすオブジェクト…おや?

>>826
いわれてみればそうかも
たしかに使い回すのがいい気がしてきた

828 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:36:18 ]
もうさーバカにはタイマーとかスレッドとか使わすなよ。


829 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:36:38 ]
Timer1000個って今からなにがおこるんです?

830 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:38:08 ]
>>827
答えになってないよ…



831 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:39:56 ]
あんなに多くのオブジェクトがあるときは一つの管理用のオブジェクトを作って、
タイマー一個でそこから定期的に各オブジェクトを呼び出すのが普通だと思う。

832 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:42:47 ]
>>831
そんな気がしてきた
あやうく恐ろしい物を作る所だった…
ふぅ…

833 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:43:52 ]
どうせ内部じゃ広い意味でイベント一個でやってんだろ?どうでもいいじゃん

834 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 23:51:20 ]
インストーラーって物を知らんのか

835 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 00:18:40 ]
ILMerge は万能じゃないけどな
数十KBぐらいのものをくっつけるのは楽勝だけど
数百KBの、しかもいろんな参照もってるのをいくつもくっつけるのはたいへん
どうせスタートメニューに登録しなきゃらないしインストーラのほうが楽

836 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 00:46:09 ]
>>835の言いたいことがよく理解できんのは俺だけだろうか・・・

837 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 00:55:16 ]
んー?
835 じゃないが ILMerge は「やっちゃ駄目」な例外条件が
そこそこある。

量が多いとその辺していないか調べる量も増えるし、その
バグが発生して認識するまでも遅れるだろうから、835 の
いうことは分かるが。


838 名前:デフォルトの名無しさん [2009/10/11(日) 05:42:34 ]
みんなDotfuscator Professionalとか使ってる?


839 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 05:45:20 ]
>>838
オープンソースだから使う意味ない

840 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 05:48:14 ]
>838
つかった。他の難読化ツールも試したがさっくりいけたのはこれだけだった。



841 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 06:41:16 ]
pinvoke.NET(www.pinvoke.net/index.aspx)の中の各コードのライセンスってどうやって調べられますか?

842 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 06:58:43 ]
>>841
関数などの定義のことならおそらく自動的に作成されたものだから
ライセンスはかかっていない。

っていうか、かかってたらサイトの意味なくならね?

843 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 07:01:34 ]
>>842
あ、そういうものなんですか、じゃあパブリックドメインってことで自由に使えるんですね
どうもありがとうございます

844 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 11:16:30 ]
一応ライセンスはあるよ
左下のTerms of UseのSection4

845 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 12:30:09 ]
PInvokeでコピペできるようなコードの断片にまでライセンス主張されたら
コードなんかなーんにも書けなくなっちまうよw

846 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 13:11:47 ]
PInvoke、結構適当だから、きちんと自分で書き下ろした方がいいよ。

847 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 13:39:09 ]
>>844
あ、こんなところにあったんですね、どうもです
非商用ならって言っているからFlexWikiLicenseなコードを
一部利用してますみたいなことはちゃんと書いといたほうがよさそうですね
まあ自分の公開するようなものを商用に利用しようなんて人はいないでしょうけども。
↓のリンクが切れてるので詳しい内容がなんともですが・・・
www.flexwiki.com/default.aspx/FlexWiki/FlexWikiLicense.html

>>846
とりあえず動けばそれでいいのでよしとしてます

848 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 21:21:54 ]
書き下ろせとまでは言わんが、ちゃんとMSDN英語版の宣言は確認して正しく変換されてるかのチェックは必要だな

849 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 22:38:24 ]
宣言は既存のAPIを見て作成されたものだから「作品」になってないので、
著作権はかかってないはず。著作権がかかってない限りサイレンスなどは
無視してもいい。

850 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 23:18:42 ]
runasコマンドをc#上から呼ぶときに
パスワードを自動で入力したいのですが、
どのように実装したらよいでしょうか?

ユーザがパスワードを知らなくても
admin権限でインストールされたアプリケーションを
ログオンスクリプトで自動でアンインストールしたいのです。




851 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 23:23:22 ]
>>850
runasで経由しないで、Process.Start(ProcessStartInfo)で
実行したほうがいいんじゃない?
ProcessStartInfoを使えばユーザ名とパスワードは簡単に指定できる。

852 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 23:33:23 ]
ちょっと知識があるユーザなら即座に管理権限のパスワードがバレそうだな

853 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 23:51:21 ]
>>852
だな…

854 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 01:54:51 ]
ルナスってなに?

855 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 02:14:51 ]
C#のホットキーの実装方法を教えてください
ググったけど出来なくて・・・

856 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 02:16:21 ]
どういう意味?
キーイベント拾いたいだけ?

857 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 02:55:24 ]
別ウィンドウにフォーカスがある場合でも、
例えばF1キーが押された時などに特定の処理を呼びたいのですが
どうすればいいんでしょう?

858 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 03:02:30 ]
別ウィンドウも自アプリならできるがそうじゃないなら無理じゃないかな。

859 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 03:08:40 ]
デザイナでホットキーコンポーネントはりつけれ

860 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 03:35:58 ]
OSレベルのフックを使えばできるはず
.NETのライブラリでかじゃ無理な気がする



861 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 04:51:50 ]
簡単なキーフックとかならできるらしい

862 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 06:14:58 ]
Win32APIを呼べばなんだってできるけど、C#だとコードが汚くなるんだよなあ。

863 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 08:25:38 ]
そんなの、キーフックする部分だけカプセル化すればいいんだから好きにすればヨロし


864 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 10:16:40 ]
クラスの参照ってどうやって宣言したらいい?

やりたいことは
<クラス参照用の型> RefMyClass;
RefMyClass = MyClass; //こんな感じでclassその物を入れたい
MyClass = new RefMyClass();

こんな事って出来るのかな?

865 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 10:19:33 ]
Type 型で宣言しておいて、Activator.CreateInstance() かね。

866 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 10:19:34 ]
>>864
実行時に型を切り替えたいって言うんならそれは無理。
素直に Factory パターンとか使って。

コンパイル時にクラス名にエイリアス付けたいだけなら、
using RefMyClass = MyClass;


867 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 10:32:49 ]
>>865
今からヘルプみてみます

>>866
Factoryパターンって実体生成の委譲だったっけ?

んと親クラスで子のクラスを知りたくて参照あれば便利だなと思いました
というのもオブジェクトのデシリアライズで型のキャストが必要で
これを親に任せて子は自分のクラスを親に通知と言うような事がしたかったんです

//MyOwnerClass
protected abstruct MyClass RefMyClass();
public void LoadMyClass() {
//省略
(RefMyClass)serializer.Deserialize(fs)//こんな感じでキャストしたい
}
//MyChildClass
protected override RefMyClass(){
return MyChildClass; //ここで自分のクラスを親に通知
}

868 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 10:49:26 ]
それはジェネリックでやることじゃねーかなー

869 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 10:55:58 ]
>>868
ジェネリックで出来るのかな?
ジェネリックのイメージとしては型の明示的な宣言、だから使う方はキャストしなくていいよぐらいにしか思ってなかったり…
うーん、ちなみにこの場合はどのようにかけばいいのでしょう?

クラス参照が出来ないとなると
子のオブジェクト全てにpublic void LoadMyClass()を実装しないといけなくなるのでちょっとアレかなぁなんて思ってます
代替案があれば知りたいです…

870 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 10:56:34 ]
いや、親クラス側に手動で登録用コード書くか、
どうしても自分でコード書きたくないならリフレクション使うのがいいんじゃないかなぁ。




871 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 11:06:03 ]
>>870
>いや、親クラス側に手動で登録用コード書くか、
親クラスでこうすると言う事ですか?
public void LoadMyClass() {
  if (this is MyChildClass) {
    (MyChildClass)serializer.Deserialize(fs)
  } else if {this is MyChildClass2} {
    (MyChildClass2)serializer.Deserialize(fs)
 }
}

すみません
もう少し詳しくお願いします

872 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 11:07:33 ]
>>871
まあ、そんなの。
あんまりお勧めしないけど。
リフレクション使えば?

873 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 11:11:51 ]
>>872
んーこれだと継承されるたびに親を弄らないといけなくなりますね…
付け忘れてもコンパイラは教えてくれないしちょっと困るかなぁ

リフレクション読んでみました
これでどうやって実装すればいいのでしょう?
ざっと読んでクラスに動的にメソッドを付け加えると理解しました
でもこの理解じゃどう打破するかイメージがわかないです…

874 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 11:18:35 ]
デシリアライズ用のメソッドを持つインターフェイスを用意して、
その実装クラスを引数にすればいいんじゃね?

875 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 11:23:42 ]
>>874
どういう事でしょう?
ちょっとイメージが沸かないです…

876 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 11:26:23 ]
子クラスはstaticでもない自分自身をロードするメソッドを持つの?
なんかそもそもが変に感じるんだが

877 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 11:30:48 ]
>>876
どこがおかしいのでしょう?
シリアライズ/デシリアライズを親にまかせて
子はそれに必要な情報(この場合はクラス)を教えるだけという設計イメージが変ですか?

878 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 11:36:27 ]
>>877
シリアライズの方は簡単なんだけどねぇ。
[Serializable] public class Shape
{
public void Save(Stream stream)
{
var type = this.GetType();
var xs = new XmlSerializer(type);
xs.Serialize(stream, this);
}
}

public class Circle : Shape
{
public double CenterX, CenterY, Radius;
}

デシリアライズ時、型の判定は誰がやるの?


879 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 11:48:13 ]
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

2ちゃんねるの有志の皆様へ

ただいまVIPのみんなで例のサイバーテロ集団の本拠地VANKに攻撃をしかける作戦を立てています

VANKとは大韓民国の非政府組織で竹島や日本海を「独島」「東海」などと変更しようとしている基地外団体です。

ただいま人数不足です

下記日時に間に合うように準備し、作戦に参加してくれたら幸いです

作戦決行日時:10月12日正午

→【yutori7.2ch.net/test/read.cgi/news4vip/1255301899/
まとめwiki(要編集)www20.atwiki.jp/vipvsvank/pages/1.html

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

880 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 12:28:14 ]
なんでテシリアライズでキャストが要るわけ?
キャストしてどう使おうとしてるの?
登録?用メソッドをジェネリックメソッドとして用意すりゃキャスト自体は出来るけど、
それで何がしたいのかさっぱり分からん。




881 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 12:34:22 ]
リフレクション一択だろ
どこでどう足掻いてもリフレクションが出てくると思う

882 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 12:42:27 ]
CRTP

883 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 12:53:17 ]
CRTP(笑)で派生クラスの型にキャストはできるがキャストしたところで何の意味もない
デシリアライズするときキャストした型でオブジェクトの型が決まると勘違いしてない?

884 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:00:15 ]
CRTPって何じゃらほい?


885 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:04:23 ]
ググレカス
検索結果
CRTP(Curiously Reccursive Template Pattern)

886 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:04:24 ]
class MyClass : MyBase<MyClass>
こういうの
基底クラスの型が分かれてしまうのでもう一段上に基底クラスが必要になったりして無駄に複雑になる

887 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:05:24 ]
質問です。
キャストは重い処理だとよく言われるんですが、
あるインターフェイスを実装したクラスをインターフェイスに暗黙キャストするのと、
オブジェクトやインターフェイスや基底クラス型の参照を実体の型にダウンキャストするのと
どっちが遅いんでしょう?

キャストは重いと言いつつ、インターフェイスや基底クラスへの暗黙キャストは
気にせず使ってるみたいです。


888 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:07:11 ]
試せよ。

889 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:08:15 ]
ダウンキャストの方が高速ですた。


890 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:08:50 ]
参照型→参照型のキャストはほぼノーコスト
値型→参照型や参照型→値型は重い



891 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:10:08 ]
また微妙にずれた話を…


892 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:10:56 ]
>>890
間違ってるぜそれ。


893 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:11:28 ]
小粒でピリリと辛い

894 名前:890 mailto:sage [2009/10/12(月) 13:13:28 ]
すまん
参照型間のキャストがが大きくパフォーマンスに影響するような状況なんて普通は考えられない
という意味に取ってくれ

895 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:15:31 ]
ちょっと外出してました

>>878
そうなんですよね
シリアライズは簡単に出来るんです
ただデシリアライズに型が必要なので(受け取ったデータを自分自信に流し込む為)クラス参照を使おうと思ったんですがそれにあうものがなくて…
型の判定は>>867のようにクラス参照でまかなおうと思ったわけです

>>880
デシリアライズに限らず単純に親に子の型を知らせたいのです
これが出来ればキャストが必要な実装を親が持つ事が出来るので汎用性が高まるというわけなんですが…

>>881
そのリフレクションで親に子の型をどう知らせるのかがよくわからないのです


896 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:15:31 ]
参照型→値型は参照型のダウンキャストと同等、最も高速
参照型→基底やインターフェイスはやや遅、特にインターフェイスは結構遅いこともあり
値型→参照型はボクシングなのでさらにプラスで遅い

こんなとこかな?



897 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:18:07 ]
一体どんなやり方でデシリアライズしようとしてんだ?


898 名前:890 mailto:sage [2009/10/12(月) 13:18:14 ]
参照型→値型は型変換がオーバーロードされていない限りありえないから問題外

899 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:20:24 ]
ボックス解除の話だろどう考えても

900 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:20:57 ]
>>897
dobon.net/vb/dotnet/file/xmlserializer.html
ここのやり方とほぼ同じです




901 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:23:36 ]
デシリアライズに型はいらん
デシリアライズした時点で実際の型は決まってる
少なくともRefMyClassの派生クラスであることが分かっているんだったらRefMyClassにキャストすれば十分

902 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:25:15 ]
>>901
それを親で子の型判定をすると>>871のようにどうしようもないコードになるわけなんですね…


903 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:28:25 ]
デシリアライズしたものはobjectのままあつかったらいいんでないかい。
キャストも要らんし。

904 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:28:55 ]
だからね、キャストするのはその型でその場で何かするためなのさ。
その型で何かする必要ないならキャストなんて必要ない。


905 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:31:01 ]
暗黙のアップキャストは低速。
明示的なダウンキャストは高速。

なんとも直感的でない動作。


906 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:34:24 ]
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

2ちゃんねるの有志の皆様へ

ただいまVIPで例のサイバーテロ集団の本拠地VANKに攻撃をしかける作戦を立てています

ただいま人数不足、不利な戦況となっております。

また、技術者部門の方も募集していますので、是非よろしくお願いします。

下記日時に間に合うように準備し、作戦に参加してくれたら幸いです

作戦決行日時:10月12日 18時00分

現行スレ→【yutori7.2ch.net/test/read.cgi/news4vip/1255316576/
まとめwiki(要編集)www20.atwiki.jp/vipvsvank/pages/1.html

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■


907 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:36:01 ]
ダウンキャストが高速なのは型に互換があることが自明だからで、
コンパイル時に互換性の確認は済んでるから実際には何もしない。
アップキャストの場合は互換性の確認が実行時に行われる。

908 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:37:29 ]
何を言ってるの?
どう考えても逆だろ。

909 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:37:52 ]
その理屈なら逆だろ
ボックス化が絡む場合にダウンキャストの方が速いのは,アップキャストはヒープ確保が入るから

910 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:42:12 ]
ボックス化と関係ない参照型でもアップキャストの方が遅いってのがちょっと不思議な動作なわけ。




911 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:45:16 ]
>>907だがすまん、アップダウン逆にしてた。
アップキャストが派生クラスから基底クラスだね。



912 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:47:46 ]
多分.NETではベリファイアでの検証が絶対ではないために、
どっちにしても実行時にチェックが必要だからだろう。

実体の型そのものとのチェックは比較一発だが、基底クラスだと順に遡ったり、
インターフェイスだとインターフェイスマップとの照合が必要だから。


913 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:49:38 ]
ソースにパスワード認証を組み込む場合
if (textbox1.text == "passwd")
messagebox.show("ok");
else
application.exit

とかだと慣れてる人だとパスワード分かっちゃうのかな?

914 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:51:40 ]
試しに自分で書いてReflectorでも使ってみればいいじゃない

915 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:51:47 ]
測ってみたけど参照型間はアップキャストの方がちょっと速かった

916 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:52:29 ]
ソースに組み込んだりしないんだよ普通は。


917 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:54:45 ]
class Foo {}
class Bar : Foo {}

Foo f = (Foo) new Bar();
object o = (object) f;
Bar b = (Bar) o;

  IL_0000:  newobj     instance void Bar::.ctor()
  IL_0005:  stloc.0
  IL_0006:  ldloc.0
  IL_0007:  stloc.1
  IL_0008:  ldloc.1
  IL_0009:  castclass  Bar
  IL_000e:  pop

アップキャストも明示的にキャストを入れてみたが、
castclass が呼ばれるのはダウンキャストの場合だけだった。

918 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:55:32 ]
>>916
他にどんな方法が・・・?

919 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:57:00 ]
>>918
ハッシュで持つとかどう?

920 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:57:33 ]
>>915
ホントに?
俺が計った時はアップキャストのが遅かったぜ?
念のため、ダウンキャストはオブジェクトの実体の型へのキャストな。

インターフェイスへのキャストは更に遅かった。
まあそんな大差は無いけどな。
クラス階層やインターフェイスの実装数が多いと差が開きそうだった。
まあ当たり前だが。




921 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 13:59:01 ]
>>917
うぬう、何か条件が違ったかな?
ちょっといま試せる環境にいないんだよね…


922 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:00:11 ]
>>919
ildasmでパスワードを検証してる部分を消してilasmでコンパイルし直せばいいじゃん

923 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:01:52 ]
そもそも何のためのパスワード?
誰のためのパスワード?

924 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:03:57 ]
まあ破る奴はどうやったって破るからな
技術的な手段を講じてもあんまり意味がない

925 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:04:02 ]
ライセンスとかだとあんまりいい方法はないぜ?
アプリ実行に必須のデータを暗号化して持たせて
パスワードで解除するとかな。


926 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:05:50 ]
起動時に、パスワードが合えばソフトウェアを使用出来るようにしたいのです
本格的にやるのならばPCの固有番号をネットワークアクティベーションとかにするのでしょうけど、
もう少し簡単に、後々変更できなくてもいい代わりにプログラムを覗かれて、
パスワード認証を回避されないようにするにはどうすればいいか・・・と考えてました。

927 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:08:54 ]
Dotfuscator Proとか使えばいいじゃん
80万程度でお手軽に隠蔽出来るよ
リバエン防がないでパスワード隠蔽もなにもないでしょ

928 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:09:00 ]
dllをリソースに暗号化して埋め込んで、
パスワードで解除してからバイトでロード。
まあ簡単には出来ないよ。


929 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:09:47 ]
難読化されたところでパスワードを認証してる所を見つけるだけならそんなに難しくない

930 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:10:44 ]
そのソフトにどのくらいの価値があるかによるよね。
スキルのある人間から防御したいなら、
ロードモジュールがユーザーから覗けたり改変できる限り無理だし、
ど素人のちょっとしたいたずら除けにならちょっとした仕掛けで大丈夫かもしれない。



931 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:11:21 ]
だからね、パスワードを隠蔽するって方向では根本的にはダメなんだ。
実行に必須の何かをパスワードがないと復元不可能にしないとね。


932 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:22:15 ]
>>931
パスワード間違えたときの動作が未定義でいいなら確かに有効だね。

933 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:23:54 ]
Webアプリ作ればいいじゃん
不正アクセスも見つけやすいし
対処しやすいし

934 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:31:40 ]
>>932
チェックは、暗号化したデータの中にパスワードを埋め込むとか、まあいろんな方法で組み込める。

これはあくまでパスワードが間違ってた時にエラーで止めるためだけの目的ね。
このチェックは別に不正に抜けられても困らないから。


935 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:35:11 ]
うーむ
言い出しっぺがスキル不足で話について行けない
Dotfuscator Pro・・・良いですけど高いですな・・・
20万くらいまでならこれだけの為にでも投資したんですが;

936 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:35:13 ]
.Netアプリをネイティブにするツールってどこかにあったよな?
あれって何て名前だっけ?

937 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:38:52 ]
>>918
暗号化してconfigファイル

938 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:46:01 ]
>>934
いやパスワードなりCRCなりをチェックするにしても
偶然一致してしまう可能性を否定できないわけで。
まぁそのくらいで訴訟起こす人は日本には居ないだろうけど。

939 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:48:57 ]
パスワード付きでzip作って埋め込んで
入力されたパスワードでzip解答できたら有効にする、とか

940 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:49:30 ]
話ぶった切ってすまない
昨日ホットキーの登録について聞いたものなんだが、
using System.Runtime.InteropServices ; // for DllImport
[DllImport("user32.dll")]
extern static int RegisterHotKey(IntPtr HWnd, int ID, int MOD_KEY, int KEY); // return : error = 0
[DllImport("user32.dll")]
extern static int UnregisterHotKey(IntPtr HWnd, int ID) ; // return : error = 0

private void Form1_Load(object sender, System.EventArgs e)
// Regist Hotkey, ALT+A
RegisterHotKey(this.Handle, HOTKEY_ID, MOD_ALT, (int)Keys.A) ;

private void Form1_Closed(object sender, System.EventArgs e)
UnregisterHotKey(this.Handle, HOTKEY_ID) ; // UnRegist Hotkey,

protected override void WndProc(ref Message m)
base.WndProc(ref m) ;
if (m.Msg == WM_HOTKEY)
{
if ((int)m.WParam == HOTKEY_ID)
{
MessageBox.Show("Press Hotkey");
}
}
こうすれば、Alt+Aキーを押したときにメッセージ出るんだが、
例えば、Aキーのみを押したときにメッセージを出すようにするにはどうすればいいのか分かる人居ません?





941 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:51:11 ]
ローレベルフック使え。

942 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:51:35 ]
暗号化したデータにハッシュを追加するとかの方法で十分。
パスワードそのものでもまあいいけど、パスワードのハッシュのがまだいいかな。
偶然の一致なんて考える必要はない。


943 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 14:55:21 ]
今時少なくとも128ビット以上のハッシュが簡単に使えるんだから、
偶然の一致など確率的に無視できる。
デジタル署名とかと同レベルの信頼性なんだぜ?


944 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 15:41:34 ]
アメリカなんかだと被害の事例がなくてもその可能性があるというだけで訴訟起こされるからね。
実際どうなるかはわからないけど怖いから避けたいというのが各社共通の認識かと。

945 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 15:45:04 ]
1 / 2^128 の可能性でも「可能性がある」なんてことを認めてたら、
現代社会に信用できるものなんてなくなるんだが。

946 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 15:46:03 ]
940です
>>941さんの言ってる事が分からないのですが、
参考になるサイトとか有りませんでしょうか・・・><;

947 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 15:52:29 ]
>>946
msdn.microsoft.com/en-us/library/ms644985(VS.85).aspx

948 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 15:57:27 ]
銀行の暗証番号でさえ4けた14ビット以下だってのに何言ってんだか。
何も信用出来ないよ。
128ビットだって最低ラインで512ビットまで用意されてるし。
プログラムにバグがある可能性の方がはるかに高いわ。

949 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 16:03:27 ]
パスワードなんかより明日道歩いてたら上から植木鉢が落ちてきて
頭に当たって死ぬ可能性を心配するべきだな

950 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 16:10:38 ]
ちなみに今現在というか今後を含めて政府レベルで推奨されてる安全性がだいたい128ビットだな。
これはもちろん攻撃を受ける前提の話だが。




951 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 16:12:57 ]
多分隕石の直撃うけて死ぬ可能性の方が高い。


952 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 16:16:59 ]
水を掛けるようなことをいって申し訳ないが、
なんか質問者の意図をそっちのけして回答者同士で勝手に熱くなってない?w

953 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 16:18:11 ]
お前の暗号化で地球がヤバイ

954 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 16:18:12 ]
何か問題が?

955 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 16:19:27 ]
だが、それがいい。

956 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 18:10:42 ]
シンイチ、それより交通事故に気をつけろ

957 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:07:52 ]
ここまでSecuceStringの話しがないとか

958 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:19:05 ]
SecuceStringの話はどうがんばってもでてこないと思うよ

959 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 20:32:50 ]
どういう読み方だそれ。せくーすすとりんぐ?

960 名前:957 mailto:sage [2009/10/12(月) 20:35:17 ]
SecureStringだぜごめんね



961 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 21:06:14 ]
セキュリストリング



962 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 21:06:35 ]
>>893
山椒でんがな

963 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 23:06:43 ]
C#やり始めたんだけどメーリングリストとかある?
あとどこのコミュニティがおすすめ?
ここ以外でお願いします

964 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 23:21:05 ]
MSDNフォーラム
非公式でそこそこ人がいるのはわんくまくらいしか知らないけどVB系で質問者も回答者もレベルは高くない

965 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 00:32:18 ]
いやいや「わんくま」は幼稚園みたいな名前と雰囲気は好きになれんけど、
公平にいってそんなに低レベルってことはないでしょ。

966 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 00:36:05 ]
というか回答者がMSDNフォーラムと大体同じなので

967 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 00:47:07 ]
MVPいるしな。


968 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 01:13:13 ]
MVPとかどうでもいい
本当の本当に上手いプログラマはMVPなんかとらない。
時間の無駄なのさ。

969 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 01:28:01 ]
とれない無能プログラマに限ってそういうんだよな。
MVPの価値を下げてもおまえの価値はあがらねーっつうのw

970 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 01:29:18 ]
本物のプログラマはそもそも質問掲示板で回答なんかしない。
時間の無駄なんだよ。



971 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 01:31:51 ]
偽者プログラマは黙ってろや

972 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 02:39:18 ]
世の中偽者のプログラマだけが本物のプログラムをコーディングしてるんだ

973 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 03:58:24 ]
で、ここのプログラマはレベル高いわけ?
質問に対してパパッと適切にソース書いてる人間見た事無いけど

974 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 04:03:32 ]
レベルが高いのとすぐにソースを書くのって別に関係ないじゃん

975 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 04:04:46 ]
レベル高かったら名を名乗って答える罠
2ちゃんにまともな回答を求める奴が間違い

976 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 04:51:54 ]
この思いはソースでしか形にできないの・・・

977 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 07:41:30 ]
君の質問の答えは僕が作るプログラムの中で答えようと思う(´・ω・`)

978 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 07:57:33 ]
時間の無駄とか言ってる暇があったら
さっと回答しちゃった方が速いのが本物のプログラマ

979 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 08:02:48 ]
どこでもたいていは調べたらすぐわかる話題ばっかりだからここも含めてそんなに変わらん

980 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 08:17:29 ]
サクっとコードで即答できるレベルの質問をここですんな。
そんなの検索エンジンに訊いた方が断然速い。
ここは人間に相談する場所だぞ。



981 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 08:26:30 ]
検索エンジンの達人の方、代わりに検索してください

982 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 09:10:43 ]
サクッとコードで即答出来ないのは面倒だからとコードかかないくせにw


983 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 12:51:48 ]


























うんこ

984 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 20:06:44 ]
次から名前は名前欄に書いてねうんこさん

985 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 02:22:12 ]
すまそ

ImageButton objButton = new ImageButton();
objButton.ImageUrl = "img/test.gif";
objButton.Attributes["onmouseout"] = "src='img/test.gif'";
objButton.Attributes["onmouseover"] = "src='img/test2.gif'";

この ImageButton オブジェクトを Table に動的に配置したら、OnMouseOver がきくことはきくんだが、
なぜか最初にマウスを持っていった時に、ステータスバーに"localhost に接続しています"と出て、若干時間がかかる。

これって最初にサーバーに test2.gif を取りに行ってるってこと??
test.gif は ImageUrl プロパティで指定してるから最初に取りに行くけど、これと同じタイミングで取りに行かせる方法はないかな〜?
もしお門違いな質問してたらスマソ

986 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 02:27:09 ]
>>985
こういうマウスオーバーエフェクトはCSSでやるべき。
複数の画像を一つのファイルに組んで、background-positionで
切り替えるのは一番いい方法だと思う。

例えばこんなふうに
jsajax.com/CSSSpritesArticle951.aspx

987 名前:デフォルトの名無しさん [2009/10/14(水) 04:31:35 ]
App.config に配列を保存する時の方法として
適当な区切り文字を入れてsplit でばらしてるんですが

XMLで推奨されてる標準の手順はありますか?
区切り文字をいちいち設定せずにできたら楽なので
もし知ってる方おられましたら教えてください。

988 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 07:10:03 ]
本当に配列が必要?
配列の要素一つ一つに意味があるならそれぞれ設定項目にした方がいいと思う
本当に必要なら987の方法でもいいんじゃね

989 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 07:52:42 ]
OfType<T> すげえええ
TにCOMインタフェースを指定しても期待通りに動く

990 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 09:13:30 ]
>>987
要素がXMLシリアライズ可能な配列はデフォルトでXMLシリアライズできるはずだが……



991 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 12:16:41 ]
型を選択するコンボボックスの中に一個だけ長い名前の混じってるじゃん?

992 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 14:05:22 ]
文字列だけだろ

993 名前:デフォルトの名無しさん [2009/10/14(水) 17:23:29 ]
ArrayList.Add でリストの最後ではなく
リストの最初に追加するにはどうすれば良いですか?

994 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 17:28:58 ]
Insert

995 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 20:20:40 ]
関係ないけど今更ArrayListなんか使うな

996 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 20:21:48 ]
関係ないね

997 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 20:40:21 ]
ArrayListの代わりってなに?

998 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 20:44:16 ]
998 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

999 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 20:46:48 ]
-2

1000 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 20:47:19 ]
List<T>



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






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

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

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