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

このエントリーをはてなブックマークに追加
11000
前スレ1000の俺です。
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

前スレ: ふらっとC♯, C#(初心者用) Part17
http://pc11.2ch.net/test/read.cgi/tech/1182948981/
前前スレ: ふらっとC♯, C#(初心者用) Part16
http://pc11.2ch.net/test/read.cgi/tech/1179313212/

(,,゜Д゜)∩先生助けてくださいです! 
....世の中には貴方の助けを必要としている人がいるぽ....
2デフォルトの名無しさん:2007/08/08(水) 14:31:58
     ,、‐;;;;;;;;;ヽ、
    /:::::;;-‐-、:::ヽ             _,,,,,,,_
     l::::::l  _,,、-‐"iiiiiillllllllllliiー-、__ゞ:::::::::::`ヽ,
    ヽ::`/: : : : iiiiiilllll||llllliiiiii : : ヽイ〜`ヽ::::::i
      /;,..-‐、: : : : : l|l: : : : : : : : : : : : : \ ノ::::}
     /: /: : : : :`.: : : : : : : : :/´ ̄\ : : : : : ヽ:::ノ
     !: : : :iflllli、: : : : : : : : : : : : : : : :ヽ: : : : : :.!
    |: : : :llllf l: : : : : : : : : : :.iflllli、: : : : : <iiii|
    |: : : :|llll |: : : : : : : : : : .llllf l: : : : : : : : :.|
    |: : : :.!lllll!' : : : : : : : : : : |llll |: : : : : : : : :i
   /: : : : :    ▼    : : .!lllll!' : : : : : : : :.i  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   |: : :"      |      : : : : : : : :.<iii/  | 
   l   / ゞ、__,. -ーヘ、  . :.:〃:: : : ヲ,イ   <  C#厨はクズ。以上。
    ゙i  i   __      `i. :.:. :ノ:: : し'´ ::|   | 
    ゙i  ``''ー==='''^ . ! :.:.:.:i: :: : |: : : :|    \_____________
      l    ー‐-´ ..  . . :.::,': :: :: |: /|\
     l i    "''    : :../::/: :: :/  ,イ::::::\
     `、j       . :.::./:://  ,.'´/::::::::::::::\
  _, .イ¨|ヽ、   . . :.:::_ィ‐'´ ,. '´ _,/:::::::::::::::::::/`ー-、_
‐ ´:::::::::/:::::|\ハー一イ´_,.‐'´ ,.‐'´/:::::::::::::::::::/:::::::::::::::::
31000:2007/08/08(水) 14:34:15
MSDN Visual C# Express Edition フォーラム
http://forums.microsoft.com/msdn-ja/ShowForum.aspx?ForumID=187&SiteID=7
Visual Studio ユーザーグループ
http://vsug.jp/

@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html

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


C/C++に関する質問はやさしい人がいっぱいいる下記のスレへ
【初心者歓迎】C/C++室 Ver.41【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1186410368/l50
4前スレ912:2007/08/08(水) 14:46:16
前スレ912です。

if (int.Parse(listBox1.Items[e.Index].ToString()) == 値1)
を試してみましたが

入力文字列の形式が正しくありません。

とエラーが出てしまいました。
5デフォルトの名無しさん:2007/08/08(水) 15:03:23
int.TryParse
6前スレ912:2007/08/08(水) 15:15:16
'int' に 'TryParse' の定義がありません。といわれました・・・
7デフォルトの名無しさん:2007/08/08(水) 15:34:25
.Net1.1か?
8前スレ912:2007/08/08(水) 15:39:17
1.1です・・・
9デフォルトの名無しさん:2007/08/08(水) 15:51:12
だったらint.Parseはtry...catchの中で使う
10前スレ912:2007/08/08(水) 15:56:29
try
{

if(int.Parse(listBox1.Items[e.Index].ToString()) == A1)
{
myBrush = Brushes.Red;
}
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(),e.Font,myBrush,e.Bounds,StringFormat.GenericDefault);

e.DrawFocusRectangle();
}
catch
{
}

こんな形であってますでしょうか?
11デフォルトの名無しさん:2007/08/08(水) 17:45:59
つーかintにキャストでいけるんじゃね
12デフォルトの名無しさん:2007/08/08(水) 19:09:16
高収入のアルバイト。チャットレディ。
自宅にいながらかなり高額の報酬が得られます。
副業としては最高のアルバイトだと思います。
私も現役チャットレディで月に10万以上稼いでます。
下記のサイトを参考にしてください。
http://www2.atpages.jp/nicl1216
13デフォルトの名無しさん:2007/08/08(水) 19:54:28
>>4
そういう場合は
listBox1.Items[e.Index].ToString()の結果をどこかに表示したりして原因を考えるもんだよ。

プログラマが考えることを放棄してはいけない。
14デフォルトの名無しさん:2007/08/08(水) 20:21:39
マイクロソフトのペイントに、SendMessageで値を送りたいのですが、
どうすればいいでしょうか?

(メニュー)色→色の編集で出てくるダイアログで、色の作成ボタンを押したときに、
右側に出てくるRGUに値を送りたいです。

分からないことはFindWindowEXに入れる値?
MSのメモ帳なら、
hWnd = FindWindowEx(hWnd, 0, "Edit", null);
のEditの部分

とSendMessageの値
メモ帳なら
SendMessage((System.IntPtr)hWnd, 0x000C, 0, msg);
に入れる値です。

メモ帳は↑で文字列を送れるのですが、ダイアログに送る方法がいまいち
分からなくて・・お願い致します。
15デフォルトの名無しさん:2007/08/08(水) 20:25:47
そこまで到達するのに一苦労じゃないか。

spy++つかえ
16デフォルトの名無しさん:2007/08/08(水) 22:13:08
>>15
すげーーーーーーーーーーー!
Spy++って使ったことなかったので・・
クラス名とか分かるんですね。
やってみます。ありがとうございました。
1714:2007/08/09(木) 01:24:41
ありがとうございました。後半は一応できました。
http://yokohama.cool.ne.jp/chokuto/urawaza/message/
ここがとても参考になりました。

でも、「色の編集」ダイアログを開く方法が分かりません・・・
ヒントを頂けると嬉しいです。
18デフォルトの名無しさん:2007/08/09(木) 09:28:15
オートメーションに無いかなあ
色の編集ダイアログを出すだけならメニューのID送ればいいべ
19前スレ912:2007/08/09(木) 09:40:30
>>13

メッセージボックスなどにも表示させてみましたが、「System.Data.DataRowView」
と表示されるだけで・・・とりあえず、表示をちゃんとしないとだめですかね。
20前スレ912:2007/08/09(木) 10:36:11
とりあえず、ListBoxの中の表示は直せました。

あとはどうやって、色を変えればいいかな・・・
21デフォルトの名無しさん:2007/08/09(木) 10:48:36
>>20
表示させるんじゃなくて、ブレークポイント設定してクイックウォッチで
中身が何なのか確かめろよ
22前スレ912:2007/08/09(木) 10:57:26
中身はTextで見た場合、表示のまま、Items[e.Index]を見た場合は
インデックス番号が取得できました。
23デフォルトの名無しさん:2007/08/09(木) 11:03:08
だったらその表示のままの部分と値1を比較してブラシをかえればいいべ
24デフォルトの名無しさん:2007/08/09(木) 14:08:12
コンストラクタで初期化して、以降は変更しないフィールドはreadonlyを付けた方がいいの?
25デフォルトの名無しさん:2007/08/09(木) 14:30:52
openFileDialogで選択したファイルのパスを、テキストでファイルに書き込みしたいのですが、書き込めません。
パスは正しく取得できています。
openFileDialogをどうしても使いたいのでよろしくおねがいします。


//openFileDialogで選択したファイルのパスをテキストでファイルに書き込む
private void button1_Click(object sender, System.EventArgs e)
{
string text;
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
text = openFileDialog1.FileName;

//ここでtextをファイルに書き込む

}
}
26デフォルトの名無しさん:2007/08/09(木) 14:34:39
いや、書き込むとこのコードが無いと、どこが間違ってるのか指摘できないよ
27デフォルトの名無しさん:2007/08/09(木) 14:52:23
・OpenFileDialogでパスを取得
・そのパスをファイルに書き込む
これらは互いに全く関係ないから落ち着いて分けて考えろ
28デフォルトの名無しさん:2007/08/09(木) 15:29:07
クリスタルレポートを使ってるんだが、レポートの印刷を押したときに
イベントを発生させるようにしたいんだが、どうすればいいかな?
29デフォルトの名無しさん:2007/08/09(木) 16:30:55
>>26
そんなのないんだろ
30デフォルトの名無しさん:2007/08/09(木) 16:32:07
>>29
それじゃあ書き込めないわな
3125:2007/08/09(木) 16:49:52
>26
>27

すいませんでした。

ちゃんと書き込めていました。
自分が意図したところにファイルが無かったので、質問しましたが、OpenFileDialogで開いたフォルダにファイルがありました。
書き込みのところで、相対パスを使ったのが問題でした。
以後気をつけます。
32デフォルトの名無しさん:2007/08/09(木) 17:02:42
OpenFileDialogはカレントディレクトリも変わるからなあ
33デフォルトの名無しさん:2007/08/09(木) 18:19:32
ところで単に興味で聞くんだが、
なんでファイルに書き込むとこの
ソース書かなかったの?
34デフォルトの名無しさん:2007/08/09(木) 18:26:43
処理が複雑だったんじゃないの?
35デフォルトの名無しさん:2007/08/09(木) 19:02:01
恥ずかしかったんじゃないの?
36デフォルトの名無しさん:2007/08/10(金) 01:25:23
ここにも書き込めてなかったんだろ
37デフォルトの名無しさん:2007/08/10(金) 01:37:04
ざぶとん1枚もっていけ
38デフォルトの名無しさん:2007/08/10(金) 01:53:10
ざぶとんが欠けた。
3914:2007/08/10(金) 03:06:12
>>18
メニューのIDってどれでしょう?
ずっとSpyで探しているのですがめぼしい物が見つかりません。
「無題 - ペイント MSPaintApp」の直下にありますか?
Spy持ってたら教えて欲しいです。
40デフォルトの名無しさん:2007/08/10(金) 06:37:56
private void hoge() {
 処理;
 innerHoge();
 処理;
 innerHoge();

 private void innerHoge() {
 }
}

みたいに、hoge()の中でしか呼ばれない繰り返し行う処理をinnerHoge()にまとめたく、
かつ、innerHoge()はhoge()の中からしか呼ばれないので、hoge()の中で定義するなどして
他からは気にしなくてもよいようにしたいのです。
でも、C#はメソッドの入れ子はできないようなので、こういうことがしたいときの
冴えたやり方を教えてほしいのです。
よろしくお願いします。
41デフォルトの名無しさん:2007/08/10(金) 06:55:38
>>40
冴えてるかどうかは置いといてdelegateを使うというのはどう?
private delegate void F();
private void hoge() { 
  F innerHoge = delegate { innerHoge相当の処理; };
 innerHoge(); 
 innerHoge(); 
}
42デフォルトの名無しさん:2007/08/10(金) 07:12:30
>>41
delegateって使ったことないんですが、これって宣言した引数の数とあってれば、
なんどでも定義し直して使えるんですかね?
たとえば、hoge()の中ではinnerHoge()相当の処理を定義して、hage()の中では
同じ宣言に対してinnerHage()相当の処理を定義してって感じで

しかしそうやってみると、無名オブジェクトを作るところで名前をつけるような
ちょっとしたもっさり感を感じなくもないですね
hoge( new Hige() );
とすればいいところを
Hige temp = new Hige();
hoge( temp );
みたいな
43デフォルトの名無しさん:2007/08/10(金) 07:28:37
Action!これだ!ありがとう!
44デフォルトの名無しさん:2007/08/10(金) 09:31:23
>>39
スパイあるんなら、メッセージ監視して自分でメニュー選んで
流れたメッセージIDを拾う、という手がある
ツール使って直接リソースを覗くのでもいいけど
45デフォルトの名無しさん:2007/08/10(金) 09:56:04
>>42
>しかしそうやってみると、無名オブジェクトを作るところで名前をつけるような
>ちょっとしたもっさり感を感じなくもないですね

2回以上呼ぶのにもっさり感のないやり方ってどうやるんだ?
46デフォルトの名無しさん:2007/08/10(金) 10:56:53
そもそも2回以上全く同じ動作するならforループとかで何とかなるんじゃね?
47デフォルトの名無しさん:2007/08/10(金) 11:06:31
んな
48デフォルトの名無しさん:2007/08/10(金) 15:12:33
gotoを使えばいいんだよ
49デフォルトの名無しさん:2007/08/10(金) 15:54:26
クラスまたはインタフェースSingletonを実装または継承するSingletonChildを
(名前の通りシングルトンパターンで)作りたいと思っているのですが、一つ問題があります

Singletonで、自分を実装または継承するものには、あるメソッドmethod()を実装させたいのです
従ってabstractではその実装を強制できないため、Singletonはインタフェースとなります
しかしインタフェースではコンストラクタの実装を定義できないため、実装クラスの
記述によってシングルトンパターンとなりえなくなります
ポリモーフィズムを許し、特定のメソッドの実装を強制させるシングルトンパターンは
どのようにすれば実現できるのでしょうか?
50デフォルトの名無しさん:2007/08/10(金) 17:08:57
private interface ISingleton でvoid method();
public abstract class Singleton : ISingleton でコンストラクタ定義
public class SingletonChild : Singleton でmethod()実装

かな?でもSingleton定義した時点でISingletonにmethod()がないって怒られそうな気がする

private interface ISingleton でvoid method();
public abstract class Singleton でコンストラクタ定義
public class SingletonChild : Singleton, ISingleton でmethod()実装

が正解でしょうか?クラスとインタフェースで分かれてたら多重継承できたはずだし
でもクラス図にするとすべてのシングルトンパターンのクラスの頭に2つ箱がつながるのは
あまり綺麗じゃないなあ…
51デフォルトの名無しさん:2007/08/10(金) 17:34:22
>>49
>従ってabstractではその実装を強制できないため
質問の意図がつかめてないのだけど、何でそう思ったの?

public abstract class Singleton {
  public abstract void method();
:
で強制できてない? 
52デフォルトの名無しさん:2007/08/10(金) 18:04:57
Singletonの派生クラスがAとBの2つあったとして、
AのインスタンスとBのインスタンスは同時に存在してもいいの?
53デフォルトの名無しさん:2007/08/10(金) 18:10:01
ファクトリは継承先で実装しないとしょうがないよな。インスタンスを保存するクラス変数も。
54デフォルトの名無しさん:2007/08/10(金) 18:31:43
//Singletonクラス
private static Dictionary<Type, Singleton> instances;
public static T GetInstance<T>() where T : Singleton, new() {
 Singleton i; Type t = typeof(T);
 if (!instances.TryGetValue(t, out i)) {
  i = new T();
  instances.Add(t, i);}
 return (T)i; }
こういうのは?
55デフォルトの名無しさん:2007/08/10(金) 18:41:36
普通にnewできてしまうだろうがよっ
56デフォルトの名無しさん:2007/08/10(金) 18:46:56
protected Singleton(){
if (instances.ContainsKey(this.GetType()))
throw new InvalidOperationException();
}
とか
57デフォルトの名無しさん:2007/08/10(金) 19:01:18
>>51
オライリーの本にそう書いてあったように記憶していたのですが、よく読み返してみると
孫クラスには強制できないという話でした
ということは、単に抽象クラスで作ってそれを継承してやるだけでいいんでしょうか?

>>52
http://smdn.invisiblefulmoon.net/mnemorepos/20040219-00.html
ここを参考にすると、実行時にリフレクションでもってインスタンスを作っていますが、
ポリモーフィズムされて親のSingleton型としてフィールドに持つため、
二回目別のサブクラスからファクトリを呼んでも、一回目のサブクラスのインスタンスが
帰ってくるだけのようです
58デフォルトの名無しさん:2007/08/10(金) 19:14:56
>>57
コンストラクタに触られたくないからprotectedにしといてリフレクションで無理矢理っていうのは
いくらなんでもやっちゃダメだろそのリンク先
59デフォルトの名無しさん:2007/08/10(金) 19:17:55
>>58
あれ…だめなんですか?
60デフォルトの名無しさん:2007/08/10(金) 19:19:28
ちょっと手の込んだファクトリとか作ろうとしたらリフレクションが必要になるのがC#
61デフォルトの名無しさん:2007/08/10(金) 19:21:25
だからって>>58を認めたらシングルトンなんか根底から崩壊するよ
62デフォルトの名無しさん:2007/08/10(金) 19:29:37
しかも>>57のリンク先
>.NET Frameworkではstaticなメンバに対してはスレッドセーフであるそうなので、lock等は使っていません。
って・・・
まずいだろそれ
63デフォルトの名無しさん:2007/08/10(金) 19:42:37
SingletonClass 第二のインスタンス = (SingletonClass)System.Activator.CreateInstance(typeof(SingletonClass), true);
あっさり崩壊w
64デフォルトの名無しさん:2007/08/10(金) 19:53:51
ええと…では、継承可能で最初にインスタンスを生成した子クラスのインスタンスを
唯一のインスタンスとするシングルトンは、

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/dnpatterns/htm/ImpSingletonInCsharp.asp

このURLの最後のマルチスレッドシングルトンのサンプルコードを変更して、
Singletonを継承可能な抽象クラスにし、プロパティInstanceをGetInstance( System.Type type )
にして、GetInstanceに最初に渡した子クラスのTypeでもってインスタンスを作るという
やり方は、どのような問題がありますでしょうか。
SingletonにキャストできないTypeが渡された場合はException投げて終わりにしようと思ってます
65デフォルトの名無しさん:2007/08/10(金) 20:09:34
最後の行がそのまま問題
C#2.0なら>>54みたいに GetInstance<T>() where T : Singleton にしといた方がいいよ
new()も付けたくなるけど
66デフォルトの名無しさん:2007/08/10(金) 20:20:54
そんなに無茶でもないように見えるがな。
まあもっといい実装はあるとしても。

ただ、おかしなことも書いてるので注意は必要。
67デフォルトの名無しさん:2007/08/10(金) 20:21:50
>>57
そら最初からやりたいことが違うんだから
68デフォルトの名無しさん:2007/08/10(金) 20:24:26
おおお上2つは>>58あて
69デフォルトの名無しさん:2007/08/10(金) 20:26:40
>>63
崩壊してないだろ
70デフォルトの名無しさん:2007/08/10(金) 20:27:42
>>61
意味が分からんなあ
71デフォルトの名無しさん:2007/08/10(金) 20:30:08
>>66
もっといい実装というと
72デフォルトの名無しさん:2007/08/10(金) 20:35:35
ライブラリならコンストラクタをinternalにするとかでいいんじゃね
どんな凝ったことしてもリフレクション使われたりしたらどうせ死亡だし
73デフォルトの名無しさん:2007/08/10(金) 20:36:55
崩壊するのは一般的によくあるシングルトンの実装の場合だろ。

だがリフレクション使えばかなり何でもありだから
大抵は想定外で済むだろうってか済ますだろう。
74デフォルトの名無しさん:2007/08/10(金) 20:44:23
コンストラクタ側にリフレクションで呼ばれてるかどうか判定する術はないの?
75デフォルトの名無しさん:2007/08/10(金) 20:46:36
ないよ。
76デフォルトの名無しさん:2007/08/10(金) 20:48:28
>>72
どういう使われ方をするかというと、そのクラスのインスタンスをグローバル変数的に全クラスから
アクセスできるように、また、そのクラスの実装は外部のXMLファイルに定義して、
XMLにかかれているクラスのインスタンスを作るにようにしようとしています。
後々サブクラスが増えても、既存のソースは直さずに、増やすクラスの追加とXMLファイルの
修正だけですむようにと
77デフォルトの名無しさん:2007/08/10(金) 20:49:31
あまりまともな方法は無いと思う。
ので特殊な事情がない場合は最初からあきらめる。
78デフォルトの名無しさん:2007/08/10(金) 20:50:42
>>76
そういう場合はリフレクション使うしかないよ。
79デフォルトの名無しさん:2007/08/10(金) 21:13:19
ああ>>77>>74宛な
80デフォルトの名無しさん:2007/08/10(金) 23:19:22
こういうのはどこかで妥協が必要になるのだろう。継承したクラスに生成のコードを委譲してみた。
abstract class AbstractSingleton {
  static object syncRoot = new object();
  volatile static AbstractSingleton instance = null;

  protected delegate AbstractSingleton RegistrationCallback();
  protected static AbstractSingleton Registration(RegistrationCallback callback) {
    if (instance == null) {
      lock (syncRoot) { if (instance == null) instance = callback(); }
    }
    return instance;
  }
  public abstract void MustOverrideFunc();
}
81デフォルトの名無しさん:2007/08/10(金) 23:21:33
つづき。 継承したクラスがInstanceプロパティを細工してしまったら終わりだが、
継承したクラスの作成者は信用することで妥協。
sealed class SingletonImpl1 : AbstractSingleton {
  private SingletonImpl1() {}
  public static AbstractSingleton Instance {
    get { return Registration(delegate{ return new SingletonImpl1(); }); }
  }
  public override void MustOverrideFunc() { Console.WriteLine(this); }
}
sealed class SingletonImpl2 : AbstractSingleton { // 省略
class Test {
  static void Main() {
    AbstractSingleton singleton = SingletonImpl2.Instance;
    singleton.MustOverrideFunc();
    singleton = SingletonImpl1.Instance;
    singleton.MustOverrideFunc();
  }
}
82デフォルトの名無しさん:2007/08/10(金) 23:28:52
それはそれでよくできてると思うけど、話と違う方向に行っちゃってるな
83デフォルトの名無しさん:2007/08/10(金) 23:29:42
こうなるともはや違うイディオムな気がするな…
クラスがシングルトンなんじゃなくて、コンテナが管理すると言う。
DIじゃないけど、DIでのシングルトンの考え方に近い。
84デフォルトの名無しさん:2007/08/10(金) 23:31:47
あいや>>83>>80を見た時点で書いたんだが、
>>81が入ってくるとちょっとイメージが違ったわw
85デフォルトの名無しさん:2007/08/10(金) 23:35:56
static class SingletonManager<T> where T : class, new()
{
public static T Instance = new T();
}

自作のインスタンスなんかしったこっちゃないわ。
86デフォルトの名無しさん:2007/08/10(金) 23:49:40
ああすまんreadonlyつけ忘れた
87デフォルトの名無しさん:2007/08/10(金) 23:51:31
遅延評価の必要が無ければなんでもいい感じですなぁ。
88デフォルトの名無しさん:2007/08/11(土) 01:43:41
遅延評価したけりゃstaticコンストラクタつければいいだけ。
そも、ジェネリックの場合はジェネリックの具象クラスがコンストラクトされたタイミングになるだろうから、
事実上知見評価に近い気もするが。
89デフォルトの名無しさん:2007/08/11(土) 01:50:28
じっさいのとこ、本物のシングルトンじゃなきゃ困ることってそんなにあるんかな。
ルールにのっとった方法で取得したインスタンスは、唯一、同一であることが保証されれば、
たいていの場合は困らん気がするのだが。
90デフォルトの名無しさん:2007/08/11(土) 03:19:38
C#ってIF(A & B)みたいな使い方できないのか
なんか便利なんだか面倒なんだか
91デフォルトの名無しさん:2007/08/11(土) 03:40:51
何が言いたいのかわからない
92デフォルトの名無しさん:2007/08/11(土) 03:43:38
Cとかと違ってC#は型付けが強いからね
93デフォルトの名無しさん:2007/08/11(土) 03:46:08
新しい言語ほど、バグを作りそうな仕様を減らすものだよ。
9490:2007/08/11(土) 04:00:39
>>91
文字列操作とか面倒な作業に煩わされない強力な言語だなって
驚いてたんだけどこんなこともできねぇのかって話し
まあわざとそうしているんだろうけど
プログラム人口が減っている昨今、確かにシンプルな方がいいんだよね
95デフォルトの名無しさん:2007/08/11(土) 04:03:16
AとBが何のつもりか知らんがそんなことができてもたいしてうれしくもない。
96デフォルトの名無しさん:2007/08/11(土) 04:10:54
それはお前の意見だろうが!ひとそれぞれやり方が違うんだよ
97デフォルトの名無しさん:2007/08/11(土) 04:17:16
何が言いたいのかよくわからんが
>こんなこともできねぇのかって話し
これもお前の意見じゃないのか??
98デフォルトの名無しさん:2007/08/11(土) 04:17:59
いやべつじんだったらすまんのう
99デフォルトの名無しさん:2007/08/11(土) 04:19:47
C++のMSのソースにもそのような判定は腐るほどあるからな
自分達でもバグの温床になると判断してなくしたんだろ
100デフォルトの名無しさん:2007/08/11(土) 08:56:40
>>90
A B ともbool型なら & はショートサーキット評価なしの論理ANDになるけどね。
101デフォルトの名無しさん:2007/08/11(土) 09:16:31
大文字のIFが使えないって事じゃないのか
102デフォルトの名無しさん:2007/08/11(土) 10:29:57
VBへようこそ!
103デフォルトの名無しさん:2007/08/11(土) 11:01:11
そもそもIF(A&B)って何の言語だよ
104デフォルトの名無しさん:2007/08/11(土) 13:09:42
if文にbool型しか取れないってことを言ってるのかな。
105デフォルトの名無しさん:2007/08/11(土) 13:31:26
class Boolean{
public static implicit operator Boolean(int value){...}
public static bool operator true(Boolean value){...}
public static bool operator false(Boolean value){...}
}

if ((Boolean)(A&B))
106デフォルトの名無しさん:2007/08/11(土) 16:01:19
あるObject oが、あるインタフェース Hoge.Interfaceを実装したものかどうかを知りたいのですが、
やり方としてはoのType tを取得して、t.FindInterfacesでType[]を取得して、
そのFullNameがHoge.Interfaceに合致するか見ながら回す、とかしかないんでしょうか?
もっとかしこいやり方がありそうな気がするけど、t.IsImplemented( "Hoge.Interface" )
みたいなメソッドは無いようなので
107デフォルトの名無しさん:2007/08/11(土) 16:05:10
Type.IsAssignableFromを使うのが定番
108デフォルトの名無しさん:2007/08/11(土) 16:05:18
インスタンスがあるなら as か is で充分だろ
109107:2007/08/11(土) 18:23:59
ああ、Typeとか言ってたから適当にレスしてしまった
>>108に同意
110デフォルトの名無しさん:2007/08/11(土) 21:07:51
2.0のBinaryFormatterでシリアライズしたものを1.x系でデシリアライズ可能でしょうか?
111デフォルトの名無しさん:2007/08/11(土) 21:10:43
可能としてもやりたくねーな
なんでそんな要求が出てきたの?
112デフォルトの名無しさん:2007/08/11(土) 21:29:25
>>111
ASP.NET1.xで動いてる環境があって、
そのコンテンツ管理システムを2.0でつくろうかと思っているんですが
更新頻度が少ないマスタ的なデータをそのコンテンツ管理で作って
1.x系に読ませたいなと。(DBを経由せずに)
113デフォルトの名無しさん:2007/08/11(土) 21:48:08
バイナリ形式って、きっちりとした仕様決められてたっけ。
まあ、それだけ限定的な使用方法なら実際に試してみればいいと思う。
たぶんシリアライズ対象のオブジェクトのアセンブリが同じなら問題ないはずだけど……。

どうしても不安なら、シリアライズ部分だけ外部プロセスにやらせる手もある。
114デフォルトの名無しさん:2007/08/11(土) 21:52:37
XMLにしとけよ
なんでそんなことでバイナリにしたがるわけ?
115デフォルトの名無しさん:2007/08/11(土) 21:54:37
バイナリ形式はプログラムレベルで対応しないといけないだろう。
明確に仕様があるものならば、フレームワークレベルで定義しないと
使い物にならん。
116110:2007/08/11(土) 21:58:09
>>113
いますぐは試せないのですが、
シリアライズ対象のアセンブリが同じであればいけそうとのことですね。
ありがとうございました。
117110:2007/08/11(土) 21:58:51
>>114
理由はパフォーマンスです。
118デフォルトの名無しさん:2007/08/11(土) 22:07:10
たしかにXMLは遅い
119デフォルトの名無しさん:2007/08/11(土) 22:22:18
>更新頻度が少ないマスタ的なデータをそのコンテンツ管理で作って
>1.x系に読ませたいなと。(DBを経由せずに)

こんな処理になんでそんなにパフォーマンスが必要なんだ?
もちろんそりゃパフォーマンスがいいに越したことはないが。

ついでに、確か1.1と2.0ではバイナリシリアライズ形式に
互換性がなかったんじゃなかったっけか?
これはちとうろ覚えですまんが。
120デフォルトの名無しさん:2007/08/11(土) 22:27:18
リモート処理についてに質問です。
どのサンプルを見ても、クライアントからリモートオブジェクトのメソッド呼び出して
結果をクライアントに返す感じなんですが、クライアントからの要求をサーバーで処理
するようなのは無理なのでしょうか?
クライアントから"AAA"送信→サーバーで"AAA"受信といった具合に
121デフォルトの名無しさん:2007/08/11(土) 22:32:05
>>119
すまん、互換性がないのは1.0→1.1のようだ。
1.1→2.0は互換性あるらしい。
122デフォルトの名無しさん:2007/08/11(土) 22:35:02
>>120
>どのサンプルを見ても、クライアントからリモートオブジェクトのメソッド呼び出して
>結果をクライアントに返す感じなんですが、クライアントからの要求をサーバーで処理
>するようなのは無理なのでしょうか?

何言ってんだかさっぱりわからん。

クライアントからサーバのメソッド呼び出してるってことは
クライアントからの要求をサーバーで処理してるってことだろうがよ。

>クライアントから"AAA"送信→サーバーで"AAA"受信といった具合に
引数で渡せばいいだけではないのか?
123デフォルトの名無しさん:2007/08/11(土) 23:06:53
一般的なリモート処理のサンプルでは、リモートオブジェクトをDLLとして作っておき、
サーバー側ではDLL参照したメソッドを呼び出ししています。
クライアントからはサーバーのメソッドを呼び出しているのではなく、DLL内部の
メソッドを呼び出ししているわけですので、サーバー側で受信を確認する手段が分かりません

124デフォルトの名無しさん:2007/08/11(土) 23:15:41
StringBufferで生成可能な文字列ってどれくらいなんでしょうか
Appendしまくりで限界がくるとOutOfMemoryの例外が発生します。
どうも空きメモリ量によって処理可能なサイズが変わっているような気がします。
125デフォルトの名無しさん:2007/08/11(土) 23:15:54
おまえはいったい何を言っている?
ってかそもそもリモート処理ってのがどういうものか理解してるのか?
126デフォルトの名無しさん:2007/08/11(土) 23:17:04
>どうも空きメモリ量によって処理可能なサイズが変わっているような気がします。
そりゃそうだろ、たいていは。
127デフォルトの名無しさん:2007/08/11(土) 23:21:00
>>124
はじめてのC言語からやり直せ
128デフォルトの名無しさん:2007/08/11(土) 23:26:19
>StringBufferで生成可能な文字列ってどれくらいなんでしょうか
まさにメモリを無事確保できる限り、としかいいようがないな。
仕様上の上限はMaxCapacityだがその前にメモリでアウト
129デフォルトの名無しさん:2007/08/11(土) 23:34:39
インスタンス生成を抑えるのがオブジェクト指向の基本原則だろうが。
130デフォルトの名無しさん:2007/08/11(土) 23:35:44
寝言は寝て言え
いや言うな
131デフォルトの名無しさん:2007/08/12(日) 00:04:46
NotifyIconのMouseClick時にマウスの絶対座標を取得する方法を教えて下さい。
MouseEventArgsのe.Locationやe.X,e.Yではどれも0という数値しか返してくれません・・・
132131:2007/08/12(日) 00:20:08
Cursor.Positionでうまくいきました。
お騒がせしました。
133デフォルトの名無しさん:2007/08/12(日) 01:06:25
えぇ、こんなに騒がしかったのはミレニアム以来でしたよ。
134デフォルトの名無しさん:2007/08/12(日) 01:22:05
131はクライアント座標とスクリーン座標の区別が付いていないんじゃないだろうか?
と余計な老婆心に一瞬とりつかれた
135デフォルトの名無しさん:2007/08/12(日) 02:05:23
あるクラスHogeのConfigファイルを作ろうとしています(Config.xmlとする)
また、同時にHogeの終了時状態もシリアライズ/デシリアライズしようとしています(State.xmlとする)
たとえばHoge.Nameは設定項目としてユーザがXMLファイルの値を書き換えて良い
Hoge.Stateは単に復元されるべき終了状態だから、ユーザが触る必要はない
という感じです
自分用のプログラムなので、State.xmlを変更できなくする機能とかはつける必要はないのですが、
後々わかりやすくするために、Config.xmlとState.xmlは最低限ファイルを分けたいです
今のところXMLSerializerで行けないかと思っているんですが、方法が見つかっていません
State.xmlはXMLSerializerで作る、Config.xmlは別のConfig作成用クラスで作るとかでもいいので、
良い方法(.NETで丁度いいクラスとか)があれば教えていただけますでしょうか。
最悪自作でクラスを作るしか無いんでしょうが…

ただ、アプリケーション構成ファイルはあまり使いたく無いと思っています。
特定のクラスごとに別々のConfig.xmlを吐かせたいというのと、設定を吐かせるクラスが
増えたり減ったり変更になったときに、ちょっと構成ファイル変更に関する作業が大きそうなので…
136デフォルトの名無しさん:2007/08/12(日) 02:11:39
ああ、Hogeの中にHogeConfigクラス作ってそこにHogeのConfig.xmlに吐きたい
フィールドだけを定義しておいて、シリ・デシリの時にHogeのフィールドと同期させてやればいいのかな
137デフォルトの名無しさん:2007/08/12(日) 04:58:58
「クリップボードからデータを貼り付けようとしている時」に
呼ぶイベント?みたいなのは、ないでしょうか?

textBoxにデータを貼り付けるとき、クリップボードを調べて、
その文字によってmaxlengthをいじりたいです。

Ctrl+Vからの貼り付け、コンテキストメニューからの貼り付け、と
一括で設定したいので何か良い方法があったら教えてください。
宜しくお願いします。
138デフォルトの名無しさん:2007/08/12(日) 05:08:06
WM_PASTE
139デフォルトの名無しさん:2007/08/12(日) 05:45:15
http://www.dotnet247.com/247reference/msgs/30/150798.aspx
この辺が参考になるかな。
140137:2007/08/12(日) 06:10:37
>>138>>139
朝早くからありがとう。
なんとなく分かったんだけど、別のクラス間でtextBoxのメソッド?
いじる方法がイマイチわかんねー。
もうちょい調べてみます。ありがとうございました。
141デフォルトの名無しさん:2007/08/12(日) 06:42:46
前回のB()終了後、ある時刻になるとメソッドA()を呼んで、
今回のメソッドA()終了後、ある時刻になるとメソッドB()を呼んで…
という処理を繰り返すことを考えています
ベタなやり方だと、

while ( true ) {
 while ( 現在時刻 < ある時刻 ) {} // 不等号の使い方は便宜上
 A();
 while ( 現在時刻 < ある時刻 ) {} // 不等号の使い方は便宜上
 B();
 if ( メインループの終了条件を満たす ) { break; }
}

みたいな感じになると思うんですが、C#ではもう少しマシなやり方があるのではと思う次第です
どういうやり方がベストプラクティスでしょうか?
142デフォルトの名無しさん:2007/08/12(日) 07:25:55
*.Timer
ブロックしていいならThread.Sleep
143デフォルトの名無しさん:2007/08/12(日) 07:33:06
>>142
前者はSystem.Threading.Timeクラスのことでしょうか?
144デフォルトの名無しさん:2007/08/12(日) 07:53:00
それでもSystem.Windows.Forms.TimerでもSystem.Timers.Timerでも
場合に合ったものを適当に選んでくれ
145137:2007/08/12(日) 07:56:34
いろいろやってみたが別のクラスにあるoverrideのとこ?が全く呼べない!
どうすれば・・?

Form1.cs
//インスタンス
private Class1 class1 ;
//コンストラクタ
this.class1 = new Class1(this);

Class1.cs

//インスタンス
public Form1 f1;
//コンストラクタ
public Class1(Form1 f1)
{
this.f1 = f1;
}
private const int WM_PASTE = 0x0302;
protected override void WndProc(ref Message m)
{
if(m.Msg == WM_PASTE)
{
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
{
this.f1.textBox1.MaxLength = 7;
return ;
}
}
base.WndProc(ref m);
}
146デフォルトの名無しさん:2007/08/12(日) 08:21:48
>>145
継承しないと無理
147デフォルトの名無しさん:2007/08/12(日) 12:10:45
compact framework2.0で保存したHTMLファイルを閲覧するところでつまづいています。

保存したHTMLをWebbrowser.navigateで開いているのですが、Aタグのname属性で指定した
名前にジャンプすることが出来ません。

ウェブ上のHTMLファイルであれば、普通にURL#fragmentという形式で期待する動作をするの
ですが、クライアントに保存したHTMLで同じ事をしようとすると、
「ページを表示できません。名前を確認して、もう一度やり直してください。」
というエラーが出て読み込めません。
(#以下(fragment部分)を削除すると、普通に読み込めています)

compact frameworkではfragmentの指定はできないのでしょうか。
148デフォルトの名無しさん:2007/08/12(日) 16:05:38
テキストボックス内の文字列の検索についての質問です。
private void button5_Click(object sender, EventArgs e)
{
string kensaku = textBox6.Text;
int find = textBox5.Text.IndexOf(kensaku);
if (find > -1)
{
textBox5.SelectionStart = find;
textBox5.SelectionLength = kensaku.Length;
}
}
この後、button5をクリックすると次の文字列を検索させるようにしたいのですが、
どうすればいいんでしょうか。textBox5.Text.IndexOf(kensaku)の開始位置を後ろにすれば
よいのだと思うのですが、誰か知恵をお貸しください。
149デフォルトの名無しさん:2007/08/12(日) 16:09:58
じゃあ開始位置を指定すればいいんじゃね?
150デフォルトの名無しさん:2007/08/12(日) 16:12:15
>>149
質問の仕方が悪かったです。その開始位置の指定をどうすればよいのかわからなくて…
151デフォルトの名無しさん:2007/08/12(日) 16:14:38
string.IndexOfのオーバーロードをMSDNで調べればいいんじゃね?
152デフォルトの名無しさん:2007/08/12(日) 16:28:43
そのオーバーロードをどういう風にすれば次を検索していけるようになるのかというのが質問です。
153デフォルトの名無しさん:2007/08/12(日) 16:34:05
SelectionStart+SelectionLengthから始めればいいんじゃね?
もしくはインデックスをフィールドにして覚えとくか
154デフォルトの名無しさん:2007/08/12(日) 16:47:41
>>148
textBox5の内容を変数に入れて、次に検索するときは前回検索した後のデータを代入する
string data = textBox5.Text;
二回目以降は
data = data.Substring(find + kensaku.Length);
みたいな感じで、検索がヒットしたら前回の位置をプラス。

なんかめんどくさいな・・・
155デフォルトの名無しさん:2007/08/12(日) 16:50:47
>>151 が○
156デフォルトの名無しさん:2007/08/12(日) 20:05:59
>>147
クリックしてるの?
157デフォルトの名無しさん:2007/08/12(日) 20:07:26
じゃなくてwebサーバーが入ってないだけだな。
158デフォルトの名無しさん:2007/08/12(日) 23:43:24
すみません、教えてください

listView1.Items.Containsで既にアイテムがある場合は追加しない
って処理がしたいのですが項目(カラム)が複数ある場合は
全てマッチを判定するんですよね?

まったく同じアイテムでも追加されてしまうのは
制御構文のほうが間違ってるのか。。。
159デフォルトの名無しさん:2007/08/12(日) 23:47:52
ListViewItem 自体を比較してたりしてないか?
中の Text を比較しないと駄目だぞ。
160デフォルトの名無しさん:2007/08/12(日) 23:50:11
>>159
あっ。。。そうなんですか。

恥ずかしいです。項目全て比較するんですね。
ありがとうございます
161デフォルトの名無しさん:2007/08/12(日) 23:59:40
あるサーバ上で稼動しているプログラムでエラーが発生した場合、
別のPCにエラー発生したことを知らせたいのですが、どのような
手法がありますか?
162デフォルトの名無しさん:2007/08/13(月) 00:01:05
電子メールを送信
163デフォルトの名無しさん:2007/08/13(月) 01:09:52
通信だろうね。え、礼はいいよ
164137:2007/08/13(月) 01:19:49
>>146 ありがとう!TextBoxを継承したユーザーコントロールを作って
maxLengthをいじることができました。
しかし、貼り付け時にデータがmaxlengthを超えて貼り付けられてしまいます。
なぜか、貼り付けた後にMessageBoxを表示させると、maxlength内に
納まります。どう対策すればよいでしょうか?

//Form1.cs
public void maxLengthChange()
{
userControl1.MaxLength = 7;
}
public void copyFromClipBoard()
{
userControl1.Text = Clipboard.GetDataObject().GetData(System.Windows.Forms.DataFormats.Text).ToString();
//ここにMessageBoxを表示すると、maxlength内に納まる。
}
//UserControl1.cs
protected override void WndProc(ref Message m)
{
const int WM_PASTE = 0x0302;
if(m.Msg == WM_PASTE)
{
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
{
f1.copyFromClipBoard();
f1.maxLengthChange();
return ;
}
}
base.WndProc(ref m);
}
165137:2007/08/13(月) 01:25:22
すみません、
//UserControl1.cs の
f1.copyFromClipBoard();
f1.maxLengthChange();
の順番は逆です。

しかも
return
すると、>MessageBoxを表示させるとmaxlength内に納まる・・・
が再現しなくなるのでreturnもなしです。失礼しました。
166デフォルトの名無しさん:2007/08/13(月) 01:36:48
クリップボードからTextBoxに入れるのにTextプロパティ使ってるよな。
MaxLengthの解説読んでみ?
167137:2007/08/13(月) 02:35:32
>>166
ありがとう。そこは分かったけど、MessageBoxを表示させると、
maxlength超えてる部分削られて納まるのは何でですか?
168137:2007/08/13(月) 03:17:40
色々テストしていたら、
1回目貼り付け→maxlengthを超えてもそのまま表示される
2回目貼り付け→maxlengthに納まる
3回目貼り付け→maxlengthを超えてもそのまま表示される
4回目貼り付け→maxlengthに納まる


の繰り返しになる事が分かりました。
原因が分かりません。
なんか気持ち悪いので、考えられそうな原因を教えてもらえませんか?
169デフォルトの名無しさん:2007/08/13(月) 05:06:17
それはあなたです
170デフォルトの名無しさん:2007/08/13(月) 10:19:34
あなたを、犯人です。
171デフォルトの名無しさん:2007/08/13(月) 11:01:23
あな、人です。
172デフォルトの名無しさん:2007/08/13(月) 18:07:39
Express Editionは条件付コンパイル出来ませんか?
#if DEBUG
#endif
で囲っても無視されます。
プロパティの[ビルド]でDEBUG定数の定義にチェックを付けても変化ありませんでした
173デフォルトの名無しさん:2007/08/13(月) 18:11:24
メソッド定義を書くときに、引数の型名が長かったり、引数の数が多かいとき
どこで改行しますか。
174デフォルトの名無しさん:2007/08/13(月) 18:22:59
おカンマ区切りが定石
175デフォルトの名無しさん:2007/08/13(月) 18:25:50
>>172
囲まれてるところの文字色は普通のコードの色になってる?
176デフォルトの名無しさん:2007/08/13(月) 18:34:21
>>175
なってます。
#else
で囲むとグレーアウトされます。
177デフォルトの名無しさん:2007/08/13(月) 18:37:20
ソリューション構成はDebugになってる?
178172:2007/08/13(月) 18:49:55
>>177
どこを見れば確認できますか?
179デフォルトの名無しさん:2007/08/13(月) 18:58:52
ツールバーの「デバッグ開始」アイコンの右にあるドロップダウンボックス
もし表示されてなかったら、オプションを開いて左下の「すべての設定を表示」にチェックを入れて、
「プロジェクトおよびソリューション」−「全般」の「ビルド構成の詳細を表示」や「常にソリューションを表示」
あたりにチェックを入れてみて
180172:2007/08/13(月) 19:15:11
>>179
以前はそこにDebugとかReleaseとかプルダウンで表示されていたような気がしますが、
今はコンボボックスがグレーアウトして表示されているだけで操作できない状態です。
181デフォルトの名無しさん:2007/08/13(月) 20:20:54
10区切りで切り上げた値を求めたい場合、どのようにすればいいかなー?
3 なら 10
24 なら 30
47 なら 50 な具合に。
182デフォルトの名無しさん:2007/08/13(月) 20:23:02
ふらっと以下だろ・・・。10−下一桁を+すればいいだろ
183デフォルトの名無しさん:2007/08/13(月) 20:54:38
>>182
5足して切り上げの方がスタイリッシュじゃね?
184183:2007/08/13(月) 20:56:02
間違った>>183は忘れてくれ。
185デフォルトの名無しさん:2007/08/13(月) 20:58:04
>>182-183
9足して切り捨てがスタイリッシュだろ。
186デフォルトの名無しさん:2007/08/13(月) 21:03:39
発想って大事だよね
187デフォルトの名無しさん:2007/08/13(月) 21:24:01
3 / 10 +1
47 /10 +1
全てint
188デフォルトの名無しさん:2007/08/13(月) 21:24:58
10かけるの忘れた。
189デフォルトの名無しさん:2007/08/13(月) 21:32:55
>>187
気持ち悪い
190デフォルトの名無しさん:2007/08/13(月) 22:40:08
「指定した精度の数値に切り上げする」でググれ
191デフォルトの名無しさん:2007/08/13(月) 23:09:17
マイナスは無視ですか?
192デフォルトの名無しさん:2007/08/13(月) 23:13:26
マイナス時の挙動は偶数丸め以外は基本的に要求次第じゃない?
193デフォルトの名無しさん:2007/08/13(月) 23:27:18
ListViewのヘッダーは色変えられないのですか
194デフォルトの名無しさん:2007/08/13(月) 23:28:57
2.0 ならオーナードローで
195デフォルトの名無しさん:2007/08/13(月) 23:32:59
Formsはいらない子。
WPFに食べられて排泄される運命
196デフォルトの名無しさん:2007/08/14(火) 00:11:14
まあ俺にはまだ必要だが…
197デフォルトの名無しさん:2007/08/14(火) 01:37:13
DateTime.Now.ToString("yy/MM/dd HH:mm:ss.ミリセカンド")
このような表記で表示したいのですが、文字列でミリセカンドは表記できないのでしょうか?
やっぱりDateTime.Now.Millisecondで取るしかない?
198デフォルトの名無しさん:2007/08/14(火) 01:40:46
ヘルプで書式指定文字列を引け
199デフォルトの名無しさん:2007/08/14(火) 04:30:11
16進文字列を解釈してlong型整数を生成したいのですが、どうすればいいのでしょうか。
VBでいう、CLng( Hex( バイト型変数 ) ) みたいに…。
たとえば、String str = "0D"; からは13が生成させるはずです。

BitConverter.ToInt64( Encoding.Unicode.GetBytes( str ), 0 );
を考えていたのですが、GetBytesの時点でstrがエンコードされてしまい、{ 48, 0, 68, 0 }
となってしまうようで、うまくいきません。
よろしくお願いします。
200デフォルトの名無しさん:2007/08/14(火) 04:32:52
Convert
201デフォルトの名無しさん:2007/08/14(火) 04:59:48
>>200
でけました
ありがとう
202デフォルトの名無しさん:2007/08/14(火) 09:14:02
>>198
だからそんな糞レスはいらないんだよ
203デフォルトの名無しさん:2007/08/14(火) 09:20:06
答えなんじゃないのか?
204デフォルトの名無しさん:2007/08/14(火) 09:31:54
>>202
お前という存在がいらない
205デフォルトの名無しさん:2007/08/14(火) 09:33:53
>>198はかなり的確な回答だろ
その場限りの答えより遥かに役立つ
206デフォルトの名無しさん:2007/08/14(火) 10:02:37
構造体Aのメンバ変数が全部publicで宣言されてるとき、初期化は
A a = new A(int x, int y, int z);
のようにコンストラクタを呼び出すより
A a; a.X = 1; a.Y = 2; a.Z = 3;
みたいに平べったくした方が速かったりする?
207206:2007/08/14(火) 10:04:47
上の方はA a = new A(1, 2, 3);の間違い
208デフォルトの名無しさん:2007/08/14(火) 10:05:15
試してみれば
209デフォルトの名無しさん:2007/08/14(火) 13:18:42
微々たる違い
210デフォルトの名無しさん:2007/08/14(火) 15:48:12
その程度の速度を気にするより、オブジェクトの再利用やキャッシュの効率性を考えろ。
211デフォルトの名無しさん:2007/08/14(火) 17:08:27
int[]等の各要素を定数として使用するとき、
誤って要素の値が書き換えてしまうことができないようにするにはどうすれば良いですか?
212デフォルトの名無しさん:2007/08/14(火) 17:40:12
プロパティ知らないの?
213デフォルトの名無しさん:2007/08/14(火) 18:24:47
ReadOnlyCollection<T>
214デフォルトの名無しさん:2007/08/14(火) 18:44:31
ふらっとだった。ちょい追記しとこう。

static readonly ReadOnlyCollection<int> PrimeNumbers = new ReadOnlyCollection<int>(new int[] {
 3, 5, 7, 11, 13, 17, 19,
});

こんな感じ。
215デフォルトの名無しさん:2007/08/14(火) 19:05:20
初心者的な質問ですみません。
Visual Studio2005 .Netでプログラムをしています。
TabContorolの中にボタンを配置した場合、そのボタンはどのように指定すればいいのでしょうか?

名称をTabControl:TabCon ボタン:Buttonとした場合
TabControl.Buttonと指定はできないんですよね?(できなかったです)

すみませんがどなたか教えてもらえないでしょうか?
TabControlについての参考URLも教えていただけたら幸いです。
216デフォルトの名無しさん:2007/08/14(火) 19:08:38
>>215
普通にButtonだと思うけど・・・
そのボタンをダブルクリックしてみては?
217デフォルトの名無しさん:2007/08/14(火) 20:21:21
ある変数が初期化されているかどうかってどうやって取得すればいいんでしょうか?
DateTime dt;
if ( dt == null ) {
}
だと、到達できないコードがあるって怒られたので、nullではないようですが…
218デフォルトの名無しさん:2007/08/14(火) 20:27:13
UIのオブジェクトは配置したFormに属している。
Tabに属しているわけではない。
219デフォルトの名無しさん:2007/08/14(火) 20:28:28
DateTimeは構造体だったよねたしか。
220デフォルトの名無しさん:2007/08/14(火) 20:37:30
ローカル変数は初期化すんでない時触ったらコンパイルエラー。
221デフォルトの名無しさん:2007/08/14(火) 20:43:32
本当だstructだ…
クラスの時は何にも入ってないよっていう意味の初期化でnullを入れられますけど、
構造体の場合はどうするのが普通なんですかね?
222デフォルトの名無しさん:2007/08/14(火) 20:45:21
Nullable
223デフォルトの名無しさん:2007/08/14(火) 21:21:04
任意の整数型の任意の位置から任意のビット幅の値を取得するメソッドを定義したいです
なんとなく書いてみましたが、コンパイルエラーになります

エラー 1 演算子 '>>' を 'T' と 'byte' 型のオペランドに適用することはできません

public static byte GetByte<T>(T val,byte shift,byte bits)
where T : struct
{
return (byte)( (val >> shift) & ((1 << bits) - 1) );
}
型に対して、「整数型かつ右シフト可能である」という制約はかけられませんか?

1 そもそもそんな事はできない
2 where以下が間違っている
224デフォルトの名無しさん:2007/08/14(火) 21:32:08
演算子オーバーロードの制約は where ではかけない
225デフォルトの名無しさん:2007/08/14(火) 21:42:46
C# ジェネリックは、C++ テンプレートほど柔軟ではありません。
たとえば、C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、
算術演算子を呼び出すことはできません。
226デフォルトの名無しさん:2007/08/14(火) 21:47:49
左シフト演算子 (<<) では、2 番目のオペランドで指定されたビット数だけ最初のオペランドが左に
シフトされます。
2 番目のオペランドの型は int です。
227デフォルトの名無しさん:2007/08/14(火) 22:13:58
プログラムっていうやつを生まれて初めて弄る超ド素人(このスレ読んでもチンプンカンプン)なんだけど、
C#のお勧め参考書や入門書ある?
228デフォルトの名無しさん:2007/08/14(火) 22:15:17
ない
229デフォルトの名無しさん:2007/08/14(火) 22:40:07
>>227書籍じゃないが
独学C#
ttp://www12.plala.or.jp/dokugaku/

ここ読んで駄目なら素直にVB.NET(Visual Basic 2005 Express Editionを使用)から始める事を勧める。
VB.NETの方がヘルプが初心者向けに懇切丁寧に書かれているから。
230デフォルトの名無しさん:2007/08/14(火) 22:49:40
>>229
その本は、プログラム初心者にはきついと思う。
231デフォルトの名無しさん:2007/08/14(火) 22:52:11
ごめん
独習c#と勘違いした
232デフォルトの名無しさん:2007/08/14(火) 22:53:07
Cライブラリのtime(NULL)と同等のメソッドはどれですか?
具体的にはファイル名"1186550904.txt"から拡張子を抜き、現在時刻との時間差を求めて、TimeSpanにする処理です。
DateTime.Now.ToFileTimeでは1601年をゼロとしているようで合いませんでした。
233デフォルトの名無しさん:2007/08/14(火) 22:55:40
>>232
頭使え。
234デフォルトの名無しさん:2007/08/14(火) 23:11:50
DateTimeのメンバを調べて考えなさい。
235デフォルトの名無しさん:2007/08/14(火) 23:16:42
>>229
thx
そのサイトのオススメ参考書を本屋行って目通して見るよ
236232:2007/08/15(水) 01:36:01
とりあえず、File.GetCreationTimeでお茶を濁すことにしました。
>>233
お前こそ頭を使ったレスをしろ。
>>234
適当に答えただろ。
237デフォルトの名無しさん:2007/08/15(水) 01:41:36
求めるものが見つからない場合は回避手段を探すってのはまあ基本だよな
238デフォルトの名無しさん:2007/08/15(水) 02:06:42
system.datetime epoch でぐぐったら先頭にこれが出たよ

ttp://www.codeproject.com/csharp/timestamp.asp
239デフォルトの名無しさん:2007/08/15(水) 02:10:28
>>238
おっ、これは簡単だ。
わざわざC++/CLIのDLL作ってC#から呼び出してたのにorz
240デフォルトの名無しさん:2007/08/15(水) 02:13:18
どんだけー
241215:2007/08/15(水) 08:53:31
>>216
アドバイスありがとうございます。
確かにダブルクリックしたらButtonでした!!
なんて無駄な時間をすごしてしまったんだ・・・
242デフォルトの名無しさん:2007/08/15(水) 09:01:17
>>229
でもそのリンク先みたいに言語の基本事項をだいたいカバーしてる
良い入門サイトはVB.NETでは少ないよな
どこ見てもOOPすっとばして「使い方」ばっかり
243デフォルトの名無しさん:2007/08/15(水) 12:09:21
>>242
それでもいい場合があるからな。
で、ある日突然悟りを開く…
244デフォルトの名無しさん:2007/08/15(水) 12:21:11
Textboxから入力されたテキストをSecuerStringに入れたとき、文字コードはどうなるんでしょうか?
自動的にUnicodeに変換してくれるなら事前の変換処理が必要なくなって楽なのですが…
245デフォルトの名無しさん:2007/08/15(水) 12:46:26
SecuerString って何だ?
ググっても出てこない。
246デフォルトの名無しさん:2007/08/15(水) 12:49:16
SecureString
247244:2007/08/15(水) 12:52:29
>>245
SecureStringでした。
typo…orz
248デフォルトの名無しさん:2007/08/15(水) 12:58:03
textboxの文字もunicodeじゃないのかい?
249244:2007/08/15(水) 13:18:40
>>248
そうだと思ってEncoding.Unicode.GetBytesしたのを戻したら見事に化けてたことが
あったので多分システムに依存するんじゃないかと思ったのですが…
250デフォルトの名無しさん:2007/08/15(水) 13:21:27
>Encoding.Unicode.GetBytesしたのを戻したら
ここのあたりが怪しいと思わないのか?
251デフォルトの名無しさん:2007/08/15(水) 13:42:49
何でバイト列だと思ったんだ
252デフォルトの名無しさん:2007/08/15(水) 13:52:26
そうじゃなくて。

自前の処理に問題があると思わないの?
253デフォルトの名無しさん:2007/08/15(水) 14:01:33
TextBoxに普通にキー入力したものをTextで取り出したら Stringだよ。
254デフォルトの名無しさん:2007/08/15(水) 14:11:26
そうだね。
Stringだね。
255デフォルトの名無しさん:2007/08/15(水) 14:16:24
SecureString自体も文字セット関係ないしなー 使うのCharだし
256デフォルトの名無しさん:2007/08/15(水) 14:16:54
>>244
どこが質問のポイントなのかよく分からないが

1. TextBox.Text は String、なのでUnicode
2. SecureStringの内部は暗号化された非公開情報
文字列として保持されているわけではないのでUnicodeとか意識するだけ無駄
3. SecureString と string は直接変換できない(双方向)
これはSecureStringの存在意義にかかわる問題であり、仕様。
4. どうしても相互変換したい場合、例えば以下のようになる
SecureString ss = new SecureString();
ss.AppendChar('a');
ss.AppendChar('b');
string s = Marshal.PtrToStringUni(Marshal.SecureStringToBSTR(ss));
5. しかし、4.のようなことはするべきではない
ttp://akari.kabe.co.jp/MagSite/Content.modf?id=20060713110548
どうしても変換する状況が避けられないなら、そもそも SecureString を使うことに意味はない

ということで、Textboxから入力されたテキストをSecuerStringに入れるのはダメ
257デフォルトの名無しさん:2007/08/15(水) 14:26:52
おーい、4. でリークしてるぞー

ところでunsafe使えばString書き換えられるんだけど、メモリ上どうなってんだろ
258デフォルトの名無しさん:2007/08/15(水) 14:28:46
SecureString使い道なし。
259デフォルトの名無しさん:2007/08/15(水) 14:41:27
>>257
ごめん、面倒になって意味なく端折りすぎた

×
string s = Marshal.PtrToStringUni(Marshal.SecureStringToBSTR(ss));


string s;
IntPtr bstr = Marshal.SecureStringToBSTR(ss);
try {
s = Marshal.PtrToStringUni(bstr);
}
finally {
Marshal.ZeroFreeBSTR(bstr);
}
260デフォルトの名無しさん:2007/08/15(水) 21:58:29
C#でVBのRedim関数と同様の関数ってありますか?
261デフォルトの名無しさん:2007/08/15(水) 22:04:56
そんなの忘れろ。
可変長リストなら List<T> や ArrayList 使え。
262デフォルトの名無しさん:2007/08/15(水) 22:04:57
普通に初期化するだけで動的配列(確保)になる
int[] array;
array = new array[5];//Redim

int[] array = new array{]{1, 2, 3, 4, 5};
こんな風に初期化したとしても、arrayは動的配列になる
263デフォルトの名無しさん:2007/08/15(水) 22:09:26
>>262
それ、動的配列違う
264デフォルトの名無しさん:2007/08/15(水) 22:14:13
262は動的配列だよ。実行時に要素数を決定できるのが動的配列。
可変長とはまた別の概念。
265デフォルトの名無しさん:2007/08/15(水) 22:20:02
動的配列はただの動的に確保された配列とは異なる。
266デフォルトの名無しさん:2007/08/15(水) 22:21:02
寝た元貼り忘れた。ゴメ!

ttp://ja.wikipedia.org/wiki/%E9%85%8D%E5%88%97
267262:2007/08/15(水) 22:24:53
わかると思うけど間違い
×new array  ○new int
VBでは宣言時にサイズを指定しない配列を動的配列と呼ぶみたいだからそれに従った。
268デフォルトの名無しさん:2007/08/15(水) 22:25:22
Preserveなら違うだろうけど、Redimなら>>262でいいんじゃない?
269デフォルトの名無しさん:2007/08/15(水) 22:50:23
>>262
それ動的じゃないよ。
静的。
実行前に決まってるし、サイズの自動拡張できないし。
270デフォルトの名無しさん:2007/08/15(水) 22:56:51
ここってレベル低いっすね
動的すらわからないなんて
C#って入門者向けなの?
271デフォルトの名無しさん:2007/08/15(水) 22:58:00
yes
全ての人に門戸は開かれています。
ありがたや、ありがたや。
272デフォルトの名無しさん:2007/08/15(水) 22:59:24
さすが大人の切り替えし
273デフォルトの名無しさん:2007/08/15(水) 23:07:07
c++の間口の狭さは異常。
274デフォルトの名無しさん:2007/08/15(水) 23:10:22
VB7以降のRedimはほとんど互換で残ってるようなものだけどな。
275デフォルトの名無しさん:2007/08/15(水) 23:19:27
>>260の質問じゃなくて、>>262の「動的」に食い付いているのか

>>260はこれで良いと思うけど
使用する前にサイズがわかって、以後サイズは変更されない
Redim → >>262>>267

使用した後にサイズが変更になる
ReDim Preserve → >>261


たしかにVB6だと、宣言時にサイズを指定しないのは「動的」って見かけるね
276デフォルトの名無しさん:2007/08/15(水) 23:54:30
質問してもよろしいですか?
C#に限ったことではないとは思うのですが、
,NETのプログラムでデータベースからデータセットを取得した後に、
データセットと同じプロパティ名を持つクラスにデータを放り込んだりするプログラムに
よく出くわします。

照会画面や印刷物を出力するためのSQLを発行するたびに
問い合わせ結果を保存するためのクラスを作るのはいかにもしんどい作業なのですが、
こういうものなのでしょうか?
データセットの値を直に画面や印刷物に出力するのはよろしくないのでしょうか?

また、データセットを取得するためにビジネスロジックと呼ばれるクラスを作って、
そこから呼び出すのですが、フォームから直にデータセットを取得するのは問題があるのでしょうか?

長くなりましたがどなたかご教示ください。
277デフォルトの名無しさん:2007/08/16(木) 00:05:28
フォームとビジネスロジックを別にできる。

作る人を別に出来る

完成が少し早くなる。
278デフォルトの名無しさん:2007/08/16(木) 00:10:26

嘘でした。
279デフォルトの名無しさん:2007/08/16(木) 00:12:50
コンマネット
280デフォルトの名無しさん:2007/08/16(木) 00:24:09
>>277
早速のご回答ありがとうございます。
なるほど。そういうメリットがあるのですね。
いわゆる3階層というものでしょうか?
データを保存するクラスを作っておくのも
実際にデータベースからデータを取得するプログラムが完成しなくても、
個別に紹介画面などを開発できるというわけですね?
ひとりで作ってると目の前に材料があるのにお預けくらってるようでもどかしいのですが・・・

>>278
他にも理由があるのですか?
281244:2007/08/16(木) 00:41:43
亀レスすいません。

>>256
文字コードを変換するためにSecureStringを使うわけではないのですが、
それでもTextBoxのTextを突っ込むのはまずいですかね?
282デフォルトの名無しさん:2007/08/16(木) 00:44:53
>>281
出てきたついでに>>280に答えてやれよ。
283244:2007/08/16(木) 00:59:49
>>282
データベースとかはまだ触ったことないので…
>>280さんすいません orz
284デフォルトの名無しさん:2007/08/16(木) 01:10:21
SQLもXMLで記述するべき。
LINQ、iBATIS
285デフォルトの名無しさん:2007/08/16(木) 01:15:35
>>281
誰も文字コード変換するためとは思ってないし、
まずいのではなく、意味がないと言っている。

SecureString っていうのは動作中のプロセスのメモリイメージを
そのまま他人にぶっこ抜かれて調査された場合でも該当のメモリ上に
認識可能な文字列が残らないことを保証するためのもの。
例えば、サスペンド中のノートパソコンを盗難されて解析されるとかの状況。

TextBoxの文字列を入力するということはSecureStringに格納する前に
メモリ上に可読可能なString型文字列が存在することになる。
この状態でメモリを解析されたら、たとえSecureStringの内容は読めなくても、
代入元のStringの文字列がそのまま見えてしまうので、意味がないといってる。

だから使い方(使いどころ)が非常に難しくて、>>258のような発言になる
286デフォルトの名無しさん:2007/08/16(木) 01:58:38
>>284
レスありがとうございます。
なるほどこういうものがあるのですね。

データベース上のテーブルと1対1でクラスを作っておくのであれば
他のプログラムでもなにかと利用する機会もあるのかもしれないのですが、
参照系などはSQLを投げればデータセットが必要な項目を勝手に用意してくれるという
恩恵にあずかれないのはやはりもどかしく感じられます。

よく使う参照項目を持ったデータセットが何パターンもできてしまい
しかもそれらが元になるテーブルとの関連が分からなくなってしまうのを避けるために、
トランザクション系のテーブルに参照項目をすべて持たせ冗長化させたりで、
なんだかCOBOLのデータファイルみたいなテーブルばかりで・・・

どうもしっくりこないのですが、そういうものなのでしょうか?
287デフォルトの名無しさん:2007/08/16(木) 06:36:51
フォームが作られるときに実行して欲しい処理は
フォーム1ロードに書けやゴルァみたいな解説があったんですが

public Form1()
{
InitializeComponent();
}
↑の中に記述しちゃっても違いがないみたいなんですけど
なぜにロードがあるのですか?
インスタンスがはじめて作られるときだけ実行されるみたいな解説があったようななかったような
288デフォルトの名無しさん:2007/08/16(木) 06:49:44
Load イベントはフォームが最初に表示されるとき
289デフォルトの名無しさん:2007/08/16(木) 09:24:06
初期化はコンストラクタに書いちゃっていいよ
290デフォルトの名無しさん:2007/08/16(木) 09:34:41
初期化する内容による。
FormのGUI要素にアクセスするなら、Loadまで待つ必要がある。
291デフォルトの名無しさん:2007/08/16(木) 09:51:52
そういえばLoadイベントは派生クラスでOnLoadをオーバーライドしたら潰せるよね
仕方ないのはわかるけど
292287:2007/08/16(木) 10:26:02
>>288-290
なるほど。ありがとうございました
form1road{}書いてもまったく反応なくて
それでそこに記入したんですよね。
まさかフォームをダブルクリックして作ってもらわないといけないとはね
293デフォルトの名無しさん:2007/08/16(木) 10:27:32
ダブルクリック・・・?
294デフォルトの名無しさん:2007/08/16(木) 10:28:25
あ、デザイナってやつをです。こういうの使ったことねえからわかんね
295デフォルトの名無しさん:2007/08/16(木) 10:28:50
form1roadって・・・
296デフォルトの名無しさん:2007/08/16(木) 10:37:59
>>292
デザイナ触るのが面倒だったらOnLoadをオーバーライドでもおk
297デフォルトの名無しさん:2007/08/16(木) 10:38:08
不覚にも笑ってしまった
298デフォルトの名無しさん:2007/08/16(木) 10:52:28
雷マークのほうが分かりやすいのでは
299デフォルトの名無しさん:2007/08/16(木) 11:05:19
button.Click += [Tab][Tab]
は快感だよな
300デフォルトの名無しさん:2007/08/16(木) 11:24:10
http://www.rubyist.net/~matz/20070801.html
性能はともかく純粋の言語設計の善し悪しで 見るとC#はRubyの足下にも及ばないと思う。
301デフォルトの名無しさん:2007/08/16(木) 11:27:37
そうだね
302デフォルトの名無しさん:2007/08/16(木) 12:07:32
Rubyは業務で使ったことも言語仕様を研究したこともないから
なにもいえないな。
ひとつ言える事は、普及するまで研究しようとは思わない。
303デフォルトの名無しさん:2007/08/16(木) 12:29:33
>>300
根拠なく言われても。このスレで言われても。
304デフォルトの名無しさん:2007/08/16(木) 13:57:06
>>300
悔しさがにじみ出てる・・・
がんばれ・・・
305デフォルトの名無しさん:2007/08/16(木) 14:33:27
そりゃ作者は自分のがいいと言うでしょうよ
306デフォルトの名無しさん:2007/08/16(木) 14:40:22
構造体(classでもよいです)の静的な初期化を
したいです。
C++では、こうやって書いていたもの。

struct A { int x; char *str; };
const A tbl[] = {
{10, "one"},
{20, "two"},
};

C#ではどうやりますか?
307デフォルトの名無しさん:2007/08/16(木) 14:42:36
コンストラクタ
308306:2007/08/16(木) 14:50:06
struct A {
public A(int x, string str) { _x = x; _str = str; }
int _x; string _str;
}
A[] tbl = {
new A(10, "one"),
new A(20, "two"),
};

これでOK?
A[]に、constするとエラーになるな。

309デフォルトの名無しさん:2007/08/16(木) 14:52:22
C/C++ と違ってメモリに皮かぶせただけのものではないしねー。
310306:2007/08/16(木) 14:59:08
なるほど。
なんか、データがソースコードに埋め込まれている感が強くなるね。

こーゆー、データっぽいやつは、xmlなんかで
外においとけってことなのかしら。
311デフォルトの名無しさん:2007/08/16(木) 15:22:07
constの部分を無理やり生かそうとするならこんな感じかのう。
struct A {
  public int x; public string str;
  public A(int x, string str) { this.x = x; this.str = str; }
}
class Test4 {
  static readonly IList<A> a = Array.AsReadOnly(new A[] { new A(1, "one"), new A(2, "two")});
  static void Main() { ... }
}
312デフォルトの名無しさん:2007/08/16(木) 16:23:39
川俣の相手をしているようじゃ松本もゴミだな
313デフォルトの名無しさん:2007/08/16(木) 16:38:34
C#3.0をまて
314デフォルトの名無しさん:2007/08/16(木) 17:06:07
C#はオブジェクト指向。
データはクラスに属するからソースコードに埋め込まれている感が強く感じるのは当然だよ。
315デフォルトの名無しさん:2007/08/16(木) 17:57:08
>>313
これはこれで一体何の言語だって感じだ。
var ss = new [] { new { x=1, str="one" }, new { x=1, str="two" }};

ただマップ系の初期化がサポートされないのは残念。
=> はラムダ式で使っちゃったしな。
316デフォルトの名無しさん:2007/08/16(木) 18:00:16
そこまでするのに動的型は導入しないのは逆に不自然なような
317デフォルトの名無しさん:2007/08/16(木) 18:07:57
あるオブジェクトを参照しているオブジェクトの一覧を
取得することなんてできないでしょうか?

参照を全部外したつもりでGC.Collect()してるのに、
一向に破棄されないオブジェクトがあるので、
どこから参照されてるのか知りたいのです。
318デフォルトの名無しさん:2007/08/16(木) 18:09:59
CLR Profiler使えば
319317:2007/08/16(木) 18:15:27
ありがとうございます。
さっそく試してみます。
320デフォルトの名無しさん:2007/08/16(木) 18:15:54
>>315
var dic = (new [] { 
  new { x=1, str="one" }, new { x=2, str="two" }, new { x=3, str="two" }
    } ).ToDictionary(s => s.x, s=> s.str);
321317:2007/08/16(木) 18:43:34
CLR Profiler使ったけど
NullReferenceExceptionですぐおちるよ。
なんじゃこりゃ。
322デフォルトの名無しさん:2007/08/16(木) 18:54:26
.NET2.0には2.0用のバージョンがあるけどそれは確認した?
323317:2007/08/16(木) 19:01:42
http://www.microsoft.com/downloads/details.aspx?familyid=a362781c-3870-43be-8926-862b40aa0cd0&displaylang=en
これを使ったんで2.0用なんですが、
アプリが.NET3.0使ってるんで、それでだめなのかもしれないです。

324デフォルトの名無しさん:2007/08/16(木) 21:39:17
Releaseだとアプリケーションエラーで落ちるんだけど、Debugならエラー無し。

どこ見ればいいの?
325デフォルトの名無しさん:2007/08/16(木) 21:42:00
よくあることさ
326デフォルトの名無しさん:2007/08/16(木) 21:48:11
最適化関係
スレッドまわり
ディレクティブ
327デフォルトの名無しさん:2007/08/16(木) 21:51:16
>>326
確認してみます。
328デフォルトの名無しさん:2007/08/16(木) 22:48:18
アバウトな質問にはアバウトな回答ですかw
しかし、アプリケーションエラーってw
投げやりなのか頭悪いのかそれともその両方か
329デフォルトの名無しさん:2007/08/16(木) 22:52:52
ふらっとスレだからまあそんなのもいていいんじゃない
330デフォルトの名無しさん:2007/08/16(木) 23:01:51
便乗質問いいですか。

ネイティブなWin32アプリなら、リリースビルドでもデバッグ情報と
クラッシュダンプがあれば、後からデバッガで解析(ポストモータムデバッグ)
できますよね。

C#(というか.NET)の場合、客先で運用中に落ちたときの一般的な解析方法
みたいなのはあるんでしょうか。
331デフォルトの名無しさん:2007/08/16(木) 23:22:58
332デフォルトの名無しさん:2007/08/16(木) 23:28:16
質問させてください。
Visual Studio 2005 .Netでプログラムしているのですが、
「インクリメント検索」の機能を実装したいのですが、
どうやればいいか悩んでいます。

テキストボックスに文字
正規表現でリスト内のデータを検索
リストボックスにマッチしたものを表示

くらいしか思いつきません。
みなさんはどのようにしていますか?
よろしくお願いします。
333330:2007/08/16(木) 23:38:12
>>331
まさにズバリの情報です。
どうもありがとうございました。
334デフォルトの名無しさん:2007/08/17(金) 00:26:12
アプリケーションエラー以外の情報はどうやって探ればいいの?
335デフォルトの名無しさん:2007/08/17(金) 00:28:37
意味が分からんわ
以外のってどんなのだよ
適当にログ書きだしてろ
336デフォルトの名無しさん:2007/08/17(金) 00:45:14
アプリケーションエラー発生した際の詳細情報の確認方法教えてください><
337デフォルトの名無しさん:2007/08/17(金) 01:14:29
なぜかあるプロジェクトのみReleaseでビルドしても実行ファイルが
releaseフォルダに出力されないんだけど、原因わかる人いませんか?
338デフォルトの名無しさん:2007/08/17(金) 01:18:07
Releaseの出力先を別のところに指定してるんだろ
339デフォルトの名無しさん:2007/08/17(金) 01:20:44
それも確認したんですけど、初期設定のまんま変更してないです。
"bin\Release\"で。
ソリューション構成リストボックス?でRelease選択するだけで、
以前は一個のファイル化されたリリース版が出力されたと思うんだけど。。
340デフォルトの名無しさん:2007/08/17(金) 01:33:24
>>337
コンパイルするとき、以下のような情報は表示されていないの。
パスの情報は正しくなってる?

...
コンパイルの完了 -- エラー 0、警告 0
test1 -> E:\test1\test1\bin\Release\test1.exe
========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========
341デフォルトの名無しさん:2007/08/17(金) 02:04:35
form2を表示させるときに
何枚も表示させたいのでループさせて
同じインスタンス名で作ってみたんですけど
エラーもでないようですしこれでいいんですかね?
342デフォルトの名無しさん:2007/08/17(金) 02:16:21
バグを自分で埋め込むようなコードを作るなよw
343デフォルトの名無しさん:2007/08/17(金) 02:49:50
インスタンス名とはこれ如何に
344デフォルトの名無しさん:2007/08/17(金) 02:53:44
>>341
for(int i=0;i<length;i++)
{
Form form1 = new Form();
.....
form1.Show();
}
こんな感じ?
345デフォルトの名無しさん:2007/08/17(金) 03:00:08
>>344
Form form2;
.....
for(int i=0;i<length;i++)
{
form2 = new Form();
.....
form2.Show();
}
いやこうかな?
ループ中で最後に生成したFormのインスタンスしか制御できなくなるけどそれでもいいならいいよ
346デフォルトの名無しさん:2007/08/17(金) 03:25:12
どっちかっていうと344さんのが近いかな
そこまであからさまにループさせてるわけではないのだけど
表示する関数を呼び出すたびに実行されるようにしてるので。
制御できなくなるだけですか
ならポップアップのように情報をちょっと出すだけなので問題なさげですね
347デフォルトの名無しさん:2007/08/17(金) 03:25:43
>>345みたいに書くんだったら>>344にすれ。
どうせ最後のインスタンスだけ使えても意味ないんだし。
348デフォルトの名無しさん:2007/08/17(金) 03:39:40
どっちにしろ、何時破棄されるかわからない作りにするなよw
メモリの無駄遣いなだけ。
349デフォルトの名無しさん:2007/08/17(金) 11:02:43
配列に入れとけよ
350デフォルトの名無しさん:2007/08/17(金) 11:48:06
modeless fromなら、Closeボタンでclose(dispose)されるんだし
作り捨てでいいと思うけどな。
オレなんて new Form1().Show(); とかやってるぞ。
351デフォルトの名無しさん:2007/08/17(金) 11:52:44
>>350
modeless form*

Application.Run(new Form1()) ももろ作り捨てだったり
352デフォルトの名無しさん:2007/08/17(金) 12:18:39
Application.Runはステップがそれより先には進まないから別だろ
353デフォルトの名無しさん:2007/08/17(金) 12:20:42
メッセージループが終了したら戻ってくるお
354デフォルトの名無しさん:2007/08/17(金) 12:41:09
でもその時点でフォームは破棄されてるんだから放置にはならないお
355デフォルトの名無しさん:2007/08/17(金) 12:47:28
先生、放置はいけないと思ったので修正したらフォームがすぐ消えてしまいます。

using (Form2 form2 = new Form2()) {
  form2.Show();
}
356デフォルトの名無しさん:2007/08/17(金) 15:08:01
List<> の2つの要素を入れ替えるにはどうしたらいいですか?
357デフォルトの名無しさん:2007/08/17(金) 15:11:37
配列の要素入れ替えるのと変わらん
358デフォルトの名無しさん:2007/08/17(金) 15:12:00
T item1 = list[index1];
T item2 = list[index2]
list[index1] = item2;
list[index2] = item1;
359デフォルトの名無しさん:2007/08/17(金) 20:54:09
Visual Studioに関数のアウトラインを表示する機能ってないの?
最近の秀丸みたいな。
360デフォルトの名無しさん:2007/08/17(金) 20:58:15
コンポーネントを作成して、ツールボックスの「アイテムの選択」から
exeファイルを選んだのに、「ツールボックスに含めることの出来るコンポーネントは何もありません」
と表示されます。

どこが間違っているのか検討がつきません。
どのあたりが怪しいでしょうか?
361デフォルトの名無しさん:2007/08/17(金) 20:59:55
>>359
秀丸は知らんけどクラスビューは?

>>360
そのコンポーネントはpublic classになってる?
362359:2007/08/17(金) 21:25:40
>>361
ありがとう。
今見てるソース内の関数が列挙されてるとかだと見やすくていいんだけどねぇ。。
ごちゃごちゃしててあんまみやすくないね。
363デフォルトの名無しさん:2007/08/17(金) 21:34:56
>>362
右クリック→アウトライン→定義に縮小
364デフォルトの名無しさん:2007/08/17(金) 21:42:29
規定のテキストエディタを起動して
string変数の内容を表示したいのですが
どのようにすればいいのでしょうか?
365360:2007/08/17(金) 21:45:00
>>361
さっそくの回答ありがとうございます。
class TestListenerってなってるからprivateなんですよね?

明日会社に戻ったら試してみます。
ちなみに↑は私の家の古いソースを見ました。
でもツールボックスにはあるのが不思議。
前任者はどうやってツールボックスに追加したんだろう???
366デフォルトの名無しさん:2007/08/17(金) 21:46:56
既定のテキストエディタというのが .txt に関連付けられたアプリという意味なら、
いったんstringをファイルに出力してそれをProcess.Start
367359:2007/08/17(金) 22:04:12
>>363
ありがとう。
これ(Ctrl+M+L)を良く使ってたんだけど、やっぱり別ウインドウで常に表示しててほしかったので。
368デフォルトの名無しさん:2007/08/17(金) 22:19:05
プラグインでそれっぽいのなかったけか?
Source Outliner
SDKのサンプルかな??
369デフォルトの名無しさん:2007/08/17(金) 23:16:10
コンポーネントもexeなんだね。
勝手にDLLだと思ってた。
370デフォルトの名無しさん:2007/08/17(金) 23:22:28
普通はDLLにする
371デフォルトの名無しさん:2007/08/18(土) 00:31:32
オブジェクトブラウザ知らんのか?
372デフォルトの名無しさん:2007/08/18(土) 00:32:23
アレとは別もんだろ
373デフォルトの名無しさん:2007/08/18(土) 00:38:17
リージョンの事か?
374デフォルトの名無しさん:2007/08/18(土) 00:39:31
そうじゃにか
375デフォルトの名無しさん:2007/08/18(土) 03:45:41
知識ゼロの初心者なんだけど、おすすめの書籍ってある?
入門とか初心者でもたくさんあってよくわからないんだけど
376デフォルトの名無しさん:2007/08/18(土) 04:03:48
初心者の最初の課題はサーチエンジンで必要な情報を探すこと。
アマゾンでC#で検索してよさそうな本をピックアップして書店で立ち読み。
プログラミング関係者はみんなこんな感じで調べてる。
377デフォルトの名無しさん:2007/08/18(土) 04:37:28
>>376
近くの本屋行ってきて見たんだけど、品揃え悪いんだよ・・・
378デフォルトの名無しさん:2007/08/18(土) 04:48:13
開発環境って本来数万円するものだから
そのあまった金で手当たりしだい本買えばいいと思うYO
379デフォルトの名無しさん:2007/08/18(土) 04:50:28
品揃え悪いのか、MS関連の本では、最初に日経BP本から調べてるな俺は。
380デフォルトの名無しさん:2007/08/18(土) 05:03:07
>>378
え?Visual C#2005じゃだめなの?
381デフォルトの名無しさん:2007/08/18(土) 05:06:45
>>380
ExpressEdition?
入門にはベストな選択だと思うよ
382デフォルトの名無しさん:2007/08/18(土) 05:08:18
>>381
さんくすw
383デフォルトの名無しさん:2007/08/18(土) 05:11:26
とりあえずいまhttp://wisdom.sakura.ne.jp/programming/cs/index.html
見てるんだけど、どのプロジェクトで始めればいいかわからん・・・・
.NET Framework 1.0だから形式が違うのか?
384デフォルトの名無しさん:2007/08/18(土) 05:17:16
ちなみに最終的にシュミレーションゲーム(戦闘の指示出して見とく感じ)
のゲーム作りたいんだけど、最初は何がおすすめかな?
普通に”ひと目でわかるMicrosoft Visual C# 2005 アプリケーション開発入門”とか?
385デフォルトの名無しさん:2007/08/18(土) 05:37:59
シュミレーションゲーム
それは難しいw
386デフォルトの名無しさん:2007/08/18(土) 05:40:21
>>385
まじか・・・
作れないか?
387デフォルトの名無しさん:2007/08/18(土) 05:47:23
>>383
コンソールアプリケーションかな?
>>386
DirectX使えばC#でもできる
388デフォルトの名無しさん:2007/08/18(土) 05:55:42
>>387
DirectXってプログラミング言語なの?API群って書いてあるんですけど?
389デフォルトの名無しさん:2007/08/18(土) 06:05:57
390デフォルトの名無しさん:2007/08/18(土) 06:08:02
>>388
APIだけどそれがどうかしたの?
391デフォルトの名無しさん:2007/08/18(土) 06:17:05
>>390
APIって.NETみたいなもの?
392デフォルトの名無しさん:2007/08/18(土) 06:22:57
>>380
ん?十分でしょ
C#も少し前までは有料だったんだってさ
その分本かえるでしょ
逆引き500とかって本眺めてればリファレンス代わりになるんじゃね
393デフォルトの名無しさん:2007/08/18(土) 06:43:07
>>392
リファレンスって見ても難しいんじゃない?
394デフォルトの名無しさん:2007/08/18(土) 08:29:09
ブール型を文字列型に入れるのはそのままいけるのに
逆にそこで得た”True”を文字列型にいれられない・・・
if分で判別しなきゃだめでしょうか?
395デフォルトの名無しさん:2007/08/18(土) 08:38:18
いやまず
> ブール型を文字列型に入れるのはそのままいけるのに
そのままはいけないから。型をなんだと思ってる。
396デフォルトの名無しさん:2007/08/18(土) 09:46:40
え?じゃあチェックボックスが返すbool値はプログラムが勝手に変換してくれてたのか
キャストむずかしす
397デフォルトの名無しさん:2007/08/18(土) 10:58:39
>>384
XNA使えばC#でバリバリ作れるよ
とてもじゃないけど入門には向かないがw
398デフォルトの名無しさん:2007/08/18(土) 11:01:25
普通にGDI+でガリガリ書いてもよかろう。
399デフォルトの名無しさん:2007/08/18(土) 11:20:49
DirectXに行くのはGDI+の遅さに我慢できなくなってからでいいだろうね
400デフォルトの名無しさん:2007/08/18(土) 11:51:10
シミュレーションゲームだったらコマンド入れるとテキストベースで
戦況が一覧される系のプログラムを作って、
ある程度出来てからグラフィックに取り掛かれば十分。
そのグラフィックに必要な環境やライブラリはその時期になると自然と決まってくる。
401デフォルトの名無しさん:2007/08/18(土) 11:56:41
たぶん>>384はRTSじゃね?
ビジュアルとマウス操作前提だと思うけど
402デフォルトの名無しさん:2007/08/18(土) 12:04:49
>>401
あ〜そんな風に言うんだw
そんな感じのやつです
403デフォルトの名無しさん:2007/08/18(土) 13:12:18
他のアセンブリから参照する必要は無い限り、
クラスのアクセスをpublicにする必要は無いですか?(internal)

あるいは他の理由でpublicにしなければならない場合があるんでしょうか
404デフォルトの名無しさん:2007/08/18(土) 13:24:00
いや別にないが
405デフォルトの名無しさん:2007/08/18(土) 13:36:01
>>403
javaで他から利用されるクラスをプライベートに変更し、
そのクラスだけコンパイルし直したら他クラスから利用出来た。
他クラスごとコンパイルするともちろんエラー

これを使えばアクセス不能のライブラリが作れる!と思ったが
職場のlinuxではコンパイル出来ず。
処理系の問題か…

.netは同じ事出来るのかなぁ

スレ違いですみません。
406デフォルトの名無しさん:2007/08/18(土) 13:45:44
フレンドアセンブリ
407デフォルトの名無しさん:2007/08/18(土) 13:51:04
internal interface を実装するときにメンバを public にしなければいけないのはなぜなんだ
internal じゃあかんのか
408デフォルトの名無しさん:2007/08/18(土) 13:51:42
すいません。今、XML に XSLT を適用しようとしているのですが、XML 中に DTD の
宣言が入っていて、XmlException が発生してしまいます。
別に DTD の Validation をする必要はないので、無効にしたいのですが、無効になりません。

コードはこんな感じです。

XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.ProhibitDtd = true;
readerSettings.ValidationType = ValidationType.None;

XmlReader reader = XmlReader.Create(xsltFileName, readerSettings);

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(reader);

XmlTextWriter tw = new XmlTextWriter(outputFileName, Encoding.GetEncoding("shift_jis"));
xslt.Transform(sourceFileName, tw);
409405:2007/08/18(土) 14:06:27
System.MethodAccessExceptionがでた…
410デフォルトの名無しさん:2007/08/18(土) 14:13:53
そもそもそんなのロードできないようにバージョンつけとくべき
411デフォルトの名無しさん:2007/08/18(土) 14:24:32
>>366
やはりそれしかないですか・・・
レスありがとうございました
412405:2007/08/18(土) 14:47:51
>>410
レスありがとうございます!
バージョンですか調べてみます。
413デフォルトの名無しさん:2007/08/18(土) 14:50:19
XNAはシェーダープログラミングがレイトレーシング、それにモデリング技術がないと使いこなせない。
414デフォルトの名無しさん:2007/08/18(土) 14:50:30
いあそれはちょっと話がずれてると思う…
415デフォルトの名無しさん:2007/08/18(土) 14:53:23
2Dでスプライトしか使わないなら簡単
416デフォルトの名無しさん:2007/08/18(土) 15:23:58
SpriteBatch も BasicEffect もあるからシェーダは書かなくてもなんとかなると思う。
固定機能で今までは作っていたわけだし。

モデルとかコリジョンとかその他はまあ頑張れとしか言えんが。
417デフォルトの名無しさん:2007/08/18(土) 16:23:43
ToolStripMenuItemsにファイルから読み込んだ文字列をAddで追加していって、
Addされた文字列をクリックしたときに発生するイベントはどのように指定したらよいでしょうか?
Addされる文字列などは起動時にファイルから読み込まれるので動的な生成?って感じになるのですが・・・
418デフォルトの名無しさん:2007/08/18(土) 16:32:01
とりあえず MSDN で event とかのキーワードから調べてみる?
419デフォルトの名無しさん:2007/08/18(土) 17:03:41
>>418
すみません、ググってきます(´・ω・)
420デフォルトの名無しさん:2007/08/18(土) 22:26:12
多次元配列とかジャグ配列って使うことあるんすか?
使用頻度は少ないよね。
421デフォルトの名無しさん:2007/08/18(土) 22:36:10
なくはないけど
422デフォルトの名無しさん:2007/08/18(土) 22:42:36
>>420
多次元配列は基本中の基本。

画像データや音声データを扱うときに良く使います。
423デフォルトの名無しさん:2007/08/18(土) 23:34:50
いや使わんね。
少なくともC#では。
424デフォルトの名無しさん:2007/08/18(土) 23:44:50
多次元配列はメモリ量が少ない組み込み系には使えるが、
メモリ気にしないですむシステムで定義する理由がない。
425デフォルトの名無しさん:2007/08/18(土) 23:54:51
本気か?
426デフォルトの名無しさん:2007/08/19(日) 00:06:16
どうかな?
427デフォルトの名無しさん:2007/08/19(日) 00:08:08
まあ.NETの多次元配列は実際あまり使わないほうがいいかも。
428デフォルトの名無しさん:2007/08/19(日) 00:10:05
Array クラスの多次元配列の冷遇っぷりは異常……でもないか。
自分は使わないし。
429デフォルトの名無しさん:2007/08/19(日) 00:28:44
悪代官「良いではないか良いではないか」
430デフォルトの名無しさん:2007/08/19(日) 01:14:23
コレクションとかってのに朝鮮しようとして
リストボックス型にaddで追加して実際のリストボックスに入れてあげようとしたけど
項目ありすぎてわかんないお(´・ω・`)

入力補助みたいなので一覧みたいなの表示されるけど
ちんぷんかんぷん。みんなどうやって覚えたの
431デフォルトの名無しさん:2007/08/19(日) 01:40:04
>>429
町娘「Array〜」
432デフォルトの名無しさん:2007/08/19(日) 02:27:20
あるクラスのメンバ変数から、自分の他のメンバ変数って呼べないんですか?
private string info = "メンバa=" + this.a;
みたいに…

インタフェースOyaでString Infomationというプロパティを宣言して、それを実装するクラスKoでは
メンバ変数という形でもつ設定値等を説明文付きで返したかったんですが。
上の例みたく、info変数に入れ込んで…
433デフォルトの名無しさん:2007/08/19(日) 02:27:59
>>429
>>431
(・∀・)ジサクジエンデシタ

>>430
だいたいListBoxとかListViewとかComboBoxとかは
Itemsプロパティがコレクション取得/設定のためのプロパティだよ

listBox.Items.Add( object ) みたいな
434デフォルトの名無しさん:2007/08/19(日) 02:34:20
>>432

>private string info = "メンバa=" + this.a;

はある意味、略記法。
実際はコンストラクタで初期化される。
その時点では this.a が初期化されてるかわかんないでしょ
435デフォルトの名無しさん:2007/08/19(日) 02:40:58
>>434
んで、>>432のようなことをしたい場合、Infomationのgetの中で初めて
this.aを呼んでやる、つまりthis.aに関する説明文はその中で書いてやるというのが
普通なんでしょうか?
436デフォルトの名無しさん:2007/08/19(日) 02:55:15
information のスペルが間違ってる
437デフォルトの名無しさん:2007/08/19(日) 08:28:29
infoにクラスのインスタンスを作った時点のthis.aを使いたいのか、
プロパティが呼ばれた時点のthis,aを使いたいのかわからないな。
後者なら>>435の方法になるし、
前者なら
class Hoge {
 string a = "foo"; string info;
 public Hoge() { info = "メンバーa=" + a; }
438デフォルトの名無しさん:2007/08/19(日) 10:36:28
後者なら特に理由がなければメンバ変数にしないでそのつど文字列作って返すのが普通
439デフォルトの名無しさん:2007/08/20(月) 00:23:28
VISUAL C#を仕事で使うことになったので、今日参考書を見て回ったのですが、
最初の参考書としてお勧めのものがあれば教えてください。
自分では「独習C#」という本が見やすく、詳しそうに感じたので、この本を買おうか
と考えているのですが、VISUAL C#での開発なのでVISUAL C#を題材に絞った
本のほうがよいのかとも思っています。
業務はVISUAL C#を使用するのは画面の制御周りで、細かな内部処理は別言語
を使用するため、そこまで掘り下げた内容でもいいのかとも思ったりもしています。
ちなみにプログラミング経験はCOBOLだけあります。
440デフォルトの名無しさん:2007/08/20(月) 00:38:31
化石だな
441デフォルトの名無しさん:2007/08/20(月) 01:28:51
>>439
VISUAL C#は大文字小文字を区別する言語なのでVisual C#と書いたほうが良い。
参考書は自分がわかりやすいVC#の本を買えば良い。
442デフォルトの名無しさん:2007/08/20(月) 02:32:06
>441
その前に全角半角の区別を…
443デフォルトの名無しさん:2007/08/20(月) 05:10:47
プログラミング言語は本1冊読んだ程度では、初歩的なコードしか書けない。
最低でも数冊は読まないとな。
言語知識は独習C#で間に合うが、画面の制御と言うならば、
Forms、WPFなどの本を使わないと身に付かない。
444デフォルトの名無しさん:2007/08/20(月) 09:23:37
>>443
Forms の本でいい本はありますか?本屋で見てても Dobon を上回るような本がみつからなくて・・・
445デフォルトの名無しさん:2007/08/20(月) 09:27:31
ありません
446デフォルトの名無しさん:2007/08/20(月) 10:01:31
C#を学ぶ前にオブジェクト指向について軽く勉強しておくべきですか?
447デフォルトの名無しさん:2007/08/20(月) 10:04:24
Wikipedia読むくらいはしといてもいいかもね
448デフォルトの名無しさん:2007/08/20(月) 10:06:42
お返事ありがとうございます。
その程度で十分なんですね。早速、Wikiを読んでみようと思います
449デフォルトの名無しさん:2007/08/20(月) 10:11:25
ちゃんと勉強するのは、だいたい一通りコード読めるようになってからにした方が早い
450デフォルトの名無しさん:2007/08/20(月) 10:15:29
お返事ありがとうございます。
一通り勉強してからの方がいいですか。それもそうですね。。。
しばらくはC#の勉強だけにしようと思います。オブジェクト指向について
勉強するのは当分、先ですね
451デフォルトの名無しさん:2007/08/20(月) 10:38:11
オブジェクト指向というのは今後廃れていきます
プログラムを複雑化させた諸悪の根源なのです
452デフォルトの名無しさん:2007/08/20(月) 10:41:33
でたらめ言うなよ
453デフォルトの名無しさん:2007/08/20(月) 16:31:07
>>451
その説明のソースはどこにある?
454デフォルトの名無しさん:2007/08/20(月) 16:35:02
すいません、現在の月の二ヶ月後の末日を取得するのってどうやってますか?

たとえば今日なら8月なので2007年10月31日というDateTimeの値がほしいのですが。。。
455デフォルトの名無しさん:2007/08/20(月) 16:40:32
ヒント 自分で計算する
456デフォルトの名無しさん:2007/08/20(月) 16:45:59
>>454
DateTimeにTimeSpanを足す
457デフォルトの名無しさん:2007/08/20(月) 16:46:56
>>454
現在が8月なら8月1日に月3つを足して1日引く。
458デフォルトの名無しさん:2007/08/20(月) 16:46:57
459デフォルトの名無しさん:2007/08/20(月) 16:54:27
DateTime twoMonthsLater = DateTime.Now.AddMonths(2);//今から2ヵ月後の日時
460デフォルトの名無しさん:2007/08/20(月) 16:57:01
>>457 と同じだがコーディングするとこう
DateTime ct = DateTime.Now;
DateTime td = new DateTime(ct.Year, ct.Month, 1).AddMonths(3).AddDays(-1);
461デフォルトの名無しさん:2007/08/20(月) 16:58:57
>>454
DateTime dt = DateTime.Today.AddMonths(2);
int year, month, day;
year = dt.Year;
month = dt.Month;
day = DateTime.DaysInMonth(year, month);
string date = String.Format("{0}/{1}/{2}, year, mount, day);
MessageBox.Show(DateTime.Parse(date).ToString("d"));
462デフォルトの名無しさん:2007/08/20(月) 17:01:23
書き間違いを訂正
---
DateTime dt = DateTime.Today.AddMonths(2);
int year, month, day;
year = dt.Year;
month = dt.Month;
day = DateTime.DaysInMonth(year, month);
string date = String.Format("{0}/{1}/{2}", year, month, day);
MessageBox.Show(DateTime.Parse(date).ToString("d"));
463デフォルトの名無しさん:2007/08/20(月) 17:04:08
ああ、末日か。
勘違い。
>>460で。
464461:2007/08/20(月) 17:06:42
>>460で。
465デフォルトの名無しさん:2007/08/20(月) 17:39:16
カスが内容も把握せず、冗長な糞レスつけるなよなww
466デフォルトの名無しさん:2007/08/20(月) 17:49:02
氏ね^^
467デフォルトの名無しさん:2007/08/20(月) 18:01:41
冗長?>>465は誰に言ってんだろぅ・・・
468デフォルトの名無しさん:2007/08/20(月) 18:04:23
>>2 じゃね?
469デフォルトの名無しさん:2007/08/20(月) 18:10:27
>>468
ポップアップさせたらふいた
470デフォルトの名無しさん:2007/08/20(月) 18:20:06
>>465は463->464を見て461も勘違いしてると思ったんだろ
471デフォルトの名無しさん:2007/08/20(月) 19:32:40
どう考えても461は勘違いだろ・・・
472デフォルトの名無しさん:2007/08/20(月) 19:43:29
↑どこが?
473デフォルトの名無しさん:2007/08/20(月) 19:45:21
えーと、一応言っておくと>>459=>>463(=俺)ね
474デフォルトの名無しさん:2007/08/20(月) 20:54:54
すんません、教えてください。

環境はVS2005 C#です。

UserControlを継承したプログラムを作成したんですが、
ツールボックスにそのコントロールが追加されません。

VS2003のVBでは自動的に追加されていたので、

ツールボックス右クリック→アイテムの選択から追加する以外に、
自動的に追加する方法があると思って
調べてみましたがわかりませんでした・・・。

よろしくお願いいたします。m(_ _)m
475デフォルトの名無しさん:2007/08/20(月) 21:06:37
コントロールのコードがFormと同じプロジェクトならプロジェクトをビルドすれば
表示されると思う。

別のプロジェクトならプロジェクト参照すれば表示されるよ。
476デフォルトの名無しさん:2007/08/20(月) 21:08:57
自動的に追加されません
477デフォルトの名無しさん:2007/08/20(月) 21:12:46
自動的に追加されます
プロジェクトにカスタムコントロールを新規作成してビルドしてみれ
478デフォルトの名無しさん:2007/08/20(月) 21:46:13
>>475
それが追加されないんです・・・。
新しい項目の追加→ユーザーコントロールから作成したんですが・・・。

>>477
それでもダメでした・・・orz
なんでだろう・・・?

479デフォルトの名無しさん:2007/08/20(月) 21:49:39
もしかして作成したコントロールのデザイナを表示したままになってないか?
フォームのデザイナとか開いてみたか?
480デフォルトの名無しさん:2007/08/20(月) 21:55:23
>>479
う〜ん、全部閉じて開きなおしたり、
再起動したりしましたがダメでした・・・。
設定も特に変更してないのですが・・・。
481デフォルトの名無しさん:2007/08/20(月) 22:06:11
1番上に出ると思うが。
ツールボックスの (ソリューション名)コンポーネントは開いてるのか?
482デフォルトの名無しさん:2007/08/20(月) 22:09:40
>>480
まあ、まず間違いなく(表示されてるのに)見落としてるだけだw
ムラサキの歯車のアイコンが最上段に表示されてるでしょ
483デフォルトの名無しさん:2007/08/20(月) 22:11:43
新規作成でwindowsアプリを選ぶ。

新しい項目の追加→ユーザーコントロール

ユーザーコントロールをいじる。

ビルド

form1のタブをクリック

ツールボックスに歯車のアイコンが…
484デフォルトの名無しさん:2007/08/20(月) 22:14:51
ツールボックスを右クリック→ツールボックスのリセット
485デフォルトの名無しさん:2007/08/20(月) 22:39:55
折りたたんで見えてないなんておちじゃないだろうな…
486デフォルトの名無しさん:2007/08/20(月) 23:17:38
>>481-485
アドバイスありがとうございます。
書き込みも含め、色々と試行錯誤してみましたがダメでした・・・。
VBプロジェクトで同じことやってもダメでした・・・。
折りたたみも確認して、リセットも行いました。

こりゃもう、再インストールしたほうがよさげですかね・・・orz
487360:2007/08/20(月) 23:23:32
C#のボタンでクリックした時に凹んだ状態になりますが、
KeyDownで押しっ放しにしてるときに、その表示にするにはどうしたらいいですか?
いろんなところくぐってみましたが、解決策が見つからなくて。
お願いします。
488デフォルトの名無しさん:2007/08/20(月) 23:24:32
>>487
checkbox使え。
489デフォルトの名無しさん:2007/08/20(月) 23:26:06
>>486
何個かコントロール作って同じこと試して、
原因がそのコントロール自体にあるのか確かめてからにしたら?
490デフォルトの名無しさん:2007/08/20(月) 23:31:49
サービスパック適用してないからじゃないか?
結構VS2005はバグあるぞ。
491360:2007/08/20(月) 23:44:08
>>488
checkboxってコントロールのですよね?
どうやったらボタンの表示が変わるか教えていただけないでしょうか。
関連付けできなくてすみません。
492デフォルトの名無しさん:2007/08/20(月) 23:48:57
>>491
質問自体が曖昧・情報が欠落しすぎでワケワカメ
(まあ488も分からんが)

Buttonコントールのことだと想定して
りふれくたーでみたら分かるけどOnKeyDownオーバーライドしたら
いけるんじゃね?
spaceキーなら普通に押しっぱなしでへこむだろ
493491:2007/08/20(月) 23:55:29
>>492
ありがとうございます。
Speceキーならたしかに凹みました!!
リフレクターでのオーバーライド、、、これをもう少し調べてみます。
(リフレクターって言葉初めて聴きました)
494デフォルトの名無しさん:2007/08/20(月) 23:56:52
メンバ変数とフィールドの違いを教えてください
495デフォルトの名無しさん:2007/08/21(火) 00:04:43
プロパティ
496デフォルトの名無しさん:2007/08/21(火) 00:07:11
>>494
同じ
497486:2007/08/21(火) 00:37:18
>>489-490
アドバイスありがとうございます。
サービスパック適応してませんでした・・・。
いまインストール中です。明日には終わるかな?
とりあえずそれで試してみようと思います。
ありがとうございました!
498デフォルトの名無しさん:2007/08/21(火) 01:12:11
とてもくだらないかと思いますが、承知の上質問しますw

C#のコマンドラインプログラムなんですえけど、WriteLineメソッド
実行後ウィンドウがものすごい早さで消えるんですけど、
例えば、ユーザーがEnterキーを押して始めて終了するというようには
できないでしょうか。
499デフォルトの名無しさん:2007/08/21(火) 01:15:49
Console.ReadLine();

コマンドプロンプトにプログラムをD&D
500デフォルトの名無しさん:2007/08/21(火) 01:23:07
何のウインドウが消える?
501500:2007/08/21(火) 01:24:22
あぁごめん。コマンドラインか。
502デフォルトの名無しさん:2007/08/21(火) 01:38:59
ブレークポイントでしょ?
左端クリックして丸をつけましょう。498ね
503デフォルトの名無しさん:2007/08/21(火) 02:12:46
Hello world!のやり方ってどうやるんですか?
504デフォルトの名無しさん:2007/08/21(火) 03:05:02
まず右手をあげて
505デフォルトの名無しさん:2007/08/21(火) 03:21:54
506デフォルトの名無しさん:2007/08/21(火) 07:24:01
で、そのあとは?
507デフォルトの名無しさん:2007/08/21(火) 07:29:19
>>498
デバックモードなんじゃない?
508デフォルトの名無しさん:2007/08/21(火) 08:07:13
いえモードに関係なくすぐ終了してしまいます
僕のPCが高性能すぎるからですかね
509デフォルトの名無しさん:2007/08/21(火) 08:10:42
しかし、質問者は健康的な生活を送ってるなw
510デフォルトの名無しさん:2007/08/21(火) 08:36:17
CheckBoxのプロパティの値について質問なのですが、
Accessのyes/no型でDataGridviewにCheckBoxを表示させているのですが、
そのCheckBoxがチェックされているか、されていないかの情報を取得するには、
どうすればよいか教えていただけないでしょうか。
よろしくお願いします。
511デフォルトの名無しさん:2007/08/21(火) 09:22:39
普通にCheckBoxのプロパティから取れないか?
512デフォルトの名無しさん:2007/08/21(火) 10:40:19
何時間右手上げてればいいんだよ
続き賭けやボケ!!ヽ(`Д´)ノ
513デフォルトの名無しさん:2007/08/21(火) 10:50:16
朝礼台に上って
514デフォルトの名無しさん:2007/08/21(火) 11:28:10
左手を口に添えて


つーかなにこのやる気の無いスレは?
>>510
CellのValue
515デフォルトの名無しさん:2007/08/21(火) 13:43:32
>>503
using System;
static class Program {
static Program() { Console.WriteLine("Hello world!"); }
public static void Main() { }
}
516デフォルトの名無しさん:2007/08/21(火) 14:54:50
理解できない。日本語でおねがいします
517デフォルトの名無しさん:2007/08/21(火) 14:55:52
システムを使用します;
静的なクラスProgram{
静的なProgram(){Console.WriteLine、(「こんにちは、世界!、」、}
公共の静的な空のMain(){ }
}
518デフォルトの名無しさん:2007/08/21(火) 15:05:30
>>511、514さん回答ありがとうございます。
CheckBoxの値を取得することが出来ました。
現在、取得出来た値がtrueだったら、
他のCheckBoxにCheckを入れるプログラムを作成しているのですが、
if文がtrueの方に処理をしてくれません。
何か良い比較方法はないでしょうか。
よろしくお願いします。

if (System.Convert.ToString(dataGridView1.CurrentRow.Cells[2].Value) == "true")
{
  hoka.Checked = true;
}
519デフォルトの名無しさん:2007/08/21(火) 15:37:38
ブレークポイントを設定して、値を確認する方法を最初に勉強した方が良くないか?
520デフォルトの名無しさん:2007/08/21(火) 15:44:57
で、DateTimeを質問したにーちゃんは何処行ったんだ?
521デフォルトの名無しさん:2007/08/21(火) 16:06:22
自己解決しました
522デフォルトの名無しさん:2007/08/21(火) 16:07:27
>>519
言える
>>518
その行でF9押してF5押して、止まったらその変数の上にマウス乗っけるだけだぞ
523デフォルトの名無しさん:2007/08/21(火) 16:45:54
Debugの有効活用はプログラミング開発の基本だからな。
524デフォルトの名無しさん:2007/08/21(火) 20:11:03
form1とform2で共通のグローバル変数にアクセスするときに
for文でまわしてるときなど片方からのアクセスを拒否したいんですが
スレッドのようにロックだのミューテックスだのって使えるんですか?
525デフォルトの名無しさん:2007/08/21(火) 20:12:16
普通にlockすればいいよ。
526デフォルトの名無しさん:2007/08/21(火) 20:16:58
あれ、form1とform2って同じスレッドになるんじゃないの。
ロックは必要?
527デフォルトの名無しさん:2007/08/21(火) 20:18:35
form1とform2は普通は同じスレッドで動いてるのだからlockしなくてもいい。
528デフォルトの名無しさん:2007/08/21(火) 20:21:26
別スレッドからの操作ならinvokeすれば良い。
529524:2007/08/21(火) 20:53:45
うーんロックが効いてるんだか効いてないんだかよくわらん
form1でsleep使うとform2も止まってしまうのか
確かに同一スレッド扱いでロックとかいらないみたいですね
530デフォルトの名無しさん:2007/08/21(火) 21:47:22
扱い……
531デフォルトの名無しさん:2007/08/21(火) 21:50:34
スレッド=小人さん一人
一人しかいないから片っぽで仕事してるとき他からアクセスされることはない
Thread.Sleepすると一人しかいない小人さんが寝てしまうので全部止まる
532デフォルトの名無しさん:2007/08/21(火) 21:59:27
確かにどうやっても割り込めなかったので同一スレですた
533デフォルトの名無しさん:2007/08/21(火) 22:34:20
ソース上でラジオボタンを可変個、グループボックス内に作成しました。
これらのラジオボタンにイベントを指定するにはどうすればいいのでしょうか?

for (int i = 0; i < t; i++) //tは可変
{
RadioButton radio = new RadioButton();
radio.Location = new Point(10, 10 + i * 10);
}

From上にコントロールを貼り付ける場合は
radio.Enable = true;
みたいな感じで、「名前.イベント」ですが、
手書きでコントロールを作成した場合はどうすればいいのでしょうか?

よろしくお願いします
534デフォルトの名無しさん:2007/08/21(火) 22:35:29
ソース上でラジオボタンを可変個、グループボックス内に作成しました。
これらのラジオボタンにイベントを指定するにはどうすればいいのでしょうか?

for (int i = 0; i < t; i++) //tは可変
{
RadioButton radio = new RadioButton();
radio.Location = new Point(10, 10 + i * 10);
}

From上にコントロールを貼り付ける場合は
radio.Enable = true;
みたいな感じで、「名前.イベント」ですが、
手書きでコントロールを作成した場合はどうすればいいのでしょうか?

よろしくお願いします
535デフォルトの名無しさん:2007/08/21(火) 22:37:35
なんも変わらんよ。
自動生成されたソースを見れば、イベントがどう追加されてるかわかるぞ。
536デフォルトの名無しさん:2007/08/21(火) 22:37:55
radio.イベント名 += メソッド名(またはTabキーを2回押す);
解答としてはこれでいいんだけど、いい機会だからちゃんと言語としてのC#を勉強してみたら
537デフォルトの名無しさん:2007/08/21(火) 22:47:57
勇気を持って書き込みます。

string型の変数strAに"AAA"を代入した後、
strAを引数にして別メソッドを呼び出し、
呼び出されたメソッドで仮引数strBに"BBB"を代入します。
このあと呼び出し側のメソッドでstrAを表示させると、
"BBB"になると思ったのですが、実行したところ"AAA"のままでした。

stringは参照型なので、変数strAと変数strBは同じ実態を参照していると思うのですが、
なぜ違う内容になるのでしょうか。
よろしくお願いします。
538デフォルトの名無しさん:2007/08/21(火) 22:49:58
いやお前らの書いてることに違和感を感じるよ。
539デフォルトの名無しさん:2007/08/21(火) 22:51:06
プログレスバーを、バーが伸びていく方法ではなく、バーが端から端へループする方法にしたい場合、どうすればよいですか?
こんな感じのものです。
|
|||
 |||
  |||
   |||
    |
540デフォルトの名無しさん:2007/08/21(火) 22:51:50
ないものは作るしかない!
ないものは作るしかない!
ないものは作るしかない!
541デフォルトの名無しさん:2007/08/21(火) 22:53:31
>>537
同じ実体を参照してたのに、呼び出し先で別の実体を参照しちゃってるじゃんか。

>>539
ProgressBarStyle かな
542デフォルトの名無しさん:2007/08/21(火) 22:55:53
>>537
ref使え
543デフォルトの名無しさん:2007/08/21(火) 22:56:49
>>537
「参照型」と「参照渡し」は違う
それはポインタを値渡ししてるだけ
544デフォルトの名無しさん:2007/08/21(火) 22:58:11
この中に一人、エビアンがおる。
545デフォルトの名無しさん:2007/08/21(火) 23:01:25
method (string strB) // strB -> "AAA"

strB="BBB"; // strB→"BBB" 参照先の変更

いくらmethod実行しても
strA→"AAA"のまま。
546デフォルトの名無しさん:2007/08/21(火) 23:05:40
これは酷い
547デフォルトの名無しさん:2007/08/21(火) 23:07:03
どれがどう酷いの
548デフォルトの名無しさん:2007/08/21(火) 23:12:02
オマイラ、どんだけふらっとなんだよww
549デフォルトの名無しさん:2007/08/21(火) 23:13:19
誰も間違ったことは言ってないとは思うけど
550デフォルトの名無しさん:2007/08/21(火) 23:16:22
やってみればわかる?
551デフォルトの名無しさん:2007/08/21(火) 23:16:39
537です。
>>541,542,543,545
少しの間にたくさんのレスありがとうございます。

よろしければもう少し教えてください。
つまり、変数に新しい値を代入するということは、参照先の実態が変更されるのではなく、
参照先アドレスが変更されるということなのでしょうか。例えば、

strA = "AAA"
strA = "BBB"

この場合、1行目のstrAが参照しているアドレスと、2行目のstrAが参照しているアドレスは
別物ということでしょうか。よろしくお願いします。
552デフォルトの名無しさん:2007/08/21(火) 23:17:24
>>551
そのとおり
553デフォルトの名無しさん:2007/08/21(火) 23:20:45
>>552
ようやく理解できました。ありがとうございました。
554デフォルトの名無しさん:2007/08/22(水) 00:25:56
>>546
素人を混乱させるな。
555デフォルトの名無しさん:2007/08/22(水) 00:32:19
>>539それって何のためのプログレスバーだよw
どこまで進んだのかわかりにくいじゃん
556デフォルトの名無しさん:2007/08/22(水) 00:34:50
ちゃんと仕事してるふりをするためだろ。
ユーザーも流れる緑色を眺めてれば気が紛れる。
557デフォルトの名無しさん:2007/08/22(水) 00:40:03
Marqueeってたしか2003とかでビジュアルスタイルがオンのときしか
使えないんだよな

自前でやるしかないね
558デフォルトの名無しさん:2007/08/22(水) 01:12:12
>>541
まさにそれでした。ありがとうございます。
>>555
99%で止まってしまうよりマシかと思いまして。
559デフォルトの名無しさん:2007/08/22(水) 01:31:22
なんで99%でとまるんだ?
560デフォルトの名無しさん:2007/08/22(水) 01:37:21
終わるまで仕事の総量がわからないからじゃね?
561デフォルトの名無しさん:2007/08/22(水) 01:41:12
必ずしも進捗状況を明示できるとは限らんだろ。
例えばネット越しの処理を呼び出し中とか。
562デフォルトの名無しさん:2007/08/22(水) 01:43:26
>>557
オフのときは対まで無理やり動かす。
すげー見栄え悪いし辺だけど。
いやなら自作しろってこったな。
563デフォルトの名無しさん:2007/08/22(水) 01:43:56
対ま??
タイマ
564デフォルトの名無しさん:2007/08/22(水) 01:44:27
辺??

565デフォルトの名無しさん:2007/08/22(水) 01:48:14
探せばコントロール転がってるよ。
566デフォルトの名無しさん:2007/08/22(水) 01:50:22
五児だ辻
567デフォルトの名無しさん:2007/08/22(水) 02:15:20
ついまで?
568デフォルトの名無しさん:2007/08/22(水) 04:45:49
何かユーザーアカウント登録とかしなくちゃいけないの?MSDNの
569デフォルトの名無しさん:2007/08/22(水) 09:09:19
まあ9割の人が2、3回起動して終わるからいらないんじゃね
570デフォルトの名無しさん:2007/08/22(水) 15:38:52
VS2008β使ってて分かったんだけど
C# 3.0だと今まで継承したりインターフェースを実装したりしてたとこの
ほとんどがデリゲートとラムダ式に置き換わるぜ
言語仕様としてはそんなに変わってないように見えるかも知らんけど
やってることはほとんど別の言語使ってるみたいになる
571デフォルトの名無しさん:2007/08/22(水) 16:24:30
ラムダ式をさらにExpression<>にすると・・・クォートかよ!
ヘルスバーグはじけたと思ってしまった。
572デフォルトの名無しさん:2007/08/22(水) 16:27:21
あまり拡張しすぎて、C++みたいに気持ち悪い言語にならなければいいが・・・
573デフォルトの名無しさん:2007/08/22(水) 16:35:58
ラムダ式にfor文のiを入れないとか
LINQで作ったEnumeratorは二度列挙しないとか
変なノウハウは必要になったな
574デフォルトの名無しさん:2007/08/22(水) 18:55:41
Form2を作るとできるForm2型ってなんなの
ふつうにForm型で受けようとしてもだめなんすね。不思議
575デフォルトの名無しさん:2007/08/22(水) 18:59:17
何を言ってるの
576デフォルトの名無しさん:2007/08/22(水) 19:03:01
Formと2は同じ型じゃないのかなと思って
577デフォルトの名無しさん:2007/08/22(水) 19:08:21
Formの定義を見てみろよw
578デフォルトの名無しさん:2007/08/22(水) 19:24:43
Form2はFormを継承してないんじゃないの
579デフォルトの名無しさん:2007/08/22(水) 19:30:27
public partial class Form2 : Form
たぶん>>574はこれを
public partial class Form : Form
と書き換えようとしたんじゃないかなw
580デフォルトの名無しさん:2007/08/22(水) 21:51:14
コンソールアプリを開発しているのですが
exeを実行中に同じexeを実行した場合、実行できなくしたいのですが
どういうロジックで可能でしょうか?
581デフォルトの名無しさん:2007/08/22(水) 21:53:52
多重起動禁止とかでググれ
582デフォルトの名無しさん:2007/08/22(水) 21:54:17
多重起動関連でググれがいくらでも出てくるぞ?
583デフォルトの名無しさん:2007/08/22(水) 21:54:29
584デフォルトの名無しさん:2007/08/22(水) 21:54:49
かぶったorz
585デフォルトの名無しさん:2007/08/22(水) 21:56:44
多重起動大人気
586デフォルトの名無しさん:2007/08/22(水) 22:05:25
587デフォルトの名無しさん:2007/08/22(水) 22:56:32
よく文字列の前に@をつけてたりしますが
これは何の意味があるの?
588デフォルトの名無しさん:2007/08/22(水) 22:57:49
WYSIWYG文字列
589デフォルトの名無しさん:2007/08/22(水) 22:57:53
ある。
\\とか書かなくて良くなる。

と混乱させてみる。
590デフォルトの名無しさん:2007/08/22(水) 22:58:57
お洒落
591デフォルトの名無しさん:2007/08/22(水) 23:00:19
アドレスだよ。
592デフォルトの名無しさん:2007/08/22(水) 23:02:34
属性。
俺様@酔っ払い
593デフォルトの名無しさん:2007/08/22(水) 23:07:43
@を付けると"\n"が改行コードとみなされない。
それだけの意味。
594デフォルトの名無しさん:2007/08/22(水) 23:08:16
なぜほんとのことをいわない
595デフォルトの名無しさん:2007/08/22(水) 23:11:43
おまえもにゃ〜

verbatim文字列
答えです。
596デフォルトの名無しさん:2007/08/22(水) 23:12:25
バームクーヘンとかなんとか言うんだよな
597デフォルトの名無しさん:2007/08/22(水) 23:14:49
ところで、@って何なの?
演算子でもキーワードでもないよね
float a=1.0f のfと同じように、文字列リテラルの一部なの?
598デフォルトの名無しさん:2007/08/22(水) 23:15:25
" の たぐい
599デフォルトの名無しさん:2007/08/22(水) 23:19:22
そういえばint @if;なんて使い方もあるもんな
そりゃそうだ
600デフォルトの名無しさん:2007/08/22(水) 23:24:26
>>588
"""""""""""""""""""""""""""
601デフォルトの名無しさん:2007/08/22(水) 23:26:13
>>587
 "C:\\b\\d\\e\\" を
 @"C:\b\d\e\" と書けたり

string sql = @"
SELECT
  *
FROM
  HageHoge
WHERE
  〜 ";

と書ける優れもの。
602デフォルトの名無しさん:2007/08/22(水) 23:31:12
>>588
D厨は黙っていてくださいね^^
603デフォルトの名無しさん:2007/08/22(水) 23:49:57
>>599
それも使った難読化したことがあるが効果絶大
604デフォルトの名無しさん:2007/08/23(木) 00:00:10
メソッド名とか変数名とか全部C#のキーワードに置き換えるのか。
ちょっと楽しそうだ。
今度やってみるよ。
605デフォルトの名無しさん:2007/08/23(木) 00:22:54
using @delegate = System;
namespace ConsoleApplication1
{
    class @namespace
    {
        static void Main( string[] args )
        {
            @int @foreach = new @int();
            @foreach.@static();
        }
    }

    class @int
    {
        static string @public = @"Hello! ";
        static string @private = @"World";
        public void @static()
        {
            @delegate.Console.WriteLine( @public + @private );
            @delegate.Console.ReadLine();
        }
    }
}
606デフォルトの名無しさん:2007/08/23(木) 00:36:10
>>605
このソースについて会話したらすごいことになりそうだな。
607デフォルトの名無しさん:2007/08/23(木) 00:37:22 BE:949266566-2BP(655)
>>605
そそ そんな感じ
コンパイルしてリフレクタで逆コンパイルしてみて
608デフォルトの名無しさん:2007/08/23(木) 01:01:45
namespace ConsoleApplication1 {
internal class @int {
private static string @private;
private static string @public;
static @int() {
@public = "Hello! ";
@private = "World";
}
public @int() { }
public void @static() {
Console.WriteLine(@public + @private);
Console.ReadLine();
}
}
internal class @namespace {
public @namespace() { }
private static void Main(string[] args) {
new int().@static();
}
}
}

どうみても読みやすくなってます。本当ん(ry
609デフォルトの名無しさん:2007/08/23(木) 01:06:42
あら、前は@付いてなかったような・・・
もしかして対策された?
でもnew int().@static();はいい感じ
610デフォルトの名無しさん:2007/08/23(木) 11:48:16
そこまでするなら.ilにして記号混ぜまくれよ
611デフォルトの名無しさん:2007/08/23(木) 13:35:03
いちいちコードを書くのが大変なので
プログラムにプログラムを作らせればいいことに気がつきました
C#で可能でしょうか?
612デフォルトの名無しさん:2007/08/23(木) 13:40:24
マスターメンテナンス画面自動生成PGを作ったことがある
C#で

613デフォルトの名無しさん:2007/08/23(木) 14:08:19
可能
614デフォルトの名無しさん:2007/08/23(木) 14:29:38
別にC#で機械語生成することも
Cコンパイラ造ることも出来るしな
615デフォルトの名無しさん:2007/08/23(木) 14:34:00
実行時にIL書き下せるのはびっくりする
616デフォルトの名無しさん:2007/08/23(木) 14:37:44
まあそういうのはインタプリタ言語のソースコード生成した方がいいだろうけど
617デフォルトの名無しさん:2007/08/23(木) 17:15:02
いや、機械に機械が直せるか!
そんなことは可能なのかって事だと思う
618デフォルトの名無しさん:2007/08/23(木) 17:17:11
可能だよ。予め全ての故障に対する対処法を書いておけばいいだけ。
619デフォルトの名無しさん:2007/08/23(木) 17:23:37
故障に対する対処法が書いてある部分が故障したらどうするんだ
620デフォルトの名無しさん:2007/08/23(木) 17:27:14
その部分の直し方を知っている機械が他にあれば直せる。
621デフォルトの名無しさん:2007/08/23(木) 17:27:29
そしたら別の機械がその部分を・・・

機械が機械を生産して
修理までしだしたら人間は必要なくなって
社会がのっとられるんじゃ((((;゚Д゚)))ガクガクブルブル
622デフォルトの名無しさん:2007/08/23(木) 17:28:53
HAHAHA
623デフォルトの名無しさん:2007/08/23(木) 17:33:33
笑い事じゃねー
今まで人手が必要だったものがコンピューターに取って代わられ
失業者が増える一方だってのに、社会まで乗っ取られようとしているとは!
全てお前らプログラマーのせいじゃ
こうして2008年
プログラマー抹殺命令がでるのであったデデンデンデデン
624デフォルトの名無しさん:2007/08/23(木) 17:33:59
C#の話をするべきではないだろうか
625デフォルトの名無しさん:2007/08/23(木) 17:36:31
それなんていうB級映画
626デフォルトの名無しさん:2007/08/23(木) 17:38:11
プログラムを作るプログラムってつまり
プログラミング言語のことだよな
627デフォルトの名無しさん:2007/08/23(木) 17:38:42
>>623
なんかそういう映画あったよな
628デフォルトの名無しさん:2007/08/23(木) 17:40:24
スレタイを見て欲しい
ここはそんな話をする場所だろうか
629デフォルトの名無しさん:2007/08/23(木) 17:41:32
全て人手が要らなくなったら
人間は遊んでるだけでいいのでは
630デフォルトの名無しさん:2007/08/23(木) 17:43:33
>>626天才あらわる
631デフォルトの名無しさん:2007/08/23(木) 18:20:39
ピクチャーボックス上にマウスカーソルがある時に、キーダウンイベントを発生させたいのですがうまくいきません
なにか特別な方法があるのでしょうか?
632デフォルトの名無しさん:2007/08/23(木) 19:12:26
まじめな質問が来ると途端に過疎る
633デフォルトの名無しさん:2007/08/23(木) 19:14:31
>>631
意味わからんw
一体何がやりたいんだろうかw
634デフォルトの名無しさん:2007/08/23(木) 19:18:29
>>631
ピクチャーボックス上にマウスカーソルが来たらフラグ立てて外れたら下ろすようにしといて
falseの時にキーダウンイベントが発生したらメソッドの頭で抜けるのは?
それかキーダウンイベントが発生したらマウス座標を取得して
ピクチャーボックス上にあるか判定するとか
635デフォルトの名無しさん:2007/08/23(木) 19:19:21
キーダウンイベントを発生させれば?
くだらないコードになりそうだが。
636デフォルトの名無しさん:2007/08/23(木) 19:19:49
マウスカーソルが上に載ったらキーダウンイベントがぼんぼん発生するんじゃないの
何のキーかわからんけど
637デフォルトの名無しさん:2007/08/23(木) 19:24:59
そう書かれてるけど本当はマウスカーソルが載ってないときの
キーダウンイベントは無効にしたいのかと思った
違うならすまん
638デフォルトの名無しさん:2007/08/23(木) 19:26:29
たぶん>>634が正解だろ
エスパーすげえ
639デフォルトの名無しさん:2007/08/23(木) 19:27:25
複数のイベントに対して共通のイベントハンドラを指定したい
の類じゃね?
640デフォルトの名無しさん:2007/08/23(木) 19:31:36
すみません
説明がおかしかったみたいです
ピクチャーボックスにフォーカスがある時に数字キーを押されたらピクチャーボックスのキーダウンイベントを発生させたかったんです
マウスクリックイベントやマウスリーブイベントは発生出来てるのにキーダウンイベントだけ発生しないんですよ
フォームのキーダウンイベントにすればいいって事ですかね?
とりあえず今は出先なので実験出来ないんですが
641デフォルトの名無しさん:2007/08/23(木) 19:33:58
PictureBoxはデフォでは入力フォーカスもてないぞw
継承してSetStylesで入力フォーカス持てるPictureBoxExを作りなされ
642デフォルトの名無しさん:2007/08/23(木) 19:37:07
そもそもPictureBoxってFocusできないんじゃないの?
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.focus(VS.80).aspx
643質問した人:2007/08/23(木) 19:41:54
>>641
もしかして、プロパティにイベントはあるけどそのままじゃ使えない、ってことですかね?
>>642
ピクチャーボックス.Focus()ってのはありますよ
644デフォルトの名無しさん:2007/08/23(木) 19:44:22
>>643
選択できない Windows フォーム コントロールの一覧を次に示します。これらのコントロールから派生したコントロールも、選択できません。
Panel
GroupBox
PictureBox
ProgressBar
Splitter
Label
LinkLabel (コントロール内にリンクが存在しない場合)

というわけでこれらはFocusをもてないんだ
詳しくはリンク先を参照
645デフォルトの名無しさん:2007/08/23(木) 19:50:20
度々すみません
>>642のリンク先読みました
フォーカスのメソッドはあっても、呼び出しても実行されないんですね…
結果キーダウンイベントもあるけど自分で呼び出さないと実行されない、と
勉強になりました
646デフォルトの名無しさん:2007/08/23(木) 20:08:18
Focus()メソッドを呼んでやれば普通にキーイベントも発生はするようだね。

だからキーで操作したい人間を無視するとすれば、とりあえずClickイベントか何かで
Focus()を呼んでやればとりあえずは解決するんじゃないの?
647デフォルトの名無しさん:2007/08/23(木) 20:16:23
ピクチャーボックスくらい自分で作った方が早いんじゃないの?
648デフォルトの名無しさん:2007/08/23(木) 20:43:58
>>646
えっマジ!?
649デフォルトの名無しさん:2007/08/23(木) 20:57:50
今家に戻って、見てみました
PictureBox にはKeyDownイベントありませんでした
Formのイベントと間違えていたようです。ごめんなさい。
それでもKeyDownイベントが発生しなくてぐぐってたら

Form の KeyPreview が False になってると動かない

というのを見つけて、true にしたらやっと動きました!!
ご迷惑おかけして申し訳ありませんでした
650デフォルトの名無しさん:2007/08/23(木) 21:13:50
>>649
あるよw
ただデザイナのプロパティグリッド使ってハンドラを自動で作れないだけ。
コードエディタで自分で紐付けすればいい。
651デフォルトの名無しさん:2007/08/23(木) 21:46:44
WindowsアプリにはXmlReaderみたいなコントロールが
ないけどXMLからドロップダウンリストの
項目をバインドすることってできますか?

WebのほうだとXmlReaderみたいなコントロールでできました。
652デフォルトの名無しさん:2007/08/23(木) 21:51:56
なんでもかんでもコントロールと言うの禁止。旧VB上がり?
つか「みたいな」ってなんだよ。

DataSet(or DataTable)のReadXmlでDataSet/DataTableに取り込めばいいんじゃない。
653デフォルトの名無しさん:2007/08/23(木) 22:08:39
System.Xml.XmlReaderのことを言ってるなら使えるはずだけど。
単に using System.xml; が抜けてるだけとか。
654デフォルトの名無しさん:2007/08/23(木) 22:14:31
デザイナからなんとかしたいと思ってるんだろ。
655デフォルトの名無しさん:2007/08/23(木) 23:19:02
質問です。
ねとらじなどのmp3などのストリーミングデータを取得するには、どうしたらいいでしょうか?
656デフォルトの名無しさん:2007/08/23(木) 23:24:57
mp3はストリーミングデータではない
657デフォルトの名無しさん:2007/08/23(木) 23:25:15
まずJASRACに許可をもらいなさい
658デフォルトの名無しさん:2007/08/23(木) 23:34:25
>>656
すいません。
しかし、中身はmp3みたいです。

>>657
聞く側なので許可はいらないはずですが・・・

開発環境が手元にないので試せませんが、HttpWebRequestとかでいけますか?
659デフォルトの名無しさん:2007/08/23(木) 23:39:31
いけるかもしれないしいけないかもしれない。
サーバがどんなプロトコルを使ってどうデータを流してるかによる。
660デフォルトの名無しさん:2007/08/23(木) 23:49:02
>>659
多分HTTPだと思います。
アドレスの頭にhttpがついてるので
661651:2007/08/23(木) 23:50:38
すみませんでした。
自宅PCにVSが入ってなかったので名前を思い出せませんでした。
インストールして確認してみたところXmlReaderじゃなくてXmlDataSourceでした。

Windowsアプリのほうにはこのコントロールが無いようですが
他のコントロールを使うかプログラムを書くことで
XMLの要素をドロップダウンリストのアイテムに
バインドは可能でしょうか?
って意味でした。

DataSetかDataTableでできそうということですね。
サンクス。
662デフォルトの名無しさん:2007/08/24(金) 00:29:13
SSLページにIDとパスワードをPOSTして、そこで取得したクッキーを基に
同一ドメイン・ホスト名内のSSLページにリファラを付けてGETして
そのレスポンスヘッダに含まれるクッキー情報を取得したいと考えているのですが
これを実現するにはどのようなキーワードで検索したら良いでしょうか。

今のところググった感じではHttpWebRequest/HttpWebResponceで
HTTP通信での情報の送受信はできることとCookieContainerでクッキーを
扱えることまではわかったのですが、ヘッダ情報のセットと取得の方法で
躓いている状態です。
具体的には、上記のやり取りにより、会員用ログインページの情報を取得、
その認証情報を基に別のクライアントソフトを起動するためのランチャーを作りたいと考えています。
(そのクライアントソフトは毎回ウェブサイトの会員ページにログインしないと起動できない)
C#の勉強も兼ねて作っているため、もしかしたら敷居が高すぎたのかもしれませんが・・・
どなたかご存知でしたらご教授よろしくお願いします。
663デフォルトの名無しさん:2007/08/24(金) 00:41:10
>609
Reflector試したら普通に@が付いててがっかりしたよ。
もっと混沌としたソースが展開されるのを期待したのに…
664デフォルトの名無しさん:2007/08/24(金) 02:22:09
このスレならどんな質問にも答えてくれるよ
http://pc11.2ch.net/test/read.cgi/avi/1102121520/
665デフォルトの名無しさん:2007/08/24(金) 12:55:19
C♯とC#の違いを教えて下さい。
666デフォルトの名無しさん:2007/08/24(金) 12:59:12
片方で検索すると片方が引っかからない
667デフォルトの名無しさん:2007/08/24(金) 14:58:23
ジェネリックデリゲートのAction<T>のTにvoidを指定する方法ってありますか?
もしあれば教えてやってください。
668デフォルトの名無しさん:2007/08/24(金) 15:05:25
ありません。
669デフォルトの名無しさん:2007/08/24(金) 15:40:27
public delegate void Action();

こんなのを作って使いましょう
670667:2007/08/24(金) 15:44:43
>>668-669
ありがとうございます。
素直に定義することにします。
671デフォルトの名無しさん:2007/08/24(金) 15:53:26
FormsだけどMethodInvokerでいいじゃん
672デフォルトの名無しさん:2007/08/24(金) 15:58:50
C# 3.0だとAction,Action<T>,Action<T1,T2>,Action<T1,T2,T3>,Action<T1,T2,T3,T4>
まで標準であるから自分でこれと同じの作っとくといい
Func<TResult>,Func<T1,TResult>,...,Func<T1,T2,T3,T4,TResult>も必須だぜ
673デフォルトの名無しさん:2007/08/24(金) 17:16:45
スレッドを多重化して使う時
・最大同時実行枚数を指定できるqueueによるスレッドの管理(スレッドプール)
・スレッドの進捗を通知するためのコールバックと、スレッドの終了時に実行されるコールバックがある(BackGroundWorker)
を併せ持つスレッド管理をするにはどうしたらいいでしょうか。

作ろうとしてるものはListViewのレコード毎に1スレッド生成されるプログラムです。
つまるところよくあるダウンローダーです。
現状ListViewItem.Tagに実行状態を持たせたListViewを監視スレッドで監視し、
最大同時実行枚数を超えない範囲でBackGroundWorkerでダウンロードスレッドを起動しています。
が、もっとすっきりした管理方法があれば教えてください。
674デフォルトの名無しさん:2007/08/24(金) 19:41:22
なんでUI側に管理させるわけ?
675デフォルトの名無しさん:2007/08/24(金) 19:42:38
普通にクラス作って分けようよ。
676デフォルトの名無しさん:2007/08/24(金) 20:15:41
>>674
Form上のコントロールに別スレッドの管理情報を乗せた事ですか?
それが自然で簡単と思ったからです。
こういうところは場数踏んでよりブラッシュアップしていきます。

>>675
すでにあるものをそのまま使ってできるだけ手を加えずにって思ってたんですけど
ThreadPool+BackgroundWorkerみたいな都合のいいものは無いですよね。

他のアプリケーション使っててありがちな処理かなと思ったので定石みたいなのが
あればと思ったのですが、本見て勉強してみます。
ありがとうございました。
677デフォルトの名無しさん:2007/08/25(土) 00:10:06
ありがちな処理だ。
c#では知らないが、実習JAVAと言う本に同じ様なものが載っている。
678デフォルトの名無しさん:2007/08/25(土) 00:12:30
C#だとデリゲート使うから、スレッド管理あまり使わないんだよ。
スレッド間同期とかね。
679デフォルトの名無しさん:2007/08/25(土) 06:07:00
2008のβが取れたらすぐに移行しなきゃいけないの?
680デフォルトの名無しさん:2007/08/25(土) 08:47:43
今まで2003で開発してたものを2005に移行するとバグるから嫌だ。
2005で開発したものを2008に移行するのも難しいかな。
681デフォルトの名無しさん:2007/08/25(土) 10:35:41
2005->2008はランタイムはほとんど変わらなくて変わるのはライブラリだけだろ
今回は大丈夫じゃね
682デフォルトの名無しさん:2007/08/25(土) 10:42:27
潜在バグが顕在化しただけだ
初めから行儀よく書かんのがいかん
683デフォルトの名無しさん:2007/08/25(土) 14:02:36
VSTOってC#でも開発できるんだよね
どこかに評価版ないかな・・・
684デフォルトの名無しさん:2007/08/25(土) 23:43:14
自分のやり方が悪かったのか確認できなかったんだけど、HGlobalAllocしたのをFreeしたらすぐに
メモリ使用量って減る?
GCされるまで減らない?

って、明らかに.NETスレ向けだよな orz
685デフォルトの名無しさん:2007/08/25(土) 23:47:42
非マネージドなメモリをどうやってGCが関知するってんだ
686デフォルトの名無しさん:2007/08/26(日) 00:01:33
>>685
だよなぁ・・・
どうなってるんだろこれ
687デフォルトの名無しさん:2007/08/26(日) 01:12:12
メモリ使用量って何?
どうなってるって何が?
688デフォルトの名無しさん:2007/08/26(日) 01:14:20
ランタイムが一定領域メモリ確保するから、それを超えない限り気にすることはない。
689デフォルトの名無しさん:2007/08/26(日) 16:09:26
メモリなんてのは架空の存在
やつらはただ電荷を保持しているだけにすぎない
記憶なんて夢のまた夢
690デフォルトの名無しさん:2007/08/26(日) 16:31:00
まさかメモリが架空の存在だったとは
691デフォルトの名無しさん:2007/08/26(日) 17:48:57
.Netframeworkにwinsockのような通信を行うようなライブラリってありますか?
まだC#を勉強し始めたばかりなんですが、WindowsアプリでMSNメッセンジャーのようなアプリを作りたいと思っています。
692デフォルトの名無しさん:2007/08/26(日) 17:50:25
ある
693デフォルトの名無しさん:2007/08/26(日) 17:52:01
SOCKETクラス調べてみればいい。
694デフォルトの名無しさん:2007/08/26(日) 18:00:04
>>693
Socketクラスですね。
ありがとうございました。


C#はまだ触り始めたばかりなのですが本当に面白いです。
今まではC言語の開発ばっかりやってたのですが、今後はC#に移行したいと思ってます。
695デフォルトの名無しさん:2007/08/26(日) 18:01:40
>C言語の開発

すごい人がいたもんだな、おい。
696デフォルトの名無しさん:2007/08/26(日) 18:02:48
本ならTCPネットワークプログラミングを読めば簡単な通信プログラミングならマスターできるようになる。
本格的に通信プログラミングできるようになりたいなら、英語のページや本を探さないと難しいけど。
697デフォルトの名無しさん:2007/08/26(日) 18:04:23
車輪を再発明しちゃうの?
698デフォルトの名無しさん:2007/08/26(日) 18:04:35
C言語の開発は分野が多すぎるから一概にはなんともいえない。
制御系からUnix-Cまであらゆる分野で使われている。
699デフォルトの名無しさん:2007/08/26(日) 18:05:33
>>695
すみません。
C言語での開発という意味です。間違えました。
でも文章読めば分かる気が・・・
700デフォルトの名無しさん:2007/08/26(日) 18:06:27
わかるよ
からかっただけでしょ
701デフォルトの名無しさん:2007/08/26(日) 18:06:32
C言語 の 開発 ≠ C言語での 開発
702デフォルトの名無しさん:2007/08/26(日) 18:08:11
左は文脈によってどっちともとれるだろ
703デフォルトの名無しさん:2007/08/26(日) 18:08:24
>>700
わざとだったんですね。
本当に勘違いされたのかと思いました。
704デフォルトの名無しさん:2007/08/26(日) 18:15:13
Cからの移行者なら、C#の便利さが良くわかるはず、関数ポインタの代わりにデリゲートつかったり、
非同期スレッドのかわりにデリゲート使えたり、ソケット通信の制御に使える技術で
かなりのコードがライブラリやC#の機能で省略できるから。
705デフォルトの名無しさん:2007/08/26(日) 18:16:52
自作のUserControlのプロパティを
Visual Studio 2005のプロパティービューの
「表示」カテゴリで表示させたいんだが、

[Category(L"表示")]

ってやると言語が変わるとまずい気がする。
いい方法ある?
706デフォルトの名無しさん:2007/08/26(日) 18:17:56
でもね。

cで10行でできたsocket通信が20行になったとぼやく人がいるんだよ。
707デフォルトの名無しさん:2007/08/26(日) 18:20:53
そのソースを張ってもらわないと何も反論できない。
708デフォルトの名無しさん:2007/08/26(日) 18:21:20
どうせエラー処理何もしてないんだろ
709デフォルトの名無しさん:2007/08/26(日) 18:21:48
うん、そーっす
710デフォルトの名無しさん:2007/08/26(日) 18:24:50
Cの10行でコールバックのエラー処理が出来るとは思えないしな。
711デフォルトの名無しさん:2007/08/26(日) 18:42:38
>>705
L プリフィクスってなんだ

CategoryAttribute の解説みれ
基本的に定義済みカテゴリ名使えばOK
712デフォルトの名無しさん:2007/08/26(日) 19:02:53
>>711
トンクス

本当はC++/CLIのコードだったんだが
Lを抜き忘れたw
.NETならこっちのほうがいいかなと思って。
713デフォルトの名無しさん:2007/08/26(日) 19:30:54
>>706
今、ちょっとメタプログラミング的なことに興味あって、
F# の勉強してみてるんだけど・・・

行数少なく書けりゃいいってもんじゃねぇぞ。
714デフォルトの名無しさん:2007/08/26(日) 19:37:02
F#ってC#3.0のラムダ式みたいな言語か?
715デフォルトの名無しさん:2007/08/26(日) 19:44:08
関数型言語 Ocaml に、手続き型パラダイムと OO パラダイムを注入した感じ。

まあ、関数型言語がキモいってのよりも、
F# が言語的に汚いんだと思う。

MS リサーチで生まれて、それなりにファンもいるのに
MS が本腰入れてプロモーションしないのもうなずける。
716デフォルトの名無しさん:2007/08/26(日) 19:56:18
関数型言語じゃ金にならんからでしょ
717デフォルトの名無しさん:2007/08/26(日) 22:03:43
SizeChangedとResizeってどう違うんだ
718デフォルトの名無しさん:2007/08/26(日) 22:53:48
ぜんぜん違う。
719デフォルトの名無しさん:2007/08/26(日) 23:14:06
>>715
関数型言語なのに手続き型パラダイムも持ってるってのがOCamlの特徴だぜ
「OCaml 副作用」でぐぐってみそ。

副作用を極限まで嫌うならHaskell。
720デフォルトの名無しさん:2007/08/27(月) 11:04:18
VC#で、SELECT文のヒット件数を、COUNT関数を使わずに集計する方法ってありますか?

SELET * FROM test1

みたいに取得して、5件ヒットしたデータがあった場合に 5という数字を取りたいのですが。。。

一件以上ヒットしたデータがあればデータを取得、そうでなければ別処理
みたいな処理をしたいのです。

よろしくお願いします。
721デフォルトの名無しさん:2007/08/27(月) 11:24:55
コレクションの件数を取得すればいいじゃん。
722デフォルトの名無しさん:2007/08/27(月) 12:16:11
それは反則です
723デフォルトの名無しさん:2007/08/27(月) 12:26:44
どっちにしろDBと使うドライバ次第だろう。
724720:2007/08/27(月) 16:51:21
おとなしくcount(*)使って二回DBにアクセスすることにしました。
ありがとうございます。

今、スプラッシュウィンドウをがんばってVC#で作っているのですが、
なぜかJPEGやBMPを背景にすると、一瞬ノイズ?みたいなのが表示された後に
正しい画像が表示されます。

なぜこんなことになるのでしょうか・・・
725デフォルトの名無しさん:2007/08/27(月) 16:54:13
バッファリングや塗りつぶし処理してないんじゃないか?
726デフォルトの名無しさん:2007/08/27(月) 16:56:34
スプラッシュウィンドウくらいならGraphics取って自分で描けば
727デフォルトの名無しさん:2007/08/27(月) 17:01:00
>>720
select *,count(*) from table1
ではあかんの?
728デフォルトの名無しさん:2007/08/27(月) 17:07:32
集計関数を勉強してきなさい^^
729デフォルトの名無しさん:2007/08/27(月) 17:49:07
いやだ
730デフォルトの名無しさん:2007/08/27(月) 17:50:14
では、データベースプログラミングをやめなされ。
731720:2007/08/27(月) 18:55:14
>725
バッファリングとかわかってないです。。。。
何か解決の糸口がわかればうれしいので、よかったらおしえてください。
732デフォルトの名無しさん:2007/08/27(月) 18:56:35
風邪薬じゃないでしょうかね?
733デフォルトの名無しさん:2007/08/27(月) 19:12:45
734デフォルトの名無しさん:2007/08/27(月) 21:28:30
Formでやったらダブルバッファリングしたってちらつくだろう
735デフォルトの名無しさん:2007/08/27(月) 21:34:50
SELECT * FROM TST

CURSOR.READ()
{
nCOUNT++
}
736デフォルトの名無しさん:2007/08/27(月) 21:35:40
>>727
これならありだが

SELECT EMP.*,
(SELECT COUNT(*) FROM EMP) CNT
FROM EMP;
737デフォルトの名無しさん:2007/08/27(月) 21:38:30
いまいち>>720の問題がわからない。

>5件ヒットしたデータがあった場合に 5という数字を取りたいのですが

>一件以上ヒットしたデータがあればデータを取得、そうでなければ別処理
>みたいな処理をしたいのです。
が、呼応してないような気がする。

適当だけど、SqlDataReader の hasRows使えないかな
738デフォルトの名無しさん:2007/08/27(月) 21:43:54
>737
カウント取らなくても大体の関数にチェックあるんじゃね?
739デフォルトの名無しさん:2007/08/27(月) 21:53:45
データベースプログラミングの場合は環境がわからないとなんとも言いがたいんだよな。
ADO.NETだろうけど。
740デフォルトの名無しさん:2007/08/27(月) 23:03:12
はじめたばかりで、ここで聞いていいのかもわかりませんが
失礼させていただきます。
Microsoft Visual C# 2005 Express Editionをつかっています。

テンキーのそれぞれの数字キーをおしたときに
単にその回数をカウントするプログラムを作りたいのです。

たとえば
「7」「8」「9」
「4」「5」「6」
「1」「2」「3」
とあって「1」を何回押した、「2」を何回押した・・・・
とそれぞれのカウントを表示するというものです。
交通量を調べるとき(車種別)のカウントのようなものです。

このキーを押したら〜という、ショートカットではないですが
似たような処理
741デフォルトの名無しさん:2007/08/27(月) 23:05:17
わっふるわっふる
742デフォルトの名無しさん:2007/08/27(月) 23:06:18
宿題か?
743デフォルトの名無しさん:2007/08/27(月) 23:26:47

新手の釣り?
744デフォルトの名無しさん:2007/08/27(月) 23:52:30
VB.NETで組んだロジックと同様のロジックをC#で組んだ場合
C#でコンパイルしたexeの方が処理が早いんすか?
745デフォルトの名無しさん:2007/08/27(月) 23:56:20
VB.NET と C# のバージョンが同時期のものならほとんど同じコードしかはかない。
746デフォルトの名無しさん:2007/08/28(火) 00:25:13
どうせ速さが問題になるコードなんか書かないんだろ?
747デフォルトの名無しさん:2007/08/28(火) 00:27:34
速さが問題になるソフト作らなければいけない場合はサーバーサイドならUnixだし、
クライアントサイドならネイティブで作らないといけないわな。
748デフォルトの名無しさん:2007/08/28(火) 01:36:00
C#3.0になってから型がわかってる場合でもverを使うサンプル(not DB)をよく見るのですが、
なぜですか?
749デフォルトの名無しさん:2007/08/28(火) 01:51:14
たとえばどこのサンプルですか
750デフォルトの名無しさん:2007/08/28(火) 01:54:41
>>747
今まで、
「遅くてもいいですよ」
なんていわれたこと一度もありませんけど・・・
751デフォルトの名無しさん:2007/08/28(火) 02:12:25
>>748
タイプめんどいから
752デフォルトの名無しさん:2007/08/28(火) 03:10:56
>>750
おれ毎晩いわれてるんだけど
753デフォルトの名無しさん:2007/08/28(火) 10:11:53
決して速くはないが、言うほど遅くもないと思うのだが。
具体的に遅い例を挙げてくれると有難いなぁ…

オレの周りで遅いって言ってるヤツは大抵「アレ」な人たちばっかりで参考にならんw
754デフォルトの名無しさん:2007/08/28(火) 11:55:20
>>752
コーヒーをキーボードに吹いちまったじゃね〜か!
755デフォルトの名無しさん:2007/08/28(火) 14:26:41
まあ関数型言語に比べたら早いだろ
変なベンチマークで早いとか言い張ってる奴はいるけど
関数型だと副作用のあるコードが書けないから

string Hoge(string[] strs){
 string result = "";

 foreach(string str in strs)
  result += str;

return result;
}

 こういうのは書けても

string Hoge(string[] strs){
 StringBuilder sb = new StringBuilder();

 foreach(string str in strs)
  sb.Add(str);

return sb.ToArray();
}
 こういうのが書けない。上と下には絶望的なまでの速度差がある。
756755:2007/08/28(火) 14:27:47
ごめん最後ToArrayじゃなくてToStringだった
757デフォルトの名無しさん:2007/08/28(火) 14:37:26
別にC#自体は遅くないでしょ
VBなんかと違って使ったら絶対に遅くなるような地雷機能もとくにないし
758デフォルトの名無しさん:2007/08/28(火) 14:38:54
>>742,743
いえいえ、まじめにです。
計数した後の統計処理はなんとかできるのですが
その前の部分でつまずいています。
http://private.ceek.jp/archives/002000.html
このキータイプ数を数えるというところと同じようなものです。
759デフォルトの名無しさん:2007/08/28(火) 14:42:58
その手のはC#では作れないんじゃなかったっけ
760デフォルトの名無しさん:2007/08/28(火) 14:54:30
>>740
なつやすみのしゅくだいはちゃんとじぶんでやろうね
761デフォルトの名無しさん:2007/08/28(火) 15:25:03
>>758
通報しました(・∀・)!!
762デフォルトの名無しさん:2007/08/28(火) 15:42:51
どこに?
763デフォルトの名無しさん:2007/08/28(火) 15:59:49
>>758
グローバルフック使えばできるんだってさ。
でも.NETじゃグローバルフック使えないんだってさ。
でもSetWindowsHookEx()でできるんだってさ。

.NET C# グローバルフック キーボードフック SetWindowsHookEx

を組み合わせてググるといろいろ出てくるみたいだよ。
そんなことをここで言ってたよ。
ttp://vsug.jp/tabid/63/forumid/45/postid/1344/view/topic/Default.aspx
764740:2007/08/28(火) 16:47:08
すいません宿題じゃないんです
ATMのキーを記憶するプログラムが組みたいです
早くおしえてくれ
765デフォルトの名無しさん:2007/08/28(火) 16:53:21
対戦車ミサイルだと?
公安に通報しとくわ。
766デフォルトの名無しさん:2007/08/28(火) 17:06:21
コレクション作ってインクリメントすればいいだけじゃねーのか?
767デフォルトの名無しさん:2007/08/28(火) 18:19:03
現金自動預け払い機?
768デフォルトの名無しさん:2007/08/28(火) 18:29:04
どうみても釣りにしか見えないんだが・・・
本気だったらまずちゃんとした日本語で質問してくれ
769デフォルトの名無しさん:2007/08/28(火) 18:48:20
非同期転送モード?
770デフォルトの名無しさん:2007/08/28(火) 18:59:50
もうほっとけよ
771デフォルトの名無しさん:2007/08/28(火) 19:02:48
何のことかとぐぐってみたら
アンチタンクミサイルかよ。わかるかボケw
772デフォルトの名無しさん:2007/08/28(火) 19:08:52
アホな父ちゃんもういらへん、ってcmもあったな
773デフォルトの名無しさん:2007/08/28(火) 19:36:21
俺らにとっては、アホなSEもういらへんだけど
774デフォルトの名無しさん:2007/08/28(火) 20:51:02
>>764
お前通報されるぞ。
775デフォルトの名無しさん:2007/08/28(火) 21:15:20
知らないうちになにやら成りすましが続出しているようで・・・
776720:2007/08/29(水) 10:42:38
>>738
ありがとう
hasrowでいけますよね・・・
ありがとうございます
777デフォルトの名無しさん:2007/08/29(水) 12:36:14
List<string[]>に、二次元で下のようなデータを格納した場合、
aを検索して、bに対して処理したいのですが、どのような方法がありますか?
string[]{a,b}
string[]{c,d}


778デフォルトの名無しさん:2007/08/29(水) 12:50:29
そのまま書けばいいと思うが・・・
foreach (string[] arr in list) { if (arr[0] == a) hoge(arr[1]); }
もし要素数が多くて線形探索じゃ時間かかりすぎってのならリスト使うのがそもそも間違い。
779デフォルトの名無しさん:2007/08/29(水) 13:41:41
Dictionary<string,string>でいいんじゃ
780デフォルトの名無しさん:2007/08/29(水) 23:24:29
.NETのハッシュは止めとけ、遅くて使い物にならん
781デフォルトの名無しさん:2007/08/30(木) 00:11:05
>>780
Capacity を適切に設定してないとかではなく?
782デフォルトの名無しさん:2007/08/30(木) 00:27:40
>>781
俺も昔気づいたけどCapacityとかのせいじゃなく本当に遅いよ
自作したのに置き換えたらその部分が4倍くらい速くなった
あんまり速度気にせず手軽に組むなら.NETのでもいいだろうけどね
783デフォルトの名無しさん:2007/08/30(木) 00:56:49
TreeViewのの特定のNodeにチェックボックスをつけたくないのですが
どうすればいいのですか?
784デフォルトの名無しさん:2007/08/30(木) 00:57:13
白で塗りつぶす
785デフォルトの名無しさん:2007/08/30(木) 01:25:04
なるほどできましたw
786デフォルトの名無しさん:2007/08/30(木) 02:30:18
>>782
> 自作したのに置き換えたら
って、なにを置き換えたの?IHashCodeProviderの実装?
いくら遅いっていったって、線形探索よりは速いよね?w
787デフォルトの名無しさん:2007/08/30(木) 03:19:56
たしかに.NETのstringのHashは全文字調べるから
stringのHashだけでO(N)操作なんだよな
でもめちゃくちゃ長い文字列でも使わない限りそうひどいことにはならない
Capacity大きめに入れないと発狂するほど遅くなるけど
788デフォルトの名無しさん:2007/08/30(木) 05:01:23
日付(項目1)、予定(項目2)
  18日   、デート
  19日   、オナニー

上記のように項目1、2があるとして
リストビューの詳細モードでやってみたのですがソートの機能って項目1のみにしか働きませんよね?
ってことで自分で項目2のソートをしようと思っても
tab_click{ }ってな感じで同じところに飛んでしまうのですが
タブごとにわけられないんでしょうか?
せっかくどちらも押せる様になってるので
座標から判別するのはもったいないと思うのですが
789デフォルトの名無しさん:2007/08/30(木) 08:04:38
ColumnClick イベント
790デフォルトの名無しさん:2007/08/30(木) 09:06:45
本当は18日もオナニーだからソートされない。
791デフォルトの名無しさん:2007/08/30(木) 10:37:47
19日の間違いなww
792デフォルトの名無しさん:2007/08/30(木) 15:07:19
なるほど。そこまでC#は見抜くのかすげー
ColumnClickイベントですが押されたカラムの番号ってどっかに格納されてないんすか?
これだとどこ押されても同じ処理で意味ないような
793デフォルトの名無しさん:2007/08/30(木) 15:15:13
ColumnClickEventArgs.Column
794デフォルトの名無しさん:2007/08/30(木) 16:15:20
WindowsFormで、チェックボックス付きの、複数カラムが表示できるコントロールを
使いたいのですが、そんなのは無いのでしょうか?
具体的には、VisualStudio2005で、普通、左にあるツールボックスを右クリックし、
「アイテムの選択」を選択したときにタブページに貼られているコントロールです。

これは、CheckedListBoxで出来るのでしょうか?
それとも、DataGridに何か細工をするのでしょうか?
あるいは、全く別のものなのでしょうか・・・。
795デフォルトの名無しさん:2007/08/30(木) 16:19:16
ListView
796デフォルトの名無しさん:2007/08/30(木) 16:26:30
どうもです〜。なるほど、ListViewだったんですか。
ListViewでググったら参考になりそうなところとか見つかりました。
有難うございました。

http://www.codeproject.com/vb/net/CustmizdListView.asp
797デフォルトの名無しさん:2007/08/30(木) 17:49:54
16進数で示したコードを出力するときは、どうすればいいのでしょうか?
カンマなら \x002c を出力したい場合など

798788:2007/08/30(木) 19:18:15
>>793
最初理解できなかったけどなんとかわかりました。ありがとう
799デフォルトの名無しさん:2007/08/30(木) 21:48:33
>>797
1行目と2行目の内容逆じゃね?
800デフォルトの名無しさん:2007/08/30(木) 21:55:20
>>797
Encoding.GetBytes
801デフォルトの名無しさん:2007/08/30(木) 22:18:44
>>799-800
たとえば、sw = StreamWriterで
sw.WriteLine("aaa" + ","); のところを
sw.WriteLine("aaa" + \x002c);のようにコードで出力したいのですが
802謎の人:2007/08/30(木) 22:24:21
KENT WEB さんの、スレッド式掲示板を作りたいのですが、
Perlへのパスというところで詰まっています
まったくそれが何だかわかりません
どうすればいいでしょうか
超初歩的なことすいません
803801:2007/08/30(木) 22:28:51
馬鹿な質問ですいませんでした。
そのまま'x\002c'で出来ました・・・・
804デフォルトの名無しさん:2007/08/30(木) 22:42:18
>>803
C# 言語仕様の 2.4.4.5 リテラル文字列 あたり読んどくといいよ
805デフォルトの名無しさん:2007/08/30(木) 22:52:55
フォーム1とフォーム2でクラスを共有したいんだけど方法教えてください!!
806デフォルトの名無しさん:2007/08/30(木) 22:56:49
一方のフォームにプロパティを作ってもう一方のフォームから設定する
807デフォルトの名無しさん:2007/08/30(木) 22:59:17
>>805
シングルトンってやり方がある、クラス自身の中にスタティックな自分自身のインスタンスを保持するやり方
デザインパターンの初歩だから調べて勉強してみるといいよ
808デフォルトの名無しさん:2007/08/30(木) 23:02:21
よくわかってないうちにそれをやるとVB的なやり方が身に染み付いてしまいそう
809デフォルトの名無しさん:2007/08/30(木) 23:02:43
"クラス"を共有するんだったら同じプロジェクトに入れとくだけだけどなー
810デフォルトの名無しさん:2007/08/30(木) 23:06:01
やりたいのはForm1からForm2を呼び出して、From2のPropatyGridで操作した
結果(クラス)をForm1で利用したいというものです。

例えば、共有したいクラスをstaticにして利用するのは邪道なのでしょうか?
811デフォルトの名無しさん:2007/08/30(木) 23:07:42
それはクラスじゃなくてオブジェクト
そんなこともわからないうちにとりあえずstaticにしとけばいいやっていうのは良くないよ
812デフォルトの名無しさん:2007/08/30(木) 23:09:33
それならForm1でクラスを生成して、Form2に渡してから加工した方がいいと思うが
813デフォルトの名無しさん:2007/08/30(木) 23:22:35
たぶんForm2はプロパティグリッドを載せるためだけのウインドウなんだろ
それを通してForm1上のコントロールか何か(またはForm1自身)のプロパティを弄ると

もしこれで合ってるなら、Form2に加工対象を入れるプロパティを作るかな
814810:2007/08/30(木) 23:27:34
>>813
エスパーですか!!その通りです。
From2で弄ったPropetyGridの結果を得て、From1のコントロールを弄りたいのですが…。

>Form2に加工対象を入れるプロパティを作るかな
もう少し噛み砕いてお願いします。
815デフォルトの名無しさん:2007/08/30(木) 23:28:46
Property
816デフォルトの名無しさん:2007/08/30(木) 23:30:48
そんなことはMFC時代から既に実装されてるだろ。
C++を参考にしろよw
817デフォルトの名無しさん:2007/08/30(木) 23:31:22
class Form2 {

    public 加工対象の型 加工対象 {
        get { return かこうたいしょう; }
        set {
            かこうたいしょう = value;
            プロパティグリッドにかこうたいしょうをセット;
        }
    }
    private 加工対象の型 かこうたいしょう;
}
大雑把に言えばこんなもんだ
818810:2007/08/30(木) 23:33:21
分かりました!!みなさんありがとうございました。
819デフォルトの名無しさん:2007/08/30(木) 23:35:05
>>817
キミプロパティグリッドの基本的な用途や使い方を知らないんじゃないの?w
820デフォルトの名無しさん:2007/08/30(木) 23:35:47
>>819
ぜひとも教えてくれ
821デフォルトの名無しさん:2007/08/30(木) 23:36:55
>>817
それ、おれもオモタww
普通はそれ専用のクラス作って、SelectedObjectに割り当てるんだよ
822デフォルトの名無しさん:2007/08/30(木) 23:39:09
それが「加工対象」じゃねーの? >それ専用のクラス
823デフォルトの名無しさん:2007/08/30(木) 23:44:28
純粋にプロパティグリッド乗せるだけのウインドウならObject型でいいんじゃないの
824デフォルトの名無しさん:2007/08/31(金) 00:31:52
>782
4倍速くなるソースを晒してくれ。
825デフォルトの名無しさん:2007/08/31(金) 00:50:39
ハッシュが遅いってのは文字列のGetHashCodeが遅いってこと?
826デフォルトの名無しさん:2007/08/31(金) 01:39:29
>>825
Yes
だけどそんなに遅くない
文字数を増やすと文字数に比例する時間がかかるけどごくわずかといえばわずか
文字列が莫大な長さだとやばいかも
827デフォルトの名無しさん:2007/08/31(金) 03:11:33
遅くて使いもんにならんらしいが…
828デフォルトの名無しさん:2007/08/31(金) 04:38:39
はじめてみましたが
クラスだの継承だの抽象なんとかだの全く理解できません
これ理解するのって東大はいるのと同じくらい難しくありませんか?
いや東大生でもこれ理解できねーんじゃねーかって気がする
829デフォルトの名無しさん:2007/08/31(金) 04:39:35
専門学校卒業すれば十分理解できるレベル。
830デフォルトの名無しさん:2007/08/31(金) 05:57:05
義務教育ちゃんと受けてれば大丈夫。
831デフォルトの名無しさん:2007/08/31(金) 06:46:24
クラスの継承は基本的に使ってはいけない
抽象も難しいことを言っているわけではなく
同じメソッドを持ってるクラスを使いまわすとか
呼び出す必要のないものはprivateにして見せないとか
そういう素朴なことだと考えて別に問題はない
832デフォルトの名無しさん:2007/08/31(金) 07:53:41
・・・
833デフォルトの名無しさん:2007/08/31(金) 09:00:35
初めはなんでもいいよ、もう
色々失敗したり破綻したりして今があるのだからこうすべき論はその後でいい。
そのかわりコードたくさん書け、たくさん読め、なんでもまず試せ、
んで時々立ち止まって考えろ。

意外に皆直感でああだこうだいってるからその感覚をまずはゲッツ
834デフォルトの名無しさん:2007/08/31(金) 09:11:17
>826
Hashtableのキーにする文字列がそんなに長大になることってあるのか?
キーにする文字列が普通に使う長さなら使いものにならないくらい遅くなるなんてことはないのでは?
835デフォルトの名無しさん:2007/08/31(金) 09:20:02
一ついえるのはコボルとコボラーだけには関わるな
あれに洗脳されると矯正が大変になる
836デフォルトの名無しさん:2007/08/31(金) 09:30:08
>>834
ないと思う

>>814
partial class Form1 : Form
{
Form2 form2 = new Form2();

HogeClass hoge = new HogeClass()

public Form1()
{
form2.PropertyGrid.SelectObject = hoge;
form2.ShowDialog();
}
}
こんなんじゃないの
837デフォルトの名無しさん:2007/08/31(金) 11:18:23
この度C#でActiveReportsを使うことになったのですが

使い方などが載っているサイトとかありますか?

もしあるなら教えていただけませんか?
838デフォルトの名無しさん:2007/08/31(金) 12:09:02
>>837
商用なんだから、製造元の解説読んで、それでもわからなかったら製造元に問い合わせれば?
839デフォルトの名無しさん:2007/08/31(金) 14:14:48
>>837
んなもんメーカーに聞けよ
840デフォルトの名無しさん:2007/08/31(金) 15:43:30
もし荒れたらごめんなさい。
最近Cに興味が沸いている、VBさわり始めて数ヶ月の者です。
実際の所、C#とCは全く違うものなんでしょうか。
C#の方が理解しやすいのならVB→C#→Cなんて段階踏むのは
ありなのかなぁなんて考えてるんですが…。

>>808なんかを見るとVBがとても悪いもののように思えますが
VBの知識は他言語に応用しにくいとかありますか?

841デフォルトの名無しさん:2007/08/31(金) 15:57:00
そっくりだけどまったく違う
842デフォルトの名無しさん:2007/08/31(金) 16:09:49
VBもC#もCも互いに応用しやすい方だと思うよ
Cは使いこなすのが格別難しいけど考え方は似通ってる部分が多い
まあ一個の言語極めたら他の言語に応用するのは難しくないから好きなもの極めたらいい
843デフォルトの名無しさん:2007/08/31(金) 16:25:42
自作クラスに変数を書いて、その変数を呼出し元では値の取得のみしたい
どうすればいいですか?
844デフォルトの名無しさん:2007/08/31(金) 16:28:15
>>843
プロパティでぐぐる。
845デフォルトの名無しさん:2007/08/31(金) 16:28:38
プロパティにしてgetだけ実装
846デフォルトの名無しさん:2007/08/31(金) 16:51:49
>>844-845
ありがと!
やってみる
847デフォルトの名無しさん:2007/08/31(金) 16:52:30
マウスのドラッグによってスクロールするユーザーコントロールというものを実装しようとしています。
そこで、以下のようなコードを書きました。
スクロール自体はうまくいくのですが、ドラッグ開始時にスクロールバーが左上の位置に移動してしまいます。
どうすれば思い通りの実装を行えるでしょうか。

protected override void OnMouseDown(MouseEventArgs e)
{
    base.OnMouseDown(e);

    isDraggable = true;
    dragMouseStart = new Point(e.X, e.Y);
    dragScrollStart = this.AutoScrollPosition;
}
protected override void OnMouseUp(MouseEventArgs e)
{
    base.OnMouseUp(e);

    isDraggable = false;
}
protected override void OnMouseMove(MouseEventArgs e)
{
    base.OnMouseMove(e);

    if (!isDraggable)
        return;
    Point p = new Point(
        dragScrollStart.X - (e.X - dragMouseStart.X),
        dragScrollStart.Y - (e.Y - dragMouseStart.Y));
    this.AutoScrollPosition = p;
}
848デフォルトの名無しさん:2007/08/31(金) 17:03:06
VB 簡単で使いやすいが他の言語への移行が難しい地雷言語
C# 簡単で使いやすくC言語への移行が簡単で高機能言語
C 簡単ではないがPCの基本的概念の理解ができ、C#への移行が簡単な標準的言語
C++ 習得が難しく扱いが難しいネイティブを使わなくてはならない場合のみ導入を検討するべき

C→C#が一番将来的に高スキルを目指すには最適だと思われる。
849デフォルトの名無しさん:2007/08/31(金) 17:25:05
>>842
>>848
やっぱり人によって意見は全然違うんですね。荒れなきゃいいですけど(汗

目的達成の為だけなら使いやすいのを使えばいいんでしょうけど
スキルアップの為にも取りあえず今VBで作っているソフトをC#に
移植するところからやってみて、その上で感触を確かめてみます。
有り難う御座いました。
850デフォルトの名無しさん:2007/08/31(金) 17:39:19
言語なんてどれでもいっしょだろ
俺日本語からC#入ったけど全くだめだった
851デフォルトの名無しさん:2007/08/31(金) 17:40:02
>>842おまえそりゃいくらなんでも…
852デフォルトの名無しさん:2007/08/31(金) 17:44:32
C#ってそんなすげ〜のか。俺もやってみっかな。
853デフォルトの名無しさん:2007/08/31(金) 17:50:00
一番良いのは、C++ネイティブとC#.NETの使い分け。
サーバがLinuxやUnixなら他の言語も検討。
854デフォルトの名無しさん:2007/08/31(金) 18:20:54
VBっつってもVB.NETとC#はほとんど同じものだぞ
.NET以前のVBとC#はかなり違うけど
855デフォルトの名無しさん:2007/08/31(金) 18:42:29
わかってない子にもそれなりに使えるように進化していく運命にある言語だけどな
856デフォルトの名無しさん:2007/08/31(金) 18:47:46
C言語ファミリーって言える言語がC++,JAVA、C#、PHPとか大量にあるから
それらの中から始めるのが吉。一つ覚えれば他の習得が比較的楽にできるよ
VBの問題はVB自身じゃなくてVB6やCOBOLからの乗換え組みの質の悪さだと思う
新人で彼らに教わったら地獄だな、そんな時は自分で勉強すべし
857デフォルトの名無しさん:2007/08/31(金) 19:27:37
CompactFrameworkがらみの質問なんですが、
Formを継承してShownイベントを追加しようとしてVisibleやShowメソッドを
オーバーライドしてコードを追加したのですが、Application.Run()からだと
これらのプロパティやメソッドは使ってないらしく、イベントが発生しません。
WndProc()をオーバーライドしようにもメソッド自体ないし、ReflectorでFrameworkの中を
覗いてみてもなぜかCompactの方はメソッドやプロパティのコードが空っぽ…

どうしたらApplication.Run()から実行したときにイベントを発生させることが出来るでしょうか?
858デフォルトの名無しさん:2007/08/31(金) 19:34:23
Activated イベントとフラグを併用するのがいいんじゃないかな
859デフォルトの名無しさん:2007/08/31(金) 20:13:40
>>858
上手くいきました。
なんでWndProc()積んでないんだ… orz

ありがとうございました。
860デフォルトの名無しさん:2007/08/31(金) 21:42:04
ここは回答もレベル低いなww
861デフォルトの名無しさん:2007/08/31(金) 21:47:01
高レベルな回答を超期待
862デフォルトの名無しさん:2007/08/31(金) 21:51:26
質問どうぞ
863デフォルトの名無しさん:2007/08/31(金) 21:55:38
いや、すまん実はC#始めてまだ3週間なんだww
864デフォルトの名無しさん:2007/09/01(土) 01:17:33
9月です
BGMが変わってトマトが枯れました
865デフォルトの名無しさん:2007/09/01(土) 02:46:01
質問です。
XmlSerializerでxmlを逆シリアライズしているときのパースエラーが起きたとき、
そこの要素を空にして再試行、または続行するにはやはりXmlSerializerに頼らず
自分でXmlをパースしなければならないのでしょうか?
866デフォルトの名無しさん:2007/09/01(土) 02:56:06
フォーム上にコントロールが1000個くらいあって
それを移動したりリサイズしたりするのにループ(for)でまわして10秒くらいかかる処理があるとして
スレッドつかって一気に変更したら早くなるのかな?
867デフォルトの名無しさん:2007/09/01(土) 02:56:43
はあ?
868デフォルトの名無しさん:2007/09/01(土) 03:06:12
MDIのフォーム配置で試せば?
869デフォルトの名無しさん:2007/09/01(土) 03:40:38
ある特定のメソッドのみから参照できるメンバ変数って定義できますか?
870デフォルトの名無しさん:2007/09/01(土) 03:42:33
何がしたいのかわからん。
871デフォルトの名無しさん:2007/09/01(土) 04:21:01
インスタンスの状態を保存するメンバ変数があって、
その変数を参照・設定するメソッドからのみその変数は参照できるようにして、
それ以外のメソッドからはメンバ変数にアクセスできないようにしたいということです。

class {
private int member;
public void A {...}
public void B {...}
}

このようなクラスがあったとしたら、Aからはmemberにアクセスできるけど、
Bからはできないという風にしたいのです。
872デフォルトの名無しさん:2007/09/01(土) 04:38:36
半パブリックだな。もしくはpubstaticとか
873デフォルトの名無しさん:2007/09/01(土) 04:41:19
クラスの継承使えばどうだ?

874873:2007/09/01(土) 04:42:49
サブクラスからアクセス不可に設定すれば可能だと思うが。
875デフォルトの名無しさん:2007/09/01(土) 04:45:34
>>872
検索してみたのですが、よく分かりませんでした。
よろしければ具体的なコード例を示していただけないでしょうか。
876デフォルトの名無しさん:2007/09/01(土) 04:47:42
>>873
たしかにプライベートな抽象クラスを作ってそれを継承すればできそうですね。
ありがとうございます。
877デフォルトの名無しさん:2007/09/01(土) 04:51:47
この機能を実現したいクラスはすでに他のクラスを継承していたので、
クラスを継承する方法は使えませんでした。
>>872で挙げられている方法はどのようなものなのでしょうか。

連投申し訳ありません。
878デフォルトの名無しさん:2007/09/01(土) 04:53:53
>>865
> XmlSerializerに頼らず
全部自前でパースするよりはシリアライズ対象のオブジェクトにIXmlSerializableを実装してあげるのが近道っぽい。
879デフォルトの名無しさん:2007/09/01(土) 09:42:36
class Hoge{
class AClass
{
private int member;

public void A(){...}
}
AClass aClass = new AClass();

public void A(){ aClass.A(); }
}
こんなんじゃだめなん
880デフォルトの名無しさん:2007/09/01(土) 09:48:35
privateかどうかにそこまでこだわってもあまりメリットはないぜ
外側から見えないようにするのには価値があるけど
内側でアクセス権気にしてもコードがごちゃごちゃする上に
拡張しにくくなる

何が外側で何が内側なのかというのは難しい話だけどな
881デフォルトの名無しさん:2007/09/01(土) 09:55:35
匿名メソッド使えば?w
882デフォルトの名無しさん:2007/09/01(土) 09:57:56
privateなプロパティにする。
フィールドは、簡単にはアクセスできないようアラビア語あたりの文字を含めるw
883デフォルトの名無しさん:2007/09/01(土) 10:02:08
基本的なことを言うと、publicメンバはインターフェースとして定義することができるメンバにする。
クラス外から見えるということはクラス外に対するコンタクトを標準化する必要性が出てくる可能性があるから
インターフェースになるわけだ。
884デフォルトの名無しさん:2007/09/01(土) 10:04:47
突然何を言い出すんだ?
885デフォルトの名無しさん:2007/09/01(土) 10:20:31
class A:B {
}
っていう元のクラスに対して

class C:B{
private vv;
public hoge(){
}
}
ってクラスを作って、元のやつを
class A:C{
}
にすればいいだけじゃね
886デフォルトの名無しさん:2007/09/01(土) 10:43:26
クラス外から見える=interfaceになる可能性がある
というのは違う
単にクラスが長くて見通しが悪いから分離しただけだったりもする
大体のクラスは抽象化の単位じゃなく実装のしやすさで分かれる

ライブラリのクラスであればpublicクラスのpublicメンバであれば
interfaceになることを想定する必要が確実にあるということは言えると思う

抽象化の単位ではpublicメンバはinterfaceである必要があるが
抽象化の内側の実装のレベルではprivateを多用してもしょうがない
むしろやりにくくなる
887元ルート:2007/09/01(土) 11:43:04
/::::)(:::)(:::::::::::)(::::::^::::::::::\
       (::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\
     /::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)
     (::::::::::/  ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
    (:::::::::/ 彡  ノ   ノ  :: 彡:/)) ::::::::::)
   (::::::::::/彡彡彡彡彡   ミミミミミミミ :::::::::::)
   ( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
    | =ロ   -=・=-  ‖ ‖ -=・=-   ロ===
    |:/ ‖    / /ノ  ヽ \     ‖ ヽ|ヽ      _________
     |/  ヽ`======/ .⌒ ` ========ノ.   ..| |     /
   .(         .(●  ●)         )ノ   / 
   (   ・     / :::::l l::: ::: \         .)  <だってアンカーがうてないんだもん
   (       // ̄ ̄ ̄ ̄\:\.       .)   \       
   .\     : )::::|.  ̄ ̄ ̄ ̄ |::: ::::(:     /..    \_________
    \ :::   :::::::::\____/  ::::::::::   /
      ヽ  ヽ:::: _- ::::: ⌒:: :::::::: -_     ノ
       \丶\_::_:::::_:::: :::::_/::::  /

888デフォルトの名無しさん:2007/09/01(土) 11:44:13
お前はもう、しんでいる。
889元ルート:2007/09/01(土) 12:00:12
/::::)(:::)(:::::::::::)(::::::^::::::::::\
       (::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\
     /::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)
     (::::::::::/  ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
    (:::::::::/ 彡  ノ   ノ  :: 彡:/)) ::::::::::)
   (::::::::::/彡彡彡彡彡   ミミミミミミミ :::::::::::)
   ( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
    | =ロ   -=・=-  ‖ ‖ -=・=-   ロ===
    |:/ ‖    / /ノ  ヽ \     ‖ ヽ|ヽ      _________
     |/  ヽ`======/ .⌒ ` ========ノ.   ..| |     /
   .(         .(●  ●)         )ノ   / 
   (   ・     / :::::l l::: ::: \         .)  <何回やってもダメだよ〜
   (       // ̄ ̄ ̄ ̄\:\.       .)   \       
   .\     : )::::|.  ̄ ̄ ̄ ̄ |::: ::::(:     /..    \_________
    \ :::   :::::::::\____/  ::::::::::   /
      ヽ  ヽ:::: _- ::::: ⌒:: :::::::: -_     ノ
       \丶\_::_:::::_:::: :::::_/::::  /
890元ルート:2007/09/01(土) 12:04:58
マンコはちょっとくらいくさいほうが良いよね?


891元ルート:2007/09/01(土) 12:07:21
ぉまんこの匂いを嗅ぐと熟睡できる。

シャワーを浴びてないあの匂いは最高。


892デフォルトの名無しさん:2007/09/01(土) 12:27:10
おかしい・・・まだ夏休みが続いているのか
893デフォルトの名無しさん:2007/09/01(土) 12:31:31
delegate void MyMethod();
private MyMethod _a;
public void A() {
 if (_a == null) {
  int member = 0;
  _a = delegate { /*ここで本当の処理をする*/member++; };
 }
 else { _a(); }
}
894デフォルトの名無しさん:2007/09/01(土) 12:33:01
>>869
そこだけVBで作るとかどう?w
VB.NETならStaticで宣言したローカル変数がそういう、
「寿命がフィールドと同じで、アクセスのスコープがローカル変数と同じ」
という仕様になるよ。
895デフォルトの名無しさん:2007/09/01(土) 12:33:38
まだ、9月1日が土曜日だから夏休み続いてるんじゃないの?
896デフォルトの名無しさん:2007/09/01(土) 12:49:56
俺たちの夏休みは終わらない   完
897元ルート:2007/09/01(土) 13:06:11
オリシーは、本当のマンコ臭は、味わえない。
微香料付きオリシーが大半だからな。
使用済みオリシーは、何度がゲットし匂ったが、微香料に押されて気味。
やはり、純マンコ臭を間接的にかぐには、使用済みパンティか、おもらしナプだな。


898デフォルトの名無しさん:2007/09/01(土) 13:30:58
つまらん。
どうせガキ臭いこと書くならせめて笑えることを書けよ。

しかし、こういう馬鹿が表れるとだいたい、「夏休み」とか子供のせいにされるが、
俺の感ではこういう奴は「ガキ臭い」オッサンであって本当のガキではないと思うね。

こんな低能と同じレベルに貶めるのでは子供に失礼だよ。
899元ルート:2007/09/01(土) 13:32:52
監督  元ルート
脚本  元ルート
主演  元ルート
脇役A レコード屋
脇役B ちんけなオトコ
脇役C オーム返し
脇役D 漫画道場
脇役E あと誰だっけ?
エキストラ 役5名
ここはそんな世界。
あははははははは

900デフォルトの名無しさん:2007/09/01(土) 15:48:39
なにがあってもC#初心者の質問に答えるという使命は忘れてはいけない
901デフォルトの名無しさん:2007/09/01(土) 17:20:33
えらい!マイクロソフトから金もらえ
902デフォルトの名無しさん:2007/09/01(土) 18:24:37
>>871
何でそんなことが必要なんだ?
理由書いてくれ。
903デフォルトの名無しさん:2007/09/01(土) 18:31:06
まさかローカル変数とメンバ変数同じ名前にしていて…
とか馬鹿な理由じゃないよな?
904デフォルトの名無しさん:2007/09/01(土) 18:33:57
858みたいな状況とか、フィールドに置かれてもって感じはするよな
C の static 変数で表現できるならそっちのほうがすっきりする
905デフォルトの名無しさん:2007/09/01(土) 18:53:03
>>902
書かなくても分かるだろ普通w
「隠蔽」という概念の拡張に過ぎないじゃないか。
要するに君は隠蔽の意義が理解できてないんだろう。
906デフォルトの名無しさん:2007/09/01(土) 19:20:13
あたりまえ
どっからでもアクセスできた方がいいだろ
スタジアムだってアクセスの良さを確保するのにどんだけ苦労することか
したくないときはアクセスしなきゃいいだけだし
907デフォルトの名無しさん:2007/09/01(土) 19:48:49
隠蔽する必要があるのか?
誰から隠蔽するのか?
何から隠蔽するのか?
908デフォルトの名無しさん:2007/09/01(土) 20:07:32
同じクラス内で隠蔽したいなんてバカな考えはやめろ
クラスの設計が間違ってるんだからそっちを見直せ
909デフォルトの名無しさん:2007/09/01(土) 20:14:22
なるほど、ならローカル変数もブロックスコープの変数も一切禁止すべきだなw
910デフォルトの名無しさん:2007/09/01(土) 20:28:35
うーん…方向が逆じゃないか?
911デフォルトの名無しさん:2007/09/01(土) 20:46:27
>>909
馬鹿発見
912デフォルトの名無しさん:2007/09/01(土) 20:55:01
馬鹿に突っ込みいれて喜んでんじゃねーよ。

お前ら裸の大将見て感動しろ。
913デフォルトの名無しさん:2007/09/01(土) 20:56:02
partialクラスを別々の人間が作るとかならありうるかも知れないけど・・・
914デフォルトの名無しさん:2007/09/01(土) 20:57:08
ぼ、ぼくはおにぎりがす、好きなんだな
915デフォルトの名無しさん:2007/09/01(土) 21:00:11
おむすび、すきすきす〜
916デフォルトの名無しさん:2007/09/01(土) 21:19:17
VS2003とVS2005って1つのマシンにインストール可能?
同じマシンに2つ入ってても問題なく動作する?
917デフォルトの名無しさん:2007/09/01(土) 21:23:59
>>916
する
918デフォルトの名無しさん:2007/09/01(土) 21:25:13
           ,: ' " `丶 
          , :´  .   `、 
.         . '  .    ; .丶 
.        ,:´ .    '    ' `、      
       ,'    . 簍J鶸鑼  ; `.        
   ,, -'''" .   .  駲刪櫑躪  . ' ';゛`'丶.、.......
