ふらっとC#,C♯,C#(初心者用) Part21
レス数が1000を超えています。これ以上書き込みはできません。
0001ななしぃ#
2007/11/18(日) 15:53:41「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
前スレ: ふらっとC♯, C#(初心者用) Part20
http://pc11.2ch.net/test/read.cgi/tech/1191036844/
0002デフォルトの名無しさん
2007/11/18(日) 16:10:060003デフォルトの名無しさん
2007/11/18(日) 16:12:34http://pc11.2ch.net/test/read.cgi/tech/1194956418/
C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
http://pc11.2ch.net/test/read.cgi/tech/1162950198/
Windows Live プログラミング
http://pc11.2ch.net/test/read.cgi/tech/1188112572/
初心者のためのプログラミング言語ガイド Part6
http://pc11.2ch.net/test/read.cgi/tech/1193132235/
0004デフォルトの名無しさん
2007/11/18(日) 16:18:350005デフォルトの名無しさん
2007/11/18(日) 17:15:45NULL許容型への代入専用だったりします?
一応コンパイルが通ってうごくみたいですが
0006デフォルトの名無しさん
2007/11/18(日) 17:17:030008デフォルトの名無しさん
2007/11/18(日) 18:21:420009デフォルトの名無しさん
2007/11/19(月) 00:15:210010デフォルトの名無しさん
2007/11/19(月) 00:16:250011デフォルトの名無しさん
2007/11/19(月) 00:18:32わかって無くても問題ないけど、使い道がわからんな・・・
0012デフォルトの名無しさん
2007/11/19(月) 00:34:50string data = rootElement.GetAttribute("data");
0013デフォルトの名無しさん
2007/11/19(月) 00:39:25何が気になったの? どうならいいの?
0014デフォルトの名無しさん
2007/11/19(月) 00:47:050015デフォルトの名無しさん
2007/11/19(月) 00:48:240016デフォルトの名無しさん
2007/11/19(月) 00:54:46数百、数千のファイルの情報をDBに登録したいのですが、
ExecuteNonQuery()でINSERT文を発行する以外でいい方法ありますでしょうか?
0017デフォルトの名無しさん
2007/11/19(月) 01:05:470018デフォルトの名無しさん
2007/11/19(月) 01:14:5100199
2007/11/19(月) 01:24:14XmlReaderが上からベタ読みで、DOMはそうじゃない との記述があったのに
サンプルコードが何かベタ書きだったのであれ?と思いました。
DOM含めXML勉強して出直してきますm(_ _)m
0020デフォルトの名無しさん
2007/11/19(月) 01:55:460021デフォルトの名無しさん
2007/11/19(月) 23:16:07どこにそんなことかいてある?
0022デフォルトの名無しさん
2007/11/20(火) 09:25:02それを使うアプリなんか作り方によるだけ。
0023デフォルトの名無しさん
2007/11/20(火) 10:59:00private ClassA a = new ClassA();
というように、宣言する時に同時にnewすることも、
コンストラクタの中でnewしてもどちらでも良いクラスがありますよね?
皆さん、どうしてます?
0024デフォルトの名無しさん
2007/11/20(火) 11:33:05使い捨ての場合はフィールドで行っているよ
0025デフォルトの名無しさん
2007/11/20(火) 12:12:15つまり違いはない
ただ前者の場合、引数に他のフィールドが使えないってだけ
0026デフォルトの名無しさん
2007/11/20(火) 12:45:44下記だとエラーが出てコンパイル出来ないのですが、一個一個ループで変換するしか無いのでしょうか?
long[] x = new long[10];
double[] y = new double[10];
y = (double[])x;
0027デフォルトの名無しさん
2007/11/20(火) 13:10:44double[] d = { 20, 20 };
object l2 = (object)l;
d = (double[])l2;
0028デフォルトの名無しさん
2007/11/20(火) 13:19:18指定されたキャストは有効ではありません
というエラーが出るのですが・・・
002927
2007/11/20(火) 13:26:36キャストが有効なのはジェネリクスだけだった。
配列は構造体だからループが一番早いと思う。
0030デフォルトの名無しさん
2007/11/20(火) 14:26:48string[] strWord = new String[26];
strWord[0] = "A";
strWord[1] = "B";
...
こんなやり方しか知らなくて・・・よろしくお願いします。
0031デフォルトの名無しさん
2007/11/20(火) 15:34:520033デフォルトの名無しさん
2007/11/20(火) 16:16:050034デフォルトの名無しさん
2007/11/20(火) 16:18:57string[] str = new string[26];
for (int i = 0; i < 26; i++)
{
bytesData[0] + i;
str[i] = System.Text.Encoding.UTF8.GetString(bytesData);
}
0035デフォルトの名無しさん
2007/11/20(火) 17:07:520036デフォルトの名無しさん
2007/11/20(火) 18:52:160037デフォルトの名無しさん
2007/11/20(火) 19:14:11string[] str = new string[26];
for (int i = 0; i < 26; i++)
{
str[i] = System.Text.Encoding.UTF8.GetString(bytesData[i]);
}
0038デフォルトの名無しさん
2007/11/20(火) 19:16:46string[] strWord = { "A","B","C"};
0039デフォルトの名無しさん
2007/11/20(火) 22:08:50それがなぜエラーになるか、わかれば少しレベルアップできますよ。
0040デフォルトの名無しさん
2007/11/21(水) 10:53:34どうやったらできますかね?
0041デフォルトの名無しさん
2007/11/21(水) 11:08:210042デフォルトの名無しさん
2007/11/21(水) 11:09:270043デフォルトの名無しさん
2007/11/21(水) 11:21:28{
const char DEF = (char)( 'Z' - 'A' + 1 );
const char def = (char)( 'z' - 'a' + 1 );
StringBuilder sb = new StringBuilder( str.Length );
for( int i = 0; i < str.Length; i++ )
{
char ch = str[i];
if( 'A' <= ch && ch <= 'Z' )
{
ch = (char)( ch - 2 );
if( ch < 'A' )
ch = (char)( ch + DEF );
}
else if( 'a' <= ch && ch <= 'z' )
{
ch = (char)( ch - 2 );
if( ch < 'a' )
ch = (char)( ch + def );
}
sb.Append( ch );
}
return sb.ToString();
}
004440
2007/11/21(水) 11:25:23やってみます
0045デフォルトの名無しさん
2007/11/21(水) 18:01:460から順番にintに出来ると思うのですが、逆は簡単に出来るのでしょうか?
swich(num)で場合分けしてintからenumの文字列を得るしかないのでしょうか?
0046デフォルトの名無しさん
2007/11/21(水) 18:58:25Enum.GetName()
0047デフォルトの名無しさん
2007/11/21(水) 19:02:15どうも有り難うございます〜。お手数お掛けしてすみませんでした。
Enum.GetName(typeof(enum), int);
0048デフォルトの名無しさん
2007/11/21(水) 19:43:130049デフォルトの名無しさん
2007/11/21(水) 19:50:36なんで文字列とかそういう話になるの?
0050デフォルトの名無しさん
2007/11/21(水) 19:51:550051デフォルトの名無しさん
2007/11/21(水) 19:53:34参照型でも普通>>48みたいなasの使い方はしないよ
asはnullチェックとセットじゃないと意味がない
失敗したときわかりにくいし
0052デフォルトの名無しさん
2007/11/21(水) 19:56:56それは、最初、直感的にやってみてエラーになったんですが、できるんでしょうか?
asオペレータは参照型で使用してくださいとなります。
enumは値型ですから駄目?
0053デフォルトの名無しさん
2007/11/21(水) 21:08:110054デフォルトの名無しさん
2007/11/21(水) 22:28:51自分が配置されているフォームを取得することはできないでしょうか。
どうしても無理なら、カスタムデザイナを使って、フォームに配置されたときに
自動的にプロパティを設定するようなやり方にしようかと思っているのですが。
0055デフォルトの名無しさん
2007/11/21(水) 22:39:11こんなVBっぽい機能使うなよw
0056デフォルトの名無しさん
2007/11/21(水) 22:50:590057デフォルトの名無しさん
2007/11/22(木) 02:16:54ttp://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.parent(VS.80).aspx
0058デフォルトの名無しさん
2007/11/22(木) 09:59:40全然違うw
0059デフォルトの名無しさん
2007/11/22(木) 11:17:27文字列配列が50個あって、これをカンマで全部つなげて文字列にしたいんだが、
string value = str[0] + ',' + str[1] + ',' + str[2] + ',' + str[3] + ・・・・・
これしか思いつかないんだorz
もうちょっとスッキリした書き方って何かありますか?
0060デフォルトの名無しさん
2007/11/22(木) 11:20:370062デフォルトの名無しさん
2007/11/22(木) 11:27:120063デフォルトの名無しさん
2007/11/22(木) 13:06:580064デフォルトの名無しさん
2007/11/22(木) 13:12:30{
0065デフォルトの名無しさん
2007/11/22(木) 13:22:350066デフォルトの名無しさん
2007/11/22(木) 14:16:26必要なだけの文字列の長さを計算して、1回のピープ確保で済む。
0067デフォルトの名無しさん
2007/11/22(木) 14:53:58string value = "";
foreach (string s in str) {
value += s;
}
は、まずいだろ。
0068デフォルトの名無しさん
2007/11/22(木) 14:59:25たぶん>>66は
string value = str[0] + ',' + str[1] + ',' + str[2] + ',' + str[3] + ・・・・・
これが高速だと言いたかったんだろ。
forループ回して+=で結合するのや
StringBuilder インスタンスのロスなどを考えても
今回の配列50個程度の文字列結合だと、
速度の点で言えばどの方法でも大差なさそうだけどね。
>>59の
string value = str[0] + ',' + str[1] + ',' + str[2] + ',' + str[3] + ・・・・・
見た目はカコワルイが、これが一番高速ってことかなwww
0069デフォルトの名無しさん
2007/11/22(木) 15:10:110070デフォルトの名無しさん
2007/11/22(木) 15:14:33将来配列の個数が増えたときも対応が利くし
+=よりは速い。
そして何よりもスマートに記述できる。
0071デフォルトの名無しさん
2007/11/22(木) 15:36:23すまんすまん、60=62だが、ここに突っ込んだんだよw
0072デフォルトの名無しさん
2007/11/22(木) 15:45:350073デフォルトの名無しさん
2007/11/22(木) 16:03:113ページ目の中にはDataGridViewがあります。
タブページ外のボタン(タブコントロールと同じフォーム内)を
クリックしたときに、3ページ目のコピーを4ページ目として、
新たにタブページを作成するメソッドって何かありませんか?
007473
2007/11/22(木) 16:11:41>新たにタブページを作成するメソッドって何かありませんか?
新たにタブページを作成するスマートな方法をご存知ないですか?
に訂正します。
0075デフォルトの名無しさん
2007/11/22(木) 17:13:26データ舐めて新規につくれとしか
>>66
,ィ⊃ , -- 、
,r─-、 ,. ' / ,/ } ち
{ ヽ / ∠ 、___/ |
署 ヽ. V-─- 、 , ',_ヽ / ,' ょ
ヽ ヾ、 ',ニ、 ヽ_/ rュ、 ゙、 /
ま \ l トこ,! {`-'} Y っ
ヽj 'ー'' ⊆) '⌒` !
で , 、 l ヘ‐--‐ケ } と
ヽ ヽ. _ .ヽ. ゙<‐y′ /
来 } >'´.-!、 ゝ、_ ~ ___,ノ
| −! \` ー一'´丿 \
い ノ ,二!\ \___/ /`丶、
/\ / \ /~ト、 / l \
007673
2007/11/22(木) 17:26:01すんません、説明不足でした。
DataGridViewのデータはコピーできなくてOKです。
3ページ目のDataGridViewの列タイトル・列幅など
プロパティのコピーができれば充分です。
何とかなりませんかね?
0077デフォルトの名無しさん
2007/11/22(木) 17:52:25それはピーポw
007873
2007/11/22(木) 18:13:03DataGridView dgv = dgvLog; ← dgvLog:3ページ目のDataGridView
tabPage4.Controls.Add(dgv);
たぶんこれで問題ないと思われます。
007973
2007/11/22(木) 18:18:44DataGridView dgv = dgvLog;
tabPage4.Controls.Add(dgv);
これを実行するとナゼか
3ページ目のDataGridViewが消えるorz
0080デフォルトの名無しさん
2007/11/22(木) 18:45:22当たり前w
試しに、
DataGridView dgv = new DataGridView();
して、それをAdd してみ。
0081デフォルトの名無しさん
2007/11/22(木) 18:50:10DataGridView dgv = new DataGridView();
DataGridView dgv = dgvLog;
tabPage4.Controls.Add(dgv);
このようにやっても3ページ目が消えます;;
どうやらdgvLogそのものをコピーするのは無理っぽいですね。。。
0082デフォルトの名無しさん
2007/11/22(木) 19:03:580083デフォルトの名無しさん
2007/11/22(木) 19:18:01008473
2007/11/22(木) 19:24:25これって何かヤバい記述なのでしょうか?
超初心者ですみません;;
0085デフォルトの名無しさん
2007/11/22(木) 20:34:49C#3.0で開発するとクライアントでは.net3.0/3.5が必要なの?
.net2.0の開発にC#3.0は使えないんですか?
0086デフォルトの名無しさん
2007/11/22(木) 20:41:280087デフォルトの名無しさん
2007/11/22(木) 20:48:243.0/3.5で追加されたライブラリを使わなければ、
C# 3.0で追加された言語仕様を使っても.NET Framework 2.0で動くはず。
86も言っている通りLinqはだめだな。
まあ、こういうことも不可能ではないみたいだけど。
http://d.hatena.ne.jp/NyaRuRu/20071121
0088デフォルトの名無しさん
2007/11/22(木) 23:09:27C# 3.0というかVisual Studio 2008で書くと、常に.NET 2.0 SP1を想定してコンパイルする点は注意。
.NET 2.0→2.0 SP1でいくつか互換性が無くなる変更が行われているので、
それらの型やメソッドに依存してるプログラムは互換しない。
例
1) .NET 2.0にのみに存在し、SP1で無くなったメソッドを使っている
→.NET 2.0 SP1環境で動かない、Visual Studio 2008ではコンパイルが通らない
2) .NET 2.0 SP1で追加されたメソッドを使っている
→.NET 2.0無印環境で動かない、Visual Studio 2008ではコンパイルが通る
0089デフォルトの名無しさん
2007/11/22(木) 23:34:220090デフォルトの名無しさん
2007/11/22(木) 23:40:37,ィ⊃ , -- 、
,r─-、 ,. ' / ,/ } だ
{ ヽ / ∠ 、___/ |
署 ヽ. V-─- 、 , ',_ヽ / ,' か
ヽ ヾ、 ',ニ、 ヽ_/ rュ、 ゙、 /
ま \ l トこ,! {`-'} Y ら
ヽj 'ー'' ⊆) '⌒` !
で , 、 l ヘ‐--‐ケ }
ヽ ヽ. _ .ヽ. ゙<‐y′ /
来 } >'´.-!、 ゝ、_ ~ ___,ノ
| −! \` ー一'´丿 \
い ノ ,二!\ \___/ /`丶、
/\ / \ /~ト、 / l \
っ
て
0091デフォルトの名無しさん
2007/11/22(木) 23:49:130092デフォルトの名無しさん
2007/11/23(金) 00:14:570093デフォルトの名無しさん
2007/11/23(金) 00:23:56市ね糞が
0094デフォルトの名無しさん
2007/11/23(金) 00:38:370095デフォルトの名無しさん
2007/11/23(金) 00:51:080096デフォルトの名無しさん
2007/11/23(金) 03:51:10ここのスレで質問させて下さい。
C#で下記VB6の処理と同じ事をしたいのですが、
VB6+DAO接続のようにうまくいきません。
(Oracleの社員マスタをmdbにインポートする)
Dim db1 As Database
'DSN接続文字列
Const DSN As String = _
"ODBC;DSN=abc;SRVR=orcl;UID=USER;PWD=Admin;"
'DAOでOracleに接続
Set db1 = Workspaces(0).OpenDatabase("", True, False, DSN)
Dim strSQL As String
’社員マスタのインポート
strSQL = "SELECT * INTO USER_SHAIN " & _
"IN '" & "C:\abc.mdb' from SHAIN"
db1.Execute strSQL
mdbにODBCでOracleにリンクして上記SQLを発行すれば
うまくいきそうなんですが
空のabc.mdbに直接Oracleのデータをインポートするには
C#+ADO.NETではやはり無理なのでしょうか?
VB+DAOでできてC#+ADO.NETではできないのは
何か悔しいです。
0097デフォルトの名無しさん
2007/11/23(金) 06:54:06そういうDAOべったりのことをしたいなら、C#からDAO使えばいいじゃね
0098デフォルトの名無しさん
2007/11/23(金) 10:26:16お前VB6のソース貼っただけで質問かよ
DAOでMDBへの接続ならこんなのがあった
http://park15.wakwak.com/~u-konko/denno/c_sample/ado.htm
0099デフォルトの名無しさん
2007/11/23(金) 11:30:52多種DB間での単一SQLって・・・
プログラム的には接続を別に持って
DB1からObjectとして取得
DB2へ取得Objectをインサート
がスマートなんじゃね?
0100デフォルトの名無しさん
2007/11/23(金) 15:30:270101デフォルトの名無しさん
2007/11/23(金) 15:39:200102デフォルトの名無しさん
2007/11/23(金) 15:54:15レスありがとうございます。
そのような感じではなくロガー用途で使いたいのです
ttp://mixlogger.the-ninja.jp/
このような感じです。
情報を小出しにしてしまい申し訳ありません。
プログラムは常駐していて、IEでなにかサイトにアクセスすると
URL、あとタイトルとアクセス時間をログにして出力すると考えています。
0103デフォルトの名無しさん
2007/11/23(金) 19:19:550104デフォルトの名無しさん
2007/11/23(金) 19:25:23何が上手くいかないか書いていない。
c#上のコーディングミスの可能性があるのにソースが貼ってない。
それにもかかわらず
>C#+ADO.NETではやはり無理なのでしょうか?
なんだそれ?
ゆとり?
0105デフォルトの名無しさん
2007/11/23(金) 20:09:470106デフォルトの名無しさん
2007/11/23(金) 20:41:21この板で久しぶりにワラタwwwww
0107デフォルトの名無しさん
2007/11/23(金) 22:32:59まあプログラマって笑いのツボ(に限らないけど)が中学生な奴が多いのかもな。
0108デフォルトの名無しさん
2007/11/23(金) 22:42:490109デフォルトの名無しさん
2007/11/23(金) 23:02:54aとbは親子の場合もあるしそうでないときもあります。
これをaからbへの相対パスに変更する簡単な方法はありますか?
0110デフォルトの名無しさん
2007/11/23(金) 23:07:40クイズ風に質問すな
0111デフォルトの名無しさん
2007/11/23(金) 23:09:04でググればいくらでもでてくるだろうに。
Uri.MakeRelativeUri
0112デフォルトの名無しさん
2007/11/23(金) 23:23:06無くてもアルゴリズムを自作できる程度のものが多い。
0113デフォルトの名無しさん
2007/11/23(金) 23:28:15どうもありがとうございます。
Uriクラスとは気が付きませんでした・・
0114デフォルトの名無しさん
2007/11/23(金) 23:33:41RS232Cの通信というのはかなりのCPU負荷をかけるものなのでしょうか?
1chでの受信ではデータの取りこぼしもほとんどなく転送速度もそこそこ出ているのですが
3chでのプログラムではPentium MのPCでは動作が不安定になってしまいました。
Core 2 DuoのPCでは普通に動くのでCPUパワーの問題かなと思ったのですが・・・。
Serialportクラスを3つ並べてそれぞれをDataReceivedイベントで監視するという
安直な考えで組んだプログラムですのでプログラムにも問題があるのでしょうが
純粋にCPU負荷がかかる処理であることが原因なのでしょうか?
0115デフォルトの名無しさん
2007/11/23(金) 23:42:36ふいたw
0116デフォルトの名無しさん
2007/11/23(金) 23:46:28同期、非同期から勉強することをお勧めする。
0117デフォルトの名無しさん
2007/11/24(土) 00:16:22イベント内でファイル開いたりしてないよね?
0118デフォルトの名無しさん
2007/11/24(土) 00:28:45>DataReceivedイベントで監視する
通信のプロトコルが分からないので断定はできないが、
たぶん設計としてここがまずいと思う。
必ずしもフリースレッドでやる必要はないんだけど、定期的にバッファをポーリングする
やり方の方がほとんどの場合適合的じゃないのかな。
0119デフォルトの名無しさん
2007/11/24(土) 14:14:11VS2005で、VSTOは持っていません。Excelは2003です。
あらかじめ、申請書のフォーマットのxlsファイルを用意し、そこに作成するWindowsアプリで
COMでExcelを操作して申請者の氏名などの情報を書き込んで、xlsを別名で保存するつもりです。
困っているのが、申請書に、Excelのフォームコントロール(チェックボックス、コンボボックス、
ラジオボックス)があり、これらをC#から操作(選択)する方法がわからないことです。
現在、VS上でどのオブジェクトを操作したらいいのかもわからない状態です。
ご存じの方がいらっしゃったら、お教えいただけないでしょうか。
0120デフォルトの名無しさん
2007/11/24(土) 16:55:300121デフォルトの名無しさん
2007/11/24(土) 17:39:56たぶん正攻法じゃないとは思うけど、
VBA側の処理で特定のセルの値とコントロールの状態をリンクするコードを書いておけば、
C#のコードからはその特定のセルの値を操作すれば間接的にコントロールを操作できるんじゃないの?
0123デフォルトの名無しさん
2007/11/24(土) 19:11:25あれば教えていただけないでしょうか?
フレームワーク2.0です。
0124デフォルトの名無しさん
2007/11/24(土) 19:22:180125デフォルトの名無しさん
2007/11/24(土) 19:34:19VBAより、用意したWSHのスクリプトを呼び出す方がかっこよくね?
0126123
2007/11/24(土) 19:37:55ありがとうございます。
うまいことクラスが用意されてる感じではなさそうってことですね。
最終的に方法が見つからなければその方法でいきたいと思います。
0127デフォルトの名無しさん
2007/11/24(土) 19:43:110128デフォルトの名無しさん
2007/11/24(土) 22:37:31ただ大量に出力する時はCOM経由は遅いのがネックだね
0129デフォルトの名無しさん
2007/11/24(土) 23:50:500130デフォルトの名無しさん
2007/11/25(日) 00:14:15System.Net.WebClientクラスのDownloadFileメソッド等で
例外処理をする以外の方法はありませんか?
0131デフォルトの名無しさん
2007/11/25(日) 00:15:03間隔よく表示したいのですけれども、方法ありますか?
0132デフォルトの名無しさん
2007/11/25(日) 00:21:24普通にGETかHEAD投げてステータスコード見ろよ
0133デフォルトの名無しさん
2007/11/25(日) 00:33:43webBrowserコントロールに読み込んで
webBrowser1.DocumentTitleでOKっぽいよ
0134122
2007/11/25(日) 01:16:09ありがとうございます。
VBScriptを直に使えるみたいですね。
完成したxlsファイルにはマクロを残したくないので、プログラム中でマクロを除去しようと考えていましたが、
WSHを使う方がスマートですね。
0135デフォルトの名無しさん
2007/11/25(日) 13:03:13Form2のボタンをクリックしたときFontDialogを表示します。
しかし、FontDialogを閉じたらForm2も一緒に閉じてしまいます。
狙いとしては、FontDialogで選択したフォントをForm2に配置してある
テキストボックスのFontプロパティに入れたいのです。
何か解決策はあるのでしょうか?
0136デフォルトの名無しさん
2007/11/25(日) 13:03:35HttpWebRequestクラスのGetResponseメソッドを使う
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemnethttpstatuscodeclasstopic.asp
の方法ですか?
この方法では404のとき例外が発生するのですが,例外を発生させない方法はありませんか?
0137デフォルトの名無しさん
2007/11/25(日) 13:25:00寿命を永らえされる方法を考えよう。
0138デフォルトの名無しさん
2007/11/25(日) 13:28:57Form2
{
0139135
2007/11/25(日) 14:47:07FontDialog fd = new FontDialog();
if (fd.ShowDialog() == DialogResult.OK)
{}
this.DialogResult = DialogResult.None;
こんな感じでフォームが閉じないように出来たのですが、これで良いのでしょうか?
というか、わざわざ最後の行を書かないといけないのが釈然としません。
0140デフォルトの名無しさん
2007/11/25(日) 14:59:290141デフォルトの名無しさん
2007/11/25(日) 15:00:570142デフォルトの名無しさん
2007/11/25(日) 15:40:35ボタンのDialogResult?
イミワカランwwww
0143135
2007/11/25(日) 15:46:14なぜFontDialogのDialogResultがFom2のDialgResultになるのか
その動作と理由が全く分かりません・・・。
後学のためにももう少し一連の動作の説明をお願いします。
0144デフォルトの名無しさん
2007/11/25(日) 15:56:33>>140は寝言だから忘れていいと思う。
想像だけど、原因はたぶんForm2に存在するボタンが、デザイナで
Form2のAcceptButtonになってるんじゃないの?
0145デフォルトの名無しさん
2007/11/25(日) 16:16:47Form.AcceptButtonではそうはならない。
寝言とか言う前にMSDNライブラリくらい読んどけボケ
0146デフォルトの名無しさん
2007/11/25(日) 16:25:27環境は.NET Compact Framework 2.0上で以下
class From1 : Form
{
public Form1()
}
0147デフォルトの名無しさん
2007/11/25(日) 16:28:49>ButtonクラスにDialogResultというプロパティがあって、
そんなプロパティーないってw
0148デフォルトの名無しさん
2007/11/25(日) 16:38:05ほらよ
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.button.dialogresult.aspx
0149デフォルトの名無しさん
2007/11/25(日) 17:27:14それは分かったから、FontDialogのDialogResultとForm2のDialogResultとの因果関係は?
0150デフォルトの名無しさん
2007/11/25(日) 17:30:500151デフォルトの名無しさん
2007/11/25(日) 17:50:21Form2をShow()で呼べばFontDialogを閉じてもForm2は閉じないことを確認しました。
つまりはそういうことなんですね。
0152デフォルトの名無しさん
2007/11/25(日) 19:34:000153デフォルトの名無しさん
2007/11/25(日) 22:32:43>>144
>>147
0154デフォルトの名無しさん
2007/11/26(月) 00:20:120155デフォルトの名無しさん
2007/11/26(月) 00:22:39相談室に来るレベルじゃないってこと
0156デフォルトの名無しさん
2007/11/26(月) 14:50:16値のチェックとかしてないけど。
private const int prefixDigits = 48;
public static int ToInt32(this char c){
return (int)c - prefixDigits;
}
public static char ToChar(this int n){
return (char)(n + prefixDigits);
}
0157デフォルトの名無しさん
2007/11/26(月) 15:07:510158デフォルトの名無しさん
2007/11/26(月) 16:33:45冗談だよね
0159デフォルトの名無しさん
2007/11/26(月) 16:40:540160デフォルトの名無しさん
2007/11/26(月) 17:00:34おかしな所があったら指摘してね。
>>159
なるほど、その発想は無かったわ。
0161デフォルトの名無しさん
2007/11/26(月) 17:03:350162デフォルトの名無しさん
2007/11/26(月) 17:18:500163デフォルトの名無しさん
2007/11/26(月) 17:19:400164デフォルトの名無しさん
2007/11/26(月) 17:54:44(char)n.ToString()
一旦stringのインスタンス作ってるのが気持ち悪いYO
0165デフォルトの名無しさん
2007/11/26(月) 18:00:45’A' とかの文字が入ったときはどうすんの?
0166デフォルトの名無しさん
2007/11/26(月) 18:12:570167デフォルトの名無しさん
2007/11/26(月) 18:21:240168デフォルトの名無しさん
2007/11/26(月) 20:20:06それはcharからint、intからcharの変換とは言わない。
0169デフォルトの名無しさん
2007/11/26(月) 20:32:29範囲チェックして例外投げるのを主な目的にするならメソッド化する意味もあるだろうけど。
あとToInt32やToCharみたいな名前を使うのは混乱するのでやめていただきたい。
0170デフォルトの名無しさん
2007/11/26(月) 20:34:170171デフォルトの名無しさん
2007/11/26(月) 21:34:050172デフォルトの名無しさん
2007/11/27(火) 06:31:540173デフォルトの名無しさん
2007/11/27(火) 07:09:370174デフォルトの名無しさん
2007/11/27(火) 07:22:09たぶん使い方間違ってるから
0175デフォルトの名無しさん
2007/11/27(火) 11:11:180176デフォルトの名無しさん
2007/11/27(火) 11:44:560177デフォルトの名無しさん
2007/11/27(火) 13:12:26ファイナライザだな
0178デフォルトの名無しさん
2007/11/27(火) 21:20:34フォームに送られてフォームが閉じるって仕様の意味が分からんな。
通常のウィンドウ操作じゃあり得ないし、何を思ってこういう仕様にしたのだろうか。
0179デフォルトの名無しさん
2007/11/27(火) 21:32:170180デフォルトの名無しさん
2007/11/27(火) 21:40:190181デフォルトの名無しさん
2007/11/27(火) 21:56:34意味分からんな。使い方間違ってんだろ
0182デフォルトの名無しさん
2007/11/27(火) 22:01:570183デフォルトの名無しさん
2007/11/27(火) 22:24:55普通のプログラムでは何の問題もない。
多分こうなってるだけ。
DialogResult = fontDialog1.ShowDialog();
みなおせ。
0184デフォルトの名無しさん
2007/11/27(火) 22:28:16馬鹿ばっか
0185デフォルトの名無しさん
2007/11/27(火) 22:31:02>>183のように子フォームのダイアログリザルトを
親フォームのダイアログリザルトに設定している
0186183
2007/11/27(火) 22:41:16憶測だけど
DialogResult = fontDialog1.ShowDialog();
は、
DialogResult dr = fontDialog1.ShowDialog();
あたりの書き間違いじゃないかな?
if(dr == DialogResult.OK)
{} else if(dr == DialogResult.…)
憶測の域を出ない。
0187デフォルトの名無しさん
2007/11/27(火) 22:47:57なんとなく書く奴って意外なほど多いぞ。
理解できないが。
0188デフォルトの名無しさん
2007/11/28(水) 00:01:440189デフォルトの名無しさん
2007/11/28(水) 00:07:390190デフォルトの名無しさん
2007/11/28(水) 01:28:08if(fontDialog1.ShowDialog() == DialogResult.OK){
//
}
0191デフォルトの名無しさん
2007/11/28(水) 01:57:090192デフォルトの名無しさん
2007/11/28(水) 02:00:450194デフォルトの名無しさん
2007/11/28(水) 05:15:03f2.ShowDialog();
Form2で
if(DialogResult.OK == FontDialog.ShowDialog()){...}
で帰ってきたDialogResultがForm2に送られてForm2も閉じる
0195デフォルトの名無しさん
2007/11/28(水) 05:15:34何故じゃー
0196デフォルトの名無しさん
2007/11/28(水) 05:42:220197デフォルトの名無しさん
2007/11/28(水) 09:24:31プロパティとかで簡単に黄色とか赤に変更できたりしないのでしょうか?
カスタムコントロールから作らないと駄目ですか?
0198デフォルトの名無しさん
2007/11/28(水) 13:20:440199デフォルトの名無しさん
2007/11/28(水) 14:40:140200デフォルトの名無しさん
2007/11/28(水) 15:08:340201デフォルトの名無しさん
2007/11/28(水) 15:26:02なんかグラデーション動いてるし角が丸っこいし
似せなくてもいいならいいけど
0202デフォルトの名無しさん
2007/11/28(水) 15:37:29グラデーションやクリッピングなんてそんな難しくないだろ?
0203デフォルトの名無しさん
2007/11/28(水) 15:42:030204デフォルトの名無しさん
2007/11/28(水) 15:42:07つーかこれ、貼り付けてるときからてかりが動いてるなw
0205デフォルトの名無しさん
2007/11/28(水) 16:15:130206デフォルトの名無しさん
2007/11/28(水) 17:39:51Theme APIで描かせればそういう風になるんじゃないの?
やったことなくて憶測だけど。
0207デフォルトの名無しさん
2007/11/28(水) 20:48:320208デフォルトの名無しさん
2007/11/28(水) 20:51:17つまり現在のビジュアルスタイルの色と形で描画されるんでしょ
質問者はその色を変えたいと。単純に色変えたいなら自前描画、
ただビジュアルスタイル風でかつ色を変えるのは不可能っしょ
0209デフォルトの名無しさん
2007/11/28(水) 20:53:18変数を直接外部からは(内部でも?)触らないようにしてプロパティでラップ
setterでイベントを起こせばそれらしくなるんじゃ
0210デフォルトの名無しさん
2007/11/28(水) 21:16:030211デフォルトの名無しさん
2007/11/28(水) 21:28:46if (this.hoge != value) {
this.hoge = value;
this.OnHogeChanged(EventArgs.Empty);
}
}
ただこれだけのこと
○○Changedはこんな感じで実装するのが普通
0212デフォルトの名無しさん
2007/11/28(水) 21:40:23いい加減つりはやめろ。
その前に見た瞬間に動かないとわかるコードを貼るのはやめろ。
0213デフォルトの名無しさん
2007/11/28(水) 22:01:02PropertyChangedをつかおう
0214デフォルトの名無しさん
2007/11/29(木) 00:10:48ToolStripMenuItemを実行したときの引数として構造体を使ってしまった。
今クラスにしとけばよかったと激しく後悔してるんですが、
構造体って相互運用以外で使い道ってあるんですか?
0215デフォルトの名無しさん
2007/11/29(木) 00:17:25冗談だスマン
0216デフォルトの名無しさん
2007/11/29(木) 00:25:160217デフォルトの名無しさん
2007/11/29(木) 01:40:180218207
2007/11/29(木) 07:12:180219デフォルトの名無しさん
2007/11/29(木) 11:43:35以下の感じになると思うのですが、途中の行から最後まで読みたい場合には、
どうしたら良いのでしょうか?
srを途中まで進めてからwhileループに入れば良いような気がしますが、
StreamReaderを任意の希望の位置まで進めるメソッドってあるのでしょうか?
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("UTF-8"));
string line;
while ((line = sr.ReadLine()) != null) {
0220デフォルトの名無しさん
2007/11/29(木) 11:51:07[n行目以降]ならStreamReaderで読み捨て
0221デフォルトの名無しさん
2007/11/29(木) 11:54:56どうも勉強になりました。有難うございます。
あまり速度に影響しないようなので、この場合、読み捨てにします。
0222デフォルトの名無しさん
2007/11/29(木) 17:58:35自動的に32ビット形式になってしまい困っています。
以下のプログラムのどこをどうしたら良いのでしょうか?
よろしくお願いします。
// 24ビットBMP形式のファイルを読み込む
Bitmap bmp = new Bitmap(@"before.bmp");
// 保存するとなぜか32ビットになっている
bmp.Save(@"after.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
0223デフォルトの名無しさん
2007/11/29(木) 18:09:480224デフォルトの名無しさん
2007/11/29(木) 18:23:223引数のSave、今はじめて知ったので調べてみました。
今ヘルプ見てるんですが、ImageCodecInfoとEncoderParametersに
何を設定するのか全然書いてないのよ;;
具体的にどのような値を記述するのか分からないです;;
0225デフォルトの名無しさん
2007/11/29(木) 18:46:33これってjpegで保存するときの圧縮率などの質を指定して
saveするパラメータだということがわかりました。
bmp形式には使えないので、引き続き24ビットBMP形式で
保存する方法をご存知の方、よろしくお願いします。
0226デフォルトの名無しさん
2007/11/29(木) 20:24:38Bitmapオブジェクトを24bitRGBで作ってからSaveで24bitにならんかな?
0227デフォルトの名無しさん
2007/11/29(木) 22:11:06関数のアンマネージシグネチャがvoid UnmanagedFunction(STRUCT*)、
P/Invokeのシグネチャがvoid UnmanagedFunction(IntPtr)
だとして、
スタックに置かれた構造体に対して
STRUCT st;
UnmanagedFunction(new IntPtr(&st));
という風にポインタを直接渡すことは安全ですよね?
0228デフォルトの名無しさん
2007/11/29(木) 22:16:430229227
2007/11/29(木) 22:23:34言葉足らずだったかも。
ここでいう直接っていうのは、HGlobalなどのアンマネージな領域に再確保することなく
マネージスタック上のアドレスを直接アンマネージ関数に渡す、という意味です。
0230デフォルトの名無しさん
2007/11/29(木) 22:24:100232デフォルトの名無しさん
2007/11/29(木) 22:55:52できますた。ありがとう
0233デフォルトの名無しさん
2007/11/29(木) 23:31:36あっちが非同期な関数だと死ぬるよ?
普通にref STRUCTでマーシャラにおまかせしないのかい?
0235デフォルトの名無しさん
2007/11/29(木) 23:59:510237デフォルトの名無しさん
2007/11/30(金) 09:14:18List<string> list;
//listに要素を入れる
list.Exists( delegate( string value ) { return list.IndexOf( value ) >= 0; } )
のように、IndexOfで引っかかるかどうかという判定にしているのですが、
意図した動作をしません。
おそらくみんなこう書くという、典型的な実装があるのではと思っているのですが、
ちょっと教えていただけませんでしょうか。
0238デフォルトの名無しさん
2007/11/30(金) 09:21:44Existsは例えばList<string>内に「**で始まる文字列が存在するか」調べるとかそんなんだが。
ていうか実装?
0239デフォルトの名無しさん
2007/11/30(金) 11:08:540240デフォルトの名無しさん
2007/11/30(金) 11:20:45bool b = aaa.Exists(new System.Predicate<string>(function1));
こんな感じでいいみたいだぞ
0241デフォルトの名無しさん
2007/11/30(金) 11:57:36なかなか哲学的だ。
0242デフォルトの名無しさん
2007/11/30(金) 12:15:45デリゲートの暗黙のインスタンス使ったほうが
コンパイラが良きにはからってくれて効率良かったりする
0243デフォルトの名無しさん
2007/11/30(金) 12:59:59え、例えばどんなとき?
暗黙だろうが明示だろうが生成される型は同じだから変わらない気がするけど。
もしかして匿名デリゲートのことを言ってるのかな?
それにしてもどういう風に最適化しうるのか気になる。
0244デフォルトの名無しさん
2007/11/30(金) 13:04:37効率ってのは実行効率?コーディングの効率?
0245デフォルトの名無しさん
2007/11/30(金) 13:19:170246デフォルトの名無しさん
2007/11/30(金) 13:42:12ソースを大きく括って見やすくするためと思っていいですか?
0247デフォルトの名無しさん
2007/11/30(金) 13:51:43同じ名前の宣言を複数実装できるからやないん?
ポリモーフィズムの延長線かもしれんけど
0248デフォルトの名無しさん
2007/11/30(金) 14:04:54例えば、
System.Drawing.Image と
System.Web.UI.WebControls.Image を
区別できるようにするため。
0250デフォルトの名無しさん
2007/12/01(土) 10:12:50わあああ
Containsがあるううう
0251デフォルトの名無しさん
2007/12/01(土) 10:15:02ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
0252デフォルトの名無しさん
2007/12/01(土) 14:19:03foreach ( DataGridViewRow row in grid.Rows ) {
MessageBox.show( row.Cells[ "Directory" ].ToString() );
MessageBox.show( row.Cells[ "File" ].ToString() );
}
このように各行のそれぞれの値を見ようとしています。
Formで表に表示されている値はちゃんとディレクトリとファイル名が表示されているのですが、
上記コードで値を取り出すと、
DataGridViewTextBoxCell { ColumnIndex=0, RowIndex=0 }
DataGridViewTextBoxCell { ColumnIndex=1, RowIndex=0 }
のような値が取得されてしまいます。
これは何が悪く、どのように書くのが正しいんでしょうか。
0253デフォルトの名無しさん
2007/12/01(土) 14:43:13ToString()は値を取得するためのメソッドじゃないし、そういう形式の文字列を返すとドキュメントにも明記されてるだろ。
0254デフォルトの名無しさん
2007/12/01(土) 14:49:15すいませんアホでした
0255デフォルトの名無しさん
2007/12/01(土) 15:45:29これらのボタン間の空白を設定するにはどうすればよいでしょうか?
MSDNを読むとMarginプロパティがそれらしいと思ったんですが、どうも影響しないようです。
0256デフォルトの名無しさん
2007/12/01(土) 16:12:37TableLayoutPanel使うか、
Panel に Button いれて
Panel の Padding を設定して
Panel の Dock を Right
Buttonの Dock は Fill
0257デフォルトの名無しさん
2007/12/01(土) 17:18:46ありがとうございます。
んーどっちもなんだか微妙ですね。
大したロジックでもないので手動でレイアウトすることにします。
0258デフォルトの名無しさん
2007/12/01(土) 17:40:39System.Collections.GenericのLinkedListとLinkedListNodeを使って、
ダブルリンクリストを作り、データ追加イベントが発生すると、ある所
からデータを抜き出してリンクリストに追加、データ削除イベントが発
生すると、リンクリストから削除って感じのクラスを作ろうとしてます。
http://msdn2.microsoft.com/ja-jp/library/ahf4c754(VS.80).aspx
のサンプルを見たのですが、今いちどうすれば良いのか分からなく困
っております。と云うのは、データの追加と削除を行う場合、サンプル
では行き成りLinkedListNodeに実データを入れて、次にLinkedList作っ
て作ったLinkedListにLinkedListNodeを追加となってます。
LinkedListNode<String> lln = new LinkedListNode<String>( "orange" );
LinkedList<String> ll = new LinkedList<String>();
ll.AddLast( lln );
ダブルリンクリストを作る場合とかって最初に空のノード作って、作った
ノードに対してデータを追加して行く、下のようなイメージを持ってました。
LinkedListNode<String> lln = new LinkedListNode<String>();
LinkedList<String> ll = new LinkedList<String>("HOGE");
lln.AddLast( ll );
動的に発生するデータを追加して行きたいのですが、どの様に実装すべ
きでしょうか?
0259デフォルトの名無しさん
2007/12/01(土) 17:46:36これを参考に、ほぼ同じ作りで動画を再生しようとしています。
再生する動画はファイルパスをリストで持っておき、停止イベントから
PlayVideoClip()を呼び出して数珠つなぎに再生します。
こちらの例とは異なり、フルスクリーンで再生します。
で、困っていることなんですが、音量を調整+ミュートにできるようにしたいと思い、
とりあえずミュートを実装しようとしたところ、
videoClip.Audio.Volume = 0; // Video videoClip
としても音量が変わらず、さらに再生が終わって停止した時に
停止イベントが呼ばれなくなってしまいました。
正しく音量調整するにはどうすればいいのでしょうか。
0260デフォルトの名無しさん
2007/12/01(土) 17:49:38ミュート自体は
videoClip.Audio.Volume = -10000;
とすることで実装できました。0は最大音量らしいです。
停止イベントが呼ばれず連続再生できなくなる件について、アドバイスをいただけると助かります。
0261デフォルトの名無しさん
2007/12/01(土) 20:11:44何言ってんのかわからない。
0262デフォルトの名無しさん
2007/12/01(土) 20:53:48ほぼ同じ作りったってコードみなきゃ話にならない
0263デフォルトの名無しさん
2007/12/01(土) 21:24:30なにがしたいのかよくわからんけど
そのサンプルは、こうしたらこんな風に状態が変わるよっていうだけのことで大した意味は無いだろ
LinkedListが自動的にリンクリストを作ってくれるから
余計なこと考えずに素直に使えばいい
0264263
2007/12/01(土) 21:30:01そのサンプル通りに使えば自動的にリンクリストが作られる
要素をリンクしていくのはLinkedListの仕事だから余計なこと考えなくていい
0265デフォルトの名無しさん
2007/12/02(日) 00:28:31サンプル通りにやればリンクリスト作られるのは分かるんですが、
最初入れるデータが無い状態で、LinkedListNodeのインスタンス
が作れないので困ってます。
サンプルだと、
LinkedListNode<String> lln = new LinkedListNode<String>( "orange" );
"orange"を最初に入れてますけど、
LinkedListNode<String> lln = new LinkedListNode<String>();
こうするとエラーになる点と、
LinkedListNode<String> lln = new LinkedListNode<String>( "orange" );
LinkedList<String> ll = new LinkedList<String>();
ll.AddLast( lln );
最初の1回目だけLinkedListにLinkedListNode入れて、2回目以降
の処理では。
ll.AddFirst( "red" );
ll.AddLast( "yellow" );
と直接データをLinkedListに入れてるので、1回目と2回目以降で処
理を分割させないと駄目なので、1回目と2回目を外見から見た時に
同じ操作でリンクさせて行くようなクラスを作りたいんですが、その
作り方が分からないのです。
0266デフォルトの名無しさん
2007/12/02(日) 00:37:080267デフォルトの名無しさん
2007/12/02(日) 00:49:23LinkedList<T>はノード全体を管理しているのだから、
そのイメージのような空のノードなんて作る必要はなく、
LinkedList<T>のインスタンスに直接AddLastすればいいぞ。
そもそもLinkedListNodeなんて要素を追加するときにいちいち作るもんじゃないと思う。
0268デフォルトの名無しさん
2007/12/02(日) 01:14:00今MSDNでLinkedListとLinkedListNodeをもう一度見てた所ですが、
ちょっと頭混乱して来ました…_| ̄|○
なんか見てると、264氏や267氏の言われるようにLinkedListに直接
突っ込んで行けば良いのは分かってきましたが、LinkedListNodeと
LinkedListとの関係が分からなくなってしまいました。
> そもそもLinkedListNodeなんて要素を追加するときにいちいち作るもんじゃないと思う。
私の言いたいのも正にそこでして、自クラスのコンストラクターで空
のノードを用意出来れば良いと思ってたので、
LinkedListNode<String> lln = new LinkedListNode<String>();
としたかった訳ですが、これだとコンパイルエラーとなります。
リストにデータを入れて行く場合は良いのですが、リストからデータ
を読む場合や消す場合、LinkedListNodeのPrev/Nextが必要になる
と思うのですが、その場合どの様にすれば良いでしょうか?
0269デフォルトの名無しさん
2007/12/02(日) 02:07:05LinkedListからLinkedListNodeを取り出したければ、
LinkedListのFirst/Lastプロパティ。ほかFind/FindLastメソッドも。
こっちからLinkedListNodeを作る必要はない。
LinkedListの要素をなめたいだけならforeachにも突っ込める。
0270デフォルトの名無しさん
2007/12/02(日) 06:57:57そもそも内部構造の詳細を意識しなくても利用できる、
内部構造の違いにかかわらず操作できる、
ようにするためにコレクションのクラスがあるんだから。
LinkedListNodeは構造を意識した直接的な操作も
サポートするために使えるようになってるだけで
コレクションを表すのはあくまでLinkedListの方、使うのも普通はこっち。
0271デフォルトの名無しさん
2007/12/02(日) 14:09:05LinkedListNode<string> lln = new LinkedListNode<string>(null);
としておくか、アイテムなければ
= new LinkedListNode<string>(null);
するかでいいんじゃね?
0272デフォルトの名無しさん
2007/12/02(日) 14:09:56としておくか、アイテムがなければ
= new LinkedListNode<string>(1つ目のアイテム);
するかでいいんじゃね?
0273デフォルトの名無しさん
2007/12/02(日) 14:51:04LinkedList<string> ll = new LinkedList();
だけでおk
0274デフォルトの名無しさん
2007/12/02(日) 17:40:13LinkedListNode自体がデータを含んでいる実体な訳ですね。
で各LinkedListNodeをLinkedListで繋いでいると。
LinkedListNodeとLinkedListの機能を逆の意味にとられえてたので混乱
してました。
リスト構造の頭と尻尾を自前で管理しようと思って、HeadNode/TailNode
見たいなのを作る為に、LinkedListNodeが存在してる物と思ってたんで
すが、LinkedListのFirst/Lastがその役割をもっててLinkedListクラス内
で自動的に管理されてる訳ですね。
どうもお騒がせ致しました。
0275たろう
2007/12/02(日) 18:11:05現在googleの検索エンジンの機能をWindowsアプリで作成しようと
思っています。
作成すると言っても検索エンジンを1から作るのでは無く、
実際にはWindowsフォームのTextBoxに入力されたら(入力値を�@とする。)
Google(http://google.co.jp)画面内の入力エリア
に�@をコピーし、Googleの検索ボタンを自動で押下し、
表示された検索一覧(データ)をWindowsフォーム内に表示したいと
考えています。
WEBページの内容を取得する方法は知っているのですが、
「Google等の検索エンジンに検索値を入力し検索ボタンを
自動で押下して検索データを取得する。」
という方法が分かりません。
何か参考になるサイト等ごございましたらお教え願います。
0276デフォルトの名無しさん
2007/12/02(日) 18:13:19"http://www.google.co.jp/search?q=�@"
0277たろう
2007/12/02(日) 19:13:57ありがとうございます。
因みに
"http://www.google.co.jp/search?q=�@"
といったWEBページのボタンを押した時にWEBサーバに送られる情報
はどの様にして調べているのでしょうか?
何か参考になるWEBサイトをご存知でしょうか?
例えば、Googleについては上記の方法で行ける事は分かったのですが
Yahoo / MSN Serch等も時間に余裕が出来たらチャレンジしてみたいと
思っています。
0278デフォルトの名無しさん
2007/12/02(日) 20:37:230279デフォルトの名無しさん
2007/12/02(日) 20:46:41とりあえず文字列はUrlEncodeしなきゃだめよ
0281デフォルトの名無しさん
2007/12/02(日) 21:32:550282デフォルトの名無しさん
2007/12/02(日) 21:57:36バイナリをあれこれ弄って一つのファイルに書き出そうとしています。
出力時には元のファイルを100KBずつ読み込んで、FileStreamとBinaryWriter を使って、
順次書き出ししようと考えているのですが、
BinaryWriter をCloseしないとファイルに何も書いてくれないという状況です。
どなたか、順次書き出しの手ほどき、よろしくお願いします。
0283デフォルトの名無しさん
2007/12/02(日) 22:03:190284デフォルトの名無しさん
2007/12/02(日) 22:05:210285デフォルトの名無しさん
2007/12/02(日) 22:19:54埋め込まれたリソースとして動画ファイル(.aviファイル)を埋め込んだのですが、このファイルを再生するにはどうしたらよいのでしょうか?
.wavファイルや.jpgなどはGetManifestResourceStreamでストリームを取得した後、コンストラクタに入れてやれば再生できたのですが
動画クラスって見つからなかったので、どうやって再生したらよいのでしょうか?
MediaPlayerやDirectShowはどうやらファイル名を指定して再生するようで今回のようにストリームから再生することができませんでした。
0286デフォルトの名無しさん
2007/12/03(月) 08:00:19つけなければアクセスに時間がかかるとか何か不都合がありますか?
0287デフォルトの名無しさん
2007/12/03(月) 08:12:190288デフォルトの名無しさん
2007/12/03(月) 08:42:46ありがとう!早速直します!
0289デフォルトの名無しさん
2007/12/03(月) 10:46:56その理由を簡単にでも教えてください
0290デフォルトの名無しさん
2007/12/03(月) 11:05:130291デフォルトの名無しさん
2007/12/03(月) 11:05:440292デフォルトの名無しさん
2007/12/03(月) 11:07:22状況も聞かずに無条件につけるべきなんていう奴は知らない。
0293デフォルトの名無しさん
2007/12/03(月) 11:10:19拡張メソッドと分けて見やすくする目的だとthisはつけないほうがいい
0294デフォルトの名無しさん
2007/12/03(月) 12:11:120295デフォルトの名無しさん
2007/12/03(月) 12:47:46プレフィックスはインテリセンスの利きを悪くするし可読性も落ちるだろ
0296デフォルトの名無しさん
2007/12/03(月) 13:07:19IronPythonのコードがそうなってる。
0297デフォルトの名無しさん
2007/12/03(月) 13:21:21C++な人が多いからとか、VB.NETではつけないとプロパティ名と被りやすいから
それに合わせてるとかきっとそういうことだろうけど
0298デフォルトの名無しさん
2007/12/03(月) 13:24:16どっちにしろインテリセンスの利きは悪くなる
可読性は_ならたいして落ちないだろうけど
C#の標準命名規則にはそんなんないのだ
0299デフォルトの名無しさん
2007/12/03(月) 13:33:060300デフォルトの名無しさん
2007/12/03(月) 13:37:070301デフォルトの名無しさん
2007/12/03(月) 13:45:430302デフォルトの名無しさん
2007/12/03(月) 13:48:320303デフォルトの名無しさん
2007/12/03(月) 13:48:45公式には無いよ
「C#コーディング標準」ではプリフィックス付けてもいいとされてるし、
大文字小文字を区別した名前を付けるなとあるから、それを守るんであれば
何か付けないとプロパティと被る
0304デフォルトの名無しさん
2007/12/03(月) 14:05:51sleepで数秒寝かせて無限ループで取得という方法でいいんでしょうか?
0305デフォルトの名無しさん
2007/12/03(月) 14:10:190306デフォルトの名無しさん
2007/12/03(月) 14:11:52でもその方法だとなぜか重すぎてキャンセルとか受け付けてくれないんですよ
0307デフォルトの名無しさん
2007/12/03(月) 14:21:14どうせ0秒から3秒くらいのランダムとかして平均1.5秒でアクセスしてるんだろう。
0308デフォルトの名無しさん
2007/12/03(月) 14:39:130309デフォルトの名無しさん
2007/12/03(月) 14:47:29mainのなかでwhile使って無限ループさせてるんでそうだと思います
guiのプログラミングって何が何だかわからない
0310デフォルトの名無しさん
2007/12/03(月) 14:48:470311デフォルトの名無しさん
2007/12/03(月) 15:12:18教えてくださいお願いします。
0312デフォルトの名無しさん
2007/12/03(月) 15:39:330313デフォルトの名無しさん
2007/12/03(月) 15:51:42それはジェラート。
0314デフォルトの名無しさん
2007/12/03(月) 16:19:29もたいな文字列が在る場合。↓みたいな感じで表示するにはどうすれば良いですか?
M-SEARCH * HTTP/1.1\r\n
MX: 3\r\n
HOST: 239.255.255.250:1900\r\n
MAN: "ssdp:discover"\r\n
ST: urn:schemas-upnp-org:service:WANIPConnection:1\r\n
\r\n
0315デフォルトの名無しさん
2007/12/03(月) 16:25:330316デフォルトの名無しさん
2007/12/03(月) 19:24:06夢幻ループ化。
処理をWindowsに返さないといけないんです。
Windowsから仕事しロッテ言われてから動けばいいんです。
自分から動きたい場合は、そのタイミングで呼び出してもらえるように約束を取り付けておけばいいんです。
0317デフォルトの名無しさん
2007/12/03(月) 21:27:09GUI関係ないだろ・・・
Timer使え
0318デフォルトの名無しさん
2007/12/03(月) 21:49:01名前空間は、団体名. 技術名. 分野と記述するのが推奨だと始めて知ったのですが、
普通はこの形式で名前空間定義をしているのでしょうか?
0319デフォルトの名無しさん
2007/12/03(月) 21:53:090320デフォルトの名無しさん
2007/12/03(月) 21:59:430321デフォルトの名無しさん
2007/12/03(月) 22:10:15しかし、どこのスレも下らん馴れ合いで嬉しくなっちゃう単細胞な馬鹿が多いな。
0322デフォルトの名無しさん
2007/12/03(月) 22:19:57ググるといろんなサイトや掲示板で、Cなどで作ったdllのimportに苦労してる人がけっこう見つかります。
でも、アドバイスしてる人も“難しい”とは言いますが“不可能”と言ってる人は見かけません。
理論的に不可能ではないが、非常に難しい場合もある、ということでしょうか?
0323デフォルトの名無しさん
2007/12/03(月) 22:36:55Cのdllなら基本的に難しいことはないと思うが・・・。
C++のクラスライブラリをインポートするのは不可能。
0324322
2007/12/04(火) 01:13:57引数が構造体だったりすると大変にならないですか?
実は以前、他所様のCで書かれたdllを使おうと試みたんですが、
引数の構造体の中身が分からなくて断念したことがあります・・・
私の能力が至らないだけで、本当はできるんでしょうか?
>C++のクラスライブラリをインポートするのは不可能。
え、そうなんですか?すいません、どうして不可能なのか簡単に教えて頂けないでしょうか?
0325デフォルトの名無しさん
2007/12/04(火) 01:24:16C#でプログラミングしてるからここに。
TcpClient使ってネットワークストリームから出力すると
レスポンスヘッダと内容自体がいっしょくたになるけど
これをレスポンスヘッダと内容を効率よく分解する方法ってない?
TcpClient以外を使うっていうのは無しで。
0326デフォルトの名無しさん
2007/12/04(火) 01:29:44C++のABIは標準化されてないから
0327デフォルトの名無しさん
2007/12/04(火) 02:19:00構造体なんて定義すればいいだけだよ
C同士だって構造体の中身がわからなければ何もできないでしょ
0328322
2007/12/04(火) 02:51:26アンマネージなC++クラスライブラリだと駄目ってことでしょうか?
やるとしたら、マネージなのに作り直すか、クラスを使わないようにする、という認識で合ってますか
0329デフォルトの名無しさん
2007/12/04(火) 02:55:37もちろんクラスをマネージコードとやりとりしなければいいのであって、DLL内だけで使用する分には問題ないよ。
0330デフォルトの名無しさん
2007/12/04(火) 03:14:460331デフォルトの名無しさん
2007/12/04(火) 04:49:49DllImportのCallingConvention.ThisCallを使えばできるが、
ファクトリや開放用のメソッドが必要になったりで
正直おすすめしない。
0332322
2007/12/04(火) 06:09:38いや、中身が分からないんです。非公開というか勝手に使ってるだけなので。
で、もう一度トライしてみたらできました!朝までかかってしまいましたが・・・
dll内の関数の引数や返り血が構造体のポインタなのですが、C#のほうで適当に
struct hoge{};
と空っぽの構造体を作ってしまいました。とりあえず正常に動きました!(´∀`)ヤッター
でも、何故これで動くのかあんまりよく分かってないのですが、このまま使って大丈夫でしょうか??
unsafeでやってるので少し不安です・・・
>>329
探したら↓などを見つけました。
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20010&forum=7
COMを使えばクラスライブラリも呼べるようですが、茨の道みたいですね
>>330
無理してコードを変えるより、そのままC++/CLIでラップするほうが楽だし安全、ということでしょうか。
・・・というか、これ使えば何でもできるんじゃ?もしかして相当すごい機能?
>>331
すいません、まだそういうことできるレベルじゃないです。。
もう寝ます。皆様お付きあい頂いて、ありがとうございました。
0333デフォルトの名無しさん
2007/12/04(火) 10:47:07このMonthCalendarコントロールを表示した際にフォーム内からはみ出た部分が表示され
ないのですが、回避するにはどうしたらよいのでしょうか?
0334デフォルトの名無しさん
2007/12/04(火) 11:39:040335デフォルトの名無しさん
2007/12/04(火) 12:18:46これらを配列として扱うには下記の方法でよろしいでしょうか?
label1〜label4がフォームに置いたラベルです
Label[] lblArr = new Label[4];
lblArr[0] = label1;
lblArr[1] = label2;
lblArr[2] = label3;
lblArr[3] = label4;
考え方がよくなかったりしたら教えてください
0336デフォルトの名無しさん
2007/12/04(火) 12:33:27あらかじめ貼っておくか、追加するときに場所と大きさ計算してフォームのサイズを調整したら
>>335
いいよ
Label[] lblArr = new Label[]{ label1, label2, label3, label4 };
でもいい
0338デフォルトの名無しさん
2007/12/04(火) 13:34:32一応こういうのもある
>>335-336の方が好ましいのでできればやめた方がいいけど
0339デフォルトの名無しさん
2007/12/04(火) 15:05:320340339
2007/12/04(火) 15:10:04タイマーイベントのハンドラの中で、現在押下されているキーをすべて取得するといった内容で考えております。
0341デフォルトの名無しさん
2007/12/04(火) 15:13:29UDPポートをbindして、クライアントから一方的にudpデータが
送られてくる状況で、パケットの取りこぼしが発生してしまいます。
クライアントから送られてくるデータの、先頭2バイトをインクリメントデータの
シーケンス番号としておりまして、これを連続して取り出したところ
最大で10パケットほどごっそり抜けるといった現象が発生しています。
以下がプログラムの流れです。
1.ソケット作成
2.Socket.BeginReceiveFrom〜で非同期受信開始
3.コールバックメソッドで、先頭2バイトを読み出してシーケンス番号を確認。
4. 3.のシーケンス番号を保存して、再びSocket.BeginReceiveFrom〜を呼び出し。
5.再度のコールバックメソッドで、4.で保存したシーケンス番号と
新しいシーケンス番号に2以上の差があるときがある。(おおよそ2〜10程度)
UDP自体は信頼性のないネットワークなのは十分承知しているのですが、
クライアントからのデータはCore2DuoのPCでデータを受信しているので、
CPUパワーからして本当に取りこぼすのか疑問に思っております。
Wiresharkでパケットをキャプチャするとネットワークライン上には
正しくデータは流れているので、Windowsは取りこぼしていないが、
アプリケーションの段階で取りこぼしているのかなと想像はしているのですが……。
どなたか同じような症状の方おりませんでしょうか。
またわかる方がいればご教示願えませんでしょうか。
orz
0342デフォルトの名無しさん
2007/12/04(火) 15:19:061パケットに複数まとまってるんでない?
0343デフォルトの名無しさん
2007/12/04(火) 15:20:32C#の文法規則の意味について教えてください。
C++は理解しており、メンバーに対するアクセス指定は理解できるのですが
クラスに対するアクセス指定の意味がわかりません。
名前空間内でクラス宣言を行うときにクラス自体にpublicかinternalの
アクセス指定ができますが、これらは何を意味するのでしょうか?
理解していること
・名前空間内で指定可能なアクセス指定子はpublicかinternalのみ
・省略するとinternalとなる
0344デフォルトの名無しさん
2007/12/04(火) 15:26:07GetAsyncKeyState()等のAPI 使うとかでどうか
0345デフォルトの名無しさん
2007/12/04(火) 15:29:00http://msdn2.microsoft.com/ja-jp/library/ba0a1yw2(VS.80).aspx
0346339
2007/12/04(火) 16:02:59ビンゴでした。THANKS!
http://www.cam.hi-ho.ne.jp/oishi/tips.html#keystate
を参考に、GetKeyStateで出来ました。
[DllImport("user32.dll")]
private extern static Int16 GetKeyState(VirtualKeyStates nVirtKey);
private enum VirtualKeyStates : int
{
VK_LBUTTON = 0x01,
VK_RBUTTON = 0x02,
}
public void OnTimedEvent(Object sender, ElapsedEventArgs e)
{
bool fLeftPressed = (GetKeyState(VirtualKeyStates.VK_LEFT) & 0x8000) != 0;
bool fRightPressed = (GetKeyState(VirtualKeyStates.VK_RIGHT) & 0x8000) != 0;
}
0347339
2007/12/04(火) 16:16:20private enum VirtualKeyStates : int
{
VK_LEFT = 0x25,
VK_RIGHT = 0x27,
}
必要な定義はこちらでした。
0348デフォルトの名無しさん
2007/12/04(火) 16:51:16ありがとうございます。
『public と宣言された型には、他のすべての型がアクセスできます。
internal と宣言された型には、同じアセンブリに所属する型だけが
アクセスできます。』
とあるのですが、ここでいうアセンブリとはソースファイルという理解
で正しいでしょうか?
0349348
2007/12/04(火) 16:55:18ということは、internal指定のクラスの場合は同一DLL, EXE
からしか参照できなくて、public指定のクラスの場合は
別のDLLやEXEから参照できるということですね。
0350デフォルトの名無しさん
2007/12/04(火) 16:57:510351デフォルトの名無しさん
2007/12/04(火) 16:59:18Keysつかえよ。
0352デフォルトの名無しさん
2007/12/04(火) 22:38:31kernel32.dllやuser32.dllなどといったものは64ビットWindowsにも存在するのでしょうか?
またこれらに64ビットポインタを渡しても問題ないのでしょうか?
手元に64ビット環境がないので、よろしくお願いします。
0353デフォルトの名無しさん
2007/12/04(火) 22:46:1864bitのAPIも同名DLL
WoW64で動くかどうかでどっちを使うか自動判断
明示したけりゃ/platform
0354デフォルトの名無しさん
2007/12/04(火) 23:03:46どうもありがとうございます。
特別な理由がなければ何も考えずに書けばいいんですね。
もう一つ質問があるのですが、32用と64ビット用の二つのdllがある場合、
P/Invokeで実行環境に適したdllを読み込むことはできますか?
0355デフォルトの名無しさん
2007/12/04(火) 23:22:37>>353のレスちゃんと読んでやれよ・・・
0356352
2007/12/04(火) 23:38:07どういうことです?
WOW64上で動作させて32ビット用を読み込めということですか?
ちなみにこの場合のdllはシステムにあるものではなく、自作のdllという意味です。
0357デフォルトの名無しさん
2007/12/04(火) 23:40:210358デフォルトの名無しさん
2007/12/04(火) 23:46:040359デフォルトの名無しさん
2007/12/04(火) 23:49:07シングルトンで実装させれば使う側は気にしなくてすむようになるけど
DLL検索パスを利用してうまいことやればdll名だけ違うDllImportとか書かなくてもなんとかなるかな
0360デフォルトの名無しさん
2007/12/04(火) 23:53:100361352
2007/12/04(火) 23:56:03最悪そうせざるをえないですね。
>>359
実行時に検索パスを設定するorアーキテクチャによって変更するってできるんですかね?
できたらかなりすっきり書けそうですが。
>>360
そうしたら実行環境が限られてしまうんじゃないですか?
0362デフォルトの名無しさん
2007/12/05(水) 00:01:510363デフォルトの名無しさん
2007/12/05(水) 00:02:26PATH
> そうしたら実行環境が限られてしまうんじゃないですか?
限られるんじゃなくて限らせるの。
x86とx64両方つくりゃいいだけ。
0364デフォルトの名無しさん
2007/12/05(水) 00:08:05それはちょっと保守の手間が増えるので避けたいです。
>>362
そうですね。とりあえずその方法でいきたいと思います。
どうもありがとうございました。
0365352
2007/12/05(水) 00:08:480366デフォルトの名無しさん
2007/12/05(水) 00:30:28継承を使って派生させて使うのとどっちがいいのでしょうか?
今までベースクラスに汎用メソッドを書いていたのですが、
Xmlの操作とか、クラスの本質に関係のない部分はユーティリティクラスのほうがいいのかな
と最近思うようになってきました。
HttpUtility.UrlEncodeみたいに、.NETでもユーティリティクラスの存在そのもの
を禁止されているわけではないですよね・・・
0367デフォルトの名無しさん
2007/12/05(水) 00:31:10Mathとか
0368デフォルトの名無しさん
2007/12/05(水) 00:41:310369デフォルトの名無しさん
2007/12/05(水) 00:45:570370デフォルトの名無しさん
2007/12/05(水) 01:11:47作ってみたいと思いました。
WebAPIを作るにあたり必要なスキルは何でしょうか?
またWebAPIの開発の参考書などがあればご紹介ください。
WebAPIを利用するための参考書じゃなくて自分でWebAPIを開発する参考書です。
0371デフォルトの名無しさん
2007/12/05(水) 01:27:34レスありがとうございます。
staticメソッドを計算の代用とか気軽な目的で自体は
問題なさそうですね・・・。
0372デフォルトの名無しさん
2007/12/05(水) 01:48:25Google Maps API 質問箱
http://pc11.2ch.net/test/read.cgi/tech/1131627583/
0373デフォルトの名無しさん
2007/12/05(水) 09:13:16まあユーティリティと言ってるものの内容にもよるけど。
0374デフォルトの名無しさん
2007/12/05(水) 12:14:480376デフォルトの名無しさん
2007/12/05(水) 12:59:050377デフォルトの名無しさん
2007/12/05(水) 14:53:400378デフォルトの名無しさん
2007/12/05(水) 16:05:400379デフォルトの名無しさん
2007/12/05(水) 17:04:150380デフォルトの名無しさん
2007/12/05(水) 17:07:520381デフォルトの名無しさん
2007/12/05(水) 17:13:42ガイジン特有の変な例えのせいでデリゲートが全然理解できなかったが。
0382デフォルトの名無しさん
2007/12/05(水) 17:27:25なかなか読みやすかったのを覚えてる。
0383デフォルトの名無しさん
2007/12/05(水) 17:31:370384335
2007/12/05(水) 18:07:26やばいかな
0385335
2007/12/05(水) 18:08:050386デフォルトの名無しさん
2007/12/05(水) 18:08:570387デフォルトの名無しさん
2007/12/05(水) 18:32:16いや分からんかも…
0388デフォルトの名無しさん
2007/12/05(水) 18:36:23でも動画なんて埋め込みたいとは思わないな俺は
0389デフォルトの名無しさん
2007/12/05(水) 18:36:330390デフォルトの名無しさん
2007/12/05(水) 18:44:00メモリに読めば何とかなるのなら、APIでリソースから直接読むのは可能。
0391デフォルトの名無しさん
2007/12/05(水) 20:23:14メモリにあるものをどうやって再生するかって話じゃないの?
テンポラリフォルダにでも展開しちゃえばいいんじゃないかと思うが
0392デフォルトの名無しさん
2007/12/05(水) 22:24:32川俣氏のやつですよね
以前2chで叩かれてるところに本人降臨してたスレがありましたが、中身はガチと思っていいんですかね?
0393デフォルトの名無しさん
2007/12/05(水) 22:30:06内容は悪くないというか、簡潔でいいと思うけど、
あれで習得できるのは「ミニマムリクワイアメント」に過ぎないね。
0394デフォルトの名無しさん
2007/12/05(水) 22:32:37あの人どうも筆が走りすぎる感があるな
C#入門とかあの辺はよく書けてるんだけど
0395デフォルトの名無しさん
2007/12/05(水) 22:38:30俺が思うに、川俣の文体に反発する人間っていうのはたぶんあまり読書経験がないというか、
文芸的な文章を読まないタイプの人でしょ。
あれはああいう文体で、あんなものベタにとって反発するってどんだけオボコいんだよ、
と俺なんか思っちゃうけど。
0396デフォルトの名無しさん
2007/12/05(水) 22:47:510397デフォルトの名無しさん
2007/12/05(水) 22:48:390398デフォルトの名無しさん
2007/12/05(水) 22:52:07ここは初心者用質問スレだ
0399デフォルトの名無しさん
2007/12/05(水) 22:52:110400デフォルトの名無しさん
2007/12/05(水) 22:53:08>オボコい
久しぶりに見たよw
0401デフォルトの名無しさん
2007/12/06(木) 00:33:010402デフォルトの名無しさん
2007/12/06(木) 01:01:450403デフォルトの名無しさん
2007/12/06(木) 02:34:50他者の発言を取得して画面を更新したりするプログラムを作りたいと思っています。
以下のような構造になるのかなと考えています。
【ユーザ】←HTTP→【画面側プログラム�@】←なんらかの方法→【プログラム�A】←→インターネット
�@:
ASPで、他者の発言の取得はn秒ごとにポーリングを行う。
(サーバプッシュ型にできればなお良い)
�A:
EXEにしてサービス化?ともかく常時起動しており、チャットには繋がりっぱなしにする。
�@の状態には依存しない。
ASPにして�@と同化させると、ユーザが画面を開くたびにインスタンスが新しくなってしまうのと
ユーザが画面を開かなければインスタンスを作れないので分ける必要がある(と思っている)
そこでよく分からないんですが、まず、IISの起動と終了のイベントを拾って
プログラムを動かすことができるのでしょうか。
可能なら、�@と�Aを一緒くたにして、IIS起動でチャット接続して、その状態をstaticメンバにして
全インスタンスで共有し、終了で切断するということでASP一本にできると思ってます。
これは可能でしょうか。
もう一つ、分ける場合には�@と�Aで情報のやりとりをする必要があります。
�Aでインタフェースを提供し、�@はそれを呼び出すだけという形にしたいです。
�@から見たときに利用を簡単にしたいので、できればWebサービスとしてインタフェースを
提供できないかなと思うのですが、�AがASPじゃなく普通のEXEの時に、�AでWebサービスを
実装するにはどのようにすればいいのでしょうか。
(�AがASPなら、IISが良きに計らってくれますが…)
また、Webサービスが無理ならどういう方法で通信するのがベターでしょうか。プロセス間通信とか?
妄想段階なので曖昧な点が多いのですが、アドバイスをいただければ幸いです。
よろしくお願いします。
0404デフォルトの名無しさん
2007/12/06(木) 03:10:01その暗号化キーをどこに保存しようか悩んでいます。
Firefox のマスタパスワードみたいに毎回問い合わせるのは最終手段にしたいと思ってまして、
じゃあどこにどうやって保存しようかな……という話です。
0405デフォルトの名無しさん
2007/12/06(木) 13:26:26まあ反発してたってのがどんなんかしらんから何とも言えんけど、
誤解を招きやすい文章だと思ったことは何回かある。
0406デフォルトの名無しさん
2007/12/06(木) 13:36:090407デフォルトの名無しさん
2007/12/06(木) 14:05:11ASPスレで聞いたほうがよい
たぶんセッションで出来る
0408デフォルトの名無しさん
2007/12/06(木) 14:48:03また、そういうったアイコンは勝手に使ってもいいんでしょうか?
0409デフォルトの名無しさん
2007/12/06(木) 15:00:29http://i-keisuke.at.webry.info/200701/article_13.html
ライセンス的に大丈夫なのか知らないけどこういうのも可能みたい
0410デフォルトの名無しさん
2007/12/06(木) 15:51:04private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
}
では上手くいきません。
どのようにしたら良いのか教えてください
0411デフォルトの名無しさん
2007/12/06(木) 17:30:21どうやったら解消されるか教えてください。
目的は、csvファイルからデータを読み込んで、2番目のデータを配列に
挿入することです。
class FileRead2
{
public int[] data;
public void fileRead()
{
string[] list;
string line;
int k = 0;
StreamReader r = new StreamReader("data.csv",Encoding.Default);
while ((line = r.ReadLine()) != null)
{
list = line.Split(',');
/*1*/ data[k] = Convert.ToInt32(list[1]);
k++;
}
r.Close();
}
}
0412デフォルトの名無しさん
2007/12/06(木) 18:01:29空文字なんじゃねーの?
Console.writeline(list[1] == string.Empty);
/*1*/ data[k] = Convert.ToInt32(list[1]);
でやってみれ
0413デフォルトの名無しさん
2007/12/06(木) 18:21:520414デフォルトの名無しさん
2007/12/06(木) 18:27:31なんでエラーの内容を書かないかな。
list[1]がないか、Parseに失敗してるかのどちらかだろうけど。
0415411
2007/12/06(木) 18:43:07オブジェクト参照がオブジェクト インスタンスに設定されていません。
というものです。
エラー発生時のlistの中身を確認してみると6番目までデータが
入っているので、どうやらparseに失敗しているようです。
0416デフォルトの名無しさん
2007/12/06(木) 19:05:13そりはもしかして public int[] data; のdataを初期化してないのでは?
0417デフォルトの名無しさん
2007/12/06(木) 19:24:00配列の境界を越えてるとかなら分かるが
0418デフォルトの名無しさん
2007/12/06(木) 19:24:35B.Hoge(){};
using A;
using B;
public static void Main{
Hoge();
}
この場合どっらのHoge()が呼び出されんですか?
0419デフォルトの名無しさん
2007/12/06(木) 19:27:010420デフォルトの名無しさん
2007/12/06(木) 19:27:400421デフォルトの名無しさん
2007/12/06(木) 19:35:09data == null
0422デフォルトの名無しさん
2007/12/06(木) 19:37:05それしかないな
0423デフォルトの名無しさん
2007/12/06(木) 19:37:30ファイルの行数が決まってないから初期化できない、というならList<string>を使え。
0424デフォルトの名無しさん
2007/12/06(木) 19:48:230425デフォルトの名無しさん
2007/12/06(木) 19:49:28Silverlight
0426411
2007/12/06(木) 20:03:15配列を初期化していないことが原因でした。
無事解決できて良かったです。
0427デフォルトの名無しさん
2007/12/06(木) 21:15:55遅くなりましたがありがとうございました。
EEを使ってる人は標準のアイコンすらないんですね;
0428デフォルトの名無しさん
2007/12/06(木) 22:18:54ToolStripやMenuStripなら「標準項目の挿入」でいくつかアイコンがつくね。
そいつをなんとか保存しといて使い回したら? ちっこいけど。
0429デフォルトの名無しさん
2007/12/06(木) 23:16:30インスタンスが理解できません
だれかわかりやすく説明してください
0430デフォルトの名無しさん
2007/12/06(木) 23:33:450431デフォルトの名無しさん
2007/12/06(木) 23:35:190432デフォルトの名無しさん
2007/12/06(木) 23:49:37クラス…社員
インスタンス…平社員の山本
みたいなのって余計混乱させるだけだと思う
0433デフォルトの名無しさん
2007/12/06(木) 23:58:59使ってりゃ分かる
0434デフォルトの名無しさん
2007/12/07(金) 00:44:24「標準項目の挿入」というのはどこにあるんですか??
0435デフォルトの名無しさん
2007/12/07(金) 01:46:15半角英文で書かれたWord文書を読み込んでXMLに出力するプログラムをC#(VS2003)で作成しています。
問題なのは、Word文書中に半角の「μ(みゅー)」や「π(ぱい)」が存在する場合で、読み込んでstring変数に格納した時点で「(」のような文字に変わってしまいます。
化けずにうまく読み込む方法はありますでしょうか?
ちなみに、半角の「μ」や「π」は、Wordの「挿入−記号と特殊文字」 メニューから挿入したものです。
よろしくお願いします。
0436デフォルトの名無しさん
2007/12/07(金) 01:55:51ポトペタしたあと、そいつをクリックするとそいつの右上あたりに矢印がでて、
そいつクリックすると出るウィンドウの中。
0437デフォルトの名無しさん
2007/12/07(金) 03:32:17コンソール出力だけど普通に化けなかったよ?
なんか情報出てないんじゃない?
0438デフォルトの名無しさん
2007/12/07(金) 05:22:03わ!
ありがとうございます!!
0439デフォルトの名無しさん
2007/12/07(金) 13:53:40トレースで出力してみましたが、文字化けしています。
全角なら問題ないのですが...。
0440デフォルトの名無しさん
2007/12/07(金) 13:55:36どう化けるの?
実際に出力してるコードは16進でダンプしてみた?
表示のフォントはどれにしてるの?
0441デフォルトの名無しさん
2007/12/07(金) 14:13:07string変数の中身はセミコロンのような文字になっています。
フォントは、Wordはセンチュリーで、VSの出力ウィンドウのフォントもセンチュリーに変更したら、こちらは正しく表示されました。
0442デフォルトの名無しさん
2007/12/07(金) 14:41:24ListViewItemを削除した時点で破棄されるのですか?
0443デフォルトの名無しさん
2007/12/07(金) 14:50:070444デフォルトの名無しさん
2007/12/07(金) 14:50:49でも削除した時点、ではないかな。
0445デフォルトの名無しさん
2007/12/07(金) 14:51:340446デフォルトの名無しさん
2007/12/07(金) 15:00:210447デフォルトの名無しさん
2007/12/07(金) 15:02:19その構造体が、アンマネージドリソースを確保していないが入りにはそれでOK。
0448デフォルトの名無しさん
2007/12/07(金) 15:24:07マネージコードである限り、どんなに無茶苦茶なコード書いてもBSODみたいな
破壊は原理的に起きないんでしょうか?
本当にこの辺理解しようと思ったら.netをきちんと勉強しないと駄目ですよね
0449デフォルトの名無しさん
2007/12/07(金) 15:30:270450デフォルトの名無しさん
2007/12/07(金) 15:30:39マネージドコードでかつ、マネージドリソースにしかアクセスしない限りは
BSOD 起こす前に OutOfMemoryException が起こる。
でも、結局、ライブラリ中とかでも Win32API を色々 PInvoke してて、
あんま楽観もできないかも。
まあ、多分、ドライバとかみたいに OS に深く食い込むものでもなければ
ブルースクリーンは拝めないと思う。
0451448
2007/12/07(金) 15:45:45つまり、マネージな世界で閉じてる限り、何があろうともBSODのような被害は起こりえないってことですね
ある意味初心者が使うには打ってつけの言語ですね
ところで>>447さんの
>確保していないが入りにはそれでOK。
は
>確保していない限りにはそれでOK。
という意味でしょうか?
0452デフォルトの名無しさん
2007/12/07(金) 16:15:200453デフォルトの名無しさん
2007/12/07(金) 16:21:000454デフォルトの名無しさん
2007/12/07(金) 19:25:38catchの中でどうしても取りたいです
クラス名とかエラー文字列とかいらないです
0455デフォルトの名無しさん
2007/12/07(金) 19:32:500456デフォルトの名無しさん
2007/12/07(金) 19:38:24エラー通達の方法自体を変えたのに。
0457デフォルトの名無しさん
2007/12/07(金) 19:39:120458デフォルトの名無しさん
2007/12/07(金) 19:42:250459デフォルトの名無しさん
2007/12/07(金) 19:46:480460デフォルトの名無しさん
2007/12/07(金) 21:58:20しらんかった。
つーかないだろ?
0461デフォルトの名無しさん
2007/12/07(金) 22:05:00やっぱC#の人はWinアプリ開発なのかな?
0462デフォルトの名無しさん
2007/12/07(金) 22:06:01言語論争につかうだけ。
0463デフォルトの名無しさん
2007/12/07(金) 22:10:150464デフォルトの名無しさん
2007/12/07(金) 22:10:580465デフォルトの名無しさん
2007/12/07(金) 22:15:16LLなんて軟派な言語は要らないんだぜ?
0466デフォルトの名無しさん
2007/12/07(金) 22:18:45Symbol フォントでμとかπ出すためのコードじゃないか?
Symbol フォントのμ、πってそれぞれ m と p に対応してた気はするけど。
0467デフォルトの名無しさん
2007/12/07(金) 23:02:39宣言の仕方と使い方の例を参照したいです。
0468デフォルトの名無しさん
2007/12/07(金) 23:52:270469デフォルトの名無しさん
2007/12/07(金) 23:55:34c#のせいじゃないと分かってますが…
0470デフォルトの名無しさん
2007/12/07(金) 23:58:470471デフォルトの名無しさん
2007/12/08(土) 00:06:570472デフォルトの名無しさん
2007/12/08(土) 00:27:530473デフォルトの名無しさん
2007/12/08(土) 01:08:01一部のよく使うものだけ覚えておけばあとは必要に応じて調べればいい
0474デフォルトの名無しさん
2007/12/08(土) 01:12:080475デフォルトの名無しさん
2007/12/08(土) 01:19:52その昔MFCなるものがあって、最悪だったぞ。
0476デフォルトの名無しさん
2007/12/08(土) 01:38:230477デフォルトの名無しさん
2007/12/08(土) 01:39:23これから入る初心者にとっては、昔に比べて相当恵まれた環境なんですかね、やっぱ?
0478デフォルトの名無しさん
2007/12/08(土) 01:41:4710年も昔と比べたら、何十倍も何百倍も生産性高いんじゃなかろうか。
0479デフォルトの名無しさん
2007/12/08(土) 02:42:060480デフォルトの名無しさん
2007/12/08(土) 02:42:11windows mobile6でファイルを同期させるプログラムをC#で書いているのですが、
ファイルの作成日や最終書き込み日時を変更させるには どうしたら良いでしょうか?
FileInfoやFileクラスだと、LastWriteTimeプロパティが読み取り専用で使えずハマってる現状です。
File.copy(string path)を使ってファイルをコピーすると、何故かファイルのミリ秒部分が
切り捨て、もしくは切り上げされているようで、書き込み日時が1秒ずれてしまうのを直したいのです。
0481デフォルトの名無しさん
2007/12/08(土) 03:00:29IDEの儲けなんて全体で見れば大したことないんでしょ?
0482デフォルトの名無しさん
2007/12/08(土) 03:00:51へ?File.SetLastWriteTimeは?
0483480
2007/12/08(土) 03:09:28何故かSetLastWriteTimeの方はサポートされていないようなんです。
0484デフォルトの名無しさん
2007/12/08(土) 09:19:44http://www.opennetcf.com/FreeSoftware/SDF14/tabid/91/Default.aspx
ここのソース見てみたらIntPtrとかでドロドロやらないと駄目みたい。
0485デフォルトの名無しさん
2007/12/08(土) 09:43:25CreationTime/LastWriteTime/LastWriteTimeはCE系はRead Onlyやね。
違ってるかも知れんけど多分Compact Framework上からは無理臭い希ガス。
まずWin32APIで出来るか確認して出来るようならDllImportする位かな。
漏れも今CE5.0+CFMで開発やってるけど、結構良く使いそうなメソッドや
プロパティーが端折られてて困る事が多々(つд`)
Win32API自体がサブセットな実装だからしゃーないんだろうけど。
0487デフォルトの名無しさん
2007/12/08(土) 12:16:380488デフォルトの名無しさん
2007/12/08(土) 14:01:280489デフォルトの名無しさん
2007/12/08(土) 14:35:54byte[] A = byte[0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07]
byte[] B = byte[0x03, 0x04, 0x05]
だとしたら、3を返してほしいのですが…
0490デフォルトの名無しさん
2007/12/08(土) 15:04:390491デフォルトの名無しさん
2007/12/08(土) 15:24:56っていうかそれ目的違うんじゃねーの?
普通に考えて。
0492デフォルトの名無しさん
2007/12/08(土) 15:31:01byte[] B = new byte[] {0x03, 0x04, 0x05};
string a = System.Text.Encoding.ASCII.GetString(A);
string b = System.Text.Encoding.ASCII.GetString(B);
a.IndexOf(b)
Encoding.ASCIIで、バイト列がそのまま文字列になるなら、これでいけると思うけど。
だめなら、素直にforでまわすとか。
0494デフォルトの名無しさん
2007/12/08(土) 15:36:490495489
2007/12/08(土) 15:42:44StringBuilderで1バイトずつ連結して、stringのIndexOf使うことにします。
0496デフォルトの名無しさん
2007/12/08(土) 15:46:52int indexOf(byte[] A, byte[] B) {
for (int i = 0; i <= A.Length - B.Length; ++i) {
int j;
for (j = 0; j < B.Length; ++j)
if (B[j] != A[i + j]) break;
if (j == B.Length) return i;
}
return -1;
}
0497デフォルトの名無しさん
2007/12/08(土) 15:59:590499デフォルトの名無しさん
2007/12/08(土) 16:02:25先生、止まりません><
0500デフォルトの名無しさん
2007/12/08(土) 16:34:420501デフォルトの名無しさん
2007/12/08(土) 18:09:40class A
{
public class A
{
public uint uiId;
public StringBuilder sbSTR;
public byte[] bData;
}
public static List<A> Alist = new List<A>();
public staitc SetData()
{
A _A = new A();
_Aにデータ詰める
Alist.Add(_A);
}
}
このクラスAはFrom1等から呼び出して使う感じなんですが、ここでAlistに入れたデータはFrom1の生存
期間中はずっとデータを保持してて欲しい為、AlistとSetData()をstaticで宣言しております。
しかしデータを詰める為のテンポラリー領域として_Aをnewしてリストに突っ込んでます。この_Aの生存期
間てどうなるのでしょうか?また_Aの生存期間が過ぎた時にAlistに追加されてる_Aも当然消えるのでしょ
うか?
0502デフォルトの名無しさん
2007/12/08(土) 18:14:05> このクラスAはFrom1等から呼び出して使う感じなんですが、ここでAlistに入れたデータはFrom1の生存
> 期間中はずっとデータを保持してて欲しい為、AlistとSetData()をstaticで宣言しております。
意味わかんね。FormAがAのインスタンス保持すりゃすむ話。
0503デフォルトの名無しさん
2007/12/08(土) 18:23:00誰かが使ってる(使える状況にある)限りは絶対消えない
0504デフォルトの名無しさん
2007/12/08(土) 18:48:49んとA内にはDllImportして使う他のメソッドも定義されてて全部staticで定義
されてるので、Form1側でAのインスタンス作ろうとするとエラーになるのです。
>>503
なるほどです。ちなみに色々本読んだりして探してるのですが、newした変数
/インスタンスの生存期間とか詳しく説明された物って全然見かけないのは、
気にしなくて良いからなんでしょうか?
どうしてもCの考えで、auto/static/mallocした領域に照らして考えてしまうの
で、この変数消えるんじゃね?と思える状況に多々遭遇しております。まぁク
ラスの設計がヘボなんですけど…。
こう言うメモリ回りの話しが詳しく書かれた物て何か無いのでしょうか?
0505デフォルトの名無しさん
2007/12/08(土) 18:57:17他から参照されてないオブジェクトはそのうちGCに消される。それだけ。
0506デフォルトの名無しさん
2007/12/08(土) 19:01:13到達不可能になると消える
それがGC
0507501
2007/12/08(土) 19:26:42ありがとうございました。
0508デフォルトの名無しさん
2007/12/08(土) 21:40:280509デフォルトの名無しさん
2007/12/08(土) 21:55:12どこからも参照されなくなったら勝手にfreeされるmallocだと思っとけ。
0510デフォルトの名無しさん
2007/12/08(土) 22:03:13この辺はパフォーマンスに大きく影響する部分ですよね
0511デフォルトの名無しさん
2007/12/08(土) 22:06:21構造体をうまく使えば
0512デフォルトの名無しさん
2007/12/08(土) 22:06:53無理やり起動することはできるがお勧めしない。
よって直接的な調整の余地はあまり無い。
大量にインスタンスを生成して参照しなくなれば頻度は上がるし、
あまりインスタンスを作成しないなら下がる。
細かい話はいろいろあるけど、まずはそれだけ。
0513デフォルトの名無しさん
2007/12/08(土) 22:09:10多くの場合は細かく気にする必要は無い。
インスタンスを無駄に生成しないようにある程度注意するくらい。
0514デフォルトの名無しさん
2007/12/08(土) 22:19:550515デフォルトの名無しさん
2007/12/08(土) 22:22:070516デフォルトの名無しさん
2007/12/08(土) 22:24:310517デフォルトの名無しさん
2007/12/08(土) 22:41:440518デフォルトの名無しさん
2007/12/08(土) 22:47:130519デフォルトの名無しさん
2007/12/09(日) 00:01:550520デフォルトの名無しさん
2007/12/09(日) 00:13:540521デフォルトの名無しさん
2007/12/09(日) 00:25:52>>516からの流れなのにMDXを持ち出すのはおかしいだろ
0522デフォルトの名無しさん
2007/12/09(日) 00:38:30modosu = "@\"" + "C:\\test\\" + modosu + ".txt\"";
this.textBox1.Text = modosu;
StreamReader sr = new StreamReader(modosu, Encoding.GetEncoding("Shift_JIS"));
パスを変数化して、StreamReaderの第一引数に入れているのですが、接続されません。
ちなみに変数"modosu"の中身を直接書き込むと接続されます。
@"C:\test\時間集計.txt"
何が原因なのでしょうか?
0523デフォルトの名無しさん
2007/12/09(日) 00:40:23解決しました~~;
0524デフォルトの名無しさん
2007/12/09(日) 00:41:460525デフォルトの名無しさん
2007/12/09(日) 00:42:400526デフォルトの名無しさん
2007/12/09(日) 00:44:14もうくるな
0527デフォルトの名無しさん
2007/12/09(日) 01:35:23あるクラスAを継承したクラスBがあるとして、
クラスBのインスタンスからはAのpublicメンバを使用できないようにすることは出来るでしょうか?
例えばFormクラスを継承したMyFormクラスを作ったが、Myformインスタンスでは勝手にクライアントサイズなどを変えてほしくない、などです。
0528デフォルトの名無しさん
2007/12/09(日) 01:49:120529デフォルトの名無しさん
2007/12/09(日) 01:50:31出来そうと思いましたが、そうでしたか。ありがとうございました。
0530480
2007/12/09(日) 02:56:59IntPtrってなんぞ、、、ってところから始まって、DllImportを初めて使ってみるまでに一日かかりました。ウヒー。
とりあえず日付は更新できるようになったものの、本当にこの書き方でよいのか激しく不安です。
添削していただけると有難いです。
[DllImport("coredll.dll")]
private static extern IntPtr CreateFile(String lpFileName, UInt32 dwDesiredAccess, UInt32 dwShareMode, IntPtr lpSecurityAttributes,
UInt32 dwCreationDisposition, UInt32 dwFlagsAndAttributes, IntPtr hTemplateFile);
[DllImport("coredll.dll")]
private static extern bool CloseHandle(IntPtr hObject);
[DllImport("coredll.dll")]
private static extern bool GetFileTime(IntPtr handle, ref FILETIME lpCreationTime, ref FILETIME lpLastAccessTime, ref FILETIME lpLastWriteTime);
[DllImport("coredll.dll")]
unsafe private static extern bool SetFileTime(IntPtr handle, FILETIME *lpCreationTime, FILETIME *lpLastAccessTime, FILETIME *lpLastWriteTime);
public struct FILETIME{
public UInt32 dwLowDateTime;
public UInt32 dwHighDateTime;
}
public struct FileTimes{
public FILETIME CreationTime;
public FILETIME LastAccessTime;
public FILETIME LastWriteTime;
}
unsafe static public bool SetFileTimeStamps(string path, FileTimes fileTimes){
IntPtr handle = CreateFile(path, 0x80000000, 0x00000001, IntPtr.Zero, 3, 0x00000080, IntPtr.Zero);
bool re = SetFileTime(handle, &fileTimes.CreationTime, &fileTimes.LastAccessTime, &fileTimes.LastWriteTime);
CloseHandle(handle);
return re;
}
0531デフォルトの名無しさん
2007/12/09(日) 03:08:18フォームの中の使うメンバだけを公開したクラスを作ってフォームにかぶせる
0532デフォルトの名無しさん
2007/12/09(日) 03:21:43newで書き換えちゃえば呼んでも変更されないってのは出来るけど・・・お勧めはしない
public partial class Form1 : ExForm {
public Form1() {
InitializeComponent();
this.Size = new Size(500, 500);
}
}
public class ExForm : Form {
public new Size Size {
set { }
get { return base.Size; }
}
}
0533デフォルトの名無しさん
2007/12/09(日) 04:09:330534485
2007/12/09(日) 05:07:01API周りはMSDNと見比べたけど型の設定とかは間違ってないね。
ちょっと思ったのは、FILETIMEとFileTimesの実装かな。
両方publicで外出ししてるけど、クラス内に隠蔽して、メソッドの引数は
DateTime型で貰って内部で変換した方が呼び出し元から使うのは楽な
んではないかなと。
まぁ呼び出し側で日時をどういう形式で扱ってるかによるから好きな方
法で良いとは思うけど。
0535480
2007/12/09(日) 05:46:26なるほど、確かにFILETIMEは毎回ビットシフトしてlong型に直す処理を外でしていたので
DateTime型で受けて内部で処理させた方がスッキリしますね。
有難うございます。
DllImportを覚えると、一気に出来ることが増えて、まさに世界が広がった感じがします。
楽しくなってきました(´∀`)
0536デフォルトの名無しさん
2007/12/09(日) 11:04:240537デフォルトの名無しさん
2007/12/09(日) 13:11:05Regexクラスで質問です。
あるファイルに変換前と変換後のデータが格納してあり、
文字列をその内容に従って変換したいのですが、\r\nの扱いがうまくいきません。
Regex rex = new Regex(strBefore);
strData = rex.Replace(strData, strAfter );
aaabbb → aaa\r\nbbb
(strBefore) (strAfter)
としたい場合、CRLFではなく、文字列として"\r\n"に変換されてしまいます。
エスケープシーケンスのオプションみたいなのがあるのでしょうか?
0538デフォルトの名無しさん
2007/12/09(日) 13:12:490539デフォルトの名無しさん
2007/12/09(日) 13:21:42ありがとうございます。
うまく行きました。
0540デフォルトの名無しさん
2007/12/09(日) 17:20:300541デフォルトの名無しさん
2007/12/09(日) 19:25:14http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.drawtooltipeventargs.font(VS.80).aspx
これ?
0542デフォルトの名無しさん
2007/12/09(日) 21:10:150543デフォルトの名無しさん
2007/12/09(日) 21:29:50無理に抽象的に書かなくていいから具体的にどうしたいのか書いて
0544デフォルトの名無しさん
2007/12/09(日) 21:57:25{
(略)
}
class B : A
{
(略)
}
class C : A
{
(略)
}
↑でクラスBとクラスCで同じようなフィールドを使って、さらにそれを同じ値で初期化するとき
クラスAのフィールドとコンストラクタが継承できたら楽だと思うんですが、できないんでしょうか?
0545デフォルトの名無しさん
2007/12/09(日) 22:04:17それならできる
0546デフォルトの名無しさん
2007/12/09(日) 22:05:05別のプログラムB(ASP)でこれを呼び出したいのですが、何かうまい仕組みが提供されてたりしますか?
プロセス間通信を自前で実装するくらいしか思いつかないのですが…。
0547デフォルトの名無しさん
2007/12/09(日) 22:05:560548デフォルトの名無しさん
2007/12/09(日) 22:09:27ベースクラスのコンストラクタを呼びたければ派生クラスのコンストラクタを
public B() : base()
{
}
のように書けばいい
0549デフォルトの名無しさん
2007/12/09(日) 22:10:01すいません、同じ違いでした。
型名やフィールド名が"同じという意味です。
B.x
B.y
C.x
C.y
これらを一つ一つ宣言するより、親クラスから継承して
例えば全てに0等を入れて初期化する場合、コンストラクタも一緒に継承できると便利だと思うんですが……
0550デフォルトの名無しさん
2007/12/09(日) 22:13:17出来るから手動かしてみな
0551デフォルトの名無しさん
2007/12/09(日) 22:19:28リモーティング
0552デフォルトの名無しさん
2007/12/09(日) 22:25:24A.xとB.xは同じフィールドじゃなくて、たまたま名前が同じだけってこと?
protected void init(ref int x, ref int y);
みたいなの定義しといて、各コンストラクタから呼び出すとか
0553552
2007/12/09(日) 22:26:080554デフォルトの名無しさん
2007/12/09(日) 22:43:41継承とインスタンスがどのように挙動するかわかってないだけだと思うのだが・・・
0555デフォルトの名無しさん
2007/12/09(日) 22:44:170556デフォルトの名無しさん
2007/12/09(日) 22:57:20public 何処からでもアクセス可能(アクセスレベルが低いと表現)
↑
protected 派生クラスはアクセス可能
↓
private 自分しか無理。(アクセスレベルが高い)
クラスAにposX、posY、graphic、というフィールドがあれば、
クラスAを継承したクラスBも、そのフィールドを持つ。
それらのフィールドのアクセスレベルをprotectedにしておけば、派生クラスでもフィールドに自由に代入・取り出しできる。
もしprivateだと、それぞれフィールドは存在するのに一切派生クラスからはアクセスできない、ということになる。
この場合はプロパティを基本クラスで作っておけばすれば解決できる。(というかgetとsetのアクセスレベルを分けるから大抵はこっち?かな)
0557デフォルトの名無しさん
2007/12/09(日) 23:00:22初期化はたいてい基底クラスのコンストラクタを呼べば済む
0558デフォルトの名無しさん
2007/12/10(月) 00:07:180559デフォルトの名無しさん
2007/12/10(月) 04:22:03プロパティなら良い。
0560デフォルトの名無しさん
2007/12/10(月) 10:27:110561デフォルトの名無しさん
2007/12/10(月) 10:29:230562デフォルトの名無しさん
2007/12/10(月) 11:25:16受信と解析するようなクラスはありますか?
0563↑
2007/12/10(月) 11:28:010564デフォルトの名無しさん
2007/12/10(月) 11:33:590565デフォルトの名無しさん
2007/12/10(月) 12:09:29ttp://nasu.x0.com/blog/program/index_2.html
0566デフォルトの名無しさん
2007/12/10(月) 15:03:48こういう時はtry-catchを使うという判断基準ってあるのでしょうか?
0567デフォルトの名無しさん
2007/12/10(月) 15:09:44try-catchでしか回避できない仕様なら仕方なしに使う感じ
0568デフォルトの名無しさん
2007/12/10(月) 15:29:29ifで出来るものはifでやった方がいいよな
ArgumentExceptionとか例外が投げられること自体がバグの証明であるようなのは
どんどん投げるべき
そしてキャッチさせないべき
そのためにtryで囲ませないべき
tryで囲ませると往々にしてバグまで握りつぶしてしまう
0569566
2007/12/10(月) 15:57:42早速コード直してみます。
ありがとうございました。
0570デフォルトの名無しさん
2007/12/10(月) 16:12:28WebBrowserコントロールで、
Internet Explorer の [ファイル] メニューの [名前を付けて保存] メニュー オプションのような
機能を実装しようとしているのですが、
以下のようなコードですとエラーがでます。
どうすればいいんでしょう。。。
AxWebBrowser3.ExecWB( ShDocVw.OLECMDID_SAVEAS, ShDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT);ですと
'ShDocVw' は現在のコンテキスト内に存在しません。
とエラーがでてしまったのですが。。。
0571デフォルトの名無しさん
2007/12/10(月) 17:31:410572デフォルトの名無しさん
2007/12/10(月) 17:32:550573デフォルトの名無しさん
2007/12/10(月) 18:29:19型または名前空間名 'ShDocVw' が見つかりませんでした。
using ディレクティブまたはアセンブリ参照が不足しています。
0574デフォルトの名無しさん
2007/12/10(月) 19:20:050575デフォルトの名無しさん
2007/12/10(月) 19:44:300576デフォルトの名無しさん
2007/12/10(月) 20:05:550577デフォルトの名無しさん
2007/12/10(月) 20:46:51shdocvw.dll参照にいれたんじゃなくてWebBrowserコントロールか。
ShowSaveAsDialog ってメソッドがあるでしょ。
0578デフォルトの名無しさん
2007/12/10(月) 21:18:12shdocvw.dllは、参照にいれる必要ないんですか?
0579デフォルトの名無しさん
2007/12/10(月) 21:37:120580デフォルトの名無しさん
2007/12/10(月) 21:42:190581デフォルトの名無しさん
2007/12/10(月) 22:41:020582デフォルトの名無しさん
2007/12/10(月) 23:05:26おれはめちゃくちゃcatchしまくってるよ。
おかげでエラーチェックのifが少なくなって、ロジックが超すっきり。
0583デフォルトの名無しさん
2007/12/10(月) 23:09:29どう繋がってるのか分かりにくい
0584デフォルトの名無しさん
2007/12/10(月) 23:12:500585デフォルトの名無しさん
2007/12/10(月) 23:19:28TryPerse() でなくて、Prese()で、intに変換。
FormatExceptionが飛んだら、このCSVは不正ですって言って、処理終了。
これでなんにも問題ありません。
0586デフォルトの名無しさん
2007/12/10(月) 23:21:090587デフォルトの名無しさん
2007/12/10(月) 23:53:120588デフォルトの名無しさん
2007/12/10(月) 23:56:38null返してきたりスルーしやがるメソッドはうざい
0589デフォルトの名無しさん
2007/12/11(火) 00:04:210590デフォルトの名無しさん
2007/12/11(火) 00:13:410591デフォルトの名無しさん
2007/12/11(火) 00:42:530592デフォルトの名無しさん
2007/12/11(火) 00:43:340593デフォルトの名無しさん
2007/12/11(火) 00:47:03そしてそれがバグであるかどうかはドキュメントをよく読まないと分からない
TryHogeならばifで囲まれていない時点でバグであることが見た瞬間に分かる
どっちがいいかは分かりきっている
0594デフォルトの名無しさん
2007/12/11(火) 01:22:57昔のCの、intでエラーコードを返すタイプの関数から、
今の、voidでエラーが起きたときは例外を投げるタイプのメソッドに推移というか、
後者が主になったのは、なんらかの理由があるからじゃないの?
TryParseとかはその流れに逆行してるように感じたんだけど…
0595デフォルトの名無しさん
2007/12/11(火) 01:25:42ただし、boolを返すTryXxxを作るときは、例外を投げるXxxも用意することになってる。
0596デフォルトの名無しさん
2007/12/11(火) 01:34:04ミスによるものであり、除去すべきバグであることが明らかなものと、
ネットワークのサーバがダウンしている、ファイルが存在しないといった
正しい呼び出し方をしたとしても起こりうるエラーがある
大半は前者だ。バグだから直さなきゃいけないというのを通知するのには例外は適している
失敗の可能性が不可避なメソッドならば、例外を用いずによりわかりやすいTry〜のような
形を用いるべきだ
Tryの形式なら一目でバグと分かるのに、わざわざ例外を使って
バグと分かりにくいコードを書かせる必要なんか皆無だ
どちらにもいえることだが、例外はキャッチするものでは無い
0597デフォルトの名無しさん
2007/12/11(火) 01:50:28使い方に因ってエラーが発生する場合は戻り値で返せということですかね?
0598デフォルトの名無しさん
2007/12/11(火) 01:58:51正しい呼び出しをしてもエラーが不可避である場合はboolかなんかを返せということを俺はいいたい
0599デフォルトの名無しさん
2007/12/11(火) 02:01:030600デフォルトの名無しさん
2007/12/11(火) 02:02:45>>596のようにしない方がいい理由がなにかいえるのか?
0601デフォルトの名無しさん
2007/12/11(火) 02:05:45エラーに関してもっと詳しい情報を渡したい時には>>596のスタンス的にはどういう方法をとるの?
戻り値?引数?
0602デフォルトの名無しさん
2007/12/11(火) 02:06:520603デフォルトの名無しさん
2007/12/11(火) 02:08:06outでエラーの詳しい情報をobjectにして戻すのがいいと思っているが
それこそ例外をoutで返したらいい
0604デフォルトの名無しさん
2007/12/11(火) 02:15:270605デフォルトの名無しさん
2007/12/11(火) 02:19:16正直それは考えた事なかったな
0606デフォルトの名無しさん
2007/12/11(火) 02:22:15それは誤りだが今さら変えられない
.NET Frameworkで例外を返すのが使い物になるのはそれが共通であり
プログラマなら大抵そのクラスの動作を知っているからだ
自作のクラスでそれをやるのは死亡フラグそのものだ
0607デフォルトの名無しさん
2007/12/11(火) 09:47:130608デフォルトの名無しさん
2007/12/11(火) 10:17:45int.Parse(hogehoge)
等の方法でやっていますが、
変換する型そのものを文字列等で指定する方法がありますでしょうか?
0609デフォルトの名無しさん
2007/12/11(火) 11:43:080610デフォルトの名無しさん
2007/12/11(火) 11:51:29それはキャストじゃなくて型変換(Convert)だろ。
TypeConverter/TypeDescriptor でも使えば?
0611デフォルトの名無しさん
2007/12/11(火) 12:25:54TryParseは2.0になって利便性のために新たに付け加えられたのであって、
決して「誤り」ではないよ。
0612デフォルトの名無しさん
2007/12/11(火) 12:28:32パラノイア的に統一性に拘らないのであれば(というのは、これに病的に固執する奴っているからね)
値を返さないメソッドに関してだけ例外を返すようにする(返値が必要なのは普通に例外投げる)
というやり方の方が俺は好きだな。
0613611
2007/12/11(火) 12:28:47TryXの使い方のガイドラインあるから読んどけ
http://msdn2.microsoft.com/ja-jp/library/ms229009(VS.80).aspx
0614デフォルトの名無しさん
2007/12/11(火) 13:29:25outが嫌なら戻り値用の構造体を作ったっていい
>>613
パフォーマンス上の理由なんてのは的外れだ
その例外がめったに起こらなければ起こらないほど
例外のキャッチし忘れは深刻なバグになる
起こるか起こらないか分からないようなエラーが起こるものが
通常のメソッドと見た目全く同じに用意されていて
エラーにそなえてtryで囲めというのは間違い探しをしろといっているようなものだ
単に無駄だ
バグであることが分かりやすくなるように設計するべきだ
0615デフォルトの名無しさん
2007/12/11(火) 13:30:220616デフォルトの名無しさん
2007/12/11(火) 13:41:100617デフォルトの名無しさん
2007/12/11(火) 13:57:190618デフォルトの名無しさん
2007/12/11(火) 14:09:17catchしてないのにテストをすり抜けてパッケージソフトとして出荷されてしまった
どうなる?
0619デフォルトの名無しさん
2007/12/11(火) 14:14:53共有すべき普遍的な知識と自分だけの信念は区別しないと
0620デフォルトの名無しさん
2007/12/11(火) 14:16:170621デフォルトの名無しさん
2007/12/11(火) 14:18:28TryParseは正しい
正しく呼び出してもエラーが起こりうる場合例外は投げるべきじゃない
とは言った
0622デフォルトの名無しさん
2007/12/11(火) 14:27:16メソッドが成功するかどうかが自分のプログラムの状態以外の要因で決まるもの(ハードディスクとかNetworkとか)と
それが正しい呼び出しであるかをテストする機能も正しい使い方のうちに含むもの(TryParse)と二通りある
0623デフォルトの名無しさん
2007/12/11(火) 14:33:130624デフォルトの名無しさん
2007/12/11(火) 14:51:590625デフォルトの名無しさん
2007/12/11(火) 15:12:12キャッチし忘れのバグの方がキャッチもしくは例外をかわした場合のバグより
深刻にはならないって言ってるだけだよ。
0626デフォルトの名無しさん
2007/12/11(火) 15:17:39常にちゃんと認識しててきっちり対処出来るんなら別だけどな。
あくまでバグがあった場合の話で、
バグがないならその方がいいに決まってる。
0627デフォルトの名無しさん
2007/12/11(火) 15:29:08しかしある種の例外は確率は低いけど不可避なわけだ
>>622の前者のようなのはそうだ
>>625
間違ってるのにエラーを返さない、例外を投げない
それはただのバグだが防ぐのは難しい
しかし例外のキャッチし忘れは簡単に防げる
防げるものは防いだほうがいいし、それが深刻になる場合だってある
0628デフォルトの名無しさん
2007/12/11(火) 16:37:32例外(exception)とは、本来ならばプログラム中で起こってはいけないことが起こってしまうことをいいます。
堅牢なプログラムを作成するためには、例外が起こったときでもプログラムが異常な動作をしないよう、
しっかりと例外処理(exception handling)を行う必要があります。
0629デフォルトの名無しさん
2007/12/11(火) 16:44:57C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/l50
0630デフォルトの名無しさん
2007/12/11(火) 17:04:09どうしようかと思うよ。
0631デフォルトの名無しさん
2007/12/11(火) 17:18:14エラーが不可避ならばそれを分かりやすく示すべきだ
tryで囲んでないのが一目でバグと分かるように
0632デフォルトの名無しさん
2007/12/11(火) 17:25:00バージョンアップで新しい例外が投げられるようになってキャッチできない可能性もあるし
outなり構造体なりで返ってくれば不可避な例外の基本クラスは分かるから
それを投げれば、バグによる例外を含まずにキャッチできる
とにかくcatch{}やcatch(Exception)だけはやってはいけないんだ
0633デフォルトの名無しさん
2007/12/11(火) 17:47:000634デフォルトの名無しさん
2007/12/11(火) 17:48:33むしろキャッチした上でのバグが深刻な状況につながるんだといってる
0635デフォルトの名無しさん
2007/12/11(火) 17:53:230636デフォルトの名無しさん
2007/12/11(火) 17:58:59それやるとデバッガが例外が起きた瞬間でブレイクしてくれないだろ
例外のメッセージの何十倍もその瞬間のブレイクの方が有用だし
0637デフォルトの名無しさん
2007/12/11(火) 18:20:550638デフォルトの名無しさん
2007/12/11(火) 18:43:20何が言いたいのかよく分からん
それでどうするべきだと言ってるんだ?
0639デフォルトの名無しさん
2007/12/11(火) 18:43:43最終的にはまず大抵どっかでキャッチするんだから
キャッチしたらアウトなんてのは使い物なならんだろ。
ただ、あえてやってるんじゃないなら
throw e;
はやめとけ。
throw;
でいい。
0640デフォルトの名無しさん
2007/12/11(火) 18:45:34っていってるみたいだから、
キャッチするバグの方が大抵深刻だよっていってるだけ。
0641デフォルトの名無しさん
2007/12/11(火) 18:47:10キャッチしないバグは、深刻度は比較的低いってこと。
0642デフォルトの名無しさん
2007/12/11(火) 18:48:480643デフォルトの名無しさん
2007/12/11(火) 18:51:030644デフォルトの名無しさん
2007/12/11(火) 18:55:18大抵どっかでキャッチする時点でデバッガの使い方を間違えている
少なくとも開発中はバグによる例外はキャッチすべきではない
ブレイクすべきだ
キャッチするのはバグを握りつぶす効果しかない
バグでない不可避な例外の場合はキャッチして処理しなきゃならない
その場合でも不可避な例外の基本クラスを設けるとか、必要な処理はやらなきゃならない
漫然と例外を使うとひどいことになる
特にどっかでキャッチされるなんてのは最低の使い方だ
>>640
全然違う
俺はキャッチすべきでないといってる
確率的に低い不可避の例外をキャッチしないことは深刻なバグに繋がる
なら最初からboolを返すなりメソッドシグネチャに書いておくべきだ
0645デフォルトの名無しさん
2007/12/11(火) 19:09:380646デフォルトの名無しさん
2007/12/11(火) 19:13:08いろいろ誤解されてるような気がするが
俺はこれを繰り返し言っているだけだ
0647デフォルトの名無しさん
2007/12/11(火) 19:21:36前半は当たり前杉。
後半は何言ってるか意味不明。
特に、
>どちらにもいえることだが、例外はキャッチするものでは無い
なんだよこれw
0648デフォルトの名無しさん
2007/12/11(火) 19:27:490649デフォルトの名無しさん
2007/12/11(火) 19:32:46どれが分からないんだ?
正しく呼び出したとしても例外を投げることが不可避であり、必ず対応しなければ破綻する
メソッドが、通常のメソッドと見た目が何も変わらなければ、キャッチし忘れることがありうる
一つ一つのメソッドについて例外が不可避かどうか調べるのは時間の無駄なので、
そういうメソッドは見た瞬間にそれと分かるようにするべきだといっている
具体的にはTry〜にしてboolを返すようにするとか、単に命名規則に含めるとかだ
0650デフォルトの名無しさん
2007/12/11(火) 19:37:44挙げられてるケースだとただ単にエラーチェックしてないだけだが。
0651デフォルトの名無しさん
2007/12/11(火) 19:41:480652デフォルトの名無しさん
2007/12/11(火) 19:44:52あのーお言葉ですけどねえ、
外的な、つまり呼び出し側以外の理由で例外が起こるような処理っていうのはむしろ
文字通り「例外的」なわけで、そういうのは(むろん上手に抽象化ができてさえすれば、
という前提条件つきではあるが・・・)むしろメソッドの意味を見れば
例外が起こりうるかどうかは一目瞭然なんじゃないの?
例えばディスクにアクセスするメソッドならディスクが物理的にお陀仏になったれ例外投げるしかないことは
猿でも分かるでしょw
0653652
2007/12/11(火) 19:47:00あれって書き込み中のUSBドライブ抜いても何の例外も投げないのなw
0654デフォルトの名無しさん
2007/12/11(火) 19:58:48そうはいってもプログラムは適当に書かれることがあり
try,catchは往々にして忘れられる
さらにいえば、どのメソッドがどんな例外を投げるかきちんと把握しているのか
どの例外が不可避で、どの例外がバグによるものか
キャッチしていい物としてはならないものはどう見分けるのか
不可避の例外の基本クラスを作り、outでその例外クラスを返すようにすれば
帰ってくる不可避の例外がそのクラスを継承したものであることが保障される
バグであればそれ以外のクラスから派生した例外が飛んでくることになる
バグの例外はキャッチすべきでないから、try,catchで囲む必要すらなくなる
必要とあらばoutで返ってきた例外を飛ばし、基本クラスでcatchすることで
将来返って来る例外が増えたときにも対応できる
0655335
2007/12/11(火) 20:03:11{
Aaa(p1);
}
catch (HogeException e)
{
Console.WriteLine("{0} HogeException caught.", e);
}
catch
{
throw;
}
こんなふうに投げちゃいかんの?
メソッドやクラス内で処理する分はcatchしてそれ以外は上に投げる
投げ先が制御できないなら共通エラー処理クラス使えばいいと思うんだけど
初めて1週間なんでハズしてたら教えて欲しいです
0656デフォルトの名無しさん
2007/12/11(火) 20:03:540657デフォルトの名無しさん
2007/12/11(火) 20:06:54デバッガはthrow;のところで止まって例外が投げられた瞬間の情報が失われるけど
それでいいなら
それを避けたければデバッグ→例外を選んで投げた瞬間にブレイクしてほしい
例外にチェックをつけてもいい
0658デフォルトの名無しさん
2007/12/11(火) 20:13:010659デフォルトの名無しさん
2007/12/11(火) 20:14:460660デフォルトの名無しさん
2007/12/11(火) 20:15:150661デフォルトの名無しさん
2007/12/11(火) 20:18:490662デフォルトの名無しさん
2007/12/11(火) 20:38:38確かにHDが一杯とかになったら何か処理はしなきゃならないから
ほとんどにTryがいるかもな
Tryってついてないから忘れがちだが
0663デフォルトの名無しさん
2007/12/11(火) 21:00:28俺なんかの扱ってる仕事は止まるとニュースになるようなのばっかりだが
0664デフォルトの名無しさん
2007/12/11(火) 21:06:27そんなミッションクリティカルな用途にC#使うなんて、
普通の人間には命がいくつあっても出来ない。
0665デフォルトの名無しさん
2007/12/11(火) 21:09:45某首相の中の人とかか?
0666デフォルトの名無しさん
2007/12/11(火) 21:17:06諦めな
もし隔離スレを埋めたいのであればそっちにネタ投下すればいい
0667デフォルトの名無しさん
2007/12/11(火) 21:27:39どうせCOBOLでやるような糞仕事をリプレースしただけだろ
0668デフォルトの名無しさん
2007/12/11(火) 21:32:320669デフォルトの名無しさん
2007/12/11(火) 23:01:190670デフォルトの名無しさん
2007/12/11(火) 23:05:000671デフォルトの名無しさん
2007/12/11(火) 23:06:510672デフォルトの名無しさん
2007/12/11(火) 23:07:020673デフォルトの名無しさん
2007/12/11(火) 23:08:380674デフォルトの名無しさん
2007/12/11(火) 23:17:110675デフォルトの名無しさん
2007/12/12(水) 00:00:35それを使うなって┐(´д`)┌
0676デフォルトの名無しさん
2007/12/12(水) 00:10:23バグを通知するためにはものすごく必要だ
エラーで分岐するにはそのままでは不適切な仕組みだ
適切に使わないといけない
0677デフォルトの名無しさん
2007/12/12(水) 00:18:470678デフォルトの名無しさん
2007/12/12(水) 00:27:11今から始めるなら当然WPFアプリが良いんだよね?
0679デフォルトの名無しさん
2007/12/12(水) 00:36:020680デフォルトの名無しさん
2007/12/12(水) 00:36:290681デフォルトの名無しさん
2007/12/12(水) 00:49:00例外で処理分岐する場合もあれば、戻り値でも処理分岐する場合あるし臨機応変
0682デフォルトの名無しさん
2007/12/12(水) 00:51:15例外ハンドラが見つかるまで積まれたスタックフレームをすっとばす。
0683デフォルトの名無しさん
2007/12/12(水) 00:53:32俺なんか自分で作ったクラスは
try catchでcatchしたらthrowだよ。
でaspx.csで例外を受け取ったらRedirectでエラーページに遷移させる。
社内システムなんでそんなもんだぜ。
0684デフォルトの名無しさん
2007/12/12(水) 00:54:46それは臨機応変じゃなくて規約がなくその都度注意力をもって判断せねばならず
バグかどうかがドキュメントを参照しないと分からないということだろう
最悪の方法だ
0685デフォルトの名無しさん
2007/12/12(水) 00:58:45必要なエラーメッセージを出すようにすればいいさ
しかし開発中はバグの例外はキャッチしちゃいかんのだ
0686デフォルトの名無しさん
2007/12/12(水) 01:03:09VB.NET使う必要も技術的利益も無いんだがな・・・
なんでVB.NET選ぶかね・・・
0687デフォルトの名無しさん
2007/12/12(水) 01:08:47エラーメッセージ無視して「デバッガで追おうとしたけど再現しません」とかいう奴すら・・・
0688デフォルトの名無しさん
2007/12/12(水) 01:12:31エラーメッセージなんて例外で適切にブレイクできてりゃ最小限でいいんだ
0689デフォルトの名無しさん
2007/12/12(水) 01:17:09エラーかどうかは殆どの場合ドキュメント見るんじゃないの?
0690デフォルトの名無しさん
2007/12/12(水) 01:19:150691デフォルトの名無しさん
2007/12/12(水) 01:22:52と決めておけば、それをキャッチしておけばいい
例外がキャッチできずすり抜けていったら呼び出し側のミスだ
向こう側が間違ってるのかもしれないがその時はドキュメントをよく読んで質問するしかない
0692デフォルトの名無しさん
2007/12/12(水) 01:26:13例外だと中断されるのですよね?こんな場合は戻り血とかで判断するのですか
0693デフォルトの名無しさん
2007/12/12(水) 01:36:59そういえば正しい方法を言ってなかった気がする
catch
{
throw;
}
これはいらないからなくすべき
例外が投げられた瞬間の情報が失われるから
0694デフォルトの名無しさん
2007/12/12(水) 01:41:370695デフォルトの名無しさん
2007/12/12(水) 01:42:53そりゃそうだ
0696デフォルトの名無しさん
2007/12/12(水) 01:42:55http://msdn2.microsoft.com/ja-jp/library/ms229014.aspx
0697デフォルトの名無しさん
2007/12/12(水) 01:45:450698デフォルトの名無しさん
2007/12/12(水) 01:49:340699デフォルトの名無しさん
2007/12/12(水) 01:51:230700デフォルトの名無しさん
2007/12/12(水) 01:59:480701デフォルトの名無しさん
2007/12/12(水) 02:02:26必ずってどのレベルで必ずなの?
メソッド呼び出し全部?
catchしてその場でどうにかできるのなんて一部な気がするんだが。
まあラップして投げなおしはあるかもしれんが。
そうでなくみんな戻り値とかでエラー返して上位に通知してるなら
それこそ単純に例外ですむ話し出しってか上位への通知を細かに書かなくてすむ
ってのが例外のメリットのひとつだと思うんだが、
多分そういうことではないんだよね?
0702デフォルトの名無しさん
2007/12/12(水) 02:04:13その場で処理してしまうような例外は別だけど。
0703デフォルトの名無しさん
2007/12/12(水) 02:09:29>たとえば、ファイルが見つからない場合には File.Open は null を返しますが、
>ファイルがロックされている場合には例外を返します。
http://msdn2.microsoft.com/ja-jp/library/seyhszts.aspx
このガイドラインはうんこそのものだな
怪しそうな全ての場合においてnullを返すかどうかを一々調べろといってるのか?
0704デフォルトの名無しさん
2007/12/12(水) 03:59:25なのでcatchしてログ&メッセージ出して問い合わせ促してるけど
catchしないって人はリリース後に実行時エラー発生したらどうやって対応すんの?
0705デフォルトの名無しさん
2007/12/12(水) 04:04:490706デフォルトの名無しさん
2007/12/12(水) 04:10:42ログやメッセージ出してアプリを中断が常套。MSのガイドラインでもこうなってるな。
0707デフォルトの名無しさん
2007/12/12(水) 04:41:05その上に構築するアプリケーションにおける例外のデザインの話は
分けて考えないと論点がはっきりしない気がするな。
0708デフォルトの名無しさん
2007/12/12(水) 05:44:24と
ProfessionalColors.ImageMarginGradientBegin
の違いって何ですか?
ImageMarginRevealedGradientBeginは、どういう場合に使われますか?
0709デフォルトの名無しさん
2007/12/12(水) 08:14:590710デフォルトの名無しさん
2007/12/12(水) 08:27:21そういうのはヒトに向かって書いている場合もあるんでしょ。
「俺様はちゃんとここで例外が起こりうることを認識してコードかいてるよ」
って明示するために。
必ずしも処理上必要だから書いてるわけじゃないんだよ。
あ、いつも常にそうだとは言ってないから勘違いしないでね。
0711デフォルトの名無しさん
2007/12/12(水) 09:01:46キャッチって多段で追跡できちゃったりするの?
できないならダメだろ。
0712デフォルトの名無しさん
2007/12/12(水) 12:20:04できるじゃん
0713デフォルトの名無しさん
2007/12/12(水) 12:23:19イベントに追加してキャッチさせるのが常識。
0714デフォルトの名無しさん
2007/12/12(水) 12:32:170715デフォルトの名無しさん
2007/12/12(水) 13:45:33開発完了したら、一番上でキャッチしてメッセージを出して終了するようにする
まあ使われないのが理想だが
0716デフォルトの名無しさん
2007/12/12(水) 14:43:31問題は、デバッガがthrow;でブレークして、
例外が投げられた瞬間のブレークが失われることだ
例外が投げられた瞬間のブレークがあれば何が間違っていたか大抵全部分かる
それを捨てる理由になると思うか?
0717デフォルトの名無しさん
2007/12/12(水) 15:29:090718デフォルトの名無しさん
2007/12/12(水) 15:34:07その作業は無駄だし
例外が起きなくてもその行で毎回止まるぞ
0719デフォルトの名無しさん
2007/12/12(水) 15:38:47BitmapImage image2 = new BitmapImage();
...
...
...
.
って一つずつ書くのが面倒なんですが、まとめて書ける方法ってありますか?
0720デフォルトの名無しさん
2007/12/12(水) 15:44:55配列にしてループ
0721デフォルトの名無しさん
2007/12/12(水) 15:57:550722デフォルトの名無しさん
2007/12/12(水) 16:02:12自分で考えられないやつは2chなんか使うな
0723デフォルトの名無しさん
2007/12/12(水) 16:07:15>>1
0724デフォルトの名無しさん
2007/12/12(水) 16:49:020725デフォルトの名無しさん
2007/12/12(水) 16:52:140726デフォルトの名無しさん
2007/12/12(水) 16:53:460727デフォルトの名無しさん
2007/12/12(水) 16:57:080728デフォルトの名無しさん
2007/12/12(水) 16:57:48続行できないから例外投げてるのに戻してどうすんの
だいたいなんで正常に戻せたってわかるの? クラスやメソッドの実装によるだろそんなの
0729デフォルトの名無しさん
2007/12/12(水) 17:10:27それはもともと例外を投げるべきではなかったんじゃないか
0730デフォルトの名無しさん
2007/12/12(水) 17:11:560731デフォルトの名無しさん
2007/12/12(水) 17:13:360732デフォルトの名無しさん
2007/12/12(水) 17:17:030733デフォルトの名無しさん
2007/12/12(水) 17:20:30{
ケーブルが抜けていたとか
ディスクの入れ忘れとか
電源入れ忘れとか
}
catch
{
えらー表示した
対処された
}
そんな感じの場合なんだけど
0734デフォルトの名無しさん
2007/12/12(水) 17:23:52とりあえずキャッチしておけば実行停止することはないんだからあとは君の判断で
0735デフォルトの名無しさん
2007/12/12(水) 17:28:04try {
例外の起きる処理;
break; // 完了
} catch ( .. ) {
if ( ! Retry ) break;
}
}
0736デフォルトの名無しさん
2007/12/12(水) 17:31:450737デフォルトの名無しさん
2007/12/12(水) 17:32:53{
try
{
やってみる();
break;
}
catch(デバイス見つからないException)
{
if(ShowDialog("デバイス見つからないよ") == Result.Cancel))
throw new CancelException("実行はキャンセルされました");
}
catch(ディスク入ってないException)
{
if(ShowDialog("ディスク入ってないよ") == Result.Candel))
throw new CancelException("実行はキャンセルされました");
}
}
0738デフォルトの名無しさん
2007/12/12(水) 17:34:10{
ケーブルが抜けていたとか
ディスクの入れ忘れとか
電源入れ忘れとか
}
catch
{
ケーブルを挿すとか
ディスクを入れるとか
電源を入れるとか
}
0739デフォルトの名無しさん
2007/12/12(水) 17:46:250740デフォルトの名無しさん
2007/12/12(水) 17:58:220741デフォルトの名無しさん
2007/12/12(水) 18:07:43リトライが必要な処理群としてまとめておいて呼び出し側で再呼び出しした方がイクナイ?
0742デフォルトの名無しさん
2007/12/12(水) 18:08:33ソースコードで頼む
0743デフォルトの名無しさん
2007/12/12(水) 18:10:190744デフォルトの名無しさん
2007/12/12(水) 18:11:34有り得ない値返し
エラーコード返し
BOOL返し
HRESULT返し
C++の例外
.netの例外
構造化例外
が入り乱れるVCよりましじゃないか。
0745デフォルトの名無しさん
2007/12/12(水) 18:12:00分岐では分かりにくくなることが往々にしてある
0746デフォルトの名無しさん
2007/12/12(水) 18:23:010747デフォルトの名無しさん
2007/12/12(水) 18:40:44dim reader as IDbReader = command.ExecReader()
while reader.Read()
aa = DirectCast(reader("aa"), string)
bb = DirectCast(reader("bb"), Integer)
:
:
End While
DBから読み込むコードで、ISAMライクなウンコなテーブル設計で、whileの中のコードが数十行続いてるとします。
項目はNOT NULL制約が設定されてないから、reader("・・") で DBNull が帰って来ることもあります。
こういうときは、一行ずつifでDBNullか判定しますか?
それとも、try でくくって、一括してcatchしますか?
0748デフォルトの名無しさん
2007/12/12(水) 18:57:14public static T Get<T>(this IDbReader reader, string name)
{
object item = reader(name);
if(item == DBNull)
throw new DBNullException(name + "がDBNullです");
return (T)item;
}
こんなんを作って、DBNullExceptionだけキャッチすればいいんじゃねえの
何がしたいのかよくわからんけど
0749デフォルトの名無しさん
2007/12/12(水) 19:05:01object型をstringやらintegerにキャストするとき、DBNullだったら、例外がでるので、
そういうのはなくても大丈夫です。
if reader("・・") <> DBNull.Value then
aa = DirectCast(reader("・・"),・・・)
else
なんかエラー処理
end if
みたいに一行ずつ判定するか、
try
aa = DirectCast(reader("・・"),・・・)
bb = DirectCast(reader("・・"),・・・)
:
catch ex as キャストの例外
:
End Try
みたいにまとめてキャッチするかってことです。
0750デフォルトの名無しさん
2007/12/12(水) 19:09:11InvalidCastExceptionをそのまま捕まえるのはいただけない
catchするのはバグによる例外でないことが明らかなものにするべきだ
エラー処理に何をするのか、DBNullが帰ってくる頻度がどのくらいで
例外がパフォーマンスに影響するのかによって変わってくる
0751デフォルトの名無しさん
2007/12/12(水) 19:14:01たしかに、NULLが入ってるデータが多いと使い物にならないくらい遅くなりますね。
それでは、基本的にNULLは入ってないデータだけど、NOT NULL制約がないので「NULLもありえる」という
程度で。
例外は>>748みたいなラッパーで、独自のものを投げるという状況で。
ifでチェックしたほうがいいか、まとめて例外で処理したほうがいいか。
0752デフォルトの名無しさん
2007/12/12(水) 19:15:170753デフォルトの名無しさん
2007/12/12(水) 19:35:51{
object item = reader(name);
if(item == DBNull.Value)
return false;
setMember(item);
return true;
}
Func<bool>[] setMembers = new Func<bool>[]{
() => reader.SetMember("aa", obj => aa = (string)obj),
() => reader.SetMember("bb", obj => bb = (int)obj),
...
};
foreach(var setMember in setMembers)
{
if(setMember() == false){ エラー処理 }
}
例外がパフォーマンスを脅かすならこうかな
0754デフォルトの名無しさん
2007/12/12(水) 19:42:12例外投げるとパフォーマンスを脅かすってのはなんで?
例外クラスのインスタンスを生成するから?
それとも別のもっと大きな要因があるのかな
0755デフォルトの名無しさん
2007/12/12(水) 19:45:32return new Uri("error://imifumei/");
みたいな感じで返すのはありですか?
0756デフォルトの名無しさん
2007/12/12(水) 19:46:45public static bool SetMember<T>(this IDbReader reader, string name, ref T member)
{
object item = reader(name);
if(item == DBNull.Value)
return false;
member = (T)item;
return true;
}
Func<bool>[] setMembers = new Func<bool>[]{
() => reader.SetMember("aa", ref aa),
() => reader.SetMember("bb", ref bb),
...
};
foreach(var setMember in setMembers)
{
if(setMember() == false){ エラー処理 }
}
こうでした
0757デフォルトの名無しさん
2007/12/12(水) 19:59:14これがC# 3.0の力だ
早く乗り換えたまえ
0758デフォルトの名無しさん
2007/12/12(水) 20:07:01なしです
例外またはTry〜を使いなさい
0759デフォルトの名無しさん
2007/12/12(水) 20:09:41nullを返すのは?
0760デフォルトの名無しさん
2007/12/12(水) 20:10:33個人的には、名前の末尾にOrNullをつけないとなしと考えている
つければあり
0761デフォルトの名無しさん
2007/12/12(水) 20:14:190762デフォルトの名無しさん
2007/12/12(水) 20:16:430763デフォルトの名無しさん
2007/12/12(水) 20:19:56それにテスト後にmainにtry〜catch追加したらテストやり直しだろ
異常系のテストエビデンスに再現性無くなるじゃん
個人作成やパッケージ等すべて自分達で責任取れるものならいいけどさ
0764デフォルトの名無しさん
2007/12/12(水) 20:21:34見たことも聞いたこともない命名規則だな。
0765デフォルトの名無しさん
2007/12/12(水) 20:22:07どっちだよw
0766デフォルトの名無しさん
2007/12/12(水) 20:25:020767デフォルトの名無しさん
2007/12/12(水) 20:26:510768デフォルトの名無しさん
2007/12/12(水) 20:27:05バグじゃなくて仕様の中に処理するって書いてある例外は開発中ももちろんキャッチする
問題はそれ以外だ
それ以外が飛んできたらバグだ
これは開発完了したときには飛んでくることがないのが理想だけど
そうもいってられないのでcatch(Exception)で捕まえる文を開発完了後に付け加える
で、謝罪文を表示して終了すればいい
これをテストする必要は別にない
0769デフォルトの名無しさん
2007/12/12(水) 20:27:430770デフォルトの名無しさん
2007/12/12(水) 20:28:52First
FirstOrDefault
といった感じでデフォルト値が返りうる場合はOrDefaultをつける
OrNullって書いてなきゃ絶対にnulのチェックを忘れるから俺はOrNullと書くべきだと考えている
0771デフォルトの名無しさん
2007/12/12(水) 20:30:39多分噛み合ってないんだけど
納品先のあるプログラムでテスト後にソース改変は一切NGだろ?
バイナリのタイムスタンプとCRCが一致しないテスト結果でもOKってなら
何も言えないな
0772デフォルトの名無しさん
2007/12/12(水) 20:35:00じゃあ付け加えなきゃいい
万一の場合に備えて例外のメッセージを丁寧語にすることを心がけなきゃならんが
ちゃんと出来てるならほんとはcatch(Exception)なんていらん
0773デフォルトの名無しさん
2007/12/12(水) 20:41:28エラーかもね。
たぶんお前らのミスな。
[OK]
0774デフォルトの名無しさん
2007/12/12(水) 20:42:34>ちゃんと出来てるならほんとはcatch(Exception)なんていらん
これはマじゃない予感・・・
0775デフォルトの名無しさん
2007/12/12(水) 20:47:31また噛み合ってないが、バグ0にはできない。現実的に。
だから「ちゃんとできている」って言うのは実現困難
当然メソッド単位にtry〜catch入れた上での単体テストを通してるし
mainにも付け加えないんじゃ無くて最初から入れてる
たとえプログラムが原因じゃなくてもトラップできる例外はすべて
プログラムの管理しているエラー処理+ログで処理する
それを元に障害対応しないと対応できない
リリース後に 「プログラムのせいかどうかわからんがエラー終了する」
なんて状況になったら誰が対応するの?
自分達のプログラムが原因じゃない証明をする際にも証拠は必要だし
0776デフォルトの名無しさん
2007/12/12(水) 20:49:28今度イベントあったら絶対見に行くわ
0777デフォルトの名無しさん
2007/12/12(水) 20:54:17出来ました、テストしてください、という段階でmainにcatch(Exception)を付け加える
それじゃダメなのか?
0778デフォルトの名無しさん
2007/12/12(水) 21:16:30ttp://www.gtnet.co.jp/home/top/usedcar_syosai.asp?NETCODE=7&SHATEN=0510&ZAIKO=1000340500
0779デフォルトの名無しさん
2007/12/12(水) 21:18:56普通試乗で自分向きじゃないとか気づくだろ。
0780デフォルトの名無しさん
2007/12/12(水) 21:31:080781デフォルトの名無しさん
2007/12/12(水) 22:26:28うまく行ってるのを見たことがない。
現実の開発要員は思いのほかレベルが低いもんだよ。
保守や改造でもどんどん壊れて行くしね。
十分な費用がかけられる開発ならいいんだけどね〜
0782デフォルトの名無しさん
2007/12/12(水) 22:27:31全て処理せよってのはどういうこっちゃ
0783デフォルトの名無しさん
2007/12/12(水) 22:37:070784デフォルトの名無しさん
2007/12/12(水) 22:41:21正しく呼び出したとしても起こる例外→キャッチしなければならない
0785デフォルトの名無しさん
2007/12/12(水) 22:53:59http://192.168.0.1:2869/gatedesc.xml
の部分だけ抜き出すにはどうすればいいですか?
HTTP/1.1 200 OK\r\n
CACHE-CONTROL: max-age=1800\r\n
DATE: Wed, 12 Dec 2007 13:51:16 GMT\r\n
EXT:\r\n
LOCATION: http://192.168.0.1:2869/gatedesc.xml\r\n
SERVER: Linux/2.4.18_mvl30-ixdp425 UPnP/1.0 Intel UPnP SDK/1.0\r\n
ST: urn:schemas-upnp-org:service:WANIPConnection:1\r\n
USN: uuid:UUID-NTTEW-DUMMY::urn:schemas-upnp-org:service:WANIPConnection:1\r\n
\r\n
0786デフォルトの名無しさん
2007/12/12(水) 23:00:230787デフォルトの名無しさん
2007/12/12(水) 23:01:15有るはずのファイルが読めなければ
キャッチする必要があるのだろうが、
渡された引数がそもそも間違ってた場合は
キャッチしちゃダメだってことだなw
0788デフォルトの名無しさん
2007/12/12(水) 23:05:54キャスト失敗とか配列の外側を読んだとかぬるぽとか
そういうのは全部キャッチしちゃダメ
0789デフォルトの名無しさん
2007/12/12(水) 23:06:43さかのぼらざるを得ないが、そんなのを全体で完全に
矛盾なく出来るとは思えない。
一体誰がそれを決めるの?
せれともそんなのは関係なく、
例えばArgumentExeption系以外はキャッチするとかになるの?
0790デフォルトの名無しさん
2007/12/12(水) 23:09:09結局分からんてことだろ?
0791デフォルトの名無しさん
2007/12/12(水) 23:09:35違反してたら例外が投げられる
それはキャッチしちゃいけない
正しい呼び出しの時に失敗したならばそれとは違う例外が投げられる
それはキャッチしなきゃならん
0792デフォルトの名無しさん
2007/12/12(水) 23:11:02γ線でメモリが化けたのか分からない。
0793デフォルトの名無しさん
2007/12/12(水) 23:12:14じゃないとわからん
0794デフォルトの名無しさん
2007/12/12(水) 23:16:10結局回復できない場合も多いから、戻り値とかで返さざるを得ないの?
UI層レベルでは想定されるものはキャッチするだろうけど
もっと下層ではいかんともしがたい気がする。
0795デフォルトの名無しさん
2007/12/12(水) 23:17:00コード中で直接設定したりする方法があるのですがどういう風に使い分ければいいんですか?
0796デフォルトの名無しさん
2007/12/12(水) 23:17:55キャッチしてエラーメッセージを出して入力待ちに戻れ
0797デフォルトの名無しさん
2007/12/12(水) 23:18:48ドキュメントコメントでいい気もする。
あ、レビューはやりにくいかな…
0798デフォルトの名無しさん
2007/12/12(水) 23:20:12もっと下層ではどうすんの?
0799デフォルトの名無しさん
2007/12/12(水) 23:21:12null入れていいかどうか、nullが返るかどうかなんて一回見たってどうせ忘れる
OrNullって書いてあればソース見ただけでnullチェックして無いのが一発でバグって分かる
0800デフォルトの名無しさん
2007/12/12(水) 23:21:530801デフォルトの名無しさん
2007/12/12(水) 23:22:23特に理由がなければデザイナを使う
動的(例:ボタンを押したら〜する)にコントロールを作ったり、プロパティを変更したいときはコードで
0802デフォルトの名無しさん
2007/12/12(水) 23:23:01自分のメソッドの仕様に書いてある通りの例外に編み変えて再スローする
0803デフォルトの名無しさん
2007/12/12(水) 23:23:190804デフォルトの名無しさん
2007/12/12(水) 23:25:25呼ばれる側もそうだし呼ぶ側もそうだ
OrNullって書くようにしてからnullチェックし忘れは消えた
0805デフォルトの名無しさん
2007/12/12(水) 23:25:37言いたかったのはそんだけちゃんとやっても呼び出し側のバグに対しては効果ないよねってこと。
0806デフォルトの名無しさん
2007/12/12(水) 23:27:13nullチェックはどっちの場合でも要るんじゃ…
0807デフォルトの名無しさん
2007/12/12(水) 23:28:42なるほど、初期設定はデザイナでして実行中の変更はコードでするみたいな感じですね。
0808デフォルトの名無しさん
2007/12/12(水) 23:29:00呼び出し側の引数かなんかの違反なら
呼び出し側の違反ですよってわかる例外を投げる
正しく呼び出したときの例外ならそれと分かる例外を投げる
さらに下のメソッドから飛んでくる例外がそこをきちんと分けていれば
自分も判断できる
0809デフォルトの名無しさん
2007/12/12(水) 23:35:08エラー発生時の対処は必要なんだから全て例外処理が
必要ってことおk?
0810デフォルトの名無しさん
2007/12/12(水) 23:35:45nullを受け入れて変数に入れた場合は、その変数を使うたびにnullチェックが要る
変数名にOrNullって書いてあればチェックし忘れはなくなる
0811デフォルトの名無しさん
2007/12/12(水) 23:40:290812デフォルトの名無しさん
2007/12/12(水) 23:40:42呼び出し側の要因である場合必要な処置というのは
バグを認識させ直させることだ
キャッチしなければそれが最もよく果たせる
例外が投げられた瞬間でデバッガがブレイクし何が間違っていたかが分かる
0813デフォルトの名無しさん
2007/12/12(水) 23:41:35Trace吐けばいいのでは
0814デフォルトの名無しさん
2007/12/12(水) 23:44:59マウスポインタおいたら変数の値がぱっとわかり
呼び出し履歴をずずっと辿っていくこともできるようなトレースならな
0815デフォルトの名無しさん
2007/12/12(水) 23:47:03MatchCollection mc = Regex.Matches(hoge.ToLower(), @"(http/1.[0-1] 200)|(https?://.*\.xml)");
if (mc.Count < 2)
{
// 異常
}
0816デフォルトの名無しさん
2007/12/12(水) 23:47:49そんな画面出しても済ませられる程度のAPなんだ
0817デフォルトの名無しさん
2007/12/12(水) 23:49:060818デフォルトの名無しさん
2007/12/12(水) 23:49:16多分、昨日からずっとそのこと言ってる人いますね
0819デフォルトの名無しさん
2007/12/12(水) 23:49:450820デフォルトの名無しさん
2007/12/12(水) 23:50:010821デフォルトの名無しさん
2007/12/12(水) 23:50:550822デフォルトの名無しさん
2007/12/12(水) 23:51:480823デフォルトの名無しさん
2007/12/12(水) 23:52:39なんで判断できないんだ?
メソッドの正しい呼び出し方を決めるのは自分だぞ
0824デフォルトの名無しさん
2007/12/12(水) 23:52:59それがバグなのかそうでないのかなんて判断できない。
0825デフォルトの名無しさん
2007/12/13(木) 00:01:08呼び出し方自体はあってるなら
FileNotFoundExceptionを投げればいい
パス文字列として正しくないならInvalidPathExceptionかなんかを投げればいい
メソッド作成者が、パス文字列として正しくない文字列を渡すのが違反だと考えるなら
ArgumentExceptionにしてもいい
もちろんパス文字列として正しいかどうかを判断する方法は別途用意しなきゃならないし
それを判断してから呼び出すのは無駄だから普通は
パス文字列として正しくないものも違反とは考えないという設計にするだろうが
呼び出し側はパス文字列として正しくないのが渡されるのがバグである場合はキャッチしなければいいし
ユーザーが入力したのをそのまま渡すとかするならキャッチしなきゃいけない
0826デフォルトの名無しさん
2007/12/13(木) 00:02:160827デフォルトの名無しさん
2007/12/13(木) 00:04:26ArgumentExceptionは一概に呼び出し側の要因とは言えない。
エラーチェックしろって話だが。
0828デフォルトの名無しさん
2007/12/13(木) 00:06:500829デフォルトの名無しさん
2007/12/13(木) 00:09:07どれだよ
正しくない呼び出しと区別できないんだったらそれはただの設計ミスだ
0830デフォルトの名無しさん
2007/12/13(木) 00:11:44まぁファイルの存在確認もしない奴は死んだ方が良いけど。
0831デフォルトの名無しさん
2007/12/13(木) 00:14:19呼び出し側が間違っててファイルがないときがあるだろ。
そんなの呼び出される側じゃ分からない。
結局同じ例外なり返さざるを得ない。
0832デフォルトの名無しさん
2007/12/13(木) 00:14:44そりゃパスを入れるプロパティにパスじゃないものが入ったらArgumentExceptionだろ
そりゃ違反だ
0833デフォルトの名無しさん
2007/12/13(木) 00:15:08それの後にファイルが消失したら?
0834デフォルトの名無しさん
2007/12/13(木) 00:16:220835デフォルトの名無しさん
2007/12/13(木) 00:16:540836デフォルトの名無しさん
2007/12/13(木) 00:19:28そりゃそうだな
メソッドに出来るのは自分が決めたルールに違反を犯したかどうかを通知するだけだ
0837デフォルトの名無しさん
2007/12/13(木) 00:21:510838デフォルトの名無しさん
2007/12/13(木) 00:23:42キャッチしていいものと、しちゃいけないものがある
0839デフォルトの名無しさん
2007/12/13(木) 00:24:33パスが不正かどうかはファイルが存在するしないに関係しないだろ。
こういうのはDirectoryNotFoundExceptionを返すケース。
0840デフォルトの名無しさん
2007/12/13(木) 00:27:27>ArgumentException
>
>指定したパスにワイルドカード文字が含まれています。
>または
>指定したパスに無効なパス文字が含まれています。
http://msdn2.microsoft.com/ja-jp/library/system.io.filesystemwatcher.path(VS.80).aspx
と書いてあるがこれは間違いか?
0841デフォルトの名無しさん
2007/12/13(木) 00:35:15>指定されたパスが存在しないか、見つかりませんでした。
>または
>指定したパスにワイルドカード文字が含まれています。
>または
>指定したパスに無効なパス文字が含まれています。
0842デフォルトの名無しさん
2007/12/13(木) 00:40:58パスが無効とNot Foundとnullとは
分けた方がいいと思うんだがなあ
まあそんなに困るケースは思いつかないが
0843デフォルトの名無しさん
2007/12/13(木) 00:44:590844デフォルトの名無しさん
2007/12/13(木) 00:47:11完成版には一番上にcatch(Exception)入れなきゃいかんだろうが
開発中はいれちゃいかんという話だ
想定外の例外が来たら安全に実行が続けられるかなんて分からんのだから
終了するしかない
0845デフォルトの名無しさん
2007/12/13(木) 00:49:110846デフォルトの名無しさん
2007/12/13(木) 00:54:200847デフォルトの名無しさん
2007/12/13(木) 00:54:21どういう意味か分からんが
単体テストなら正しい例外が返ってくるかcatchして調べる
想定外の例外が返ってきたらバグだからそれはcatchしない
0848デフォルトの名無しさん
2007/12/13(木) 01:12:42質問者がスルーされまくってるだろ
どれが質問者から分からないくらいに
0849デフォルトの名無しさん
2007/12/13(木) 04:31:09その答えは・・・続きはこちらで、みんな移動頼む。
C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/507-
0850デフォルトの名無しさん
2007/12/13(木) 09:28:16もっと存在しない記号にすれば良いのに
0851デフォルトの名無しさん
2007/12/13(木) 09:31:000852デフォルトの名無しさん
2007/12/13(木) 10:07:300853デフォルトの名無しさん
2007/12/13(木) 11:34:540854デフォルトの名無しさん
2007/12/13(木) 11:43:250855デフォルトの名無しさん
2007/12/13(木) 11:47:50£include <stdio.h>
とか書いてたの?
0856デフォルトの名無しさん
2007/12/13(木) 12:12:45みたいに
0857デフォルトの名無しさん
2007/12/13(木) 12:14:580858デフォルトの名無しさん
2007/12/13(木) 12:17:110859デフォルトの名無しさん
2007/12/13(木) 12:23:220860デフォルトの名無しさん
2007/12/13(木) 12:34:000861デフォルトの名無しさん
2007/12/13(木) 13:00:22やっぱりWinアプリですか?
0862デフォルトの名無しさん
2007/12/13(木) 13:15:120863デフォルトの名無しさん
2007/12/13(木) 14:23:18プログラム終了時にフォルダ内全削除してから終了させるのってどうやるんでしょうか?
0864デフォルトの名無しさん
2007/12/13(木) 14:52:150865デフォルトの名無しさん
2007/12/13(木) 14:54:37誰か慰めてください><
0866デフォルトの名無しさん
2007/12/13(木) 14:56:43犬にでも噛まれたと思ってあきらめなさい。
0867デフォルトの名無しさん
2007/12/13(木) 14:57:100868デフォルトの名無しさん
2007/12/13(木) 15:02:400869デフォルトの名無しさん
2007/12/13(木) 15:27:03catch(>>865){}
↑
完全スルーカワイソス
0870デフォルトの名無しさん
2007/12/13(木) 16:19:32ファイルの存在確認からOpenまでの間にファイルが消えることがあるだろ
並列処理してたらそういうことはよくある
確認用メソッドと取得用メソッドは分けてはいけない
0871デフォルトの名無しさん
2007/12/13(木) 22:02:26そういう問題かよ
0872デフォルトの名無しさん
2007/12/13(木) 22:17:46どうすればいいかな?
0873デフォルトの名無しさん
2007/12/13(木) 23:57:43常にVirtualListSizeを操作するのでしょうか?
また、一般的な使用方法とかはList<ListViewItem>みたいなリストを保持して、
RetrieveVirtualItemで処理するのでしょうか?
0874デフォルトの名無しさん
2007/12/14(金) 01:49:46現在の処理の流れとしては
Process.GetProcessesByNameでプロセス取得
↓
取得したプロセス.Threadsをforeachでまわして
Win32APIのEnumThreadWindowsを使ってウィンドハンドル取得
↓
EnumThreadWindowsの中でEnumChildWindowsを使って全部の子ウィンドを取得
↓
GetWindowTextを使用してキャプション取得
こんな感じで処理してます。ここで質問なのですが
1.他のアプリケーションウィンドウのキャプション取得するのって
Win32APIを使う以外に処理する方法ってありますか?
2.特定のウィンドウのキャプションが変更された時に
何らかのメソッドを実行したいのですができますか?
0875デフォルトの名無しさん
2007/12/14(金) 01:54:36それ以外はなし
あとGetWindowText使うな
タイマでポーリングしてりゃ良いんじゃね
0876デフォルトの名無しさん
2007/12/14(金) 01:55:46>1.他のアプリケーションウィンドウのキャプション取得するのって〜〜
確かできなかったはず。IntPtr を取る Control のコンストラクタもあるっぽいが、
昔試したときに他のアプリケーションのウィンドウやコントロールに関して有益な情報が得られなかったと記憶してる。
>2.特定のウィンドウのキャプションが変更された時に〜〜
Win32 API を使う方法になるけど、メッセージフックがある。
SetWindowsHookEx などの関数で調べてみるといいかも。
0877874
2007/12/14(金) 02:34:30レスありが�d
>>875
GetWindowTextって使わない方が良いのですか?
>>876
SetWindowsHookEx試してみたいと思います
0878デフォルトの名無しさん
2007/12/14(金) 02:44:270879デフォルトの名無しさん
2007/12/14(金) 02:47:560880デフォルトの名無しさん
2007/12/14(金) 02:50:38Environment
0881デフォルトの名無しさん
2007/12/14(金) 04:15:340882デフォルトの名無しさん
2007/12/14(金) 06:30:47Length = 0 で代用できるのと、十分に軽量にしているから
使いまわしせずに必要になったら作り直せというお達しだと思う。
0883708
2007/12/14(金) 10:28:420884デフォルトの名無しさん
2007/12/14(金) 10:46:29ToolStripDropDownMenuのチェックとかアイコンの枠を描画するときじゃね
Refectorで追いかけてみればどうよ
0885デフォルトの名無しさん
2007/12/14(金) 12:58:42やり方知らねーなら素直に分かりませんって書けやカス
ほんと役立たずのゴミしかいねーなここ
こんな低脳の溜まり場なんかで聞いた俺が馬鹿だったわw
0886デフォルトの名無しさん
2007/12/14(金) 13:01:34そういうときに使える有名なレスを授けよう。
「知らないんだったらレスしないで下さい!!」
0887デフォルトの名無しさん
2007/12/14(金) 13:09:55アンインストール用のソフトがあるんだね。これ使ってればよかったのに
手順が間違っていたのか、アンインストールもインストールもできなくなった
どうすればいいんでしょうか?
0888デフォルトの名無しさん
2007/12/14(金) 13:10:350889デフォルトの名無しさん
2007/12/14(金) 13:18:46http://support.microsoft.com/kb/290301/ja
>>888
できません。
自前で各行の差し替えを実装して頑張ってください。
0890デフォルトの名無しさん
2007/12/14(金) 14:01:450891デフォルトの名無しさん
2007/12/14(金) 14:27:01即レス感謝します
なんとかインストールはできるようになりました
あとは、もう一度アンインストールしてうまくいくかどうか・・
0892デフォルトの名無しさん
2007/12/14(金) 15:51:36APIとかいうのを使うしか無理?
0893デフォルトの名無しさん
2007/12/14(金) 18:29:520894デフォルトの名無しさん
2007/12/14(金) 18:39:47他アプリ(非.NET)のデータを取得するのはc#でもできるということですか?
0895デフォルトの名無しさん
2007/12/14(金) 18:41:180896デフォルトの名無しさん
2007/12/14(金) 19:31:21API使うとメモリリークとかを意識しないとだめなんですよね
0897デフォルトの名無しさん
2007/12/14(金) 20:21:44[ { col1 => "val", col2 => "val" }, { col1 => "val", col2 => "val" } ]
上記のような表示形式で見たいのですが方法はありますか?
0898デフォルトの名無しさん
2007/12/14(金) 20:25:08autoexp.cs弄ればできるかも
0899デフォルトの名無しさん
2007/12/14(金) 21:30:490900897
2007/12/14(金) 21:40:28List<Dictionary<string,string>>
>>898
おお。まだちゃんと調べてないけどこれでちょっといけそうな気がします。
ありがとうございます。
Javaだと構造が一発でみれて楽なんだけどなぁ・・・
0901デフォルトの名無しさん
2007/12/14(金) 21:43:030902デフォルトの名無しさん
2007/12/14(金) 21:48:490903デフォルトの名無しさん
2007/12/14(金) 21:55:340904デフォルトの名無しさん
2007/12/14(金) 21:57:08VSは基本的にはToStringを表示するだけだし
0905デフォルトの名無しさん
2007/12/14(金) 22:23:020906デフォルトの名無しさん
2007/12/15(土) 00:25:49を読んだのですが、シリアル化の意味がよくわかりません。
シリアル化とはどういう意味なんでしょうか?
0907デフォルトの名無しさん
2007/12/15(土) 00:33:05オブジェクトをファイルとかに保存できるようにデータ列に変換すること。
ファイルに保存=永続化って考えちゃえば良い。
0908デフォルトの名無しさん
2007/12/15(土) 00:33:21Serializableなインスタンスをここに入れると、 バイナリデータになったりXMLデータになったりします。
ネットで転送したり、ファイルに書き込めますね。
こんどはそのバイナリデータやXMLデータをいれて、横にある「デシリアライズ」というボタンを押すと、
あら不思議、もとのインスタンスがフィールドデータとかそのままで復元します。
0909デフォルトの名無しさん
2007/12/15(土) 00:34:45アプリが終了した後も永続的に状態が残るようにすること。
要するに、アプリ設定のセーブ/ロードとかに使う。
0910デフォルトの名無しさん
2007/12/15(土) 03:27:53ウィンドウにButtonを2個配置した場合、カーソルキーの左右でボタン1と2の間でフォ
ーカスが移動しますが、これと同じ動作をPictureBoxに対しても行いたいと考えており
ます。
PictureBox.TabIndexプロパティで何とかなるかとも思ったのですが、CFMのPictureBox
はTabIndexプロパティが実装されておりません。
当初ははPictureBoxでなくButtonで行いたかったのですが、Button上にイメージを貼り
付けたいのですが、Button.Imageがサポートされておらず、PictureBoxにした次第です。
PictureBoxにフォーカスを当てる方法か、Button上にイメージを貼る方法どちらか実現
出来ないでしょうか?
0911デフォルトの名無しさん
2007/12/15(土) 03:56:17↓ここらへん参考にしてみてはどうでしょう
http://www.microsoft.com/japan/msdn/thisweek/10lines/extra_bottoncontrol.aspx
0913デフォルトの名無しさん
2007/12/15(土) 08:01:29勉強していくうちに理解できることかも知れないけど質問させてください。
クラス、名前空間など処理を分ける(?)概念は
処理のグループ化、階層化などによって作成、管理、修正、解読などを
しやすくする狙いがある(または狙いのひとつである)のでしょうか。
Cは授業で基礎を習った程度の知識と経験がありますが、
その初段階で教わった「プログラムの構造化」を
言語自体の持つ性格としてより明確に打ち出されているものと考えてよいでしょうか。
0914デフォルトの名無しさん
2007/12/15(土) 08:20:09簡単にいうとネームが競合しないようにするためだね
*クラス
人が「歩く」
犬が「歩く」
同じ「歩く」でも歩き方などが違うわけで、「人が歩く」というクラス名にしてもいいけど
長くなるので同じクラス名でも別の機能を持たせたいのでクラスという概念ができた
*名前空間
田中さんが作った「人が歩く」プログラム
山田さんが作った「人が歩く」プログラム
同じ「人が歩く」プログラムでもプログラマによって歩かせ方が違うわけで
「田中さんが作った人が歩く」というクラス名にしてもいいけど
長くなるので同じクラス名でも別の機能を持たせたいので名前空間という概念ができた
0915デフォルトの名無しさん
2007/12/15(土) 09:57:19>>908
>>909
目的はよくわかりました。
たとえば、
class Widget {
public int x = 10;
public int y = 20;
}
のようなクラスのインスタンスを
シリアライズ化してファイルに保存
する場合、何が保存されるのでしょうか?
class obj = new Widget();
シリアライズ化
ファイルに保存
逆シリアライズ化
xとyを参照すると正しく10と20が読める。
こんな感じですか?
0916デフォルトの名無しさん
2007/12/15(土) 10:36:34つか自分でやってみろよ
0917デフォルトの名無しさん
2007/12/15(土) 13:26:34違います
言語を使ってみる前にこういうものかと言葉で理解しようとするのは誤りです
0918デフォルトの名無しさん
2007/12/15(土) 13:47:26間違いだらけでワロスw
0919デフォルトの名無しさん
2007/12/15(土) 13:47:28.NETも含めてより深く理解するために
Windowsアプリに応用しようかと思う
のですが、自作クラスを作成しない簡単な
フォームアプリでもdelegateととかは使われる
ものですか?
0920デフォルトの名無しさん
2007/12/15(土) 13:48:300921デフォルトの名無しさん
2007/12/15(土) 13:50:100922デフォルトの名無しさん
2007/12/15(土) 13:52:43気づかないだろうけど。
0923デフォルトの名無しさん
2007/12/15(土) 13:54:470924デフォルトの名無しさん
2007/12/15(土) 14:29:490925デフォルトの名無しさん
2007/12/15(土) 16:23:220926デフォルトの名無しさん
2007/12/15(土) 20:07:17まともに答えず話の方向ずらすだけ
0927デフォルトの名無しさん
2007/12/15(土) 20:21:19説教がましく言ってくるやつがいても、言い返せばOK。
0928デフォルトの名無しさん
2007/12/15(土) 21:30:38Aという処理の○○msec後にBという処理を行う
ということをTimerより高精度で行いたいのですがどうすればいいのでしょう?
QueryPerformanceCounterを使うといいよと言われたのですが、
ぐぐっても実行時間の計測方法しかわからなくて困ってます・・・
0929デフォルトの名無しさん
2007/12/15(土) 21:30:49メモリ開放しないとだめなのでしょうか?
c#は自動でメモリ開放してくれるのでしなくてもいいのでしょうか?
もしダメならなぜなのでしょうか?
今作っているプログラムはクラス内にAPIを使っていますが
メモリ開放をしなくても何も問題は起きていないです。
自動で開放できているということでしょうか?
0930デフォルトの名無しさん
2007/12/15(土) 21:32:32API って何? Win32API?
普通はハンドルは最後に解放するよ。それは C# でも C++ でも一緒。
0931デフォルトの名無しさん
2007/12/15(土) 21:33:44なんのハンドルか知らないけど
呼び出し側が解放するように指定されてるAPIなら解放しとけ
0932デフォルトの名無しさん
2007/12/15(土) 21:47:10System.Threading.TimerかSystem.Timers.Timerは?
0933デフォルトの名無しさん
2007/12/15(土) 21:50:59まずは精度を提示してください。
0934928
2007/12/15(土) 22:06:180935デフォルトの名無しさん
2007/12/15(土) 22:12:21まずは、C#を捨てるところから始めましょう。
0936デフォルトの名無しさん
2007/12/15(土) 22:14:450937デフォルトの名無しさん
2007/12/15(土) 22:15:29恥ずかしいからやめとけよ。
まともに答えてるのもわからんのなら。
わかるのなら答えてやれよ。
0938デフォルトの名無しさん
2007/12/15(土) 22:16:23GCが動いたら軽く吹っ飛ぶ
0939928
2007/12/15(土) 22:21:370940デフォルトの名無しさん
2007/12/15(土) 22:24:38>>934
何の実験かは知らんがWindowsをその用途に使うの多分向いてないよ。
仮に1msec以下の精度で時刻が分かっても
スレッドスケジューラが問答無用で実行権を奪っていくこともあるし
行儀の悪いドライバが長時間CPUを離さないと、
その間ユーザモードのプロセスは原理上なんもできん。
QueryPerformanceCounterとかStopwatchクラスでポーリングすれば、
100回のうち何十回とかは要件を満たせるかもしれんが、
一回のミスも許されないような用途ならそもそもWindowsを選ぶべきじゃない。
C#じゃなくてC++なら可能とかそういうレベルですらない。
FPGAとか使った方がいいんでは? と目的も聞かずに適当アドバイス。
0941デフォルトの名無しさん
2007/12/15(土) 22:32:030942デフォルトの名無しさん
2007/12/15(土) 22:34:060943デフォルトの名無しさん
2007/12/15(土) 22:35:110944デフォルトの名無しさん
2007/12/15(土) 22:40:22APIを呼び出しているクラス内の最後にclose(hwnd)みたいな感じやるということですか?
でも、hwndがメソッド外でフィールド?で定義していた場合
クラス自体を終了しなければ解放されないですよね?
で、クラスならいちいち解放しなくてもガベージコレクションで自動で開放されるから
わざわざしなくてもいいと思うんですがどうなんでしょうか?
>>931
他のプロセスのハンドルです
VirtualAllocExで仮想メモリを割り当てて、開放しなかったけれども
何も異常が起きないんですが、このクラスを呼び出す別クラスのメソッドが
終了すれば、自動で開放されているということかな?
0945デフォルトの名無しさん
2007/12/15(土) 22:46:120946デフォルトの名無しさん
2007/12/15(土) 22:52:132マイクロ秒くらい(これは俺の環境の場合だが)
かかるんだが、これってQueryPerformanceCounterの速度か
それともアンマネージ呼び出しなんかのオーバーヘッドかどっち?
0947デフォルトの名無しさん
2007/12/15(土) 22:53:52まあ普通はハンドル自体はSafeHandleでラップして、
さらにDisposableなクラスでラップするけどね。
0948デフォルトの名無しさん
2007/12/15(土) 22:56:54だよね?
0949デフォルトの名無しさん
2007/12/15(土) 22:59:29意味の分からんことを言うな
0950デフォルトの名無しさん
2007/12/15(土) 23:02:58に確保されるんだよね?
0951デフォルトの名無しさん
2007/12/15(土) 23:05:07DirectoryInfo()にパス名を引数として渡す場合、
C#では@"c:\temp"のように先頭に@マークをつけるのは
何故ですか?VC++やVBでは付けないみたいですが。
0952デフォルトの名無しさん
2007/12/15(土) 23:08:250953デフォルトの名無しさん
2007/12/15(土) 23:08:31aspx.csでやりたいのですが、これはTextBoxオブジェクトをインスタンス化して
表示するということは可能でしょうか?
Response.Writeでタグを吐けば表示可能ですが、この方法以外でやりたいのです。
なぜデザイナでタグをペチペチ配置しないかというと
例えばURLのパラメータによってテキストボックスの数が異なるからです。
なので、動的に生成する方法を知りたいのです。
よろしくお願いします。
0954デフォルトの名無しさん
2007/12/15(土) 23:09:44ハンドルそのものは値型で保持されるけど
ローカル変数じゃないからスタックとか関係ないよ。
0955デフォルトの名無しさん
2007/12/15(土) 23:10:57Designer.csを読めばわかる
0956デフォルトの名無しさん
2007/12/15(土) 23:13:19意味わかんね
プロセスハンドルをどうやって解放するつもりか
>VirtualAllocExで仮想メモリを割り当てて、開放しなかったけれども
解放しなかったのはメモリなのか?
0957デフォルトの名無しさん
2007/12/15(土) 23:14:38@をつけると\がエスケープ文字でなくなる。
VBはエスケープ文字がないし、C++は"c:\\temp"と\を重ねることでエスケープ文字でなくす。
0958デフォルトの名無しさん
2007/12/15(土) 23:18:10ありがとうございます。
会社の環境はVS2005なのですが、ちゃんと
aspx
aspx.cs
designer.cs
とワンセットで表示されるのですが、家の環境はWebDevelopperで
designer.csがソリューションエクスプローラに表示されません。
aspxなどの場所にdesigner.csファイルもありません。
これはどうやって表示させるのでしょうか?
WebDevelopperはソリューションファイルやプロジェクトファイルも無いんですよ(^^;
なので、いつもファイルをダブルクリックして立ち上げるのではなく
WebDevelopperを開いて、スターと画面から最近実行したソリューションの一覧から選択してる・・・
0959デフォルトの名無しさん
2007/12/15(土) 23:22:35メモリもプロセスハンドルも両方です
VirtualFreeしていないということです
0960デフォルトの名無しさん
2007/12/15(土) 23:30:17そんな初歩的なことを聞くな
会社で聞いたら一言で済む
0961デフォルトの名無しさん
2007/12/15(土) 23:35:010962デフォルトの名無しさん
2007/12/15(土) 23:35:42プログラミング構造に問題があるか、簡単なアドバイスをもらえたりするんでしょうか?
趣味で自分専用にやっているだけなので動けばいいんだけど
一人で黙々とやっているだけなのでだめなところに気づきにくい
0963デフォルトの名無しさん
2007/12/15(土) 23:36:14会社じゃあWebDevelopperなんて使ってないもんで誰もわからないと思われまする。。
0964デフォルトの名無しさん
2007/12/15(土) 23:42:29とにかく見てくれと言っても反応は得られにくいよ
0965デフォルトの名無しさん
2007/12/15(土) 23:44:01,l、::::::::::::::::::::::::::::::::::|:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:l
,ハ::`丶、:::::::::::::::::::::::|:;:;:;:;:;:;:;:;:;:;_,, -‐:〈
{;;;;ヽ、:::::`丶、:::::::::::::l:;:;:;:;:;:; ィ";:;:;:;:;:;:;:}
,l;;;;;;;;;シ丶、:::::::`:`:ー'‐::'':"::::::::_, ィ"´;;l
fうl;;;ミミ、 ``丶 、::::::::,: - ''"´ リ;;;;;;f-、
{ l l;;;;;ッ=` (三> `^´ (三シ ム;;;;;;ソl}
t !;;;リ _,,...,,_ _,,..,,_ l;;;//
゙l ヾ;l :'ィテヘ9ンミ ,: ',シヒ9ン、 l;//
`ーll! `''==ヲ' l:.:^''==彡'" ,!リノ
ll ` '' " l:.:.:` '' " ,i;;l´
li, ,r .: :.ヽ、 ,:,り
t、 / ゙ー、 ,r '゙ヽ /,K′
ゝ、 ,:' :~: } // /ヽ、
/{lヽ ,ィ==ニニ==,ノ,ノ7 /:.:.:.:ヾニヽ
, ィ/:.:い ヽ `` ー一 ''"/,/,/:.:.:.:.:.:.:.:ソ }- 、、
/ /:.:.:.:ヽヽ `' ー‐ -- '"//:.:.:.:.:.:.:/ / ` 丶、
,, - { ヾ:.:.:.:.ヽ丶 //:.:.:.:.:, -'" ,/ ` 丶 、
,, - ''" 丶、 `` ーゝ、ヽ.,_,,ィ"ェくユ- ''" , ィ"
0966デフォルトの名無しさん
2007/12/15(土) 23:47:43ゲ製板とかに行った方がいい
C#ってそんなに特殊な言語じゃないからC#知らなくてもC++かJava知ってる人なら読めるはず
0967デフォルトの名無しさん
2007/12/15(土) 23:48:19なるほど。わかりました。
0968962
2007/12/15(土) 23:51:36そうですか・・・
オブジェクト指向でプログラミングできているのかよくわからないんですけど
私の1000行のソースが上級者なら500行ぐらいに簡潔に表せたりするのかな?
同じ機能をあらゆるメソッドで何度も使う場合、それらをクラスにするようにしていれば
一応オブジェクト指向プログラミングできているのかな
>>965
な・・・なんですか?w
0969デフォルトの名無しさん
2007/12/15(土) 23:54:15気楽に行こうぜ相棒
0970デフォルトの名無しさん
2007/12/16(日) 00:19:13>一応オブジェクト指向プログラミングできているのかな
。 。
/ / ポーン!
( Д )
0971962
2007/12/16(日) 00:28:510972デフォルトの名無しさん
2007/12/16(日) 00:30:55あなただけ特別と思ってる
出会いは偶然で何処にでも在るとしても
二人なら永遠のストーリー
0973デフォルトの名無しさん
2007/12/16(日) 00:40:23オブジェクト指向っていうのはあくまで「指向」つまり考え方なわけで
「これをやればオブジェクト指向だぜ!」という明確な決まりはありませんのよ
0974デフォルトの名無しさん
2007/12/16(日) 01:48:40オブジェクト指向・・・
部品を作ってそれを組み合わせるって認識してるけど・・・どうなんだろう
エロゲなら例えば、
背景、画像、テキストなどの描画を管理するコンポジションクラス(レイヤー管理とか)
・背景、登場人物描画管理パーツクラス
・テキストボックス、テキスト描画管理パーツクラス
全体の動作・入力を管理するコンポジションクラス
・通常テキストの管理するパーツクラス
・選択肢発生・処理パーツクラス
・セーブ・ロード、オプションなどを管理するパーツクラス
描画・動作・入力対応を統括するクラス
登場人物のクラス(名前、画像、内部パラメータetc)
テキストをtxtファイルから読み込むクラス(後で修正を楽に行うため)
分岐情報やテキストの割り当て・管理を行うクラス
見たいにそれぞれの部品を作って、組み合わせるとか?
どういう風に部品分解するかは人それぞれだし、個人的には上記の例はさらにパーツクラスに分解されていき、
大体最大でも500行程度のクラスになると思う。(大体50〜200行程度になることが多いけど)
0975デフォルトの名無しさん
2007/12/16(日) 01:56:21戻り値の型をTと書こうとすると、IntelliSenceが勝手にThreadStaticAttribute
と入れてしまうのですが、うまい回避法はないですか?
Escを押せば回避できるのはしってますが、もっとスマートな方法はないでしょうか
0976デフォルトの名無しさん
2007/12/16(日) 02:15:06まったく関係ないが、初めてその属性を知った
こんなんあったんだ
0977デフォルトの名無しさん
2007/12/16(日) 03:15:32Visual C# 2005 EEを使っているのですが、
0x80042740
というエラーがでてデザイナが表示されなくなってしまいました。
デザイナが表示されないこと以外は何の問題もなく動作します。
調べてもいまいち分りませんでした。
直す方法があれば教えていただきたいです。よろしくお願いいたします。
0978デフォルトの名無しさん
2007/12/16(日) 03:21:480979デフォルトの名無しさん
2007/12/16(日) 03:24:36場所 EnvDTE.FileCodeModel.get_CodeElements()
場所 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.Parse(TextReader codeStream)
場所 Microsoft.VisualStudio.Design.Serialization.CodeDom.MergedCodeDomParser.System.CodeDom.Compiler.ICodeParser.Parse(TextReader stream)
場所 System.CodeDom.Compiler.CodeDomProvider.Parse(TextReader codeStream)
場所 Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_CompileUnit()
場所 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
場所 System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)
0980デフォルトの名無しさん
2007/12/16(日) 03:33:32>>978
0981デフォルトの名無しさん
2007/12/16(日) 03:37:40デザイナの読み込み時に 1 つ以上のエラーが発生しました。エラーは以下に一覧表示されます。コードの変更が必要なエラーもありますが、プロジェクトを再度ビルドすると解決できるエラーもあります。
HRESULT からの例外: 0x80042740
非表示
場所 EnvDTE.FileCodeModel.get_CodeElements()
場所 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.Parse(TextReader codeStream)
場所 Microsoft.VisualStudio.Design.Serialization.CodeDom.MergedCodeDomParser.System.CodeDom.Compiler.ICodeParser.Parse(TextReader stream)
場所 System.CodeDom.Compiler.CodeDomProvider.Parse(TextReader codeStream)
場所 Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_CompileUnit()
場所 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
場所 System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)
0982デフォルトの名無しさん
2007/12/16(日) 06:05:04これは特定のフォームで出てるの?
もしそうならコンストラクタのInitializeComponent()の前後に追加したコードをコメントにしてみて。
0983デフォルトの名無しさん
2007/12/16(日) 06:34:21初期化がうまくいってない気がする
コードうpすれば多分わかるけど
0984あにす ◆sGTL1yK0.6
2007/12/16(日) 09:17:39クラスとは、萌えなのです。
0985デフォルトの名無しさん
2007/12/16(日) 10:11:050986962
2007/12/16(日) 11:39:50私のプログラムはそんなに綺麗に役割分担できてないかも・・・・
あらゆるクラスがあらゆることをやっている感じになって
非常に修正が難しいプログラムになってます・・
設計をもう一度見直そう・・・
0987デフォルトの名無しさん
2007/12/16(日) 11:51:21一番必要なのは経験だろうから
ずっと経ってから初期の自分のコードを見直すと丸ごと直したくて仕方ない衝動に駆られたりするけど
それはそういうものだと思う
0988デフォルトの名無しさん
2007/12/16(日) 11:53:44一歩も動けなくなるのさ
0989962
2007/12/16(日) 12:36:31もう少し力抜いてやります
プログラムたのしー
0990デフォルトの名無しさん
2007/12/16(日) 14:02:50ジェネリックメソッドのコードスニペット作れば
0992デフォルトの名無しさん
2007/12/16(日) 14:07:54T Esc と入れる習慣を作る方が楽なような
0993762
2007/12/16(日) 14:42:26<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0"><Header><Title>GenericMethod</Title>
<SnippetTypes><SnippetType>Expansion</SnippetType></SnippetTypes</Header>
<Snippet><Declarations><Literal Editable="true"><ID>methodName</ID>
<Default>MyMethod</Default></Literal><Literal Editable="true"><ID>args</ID>
</Literal></Declarations><Code Language="csharp"><![CDATA[T $methodName$<T>($args$)
{
$end$
}]]></Code></Snippet></CodeSnippet></CodeSnippets>
作ってみたけどたぶんT Escの方が早いよ
0994デフォルトの名無しさん
2007/12/16(日) 16:18:56Repeaterにユーザコントロールファイルをセットして実行し、
ascx.csでRepeater.DataSourceに入っているデータレコードを取得したいのですが
そんな事は可能でしょうか?
this.rep.DataSource = dataTable;
this.rep.ItemTemplate = Page.LoadTemplate("Test.ascx");
this.rep.DataBind();
Test.ascx.csでdataTableのレコードを取得したい。
ascxでは
<%# DataBinder.Eval(((RepeaterItem)Container).DataItem, "name") %>
で取得可能なのですが、これをascx.csでやりたい。
何でかと言うと、この値によって処理を変更したいからです。
お願いしますm(_ _)m
0995デフォルトの名無しさん
2007/12/16(日) 18:32:41どうやるのでしょうか?
こんな感じにしたいのですが。
----------------------------------------
| header1 |header2 |
----------------------------------------
|AAA | (ボタン1)(ボタン2)|
| | (ボタン3)(ボタン4)|
----------------------------------------
|BBB | (ボタン1)(ボタン2)|
| | (ボタン3)(ボタン4)|
----------------------------------------
0996デフォルトの名無しさん
2007/12/16(日) 18:34:400997デフォルトの名無しさん
2007/12/16(日) 18:46:370998デフォルトの名無しさん
2007/12/16(日) 19:31:12でっていう
0999デフォルトの名無しさん
2007/12/16(日) 19:54:19ふらっとC#,C♯,C#(初心者用) Part22
http://pc11.2ch.net/test/read.cgi/tech/1197802312/
1000デフォルトの名無しさん
2007/12/16(日) 19:57:0010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。