C♯, C#相談室 Part35
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/03(金) 03:07:45前スレ
C♯, C#相談室 Part34
http://pc8.2ch.net/test/read.cgi/tech/1157549657/
過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
0032デフォルトの名無しさん
2006/11/04(土) 22:47:42そもそも2chでまともなレスもらえるだけで素晴らしい事
0033デフォルトの名無しさん
2006/11/04(土) 22:49:21俺なんかこんなレス返すぞ
Console.Write("or2=====3プッ");
003426
2006/11/04(土) 22:50:01どうもありがとうございます。
これ仕様なんですか……厄介ですね
しかし、継承関係崩すと、マネージコードから利用しづらくなりますし、
インターフェイスを継承できないとなると今後の拡張で
アーリーバインディングでの互換性を確保できなくなりますよね。
インターフェイスの設計からもう一度悩みなおしてみます。
0035デフォルトの名無しさん
2006/11/04(土) 23:02:18継承関係は別に崩れないだろう。増えはするけど。
が、バージョン管理ができなくなるのは確かだな。
となると ClassInterfaceType.None にする意味もなくなるなぁ……。
// 自動生成の _C インターフェイスは IDispatch だけだが IA/IB どっちも呼べる。
あとは IB で IA のメンバ全部隠蔽して再宣言するとか。
0036デフォルトの名無しさん
2006/11/04(土) 23:52:34開発していく上でその本はかなり有意義だけど、勉強に適した本とはいえないんじゃない。
ほとんどC#の知識がなかったときにそいつ一冊で本格的なアプリケーション作ったことはあるけど。
でもなにをやっているのかさっぱりわからなかった。
僕は断然、独習C# AND C#Windowsプログラミング上下
独習C#で基本を勉強して本格的なことはC#プログラミングでやればいい。
0037デフォルトの名無しさん
2006/11/05(日) 02:43:35安全に動かそうとすると極端に難しいなw
0038デフォルトの名無しさん
2006/11/05(日) 03:03:330039デフォルトの名無しさん
2006/11/05(日) 11:31:500040デフォルトの名無しさん
2006/11/05(日) 11:38:100041デフォルトの名無しさん
2006/11/05(日) 12:48:56おお、スプラッシュうウィンドウの表示時間制御が、
ビジーループで時間稼ぎから、
Timerでのイベントに変わった。
激酷からちょっと酷い程度にレベルアップしたな。
0042デフォルトの名無しさん
2006/11/05(日) 17:46:06ビジ-ループって本末転倒。
0043デフォルトの名無しさん
2006/11/05(日) 22:59:33ハーバート・シルトの本はちょっと時代遅れじゃないかな?
以前javaの本(タイトル忘れちゃった…)と独習C++買ったけど、
自分としてはいまいちだった。
特にjavaの本はOOPの本じゃないみたいだった。
翻訳も駄目だったし…
「所与の」ってなんだよw
別の著者の独習javaって本も誤植があってひどかった。
0044デフォルトの名無しさん
2006/11/06(月) 02:27:15/(hoge)(foo)/;
$a=$1;$b=$2;
#hoge,foo部には適当な正規表現をです。
上記をC/C++/JAVAで書ける人、書いてもらえませんか?
(C/C++はとりあえず使えますが、boostを使ったことがありません)
0045デフォルトの名無しさん
2006/11/06(月) 02:35:36ngen使うか、初回の処理を計測から外すような措置はした?
0046デフォルトの名無しさん
2006/11/06(月) 07:00:05Cが出来るですよねw?
PERLはオープンソースだから、NETのライブラリなんて使わずに、
PERLのソースを参考に自前でunsafeを使って実装すればいいのでは?
0047デフォルトの名無しさん
2006/11/06(月) 07:55:57まずC#のソースを晒すべきじゃないか?
0048デフォルトの名無しさん
2006/11/06(月) 08:09:32そんなことができるひとがする質問ではないだろ?
つか、そんなことやれる人なんて多くはいないのでは?
0049デフォルトの名無しさん
2006/11/06(月) 08:19:270050デフォルトの名無しさん
2006/11/06(月) 16:08:200051デフォルトの名無しさん
2006/11/06(月) 16:17:43Double の静的メンバに IsNaN
0052デフォルトの名無しさん
2006/11/06(月) 16:31:00isnan は、Cで使えるというのは調べたのですが、math.h のincludeが必要ですよね?
c#では、特別に using〜 とういうようなことは必要ないのでしょうか?
書き方は
if(isnan(a) == 1)
Console.WriteLine("NaNです。");
といった感じですか?初心者ですみません。
0053デフォルトの名無しさん
2006/11/06(月) 16:57:34初心者なんて免罪符にならないから、ヘルプ読めよ。
0054デフォルトの名無しさん
2006/11/06(月) 17:09:37Double.IsNaN メソッド
ttp://msdn2.microsoft.com/ja-jp/library/system.double.isnan.aspx
0055デフォルトの名無しさん
2006/11/06(月) 17:41:19ざっくりした計測で、
Perl=C#=Java(server VM)、C++が0.9、Javaのclient VMは1.8倍ぐらいの処理時間。
ngenとかの細かなチューニングは無し。ループ内で、キャプチャ文字列の長さを積算
するとかして、最適化で飛ばされないように努力はしてみた。
C++: VS2005, boost 1.33.1
C#: VS2005
Java: 1.5.0_09
Perl: Active Perl 5.8.8
うちのC#は、>>44の家のC#より高性能だ。
0056デフォルトの名無しさん
2006/11/06(月) 18:30:370057デフォルトの名無しさん
2006/11/06(月) 18:39:16C#を勉強しています。
とりあえず、シューティングゲームでも作ろうと思って、「C#でゲームを作ろう」みたいな本を買いに本屋に行ったのですが
全くそんな本がありませんでした。
ゲーム関連となると、VBか、Cの本しかありません・・・。
ゲームとかは、C#で作るものではないのでしょうか?
0058デフォルトの名無しさん
2006/11/06(月) 18:44:41XBox360でも動くようになるからこれから少しは流行るはず
「C#でゲームを作ろう」みたいなのがどうしても無いとだめなら
Javaで勉強すれば
0059デフォルトの名無しさん
2006/11/06(月) 18:45:460060デフォルトの名無しさん
2006/11/06(月) 18:52:54006157
2006/11/06(月) 18:52:57えーと、とんまなことを言うようなのですが、C#がイイ、と言われて、ちょくちょく勉強しちゃったのでいまさらjavaというのにいくのはちょっと大変そうなんです。
なんとかC#で頑張ってみたいんです。
しかし、本ってないのですね。
XBOXでれば流行るんですかね。そうなるといいなぁ。
本がないところを見ると、現状、C#はゲーム作りには不向きってことなんですね。
ちょっとへこんじゃいました。
0062デフォルトの名無しさん
2006/11/06(月) 19:13:05?
ただ入門しにくいって事じゃないかな。
昔はアセンブラじゃないとシューテングは作りづらいといわれていたが…
Wiiプログラマって世界にどのくらいいるんかな。
0063デフォルトの名無しさん
2006/11/06(月) 19:13:33別に不向きってわけじゃないだろう。
.NETのCLR使えば、初心者がよりとっつきやすい形でプログラミングできるし、
Cでゴリゴリ書いてた比べれば、DirectXの使用も断然やさしくなってると思う。
アマで簡単に探した限りではこのあたりかな。
そんなに高くないし、手当たり次第に買って読んでみればいいと思う。
Visual C# .NETゲーム制作教科書―ゲーム・プログラミングの基本から応用まで
http://www.amazon.co.jp/gp/product/4777510220
C#ゲームプログラミング
http://www.amazon.co.jp/gp/product/4797334800
ちょっと慣れてきたら、VB.NETとかVC++.NET用に書かれた類似本を買ってみると、新たな発見があるかもしれない。
言語の文法が少し違うだけで、.NETのライブラリを使ってる以上、やってる中身はかわらないからね。
まあそうやって、他の言語にも目を慣らしていけば、ネットで盗めるテクニックなんかも二倍三倍になるよ。
0065デフォルトの名無しさん
2006/11/06(月) 21:29:14http://www.woodensoldier.info/computer/CSharp.htm#148
上の方(ネームスペース宣言のところ)に
using System.Net.WebRequest;
と記述し、
あとはそのまま ↓のようにしました。
private void button1_Click(object sender, System.EventArgs e)
{
WebRequest request = WebRequest.Create("http://www.yahoo.co.jp");
WebResponse response = request.GetResponse();
Stream ReceiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(ReceiveStream, Encoding.UTF8);
Byte[] buffer = new Byte[response.ContentLength];
readStream.Read(buffer, 0, response.ContentLength);
response.Close();
}
しかし、↓のエラーが出てしまいます。
\Form1.cs(7): using namespace ディレクティブは名前空間に対してのみ使用できます。'System.Net.WebRequest' は名前空間ではなくクラスです。
何が間違っているのでしょうか?
0066デフォルトの名無しさん
2006/11/06(月) 21:31:590067デフォルトの名無しさん
2006/11/06(月) 21:39:41using System.Net;の間違いだろ
0068デフォルトの名無しさん
2006/11/06(月) 21:43:36>Form1.cs(7):
ってんだからForm1.csの7行目読むんだよ
006965
2006/11/06(月) 22:14:44すいません、エラーメッセージ読んでも全くわかりません。
基本を全く分かってなくて、説明ページに書いてあるのをただそのままコピペしたような感じですので・・。
なにがどうおかしいのかすら全く分からない状況です・・・。
>>67
using System.Net; とやると、その行ではエラーが出ませんが、後半でエラーが出ます・・・。
0070デフォルトの名無しさん
2006/11/06(月) 22:15:39そりゃ後半が間違ってるんだろ。
0071デフォルトの名無しさん
2006/11/06(月) 22:20:19君が見てる所のサンプルはあんまり質が良くないから
初心者スレのテンプレにあるサイトを探ってみなさい。
0072デフォルトの名無しさん
2006/11/06(月) 22:20:21そのまま動くサンプルが載ってるページを探すか入門書買う方がいいんじゃない
0073デフォルトの名無しさん
2006/11/06(月) 22:23:580074デフォルトの名無しさん
2006/11/06(月) 22:31:17それはショックです。
他のページ見てみます。
ありがとうございました。
0075デフォルトの名無しさん
2006/11/06(月) 22:34:300076デフォルトの名無しさん
2006/11/06(月) 22:35:08Perl=C#
って必至ですね
0077デフォルトの名無しさん
2006/11/06(月) 22:49:24だってStreamReader.Read()にbyte[]が引数のオーバーロードなんて無いもんw
0078デフォルトの名無しさん
2006/11/07(火) 00:21:160079デフォルトの名無しさん
2006/11/07(火) 00:36:460080デフォルトの名無しさん
2006/11/07(火) 05:47:22不向きっつーか現状開拓中。つまり歴史がない
アーリーアダプタががんばってる最中。
しかしXNA Frameworkはびっくりするほど.NETわかってる
やつが書いているようなので(一部のBCLよりよくわかってるw)
すごくわかりやすいのになりそう。そうなったら流行るかも。
遅レスです。
0081デフォルトの名無しさん
2006/11/07(火) 09:42:24チェックボックスの値が上手く取得できないので困ってます
チェックボックスがtrueのとき削除しようと思ってるんですが
何かいい方法はありますか?
0082デフォルトの名無しさん
2006/11/07(火) 12:09:05日本語でおk
0083デフォルトの名無しさん
2006/11/07(火) 13:11:15ttp://support.microsoft.com/kb/316934/ja
を参考に、C#.NETとADO.NETを使用してExcelへの出力をしたいと
考えています。
Book1.xlsのsheet1のA1にC#のソースから"ABC"という文字列を
SQL Updateコマンドで実行したいのですが、なかなか上手くいきません。
どなたか参考になるサイトや例を教えて下さい。
0084デフォルトの名無しさん
2006/11/07(火) 14:55:03クリックしてチェックボックスがオンになって周りが破線で囲まれたときに
チェックボックスの値がtrueって取得できない
他の所をクリックして破線がとれたらtureって取得できる
なんとか前の段階でtrueかどうか確認したいのよ
0085デフォルトの名無しさん
2006/11/07(火) 17:02:06>Book1.xlsのsheet1のA1にC#のソースから"ABC"という文字列を
>SQL Updateコマンドで実行したい
言ってることが分かりません。
0086デフォルトの名無しさん
2006/11/07(火) 17:52:41.NET2.0+Excel2003でこれだけで出来たが。
using (OleDbConnection con = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties=""Excel 8.0;HDR=NO;"""))
{
OleDbCommand cmd = new OleDbCommand(@"UPDATE [Sheet1$A1:A1] SET F1='ABC'", con);
con.Open();
cmd.ExecuteNonQuery();
}
0087デフォルトの名無しさん
2006/11/07(火) 18:41:57ありがとうございました。
まじ分からなくて、もうだめかと思ってました。
初歩的な疑問だったかと思います、ですいません。
本当にありがとうございました。
0088デフォルトの名無しさん
2006/11/07(火) 19:02:46DataGridView.CurrentCellDirtyStateChanged ??
0089デフォルトの名無しさん
2006/11/07(火) 19:28:55g.DrawRectangle(ほにゃらら・・・
g.FillRectangle(ほにゃらら・・・
ってあったときにたとえば
g.Transparency=155;
g.DrawRectangle(ほにゃらら・・・
g.FillRectangle(ほにゃらら・・・
ってすると描画全体が薄くなるようなことがしたいんですが・・・
0090デフォルトの名無しさん
2006/11/07(火) 19:43:220091デフォルトの名無しさん
2006/11/07(火) 19:45:31それともグラフィックスのアルファ値見たいのがある?
0092デフォルトの名無しさん
2006/11/07(火) 19:49:480093デフォルトの名無しさん
2006/11/07(火) 19:56:03ttp://pc8.2ch.net/test/read.cgi/tech/1162193452/
0094デフォルトの名無しさん
2006/11/07(火) 21:26:48まさにCurrentCellDirtyStateChangedでした
解決しました
ありがとうございます
0095デフォルトの名無しさん
2006/11/07(火) 21:41:48おまえ>>89の言ってる意味わかってるの?
0096デフォルトの名無しさん
2006/11/07(火) 21:59:59DrawImageとなるとまた別だけど
どうしても全体を透明にしたいなら、まとめて別のImageに描画しといて
ColorMatrix付きでDrawImageとか
0097デフォルトの名無しさん
2006/11/07(火) 23:25:55できるかできないかじゃなくて、本来の意図としては描画コードをいじることなく外部の属性変化で動作を変化させたいって事でしょ?
本気で言ってるとしたらなんかエンジニアとしての素養が欠けてると思う。
0098デフォルトの名無しさん
2006/11/07(火) 23:36:250099デフォルトの名無しさん
2006/11/07(火) 23:48:44お勧めの方法を教えてください。
ぼろぼろクリキター
010099
2006/11/07(火) 23:55:550101デフォルトの名無しさん
2006/11/08(水) 00:07:550102デフォルトの名無しさん
2006/11/08(水) 00:21:39オレオレ言語を.NETアセンブリにできるみたいね、面白そう
誰かいじってるやついる?
ぼろぼろクリキター
0103デフォルトの名無しさん
2006/11/08(水) 00:46:28なんでそんな剣幕なのか分からないけど
>>92でいいんじゃね?
>>92でパラメータでもなんでもアルファ渡して
そいつからColorつくってブラシでもペンでも描画コードで作ればいいんじゃ?
0104デフォルトの名無しさん
2006/11/08(水) 05:04:41http://www.atmarkit.co.jp/fdotnet/insiderseye/20060215cscommunity/cscommunity_02.html
>Q. C#でWin32ネイティブ・アプリケーションも作成できるようにしてほしい。
>A. もちろんC#のコードからWin32ネイティブのコードを生成することは実現可能である。
C#でのネイティブコードの出力も検討されてるみたいね。
ぜひとも実現してほしいもんだ。
0105デフォルトの名無しさん
2006/11/08(水) 08:33:030106デフォルトの名無しさん
2006/11/08(水) 09:24:54描画する矩形等が重なる場合、まずいんでない?
例えばアルファ値128で黒い矩形の上に白い矩形を重ねたらグレーの矩形になるが、
アルファ値なしで黒い矩形の上に白い矩形を重ねて、最後にイメージ全体をアルファ128で描画すると半透明な白が描画される。
ってことで >96にあるとおりColorMatrix付きDrawImageでいいと思う
0107デフォルトの名無しさん
2006/11/08(水) 13:25:24ネイティブコード出力よかまずそのへんを改善して欲しいのだが…
0108デフォルトの名無しさん
2006/11/08(水) 14:56:170109デフォルトの名無しさん
2006/11/08(水) 16:27:41画像の一部分だけBitmapメンバに格納したいってときに
Graphics.DrawImageで部分を切り出ししても全体がコピーされるんでクマー状態。
メソッドの使い方をまちがっているのか、それとも別の方法がいいのか。
どなたか参考になるアイディアをください
0110デフォルトの名無しさん
2006/11/08(水) 16:31:26あ・・・これじゃわかりにくいですね。
いま事情で手元にソースがないので完璧には説明できません。スマソ。
0111デフォルトの名無しさん
2006/11/08(水) 17:08:250112デフォルトの名無しさん
2006/11/08(水) 17:28:23> プロパティとかイテレータとか匿名メソッドとかすごい多用しちゃってますが・・・・
iteratorもdelegateも無茶苦茶遅い。
しょーもないアプリなら実用になることはなるのだけど、速度が要求されるところだと
その遅さが致命的。
もっと最適化がんばって欲しい気はするが、いまのC#の言語デザインだとiteratorやdelegateを
inliningするのは難しいだろうなぁ。
ほんと、デザインセンスを疑うよ。素人じゃないんだから・・。
0113デフォルトの名無しさん
2006/11/08(水) 17:35:370114118
2006/11/08(水) 17:50:20もちろんC++でやればもっと早くなるとは思うけど。
生産性との兼ね合いですが今の開発ではC#で十分。
0115デフォルトの名無しさん
2006/11/08(水) 17:54:17インライン展開とかありえん
0116デフォルトの名無しさん
2006/11/08(水) 17:59:46ToolStripMenuItemで実現は可能でしょうか?
それとも全部自前で作るしかないんですかね?
0117デフォルトの名無しさん
2006/11/08(水) 18:03:56それやってもだめなので。。。
0118デフォルトの名無しさん
2006/11/08(水) 18:07:42確かにMFC使わないならそう思うが
VC+++MFCならC#とほとんど変わらないだろ?
0119デフォルトの名無しさん
2006/11/08(水) 18:32:450120デフォルトの名無しさん
2006/11/08(水) 18:47:07なんか悩んだ記憶があったので前に書いたコード漁ったらこうやってた。
srcBitmapの部分(x, y, width, height)をresultに切り出すとすると、
Bitmap result = new Bitmap(width, height);
using (Graphics g = Graphics.FromImage(result)) {
g.DrawImage(srcBitmap, -x, -y, width, height);
}
0121デフォルトの名無しさん
2006/11/08(水) 18:53:44商用ではないですよね?
商用なら大問題だぞ
0122デフォルトの名無しさん
2006/11/08(水) 18:54:40.NETが商用には耐えかねる
0123デフォルトの名無しさん
2006/11/08(水) 18:55:37C#そんなに使いまくってるわけじゃないので・・・
0124デフォルトの名無しさん
2006/11/08(水) 19:03:48クリッピングが適当だけど、そんなことでパフォーマンスに影響が出るほどアホじゃないだろ
0125デフォルトの名無しさん
2006/11/08(水) 19:09:15MFCはちょっと…癌だね。
MFCで読み込む画像をダイアログで指定してフォームに表示するだけでも
覚えることは山ほどある。
TextBoxの入力内容をタイトルにするにも直感的じゃない手法を取らなくてはならない。
後、文字の取り扱いが良くない。
0126デフォルトの名無しさん
2006/11/08(水) 19:14:38じゃあさ、読み込む画像をダイアログで指定する際にプレビュー機能が欲しいなんて
要求があったらどうする。
これを実装しようとするとC#でも面倒(容易だが)
また、無駄に動作がもっさりしてるし・・・
VC+++MFCの方がコンパクトで高速なものが書ける。
0127デフォルトの名無しさん
2006/11/08(水) 19:19:330128デフォルトの名無しさん
2006/11/08(水) 19:26:220129デフォルトの名無しさん
2006/11/08(水) 19:28:04皆がオリジナルダイアログを作りたいわけではない。
多分、生産性の意味わかってないな。
実際の業務でもコンポネント作るのは技術レベル高い人にさせてるし。
他の大多数はそれを使うだけ。
俺としては直感的に使いやすい方がベター。
0130デフォルトの名無しさん
2006/11/08(水) 19:33:15人に見せて恥ずかしくないUIを作ろうとするとほとんどのコントロールは
自前で用意することになるぞ。
VC++も同じだが、サンプルアプリでないかぎり標準コントロールを
しようする機会ははない
0131デフォルトの名無しさん
2006/11/08(水) 19:33:24そしたら全部アセンブラでクロック数かぞえながら書いとけw
そうせずにC++/MFCを使う理由と、C++/MFCを使わずにC#を使う理由は大体同じだと思うよ。
■ このスレッドは過去ログ倉庫に格納されています