.  '´     !    . 膚順棚斷. ' , ;::::::::::::...`.::::::::....
 i       ヽ、..._,.__魎鬱蹠撫.,,__,.,..ノ.:::::::::   !::::::::::::...
. ヽ、                      ,: '.:::::::::
    `=ー--、....,,,,,______,,,,,... --‐=''´..::::::
      ``" '' 'ー───‐―‐' ''' "´
919デフォルトの名無しさん:2007/09/02(日) 00:54:25
Alt-Tabの一覧に出ないようなウインドウってどうやって作ればいいんでしょう?
ShowInTaskBarをfalseにしてもこの一覧には出ちゃうみたいなんですが。
920919:2007/09/02(日) 01:02:50
自己解決。
Ownerに適当なフォームを設定したらうまくいきました。
921デフォルトの名無しさん:2007/09/02(日) 01:26:58
その適当なフォームが閉じられたら一緒に閉じられちゃうけどそれでいいのかな
922元ルート:2007/09/02(日) 09:57:40
もう来る気はなかったが最後に2チャンネル帝国に敬意と問題提起をしておきたい。
ジャパンビバレッジってどうよ?PART2

2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50 [PR]話し相手はここにいるかも【ASKS?】[PR].
ジャパンビバレッジってどうよ!?pret2. 1 :名無しさん@引く手あまた:2007/06/17(
日) 00:57:34 ID:FCmmekzq0: ボーナス出て退職者続出の予想もある中、 ...
って書いてある中で「話し相手がいるかも?」って書き直しましたね〜

