ふらっとC#,C♯,C#(初心者用) Part38
at TECH
1:デフォルトの名無しさん
09/03/01 08:45:30
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part37
スレリンク(tech板)
2:デフォルトの名無しさん
09/03/01 08:45:43
C#, C♯, C#相談室 Part51
スレリンク(tech板)
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
スレリンク(tech板)
初心者のためのプログラミング言語ガイド Part13
スレリンク(tech板)
3:デフォルトの名無しさん
09/03/01 08:45:53
参考サイト。まずはここで検索してから。
URLリンク(www.google.co.jp)
URLリンク(msdn.microsoft.com)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)
4:デフォルトの名無しさん
09/03/01 09:26:32
>> スレリンク(tech板:989番)
> 例えばゲームなんかだとそれぞれに独立したカウンタなんかを持たせたい時に必要です。
> それすらも別クラスにわけろというなら著しく生産性が落ちまくります。
OOPL的には”それぞれ”はオブジェクトなので,「独立したカウンタ」をするオブジェクトがあればいいと思うんだけど.
あと,内部的に完全に隠蔽されている変数って,なんかとてもキモいんだがその辺はどうやって折り合いつけるの?
(外から初期化したいときとか,値を変更したいときとか)
5:デフォルトの名無しさん
09/03/01 10:55:18
フィールドと変数は同じ意味ですか?
6:デフォルトの名無しさん
09/03/01 11:00:54
>>5
変数は意味が広い。フィールドもローカル変数も変数と呼ばれることもある
7:デフォルトの名無しさん
09/03/01 11:52:55
dockの優先度がさっぱりわかりません。
優先順を設定する方法はありますか?
8:デフォルトの名無しさん
09/03/01 12:28:52
ZOrder、つまりControlsへの挿入順
右クリックから前にとか後ろにとか
あとControlsのSetChildIndex
9:デフォルトの名無しさん
09/03/01 12:43:33
前スレの>>986が言った
> メソッドの中でしか使わないけど値を保持しておきたいローカル変数ってたまにありますけど、
これは正しいよ。
なぜかC#しかやってない人は頑なに否定する傾向があるようだけど。
例えばこれが可能だと、シングルトンパターンとか、IDisposable.Disposeを実装したときありがちな
2回目以降の呼び出しはスルーする処理が綺麗に安全に書ける。
10:デフォルトの名無しさん
09/03/01 12:46:25
つまり関数の呼び出しをカウントするための変数ってことですね
インスタンスフィールドでFAじゃ・・・ないの?
綺麗?安全?だからか
11:デフォルトの名無しさん
09/03/01 12:47:10
使い道はあるかもしれないけど複雑になるのが嫌だから省いただけだろ
もともと過去の名残で残ってるだけだし
12:デフォルトの名無しさん
09/03/01 13:56:08
>9
JavaScriptみたいに匿名メソッドを返す匿名メソッドを実行する形で
メンバ変数のdelegateを初期化すれば実現できると思うけどコンパイルが通らない。
こんな感じになると思うのだけど。
public static Func<int> TestFunc = (() => {int i = 0; return (() => i++);})();
13:デフォルトの名無しさん
09/03/01 14:04:24
型推論に失敗してるだけだろ
適当にActionとかヒント与えたら通る
14:デフォルトの名無しさん
09/03/01 14:06:55
すまんActionじゃなくてFunc<int>か
public static Func<int> TestFunc = new Func<Func<int>>(() => { int i = 0; return new Func<int>(() => i++); })();
こうだな
15:デフォルトの名無しさん
09/03/01 14:25:13
>>9
あるよって言うのは半分同意せんでもないが、使っているとこに
手を入れるときにメンバに直すこともかなりの割合で経験上
発生するので実質いらんと思う。
否定する人ですが、こういったらいいですかね?C# だけしか
やっていなくて否定している人ばかりではないですよと
ちなみにお前が挙げた例で、IDisposable.Dispose の例、その
フラグを後で他から参照したくなることは多くて結局 IsDisposed
実装したりだとかな(というか ObjectDisposedException どうする
んだよそれしたら)。
つまり、乱用もよく見かけるってことか。なので初めからメンバに
持ってろと。
16:デフォルトの名無しさん
09/03/01 14:28:39
人をいきなり「お前」呼ばわりする奴ってどうして例外なく馬鹿なんだろ。
「こういう場合は」必要だ、って主張の反論に「こういう場合」と違う場面を
挙げてそれって反論として成立してると思ってるのかな。
17:デフォルトの名無しさん
09/03/01 14:33:31
何でもいいけど和やかなカンジで頼む
18:デフォルトの名無しさん
09/03/01 14:33:34
最大の理由は「Javaに無いから」なんだろうなきっと
意図的に捨てたんだから無いもんは無い
19:デフォルトの名無しさん
09/03/01 14:36:33
プログラミングC# 第5版の日本語版が出たらしいのですが、
JavaをやってたC#初心者には難しいですか?
Webの入門サイトだけじゃなく、手元に本が欲しくなってしまって
20:デフォルトの名無しさん
09/03/01 14:42:54
難しかったらJavaをやってたとは言えない
21:デフォルトの名無しさん
09/03/01 14:47:34
別に難しくはないと思う。
パラパラと見ただけなんだけど印象としては、
説明が親切なつもりなんだろうけど回りっくどいだけで全然分りやすくない。
あと冒頭で同性愛をカミングアウトするのはいらないと思った。
誰も著者の私生活になんて興味ないのに。
22:デフォルトの名無しさん
09/03/01 14:48:17
>>16
気分害した、解りにくいなら謝りますが、本旨は「挙げた例にすら乱用してる
っぽい感じのものがあるよ」って話です。
これで「たまに」のラインが変わってくるのですよ
23:デフォルトの名無しさん
09/03/01 14:58:52
>>22
過剰反応だったかなごめん。
まあ確かにそんなに有用な場面が多いわけではないのは俺も認めるところ。
あった方がいいとは思うけどなくてもそんなに困らないのは確か。
24:デフォルトの名無しさん
09/03/01 14:59:34
何でもいいけど和やかなカンジで頼む
25:デフォルトの名無しさん
09/03/01 15:05:03
IDisposable実装するときは、private bool _disposed; を
フィールドにしとくのが定石なんじゃないの?
URLリンク(msdn2.microsoft.com)
26:デフォルトの名無しさん
09/03/01 15:14:26
>>23
さらにいえばなんつーかな、C++ とかだと時間を経るごとにこういう
ので見えるところ消えていくんだよなぁってのがあり。楽する機能として
使っているところな。テンプレートライブラリやらマクロやらではどうして
も必要なときがあってそういうのは残るけども。
そして突っ込んでいくと、後から考えるに明らかに乱用だったなぁと思う
わけだが、事前にこれを予測するのは難しかったなぁってことで結局
状態単位が class スコープに絞るほうが混乱がなくていい気がするんだよ
もちろん単純に経験からくる感覚なので常に正しいとは言わないが
27:デフォルトの名無しさん
09/03/01 15:14:31
コードでタイトルの文字を変える方法がよくわかりません
プロパティで変えるのは出来ますが、起動中に変えたいのです
普通に考えてform1.text=だと思ってたんですがそれだといかんようで。。。
28:デフォルトの名無しさん
09/03/01 15:21:25
form1はクラスだろ
インスタンスじゃねえだろ
29:デフォルトの名無しさん
09/03/01 15:24:24
>>27
ヒントはthisそして省略
30:デフォルトの名無しさん
09/03/01 15:54:23
全然わかりません・・・
31:デフォルトの名無しさん
09/03/01 16:14:57
>>4
外から初期化したり変更出来ないメンバ変数なんて普通にあると思うけど。
特定のメソッドからしか参照できないメンバ変数って革命的じゃない?
宣言だけ明確にしてれば変数名に悩む必要ない!
32:デフォルトの名無しさん
09/03/01 16:19:20
言語をそういう風に拡張するのは難しくはないのだろうが、下のどっちの機能が欲しいんだ?
Sub f() ' VB クラス内の関数
Static anonimous As Integer = 0; // インスタンス変数
void f() { // c++ クラス内のメンバー関数
static int anonimous_static = 0; // クラス変数
実装は結局、匿名のメンバーまたはスタティックメンバーを追加するだけなのだろうけど。
int f_anonimous = 0;
static int f_anonimous_static = 0;
void f() {
f_anonimous++;
f_anonimous_static++;
33:デフォルトの名無しさん
09/03/01 16:22:59
>>31
クラス分けすれば済むんじゃないか。
そんな変な機能は迷惑
34:デフォルトの名無しさん
09/03/01 16:47:43
>>32
staticだとオブジェクトを複数生成した時困るよ。
>>33
糖衣構文だよ。
匿名型とかラムダ式だってクラスわけすれば済むけどもっと手軽に書けるようになったじゃん。
35:デフォルトの名無しさん
09/03/01 16:57:01
そのうちC#にも糖衣構文でmoduleが欲しいとか言い出しそうだな。
そろそろすれ違いだこの辺にしよう。
36:デフォルトの名無しさん
09/03/01 17:32:29
>14
やはり省略できないのか。
もうちょい型推論頑張ってくれと思うけど仕方がないか。
37:デフォルトの名無しさん
09/03/01 17:45:15
C#でマップエディタ作ろうと思うんだけど
marshalとか必要になってくるかな?
C#ってそんなに重くない?
38:デフォルトの名無しさん
09/03/01 17:48:48
要らない
重くない
39:デフォルトの名無しさん
09/03/01 17:54:15
ありがとうございます
40:1
09/03/01 18:01:37
どうでもいいけど俺への感謝はないのか
41:デフォルトの名無しさん
09/03/01 18:03:45
thx
42:デフォルトの名無しさん
09/03/01 18:04:01
>>1
ペッ
43:デフォルトの名無しさん
09/03/01 18:07:24
>>40
死ね
44:デフォルトの名無しさん
09/03/01 19:14:53
ジェネリッククラスのwhere節でなぜSystem.ValueTypeは指定できないんですか?
45:19
09/03/01 19:18:39
>>20
>>21
本屋でチェックしてみます
ありがとうございました
46:デフォルトの名無しさん
09/03/01 21:06:06
IDisposableを実装するのは、破棄すべきアンマネージリソースがあるからであって、
その状態をきちんとマークしておけば、わざわざフラグなんか持つには及ばないと思うんだ。
たとえば、内部的に何かのWin32ハンドルを使っているとすれば、↓こんな感じで。
if (_hProc != IntPtr.Zero)
{
bool success = CloseHandle(_hProc);
if (success)
{
_hProc = IntPtr.Zero;
}
else
{
throw new Win32Exception();
}
}
47:デフォルトの名無しさん
09/03/01 21:12:36
Disposeが例外投げちゃ駄目だろ。
ディスク容量不足の時のFileStreamみたいな悲惨なことになるぞ。
48:デフォルトの名無しさん
09/03/01 21:47:48
C#2.0でForm上に区切り線を設置したいのですが、どうすればいいですか?
Penオブジェクトやらを用意して、Form上に描画しないとならないのでしょうか。
49:デフォルトの名無しさん
09/03/01 21:55:03
>>44
where T : struct
>>48
標準の方法はありません
50:デフォルトの名無しさん
09/03/01 21:57:18
>>48
URLリンク(www.atmarkit.co.jp)
51:デフォルトの名無しさん
09/03/01 22:06:04
>>50
Win95のころからある手法なのに知らない人多いのかな
52:デフォルトの名無しさん
09/03/01 22:11:13
>>49
工エエェェ(´д`)ェェエエ工工
>>50
ありがとうございます。便利だけど関係ないtextboxがあるのは、なんかいやですね・・
>>51
不便ですね。直接描画できると良いのに。
53:デフォルトの名無しさん
09/03/01 22:18:17
Splitterコントロール使ったら?
54:デフォルトの名無しさん
09/03/01 22:19:56
>>52
直接描画したいのなら最初からそうすりゃいいじゃんw
言ってること意味不明だよ。
55:デフォルトの名無しさん
09/03/01 22:24:02
Visual Basic PowerPackにLineって無かったっけ?
56:デフォルトの名無しさん
09/03/01 22:24:17
>52
Visual Basic Power PacksにLineShapeコントロールがあるよ。
57:デフォルトの名無しさん
09/03/01 22:26:08
屈辱的な11文字だなw
58:デフォルトの名無しさん
09/03/01 22:30:32
VS2008だけじゃないの?
URLリンク(www.atmarkit.co.jp)
59:デフォルトの名無しさん
09/03/02 00:13:24
>>44
>>49 で出てるけど where T : struct。
細かい話をすると同時に new() 制約フラグとか valuetype 制約フラグ
とか必要といった話になるので直接 ValueType から継承なクラス指定は
しない。
>>46
根っこはな。Component も IEnumerator<T> も実装していたりする
ので一概に言えるものじゃない。
60:デフォルトの名無しさん
09/03/02 00:35:39
>58
2005でも追加でインストールすれば使えなかったっけ?
61:デフォルトの名無しさん
09/03/02 01:15:35
>>59
でもC++/CLIだとSystem.ValueTypeだけを指定ってのもできるんだよな
62:デフォルトの名無しさん
09/03/02 01:25:43
>>61
それ、C# だと struct 制約のことなんでは。
C# で
class GenericTest<T> where T: struct {}
をコンパイルして逆アセすると、
.class private auto ansi beforefieldinit GenericTest`1<valuetype .ctor ([mscorlib]System.ValueType) T>
になる。
63:デフォルトの名無しさん
09/03/02 03:27:02
すいません質問です。
OpenFileDialogやSaveFileDialogをフォームデザイナから追加したのですが、最後に検索したフォルダの位置を記憶しているようなのです。
もしかしてレジストリとかに最後のフォルダの位置とか記憶してたりするのでしょうか?
64:デフォルトの名無しさん
09/03/02 03:53:43
>>63
インスタンスのプロパティで設定できる。
詳しくはMSDN読め
65:デフォルトの名無しさん
09/03/02 03:56:06
記憶してるのが気味悪いって意味だと主
66:デフォルトの名無しさん
09/03/02 03:58:45
RestoreDirectoryで設定できるって意味だとおも
67:デフォルトの名無しさん
09/03/02 04:34:25
みなさんサンクス。言いたかったことは>>65です。
そしてRestoreDirectoryを少なくともデザイナからの変更した状態では、何も変わっていないような気もして凄く気味が悪いです。
68:デフォルトの名無しさん
09/03/02 04:59:21
イェーイ俺天才
>>64>>66
バーカバーカ
69:デフォルトの名無しさん
09/03/02 05:30:54
変わらないってこと自体おかしいと思うんだが
まさかfalseにして変わらないとか言ってないだろうね
70:デフォルトの名無しさん
09/03/02 07:42:26
カレントディレクトリが変わるからな
71:デフォルトの名無しさん
09/03/02 09:03:10
>>62
C++/CLIでValueType制約にすると <([mscorlib]System.ValueType) T>
これだとValueTypeを継承しただけの参照型(C#では作れない)でも可
デフォルトコンストラクタ制約もない
C++/CLIでvalue class制約にすると <valuetype .ctor T>
これだとValueTypeを継承してなくても値型ならなんでも可(C#では作れない)
C#のstruct制約と同じにするにはwhere T : ValueType, value classにする
72:デフォルトの名無しさん
09/03/02 12:42:43
>>69,70
あー理解しました、ありがとうございます。
カレントディレクトリとFileDialogが固有に保存するディレクトリ位置をごっちゃにしてました。
ただこうなるとFileDialogが固有の値がどこに保存してるかホントにわかりませんね
73:デフォルトの名無しさん
09/03/02 12:49:05
普通にレジストリだけどな
74:デフォルトの名無しさん
09/03/02 14:03:59
最後に検索したディレクトリ=CurrentDirectoryだろ?
固有の値ってなんじぇすか?
75:デフォルトの名無しさん
09/03/02 14:05:56
いいえ
76:デフォルトの名無しさん
09/03/02 14:48:38
>>56
そんなのがあるんだ。
77:デフォルトの名無しさん
09/03/02 15:21:50
>>74
System.IO.Directory.GetCurrentDirectory()静的メソッドで取得できるのがカレントディレクトリ。通常は起動したアプリの位置。
以下さっき確認した方法をば。
1、WindowsFormAppricationを新規作成
2、フォームデザイナ表示して、ツールボックス>適当にOpenFileDialogを追加。
3、フォームのクライアント領域をフォーカスして、適当にプロパティ>Clickイベントを追加。ハンドラでダイアログをShowDialogる。
4、ShowDialog()の前後をMessageBoxでカレントディレクトリ情報を表示。
5、ダイアログのRestoreDirectoryプロパティがtrueとfalseのときの挙動を見比べる。
78:デフォルトの名無しさん
09/03/02 19:15:08
XMLファイルの暗号・復号で行き詰まってしまいました。
ちょっと長くなるのでテキストファイルにして上げました。
一度見てもらえれば幸いです。よろしくお願いします。
URLリンク(uproda.2ch-library.com)
表示できない場合はしたのURLからお願いします。DLキーはそのまま「1」です。
URLリンク(uproda.2ch-library.com)
79:デフォルトの名無しさん
09/03/02 20:03:39
質問
System.Windows.Forms.WebBrowserコントロールで
Navigate("url string") でHtml表示できますが、
Proxyサーバを経由するときはどうしたらいいのですか?
Proxyプロパティを持っているWebClientを使用して
試しにyahoo.co.jpを
WebClientからDownloadData⇒byte[]をstreamに変換
DocumentStreamにセット
DownloadString⇒DocumentTextにセット
とかやってみたんですがスクリプト関係が読み込めないようです。
80:デフォルトの名無しさん
09/03/02 20:12:31
一番楽なのはインターネットオプションで設定しとくことだが
81:デフォルトの名無しさん
09/03/02 21:05:22
>>78
test1.xml
はどんな出力になっているの?
82:78
09/03/02 21:41:32
>>81
ファイルの中身でしょうか?このようになっています。
※改行規制に引っかかったので適当に改行しました。
ちなみに、暗号化されていると思われる部分は毎回内容が違っています。
<root>
<EncryptedData Id="EncryptedElement1" Type="URLリンク(www.w3.org)
c#Element" xmlns="URLリンク(www.w3.org)"><EncryptionMethod Algorith
m="URLリンク(www.w3.org)" /><CipherData><CipherValue>ZdxQ
9vVJIP9l94JL5p+Y8Wth3TZpgPnn/5Ta48lKRBdhsaL87ywnN8lVPcSZYm5emTnWChPk5IiL2iIqClD
tvxzv84ko/9XsbHtj4cv7yLYLH4MZUmX3ds3AEiDIondHwst9EPk7YK5UUERaIPx8rEksIKcOpc8dJb
vB3celcTw=</CipherValue></CipherData></EncryptedData>
</root>
83:デフォルトの名無しさん
09/03/02 21:54:06
>>82
URLリンク(msdn.microsoft.com)(VS.80).aspx
には、
><EncryptedData> 要素の <EncryptedKey> 要素に格納されたセッション キーを
>復号化します。次に、セッション キーを使用して XML 要素を復号化します。
って書いてあるけれど、<EncryptedKey> 要素がないよね?
暗号化は出来ているようだ、って書いてあったけど、その認識が多分誤り
なんじゃないかな。長いのでチェックしきりれないんだけど、多分間違いが
あるのはEncryptメソッドの方だと思う。
84:デフォルトの名無しさん
09/03/02 22:02:26
AESで暗号化しているのに、非対称キーってどういうことなんだろな→マイクロソフト
初期化ベクタと共通キーで、共有鍵暗号のはずなのに。
85:83
09/03/02 22:07:36
>>84
いや、セッションキーはAESなんだけど、それをRSAで暗号化してXMLに埋め込むって
コードのはずが、上手く行っていないって話のようです。
86:83
09/03/02 22:15:06
なんか、
edElement.KeyInfo.AddClause(new KeyInfoEncryptedKey(ek));
の後に
edElement.KeyInfo = new KeyInfo();
なのって凄くおかしくない?
87:83
09/03/02 22:43:53
// Create a new KeyInfo element.
edElement.KeyInfo = new KeyInfo();
// Add the encrypted key to the
// EncryptedData object.
edElement.KeyInfo.AddClause(new KeyInfoEncryptedKey(ek));
この順序にしたら、出力が
<root>
<EncryptedData Id="EncryptedElement1" ほにゃらら>
<EncryptionMethod Algorithm="URLリンク(www.w3.org)" />
<KeyInfo ほにゃらら>
<EncryptedKey ほにゃらら>
<EncryptionMethod Algorithm="URLリンク(www.w3.org)" />
<KeyInfo ほにゃらら>
<KeyName>rsaKey</KeyName>
</KeyInfo>
<CipherData><CipherValue>ほにゃらら</CipherValue></CipherData>
<ReferenceList>
<DataReference URI="#EncryptedElement1" />
</ReferenceList>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>ほにゃらら</CipherValue>
</CipherData>
</EncryptedData>
</root>
ってなった。これで、キーが埋め込まれたっぽくない?
88:デフォルトの名無しさん
09/03/02 22:46:15
XMLの要素だけを暗号化してくれるのか
項目を自分で暗号化してxmlに保存するでもいいけど、
一括して暗号化してくれるなら、ライブラリ化しとけば後で便利そうだな
89:デフォルトの名無しさん
09/03/02 22:49:39
まあ、MSDNのサンプルなので間違いも多いってこった。
#MSDNのコードって、何故か、バグはあってもビルドだけはばっちり通るんだよなあ。
90:デフォルトの名無しさん
09/03/02 23:14:48
>>61>>71
そうなのか
C++/CLIでできることをC#では禁止する理由がわからんな
91:78
09/03/02 23:21:43
>>87
ありがとうございます。
お蔭さまで無事解決しました!感謝感謝です!!
それにしても公式のサンプルでも間違いはあるのか。
92:デフォルトの名無しさん
09/03/02 23:24:22
>>90
できたところで全く意味がない
混乱を生むだけ
CILではできるのにC++/CLIではできないことだって当然いくらでもある
93:87
09/03/02 23:32:05
MSDNに関する限り、「公式のサンプル"でも"」という認識は改めるべき。
バグがあるとかいう以前にそもそもヘルプに直書きしてテストしていないような
雰囲気のコードが多い。
94:デフォルトの名無しさん
09/03/02 23:35:17
>>90
一言で言うとややこしかったり仕様にあわなかったり意味が
なかったり。
C# 内の制約は何つーかすごい色々な理由が複雑に絡まり
あってさまざまに制限がかけられている。必要のないパターン
だったり、扱えないものだったり、推論上の問題だったり。
例えば、class ([mscorlib] System.ValueType) なんて制約は
実はありでこれはValueType と Enum だけ OK とか
valuetype ([mscorlib]System.ValueType) と
([mscorlib]System.ValueType) だけの違いは Nullable<T> が
入るかどうかとか。
ちなみに >>71 の説明ちょっと変?というか valuetype special
constraint は Nullable<T> 「構造体」の存在が大きい。
この special constraint で大雑把に言って Nullable<T> が
含まれるのか除外されるのかが決まる
95:デフォルトの名無しさん
09/03/02 23:43:06
SQLを発行してその結果をGridViewに突っ込んでBindしてGridを表示しているのですが
SQLの結果で例えばある列に特定の値があった場合は、その行を表示しないという事をやりたいのですが
どのようにしたら良いでしょうか?
rowdataboundイベントで値のチェックをして
e.row.cells[0].remove()とかを全部の列にやっても小さい枠が残っちゃうんですよね。
96:デフォルトの名無しさん
09/03/02 23:44:48
それをSQLのクエリに書くのが普通でしょ
もしくはDataTable.Select("", "");を使う
97:デフォルトの名無しさん
09/03/03 00:04:04
こんな質問していいかわからんのですが
普段windows認証でsql serverにつないでるのですが
今回sql server接続にチャレンジしたのですが、つながりません・・・・
「ユーザーhogeは接続できませんでした。このユーザーはsql serverの信頼関係接続と関連づけられてません」と帰ってくるのですが
hogeに問題があると思うのですが、通常hogeは何なんでしょう?
ぎ・・・ギブ 日本語・・おkだな
98:デフォルトの名無しさん
09/03/03 00:10:01
hogeに接続権限がないとか?
99:デフォルトの名無しさん
09/03/03 00:12:22
>>98
・・・ということは
SQLマネージメントスタジオで設定するんですか?^^;ひー
100:デフォルトの名無しさん
09/03/03 00:14:03
管理ツールで設定すれば大丈夫です。
101:デフォルトの名無しさん
09/03/03 00:19:45
>>100
SQL Server構成マネージャのことですか?
試行錯誤中
102:デフォルトの名無しさん
09/03/03 00:24:42
RuntimeTypeHandleをTypeを通さずにジェネリック型から直接取る方法はないの?
IL1命令だけで取れるはずなのに
ILを直接書くか,
static class RuntimeTypeHandles<T> {
public static readonly RuntimeTypeHandle Value = typeof(T).TypeHandle; }
くらい?
103:78
09/03/03 00:29:39
>>93
了解しました!
ホント思ってもみませんでしたよ…
104:デフォルトの名無しさん
09/03/03 01:00:47
saでいいじゃん
105:デフォルトの名無しさん
09/03/03 01:08:53
Lanの接続テストをしようとして
ヴァーチャルPc越しに下記コネクションを利用して開こうとしたんですけど
つながりません・・・
C:\を\\にしたり
\SQLEXPRESS;を\\SQLEXPRESS;
にしたけどダメでした
C# Express Editionじゃだめなんでしょうか?
connStr = @"
Data Source = .\SQLEXPRESS;
AttachDbFilename = C:\hoge\hoge.mdf;
Integrated Security = True;
User Instance = True;";
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open(); // コネクションのオープン
}
106:デフォルトの名無しさん
09/03/03 01:16:38
>>105
それじゃ自分自身のインスタンスになってんじゃないの?
バーチャルPCに対してならIPアドレスか、バーチャルPCのドメインとか、
PC名で指定する必要があるんじゃないか?
107:デフォルトの名無しさん
09/03/03 01:24:02
>>106
むむむ
しらべてあす報告します
ありがとうです
108:デフォルトの名無しさん
09/03/03 02:34:16
char c = 'a';
string s = Convert.ToString(c);
string s = c.Tostring();
上ができないのは何でなんだぜ?
109:デフォルトの名無しさん
09/03/03 02:37:56
2回もキャストするの?
110:デフォルトの名無しさん
09/03/03 02:52:00
>>108
エラーになるのは下だけでしょ
Convertには ToString(char) のクラスメソッドがあるけど、
Charには ToString() のインスタンスメソッドがないから
111:デフォルトの名無しさん
09/03/03 02:52:33
鳩山弟の偵蝶はすげえなというか、この情報の確度と有益さは恐ろしい
さすがアルカイダの友達の友達だ
112:108
09/03/03 02:56:20
間違えた
char c = 'a';
↓はできるけど
string s = Convert.ToString(c);
string s = c.Tostring();
↓はできない
string s = (string)c;
113:108
09/03/03 03:00:40
もしかしてstringはキャスト演算子使えない?
114:デフォルトの名無しさん
09/03/03 03:07:38
キャストはコンバートじゃありません
根本的に勘違いしてるんじゃないかなあ
115:デフォルトの名無しさん
09/03/03 03:46:32
>>110
Object.ToString()
116:デフォルトの名無しさん
09/03/03 04:03:43
>>115
ごめん、そりゃそうだ
エラーになると思い込んでたのでorz
117:デフォルトの名無しさん
09/03/03 04:06:18
>>113
ちなみに(int)cは出来る。
といった辺りから考えてみてくださいな。
118:デフォルトの名無しさん
09/03/03 04:27:16
あー、わかった
stringはcharの配列だけどcharは値型、stringは参照型だからキャストできないってこと?
charは16bitのUnicodeだし
119:デフォルトの名無しさん
09/03/03 08:03:13
変換演算子が定義されてないからキャストできないだけで
値型とか幅とか何も関係ない
120:デフォルトの名無しさん
09/03/03 09:25:56
うん
できたからといって別におかしいことはない
できるようにされてないだけ
121:デフォルトの名無しさん
09/03/03 09:58:26
ファイル読み込みについて質問なんですが、
拡張子ではなく中身でテキストファイルかバイナリファイルかを
判別する方法ってありますか?
122:デフォルトの名無しさん
09/03/03 10:01:33
テキストファイルだってバイナリだろ
123:デフォルトの名無しさん
09/03/03 10:04:09
IMultiLanguage2に食わせてみる
124:デフォルトの名無しさん
09/03/03 10:05:02
メソッド名抜けた。DetectInputCodepage
125:デフォルトの名無しさん
09/03/03 13:06:42
このへんかな?
まぁテキストかバイナリかを見分けると言われれば>>122が正しいんだが
ちょっとエスパーしてみた
URLリンク(dobon.net)
126:デフォルトの名無しさん
09/03/03 14:04:57
FindMimeFromData()じゃないの?
127:デフォルトの名無しさん
09/03/03 14:10:53
DBから指定したテーブルのIDフィールドとNAMEフィールドを取得して
NAMEフィールドをコンボボックスに表示したいと思っています。
その時にNAMEフィールドのデータに紐付くIDフィールドも保持して
コンボボックスを操作した際に、IDフィールドも同時に制御するような処理を作りたいのですが
どのように作ればいいのでしょうか?
コンボボックスを2つ用意して片方を非表示にして制御する方法しか思いつきませんでした
宜しくお願い致します
128:デフォルトの名無しさん
09/03/03 14:25:20
>>127
つコレクション
129:デフォルトの名無しさん
09/03/03 14:45:21
DataTable使ってねーの?
130:デフォルトの名無しさん
09/03/03 15:30:30
めんどくさいからバインドしちゃえよw
131:デフォルトの名無しさん
09/03/03 15:30:54
>127
DisplayMemberにName
ValueMemberにID
SelectedChanged(で合ってるのかな)イベントにハンドラ追加して
ComboBox.SelectedValueでIDが取得できるんじゃね?
データバインドのときに限るが。
それかEntityクラス作って ToStringメソッドをオーバーライドして
ToStringでNameを返すようにする。
Entityクラスのオブジェクトをコンボにセットすれば
ToString()したときの文字列がコンボに表示される。
あとはSelectedChangedで(Entity)キャストしてオブジェクトを取り出す。
132:デフォルトの名無しさん
09/03/03 20:07:59
List(要素数は50個)を
List1(0〜25)とList2(25〜50)に分割するにはどうやったらいいのでしょうか?
133:デフォルトの名無しさん
09/03/03 20:16:13
GetRange使えば?
134:デフォルトの名無しさん
09/03/03 20:22:03
ありがとうございます
GetRangeなら出来そうですね
やってみます
135:デフォルトの名無しさん
09/03/03 20:27:14
list.GroupBy(i => i < 25);
136:デフォルトの名無しさん
09/03/03 21:01:10
>>135
それは違うだろ。値じゃなく添え字で分けたいんだから。
137:デフォルトの名無しさん
09/03/03 21:12:14
そういえばGroupByにindexくれるFuncを使えるのが無いのは何でなんだろ
138:デフォルトの名無しさん
09/03/03 21:12:46
>>136
すまん、そのとおりだ。
長くなるけどこっちで。
list.Select((value, index) => new { value, index }).GroupBy(t => t.index <= 25, t => t.value);
139:デフォルトの名無しさん
09/03/03 22:59:25
生年月日と指定した日付を渡すと
指定した日付の時の年齢を返すようなのってどうやりますか?
140:デフォルトの名無しさん
09/03/03 23:00:25
引き算
141:デフォルトの名無しさん
09/03/03 23:08:45
DateTimeクラスなんかで年齢を返すメソッドがあってもいいような・・・
あんま需要ないのか?
142:デフォルトの名無しさん
09/03/03 23:18:03
それは需要があるとしてもTimeSpanか、あるいは年齢専用のクラス(Ageクラス?)
でやるべきじゃないのかな
143:デフォルトの名無しさん
09/03/03 23:18:56
誕生日って閏年とかあったから、単純に引き算だとへんな年齢になることなかったっけ?
正確には月を比較して、同月なら日を比較して、年の差から年齢を求めるが正しい気がする。
144:デフォルトの名無しさん
09/03/03 23:19:31
VB だったらそういうメソッドも普通に定義されてるかもな。
145:デフォルトの名無しさん
09/03/03 23:21:32
日本の法律では、誕生日の前日に年を取る
豆知識
146:デフォルトの名無しさん
09/03/03 23:23:55
>>145
法律的に年利計算は閏年の翌日?前日?
147:デフォルトの名無しさん
09/03/03 23:30:11
>閏年の翌日?前日?
?
148:デフォルトの名無しさん
09/03/03 23:35:42
TimeSpanに年数を示すプロパティはないんだな。考えてみれば、月数や年数はTicksから
一意に定まるものじゃないものな。
結局場合分けして引き算するしかなさそうだ。
ちなみに、年齢が変わるのは「誕生日の前日の午後12時」なので、誕生日が来たら年齢が変わると考えておk。
// DateTime d1 = 指定日付, d2 = 誕生日
int age;
if (d1 < d2)
{
// 何かしらエラー処理する
}
else if (d1.Month > d2.Month || (d1.Month == d2.Month && d1.Day >= d2.Day))
{
age = d1.Year - d2.Year;
}
else
{
age = d1.Year - d2.Year - 1;
}
149:デフォルトの名無しさん
09/03/03 23:36:04
税金関係は1年=365日で定数だった気が
誕生日の前日に年取るのは閏日生まれの為だし
150:デフォルトの名無しさん
09/03/03 23:42:56
>>106
詳しく!
ヘルプミー
今日で約1週間!俺はアホなのかー♪;;
151:デフォルトの名無しさん
09/03/03 23:48:42
>誕生日の前日に年取る
これじゃ不正確
民法の試験じゃ×になる
152:デフォルトの名無しさん
09/03/03 23:50:26
だからなんだよ。司法関係者にでもなるのか?
153:デフォルトの名無しさん
09/03/03 23:52:06
うん
応援してね
154:デフォルトの名無しさん
09/03/03 23:54:27
.∧__,,∧
(´・ω・`)
(つ夢と)
`u―u´
あなたの後ろに落ちてたこれを、
∧__,,∧ ∧__,,∧
(`・ω・ ) ミ (`・ω・´)
( つ ⌒ヽ と ,u、つ
`u―u' 夢 `u´夢
YY⌒Y
こうして、 こうして、
∧__,,∧
_ (ω・´ )
夢 三ニ ☆ __,( )つ
 ̄ `ー―‐u'
こうだ !
155:デフォルトの名無しさん
09/03/04 00:01:14
>>150
Data Source=***.***.***.***,????;Initial Catalog=++++;Persist Security Info=True;User ID=--;Password=\\\\
***.***.***.*** ipaddress
+++ データベース名
-- 接続するユーザ名
\\\\ 接続するユーザ名のパスワード
で接続できた。インスタンスは規定のインスタンスだから指定なし
156:デフォルトの名無しさん
09/03/04 00:02:31
>>151
んでシステム上ではどうするのが正解なんだい
157:デフォルトの名無しさん
09/03/04 00:03:39
すまん
????はポート
158:デフォルトの名無しさん
09/03/04 00:18:44
.∧__,,∧
(´・ω・`)
(つ夢と)
`u―u´
回収!!
159:デフォルトの名無しさん
09/03/04 00:20:33
ポート・・・?うーん勉強してきます・・・
ありがとう
160:デフォルトの名無しさん
09/03/04 00:20:54
∧_∧
( ・∀・)
と )シュッ
Y しノ彡 -=ニ三 夢
ヽ )
161:デフォルトの名無しさん
09/03/04 00:29:25
.∧__,,∧
(´・ω・`)
(つ夢と)
`u―u´
もう離すものか!!
だれにも渡さない!
162:デフォルトの名無しさん
09/03/04 00:31:26
∧_∧
∧_(∀゚ ; )
( ・∀・) つ
(っ夢⊂≡て ヽ よこせ
して_)_ノw (_)
∧_∧
( ・∀・)
と ) シュッ
Y しノ彡 -=ニ三 夢
ヽ )
163:デフォルトの名無しさん
09/03/04 00:35:28
いつも思うんだが、お絵かきできてうれしくなっちゃう奴って
精神年齢が幼稚園時代で止まってるのか?
本気で理解できんよ。
164:デフォルトの名無しさん
09/03/04 00:37:57
コピペネタにマジレスかよw
165:デフォルトの名無しさん
09/03/04 00:40:47
.∧__,,∧
(´・ω・`)
(つポート
`u―u´
ポートとは何ぞや!
166:デフォルトの名無しさん
09/03/04 00:41:35
コピペだろうが何だろうがマジレスしてもらえるだけありがたいだろ
167:デフォルトの名無しさん
09/03/04 00:42:42
わりい間違えた
×マジレス
○キチガイレス
だわ
168:デフォルトの名無しさん
09/03/04 00:44:22
>>132
25が重複してるが、当分割と仮定して、
var list1 = list.Take(25).ToList();
var list2 = list.Skip(25).Take(25).ToList();
>>139
int age = target.Year - birth.Year;
if(target < birth.AddYears(age)) age--;
169:デフォルトの名無しさん
09/03/04 00:45:07
>>163
お絵かき楽しいだろ。
素直になれよ。
170:デフォルトの名無しさん
09/03/04 09:49:54
>>159
特別な事情がない限りSQL Serverのポート番号はデフォルトの1433なので省略可能。
ので接続先のマシンがたとえば192.168.1.1でインスタンス名がSQLEXPRESSなら
Data Source=192.168.1.1\SQLEXPRESS
だし、既定のインスタンスに接続するならインスタンス名も省略できて
Data Source=192.168.1.1
で、特別な事情(SQL Server 2000/2005/2008を共存させてるとか)があって別のポート(たとえば11433)を使っているなら
Data Source=192.168.1.1,11433\OTHERINSTANCE
それでもつなげないなら接続先のファイアウォールが邪魔してると思われる。
171:デフォルトの名無しさん
09/03/04 10:12:34
そもそもManageMentStudioExpressとかで繋げてるのかな…・?
172:デフォルトの名無しさん
09/03/04 10:46:18
>>159
>>171も言ってるように、SSMSとかサーバーエクスプローラとかで接続してみるのが先だな。
てか、TCP接続ってデフォルトでOFFじゃなかったか?
それにしても斬新な区切り方だな>>171
173:デフォルトの名無しさん
09/03/04 11:39:32
C#でアッカーマン関数を計算させようとしていますが、スタックオーバーフローが
起きます。C#でスタック領域を広げるにはどうすればいいのですか?
174:デフォルトの名無しさん
09/03/04 11:55:25
多倍長計算させて、それでスタックが足りなくなってるの?
それとも、普通にInt32なりInt64なりを使っていて、再帰が
深くなりすぎてスタックが足りなくなってるの?
後者だとしたら、どうせ計算可能な部分はめちゃめちゃ限られているので、
アッカーマン関数の値を計算していく順序を工夫すべきだと思う。
URLリンク(www.google.co.jp)アッカーマン関数&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
これ見ると分かるけど、m=3以降に関しては、頑張っても報われないよ?
175:デフォルトの名無しさん
09/03/04 11:59:52
>>173
>>174で答えが出てるけど、どうしてもスタック領域を広げたいという話であれば
Threadクラスのコンストラクタで指定できるらしい。試してないけど。
URLリンク(msdn.microsoft.com)
176:デフォルトの名無しさん
09/03/04 12:01:22
>>174
再帰が深くなりすぎます
>>175
具体的にはどのようなコードを書けば良いのでしょうか?さっぱりわかりません
177:デフォルトの名無しさん
09/03/04 12:02:40
例えば大きな配列を確保する時など、後学のためにスタックサイズを
広げる方法を知っておきたいのです。C/C++ならリンカオプションで
簡単に出来るのですがC#では何かよくわかりません
178:デフォルトの名無しさん
09/03/04 12:06:58
Threadクラスの(ThreadStart, Int32)のコンストラクタ
179:デフォルトの名無しさん
09/03/04 12:07:08
.NETの配列はヒープに領域を取るのでスタック関係なし
再帰はスタックサイズの変更よりループに展開することを考えた方がいい
180:デフォルトの名無しさん
09/03/04 12:07:47
>>178
それはヘルプを見て確認していますが、使い方がわからないのです
短いコードで良いので具体的な使い方を教えていただきたいのです
181:デフォルトの名無しさん
09/03/04 12:09:45
別のスレッドを作ってそっちで動かすってこと
C# スレッド でググれ
182:デフォルトの名無しさん
09/03/04 12:10:34
>>181
もちろん既にぐぐっていますがよくわからないのです
183:デフォルトの名無しさん
09/03/04 12:12:09
スレッドが分からないくらいだったら
スタックサイズとか変なこと考える前に基礎をやれとしか
184:デフォルトの名無しさん
09/03/04 12:17:16
using System;
using System.Threading;
class Program
{
static void Main()
{
int maxStackSize = 1 * 1024 * 1024 * 1024;
Thread th = new Thread(DoWork, maxStackSize);
th.Start();
}
static void DoWork()
{
//...
}
}
185:デフォルトの名無しさん
09/03/04 12:27:24
>>184
ありがとうございます
助かりました
これを参考に作り直してみます
186:デフォルトの名無しさん
09/03/04 12:31:13
Stack<T>でも使って引数だけでもヒープに置くようにしたらだいぶマシなんじゃない
>このコンストラクタのオーバーロードを使用しないでください。
だし
187:デフォルトの名無しさん
09/03/04 12:53:12
遅そうだけど素直に展開したらこんな感じか
Stack<long> stack = new Stack<long>();
stack.Push(m); stack.Push(n);
while (1 < stack.Count) {
n = stack.Pop(); m = stack.Pop();
if (m == 0) { stack.Push(n + 1); }
else if (n == 0) { stack.Push(m - 1); stack.Push(1); }
else { stack.Push(m - 1); stack.Push(m); stack.Push(n - 1); }
}
return stack.Pop();
188:デフォルトの名無しさん
09/03/04 14:12:06
>>139-143
20090304 - 19870305 = 219999
これを10000で割った商が年齢になる。
別にうるう年とか全然関係ない。
このスレは算数もできない文系プログラマばっかりなのか?
189:デフォルトの名無しさん
09/03/04 14:20:49
算数や数学の問題じゃないだろうw
ともかくそれで正確な答えが出るんだったら便利だな
190:デフォルトの名無しさん
09/03/04 14:41:44
>>188
すげーw
おまえ天才だなw
191:デフォルトの名無しさん
09/03/04 15:04:33
結局、月を比較して同月なら日を比較してるだけじゃん
192:デフォルトの名無しさん
09/03/04 15:11:11
>>191
何を言っているんだ?
193:デフォルトの名無しさん
09/03/04 15:13:56
さすがC#スレ
レベルが低すぎる
日曜プログラマならぬなんちゃってぷry
194:デフォルトの名無しさん
09/03/04 15:23:20
int ydiff = dt1.Year - dt2.Year;
if (dt1.AddYears(-ydiff).CompareTo(dt2) < 0) { ydiff--; }
195:デフォルトの名無しさん
09/03/04 15:24:52
どうみても算数や数学の問題だろう。
極論を言えば、
1+2+4+8+16+32+.................+1024を求めるときに、
思考を放棄している人間はそのまま足していくか諦める。
思考する人間は、
S=1+2+..........+1024とおいて、
2*S = 2+4+........+2048との差を求めることで和を得る。
これは別に学校で等比級数の公式を習ったかどうかという問題ではない。
>>140で答えが出ているのに、>>143みたいな思考を放棄したプログラマは考えもせずただ
>正確には月を比較して、同月なら日を比較して、年の差から年齢を求めるが正しい気がする。
こんなことを言い出す始末。
これは上の問題で言えばそのまま足していく人間だと言うことだよ。
プログラマだったら便利なメソッドが用意されてなかったら自分で考えて作るくらいのアタマが欲しいところだ。
196:174
09/03/04 15:42:06
アッカーマン関数の話だけど、
・同じ行では左側(nが小さい方)しかか参照しない
・上(mが小さい方)の列程計算可能な行(n)は多い
なので、再帰を使わずに、表の参照と捉えた方が良い。
そうしないと、同じ枡を何度も無駄に計算する事になる。
List<List<int>> Ack = new List<List<int>>();
とか作って、
const int maxN = 100000;
int m = 0, n = 0;
while (true) {
Ack.Add(new List<int>());
n = 0;
while (true) {
try {
if (n > maxN) throw new Exception();
if (m == 0) {
Ack[m].Add(n + 1);
} else if (n == 0) {
Ack[m].Add(Ack[m - 1][1]);
} else {
Ack[m].Add(Ack[m - 1][Ack[m][n - 1]]);
}
n++;
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5374日前に更新/246 KB
担当:undef