ふらっとC#,C♯,C#(初心者用) Part39
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/03/15(日) 02:19:33「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part38
http://pc11.2ch.net/test/read.cgi/tech/1235864730/
0002デフォルトの名無しさん
2009/03/15(日) 02:19:41C#, C♯, C#相談室 Part51
http://pc11.2ch.net/test/read.cgi/tech/1233757615/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
http://pc11.2ch.net/test/read.cgi/tech/1231506876/
初心者のためのプログラミング言語ガイド Part14
http://pc11.2ch.net/test/read.cgi/tech/1235692421/
----参考サイト
http://www.google.co.jp/
http://msdn.microsoft.com/ja-jp/library/default.aspx
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/
0003デフォルトの名無しさん
2009/03/15(日) 02:25:390004デフォルトの名無しさん
2009/03/15(日) 02:26:04でも2〜3秒待たされますよ?フリーズしたような気分になります。
普通のソフトならほぼ一瞬なのですが。
前スレ>>996
しばらくはいいのですが、時間が経つとメモリから消えてしまうのか、
再び起動が遅くなります。
0005デフォルトの名無しさん
2009/03/15(日) 02:26:36前スレ最後はキナ臭かったが、まったりと頼むよ。
0006デフォルトの名無しさん
2009/03/15(日) 02:27:190007デフォルトの名無しさん
2009/03/15(日) 02:28:43ああ、それならそのPCがどこかおかしいわ
俺のP8600の非力なノートで起動は1秒もかからないよ
一度他人のPCで起動してみたら?
0008デフォルトの名無しさん
2009/03/15(日) 02:29:070009デフォルトの名無しさん
2009/03/15(日) 02:30:102〜3秒かかることが問題というか、非.NETアプリに比べて起動が圧倒的に遅いのが気になるんです。
実際これは自分だけじゃなくて、2chやどっかのブログでもよく言われていることだと思います。
結構大きな問題だと思うのですが…。
0010デフォルトの名無しさん
2009/03/15(日) 02:31:35俺のP8600の非力なノートで起動は1秒もかからないよ
0011デフォルトの名無しさん
2009/03/15(日) 02:32:17どっから沸いてきてんだよ。
0012デフォルトの名無しさん
2009/03/15(日) 02:33:12.NET 起動 遅い
http://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rls=org.mozilla%3Aja%3Aofficial&hs=0es&q=.NET+%E8%B5%B7%E5%8B%95+%E9%81%85%E3%81%84&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
ググると同様の感想を持ってる人が少なくありません。レアケースではないと思うのですが?
0013デフォルトの名無しさん
2009/03/15(日) 02:33:58でもそういうわけじゃないだろ。
深呼吸でもすれば起動してるんだから。
0014デフォルトの名無しさん
2009/03/15(日) 02:35:54お前は「気になる」としか言ってないだろ。
0015デフォルトの名無しさん
2009/03/15(日) 02:36:25誰も遅くないなんていってないよ
2〜3秒もかかるほど遅くないっていってんの
そんだけかかるってことは、そのソフトが何かおかしいか、あなたのPC環境がおかしい
だって俺のP8600の非力なノートでは1秒もかからないで起動するもの
0016デフォルトの名無しさん
2009/03/15(日) 02:36:40いや、一回起動しておしまいならそれでいいんです。
でもメモ帳のように、起動と終了を気軽に繰り返すには気になる、ということです。
一度起動するとしばらくは再起動も速いですけど、しばらくすると元に戻ってしまいますし。
0017デフォルトの名無しさん
2009/03/15(日) 02:38:550018デフォルトの名無しさん
2009/03/15(日) 02:39:20俺のPCでも2秒くらいかかるが。
VistaだったらOSロード時にコンポーネントを同時起動するから速いらしい。
0019デフォルトの名無しさん
2009/03/15(日) 02:41:03起動時にコードを山ほど詰め込んであれば当然遅くなるわけだし
>>18
SuperFetchってやつだっけ
0020デフォルトの名無しさん
2009/03/15(日) 02:41:14前提からしておかしい。
0021デフォルトの名無しさん
2009/03/15(日) 02:41:40E7200のXPだが一瞬だぜ
そのソフトだけじゃないの?
質問者は「どんな小さなアプリでも」だぜ?
0022デフォルトの名無しさん
2009/03/15(日) 02:42:28なってしまうね。今試したら VS 2008 で一回目が 2-3 秒ぐら
い、2回目だと 1秒ぐらいな感じだった。
0023デフォルトの名無しさん
2009/03/15(日) 02:44:04それはないわ。
画像ビューアやテキストエディタまで常駐させろってか?
0024デフォルトの名無しさん
2009/03/15(日) 02:44:120025デフォルトの名無しさん
2009/03/15(日) 02:45:33俺はテキストエディタを常駐させてるぞ
0026デフォルトの名無しさん
2009/03/15(日) 02:47:500027デフォルトの名無しさん
2009/03/15(日) 02:49:54あと他のリソースがHDDを動作させてるとき
これと別になんか起動が遅くなったなぁと思うときは、HDDの故障の前触れ
0028デフォルトの名無しさん
2009/03/15(日) 02:50:47そういう使い方を前提としたソフトをC#で書くなら
考慮した書き方はいくらでもあるだろと言いたいのよ
真意が伝わりにくかった事は詫びよう
0029デフォルトの名無しさん
2009/03/15(日) 02:53:06それでも.netのほうが多少は遅いの?
0030デフォルトの名無しさん
2009/03/15(日) 02:53:52そんなに特別な話ではないと思います。
関連付けてエクスプローラからカチカチするようなアプリだと、よくある使い方です。
0031デフォルトの名無しさん
2009/03/15(日) 02:56:55不満ならお前が使わなければいい。
使ってくれと土下座されてるわけでもないだろ。
0032デフォルトの名無しさん
2009/03/15(日) 02:58:080033デフォルトの名無しさん
2009/03/15(日) 02:59:22そう考えるとネイティブコンパイルできるC++かDelphiしか解決法はないということか。
0034デフォルトの名無しさん
2009/03/15(日) 02:59:30結局「気になる」以上の不満は無いんだろ。
0035デフォルトの名無しさん
2009/03/15(日) 03:02:100036デフォルトの名無しさん
2009/03/15(日) 03:02:500037デフォルトの名無しさん
2009/03/15(日) 03:03:29だから素人は使わないで。
0038デフォルトの名無しさん
2009/03/15(日) 03:06:00何を持って遅いとするのか
0039デフォルトの名無しさん
2009/03/15(日) 03:09:440040デフォルトの名無しさん
2009/03/15(日) 03:12:23知らないならレスしないで下さい。ウザイだけです。
0041デフォルトの名無しさん
2009/03/15(日) 03:13:570042デフォルトの名無しさん
2009/03/15(日) 03:15:200043デフォルトの名無しさん
2009/03/15(日) 03:18:040044デフォルトの名無しさん
2009/03/15(日) 03:43:520045デフォルトの名無しさん
2009/03/15(日) 03:48:49起動ってのが例えばウインドウが表示されるまでだとしたら、
ウインドウを表示するコードもJITコンパイルされるので.netの方が遅いよ。
つーかね、そんな事気にしてたらこの先Windows使えないっすよ。
0046デフォルトの名無しさん
2009/03/15(日) 04:22:22起動を別にって言ってるのにそういう例を提示するということは、
一つのアプリがフォームを新たに表示しようとするたびにコンパイルされて
表示が遅いということだな?
0047デフォルトの名無しさん
2009/03/15(日) 04:39:25クラスライブラリの出力タイプを持つプロジェクトを直接起動することはできませんとでて実行できません
F5押したときにもう一方のプロジェクトだけ起動するようにするにはどうすればいいんですか?
0048デフォルトの名無しさん
2009/03/15(日) 04:41:130049デフォルトの名無しさん
2009/03/15(日) 04:44:330050デフォルトの名無しさん
2009/03/15(日) 05:28:450051デフォルトの名無しさん
2009/03/15(日) 05:31:15だが、たいていの人は名前空間を必ず指定する。
0052デフォルトの名無しさん
2009/03/15(日) 05:40:42個人的には解決したい事項の1つ。ngenはあまり効果ないみたいだし。
exeがクリックされたら、アンマネージでスプラッシュWindow出しつつ
裏で.NET起動とか、なんか体感速度的にでもごまかす方法ないかなぁ。
あ、でも、頻繁に起動するアプリでスプラッシュWindowは返ってウザイか。
Windowの閉じるボタン押されたらとりあえず非表示にして、
裏でタイマー回して1時間後に終了とか。
0053デフォルトの名無しさん
2009/03/15(日) 05:53:03同じプロジェクト内の第3者ファイルで使う場合はusingで名前を指定しなくても2クラスとも使えるようになりますよね
最初にusingでいっぱい指定してある奴ってどこにあるプロジェクトなんですか?
同じソリューションで2つプロジェクトを作って、片方のプロジェクトからもう一方のプロジェクトのクラスが見えないんですけど
usingしてから使おうとしても現在のコンテキスト内に存在しませんといわれるんですが、どういうことですか?
0054デフォルトの名無しさん
2009/03/15(日) 05:53:18それのおかげで起動したのか、ダブルクリック失敗したのか迷うことがある
0055デフォルトの名無しさん
2009/03/15(日) 06:03:04これの項目が2重にダブってて、中をよく比べたら
.NET Framework クラス ライブラリ
Silverlight 用 .NET Framework クラス ライブラリ
の2つが同時に表示されてるんですが、Silverlight 用だけ表示させないようにするにはどうすればいいんでしょうか
0056デフォルトの名無しさん
2009/03/15(日) 06:03:420057デフォルトの名無しさん
2009/03/15(日) 06:38:26プロジェクトのConsoleApplication2の参照に追加できましたが、
using ConsoleApplication1;
と書いてもConsoleApplication1の中のクラスが使えるようになりません。あとどうすればいいですか?
0058デフォルトの名無しさん
2009/03/15(日) 06:40:320059デフォルトの名無しさん
2009/03/15(日) 07:15:440060デフォルトの名無しさん
2009/03/15(日) 07:25:03int a = 1;
public void num() {
int b = new int();
b = 2;
int c = 3;
}
public void test() {
Console.Write(a);
Console.Write(b);
Console.Write(c);
String name = Console.ReadLine();
}
}
これの
Console.Write(b);
Console.Write(c);
のbとcで、コンテキスト内に存在しませんとエラーが出るんですが
どうすれば他のメソッドの変数が使えるようになりますか?
0061デフォルトの名無しさん
2009/03/15(日) 07:26:410062デフォルトの名無しさん
2009/03/15(日) 07:28:51public class Class1 {
int a = 1;
int b;
int c;
public void num() {
b = 2;
c = 3;
}
public void test() {
Console.Write(a);
Console.Write(b);
Console.Write(c);
String name = Console.ReadLine();
}
}
0063デフォルトの名無しさん
2009/03/15(日) 07:31:00おじさんの髪の毛に希望ができたよ
0064デフォルトの名無しさん
2009/03/15(日) 07:32:180065デフォルトの名無しさん
2009/03/15(日) 08:58:21ということはnewは省略可能なだけってことなんですねありがとうございました。
public class Class1 {
public int b = new int();
public Class1() {
b = 1;
}
public void num() {
b = 2;
}
}
class Program2 {
static void Main(string[] args) {
String name;
Class1 cls = new Class1();
using (Class1 cls2 = new Class1()) {
cls2 = cls;
cls.num();
Console.Write(cls2.b);
}
cls2.num();
Console.Write(cls2.b);
name = Console.ReadLine();
}
}
これのusingでエラーがでるんですが、IDisposeへの変換が可能でなければならないってどういうことですか?
0066デフォルトの名無しさん
2009/03/15(日) 09:31:110067デフォルトの名無しさん
2009/03/15(日) 16:25:35new int()とか、何も分かってないのにIDisposeだの
基礎がガタガタなので、何か本買って勉強し直すといいよ。
0068デフォルトの名無しさん
2009/03/15(日) 16:28:48これコンパイル通るのか?
0069デフォルトの名無しさん
2009/03/15(日) 16:29:220070デフォルトの名無しさん
2009/03/15(日) 16:32:58……何がやりたいのかさっぱり分からない。
0071デフォルトの名無しさん
2009/03/15(日) 16:37:290072デフォルトの名無しさん
2009/03/15(日) 17:30:01VM上のJITコンパイラやC++と比較してパフォーマンスはどの程度期待できるでしょうか
0073デフォルトの名無しさん
2009/03/15(日) 17:36:19new int()なんて通すなよ
0074デフォルトの名無しさん
2009/03/15(日) 17:40:540075デフォルトの名無しさん
2009/03/15(日) 18:04:38値型はコンストラクタ呼べないとでも思ってるのか?
Point p = new Point();
全然おかしくない。
0076デフォルトの名無しさん
2009/03/15(日) 18:48:290077デフォルトの名無しさん
2009/03/15(日) 19:03:23其の文化が C# にはないからなぁ。
0078デフォルトの名無しさん
2009/03/15(日) 21:32:44.NET3.0以上を入れないとそのアプリを利用できないことはスルー?
特定の人向けの場合は別として、そのためだけに新しく.NETを入れさせるのってどうなのよ?
一般向けのフリーソフトを作りたい場合はせめて2.0までの構文で抑えるべきだと思うんだが。
0079デフォルトの名無しさん
2009/03/15(日) 21:37:43昨日のネタはいいところを突いてきたと思ったんだが
0080デフォルトの名無しさん
2009/03/15(日) 21:38:100081デフォルトの名無しさん
2009/03/15(日) 21:45:31実際、「動作には.NET2.0以上が必要です」って書いてあるだけで興味失う人も多いようだが?
そろそろ普及してきた感のある2.0ですらそうなんだから、3.0とかありえないレベルだろ。
自動アップデートじゃ入らないんだから、入れてない人もかなりいるはずだし。
0082デフォルトの名無しさん
2009/03/15(日) 21:48:54使える範囲で使えばいいだけだろ。
それを踏まえると、質問するのにあたって、「C# 2.0 で」って指定はありだろうね。
0083デフォルトの名無しさん
2009/03/15(日) 21:49:230084デフォルトの名無しさん
2009/03/15(日) 21:49:29個人的にゃそんなこと気にするやつなら初めから C++ で作るので
どうでもいいが。
もっというとどうせインストーラ作らなきゃいけなくてそこで入れるだけ
だからさらにどうでもいいが。
0085デフォルトの名無しさん
2009/03/15(日) 21:50:03.net3.0アプリ使いたければ.net3.0インストールすればいいんだし。
使うかどうかは自由じゃないか?
0086デフォルトの名無しさん
2009/03/15(日) 21:52:210087デフォルトの名無しさん
2009/03/15(日) 21:52:540088デフォルトの名無しさん
2009/03/15(日) 21:54:450089デフォルトの名無しさん
2009/03/15(日) 22:29:51ボタンを押したらアニメーションを再生/一時停止するような
プログラムを作るにはどうすればいいですか?
0090デフォルトの名無しさん
2009/03/15(日) 22:32:27ボタンを押したら牛丼が出来上がるよな
プログラムを作るにはどうすればいいですか?
0091デフォルトの名無しさん
2009/03/15(日) 22:40:380092デフォルトの名無しさん
2009/03/15(日) 22:40:48009389
2009/03/15(日) 22:42:41○WinFormsで
//Form1.Desginer.cs
this.Click += new System.EventHandler(this.Play_Clicked);
//Form1.cs
private void Play_Clicked(object sender, EventArgs e)
{
}
↑この関数の中でどうやってアニメーションを開始すれば?
0094デフォルトの名無しさん
2009/03/15(日) 22:46:33マネージドなコントロールはないと思うんで、Media Player を埋め込みで。
>>92
無理
0095デフォルトの名無しさん
2009/03/15(日) 23:17:51ラムダ式は.NET2.0でも使える。
0096デフォルトの名無しさん
2009/03/15(日) 23:29:37違います。初めて実行する処理が遅いだけです。
フォームの表示であれば、違うフォームでも表示するコードは内部で共通なので2枚目以降はそれほど遅くないでしょう。
それと、なぜmfc使ってる場合と比較したがるのかよく分からないのですが。
0097デフォルトの名無しさん
2009/03/15(日) 23:36:10Vistaなら早いよ(^O^)
まぁそういう事なんでしょう…
0098デフォルトの名無しさん
2009/03/15(日) 23:59:49遅いです。問題視しました。これでいいのか?
どういう方向に話しを持って行きたいのかさっぱりわからない。
0099デフォルトの名無しさん
2009/03/16(月) 00:03:20C++でMFC使わずWinAPI直に使うとか・・生産性悪すぎて話しにならん
同等の機能を実現するのにC#とは比べ物にならんくらいの時間と労力がいる。
ここはプログラムを"作る人"のための板なわけだが、お前さんは作った事あるのか?
ソフトウェア板にでも行った方が良くないか?
0100デフォルトの名無しさん
2009/03/16(月) 00:08:00VS2008 .NET3.5でWebClietnを使ってます。
WebClientはDownloadData()と
DownloadFile()の二つのメソッドを実行します。
DownloadDataは問題ないのですが
アプリをWindowsVistaからproxyサーバを介して
DownloadFileを実行すると
「サーバーによってプロトコル違反が発生しました。
Section=ResponseStatusLine」
という例外が発生します。
WindowsXPでは発生しません。
proxyサーバはubuntu8でsquidを使用しています。
WebClientからこれを回避する方法をどなたかご教授ください。
よろしくお願いします。
0101デフォルトの名無しさん
2009/03/16(月) 00:16:54>遅いです。問題視しました。これでいいのか?
何がですか?あなたの話こそ意味が分かりません。
あなたはどのレスした人ですか?
>>99
>C++でMFC使わずWinAPI直に使うとか・・生産性悪すぎて話しにならん
>同等の機能を実現するのにC#とは比べ物にならんくらいの時間と労力がいる。
飛躍しすぎてると言うか、そんな話は誰もしてないです。
前スレ>>989で
>c++もmfc使っていれば、.netと同じでdll経由してるから、同じようなもんじゃいの?
と言っていたので、dllの初回ロードと.netの初回実行時コンパイルは、最初に実行されるってことでは同じだけど、違う性質の処理です。
それなのになぜあなたはMFCのdll呼び出しとの比較にこだわるんですか。
ということを質問しただけです。
0102デフォルトの名無しさん
2009/03/16(月) 00:26:14お前は何が言いたいんだ?叩きたいだけなのか?
満足できないなら自分でC++使って作ればいいじゃないか。
0103デフォルトの名無しさん
2009/03/16(月) 00:28:590104デフォルトの名無しさん
2009/03/16(月) 00:29:06それよりも得られる利点のほうが多いと踏んで。
0105デフォルトの名無しさん
2009/03/16(月) 00:30:500106デフォルトの名無しさん
2009/03/16(月) 00:36:59C#を叩いているつもりは毛頭無いし、むしろC#好きです。
ただMFCのdll呼び出しと比較するようなもんじゃないよということを言いたかっただけ。
スレ的に邪魔そうなんでもう消えます。
0107デフォルトの名無しさん
2009/03/16(月) 00:38:410108デフォルトの名無しさん
2009/03/16(月) 00:42:21ところで、C#2005のソースはSHIFT-JISで保存されているんだけど
これってデフォルトだっけ?出来ればUTF-8に変えたいんだけど。
0109デフォルトの名無しさん
2009/03/16(月) 02:34:55うん
>UTF-8
BOM付ければ勝手に認識したと思う
だめなら codepage オプションかなんかだったかと
0110デフォルトの名無しさん
2009/03/16(月) 06:12:53テンプレートを UTF-8 版に(手動で)変更する、とかしないとダメだったかと。
0111デフォルトの名無しさん
2009/03/16(月) 09:07:37ttp://www.velocityreviews.com/forums/t302174-why-do-i-get-quotthe-server-committed-a-protocol-violationquot.html
この辺
0112デフォルトの名無しさん
2009/03/16(月) 10:49:23インストール後にngenするようにインストーラに書いときゃいいだろ
0113デフォルトの名無しさん
2009/03/16(月) 11:29:28ImageBuf = new Bitmap(640,
480,
2560,
System.Drawing.Imaging.PixelFormat.Format32bppArgb,
pt);
こういうコード書いた場合
ガーベジ働いたら,ptが勝手に解放されたりとか
Bitmap内の画像メモリバッファが動いたりして
軽くヤバイんでしょうか?
現状,ptに対して,Marshal.Copy()にて画像コピーしまくっています
0114デフォルトの名無しさん
2009/03/16(月) 12:16:390115デフォルトの名無しさん
2009/03/16(月) 12:52:070116デフォルトの名無しさん
2009/03/16(月) 12:56:49これ複数のプロジェクトから少しづつ使えそうなコード持ってきて
新たにプロジェクトで使うときのusingがめんどくさいし、統一できてないんですが
これ名前の付け方ってデフォルトだとプロジェクト名じゃないですか
namespaceの存在理由が他のnamespaceと区別を付ける目的だとしたら
自分が使うプロジェクトはすべて同じnamespaceに書き換えるのはありですか?
この辺どうやってますか?
0117デフォルトの名無しさん
2009/03/16(月) 13:00:16クラス名 インスタンス名 = new クラス名();
この2つの違いがわかりません
newしなくても同じように使えてる気がするんですが、何がちがうんでしょうか
0118デフォルトの名無しさん
2009/03/16(月) 13:06:390119デフォルトの名無しさん
2009/03/16(月) 13:07:36List<string> list1;
List<string> list2 = new List<string>();
list1.add("test"); //こっちは実行時エラーになる、当然コンパイルは通る
list2.add("test");
0120デフォルトの名無しさん
2009/03/16(月) 13:08:40ってことは,ガーベジにてBitmapオブジェクト内の
画像バッファのアドレスは,絶対動かないってことですね
サンクスです
0121デフォルトの名無しさん
2009/03/16(月) 13:09:09自由
プロジェクトで規約が示されたりするかもしれないけどな
>>116
基本はこれ
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
そもそも
> これ複数のプロジェクトから少しづつ使えそうなコード持ってきて新たにプロジェクトで使う
てのが好ましくない
モジュール化を進めてDLLとして再利用できる形にしたほうがいいと思う
0122デフォルトの名無しさん
2009/03/16(月) 13:10:100123デフォルトの名無しさん
2009/03/16(月) 13:36:34thx
newしなくても使えたような気がしたんだけど気のせいかな・・・
あともうひとつ教えてください
一つのファイルに100行ぐらいしかなくてファイル数ばっかり大量にあるんですが
これっておかしいですか?なんか一つのファイルに2つ以上クラスがあるとすごい見ずらいんで細かく分けるようにしたんですが
で、usingの部分をいつも追加するのがいやになりました。まとめてusingだけのファイルから参照するとかはできないですか?
0124デフォルトの名無しさん
2009/03/16(月) 13:42:41newしなくても使えてるのは値型。値型と参照型があるんで調べてみ。
C#で書いたclassは全て参照型。
0125デフォルトの名無しさん
2009/03/16(月) 13:47:52ブブー
0126デフォルトの名無しさん
2009/03/16(月) 13:56:15別に同一プロジェクト内で"クラスの追加"をしていった場合、
usingを追加する作業は要らないと思うんだけど
0127デフォルトの名無しさん
2009/03/16(月) 14:03:09フィールドの値型なら暗黙に初期化されるから強ち間違いではない……とか
// 苦しい弁護だな
0128デフォルトの名無しさん
2009/03/16(月) 14:14:12そうなんですか?
using System;
using System.Collections.Generic;
using System.Linq;
クラスファイルを追加するとこれしかなくて
全体に追加したいusingを毎回手動追加してるんですが
0129デフォルトの名無しさん
2009/03/16(月) 14:30:43libをDLLにすればそれを呼び出せるよ。
0130デフォルトの名無しさん
2009/03/16(月) 15:22:350131デフォルトの名無しさん
2009/03/16(月) 15:32:15値型でもローカル変数なら明示的な初期化が必要だぜ
// 配列の要素なら暗黙に初期化されるから……うん、やっぱり苦しいな
0132デフォルトの名無しさん
2009/03/16(月) 15:42:000133デフォルトの名無しさん
2009/03/16(月) 15:55:23どういうセンスなんだぜ?
0134デフォルトの名無しさん
2009/03/16(月) 15:56:420135デフォルトの名無しさん
2009/03/16(月) 15:58:02詳しく
0136130
2009/03/16(月) 17:23:46無駄なインスタンスnewしまくってるやつに思えてならない。
あと何言ってるのかさっぱりわからない。
0137デフォルトの名無しさん
2009/03/16(月) 19:45:19TextBoxを派生させてOnPaintをオーバーライドしているのですが、
文字入力中だけ背景色や文字のサイズなどが変わってしまいます。
(OnPaintが呼ばれてない?)
文字入力中も見た目を制御するにはどうすればいいのでしょうか?
0138デフォルトの名無しさん
2009/03/16(月) 21:18:38RichTextBox使うんじゃ駄目?
0139137
2009/03/16(月) 23:44:18SetStyle(ControlStyles.UserPaint, true);
にしてやると、文字入力のとき以外は呼ばれるようになりました。
RichTextBoxは全然使ったことなかったです。
とりあえずRichTextBoxでできるところまで試してみます。
また頭が死にそうになったら質問するかもしれないですが、
そのときはよろしくお願いいたします。
ありがとうございました。
0140デフォルトの名無しさん
2009/03/17(火) 01:16:52再びメソッドが呼び出された時に使えるローカル変数って作れないんでつか?
タイマーイベントをカウントしたい時とか、グローバルっぽい変数作ると混乱してくるけど
上手い方法が分からないのでこんな感じですが↓もっといい方法やってる人いますか?
public class Form1 : System.Windows.Forms.Form
{
int YaranaikaCount = 0;
(・・・略・・・)
private void timer1_Tick(object sender, EventArgs e)
{
YaranaikaCount++;
if (YaranaikaCount > 4)
{
YaranaikaCount = 0;
Ahhhhh();
}
else
{
UhoUho();
}
}
}
0141デフォルトの名無しさん
2009/03/17(火) 01:21:08なぜならそういうのはローカル変数とは言わないので
0142デフォルトの名無しさん
2009/03/17(火) 01:23:25: public class Form1 : System.Windows.Forms.Form
: {
: int YaranaikaCount = 0;
: (・・・略・・・)
: private void timer1_Tick(object sender, EventArgs e)
: {
: YaranaikaCount++;
: if (YaranaikaCount > 4)
: {
: YaranaikaCount = 0;
: Ahhhhh();
: }
: else
: {
: UhoUho();
: }
: }
: }
0143デフォルトの名無しさん
2009/03/17(火) 01:31:010144デフォルトの名無しさん
2009/03/17(火) 03:01:36どのメンバかを判断したあと、そのメンバの中を参照したいんです。
0145デフォルトの名無しさん
2009/03/17(火) 03:04:540146デフォルトの名無しさん
2009/03/17(火) 08:34:39ref
0147デフォルトの名無しさん
2009/03/17(火) 08:35:36あれ変更したくない時マーク消す方法はありませんか?
0148デフォルトの名無しさん
2009/03/17(火) 09:30:000149デフォルトの名無しさん
2009/03/17(火) 11:12:13そういうのは普通メンバ変数で管理するもんだろjk
0150デフォルトの名無しさん
2009/03/17(火) 20:31:35ただ、ボタンのメソッドというか処理とかはないです。IDだけで。
なぜなら、CollapsiblePanelていうので、プロパティとして?使ってるからなんじゃないかと思います。
なんでCollapsiblePanelに開いた状態のプロパティがないんだろう・・・初期状態の開閉プロパティはあるのに。
意味がわからない;;助けてください
0151デフォルトの名無しさん
2009/03/17(火) 20:34:110152デフォルトの名無しさん
2009/03/17(火) 20:37:500153デフォルトの名無しさん
2009/03/17(火) 20:43:29まず
if(i=1)
{
ボタンAをクリック
}
という処理はかけますか?
0154デフォルトの名無しさん
2009/03/17(火) 20:45:400155デフォルトの名無しさん
2009/03/17(火) 21:36:31if(i=1)
{
CollapsiblePanelがパカっと開く
}
これでも考えてるのだけど
0156デフォルトの名無しさん
2009/03/17(火) 21:55:500157デフォルトの名無しさん
2009/03/17(火) 22:10:05htmlテキストの取得まではできたのですが
書き込みはどのようにするといいんでしょうか?
テキストセットしてボタンを自動で押させるのだと思うんですが
0158デフォルトの名無しさん
2009/03/17(火) 22:14:34ttp://www.monazilla.org/index.php?e=192
0159デフォルトの名無しさん
2009/03/17(火) 22:15:21WebBrowser でやるならそんな感じ。リクエストを投げるなら、
HttpWebRequest で Post。
0160デフォルトの名無しさん
2009/03/17(火) 22:18:49う〜ん難しそうですね
よく読んでみます
0161デフォルトの名無しさん
2009/03/18(水) 15:09:29プロパティをクラスCから読み書きしたい場合は
クラスAのインスタンスをPublicにしてアクセスするもの
なんでしょうか。定石があれば教えて下さい。
0162デフォルトの名無しさん
2009/03/18(水) 15:26:20public ClassA{ public ClassB b = new ClassB(); }
public ClassB{ public string s = "test"; }
ClassC
{
public ClassC()
{
ClassA a = new ClassA();
Console.WriteLine(a.b.s);
}
}
0163デフォルトの名無しさん
2009/03/18(水) 16:00:08そういうアクセスの仕方が一般的なのかと思いまして。
0164デフォルトの名無しさん
2009/03/18(水) 16:10:540165デフォルトの名無しさん
2009/03/18(水) 16:11:59ClassAがstring型プロパティとして公開するか直接ClassBを公開するかは場合による
0166161
2009/03/18(水) 17:46:13今回の場合、以下のような構成になっています。
・クラスA(メインフォーム。起動時に各種設定値を読み込みクラスBに格納)
・クラスB(設定値を保持する為のクラス。プロパティやフィールドのみ)
・クラスC(クラスAから開かれるオプション画面)
クラスAからクラスCを開いたときに既に読み込まれたクラスBの設定値を
読み込みクラスCの各種コントロールに反映したいのですが、クラスCで
クラスBを初期化すると値まで初期化されてしまい困っています。
こういう場合はどのようにするのが定石でしょうか。
>>161,163は携帯からだったので端折ってしまってすいません。
0167デフォルトの名無しさん
2009/03/18(水) 17:50:36そういう場合はClassAの側でClassCのプロパティを設定してやる方がいいんじゃないかな
ClassCのコンストラクタにClassBの参照渡すとかね
0168161
2009/03/18(水) 18:17:10フォームです。ClassCでプロパティを作成するのは面倒なので
後者の方法についてどのようにするか色々調べてみます。
有り難う御座いました。
0169デフォルトの名無しさん
2009/03/18(水) 19:09:490170デフォルトの名無しさん
2009/03/18(水) 19:36:260171デフォルトの名無しさん
2009/03/18(水) 20:10:29同じ比率で大きくしたいんですけどどうすればいいですか?
最大化する時に一々それぞれのサイズをいじるしかない?
0172デフォルトの名無しさん
2009/03/18(水) 20:25:160173デフォルトの名無しさん
2009/03/18(水) 20:26:00普通はSplitContainerを使う
0174デフォルトの名無しさん
2009/03/18(水) 22:55:24少数型より整数型のほうが速いですか?
0175デフォルトの名無しさん
2009/03/18(水) 22:56:02そんなものはありません
0176デフォルトの名無しさん
2009/03/18(水) 22:59:270177デフォルトの名無しさん
2009/03/18(水) 23:01:45揚げ足を取るだけのためにレスしてるだけだから気にすんな
0178デフォルトの名無しさん
2009/03/18(水) 23:04:150179デフォルトの名無しさん
2009/03/18(水) 23:04:430180デフォルトの名無しさん
2009/03/18(水) 23:05:130181デフォルトの名無しさん
2009/03/18(水) 23:06:550182デフォルトの名無しさん
2009/03/18(水) 23:07:48くやしかったです
0183デフォルトの名無しさん
2009/03/18(水) 23:07:520184デフォルトの名無しさん
2009/03/18(水) 23:08:320185デフォルトの名無しさん
2009/03/18(水) 23:08:370186デフォルトの名無しさん
2009/03/18(水) 23:08:40お前ら弱すぎワロタ
0187デフォルトの名無しさん
2009/03/18(水) 23:08:590188デフォルトの名無しさん
2009/03/18(水) 23:10:040189デフォルトの名無しさん
2009/03/18(水) 23:10:12>少数型
そんなものはありません
とりあえずさらしage
0190デフォルトの名無しさん
2009/03/18(水) 23:11:400191デフォルトの名無しさん
2009/03/18(水) 23:11:420192デフォルトの名無しさん
2009/03/18(水) 23:11:47とりあえずint(System.Int32)で扱えば一番良いはず。
0193デフォルトの名無しさん
2009/03/18(水) 23:12:530194デフォルトの名無しさん
2009/03/18(水) 23:13:400195デフォルトの名無しさん
2009/03/18(水) 23:14:290196デフォルトの名無しさん
2009/03/18(水) 23:15:200197174
2009/03/18(水) 23:15:23どうも
できるだけ32bitのものを使おうとおもってますが
最近はjavaとかも64bit版あったりするんでどんなもんかなと思いまして
0198デフォルトの名無しさん
2009/03/18(水) 23:17:02派生クラス側で変更して、そのメソッドを使いたいんですが
どうしたらいいのでしょうか?
0199デフォルトの名無しさん
2009/03/18(水) 23:19:03実際のところ64bit整数は32bitと同じかそれ未満の速度になるよ
0200デフォルトの名無しさん
2009/03/18(水) 23:20:52とは何だ?
0201デフォルトの名無しさん
2009/03/18(水) 23:22:19値って引数のこと?
0202デフォルトの名無しさん
2009/03/18(水) 23:23:54やりたい事をそれっぽいコードで示してみ
0203174
2009/03/18(水) 23:24:26これらの速度をベンチマークで比較してるとこがあればいいんですけどねえ
0204デフォルトの名無しさん
2009/03/18(水) 23:26:060205デフォルトの名無しさん
2009/03/18(水) 23:26:56って事で、メソッド内のローカル変数だと予想
0206デフォルトの名無しさん
2009/03/18(水) 23:28:49>>60-62と同じような質問にも読める
0207デフォルトの名無しさん
2009/03/18(水) 23:34:070208デフォルトの名無しさん
2009/03/18(水) 23:35:34こういう感じです
派生クラスでメソッドを書き直すしかないですか?
public class A{
int x = 10;
public MethodA(){
Console.WriteLine("ここに表示される値を変えたい→ " + x);
}
}
public class B : A{
new int x = 20;
}
public class DEMO{
public static void Main(){
B b = new B();
b.MethodA(); //ここで20と表示したい
}
}
0209デフォルトの名無しさん
2009/03/18(水) 23:40:05これでどうだ
public class A
{
protected int x = 10;
public void MethodA()
{
Console.WriteLine("ここに表示される値を変えたい→ " + x);
}
}
public class B : A
{
public B()
{
this.x = 20;
}
}
public class DEMO
{
public static void Main()
{
B b = new B();
b.MethodA(); //ここで20と表示したい
}
}
0210デフォルトの名無しさん
2009/03/18(水) 23:49:16おー、これです
ありがとうございます
0211デフォルトの名無しさん
2009/03/19(木) 00:05:490212デフォルトの名無しさん
2009/03/19(木) 00:08:21http://msdn.microsoft.com/ja-jp/library/h6ak8zt5(VS.80).aspx
0214デフォルトの名無しさん
2009/03/19(木) 00:57:010215デフォルトの名無しさん
2009/03/19(木) 01:30:020216デフォルトの名無しさん
2009/03/19(木) 03:00:49出来るのであればご教授お願いします。
0217デフォルトの名無しさん
2009/03/19(木) 03:18:50Main関数の中に配列いれろ
0218217
2009/03/19(木) 03:20:26static void Main(string[] args)
こういう感じね
後選択した文字列ってのが意味解らない
0219デフォルトの名無しさん
2009/03/19(木) 03:22:41HWNDにIntPtr、LPTSTRにStringBuilderを使っとけばおk
詳しいやりかたはぐぐれ
0220デフォルトの名無しさん
2009/03/19(木) 03:26:09System.Diagnostics.Process.Start("app.exe", "args");
こういう事をしたいのか?
0221デフォルトの名無しさん
2009/03/19(木) 03:32:12ありがとうございます。
そのヒントを元に検索し、緑のバイクさんのところのコードを参考にして解決しました。
0222デフォルトの名無しさん
2009/03/19(木) 03:44:03Processじゃないの?
文字列で思い出したのでついでに質問
ブラウザなどで範囲選択している文字列をコピーすることはできないでしょうか?
SendKeyで Ctrl+Cを送ると、なぜかブラウザ名と開いてるページが帰ってきてしまいます。
何かいい方法無いですか?
0223デフォルトの名無しさん
2009/03/19(木) 10:37:38Ctrl+Insertの方が安定してるかも
対象限定ならともかく完全にどんなのでも使えるやりかたってのは存在しない
0224デフォルトの名無しさん
2009/03/19(木) 10:41:19あれを出ないようにしたくはないんですが、他は変更しない時マークを消したいんですが
マークを押した時に出てくる2つの選択肢どっちを選んでも思い通りになりません教えてくだしあ
0225デフォルトの名無しさん
2009/03/19(木) 16:59:26int[][] da = new int[8][]; として後で
da[0] = new int[8];
da[1] = new int[8]; …としていくとできますが
for (i = 0; i < 8; i++)
da[i] = new int[8];
こうするとビルドは出来ますが実行で赤Xがでてエラーになります
for などを使って一括して定義する方法ないでしょうか?
da[0,0] このタイプは使いたくないのです
0226デフォルトの名無しさん
2009/03/19(木) 17:06:080227デフォルトの名無しさん
2009/03/19(木) 17:08:59日本語でOK
0228デフォルトの名無しさん
2009/03/19(木) 17:09:54iを定義してないだけじゃないか?
0229デフォルトの名無しさん
2009/03/19(木) 17:20:25int[][] da = new int[][] { new int []{1,2,3}, new int []{5,6}, new int []{7}, new int []{8,9,10}};
0230デフォルトの名無しさん
2009/03/19(木) 17:22:22var da = new int[][] { new []{1,2,3}, new []{5,6}, new []{7}, new []{8,9,10}};
0231デフォルトの名無しさん
2009/03/19(木) 17:49:43でないですか?iの定義はしてるはずなんですが
>>226
エラーというか画面全体に×が出るあれです
0232デフォルトの名無しさん
2009/03/19(木) 18:13:52直りました、どうもすいません
0233デフォルトの名無しさん
2009/03/19(木) 22:49:45日本を狙う 朝鮮人の原爆ミサイル建造費用は
日本国内の 在日パチンコ屋からの送金
パチンコの市場規模は 年間30兆円
日本の国家予算の 3分の1以上
北朝鮮の国家予算の なんと100年分!
これを在日朝鮮人が 自由に動かし
パチンコマネーを 北朝鮮に送金している
パチンコ屋を 全面営業禁止にしない限り
北朝鮮は制裁など 痛くもカユくもない
在日朝鮮人なら 生活保護もらい放題
毎月二十数万円もらって 毎日遊んで暮らしてる
住宅費・医療費・教育費なんでも無料
税金は1円も払わない 超特権階級(貴族)
民主党は 選挙権まで与える予定
日本は 在日天国 <丶`∀´> ウハウハ〜♪
http://2cchan.ham-radio-op.net/kimuchi.html
0234デフォルトの名無しさん
2009/03/20(金) 00:36:39おお、Ctrl+Insertで望んでいた動きができました
なぜCtrl+Cで上手くいかなかったんだろうなぁ
ありがとうございました
0235デフォルトの名無しさん
2009/03/20(金) 03:02:46実にくだらないのですが、解りません・・・
データグリッドビュー内の全てのRow毎にForeachループを廻したいのですが
やり方が解りません。
どなたか教えては頂けませんか?
宜しくお願い致します。
0236デフォルトの名無しさん
2009/03/20(金) 03:06:15{
うんたらうんたら;
}
0237デフォルトの名無しさん
2009/03/20(金) 20:30:07匿名メソッドのラムダ式の便利さはわかったけど、
ExpressionTreeというのが、どういう場合に使われて便利なのかよくわからない
これは便利だっていうサンプルが乗ってるサイトとかありますか?
0238デフォルトの名無しさん
2009/03/20(金) 22:56:48のExampleの中のWinForms 1 : Simple GL Controlのサンプルを、
ボタンを押したら箱が回るアニメーションが再生/一時停止するようにするには
どうすればいいですか?
箱を描画する処理は作れるんですが、アニメーションを実装する方法が良く分かりません・・
シングルスレッドで処理したいんですが、ApplicationContextクラスを作ったりしなければならない?
0239238
2009/03/20(金) 23:13:52使わず
while(ウィンドウが閉じられていない間)
{
メッセージ処理
ゲームの描画処理とかSleepとか
}
見たいな事はC#では出来ないんでしょうか
0240デフォルトの名無しさん
2009/03/20(金) 23:21:280241238
2009/03/20(金) 23:31:18メッセージ処理をDoEventsでするんですか?
しかしApplication.Run(new Form1());
した後どこから>>239みたいなループに入れば・・?
OnClick()の中にwhile文入れたりとかは駄目ですよね・・?
0242デフォルトの名無しさん
2009/03/21(土) 00:11:27マニアックな例になるけど、
http://ufcpp.net/study/csharp/sp3_expressionsample.html
とか。
あと、C# 4.0のdynamicは内部的に式木使って動的コード生成してる。
いずれにせよ、あんまりエンドユーザー向けの機能ではない。
0243デフォルトの名無しさん
2009/03/21(土) 11:12:18皆、Yahooファイナンスから情報を得ているのが多いみたいですが
あれは?ファイナンスのHTMLを取得して
中を読み取り表示しているだけなのかな?
0244デフォルトの名無しさん
2009/03/21(土) 11:14:560245デフォルトの名無しさん
2009/03/21(土) 11:29:190246デフォルトの名無しさん
2009/03/21(土) 11:47:110247デフォルトの名無しさん
2009/03/21(土) 11:48:41つか金融系でAPIを公開しているところないよなぁ・・・
純金の相場を取得するモジュール作ったけど、仕様がいつ変わるかわからないのが怖い。
0248デフォルトの名無しさん
2009/03/21(土) 11:50:23クエリ文字列。
http://stocks.finance.yahoo.co.jp/stocks/detail/?code=4686.q
なら
code=4686.q
つまりURLの後ろの?以降の文字列。
0249デフォルトの名無しさん
2009/03/21(土) 11:55:39銘柄のコードでですね。
それでHTMLを取得してから
中を自分で作るしかないのか・・・・・
>>247さんの言う通り
HTMLが変わったら終わりですね。
どうするかなぁ〜( ̄ヘ ̄;)ウーン
0250デフォルトの名無しさん
2009/03/21(土) 12:20:33正規表現を設定ファイルに出すとかしておいて、
変更時の修正が最低限に済むようにしとけ。
0251デフォルトの名無しさん
2009/03/21(土) 12:25:08オブジェクトを作るとき、+=と=の場合があるんですがどう違うんですか?
0252デフォルトの名無しさん
2009/03/21(土) 12:47:170253デフォルトの名無しさん
2009/03/21(土) 12:48:45過去10年分の株価時系列データが意外と簡単に取得出来るな
詳しいやり方は忘れた
0254243
2009/03/21(土) 13:04:14ちょっと考えてから作るか作らないか検討します。
0255デフォルトの名無しさん
2009/03/21(土) 13:07:14たぶんそうです。
+=と=の違いってどうなんですか?
0256デフォルトの名無しさん
2009/03/21(土) 13:10:34x = x + y;
x = y;
の違い。
0257デフォルトの名無しさん
2009/03/21(土) 14:14:23おお ありがとう
あと見ておくべきところとしてはこんなところかな?
なんかいろいろあるなぁ
・ASP.NET MVC 1.0
・ASP.NET AJAX
・ASP.NET Dynamic Data
・ADO.NET Entity Framework
・ADO.NET Data Services
・Silverlight 2.0
・Silverlight Controls for ASP.NET
・C#3.0 匿名メソッド
・C#3.0 ラムダ
・C#3.0 初期化子
・C#3.0 匿名型
・C#3.0 暗黙型付け
・C#3.0 拡張メソッド
0258デフォルトの名無しさん
2009/03/21(土) 14:28:45ハンドラーに+=ってイメージがつかないんです(ノ_・。)
0259デフォルトの名無しさん
2009/03/21(土) 14:34:450260デフォルトの名無しさん
2009/03/21(土) 15:05:28delegate void FooHandler(string s);
void Bar(string s) { Console.WriteLine(s); }
void Test() {
FooHandler f = null;
f += Bar; // ..1
f = f + Bar; // ..2
f = (FooHandler) Delegate.Combine(f, new FooHandler(Bar)); // ..3
f("hello");
}
1.2.3 は全部同じ意味。
0261デフォルトの名無しさん
2009/03/21(土) 15:13:23Delegate.Combineメソッドが実行されるってこと?
0262デフォルトの名無しさん
2009/03/21(土) 17:29:32コンパイラが自動的に Delegate.Combine() に変換してくれるのであって、
Delegateクラスで + 演算子が定義されているわけではない。
0263デフォルトの名無しさん
2009/03/21(土) 19:32:070264デフォルトの名無しさん
2009/03/21(土) 20:11:21どういった方法をとるのが適切ですか?
よければサンプルコードの掲載されてるようなURLもいただけるとありがたいです。
0265デフォルトの名無しさん
2009/03/21(土) 21:11:11│
│ _∧∧∧∧∧∧∧∧∧∧_
│ > そ、その動きはトキ! <
│  ̄∨∨∨∨∨∨∨∨∨∨ ̄
│ ≡ ('('('('A` )
│≡ 〜( ( ( ( 〜)
↓ ≡ ノノノノ ノ サッ
0266デフォルトの名無しさん
2009/03/21(土) 22:51:33LINQを学べば自動的にC#3.0の追加要素は全部学べるよ。
0267デフォルトの名無しさん
2009/03/21(土) 23:22:15LINQ TO SQLはキャンセルの方向だからお勧めできないよ
0268デフォルトの名無しさん
2009/03/21(土) 23:33:19>>257 のリストのどこにもLINQ TO SQLとかいてないな。
ひょっとしてLINQ = LINQ TO SQLとか思ってる人なの?
0269デフォルトの名無しさん
2009/03/21(土) 23:39:27そうなのか
知らんかった
理由は何?
0270デフォルトの名無しさん
2009/03/21(土) 23:43:32ある意味 Linq の参考実装だったものがそのまま出てきたような
もの。でもライトでいいんだけどねあれ。実質 SQL Server 限定で
なければ。
DBLinq はどうなってるんだっけか。
0271デフォルトの名無しさん
2009/03/21(土) 23:57:35EntityにはLINQ TO SQLが内包されてるし、
一言でLINQと説明しているC#関連のサイトのほとんどはLINQ TO SQLだからね
0272デフォルトの名無しさん
2009/03/22(日) 00:06:44>一言でLINQと説明しているC#関連のサイトのほとんどはLINQ TO SQLだからね
これは君の脳内ソース。
0273デフォルトの名無しさん
2009/03/22(日) 00:22:14いったい普段どういうサイトを見てるんだろうか
0274デフォルトの名無しさん
2009/03/22(日) 00:29:31紛らわしいが、普通に理解して貰えれば、Entity Frameworkのことを差しているのは明白だと思うんだけど。
EntityFrameworkはSP1になって実装されたものだからC#3.0(VS2008)の特徴として紹介されてる
LINQ関連は、ほとんどLINQ TO SQLっていってるわけ。
実際にC#でLINQ TO SQLでないものを紹介していれ例は少ないよ。
脳内ソースというか、普通にググればわかるレベル。
0275デフォルトの名無しさん
2009/03/22(日) 00:38:370276デフォルトの名無しさん
2009/03/22(日) 00:42:17はいはい(笑)
0277デフォルトの名無しさん
2009/03/22(日) 00:44:56>>266-276 の繋がりがよく分からないあたりから
食い違いがあるのではないでしょうか
0278デフォルトの名無しさん
2009/03/22(日) 00:45:53Entity Framework の Linq 技術周りに関して言えばそれは
Linq to Entities だ。EDM に対してのクエリである ObjectQuery の
構築で使用している。
Linq to Entities と Linq to SQL は生まれも実装もラインも別。マジで。
つながりでいえば Linq のプロバイダとして実装されているぐらいしか
共通点はない。
0279デフォルトの名無しさん
2009/03/22(日) 00:45:590280デフォルトの名無しさん
2009/03/22(日) 00:46:05>>276
はいどうぞ
>また、VS 2008 SP1&.NET Framework 3.5 SP1では
>「ADO.NET Entity Framework(ADO.NETエンティティ・フレームワーク)」
>(以降、Entity Framework)という新しいデータベース・アクセス・テクノロジが追加されている。
http://www.atmarkit.co.jp/fdotnet/special/vs2008sp1/vs2008sp1_03.html
0281デフォルトの名無しさん
2009/03/22(日) 00:50:35だから何?って感じなんだがwww
何の証明にもなってない
0282デフォルトの名無しさん
2009/03/22(日) 00:51:16>>278は華麗にスルー?
0283デフォルトの名無しさん
2009/03/22(日) 00:52:39うん
だから何?って感じだし
なんでそんなに必死なのかさえ理解できないし
0284デフォルトの名無しさん
2009/03/22(日) 00:54:20それが2chです
0285デフォルトの名無しさん
2009/03/22(日) 00:55:09その記事ではEFとLINQ TO SQLをちゃんと区別してるんだから、
そうなると誰もそれには異論は唱えてないことになると思うのだけど
IDがないとわかんね。
0286デフォルトの名無しさん
2009/03/22(日) 00:56:27>LINQ To EntitiesはEDMのモデル向けの“LINQ To SQL”といってもよいものだが、
>LINQ To SQLにはない機能(例えば、複数のテーブルから1つのエンティティを作成する機能など)が搭載されている。
>EDMに基づくLINQ To Entitiesは、データベースやオブジェクトの変更にも強いなどのメリットがあるため、
>今後はLINQ To Entitiesの方が(LINQ To SQLよりも)より多くの場面で活用されていくのではないだろうかと筆者は予測している
0287デフォルトの名無しさん
2009/03/22(日) 01:12:590288デフォルトの名無しさん
2009/03/22(日) 01:15:53君か、引っ掻き回してたのは
0289デフォルトの名無しさん
2009/03/22(日) 01:19:00勘違いしてた人はいるみたいだけどね
0290デフォルトの名無しさん
2009/03/22(日) 01:19:460291デフォルトの名無しさん
2009/03/22(日) 01:25:581 Linq To SQLはLinq To Entityとは別物 ここまではok?
→http://www.atmarkit.co.jp/fdotnet/special/vs2008sp1/vs2008sp1_03.html
2 VS2008と.NET3.5は同じ時期にリリースされた ここまではok?
→http://itpro.nikkeibp.co.jp/article/COLUMN/20080113/290936/
3 Linq To SQLは.3.5に搭載されている ここまではok?
→http://d.hatena.ne.jp/atsushieno/20081103/p1
4 Linq To Entity(Entity Framework)は3.5 SP1で搭載された ここまではok?
→http://d.hatena.ne.jp/atsushieno/20081103/p1
従って3の時点でリリースされていないLinq To Entity(Entity Framework)を
C#の特徴として紹介できない(将来の機能の紹介は別)。 ここまではok?
0292デフォルトの名無しさん
2009/03/22(日) 01:31:57同感
だが、メソッドのネーミングがSQL由来なので
使った事が無い人はSQLの利用がメインだと思うかもね
0293デフォルトの名無しさん
2009/03/22(日) 01:34:27SP1は既にリリースされてるわけで将来の機能というわけではないよ。
ただ、議論をする上で扱いは決めておく必要はある。
というわけで含まない前提でどうぞ。
0294デフォルトの名無しさん
2009/03/22(日) 01:40:49普通に解釈すれば、3時点から見た「将来」と読めるから、
その突っ込みはズレてると思うぞ?
0295デフォルトの名無しさん
2009/03/22(日) 01:43:483の時点で紹介できない
どちらが普通かは難しいけが後者で了解
0296デフォルトの名無しさん
2009/03/22(日) 01:48:39少なくともLinqToEntitiesを解説したものは圧倒的に少ないな
どっちにしろSQLのほうはなくなるらしいから学ぶならEntitiesのほうだろ
0297デフォルトの名無しさん
2009/03/22(日) 02:37:11第一、Linqの説明で一番多いのはLINQ to Objectsだし。
SQL系に隠れてスルーされ気味ですが、非常に有益な技術です。
0298デフォルトの名無しさん
2009/03/22(日) 03:49:080299デフォルトの名無しさん
2009/03/22(日) 10:18:18ないと絶対に困るレベルのプログラムの基本部品だ
LINQ to SQLとかEntityなんてのはそれを応用して作った
ただのORマッパーだろ
LINQという技術の射程の長さは表れてるけど
それがLINQの代表というわけじゃない
0300デフォルトの名無しさん
2009/03/22(日) 10:27:11まあ、XML操作が必要な作業してるんなら、
LINQ to XMLはかなり使いやすいXMLライブラリだと思う。
>>299
応用というか、同じ書式で書けるってのがポイントか。
0301sage
2009/03/22(日) 10:59:30開発環境:VisualStudio2008 Pro
開発言語:C# 3.0
AccessデータベースをOLEで接続し、
データバインドしたDataGridViewでデータを表形式で表示しつつ、
DataGridViewの右横にデータバインドしたテキストボックスを配置し、
DataGridViewでデータを選択し、それをテキストボックスで
データ更新が出来る名簿ソフトを作成しています。
それに、DataViewのRowFilterでDataGridViewでのデータの絞込みが出来る
用に機能追加し、またデータバインドのソースをDataViewにして、絞込みした
状態でデータ更新ができるようにしようとしました。
しかし、
RowFilterでフィルタをかけている状態で、下記のコマンドをボタンで更新処理を
実行しようとすると、DataGridのフォーカスを手動で変更をしないとデータベースが
更新されないのです。
フォーカスを移動しなくても更新されるようにEndCurrentEdit
メソッドを事前にかけているのですが、何かコマンドが足りないのでしょうか?
恐れ入りますが、ご教示いただけないでしょうか?
以下コマンド-----------------
int iRow; //更新したレコード数
this.BindingContext[dbCustomer1, "M_Customer"].EndCurrentEdit();
iRow = oleDbDataAdapter1.Update(dbCustomer1, "M_Customer");
MessageBox.Show("更新 " + iRow + "件");
-----------------------------
0302デフォルトの名無しさん
2009/03/22(日) 11:06:11これって冗長じゃないですか?いくつも同じ名前のメソッドが増えてなんだか回りくどいような気がします。
Pythonだとデフォルト引数、名前付き引数がサポートされてるので、
それに慣れていたせいもあってかいまいち理解できません。
オーバーロードの方が優れている点ってあるのでしょうか?
それとも、そもそもデフォルト引数を使うような事自体が珍しいんでしょうか。
0303デフォルトの名無しさん
2009/03/22(日) 11:17:120304デフォルトの名無しさん
2009/03/22(日) 11:58:124.0からデフォルト引数と名前付き引数に対応するよ
0305デフォルトの名無しさん
2009/03/22(日) 13:59:30今ラジアンで角度を処理するクラスを作っているのですが、次のような動作をさせたいんです
1.値を代入したときは値を正規化してからいれる(負値だったら正値に、2π以上だったら2πで剰余算)
2.値を参照するときはそのまま参照
3.floatと同じように扱える
プロパティを使って実装すると次のようになりますが
class RegularizedAngle
{
private float InAngle;
public float Angle
{
get { return Angle; }
set
{
//Angleが負値だったら正値に
if (value < 0) Angle = (float)(Math.PI * 2f) + Angle;
//valueが2π以上だったら2πで剰余算
Angle = value % (float)(Math.PI * 2f);
}
}
}
これを普通のfloatと同じように扱いたいんです。たとえば・・・
RegularizedAngle Ang = (float)(Math.PI * 2f); //すなわち6.28・・・の代入
Ang += 1; //代入したとき内部で正規化がおこなわれて1になる。
Ang += Ang; //これで2になる?
こんなかんじで見た目を組み込み型みたいにしたいんです。
しかし上記のプロパティをつかった方法だとアクセスするときに
Ang.Angle としなければなりませんし、宣言するときにはnewが必要です
組み込み型を継承したクラスを作ればよいのでしょうか・・・?
0306デフォルトの名無しさん
2009/03/22(日) 14:04:08現在↑のページの
1.3 Visual C# による実践コンポーネント指向プログラミング
簡易ドローツールを作成しているところなのですが
手順通りに作成しても、ソースをコピーしても
Windows Form Designer generated code
の部分でエラーを吐いてうまく作成ができません
これを解決する為のお知恵をお貸しいただけないでしょうか
お願いいたします。
0307デフォルトの名無しさん
2009/03/22(日) 14:08:45//Windows Form Designer generated code
とコメントアウトすればいいのかな?
0308デフォルトの名無しさん
2009/03/22(日) 14:18:32いえ、そうしてもエラーが増えるばかりで、そうしていいやら・・
0309デフォルトの名無しさん
2009/03/22(日) 14:25:03VS2002/2003の頃の記事だから、percial class じゃないんだな。
そこはおそらく、これだ。画面は自分で準備しろということじゃないかな。
#region Windows Form Designer generated code
・・・・
#end region
をIDE上で閉じてるイメージ。
0310デフォルトの名無しさん
2009/03/22(日) 14:29:20演算子オーバーロードしまくれば大体望みの動作になると思うよ
でも普通にプロパティアクセスする方が分かりやすいよ
0311デフォルトの名無しさん
2009/03/22(日) 14:29:43それは手順通りではないでしょ。
追加するのは、イベントハンドラの部分。
0312デフォルトの名無しさん
2009/03/22(日) 14:30:13デフォルト引数の値を変更したとき、
利用者側の再コンパイルが必要って言うデメリットもあるから今まで対応してこなかった。
さすがに開発者からの要望に折れて、4.0で実装。
0313デフォルトの名無しさん
2009/03/22(日) 14:32:21レスありがとうございます
「pertial識別子が型hにありません。この型に別のpartial宣言が(ry」
までたどり着けました
0314デフォルトの名無しさん
2009/03/22(日) 14:33:15あんまり賢い方法ではないってことですね・・・。
プロパティで実装してみます。ありがとうございました。
0315デフォルトの名無しさん
2009/03/22(日) 14:35:48駄目だこりゃ。
どうしてもこの教材である必要がなければ、他のあたって。
0316デフォルトの名無しさん
2009/03/22(日) 14:38:41私が根本的に勘違いしているみたいですね・・・
すみませんとりあえず他のをあたります
0317315
2009/03/22(日) 14:42:35Form1.Designer.csの内容をこのサンプルから省いて、
Form1.csに追加が必要なメンバ変数とイベントハンドラの記述をすれば
動くので、原理的に難しい話では全くないんだけど、
それができる人は、そもそもこのチュートリアルをやる必要がありません。
0318デフォルトの名無しさん
2009/03/22(日) 14:45:51普通に演算子オーバーロードすれば良いと思う。
newでインスタンス作りたくなければ、構造体にすればいい。
けど、フィールドの初期化しなきゃいけないので、宣言だけはnewで我慢かなぁ
0319デフォルトの名無しさん
2009/03/22(日) 14:50:26floatと完全互換ならこの程度で済みそうだけど、複雑になるとoverloadの山になるな。
struct RegularizedAngle {
float inAngle;
public RegularizedAngle(float f) { inAngle = f; }
public float Angle {
get { return inAngle; }
set { inAngle = value; } // いろいろ省略
}
public static implicit operator RegularizedAngle(float f) {
return new RegularizedAngle(f);
}
public static implicit operator RegularizedAngle(double f) {
return (RegularizedAngle) (float) f;
}
public static implicit operator float(RegularizedAngle ra) {
return ra.Angle;
}
public override string ToString() { return Angle.ToString(); }
}
--
static void Main() {
RegularizedAngle x1 = 12.3;
RegularizedAngle x2 = 10;
float f = x1 * 3;
RegularizedAngle x3 = x1 * x2;
0320デフォルトの名無しさん
2009/03/22(日) 15:01:40ちびっと訂正
>public RegularizedAngle(float f) { inAngle = f; }
public RegularizedAngle(float f) { inAngle = 0; Angle = f; }
0321デフォルトの名無しさん
2009/03/22(日) 15:46:43わかりやすい気がするのはなぜですか?
linqtがfromから始まるのが気持ち悪いからですか?
0322デフォルトの名無しさん
2009/03/22(日) 15:46:54ありがとうございます。参考になります。
しかし完全に理解するのは難しそうですね・・・。
それの上にさらに正規化処理を入れなければならないのですよね・・・。
0323デフォルトの名無しさん
2009/03/22(日) 16:01:10クエリ式が分かりにくいと感じるなら拡張メソッドでLINQやればいい
fromからなのはインテリセンス効かせるため
0324デフォルトの名無しさん
2009/03/22(日) 16:02:59それもLINQ
0325デフォルトの名無しさん
2009/03/22(日) 16:08:46SQL大好き人間以外は使う必要の無いものだよ
SQL大好き人間でも最終的には拡張メソッドに適応すべきだろう
0326デフォルトの名無しさん
2009/03/22(日) 16:30:240327デフォルトの名無しさん
2009/03/22(日) 16:37:16機能としては、ADO.NETのDataTable.Select();が、より簡単に使えるようになりました的な感じなのね
メモリ上にデータをもって検索するとか、xmlから検索するとかに便利そうね
つか配列を検索しやすくしましたって感じ?
データベースから引っ張ってくるのは結果セットだけ取得して、
それを単に表示させるだけのほうが再計算入るよりパフォーマンスがよさそうなんだがそのあたりはどうなんだろう
0328デフォルトの名無しさん
2009/03/22(日) 16:44:47データベースに問い合わせされ結果セットだけが取得されるんだよ
0329デフォルトの名無しさん
2009/03/22(日) 16:59:20letとか多重from使おうとするとメソッド形式ではちと厳しい。
>>326
リンク。
linkと同じ音で読めってさ。
0330デフォルトの名無しさん
2009/03/22(日) 17:05:29難しい処理はストアドに記述してしまうし、
ある程度の決まった処理ならxsdファイルのDataSetに記述したほうが楽そうだけど、
DataSetでは、where文を動的に生成することができなかったから、
それが簡単に記述できるようになるのなら確かに便利かもしれん
0331デフォルトの名無しさん
2009/03/22(日) 17:28:33変えようとしてるのですが
iの中にはint で18 が入ってる
textBox1.Font.Size = i.ToString();
でどうもうまくいきません、どう記述したらよいでしょうか?
0332デフォルトの名無しさん
2009/03/22(日) 17:32:380333デフォルトの名無しさん
2009/03/22(日) 17:34:190334デフォルトの名無しさん
2009/03/22(日) 17:35:31すいません、ありがとうございます、リッチテクストでも同じでしょうか?
0335デフォルトの名無しさん
2009/03/22(日) 19:39:34ダウンロードしてインストールして・・・
そこからどうすればいいのか・・・
0336デフォルトの名無しさん
2009/03/22(日) 20:42:350337デフォルトの名無しさん
2009/03/22(日) 20:51:11new Regex(@"\d+").Match(str);
0338デフォルトの名無しさん
2009/03/22(日) 20:53:460339デフォルトの名無しさん
2009/03/22(日) 22:01:47簡単にsqlが取得できるのはすごいね
ただアドホッククエリは今までと同じようにEntitySQLとか使って取得するのね
結局は型無しになってしまうし・・・
簡単にクエリ書けるのはいいけど、ソースコードの中でばんばん書けてしまうと、
mvcモデルの原則に反するんじゃないのかな?
普通に使用するなら型付きDataSetのほうが楽でわかりやすい気がするんだけど、
そうなるとLinqToEntitiesを導入する最大の利点ってなんなんだろう・・・
DBデータの取得、更新を行う再利用可能なクラス(Model)が作りやすいってことなのかな?
0340デフォルトの名無しさん
2009/03/22(日) 22:23:240341デフォルトの名無しさん
2009/03/22(日) 23:26:37ビジネスロジック層とデータ層の間を繋ぐもの的な位置づけ。
0342デフォルトの名無しさん
2009/03/23(月) 01:08:46>>305
class RegularizedAngle {
private float InAngle;
public float Angle {
get {
return this.InAngle;
}
set {
if (value <= 0.0) // valueが負値だったら正値にする正規化
this.InAngle = value + (int)(value / (Math.PI*2.0f) + 1.0) * Math.PI*2.0f;
else // valueが正値だったら2πで剰余算する正規化
this.InAngle = value - (int)(value / (Math.PI*2.0f)) * Math.PI*2.0f;
}
}
}
0343305
2009/03/23(月) 02:13:02//角度を格納するが強制的に正規化される型
//doubleとしてアクセスできる
public class RegularizedAngle
{
private double InAngle;
public RegularizedAngle()
{
InAngle = 0;
}
public RegularizedAngle(double i)
{
InAngle = 0;
Angle = i;
}
public double Degree
{
get { return StgUtil.RadToDeg(InAngle); }
set { Angle = StgUtil.DegToRad(value); }
}
private double Angle
{
get { return InAngle; }
set
{
//6.28以上だったら6.28で剰余算
if (value > StgUtil.PIx2) value %= StgUtil.PIx2;
InAngle = value;
}
}
0344デフォルトの名無しさん
2009/03/23(月) 02:16:15public static bool operator >(double l, RegularizedAngle r)
{ return AngCheck(l, r.Angle); }
public static bool operator >(RegularizedAngle l, double r)
{ return AngCheck(l.Angle, r); }
public static bool operator >(RegularizedAngle l, RegularizedAngle r)
{ return AngCheck(l.Angle, r.Angle); }
//lはrより右方向
public static bool operator <(double l, RegularizedAngle r)
{ return !AngCheck(l, r.Angle); }
public static bool operator <(RegularizedAngle l, double r)
{ return !AngCheck(l.Angle, r); }
public static bool operator <(RegularizedAngle l, RegularizedAngle r)
{ return !AngCheck(l.Angle, r.Angle); }
//lから右回りと左回り、どっちがrへの移動量がすくない?
private static bool AngCheck(double l, double r)
{ return (l + r >= 0); } //ここの処理をなんて書いていいのかわかりません。。。
//doubleを代入された場合
public static implicit operator RegularizedAngle(double f)
{ return new RegularizedAngle(f); }
//doubleを代入された場合
//doubleとして参照された場合
//演算子の動作もdoubleに準拠
public static implicit operator double(RegularizedAngle l)
{ return l.InAngle; }
public override string ToString()
{ return Angle.ToString(); }
}
ぐぐってみるとY座標から右回り左回りを算出するという手段がありました。おそらく0度が真右になるからできるんだと思いますが、
このクラスは角度だけを扱いたいので角度(ラジアン)だけから算出したいのです。何か良い方法があったらどうかお教えください。
0345デフォルトの名無しさん
2009/03/23(月) 11:08:45サーバーエクスプローラからTBを選択してForm上にDRAG&DROPすると
oleDbDataAdapter1が作成されるのですが、同じmdbの別TBを
DRAG&DROPすると別のoleDbDataAdapter2が作られるのですが、
二つのoleDbDataAdapterを作成しなければいけないのでしょうか?
oleDbDataAdapter1だけにはできないんでしょうか?
C#2003です、よろしくお願いします
0346デフォルトの名無しさん
2009/03/23(月) 11:33:110347デフォルトの名無しさん
2009/03/23(月) 12:42:500348デフォルトの名無しさん
2009/03/23(月) 17:56:520349デフォルトの名無しさん
2009/03/23(月) 18:22:150350デフォルトの名無しさん
2009/03/23(月) 19:36:18System.Windows.Forms.Formクラスの
FormBorderStyleプロパティをNoneにし、
WindowStateをMaximizedにすると
タスクバーがフォームに隠れてしまうのは仕様ですか?
またFormBorderStyleをNoneにしたまま
これを回避する方法はどなたかご存知ですか?
0351デフォルトの名無しさん
2009/03/23(月) 20:39:37とりあえずスクリーンのWorkingAreaを
MaximizedBoundsに設定したらいいんじゃない?
0352デフォルトの名無しさん
2009/03/23(月) 20:56:08から作業領域取得して設定
0353350
2009/03/23(月) 21:37:29で修正できました。
ありがとうございます。
0354デフォルトの名無しさん
2009/03/24(火) 16:25:49はb*cの結果とaを足してくれるんですか?
0355デフォルトの名無しさん
2009/03/24(火) 16:31:410356デフォルトの名無しさん
2009/03/24(火) 16:32:23試してみればいい。
0357デフォルトの名無しさん
2009/03/24(火) 17:46:10ありがとうございました
0358デフォルトの名無しさん
2009/03/24(火) 17:57:07は
a = a + (b * c);
だけど
a += b + c;
は
a = (a + b) + c;
足し算だから結果は変わらない
これは試してわかるようなレベルじゃない
0359デフォルトの名無しさん
2009/03/24(火) 18:02:190360デフォルトの名無しさん
2009/03/24(火) 18:05:05は?
0361デフォルトの名無しさん
2009/03/24(火) 18:07:480362デフォルトの名無しさん
2009/03/24(火) 18:10:05MSDNで「C# の演算子」調べろよ
0363デフォルトの名無しさん
2009/03/24(火) 18:16:510364デフォルトの名無しさん
2009/03/24(火) 18:25:10{
Console.WriteLine(>>363);
}
0365デフォルトの名無しさん
2009/03/24(火) 18:30:23こいつ馬鹿
a = a + ( b + c )
だろ
0366デフォルトの名無しさん
2009/03/24(火) 19:20:46括弧で明示するのが基本だと思う。
&&が||より優先されるために条件式を
条件1 || 条件2 || 条件3
みたいに書く(条件1,2,3は各々&&で条件を連結している)とか、
優先順位が関係する定型的な書き方は知っておくべきだけど。
0367デフォルトの名無しさん
2009/03/24(火) 19:24:14a += 10 >> 1; // a == 15
a = a + 10 >> 1; // a == 10
つまり a += x op y; は a = a + (x op y);
勝手に問題をすりかえて話をこじらせた挙句、
数行のコードを試せばわかることを「試してもわからない」という
文面とともに間違いを教える>>358が謎過ぎる。
0368デフォルトの名無しさん
2009/03/24(火) 19:24:560369デフォルトの名無しさん
2009/03/24(火) 19:37:310370デフォルトの名無しさん
2009/03/24(火) 19:43:53上原の負担は減るんじゃなかろうか
0371デフォルトの名無しさん
2009/03/24(火) 19:59:180372デフォルトの名無しさん
2009/03/24(火) 20:00:25はしのえみのほうがいい?
0373デフォルトの名無しさん
2009/03/24(火) 20:48:53↑にある↓の意味はどういうことですか?
if((k & WinApi.HOTKEYF_ALT) != 0)
ret |= Keys.Alt;
if((k & WinApi.HOTKEYF_CONTROL) != 0)
ret |= Keys.Control;
if((k & WinApi.HOTKEYF_SHIFT) != 0)
ret |= Keys.Shift;
return ret;
0374デフォルトの名無しさん
2009/03/24(火) 20:54:44AltとControlとShiftのビットを立てている
0375デフォルトの名無しさん
2009/03/24(火) 21:13:02ビット演算でググれ。
0376デフォルトの名無しさん
2009/03/24(火) 21:30:33フラグの使い方の悪い見本だな
0377デフォルトの名無しさん
2009/03/24(火) 21:57:060378デフォルトの名無しさん
2009/03/24(火) 22:01:380379デフォルトの名無しさん
2009/03/24(火) 22:07:45そういう風におっしゃるのなら、
>>376さんは>>373のような処理が必要なときはどんなコードにしているのでしょうか?
興味があるのでご教授ください
0380デフォルトの名無しさん
2009/03/24(火) 22:19:500381デフォルトの名無しさん
2009/03/24(火) 22:20:580382デフォルトの名無しさん
2009/03/24(火) 22:27:52どうせくだらない理由だから気にスンナ
0383デフォルトの名無しさん
2009/03/24(火) 22:43:03ありがとうございました
0384デフォルトの名無しさん
2009/03/24(火) 22:45:050385デフォルトの名無しさん
2009/03/24(火) 23:02:260386デフォルトの名無しさん
2009/03/24(火) 23:03:38if((f & Flag.Hoge) == Flag.Hoge)
と行うという例がMSの[flags]関連のどっかに書いてあった。
0387デフォルトの名無しさん
2009/03/24(火) 23:09:23!(1 = 0)
0388デフォルトの名無しさん
2009/03/24(火) 23:10:51ありがとうございました
0389デフォルトの名無しさん
2009/03/24(火) 23:10:520390デフォルトの名無しさん
2009/03/24(火) 23:34:19フォームを最大化してノーマルに戻して、
フォームのLocationをドラッグで移動したときに
フォームのあった矩形領域がデスクトップの左上からの画像になって
再描画されないんだけど
(ゴミ箱のアイコンが左上にあったとしたら、
フォームのあった位置の左上がゴミ箱の画像。背景もしかり)
考えられる原因って誰か知ってます?
また強制的にFormの裏側をリフレッシュする方法ってありますか?
0391デフォルトの名無しさん
2009/03/24(火) 23:36:560392デフォルトの名無しさん
2009/03/24(火) 23:38:450394デフォルトの名無しさん
2009/03/24(火) 23:49:56このように呼び出し元のクラスを参照し、値を書き換えるクラスを作りました。
class Target
{
private int member;
Process pro = new Process(10,2)
public void Do()
{
pro.OverwriteTargetMember(this)
}
}
//目標値tgtまでvolずつ加算する
class Process
{
int tgt,vol;
public Process(int tgt,int vol)
{
this.tgt = tgt;
this.vol = vol;
}
public void OverwriteTargetMember(Target tgt)
{
if(tgt.member != tgt) tgt.member+= vol;
}
}
target.do()するたびにtargetのmember2 4 6 8 10 10 10・・・となる処理です。
本当はProcessをキューに入れて数値の変動を予約できるようにしています。
ですが、このような実装はあまりオブジェクト志向の設計思想に則していない様に感じられます。
このスレッドのみなさんでしたらどのような実装を行いますか?
どうかお聞かせください。
0395デフォルトの名無しさん
2009/03/24(火) 23:53:360396デフォルトの名無しさん
2009/03/24(火) 23:56:180397デフォルトの名無しさん
2009/03/24(火) 23:56:54Target=メンバーを書き換えたいクラス
Process=引数に渡されたTargetのメンバーを書き換えるクラスです。
要約するとTargetがDo()するたびに数値を変動させたいのですが、
その動作をキューに入れて管理したいのです。
たとえば
0から1ずつ加算して10になるというパラメータをもったProcessクラスと
10から2ずつ加算して20になるというパラメータをもったProcessクラスを順にキューに入れると、
Target.Do()の結果が実行するごとに
1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 20 20 20・・・
となるようにしたいのです。
0398デフォルトの名無しさん
2009/03/25(水) 00:23:07( ) ゝ/ __ヽ
| | | / | �h
, ── 、 __ i >>376 |-||
/ ヽ / ヽ (|| | /^ヽ
/ /)ノ)ノ // \∧/ ノ /ヽノ
| >>393 ///⌒ヽ / , ─/ ̄ ̄`─ ´ / ______/
ヽ /)─| ミ| / / ,-─ ′ ─────/
∠ (| |. ヽ__ノ> ( ̄ノ/ / −、 /
∠_ / ` /^\__ >  ̄ |─── |─┬┘ |───/
ノ (__ ヽ___ノ─┴ 、__ノ ̄ ̄/
/ ̄ ̄\┌─ ′ /^−、 -、_/ /_____ /
/ ̄ ̄ ̄⌒ヽ ( 丿 / | /─────/
\ / ̄/ (__ノ ̄ ̄ // /
\/ / // /
0399デフォルトの名無しさん
2009/03/25(水) 00:25:19Processにtgt(目標値)を渡す意味も、そもそもProcessをクラス化する意味も
読み取れない
パラメタをvolだけでなく複数にするなら構造体で十分
0400デフォルトの名無しさん
2009/03/25(水) 00:31:40申し訳ありません。情報が足りませんでした。
私の作った処理でjはキューした時点では値は確定していません。
キューが実行された瞬間にさらに処理をして値を設定するようにしたいのです・・・。
0401デフォルトの名無しさん
2009/03/25(水) 00:37:42なら引数にrefを付ける
でも、俺なら3つクラス作って別のクラスでpublic void Do()を実装する
0402デフォルトの名無しさん
2009/03/25(水) 00:38:17{
for(int i = 0; i < 10; i++)
{
yield return i;
}
for(int i = 10; i < 20; i += 2)
{
yield return i;
}
while(true)
{
yield return 20;
}
}
これが一番シンプルだと思うけど
可変の部分があるならその部分を引数にすればいい
0403デフォルトの名無しさん
2009/03/25(水) 00:51:08C#でクラスを引数に設定した場合は参照渡しだったと記憶していますが、
あえて明示的にrefをつけるというのはどのような意図を以て行うのでしょうか?
また、3つクラスを作ると仰られましたが、どのように分割するのでしょうか?
Processにあたるクラスは、いろいろな種類を作ろうと考えています。
今回挙げた単純な加算だけではなく、四則、べき乗、などなど・・・。角度を扱う可能性もあります。
もしよろしければご教示お願いいたします。
>>402
かなり私の求めている正解に近いものかもしれません。
頭の中にあった蟠りが一つ解けて、理解が深まりました。
IEnumberableを使うということは考えてもいませんでした。
お答えくださり本当にありがとうございます。
0404デフォルトの名無しさん
2009/03/25(水) 00:54:450405デフォルトの名無しさん
2009/03/25(水) 01:09:07オブジェクトを渡すときは参照の値渡し
違いはググれ
> 今回挙げた単純な加算だけではなく、四則、べき乗、などなど・・・。角度を扱う可能性もあります。
どこまで裾野を広げたいのか分らないが,四則"計算",べき乗"計算"と計算という概念で分類すればいいんでないか?
あと,角度を"扱う"っていうのが,どういう意味をさしているのか具体的に言わないと扱えないぞい
0406デフォルトの名無しさん
2009/03/25(水) 01:18:45角度でラジアンを持ちますが、ラジアンでπ2以上または-π2以下になった場合に丸められます。オーバーフロー防止です。
ですが、よくよく考えてみれば>>402さんの処理でreturnするときにreturn i % (Math.PI * 2);などと記述すればよいのかもしれませんね。
このような稚拙な質問に丁寧にお答えくださり本当にありがとうございました。
0407デフォルトの名無しさん
2009/03/25(水) 03:44:540408デフォルトの名無しさん
2009/03/25(水) 04:57:21stateパターンのようなことをやりたかったんだろうか?
0409デフォルトの名無しさん
2009/03/25(水) 07:08:14勘違いするやつが現れないように代わりに答えておこうか。
まず先に一言、[Flags] enum に限れば「(e & MyEnum.Foo) != 0」は基本 NG だが
元の例はそもそも [Flags] enum じゃないから関係ない。
で、enum の話しに戻すと、
[Flags]
enum MyEnum { A = 0x1, B = 0x2, AB = A | B }
var e = MyEnum.A;
if((e & MyEnum.AB) != 0) {
Console.WriteLine("I'm AB.");
if((e & MyEnum.AB) != MyEnum.AB) Console.WriteLine("Really?")
}
例え Flags が付いていたとしても、全ての定数が排他とは限らない。
結合定数を定義することは十分有り得るし、Keys のような特殊な例もある。
「... != 0」と書けるのは、事前に列挙定数の具体値に関する知識を持っていて、
大丈夫であることが分かっている場合のみ。
0410デフォルトの名無しさん
2009/03/25(水) 07:36:31私の書いたソースではあれがネストしていたんです。
呼び出し元の呼び出し元の呼び出し元の・・・という形で参照しているので、
可読性が大変悪く、動作の高速性よりソースの可読性や整備性を重視したオブジェクト指向の設計思想に反していると感じたのです。
0411デフォルトの名無しさん
2009/03/25(水) 09:27:24それに従ってさえいればいいコードが書けるというような
万能の方法論では全く無いからな
0412デフォルトの名無しさん
2009/03/25(水) 10:53:22状態 通常 最大化
サイズ (800,600) (1280,1024)
Formが通常→最大化され、閉じられた場合に
最大化される前のサイズをapp.configにひとつの設定要素として保存させたいのですが、
最大化された後のサイズが保存され、うまくいかないです・・・
Form1_Resizeのイベントでは無理でしょうか?
0413デフォルトの名無しさん
2009/03/25(水) 10:57:320414デフォルトの名無しさん
2009/03/25(水) 10:59:37瞬殺されました
どうもありがとです
0415デフォルトの名無しさん
2009/03/25(水) 23:05:24別スレッドのContextに設定されたフォームが閉じられた時、そこに使用されていたControlを再利用したいのですが。
0416デフォルトの名無しさん
2009/03/26(木) 10:23:18System.Console.ReadLine()
を使うと、実行が止まりますよね。
これは何の効果で止まってるんですか?
ReadLineの中で何らかのループが回ってるんでしょうか
それともsleepみたいなコトになってるんでしょうか
独学でずっとやってきて体系的に学んでいないので思い出したように気になりました
良く意味が分からないかもしれませんがよろしければエスパーしてください。
0417デフォルトの名無しさん
2009/03/26(木) 10:43:580418デフォルトの名無しさん
2009/03/26(木) 11:42:530419デフォルトの名無しさん
2009/03/26(木) 11:43:58VBの場合
case 1,2,5-8
のように一文で複数の判断をさせることができますが
C,C#では一つの判断しかできませんよね?
これはif文の羅列で処理するしかないのでしょうか?
C#で代わりに同じことをやらせる効率のよい方法ないでしょうか?
0420デフォルトの名無しさん
2009/03/26(木) 12:03:22工夫次第かな
int a[8] = {1,1,0,0,1,1,1,1};
if (a[i]) hoge();
とすれば1,2,5-8にヒットする
0421デフォルトの名無しさん
2009/03/26(木) 12:05:30ありがとうございます
0422デフォルトの名無しさん
2009/03/26(木) 12:09:07OSは標準入力からデータの読み出しが完了するまで
ReadLineを呼んだプロセスの実行を停止してる。
完了したら実行を再開させる。
納得いかなければ マルチタスク ブロッキングI/O プロセス+状態遷移
なんかでぐぐっておくれ。
0423デフォルトの名無しさん
2009/03/26(木) 15:39:07case 1: case 2: case 5: case -8:
0424デフォルトの名無しさん
2009/03/26(木) 15:48:27その書き方でいいんですか
5-8のところが不思議な感じですね
これはjavaとかでは無理でC#特有の書き方なんですかね?
とりあえずやってみます ありがとうございました
0425デフォルトの名無しさん
2009/03/26(木) 15:49:04ありがとうございます。
ググってみます。
0426424
2009/03/26(木) 15:53:31C系統ではOKみたいですね
どうもです
0427デフォルトの名無しさん
2009/03/26(木) 15:55:230428423
2009/03/26(木) 15:56:220429デフォルトの名無しさん
2009/03/26(木) 15:58:22全部だめなの?
0430デフォルトの名無しさん
2009/03/26(木) 16:00:08試してみること、ドキュメント探してみること、いろいろやろうぜ。
0431デフォルトの名無しさん
2009/03/26(木) 16:02:320432デフォルトの名無しさん
2009/03/26(木) 16:15:10と複数並べるのは確認できました
5-8の範囲はさすがに無理みたいですね
0433デフォルトの名無しさん
2009/03/26(木) 20:06:31これの仕組みがわからないんですが
メソッドの中にドーンと書いてあるんですが
何に対してのエラーを識別するんですか?
指定範囲内のコードで例外があったらとかならわかるんですが
これより前後に書いたコードに対して適用されるとかなんですか?
0434デフォルトの名無しさん
2009/03/26(木) 20:21:32これはなんて書いてあるかわかる?
わかればOK!
0435デフォルトの名無しさん
2009/03/26(木) 20:24:170436デフォルトの名無しさん
2009/03/26(木) 20:25:49if (引数 == 0)
throw new ゼロだぞ( ゚Д゚)ゴルァ!!
0437デフォルトの名無しさん
2009/03/26(木) 20:33:17好きなところに飛ばした方が話が速いと思うんですが、これって公開ライブラリとかじゃない限り
使う意味ないですよね?
0438デフォルトの名無しさん
2009/03/26(木) 20:37:37同じプロジェクトにいないならな
0439デフォルトの名無しさん
2009/03/26(木) 20:39:34自動的にできるくらいだろ?
0440デフォルトの名無しさん
2009/03/26(木) 20:44:26throw自体が無意味って話に変わったんじゃないの
0441デフォルトの名無しさん
2009/03/26(木) 20:52:17例外時にNotImplementedException()に飛ばしたいのはわかるんですが、
何に対しての例外かが読み取れなく無いですか?
コードを追加するときはこの行を消すとかはあり得ないですよね
public class ContentProcessor1 : ContentProcessor<TInput, TOutput>
{
public override TOutput Process( TInput input, ContentProcessorContext context )
{
// TODO: process the input object, and return the modified data.
throw new NotImplementedException();
}
}
0442デフォルトの名無しさん
2009/03/26(木) 20:52:580443デフォルトの名無しさん
2009/03/26(木) 20:54:34要求されたメソッドまたは操作が実装されていないエラーであることがわかるじゃん
http://msdn.microsoft.com/ja-jp/library/system.notimplementedexception(VS.80).aspx
0444デフォルトの名無しさん
2009/03/26(木) 20:55:40public boolLogin(string id, string password)
{
try
return _login.(id, password);
catch (BadPasswordException e)
//ログインできません例外
catch (BadIDException e)
//そんなID存在しません例外
catch (ExpireException e)
//パスワードの期限切れです例外
}
とか
0445デフォルトの名無しさん
2009/03/26(木) 20:56:36消すんだよ。
0446デフォルトの名無しさん
2009/03/26(木) 20:58:42returnに辿りつかなかったら最後のthrowを実行するように書けばいいんですかね
0447デフォルトの名無しさん
2009/03/26(木) 21:00:26やっぱり消すのが自然ですよね
MSのひな形なんですが、このパターン初めてなので消してはいけない理由があるのかと思ったんですが
普通消しますよねTHX!
0448デフォルトの名無しさん
2009/03/26(木) 21:01:54実装されてないことを示す例外だから、実装が終わったら消せばいい。
ということ。
0449デフォルトの名無しさん
2009/03/26(木) 21:02:45プロジェクトによっては、自前で例外throwするのは禁止してることもあるよ。
だから、必須の機能とは言えない。
0450デフォルトの名無しさん
2009/03/26(木) 21:03:45そのプロジェクトのコーディング規約(≒ローカルルール)で禁止ね。
0451デフォルトの名無しさん
2009/03/26(木) 21:04:23誰も必須だとか言ってないだろハゲ
0452デフォルトの名無しさん
2009/03/26(木) 21:04:50要求されたメソッドまたは操作が実装されない場合にスローされる例外。
0453デフォルトの名無しさん
2009/03/26(木) 22:06:51スタブを示す、標準的な例外が用意されているのは便利。
// TODO: とかより、ずっといい。
0454デフォルトの名無しさん
2009/03/26(木) 22:19:35ぜひ「空関数例外」みたいな名前に変えて欲しい。
俺の中ではNotImplementedはSystem.Reflectionでひっかかったときに投げるイメージ。
0455デフォルトの名無しさん
2009/03/26(木) 22:23:020456デフォルトの名無しさん
2009/03/26(木) 22:48:15しれないなぁと思った。俺は結構使うほう。
0457デフォルトの名無しさん
2009/03/26(木) 23:07:21これを継承したクラスで要るメソッドだけオーバライドして実装
NotImplementedExceptionじゃなくてNotSupportedExceptionでやる場合もあるけど
0458デフォルトの名無しさん
2009/03/27(金) 00:41:56失礼な
まだほんのりと残っていますぞ
0459デフォルトの名無しさん
2009/03/27(金) 00:51:28中身が空っぽのメソッド作るのは、
「宣言だけして実装してないよ」って感じだと思うんだけど。
C++ みたいに宣言と実装が分かれてないから空っぽの動体付けてるだけで。
>>457
NotSupported は、
「interface 的には実装しないといけないんだけど、
このクラスでは実装しません」みたいな時に使いたい。
0460デフォルトの名無しさん
2009/03/28(土) 01:50:52午前7時に盲状態でコード書かなきゃいけないときとか頼りになる
0461デフォルトの名無しさん
2009/03/28(土) 09:02:10usingディレクティブの記述順序がパフォーマンスに影響する事ってあるんですか?
単に視覚的な問題くらいの認識しかなかったので
ググってみましたが、そういったソースはみあたりませんでした。
教えて!エロい人!
0462デフォルトの名無しさん
2009/03/28(土) 09:17:08拡張メソッドのインポート時くらいしか知らない。
0463デフォルトの名無しさん
2009/03/28(土) 16:21:29メソッドの戻り値がvoidのとき、Func<void, string> _EventHandlerみたいに記述できないの?
delegateを記述するの面倒だよ(´・ω・`)ショボーン
0464デフォルトの名無しさん
2009/03/28(土) 16:22:53Action<>
0465デフォルトの名無しさん
2009/03/28(土) 16:41:310466デフォルトの名無しさん
2009/03/28(土) 18:46:070467デフォルトの名無しさん
2009/03/28(土) 19:58:59public string Name;
とすることと
private string _name;
public string Name
{
get { return _name; }
set { _name = valiue; }
}
はどう違いますか?
0468デフォルトの名無しさん
2009/03/28(土) 20:18:480469デフォルトの名無しさん
2009/03/28(土) 20:19:500470デフォルトの名無しさん
2009/03/28(土) 20:21:430471デフォルトの名無しさん
2009/03/28(土) 20:23:51何か専門用語があるのかもしれませんがそれがわからないのでぐぐれません
0472デフォルトの名無しさん
2009/03/28(土) 20:34:58フィールドをPublicにするのは習慣としておすすめできない、というくらいで。
0473デフォルトの名無しさん
2009/03/28(土) 20:39:03public string Name
{
get;
set;
}
0474デフォルトの名無しさん
2009/03/28(土) 20:42:11なんでpublicじゃだめなのかを聞いてるのに自動プロパティにしろなんてのは筋違いだろ
0475デフォルトの名無しさん
2009/03/28(土) 20:43:15public string Name{
0476デフォルトの名無しさん
2009/03/28(土) 20:48:12誰がそんなこと聞いてる?
0477デフォルトの名無しさん
2009/03/28(土) 20:48:260478デフォルトの名無しさん
2009/03/28(土) 20:54:34{
float[,] test;
}
これって動的配列なんでしょうか?
float a = 0;
for(i=0;i<100;i++){
for(j=0;j<100;j++){
test[i, j] = a;
a++;
}
}
こうやって他のクラスから自由に配列の大きさを決めて格納するのに使えるんですか?
0479デフォルトの名無しさん
2009/03/28(土) 21:00:12未割り当てエラー出すだけ
つーかそのくらい実行してみりゃ分かるだろうが
0480デフォルトの名無しさん
2009/03/28(土) 21:27:17最初からプロパティにしとけって話だろうけど
再コンパイルすればいいだけだからほとんど意味は無いよね
0481デフォルトの名無しさん
2009/03/28(土) 21:30:52>>467の趣旨はそういうことだろ?
0482デフォルトの名無しさん
2009/03/28(土) 23:24:58そんなの本人じゃないと分からない。単に違いを聞いてるだけに読める。
>>467の字面通りなら、ほとんど違いはないけど、作法としてパブリックフィールドは
推奨されていない、としか答えようがない。
0483デフォルトの名無しさん
2009/03/28(土) 23:36:10少なくとも自動プロパティを使えはおかしいだろ
何をいってんだ?
0484デフォルトの名無しさん
2009/03/28(土) 23:46:58プロパティってのは実はメソッド。
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
てのは
private string _name;
public string get_Name()
{
return _name;
}
public void set_Name(string value)
{
_name = value;
}
と書いてるのと同じ。
0485デフォルトの名無しさん
2009/03/28(土) 23:48:070486デフォルトの名無しさん
2009/03/29(日) 00:02:01条件チェックやらなんやら色々できるだろ
0487デフォルトの名無しさん
2009/03/29(日) 00:03:370488デフォルトの名無しさん
2009/03/29(日) 00:11:280489デフォルトの名無しさん
2009/03/29(日) 00:17:260490デフォルトの名無しさん
2009/03/29(日) 00:25:440491デフォルトの名無しさん
2009/03/29(日) 00:30:58そこだけアップデートされるようなライブラリを作ってるなら別だけど
0492デフォルトの名無しさん
2009/03/29(日) 00:36:240493デフォルトの名無しさん
2009/03/29(日) 00:42:170494デフォルトの名無しさん
2009/03/29(日) 00:44:130495デフォルトの名無しさん
2009/03/29(日) 00:55:530496デフォルトの名無しさん
2009/03/29(日) 01:01:320497デフォルトの名無しさん
2009/03/29(日) 01:07:10それを屁理屈って言うんだよ。
0498デフォルトの名無しさん
2009/03/29(日) 01:09:11まるですじの通らない理屈とは思えないが?
>へ‐りくつ【×屁理屈】
>まるですじの通らない理屈。道理に合わない理屈。「―を並べる」「―をこねる」
0499デフォルトの名無しさん
2009/03/29(日) 01:09:11未来の自分でさえ信用できないのに、他人の利用者を信じれるわけがないだろJK
0500デフォルトの名無しさん
2009/03/29(日) 02:10:30そいつにとってフィールドもプロパティも一緒つーなら
それ以外の使い方しないんだろうから
どうせ個人でやるだけだろうしw
0501デフォルトの名無しさん
2009/03/29(日) 02:18:350502デフォルトの名無しさん
2009/03/29(日) 02:22:270503デフォルトの名無しさん
2009/03/29(日) 02:29:350504デフォルトの名無しさん
2009/03/29(日) 02:39:07FormにTextBox2つ貼り付けて
class MyData
{
public string PublicField;
public string PublicProperty { get; set; }
}
作って
textBox1.DataBindings.Add("Text", data, "PublicField");
textBox2.DataBindings.Add("Text", data, "PublicProperty");
として動かしてみたらわかる。
PublicFieldはDataBindの対象にならない。
0505デフォルトの名無しさん
2009/03/29(日) 03:01:01その頭の悪そうなレスはやめてくれ
0506デフォルトの名無しさん
2009/03/29(日) 03:42:08同意
とりあえずここ読め
http://ufcpp.net/study/csharp/oo_property.html
オブジェクト指向には実装の隠蔽というものがあってだね(ぶつぶつ
0507デフォルトの名無しさん
2009/03/29(日) 13:13:36パブリックフィールドを直接公開するよりも一般に良いということを示さない限り
一般にプロパティにするべきだという理屈は屁理屈でしかないだろ
0508デフォルトの名無しさん
2009/03/29(日) 13:20:52自分しか使わない&拡張する予定がなければフィールド使えばいいじゃない。
0509デフォルトの名無しさん
2009/03/29(日) 13:27:47拡張する予定があっても他人が使っていても
フィールドで問題ないだろ
どういう時に問題が起きるわけ?
0510デフォルトの名無しさん
2009/03/29(日) 13:31:330511デフォルトの名無しさん
2009/03/29(日) 13:38:43君はパブリックフィールド使えばいい。私は今まで通りプロパティ使うけどな。
0512デフォルトの名無しさん
2009/03/29(日) 13:44:41君はプロパティ使えばいい。おいらは今までどおり使い分けるけどな。
0513デフォルトの名無しさん
2009/03/29(日) 13:46:51さすがに今日は言っても文句ねえだろ
0514デフォルトの名無しさん
2009/03/29(日) 13:51:350515デフォルトの名無しさん
2009/03/29(日) 14:19:23・setされた値を事前に評価する必要がない
・バッキングストアを仮想化する必要がない
・プロパティ自体をvirtualにしたりsealedにしたりする必要がない
など、すなわち単なる「変数」であれば、プロパティのほうがコストが
高いのは明らかだから、あえてプロパティを使わずフィールドを公開して
構わないと思うよ。
また、将来上記のうち上3点(最後の1点はまるっきりの変更なんで別だが)の
方針が変更される可能性があったとしても、その時点でフィールドを
プロパティに変更すればソースレベルでの互換性は保てるので、問題ない。
(ただし、公開クラスライブラリで、バイナリ互換性が必要な場合を除く)
0516デフォルトの名無しさん
2009/03/29(日) 14:21:230517デフォルトの名無しさん
2009/03/29(日) 14:39:210518デフォルトの名無しさん
2009/03/29(日) 15:06:450519デフォルトの名無しさん
2009/03/29(日) 17:12:56今どっちのプロジェクトにも同じクラスを書いていて修正するときなんか無駄があるような気がしてきました
この場合どっちのプロジェクトにも含ませない方法とかがあってそうした方がいいんでしょうか?変更は頻繁にするんですが
0520デフォルトの名無しさん
2009/03/29(日) 17:15:44片方のプロジェクトからもう1つを参照してもいいし、
別にライブラリプロジェクト作って、それを2つのプロジェクトから参照してもいいし、
ソースを「リンクとして追加」もできるし。
0521デフォルトの名無しさん
2009/03/29(日) 17:52:48読み込まれるプロジェクトの順番が大事なのかとか変な方向に考えてましたどうもです
0522デフォルトの名無しさん
2009/03/29(日) 20:07:04これもプロパティで表示したほうがいいの?
http://msdn.microsoft.com/ja-jp/library/db0etb8x.aspx
0523デフォルトの名無しさん
2009/03/29(日) 20:16:17event キーワードがついてると、普通のフィールドじゃなくなる。
プロパティのデリゲート版みたいな状態のなので、
そのまま公開されてるわけじゃない。
0524デフォルトの名無しさん
2009/03/29(日) 20:22:340525デフォルトの名無しさん
2009/03/29(日) 22:08:28これは1次元としてしか扱えないんですか?
0526デフォルトの名無しさん
2009/03/29(日) 23:56:19嫁が欲しいなら2次元で我慢しとけ
0527デフォルトの名無しさん
2009/03/29(日) 23:59:32C#の本買って勉強してるんですがNorthwindが何なのかわかりません。
Northwindってなんですか?
ぐぐっても
http://www.dreamsoft.jp/northwind/index.html
こんなのとか
http://msdn.microsoft.com/ja-jp/library/ms143221.aspx
こんなのしか見つかりませんでした。
0528デフォルトの名無しさん
2009/03/30(月) 00:00:56サンプルデータの名前。
航空会社かなんかのデータっていう想定のサンプル。
0529デフォルトの名無しさん
2009/03/30(月) 00:01:05後者のリンクにある、サンプルデータベースじゃないの?
0530デフォルトの名無しさん
2009/03/30(月) 00:01:12拡張コントロールをいくつか作ることで、継承のありがたみは
少しずつ理解できてきたところなんですけど、
インターフェースや抽象クラスの存在意義がなかなか理解できません。
インターフェースの実装を明示することで
その機能が実装されてることが一目でわかるというようなこと以外にメリットが思いつかないんですが
大規模なものを書かないとそこら辺の概念は理解できないものなのでしょうか。
0531デフォルトの名無しさん
2009/03/30(月) 00:14:27↓の14章を読んでみればどうかな?
それでも理解できなければ、今は使う必要性がないんだよ。
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_014/cs2_014_01.html
0532デフォルトの名無しさん
2009/03/30(月) 00:15:150533デフォルトの名無しさん
2009/03/30(月) 00:16:120534530
2009/03/30(月) 00:17:110535デフォルトの名無しさん
2009/03/30(月) 00:22:40インターフェースと抽象クラスの説明は確かに難しいのかも
例えば家電でいうと・・・
・抽象化
家電は電気製品なのでどんな製品にも必ず電源のオンオフスイッチがある→抽象クラスで記述
・インターフェース
家電は電気製品なのでどんな製品にも必ず通電する必要がある→
だけど電源を供給する方法は、コンセント、電池、バッテリー、ソーラーパネルと多種多様なので、
電源を供給するための端子は付けておくけど、実際の供給方法は製品に任せる
こんな感じ?
0536デフォルトの名無しさん
2009/03/30(月) 00:36:10どんなデーター形式でも扱えるよ。
0537530
2009/03/30(月) 00:42:32なるほど。既に定義されてるインターフェースを使ってみたら
だいぶそういう概念が理解できてきました。
もっとも自分で定義して実装する必要性を感じるには
もっと大規模なコードを書く必要があるみたいです。
少しずつ使えるようになりたいと思います。ありがとうございました。
0538デフォルトの名無しさん
2009/03/30(月) 01:07:27stringをフィールドに持つクラスと、intをフィールドに持つクラスで、
それぞれ共通に名前を持つフィールドを持ち、
さらに、それぞれstringに保存された文字列の文字数とintに保存された数字の桁数を取得するメソッドを
interfaceを用いて取得する方法を記述してみれ
abstract public class BaseClass
public string Name { get; set; }
public class StringClass : BaseClass
public string StringData{ get; set; }
public class IntClass : BaseClass
public int IntData { get; set; }
ここまではわかるっしょ
0539デフォルトの名無しさん
2009/03/30(月) 01:18:46先生!なぜabstractのBaseクラスを定義しているのかわかりません!
その場合インターフェイスじゃなくて
abstract int GetLength();をBaseクラスに書くのが適切だと思います!
0540デフォルトの名無しさん
2009/03/30(月) 01:30:02すべて一様にGetLength()が適用できないんです><
でも、それぞれ名前はもってるんです><
0541デフォルトの名無しさん
2009/03/30(月) 01:40:42C#みたいにコンパイル時に確定してないと我慢できない潔癖な処理系に
対して、私はこのメソッド持ってますよと、とりあえず宣言するための
姑息な手段。
うっかり安心して呼び出すと実体は、
throw new NotImplementedException();と書いてあるだけなので、結局
1行目と同じ結果になる。
って、あんまり夜中にアンサイクロペディアとか読みふけってちゃ駄目だな。
0542デフォルトの名無しさん
2009/03/30(月) 01:53:11リフレクションで代用できないの?
それはともかく、まぁ、姑息かどうかはわからんけども、
interfaceを継承してるクラスは、そのinterfaceで宣言した型にキャストして実行できるから、
メソッドを持っていますよと、とりあえず宣言するためだけの手段ではないんでないの?
キャストできますよという意味と同義で書いてるのならその通りかもしらんが。
0543539
2009/03/30(月) 02:22:10interfaceだって戻り値がintのGetLength()作ったら同じことではないの?
abstract int GetLength()をovarrideするのと何が違うの?
俺の言いたかったのはinterfaceの例題を出すなら抽象クラスを使ったら駄目じゃないのかいと言いたい。
>>538のサンプルの場合
public Interface ISample
{
int GetLength()
}
を定義したとしてそのInterfaiceを実装するのはBaseClass?それとも
IntClassや StringClass?
BaseClassがInterfaceを実装したとして
publice abstract int GetLength();
0544539
2009/03/30(月) 02:26:17GetLengthを呼び出す側はわざわざInterfaceで呼ぶ必要もなくなるわけで。
IntClass StringClassがInterfaceを実装するなら 初心者にはBaseClassは混乱の元
0545デフォルトの名無しさん
2009/03/30(月) 02:33:03>IntClass StringClassがInterfaceを実装するなら 初心者にはBaseClassは混乱の元
すべてはobject型を継承するのは混乱の元?
>interfaceだって戻り値がintのGetLength()作ったら同じことではないの?
違うでしょ
bool型などの論理型にはGetLength()は必要ないわけで。
その理屈をとことん突き詰めれば、すべては同じobject型を継承しているので、
objectクラスにGetLength()を作って、それをoverrideするなり、privateにして隠蔽すればいいことになる。
>そのInterfaiceを実装するのはBaseClass?それとも IntClassや StringClass?
インターフェースを実装するのはintclassやstringclassだね
intclassやstringclassをキャストしてISample型のarrayに保存したり、
is ISample で型を確かめてGetLengthを実行したりとか。
0546デフォルトの名無しさん
2009/03/30(月) 02:38:16じゃ、お題をこんなふうにすればいいかい?
stringとintとboolをフィールドに持つクラスで、
それぞれ共通に名前を持つフィールドを持ちながら、
さらに、intとstringを持つクラスだけに、stringに保存された文字列の文字数と、
intに保存された数字の桁数を取得するメソッドをinterfaceを用いて取得する方法を記述してみれ
ただしBoolClassは論理値なので桁数とかないので桁数を取得するメソッドは追加する必要はない
abstract public class BaseClass
public string Name { get; set; }
public class StringClass : BaseClass
public string StringData{ get; set; }
public class IntClass : BaseClass
public int IntData { get; set; }
public class BoolClass : BaseClass
public bool BoolData { get; set; }
こんなんでいい?
0547539
2009/03/30(月) 02:56:29>>IntClass StringClassがInterfaceを実装するなら 初心者にはBaseClassは混乱の元
>すべてはobject型を継承するのは混乱の元?
継承が悪い(混乱の元)とは言っていなくて、
抽象クラスとInterfaceの使い方を知らない人に
Interfaceの例題を出そうとしてabstractクラスを使っちゃ混乱するでしょと言いたいの。
>>interfaceだって戻り値がintのGetLength()作ったら同じことではないの?
>違うでしょ
>bool型などの論理型にはGetLength()は必要ないわけで。
例題に
class boolClass:BaseClass なぞ書いていないでしょw
>その理屈をとことん突き詰めれば、すべては同じobject型を継承しているので、
>objectクラスにGetLength()を作って、それをoverrideするなり、privateにして隠蔽すればいいことになる。
どう突き詰めれば>>538のBaseClassにGetLength()を定義することがこんな解釈になるのか謎w
>>そのInterfaiceを実装するのはBaseClass?それとも IntClassや StringClass?
>インターフェースを実装するのはintclassやstringclassだね
IntClassやStringClassがInterfaceを実装するなら話は分かるんだけど、
例題に IntClassやStringClassがInterfaceを実装するとどこにも書いてないわけで。
BaseClassがInterfaceをabstractで実装してサブクラスがoverrideすることもできるわけで
話が混乱するでしょ。
結論:初心者に例題出すなら もっといい例題を出そうね。
0548530
2009/03/30(月) 03:00:38ぶっちゃけお二人(だと思うけど)の議論を見てるだけでも勉強になります
経験を積んだ人間に話しを聞ける環境にいないので
自分の理解の甘さが改めて実感できて、素人にはありがたいッス。
0549デフォルトの名無しさん
2009/03/30(月) 03:09:22面倒くせぇなあお前
もし返答があったら、単にinterfaceで記述しただけじゃ抽象クラスに記述するのと同じだから、
>>540で記述したように抽象クラスで実装できない例の存在を示して、
interfaceの型で宣言した変数にキャストして実行できる利点を記述しようとおもったら、すべて台無しじゃねーか
>>548
というわけで関係ない人がすべて解答してくれたわけで答えが出てしまったわけだが、
まあ、なんだがんばれ
0550539
2009/03/30(月) 03:09:41そんなんでいいと思います。
ただ BaseClassをabstractにする必要はないかも?
newさせたくないっていう理由でabstractクラスにするとしても
例題としてはabstractいらないかも。
2次関数を知らない人に教えるときにいきなり
(sinx)^2 + (sinx) + 5 = 0
みたいな合成関数で例題出されたら混乱すると思う。
丁寧に教えるならシンプルにしてあげないと。
0552539
2009/03/30(月) 03:25:40>面倒くせぇなあお前
ありがとう
>もし返答があったら、単にinterfaceで記述しただけじゃ抽象クラスに記述するのと同じだから、
>>>540で記述したように抽象クラスで実装できない例の存在を示して、
>interfaceの型で宣言した変数にキャストして実行できる利点を記述しようとおもったら、すべて台無しじゃねーか
小出しにするほうが面倒くさいと思う。
0553デフォルトの名無しさん
2009/03/30(月) 03:43:37んなこと理解しててわざとやってるっていってんの。
後で反証を説明したほうが効果的に理解してもらえるかなと思ったから。
>>面倒くせぇなあお前
>ありがとう
そのわざとやってるところにチャチャいれられてすべて台無しになってるから面倒くせぇっていってんの
面倒くさいの質が違う
わざと言ってるんだろうけどw
0554デフォルトの名無しさん
2009/03/30(月) 07:37:45で、�@では自作ログ出力クラスのインスタンスを生成しています。
この際、インスタンス初期化時にログファイルを開けない場合は
StreamWriterのコンストラクタが出力する例外をそのままthrowするのですが、
それをcatchするには、
try {using(�@) {�A}}
みたいに全体を囲わないといけないのでしょうか。
この場合、�Aまでtryに含まれてしまうのが嫌なのですけど・・・。
0555デフォルトの名無しさん
2009/03/30(月) 08:46:39try {
log = new Log();
}
catch (...) {
throw;
}
using (log) {
}
なんてのもできんではないが全体try-catchでいいと思うよ
0556デフォルトの名無しさん
2009/03/30(月) 09:08:44{
MyLogger logger = null
logger = new MyLogger();
// ...
}
catch (MyLoggerException myloggerex)
{
if (myloggerex.InnerException is IOException)
{
// ...
}
}
finally
{
if (null != logger)
{
logger.Dispose();
}
}
自作ログ出力クラスが独自の例外を送出するようにすればよくない?
0557デフォルトの名無しさん
2009/03/30(月) 20:15:45そのメソッド内で、渡されたAクラスをBクラスのフィールド宣言に代入した場合もアドレスが保持されるだけなんでしょうか
0558デフォルトの名無しさん
2009/03/30(月) 20:19:28参照渡しと値渡しだ
参照型は指定しない限り常に参照のコピーを取るだけ
値型は常に値そのもののコピー
0559デフォルトの名無しさん
2009/03/30(月) 21:23:16参照渡しと値渡しと
参照型と値型は別物ぞよ
0560デフォルトの名無しさん
2009/03/30(月) 21:33:54そうですね^^;
0561554
2009/03/30(月) 22:48:41ありがとうございます。
独自の例外を作って、tryは今まで通りusing全体を囲うのが一番シンプルになりそうですね。
独自の例外なら問題なくcatchで切り分けられるし。
0562デフォルトの名無しさん
2009/03/31(火) 05:00:24例えばラベルをある数だけ生成したい場合コントロールの名前はどうつけたら
いいのでしょうか?
デザイナで置くとlabel1とか自動で付きますよね
forループで廻すとなるとどうするのでしょうか・・・
0563デフォルトの名無しさん
2009/03/31(火) 07:28:59forループの中でコントロールを自分で作る。
0564デフォルトの名無しさん
2009/03/31(火) 07:55:10for (int i = 0; i < 100; i++)
new Label() { Name = "label" + i.ToString() }
0565デフォルトの名無しさん
2009/03/31(火) 08:04:16自己解決しました
0566デフォルトの名無しさん
2009/03/31(火) 14:40:25…自己解決ちゃうやん
0567デフォルトの名無しさん
2009/03/31(火) 15:22:210568デフォルトの名無しさん
2009/03/31(火) 18:50:25ここの「コードを使用してイメージをレンダリングする方法」(一番下のソース)を実践したいのですが、
WPFアプリケーションプロジェクトに貼り付けただけではウィンドウに表示されません。
(貼り付ける場所がおかしいのだと思いますが…。)
どういう風に書けばいいのか教えてください。
VSC#2008Expressを使ってます。
0569デフォルトの名無しさん
2009/03/31(火) 23:52:30おすすめのライブラリはありますか?
0570デフォルトの名無しさん
2009/04/01(水) 00:01:53埋め込んだリソースファイル(WAVE)を指定した場所に直接コピーしたいのですが
どのように記述したらできるのでしょうか?
0571デフォルトの名無しさん
2009/04/01(水) 00:08:080572デフォルトの名無しさん
2009/04/01(水) 01:22:06市販の?
0573デフォルトの名無しさん
2009/04/01(水) 01:24:51basp21はどうよ?
0574デフォルトの名無しさん
2009/04/01(水) 01:40:38フォームにデザイナで追加したコントロールには、何か、インデックスのようなものが割り振られてたりはしないのでしょうか?
自分はボタンをデザイナで一個一個大量に配置してしまったのですが、
それをプログラムコードから利用するときにめんどくさくて大変です。
最初から配列でとっておけばよかったと今では後悔していますが、
今からでも添え字があれば、それを元にエレガント且つ簡潔にコードからの利用が可能になるはずです。
誰かうまいやり方など知ってる方がいらっしゃいましたらお教えくださいませ。
0575デフォルトの名無しさん
2009/04/01(水) 01:53:070576デフォルトの名無しさん
2009/04/01(水) 01:54:170577デフォルトの名無しさん
2009/04/01(水) 01:56:21>フォームにデザイナで追加したコントロールには、何か、インデックスの
>ようなものが割り振られてたりはしないのでしょうか?
ない
プログラム内で配列でコントロールを生成して使ったことがある。
0578デフォルトの名無しさん
2009/04/01(水) 02:04:020579デフォルトの名無しさん
2009/04/01(水) 02:09:200580デフォルトの名無しさん
2009/04/01(水) 02:47:59グループボックス内にテキストボックスやプログレスバーなどが沢山あり
それを実行時にグループボックスごと追加する場合
ユーザー定義コントロールを作ってnewするのがいい方法なのでしょうか?
又、その場合ユーザー定義コントロールの作り方が良くわかるサイトなどご存知ないでしょうか?
宜しくお願い致します。
0581デフォルトの名無しさん
2009/04/01(水) 03:10:49>>575-579
ありがとやんした!!
0582デフォルトの名無しさん
2009/04/01(水) 03:43:54http://uwa.potetihouse.com/library/tkfpdll.html
とか
0583568
2009/04/01(水) 03:53:220584デフォルトの名無しさん
2009/04/01(水) 06:23:48今使用しているアンマネージDLLに int WINAPI hoge(float *p, int size); のような関数があります。
float *pは呼出元で確保した配列のポインタなのですが、16バイトアライメントされている必要があります。
C#でアライメントを考慮した配列を確保する方法などあるのでしょうか?
0585デフォルトの名無しさん
2009/04/01(水) 07:28:15struct Test
{
データ
}
0586デフォルトの名無しさん
2009/04/01(水) 09:21:18なんとなく気になって@ITとか見てみたんですがなんかわかりづらい・・・・
わかりやすい解釈のページとか教えていただけると助かります。
0587デフォルトの名無しさん
2009/04/01(水) 09:30:260588デフォルトの名無しさん
2009/04/01(水) 09:36:26そのような記述を多く見るのですが・・・orz
いかんせん読解力が無いようで・・
0589デフォルトの名無しさん
2009/04/01(水) 09:40:11今は大抵 LINQ の標準ライブラリであらかた機能がそろうけども、
特定の条件だけ満たす要素を取り出したり、
特定のプロパティの値を取り出すような関数書いてみ。
それも、いったん new List() するんじゃなくて、遅延評価で。
0590デフォルトの名無しさん
2009/04/01(水) 10:00:47すべてを終えるには時間のかかる処理をしながら、条件を満たした項目から表示していくプログラムを作れば理解できるよ
記憶領域を使わないですむし、演算の終わった項目から並列処理にかけたりできるしね
0591デフォルトの名無しさん
2009/04/01(水) 10:02:480592デフォルトの名無しさん
2009/04/01(水) 10:06:41ありがとうございます。
そういう条件でちょっとサンプルでもつくってやってみます。
0593デフォルトの名無しさん
2009/04/01(水) 12:20:42こんなのはどう?
http://msdn.microsoft.com/ja-jp/events/dd283187.aspx
0594デフォルトの名無しさん
2009/04/01(水) 12:45:170595デフォルトの名無しさん
2009/04/01(水) 13:12:07情報ありがとうございます。
こういう使い方が出来ると言うことなんですね。
確かに >>599が言うように
>特定の条件を満たす要素を・・・
というのはその通りかと
処理がそれを呼び出す側ですっきりしそうです。
使い道が少しですがわかった気がします。
タイミングさえあれば今度どこかで実装してみようと思います。
0596デフォルトの名無しさん
2009/04/01(水) 13:26:44aspxでファイルにResponse.Redirect(ファイルURL)でダウンロードさせてるんですが、
複数ユーザの同時アクセス数を制限するにはどうしたらいいのですか?
例えば上限を10にしておいて同時アクセス数が11になったらエラーページに飛ばすみたいな。
static Queue _queue = new Queue();
static object _lock = new object();
page_Load()
{
lock(_lock)
{
if(_queue.Count > 10)
Response.Redirect(ErrorPage);
_queue.Enque(new object());
}
try
{
Response.Redirect(DownloadURL);
}
finally
{
lock(_lock)
{
_queue.Deque();
}
}
}
こんなんしか思いつかないんですが・・・
定石みたいなのあるのでしょうか。
0597596
2009/04/01(水) 13:32:33ダウンロード時間を30秒と決め付けて
finally句でDeque前に
Thread.Sleep(30 * 1000);
0598596
2009/04/01(水) 14:44:42あと DequeueのlockとEnqueueのlockでデットロック起こしてる〜(T_T)
ってワケで作り直し。
private volatile static Queue _queue = new Queue();
protected void Page_Load(object sender, EventArgs e)
{
if (_queue.Count >= 10)
{
Response.Write("混雑してます 同時アクセス数" + _queue.Count);
Response.End();
}
_queue.Enqueue(new System.Threading.Timer(new TimerCallback(tmr_Tick), null, 10 * 1000, System.Threading.Timeout.Infinite));
try
{
Response.Write("同時アクセス数" + _queue.Count);
Response.End();
}
finally
{
System.Diagnostics.Debug.WriteLine("finally");
}
}
private static void tmr_Tick(object state)
{
_queue.Dequeue();
System.Diagnostics.Debug.WriteLine("Deque Count" + _queue.Count);
}
0599デフォルトの名無しさん
2009/04/01(水) 14:50:040600デフォルトの名無しさん
2009/04/01(水) 15:21:190601596
2009/04/01(水) 17:28:085スレッドまで。1秒待っても駄目だったら混雑中。
private volatile static Semaphore _pool = new Semaphore(0, 5);
static Default() {_pool.Release(5); }
protected void Page_Load(object sender, EventArgs e)
{
if (!_pool.WaitOne(1000))
{
Response.Write("混雑しています。");
Response.End();
}
try
{
Response.Redirect(URL);
}
finally
{
Thread t = new Thread(() => {
Thread.Sleep(10 * 1000);
int cnt = _pool.Release();
System.Diagnostics.Debug.WriteLine("cnt " + cnt);});
t.Start();
System.Diagnostics.Debug.WriteLine("finally");
}
}
}
0602デフォルトの名無しさん
2009/04/01(水) 20:35:20良く経験の長い方のレスなどを見ていると
フレームワークを拡張するというような記述がありますが
具体的にはどのようなことをいうのでしょうか。
フレームワーク内で既に定義されているクラスを
継承して拡張した自分なりのクラスを持っているという理解で正しいでしょうか。
また、拡張したフレームワークを使用してアプリを作った場合
そのアプリは、拡張されていないフレームワーク上ではキチンと動作しないものなのでしょうか。
よろしくお願いします。
0603デフォルトの名無しさん
2009/04/01(水) 20:52:15フレームワークってのは、機能を簡単に使えるようにした壮大なライブラリ(クラス)群で、
料理で言うところの味噌や醤油のような調味料の集まりみたいなもの。
この調味料を継承して拡張して機能を自作で追加すると、
パスタにかけるだけで美味しいパスタができるというトマトソースを作ることができる。
フレームワーク(調味料)さえあれば、トマトソースのできる調味料が揃っているので
作ることはできるけど、レシピは教えてあげないと作れない。
そのレシピはdll(ダイナミックリンクライブラリ)といってレシピの集まり。
これを配布してあげることで、同じフレームワークを持っているPC上であれば、
どれもおいしいトマトソースのパスタを作ることができるという感じ。
0604デフォルトの名無しさん
2009/04/01(水) 20:56:44そこは気をつけてね。
0605602
2009/04/01(水) 21:12:05独自に拡張したクラスライブラリを作成するということだったんですね
納得いきました。ありがとうございました。
0606デフォルトの名無しさん
2009/04/01(水) 21:55:48フレームワークはライブラリより広義の「手法」的な意味だとおもうんだぜ?
機能群はライブラリで,(利用法とか運用法も含めた)方法論的な意味でフレームワークって良く使う
0607デフォルトの名無しさん
2009/04/01(水) 22:31:43横ですが、Semaphoreはそうやって使うんですね
参考になりました
0608デフォルトの名無しさん
2009/04/02(木) 17:10:51int a = bbbb.ccccc.ddddd;
とすると値のコピーになりますよね
これを参照にしたいんです
0609デフォルトの名無しさん
2009/04/02(木) 17:26:330610デフォルトの名無しさん
2009/04/02(木) 17:29:35クラスで管理したいです
0611デフォルトの名無しさん
2009/04/02(木) 17:31:13ttp://msdn.microsoft.com/ja-jp/library/yh598w02(VS.80).aspx
0612デフォルトの名無しさん
2009/04/02(木) 17:33:150613デフォルトの名無しさん
2009/04/02(木) 17:33:15プロパティにしたらどう?
int A { get { return bbbb.ccccc.ddddd; } set { bbbb.ccccc.ddddd = value; }}
0614デフォルトの名無しさん
2009/04/02(木) 17:37:260615デフォルトの名無しさん
2009/04/02(木) 17:39:03そっちか。それだめです期限付きでその中ではコピーされますよね
参照がいいです。
0616デフォルトの名無しさん
2009/04/02(木) 17:45:360617デフォルトの名無しさん
2009/04/02(木) 17:47:430618デフォルトの名無しさん
2009/04/02(木) 18:55:39fd = new Microsoft.DirectX.Direct3D.FontDescription();
としているんですが
次のエラーが出てしまいます
次のメソッドまたはプロパティ間で呼び出しが不適切です:
'Microsoft.DirectX.Direct3D.FontDescription.FontDescription()' と
'Microsoft.DirectX.Direct3D.FontDescription.FontDescription()'
ビルドしてみるとエラーがあるにもかかわらず問題なく動いているようです
これはどうすればいいんでしょうか
0619デフォルトの名無しさん
2009/04/02(木) 19:04:06class HogeCollection : IEnumerable<Hoge>
のように、IEnumerable<T>を実装したコレクションのインスタンスがあるのですが、
そこから動的にHogeの型を取得するにはどうすればよいのでしょう?
0620デフォルトの名無しさん
2009/04/02(木) 19:08:240621デフォルトの名無しさん
2009/04/02(木) 19:12:26かな
もっといい方法もありそうだけど
0622デフォルトの名無しさん
2009/04/02(木) 19:17:47それも値がコピーされて格納されるじゃん
一瞬でも複製を作りたくないんだけど
ほんとに引数にref指定してその中だけで使えるように渡すしか値型を参照で保持する方法はないの?
0623デフォルトの名無しさん
2009/04/02(木) 19:20:37Nameを使うと誤判定の可能性があるので、
オープンジェネリック型を使った方がいいな
GetType()
.GetInterfaces()
.First(i => i.GetGenericTypeDefinition() == typeof(IEnumerable<>))
.GetGenericArguments()[0]
0624デフォルトの名無しさん
2009/04/02(木) 19:24:10一瞬でもコピーされるのの何が問題なのかわからんから答えようがないよな
0625デフォルトの名無しさん
2009/04/02(木) 19:24:38なるほど!ありがとうございました。
0626デフォルトの名無しさん
2009/04/02(木) 19:26:400627デフォルトの名無しさん
2009/04/02(木) 19:27:440628デフォルトの名無しさん
2009/04/02(木) 19:28:37構造を変えるわ、あきらめたthx
0629デフォルトの名無しさん
2009/04/02(木) 19:31:21初心者スレに行って質問の仕方から勉強しなおしだな
0630デフォルトの名無しさん
2009/04/02(木) 19:40:56それくらいの余計なコピーの作成くらい、実行時には最適化で消えると思うよ。
0631デフォルトの名無しさん
2009/04/02(木) 19:43:190632デフォルトの名無しさん
2009/04/02(木) 19:51:16関係ないけど
参照でコピーしても、そのポインタを保持してるんだからメモリの節約にはならないんだっけ?
0633デフォルトの名無しさん
2009/04/02(木) 19:53:22最後にまた代入すりゃいいじゃんって思うけどねw
んで質問ですけど、unsafe使って問題になることって何ですか?
unsafe内のコードに問題が無いという前提で。
0634デフォルトの名無しさん
2009/04/02(木) 19:56:39aliasをサポートする別の言語を使うしかないな。C++/CLIで何とかならなかったっけ?
C#でもこういう裏技はあるけど正直おすすめしない。
int hoge = 0;
TypedReference tref = __makeref(hoge);
__refvalue(tref, int) = 5;
Console.WriteLine(hoge);
0635デフォルトの名無しさん
2009/04/02(木) 19:57:31>unsafe内のコードに問題が無いという前提で。
その前提が"成り立つ事を保障できない"事こそが最大の問題だと思うのだけど
0636デフォルトの名無しさん
2009/04/02(木) 20:01:34オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーが出るのですが、なんでですか?
0637デフォルトの名無しさん
2009/04/02(木) 20:02:410638デフォルトの名無しさん
2009/04/02(木) 20:04:350639デフォルトの名無しさん
2009/04/02(木) 20:06:40ぬるぽってやつだよ
0640デフォルトの名無しさん
2009/04/02(木) 20:07:40( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>639
0641デフォルトの名無しさん
2009/04/02(木) 20:09:10pub int data = 500;
pub class b
pub int data;
pub b(a aa)
{
data = aa.data;
}
でdata = aa.data;でエラーでるんです
0642デフォルトの名無しさん
2009/04/02(木) 20:10:400643デフォルトの名無しさん
2009/04/02(木) 20:11:31そりゃそうなんだけど、それ以外にもなんかあるのかなーと思ったけど
それ以外ないわな。unsafeは使用禁止とか普通にあるだろし
今回の参照の件とかはそれほど問題にする意味もないのかなと考えてたけど
まぁunsafeなんだし、使わなけりゃ一番問題ないな
0644デフォルトの名無しさん
2009/04/02(木) 20:14:19ありえないです。class bをaaを渡してnewした時初めてthis.dataに入れようとしますよね
ここでエラーになるってことはaaは入ってるんです
0645デフォルトの名無しさん
2009/04/02(木) 20:17:31aaがnullになってるから
0646デフォルトの名無しさん
2009/04/02(木) 20:20:49自信あったのにショックです
ありがとうです
0647デフォルトの名無しさん
2009/04/02(木) 20:28:510648デフォルトの名無しさん
2009/04/02(木) 20:29:49ref 使う方法。変態のきわみだ。
delegate void Alias(ref int i);
static void Main() {
int bbbb_ccccc_ddddd = 0;
((Alias) delegate(ref int i) {
i = 98765;
})(ref bbbb_ccccc_ddddd);
Console.WriteLine(bbbb_ccccc_ddddd);
}
0649デフォルトの名無しさん
2009/04/02(木) 20:30:21特に初心者の人にとっては
0650デフォルトの名無しさん
2009/04/02(木) 21:09:57Vector3 a = {0.0f, 0.0f, 0.0f};
0651デフォルトの名無しさん
2009/04/02(木) 21:12:410652デフォルトの名無しさん
2009/04/02(木) 21:12:520653デフォルトの名無しさん
2009/04/02(木) 21:13:050654デフォルトの名無しさん
2009/04/02(木) 21:18:520655デフォルトの名無しさん
2009/04/02(木) 21:20:18部分信頼とかセキュリティ上の理由でunsafeコードを実行させてくれない仕組みに引っ掛かるとか。
0656デフォルトの名無しさん
2009/04/02(木) 21:24:22int a, b, c, d, e......;
}
class Cupsel {
Data data;
}
0657デフォルトの名無しさん
2009/04/02(木) 21:49:48はーなるほど。そういう仕組みがあったのねぇ
セキュリティポリシーによるようだね。通常はローカルだと問題ないのかな
今までなんも考えなかったわ。ありがとう
0658デフォルトの名無しさん
2009/04/02(木) 23:01:07g.Clear(Color.Black);
g.DrawImage((Image)image, new Point());
Graphics.FromHwnd(panel1.Handle).DrawImage((Image)backBuffer, new Point());
WinFormsで、高速に、ちらつかせずに画像表示をさせたいんですが
どうやるのがいいんでしょうか?
描画するまで画面を更新されないようにするやり方がわかりません・・
それと、加算合成とかをするにはDrawImageでは無理そうですがどうすれば。
0659デフォルトの名無しさん
2009/04/03(金) 00:02:18あと、Graphics.FromHwnd(panel1.Handle)よりもpanel1.CreateGraphics()のほうが普通だと思う。
0660デフォルトの名無しさん
2009/04/03(金) 00:02:33話は戻るが、そこでusingだ。
0661デフォルトの名無しさん
2009/04/03(金) 00:05:460662デフォルトの名無しさん
2009/04/03(金) 00:26:07参照設定はどうなってる?
0663デフォルトの名無しさん
2009/04/03(金) 01:02:12usingディレクティブの別名は名前空間と型名だけだったと思うが、
質問者は変数の別名が欲しいといってるんじゃないのかな?
0664デフォルトの名無しさん
2009/04/03(金) 01:23:36DirectX関係で参照してるのは
DirectX
Direct3D
Direct3DX
DirectInput
DirectSound
です
Direct3DXのバージョンは1.0.2911.0で他のものより新しいのを使ってたんですけど
バージョンをそろえてみても同じエラーが出ます
0665デフォルトの名無しさん
2009/04/03(金) 02:44:15CS0121?
http://msdn.microsoft.com/en-us/library/ky5f1hz8.aspx
どうやらオーバーロードなどをしていて,複数の選択肢が暗黙的な型変換で,動作が決定不能になる時に発せられるらしい.
状況によって変わってくるから,他の部分で名前と名前,型と型がバッティングしていないか確かめてみたら?
あと,なんだか Microsoft.DirectX.Direct3D.FontDescription で検索すると,成功している人が少ない雰囲気.
0666デフォルトの名無しさん
2009/04/03(金) 07:06:03ユーザ権限やパスワード管理機能つけたいんだけど、
一から作るしかないですか?
.NET Framework 2.0 ならいいライブラリがありそうだけど見つけきれません。。。
0667デフォルトの名無しさん
2009/04/03(金) 07:51:410668デフォルトの名無しさん
2009/04/03(金) 10:34:17OSのIEは8に更新しました
Vista + VS2008 です
0669デフォルトの名無しさん
2009/04/03(金) 10:41:42更新した時点でもうなっとるがな。
0670デフォルトの名無しさん
2009/04/03(金) 15:13:53Program Files以下のファイルを更新するときは
管理者権限が必要ですよね。
Vistaの場合管理者でログインしても
普通にアプリを実行するとWindowsPrincipalはUserになっちゃいますよね。
右クリックで管理者として実行を行わないと
管理者権限で実行されませんよね。
そのため自動アップデートによるアップデートができないと思うのですが、
世に出回っているVista対応アプリはどうやって対処しているのでしょうか?
0671デフォルトの名無しさん
2009/04/03(金) 15:18:24UAC の昇格をしてるでしょ。
0673デフォルトの名無しさん
2009/04/03(金) 15:25:11その結果を貼り付けてみ。互換モードになってるとかの落ちじゃないよね?
0674デフォルトの名無しさん
2009/04/03(金) 15:41:32ttp://blogs.msdn.com/ie/archive/2008/03/18/webbrowser-control-rendering-modes-in-ie8.aspx
0675670
2009/04/03(金) 16:08:08ユーザが意図的に管理者として実行をして、
昇格をしてもらわないとアップデートできないので、
世に出回ってるアプリはどう対応してるのかということを質問しています。
普通に実行したときはバージョンアップの通知だけで、
通知があったら「管理者として実行」してもらうと言うことになるんでしょうか。
でもそれだとUACを知らない、年配などのライト層は
ずっとバージョンアップできないってことになりますよね。
しかもそれって、自動アップデートではないですよね。
0676デフォルトの名無しさん
2009/04/03(金) 16:11:59よくわからんけど、セキュリティソフトなんかは予めUAC昇格させる設定を
ユーザーにさせてるんでないの?
都度か一括かの違いで
0677デフォルトの名無しさん
2009/04/03(金) 16:17:35つか、何言ってんの?
「管理者として実行」しなくても、UAC の昇格を行うことはできるよ。
一般的な方法としては、マニフェストを書いておいて、そのアプリを呼び出す。
新しいバージョンがあるかを確認するアプリと、実際に更新をするアプリに分ける、
って感じだね。
Firefox も、ATOK も HP のプリンタドライバも、そんな感じでやってると
思うけど・・・。
0678デフォルトの名無しさん
2009/04/03(金) 16:24:46UACの昇格なしでアップデート可能にする為だって話を聞いたことがある
0679デフォルトの名無しさん
2009/04/03(金) 16:25:02何言ってんのか分からないのに答えられるってすごいなぁ。
しかも最後、自信なさげなところがなんとも。
0680デフォルトの名無しさん
2009/04/03(金) 16:25:20そもそも ClickOnce だし。
0681デフォルトの名無しさん
2009/04/03(金) 16:27:37今はそんなのも気にしなきゃならんのか
0682デフォルトの名無しさん
2009/04/03(金) 16:29:51Linuxみたいにアクセス権限だけでいいだろって突っ込まれまくりだろ
0683デフォルトの名無しさん
2009/04/03(金) 16:32:42「UAC 昇格起動」と「修辞的疑問文」でくぐってからまた来てね。
0684デフォルトの名無しさん
2009/04/03(金) 16:33:35そして無意味なセキュリティをつけたらフルボッコだよ
0685デフォルトの名無しさん
2009/04/03(金) 16:34:51× 全世界の奴
○ 狂ったLinuxユーザー
0686デフォルトの名無しさん
2009/04/03(金) 16:35:580687デフォルトの名無しさん
2009/04/03(金) 16:38:37ClickOnceって.NETアプリ以外でも使えたのか
ClickOnceと同じ場所を使ってるだけかと思ってたよ
0688デフォルトの名無しさん
2009/04/03(金) 16:40:53正確には、インストーラとして使ってる、ってとこかと。
そのおかげで、統合認証以外のプロクシを使ってると、インストールすらできないw
0689デフォルトの名無しさん
2009/04/03(金) 23:29:47Verb を runas にしたら昇格するよ。
アップデータの PE わけて起動させたほうがいいかもしれないけど。
なんとなーく勘違いしてそうなので UAC についてプログラマの視点から
指摘しとくと、昇格ダイアログ出すまではプログラムで可能。
OK ボタン押したら昇格ダイアログ→OK → アップデートってやるんだよ。
あとアップデートに関して言えば、パッチパッケージにすれば明示的な
昇格はいらない(ポリシーにより不可になるし署名が要るけど)。
Program Files 以下でも。実は古くからある機能だが。
実際には、パッチは管理や検証がめんどくさくなるのであまり使われな
いけどな。
>>681
Vista ユーザーからしたら XP の何もなく管理者で動くの不安になる正直
かといって Users で使おうとしたら不便極まりないし。両立できてかなり
いい機能だと思うがなぁ >UAC。リダイレクトとかの機能含めてな。
0690デフォルトの名無しさん
2009/04/04(土) 00:26:26はい、CS0121です
引数なしのコンストラクタを呼び出しているのに
二つ選択肢があるっていうのがちょっと理解できません・・・
ヘルプのコンパイラ エラー CS0121の使用例は理解できるんですが・・・
エラーは吐いているんですがビルドできるし正常に動作しています
それも理解できないし気持ち悪いです
0691デフォルトの名無しさん
2009/04/04(土) 02:14:56int line_count = arrText.Count;
ar_OKPOS = new List<int[]>[line_count];
for (int i = 0; i < ar_OKPOS.Length; i++){
ar_OKPOS[i] = new List<int[]>(new int[][] { new int[2] });
}
foreach (string sOutput in arrText)
{
// 一行ずつ読み込んで,各行をsplitメソッドで分ける
string temp = (string)arrText[a]; // string型にキャスト
string[] temp2 = temp.Split(',');// splitメソッドで文字列アレイにして数える
int col_count = temp2.Length; // 列数を数えているだけ
string[] temp_line = sOutput.Split(',');
for(int i=0;i<temp_line.Length;i++)
{
for(int k=0;k<2;k++){
i = i + k;
ar_OKPOS[a][b][c]=Convert.ToInt32(temp_line[i]);
c++;
}
c = 0;
b++;
}
b = 0;
a++;
}
0692デフォルトの名無しさん
2009/04/04(土) 02:24:350693デフォルトの名無しさん
2009/04/04(土) 08:52:220694デフォルトの名無しさん
2009/04/04(土) 08:54:14C#はオブジェクト指向至上主義じゃないから合わないんじゃない
0695デフォルトの名無しさん
2009/04/04(土) 09:52:38ただjavaと違って、MSはほとんどデザインパターン用語を使わない
0696デフォルトの名無しさん
2009/04/04(土) 13:38:17またメソッドでメンバ変数を利用するときなるべく引数として渡した方がいいですか?
それともメソッド内でいきなり使用しても問題無いですか?
たとえばクラスに以下のようなメソッド等があったとして
private int _num;
public void Method()
int num = CalcMethod(2);
private int CalcMethod(int num1)
return num1+_num:
こういう書き方が良いのか
private int _num:
public void Method()
int num = CalcMethod(2, _num);
private int CalcMethod(int num1. int num2)
return num1+num2;
こんな書き方のほうがいいのか知りたいです。
例では単なる足し算ですが、複雑な計算をしているという仮定です。
0697デフォルトの名無しさん
2009/04/04(土) 13:41:030698デフォルトの名無しさん
2009/04/04(土) 14:20:05内部状態を存分に使ってもらって構わない気がする.
0699デフォルトの名無しさん
2009/04/04(土) 15:33:03なるべく引数で渡したほうが、その中で完結するのでわかりやすい気がして
じゃあ、あんまり気にしなくていいってことかな?
0700デフォルトの名無しさん
2009/04/04(土) 15:58:22内部状態非依存(static)の方が単体テストしやすい
まあ、その例くらいの規模なら大して変わらないんだが
0701デフォルトの名無しさん
2009/04/04(土) 16:06:09むしろそのメソッドを定義したクラスはどんな責任と制約をもってんのよ?
メソッド単体じゃあなんともいえない
>699
時と場合による
プログラミングしやすい分かりやすさもあれば、
利用しやすいわかりやすさもある
0702デフォルトの名無しさん
2009/04/04(土) 17:48:14販売する場合、ライセンス等の問題ってありますか?
0703デフォルトの名無しさん
2009/04/04(土) 17:59:310704デフォルトの名無しさん
2009/04/04(土) 21:17:480705デフォルトの名無しさん
2009/04/04(土) 21:25:07foreachでいちいちループ回さないといけない・・・
なんか他にいい方法ないでしょうか?
子フォームはアクティブな状態のものです
if (!(this.ActiveMdiChild as Form == null))
{
foreach (Control Ctrl in (this.ActiveMdiChild as Form).Controls)
{
if (Ctrl is TextBox /*例としてテキストボックス*/ )
{
//処理
}
}
}
0706デフォルトの名無しさん
2009/04/04(土) 21:41:58特定のコントロールのみを対象にするなら Panel か UserControl に貼り付けて
必要なコントロールへのアクセスを容易にすればいいよ。
0707705
2009/04/04(土) 21:54:17Panelのリストを管理するとまた手間がかかりますしねえ・・・
どうもありがとうございました
0708デフォルトの名無しさん
2009/04/04(土) 22:05:22あらかじめポトペタならコントロールが限られてるから
どちらにしても最低限のループでいけるんじゃないの?
0709デフォルトの名無しさん
2009/04/04(土) 22:16:500710デフォルトの名無しさん
2009/04/04(土) 22:29:30ないよ
0711デフォルトの名無しさん
2009/04/05(日) 00:12:49if (activeChild != null)
{
activeChild.Controls.Where(c => c is TextBox).ToList<TextBox>().ForEach(t =>
{
// 処理
});
}
かえって煩わしいな。
0712デフォルトの名無しさん
2009/04/05(日) 00:29:55ん?
実験してみようとしたのだが、インテリセンスにWhere()が表示されないのだがなんでだ?
0713デフォルトの名無しさん
2009/04/05(日) 00:42:190714デフォルトの名無しさん
2009/04/05(日) 00:43:46気がつかなかった!すげー便利じゃん!と思ったのにorz
0715n
2009/04/05(日) 00:52:48です
こいつは違反出品で昨日二度削除されました
http://auok.auone.jp/_ev?tr=83751566&et=2
空き巣に入られた?以上では‥
薔薇チョコ洋子さんは靴の転売や上履き二回削除されてるのに
今回は長期使用の文を消して書いてます
悪質なので評価欄の誹謗中傷の理由で通報お願いします
http://auok.auone.jp/item/item_189662269.html?u=4682520
わいせつ物
http://auok.auone.jp/item/item_189667641.html?u=4682520
わいせつ物
三箇所違反ですのでよろしくお願いします
0716デフォルトの名無しさん
2009/04/05(日) 02:53:120717デフォルトの名無しさん
2009/04/05(日) 03:03:10例えば
public string Name{get;set;}
というものがあって、Nameは始めはnullですが、""に初期化しておきたいのです。
フィールドでしたら
private string Name = "";
と出来ます。
プロパティの量だけコンストラクタにも初期化する量が増えてしまうのでフィールドのように出来れば一度に初期化したいのですが方法はあるのでしょうか?
0718デフォルトの名無しさん
2009/04/05(日) 03:03:270719デフォルトの名無しさん
2009/04/05(日) 03:10:310720デフォルトの名無しさん
2009/04/05(日) 09:26:10ありません
自動プロパティの使用をやめるか普通にコンストラクタで初期化してください
0721デフォルトの名無しさん
2009/04/05(日) 09:52:29リフレクションでstring型のプロパティを一括初期化できなくもないがバグの元だな
0722デフォルトの名無しさん
2009/04/05(日) 09:58:220723デフォルトの名無しさん
2009/04/05(日) 09:59:500724デフォルトの名無しさん
2009/04/05(日) 10:12:36int Method();
とだけ書いたらメソッドの中身ができちゃうようなもんだからなぁ。
パッと見同じだけど全然意味の違うものってのは、
ミスの原因だし、読むときの混乱招くから。
0725デフォルトの名無しさん
2009/04/05(日) 10:12:47タイピング量的に自動プロパティである必要がぜんぜんないな
0726デフォルトの名無しさん
2009/04/05(日) 10:14:420727デフォルトの名無しさん
2009/04/05(日) 10:22:42public string Test { get _test; set _test; }
こういう糖衣構文を可能にするだけでよかったんだよ
0728デフォルトの名無しさん
2009/04/05(日) 10:26:550729デフォルトの名無しさん
2009/04/05(日) 10:29:420730デフォルトの名無しさん
2009/04/05(日) 10:30:46でいいんじゃないの
public readonly property string Test = "";
とか
0731デフォルトの名無しさん
2009/04/05(日) 10:36:05も可能そうだな
0732デフォルトの名無しさん
2009/04/05(日) 10:41:00それは意味がわからない。普通にかけばいいだろ
public string Test { get { return GetTest(); } set { SetTest(value); } }
0733デフォルトの名無しさん
2009/04/05(日) 10:41:50美学ってやつなんだろう
0734デフォルトの名無しさん
2009/04/05(日) 10:48:09public string Test { get; }
これで何がまずいのだろう
0735デフォルトの名無しさん
2009/04/05(日) 10:48:47event DelegateType Variable;
event DelegateType Variable { add { ...] remove { ...} }
なのを考えると、
property VarType Variable;
property VarType Variable { set { ... } get { ...} }
がよかった気もするなぁ。
0736デフォルトの名無しさん
2009/04/05(日) 10:50:10楽になるじゃん
それに変数とメソッドを同時に書くこともある
public string Test { get GetTest(); set _test; }
0737デフォルトの名無しさん
2009/04/05(日) 10:52:33もうこれでいいよ
0738デフォルトの名無しさん
2009/04/05(日) 10:54:11それいいよね
読み取り専用プロパティは
readonly property VarType Variable;
にすればいいし
0739デフォルトの名無しさん
2009/04/05(日) 11:03:07初期化も何もできないじゃん
0740デフォルトの名無しさん
2009/04/05(日) 11:26:12private set;と書いたことにする
0741デフォルトの名無しさん
2009/04/05(日) 11:44:34アクセサを宣言する意味でgetやsetを書いてるのに
0742デフォルトの名無しさん
2009/04/05(日) 13:04:59( ゚д゚ )
0743デフォルトの名無しさん
2009/04/05(日) 15:08:150744デフォルトの名無しさん
2009/04/05(日) 16:25:18もともとはプロパティのアクセサにアクセスレベルは指定できなかったんだよ
public get; protected set;みたいなのはそもそも想定されてなかった
だから別に>>735の形になっててもおかしくはない
0745デフォルトの名無しさん
2009/04/05(日) 18:13:050746デフォルトの名無しさん
2009/04/05(日) 18:55:27そういうシンメトリックかどうかって話じゃないだろうw
素直に(VB方式ともいう)propertyってキーワードを導入しておいた方が
可読性の観点からは好ましかったんじゃないかって話なんじゃないの?
0747デフォルトの名無しさん
2009/04/05(日) 22:23:51イベントを理解する上でプロパティとの類似性はかなり重要なのに
構文上全然違う種類のものになっちゃってるのはさすがに
0748デフォルトの名無しさん
2009/04/05(日) 22:43:42event 知らずに普通にデリゲート型のプロパティ使ってたなぁ。
0749デフォルトの名無しさん
2009/04/05(日) 22:51:16使ってるって話ならありそうだが、デリゲート押さえてるのにイベント知らない、
なんてこと普通はありえん気がするけどね。
0750デフォルトの名無しさん
2009/04/05(日) 22:55:200751デフォルトの名無しさん
2009/04/05(日) 22:58:49同様にaddHogeListener, removeHogeListenerパターンを言語に組み込んだのがイベント
0752デフォルトの名無しさん
2009/04/05(日) 23:29:370753デフォルトの名無しさん
2009/04/05(日) 23:49:33「デリゲートはイベント処理用のもの」って認識だとそうなんだけど、
「関数ポインタの便利版」って認識だと、
関数ポインタのプロパティでイベントハンドラ取ればいいやってなってもおかしくないかと。
0754デフォルトの名無しさん
2009/04/05(日) 23:56:59button.ClickEventHandlers.Add(new EventHandler(button_Click));
これなら意味的には同じ
0755754
2009/04/05(日) 23:59:32マルチキャストでいいだろと突っ込まれそうだから一応
0756デフォルトの名無しさん
2009/04/06(月) 00:00:30ツールバーのボタンが横に並んだ1つづりのPNGファイルを
ImageListを使って切り出して使おうとしているのだがうまくいかない。
System.Windows.Forms.ImageList il = new System.Windows.Forms.ImageList();
il.TransparentColor = System.Drawing.Color.Transparent;
il.ImageSize = new System.Drawing.Size(24, 24);
il.Images.AddStrip(Resources.tool);
こんな風に書いてデザイナーに読ませると、AddStrip()が認識できずに落ちてしまうようだ。
仕方がないのでpartialされたForm本体側で追加で初期化してるんだが、当然ながらデザイナーではプレビューできない。
画像の切り出し、切り出したチップをそれぞれのコントロールで使用したいんだがどうしたらいいだろうか。
0757デフォルトの名無しさん
2009/04/06(月) 00:10:38eventをつけた場合とつけない場合は何が違うのですか?
public event EventHandler Unko;
public EventHandler Unko
0758デフォルトの名無しさん
2009/04/06(月) 00:13:42ググれかす
見た目としては、eventだと外から行える操作がデリゲートの追加と削除だけになる。
0759デフォルトの名無しさん
2009/04/06(月) 00:17:51Unkoの硬さが違ってくる
0760デフォルトの名無しさん
2009/04/06(月) 00:23:11ありがとう。
何となく分かったよ
Unkoの硬さが+=と-=だけになるってことですね
0761デフォルトの名無しさん
2009/04/06(月) 00:28:52デザイナで設定するのは無理なんじゃないの
とりあえずImageListプロパティだけ設定して,Tagプロパティにインデックスを入れといて
後でコードから舐めてImageIndexプロパティに設定し直すとか
0762デフォルトの名無しさん
2009/04/06(月) 01:04:40ありがとう。「無理」という返事を聞いてある意味安心した。
どうせデザイナーで作る部分はある程度静的な割付になるので、わざわざTagに入れてループをまわさなくても、
ImageList.Images プロパティをControl.Image に直接代入していくだけで十分だね。
0763デフォルトの名無しさん
2009/04/06(月) 01:22:48ImageList継承して"ImageStrip"のようなプロパティを追加するとか、
あるいは最初から目的のイメージを持たせちゃうとかすれば出来る気もする。
っていうか、なんでわざわざそんなC#向きでない作り方をするんだろう。
なんでも道具にあった作り方ってあると思うんだけど。
0764デフォルトの名無しさん
2009/04/06(月) 01:24:200765デフォルトの名無しさん
2009/04/06(月) 01:59:32String型に限らずやたらシールされると拡張できなくて異常に不便
0766デフォルトの名無しさん
2009/04/06(月) 02:02:160767デフォルトの名無しさん
2009/04/06(月) 02:04:16ぐぐれば腐るほどでてくるからな・・・
強いて言えば逆引き系のものがいいよ
0768デフォルトの名無しさん
2009/04/06(月) 02:04:39それはともかくStringはIEnumerable<char>として扱うと便利だよ
0769デフォルトの名無しさん
2009/04/06(月) 03:31:43コントロールで使う画像の処理をImageListに任せるのは、
Win32SDK時代から続く古式ゆかしいお作法なんだ。
0770デフォルトの名無しさん
2009/04/06(月) 08:32:28これは気づかなかった。ありがとう
0771デフォルトの名無しさん
2009/04/06(月) 09:03:500772デフォルトの名無しさん
2009/04/06(月) 09:26:25恥ずかしいレスだなおいw
0773デフォルトの名無しさん
2009/04/06(月) 09:31:03それはボケなのか……?
0774デフォルトの名無しさん
2009/04/06(月) 10:42:32変更できない方が扱いやすいから
0775デフォルトの名無しさん
2009/04/06(月) 17:54:340776デフォルトの名無しさん
2009/04/06(月) 18:04:25"stringはimmutableであった方が扱いやすい"
と言いたかったのではないかと思う。
0777デフォルトの名無しさん
2009/04/06(月) 21:19:49洋書なら色々あるけど、邦訳版が出てないのが多い・・・。
0778デフォルトの名無しさん
2009/04/07(火) 02:18:55なんで?
0779デフォルトの名無しさん
2009/04/07(火) 02:34:22記号とか入いってるとかは検索エンジン的にマイナスな気がする。
あと、なんだかんだいって後発だしね。
それと、一般名詞そのまま使ってるrubyとかと比べりゃそりゃ少なくなる。
0780デフォルトの名無しさん
2009/04/07(火) 03:42:38php の検索結果 約 9,700,000,000 件
javascript の検索結果 約 680,000,000 件
vb の検索結果 約 657,000,000 件
java の検索結果 約 377,000,000 件
scheme の検索結果 約 107,000,000 件
ruby の検索結果 約 102,000,000 件
c++ の検索結果 約 101,000,000 件
perl の検索結果 約 88,000,000 件
c# の検索結果 約 63,900,000 件
python の検索結果 約 62,300,000 件
delphi の検索結果 約 49,500,000 件
lisp の検索結果 約 8,290,000 件
fortran の検索結果 約 7,720,000 件
cobol の検索結果 約 6,530,000 件
c++/cli の検索結果 約 4,680,000 件
0781デフォルトの名無しさん
2009/04/07(火) 03:54:22ごめんそれ違う。
漏れが言ったのは、グーグルトレンドの方。
0782デフォルトの名無しさん
2009/04/07(火) 04:47:38発想は面白いよ発想は
0783sage
2009/04/07(火) 13:13:32private partial ? private protected?
0784デフォルトの名無しさん
2009/04/07(火) 13:17:510785デフォルトの名無しさん
2009/04/07(火) 13:19:160786デフォルトの名無しさん
2009/04/07(火) 14:11:03初心者向けならジェネリックやLinqの拡張をすべきではないと思うんだが・・・
0787デフォルトの名無しさん
2009/04/07(火) 14:12:590788デフォルトの名無しさん
2009/04/07(火) 14:13:04それは、貴方の考えた存在意義と違うってだけでしょう。
0789デフォルトの名無しさん
2009/04/07(火) 18:15:55他から見たらチェイサーとクレスタ
0790デフォルトの名無しさん
2009/04/07(火) 18:24:420791デフォルトの名無しさん
2009/04/07(火) 18:28:30RichTextBoxのSelectionColorプロパティみたいに、文字列をドラッグしたときの選択色を変える方法ありませんか?
0792デフォルトの名無しさん
2009/04/08(水) 05:02:52このコンパイラで一度「デバッグ無しで開始」でコンパイル成功するとソースを書き換えてもプログラムが変わらないようです
今までは少しソースを書き換えようと思ったら新規作成で新しいソース作ってコピペを繰り返してたんですがいい加減ソースの管理がキツいです
誰か助けてください
0793デフォルトの名無しさん
2009/04/08(水) 05:09:030794デフォルトの名無しさん
2009/04/08(水) 05:14:13全ては君の勘違い
0795デフォルトの名無しさん
2009/04/08(水) 06:02:20『Microsoft Visual C# Express Edition』で開発していると仮定しての話だが、(スレタイ読めよ!)
確かにVC++と違って C#の開発のときはアプリの実行ボタンでビルドが更新されないことがあるようだ。
しかし、コンパイルないしビルドボタンを押せば問題ないはず。
デバッグ無しで開始 や デバッグ実行 のボタンとは別にあるぞ。
0796デフォルトの名無しさん
2009/04/08(水) 09:47:57リビルドしてみた?
0797デフォルトの名無しさん
2009/04/08(水) 09:53:21さもなくばexploreでファイル削除
0798デフォルトの名無しさん
2009/04/08(水) 15:22:07.net におけるshadow(オーバーライドの一種で引数も返り値も変更可能なもの)
はC#だとどういう風にトランスレートすればいいんですかね?
0799デフォルトの名無しさん
2009/04/08(水) 15:26:150800デフォルトの名無しさん
2009/04/08(水) 15:27:010801デフォルトの名無しさん
2009/04/08(水) 15:27:150802デフォルトの名無しさん
2009/04/08(水) 15:30:020803デフォルトの名無しさん
2009/04/08(水) 15:32:06overridesがほぼC#のnewと同じ。
shadowとまったく同じものはなかったかと。
0804デフォルトの名無しさん
2009/04/08(水) 15:35:20public new override X
{get return ...みたいな感じで書けばいいってことですか?
0805デフォルトの名無しさん
2009/04/08(水) 15:36:43勉強してきます。
0806デフォルトの名無しさん
2009/04/08(水) 15:43:35これを回避するにはどうすればいいのでしょうか。
0807デフォルトの名無しさん
2009/04/08(水) 18:51:30inherits Foo
overrides sub f()
end sub
shadows sub g()
end sub
overloads sub h()
end sub
end class
をリフレクションで調べるとこういう違いがあるようだべさ。
public class Bar : Ansi,Auto
extends public class Foo : Ansi,Auto
public virtual Void f()
public Void g()
public Void h(),HideBySig
public constructor Void .ctor(),SpecialName
C#の場合全部のメソッドにHideBySigが付いてるんだよね。
0808デフォルトの名無しさん
2009/04/08(水) 19:28:38フォームにラベルがいくつかありまして、それぞれ
lbl001
lbl002
lbl003
という名前になっています。
で引数に001とか002を渡すと通し番号の一致するラベルのテキストを""に変えるメソッドを
作りたいのですが、どうしたら良いのでしょうか?
解りにくい文章ですみませんが、お願いします。
0809808
2009/04/08(水) 19:30:47{
lbl+number.text="";
}
という感じなのですが・・・
0810デフォルトの名無しさん
2009/04/08(水) 19:36:25Control control = this.Controls.Find(labelName, false)[0].Text = "";
thisはForm
0811デフォルトの名無しさん
2009/04/08(水) 19:39:39public void ClearLabel(string labelName)
Control control = this.Controls.Find(labelName, false)[0];
control.Text = "";
または
public void ClearLabel(string labelName)
this.Controls.Find(labelName, false)[0].Text = "";
0812デフォルトの名無しさん
2009/04/08(水) 19:42:38{
string name = "lbl" + number.ToString("000");
foreach (FieldInfo info in this.GetFields())
{
if (name == info.Name)
{
Label label = (Label)info.GetValue(this);
label.Text = "";
}
}
}
0813デフォルトの名無しさん
2009/04/08(水) 19:43:550814デフォルトの名無しさん
2009/04/08(水) 19:46:45そういうことをするならラベルをコレクションで管理しとけ
リフレクションを使うのはあくまで応急処置
最初からコレクションで生成してもいいし、どうしてもデザイナを使いたいなら以下のようにする
var labels = new List<Label>();
labels.Add(lbl001);
labels.Add(lbl002);
labels.Add(lbl003);
0815808
2009/04/08(水) 19:58:30>>811
public void ClearLabel(string labelName)
this.Controls.Find(labelName, false)[0].Text = "";
この場合labelNameは"002"とかでもlbl002を見つけてくれるのでしょうか?
>>812
なるほど。僕でも判る解りやすいコードですね
>>814
おっしゃる通りです。以降気をつけます
0816デフォルトの名無しさん
2009/04/08(水) 20:21:07見つけてくれないからlabelNameを自分で作成すれ
0817808
2009/04/08(水) 21:27:47ありがとうございました!
僕はデザイナでしかコントロールを置いたことがないので
名前の重複がありうるなんて知りませんでした。
なので名前のわかっているコントロールを探すなんてナンセンスな感じを
うけましたが、自分が無知だっただけでした!
0818デフォルトの名無しさん
2009/04/08(水) 21:49:250819デフォルトの名無しさん
2009/04/08(水) 21:54:330820デフォルトの名無しさん
2009/04/08(水) 21:56:190821デフォルトの名無しさん
2009/04/08(水) 23:41:34多分Nameプロパティとフィールド参照名をごっちゃにしてるんだろ。
>817
参照名はスコープ内で重複しないけど、コントロールごとに設定できるNameプロパティの値は重複可能。
デザイナーは勝手に「Name = 参照名」に設定してるから一意に見えるだけ。自前でNameを設定してなければ、
int num = 2;
Label label = this.Controls[ "lbl" + num.ToString("000")] as Label;
if( label != null ) { 処理 } else { エラー処理とか }
自前のコードでNameを設定してて同じNameの奴が重複してたら、最初に追加されたやつ(普通はデザイナーが作った方)が返ってくる。
どうしてもフィールド名のほうでアクセスする必要がある場合は、>812みたいにリフレクションを使う。
でもクラス内で完結することに使うことはまずない。
0822デフォルトの名無しさん
2009/04/09(木) 00:09:57交差演算子「&&」は使えませんよね?
0823デフォルトの名無しさん
2009/04/09(木) 00:12:330824デフォルトの名無しさん
2009/04/09(木) 00:18:44MSDN読め。
0825デフォルトの名無しさん
2009/04/09(木) 14:34:43更新をチェックしに行く先を変更したいんですが、可能でしょうか?
可能であれば、MSDNでも構わないので情報を頂けませんか?
0826デフォルトの名無しさん
2009/04/09(木) 14:57:20ttp://www.atmarkit.co.jp/fdotnet/clickonce/index/index.html
ttp://msdn.microsoft.com/ja-jp/library/dd350113.aspx
かね。
「配置プロバイダを設定および変更する」
をみるとmageUI.exeかmage.EXE使ってできるみたいだけど、
オンライン実行のみの場合は無理だね。
0827デフォルトの名無しさん
2009/04/09(木) 16:25:23情報サンクスです。
GUIを使って変えられそうなので少し安心しました。
しかし・・ClickOnceでやるのと自前でHTTP通信でWEBからDLさせるのと
どっちがいいんだろ・・・・
0828デフォルトの名無しさん
2009/04/09(木) 17:37:03中途半端なフレームワークは使い物にならんと偉い人も言ってるしな
0829デフォルトの名無しさん
2009/04/09(木) 19:09:18一概に決め付けるのはよくない。
従来の配布形態とClickOnceは、ネイティブアプリと.NETアプリくらい異なるので、
自分の作ってるものがどうあるべきかというレベルからよく比較検討すべきだと思う。
0830デフォルトの名無しさん
2009/04/09(木) 20:44:16別の class A のメソッドからアクセスするにはどうすればいいのでしょうか?
class A に Form1 を継承すればいいのかなと思ったんですが Form しか継承できませんでした
0831デフォルトの名無しさん
2009/04/09(木) 20:47:180832デフォルトの名無しさん
2009/04/09(木) 21:57:07それはとりあえず public にしています。
継承は Form1のnamespace.Form1で出来たのですが以下のようにしてもテキスト内容が出ませんでした
public class classA : test.Form1
{
private int CreateD01()
{
MessageBox.Show("textBox1.Text");
}
}
デバックで見てみましたが、classA の中では textBox1 の中身が空っぽでした。
Form1で同じメッセージBOXを出すときちんと表示されます
0833デフォルトの名無しさん
2009/04/09(木) 22:21:08Formを↓のようにしておけば参照介して読み取れるでしょ
public partial class Form1 : Form
{
public string MessageText { get { return textBox1.Text; } }
0834デフォルトの名無しさん
2009/04/09(木) 22:21:430835デフォルトの名無しさん
2009/04/09(木) 22:22:32クラスとインスタンスの違いが理解できていないよーな
0836デフォルトの名無しさん
2009/04/09(木) 22:53:21delegateみたいにすっきりした構文があるわりに、
structや純粋な多次元配列のせいで初学者殺しになってるよ。
そんな詰まらないところでパフォーマンスを稼いでどうするよ。
0837デフォルトの名無しさん
2009/04/09(木) 22:57:42それにプリミティブの型どうするよ。某言語みたいに固定に
するよかだいぶましだと思うぞ。
0838デフォルトの名無しさん
2009/04/09(木) 23:02:560839デフォルトの名無しさん
2009/04/09(木) 23:03:030840デフォルトの名無しさん
2009/04/09(木) 23:06:02作った(作ってる)ように見えないとかそういう意味だ。すまんな。
0841デフォルトの名無しさん
2009/04/09(木) 23:08:32なかなか使いやすいです
0842デフォルトの名無しさん
2009/04/09(木) 23:32:420843デフォルトの名無しさん
2009/04/09(木) 23:49:53開発プラットフォームとしてJavaとの差はデカイ。
多次元配列はむしろジャグ配列より性能落ちるんだが
そういやあれなんのためにあるんだ?
0844デフォルトの名無しさん
2009/04/10(金) 00:08:29性能の劣化はよく分からんが、ジャグ配列ってのがダイレクトアクセスするのに対して、
多次元配列はfoo[2,3]としたとき、内部で3*2とか演算してるとかはありそう。
0845832
2009/04/10(金) 00:11:51分割するだけで良かったんですね、 partial で無事に出来ました
ありがとうございます
>>834
不愉快な思いをさせてしまい申し訳ありません
>>835
オブジェクト指向はC#で初めて触れるもので、未だにその場その場で進めてる感じです
また復習します
0846デフォルトの名無しさん
2009/04/10(金) 00:49:19C#とGCの流儀に合わせるといい感じだが、なかなかC++のクセが抜けない。
0847デフォルトの名無しさん
2009/04/10(金) 00:54:20ポトペタなんかで拡張が楽になるから
そんなこと気にせずばんばん使ったほうがいいのかね
0848デフォルトの名無しさん
2009/04/10(金) 00:56:53structをclassみたいに使えるようにNullableを持ち出したりと、後付が酷い言語だなとは思う。
0849デフォルトの名無しさん
2009/04/10(金) 00:59:30partialは#regionで仕分けがおっつかないなら、どんどん使って良いと思うよ。
巨大クラス主義の強い味方だ。
0850デフォルトの名無しさん
2009/04/10(金) 01:18:25ilに一次元配列専用の命令があるんだけど、
一次元配列を繋ぎあわせたものであるジャグ配列のほうが最適化が効くらしい
0851デフォルトの名無しさん
2009/04/10(金) 01:25:34分かりやすいところでいくと、List<T>にあってIList<T>にないメソッドがゴロゴロあったりとかする辺りとか
0852デフォルトの名無しさん
2009/04/10(金) 01:28:250853デフォルトの名無しさん
2009/04/10(金) 01:48:30今はIEnumerable<T>がメソッド全部持っていったので問題ない
0854デフォルトの名無しさん
2009/04/10(金) 01:58:16AddRangeが・・・欲しいです・・・。
Concatしろってことなのだろうか。
あと、AsyncResultにキャストしないとAsyncDelegateが参照できない件とか。
0855デフォルトの名無しさん
2009/04/10(金) 02:06:07抽象化に失敗したオブジェクト指向はC++だけで十分なのに。
0856デフォルトの名無しさん
2009/04/10(金) 02:11:120857デフォルトの名無しさん
2009/04/10(金) 02:13:44.NETよりVCLのほうが遙かに優秀なライブラリだし
0858デフォルトの名無しさん
2009/04/10(金) 02:26:05なぜ外部公開用のコレクションを、interfaceじゃなくわざわざ具象型に
キャストさせるのが「合法」なんだっていう
0859デフォルトの名無しさん
2009/04/10(金) 02:26:59そんなにいいものではないからね
0860デフォルトの名無しさん
2009/04/10(金) 02:28:05ご教授下さいまし。
0861デフォルトの名無しさん
2009/04/10(金) 02:28:22そんな心地良い言語ってことで勘弁してやってくれ
0862デフォルトの名無しさん
2009/04/10(金) 02:29:38なぜキャストさせると思ったのかがわからない
0863デフォルトの名無しさん
2009/04/10(金) 02:32:17詳しく。
>>862
MS推奨のコーディング規約らしい。
0864デフォルトの名無しさん
2009/04/10(金) 02:39:25ダックタイピングの隆盛を見りゃ分かるじゃん
事前に静的にinterfaceを決定して変更しないなんてのは
将来的には確実に破綻する
0865デフォルトの名無しさん
2009/04/10(金) 02:46:11interfaceを決定して変更しないのはポリシーの違い
将来的に破綻するかどうかは運用の違い
0866デフォルトの名無しさん
2009/04/10(金) 02:51:16普通はキャストさせるんじゃなくて
Collection<T>を継承して
継承したクラスを公開するよ
キャストを推奨してるんじゃなく
List<T>を公開しないことを推奨してるだけ
0867デフォルトの名無しさん
2009/04/10(金) 02:58:12ましてやパフォーマンス重視の実装というんだから。
0868デフォルトの名無しさん
2009/04/10(金) 03:02:34リスクが大きすぎる技術だって話だよ
C#は別にinterface大好き、オブジェクト指向大好きというほど非現実的なことを考えてなかったので
interfaceは最小限しか使ってないってことだと思う
0869デフォルトの名無しさん
2009/04/10(金) 03:18:36どれだ?
0870デフォルトの名無しさん
2009/04/10(金) 03:27:36interfaceがあればあったでinterfaceのおかげで基本ライブラリの継承関係が希薄になってるって言うんだろ?
0871デフォルトの名無しさん
2009/04/10(金) 03:28:51過去に書かれたプログラムは動かなきゃいかんだろ
Side by Sideでバイナリはなんとかなるにしても
ソースレベルの互換性は出来る限り保たなきゃならん
0872デフォルトの名無しさん
2009/04/10(金) 03:47:55それって別にinterfaceもduck typeも関係ないとおも
そんで、むかーしのプログラムが動くのとソースレベルの互換性は
そもそも対象のユーザが違うんじゃね?
でもぼくは機能の継承じゃなく性質の継承が好きだけどね!遅いが
0873デフォルトの名無しさん
2009/04/10(金) 03:55:45IEnumerable無印のGetEnumeratorは邪魔だから捨てちゃおうと捨てたとしても
duck typeならほぼ動くじゃん
C#だとものすごい量書き直しだろ
0874デフォルトの名無しさん
2009/04/10(金) 07:47:48シチュエーションが分からないけど、それはduck typeでも大混乱になるんじゃない。
表面上動いているように見えても、提供している機能の意図が丸ごと変わったら問題は起きるだろう。
極め付きに静的チェックをしないことで、実際に表面化するまで問題に気づきにくい。
0875デフォルトの名無しさん
2009/04/10(金) 08:18:52よなぁとふと思った。
0876デフォルトの名無しさん
2009/04/10(金) 10:51:50メンバ変数とローカル変数を区別するために使う
thisをつけるから_はいらないという人もいる
好みの問題
0877デフォルトの名無しさん
2009/04/10(金) 11:11:35IEnumerableからGetEnumeratorを消して、duck typeなら"ほぼ"動くっていうのが考えられない
"ほぼ"動くけど、ちゃんと動かすにはduck typeでもものすごい量の書き直しが必要なのは変わらない
例がナンセンス
0878デフォルトの名無しさん
2009/04/10(金) 11:55:39classに格納したデータをxmlで保存してLinqで集計するとか、
CSVで記録して集計するとかしかないのかな。
0879デフォルトの名無しさん
2009/04/10(金) 12:50:360880デフォルトの名無しさん
2009/04/10(金) 13:01:26VBだけ外しても外しても毎回チェックされる。
俺だけかな。
0881デフォルトの名無しさん
2009/04/10(金) 13:04:430882デフォルトの名無しさん
2009/04/10(金) 13:12:11他に便利な方法がないかなと思って
0883デフォルトの名無しさん
2009/04/10(金) 13:24:30集計したいのか保存したいのかわからない
0884デフォルトの名無しさん
2009/04/10(金) 13:24:55自分でもそういう理解しかしていなかったんですけど
同じ(ように見える)プライベートフィールドで、アンダースコア付きと無しを
混在させているコードを見て、使い分けの基準がよくわからなかったもので
一般的にもそういう基準で使い分けがなされているのかと勝手に思ってました。
ありがとうございました。
0885デフォルトの名無しさん
2009/04/10(金) 14:01:27引数をfooにして
this.foo=foo;
と書くか、それとも引数を_fooにして
foo=_foo
にするかみたいな逡巡は良くするけれど、プライベートフィールドの方に_をつける
習慣ってのは始めて知った。自動プロパティ登場以前の、プロパティと対応する
プライベートフィールドの区別って役割もあるのかな。
0886デフォルトの名無しさん
2009/04/10(金) 14:06:42ってかそれ引数じゃなくね?
0887デフォルトの名無しさん
2009/04/10(金) 14:06:58とMicrosoftの.NETガイドライン
0888デフォルトの名無しさん
2009/04/10(金) 14:10:53>プロパティと対応するプライベートフィールドの区別って
たぶんそれですね
0889デフォルトの名無しさん
2009/04/10(金) 14:15:220890デフォルトの名無しさん
2009/04/10(金) 14:44:300891デフォルトの名無しさん
2009/04/10(金) 15:09:070892デフォルトの名無しさん
2009/04/10(金) 15:30:45なフィールドとは、先頭が大文字か小文字で区別されるから、
つまりプライベートのプロパティでプライベートのフィールドを
ラップする場合にだけ名前の衝突を避けるためにアンダースコア
が必要になるのかな。
でも、プライベートなプロパティって普通使う?
0893デフォルトの名無しさん
2009/04/10(金) 15:33:47[Flags]な列挙体フィールドとIsHogeなbool型プロパティみたいなのとかで
0894デフォルトの名無しさん
2009/04/10(金) 16:36:46>プライベートのプロパティでプライベートのフィールドをラップする場合
その時は、何と何の名前が衝突するんだ
0895デフォルトの名無しさん
2009/04/10(金) 17:08:51…だと直接触らない為にアンダースコア付ける意味はないか
0896デフォルトの名無しさん
2009/04/10(金) 17:44:07という記述があった気がする
でもMSがC#で書いたほとんどのコードはアンダーバー+先頭小文字スタイルだったりする
0897デフォルトの名無しさん
2009/04/10(金) 17:59:16好みの問題だけど、つけたからって困ることはないんだし
MSはMFC時代のm_を使ってる人もいるよねw
0898デフォルトの名無しさん
2009/04/10(金) 18:14:29VS2003のころはthis.でインテリセンス出してたから要らなかったけど
0899デフォルトの名無しさん
2009/04/10(金) 19:32:15_openとか__openとか、隠してるよってのを明示的に表現してる。
かといってフィールド変数に _ は無いと思う。
0900デフォルトの名無しさん
2009/04/10(金) 19:35:08プリフィクスじゃ無くサフィクスとしてアンダースコアつけてた人がいたが
アレって本人的には判別しやすいんだろうか
0901デフォルトの名無しさん
2009/04/10(金) 19:36:270902デフォルトの名無しさん
2009/04/10(金) 19:39:44最後の_を打った瞬間にインテリセンス(的なもの)が動いてたな。
0903デフォルトの名無しさん
2009/04/10(金) 20:40:13Visual StudioにてFormなどを追加すると、
- Form1.cs
Form1.Designer.cs
Form1.resx
などのようにグループ化?して表示されますが、
Form1のpartialクラスを新規作成しても、グループアイテムにはならないように思うのですが、
グループ化して表示するような設定とか命名規則とかってあったりしますか?
0904デフォルトの名無しさん
2009/04/10(金) 20:44:43プロジェクトファイルを見るとそういう構造を作る表現が確認できる。
Visual Studioでカスタム階層を作る操作があれば俺も知りたいな。
0905デフォルトの名無しさん
2009/04/10(金) 20:58:49まぁ直接 .csproj みるとか MSBuild あたりのドキュメント
あたって
0906903
2009/04/10(金) 21:16:54<Compile Include="UserInterfaces\Form1.HogeHoge.cs">
<SubType>Form</SubType>
の部分を、
<Compile Include="UserInterfaces\Form1.HogeHoge.cs">
<DependentUpon>Form1.cs</DependentUpon>
のように書き換えた所、見事にグループのアイテムのように表示されました。
どうもありがとうございました。
0907デフォルトの名無しさん
2009/04/10(金) 21:29:40どうすればリリース状態でexeが作成されたことが確かめられるんでしょうか
0908デフォルトの名無しさん
2009/04/10(金) 21:36:220909デフォルトの名無しさん
2009/04/10(金) 21:39:51Releaseになっています
だけどいま確かめてみたら、Releaseにしてプロパティページを閉じて、再び表示させるとまたDebugに戻ってる・・・
なんでだ・・
0910デフォルトの名無しさん
2009/04/10(金) 21:41:460911デフォルトの名無しさん
2009/04/10(金) 21:50:58その横にはブラウザで表示またはすべて中止のボタンしかないです・・・
0912デフォルトの名無しさん
2009/04/10(金) 21:54:410913デフォルトの名無しさん
2009/04/10(金) 22:29:52おかしいななんでだろう
0914デフォルトの名無しさん
2009/04/10(金) 22:42:02きっと何か分かるはず
0915デフォルトの名無しさん
2009/04/11(土) 05:38:10RichTextBoxの場合は右クリックしてもデフォで用意されているコンテキストメニューが出てきません
これは自前でContextMenuStripを記述するしかないのでしょうか?
それともどこか設定があるのでしょうか?
環境は2008EEのSP1です
0916デフォルトの名無しさん
2009/04/11(土) 05:58:390917デフォルトの名無しさん
2009/04/11(土) 15:10:50サポート外の環境であることを示す例外って、NotSupportedExceptionでいいんでしょうか。
0918デフォルトの名無しさん
2009/04/11(土) 15:12:370920デフォルトの名無しさん
2009/04/11(土) 15:51:59ないのですか
自力でやりくりしてみます
ありがとうございました
0921デフォルトの名無しさん
2009/04/11(土) 18:34:18どっちでもいいところではどういう基準で付ければいいんでしょうか
0922デフォルトの名無しさん
2009/04/11(土) 18:51:130923デフォルトの名無しさん
2009/04/11(土) 18:58:28つけないならすべてつけない
中途半端にされたら読む人が混乱する
0924デフォルトの名無しさん
2009/04/11(土) 19:03:55実行がはやくなるかもしれないとか
コンパイルがはやくなるかもしれないとか
0925デフォルトの名無しさん
2009/04/11(土) 19:08:230926デフォルトの名無しさん
2009/04/11(土) 19:09:460927デフォルトの名無しさん
2009/04/11(土) 20:57:41スコープの明示化により、処理の影響範囲が把握し易くなる点がメリット。
C# では、C++ のようにメソッド ( 関数 ) に const 修飾子を付けて immutable
である事を明示できないから、副作用が発生しそうな箇所の目印として重宝する。
this, this, ..., this みたいな処理があれば、そこは遠目にも危険地帯である事が分かる。
記述の冗長性がデメリットだが、個人的にはメリットの方が大きいと思う。
0928デフォルトの名無しさん
2009/04/11(土) 21:36:01言ってる意味がようわからんし、それはたぶん確実に俺だけでもなければ
俺の知識や理解力の不足のためじゃないと思う。
0929デフォルトの名無しさん
2009/04/11(土) 21:40:270930デフォルトの名無しさん
2009/04/11(土) 21:49:31this. はその後のインテリセンス利かせるために常に付けてる。
でも、static メンバーの場合、同じ記法で親クラスのメンバー呼べないのがちょっと残念だから使ってないわ。
0931デフォルトの名無しさん
2009/04/11(土) 21:57:060932デフォルトの名無しさん
2009/04/11(土) 22:39:110933デフォルトの名無しさん
2009/04/11(土) 22:40:140934デフォルトの名無しさん
2009/04/11(土) 22:46:400935デフォルトの名無しさん
2009/04/11(土) 22:48:36ぽとっ、ぺたっ
ってこと?コピペみたいな略語かと思っていた・・・
0936デフォルトの名無しさん
2009/04/11(土) 22:51:270937デフォルトの名無しさん
2009/04/11(土) 23:16:14ぽとっぺたっガッっ
0938デフォルトの名無しさん
2009/04/12(日) 00:01:36どんな使い道があるんですか?
0939デフォルトの名無しさん
2009/04/12(日) 00:05:220940デフォルトの名無しさん
2009/04/12(日) 00:24:48いろいろ簡単に作成できるな面白い
0941デフォルトの名無しさん
2009/04/12(日) 00:30:030942デフォルトの名無しさん
2009/04/12(日) 00:31:090943デフォルトの名無しさん
2009/04/12(日) 00:31:160944デフォルトの名無しさん
2009/04/12(日) 00:34:28十数行だけどねw
0945デフォルトの名無しさん
2009/04/12(日) 00:46:520946デフォルトの名無しさん
2009/04/12(日) 00:53:18正しい文法になってるか確かめるってこと?
0947デフォルトの名無しさん
2009/04/12(日) 00:53:39ttp://hp.vector.co.jp/authors/VA038417/RegExChecker.zip
0948デフォルトの名無しさん
2009/04/12(日) 00:56:110949デフォルトの名無しさん
2009/04/12(日) 01:02:25いや、そんなわけないよな
0950デフォルトの名無しさん
2009/04/12(日) 01:03:47おまえらだってそうだったろ?
0951デフォルトの名無しさん
2009/04/12(日) 01:05:33おれはもう練るぜ
0952デフォルトの名無しさん
2009/04/12(日) 01:10:020953デフォルトの名無しさん
2009/04/12(日) 01:38:230954デフォルトの名無しさん
2009/04/12(日) 02:25:56俺も自作アプリのUtilitiesの中に正規表現をboolで返すstaticメソッドを用意してるぞ。
いちいち例外返されたらかなわんからな。
0955デフォルトの名無しさん
2009/04/12(日) 04:43:080956デフォルトの名無しさん
2009/04/12(日) 04:47:130957デフォルトの名無しさん
2009/04/12(日) 04:47:200958デフォルトの名無しさん
2009/04/12(日) 04:48:08「100%見れないように」というのは無理。
悪あがきするなら難読化ツール使う。
Dotfuscator とか。
0959デフォルトの名無しさん
2009/04/12(日) 04:52:57まともに読む気を萎えさせるコードにしてくれるのは確か
0960デフォルトの名無しさん
2009/04/12(日) 04:56:56助かりました
0961デフォルトの名無しさん
2009/04/12(日) 12:17:55public string str;
public testB bInstance;
public testA(string s)
{
str = s;
}
}
class testB{
public string str;
public testA aInstance;
public testB(string s)
{
str = s;
}
}
class Program {
static void Main(string[] args)
{
testA a = new testA("A");
testB b = new testB("B");
a.bInstance = b;
b.aInstance = a;
Console.WriteLine(a.bInstance.str);
Console.WriteLine(b.aInstance.str);
}
}
循環参照ってC#ではいいんですか?
とりあえずコンパイルは通って期待通りの動きをしているっぽいですが。
0962デフォルトの名無しさん
2009/04/12(日) 12:23:000963デフォルトの名無しさん
2009/04/12(日) 12:27:31循環参照は設計として間違ってるという思想から、とかなんとかいう理由で。
0964デフォルトの名無しさん
2009/04/12(日) 12:32:200965デフォルトの名無しさん
2009/04/12(日) 13:49:180966デフォルトの名無しさん
2009/04/12(日) 14:01:33>>962みたいな相互依存とはまた別の話だけど
0968デフォルトの名無しさん
2009/04/12(日) 14:06:49実行時循環参照を検出できるコンパイラがあったら一度お目にかかりたいわ
0969デフォルトの名無しさん
2009/04/12(日) 15:50:33ジェネリクス関係とか型関係とかではなくて?
0970デフォルトの名無しさん
2009/04/12(日) 16:04:49ContextMenuStripはShowImageMarginプロパティをfalseに設定することで
左側のスペースを消すことができますよね
そのItemの一つからドロップダウンで表示されるToolStripMenuItemも
同じようにして左側のスペースを消したいのですが
ToolStripMenuItemにはそのプロパティがないのでできずにいます。
何か方法はないでしょうか?お願いします。
0971デフォルトの名無しさん
2009/04/12(日) 16:08:170972970
2009/04/12(日) 16:10:040973デフォルトの名無しさん
2009/04/12(日) 16:13:090974デフォルトの名無しさん
2009/04/12(日) 17:46:47そもそも、それって循環参照か?
0975デフォルトの名無しさん
2009/04/12(日) 18:11:02public Form1() {
InitializeComponent();
Hoge hoge = new Hoge(webBrowser1);
}
}
public class Hoge {
WebBrowser browser;
public Hoge(WebBrowser browser){
this.browser = browser;
browser.Navigate("http://hogehoge.com");
MessageBox.Show(browser.DocumentText);
}
}
このときNavigateはできるのに
browser.DocumentTextが取得できません。
どうすればDocumentTextを取得できるんでしょうか
0976デフォルトの名無しさん
2009/04/12(日) 18:26:460977デフォルトの名無しさん
2009/04/12(日) 18:31:11browser.Navigate("http://hogehoge/");
browser.DocumentCompleted += delegate(object sender, WebBrowserDocumentCompletedEventArgs e) { MessageBox.Show(browser.DocumentText); };
0978デフォルトの名無しさん
2009/04/12(日) 18:51:16できました。ありがとうございます
オブジェクトの参照?とかそういう類の問題だと思っていました。
0979デフォルトの名無しさん
2009/04/12(日) 19:31:380980デフォルトの名無しさん
2009/04/12(日) 23:28:37どっかにライブラリで落ちてないかな
0981デフォルトの名無しさん
2009/04/12(日) 23:51:000982デフォルトの名無しさん
2009/04/13(月) 00:31:030983デフォルトの名無しさん
2009/04/13(月) 01:19:22その中のJavaScriptを実行するのがうまくいきません
ttp://msdn.microsoft.com/ja-jp/library/be9zzz62.aspx
のサンプルで試しているのですが
String str = doc.InvokeScript("test").ToString() ;
のところで「オブジェクト参照がオブジェクト インスタンスに設定されていません」のエラーが出ます
サンプルで書かれてない部分にJavaScriptの関数を関連付けか何かをしている部分があると思うのですが
どういう処理を行えばいいのでしょうか?
0984デフォルトの名無しさん
2009/04/13(月) 01:35:430985デフォルトの名無しさん
2009/04/13(月) 01:51:16ってオチ
0986デフォルトの名無しさん
2009/04/13(月) 02:01:43private void InvokeScript()
{
if (webBrowser1.Document != null)
{
HtmlDocument doc = webBrowser1.Document;
String str = doc.InvokeScript("test").ToString() ;
Object jscriptObj = doc.InvokeScript("testJScriptObject");
Object domOb = doc.InvokeScript("testElement");
}
}
0987デフォルトの名無しさん
2009/04/13(月) 03:48:25>userState RunWorkerAsync に渡される状態オブジェクト。
これの意味がよくわかんない
refでも無いのに渡されるって何が?どこに?
0988デフォルトの名無しさん
2009/04/13(月) 03:56:46ProgressChangedイベントのProgressChangedEventArgs..UserStateの間違い。
0989デフォルトの名無しさん
2009/04/13(月) 04:23:200990デフォルトの名無しさん
2009/04/13(月) 05:50:20とりあえず、自分の小物ツールをzip版とClickOnce版で両方公開することにした。
0991デフォルトの名無しさん
2009/04/13(月) 05:59:450992983
2009/04/13(月) 10:00:34お騒がせして申し訳ありませんでした
0993デフォルトの名無しさん
2009/04/13(月) 14:03:27大文字・小文字の違いがあってもFile.Exists()ではtrueが返されてしまいます。
大文字小文字を区別してチェックする方法を教えてください。
0994デフォルトの名無しさん
2009/04/13(月) 14:06:39試しにデスクトップにa.txtというテキストファイルと、A.txtというテキストファイルを作成してみそ
0995デフォルトの名無しさん
2009/04/13(月) 14:06:46ファイルシステムで大文字と小文字の区別無いだろ
0996デフォルトの名無しさん
2009/04/13(月) 14:06:56そのやり方だけじゃ区別できないだろうね。
trueが返ってきたらあらためて文字列比較しては?
0997デフォルトの名無しさん
2009/04/13(月) 14:06:590998デフォルトの名無しさん
2009/04/13(月) 14:07:420999デフォルトの名無しさん
2009/04/13(月) 14:08:10乙
1000デフォルトの名無しさん
2009/04/13(月) 14:08:59http://pc12.2ch.net/test/read.cgi/tech/1239599317/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。