私はね2ちゃんねる介入がここのスレが初めてでもう2ちゃんねるに来ることはないの。
なぜだかわかりますか?そう、弱者しかここには存在しない。

あなたのライバル他社の掲示板にあたるかもしてないが、そこにはレベル的に高い人間が存在しているからね。
そこでは戦争なんてしなくていいの。ただ言論闘争のみ。

システムの変更を早急にしなくてはあなたの帝国の崩壊は近い将来必ず来る。
なぜなら、あなたは裁判に負けて賠償金払ってないですよね。

その行為は絶対的権力の日本国を敵にすることになる。このスレはプロローグにしか過ぎないの。

私はね、ここのレスがもっと荒れてきたら、最終兵器「核」を一個落とすところでしたよ。
それによってあなたの帝国は商品価値をかなり下げるとこでした。
そこまではもう致しません。ご安心を。

改善策は名無しをできないシステムの構築とIDをころころ変えないこと。
その2つで2チャンネルは継続しますよ、きっと。

もうこないからご安心を。さいなら〜。
923デフォルトの名無しさん:2007/09/02(日) 11:32:53
コピペ君って馬鹿だな、まで読んだ。
924919:2007/09/02(日) 14:00:55
>>921
今回のケースはそれで問題ないです。
925デフォルトの名無しさん:2007/09/02(日) 14:29:23
C#で画像の結合って出来ます?
926デフォルトの名無しさん:2007/09/02(日) 14:32:09
画像の結合って表現初めて聞いたけど、語感から想像される意味の通りなら
Bitmapに描画して保存するだけじゃないの?
927デフォルトの名無しさん:2007/09/02(日) 14:46:54
言葉足らずでした。
二つないし四つの画像を結合して一つの画像にしたいのです。
オークションに出品するときなどに使う予定です。
928デフォルトの名無しさん:2007/09/02(日) 14:58:37
>>927
やれはするがそれは画像ツールを使って編集したほうがが早いのと思う。

