ふらっとC#,C♯,C#( ..
[2ch|▼Menu]
83:81
08/03/24 22:18:30
>>82
シフトJISのEncoderを使ってバイト数を調べて、空白は自分で補うということでしょうか。
もう少し調べてみます。ありがとうございました。

84:デフォルトの名無しさん
08/03/24 22:22:39
固定長とかキモイ

85:デフォルトの名無しさん
08/03/25 09:54:23
string a = "URLリンク(192.168.0.1)"001".txt";
webBrowser1.Navigate(new Uri(a));

data1 にはランダムな値が入る場合
URLリンク(192.168.0.3)"data1".txt
の用にしてdata1によって違うページを開かせたい場合はどのように記述すればいいのでしょうか?

86:デフォルトの名無しさん
08/03/25 09:57:00
最後のところ入力ミスです><
×192.168.0.3
○192.168.0.1

87:デフォルトの名無しさん
08/03/25 10:14:47
多分 String.Format の出番

88:デフォルトの名無しさん
08/03/25 10:22:14
string a = "URLリンク(192.168.0.1)" + data1 + ".txt";
webBrowser1.Navigate(new Uri(a));

でいいんじゃないの?

89:デフォルトの名無しさん
08/03/25 10:28:33
>>87-88
有り難う御座います。>>88の方法で出来ました。

90:デフォルトの名無しさん
08/03/25 10:31:10
あ、001みたいに0を入れたいわけか
string a = ("URLリンク(192.168.0.1)",data1);

91:デフォルトの名無しさん
08/03/25 11:58:07
>string a = "URLリンク(192.168.0.1)" + data1 + ".txt";
フォーマットプロバイダ通さないやり方がちょっとキモイな

92:デフォルトの名無しさん
08/03/25 11:59:28
C#も便利表記が増えすぎてスクリプト言語並にわけがわからなくなりつつあるな

93:デフォルトの名無しさん
08/03/25 12:03:15
5年後VBに統合されVB#になります ^^)

94:デフォルトの名無しさん
08/03/25 12:09:37
その前にまずWebインストールさせろ!
1Gなんてダウンロードしたくない

95:デフォルトの名無しさん
08/03/25 12:10:48
>5年後VBに統合されVB#になります ^^)
VBのコードも多いから、混合して書ける機能があると大助かりというのが実あったりするけどな
class X
{
 void F()
 {
  #lang VB
  ・・・・
  #endlang

 }
}
#lang VB
・・・・
#endlang
こんな感じで、要望してみるかな。

96:デフォルトの名無しさん
08/03/25 12:25:14
>>90
こんな表記あんの?

97:デフォルトの名無しさん
08/03/25 12:29:42
形式指定だっけ?Cで言うprintfみたいなやつ

98:デフォルトの名無しさん
08/03/25 12:30:16
俺の環境じゃコンパイル通らんぞ

99:デフォルトの名無しさん
08/03/25 12:30:26
VBみたいな構文には違和感しか感じないんだよな。
別に個人でやってるだけだからどうでもいいんだが、統合されたら他の言語に移るしかないな

100:デフォルトの名無しさん
08/03/25 12:32:32
うん。VBはまだ慣れない。あの構文はきもすぐる

101:デフォルトの名無しさん
08/03/25 12:33:02
>>96
無いよ
string.Formatを忘れてるだけだろ

102:デフォルトの名無しさん
08/03/25 12:33:22
string a = string.Format( "URLリンク(192.168.0.1)" , 12 );
だな、その場で書いたなw

103:デフォルトの名無しさん
08/03/25 12:36:03
>>99-100
さようなら、VB統合と言わず、今すぐそのままJavaへなり移行されてくださいw

104:デフォルトの名無しさん
08/03/25 12:36:39
VB厨が暗躍しているな

105:デフォルトの名無しさん
08/03/25 12:42:59
VB チューハイ
C# 水割り
C++ ロック
C ストレート

106:デフォルトの名無しさん
08/03/25 12:43:27
構文は慣れればVBの方が読みやすいと俺は思うけどね。
まあ改行=行の終わり、とか細かい点で気持ち悪い点は確かにいくつかあるけど。

107:デフォルトの名無しさん
08/03/25 12:44:16
変数名の後に型名を書く方が自然な気がする
VBの方が好きな点はそれだけ

108:デフォルトの名無しさん
08/03/25 12:46:13
もともとnewするときに型名を2回書くなんて不合理以外の何者でもなかったからな
varが出来て状況はだいぶ改善したけど

109:デフォルトの名無しさん
08/03/25 12:47:30
今0から作り直すとしたら
var a as string = "a"とか
var a : string = "a"みたいになりそうだな

110:デフォルトの名無しさん
08/03/25 12:47:35
>>107 どうぞ、C# 3.0です。
var hinsuumei = new Katamei();

111:デフォルトの名無しさん
08/03/25 12:48:10
C# 4.0からは変数名から型名を推論する機能がつきます
var font = new;

112:デフォルトの名無しさん
08/03/25 13:06:44
>>111
ちょっと欲しい気はするな、それだと型の推論のしようがないが
var = instance1@System.Drawing.Font new ;
使うときは
instance1@System.Drawing.Font or instance1@Drawing.Font or instance1@Font or instance1
衝突がなければ通るとか、オブジェクト指向になって以来ハンガリアン記法が役立たずになっているが
これなら型名が増えても困る事はないし、分りきっている場所で不必要に型名を書いてかえって読みずらい事にもならないような……気がする。

113:デフォルトの名無しさん
08/03/25 13:11:28
使い方で推論すればおk
コンパイルエラーとする下限の確率をコンパイラのパラメータで指定する

114:デフォルトの名無しさん
08/03/25 13:13:48
キチガイこえー

115:デフォルトの名無しさん
08/03/25 13:21:04
C#でシェル拡張書いてみたいんだけど参考になる記事とか無い?

