C#, C♯, C#相談室 Part58
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/03/22(月) 21:35:10前スレ
C#, C♯, C#相談室 Part55 (実質56)
http://pc12.2ch.net/test/read.cgi/tech/1260111240/
Visual C# 2008 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
その他テンプレ>>1-5くらい
0002デフォルトの名無しさん
2010/03/22(月) 21:38:11ふらっとC#,C♯,C#(初心者用) Part57
http://pc12.2ch.net/test/read.cgi/tech/1269018938/
Visual Studio 2008 Part 19
http://pc12.2ch.net/test/read.cgi/tech/1259076828/
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
http://pc12.2ch.net/test/read.cgi/tech/1261879110/
【VB.NET】LINQ友の会【C#, C♯, C#】
http://pc12.2ch.net/test/read.cgi/tech/1202568694/
C#,C#の宿題片付けます。
http://pc12.2ch.net/test/read.cgi/tech/1197620454/
ASP.NET + Atlas or Ajax について
http://pc12.2ch.net/test/read.cgi/tech/1150036430/
Microsoft Silverlight その5
http://pc12.2ch.net/test/read.cgi/tech/1260010993/
Visual Studio 2010 Part3
http://pc12.2ch.net/test/read.cgi/tech/1267092670/
0003デフォルトの名無しさん
2010/03/22(月) 21:39:19MSDNライブラリ
http://msdn.microsoft.com/ja-jp/library/
@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/
MSDN フォーラム
http://forums.microsoft.com/MSDN-JA/default.aspx?SiteID=7
pinvoke.net: the interop wiki!
http://pinvoke.net/
宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/
WisdomSoft Microsoft .NET入門
http://wisdom.sakura.ne.jp/system/msnet/
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
0004デフォルトの名無しさん
2010/03/22(月) 21:40:51初歩的な質問はPC初心者板で・・・
http://pc11.2ch.net/pcqa/
参考リンク(よく出てくる情報リンク)
Windows Vista Wiki
http://windowsvista.ms/index.php
Windows VistaFAQ
http://vistafaq.stdo.net/index.html
インストールから設定・活用まで〜 すべてが分かるWindows Vista大百科
http://journal.mycom.co.jp/special/2007/windowsvista/menu.html
※コードの量が多い場合は下記サイトを使うなどしたほうがいいかも※
http://codepad.org/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
0005デフォルトの名無しさん
2010/03/22(月) 21:45:14http://pc12.2ch.net/test/read.cgi/tech/1265283175/
こっちが本当の前スレ
0006デフォルトの名無しさん
2010/03/22(月) 21:45:49乙
前スレ
C#, C♯, C#相談室 Part57
http://pc12.2ch.net/test/read.cgi/tech/1265283175/
0007デフォルトの名無しさん
2010/03/23(火) 08:45:19ideoneにすればいいのに
http://ideone.com/
0008デフォルトの名無しさん
2010/03/23(火) 11:59:110009デフォルトの名無しさん
2010/03/23(火) 17:09:29SecurityPermissionFlag.UnmanagedCodeのクラスは使えないらしく、
Mutexクラスが使えません
代替手段ってどんなものが考えられるでしょうか?
0010デフォルトの名無しさん
2010/03/24(水) 02:29:07回答ありがとうございます。いろいろXMLについて調べてみます
0011デフォルトの名無しさん
2010/03/24(水) 02:46:53http://dobon.net/vb/dotnet/file/xmlserializer.html
00129
2010/03/24(水) 03:02:43他にいい方法があったら教えてください
00139
2010/03/24(水) 03:04:46ローカルでセキュリティのテストをしたいのですが、
コマンドプロンプトからSecurityPermissionFlag.UnmanagedCodeなどを禁止した状態で
実行する方法はないでしょうか?
0014デフォルトの名無しさん
2010/03/24(水) 05:23:15ttp://msdn.microsoft.com/ja-jp/library/tkscy493(VS.80).aspx
のHigh設定になってるんじゃないかね?
0015デフォルトの名無しさん
2010/03/24(水) 05:26:42Mediumが多いのかな?
0016デフォルトの名無しさん
2010/03/24(水) 20:05:23Mediumです
ローカルでレンタルサーバーと同じ設定にしたいのですが、XPHomeなのでIISが使えません
なので、普通のコンソールアプリケーションでセキュリティを指定して実行する方法がないかなぁ・・と
0017デフォルトの名無しさん
2010/03/24(水) 20:28:070018デフォルトの名無しさん
2010/03/24(水) 20:55:520019デフォルトの名無しさん
2010/03/25(木) 00:13:46間にはさんでコントロールを管理したいんだがその管理クラスに土台となる
コントロールのインスタンスを渡すのは邪道だろうか?
0020デフォルトの名無しさん
2010/03/25(木) 00:15:160021デフォルトの名無しさん
2010/03/25(木) 00:16:410022デフォルトの名無しさん
2010/03/25(木) 00:17:47Formの中にできますよね
Form上の部品もある程度機能ごとに分けれるので内部的に
自作クラスをはさんでコードも機能わけできればなあと
0023デフォルトの名無しさん
2010/03/25(木) 00:23:40管理クラスは自分が管理するコントロールを動的に生成します。
このほかにもHogeBなどと別の管理クラスがあってクラス間でやり取りするときは
デリゲートを使ってForm経由でやり取りします。
class HogeA
{
public HogeA(Control control)
{
Button button = new Button();
control.Controls.Add(button);
}
//イベントハンドラなどもこのクラスで管理
}
0024デフォルトの名無しさん
2010/03/25(木) 00:35:36もしユーザーコントロール(複合コントロール)のことを知らずに
ユーザーコントロール的なものをやろうとしてるのなら、別に普通。
ただFormのコードを見た目だけスッキリさせたい(何のために?)、
なんてだけの動機なら、恐らく愚行。
0025デフォルトの名無しさん
2010/03/25(木) 00:37:000027デフォルトの名無しさん
2010/03/25(木) 00:53:18そもそもコントロールの制御ってのは、>>25のいう「ただのView」の仕事なんだけど。
でなきゃViewの仕事って何があるんだよ。
逆に言えば、ロジックを実装してるクラスでコントロールなんか普通の常識があれば
触りたくないと思うだろう。
なんか>>25も>>23も勘違いしてないか。
0028デフォルトの名無しさん
2010/03/25(木) 00:56:03まあ理由があるんですよ
デザイナーが出力するようなコードをわざわざ書いてる部分もあるんですが
どうしても動的に配置を変えたり、コントロールを動的に作るコードを書か
ないといけないので試行錯誤した結果こういう案ができあがったんですよ・・・
このクラスはviewを管理コントロールするクラスというか
0029デフォルトの名無しさん
2010/03/25(木) 00:57:04WPFではCはVに全く依存しないように作れるんだけど(MVVMという)
WinFormsではどこかでCにVを渡さないと無理
0030デフォルトの名無しさん
2010/03/25(木) 00:57:07邪道かどうかなんて聞くまでもない
邪道だと言った所で聞き入れないだろ?
0031デフォルトの名無しさん
2010/03/25(木) 00:58:49ほかに方法があれば〜と思っただけです
0032デフォルトの名無しさん
2010/03/25(木) 01:04:10まあそんな感じですね
0033デフォルトの名無しさん
2010/03/25(木) 01:06:35splitContainerって分割を変えると上からもしくは左からが基準になってますけど
下からとか右からってできましったっけ?
これができるといいんですが
0034デフォルトの名無しさん
2010/03/25(木) 01:37:48Splitって二つ以上に分割できたっけ?
0035デフォルトの名無しさん
2010/03/25(木) 01:40:12panel1とpanel2と分割されるけど
panel1 panel2
panel1
panel2
っていうのはあるけど
panel2 panel1
panel2
panel1
はないよね?ってことじゃないの?
0036デフォルトの名無しさん
2010/03/25(木) 02:02:410037デフォルトの名無しさん
2010/03/25(木) 02:28:410038デフォルトの名無しさん
2010/03/25(木) 22:45:11仕事で使うみたいだからC♯の勉強をはじめたんだが
なにかを作りたいわけでもないのでイマイチはかどらないんだ
やっぱり目標は必要だよな?
プログラミングを独学学んだ人がいればどういう風に勉強に取り組んだか聞かせてもらえないかい?
0039デフォルトの名無しさん
2010/03/25(木) 22:46:440040デフォルトの名無しさん
2010/03/25(木) 22:47:030041デフォルトの名無しさん
2010/03/25(木) 22:50:02はやくね?ww
>>40
現状そうだな
なにかを作るわけでもないから得た知識がすぐに抜けていく感じがするわ
0042デフォルトの名無しさん
2010/03/25(木) 22:56:21フォームアプリと違ってごまかしが効かないから勉強になるよ
0043デフォルトの名無しさん
2010/03/25(木) 22:57:510044デフォルトの名無しさん
2010/03/25(木) 23:02:32たぶん身につかないよ。
0045デフォルトの名無しさん
2010/03/25(木) 23:05:10マイク入力とすることってできませんか
0046デフォルトの名無しさん
2010/03/25(木) 23:06:340047デフォルトの名無しさん
2010/03/25(木) 23:39:560048デフォルトの名無しさん
2010/03/25(木) 23:42:02・・・マイク出力端子をマイク入力端子に直結でいいやん。
0049デフォルトの名無しさん
2010/03/25(木) 23:50:36一つのソフトが出してる音だけ。
がほしいんです
0050デフォルトの名無しさん
2010/03/25(木) 23:57:18たまにハード的に使えないPCあるけど、その場合はオーディオストリームキャプチャー機能ついたソフトで。
0051デフォルトの名無しさん
2010/03/26(金) 00:06:160052デフォルトの名無しさん
2010/03/26(金) 00:08:57http://www.4gamer.net/specials/tooearlytogetvista/003/tooearlytogetvista_003.shtml
よーわからん。
0053デフォルトの名無しさん
2010/03/26(金) 02:54:110054デフォルトの名無しさん
2010/03/26(金) 03:03:210055デフォルトの名無しさん
2010/03/26(金) 03:35:08手っ取り早くなら専ブラ作れ
ざっくり学べる
0056デフォルトの名無しさん
2010/03/26(金) 03:37:17radikoだろうな
現状はrtmpをそのまま受信するあのツールを起動するGUIを書くか
質問のようにフックとかしてぶっこ抜きか、ごく普通な手段として
録音ソフトを別途起動するか
最後の方法は音が鳴っちゃうからなあ
0057デフォルトの名無しさん
2010/03/26(金) 03:41:13ドライバ作ればいいだけじゃん
0058デフォルトの名無しさん
2010/03/26(金) 03:52:24ドライバー作れるようなのがどれだけいるのか
仮想デバイスドライバーくらいならやってみたいがどこから手をつけていいかわからん
0059デフォルトの名無しさん
2010/03/26(金) 04:57:190060デフォルトの名無しさん
2010/03/26(金) 14:52:32お前最高にアホだわ(^ω^;)
0061デフォルトの名無しさん
2010/03/26(金) 16:06:11プログラムに関する質問を日本語の掲示板に頼っている時点でここの連中の程度は知れますけど
まぁがんばってください
0062デフォルトの名無しさん
2010/03/26(金) 16:09:19なにぶちきれてるか知らんけど結論とすればC#でやることじゃないよってことだよw
・ほかのツールで録音すれば?->C#は関係ないし
・ドライバー作れば?->C/C++の話だし
・フック->これもC/C++の方がいいだろう
0063デフォルトの名無しさん
2010/03/26(金) 17:15:070064デフォルトの名無しさん
2010/03/26(金) 17:31:32C/C++のほうで考えてみます
質問に答えてくださってありがとうございます。
0065デフォルトの名無しさん
2010/03/26(金) 19:06:270066デフォルトの名無しさん
2010/03/26(金) 19:15:59仕事で〜
radikoの録音で〜
0067デフォルトの名無しさん
2010/03/26(金) 19:16:44どう見ても別人だろ・・・
0068デフォルトの名無しさん
2010/03/26(金) 19:35:02表示させようとしているのですが、1回クリックして表示すると
2回目以降はButtonにフォーカスを当てただけで表示されてしまいます。
Buttonに紐付けられたツールチップのオブジェクトの参照を
無効にするには、どのタイミングのイベントで行えばよいでしょうか?
0069デフォルトの名無しさん
2010/03/26(金) 19:38:480070デフォルトの名無しさん
2010/03/26(金) 20:10:36MSDNライブラリのToolTipsメンバ一覧を見てそれを言ってるとしたらかなり頭が悪い。
見ずにいってるとしたら性格が異常。
0071デフォルトの名無しさん
2010/03/26(金) 20:16:02MouseLeaveで解決しました。
>>70
ありがとうございます。
0072デフォルトの名無しさん
2010/03/26(金) 23:30:500073デフォルトの名無しさん
2010/03/26(金) 23:50:25javaだとpublic static void mainというところでインスタンスを作るけど
c#はその必要はないのですか?
0074デフォルトの名無しさん
2010/03/26(金) 23:52:38プロジェクトのフォルダにあるProgram.csを見てみるといい。
0075デフォルトの名無しさん
2010/03/26(金) 23:57:33ない
windowsアプリの場合Program.csの中のstatic void Main()で勝手にやってる
デザイナーでデザインした際に自動で書いてくれるコードは
Form1.Designer.csの中に入ってる。(Form1のコンストラクタがInitializeComponent()を呼び出してる)
こんな構造
なので基本的にはコンストラクタのInitializeComponent();の後か
Loadイベントを作ってその中にコードを書くなどすればOK
0076デフォルトの名無しさん
2010/03/27(土) 00:00:19Javaなんかだと何故かあれを好む人がいるけど普通に考えたら不自然だよな
0077デフォルトの名無しさん
2010/03/27(土) 00:02:21不自然だねw
IDEが勝手に用意していきなり作られるForm1だって所詮はFormを継承したクラスに過ぎないからねえ
プログラムとしてみると今の方が普通
0078デフォルトの名無しさん
2010/03/27(土) 00:05:00確認しました。ありがとうごぜいます。
そのようにいたします。
0079デフォルトの名無しさん
2010/03/27(土) 07:07:06sourceforgeで晒すのって問題あるんだろうか?
コメントで入手先とか書いとけばいいのかな?
0080デフォルトの名無しさん
2010/03/27(土) 07:25:27書いた人間に訊けよ
そんなこと他の誰も許可できん
0081デフォルトの名無しさん
2010/03/27(土) 07:26:500082デフォルトの名無しさん
2010/03/27(土) 07:29:12めんどくさい
0083デフォルトの名無しさん
2010/03/27(土) 08:50:540084デフォルトの名無しさん
2010/03/27(土) 18:08:56ファイルを開く前にプロセスで使用中か調べる方法ってありますか?
0085デフォルトの名無しさん
2010/03/27(土) 18:12:55ファイルを開く時には使用中かもしれないので
全くの無駄な行為でしかない
0086デフォルトの名無しさん
2010/03/27(土) 18:15:17ファイルを開くときに使用中でも問題ないです
例外を処理する回数を減らしたいので
0087デフォルトの名無しさん
2010/03/27(土) 18:18:320088デフォルトの名無しさん
2010/03/27(土) 18:21:250089デフォルトの名無しさん
2010/03/27(土) 18:24:470090デフォルトの名無しさん
2010/03/27(土) 18:26:36その中に目的のファイルがあるかどうか調べる
という感じだっけ?
0091デフォルトの名無しさん
2010/03/27(土) 18:26:54なるほどそういうことね
Existsでいいんじゃない
>呼び出し元が必要なアクセス許可を持ち、path に既存のファイル名が格納されている場合は true。
>それ以外の場合は false。
>呼び出し元が指定したファイルを読み取るための十分なアクセス許可を持たない場合、例外はスローされず、
>このメソッドは、path の有無にかかわらず false を返します。
0092デフォルトの名無しさん
2010/03/27(土) 18:34:29別のプロセスが使用中のときはファイルを開きません
>>88,91
File.Existsは読み取り許可をチェックするだけみたいです
1: 2: ともにTrueになりました
File.WriteAllText("aaa.txt", "test", Encoding.UTF8);
Trace.WriteLine("1: " + File.Exists("aaa.txt"));
using (var stream = File.OpenWrite("aaa.txt"))
{
Trace.WriteLine("2: " + File.Exists("aaa.txt"));
}
>>89
やっぱりないんですかね
>>90
そこまでするなら例外を処理したほうが良さそうです
0093デフォルトの名無しさん
2010/03/27(土) 18:41:090094デフォルトの名無しさん
2010/03/27(土) 18:41:500095デフォルトの名無しさん
2010/03/27(土) 18:44:40>>85 の言ってること理解しようよ。
1. ファイルが他のプロセスで開かれてるかチェック
2. 開かれてないので、自分のアプリで開く
3. 1. - 2. の間に他のプロセスが開いてたら例外発生
なんだから、いきなり 2. をやって例外をトラップすればいいだけ。
0096デフォルトの名無しさん
2010/03/27(土) 18:59:55>>86の言ってる事を理解しようぜ
0097デフォルトの名無しさん
2010/03/27(土) 19:04:060098デフォルトの名無しさん
2010/03/27(土) 19:05:270099デフォルトの名無しさん
2010/03/27(土) 19:28:282 を実行しない分例外処理の回数が減るだろ
0100デフォルトの名無しさん
2010/03/27(土) 19:29:48超レアケースだな
0101デフォルトの名無しさん
2010/03/27(土) 19:30:34自分のアプリからしか使わないファイルで、
そのアプリが多数で同時に使われないなら減るんじゃね。
0102デフォルトの名無しさん
2010/03/27(土) 19:32:05有意な差はないだろうけどな
0103デフォルトの名無しさん
2010/03/27(土) 19:32:31チェックとロック(=ファイルオープン)がアトミックじゃないなんて
典型的なダメダメファイルロックじゃんね。
0104デフォルトの名無しさん
2010/03/27(土) 19:33:57実行コストでしょ
例外処理より軽い確認処理があるなら先にやっといて損はない、可能性がある
まあほとんどの場合無意味、むしろ不利益になる可能性の方が高いだろうけど
0105デフォルトの名無しさん
2010/03/27(土) 19:35:040106デフォルトの名無しさん
2010/03/27(土) 19:36:440107デフォルトの名無しさん
2010/03/27(土) 19:39:150108デフォルトの名無しさん
2010/03/27(土) 19:39:46Mutexが使えないので、ファイルの排他処理でMutexをエミュレートしてます
なので、正常ケース:例外ケースが1:10000くらいになってしまい、
例外を処理するのは効率悪いのではないかと・・・
0109デフォルトの名無しさん
2010/03/27(土) 19:40:14( ̄ー ̄)ハァ?
0110デフォルトの名無しさん
2010/03/27(土) 19:40:55が、そんなこと気にするより、わかりやすくてシンプルなコードの方がいいと思うよ。
ちなみに、他のプロセスがファイルを開いているかどうかは、>>90みたいな感じで
非公開関数を使うか、openfiles コマンドみたいなのを使う必要あり。
0111デフォルトの名無しさん
2010/03/27(土) 19:42:020112デフォルトの名無しさん
2010/03/27(土) 19:42:240113デフォルトの名無しさん
2010/03/27(土) 19:42:27おまえの存在してるケースの方がレアじゃね。
0114デフォルトの名無しさん
2010/03/27(土) 19:42:530115デフォルトの名無しさん
2010/03/27(土) 19:43:38計りましたが・・・
0116デフォルトの名無しさん
2010/03/27(土) 19:43:43複数アイテムを洗濯した状態でチェックボックスをクリックすると、
ItemCheckedがアイテム毎に呼ばれるので処理が重くなってしまいます。
何かいい案ないでしょうか。
やりたいこととしては、
チェックが変更された事を契機としたチェックされているアイテム数の表示です。
0117デフォルトの名無しさん
2010/03/27(土) 19:44:550118デフォルトの名無しさん
2010/03/27(土) 19:44:580119デフォルトの名無しさん
2010/03/27(土) 19:46:14もう少し楽になると思うよ。
0120デフォルトの名無しさん
2010/03/27(土) 19:49:360121デフォルトの名無しさん
2010/03/27(土) 19:54:24ItemCheckedじゃなくてタイマで定期的に調べるようにしたら
0122デフォルトの名無しさん
2010/03/27(土) 19:59:30そんでもって実際に開くときに同じこともう一度やるはめになる。
0123デフォルトの名無しさん
2010/03/27(土) 20:03:56あ!まさにそれがベストっぽいですね!
ありがとうございました!
>>122
開けないケースのほうが数多いので、開くときのコストは大きくてもOKです
0124デフォルトの名無しさん
2010/03/27(土) 20:10:070125デフォルトの名無しさん
2010/03/27(土) 20:25:34ネット上でフリーで公開されているソースコード?と呼ばれるものを
実行ファイルにしたいのですが(そこでは実行ファイルそのものは公開されていない)
拡張子が「xxxx.c」となっているのですが、これはコンパイルというものをすれば実行ファイルに変わるのでしょうか?
プログラムは完全に初心者なので、どういうソフトで作業を行うのかすらわかりません
4つほど公開されいるソースコードを実行ファイルにするだけです
なにかフリーで手頃なソフトがもし存在するのであれば、教えて頂けると助かります
すれ違いの質問であれば、失礼致しました
0126デフォルトの名無しさん
2010/03/27(土) 20:27:130127デフォルトの名無しさん
2010/03/27(土) 20:29:58ここは C# のスレなので、スレ違いです。
0128デフォルトの名無しさん
2010/03/27(土) 20:32:05System.Timers.TimerをAutoReset=falseにしといて、Intervalは33ぐらい、
タイマのイベントで数えて表示、
でItemCheckedではタイマのStart呼び出すだけ、とか
0129デフォルトの名無しさん
2010/03/27(土) 20:33:17該当スレを探して、再度そちらで質問させて頂きます
スレ違い失礼いたしました
0130デフォルトの名無しさん
2010/03/27(土) 20:33:570131デフォルトの名無しさん
2010/03/27(土) 20:35:06いや、君のレベルだと人に聞く前にとりあえず基礎を調べてから勉強しといたほうが・・・。
0132デフォルトの名無しさん
2010/03/27(土) 20:38:21なぜSystem.Windows.Forms.Timerじゃないんだよ。
0133デフォルトの名無しさん
2010/03/27(土) 20:42:50AutoResetが便利だからつい
SynchronizingObjectはコンポーネントとしてデザイナにD&Dすれば自動設定だし
0134デフォルトの名無しさん
2010/03/27(土) 20:42:520135デフォルトの名無しさん
2010/03/27(土) 20:43:23UIをUIスレッド以外で弄ると発狂するよ
0136デフォルトの名無しさん
2010/03/27(土) 21:00:37低いってのは回答する側の方。
ググって過去スレなんか見た時なんかひどいもんだ。
0137デフォルトの名無しさん
2010/03/27(土) 21:01:19SynchronizingObject
0138デフォルトの名無しさん
2010/03/27(土) 21:03:540139デフォルトの名無しさん
2010/03/28(日) 01:17:23理由になってない
0140デフォルトの名無しさん
2010/03/28(日) 09:56:10TabControlについて研究していますが、
たとえば、JaneStyleにあるようなタブコントロールだと、
タブを左クリックすれば、すぐにそのタブが選択されますが、
一般的な.netのTabControlで、JaneStyleのようなFlatButtonの場合ですが、
マウスの右ボタンを押下(DOWN)した状態で→軽くボタンが浮き上がる表示(この状態ではまだ選択という状態になっていません)
そして、
マウスの右ボタンを離した(UP)した状態で→ボタンが押された表示(この状態で、タブが選択されたという状態になります)
となるのですが、
http://ghardzatudan6.es.land.to/up/img-box/img20100327070642.jpg
Janeのように、マウスの右ボタンを押下(DOWN)した段階で、すぐに、そのタブが選択されるような処理をしたい
場合はどのようなコードを入れればいいのでしょうか?
Janeで実装できているのですから、VB.NETでも実装できないわけないと思い、調べていますが、
解決できません。
だれかご存知な方はいらっしゃいますか?
0141デフォルトの名無しさん
2010/03/28(日) 10:23:470142デフォルトの名無しさん
2010/03/28(日) 10:32:110143デフォルトの名無しさん
2010/03/28(日) 10:36:070144デフォルトの名無しさん
2010/03/28(日) 11:01:00VBスレで答えがなかったからこっちに書いたと思うけど、
うそでも「C#でも実装できないわけないと思い、」と書いておけw
.NET の TabControl の MouseDown イベントで、どのボタンを
押そうとしているのかとか、マウスポインタがどのボタンの上に
あるのかとかが、取り出せないような気がするので、自分の
希望の挙動をするコントロールを自作しないといけないような
気がする。
0145デフォルトの名無しさん
2010/03/28(日) 12:36:120146140
2010/03/28(日) 12:58:09Captureを外して(false)、その後、SelectedIndexに選択するインデックスを
設定すれば、ワンクリックで選択されるようになりました。
0147デフォルトの名無しさん
2010/03/28(日) 13:01:16乙
そういえば、.NETスレないよね
C#とVBで分ける意味がわからない
0148140
2010/03/28(日) 13:06:08イベントの違いをSpyで比べてたら、
JaneStyleに、「WM_CAPTURECHANGED」が呼ばれてたので、あぁ、
そうかキャプチャーの存在あったか、って思い出して、
解決。
http://ghardzatudan6.es.land.to/up/img-box/img20100328130005.jpg
大変ご迷惑おかけしました。失礼します。
0149デフォルトの名無しさん
2010/03/28(日) 13:07:02CLRの挙動やFCL全体について質問する奴は少なそうだし
0150デフォルトの名無しさん
2010/03/28(日) 13:13:04愚痴は目障りやめろ
0151デフォルトの名無しさん
2010/03/28(日) 13:16:210152デフォルトの名無しさん
2010/03/28(日) 13:17:13お前が.NETスレ立てて頑張ってくれ
0153デフォルトの名無しさん
2010/03/28(日) 13:17:140154デフォルトの名無しさん
2010/03/28(日) 13:18:450155デフォルトの名無しさん
2010/03/28(日) 13:19:26VBスレ以外の.NET関連のスレでVBのコードはほとんど見かけない
0156デフォルトの名無しさん
2010/03/28(日) 13:21:39出てくるだけ。
なので、言語ごとでいいんじゃね?
0157デフォルトの名無しさん
2010/03/28(日) 13:24:49コンバートしてくれるサイト
http://www.developerfusion.com/tools/convert/vb-to-csharp/
0158デフォルトの名無しさん
2010/03/28(日) 13:25:06.NETFrameworkを使う以上、そんなに差は出ないんで
0159デフォルトの名無しさん
2010/03/28(日) 13:26:24ところが「変換したものをコピペしてみましたが動きません」とか言い出すんだ
0160デフォルトの名無しさん
2010/03/28(日) 13:27:270161デフォルトの名無しさん
2010/03/28(日) 13:31:24C#とVBってキーワードが違うだけなのに。それはOOPが理解できてないってことなんじゃ?
0162デフォルトの名無しさん
2010/03/28(日) 13:32:49アレフガルドを散歩しよう
http://www1.axfc.net/uploader/Sc/so/97427.zip
http://tsushima.2ch.at/s/news2ch54394.png
元のマップ
http://xb_lim.at.infoseek.co.jp/dq/1zentai.png
0163デフォルトの名無しさん
2010/03/28(日) 13:39:40Myなんたら
それはそれとしてRichTextBoxで挿入/上書きモードが解る方法ないですか
0164デフォルトの名無しさん
2010/03/28(日) 13:52:51ない キーイベントで自分で管理する
0165デフォルトの名無しさん
2010/03/28(日) 13:59:44名前付き引数とか省略可能な引数とか。
COMを呼ぶときに便利だよ。
C#からExcelを呼ぶときにMissingを死ぬほど埋めるのはさすがにしんどい。
0166デフォルトの名無しさん
2010/03/28(日) 14:04:46今開発中のソースコードを見せて
おっ これは! とか
こいつw とか
わいわいできるスレッドはありますか?
0167デフォルトの名無しさん
2010/03/28(日) 14:07:59名前付き引数と省略可パラメータはC#4.0で追加
なんかもうCOMはラッパー使わずに全部dynamicでやってもいいんじゃないかとも思うけどな
Silverlight4なんかそうなってる
0168デフォルトの名無しさん
2010/03/28(日) 14:34:14あと、インテリセンスだけは効いてくれるとありがたいんだけどなぁ。
0169デフォルトの名無しさん
2010/03/28(日) 14:35:10IDispatchはともかくIUnknownはどうすんのよ
0170デフォルトの名無しさん
2010/03/28(日) 14:36:440171デフォルトの名無しさん
2010/03/28(日) 14:50:31public partial class Form1 : Form {
[DllImport("user32.dll")]
public static extern int GetKeyboardState(byte[] lpKeyState);
static bool isOverType() {
byte[] barr = new byte[256];
const int VK_INSERT = 0x2D;
GetKeyboardState(barr);
return 0 == (barr[VK_INSERT] & 0x01);
}
public Form1() {
InitializeComponent();
setTextMode();
}
void setTextMode() {
toolStripStatusLabel1.Text = isOverType() ? "Ins" : "Ovr";
}
private void richTextBox1_KeyUp(object sender, KeyEventArgs e) {
setTextMode();
}
}
こんな感じでいいらしい。
0172デフォルトの名無しさん
2010/03/28(日) 15:01:43Ins状態はコントロールごとに独立してるから、キーのトグル状態調べるだけじゃダメ
0173デフォルトの名無しさん
2010/03/28(日) 15:28:32その状態で他の要素から"Perform.Click"しても実行されないのは仕様?
Visibleは可視/不可視の設定だけだと思うんだが、Enableみたいな動き方をしてちょっと困ってる。
0174デフォルトの名無しさん
2010/03/28(日) 16:05:430175173
2010/03/28(日) 16:21:48プログラムの内部的には有効だから動くんじゃないかと思っていたんだが、動かないのか。
ラベルなんかはVisibleをfalseにしても使えるんで、当然ボタンも使えると思っていた。
0176デフォルトの名無しさん
2010/03/28(日) 16:24:350177デフォルトの名無しさん
2010/03/28(日) 16:25:10とりあえずは動いてるんだが(テストアプリだけに独立してIns/Ovr状態が働いて
いるというレベルで)、正しくはどうやるの?
0179デフォルトの名無しさん
2010/03/28(日) 16:33:02ラベルの格納とイベントはちげーだろw
表示されてないってことはイベント拾うための処理がスルーされるってことだぞw
0181デフォルトの名無しさん
2010/03/28(日) 16:36:04>>164よ
IsOverwriteModeがあるMaskedTextBoxのOnKeyDownでもそう実装してる
RichTextBox二つ並べて、片方でInsキー押して上書きモードにしても
もう片方のRichTextBoxの方は挿入モードのままでしょ
この状態でどっちにフォーカスがあろうがGetKeyboardStateで取れるInsキーのトグル状態は同じ
0182177
2010/03/28(日) 17:02:520183177
2010/03/28(日) 17:30:34public static extern int GetKeyboardState(byte[] lpKeyState);
static bool isOverType() {
byte[] barr = new byte[256];
const int VK_INSERT = 0x2D;
GetKeyboardState(barr);
return 0 != (barr[VK_INSERT] & 0x01);
}
void setTextMode(ToolStripStatusLabel lab) {
lab.Text = isOverType() ? "Ovr" : "Ins";
}
bool OverType1 = false;
bool OverType2 = false;
public Form1() {
InitializeComponent();
toolStripStatusLabel1.Text = OverType1 ? "Ovr" : "Ins";
toolStripStatusLabel2.Text = OverType2 ? "Ovr" : "Ins";
setTextMode(toolStripStatusLabel3);
setTextMode(toolStripStatusLabel4);
}
private void richTextBox1_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Insert) OverType1 = !OverType1;
toolStripStatusLabel1.Text = OverType1 ? "Ovr" : "Ins";
setTextMode(toolStripStatusLabel3);
}
private void richTextBox2_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Insert) OverType2 = !OverType2;
toolStripStatusLabel2.Text = OverType2 ? "Ovr" : "Ins";
setTextMode(toolStripStatusLabel4);
}
スレの肥やしに、試してみた比較コードは貼っておこう。自分で管理せにゃならんのか。
0184デフォルトの名無しさん
2010/03/28(日) 18:03:080185デフォルトの名無しさん
2010/03/28(日) 22:16:400186デフォルトの名無しさん
2010/03/28(日) 23:04:39StrategyパターンでFileクラスとテスト用のFileクラスを切り替えられるようなやつ
ちょっと必要になったから同じようなことしている人がいたら意見聴きたい
0187デフォルトの名無しさん
2010/03/28(日) 23:06:360188デフォルトの名無しさん
2010/03/28(日) 23:07:26IFileでいいじゃん
0189デフォルトの名無しさん
2010/03/28(日) 23:12:51プロキシかませてやることを抽象化しておいて、それを置き換えるくらいしか。
どのみちファイルシステムの単体テストにはなんないけど。
0190デフォルトの名無しさん
2010/03/28(日) 23:19:32説明不足でした
ファイルシステムを使うシステムの単体テストです
>>188
インターフェイスだとFileクラスに適用できないので
0191デフォルトの名無しさん
2010/03/28(日) 23:20:13public class Client
{
public FileBase FileBase { get; set; }
public void DeleteXXXFiles()
{
...
FileBase.Delete("aaa.txt");
...
}
[TestFixture]
public class ClientTest
{
[Test]
public void DeleteXXXFilesTest()
{
var c = new Clinet();
var testfile = new TestFile();
c.FileBase = testfile;
c.DeleteXXXFiles();
Assert.IsFalse(testfile.Files.Contains("aaa.txt"));
}
}
0192デフォルトの名無しさん
2010/03/29(月) 00:09:34定番のファイルシステムモックとかないんかな
0193デフォルトの名無しさん
2010/03/29(月) 00:36:390194デフォルトの名無しさん
2010/03/29(月) 00:40:590196デフォルトの名無しさん
2010/03/29(月) 08:54:39ネットワークとかDBだったらモックあるならモック使うけど。
0197デフォルトの名無しさん
2010/03/29(月) 12:47:20直径80ピクセルぐらいのEllipseを、あらかじめ用意していたSolidBrushからランダムに切り替えながら3000個描画するのに130ミリセクぐらいなんだがこんなもん?
マシンはCore2Duo9300、グラフィックは965Expressのオンボード。
同じような内容をGDI+でやるとダブルバッファーなしで9秒ぐらいだった。ダブルバッファーありだと40ミリせく。
0198デフォルトの名無しさん
2010/03/29(月) 12:54:55C++向けのちょっと低レベルなWPFだろあれ
0199デフォルトの名無しさん
2010/03/29(月) 17:18:09よくわからんけど.netでグラフィックって考えてるならやねうらお氏のところが
確か.net時代のゲームつくりってのでライブラリ公開しててそれが標準コントロールに
描画してた記憶があるのであれでみてきてみなよ
0200デフォルトの名無しさん
2010/03/29(月) 17:50:10それ触ったことあるけど大した機能もない割に癖が強くて気持ち悪い
コントロールに直接描画するだけならDirect3Dで普通にできる
0201デフォルトの名無しさん
2010/03/29(月) 17:54:12C#でできないってことはないわ
0202197
2010/03/29(月) 19:19:02試したかったことはVista以降で動くはずのDirect2Dでの高速描画のテストです。
GDI+よりも高速にかけると色々と都合が良かった(既存のライブラリの以降に)のでどんなもんかと。
自分も詳しく把握してないですが,要はDirect3Dサーフェスを使ってかけるアクセラレーションの聞く2D描画APIという認識でいます。
WPFとかぶるところもありますが、Direct2Dはよりプリミティブな描画APIだと思っています。
テキスト描画とかからむとNativeAPIもしくはそのラッパーでゴニョゴニョできれば都合いいかとCodePackいじってみた次第です。
0203デフォルトの名無しさん
2010/03/29(月) 19:52:57Direct2Dの深部がどうなってるか知らんけど
0204デフォルトの名無しさん
2010/03/29(月) 19:54:54http://www.4gamer.net/specials/tooearlytogetvista/001/tooearlytogetvista_003.shtml
0205デフォルトの名無しさん
2010/03/29(月) 20:06:51さすがに図形を毎回計算し直したりはしてないだろうけど
3000回テクスチャ切り替えてるとしたら結構なコストなんじゃないの
0206デフォルトの名無しさん
2010/03/29(月) 20:08:27描画命令を発行してもプログラム側でタイミングを見計らってバッファ切替するなら効率もいいけど
windowsのGUIのように動かれると効率はよくないな
0207デフォルトの名無しさん
2010/03/29(月) 20:18:00あまり動かない要素を自動的にビットマップでキャッシュしたりするよ
たぶん現状WPFの方が遅いんだろうけど仕組み的にはWPFの方がUIには適してるんだろうな
0208197
2010/03/29(月) 21:40:01MSのサンプルだがInvalidate時にDirect2Dもろもろをラップしたクラスから次のメソッドに飛んでくる。
private void RenderScene(){
CreateDeviceResources();
if (renderTarget.IsOccluded)
return;
renderTarget.BeginDraw();
renderTarget.Clear(WhiteBackgroundColor);
foreach (DrawingShape shape in drawingShapes)
shape.Draw(renderTarget);
renderTarget.EndDraw();
}
shapeの中は
protected internal override void Draw(RenderTarget renderTarget){
if (_fill)
renderTarget.FillRectangle(_rect, _parent.brushes[_selectedBrushIndex]);
else
renderTarget.DrawRectangle(_rect, _parent.brushes[_selectedBrushIndex], _strokeWidth);
}
こんな感じ。 renderTarget.FillRectangleの中まで見てない。これもC++/CLIで実装されたラップクラス。
shapeまわりとかあくまでサンプルなのでたぶん使い易い分かなり不効率なことやってそうだけど・・・
0209デフォルトの名無しさん
2010/03/29(月) 22:18:07たぶんC++で同じようなの書いてもほとんど速度は変わらないと思うよ
0210デフォルトの名無しさん
2010/03/29(月) 22:31:42アクティブになるのですが、Form2上にDockさせたWebBrowser
コントロールにフォーカスが当たっておらず、1回クリックしないと
マウスホイールに反応してくれません。
Form2.Active()やForm2.Focus()あるいはWebBrowser.Focus()
では制御出来ないのでしょうか?
0211デフォルトの名無しさん
2010/03/30(火) 12:09:55http://pc12.2ch.net/test/read.cgi/tech/1246520657/
0212163
2010/03/30(火) 12:36:03しかしTextBox系はあちこちウンコだのう
かと言って巷のコンポーネントで日本語完全対応のは無いっぽいし
困ったもんだ
0213デフォルトの名無しさん
2010/03/30(火) 12:36:11なんのこっちゃと思ってたがこういうことか
webBrowserの場合、マウスをクリックするとホイールが効いてスクロールするってことは
その中のDocumentにフォーカスを当てないとだめだよ
サンプルコード
http://ideone.com/MRJeDOwz
でこのDocumentなんだけどNavigatedイベントもしくはDocumentCompletedイベント
発生後じゃないと無いので下手な場所でフォーカス当てるとこけるから
0214デフォルトの名無しさん
2010/03/30(火) 12:39:56昔のExcelでもあったよな、前面にしただけじゃダメでクリックしないとホイール効かないっての
それに対処するフリーウェアあったけど・・・今でも配布してるんだろうかってスレチだな
0215デフォルトの名無しさん
2010/03/30(火) 12:42:48webBrowserは便利そうでめんどくさいんだよな
使いこなせると強力なレンダリングエンジンの恩恵受けれるんだが
0216デフォルトの名無しさん
2010/03/30(火) 12:49:47引数違うだけ?
0217デフォルトの名無しさん
2010/03/30(火) 13:01:09ありがとうございます。質問の仕方が下手でした…。
そのコード通りに実装してフォーカスが当たるようになりました。
あと自分で試したものでは下記のコードでも同様に動きました。
private void Form2_Activated(object sender, EventArgs e)
{
this.ActiveControl = WebBrowser;
}
0218デフォルトの名無しさん
2010/03/31(水) 22:13:070219デフォルトの名無しさん
2010/03/31(水) 22:14:29無理
0220デフォルトの名無しさん
2010/03/31(水) 22:15:26見た目を気にするならきっぱり諦めてWPFに移行しましょう
0221デフォルトの名無しさん
2010/03/31(水) 22:21:400222デフォルトの名無しさん
2010/03/31(水) 22:25:230223デフォルトの名無しさん
2010/04/01(木) 08:37:06フォームの処理を中断するようにしたいのですが
どのようにすればいいでしょうか、ご教授宜しくお願いします
0224デフォルトの名無しさん
2010/04/01(木) 13:51:410225デフォルトの名無しさん
2010/04/01(木) 22:20:09不可能でなければアホな方法もアリだろう
0226デフォルトの名無しさん
2010/04/01(木) 23:16:13試してみる気もしないが、これでナンチャッテ半透明TextBoxにならんかな?
0227デフォルトの名無しさん
2010/04/01(木) 23:23:27ちなみにSilverlightなら全くコード書かずにできる
0228デフォルトの名無しさん
2010/04/01(木) 23:57:14そういう人はそもそもその「半透明」が何を意味してるのか、
恐らくちゃんと突き詰めて考えてないだろ。
透けて見えるようにしたいのはコンテナ(フォーム)の奥のコントロール(ウィンドウ)?
それって透けてるのはTextBoxじゃなくてコンテナだろ。
TextBoxを半透明にしたってコンテナが透けて見えるだけだが、嬉しいかそんなの。
0229デフォルトの名無しさん
2010/04/02(金) 00:19:310230デフォルトの名無しさん
2010/04/02(金) 00:22:17外のコントロールだとオーナードロー駆使すればわりとなんとかなるが
textboxだけはかなり深部いじってできるかどうか・・・?ってレベルのような
0231223
2010/04/02(金) 14:20:40224の方返信ありがとうございます。
参考にさせていただきます。
「TextBoxを透明に」についてですが
このようなのはどうでしょうか?
ttp://www1.axfc.net/uploader/Sc/so/99375.zip&key=C#
0232デフォルトの名無しさん
2010/04/02(金) 14:26:200233デフォルトの名無しさん
2010/04/02(金) 16:50:15キチガイとしか思えない
0234デフォルトの名無しさん
2010/04/02(金) 17:17:58そんなに貧困な脳みそを自慢するなよw
そのコンテナがピクチャボックスだったら嬉しい事もあるだろ
0235デフォルトの名無しさん
2010/04/02(金) 19:56:050236デフォルトの名無しさん
2010/04/05(月) 11:26:110237デフォルトの名無しさん
2010/04/05(月) 11:28:46あと専門板住人減ってるからあんまり詰まんないことして人いなくなるようなことしないでおこうよw
0238デフォルトの名無しさん
2010/04/06(火) 11:09:25こんなところへ質問しないと進まなかった人たちは
がんばってぐぐって解決してるのかな?
0239デフォルトの名無しさん
2010/04/06(火) 12:44:30別に分からなきゃ分からないで困るわけじゃない
0240デフォルトの名無しさん
2010/04/06(火) 18:01:57質問が無いのは大規模規制があったから。
0241デフォルトの名無しさん
2010/04/06(火) 18:23:000242デフォルトの名無しさん
2010/04/06(火) 19:16:450243デフォルトの名無しさん
2010/04/06(火) 21:53:08どうみても>>238はそれをわかって書いてるようにみえるが?
0244デフォルトの名無しさん
2010/04/08(木) 13:56:38DataSourceにはList<T>をバインドし、SelectedIndexChanged内でリストをSuspendBinding() & ResumeBinding()して強制更新
これが上手く行かない
ドロップダウンから選択すると、ドロップダウン内が真っ白になる
それでもリスト自体は存在するらしく、クリックするとリスト自体は更新される
この問題を解決する何かいい方法はないだろうか
ちなみにList<T>をBindingList<T>にすると無限ループする
SelectedIndexChanged内でリスト変更してるから当たり前っちゃ当たり前だけど
0245デフォルトの名無しさん
2010/04/08(木) 16:21:08bool changedEnabled = true;
Changedイベント
{
if( changedEnabled )
{
changedEnabled = false;
煮るなり焼くなり
changedEnabled = true;
}
}
0246デフォルトの名無しさん
2010/04/08(木) 16:22:070247デフォルトの名無しさん
2010/04/08(木) 16:23:25そうじゃないなら外部のコード貼れるところ使ってくれ
0248デフォルトの名無しさん
2010/04/08(木) 16:24:270249デフォルトの名無しさん
2010/04/08(木) 16:29:43ピンポイントで対応できる少数を待つか、自分がはまった箇所を再現できる適当な
ソースを晒してコードを見て対策考えれる多くの人から回答待つか
どちらか選べ
0250デフォルトの名無しさん
2010/04/08(木) 16:29:470251244
2010/04/08(木) 16:36:58リストデータの中に何時の間にかnullが紛れてて、取り除いたら動いた
お騒がせしました
詫びがてらコードを晒しとく
この手の需要は微妙にあるような気がしないでもないようなあるような
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox cb = (ComboBox)sender;
int selno=cb.SelectedIndex == -1) return;
cb.BindingContext[cb.DataSource].SuspendBinding();
string selecttext=combodata[selno];
combodata.RemoveAt(selno);
combodata.Insert(0,selecttext);
cb.BindingContext[cb.DataSource].ResumeBinding();
}
0252244
2010/04/08(木) 16:39:37×int selno=cb.SelectedIndex == -1) return;
○int selno=cb.SelectedIndex;
if(selno==-1) return;
ハンパにコピペするもんじゃないな
0253デフォルトの名無しさん
2010/04/08(木) 16:43:230254デフォルトの名無しさん
2010/04/08(木) 16:47:14DataSourceのChangedイベントあるからなあ
それを止めるんじゃね?
RemoveAtやInsertの時に下手に見られてると困るじゃん
0255244
2010/04/08(木) 17:05:14つttp://msdn.microsoft.com/ja-jp/library/w67sdsex.aspx
List<T>みたいに IBindingListを実装しない手合いをバインドする時は
こうしないとドロップダウンリストがいつまで経っても更新されない
0256デフォルトの名無しさん
2010/04/08(木) 22:04:360257デフォルトの名無しさん
2010/04/08(木) 22:15:17ありがとう!
そこだけ注意すれば後は簡単だね
0258デフォルトの名無しさん
2010/04/08(木) 22:15:33たぶん余計なお世話だろうけど、要はcombodataの要素の並び替えをしたいんだろうから、
それならcombodataを直接バインドするんじゃなくて、
(0) SelectedIndexChangedにはcombodata.ToArray()をバインドしておく。
(1) SelectedIndexChangedイベントではcombodataの並び替えのみを行う。
(2) DropDownClosedあたりのイベントでcombodata.ToArray()をバインドする。
とかの方がいいのでは?
バインドしてるデータをSelectedIndexChangedでいじっちゃうって、たとえ動作に問題ないとしても
お行儀悪すぎじゃないの?
これならSuspendBindingだのResumeBindingだの訳のわからんメソッドを呼ぶ必要もないし。
0259デフォルトの名無しさん
2010/04/08(木) 22:21:59問題ないのなら全部DropDownClosedイベントで処理した方がいいかも。
とりあえずそれで>>244が言うような動作が可能なことは確認した。
0260デフォルトの名無しさん
2010/04/09(金) 08:21:47オープンソースならフォゲとかありますけど、ソースはクローズドでやりたい場合もありますよね・・
0261デフォルトの名無しさん
2010/04/09(金) 08:53:180262デフォルトの名無しさん
2010/04/09(金) 08:54:510263デフォルトの名無しさん
2010/04/09(金) 09:12:510264デフォルトの名無しさん
2010/04/09(金) 09:19:590265デフォルトの名無しさん
2010/04/09(金) 09:21:47ローカルでも使えるし内部のサーバーに置いてもいいし
0266デフォルトの名無しさん
2010/04/09(金) 09:29:200267デフォルトの名無しさん
2010/04/09(金) 09:39:500268デフォルトの名無しさん
2010/04/09(金) 10:10:180269デフォルトの名無しさん
2010/04/09(金) 10:13:090270デフォルトの名無しさん
2010/04/09(金) 10:28:12プロジェクト丸ごとコピペしてるけど不便だと思ったことは無いなぁ
0271デフォルトの名無しさん
2010/04/09(金) 10:32:140272デフォルトの名無しさん
2010/04/09(金) 10:33:26まあ今日日VCS使ったことない開発者なんて普通居ないだろうけど・・・
0273デフォルトの名無しさん
2010/04/09(金) 10:35:38今度はsubversion鯖の管理の手間が増えるからなあ・・・
外部でそういうことがやれるのがあるといいんだがとは思う
0274デフォルトの名無しさん
2010/04/09(金) 10:37:160275デフォルトの名無しさん
2010/04/09(金) 10:37:570276デフォルトの名無しさん
2010/04/09(金) 10:40:12それってコードをオープンにしないと基本的にサービス利用できないだろって・・・
0277デフォルトの名無しさん
2010/04/09(金) 10:40:460278デフォルトの名無しさん
2010/04/09(金) 10:44:42まあ適当に安いレンタルサーバ借りて使えばいいんじゃね?
ssh 使えるとこなら問題ないっしょ。
管理の手間っていっても一度構築しちゃえば問題無いだろし。
0279デフォルトの名無しさん
2010/04/09(金) 10:49:420280デフォルトの名無しさん
2010/04/09(金) 11:05:18結構あるね
MSはメールを無料でやる前にこういう方向も無料で進めていけばいいんじゃなのかね?w
0281デフォルトの名無しさん
2010/04/09(金) 11:12:08MSってcodeplexっていうのをやってるんだな
0282デフォルトの名無しさん
2010/04/09(金) 12:03:55ポリシーかなんか知らんけど、もう少し何とかならんものか
それはそれとしてローカルでやるならVisualSVN最強
0283デフォルトの名無しさん
2010/04/09(金) 12:09:50ローカルでやるのによさそうですね
0284デフォルトの名無しさん
2010/04/09(金) 13:15:580285デフォルトの名無しさん
2010/04/09(金) 13:18:500286デフォルトの名無しさん
2010/04/09(金) 15:11:290287デフォルトの名無しさん
2010/04/09(金) 21:06:41VisualHGの出来もいいしCodePlexも対応してる。
0288デフォルトの名無しさん
2010/04/09(金) 22:11:30作りかけで動かない(けど保存しときたい)ローカルなコミットと
テストも通るある程度纏まった完成品のコミットを
ちゃんと分けて使えるのが良いんだよな。
でも運用ルールよく考えないと結構めんどくさい。
0289デフォルトの名無しさん
2010/04/09(金) 23:27:04ttp://journal.mycom.co.jp/news/2010/04/09/071/index.html
0290デフォルトの名無しさん
2010/04/09(金) 23:39:040291デフォルトの名無しさん
2010/04/10(土) 02:41:01MSDNのCulterInfoの部分を調べたんだが、それらしいプロパティがなかった。
0292デフォルトの名無しさん
2010/04/10(土) 03:10:120293デフォルトの名無しさん
2010/04/10(土) 06:46:13俺\(^o^)/オワタ
0294デフォルトの名無しさん
2010/04/10(土) 09:16:07AppleはいつまでたってもAppleなんだなーって思ったわ。
0295デフォルトの名無しさん
2010/04/10(土) 14:32:35世の中の主流はC#に移り変わってきたのですかね。
0296デフォルトの名無しさん
2010/04/10(土) 14:34:440297デフォルトの名無しさん
2010/04/10(土) 14:35:34そういう本だと無料の開発環境とかで話進めなかったっけ?
VC++2008EEはGUI作るにはちょっと初心者向きじゃないしね
それにMSとしては.netで行きたいみたいだし
0298デフォルトの名無しさん
2010/04/10(土) 15:16:03用途によるだろ。
0299デフォルトの名無しさん
2010/04/10(土) 15:19:12やっぱりSilverrightが本命なんですかね。
Flashはipadでサポートされないとかで、もうダメみたいだし。
0300デフォルトの名無しさん
2010/04/10(土) 15:20:130301デフォルトの名無しさん
2010/04/10(土) 15:21:25結局どういうマシンのソフトを開発したいかで使う物が変わるしなあ
VC++でGUIやりたいならWTLでぐぐってみなよ
それかゲームをやるならDXライブラリとか龍神録とか
0302デフォルトの名無しさん
2010/04/10(土) 16:45:12iPad は C# もサポートしないから SilverLight もダメだよ。
徹底して囲いこみしてる。
0303デフォルトの名無しさん
2010/04/10(土) 16:49:55オープンなものは使わせてもらうけど、こちらはオープンにしませんとかw
0304デフォルトの名無しさん
2010/04/10(土) 16:58:24圧倒的なシェアをとったところで手のひらを返す、ってのもよくあるパターン。
0305デフォルトの名無しさん
2010/04/10(土) 17:01:28というのなら気持ちは分からんでも無い
0306デフォルトの名無しさん
2010/04/10(土) 17:01:560307デフォルトの名無しさん
2010/04/10(土) 17:05:37近いうち、マルウエアを防止するためAppleのサーバーでコンパイル、リンクしたものだけってことになるぞ。
その次は、Appleのソースコード利用権。
0308デフォルトの名無しさん
2010/04/10(土) 17:05:490309デフォルトの名無しさん
2010/04/10(土) 17:06:280310デフォルトの名無しさん
2010/04/10(土) 17:07:27まあそうだよな
何でもかんでも保証すればバグの面倒までアップルが見る羽目になる
あくまで場所貸しだからな
0311デフォルトの名無しさん
2010/04/10(土) 17:11:59WM7 と Android を応援するぜ俺は。
0312デフォルトの名無しさん
2010/04/10(土) 19:53:000313デフォルトの名無しさん
2010/04/10(土) 20:08:23とんくす。
そのクラスの中にあった。
0314デフォルトの名無しさん
2010/04/10(土) 21:10:22X05HTの次にと考えてたけど止めたわ。
0315デフォルトの名無しさん
2010/04/10(土) 21:13:550316デフォルトの名無しさん
2010/04/10(土) 21:23:150317デフォルトの名無しさん
2010/04/10(土) 21:24:23Objective-Cがクソだから、できれば使いたくない。
0318デフォルトの名無しさん
2010/04/10(土) 21:56:21C++以上に
0319デフォルトの名無しさん
2010/04/10(土) 21:58:530320デフォルトの名無しさん
2010/04/10(土) 21:59:03な言語なので
0321デフォルトの名無しさん
2010/04/10(土) 21:59:58C++だって糞じゃん
ヘッダにクラスの宣言部書いて、cppの方にメンバ関数書くとか
0322デフォルトの名無しさん
2010/04/10(土) 22:06:11C#での相談事という意味では、スレ違いでもないんだけど。
0323デフォルトの名無しさん
2010/04/10(土) 22:09:470324デフォルトの名無しさん
2010/04/10(土) 22:10:530325デフォルトの名無しさん
2010/04/10(土) 22:12:590326デフォルトの名無しさん
2010/04/10(土) 22:52:260327デフォルトの名無しさん
2010/04/11(日) 01:56:460328デフォルトの名無しさん
2010/04/11(日) 03:01:21スレッドが停止して例外が行方不明になるのですが、
このせいでどこが問題箇所なのかわかりません。
このような場合に皆さんはどうやってデバッグされますか?
0329デフォルトの名無しさん
2010/04/11(日) 03:08:31System.Timers.Timer実行中ならキャッチしなけりゃ異常終了するし、
どう行方不明になると言ってるのか分からん。
異常終了の場合の話か?
0330デフォルトの名無しさん
2010/04/11(日) 03:09:43スロー時に停止させりゃいい。
0331デフォルトの名無しさん
2010/04/11(日) 03:24:13異常終了するのはSystem.Threadの方みたいです。
EndInvokeも使わない方向で。
Do(){ try{Do2();}catch{} }についてDo.BeginInvoke(null,null)して、
本来ならDo2の例外をDo内でcatchできると思う…のですが、
Do2内でInvokeによってUIスレッドを呼び出しているせい(?)か
Doごと死んでしまう、のです。
0332デフォルトの名無しさん
2010/04/11(日) 03:32:570334デフォルトの名無しさん
2010/04/11(日) 03:38:31System.Threadってなんだ?
みたいってのはどういうことだ?
>EndInvokeも使わない方向で。
使わない方向ってのはどういうことだ?
BeginInvokeとかじゃないから元々使えないのか、
あえてEndInvokeを呼ばない糞コードにする気なのか?
>Do(){ try{Do2();}catch{} }についてDo.BeginInvoke(null,null)して、
>本来ならDo2の例外をDo内でcatchできると思う…のですが、
>Do2内でInvokeによってUIスレッドを呼び出しているせい(?)か
>Doごと死んでしまう、のです。
ControlのInvokeはちょっとまた話が違うからな。
UIスレッドでの例外はUIスレッド内でキャッチする必要がある。
しなければ、普通にUIで例外をキャッチしなかったのと同じ状態になる。
0335デフォルトの名無しさん
2010/04/11(日) 03:52:25> BeginInvokeとかじゃないから
とかってなんだ?
> UIスレッドでの例外はUIスレッド内でキャッチする必要がある。
> しなければ、普通にUIで例外をキャッチしなかったのと同じ状態になる。
ご飯を食べる必要がある。食べなければご飯を食べなかったのと同じ状態になる
0336デフォルトの名無しさん
2010/04/11(日) 03:55:27意味が通じない書き方と意味が通じる書き方じゃ全然違うんだけどな。
0337デフォルトの名無しさん
2010/04/11(日) 03:58:510338デフォルトの名無しさん
2010/04/11(日) 03:59:50お前は>>334で言ってることがちゃんと分かるのか?
0339デフォルトの名無しさん
2010/04/11(日) 04:00:33↓
お前は>>333で言ってることがちゃんと分かるのか?
だった間違い。
0340デフォルトの名無しさん
2010/04/11(日) 04:01:49BeginInvokeとEndInvokeは対になるべき
別スレッドの例外を補足できない
だと思うんだが違うのかな
そもそも>>333で解決していることに対して面倒なレスをつけるなよ
0341デフォルトの名無しさん
2010/04/11(日) 04:04:17>>333の言ってることは理解してるつもりだよ
てか、それ以外にどう読めばいいの
0342デフォルトの名無しさん
2010/04/11(日) 04:05:19>↓
>お前は>>333で言ってることがちゃんと分かるのか?
>だった間違い。
↓
お前は>>331で言ってることがちゃんと分かるのか?
の間違い。
間違いまくり。
0343デフォルトの名無しさん
2010/04/11(日) 04:06:140344デフォルトの名無しさん
2010/04/11(日) 04:06:48上げ足とりに突っ込んでるつもりで見当違いのことを言ってることに気づいてるの?
0345328
2010/04/11(日) 04:09:15申し訳ありません。私がいい加減なのはわかりますが、
ただ、あまり攻撃的に反応されても…。
System,Threading.TimerまたはThreadの方ですね。
らしいってのは↓見ただけなのと、理解が適当かもしれないので。
ttp://gushwell.ldblog.jp/archives/cat_50041244.html
実際には、BeginInvokeではなくてTimers.Timerの方を使っているのですが、
BeginInvokeのほうが書くの楽そうだったのでそれを書いて、
EndInvoke使わない方向で云々は話題をずらしたくなくて、です。
例外キャッチの心得は参考になりました。
ぐだぐだ言い訳みたいで申し訳ないのですが、
最後くらい誠実にレスしてみました。
姉歯設計に苛つかれるお気持ちはわかりますが、仲良く行きましょう^^
0346デフォルトの名無しさん
2010/04/11(日) 04:09:19そもそも>>328で解決すべきは
> どこが問題箇所なのかわかりません
であり、BeginInvokeがどうとかは枝葉。
だから>>330で解決してんじゃん。
0347328
2010/04/11(日) 04:11:02仲良く行きましょう。なんかおもしろい話題ないですかね。。。
0348デフォルトの名無しさん
2010/04/11(日) 04:15:12>>331で疑問に思ってるみたいだから何故かが気になってるんだと思ったんだが。
まあ>>329だけでよかったならもう言うことはない。
>BeginInvokeがどうとかは枝葉。
って言ってるけど、例外が行方不明になることと
BeginInvokeはめちゃめちゃ重要な関係がある話だよ。
まあ>>331の疑問がそのままでいいなら確かにどうでもいい話だが。
0349デフォルトの名無しさん
2010/04/11(日) 04:15:170350デフォルトの名無しさん
2010/04/11(日) 04:20:18>>329で解決してんじゃなくて、>>330によって、例外発生箇所が分かったことがよかったんじゃないの?
0351デフォルトの名無しさん
2010/04/11(日) 04:21:59入れ違いにもなったんだよ。
>>330で一度答えた後だしな。
0352デフォルトの名無しさん
2010/04/11(日) 04:22:16これに懲りずまた質問してね。
0353デフォルトの名無しさん
2010/04/11(日) 04:24:32答えた上で>>331が来たから>>334を書いた。
その書いてる時点では>>333はまだ書かれてなかった。
ってことだよ。
0354デフォルトの名無しさん
2010/04/11(日) 04:25:542ちゃんだから平気でこういう書き方する時がある。
別にそこまで恐縮してもらう必要はない。
ってか書いといてなんだけど基調をいちいち気にするな。
0355デフォルトの名無しさん
2010/04/11(日) 04:26:59あと荒れたとしても最初の書き込み者がそれを気にする必要なんかない。
0356デフォルトの名無しさん
2010/04/11(日) 05:16:270357デフォルトの名無しさん
2010/04/11(日) 05:36:19これ実行すると期待通りの結果が出たんだけど、何が問題なんだ?
もしかして、キャッチ出来ない例外が飛んできてるとか?
0358デフォルトの名無しさん
2010/04/11(日) 09:22:140359デフォルトの名無しさん
2010/04/11(日) 09:53:09でもこれだとmain()が異常終了したときはどうすればいいの?
0360デフォルトの名無しさん
2010/04/11(日) 10:02:340361デフォルトの名無しさん
2010/04/11(日) 10:11:500362デフォルトの名無しさん
2010/04/11(日) 10:22:450363デフォルトの名無しさん
2010/04/12(月) 12:19:07普通にやるとAction<int>とAction<string>とで別の受け口用意しなきゃならん
AsyncDelegateはキャストしないと使えないし
単にEndInvoke呼びたいだけなんだからもちっと簡便にならないかと
0364デフォルトの名無しさん
2010/04/12(月) 14:18:020365デフォルトの名無しさん
2010/04/12(月) 16:19:13ジェネリックメソッド定義してキャストに使うと
いい感じサンクス
0366デフォルトの名無しさん
2010/04/12(月) 23:15:40action.BeginInvoke(obj, action.EndInvoke, null);
これでも十分簡潔なのに、これ以上何を求めるのか
public static void AsyncInvoke(this Action action, T obj) { ... }
public static void AsyncInvoke<T>(this Action<T> action, T obj) { ... }
public static void AsyncInvoke<T1, T2>(this Action<T1, T2> action, T1 arg1, T2 arg2) { ... }
// 以下<T1,...,T16>まで同様 (.NET 4.0)
ここまでしないと不満とか?
0367デフォルトの名無しさん
2010/04/13(火) 17:50:30変換する関数ってありますか?
0368デフォルトの名無しさん
2010/04/13(火) 17:52:54意味がわからん
0369デフォルトの名無しさん
2010/04/13(火) 18:12:45Int16の0xFFFFをUInt32の0x0000FFFFに
変換したいという意味でした。
そのまま0x0000FFFFの論理和で出来るみたいですが
正式なやり方あるのかなと。
0370デフォルトの名無しさん
2010/04/13(火) 18:15:240371デフォルトの名無しさん
2010/04/13(火) 18:28:35ありがとう。試してみます。
0372デフォルトの名無しさん
2010/04/13(火) 20:34:00UIスレッドとタスクスレッドの2つのスレッドで
構成されているアプリケーションを作っています。
タスクスレッドにて例外が発生した時、
適切な例外処理ってどんなもんなんでしょうか?
Thread.GetDomain().UnhandledException
にて例外を集約させるところまではgoogle先生で調べれたのですが、
このイベントハンドラ内で、アプリの強制終了を行うしか手が無いのかな?
//UIスレッド
try{
//タスクスレッド起動
UI.ShowDialog()
//タスクスレッドJoin
}finally{
//UI後処理
}
本当は、UIスレッドの後処理(finally節)も確実に実行したいのですが・・
0373デフォルトの名無しさん
2010/04/13(火) 21:14:09タスクスレッド側で処理する
0374デフォルトの名無しさん
2010/04/13(火) 21:25:570375デフォルトの名無しさん
2010/04/13(火) 21:26:300376デフォルトの名無しさん
2010/04/13(火) 22:27:22"1.00E+4"を渡しても変換結果が0なんだわ。+外しても駄目だった。
0377デフォルトの名無しさん
2010/04/13(火) 22:39:40試してないけど NumberStyles.AllowExponent フラグをたてなきゃいけないんじゃね?
0378デフォルトの名無しさん
2010/04/13(火) 23:07:010379デフォルトの名無しさん
2010/04/14(水) 00:26:35ありがとう、明日確認してみる
0380デフォルトの名無しさん
2010/04/14(水) 01:01:16うむ。
0381デフォルトの名無しさん
2010/04/14(水) 12:40:56アプリの状態によってボタンが変わるので、List系コントロールが使えればいいのですが
ボタンをタイル状に敷き詰めるのはどうやら無いっぽいので・・・
FlowLayoutPanelにRadioButtonを自力で詰め込んでいくしかないのでしょうか?
0382デフォルトの名無しさん
2010/04/14(水) 12:44:39ざっくりしたイメージ画像とかない?
0383デフォルトの名無しさん
2010/04/14(水) 12:50:220384デフォルトの名無しさん
2010/04/14(水) 12:51:33ドッキングツールバーのことのようだ
http://homepage.mac.com/mkino2/sketchBp/modification/toolPalette.html
0385デフォルトの名無しさん
2010/04/14(水) 12:52:13ツールパレットと呼んでる物があってそれと同じような物が実装
したいんだろうから、そのスクリーンショットでもいいんだがな
0386381
2010/04/14(水) 12:52:59こんなのです↓
ttp://home.riise.hiroshima-u.ac.jp/~nagato/Linux/img150.png
ドローツールで良くある、ペンとか選択モードを指定する奴ですね
0387デフォルトの名無しさん
2010/04/14(水) 12:53:23それならC#にあるやん
あとはツールバーへコントロールを動的に増減してやればいいだけだよ
0388デフォルトの名無しさん
2010/04/14(水) 13:09:47Form1.cs
http://ideone.com/KrGyF
Form1.Designer.cs
http://ideone.com/aQKxZ
0390デフォルトの名無しさん
2010/04/14(水) 20:05:51{
backgroundWorker1.RunWorkerAsync();
backgroundWorker2.RunWorkerAsync();
backgroundWorker3.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while(){重い処理}
}
backgroundWorker2_DoWork,backgroundWorker3_DoWorkも1と同じような処理。
これを実行すると、初回起動時に1,2は同じタイミングで始まるんだが、3だけ遅れて始まる。
一旦停止して、再スタートするとすべて遅れなく始まるんだが、初回から、1から3すべて遅れなく始める方法ない?
0391デフォルトの名無しさん
2010/04/14(水) 20:19:420392デフォルトの名無しさん
2010/04/14(水) 20:30:49各スレッドの処理結果を呼出しもとで使用するのに、
タイミングが揃っていた方が都合がよいからです。
0393デフォルトの名無しさん
2010/04/14(水) 20:36:060394デフォルトの名無しさん
2010/04/14(水) 20:42:29同時に開始しても同時に終了するとは限らないんだけど。
結局は、終わったかどうか個別にチェックしないと。
0395デフォルトの名無しさん
2010/04/14(水) 20:42:39処理結果を呼び出しもとで使用するときに処理が終わってるかどうかは見ないのかい?
見てるなら別にいつ始まっていつ終わってもよかろ
なんで3つ全部終わるのを待てないの?
0397デフォルトの名無しさん
2010/04/14(水) 20:45:47実際にだいたい揃ってるとしても必ず待つように作るわ
0398デフォルトの名無しさん
2010/04/14(水) 20:48:41すべての処理が終わってからメインのスレッドで次の処理をしています。
ただ、初回は3番のスレッドだけ遅れてスタートし、2回目以降は遅れなくすべてのスレッドが
スタートするという現象が気になったので、質問しました。
0399デフォルトの名無しさん
2010/04/14(水) 20:51:27嫌ならThreadクラスを直に使えばいいよ
0400デフォルトの名無しさん
2010/04/14(水) 20:52:11ならCPU増やすかThreadPoolの設定変えるか
0401デフォルトの名無しさん
2010/04/14(水) 21:04:07試行錯誤してみます。
0402デフォルトの名無しさん
2010/04/14(水) 21:32:23もうひとつ、CPUが空けばプロセッサ数以上のスレッドも投入されるが、
その際は0.5秒に一つずつスレッドが開始される。
例えばThreadPoolの最小スレッド数はデフォルトでプロセッサ数になっているが、
これを増やしてやれば必要になった時点でスレッドを作成するときの0.5秒のタイムラグがなくなる。
ただ、どっちにしても基本的にはCPUが空いてるときに動く仕組みだからその辺は注意。
0403デフォルトの名無しさん
2010/04/14(水) 21:37:02そんなに遅いわけないだろ常識で考えて。
どんな妄想だよそれ
0404デフォルトの名無しさん
2010/04/14(水) 21:54:21ありがとうございます。
ThreadPool..::.SetMinThreads メソッドを使用して、最小スレッドを変更したらできました。
0405デフォルトの名無しさん
2010/04/14(水) 22:07:33msdnライブラリから抜粋
スレッド プールは、最少数のアイドル スレッドを維持します。
ワーカー スレッドでは、この最少数の既定値はプロセッサ数です。
GetMinThreads メソッドを使用すると、最少数のアイドル ワーカーと
I/O 完了スレッドを取得できます。
スレッド プールのすべてのスレッドがタスクに割り当てられている場合、
スレッド プールは新しいアイドル スレッドの作成をすぐには開始しません。
スレッドのスタック領域の不要な割り当てを避けるために、
新しいアイドル スレッドは間隔を置いて作成されます。
"この間隔は現在 0.5 秒です"が、.NET Framework の将来のバージョンでは
変更される可能性があります。
スレッド プールの多数のタスクがキューに置かれて
アプリケーションのアクティビティが急激に増加した場合は、
SetMinThreads メソッドを使用してアイドル スレッドの最少数を増やします。
この操作をしないと、新しいアイドル スレッドの作成が遅延するこの組み込み
の設定が、ボトルネックになる可能性があります。
0406デフォルトの名無しさん
2010/04/14(水) 22:09:47ttp://msdn.microsoft.com/ja-jp/library/system.threading.threadpool(v=VS.90).aspx
スレッド プールのすべてのスレッドがタスクに割り当てられている場合、スレッド プールは新しいアイドル スレッドの作成をすぐには開始しません。
スレッドのスタック領域の不要な割り当てを避けるために、新しいアイドル スレッドは間隔を置いて作成されます。この間隔は現在 0.5 秒ですが、
.NET Framework の将来のバージョンでは変更される可能性があります。
>この間隔は現在 0.5 秒ですが
なんで最近何も知らないくせいに下らんことばっか言う奴が多いのかね。
0407デフォルトの名無しさん
2010/04/14(水) 22:11:310408デフォルトの名無しさん
2010/04/14(水) 22:11:370409デフォルトの名無しさん
2010/04/14(水) 22:12:590410デフォルトの名無しさん
2010/04/14(水) 22:28:09で、MSDN見てびっくりして設定変える、と。
0411デフォルトの名無しさん
2010/04/14(水) 22:29:40もっと遅くてもいいかも知れん
0412デフォルトの名無しさん
2010/04/14(水) 22:47:02http://bit.ly/9xp451
0413デフォルトの名無しさん
2010/04/14(水) 23:10:060414デフォルトの名無しさん
2010/04/14(水) 23:13:580415デフォルトの名無しさん
2010/04/14(水) 23:15:12黙れゴミ。誰にたてついてるんだ?コラ。あ?シバキアゲタルゾこのクソが。
0416デフォルトの名無しさん
2010/04/14(水) 23:18:020417デフォルトの名無しさん
2010/04/14(水) 23:20:24しゃべった!うんこがしゃべった!
0418デフォルトの名無しさん
2010/04/14(水) 23:46:34じわじわきてますよね///
0419デフォルトの名無しさん
2010/04/15(木) 05:27:29テキストボックスで文字を反転した際の色を変更したいのですが、SystemColors.Highlightは読み取り専用で変えることが出来ません。
どのような方法を取ればいいのかご教授お願いします。
0420デフォルトの名無しさん
2010/04/15(木) 07:09:500421デフォルトの名無しさん
2010/04/15(木) 13:06:52class A<T>
{
}
List<A<T>> a_list; ←コンパイルエラー
ArrayListでキャストしてやればいいっちゃいいんだけど、可能なら型付がいい
あ、Tは違うのが混在するんでList宣言のところで固定はできない
0422デフォルトの名無しさん
2010/04/15(木) 13:17:070423デフォルトの名無しさん
2010/04/15(木) 13:30:22それよくやる
インターフェイス使う方が多いかな
0424デフォルトの名無しさん
2010/04/15(木) 13:45:15それで行こう
THX.
0425デフォルトの名無しさん
2010/04/15(木) 15:36:31Valueメソッドが無いです。
0426デフォルトの名無しさん
2010/04/15(木) 15:53:300427デフォルトの名無しさん
2010/04/15(木) 16:00:48システムデフォルトなんかの塊なんじゃないの?
やるとしたらwindowsその物の設定をいじるとかになりそうな予感
0428デフォルトの名無しさん
2010/04/15(木) 16:03:07ありがとうございました。
0429デフォルトの名無しさん
2010/04/15(木) 16:08:38ttp://tsushima.2ch.at/s/news2ch58652.png
たぶんSystemColorsってこの辺の情報を持ってるだけのような気がする
たんなる隠しになってるだけだと継承して・・・とかやれるんだろうけど
ソースが手元に無いのでわからん
0430デフォルトの名無しさん
2010/04/15(木) 16:47:430431デフォルトの名無しさん
2010/04/17(土) 10:34:39>>430
何にあきれててるの?
それともそれは某バーガーさんを模したAA?
0432デフォルトの名無しさん
2010/04/17(土) 18:47:480433デフォルトの名無しさん
2010/04/17(土) 18:50:57Windows7ですらそのままでは動かん
0434デフォルトの名無しさん
2010/04/18(日) 03:06:21検索結果の上にくるところは書いてる人の能書きばっかりが目立つし
能書きよりサンプルコード晒してくれた方がよっぽど役に立つのに・・・
0435デフォルトの名無しさん
2010/04/18(日) 03:35:000436デフォルトの名無しさん
2010/04/18(日) 03:50:07能書きですみません。
あなたの技術レベルが分からないと教えようがないので、今までの実績を教えてくれますか?
0437デフォルトの名無しさん
2010/04/18(日) 04:18:19お前が理解出来ないことは全て相手の能書きか
0438デフォルトの名無しさん
2010/04/18(日) 06:51:24さらに継承されたときそのメソッドをoverrideして欲しくないときってどうすればいいですか?
0439デフォルトの名無しさん
2010/04/18(日) 09:30:390440デフォルトの名無しさん
2010/04/18(日) 09:34:42SilverlightにはDoEventsみたいなのがないのでいわゆるゲームループは作れない。
CompositionTarget.RenderingやDispatcherTimerやStoryboardでコールバックかける。
0441デフォルトの名無しさん
2010/04/18(日) 22:50:51ありがとうございます
0442デフォルトの名無しさん
2010/04/18(日) 22:59:40プログラマーはコードで会話する
日本語で語ろうとする=能書き
0443デフォルトの名無しさん
2010/04/18(日) 23:01:52コードあっても理解できないだろうね
0444デフォルトの名無しさん
2010/04/18(日) 23:04:23うーん
sliverlight初心者だとサンプルソースをプロジェクトごと眺めてみたいってのもあるだろうから
>>435ででてくる日本語ずらずらコードは一部で説明されると能書きだけに見えるよね
日本語はいいコード出せって感じで
0445デフォルトの名無しさん
2010/04/18(日) 23:18:46サンプルプロジェクトと一緒にその説明だと親切だなあと思うが
そのままだと重いつたこと書き散らしただけのチラシの裏に書いておけ
でしかないような気がする
0446デフォルトの名無しさん
2010/04/18(日) 23:20:54日本語少しおかしいよ・・・・・・
0447デフォルトの名無しさん
2010/04/18(日) 23:25:40言いたいことは俺も能書きが多くみえるということだ
検索してこの手が一番迷惑なんだよね
0448デフォルトの名無しさん
2010/04/18(日) 23:27:150449デフォルトの名無しさん
2010/04/18(日) 23:28:19開く時間も持ったないと言ってる
ツイッターが引っかかるくらいうざい
0450デフォルトの名無しさん
2010/04/18(日) 23:31:350451デフォルトの名無しさん
2010/04/18(日) 23:32:510452デフォルトの名無しさん
2010/04/18(日) 23:34:360453デフォルトの名無しさん
2010/04/18(日) 23:35:410454デフォルトの名無しさん
2010/04/18(日) 23:36:200455デフォルトの名無しさん
2010/04/19(月) 00:43:56>ゲーム作ったことある俺でC#もできるが
今更だがこれって「能書きたれてるのはお前の方だ」っていうツッコミ待ちだったのでは?
みんな気づいてあげろよ……。
0456デフォルトの名無しさん
2010/04/19(月) 09:11:54>開く時間も持ったないと言ってる
>ツイッターが引っかかるくらいうざい
検索したら自分の欲しい物だけが与えられると思っているのは、いかにもゆとりらしい考え方だな。
0457デフォルトの名無しさん
2010/04/19(月) 11:14:530458デフォルトの名無しさん
2010/04/19(月) 11:37:48そうでないなら何様だとしか言いようがない。
0459デフォルトの名無しさん
2010/04/19(月) 11:47:06プログラマなんでしょ
0460デフォルトの名無しさん
2010/04/19(月) 22:49:42これみたいなXMLをdynamicにする奴で
ちゃんと動くのってどっかにないですか
0461デフォルトの名無しさん
2010/04/20(火) 00:37:190462デフォルトの名無しさん
2010/04/20(火) 00:43:100463デフォルトの名無しさん
2010/04/20(火) 00:43:480464デフォルトの名無しさん
2010/04/20(火) 12:40:23どれも技術サンプル程度
昔のDOMはともかく今はLINQ to XMLという優秀なライブラリがあるから
dynamicで使えてもそんなに変わらないよ
0465デフォルトの名無しさん
2010/04/21(水) 23:35:52抜き出すメソッド名はGetURL()にしようかと思っています
0466465
2010/04/21(水) 23:50:500467デフォルトの名無しさん
2010/04/23(金) 14:55:11お願いします。メタセコイア形式mqoからXAMLに変換するプログラムを
つくりたいのですが、カメラの変換手法をご存じの方いらっしゃませんか。
既存の変換ソフトウェアでは、
Scene {
pos 0.0000 0.0000 1494.2412
lookat 4.5152 74.7634 0.3124
head 0.3000
pich 0.3100
ortho 1
zoom2 6.6503
amb 0.250 0.250 0.250
}
から
<PerspectiveCamera x:Name="Camera_blueknight"
Position="-244.763901,513.030212,1388.125000"
LookDirection="0.163176,-0.342020,-0.925416"
UpDirection="0.000000,1.000000,0.000000" FieldOfView="20.000000"
NearPlaneDistance="1" FarPlaneDistance="10000" />
に変換されているのですが、数字に関連性を見つけられなくて
やり方の見当がつかないのです。
0468デフォルトの名無しさん
2010/04/23(金) 20:52:33Direct3Dのドキュメントとか解説サイトとか見たらわかるよ
0469467
2010/04/23(金) 21:10:590470デフォルトの名無しさん
2010/04/23(金) 23:53:42他人になりすますのって意味があるのでしょうか。
自己解決したならおしえてほすぃです。
>>469
Direct3D方面で調べます。ありがとうございました。
0471デフォルトの名無しさん
2010/04/23(金) 23:55:52MDXとかXNA関連であさればコンバートライブラリとかでてきそうだな
0472デフォルトの名無しさん
2010/04/24(土) 01:21:20じゃね?C++だからスレチになっちゃうけど。
0473デフォルトの名無しさん
2010/04/24(土) 21:13:32人間には読みづらい
もっと人間寄りのいいアイディアないものかね
0474デフォルトの名無しさん
2010/04/24(土) 21:14:170475デフォルトの名無しさん
2010/04/24(土) 21:15:49ツールで編集できるようにするしかないね
XMLをGUIで編集するツールあるでしょ
0476デフォルトの名無しさん
2010/04/24(土) 21:25:34VSならインテリセンス頼みでなんとか書けるけど
0477デフォルトの名無しさん
2010/04/24(土) 22:30:22lisp があるじゃない
0478デフォルトの名無しさん
2010/04/24(土) 23:05:39XSDじゃ書けない構造があるんでまともな変換ツールがないとかあって、C#じゃ
使ってないが・・・良いライブラリとか無いかな?
0479デフォルトの名無しさん
2010/04/24(土) 23:10:30スキーマ指定してXML編集するときにインテリセンスが効いたりとかサポートが強力すぎる
0480デフォルトの名無しさん
2010/04/25(日) 19:04:37MenuStripをカスタムドローしようとしているのですが、
OnRenderItemTextでDrawThemeTextEx()を使って
文字を描画しようとすると、
真っ黒な四角が表示されてしまいます。
Graphic.DrawString()を使えば描画は出来るのですが、
ウィンドウにAero Glassを適用したとき、ClearTypeのフォントを描画すると
周りにアンチエイリアスのゴミが表示されるので、敬遠してます。
メイリオ使うなw とか言わずによろしくお願いします。
0481480
2010/04/25(日) 19:06:48{
base.OnRenderItemText(e);
if (e.ToolStrip.IsDropDown)
{
return;
}
using (var img = new Bitmap((int)e.Graphics.VisibleClipBounds.Width, (int)e.Graphics.VisibleClipBounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
{
using (var g = Graphics.FromImage(img))
{
var hDC = g.GetHdc();
var hMemDC = IntPtr.Zero;
var rect = new RECT();
rect.left = e.TextRectangle.Left;
rect.top = e.TextRectangle.Top;
rect.right = e.TextRectangle.Right;
rect.bottom = e.TextRectangle.Bottom;
var pb = BeginBufferedPaint(hDC, ref rect, BPBF_TOPDOWNDIB, IntPtr.Zero, out hMemDC);
//BufferedPaintSetAlpha(hMemDC, IntPtr.Zero, 255);
DrawThemeTextEx(hTheme, hMemDC, 0, 0, e.Text, -1, DT_NOCLIP | DT_CENTER | DT_SINGLELINE | DT_VCENTER, ref rect, ref option);
Uxtheme.EndBufferedPaint(pb, true);
g.ReleaseHdc(hDC);
e.Graphics.DrawImage(img, g.VisibleClipBounds);
}
}
}
0482デフォルトの名無しさん
2010/04/25(日) 19:12:080483デフォルトの名無しさん
2010/04/25(日) 19:30:20Win32詳しくないんで違ってたらごめん。
普通にBitmapの背景を塗ってないから、なんて間抜けなオチじゃないよねまさか。
0484480
2010/04/25(日) 19:37:12ありがとうございます。
試してみたところうまくいきましたが、
DwmExtendFrameIntoClientArea()でAeroにしたら
Color.FromArgb(255, 0, 0, 0)でも文字が透明になりました。。
>>483
ありがとうございます。
それは確認してます。
背景をあらかじめ描いておいても、
上書きで黒い四角が現れます。
0485デフォルトの名無しさん
2010/04/25(日) 19:43:24くどいようだけど、
>背景をあらかじめ描いておいても、
これって、ちゃんと>>480のコードのimgのGraphicsに対して行ってるんだよね?
どうもe.Graphicsに対して描画してるようにも聞こえるけど....
0486デフォルトの名無しさん
2010/04/25(日) 19:58:47{
textBox1.Text = "実験";
Thread.Sleep(500);
textBox1.Text = "";
//Thread.Sleep(500);
}
0487デフォルトの名無しさん
2010/04/25(日) 20:00:14ためしに上のようにしたのですが処理が終わるまで固まったように
なります。
簡単に点滅させられないのでしょうか
0488デフォルトの名無しさん
2010/04/25(日) 20:01:49//があるのは間違いです。ごめん。
0489480
2010/04/25(日) 20:04:15はい。 e.Graphics ではなく、Graphics.FromImage(img) でつくった g にです。
あっ…
でも、hMemDCには何も描いていませんでした。
DrawThemeTextEx() の直前に FillRect(hMemDC, ref rect, GetStockObject(LTGRAY_BRUSH))
を入れてみたところ、
灰色の四角が現れました。
でも、文字は描画されません…
文字の色を白にしてもみてもダメでした。
0490デフォルトの名無しさん
2010/04/25(日) 20:24:19そのコードはどう見ても10秒間一切操作ができなくなるけど
for()ループを使うんじゃなくて、
System.Windows.Forms.Timer クラスを使うべきなんじゃない?
0491467
2010/04/25(日) 20:28:37http://dobon.net/vb/dotnet/vb2cs/event.html
0492480
2010/04/25(日) 20:51:49「ファイル(F)」が「ブアゥレ(F)」に文字化けしたwww
だれか、Aero Glassのメニューに綺麗に文字が描ける方法を知りませんか?
0493デフォルトの名無しさん
2010/04/25(日) 20:54:03タイマを使うとテキストボックスの文字を点滅できました
forを使うとなぜ10秒間、「実験」の文字すらでてこなくなるのか
教えていただけるとありがたいのですが。
テキストボックス以外が固まるのはそうだろうなと思うのですが。
0494デフォルトの名無しさん
2010/04/25(日) 20:56:13VisualStyleRenderer.DrawText使えば?
0495デフォルトの名無しさん
2010/04/25(日) 20:57:10> forを使うとなぜ10秒間、「実験」の文字すらでてこなくなるのか
描画するのも同じスレッド
ところがそのスレッドがループで詰まってるから描画もできない
0496デフォルトの名無しさん
2010/04/25(日) 21:08:49ほえー
ありがとう。今日ずっと悩んでいたんです。
.AppendTextなら文字がでてくるのに
なんで.textでは出てこないのかなーと。
本当にありがとう。
0497デフォルトの名無しさん
2010/04/25(日) 21:12:32{
textBox1.Text = "実験";
textBox1.Refresh();
Thread.Sleep(200);
textBox1.Text = "";
textBox1.Refresh();
Thread.Sleep(200);
}
としたらちゃんと点滅できました。ありがとう。
0498デフォルトの名無しさん
2010/04/25(日) 21:14:29お前は何もわかっていない
Thread.Sleepはマルチスレッドなど非同期で動かしたりする場合に使う
シングルスレッド、ましてやFormクラスで使うべきじゃない
0499デフォルトの名無しさん
2010/04/25(日) 21:21:45そのとおりです
今、マルチスレッドをやっているところなんです。
通信を別スレッドで受けている間
文字を点滅させられないかなと悩んでました。
怒らないで。
0501デフォルトの名無しさん
2010/04/25(日) 21:24:58なぜ、点滅みたいな簡単なことで固まるのかわからなかったので。
0502デフォルトの名無しさん
2010/04/25(日) 21:28:35それはマルチスレッドじゃなくて
ただのスレッド処理だから
もう一方が処理している間、他のスレッドは割り込めない
割り込みたいならlockキーワードを使うべし
0503490
2010/04/25(日) 21:32:360504デフォルトの名無しさん
2010/04/25(日) 21:53:10ブアゥレ 噴いたww
0505デフォルトの名無しさん
2010/04/25(日) 22:10:01ありがとう。しばらく悩んでみます。
0506デフォルトの名無しさん
2010/04/25(日) 22:33:15BitmapとかGraphicsとか、巷のサンプルだと必ずDisposeしてるじゃん?
GC来るまで残りっぱなのは理解してるけど、マネージリソースなんだから
そんな明示的にせんでもいいような気がするんだけど
なんか理由あるん?
0507デフォルトの名無しさん
2010/04/25(日) 22:51:33Bitmapなんか実体はほとんどアンマネージメモリに置かれてるわけだし
0508デフォルトの名無しさん
2010/04/26(月) 02:28:31ソースある?
0509デフォルトの名無しさん
2010/04/26(月) 05:25:18少なくともVistaまでのAPIで透明の上にClearTypeで描画することはできない。
これはClearTypeの技術上仕方がない。
だからIEとかグラスの上に乗せるテキストはClearTypeじゃなくてただのアンチエイリアシングになっている。
直接の解決策ではないが.NET 4.0のWPFでは自己責任で透明の上にClearTypeで描画できるようになった。
Direct2Dは調べてないので知らないができるかもしれない。
0510デフォルトの名無しさん
2010/04/26(月) 05:54:41ReflectorでSystem.Drawing.dllを逆アセンブルしてみると分かるが、
これはGDI+のラッパーだから。
0511デフォルトの名無しさん
2010/04/26(月) 06:07:000512デフォルトの名無しさん
2010/04/26(月) 06:18:24GCで解決するならIDisposable継承しない、するな。
0513デフォルトの名無しさん
2010/04/26(月) 08:53:140514デフォルトの名無しさん
2010/04/26(月) 11:18:15他にもフラワーをとったら火が出たりするのとかメタル化したりとか
こういうのをやるときにそのキャラクターのクラスにフラグを持たせる方法もあると思いますが
そうしないで外からそのキャラクターのインスタンスに機能を拡張するのはどうすればいいでしょうか
まあ、上の例位だと、あたり判定の部分にデリゲードを使って
その部分を差し替えるとかでもいいかもしれませんが
はじめからyを押された時の処理を描くつもりがなくてそういう関数を用意していない時とかに
フラワーとったらどうしたらいいでしょうか。
0515デフォルトの名無しさん
2010/04/26(月) 11:19:40IronPython
0516デフォルトの名無しさん
2010/04/26(月) 11:29:06ありがとうございます
今ちょっとぐぐってみました
.Netから使えるスプリクト言語みたいなものですか?
ちょっと調べてやってみます.
0517デフォルトの名無しさん
2010/04/26(月) 11:30:53特にゲームは実際やってみるとやっぱり上から神様が管理しないと難しいよ
0518デフォルトの名無しさん
2010/04/26(月) 11:34:04そうですね痛感してますw
でも趣味の勉強なのでいろいろ試してみたいと思います。
0519デフォルトの名無しさん
2010/04/26(月) 12:10:470520デフォルトの名無しさん
2010/04/26(月) 14:05:19入れようとするとToStringの中身が入ってしまうようですが。
0521デフォルトの名無しさん
2010/04/26(月) 14:14:590522デフォルトの名無しさん
2010/04/26(月) 14:40:23継承できなければ委譲。拡張メソッドで行ける場合もある。
0523デフォルトの名無しさん
2010/04/26(月) 14:58:42has-aでいいんじゃない?
Marioをコンストラクタで受け取る
FlowerMarioクラスを作ってやればいいと思う
と、どう考えても回答者側の知識量ではない俺がいってみる。
0524デフォルトの名無しさん
2010/04/26(月) 14:59:52できるよ
単に表示されるときにToStringが呼ばれてるだけでしょ
0525デフォルトの名無しさん
2010/04/26(月) 15:04:26それは無意味
MarioとFlowerMarioの間に継承関係が無いなら
アプリケーションがFlowerMarioをあらかじめ知っていないといけない
0526デフォルトの名無しさん
2010/04/26(月) 15:07:05ああそうだね、じゃあ両方にインターフェースをつけるとか
0527デフォルトの名無しさん
2010/04/26(月) 15:07:30Disposeできない時のためにFinalizeがあるんじゃないの
0528デフォルトの名無しさん
2010/04/26(月) 15:09:56ステートマシンを内部に持てばいいんじゃないの、と適当言ってみる
それをオブザーバーパターンで外から操作とか
0529デフォルトの名無しさん
2010/04/26(月) 15:13:24まあゲームだったら結局仕様をきっちり決めて決め打ちが一番いいと思うけど
0530デフォルトの名無しさん
2010/04/26(月) 15:21:440531デフォルトの名無しさん
2010/04/26(月) 15:26:41プラグイン的な拡張をやろうとすると結局グローバル環境的なものを丸ごと渡すことになって
あんまり意味が無さそう
0532デフォルトの名無しさん
2010/04/26(月) 15:38:43>>519-531
Decoratorパターンていうんですね>>526さんの
方法は一応考えたんですが、羽と花をとったときに
両方の効果を使える用にしたいなと思いまして。
>>528
調べてみます
拡張性に意味はないかもしれませんが勉強なので。
0533デフォルトの名無しさん
2010/04/26(月) 16:04:32ありがとう
次のようなコードで試したんですが、使い方間違ってますか?
foreach( DataRow row in table.Rows )
{
row["col1"] = new MyClass();
MyClass obj = row["col1"] as MyClass; //失敗する
}
0534デフォルトの名無しさん
2010/04/26(月) 16:16:390535デフォルトの名無しさん
2010/04/26(月) 16:19:26重要なことだからつっこませてもらうと、MarioがFireFlowerを取るとFireMarioになるんです。
Luigiクラスはいりません。バグの元ですから。
0536デフォルトの名無しさん
2010/04/26(月) 16:21:04最近はオンラインアップデートがあるからなんとも言えなくなってきたかも。
追加要素という名のアンロックは別としても、修正パッチあたるよ。
0537デフォルトの名無しさん
2010/04/26(月) 16:29:220538デフォルトの名無しさん
2010/04/26(月) 16:50:34おぉ、できました。
ありがとう
0539536
2010/04/26(月) 17:00:050540デフォルトの名無しさん
2010/04/26(月) 18:32:54has-aならStateをキャラクターとアイテムが持ったらいいんじゃね?
FireStateを持ったFireFlowerをMarioがとるとMarioがFireStateを持つようにする
0541デフォルトの名無しさん
2010/04/26(月) 20:14:52愚直にステート値でswitchするコードを書くほうが結局分かりやすいと思う。
こういうの、最近はすっかり「不吉な臭い」扱いになっちゃてるけどw
デリゲートやインターフェイス使ってストラテージパターンみたいなことしても、
自己満足以上の効果はないと思う。
0542デフォルトの名無しさん
2010/04/26(月) 21:59:06stateの量の問題?
0543デフォルトの名無しさん
2010/04/26(月) 22:01:160544デフォルトの名無しさん
2010/04/26(月) 23:01:59それなりに綺麗な設計せざるを得なくなってるんじゃないかね?
0545デフォルトの名無しさん
2010/04/26(月) 23:18:51このスレに業界人は居るのかなぁ。
0546デフォルトの名無しさん
2010/04/27(火) 01:35:19ウィチスーでスーケーしてるほうが現実見てるってyou know?
0547デフォルトの名無しさん
2010/04/27(火) 01:45:260548デフォルトの名無しさん
2010/04/27(火) 02:25:00switch caseを使用するのは現実的です。理解?
0549デフォルトの名無しさん
2010/04/27(火) 02:54:500550デフォルトの名無しさん
2010/04/27(火) 06:59:08スーコーマシマシ!
0551デフォルトの名無しさん
2010/04/27(火) 21:27:43ある程度大小比較してくれる関数ってありますか?
具体的に言うとstringとint(byteなど)で比較を
正しく行いたいのですが。
0552デフォルトの名無しさん
2010/04/27(火) 21:39:010553デフォルトの名無しさん
2010/04/27(火) 21:41:11数値に変換できる文字列なら、数値に変換して比較するしかなかろう。
0554デフォルトの名無しさん
2010/04/27(火) 21:49:100555551
2010/04/27(火) 21:56:06型が同じことが前提です。
>>552-554
ありがとう
やはりParseが一般的ですか。
DataViewもParseで比較してるのかな。
0556デフォルトの名無しさん
2010/04/27(火) 22:04:26ならComparerクラスとか
0557デフォルトの名無しさん
2010/04/27(火) 22:13:55その時点でちょっと.....
0558デフォルトの名無しさん
2010/04/27(火) 22:15:500559デフォルトの名無しさん
2010/04/27(火) 22:55:53なぬ?
>>512
残念ながら一貫してそうはなってない。
0560デフォルトの名無しさん
2010/04/27(火) 23:55:42実装してたりするし
関係ないけどインターフェイスを「継承」する、って言い回しはJava方面の方言?
それとも単にありがちな誤用ってだけなのか。
0561デフォルトの名無しさん
2010/04/28(水) 00:03:000562デフォルトの名無しさん
2010/04/28(水) 00:03:04C#方言。
インターフェイスの概要
インターフェイスには、次の特徴があります。
インターフェイスは抽象基本クラスに似ています。インターフェイスを継承する非抽象型は、すべてのインターフェイス メンバを実装する必要があります。
インターフェイスは直接インスタンス化できません。
インターフェイスには、イベント、インデクサ、メソッド、およびプロパティを含めることができます。
インターフェイスには、メソッドの実装が含まれません。
クラスと構造体は、複数のインターフェイスを継承できます。
インターフェイス自体が複数のインターフェイスを継承できます。
0563デフォルトの名無しさん
2010/04/28(水) 00:06:37型が同じなら、IComparableにキャストしてCompareToするとか。
http://codepad.org/m37TS28P
0564デフォルトの名無しさん
2010/04/28(水) 00:09:13言語規定より。
This (multiple) interface inheritance allows objects to support (multiple) common behaviors without sharing any implementation.
この(多重)インタフェース継承は,オブジェクトがいかなる実装も共有せずに(多重の)共通的な振る舞いをサポートすることを可能とする。
0565デフォルトの名無しさん
2010/04/28(水) 00:14:380566デフォルトの名無しさん
2010/04/28(水) 00:15:28なるほど、それが「実装」だったら確かにおかしいな。
0567デフォルトの名無しさん
2010/04/28(水) 00:38:380568デフォルトの名無しさん
2010/04/28(水) 02:12:260569デフォルトの名無しさん
2010/04/28(水) 02:19:020570デフォルトの名無しさん
2010/04/28(水) 07:58:33>正しく行いたいのですが。
>型が同じことが前提です。
どっちだよw
0571デフォルトの名無しさん
2010/04/28(水) 08:01:22遅レスだけどこんなのダメだっけ
if (obj1 is IComparable)
{
return (obj1 as IComparable).CompareTo(obj2);
}
0572デフォルトの名無しさん
2010/04/28(水) 11:06:44どういうときに使うの?
0573デフォルトの名無しさん
2010/04/28(水) 11:40:01継承関係にない型の間に共通の機能を持たせて、同じように扱いたいとき。
>>563,571がまさにそれ。
C#の言語仕様(foreachだのusingだの)とも密接に結びついているので、
知らず知らずのうちにインターフェースを活用しているはず。
たとえば、IEnumerableを実装しさえすれば、どんな型でもforeachで列挙できる。
0574デフォルトの名無しさん
2010/04/28(水) 11:53:40>>571
これって文字の比較であって、数値の比較じゃないでしょ?
0575デフォルトの名無しさん
2010/04/28(水) 11:55:54何を言ってるんだ
0576デフォルトの名無しさん
2010/04/28(水) 12:02:44冷静になるんだ
0577デフォルトの名無しさん
2010/04/28(水) 12:34:27元のクラスで扱っても大丈夫でしたっけ?
0578デフォルトの名無しさん
2010/04/28(水) 12:36:13インスタンスを作った後も元のクラスで扱っても大丈夫でしたっけ?
0579デフォルトの名無しさん
2010/04/28(水) 12:38:51継承元のクラスにキャストするとかそういうこと?
0580デフォルトの名無しさん
2010/04/28(水) 12:41:53ゲームの中にでてくる物体(障害物、自機、敵など)はすべて座標系など特定の
情報を持つという部分では共通ですが、動きだけが違うので管理上は継承前の
クラスで管理して、動きに関連するメンバ関数だけを差し替えを実現したい・・
という感じです
0581デフォルトの名無しさん
2010/04/28(水) 12:46:35継承先で個別に実装すれば
100%書き換えることが前提になってる感じだからむしろIFとかにしてみるとか・・・
いや・・・いろいろ方法はあると思うが 継承元で関数書いてもどうせ空の実装とかにしかならんだろうし
オーバーライドしなけりゃ元の動作のまんまになってしまうのはバグの元だと思うんだ・・・
0582デフォルトの名無しさん
2010/04/28(水) 12:47:23普通にできるが
0583デフォルトの名無しさん
2010/04/28(水) 12:49:39むかーしgcc上で書いた物を移植中なので.netなりの方法はないかなあと模索してたりします。
C時代は関数ポインタのテーブルを用意して・・・とかやってたんですけどね
>>582
どんな感じでやればいいですかね?
0584デフォルトの名無しさん
2010/04/28(水) 12:54:08いやだから基本クラスで動き意外の関数作って
継承したクラスで新しく動きの関数作ればいいだけだけど
何が問題なの?
0585デフォルトの名無しさん
2010/04/28(水) 12:58:17{
public void 動き以外の処理(){}
}
class 自機:物体
{
public void 動きの処理(){}
}
0586デフォルトの名無しさん
2010/04/28(水) 12:58:27Hogeクラスを継承したHogeA,HogeB・・・・・HogeZとかあったとして
管理はList<Hoge>として全体をまとめたいんです・・
0587デフォルトの名無しさん
2010/04/28(水) 12:58:420588デフォルトの名無しさん
2010/04/28(水) 13:03:24>>573
0589デフォルトの名無しさん
2010/04/28(水) 13:13:100590デフォルトの名無しさん
2010/04/28(水) 14:47:22やってみたらいいのに何でわざわざ面倒な手順を踏んでるんだ?
0591デフォルトの名無しさん
2010/04/28(水) 15:27:18>>577
0592デフォルトの名無しさん
2010/04/28(水) 18:20:03もし判ってないならそれは技術力不足以外の何物でもないな
0593デフォルトの名無しさん
2010/04/28(水) 18:47:36聞き入れないわけではなく聞いた上で調べた結果実装を考えた際に
こういう時どうしようとか悩んでるわけなんですよ
たとえばクラスを継承してインスタンスを作る際は確かに一つの
メンバ関数をオーバーライドですれば済みますが状態がわかった際に
インスタンス化されてしまってるクラスのメンバ関数を状態遷移に応じて
さらにオーバーライドできるかとか
できないなら、昔書いたように関数ポインタもどきを実装するしかないのだろうかとか
でもクラスに関数ポインタぽいことを実装すると関数ポインタのテーブルを
もったインスタンスがいっぱいできる?・・・とか
0594デフォルトの名無しさん
2010/04/28(水) 18:48:18この記述は無しで
0595デフォルトの名無しさん
2010/04/28(水) 18:57:23デリゲート
0596デフォルトの名無しさん
2010/04/28(水) 19:00:03デザインパターンのテンプレートメソッドとストラテジーあたりを勉強するといいかも。
理解できないならIF文で押し切れw
0597デフォルトの名無しさん
2010/04/28(水) 20:05:06private byte[] CompressBytes(object rawData)
{
using (MemoryStream stream = new MemoryStream())
{
using (DeflateStream compressedStream = new DeflateStream(stream, CompressionMode.Compress, true))
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(compressedStream, rawData);
}
return stream.ToArray();
}
}
0598597
2010/04/28(水) 20:06:16{
using (MemoryStream stream = new MemoryStream(compressedData))
{
using (DeflateStream decompressedStream = new DeflateStream(stream, CompressionMode.Decompress))
{
BinaryFormatter formatter = new BinaryFormatter();
return formatter.Deserialize(decompressedStream);
}
}
}
単一のプログラムでテストする場合は問題なく動作するのですが、
クライアント・サーバのプログラムにそれぞれメソッドを組み込んで通信をしていると、
return formatter.Deserialize(decompressedStream);
の部分で、「デコード中に無効なデータが見つかりました。」というエラーが出ます。
具体的にはNetwork Streamに対してbyte配列を書き込み、
相手側で読み出すという作業をしているだけなのですが、ローカルとネットワークの場合で挙動が変わるのかよくわかりません。
# ネットワーク越しといっても、サーバプログラムで127.0.0.1に対してポートを開いて、クライアントプログラムで127.0.01にアクセスしているので、マシンスペックに違いは無いはずなのですが…
もし何か注意することがあれば教えていただけないでしょうか?
0599デフォルトの名無しさん
2010/04/28(水) 20:10:35こんな3Dネトゲが4M程度で実現できてるんだけど
C#でやるにはwebdeveloperとかsilverlightが必要?
0600デフォルトの名無しさん
2010/04/28(水) 20:14:070601デフォルトの名無しさん
2010/04/28(水) 20:22:13inしてみたが週末Flashスレで貼られる戦車のゲームとエリア規模は似てるな
まあ4MBってのも圧縮した状態だと小さくなるしなあ
0602デフォルトの名無しさん
2010/04/28(水) 20:26:470603デフォルトの名無しさん
2010/04/28(水) 20:32:160604デフォルトの名無しさん
2010/04/28(水) 21:17:010605デフォルトの名無しさん
2010/04/28(水) 22:22:27そのエラーが出てるとこのデータの中身はどうなってるんだ?
ちゃんと送りつけた時と一緒になってるか?
まずはそこからだ
0606デフォルトの名無しさん
2010/04/28(水) 22:30:49ほとんどのレンタルサーバーはゲーム禁止だからな
ATPAGESではOKだが、負荷をかけすぎるとアカウント自体止められる
0607デフォルトの名無しさん
2010/04/28(水) 22:34:13abstract class foo
{
foo(){}
abstract bar(){}
}
class xxx : foo
{
override bar(){}
}
とやって、xxxのインスタンスをList<foo>にでも突っ込めばいける
0608デフォルトの名無しさん
2010/04/28(水) 22:36:24詳しくResponserパターンでくぐってみろ
0609デフォルトの名無しさん
2010/04/28(水) 22:45:580610デフォルトの名無しさん
2010/04/28(水) 23:24:35そりゃデザパタから入った人は「覚える」って意識になるんだろな。
0611デフォルトの名無しさん
2010/04/28(水) 23:46:55下手にクラス設計に凝るくらいなら、ひたすらstaticでプログラム組んだ方がましだと思う。
どうせ誰かにソースを見せたり、過去の資産を利用したり、誰かから仕様変更を言い渡されたりはしないんだろ。
0612デフォルトの名無しさん
2010/04/28(水) 23:48:17妄想で語るな
0613デフォルトの名無しさん
2010/04/28(水) 23:51:440614デフォルトの名無しさん
2010/04/28(水) 23:55:35つまり妄想
0615デフォルトの名無しさん
2010/04/28(水) 23:58:520616デフォルトの名無しさん
2010/04/29(木) 00:10:330617デフォルトの名無しさん
2010/04/29(木) 00:12:400618デフォルトの名無しさん
2010/04/29(木) 00:39:40でもね、べつにクラス設計とかって伊達で導入されてるわけじゃないんだけどな。
規模が大きくならないとあんまり意味がないってことなら同意だけど。
0619デフォルトの名無しさん
2010/04/29(木) 01:19:21動いたけどsbyteで済むようなただのフラグ用の変数すらintで書いていて起動しただけで10MB超のメモリを食ったのは恥ずかしい経験w
やっていくうちに分かるってのはあるが、どんなソースでもとかいう気持ちだといつまで経っても向上しないような気はする。
0620デフォルトの名無しさん
2010/04/29(木) 01:38:490621デフォルトの名無しさん
2010/04/29(木) 01:41:56案外そうでもなかったりするんだよな・・・
もうちょっといい方法があればいいんだが
0622デフォルトの名無しさん
2010/04/29(木) 01:56:24受信途中のデータの後ろが欠けてるんじゃない?
MemoryStreamじゃなくて、直接NetworkStream渡せば?
0623デフォルトの名無しさん
2010/04/29(木) 13:22:01それはあるねー。
もっとも趣味プログラマの場合、楽しく正しく書くってのも目的に入ってる人は多いんじゃね?
0624デフォルトの名無しさん
2010/04/29(木) 15:04:41WinFormでも同じようなことできましたっけ?
0625デフォルトの名無しさん
2010/04/29(木) 15:12:13コレクションへのDataTemplateを使ったバインディングのようなことをやろうとすると大量のコードが必要になる
0627デフォルトの名無しさん
2010/04/29(木) 15:23:23プログラムのプロをプロフェッショナルとかけたダジャレで
昭和生まれは素人プログラマのことをアマグラマって言うんだぜ
0628デフォルトの名無しさん
2010/04/29(木) 15:24:38WPFだとTreeNode.TagにList<>なんかが入ってても
簡単に取得できるの?
0629デフォルトの名無しさん
2010/04/29(木) 15:26:28元々ツリー上になってるオブジェクトグラフからバインディングだけでノードを生成する
0630デフォルトの名無しさん
2010/04/29(木) 15:28:44WPFのサンプルみた感じだとTreeNodeじゃなくてツリーを形成するための
クラスを自分で作ってTreeViewにぶっこめば勝手に表示してくれてたな
0631デフォルトの名無しさん
2010/04/29(木) 15:35:31また1から作り直し?
0632デフォルトの名無しさん
2010/04/29(木) 15:37:38WinForm依存のデータ格納クラスはそうなるかも
でも最初から依存をなるべく避けたコード書いてればそれほど問題にならない
0633デフォルトの名無しさん
2010/04/29(木) 15:37:390634デフォルトの名無しさん
2010/04/29(木) 15:38:01ほー
今メニューの項目をそのままTreeViewに表示しようとしているんだけど
激しく面倒くさい
0635デフォルトの名無しさん
2010/04/29(木) 15:50:17アイコンの右にhoge.Nameプロパティをバインドしてテキストを表示して
子プロパティとしてhoge.Childrenプロパティをバインドして再帰的に展開して…
みたいなことがXAMLだけでできる
0636デフォルトの名無しさん
2010/04/29(木) 15:52:11C++からC#でかなり楽になったけどさらにWPFで楽できそうな感じ
0637デフォルトの名無しさん
2010/04/29(木) 15:53:22おれもやってみようかな
0638デフォルトの名無しさん
2010/04/29(木) 15:55:40Silverlightに力入れててWPFはそれに合わせてる感じ
0639デフォルトの名無しさん
2010/04/29(木) 16:42:590640デフォルトの名無しさん
2010/04/29(木) 16:47:07これISOかな?
0641デフォルトの名無しさん
2010/04/29(木) 17:22:18窓鯖でもIIS7でないと標準で対応してないのがもうね
これ、意外と高い壁だよ
0642デフォルトの名無しさん
2010/04/29(木) 17:26:31おいおい
.netにはおさるさんがあるじゃなか
銀光とセットで月光あるしLinux上で.net動くぞ
完全互換とは言いがたいが
0643デフォルトの名無しさん
2010/04/29(木) 18:05:260644デフォルトの名無しさん
2010/04/29(木) 18:21:38wndprocのフック
コモンコントロールがないに等しいので自作しないといけない
0645デフォルトの名無しさん
2010/04/29(木) 18:27:080646デフォルトの名無しさん
2010/04/29(木) 18:29:15これって生産性あげろってことなのにWPFだめって言われるとねえ・・・
0647デフォルトの名無しさん
2010/04/29(木) 18:31:14xamlが手間かかりそうなんだけど
0648デフォルトの名無しさん
2010/04/29(木) 18:32:180649デフォルトの名無しさん
2010/04/29(木) 18:34:49なれるまでが面倒かな
XAMLその物はHTMLでwebページ作成するような感じなので
慣れが必要かなあ
0650デフォルトの名無しさん
2010/04/29(木) 19:00:35MIMEタイプが問題になるのはSilverlightより、WPF/XBAPやClickOnceだな。
0651デフォルトの名無しさん
2010/04/29(木) 19:07:540652デフォルトの名無しさん
2010/04/29(木) 19:08:36application/xaml+xml
XBAP
application/x-ms-xbap
ClickOnce
application/x-ms-application
このくらいかな。IEは無くても処理してくれるが、firefoxの.NET Assistantアドオンを使う場合に必要。
0653デフォルトの名無しさん
2010/04/29(木) 19:12:43こんな感じで無理やり対応できる。
#!/usr/local/bin/perl
# -- hoge.cgi --
print "Content-type: application/xaml+xml\r\n";
print "\r\n";
open(INF,"<hoge.xaml");
for (<INF>) {
print $_
}
close(INF);
0654デフォルトの名無しさん
2010/04/29(木) 19:24:42>wndprocのフック
http://blogs.msdn.com/nickkramer/archive/2006/03/18/554235.aspx
>コモンコントロールがないに等しい
WPF Toolkitが便利。DataGrid/DatePicker/Calendar/Visual State Manager(VSM)は.NET 4に取り込まれた。
0655デフォルトの名無しさん
2010/04/29(木) 19:51:18皆さんだとWinFormとWPFだとどっちが速く作れます?
サムネイル一覧表示
書庫から画像読み込み
各種フィルタ機能
画像の変換
を予定してます
0656デフォルトの名無しさん
2010/04/29(木) 20:10:13こりゃありがてえ!
0657デフォルトの名無しさん
2010/04/29(木) 20:13:39いやそう言う話じゃなくて
.xapのMIMEタイプを指定してやらんと貼っても認識しない
>>653みたいなことも出来なくはないけど、それじゃあFlashの代わりとしては敷居が高すぎる
0658デフォルトの名無しさん
2010/04/29(木) 20:14:24ああすまん
httpヘッダのあれか・・
0659デフォルトの名無しさん
2010/04/29(木) 20:30:34普通はHTMLLからsilverlightControlHostやsilverlight.js経由で
読み込むからMIMEの登録は不要なはず。
video再生くらいならxapなしで書けたりする。
ttp://www7a.biglobe.ne.jp/~fbsoft/test/BinaryStar.html
0660デフォルトの名無しさん
2010/04/29(木) 20:34:14どうやってるんだろ
0661デフォルトの名無しさん
2010/04/29(木) 22:04:42できるのか。知らんかった
>WPF Toolkitが便利。DataGrid/DatePicker/Calendar/Visual State Manager(VSM)は.NET 4に取り込まれた。
コモンコントロールあるのか・・・
そのキットにはコモンダイアログもついてるのか?
フォントダイアログを自作する作業はもう嫌だよ・・・
せめてそのくらいつけてくれ>MS
0662デフォルトの名無しさん
2010/04/29(木) 22:06:41コモンダイアログは本質的にWPFの範囲外だから付けたくないんだろ
0663デフォルトの名無しさん
2010/04/29(木) 22:34:35http://ov-p.spaces.live.com/blog/cns!39D56F0C7A08D703!253.entry
http://blogs.msdn.com/text/archive/2006/11/01/sample-font-chooser.aspx
0664デフォルトの名無しさん
2010/04/29(木) 22:36:51WPFだとFont列挙してListboxにでも入れてしまえばいいような気がする
0665デフォルトの名無しさん
2010/04/30(金) 00:21:52ループする項目に対していろいろな条件によって
continue;するプログラムを書いていると
ついループが長くなりがちでなんとかしたいのですが
コツのようなものはありますでしょうか
すぐ思いつくのは
・ループ内からメソッドを呼ぶようにして
結果をboolで返すとか(処理結果を他で使いたい場合に問題)
・例外でループまで戻ってくる
(処理コストの面と意味的な面で例外を使うのはどうか)
と言った辺りですが思いつくことありましたらご意見を。
0666デフォルトの名無しさん
2010/04/30(金) 00:26:02なったことないのでわからん
どんな処理書いてるのか見せてもらえると一番なんだが・・・
コード晒す場合は>>4の※コードの量が多い場合・・・のところを使ってね
0667デフォルトの名無しさん
2010/04/30(金) 00:34:08bool返すメソッドをデリゲートに設定すれば
一つのメソッドで複数のメソッドを呼び出すことができる
一つのif文で済む
あとはその処理用にデータ構造を設けてコードが短く済むようにする
0668デフォルトの名無しさん
2010/04/30(金) 01:47:470669デフォルトの名無しさん
2010/04/30(金) 01:56:160670デフォルトの名無しさん
2010/04/30(金) 02:02:16変更しようとしてるんですけどImageのサイズが変わりません。
この方法まずいでしょうか。
※PictureBoxはフォーム全体にアンカーを貼っていてフォームサイズが変わると
連動するようになっています。
Private void pictureBox1_Resize(object sender, EventArgs e)
{
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
}
0671デフォルトの名無しさん
2010/04/30(金) 02:23:50http://ideone.com/Cs4gU
0672デフォルトの名無しさん
2010/04/30(金) 02:23:58Pictureboxのサイズに合わせて表示も拡大したいのか良く分からんけど、
後者ならプロパティに設定するだけ。
SizeModeをZoomかStretchImageにすればいける。
0673デフォルトの名無しさん
2010/04/30(金) 02:31:27一番内側から最外ループまで一気に戻りたい時とか面倒で仕方ない
0674デフォルトの名無しさん
2010/04/30(金) 02:33:28どんなコードの状況になてて>>665なのかわからんし
当たり障りの無い回答しかできないのも事実
0675デフォルトの名無しさん
2010/04/30(金) 02:51:11SizeMode設定で出来ました。
ありがとうございます。
別のGraphicsの画像をPictureBox.Imageに拡縮貼り付けしていて
PictureBoxのサイズが変わったら貼り付ける座標も変わるだろうということで
PictureBox.ImageのサイズをPictureBoxのサイズに変えたかったんですけど
PictureBoxはPictureBox.ImageをStretchBltしてくれるみたいなイメージなんですね。
>>671
なんだか・・・いろいろやってくれるんですね.NETは
今までWin32APIでしかウインドウズプログラミングしたことなかったので
勉強になります・v・
0676デフォルトの名無しさん
2010/04/30(金) 17:10:330677デフォルトの名無しさん
2010/04/30(金) 17:17:39ファミコンの画像を縮小したら変に滑らかになって困ります。RGB接続した時のようなまま縮小したいです
0678デフォルトの名無しさん
2010/04/30(金) 17:26:09Bitmapオブジェクトを直接弄るしかない
0679665
2010/05/01(土) 01:05:49実物はアレなので話のネタにサンプルコードとしますがこんな感じ
IEnumerable<T> e = xx;
foreach (var x in e)
{
bool a = this.A(x);
if (a)
{
continue;
}
bool b = this.B(x);
if (!b)
{
continue;
}
string c = ExtLibC.C(a, b)
if (c == null)
{
continue;
}
DD d = ExtLibD.D(x, a, b, c)
if (d == null || d.D == null || d.DD == null) {
continue;
}
// こんな処理が数十行続くとか
// もっとネストが深いとか
}
0680デフォルトの名無しさん
2010/05/01(土) 01:54:42この例だと有効なdを取得したいんだろうから、こんな感じかね
foreach(var x in e) {
var d = D(x);
if (d == null || d.D == null || d.DD == null) continue;
// 処理
}
--
DD D<T>(T x) {
if (A(x) || !B(x)) return null;
string c = ExtLibC.C(false, true);
return (c != null) ? ExtLibD.D(x, false, true, c) : null;
}
0681デフォルトの名無しさん
2010/05/01(土) 03:02:05まあ分かって聞いてるんだと思うけど、そんなの汎用的な方法論なんてあるわけないよね。
冗長なコードが悪なのは誰も異論がないとしても、
それは全ての処理はコンパクトな記述が可能だってことを意味しないわけで。
0682デフォルトの名無しさん
2010/05/01(土) 04:10:07DragDropEffects.Scroll指定するだけじゃダメなの?
0683デフォルトの名無しさん
2010/05/01(土) 16:40:310684デフォルトの名無しさん
2010/05/01(土) 17:55:36諦めるんだ・・・
サードパーティが売れなくなるだろ?
0685デフォルトの名無しさん
2010/05/01(土) 19:22:190686デフォルトの名無しさん
2010/05/02(日) 13:10:14楽すぎるw
0687デフォルトの名無しさん
2010/05/02(日) 13:22:41ブラウザで代替出来る程度のことなら、素直にTableLayoutPanelでも使った方が
もっと簡単なんじゃないかと....
0688デフォルトの名無しさん
2010/05/02(日) 14:48:35中の文章でセルサイズを自動調節したいんで、
TableLayoutPanelでは難しいです
0689デフォルトの名無しさん
2010/05/02(日) 18:17:07{
}
こんな感じのコードをもっとスマートに書く方法ってないですかね。
例えば
if(a == (1 && 2 && 3))みたいな感じで。
「かつ」ではなく「もしくは」ならswitch文で代用できるんですけど。
よろしくお願いします。
0690デフォルトの名無しさん
2010/05/02(日) 18:18:440691デフォルトの名無しさん
2010/05/02(日) 18:20:36if(a != 1 && a != 2 && a != 3)
{
}
こんな感じのです。
0692デフォルトの名無しさん
2010/05/02(日) 18:22:360693デフォルトの名無しさん
2010/05/02(日) 18:23:270694デフォルトの名無しさん
2010/05/02(日) 18:28:22用途上 a >= 0 に限定できるなら
if (a && a > 3)
{
}
0695デフォルトの名無しさん
2010/05/02(日) 18:43:52今回例に出したのは数値型でしたが、文字列型だった場合には条件式の組み合わせが非常に多くなってしまって鬱陶しかったんで。
個人的なことですが、if文等の括弧の途中で改行挟むのが嫌いなものの、改行しないでいると横スクロールが面倒になるという始末。
まぁ比較用のbool変数に対して予め比較を終わらせておくって手段もあるんですがね。
要はわがままです。
>>693-694
ありがとうございます。配列に対してContainsを使う方法は思いつきませんでした。
文字列型の場合にも有効活用できそうですね。
0696デフォルトの名無しさん
2010/05/02(日) 18:58:05いずれにせよ、値の評価関数(ようはintならintを引数にとってboolを返す関数)
をつくるベタなやり方の方がいいと思うけど。
ifの()の中の記述に場当たり的な技巧を凝らすのは時間の無駄だし馬鹿っぽい。
0697デフォルトの名無しさん
2010/05/02(日) 19:13:09実行速度を気にしなくて言い場合にはContainsは有効ですね。
>>696
上記の理由より、予め比較を終わらせておく手段をとるのが最善のようですね。
0698デフォルトの名無しさん
2010/05/02(日) 19:13:410699デフォルトの名無しさん
2010/05/02(日) 19:34:51>>まぁ比較用のbool変数に対して予め比較を終わらせておくって手段もあるんですがね。
俺もこうするかな
bool b1 = a != 1;
bool b2 = a != 2;
bool b3 = a != 3;
if( b1 && b2 && b3 )
{
}
0700デフォルトの名無しさん
2010/05/02(日) 20:21:290701デフォルトの名無しさん
2010/05/02(日) 20:24:30b &= a != 2;
b &= a != 3;
if (b)
{
}
だろ
0702デフォルトの名無しさん
2010/05/02(日) 20:24:470703デフォルトの名無しさん
2010/05/02(日) 20:25:45まあ状況によりけりだが素直に条件式書く方がスマートだったりするよな
0704デフォルトの名無しさん
2010/05/02(日) 20:31:550705デフォルトの名無しさん
2010/05/02(日) 20:34:000706デフォルトの名無しさん
2010/05/02(日) 20:40:560707デフォルトの名無しさん
2010/05/02(日) 20:50:31個人なら好きにすればいいよ。
0708デフォルトの名無しさん
2010/05/02(日) 20:57:54つまらないこだわりはよせ
月にロケットを飛ばすプログラムが一行で書けたところで
何の意味もない
0709デフォルトの名無しさん
2010/05/02(日) 21:07:20しかもオンラインのみ?
ローカルに設定したんだけど・・・
0710デフォルトの名無しさん
2010/05/02(日) 21:13:25ローカルアドレス参照になってましたorz
0711デフォルトの名無しさん
2010/05/02(日) 21:18:03意味あるだろ
0712デフォルトの名無しさん
2010/05/02(日) 21:32:35どこに?
0713デフォルトの名無しさん
2010/05/02(日) 21:36:39if ( a != 1
&& a != 2
&& a != 3
) {
}
条件の追加削除が楽だし、&&なのか||なのかが前に並んで、俺が分かりやすい。
後ろに置くとチェック変数の変数名長でガタついて見間違えやすいから。
横並びなんて誰得。複合条件ならカッコつけてインデント。複雑なら変数方式。
これを部下に押し付けてる。
途中で||とか変な条件入ったら693なんてどーすんの?
0714デフォルトの名無しさん
2010/05/02(日) 21:38:20一行プログラムコンテストだっけ?
オッサンの独り言でした
0715デフォルトの名無しさん
2010/05/02(日) 21:40:59これとか、カンマを文頭に書くのは好きになれないなぁ。
確かに見やすい&わかりやすいけどね。
0716デフォルトの名無しさん
2010/05/02(日) 21:52:31途中で||が入ったとしても、&&で括れるグループ毎にまとめるとかはできるでしょう。
それに様々な条件が入り交ざったモノってそこまで条件式自体は長くないのが多いし、仮に長かった場合には関数なりなんなりでわかりやすく分離すればいいかと。
0717デフォルトの名無しさん
2010/05/02(日) 21:57:35分解したら今度は読み解くのにあっちこっち見に行かなければならない
0718デフォルトの名無しさん
2010/05/02(日) 22:02:28手作業でコードの整形とか時間の無駄なんだよな。
0719デフォルトの名無しさん
2010/05/02(日) 22:15:440720デフォルトの名無しさん
2010/05/02(日) 22:18:140721デフォルトの名無しさん
2010/05/02(日) 22:28:38少数意見だろうな。
0722デフォルトの名無しさん
2010/05/02(日) 22:30:540723デフォルトの名無しさん
2010/05/02(日) 22:33:40フォールスルーが言語でもめったに使われてないからたまに使われてるとほぼ確実に見落とす
0724723
2010/05/02(日) 22:35:150725デフォルトの名無しさん
2010/05/02(日) 22:38:46交通事故かな
0726デフォルトの名無しさん
2010/05/03(月) 00:51:470727デフォルトの名無しさん
2010/05/03(月) 01:27:07ほっとけ
0728デフォルトの名無しさん
2010/05/03(月) 01:33:15まあ休みの深夜だしw
0729デフォルトの名無しさん
2010/05/03(月) 03:27:150730デフォルトの名無しさん
2010/05/03(月) 09:47:15フォールスルーするならコメント書いとけ
0731デフォルトの名無しさん
2010/05/03(月) 13:15:11http://ameblo.jp/ryujiohta/entry-10524500598.html
0732デフォルトの名無しさん
2010/05/03(月) 13:24:518. URL表記・リンク
宣伝・罠・実行リンク
・明らかに宣伝を目的としたリンク・クリックや訪問で課金が発生するもの等は、宣伝掲示板以外では削除します。
0733デフォルトの名無しさん
2010/05/03(月) 14:23:530734デフォルトの名無しさん
2010/05/04(火) 00:25:02どこがおかしいのでしょうか?
C:\Documents and Settings\tutomu\My Documents\Visual Studio 2008\Projects\gomokuproguram\sironoisi.cs
0735デフォルトの名無しさん
2010/05/04(火) 00:30:23知りません。
答えようがありません。
0736デフォルトの名無しさん
2010/05/04(火) 00:31:210737デフォルトの名無しさん
2010/05/04(火) 00:32:480738デフォルトの名無しさん
2010/05/04(火) 00:58:190739デフォルトの名無しさん
2010/05/04(火) 01:01:27忘れてたってレベルじゃねぇぞ!
ところで
gomokuproguram
は
GomokuProgram
ではないか?
0740デフォルトの名無しさん
2010/05/04(火) 01:04:520741デフォルトの名無しさん
2010/05/04(火) 01:07:32確かにwwww
0742デフォルトの名無しさん
2010/05/04(火) 01:10:06このごろ少し変よ どうしたのかナ
0743デフォルトの名無しさん
2010/05/04(火) 01:12:460744デフォルトの名無しさん
2010/05/04(火) 01:20:32なんで名前知ってるの・・・?
いちようウイルスソフトは入れている
2chになんかカキコするんじゃなかった
0745デフォルトの名無しさん
2010/05/04(火) 01:24:020746デフォルトの名無しさん
2010/05/04(火) 01:26:50グフッ
0747デフォルトの名無しさん
2010/05/04(火) 01:34:27ウイルスソフトなんて入れてるから駄目なんだと思います。
>>746
ワロタww
0748デフォルトの名無しさん
2010/05/04(火) 01:39:300749デフォルトの名無しさん
2010/05/04(火) 02:25:230750デフォルトの名無しさん
2010/05/04(火) 02:44:44なんか小説でも書けそうなタイトル
0751デフォルトの名無しさん
2010/05/04(火) 09:32:12【五目】C#相談室【白の石】
0752デフォルトの名無しさん
2010/05/04(火) 09:50:42【五目】C#相談室(ツトム君専用)【白の石】
0753デフォルトの名無しさん
2010/05/04(火) 10:07:25マウスだとボタンとポインター移動部分が独立してるけど
タッチパネルとなるとタッチした瞬間にカーソル移動+
MouseDownとかイベント発生しそうだし・・・
0754デフォルトの名無しさん
2010/05/04(火) 10:25:11戦車ゲームが難しいな
タッチしたら旋回して即発射
つねに振り向きざま即発射
0755デフォルトの名無しさん
2010/05/04(火) 11:09:10ついにはじまるのか・・・
0756デフォルトの名無しさん
2010/05/04(火) 11:46:180757デフォルトの名無しさん
2010/05/04(火) 12:38:42iとjをまちがいていました
変数名をtateとyokoにすることによって解決。
forの変数はiから順に使うとならったけど
名前を使ったほうが分かりやすいと思う
あと名前をカキコするのはやめてください。
どこで知ったのかわかりませんが
ちゃんとうpろだに成功してたのかな?
0758デフォルトの名無しさん
2010/05/04(火) 12:41:08"tutomu"じゃないよ。
0759デフォルトの名無しさん
2010/05/04(火) 12:41:58ネタなのかマジなのか
>>734で自分で晒してるよ
IDEのデフォルトの保存場所にするとマイドキュメントになるので
下手にプロジェクトとか晒すとユーザーネームまるばれなんだよw
0760デフォルトの名無しさん
2010/05/04(火) 12:42:48僕はtutomuって書くことが多いですね
最近はローマ字で名前書いたことないですけど
0761デフォルトの名無しさん
2010/05/04(火) 12:44:00はぁー!
フォルダに名前使ったおぼえないのに
C#が勝手に作った!?_
0762デフォルトの名無しさん
2010/05/04(火) 12:45:34お前面白いなwww
0763デフォルトの名無しさん
2010/05/04(火) 12:45:42プロジェクト保存するときに保存先を聞いてくるので
見逃してたら自己責任だろうw
0764デフォルトの名無しさん
2010/05/04(火) 12:47:14訓令式というものがあってな
0765デフォルトの名無しさん
2010/05/04(火) 12:55:48名前フォルダの中にデスクトップがあるし訳が分からない
デスクトップの中にエクスプローラーがあってその中にデスクトップがある。
でも普通にファイル開けた
0766デフォルトの名無しさん
2010/05/04(火) 12:59:300767デフォルトの名無しさん
2010/05/04(火) 13:07:420768デフォルトの名無しさん
2010/05/04(火) 13:12:11これ以上やりたければ、パソコン初心者板でも行こうな。つとむくん。
0769デフォルトの名無しさん
2010/05/04(火) 13:14:15既に聞きに行っているみたいだぞwww
http://pc12.2ch.net/test/read.cgi/win/1267768729/828
0770デフォルトの名無しさん
2010/05/04(火) 13:26:270771デフォルトの名無しさん
2010/05/04(火) 14:08:400772デフォルトの名無しさん
2010/05/04(火) 16:53:13予想の斜め上www
0773デフォルトの名無しさん
2010/05/04(火) 17:02:310774デフォルトの名無しさん
2010/05/04(火) 17:56:230775デフォルトの名無しさん
2010/05/04(火) 20:02:390776デフォルトの名無しさん
2010/05/05(水) 00:20:35・・・風が吹いてきたな・・・
0777デフォルトの名無しさん
2010/05/05(水) 03:14:02無条件に変数をiから使うとか教えてるっぽいし
0778デフォルトの名無しさん
2010/05/05(水) 08:52:180779デフォルトの名無しさん
2010/05/05(水) 09:26:18httpでHEADリクエストを送るにはどうすればいいでしょうか。
WebRequest, WebResponseを使うとGETで全部取ってきてしまうので・・
0780デフォルトの名無しさん
2010/05/05(水) 09:33:54Method プロパティに "HEAD" 入れりゃいいだけの話。
"POST" したことあるならやり方わかるよね?
0781デフォルトの名無しさん
2010/05/05(水) 09:54:38Method指定でできましたー
どうもありがとうございます
0782デフォルトの名無しさん
2010/05/05(水) 15:10:58プロジェクト規定の名前空間を含めないようにすることはできますか?
規定の名前空間が'hoge'で、コンパイル時に
型名'hoge1'は型'hoge.hoge'に存在しませんとなるのを避けたいのですが・・・
0783デフォルトの名無しさん
2010/05/05(水) 15:29:350784デフォルトの名無しさん
2010/05/05(水) 18:29:47Visual C# 2010 Expressというのは製品版と比べて
どんな制限があるんでしょうか?
0785デフォルトの名無しさん
2010/05/05(水) 18:43:22普通にやる分には、全く制限が無いと思ってもいい。
0786デフォルトの名無しさん
2010/05/05(水) 18:52:04えーっすごいですね!
早速参考書を買いに行ってきます。
0787デフォルトの名無しさん
2010/05/05(水) 18:53:260788デフォルトの名無しさん
2010/05/05(水) 18:54:400789デフォルトの名無しさん
2010/05/05(水) 18:58:45参考書はとりあえずやめとけ。ネットで調べたらいくらでも出てくる。
0790デフォルトの名無しさん
2010/05/05(水) 18:59:400791デフォルトの名無しさん
2010/05/05(水) 19:07:52勉強時間が移動中か寝る直前ですし、
本のほうが集中して読めるので。。
>>790
http://www.microsoft.com/express/Windows/
このページの右の「Compare Express Products」ですか?
読んでもよくわかりません…(英語がわからないのではなく)
0792デフォルトの名無しさん
2010/05/05(水) 19:08:56http://www.microsoft.com/japan/msdn/vstudio/2008/product/express/aboutexpress.aspx
これは広告だから制限は書いていない。
重要な制限としてはテスト周りが制限されている。
・ 単体テスト機能が無いので、外部ツールの NUnit を使う必要がある。
・ アドインが使えないので、TestDriven.Net を使うには工夫が必要がある。
・ C++ とか C# とか言語別製品になっているため、言語の混在したソリューションが作れない。
→ C++で作ったDLLを参照して使うC#のプロジェクトのデバッグでC++のソースは見えない。
えーと、間違いとか校正よろしく。
0793デフォルトの名無しさん
2010/05/05(水) 19:18:27> Visual Studio 2008 Express Edition は無償で提供しています。さらに作ったアプリケーションは商用利用が可能です。
これすごいですね
0794デフォルトの名無しさん
2010/05/05(水) 19:21:14オヌヌメのサイトある?
0795デフォルトの名無しさん
2010/05/05(水) 19:21:400796デフォルトの名無しさん
2010/05/05(水) 19:25:040797デフォルトの名無しさん
2010/05/05(水) 20:10:15すごくない
当たり前のこと
0798デフォルトの名無しさん
2010/05/05(水) 20:13:23それを考えれば「当たり前」とは言えないでしょ。
0799デフォルトの名無しさん
2010/05/05(水) 20:33:500800デフォルトの名無しさん
2010/05/05(水) 20:35:210801デフォルトの名無しさん
2010/05/05(水) 21:22:350802デフォルトの名無しさん
2010/05/05(水) 22:20:26DB絡むと途端に使えない子になる
まあ無償だからしょうがないが
0803デフォルトの名無しさん
2010/05/05(水) 22:30:24>・ アドインが使えないので、TestDriven.Net を使うには工夫が必要がある。
どうすれば使えるんですか?
ご教示ください。
0804デフォルトの名無しさん
2010/05/05(水) 23:47:48スマンやり方を忘れてしまった。
http://project.iifp.biz/modules/mydownloads/
から拾ってきたテンプレートでごしょごしょやった気がしたが・・・
NCover単体でやってたのかな?カバレッジのために使ってたし。
0805デフォルトの名無しさん
2010/05/06(木) 05:58:35そんなことないよ。
0806デフォルトの名無しさん
2010/05/06(木) 14:59:05デリゲートと比較すると引数もコールバックも渡せない。
敢えてスレッドを選択するのはどういう場面なんでしょうか。
0807682
2010/05/06(木) 15:03:43ある程度D&D時のスクロールは実現出来た
ただ、上方向へはスクロールするけど下方向がスクロールしない
マウス近くのアイテムが表示範囲に入ったところで止まってしまう
下方向へもスクロールするにはどうしたらいい?
0808デフォルトの名無しさん
2010/05/06(木) 15:08:32常にバックグランドで待ち構えていなければならないような用途かな
例えばアーカイバプロジェクトDLLはほとんどがマルチスレッドに対応していない
だからアクセス専用スレッド待機させて、生産者消費者パターンでシリアル化する、みたいな
まあUIスレッドのために存在する、って言っちゃってもいいんだけどw
0809デフォルトの名無しさん
2010/05/06(木) 15:34:01なるほど。
スレッド=タスク分散のためのマルチスレッド処理に使う物
と勝手に思い込んでたのでなんでこんな糞仕様なのかと疑問だったのですが
そもそもそういうことに使うものじゃないんですね。
もやが晴れましたどうもありがとうございました。
0810デフォルトの名無しさん
2010/05/06(木) 17:48:37これはこれで合ってるんじゃね?
0811デフォルトの名無しさん
2010/05/06(木) 17:50:49ややこしい手続きを引き受けてくれる代理店みたいなもん
0812デフォルトの名無しさん
2010/05/06(木) 20:19:220813デフォルトの名無しさん
2010/05/06(木) 21:10:360814デフォルトの名無しさん
2010/05/06(木) 21:20:290815デフォルトの名無しさん
2010/05/06(木) 21:21:390816デフォルトの名無しさん
2010/05/06(木) 22:17:45とくにそれは見掛けたことがあるから絶対になるわ
0817デフォルトの名無しさん
2010/05/06(木) 22:25:55You've got my 5!
0818デフォルトの名無しさん
2010/05/07(金) 03:39:530819デフォルトの名無しさん
2010/05/08(土) 02:12:360820デフォルトの名無しさん
2010/05/08(土) 07:42:370821デフォルトの名無しさん
2010/05/08(土) 08:56:320822デフォルトの名無しさん
2010/05/08(土) 10:49:320823デフォルトの名無しさん
2010/05/08(土) 11:39:245分で作れる
0824デフォルトの名無しさん
2010/05/08(土) 12:20:56安価付けろタコ
0825デフォルトの名無しさん
2010/05/08(土) 13:30:300826デフォルトの名無しさん
2010/05/08(土) 13:56:24当然それじゃ要求に満たないわけでな。
0827デフォルトの名無しさん
2010/05/08(土) 14:36:21メッセージボックスの場合はDialogResult返さないといけないから、
普通はそう単純にはいかない。
あと数値だけ受け付けるTextBoxとかComboBoxなんかも
かなりの頻度で車輪の再発明されてそうだな。
0828デフォルトの名無しさん
2010/05/08(土) 14:46:23WPFでは実際にそうなってるが
0829デフォルトの名無しさん
2010/05/08(土) 14:56:51それって「馬鹿の一つ覚え」でしょ。
そういう方法論もあるとは思うが、それが「べき」なんていえる万能な方法なわけがない。
だいいち、入力を弾くなんていうGUI寄りの泥臭い処理を
データを持ってるオブジェクトが担当するなんて、どう考えても悪い設計にしか思えない。
0830デフォルトの名無しさん
2010/05/08(土) 15:06:09「入力を弾く」のはロジックであって、そもそもGUIの仕事ではない。
逆に入力ルールをUIに持たせようとする神経を疑う。
UIは、あくまでデータの見せ方を定義するもの。ロジックは他に任せろ。
0831デフォルトの名無しさん
2010/05/08(土) 15:07:390832デフォルトの名無しさん
2010/05/08(土) 15:13:47話が噛みあってないな恐らく。
同じ「入力を弾く」という言葉を使っていても、
君は例えば設定範囲外の数値を弾くようなことを想定しているんだろう。
俺はそんな話はしてないの。(>>827)
0833デフォルトの名無しさん
2010/05/08(土) 15:46:18Javaが使えれば、何となくC#もできちゃう?
0834デフォルトの名無しさん
2010/05/08(土) 15:47:25指定したキー(文字)以外の入力は受け付けない、という機能であればViewの仕事だと
思うけど、そういう話?
# 単にキーで入力制限すると、数値しか入力させないつもりが"1.1.0-"なんて
# 入力ができちゃったりするから、個人的にはあんまり意味ないと思うけど。
0835デフォルトの名無しさん
2010/05/08(土) 15:56:58そうそういう話。
君自身言ってるとおり、そんなのはViewあるいはGUI部品の仕事でしょ。
1個以上の小数点の入力を抑止したり、先頭以外の-の入力を抑止(あるいは、初めて
-が入力された時、先頭に-を表示する)するのは別に難しくない。というか普通そうする。
0836デフォルトの名無しさん
2010/05/08(土) 16:00:08Javaよりだいぶ洗練されてるけど、まあ、似てるっちゃ似てる。
元々が「SUNがあまりに要領得ないからうちでJavaに似た別言語創るよ」みたなノリだし。
今やJavaよりかなり高機能になってるけど、逆にJava側がC#の機能を輸入してたりするし。
0837デフォルトの名無しさん
2010/05/08(土) 16:03:23今まで興味なかったけど、何だか急に興味が沸いてきちゃったじゃないか。
0838デフォルトの名無しさん
2010/05/08(土) 18:11:36IDEが優秀だからあんまり気にならなかったり
0839デフォルトの名無しさん
2010/05/08(土) 18:18:31後発で MS が作ってるものが悪いわけないじゃん。
MS が Java の仕様をあれこれ改善しようとして、それを SUN が断固拒否しなけりゃ
今頃 Java はいい言語になってただろうにねぇ。
>>838
IDE 抜きでもなかなかきれいにまとめてると思うよ、あれだけの高機能を。
0840デフォルトの名無しさん
2010/05/08(土) 18:19:420841デフォルトの名無しさん
2010/05/08(土) 18:33:44Write once, run everywhere. でなくなることぐらいだったような。
いろいろ便利なので、JDK1.1で成長を止められてしまったのに、長々と使われていた(日本ではほとんど使われなかったけど)。
0842デフォルトの名無しさん
2010/05/08(土) 18:35:06配列の要素数が後ろに増えていくと思ったのですが
1行分の要素しか格納されていきません
要素全てを格納したいのですがどう直せばいいのでしょうか?
// 変数の宣言
string Str = "";
string[] stArrayData = {};
// テキストボックスの1行単位処理
for(int i=0;i<textBox1.Lines.Length;i++){
Str = textBox1.Lines[i]; // テキストボックスから1行取得
stArrayData = Str.Split(','); // カンマでsplit
}
0843デフォルトの名無しさん
2010/05/08(土) 18:35:39それ駄目だろ、最大のウリだったのに。
0844デフォルトの名無しさん
2010/05/08(土) 18:42:310845デフォルトの名無しさん
2010/05/08(土) 18:46:33当時 Pure Java とか言ってたくらいだし、
亜種作ることを SUN がとことん嫌ってたから。
なんか係争に発展してなかったっけ?
0846デフォルトの名無しさん
2010/05/08(土) 18:49:19Write once, run anywhere.
Write once, debug everywhere.
混ざってないか
>>842
stArrayData = textBox1.Lines.SelectMany(s => s.Split(',')).ToArray();
0847デフォルトの名無しさん
2010/05/08(土) 18:50:11すみません。頂いたヒントからググっても
どうにも上手くいかず
上のコードをどう直していけばよいのでしょうか
0848デフォルトの名無しさん
2010/05/08(土) 19:02:26MONOってどうなの?業務で使った人居る?
0849デフォルトの名無しさん
2010/05/08(土) 19:39:02.NET関連のオープンソースプロジェクトってGPLより緩いライセンスがほとんどだし
サードパーティのライブラリとかも全滅
0850デフォルトの名無しさん
2010/05/08(土) 19:41:02// 変数の宣言
string Str = "";
List<string> arrayData = new List<string>();
// テキストボックスの1行単位処理
for (int i = 0; i < textBox1.Lines.Length; i++)
{
Str = textBox1.Lines[i]; // テキストボックスから1行取得
arrayData.AddRange(Str.Split(','));
}
// string[]に変換
// arrayData.ToArray();
0851デフォルトの名無しさん
2010/05/08(土) 19:52:00ありがとうございます!できました
…C#難しいよ…Perlのが楽だよ
0852デフォルトの名無しさん
2010/05/08(土) 19:54:14オブジェクト指向してないでしょ
0853デフォルトの名無しさん
2010/05/08(土) 20:03:39GPLじゃなくなってから8年もたつのに。
0854デフォルトの名無しさん
2010/05/08(土) 20:09:30Strの場所おかしくないか?(そして何故大文字)
0855デフォルトの名無しさん
2010/05/08(土) 20:13:44元のソースで、とりあえずそのままでもいいところは
そのままにしているだけ、だと思う。
0856デフォルトの名無しさん
2010/05/08(土) 20:14:160857デフォルトの名無しさん
2010/05/08(土) 21:14:170858デフォルトの名無しさん
2010/05/08(土) 22:20:250859デフォルトの名無しさん
2010/05/08(土) 23:47:150860デフォルトの名無しさん
2010/05/09(日) 00:01:580861デフォルトの名無しさん
2010/05/09(日) 20:52:45それとも同じ名前空間内のクラスの外側に作ります?
0862デフォルトの名無しさん
2010/05/09(日) 20:54:410863デフォルトの名無しさん
2010/05/09(日) 21:35:19ソースは?
0864デフォルトの名無しさん
2010/05/09(日) 21:38:28何のメリットが
0865デフォルトの名無しさん
2010/05/09(日) 21:54:25http://msdn.microsoft.com/ja-jp/library/ms182162%28v=VS.100%29.aspx
公式には完璧にアウト
0866デフォルトの名無しさん
2010/05/09(日) 22:06:360867デフォルトの名無しさん
2010/05/09(日) 22:09:19あんまり想定されてなくて危ないのでやめたほうがいい。
0868デフォルトの名無しさん
2010/05/09(日) 22:27:070869デフォルトの名無しさん
2010/05/09(日) 22:28:07なるほど。
確かに名前空間の分離で充分賄える内容でした。
とはいえ流石に enum 用の名前空間分けるのも変なかんじなんで
"Foo"StatusType みたいにそれっぽいプリフィクス付けて対処してみます。
ありがとうございました。
0870デフォルトの名無しさん
2010/05/10(月) 11:51:300871デフォルトの名無しさん
2010/05/10(月) 12:00:24{
public class HageClass
{
//(ry
}
}
namespace HogeProject.HageClass
{
enum StatusType
{
hoge = 0,
hage = 1,
}
}
0872デフォルトの名無しさん
2010/05/10(月) 12:02:190873デフォルトの名無しさん
2010/05/10(月) 12:04:06{
MessageBox.Show("禿");
}
0874デフォルトの名無しさん
2010/05/10(月) 12:46:53http://pc12.2ch.net/test/read.cgi/tech/1272608727/
0875デフォルトの名無しさん
2010/05/10(月) 13:27:17using HogeProject;
var hage = new HageClass(); // <- 名前空間はnewできない
って書けなくなるじゃん
0876デフォルトの名無しさん
2010/05/11(火) 05:38:15これってどうよ?
0877デフォルトの名無しさん
2010/05/11(火) 06:07:53なにかいい方法はあるでしょうか?
例えば、テキストボックスにある
文字列が
"A B" C | D -E
という場合は、
A B AND C OR D ANDNOT E
という文字列に置換したいです。
今は文字列を1バイトずつ調べて
いますが、なにかmethodを使い
よい方法があればと思い質問します。
C#は初心者ですが、よろしく
お願いします。
0878デフォルトの名無しさん
2010/05/11(火) 06:38:390879デフォルトの名無しさん
2010/05/11(火) 07:45:430880デフォルトの名無しさん
2010/05/11(火) 10:04:31OleDbで接続して読み込むことはできるのですが、
どうしても読み込むことのできない列があり、その列の値だけは
何行目でも空になってしまいます。
試しに他のExcelファイルに変えてみましたが、最初のファイルとは別の
列がまったく読み込めませんでした。
Excelファイルに問題があるのでしょうか?
それともOleDbでDBのように読み込むには何かの制限があるのでしょうか?
よろしくお願いします。
0881デフォルトの名無しさん
2010/05/11(火) 10:17:390882デフォルトの名無しさん
2010/05/11(火) 10:22:23商品一覧のようなシートで、読めない列には金額が入っています。
他の列にも同じような値が入っているのですが、一部の列だけ読めないんです。
やはりこれだけの情報では厳しいでしょうか?
0883デフォルトの名無しさん
2010/05/11(火) 10:26:28個人情報が残らないようにしてソースの一部とともに公開すれば親切な誰かが見てくれるかもしれんよ
0884デフォルトの名無しさん
2010/05/11(火) 10:35:270885デフォルトの名無しさん
2010/05/11(火) 10:59:30>>884さんの仰るとおりIMEX=1を追加したところ
動作しました。
C#に全然関係ない質問しちゃって失礼しました。
0886デフォルトの名無しさん
2010/05/11(火) 11:09:52いつもソース要求しかしないアホ丸出し
0887デフォルトの名無しさん
2010/05/11(火) 11:13:010888デフォルトの名無しさん
2010/05/11(火) 11:20:25予想が当たったけど、データがなければ分からんのだから、指摘変だよ。
0889デフォルトの名無しさん
2010/05/11(火) 11:38:01IMEX=1
が無かったは明白だったわけだから解決は早かったかもしれんの
0890デフォルトの名無しさん
2010/05/11(火) 15:56:07プロジェクトプロパティにビルド構成が表示されるように
なったんですが、2008と同じようにする方法はありますか?
2010の新規プロジェクトを作ると2008と同じになるようですが・・。
0891デフォルトの名無しさん
2010/05/11(火) 19:54:46だと変換後に2008と同じような表示にならないようでした。
(テキストエディタでslnとcsprojのAnyCPUをx86に書き換えて確認)
書き忘れましたが環境はC# 2008 Express(一度削除)→C# 2010 Expressです
2010ExpressだとAnyCPUは推奨されないーとか、AnyCPUのときは手動で
ビルド構成の切り替えが必要ーとか、何か関連がありそうな事があれば
教えていただきたい。
0892デフォルトの名無しさん
2010/05/11(火) 21:47:27メニューの「ツール」ー「設定」に基本設定と上級者設定があるからそれで切り替える。
変換元が基本設定でカバーできない範囲だったら上級者設定になるんじゃねーか?
その他の微調整はカスタマイズ、オプションで。
0893デフォルトの名無しさん
2010/05/11(火) 22:02:23したいのですが、何かレジストリとかで設定できないでしょうか?
保存オプションの詳細設定でいちいち変更するのが面倒になりました。
UTF-8でいいじゃないかという意見もあるでしょうが、UTF-8 をサポートしない
ツールにソースをコピーペーストすると文字が化けるので。
例) かちゅ〜しゃ
/// <summary>
/// 繝�せ繝
/// </summary>
0894デフォルトの名無しさん
2010/05/11(火) 22:11:27多分無いんじゃないかな
0895デフォルトの名無しさん
2010/05/11(火) 22:18:080896デフォルトの名無しさん
2010/05/11(火) 22:26:340897デフォルトの名無しさん
2010/05/11(火) 22:30:15エディタで開けば読めると思うが、コピペだと文字化けする、
ということか。
0898デフォルトの名無しさん
2010/05/11(火) 22:34:140899デフォルトの名無しさん
2010/05/11(火) 22:44:03しかしCF_TEXTにUTF-8とか止めて欲しいもんだ
0900デフォルトの名無しさん
2010/05/11(火) 22:45:280901デフォルトの名無しさん
2010/05/11(火) 22:48:490902デフォルトの名無しさん
2010/05/11(火) 22:57:29変な文字コードのクリップボードはxyzzyでクリップボードエンコーディングを指定して貼付けがいいよ。
xyzzyは貼付けの文字コード自動判別もできると楽なんだけどなぁ。
0903デフォルトの名無しさん
2010/05/11(火) 23:01:330904デフォルトの名無しさん
2010/05/11(火) 23:07:10そんな問題に対応するクリップボード拡張ツールがあってもおかしくないな、
と思って検索したら、ベクターにこんなのあったよ。
http://www.vector.co.jp/soft/win95/util/se285480.html
使えるかどうかは確認してない。
0905デフォルトの名無しさん
2010/05/11(火) 23:59:26/// テスト
/// </summary>
うん、Windows7で動作。
オプションでShiftJISに変換するのとどちらが便利か比べてみる。
ありがとう。
0906デフォルトの名無しさん
2010/05/12(水) 08:11:27C#の言語仕様や文法については他の言語を知っているので詳しく書いてなくてもいいのですが。
特に、GUIコンポーネントの継承、VSS、外部参照方法など
エンタープライズ向けの操作方法が乗ってるのがありましたら教えてください。
0907デフォルトの名無しさん
2010/05/12(水) 08:20:310908デフォルトの名無しさん
2010/05/12(水) 12:06:03ありがとう。色々いじってみました。
2010ってデフォルトがAny CPUからx86に変わったんですね。
とりあえずは32ビットwinだとx86じゃないと必ず表示されるという結論
に達しました。
これに関連してか、Any CPUだと「プロジェクトおよびソリューション」
の「ビルド構成の詳細を表示」をOFFにしても「ソリューションのビルド」
でリリース構成としてビルドされないっぽい事がわかりました。
また何か情報あったら教えてください
ありがとうございました。
0909デフォルトの名無しさん
2010/05/12(水) 12:22:26AnyCPUで作っちゃうといろいろ問題が起きるから2010では
デフォルトをx86つまり32bitにしておくことになったはず
この辺はAnyCPU vs2010とかググるとでてくるよ
まあこちらで経験した中ではブラウザコアを使った件はもろこれにあたったな
AnyCPUでブラウザコアを使うアプリ組むと64bitOS上だと64bitのIEが呼び出され
Flashまわりも64bitの物を要求するらしいんだけどないのでエラーになるとか
まあそれ以外にもいろいろあるようだけど
radikoのアプリ書いたときもろこれになった
そういう問題があるので2010ではデフォルトをx86にしてWOW64を当てにして
動かすようにしたとか
0910デフォルトの名無しさん
2010/05/12(水) 12:28:57あれから開発は進んだ?
0911デフォルトの名無しさん
2010/05/12(水) 12:30:02誰と勘違いしてるのか知らないけどradiko関連は最初に作った以上はやらないよw
0912デフォルトの名無しさん
2010/05/12(水) 13:43:14コーディングしてデバッグ開始して外部DLLの初期の時にもう落ちるからねえ
0913デフォルトの名無しさん
2010/05/12(水) 18:38:59亀だが、係争に発展した挙句SUNが負けたような
0914デフォルトの名無しさん
2010/05/12(水) 18:40:53.netとかいっても内部はネイティブDLLなんかの単なるラッパーだったりするからねえ
0915デフォルトの名無しさん
2010/05/12(水) 19:52:30VSC#2008です。
int.Parseに続くカッコ内に2バイト文字の数字を入れると、挙動がおかしいのですが
デバッグ付実行でエラーでず、素通りしてしまいます。
2バイト文字の数字をint型にするには、どういった方法がよいでしょうか。
0916デフォルトの名無しさん
2010/05/12(水) 20:08:30Parseする前にワンクッション、全角数字を半角数字に置換するようにすればいい。
0917デフォルトの名無しさん
2010/05/12(水) 20:11:080918デフォルトの名無しさん
2010/05/12(水) 20:11:380919デフォルトの名無しさん
2010/05/12(水) 20:19:12>デバッグ付実行でエラーでず、素通りしてしまいます。
の部分が変だな。どんなコードかいてるの?
0920915
2010/05/13(木) 12:34:06半濁音のピは、ヒと゜に分解されるんですね・・・2文字になるのか・・・orz..
0921デフォルトの名無しさん
2010/05/13(木) 12:40:22視認性も確保できない
*作られた当時の話
0922デフォルトの名無しさん
2010/05/13(木) 12:40:420923915
2010/05/13(木) 12:48:42ファイル名から数字をChar.IsDigitを駆使して抜き出してから
strConvしたらうまくいきました・・。
便乗質問ですが、
int.Parseで変換しようとしている文字列が表現する数字の桁数が相当多くて、
intに入りきらない場合ってあるじゃないですか。
でね、そんなケースを実験してみたら、
return int.Parse(Microsoft.VisualBasic.Strings.StrConv(str.Substring(startindex, finalindex - startindex + 1), Microsoft.VisualBasic.VbStrConv.Narrow, 0));
デバッグ付実行なのに、何らエラー(バグったり凍ったりダイアログが勝手に出たり)でずに
素通りして、何食わぬ顔でシステムアイドル状態に戻るんですよね。
うーん。うまくいってんのかいってないのかわかんねーと悩んでいます。
0924915
2010/05/13(木) 12:51:02これを
OverflowException
s が MinValue 未満の数値か、MaxValue より大きい数値を表しています。
というんですね・・・。
try catch finallyで囲って強制的に例外を吸い上げる(何もしないとスルーしやがるので)しか
ないのでしょうかね・・・ORZ
http://msdn.microsoft.com/ja-jp/library/b3h1hf19%28VS.80%29.aspx
0925デフォルトの名無しさん
2010/05/13(木) 12:53:090926915
2010/05/13(木) 12:53:53わかった!INT.PARSEって明示的に例外処理を用意してやんないと
スルーするんですね?ってことであってますでしょうか。
で、厄介なのはスルー後、何事もなかったかのようにシステムアイドルに
戻るっていうこと。
何食わぬ顔で実行中のFOREACHから抜けだすし、それが記述されてるメソッドからも
抜け出す・・・。
0927915
2010/05/13(木) 12:54:42private void MainForm_DragDrop(object sender, DragEventArgs e)
内でやっています。
(MAINFORMはFORM1のことです)
0928デフォルトの名無しさん
2010/05/13(木) 13:02:35.NETの例外はHRESULTに変換されてCOMの呼び出し元に返値として渡されるので
例外は外部に通知されない
0929デフォルトの名無しさん
2010/05/13(木) 13:35:36まじでつか・・・ORZ
どうすりゃいいの変になりそう(byビース、ZEROより)
0930デフォルトの名無しさん
2010/05/13(木) 13:51:48多倍長ライブラリでInt範囲にあるかチェック→変換
もしくは
文字数カウント→Decimal変換→Int範囲にあるかチェック→変換
0931デフォルトの名無しさん
2010/05/13(木) 14:02:070932デフォルトの名無しさん
2010/05/13(木) 14:03:35TryParse
0933デフォルトの名無しさん
2010/05/13(木) 14:06:390934915
2010/05/13(木) 14:20:13ですね・・・クビ吊ってきます・・・ORZ
0935デフォルトの名無しさん
2010/05/13(木) 14:32:320936デフォルトの名無しさん
2010/05/13(木) 15:29:060937デフォルトの名無しさん
2010/05/13(木) 15:31:15幾ら何でもlongを超えるような桁数扱う訳じゃないだろ
あ、先に言っとくがlong.TryParse()だからな?
intからキャストするとかマヌケなことはナシだぜ
0938915
2010/05/13(木) 16:06:38例えば20100513で8桁。
更に時刻も入っていれば、
201005131606で12桁。
ファイル名から数字を抽出する作業でインチージャを使うのは
その時点ですでに無謀ですね・・・おrz
0939デフォルトの名無しさん
2010/05/13(木) 16:09:11結局何がしたいの?
無理して数値型を最初の器にするからはまるんじゃないの?
0940デフォルトの名無しさん
2010/05/13(木) 16:09:190941デフォルトの名無しさん
2010/05/13(木) 16:19:580942915
2010/05/13(木) 16:26:38加工したいファイルをアプリにDDする。
DDされたファイルのファイル名を解析する。
ファイル名は、どのような形式か予測できない。
ファイル名は、おそらく少なくとも1文字の0でない数字が入っているものと想像する。
ファイル名の文字列のうち、頭から探っていって最初に0でない数字と出くわしたら、
そこから、数字の連続が途切れるまでシークし、
少なくとも1文字以上の数字列を抜き出す。
ということをしているんです。
抜き出した数字列をとりあえずイントにしていた、というだったんです。
シクシク・・・
0943デフォルトの名無しさん
2010/05/13(木) 16:46:58見た目難解とかの言い訳は聞かん
0944デフォルトの名無しさん
2010/05/13(木) 16:47:390945デフォルトの名無しさん
2010/05/13(木) 16:49:390946デフォルトの名無しさん
2010/05/13(木) 16:49:57難解かね?
最悪わからなければ正規表現スレで書いてもらえばいいだけだし
,netの正規表現はperl5互換だったのでその旨だけ書いておけば
人がいれば書いてくれるよ
0947915
2010/05/13(木) 16:53:470948デフォルトの名無しさん
2010/05/13(木) 16:56:10だな
とにかく>>942みたいなことをやりたいなら正規表現一択
そっから数値型に落としたいならVBのStrConv()をC#で使えばいい
0949915
2010/05/13(木) 16:57:59(ノД`)シクシク
0950デフォルトの名無しさん
2010/05/13(木) 16:58:18>例えば20100513で8桁。
>更に時刻も入っていれば、
>201005131606で12桁。
これをどうintの範囲に収めるか
ルールがないとねえ・・・
0951デフォルトの名無しさん
2010/05/13(木) 17:00:302147483647
0952デフォルトの名無しさん
2010/05/13(木) 17:07:23いや日時って事前に解ってればDateTime型にするだろJK
例え日時と連番が混在してたとしても、正規表現で一工夫すればある程度分離可能
0953デフォルトの名無しさん
2010/05/13(木) 17:09:32いやいや
事前にわかってない物をルール決めて
intの範囲に落とし込むんでしょ?
そのルールというか仕様を決めないとどうしようもないって話・・・
0954915
2010/05/13(木) 17:17:34諸先輩方からの辛口批判を希望します。
0955デフォルトの名無しさん
2010/05/13(木) 17:21:28意味じゃなくて意図が不明
まず仕様をはっきりさせるのが先だ
0956デフォルトの名無しさん
2010/05/13(木) 17:21:55本人だったのか
使い方わからんし、いろいろポップアップするしでスルーしてたわw
できれば>>4か>>7のコード貼るサイト使ってくれ
0957デフォルトの名無しさん
2010/05/13(木) 17:22:520958デフォルトの名無しさん
2010/05/13(木) 19:25:45new Regex("(\D*?(\d*?)\D*?)", RegexOptions.IgnoreCase)
要するにこうか?
未検証だからこのまま動くかどうかは知らん
0959958
2010/05/13(木) 19:27:11new Regex("(\D*?(\d*?)\D*?)*", RegexOptions.IgnoreCase)
こうだな
0960デフォルトの名無しさん
2010/05/13(木) 21:33:49915が説明すらまともに出来ないクズなのか、俺の頭が悪いのか
0961デフォルトの名無しさん
2010/05/13(木) 23:05:51数字が含まれていない可能性もあると書いているのに、1文字以上の数字列を返すところ
後者は"0"返せばいいのかな。
0962デフォルトの名無しさん
2010/05/13(木) 23:07:270963デフォルトの名無しさん
2010/05/14(金) 01:45:280964デフォルトの名無しさん
2010/05/14(金) 03:13:16早くしろ
0965デフォルトの名無しさん
2010/05/14(金) 08:40:37何に使用するかは知らないけど。
0966915
2010/05/14(金) 09:27:23そのとおりでつ!
ただし、数字文字列の先頭は0であってはならない。
抽出した数字文字列は1バイト文字に変換しなければならない。
でっつ!
0967デフォルトの名無しさん
2010/05/14(金) 09:54:03でも、その代わり全角か半角か混在している場合はどちらかに統一するような処理をしたいけれどもでつ。
0968デフォルトの名無しさん
2010/05/14(金) 10:09:350969デフォルトの名無しさん
2010/05/14(金) 12:26:360970デフォルトの名無しさん
2010/05/14(金) 13:28:59>>959
0971デフォルトの名無しさん
2010/05/14(金) 14:35:15間違っています。
以上。
はい次の方。
0972967
2010/05/14(金) 15:16:49諸先輩方、ありがとうございました。
0973デフォルトの名無しさん
2010/05/14(金) 15:31:590974デフォルトの名無しさん
2010/05/14(金) 17:45:060975デフォルトの名無しさん
2010/05/14(金) 19:43:330976デフォルトの名無しさん
2010/05/15(土) 13:54:240977デフォルトの名無しさん
2010/05/15(土) 20:23:26それぞれのコマンドに推奨の最低タイムアウト値が存在するのですが、
こういうのは enum で定義した方がいいんでしょうか?
それとも const int の方が良いのでしょうか?
それぞれのコマンド送信メソッドではタイムアウト値は int で受けつける仕様にする予定です。
(最低タイムアウト値 +- αの値を指定する必要があるため)
0978デフォルトの名無しさん
2010/05/15(土) 20:25:110979デフォルトの名無しさん
2010/05/15(土) 20:27:42constはできるだけ使わない(値そのものに意味があるenumも同じ)
0980977
2010/05/15(土) 21:25:43enum → 意味のある数字への変換メソッド等用意するのが正道ということでしょうか?
機械制御のコマンドも数値で表現されているのですが、想定していない数字を受けつけないよう
enum で型を作ってメソッドにわたすようにしていたのですが、
これは適当なクラスを作って定数を持たせるようにする方がいいのかな?
例)
class ControlCode {
public int Value { get; private set }
private ControlCode(int value) { Value = value; }
public readonly ControlCode Reset = new ControlCode(101);
.....
}
... public void SendControlCode(ControlCode code, int timeout);
0981デフォルトの名無しさん
2010/05/15(土) 22:08:30絶対にその値を変えることが無いと言い切れるならenumでもいいと思うけどな
値をラップする型を作る方法をとるのであればクラスじゃなくて構造体使うのが普通
==と!=とGetHashCodeは必ず実装すること
WPFなんかでは列挙体みたいな構造体は確かに多用されてる
0982デフォルトの名無しさん
2010/05/16(日) 09:07:14MSDN を再度見返してみましたが、後から変更がかかりそうな定数なんかは enum にするのは
よろしくないんであって、意味のある数字を持たせてはいけないってわけではなさそうですね。
今後の拡張や定数自体にプロパティを持たせる必要があるか等考えて再検討してみます。
ありがとうございました。
0983デフォルトの名無しさん
2010/05/16(日) 09:51:40異なるコマンドでタイムアウト値が同じ状況は十分ありえそうだが。
0984デフォルトの名無しさん
2010/05/16(日) 11:53:12できるよ。
0985デフォルトの名無しさん
2010/05/16(日) 14:09:280986デフォルトの名無しさん
2010/05/16(日) 14:13:000987デフォルトの名無しさん
2010/05/16(日) 14:17:44んな馬鹿なとおもったけど>>985のレスでできるのだなぁと思い、そういやC#のenumはかなり変更されたんだったなと思い出した
0988デフォルトの名無しさん
2010/05/16(日) 14:25:01感謝しろ
0989デフォルトの名無しさん
2010/05/16(日) 14:36:10public enum eSwich {
VALUE1 = 1,
VALUE2 = 1
}
0990デフォルトの名無しさん
2010/05/16(日) 14:37:130991デフォルトの名無しさん
2010/05/16(日) 15:02:47enum Hoge { A, B, Default = A }
ついでに、別環境(Compactなど)で値が異なるとか
enum Hoge { A, B, Default = B }
>>982
・要素を追加/削除しない
・要素の値を変更しない
・利用者が値を意識する必要が無い
を守れないならenumは不適切
0992デフォルトの名無しさん
2010/05/16(日) 17:32:26ふーん
0993デフォルトの名無しさん
2010/05/16(日) 20:21:10ものすごい遅そうなんだけど
0994デフォルトの名無しさん
2010/05/16(日) 20:45:440995デフォルトの名無しさん
2010/05/16(日) 20:51:43その型専用に最適化されたバージョンのHasFlagを生成するとかできなかったのかな
ボックス化+リフレクションだからビット演算に比べると途方もなく巨大なコストだよな
0996デフォルトの名無しさん
2010/05/16(日) 20:58:110997デフォルトの名無しさん
2010/05/16(日) 21:10:160998デフォルトの名無しさん
2010/05/16(日) 21:18:05return ((dynamic)value & flag) == flag;
}
こうしてみたらEnum.HasFlagの1/10くらいの処理時間になった
それでもビットマスクの数百倍だけどdynamic結構速いね
0999デフォルトの名無しさん
2010/05/16(日) 21:18:231000デフォルトの名無しさん
2010/05/16(日) 21:19:4310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。