C#でやるなら4倍の面性を持つBitmapを作って、それに4つの画像を座標指定で描く。
最後にBitmapからjpegなど形式を指定して保存する。
929デフォルトの名無しさん:2007/09/02(日) 15:30:37
>>928
ありがとうございます。
その手順を参考に作ってみます。
*高性能なフリーソフトはたくさんありますが
自分で作ると言うことに意義があるので・・。^^ゝ
930デフォルトの名無しさん:2007/09/02(日) 15:36:23
すみません、教えてください。

フォームの中にPanelAがあり、PanelAはEnable = falseです。
PanelAの中にRadioButton1とRadioButton2があります。

Mainスレッドとは別のスレッドで
Invokeで、ShowDialogします。
その時は、RadioButton1と2はEnable=falseの状態できちんと表示されます。

その後に、あるイベントが上がると、PanelAをEnable = trueにした後に
ShowDialogすると、RadioButton1だけ消えている場合があります。消えていない場合もあります。
インスペクタでRadioButton1のVisibleの値を見ると、trueになっています。

その状態で、Refreshかけても、Updateかけても表示は変わりません。
しかし、RadioButtonBにチェックを入れるとRadioButtonAが表示されます。
なぜRadioButtonAだけ表示されないのでしょうか・・・?

解決方法をご教授いただけると幸いです、よろしくお願いいたします。
931デフォルトの名無しさん:2007/09/02(日) 15:38:47
すみません、追記です。