116:デフォルトの名無しさん
08/03/25 13:28:24
Public Class foo()
{
 foo()
 {
  ・・・・
 }
 hoge{get; set;}
 honya{get; set;}
 hogehoge{get; set;}
}

Public Class hoo()
{
 List<foo> list = new List<foo>();
 ・・・・・・
}

Public Class puu()
{
 List<hoo> list2 = new List<hoo>();
 ・・・・
}

こういうリストのリストを使うんですが、これを単なるリストに展開するにはどうしたらいいのでしょうか?


117:デフォルトの名無しさん
08/03/25 13:33:06
list2.SelectMany(hoo=>hoo.list).ToList()
2.0なら2重のループで新しく作ったリストに自分で追加していく

118:デフォルトの名無しさん
08/03/25 13:37:14
>>115
高度な話題になるから、ソレらしい所に行くべし
きわどい問題も累積している。

119:デフォルトの名無しさん
08/03/25 18:38:12
入力された数字を大きい順番に並べるプログラムですがbを一番大きくなるよう入力すると重複してますといわれます。どなたか理由をおしえてください
public static void Main()
{
START:
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = int.Parse(Console.ReadLine());
if (a > b)
{if (a > c){if (c > b){Console.Write("{0}{1}{2}", a, c, b);
}else{
Console.Write("{0}{1}{2}", a, b, c);
}
}else{
Console.Write("{0}{1}{2}", c, a, b);
}
}else{
if (b > c)
{
if (a > c)
{
Console.Write("{0}{1}{2}", b, a, c);
}else{
Console.Write("{0}{1}{2}", b, c, a);
}
}
if (c > a && c > b)
{
Console.Write("{0}{1}{2}", c, b, a);
}else{
Console.Write("数字が重複していますカエレ");

120:デフォルトの名無しさん
08/03/25 18:43:14
C#ってboolを数値で扱えないんだ・・・

121:デフォルトの名無しさん
08/03/25 19:06:46
>>119
自分が入力した値でどこを通るか辿っていったらわかるだろ
とりあえず整形しなさい

122:デフォルトの名無しさん
08/03/25 19:11:45
>>119
当たり前じゃん。bが一番大きかったらc>bを満たすはずがない


123:デフォルトの名無しさん
08/03/25 19:14:13
>>119
if文をちゃんと理解してる?

124:デフォルトの名無しさん
08/03/25 19:26:09
それより START: が気になる
goto START; とかやるつもりなんだろうか

125:デフォルトの名無しさん
08/03/25 20:19:25
>>120 C#でなくてもboolと宣言しておいて数値の意味でぶち込むとかヤメロ馬鹿
>>119 そのコード、コンパイル通らない。

126:デフォルトの名無しさん
08/03/25 20:21:04
.tonumeric()でも定義してろ

127:デフォルトの名無しさん
08/03/25 20:34:17
List<int>に突っ込んで.Sort()で済むだろ。

128:デフォルトの名無しさん
08/03/25 20:34:38
指定した位置(ウィンドウ外の場合も)にコンテキストメニューを表示したいのですがどうすればいいのでしょうか?


129:デフォルトの名無しさん
08/03/25 20:39:35
Showのオーバーロードを調べる作業に戻るんだ

130:デフォルトの名無しさん
08/03/25 20:49:08
どうもありがとうございます。
URLリンク(www.labasp.net)
で見つけました。
もうひとつ質問があるのですが、これはウィンドウ外でも表示出来るのでしょうか?

131:デフォルトの名無しさん
08/03/25 20:57:30
聞く前に試せ。な。

132:デフォルトの名無しさん
08/03/25 20:59:40
すいません。今はその環境が無いもので...

133:デフォルトの名無しさん
08/03/25 21:29:42
知るか

134:デフォルトの名無しさん
08/03/25 21:31:59
環境がないなら今聞く必要もないな?

135:デフォルトの名無しさん
08/03/25 21:34:27
URLリンク(msdn2.microsoft.com)(VS.80).aspx
ここに書いてありました。どうもすみませんでした。

136:デフォルトの名無しさん
08/03/25 21:37:40
>>127
彼は別にソートしたいんじゃなくて、勉強したいんだろ

>>119
意図したとおりにならなかったら
デバッガで1ステップずつ実行して違う場所を探せばいい
その時点の変数の値も確認できる

137:デフォルトの名無しさん
08/03/25 21:58:32
ちょっと質問です。。。
PixtureBoxに点(1ドット)を打ちたいのですが、方法が分かりません。
ご教授いただけると幸いです。

138:137
08/03/25 22:02:41
すみません説明がおかしかったです。
PictureBoxで描写しているBitmapにです。
Graphicsに落として、線を引いたりはできるのですが、指定した一点にだけ描写する方法が分かりませんm(_ _)m


139:デフォルトの名無しさん
08/03/25 22:18:48
>>137
Bitmap.setpixel()

140:デフォルトの名無しさん
08/03/25 22:20:34
縦横1pxの四角形を描くって手もあるな

141:137
08/03/25 23:12:37
>>139-140
できました。ありがとうございます。
Bitmapにあったんですね(^^;
JavaのノリでいたのでGraphicsにあるものだと思い込んでました。。。

縦横1pxの四角形を描こうとすると、縦横2pxの四角形になってしまいました。。。orz

142:デフォルトの名無しさん
08/03/25 23:54:29
Stack<Hoge> hoges;で
中身を取り出したときに確実に葬り去るにはどうすればいいの?

143:デフォルトの名無しさん
08/03/25 23:55:40
なんか日本語でおkな質問が最近多いような。。

144:デフォルトの名無しさん
08/03/26 00:17:41
メモリをゼロクリアすれば確実だろう。だがちょっと待って欲しい。ここではデータ取り出しをしている。
それらを考えると放射線でメモリをROMとして焼き付けるのが一番ではないだろうか?


145:デフォルトの名無しさん
08/03/26 00:30:46
hoges.pop().Dispose();

146:デフォルトの名無しさん
08/03/26 02:07:20
>>142
>葬り去る
この意味を書け、何をしたいのかハッキリさせろ、話はそれからだ。

147:デフォルトの名無しさん
08/03/26 03:13:02
staticクラスおよびそのクラスのstaticメソッドや
staticでないクラスのstaticメソッドはプログラム内
で全く使われてなくてもメモリ上に読み込まれる?

148:デフォルトの名無しさん
08/03/26 08:51:02
>>146
ゆとりか

149:デフォルトの名無しさん
08/03/26 09:06:39
>>148
146じゃないけど、142がどの程度C#とStackのことをわかってるのかがわからない以上、
俺も何をしたいのかわからない。
ひょっとするとhoges.Peek()にしか気づいておらず、スタックから消す方法を聞きたいのかもしれない。
hoges.Pop().Hoge()とかのように、そのまま使ってしまいDispose()を呼び出せないと思いこんでいるのかもしれない。
いろいろ考えられる。

150:デフォルトの名無しさん
08/03/26 10:24:07
>>148
オブジェクトの破棄の意味と仮にエスパーしても何段階かあるぜ、どれなんだい?役立たずの爺さんよぉ。

151:デフォルトの名無しさん
08/03/26 10:32:25
>>147
JITの勝手、作る側は意識しない。
今現在どうなっているのかというなら、アセンブリ単位で読み込まれているようだ。
用語の意味や詳細がわからないなら以下を読め、ただしプログラム初学者には難易度は高いぞ。
URLリンク(www.atmarkit.co.jp)

152:デフォルトの名無しさん
08/03/26 10:45:34
>>147
メモリ上に読み込まれるのと、型として評価されるのと、
特定のメソッドがJITでコンパイルされるタイミングはどれも違う。
型として評価されるタイミングならスタティックイニシャライザに
WriteLineを仕込んでみると近似できると思うよ。

153:デフォルトの名無しさん
08/03/26 11:41:00
C++でStack.Popが例外安全に作る方法が無いというのが
C#でどのように克服されてるかという話かもしれない

154:デフォルトの名無しさん
08/03/26 11:54:34
克服もなにも例外が非安全になる言語はC++だけだ、そもそも例外の実装に失敗している
C++では、例外を使わないという事を検討すべきだな、故障中と書かれた蛇口をひねるような真似はすべきでない。
この話題は、もはやスレ違いだ 147 は死ねって事でFA。

155:デフォルトの名無しさん
08/03/26 12:04:22
>>147
使われる前には読み込まれていなければならない
具体的なタイミングは実装依存だったと思う

156:デフォルトの名無しさん
08/03/26 12:05:16
いやいやC#だって基本保証すらないメソッドを作れる。
作るほうが難しいけど。
C++はただなんでも値渡しでコピーするから
例外投げないメソッドが作りづらいだけじゃないか、それが致命的なんだけど。

157:155
08/03/26 12:07:03
メソッドのことだったのか
>>155は変数の中身のことだから忘れてくれ

158:119
08/03/26 13:10:19
20行目と22行目の下にgoto文入れたら解決しました。
ついでにもうひとつ質問ですがデバッガはどこを押せばできますか?
使ってるソフトはMicrosoft Visual C# 2008です。
おしえてください

159:デフォルトの名無しさん
08/03/26 13:16:24
こんなコードにgoto文使うなよ

160:デフォルトの名無しさん
08/03/26 13:18:56
switchと多重ループ抜けるとき以外はgoto使用禁止
デバッグは止めたいところにカーソル置いてF9を押してブレークポイントを追加してからF5

161:デフォルトの名無しさん
08/03/26 13:19:54
このコードでごとぅって思考放棄じゃね?

162:デフォルトの名無しさん
08/03/26 13:25:15
どこの初心者サイトや入門書でもgotoをはじめに教えるなんてありえないけど
goto使いまくるような言語から入った人なのかな

163:デフォルトの名無しさん
08/03/26 13:28:14
gotoは大域gotoじゃなきゃ別に危険じゃないんだぞ

164:デフォルトの名無しさん
08/03/26 13:31:44
昨今、危険かどうかというより可読性の問題が大きい。

165:デフォルトの名無しさん
08/03/26 13:35:50
gotoはスパゲッティーコードの元。

166:デフォルトの名無しさん
08/03/26 13:36:41
上向きのgotoはコンパイルエラーでもいいと思う

167:デフォルトの名無しさん
08/03/26 13:36:49
>>158,119
考えられるケースを書き出してからコード書き始めると漏れがなくなる。

abc
123
132
213
231
312
321

あと重複チェックは先頭でやってしまったほうがいいな。
正しくない入力データはなるべく早く排除しておいたほうがいい。
というのを踏まえてgoto抜きで書き直してみ。
別に使っちゃいけないわけじゃないがこのケースで使う必要は0。

それからgotoネタは他所でやった方がレスの共通化が図れて効率的。

168:デフォルトの名無しさん
08/03/26 13:37:12
goto使いまくる言語ってどんなだよ
スクリプト系か

169:デフォルトの名無しさん
08/03/26 13:37:16
一つの関数を巨大にしない限り
gotoでスパゲッティになることもない
問題なのは巨大な関数の方でgotoじゃない

170:デフォルトの名無しさん
08/03/26 13:42:31
>>168
HSPとかかなぁ。よく知らないけど。

171:デフォルトの名無しさん
08/03/26 13:42:52
あーHSPはgoto使いまくるね

172:デフォルトの名無しさん
08/03/26 13:43:39
gotoを使うべきところはあるが、どう見ても>>119は使うべきでない所だろ。
スパゲティとかいうレベルじゃなく場当たり的に回避してるだけだ

173:デフォルトの名無しさん
08/03/26 13:45:43
複雑なifとか多重ループはわかりにくいから
避けられるなら避けるべきだ

174:デフォルトの名無しさん
08/03/26 13:59:25
このスレには、チームで開発しててコードの書き方に異様にこだわる人がいる。
チームのメンバとか、他社へ納品するとか、他人が見る可能性がある場合は、
そういうことに気をつける必要はある。

だが、個人で書いてて誰にも見せないなら、どんな書き方をしようが個人の自由。
気にするな。

でもgotoは、COBOLとRPGでreturnとかcontinueとかbreakとかがなくて
仕方なく使ってたのが最後だな。

175:デフォルトの名無しさん
08/03/26 14:08:13
ラベル付きbreakがあれば下向きgotoやめてもいいな。

176:デフォルトの名無しさん
08/03/26 15:25:52
時間を取得して、 以下のような処理をさせたいのですが、
時間のみの取得がどうすればいいのか分かりません。
long tick = DateTime.Now.Ticks;
DateTime d = new DateTime(tick);
というサンプルを見つけたのですが、これでは年〜秒まで取得してしまします。
どのようにすればよいかご助言下さい。
if(4時<時間<=11時)
{
          処理1
}
else if(11時<時間<=16時)
{
処理2
}
else
{
処理3
}

177:デフォルトの名無しさん
08/03/26 15:39:32
DateTime.Now.Hour
つかDateTime構造体をちゃんと調べれ

178:デフォルトの名無しさん
08/03/26 15:41:31
>>174
どうみても>>119は初心者なんだから個人の自由とかの議論の前にみんなが指摘してやってるだけだと思うよ。

179:デフォルトの名無しさん
08/03/26 15:51:03
C#でgetchar();に相当する物ってなんでしょうか?
C言語で入力を待って実行するのに便利だったのですが。

180:デフォルトの名無しさん
08/03/26 15:51:48
>>177
ありがとうございます。

181:デフォルトの名無しさん
08/03/26 15:53:35
Console.Read()

182:デフォルトの名無しさん
08/03/26 15:54:34
>>179
URLリンク(msdn.microsoft.com)

183:デフォルトの名無しさん
08/03/26 15:58:27
>>181-182
thx

184:デフォルトの名無しさん
08/03/26 17:08:51
Enum型のみを指定できるジェネリッククラスを作ろうと思ったのですが、whereでEnumを指定できないため、
Where T : Typeとしました。
このとき、TがEnumから派生したものでない場合、例外を投げるにはどの例外を投げたらいいでしょうか?
ArgumentExceptionにメッセージでEnumを継承してないからだめって書いて投げてもいいのでしょうか?

185:デフォルトの名無しさん
08/03/26 17:13:50
where T : structだろ
例外はなんでもいいんじゃね
どうせ実行時には発生しちゃいけないはずなんだから

186:184
08/03/26 17:14:26
すいません、where T : Typeは余計でしたので、無視してください orz
whereは指定していませんが、上記の場合、どの例外を投げるのが適切なのでしょうか?

187:デフォルトの名無しさん
08/03/26 17:42:29
みんなが作った
Windows コントロール ライブラリ
見れるところってありますか?

188:デフォルトの名無しさん
08/03/26 17:49:20
>>186
where T : structにしといたほうがいい
TEnumのほうがいいかも
ArgumentExceptionはメソッドの引数の例外だからExceptionかその直接の派生クラス作って投げたら

>>187
codeplexとかcodeprojectとか

189:デフォルトの名無しさん
08/03/26 18:04:48
>>185
コンパイルエラーにできないということはそういう使い方をするなということなんでしょうかね…

>>188
TypeLoadExceptionというものを見つけたんですが、これはまた別物なんでしょうか?

それと、お二方のご指摘通り、where T : structを指定しました。
ありがとうございます。

190:デフォルトの名無しさん
08/03/26 20:05:00
private List<string> GetList()
{
List<string> list = new List<string>();
return list;
}


List<string> list = GetList();にするとnullが返って来てエラーとなります。
こういうものなのですかね?。

191:デフォルトの名無しさん
08/03/26 20:16:07
>>190
ちょw

192:デフォルトの名無しさん
08/03/26 20:17:07
>>190
それはおかしい
そのコードでnullが返ることは無い

193:デフォルトの名無しさん
08/03/26 20:17:48
>>156
>例外投げないメソッドが作りづらいだけじゃないか
具体的に例外安全とならない例をひとつ挙げてみてもらえないか?
不可能だと思ったので、すこし興味深い。

194:デフォルトの名無しさん
08/03/26 20:19:01
>>190
クリーン再インストールすると治るんじゃないかなw

195:デフォルトの名無しさん
08/03/26 20:22:40
C#で作っているプログラム aaa.exe から
別のプログラム bbb.exe 上の
ボタンを自動で押したいのですが、どうやればいいのでしょうか?


196:デフォルトの名無しさん
08/03/26 20:25:44
>>195
セキュリティー上の重大な問題を引起こす、その種の操作は一般にはできない。
無理すればできるが、かなり高度な話題、相互運用でググれ。

197:デフォルトの名無しさん
08/03/26 20:31:34
>>195
bbb.exe側のソースをいじれるなら .NETリモート処理で対応する。
できないなら>>196のいうとおりAPIいじくるしかない。

198:190
08/03/26 20:40:43
やはりおかしいですよね・・・。私も不思議だったので投げてみました。
家族の夕食を作って食べてから出直してきます。

みなさん、ありがとう。

199:デフォルトの名無しさん
08/03/26 20:55:52
コンソールアプリケーションだとこのようなコードがコンパイル出来ません。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(f());
}

private int f()
{
return 10;
}
}
}
f()をstaticなメソッドにすれば問題ないのですが何故ですか?
フォームアプリケーションではstaticでなくても問題ないみたいですが…。

200:デフォルトの名無しさん
08/03/26 20:58:39
>>196>>197
bbb.exeはいじれないです。
APIでいじる方法のキーワードとなりそうなググり方でも教えていただけると嬉しいです

201:デフォルトの名無しさん
08/03/26 21:02:33
>>199
フォームアプリケーションでは、
ウィザードが生成するコードの中でインスタンスを作っている。
コンソールアプリケーションでは、自分でインスタンスを作らないといけない。
static void Main(string[] args)
{
Program p = new Program;
Console.WriteLine(p.f());
}


202:デフォルトの名無しさん
08/03/26 21:08:47
>>201
ありがとうございました!
Mainのあるクラスですらインスタンスを作らなくちゃいけないんですね。
たしかにstaticなのはMainだけだからそうなんだろうけど自分自身を作るみたいで変な感じ^^;

203:デフォルトの名無しさん
08/03/26 21:16:13
そういえばVS2003以前はフォームのクラスの中にMainがあったよな
当時は何の疑問も感じずに使ってたけどProgram.csに慣れると
コンポーネントの中にエントリポイントがあるっておかしいだろ普通に考えて

204:デフォルトの名無しさん
08/03/26 21:20:44
>>200
URLリンク(www.microsoft.com)
APIの使い方が分らないというならキッパリ諦めた方がいい。

205:デフォルトの名無しさん
08/03/26 21:44:19
>>200
FindWindow系で対象のボタンのウインドウハンドルを探して
クリックしたメッセージを送るか、マウス操作をエミュレート

206:デフォルトの名無しさん
08/03/26 22:06:39
>>204>>205
対称となるウィンドウ(ボタン)は固定なので、SendMessageくらいで出来ると嬉しいです。
Spy++のように座標が取得できればマウス動かしてやろうかな
などと考えております

207:デフォルトの名無しさん
08/03/26 22:21:50
>>206
ならDllImportAttributeあたりを調べてみるといい

208:デフォルトの名無しさん
08/03/26 22:33:49
>>206
対象のウィンドウのウィンドウハンドル取得後、
GetWindowRectで対象ウィンドウの現在位置を取得して、
対象ウィンドウの左上座標からの相対位置から、スクリーン座標を求めた後に、
WindowFromPointでボタンのウィンドウハンドルを取得し、
SendMessageでキーのアップダウンメッセージなりマウスのアップダウン(クリック)メッセージなりを
送ればいいとおもわれ

209:デフォルトの名無しさん
08/03/26 22:37:07
BOTでも作るの?

210:デフォルトの名無しさん
08/03/26 22:38:14
BOTなんてやるならクライアントをエミュレートした方が早いだろ。

211:デフォルトの名無しさん
08/03/26 22:44:30
つか、このレベルの事をやりたいのなら、ここじゃなくてふさわしいスレッドへ行けよ
さらに言うなら、この程度自力でなんとかしやがれ。

212:デフォルトの名無しさん
08/03/27 00:08:19
C#というのは、名前とは違い、CとC++のどちらにも互換性が無いのだろう。
ANSIの標準ライブラリは、何一つC#では使えないんだろうな。
それなら、VB.NETのほうが良いのでは。
VBを知らない人のための言語のように思えるが。

213:デフォルトの名無しさん
08/03/27 00:22:28
コンパイラ エラー CS0274 って別にエラーにする必要なくね?

public int Property
{
  get { return hoge; }
  private set { hoge = value; }
}
より

public int Property
{
  public get { return hoge; }
  private set { hoge = value; }
}
のほうがシンメトリックだし。

214:デフォルトの名無しさん
08/03/27 00:33:21
>>213
ヘジたんの御心のままです

215:デフォルトの名無しさん
08/03/27 00:39:46
わざわざ、public書く必要もないが、禁止するほどのことでもないな。

216:デフォルトの名無しさん
08/03/27 01:09:01
C#で電子メールクライアントを作っているのですが、Windowsの右クリックメニューにある
「送る」->「メール受信者」という項目から通常使うメーラとして起動したいのですが、

HKEY_LOCAL\SOFTWARE\Clients\Mail\nullmail\Protocols\mailto\shell\open\command
HKEY_LOCAL\SOFTWARE\Clients\Mail\nullmail\shell\open\command

などのレジストリを書き換えても動いてくれません。
IEの通常使うメールソフトの設定には表示されているのですが、なぜか起動すらしてくれないのです。

Gmail等のWebメールでURLに引数を付けて呼び出す方法などだと動くのですが、
.NETでメールを書く場合には何かルールがあるのでしょうか?

217:デフォルトの名無しさん
08/03/27 02:52:38
初めてプログラムを学ぶ者です。
C#を使えるようにしたいのですが、
どのように勉強するのが効率的なのでしょうか?

一応、15日ほど前にC#の絵本というのを買って
Micro Soft Visual Studio C# 2005 Express Edition
というツールを使いながら読み進めているのですが、
サンプルプログラムに省略されている部分が多くてよくわからないのです。

218:デフォルトの名無しさん
08/03/27 08:47:31
TreeNode[] tn = treeView.Nodes.Find(key, true);

これってつまり重複したキーが使えるという事なのでしょうか?
今まで気づかなかったorz

219:デフォルトの名無しさん
08/03/27 09:05:21
テトリスを作ってみたいのですが少し調べてみたらXNAとDirectXと2つあるようです。
どちらで作ればよいのでしょうか?

220:デフォルトの名無しさん
08/03/27 09:27:17
XNA・・・xbox360でも動く、資料少ない。将来性あるのか謎。
      PCだと、XNAランタイムみたいなの入れてないと動かないPO
DirectX・・・資料多い。ややめんどくさいかも。PCだけだとこっちの方が動く環境多い


221:デフォルトの名無しさん
08/03/27 09:28:00
テトリスレベルならGDIでいいんじゃね

222:デフォルトの名無しさん
08/03/27 09:29:56
C#でDirectXつかう利点あるの?
C++つかったほうが

223:デフォルトの名無しさん
08/03/27 09:36:15
とりあえず何か作ってみたいのです。

224:デフォルトの名無しさん
08/03/27 09:45:54
>>223
じゃあどっちでも良いじゃん

225:デフォルトの名無しさん
08/03/27 09:55:48
XNAは、Xbox360と共通化されたDirectXのラッパーで、C#から楽に呼べる。
C#にする時点で.NETを入れる必要があるんだから
XNAのランタイムを入れる必要があるってデメリットは無視できると思う。

「DirectX」がもしManaged DirectXのことを言ってるんだとしたら結局は同じ。
Managed DirectXは見捨てられ、XNAにシフトした。
ただし、360コントローラ以外のパッドのようにXbox360と互換がないデバイスは
XNAでサポートされていないのでManaged DirectXを使う必要がある。

DirectXを直接C#から呼ぶのは大変。


と時間が出来たら技術的興味からXNAに触ってみようとしてるやつが思った、
間違ってるとこがあるかもしれない戯れ言

226:デフォルトの名無しさん
08/03/27 10:07:06
これ嫁
URLリンク(www.amazon.co.jp)

227:デフォルトの名無しさん
08/03/27 10:40:13
最終的にはGDI関係をDirectXの上に乗ったライブラリとして実装しようという流れは変わらないみたいだし
そうすると、セキュリティーの関係上DirectXがマネージドでないと都合が悪いので
どういう形になるにせよ、DirectXがマネージドになるのは時間の問題かと。
現在のDirectXがマネージドDirectXラッパーになるのでは。

228:デフォルトの名無しさん
08/03/27 11:10:35
C#の資格試験はどういうものがありますか

229:デフォルトの名無しさん
08/03/27 11:46:06
ToolStripMenuItemの1つ上にあるToolStripMenuItemはどうやったら調べられますか?

230:229
08/03/27 11:49:17
OwnerItemでした

231:デフォルトの名無しさん
08/03/27 13:37:42
>>228
MCTS,MCPD

232:デフォルトの名無しさん
08/03/27 13:56:33
掛け算の式を表示するプログラムを作ってみたのですが、まったく表示されません。なぜなのかおしえてください
using System;

class aaa
{
public static void Main()
{
for (int a = 1; a == 9; ++a)
{
for (int b = 1; b == 9; ++b)
{
Console.Write("{0}*{1}",a,b);
}
Console.Write("\n");
}
}
}

233:デフォルトの名無しさん
08/03/27 14:15:17
> for (int a = 1; a == 9; ++a)
a == 9 が true の間だけループを回す、って意味だが。

234:デフォルトの名無しさん
08/03/27 14:16:48
>>225
DInputゲームパッドから入力とるだけならC#+Marshalingで直さわりしても
正直一日仕事レベルなのだが意外に知られてないっつーか

キーマップやら無理ない設計やら面倒くさいもの(しかしあまり使われない)が
ややこしいのは確かなんだが

235:デフォルトの名無しさん
08/03/27 14:38:42
XNA使って箱で動かないものを書いてどうする

236:デフォルトの名無しさん
08/03/27 14:42:08
SlimDXおすすめ
プライベート配置できるし

237:デフォルトの名無しさん
08/03/27 14:42:11
>>227
そもそも、DirectX自体がWPFとXNAに二分されて
フェードアウトするんじゃないか?
DirectShowなんか、既にWindows SDKに移住したし。

238:デフォルトの名無しさん
08/03/27 15:04:57
>>235
んなもん #if で終了だろ

239:デフォルトの名無しさん
08/03/27 16:36:39
型の使い分けについて教えて下さい。
int やlongの場合、intを使わずに全てlongで良いような気がするのですが、なぜintが存在しているのでしょうか?
素人考えだと、intで良い物はむやみにlongにするより、処理が早くてすむ、メモリの節約になる。
などの理由があるのかなと予想しているのですが。

240:デフォルトの名無しさん
08/03/27 16:43:01
>>239
>処理が早くてすむ、メモリの節約になる。

正解。


241:デフォルトの名無しさん
08/03/27 16:44:58
そうだよ?
誰もA1ノートなんて買わないだろ?使わないんだから

242:デフォルトの名無しさん
08/03/27 16:53:21
longよりintが先に存在したから

243:デフォルトの名無しさん
08/03/27 17:09:39
>>240-242
ありがとうございます。すっきりしました。

244:デフォルトの名無しさん
08/03/27 17:12:31
>>237
Direct3Dに関しては、WPFのブラシの一つとして実装されるのが一番綺麗だろうな。
逆にDirect3DのテクスチャとしてWPFがまた利用可能で、無限入れ子になってくれば汎用性も高そうな気がする。
消滅に関しては今更感があるので難しいかと。

245:デフォルトの名無しさん
08/03/27 17:15:00
>>239
現状だとCPUが32ビットで、複数回に分けて計算されるので
long だと、マルチスレッドではいちいちlockしないといけないのが面倒くさいという実務上の都合もあるな。

246:デフォルトの名無しさん
08/03/27 17:15:14
WPFのもっと低レベルな描画方法は欲しい

247:デフォルトの名無しさん
08/03/27 18:39:55
>>245
thx 参考になります。

248:デフォルトの名無しさん
08/03/27 19:12:38
tryの中で冷害が起きるとFにみちりりんの中は実行されるですか?

249:デフォルトの名無しさん
08/03/27 19:15:42
それ面白いと思って書いてるのかな。
ちっとも面白くないが、君が「オカシイ」奴だということだけはよくわかるよ

250:デフォルトの名無しさん
08/03/27 19:33:52
オーバーロードがないと叱られるのですが、どうしたら良いですか?

ToolStripItem.MouseUp += new EventHandler(fff);

private void fff(object sender, MouseEventArgs e)
{

}

251:デフォルトの名無しさん
08/03/27 19:36:16
ToolStripItem.MouseUp += new MouseEventHandler(fff);
または
ToolStripItem.MouseUp += fff;

252:デフォルトの名無しさん
08/03/27 19:41:18
>>251
ありがとうございます。

EventHandlerで全て処理するのかと思い込んでいました。
指摘されて電気が走りました・・・。

253:デフォルトの名無しさん
08/03/27 21:05:38
foreachの中で要素を消すのは違法ですか?

254:デフォルトの名無しさん
08/03/27 21:11:05
ダメ。ゼッタイ。

255:デフォルトの名無しさん
08/03/27 21:13:35
消すのイクナイ。

256:デフォルトの名無しさん
08/03/27 21:32:27
てかコンパイルエラー吐くだろ。設定で無視できるのか?

257:デフォルトの名無しさん
08/03/27 23:07:13
SplitContainerでdockをfillにしてフォームのサイズを変更するとラインの位置が比率?で
変わりますがこれをどちらかだけ固定する方法はないのでしょうか?

258:257
08/03/27 23:08:40
ありました・・・
今度は30秒待ってから書きますorz

259:デフォルトの名無しさん
08/03/27 23:36:55
フォームが非アクティブの時にもキー入力を取得したいのですがどうしたらいいんでしょうか?

260:デフォルトの名無しさん
08/03/27 23:38:15
ほっく

261:デフォルトの名無しさん
08/03/28 00:01:05
URLリンク(homepage3.nifty.com)
ここの「ホットキーを登録する」をコピペしたら動きました。
これから理解したいと思います。

262:デフォルトの名無しさん
08/03/28 02:34:15
初心者で申し訳ないんですが、ジェネリックの使い方がいまいち分かっていないようです
以下のような、任意のデータ方を扱えるconsを作りたいのですが、うまくいきません。ご教鞭願いたいです

class Cons<T,U>
{
  private T left;
  private U right;

  public T car
  {
    get { return left; }
    set { left = value; }
  }

  public U cdr
  {
    get { return right; }
    set { right = value; }
  }

  public Cons(T a,U b)
  {
    this.left = a;
    this.right = b;
  }

263:つづき
08/03/28 02:34:53
  public override string ToString()
  {
    return "(" + left.ToString() + "." + right.ToString() + ")";
  }

  static void Main()
  {
    Cons a = new Cons(10, "a");
    Console.WriteLine(a.ToString());
  }
}

264:デフォルトの名無しさん
08/03/28 02:36:54
プラスとして、恐らく上のままでは一旦
Cons a = new Cons(10,"abc");
などとして作った後、
a.car="foo";
とするとエラーになると思うのですが、解決策はあるでしょうか?

265:デフォルトの名無しさん
08/03/28 02:46:24
>>264
この2つを直せば動く。
1. ジェネリッククラス内にエントリポイントMainは置けない。
2. ジェネリッククラスを使うときには、Cons<int, string>のように
ジェネリックの引数を指定しないといけない。


266:デフォルトの名無しさん
08/03/28 03:02:32
ちなみに、
型推論を働かせたい場合、コンストラクタでは無理。

static partial class New
{
 static Cons<T, U> Cons<T, U>(T left, U right) { return new Cons<T, U> (left, right); }
}
みたいな static メソッドを書けば、
C# 3.0 なら
var a = New.Cons(10, "abc");
で、Cons<int, string> が作られたりはする。

267:デフォルトの名無しさん
08/03/28 03:05:29
すみません、少し質問の仕方が悪かったですね。

・任意のデータ型を内包できるリスト構造を作れるか
・そのリストの要素をまた別の任意の型へ変換できるものが作れるか

この2点が知りたいです。
そんなに柔軟な型にこだわるならスクリプト言語でもいじってろと思うかもしれませんが・・・

268:デフォルトの名無しさん
08/03/28 03:07:09
>>266
なるほど、結構しんどくなってくるんですね・・・

269:デフォルトの名無しさん
08/03/28 03:22:08
自己解決しました。普通にobject型使えば一発でした。
吊ってきます。

270:デフォルトの名無しさん
08/03/28 06:42:43
>>268
横やりだけど、これって関数型言語のような事をしたいという意味に取れたのですが
もしそうだとしたら、プロパティーに set をつけること事態がよろしくないのでは?
と思ったりしたのですが・・・・
やるとすれば、たとえば string クラスや DateTime クラスのように
一回設定したら変更できないタイプのクラスに設計するのが美しいような予感がします。

271:デフォルトの名無しさん
08/03/28 07:11:04
自分が実装するなら・・・こうかな
public class Pair<T,U> {
 T left ;
 U right ;
 public T Left { return left ; }
 public U Right { return right ; }
 public Pair<T,U>(T l ,U r) { left = l ; right = r ; }
 public override string ToString() {
  return "(" + left.ToString() + "." + right.ToString() + ")";
 }
}
public static class Lisp {
 public static T Car<T,U>( this Pair<T,U> pair ) { return pair.left ; }
 public static U Cdr<T,U>( this Pair<T,U> pair ) { return pair.right ; }
 public static T SetCar<V,U>( this Pair<T,U> pair , V left ) { return new Pair<V,U>( left , pair.right ) ; }
 public static U SetCdr<T,V>( this Pair<T,U> pair , V right ) { return new Pair<T,V>( pair.left , right ) ; }
 public static Pair<T,U> Cons<T,U>( T left , U right ) { return new Pair<T,U>( left , right ) ; }
}
class MyClass {
 void Main() {
  var a = Lisp.Cons( 10 , "a" ).Car() ;
  var b = a.SetCar( "foo" ) ;
Console.WriteLine(a.ToString());
 }
}

272:デフォルトの名無しさん
08/03/28 07:26:52
まちがっている
 public static T SetCar<V,U>( this Pair<T,U> pair , V left ) { return new Pair<V,U>( left , pair.right ) ; }
 public static U SetCdr<T,V>( this Pair<T,U> pair , V right ) { return new Pair<T,V>( pair.left , right ) ; }
  ↓
 public static Pair<V,U> SetCar<T,U,V>( this Pair<T,U> pair , V left ) { return new Pair<V,U>( left , pair.right ) ; }
 public static Pair<T,V> SetCdr<T,U,V>( this Pair<T,U> pair , V right ) { return new Pair<T,V>( pair.left , right ) ; }
コンパイルしていないのでまだあるかも知れない。


273:デフォルトの名無しさん
08/03/28 08:27:11
public T Left { ... }

public T Left { get { ... } }

pair.left

pair.Left

あとはMainもおかしい
aはint

274:デフォルトの名無しさん
08/03/28 09:06:50
>>269
ジェネリックスはもともと関数型言語由来だから相性は悪くないはず
object などと妥協せずとことんやりこんでみる事をお勧めする。

275:デフォルトの名無しさん
08/03/28 10:39:38
lock(x)
{
}

を有効にするにはxオブジェクトを private static で修飾する、ということであってますか?

276:デフォルトの名無しさん
08/03/28 11:00:31
static が付くとは限らないんじゃないか
readonly をつけることは結構あるかも

277:デフォルトの名無しさん
08/03/28 12:31:07
>>275
日本語書け。

「有効にする」とはどういう意味?
あるいは、「有効にする」というからには「無効」という状態があるんだろうが
「lock(x)が無効」とは具体的にどんな事態のことを指してるの?

278:デフォルトの名無しさん
08/03/28 13:06:03
>>275
MSDNでlockのところ読んどけ

279:デフォルトの名無しさん
08/03/28 13:53:17
>>276
おぃ、なんちゅートンデモアドバイスを与えいるんだ?

280:デフォルトの名無しさん
08/03/28 19:04:42
Test

281:デフォルトの名無しさん
08/03/28 20:04:53
private string[] List_GetItem(string url)
{
foreach (string[] item in list_news) if (item[0] == url) return item;
return null;
}

こういう書き方ってきもいかな?

282:デフォルトの名無しさん
08/03/28 20:09:46
うん

283:デフォルトの名無しさん
08/03/28 20:12:14
foreachで回す必要なし

284:デフォルトの名無しさん
08/03/28 20:14:15
メソッド名がきもいです

285:デフォルトの名無しさん
08/03/28 20:19:08
つーか、メソッドにする必要なくね?

286:デフォルトの名無しさん
08/03/28 20:25:14
list_newsがList<string[]>なら、
list_news.Find(x => x[0] == url)
ですむんじゃまいか。

287:デフォルトの名無しさん
08/03/28 20:29:21
List_まではいいけど、GetItemがものすごく嫌だな
たぶん.NetFrameworkの上でなければ全然気にならないんだろうけどwww

288:デフォルトの名無しさん
08/03/28 20:36:40
TransparencyKeyで透過色を指定した後、
やっぱり透過をやめたい場合はどうすればいいんでしょうか??

289:281
08/03/28 21:11:32
みなさん、ありがとうございます
メソッド名がきもいのは許して・・・

>>286
こういう書き方ができるのですね
勉強になります

290:デフォルトの名無しさん
08/03/29 13:05:15
基底クラス内で宣言したクラスや構造体に
派生クラスからメンバを追加する方法ってありますか?

291:デフォルトの名無しさん
08/03/29 13:12:43
意味が分からん
具体的に何がしたい

292:デフォルトの名無しさん
08/03/29 13:13:08
class Base {
 //Nestedオブジェクトは常にこのメソッドを通して作ること!
 protected virtual Nested CreateNested() { return new Nested(); }
 protected class Nested { }
}
class Derived {
 protected override Nested CreateNested() { return new DerivedNested(); }
 class DerivedNested : Nested { public void NewMember() { } }
}
こういうことか?

293:デフォルトの名無しさん
08/03/29 14:13:59
たぶん例えばListViewItemを継承したクラスで、ListViewSubItemを継承したいとかそんなことだと予想。

最近何通りにも解釈できる短い日本語だけで、何も具体的に書かないのが多いな。
しかもそれに対して、こうでしたって書き込みがない。
釣りか?

294:デフォルトの名無しさん
08/03/29 14:26:27
釣りではないでしょ。
むしろこういうタイプの「彼」は、「俺様の意図が理解できないなら黙ってろよこの煽り厨房が」
ぐらいのことをリアルで思ってように感じられる。

295:デフォルトの名無しさん
08/03/29 14:28:16
お前ら偉そうだなっ!










これからも宜しくお願いしますm(_._)m

飛び入りです

296:デフォルトの名無しさん
08/03/29 14:38:30
お前ら偉そうだなっ!










これからも宜しくお願いしますm(_._)m

通りすがりです

297:デフォルトの名無しさん
08/03/29 14:55:22
若い人は特に言葉使いとか礼を述べる習慣がありませんからね
そういう教育をしてこなかった世代にも誤りがあります

298:デフォルトの名無しさん
08/03/29 15:05:13
>>297
礼儀の問題か。
説明能力の問題だろう。
まあ君の場合は理解力の問題でもある。

299:デフォルトの名無しさん
08/03/29 15:08:51
>>298
1から1000まで書かないと理解して貰えませんでしたか、とても残念です。

300:デフォルトの名無しさん
08/03/29 15:18:21
どんな幸せ回路内蔵してんだろコイツ

301:デフォルトの名無しさん
08/03/29 15:49:20
ただのバカですな、そのままの意味で理解するなら不可能とだけ答えて終わりにしておきませう。
きっと彼の想像するお望みの機能はあっさり実装できると思われますが。

302:デフォルトの名無しさん
08/03/29 16:09:21
ユーザーが指定した数だけ数字を入力できるプログラムを作りたいのですが、エラーが出て実効できません、どこがおかしいのかおしえてください
using System;

class aaa
{
public static void Main()
{
int a = int.Parse(Console.ReadLine());
int[] b= new int [a];
for(int c=0;c<=a;++c)
{
a[c] = int.Parse(Console.ReadLine());
}
}
}

303:デフォルトの名無しさん
08/03/29 16:12:04
c<=a  ←これがおかしい

304:デフォルトの名無しさん
08/03/29 16:24:42
なんでエラーメッセージを読みすらしないんだろう?

305:デフォルトの名無しさん
08/03/29 16:26:39
エラーメッセージよんでもわかりませんでした。
あと直す箇所はどうやってなおしたらいいかおしえてください

306:デフォルトの名無しさん
08/03/29 16:28:39
>>305
では、ここに来る前に入門書を購入してしばらくやってください。
ちょっと迷惑にもほどがありますね。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4346日前に更新/161 KB
担当:undef