>その時は、RadioButton1と2はEnable=falseの状態できちんと表示されます。
の後に、その後、いったんフォームを閉じます。

を追記です。
932デフォルトの名無しさん:2007/09/02(日) 15:57:55
>>930
人に質問する前に基本的なことをちゃんとやれよ。
まず、問題の現象が起きる必要条件をきちんと絞り込むこと。
話はそれからでしょ。
933デフォルトの名無しさん:2007/09/02(日) 16:32:19
>>932
すみません、問題の現象が起きる必要条件を書きます。

一連の流れはメインスレッドとは別のスレッド上で行われます。

初期状態は、
RadioButtomを二つ持ったPanelがフォームにあり、
PanelのEnableはfalseで、フォームはまだ開いてません。

上記の状態から以下の処理を行います。

Invokeを使って、フォームをShowDialog↓
開いたフォームを閉じる

PanelのEnableをtrueに設定

再びInvokeを使って、フォームをShowDialog

フォームは開くが、二つあるRadioButtomがひとつしか表示されない。

という流れで現象が発生します。
開発環境はVS2003で、
動作環境はWinXP SP2/.net framework1.1です。

宜しくお願いいたします。
934デフォルトの名無しさん:2007/09/02(日) 16:34:57
ダイアログのインスタンス使い回しはやめといたほうがいい。
Enabled の設定も別スレからなら Invoke が必要。
935デフォルトの名無しさん:2007/09/02(日) 17:17:43
RadioButton
936デフォルトの名無しさん:2007/09/02(日) 21:17:08
以下の問題は仕様によるものなのかに悩まされています

問題
FormのTransparencyKeyを適当な色に設定してリザイズを継続して行うと
Formの再描画がされなくなるor再描画が数秒単位でしかされない


再描画されなくなる直前のFormが表示されたままですが
FormのSizeは正常に変更されています。
FormはWindowsApplication作成時のデフォルトFormです。

解決方法をご存知の方がいらっしゃいましたらご教授お願いしたいです。

環境
2台のPC(Vista・XP 共にVS2005/.NET 3.0)共に同様の現象が発生
937デフォルトの名無しさん:2007/09/02(日) 21:32:52
>>934
ありがとうございます!試してみます!
938デフォルトの名無しさん:2007/09/03(月) 00:24:51
>>936
試したがこっちでもなるな
仕様なんじゃね?わからんけど
939デフォルトの名無しさん:2007/09/03(月) 01:57:58
適当にクラスを作ってみてリストに入れてみたんですが
そのメンバにアクセスするのってどうやるんですか?

List<object> list = new List<object>();
list.Add(test);      リストにテストのオブジェクト追加
list[0].title="ABC" 失敗。テストのメンバにアクセスしているつもり

よくわからんからオブジェクトの配列でやるかと思ったけどそれもだめでした
940デフォルトの名無しさん:2007/09/03(月) 01:59:53
ジェネリックについてググってください。
941デフォルトの名無しさん:2007/09/03(月) 02:02:19
勇気を出して聞いてみよう♪沢井製薬って出てきました
942デフォルトの名無しさん:2007/09/03(月) 02:27:56
>>934
サイズ変更する場合一時的にKeyを無効にするしかないんじゃないかな

>>941
答えが見つかってよかったね
もう来ないでね
943939:2007/09/03(月) 02:28:44
単純にストリング型にしてメンバ入れとけってことですよね?
そうするとメンバ分のリスト必要になってありがたみが減ってしまう
944デフォルトの名無しさん:2007/09/03(月) 02:28:51
>>936の間違い
945デフォルトの名無しさん:2007/09/03(月) 02:49:12
>>943
違う・・・
objectをそのメンバをもつクラスにしろって話でしょ。
あと型とかキャストについてもぐぐっとけ
946デフォルトの名無しさん:2007/09/03(月) 02:52:51
>>943おまえは何を言ってる?
947939:2007/09/03(月) 03:09:06
あ、ほんとだ。
クラスの型ができてる・・・
オブジェクト指向ムズカシス
ありがとうございました
948デフォルトの名無しさん:2007/09/03(月) 08:10:05
ジェネリクスってオブジェクト指向なのか
949デフォルトの名無しさん:2007/09/03(月) 09:10:50
まあクラスがなきゃジェネリクスもあり得ないからな
950デフォルトの名無しさん:2007/09/03(月) 09:14:29
どうだろ?
型総称はクラスとは無関係だと思うけど
951デフォルトの名無しさん:2007/09/03(月) 10:14:22
質問があります。環境はMS VS 2003 C#です。

Windowsのヘルプだとよくありますが、Ctrl+Cで文字をコピーできるラベルを
作りたいのですが、どうしたら良いでしょうか?
おながいします。
952デフォルトの名無しさん:2007/09/03(月) 10:25:14
キー入力を見てClipboardにラベルの文字をセットしたら?
953936:2007/09/03(月) 10:28:31
レスありがとうございました。
仕様でしたか。ググってもなかなか資料が出てこなくて困っていましたが
一時的にTransparencyKeyを変更するほか仕方がないみたいですね。
954951:2007/09/03(月) 10:44:45
>>952
ラベル文字全体のコピーなら良いのですが、部分的に選択して、選択したところだけを
クリップボードにコピーしたいのですが、方法はあるでしょうか?
955デフォルトの名無しさん:2007/09/03(月) 10:48:49
ラベルじゃなくてテキストボックスを使う
ReadOnly : true
BorderStyle : None
956デフォルトの名無しさん:2007/09/03(月) 10:49:12
TextBoxをラベルぽく表示してやれよ。
957951:2007/09/03(月) 11:41:28
>>955-956
できました。ありがとうございます!
以下まとめです。

「コピペできるラベルの作り方」
コンポーネント
 TextBox
プロパティ(変更点のみ)
 ReadOnly : True
 BorderStyle : None
 Multiline : True
958デフォルトの名無しさん:2007/09/03(月) 12:20:36
このスレではVB厨以下とか言っては言ってはダメなんだっけw
959デフォルトの名無しさん:2007/09/03(月) 12:28:43
そもそも初心者スレなんだからスキルは別にして、好感の持てる質問者だろ
簡単だけど目立つキーワードがなくて自分で調べにくいテーマだし
960デフォルトの名無しさん:2007/09/03(月) 12:39:17
951の善意は否定しないよ。

まあ確かにこういう善意を萎縮させないためには、多少「取るに足りないのでは?」
と思う内容でもいちいち突っ込まない寛容さが重要かもしれんとは思う。
961デフォルトの名無しさん:2007/09/03(月) 12:50:25
ここ見てるとVB.NETの初心者スレが欲しいと思う今日この頃。
スレの存在云々で決めたくないけどVB.net質問スレの酷さに
C#に移行したくなる。
962デフォルトの名無しさん:2007/09/03(月) 12:55:46
たてればいいじゃない
VB.NET初心者スレとして機能しなくてもゴキブリホイホイにはなるかもよ
963デフォルトの名無しさん:2007/09/03(月) 13:27:36
このスレは自分では得点を決めないけど
前線で潰れ役になるフォワードに似ている
964デフォルトの名無しさん:2007/09/03(月) 13:40:49
C#の↓みたいなサイトあったら教えて下さい。

ttp://www.winapi-database.com/
965デフォルトの名無しさん:2007/09/03(月) 13:49:44
966デフォルトの名無しさん:2007/09/03(月) 14:04:54
有り難う御座いました。
967デフォルトの名無しさん:2007/09/03(月) 20:14:31
ユーザーコントロールを作っているのですが
メソッドの中にメソッドが入れ子になってるような?やつはどうやったら作れますか?

たとえばListboxにはItemsってのがあってその下にAddとかClearがありますが
自作のユーザーコントロールでも同じようなことはできますか?
968デフォルトの名無しさん:2007/09/03(月) 20:16:34
定義みてましょうね。
プロパティもべんきょうしましょうね。
969デフォルトの名無しさん:2007/09/03(月) 20:21:29
まず基本的なことから。
入れ子になってるのはメソッドではなくクラス

Listboxの場合は

public class Listbox
{
 public ObjectCollection
 {
  public void Add(..)
  {
  }
 }

 public ObjectCollection Items
 {
  get{}
 }
}

となっている。
publicとかかprivateとかはクラスの使用形態で考える。
970デフォルトの名無しさん:2007/09/03(月) 20:21:32
Itemsは確かListBoxItemsというクラスじゃなかったかな
そういったAddとかClearとかのメソッドを持ってるクラスを
プロパティで返せばいいだけだよ
971デフォルトの名無しさん:2007/09/03(月) 20:22:08
まちがえた
public class Listbox
{
 public class ObjectCollection
 {
  public void Add(..)
  {
  }
 }

 public ObjectCollection Items
 {
  get{}
 }
}
972デフォルトの名無しさん:2007/09/03(月) 20:26:43
補足すると別にクラスは入れ子にする必要はないよ
要はプロパティで別のクラスのオブジェクトを返せばいいというだけ。
973デフォルトの名無しさん:2007/09/03(月) 20:57:28
>>971
アリガトン
クラスの中にクラスをネストできるなんて知らんかったです
買ってきた入門書にはのってなかったでつ

ネストされたほうの子?のほうのクラスから親クラスで宣言した変数が参照できないのでつね
974デフォルトの名無しさん:2007/09/03(月) 21:00:31
インスタンスフィールドなら親のインスタンス渡せ
静的フィールドならいくらでも
975デフォルトの名無しさん:2007/09/03(月) 22:44:19
にしてもここの住民は大した知識もないのな
直近200レスを見てもまともな答えできてないし
わからなかったら煽りレスいれたり仕様で終わらせたりと見ていて呆れるわ
976デフォルトの名無しさん:2007/09/03(月) 22:44:58
何を今更
977デフォルトの名無しさん:2007/09/03(月) 22:50:01
何か質問しなさい
なんでも答えてあげよう
978デフォルトの名無しさん:2007/09/03(月) 22:52:53
僕が道程なのはなぜですか
979デフォルトの名無しさん:2007/09/03(月) 22:54:23
C#なんかで作ったexeをサーバに突っ込んでクライアントで起動させる場合
コントロールパネルのMicrosoft .NET Framework 2.0 構成のランタイム セキュリティ ポリシー
のイントラネットのスライダーバーを目一杯上に上げれば大抵動くんだけど、サーバー変えたら
動かない、サーバーのファイル属性はフルアクセス、なんかそのところ参考になるサイトあったら
教えてください
980デフォルトの名無しさん:2007/09/03(月) 23:28:32
何のためのコードアクセスセキュリティだよっ
981デフォルトの名無しさん:2007/09/03(月) 23:53:39
何のためのコードアクセスセキュリティなの?
982デフォルトの名無しさん:2007/09/03(月) 23:55:28
すんませんだから初心者なのれす
983デフォルトの名無しさん:2007/09/04(火) 00:05:22
C#2005EEを使っているんですけど例えば
String a = "h";

String a = 1;
と書き換えてもビルドするまでエラー一覧ウインドウにエラーが表示されないのですが
vbのように即座にエラーを表示させることはできますか?
984デフォルトの名無しさん:2007/09/04(火) 00:31:04
できないです。
諦めた方がよいでしょう
985デフォルトの名無しさん:2007/09/04(火) 00:33:14
オプションで変えれなかったか?
986デフォルトの名無しさん:2007/09/04(火) 00:35:09
ここの住人はピザデブが多いんですか?
987デフォルトの名無しさん:2007/09/04(火) 00:36:11
>>986
ピザデブさん、楽しいですか?
988デフォルトの名無しさん:2007/09/04(火) 00:38:20
>>974
アリガトン
ネストする必要がないという意味がわからなかったけど
親の参照が渡せるならクラスそのものがどこにいてもいいということで
ようやく理解することができますた
989デフォルトの名無しさん:2007/09/04(火) 00:48:18
発行してインストーラ作ったんですが、インストール完了後すぐにプログラムが起動してしまいますが
この自動起動は抑止できますか?
990983:2007/09/04(火) 00:49:13
>>984-985
オプションにも無いみたいなのであきらめます
ありがとうございました
991デフォルトの名無しさん:2007/09/04(火) 02:08:37
Visual C#2005でセルをButtonとして表示するGUIのライフゲームを
作ろうとしているのですがButton描画のもっさりを改善する方法は無いでしょうか。

サンプルとしてデザイナからButtonを100個配置したFormをDelphiとC#で
それぞれ作り、ウィンドウの最小化、復元をした時の描画速度を比べたのですが
Delphiは一瞬なのに対しC#では左上から右下に向かってButtonが
描画されていくのを目で認識できる位の速度です。
992デフォルトの名無しさん:2007/09/04(火) 02:26:30
なんとかデザインサスペンドはした?
993デフォルトの名無しさん:2007/09/04(火) 02:36:51
Buttonはやめとけ。
素直に自前で直接描画。

あるいはWPF。
994デフォルトの名無しさん:2007/09/04(火) 02:44:57
>>992
動的に配置する方ではSuspendLayout、PerformLayoutしてみましたが芳しく無かったです。
>>993
簡単にできそうなのでButtonでやってみたのですが手抜きしないでやってみます。


どうもありがとうございました。
995デフォルトの名無しさん:2007/09/04(火) 02:52:01
Formsは地雷、DelphiかWPFにした方が良い。
996デフォルトの名無しさん:2007/09/04(火) 10:50:38
Visual C# 2005で変数を計算で指定したいのですが、どのように行えばいいでしょうか?
ググってみようにも、なんとググっていいのかが…。。。
具体的には下記のような下線の部分を計算したいです。

int[] intData = int[5,4,3];
int intData1;
int intData2;
int intData3;

for(int i = 0;i < 10;i++){
[intData + i.ToString()] = intData[i];
} ~~~~~~~~~~~~~~~~~~~~~~
よろしくお願いします。
997デフォルトの名無しさん:2007/09/04(火) 10:55:04
なんかすごい質問きた
998デフォルトの名無しさん:2007/09/04(火) 11:00:01
>>996
何がしたいか伝わってないから、欲しい結果を書いてごらん。
999デフォルトの名無しさん:2007/09/04(火) 11:12:47
変数名+1という式を実行したいのです
すなわちなぜ数字の1と文字列型の1が存在し区別する必要があるのかということです?
すごく面倒です
1000デフォルトの名無しさん:2007/09/04(火) 11:15:14
1000いただきじゃーい
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。