ふらっとC#,C♯,C#(初心者用) Part87
スリープから復帰は
#define TASK_FLAG_RESTART_ON_IDLE_RESUME (0x800)
でいいでしょうか?
TASK_FLAG_SYSTEM_REQUIRED
でした。
14 :
デフォルトの名無しさん:2012/03/05(月) 14:29:24.18
VisualStudio 2005 の C#で
他のアプリでスペースキーを押したタイミングで時間計測を始めたいです。
http://hongliang.seesaa.net/article/7539988.html ここにたどりついたものの クラスの使い方がわからず
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1080106570 ここの
ソリューションエクスプローラのソリューションを右クリックして追加→新しいプロジェクトで
クラスライブラリを作成。
そちらに上のサイトでDLしたクラスを追加してください。
元々のプロジェクトの参照設定を右クリック→参照の追加→プロジェクトで
追加したプロジェクトを選択してください。
一度ビルドすると
※ KeyboardHookって名前のコントロールがツールボックスに追加されます。
Formに張り付けてKeyboardHookedイベントに処理を書けばいいと思います。
をやってみたのですが、
ビルドが通らなかったので 追加したクラスライブラリに System.Windows.Forms を追加、
※のところで、ツールボックスに KeyboardHook が表示されません。
なにか設定とか抜けてるのだと思うのですがエスパーさんお願いします。
エスパーに頼む前にまずエラー内容ぐらい書けよ
16 :
14:2012/03/05(月) 15:03:14.99
ビルドのエラーは
CS0246: 型または名前空間名 'Windows' は名前空間 'System' に存在しません。アセンブリ参照が不足しています。
CS0246: 型または名前空間名 'Keys' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
で
System.Windows.Forms を追加したところ ビルドは通りました。
が
ツールボックスに KeyboardHook が表示されません。 (←今困ってるのはココです)
KeyboardHookedイベントにどんな処理を書けばいいのか。も困りそうな予感がしていますが。
ツールボックス右クリック→アイテムの選択
に入ってるんじゃね
18 :
14:2012/03/05(月) 15:18:40.53
ツールボックス
+ すべてのWindowsフォーム
+ コモンコントロール
+ コンテナ
+ メニューとツールバー
+ データ
+ コンポーネント
+ 印刷
+ ダイヤログ
+ 全般
のいずれにも KeyboardHook は、なさそうです。
ツールバー右クリックで アイテムの選択で表示される
.NET Frameworkコンポーネント タグ
COMコンポーネント タグ
のいずれにも KeyboardHook は、なさそうです。
C#ディレクトリにアクセス権が付与されているか調べる方法ってありますか?
プロパティを使わずにGetXXX/SetXXX関数を実装したら駄目ですか?
2,3個いっぺんにセットしたいのですがうまく書けません
>>18 なんで2005なの?
うちでも2005でのコンポーネントは出たりでなかったりでよくわからん
2008で同じことやると一発で出るんだけどね。
>>19 Directory.GetAccessControl
>>20 一括で初期化する関数を実装するのは別におかしくないけど
まとめて取得したりするならコレクションかクラスにするのを検討しては?
タスクスケジューラに登録するにはパスワードがいるのかー
でもそれはそうですよね
26 :
20:2012/03/05(月) 16:32:12.72
値をセットするのに2通り(プロパティとSet関数)の方法があるのはちょっと...
他の関数、クラスとの整合性もあるし、どうすればいいのかと
今考えているのは
1. 原則プロパティで全部個別にセットする
2. データを保持するだけのクラスの関数はSet/Get関数を作る(複雑だからプロパティでは無理)
3. どうしても1.で数が多くなりすぎるクラスは構造体を定義する(超例外)
というルールを考えています。どうですかね???
一般化なんか無理なので好きにすればとしか言えないが
3がなんで超例外なのか分からない
あと大抵は構造体じゃなくてクラスで十分
structキーワードは廃止してvalueキーワード辺りに置き換えるべきだったよなー
C/C++の頃の印象を引きずってしまう
>複雑だからプロパティでは無理
これはどういったのを想定してんの?
>値をセットするのに2通り(プロパティとSet関数)の方法があるのはちょっと...
非対称アクセサ知らなくて悩んでるの?
public int Hoge { get; private set; }
こんな感じで外からはgetしかできないプロパティ定義できるけど
別にプロパティとメソッドがあっても気にスンナ
31 :
922:2012/03/05(月) 19:34:03.17
XML-RPC.NETとかいうのをビルドしたいんだけどプロジェクト開くとVisual Strudio変換ウィザードっていうのが出て開けない
変換もできない
32 :
31:2012/03/05(月) 19:35:09.78
使ってるのはVisual C#2010
だったら新しいプロジェクト作ってソースファイル全部コピーしろ
新しいの作ってコピペの時はnamespaceに注意しろよ
35 :
デフォルトの名無しさん:2012/03/06(火) 00:43:35.74
ASP.NET MVCのセッション情報をMySQLに格納するにはどうすればいいのでしょうか?
Amazon EC2で動かそうと思ってるのですが。
拡張子を大文字小文字の区別なく比較するのに
if (Path.GetExtension(hoge).ToUpper() == ".hage".ToUpper())
これで問題ないでしょうか?
なんで2つとも
変換してるんだ?
if (Path.GetExtension(hoge).ToUpper() == ".HOGE")
しかしC#凄いな、一回この蜜を味わうと
他の言語なんか使いたくなくなるな・・・
非Win環境ではJavaしか選択肢が無いのが憂鬱だわ
>>35 MVCはしらんが、普通のASP.NETと同じなら、セッション状態ストアプロパイダーを自作すればいける
つか、さがせば誰かMySQL用とか作ってるんじゃね
Amazon EC2でカスタムプロパイダが使えるかどうかはしらんが
if( String.Equals( Path.GetExtension( hoge ), ".hage", StringComparison.OrdinalIgnoreCase ) )
プロパティでsetだけってできないの?
できるけどガイドライン違反かな
private の get を実装するべきなんだっけ?
例えばset{}で中身を書いちゃうと、
コンパイルエラーでgetも書けって出ない?
やってみりゃいいじゃねーかよ
わかった、やってみる
.net3.5です
ActiveSync/WMDCで接続されたモバイルデバイスの特定フォルダからファイルをPCにコピーしたいのですが
どのようにすればいいでしょうか
例外について深く解説しているサイトとかないかな?
3行の正常ルートに対して、20行の例外ルートを書くとかコード汚しにもほどがある
極力例外は上位モジュールへ投げるだけにしているけど、いつかはキャッチしないといけないし
なんかスマートな方法ないかな?そもそもこんな汚い例外機構なんてC#10.0くらいになったら消滅している気がする
エラーが発生しない記述をしろ
例外は例外として使うといいよね
52 :
デフォルトの名無しさん:2012/03/06(火) 18:15:29.49
>>49 例外処理が本処理より多いのが汚いと思うのが間違い。
世の中に不確実性がある以上例外処理の種は尽きまじ。
ふーん
例外処理が汚いのは君が汚いコードを書いてるから
例外処理って言うけど、プログラムとしてそう言うだけの話で、
それも必要な本処理。
CPUやメモリやディスクやプログラムを常時全部監視してユーザーのやりたい事を予測、全自動で修正して
エラー回避してくれるようなプログラムを作り常駐させるかスーパー人間を横に立たせるといいよ
例外処理は激遅。避けるのが基本。
>>48 Win32API使わないとできないんじゃなかったっけ?
CF忘れたわ
>>60 そういう冗談はやめれw
初心者が信じたらどうすんだよ。
catchが遅いのは事実では
確実に発生するような処理フローに使うなってだけ
例外の発生をアプリケーション側だけで防ぐことはできないんだから、
重かろうが使わなきゃしょうがない。
デタラメに使っちゃいけないのは、なにも例外処理に限った話ではない。
例外で遅くなるような状況なんてそもそも例外的状況じゃないんだから例外使うのがまちがい
遅いから避けるわけではない
初期の.netはやたらに例外返すメソッドがてんこ盛りで
遅すぎて話しにならなかったんですよ。
2.0で随分改善されましたが。
上手く設計されたAPIは、通常の制御フローに例外を使用することを、クライアントに強要してはなりませ
TryParseとか。
Javaは未だにNumberFormatException使ってるね
しかも非チェック例外
そんな馬鹿げた言語は知らん
くだらない
上級者ぶって初心者にあれこれ言うなよ
必要な時に必要な物をつかえ
例外の効用がわからないやつは初心者以下
何か言ったフウで何も言っていない典型みたいなレスされてもね
そんなどうでもいいアドバイスは誰も真に受けないので初心者ごとループする
>>74 何人もそう言ってるだろ
わざわざ言い直すなクズ
よっぽど○○の琴線に触れたんだな
ご愁傷様www
言葉を借りるだけの人生
…
一人芝居楽しい?
ListviewのDetailsでsubitemのtextに何も入っていないかを判別するにはどのようにすれば良いでしょうか?
テキストに何も入っていない状態でSubItems[1].Textを呼び出すと何も無いよとエラーを吐かれます
tryが使えない場所なので他の方法があれば教えて下さい
subitems.countとかないの?
>>83 Countあるんですねorz 勉強になりました
ありがとうございます。
JAVAか。。。懐かしいな
Javaって何であんなにクソなんだろうな
C#が澪なら、Javaは紬だよ
87 :
デフォルトの名無しさん:2012/03/06(火) 23:15:15.44
日本語翻訳してみたらどうもバグぽいけど
MSの中の人が
「確認しますた!」->修正しますた?->まだ残ってるんですけど・・・->「確認しますた!」
で最後が2010年ごろなので解決策に書いてあるように.net4使うな!ってことじゃないの?
90 :
デフォルトの名無しさん:2012/03/06(火) 23:43:31.93
>>88 static void Main(string[] args)
{
ManualResetEvent cancel = new ManualResetEvent(false);
Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs eventArgs)
{
Console.WriteLine("^C");
cancel.Set();
if (eventArgs.SpecialKey != ConsoleSpecialKey.ControlBreak)
eventArgs.Cancel = true;
};
Console.WriteLine("Waiting; press Ctrl+C to quit");
// .NET4.0だと死ぬ
// .NET3.5だと問題なし
cancel.WaitOne();
Console.WriteLine("Stopped");
}
91 :
デフォルトの名無しさん:2012/03/06(火) 23:46:42.83
正規表現でURLのファイル名を検索する方法教えろ
perl5互換なので本スレにいけ
web関連のところにあったはず
93 :
デフォルトの名無しさん:2012/03/06(火) 23:48:03.42
C#4.0の構文になれてると旧C#使うくらいなら他言語に移った方がマシなくらい後戻り不可能だよな
94 :
デフォルトの名無しさん:2012/03/06(火) 23:51:15.22
C#5.0でLengthとCountを統一する予定はないですか?
配列はLength
リストはCount
この先統一は無いでしょう
96 :
デフォルトの名無しさん:2012/03/06(火) 23:55:02.35
>>87>>88>>89>>90 Windows Serviceでは開発・デバッグが捗らないからMono + Mono.UnixSignalで作り直してLinuxで動かす
配列もIList<T>を…
いやなんでもないです
>>97 表向きな話だよ
内部的に何を使って管理してるかとかは知らん
>>52 その先をもうちょっと見てみたけど完全に放置プレイなのかな?
SP1でもバグ残ってるよ!を放置して終わってるからなw
逆じゃね
LengthがメインでIList<T>.Countはreturn Length相当だろきっと
>>100 知らん
中身見てないし
気になるならソース見てみればいい
配列が使われてそうかリストが使われてそうかで分ければいいし
いままでそうだったんだから統一する必要ないよ
怠け者のために変えなくていい
いままで.net2.0使い続けてたんだけど、いい機会があったから3とか4の勉強はじめた。
…新規で覚えること多いな。すごいんだなおまいら。
そうか?LINQと構文木とdynamicくらいしか増えてなくね?
使わない人にとってはどうでもいい追加だな
基本的に2.0である程度できあがってる
>>103 俺もそう思ってたけど、WPFとかXAMLとかに手をだしたんだ。
ああWPFも無かったか
当たり前になりすぎて忘れていた
WPFはまた新たな機能だからな
WinForm周りは進化してないし
LINQとかそういうのは中の話だしな
配列がIList<T>に化けるのってどう実装されてるんだろう
vtable弄ってんのかな
>>108 MSDNには実行時に配列に提供されるって書いてるけど、どう実装されてるかは分からんねぇ…
110 :
デフォルトの名無しさん:2012/03/07(水) 01:04:48.27
(´・ω・`)
class Person { public string Name { get; set; } 中略 }
class Hoge {
private Person p;
public Person Person { get { return p; } }
// 以降コンストラクタなど省略
}
こんなかんじでHogeに、メンバとして持ってるPersonを返すプロパティがあるとします。
このプロパティはHogeの使用側が情報を読み取るためだけに使いたいのですが、
Hoge h = new Hoge();
h.Person.Name = "Unko";
とやってしまえば外から容易に書き換えられてしまいます。
読み取り専用にするにはどうしたらいいでしょうか。
C++ならconst参照を返すという場面なのですが。
面倒くさい手を加えずに読み取り専用にする方法はない
面倒くさい方法は継承でやる
1.Personもイミュータブルにする
2.コピーして返す(防御的コピー)
3.読み取り専用のインターフェイスを使う
4.構造体にする
5.出力引数(GetPerson(outPerson))
いろいろあるけどできれば1か2
これがかの有名なc#の言語仕様バグである。
>>111 ぱーそんのsetをprotected set;にするとかではだめなの?
参照は変更されないからいいじゃん
Ms-PLでライセンスされたdllを参照してexeと同フォルダ内において配布したいんだけど
ググっても中途半端に濁した説明ばかりで具体的に何をどうしろってのがわからない
"被許諾者は、著作権、特許権、商標、またはその他の形式の出所を コード内に常に示しておく必要があります。"
これってdllに記述があれば自分のコードのほうには手を加えなくてもおk?
2回目だな
次は殺すよ
手軽さなら4だろうな
構造体ゆえのデメリットも付いてくるけど
英語アレルギーにも困ったもんだよな
結局誰一人としてまともに説明できないのね
素直にわかりませんっていえよ
それで構わないよ
ちゃんと自分で辞書引いて解釈してね
馬鹿だな、こういうときは嘘教えてやりゃいいんだよ。
「ソースコードとバイナリの全てに著作権表示をコピーしなければならない」とか。
>>117 駄目
配布予定の全てのソースコードにMs-PLでライセンスされたソフトウェアの著作権表示を含める必要がある
常に示さないといけないんだからコンパイルしたら最適化で消えるような形で含めちゃ駄目だぞ
リソースにぶっこむなりなんなりしろ
いつのまにか Hoge_TemporaryKey.pfx ってファイルが作られていたんですが、これは何のファイルですか?
Personal inFormation eXchangeキーペアファイルって書いてあるが
ASP.NETでもやってる?
131 :
デフォルトの名無しさん:2012/03/07(水) 08:00:29.26
132 :
デフォルトの名無しさん:2012/03/07(水) 08:03:54.22
133 :
デフォルトの名無しさん:2012/03/07(水) 08:04:15.57
134 :
デフォルトの名無しさん:2012/03/07(水) 08:04:43.23
自分の体にも著作権表示を刺青で追加しなければならない
136 :
デフォルトの名無しさん:2012/03/07(水) 09:41:14.63
WebRequestのKeepAliveって何時まで有効なのでしょうか?
プロセス内で共有なのでしょうか?
なんか 666 って書いてあるんだけど・・・
なんか556って書いてあるんだけど……
よく見たら551でした
141 :
デフォルトの名無しさん:2012/03/07(水) 10:45:39.82
551って美味しいよね
お前らパーミッションだな
>94
Lengthは配列の長さ、Countは有る条件に合う物の数、なので別の物。
と全角で書かれても説得力ないしな
確かにLengthとCountは別の概念なんだろうが、
使う方からしたらそんな違いはどうでもいい。
線形リストでないもの(辞書配列や集合)にLengthは不自然だから
一般的な数ってことでICollection.Countなんだろ
無駄だからやってないんだろうが別にIList<T>にはLengthがあってもいいはず
array.HowMany
list.HowMany
タイプしづらいなw
148 :
デフォルトの名無しさん:2012/03/07(水) 14:38:14.13
クリックイベントで〜という機能を実行する必要はあるか?
と聞いたところ、
【機能を実行する必要はあるが、クリックをトリガーにすることは不要】
といわれたのですが、
【クリックをトリガーにする】の意味がわかりません。
http://e-words.jp/w/E38388E383AAE382ACE383BC.html を読んだのですがいまいち理解できず・・・
私の解釈では、
クリックイベントを起こす必要はない
ということだと思うのですが、間違っていますか?
初歩的なことを質問してしまい、申し訳ありません・・・
普通に考えるとクリックイベント不要で、別の方法で実装しろと言ってるように思えるが
>クリックイベントで〜という機能を実行する必要はあるか?
〜の所を略されてるせいで本当にそうなのかエスパーじゃないと分からん。
150 :
デフォルトの名無しさん:2012/03/07(水) 14:43:54.68
>>149 すみません。
〜というのは簡単に言うと
ラベルの色を変えたりラベルの文字を変えたりすることです。
>普通に考えるとクリックイベント不要で、別の方法で実装しろと言ってるように思えるが
ということなのですね。
ありがとうございます。
データ読み込んだらとかonLoadでとかなんだろうけどタイミングは相手に聞いてみないことにはな
まあどうせ相手もこうだというのは決まってなく別に絶対クリックじゃなくてもいいくらいの考えなんだろうけどな
152 :
デフォルトの名無しさん:2012/03/07(水) 15:14:45.79
>>151 元々、ラベル自体のクリックイベントと別の場所で2箇所
ラベルの色を変えたりラベルの文字を変えたり
ってことをしていたので、クリックイベントでは行わず、
もう一方の方だけでよかったみたいです。
初歩的な質問に回答頂き、ありがとうございました。
Object[] objs;
でキャストしないで型を指定して取り出したいのですが
MyClass my = objs<MyClass>[i];
みたいな書き方ができません。助けて下さい
おとなしくキャストしろ。
それが嫌なら、
最初から MyClass[] 使うか、
LINQ で OfType<MyClass>() する。
助けてくださいってそれができないと死ぬのか?
死ぬわけではありませんが気持ち悪いです
配列にはbool,int,floatのスカラーか配列、もしくは自作クラスが入る予定です
取り出す時は型がわかっています
この状況でキャストしないでGenericsでかっこ良く書きたいです
若造にはキャストのかっこよさが分からないのか。
そもそも型があるという素晴らしい世界も理解してないのだろう?
void*の世界に比べたら天国だぜ。
結局ダウンキャストになるんだから、キャストしないと取れないだろう。
ODP.NETを使用してoracleと繋いでるんですけど
Oracleのバージョン毎にPG作らなきゃダメですか?
出来ればOracleのバージョンに依存しないようにしたいのですが…
jdbcなら依存しないよ
>>156 ダウンキャストが入る設計がまず怪しいかもしれないけども、
だから、かっこよく書きたかったら OfType<T>。
162 :
153:2012/03/07(水) 22:42:33.63
>>158 なら型情報を失わずに(Object型にアップキャストしないで)配列に保存しておく方法はないですか?
Objectに型が入り混じったデータ突っ込んでる時点で
かっこ良くもエレガントでもないと突っ込んでは駄目なんだろうな
たぶん美点の感覚が違うんだろうから
>>163 どう書けばfloatやintなどの値とその配列と自作クラスを
統一的に保存しておけるのか教えて下さい
ちなみに何でそんな状態になってるのか聞いても平気か?
あまりにセクシャルで書けないとか言うのなら深くは追求しないけど。
>>160 恥ずかしながら初めて聞きました
ちょっと調べてみます
Oracleバージョンが統一されていない時って
一般的にはどうやってプログラム作ってるんだろ
System.Data.OracleClientが使えれば良かったんだけどなぁ…
>>164 取り出すときにキャスト無しで書いた時点でちっとも統一的じゃないことに気づこうよ
169 :
153:2012/03/07(水) 22:51:57.54
>>166 仕様書にそう書いてあるから
とにかくほぼ何でも突っ込めてタイプセーフな保存と取り出しがしたい
何かいいアイデアはないでしょうか
型名とデータのペアをObjectに突っ込むとか
それじゃ見直しは効かないな
そして回答も
「ない」
で御仕舞いだ
別にis+キャストでもasでもタイプセーフは破られて無い気がする
ん?キャストしたくない理由ってInvalidCastExceptionが出るからとかそういう理由なの?
違うよな?
キャストが一番スマートなのに馬鹿だろ。
俺は as 使う派
as演算子もカッコイイぞ
参照型だと as した後に null チェックするのがいいんだけども、
値型には as 使えないのよね。
値型の場合は is + キャスト使わざるを得ない。
179 :
153:2012/03/07(水) 23:28:22.35
asはintやfloatには使えないでしょ
知ったかが...
もう助けてあげません。
いや助けてあげませんも何も
最初から助けられない患者
183 :
デフォルトの名無しさん:2012/03/07(水) 23:34:45.56
たぶん、単にコードの文字数を減らしたいだけ。
互換性のない型Aも型Bも型Cも入るけど、取り出すときはキャスト不要にしたい...は、
できるできないで言えばもちろんキャスト演算子を定義すれば可能だけど、質問者はその危険性に
気が付いてないんでしょ。
184 :
153:2012/03/07(水) 23:35:18.92
>>180 取り出すときには型がわかっている
だからキャストは不要な処理で行いたくない
ジェネリクスをうまく使って表現できないかと思ったが
どう頑張ってもうまく書けない
それでお前らの知恵を借りようとしたわけだが
バカ猿に聞くだけ無駄だった。もうこねーよバカ
方が分かってるのはお前が人間だからで
プログラム的にはアップキャストした時点で見ない振りしてるんだよ
>>179 全員がお前の質問に答えてると思ってるとか思い上がりすぎwwww
なんでそこでジェネリックが出てくるのか。よく分からん発想だね
文字数減らしたいなら命名を1文字〜2文字にして改行空白使うな
>>187 ジェネリックメソッドがT型を推論してくれるのを
見て妙な勘違いしたってパターンだろう
型が分かってなら、object使わずその型使え。
191 :
デフォルトの名無しさん:2012/03/07(水) 23:39:32.99
NICが複数枚ささっているPCで、TcpClientクラスで接続する際に使うNICをプログラム的に選べますか?
192 :
デフォルトの名無しさん:2012/03/07(水) 23:40:03.88
なんていうか拘るところがおかしいね
グダグダやってるうちに他のコードが書けるし
後でいい解決方法がでてくるかもしれないのにねw
なんでそこまで拘って止まってるんだろw
イベントを使うメリットはなんですか
ボタン.click += なんちゃらかんちゃら
とかかくのと
ボタンを継承しOnClickメソッドになんちゃらかんちゃら書くのは
どう違うのですか
NICは2層の話、TCPは4層の話。
適切に3層のルーティング設定してるなら、適切なNICにパケットが流れる。
>>193 その視点でメリットをあげるならマルチキャストデリゲートだということ
>>193 実装側が楽。
OnClick 相当のものを自動で作ってくれるのがイベント。
両方あるなら、利用側はどっち使ったって大差ない。
継承しなくて済む
198 :
デフォルトの名無しさん:2012/03/07(水) 23:48:02.80
>>194 自作した社内プロクシにWAN2回線繋いで負荷分散したいのですが、無理でしょうか?
そんなものまで俺流か…
>>198 コマンドプロンプトを開いてrouteと入れてみ
これが使いこなせれば無理じゃない
WANの構成がよく分からんが終点が2ポイントなら、
IPアドレスで振り分ければNICも分かれて配送される。
202 :
デフォルトの名無しさん:2012/03/08(木) 00:44:18.27
squidサーバーを2台用意してそれぞれにADSL回線接続(WAN出入口)
poundサーバーを1台用意してBackEndに上記squid2台を設定
クライアントはpoundサーバーのアドレスをプロクシとして設定。
で、一応動いたのですが、poundではアドオン的なことができないのと
サーバーを3台ではなく1台にしたい。
現行なんちゃって自作プロクシにpound的な機能を付けるだけでも
何とかなるかなとは思っているのですが、できればサーバーの台数を
減らせればと。
さらに回線も増やしたいので、そのたびにサーバー増設では保守が大変なので。
最近末尾を体言止めにする人が多いな
同じ人?
体言止めじゃないわ…
Hみたい
xxしたく
どう考えても設計と頭がおかしいヤツに
オマエらよく付き合ってやるなw
アプリ内部で通信の振り分けしなくても
OSレベルで通信先って切り替えできなかったっけ?
このアプリはこっち使うとか
208 :
デフォルトの名無しさん:2012/03/08(木) 01:02:17.50
あと仮想マシンも視野に入れろ
あれも確か物理NICを仮想マシンに割り当て可能だったはずだし
ただ3つ起動できるだけの環境がいるけどw
ファンクションというかメソッド? の変数の型ってありますか?
フォームから クラスaの関数bを呼ぶ
クラスaの関数bで スレッドcを行う
スレッドcの終了時に フォームの関数dを呼びたい
クラスaの関数bを呼ぶ際に関数dを渡したいです
よろしくお願いします
>>184 ObjectとTypeを保存するクラスを作って、それを配列にするってのじゃ駄目なのか?
それなら、元に戻すときに型を知っていれば明示的キャストをせずに取り出せるぞ?
>>210 あ、ごめん、自己レス
そんなクラス作らなくてもやりたいことが一発で出来るわ
でもお前の態度が気に入らないから教えてあげない
要するに
var hoge = new object[10];
var foo = 10;
var bar = "abc";
hoge[0] = foo;
hoge[1] = bar;
int n = hoge[0];
string s = hoge[1];
これが出来ればいいんだろ?出来るから頑張ってみそ
213 :
209:2012/03/08(木) 02:04:44.71
デリゲート
って言葉に辿り着きました。 とりあえず質問は取り下げてみます。
dynamicならなんでも入るしダウンキャストもいらないけど
215 :
デフォルトの名無しさん:2012/03/08(木) 02:05:48.45
つうかobjectの配列なんて.net1.1時代じゃ有るまいし・・・
>>213 ついでにラムダ式も一緒に検索すると正しいゴールへ辿り着くよ
デリゲートだけだと古い手法のゴールへ辿り着くおそれがある
>>213 継続渡しってやつだな
C#5.0では言語に組み込まれてデリゲートとか意識しなくてよくなるよ
C#はバージョンアップするたびに
古い手法が陳腐化するほど進化してくれて嬉しい限りですな
この調子でさっさとUIと例外をどうにかして欲しいわ、WPFですらロジックとデザインは分離しましょうって言っているのに
正常ルートと例外ルートを同一コード上に記述するとか狂気の沙汰にも程があります
俺は予言するよ
プログラミング言語は将来、正常処理と例外処理を分離するようになる
さらに未来の話しをすると、言語仕様にテスト工程の仕組みも吸収される、間違いなく
今のプログラミング言語ってのは結局、「物を作るだけ」でしょ?
でも現実の世の中では、コーディングのコスト1に対してテストのコストが10以上存在する
なのにコーディングは依然として「物を作るだけ」
いつの日か必ず「コーディング=デザイン+正常ロジック+例外ロジック+テスト」を構築するためのものに進化するよ、20年後くらいにはね
チラシの裏にでも買いてろ
>>191 TcpClientのコンストラクタでローカルエンドポイントは指定できる
class Bucket
{
pulbic DataType DataType{get;set;}
public int Int{get;set;}
public float Single{get;set;}
public Jisakukurasu Jisakukurasu{get;set;}
}
enum DataType
{
Int,
Single,
JisakuKurasu,
}
100年後
こういう機能がほしい
はい、組み上がりましたご主人さま
ここはこうして
はい、修正しましたご主人さま
自分で好きなようにやれ
二度とくるなw
TestDriven.Netがインストールできません
というかインストールが完了してもVisualStudioで右クリックしても「Run Test」が出てきません
どうなってるの?
機能が実現できないとかできるけど重すぎるってんなら悩むけど
書き方や見た目が気に入らないとかは心底どうでもいい 規則あるなら従えばいいだけだし
229 :
デフォルトの名無しさん:2012/03/08(木) 12:48:43.34
230 :
226:2012/03/08(木) 13:06:36.39
>>228 まじかよ、初めて聞いたぞ。俺の2時間を返せ
HPのどこにもExpressEditionが非対応とは書かれていないような?
実際動かないんだけど!!
>>229 あきらめた。スゲーわかりやすい。サンキュー
ToolStripMenuItemを継承してクラスを作り
そのオブジェクトをシリアライズで保存しようとしたのですが
ToolStripMenuItemがシリアライズできないというエラーが表示されてしまいます
保存する方法はありますか?
>>230 Expressはもともとプラグイン使えないよ
VSでは常識になってる
そのToolStripMenuItem継承クラスを作るメソッドと
それに渡すデータクラスを作って
そのデータクラスをシリアライズしたら?
234 :
デフォルトの名無しさん:2012/03/08(木) 15:13:48.74
仮想マシン上でvs評価版を入れる
あいてるHDD上に専用環境を作って評価版を入れる
ふーん
236 :
226:2012/03/08(木) 16:48:17.34
VisualStudio EEからF5でnunitを起動するのがうまくいかない
nunit.exe $(TargetPath)で起動してるんだが
MyProjectプロジェクトとTestProjectプロジェクトの2つがあった場合
$(TargetPath)が必ずテストのTestProjectの方でなく本体のMyProjectになってしまう
でnunitにテストコードがないって怒られる。
これどうやったらTestProjectの方のビルド物の名前を取得できますか?
>>233 ToolStripMenuItemを継承しないクラスBを作って保存
保存したものを復旧する際には
a.text = b.textとメンバーに値を入れていくことにしました
233さんの言うことも同じ事ですよね?
ありがとうございました
238 :
デフォルトの名無しさん:2012/03/08(木) 18:51:03.12
int a, b, c, d;
int ee = Math.Floor(a / b) - Math.Floor(c / d);
エラー CS0121: 次のメソッドまたはプロパティ間で呼び出しが不適切です: 'System.Math.Floor(decimal)' と 'System.Math.Floor(double)'
どうやって書けばいいん?
そもそも整数同士の除算だと結果も整数なのでFloorする意味がないんだが
double a, b, c, d;
int ee = (int)(Math.Floor(a / b) - Math.Floor(c / d));
Math.Floorがdoubleかdecimalしか指定できないところにintを指定したから
あの、Uの半角ってどうやって打つんですか?
KANAキーロック状態でシフト+ろ だと、ろになるんですが
しょうもないことですみません。
結果を受け取る配列を渡す時にoutキーワードってつけてる?
なくても全然OKだけど結果を受け取るのがはっきりするから付けてたけど
つけるなと言われて困ってる
え。そしたら
int a, b, c, d;
int ee = (a / b) - (c / d);
で 欲しい結果が得られるってこと?
逆に
double ff = (a / b) - (c / d);
でも ff==ee になっちゃうってこと? (いや、これは試してみればわかりますね・・
引数で配列渡して結果をもらう場合
outをつけないと可変長にできないだろ
逆にその必要が無ければ無駄には違いない
245 :
デフォルトの名無しさん:2012/03/08(木) 19:14:50.00
>>241 たてぼう で変換でもしたらどうだ
>>242 [Out]属性は何となく付ける outにはしない
>>246 それが、全角しか出ず
文字 'U' は予期されていません。
となります。
IMEじゃ半角は出せないんでしょうか
その話し続けたければIMEのスレ行ってよ
IMEのほういってきます、失礼しました。
|c2a6か
sjisにねーな。なんて読むんだろう。
>>242 それ、用途違う。
配列の参照自体を書き換えないんだったら、out つけたら余計混乱招く。
参照型の中身を破壊的に変更する場合のマーキングが欲しいってのはすごく思うけども。
>>243 int a = 2, b = 3;だと
a / b==0
(double)a / (double)b==0.66666666666666663
double a = 2, b = 3;だと
a / b==0.66666666666666663
(int)a / (int)b==0
よく分からなかったら1行に割り算1つだけ、キャストだけ、Floorだけにしてブレイクポイント使って中身確かめろ
¦ってVS2008 SP1に対応してないんですかね?
かんたんC#って参考書ではVS2008 SP1が使われてて、それのサンプルコードで¦が使われてるのですが
実行結果とコード貼ったほうがいいですかね
255 :
デフォルトの名無しさん:2012/03/08(木) 20:47:04.20
!とかいわないよな
>>254 解決しました、1時間以上詰んでたので助かります。
257 :
デフォルトの名無しさん:2012/03/08(木) 20:48:54.21
>>253 もしかして
Visual C#でカンタンはじめて学ぶプログラミング
かな?
何ページ目?
258 :
デフォルトの名無しさん:2012/03/08(木) 20:51:20.93
印刷でかすれただけじゃね?
印刷業界の依存文字だと思ってた
>>258 それです、112ページ目のサンプルコードがどう見てもUです。
誤植でも何でもないよそんなの。
ただの字形の違い。誰でも当然常識として知ってなきゃおかしい範囲。
こういう人ってバックスラッシュとかでも大騒ぎするのかなw
せやな
バックスラッシュは割りとどうでもいいが
記載されたコードがスラッシュドゼロになってない本は買えない
買いたくない
266 :
デフォルトの名無しさん:2012/03/09(金) 00:59:23.22
PrintOut( from : 開始ページ, to: 終了ページ )
のような既存の API を
[<開始ページ>]-[<終了ページ>]
のような文字列の指定を解釈して呼び出す処理をスマートに書くにはどう書けばいいでしょうか。
問題は、片方の値が省略されていた場合で、 int に null は入れられないので、
-1 を使って、
if ( (startpage == -1) && (endpage != -1) ) {
PrintOut( to: endpage );
else if ((startpage != -1) && (endpage == -1) ) {
PrintOut( from: startpage );
else if ((startpage != -1) && (endpage != -1) ) {
PrintOut( from: startpage,to:endpage );
else {
PrintOut();
}
みたいなダサいコーディングしか思いつきません。
FormアプリでDispatcherで赤波線がでます
名前空間何を入れるんですか?
確か数年前にやった時はこんな感じで別スレッドからフォームアイテムにアクセス出来たような記憶があるんですが
教えてください!
Thread work = new Thread( () =>
{
this.Dispatcher.Invoke( new Action( () =>
{
textBox1.Text += "roop" + System.Environment.NewLine;
} ) );
}
} );
work.Start();
>>266 int?型(nullableとかでググる)と、-1とかいう謎の番号を使うよりはすこしましになるかも。根本的な解決策は知らない。
彼女を作るボタンを押しても
できませんでした
なぜですか?
>>267 それWPF
BeginInvokeでググる
彼女を作るボタンを押しても
できませんでした
なぜですか?
>>209,213 です。
VisualStudio2005 C# を使用してます
http://ideone.com/zntPW (できるだけ最小限にしたコード)
やりたいこと:
クラスから別スレッドで処理した結果を受け取りコントロールに表示
フォームから クラスaの関数bを呼ぶ
クラスaの関数bで スレッドcを行う
スレッドcの終了時に フォームの関数dを呼ぶ
フォームの関数dで button1.text="e"; としたい。(スレッドcの結果を表示)
困っていること:
別スレッドからコントロールを操作するとエラーが出る
63行目のように 関数d を呼ぶ際に 元の基本スレッドで処理させるような方法はないでしょうか?
別スレッドからのコントロール操作って、実行時に結果が保証されないだけで
普通はエラーは吐かなかったと思ったのに...
とりあえずCheckForIllegalCrossThreadCallsをfalseにしたら別スレッドの呼び出しはチェックされないらしいぞ
ラムダ式とかLINQとか、大きな機能追加に目が行ってたけど、こんな細かい修正もされてたのね
昔からデバッグビルドではデフォルトでControl.CheckForIllegalCrossThreadCalls = true;です
少なくとも9年以上前からそういう設定のはず
いや7年かな
2.0からのはずだし
Uはそういうことか。もともと1だのlだとの見分けにくいからだっけ?
ちなみに 00A6のあとにF5で出るけどな。
コナミコマンドのように00A6を素早く入力したあとF5キーを押しても変換されません!
webページ上のテキストボックスに文字列をセットしたりボタンのクリックを行う
例えば、yahooのログインページを取得してIDとpassを入力してログインボタンを押す
このような処理を行うとき
webBrowserコントロールを使用して、テキストボックスやボタンのHtmlElementCollectionを得て処理を行うというのは解ったのですが
レイアウト上webページを表示するスペースが取れないのでできれば表示したくないので困っています
フォームのサイズを小さくしてvisibleプロパティをfalseに設定すれば、と考えたのですがちょっと力業なように感じています
他にもっと簡単な方法が有ったりするのでしょうか?
レイアウトで配置しないでクラス上で直接作る
Form1.Controls.Addはしない
>>281 フォームから以外にもコントロールを使用することが出来るんですね
ありがとうございました
Datagridviewの一番下の列が表示された時の処理がしたいんだけどどうすればいいんですか
Scrollイベントを受け取っても、ScrollEventArgs.NewValueの最大値がわからんとどうしようも
FirstDisplayedScrollingRowIndex DisplayedRowCount RowCount
こうやって簡単に答えてみせているけど
このやり取りのなかで、3つの大きなポイントが存在するんだよね
1:DataGridViewのヘルプを全て読めば答えに辿り着いていた
2:調べ方を教えるべきだったか、答えを教えるべきだったか
3:DataGridViewのヘルプに答えが記載されているが、そこへ辿り着くまでにかかかるコストは適正なのか
んで、一旦話しを脱線させて、ニコニコ動画とシリーズ物のゲームの話しをしたい
ニコ動誕生前にもMADとかを作って公開する文化ってのは存在していたわけだけど
ニコ動誕生前と後では、コンテンツ作りの技術の進化スピードは比べものにならない
で、ゲームの話し
ゲーセンの音ゲーとか新作が出るたびに、ゲームの難易度がどんどん高くなっていく
初代(ナンバリング1)で最高難易度だったステージが、最新作(例えばナンバリング10)ではそうは感じなくなる
1が稼働していた時代にそれをクリア出来るものは英雄のように扱われていたが
10が稼働する今では初級者が簡単にクリアするようになっている
1が稼働して頃と10が稼働している今では、人類自体が進化したわけではない、初級者のスタートラインは一緒
なのに何故このような現象が生まれるのか
そして、話しを戻して
死ね
bool型の変数「e」を宣言してください。
初期値として、定数のtrueとfalseを使用した、論理AND演算子を
ショートサーキット評価で演算した結果で代入してください。
上記の問いに対して
答え
bool e = (true && false);
自分の答え
bool e = (false != true) && (true = true);
一応これでも正解になるのでしょうか?
コンパイルも通らないんじゃ正解にはならんだろうな
問題文作った奴国語力低いな
ショートサーキットのくだりがその答えと繋がらなくてさっぱり
そうですか、ありがとうございました。
・なぜbool型なのに変数名がeなのか
・trueとfalseは定数ではないと思うがどうか
・
あ、trueとfalseは定数っちゃ定数なのか
変数eってExceptionとかEventArgsとかもろに被りそうだな
新規プロジェクト→TabControl1配置、Dock=Fill、Tab3枚作成で
private void Form1_Load(object sender, EventArgs e){
TreeView tv1 = new TreeView();
TreeView tv2 = new TreeView();
TreeView tv3 = new TreeView();
tv1.Dock = DockStyle.Fill;
tv2.Dock = DockStyle.Fill;
tv3.Dock = DockStyle.Fill;
this.tabPage1.Controls.Add(tv1);
this.tabPage2.Controls.Add(tv2);
this.tabPage3.Controls.Add(tv3);
}
としてもタブ内のTreeViewの枠線がそれぞれ統一されていない理由わかる?
TreeViewのTopもLeftもMarginも関係ないみたいだし
Tab3のPaddingが0になってる
コレクションエディターで追加するとデフォルトのタブとまったく同じものが追加という訳じゃなかったんですね
デザイン上でタブ切り替えつつ(tabControlの)プロパティ見て同じ値だと勘違いしてました ありがとうございます
つーかデザイナーが追加するコントロールの細かい設定は
別ファイルに全部書いてあるだろ
別ファイルにかかれてないのは各コントロールのデフォルト値
かかれてるのがデザイナが追加した物だよ
299 :
デフォルトの名無しさん:2012/03/10(土) 00:14:05.05
今回はまじめに2chがなくなるこおも考えておかないといけないみたいだけど
ここの代わりになりそうなところって他にある?
300 :
デフォルトの名無しさん:2012/03/10(土) 00:35:03.02
したらば
Formでキーボード入力を完全に制御するために
ProcessCmdKeyをオーバーライドしてるんですが,
KeyDownのイベントは取れるけどKeyUpのイベントが捕獲できません。
ProcessCmdKeyでKeyUpのイベントを取るのは不可能なのでしょうか。
不可能
なにこの糞スレ
素人が答えるスレ?
不特定多数の人が作った「敵の動き」に番号をつけて
番号を指定すると、その動きになる。 みたいなことやりたいです。
本体リリース後、敵の動きだけ追加できる。 そんなイメージです。
「敵の動き」は指定した形式の(パラメータをもつ)クラス? 的なものにするとして、
番号指定でそのクラスを呼ぶ というところをどんな風にしたらいいのかヒントください。
クラス名が決定してないので switchでクラスを呼べないですし・・。
ここでいいのか分かりませんが
Windowsのイベントアプリケーションやセキュリティみたいなくくりを
1つ作る方法があったら教えて下さい
アプリケーションログにeventcreateすると「ゴミ」だらけになってしまいます
○Windowsのイベントログにアプリケーションやセキュリティみたいなくくりを
Linuxならlogファイル1つ増やせば終わりなのに
どうしてこうなんだろう
ご協力お願いします
日本語で大丈夫ですよ
309 :
デフォルトの名無しさん:2012/03/10(土) 09:32:14.79
>>304 実装方法もいろいろあるしなあ
それにその敵クラスを利用するゲームエンジン側の実装でもいろいろ違うし
あと昔ながらのシューティングゲームレベルのオブジェクト数なのか
弾幕まで視野に入れるかで取る方法も変えたほうがいいだろうし
昔某ゲーム機用にCで書いたゲームエンジンの
一部を再現してみたけど完璧な汎用性を持たせるのはお勧めしないなあ
http://ideone.com/ZOOJq どうせパターンはそれほどないだろうからこういう行動パターンが欲しいと
なった場合は処理ロジックを実装してニューリビジョンとして配布するしか
ないような
.NET3.5以降ならMEF一択
リフレクションとか自分で意識しなくても超簡単にやれる
313 :
312:2012/03/10(土) 12:17:56.24
訂正
.NET4か
314 :
デフォルトの名無しさん:2012/03/10(土) 12:20:22.91
>>311を
>>309あたりで使えるかもね〜
行動パターンを保持してる部分をプラグイン化して・・・
でも結局のところプラグインのビルドがいるんじゃないの?
自由度上げると処理効率上げるの大変になるよ
プラグイン使えなかったら、外部スクリプトにキックする以外ある?Luaとかさ。
柔軟性と処理効率は相反するから自分で悩んでくれ
こんなところで対応できるほど簡単じゃないしやってられん
>>304 です
回答くれたみなさんありがとう。
こういうのをプラグインっていうんですね。言葉がわからず検索できないような状態でした。
>>311 がサンプルもあり役立ちそうな気がします。
また聞くかもしれませんがその時はよろしくお願いします。
フォームにボタンを二つ置きます
ボタンを押すと10秒後にメッセージボックスが出ます
0秒経過: まずボタン1を押します
5秒経過: 後にボタン2を押します
10秒経過: ボタン1のメッセージボックスがでます
15秒経過: ボタン2のメッセージボックスがでます
こういうふうにしたいんですけどうまくいきません
どういう風にうまくいかないの?
ちょっといまどこにコードを書こうか迷ってて途中で送信してしまいました
いま検索してますのでコード挙げるまでいましばらくおまちください
321 :
デフォルトの名無しさん:2012/03/10(土) 17:11:31.23
>>318 ストップウオッチを複数使って経過をidleイベントで比較するのが楽な気がする。
ボタンが任意個あるとかだったら面倒くさいな
それ以前にメッセージボックスを告知に使うっていうのがなあ・・・
>>323 そこはクラス化するとかで省力化してもらいたいところだね。
あーメッセージボックスだしてモーダルになって困った、という質問なのか……
327 :
デフォルトの名無しさん:2012/03/10(土) 21:50:40.71
毎度すみません、
C#で、"ABCD"という文字列を
0xAB、0xCDというバイト列に変換したいのですがどうやればよいのでしょうか。
BitConverter.GetBytes(Convert.ToInt16("ABCD", 16))
Javaも勉強してるけど苦痛
よくあんなの使ってコード書けるよな
C#最高だわ
C#最大のリスクは
素晴らしすぎて他の言語を触る気が失せること
331 :
デフォルトの名無しさん:2012/03/10(土) 23:30:20.13
javaとC#ってなにが違うの?
一人で言語の仕様を決めているか、複数人で決めているか、の違い
10年前に全人類はこんな幻想を抱いていた「一人で考えるより、みんなで考えた方が上手くいく」
実際はみんなで考えると辻褄が合わないし、何も決断されない、ってことを全人類が学んだ
ここ10年の尊い犠牲と恩恵
船頭多すぎなところ
おっと
>>332 言いたいことは分からんでもないけど実際はC#の仕様だって1人で全部決めてるわけじゃ
恐らくないだろうからちょっと違う。
正確に言うと意思決定が民主主義的な対等な人の集まりで行われるか、軍隊みたいな
ヒエラルキーの元で行われるかの違いだね。
最後の3年(2007〜)はASFとケンカしたのが良くなかったけどね
ASFのHarmonyに互換性テストのライセンス提供するのを拒んだせいで
「やっぱりオラクルが好き放題するのか、な〜んだ」って完全なケチが付いた
JCF脱退騒ぎになり、オラクルが懐柔でライセンス提供したけどASFに拒否される始末
その後なりふり構わなくなり、HarmonyベースのDalvikVMに特許訴訟起こしたのは記憶に新しい
こっちはJavaMEの収入が無くなりそうだからって理由もあるが
C#の勉強してるとJavaを忘れる
Javaの勉強を再開するとC#を忘れる
このループで3年目
菊正宗か
perlやcobolやc++が入ってこないだけ幸せ。
少し本格的なことをしようとすると結局API使うのが難点のど飴
泥臭いことはC++先輩にお任せ♪
得意分野の分業でWin-Win♪
>>340 "C#"の問題ではないけどね、という揚げ足取り
C#だけで同じ機能ができないことが問題か不便か
責任をライブラリに求めるか言語に求めるかは微妙なところ
でも後者なら、Compatibleな言語なんて上位互換でなければ存在しないに等しい
>>336 JCFってなんだ?と思ってググったが、いろんなJCFがあってさっぱわからんw
たぶんJCPの間違いと思われる
Java Community Process
SendInputとか一向に使えるようにならないし何なのかねえ
トロイとかスパイウェアが使うような機能は使うなということだ。
ウィルスのために制限しているならもっと優先されるべき部分があるだろw
>>336の経緯
Javaの仕様は現オラクルが所有する特許を含んでるよ。
でもTCKをパスできれば特許を使っていいよ。OpenJDKにはTCKを提供してあげるね。
だけどOpenJDKのソース(GPLv2)を第三者が改変した場合はTCKあげないよ。特許も許諾しないよ。
当然だけどOpenJDKのソースを使わずに自分で実装しても、仕様上の特許は回避できないから潔く死んでね(Harmonyがされたこと)
昨日ソフトウェア板で、タイムリーにGPLと特許の話を見た
ffmpegの話で、あるソフトウェアがオープンソースでも、それを自由に利用できるわけじゃないと
だからGPLv3には特許供与条項が追加されたんだなと理解できた
352 :
デフォルトの名無しさん:2012/03/11(日) 03:32:34.89
ListViewのOwnerDrawやっているんですが、Subitem[0]のDisplayIndexを0以外に設定していて
最初のカラムを2列目以降にしています
この時、OnDrawSubitemのDrawListViewSubItemEventArgsのBoundsがどうやらバグっているようで
ColumnIndexが0だとDisplayIndexが0以外でも、Bounds.Leftに0が入っているようです
だからそのまま書くと描画位置がずれちまう
本来なら2カラム以降のサブアイテムだから、描画開始位置のBounds.Leftは0の筈がない
このバグの回避方法知っている人居たら教えて貰えませんか?
>>349 システム系API使えばVista以降は奥深くまでセキュリティがガチガチだということに気づく。
PostMessageでさえブロックされる。管理者権限は平民以下になってんだよ、今のWindowsは。
天皇に自由がないのと同じ状態。
こんなソフトありませんかスレか
>>353 管理者権限のプロセスがユーザー権限からのSendMessage/PostMessageで
意のままに操られるからだろw
遅れながらもVistaでやっと実装されたって感じだよ
PFWとかが出す「〜のプロセスが〜しようとしています、許可しますか?」みたいな
ダイアログをその対象プロセス自身が勝手にOK押せるというw
これからC#を一から始めようと思うんだけど
良い入門書とか教えてください
>>356 特にありません
死ぬまで時間があるなら入門書は複数読めばいい
他人のコードを読むことも重要なのでそこそこ長めのコードに
解説がついた本も読んだ方がいい
一番ダメなのは言語解説の本だけ読んで終わること
>>357 わかった。ありがとう。
とりあえず、いろいろ読んでいこうと思う。
>>356 とりあえず、独習C#で良いんじゃね?
ハーバート・シルト先生が書いた本だから、悪い本ではない
上でも言ってるとおり、沢山読んで、沢山書くことが重要
プログラミング言語って言っても言語だから、言葉と同じで見たり書いたりしないと上達はしない
専門的なことを人に説明するには専門的な知識が必要なのも普通の言葉と同じ
難しく考えなさんな
難しいのは言語を覚えることじゃない。結局、専門知識の方だ
作った処理にタイマー埋め込んでパフォーマンスを徐々にアップさせていく処理に改良していく作業が面白い
気持ちはよくわかるが大抵は全くの無駄どころかコードが汚くなるだけでむしろ有害
本当に遅くて困ったときに原因箇所を特定してから最適化する
362 :
デフォルトの名無しさん:2012/03/11(日) 11:26:26.18
処理が遅くなった主原因を探っていくと、原因がwpfだったり・・・
巷の高速化チューニングでは「ハードウェアアクセラレーションを無効にする」が大はやり
プログラムの本質はリファクタリングらしいからいいんじゃない?
リファクタリングはいいが自称リファクタリングはやめてくれよ
もう自称の意味がわかんねw
367 :
デフォルトの名無しさん:2012/03/11(日) 13:37:39.67
自己流って言いたかったのかな?
理系だから仕方が無い
コードを書き換える作業こそが美学
改良か改悪かなんてどうでもいい
書いた本人だけがリファクタリングだと思ってるってとこかね
確認するたびにコード変わってる奴いたなあ
371 :
デフォルトの名無しさん:2012/03/11(日) 13:53:32.86
コードは綺麗な物より動くことが正義だからな
バグさえなければ40年物のコボルのコードだって立派な物だぜ
コード書き換える=リファクタリング と思ってる奴はいるね
俺のコードを「リファクタリング」してくれるのはありがたいんだが
ただのコード書き換えはやめてほしい
使い捨てのコードリファクタリングしてもしょうがないしねえ
処理が終わっても アプリ閉じるまで
ReleaseMutex しないアプリがあるんだけど
そのアプリのプロセスから ReleaseMutexさせる方法ないですか?
Mutexが名前付きでMutexの名前が分かっているのなら
DLLインジェクションなどで進入してWin32APIで直接捨ててしまえばいいと思いますよ
逆に、上記の意味が分からないのなら無理です
3年精進してからおいで下さい
嘘こくなw
ミューテックス所有してるスレッドが特定できないだろw
ReleaseMutexは現在ミューテックスを所有してるスレッドから呼ばないとならん
そんなもの後からは特定できん
はずかしい書き込みした後ってスレのログ消してしばらくほとぼりがさめるまで待つよね
間違ってることに気づいて煽るフリで訂正書き込みを入れるパターンもあると聞く
System.Threading.Mutex.ReleaseMutex();
Kernel32.dll の ReleaseMutex
いずれも失敗します。
ProcessExplorerからはReleaseできるので何か方法はあるのでしょうけど・・。
>>379 ミューテックス持ったスレッドから呼び出してるの?
APIの使いかたがよくわかりません
やっぱりAPIを使うようなことをするならCの知識が無いと厳しいでしょうか?
>>380 いえ。
保持してるスレッドの特定の仕方と、リリース時にスレッドの指定の仕方がわかれば教えてください。
>>381 win32apiの名前とC#ってキーワードをセットでぐぐればメジャーなAPIはおおよそコードがでてくる
ProcessExplorerはReleaseMutexをインポートしてないような
リソースにReleaseMutexって文字が見当たらないから
GetProcAddressでアドレスを取得して使ってるわけでもなさそう
何か方法はあるんだろうけどあまり一般的ではなさそうだ
387 :
379:2012/03/11(日) 23:03:25.06
一通り見てみたけど
ミューテックスとスレッドを関連付ける方法っぽいのは
見当たらないですね。
388 :
385:2012/03/11(日) 23:06:42.23
そりゃ俺も一通り無さそうなこと確認してから貼ったし
わかりません
クズw
そうか?
392 :
デフォルトの名無しさん:2012/03/12(月) 02:44:51.95
でかいファイルのコピーを別スレッドでやってもメインに影響出捲りなんだが
やり方が悪いのかな?Win32ApiのFileOperationをTaskクラスで実行しただけなんだが
>>392 ディスクアクセスは遅いからそこに律速されてるんではないの?
394 :
デフォルトの名無しさん:2012/03/12(月) 04:07:20.20
動かしてるOSもかかねえ
アクセス先がHDDなのかもかかねえ
しかもアクセス先がシステムドライブなのか他なのかも書いてねえ
そんなの相手にあれこれ考えるのがあほらしいw
vistaは知らんけどwin7はシステムドライブにアクセスがあるとお節介するとかあるのに
なぜそうなるのか検証するのが楽しいのに
シングルコアとかじゃないよな、、いまどき
メインもディスクにアクセスしてるとかw
まだまだシングルコアユーザーは多いよ
むしろシングルコアの人が多い
by家電業
進捗をGUIスレッドに報告しまくってるとか
マンデープログラマーです何か質問ありますか?
マンデープログラマーってなんですか?
>>400 あなたは英語ができないのですね。
パソコンを捨てましょう
おれはハッピーマンデープログラマー
Javaの@depricateに該当するのって、[Obsolete("あいうえお", false)]でおk?
ok
やっぱり英語ができないとプログラムはできませんか?
そんなことはない
俺がプログラム始めたの小5だぞ
わざわざ誇らしげにもやしアピールしなくていいから
プログラマに必要なのは、英語がという質問に対して、小5だからみたいな回答が
理論的に正しいかが分かる能力。
じゃあゆとり向けに
小5で英語なんてまったく読み書きでき無かったけどプログラム出来たよ
日本のプログラマは、ゆとりの中学生よりも頭の悪い高卒の大人が大半だから、
英語なんて出来なくても余裕
っていうか今の大卒ってバカだろw
412 :
392:2012/03/12(月) 13:17:41.49
細かい情報書かなくて済みませんでした
動画再生機能があるファイル管理ソフトで、再生中にファイル操作すると動画が止まります
但し、複数ファイルをコピーすると、コピーとコピーの合間で動画が多少動く
この時は一つのAPIコマンド実行中だからスレッドが中断される訳じゃないんだけどね
あと、同じプログラムを2つ実行して、片方で再生片方でコピーするとスムーズに再生されるから
I/O絡みって訳でもないようだ
あ、動画が止まると言っても音声だけはそのまま再生されて、コピー終了と共に画面だけ早送り状態になって直ぐに追いつきます
英語ができないとプログラミングができるのか出来ないのか分からない時点で無理だからあきらめろ
英語はただの記号としてみるとして概念を理解できるかが一番重要
ただし変数名やメソッドはランダムな文字列になるし名称から意味を憶測しにくいからコメント一杯必要
よっぽど馬鹿じゃなきゃよく使う文字列ぐらい使ってるうちに覚えると思うが
自動プロパティで初期値を設定するのってどうやるの?
見苦しいから英語の話題は終了ね
単に英語資料の読み書きの話でしょうに。
変数なんぞ、日本語でもローマ字でもどーでもいいわ
>>405 さわりもしないで始まる前からビビってるやつには無理だ
ずっとそんな人生送ってきたんだろうな
引きこもりか?
>>415 クラスのコンストラクタででも自分で代入すればいいやん
初心者用板というより知能が人間初心者な奴だな
実際日本のプログラマなんてそんなもんだろ
IT業界自体が知能順で仕事を割り振ってるような状況だし
プログラマはオペレーターの次にひどい
一つのファイルにいくつまでメソッドを定義していいのか目安ってありますか?
やっぱりたくさんいれるのはパフォーマンス落ちるものですか?
その機能が必要で、そのクラスが持つ必要があるならいくらでも書けばいい
多すぎるな、と感じた場合は設計を見直すといいかもね
424 :
デフォルトの名無しさん:2012/03/12(月) 14:00:08.66
>>421 仕組み上奴隷化することで上流階層が偉ぶるために囲い込みしてるだけでしょ
役人のやり方みててもそうじゃん
一件平等に公募してるようで必ず但し書きにxx経験者ってなってて
実質囲い込みになってるしw
コンプレックスを晒すスレ
ゲームプレイ中にタイムを計測したいのですが
F2を押すと計測開始するようにしたいのですが
ゲームをアクティブにしているとF2を押しても反応してくれません
非アクティブな状態でもキーイベントを発生させる技術を教えてください
ゲームはブラウザ上のFlashゲームかRPGツクールのです
>>427 そりゃFlashもゲームもアクティブな状態だとキー入力はそっちが握ってて
外のアプリはキー入力を拾えるわけないじゃん
それなりのアプリ書かないと
しかしなぜわざわざC#のスレを探して聞いたんだ
ボウヤだからさ
あれっすよ、C#でタイムを計測するのを作ってたんすよ
やっぱりアセンブリレベルで書かないとだめですよね
VC#2010無料版で作っています。
やっぱり人様にソースコードを配布するためには、右下でプロパティやイベントを追加するのではなく
ソースコードに自分で書くべきでしょうか?
言われんでもそういう前提だよw
C#で書いてなくてここに来たのならお帰りくださいだし
>>432 プロジェクトごと配布するのならデザイナーがいじる部分も
ついてくるので気にする必要はない
Form1.csだけとか
>>2のようなサイトなどに貼って公開するのなら
どういうコントロールをFormに貼り付けたか説明しないといけない
まあコードでどういうコントロール貼ってイベントを追加したかわかるけど
そういう手間隙が面倒ならLoadイベントなどで自力でコントロールを
追加するコードを書いておけばいい
わかりました。
後で位置から作る直すときにコピペするときに楽なのでイベントだけ追加するようにします。
疲れたー
Stopwatch sw = new Stopwatch();
public Form1()
{
InitializeComponent();
}
こんな感じで書いてるんですけどLoadイベントの中でやったほうがいいですか?
一応これでも動くんですが本来の正しい作法が気になります
>>437 自分も同じようにクラス先頭あたりでやってる。
コンストラクタで、start()を一応やっておいて、カウントを継続しながらリセットしたい時はrestart()している。
MONOではrestart使えないらしいけど・・・。
そういえばコンストラクタとして登録されるので問題ないですよね
ありがとうございます
sw.Reset()とするとタイマーが止まってしまいます・
sw.Start()を重複で実行した場合、これって重複で開始させられるんでしょうか?
C#がかしこく判断して実行しないようになってますか?
sw.Start()を実行するときはsw.IsRunningをやったほうがいいものでしょうか?
あ、マンデープログラマーさんに聞きたいことありました。
プロパティはどのようなとき使えばいいんでしょうか?
いつも変数ですませてしまいます。
コード晒せよw
要求:タイトルバー非表示
解決:FormBorderStyle.None
って流れとしておかしくない?
要求は上下左右のボーダーをOSのテーマと無関係に任意のラインで描画したいってことなの?
>>426 グローバルキーフック ってググってみ。
CやC++じゃないとできない。ってサイトもあるけど
C#でも グローバル限定でフック可能 とかそんなサイトにソースあったよ。
>>441 一般的には変数をそのまま外部に出すのはよくないとされてる。
不正な値をフィルタリングできないのが大きな理由。
あとはデータの設定・取得なのか、
メソッドを呼んでいるのか意味を明確にする作用もある。
まあ積極的に使っていけばいいとおもうよ
なるほど。サンクス。ちょっと使ってみるわ
>>444 タイトルバーを非表示にしてフォームの部分だけが使いたいんです
んで、この状態だとフォームの枠線がなくなっちゃうのでちょっとそれは困るので
任意のラインを描画したい、代弁頂いたそれです
1pxの黒い線とか任意の色と太さで引きたいです
449 :
デフォルトの名無しさん:2012/03/12(月) 19:49:40.77
MSのILmergeで、自作exeとDLLをくっつけようとしたんだけど、うまくいかない・・・。
対象DLLは、BABAさんのBASP21.DLLとBSMTP.DLL。
自作exe+BASP21.DLL+BSMTP.DLLやると、「Could not load Assembly・・・」と言われる。
>>448 FormBorderStyle.Noneは本質的にはボーダーを表示しないことで、
タイトルバーを表示しないのは副次的な効果でしかないよ
タイトルバーを表示したくないだけならControlBox=falseにしてTextを空にすればいい
FormにPanelでもDock-Fillで置いてBorderStyle:FixedSingleとか
OnPaintをoverrideして自分で好きなようにお絵かきするとかだろ
コレジャナイ
ソレ
BASP21の方が、ね
int[] a ={ 1, 2, 5, 7, 8, 9 };
これを例えば奇数だけ抽出して
int[] b
に入れたいです。
関数への引数なのでListでなく配列でないとダメなのですが
配列の一部(条件に合うもの)を別の可変の配列に入れるには
どうしたらいいですか?
int[] b = (from x in a where x % 2 == 1 select x).ToArray();
または
int[] b = a.Where(x => x % 2 == 1).ToArray();
b = a.While((n % 2)==1).ToArray();
既存のメソッドなら仕方ないけど今から複数の値を引数に取るメソッドを書く場合は
配列じゃなくてIEnumerable<T>使ったほうがいいよ(Tはこの場合int)
それならいちいちToArrayいらないから効率もいい
459 :
455:2012/03/12(月) 22:41:09.94
みなさんありがとうございます。
460 :
デフォルトの名無しさん:2012/03/12(月) 22:51:44.42
testにURLの一番上のディレクトリを代入するようにしたいんだが
string test = Regex.Replace("hamusokuhou.blogspot.com/2012/03/", "(?<directryname>.*?/).*/$", "${directryname}",
RegexOptions.IgnoreCase | RegexOptions.Singleline);
これだとできるのに
string test = Regex.Replace("hamusoku.com/archives/6818883.html", "(?<directryname>.*?/).*/$", "${directryname}",
RegexOptions.IgnoreCase | RegexOptions.Singleline);
これだと
hamusoku.com/archives/6818883.html
になるのはなんで?
下はマッチしてないから置き換え自体行われてないんじゃね
ケツにスラッシュがないとマッチしないだろ
>>450 ありまとうぞざいます
希望の方に地なりました
>>451 この方法なら色を変えたり好きな形の線が引けそうなんで良さそうに思います
トライしてみたんですが難しくて挫折しました
質問失礼します。
Win + Rを押下した際に"ファイル名を指定して実行"が起動しますが
グローバルキーボードフックを用いてWin + Rのメッセージをフックし
自分のアプリケーションが表示される処理を実装したいと思っています。
そこで問題にぶち当たってしまいました。
下記のような実装をしているのですがどうもうまくいきません。
↓イメージ↓
キーダウン ハンドラ関数{
if( Rが押された ){
if( Winキーが押されている ){
メッセージフック;
アプリケーション表示;
}
}
}
このような実装を行った場合
アプリケーションは表示されるところまでは
うまくいきましたが、
Win + Rを押下後、Rキーを押したまま
Winキーを離すとスタートメニューが表示されてしまいます。
このスタートメニューを表示されないようにしたいです。
どなたか教えていただけると嬉しいです。。
条件分岐追加してメッセージを破棄
UWSCで解決
466 :
463:2012/03/13(火) 01:13:53.52
Winキーをもう一回たたればOK。
468 :
463:2012/03/13(火) 01:17:29.94
>>464 すみません、どのような条件でメッセージを破棄すればよいのか分からないです。
具体的に教えていただけると助かります。
>>465 C#で作りたいです。すみません。
c#でグローバルフックは無理。
↓ローレベルフックは可能だよっていう何度繰り返されたか分からないレス
スタートメニューってWinキーの押上で表示されるのに
フックで握りつぶしているのが押下のメッセージだけやん
そら表示されるわ
じゃあなんで
Winキー押下→Rキー押下(キャンセルしてる)→Rキー押上(キャンセルしていない、たぶん質問者はしていると勘違い)→Winキー押上
でスタートメニューが表示されないかと言うと
スタートメニューが表示される条件を厳密に言うと
「1:Winキー押下→2:いかなるキーイベントも発生してはいけない→3:Winキー押上→スタートメニュー表示」
だから、実際は2:でRキー押上が発生しているのでスタートメニューが表示されていないだけ
質問者は握りつぶした気でいるだろうが、そもそもが勘違いね
Winキーが爆発した
0%以外の攻撃は基本的に当たるからな。
だが待って欲しい
内部的には小数で扱い、整数で表示しているだけかも知れない
よって、0.0001%を0%と表示している
つまり、0%表示で攻撃が当たっても、それはバグではなく仕様
ブーメランフックは可能ですか?
ローレベルフックも不可。
479 :
デフォルトの名無しさん:2012/03/13(火) 05:30:56.37
こんにちは、2つ質問があります。
当方VS2010にてEmacsキーバインド設定を利用しています。
同様の環境の方で以下を解決できる方いましたらご教授ください。
1.
通常、デリゲートにハンドラ追加記述時 → this.Click += ここまで入力すると記述ハンドラ候補が表示され、
TABで挿入可能になります。
しかしEmacs設定利用時だと、TABを押しても挿入されず、その行の先頭タブが削除されるような動作を行ってしまいます。
キーバインドでTAB設定されているものを洗ってもそれらしいバインドがみつからないのですが、どうすれば解決できますか?
2.
同様にEmacs設定利用時において、 this. と入力した際に、補完候補メニューが表示されますが、
ここでの上下操作を↑↓キーではなくCtrl+P, Ctrl+Nに割り当てたいのですが、キーバインドのコマンドがわかりません。
どれを設定すればいいでしょうか?
よろしくお願いします。
>>466 昨日ぐらいに質問したものですが、勉強にありますありがとう
win+Rをフックするって最低な馬鹿なやり方はヤメロと
言うやつが一人もいないのはいかがなものか
>>471 あの、これみてもどこにどう書いていいのかわかりまsねn
>>482 世の中にはいろいろなソフトがあるからな
嫌がらせツールとかならフックしてもおかしくないし
全画面表示ゲームで間違ってWinキー押してアビャビャビャって事態もよくある
>>484 そのまま1つのファイルにコピペして、
void Capture_KeyDown(object sender, GlobalKeybordCapture.KeybordCaptureEventArgs e){}
という関数でも作って
GlobalKeybordCapture.KeyDown += new EventHandler<GlobalKeybordCapture.KeybordCaptureEventArgs>(Capture_KeyDown);
とかやればいい
キーフックは別スレでも立ててやってくれ・・・
そうすれば独立してログも残るし
なんどループしてるんだ
同一人物がトロイを作ってると思われ
だからスレ立ててやれって
別にスレ違いでもないからここでいいよ
ウィルスくらいC++でつくろうよ
どこまでゆとってんだよw
>>488 話し合いもしないで勝手にスレを立てるとか決めるな
>>492 このスレでもループしてるから分離しろっていってる
ここだと他の話題で過去ログ化してどうせ見ないまま又ループするし
>>490 Disposeがなぜ必要なのか、static class とはどんなものか
あと始末は何が必要で、そのコードではどうやってるか、
くらいは自分で調べてみようぜ。
わざわざキーボードフックの為にスレ立てんでよい
何度も出てくるようなネタならなお更スレ別けせずテンプレにQ&Aにしてまとめておくほうが良い
今回のはまだいい
毎回できるできないでループされるのが不愉快だ
お前が不愉快になるとか知らないよw
お前のためのスレじゃねえしw
ID欲しいお・・・
オレも不快だよ
初心者用スレだしループすんなってのは無理筋
不快なのは、出来ないと書いてるのだけだね
>>496 using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
GlobalKeybordCapture.KeyDown += new EventHandler<GlobalKeybordCapture.KeybordCaptureEventArgs>(GlobalKeybordCapture_KeyDown);
}
void GlobalKeybordCapture_KeyDown(object sender, GlobalKeybordCapture.KeybordCaptureEventArgs e)
{
switch (e.KeyCode)
{
case (int)Keys.A:
MessageBox.Show("Test");
break;
default:
break;
}
}
}
}
>>496 読んでみてstaticの意味とdisposeしなくていいことをわかりました
そしてこういう風に書いてAを押したらメッセージボックスが出るようにしたいんですが出てきません
デバッグでは無理だぞ、Ctrl+F5でやってみ
初心者はフックしたがる
出来ましたありがとうございます
次から.>2のをつかいます
鼻フックでもしとけ
ローカルフックではなく必ずグローバルフックというところが悪用くさい
何で質問に対する解答が出ているのに、そちらへは感謝しないで
既に自分が作ったものと同等の別の表現に置き換えただけの物を提供されて、そっちへ感謝しているんだコイツ
とりあえずこのスレに来る奴は
C#初心者かたるまえに、人間初心者卒業してから来いよw
まぁ人間中級者がC#の勉強を始めて初歩的な問題にブチ当たっても
自己解決出来るから、必然的にこのスレはこうなる運命かw
>>515 文盲じゃなきゃ誰か分かるでしょ?
昔、小学生の頃に国語のテストやらなかった?下線1の「それ」とは何のことですか?みたいな
分かりやすくレス番まとめて
IDがないから言わなかったが
ここまですべて俺の自演
この話題は止めましょう(提案)
次の質問者、入ってどうぞ
a200
a3
a100
↓
a3
a100
a200
という風にソートするのは何てメソッドを使えば出来ますか?
522 :
デフォルトの名無しさん:2012/03/13(火) 13:31:33.04
だから分離しろと
分離先でスレをどうしようがかまわん
523 :
デフォルトの名無しさん:2012/03/13(火) 13:32:30.76
>>521 意味がわかりません
アルファベットが入ってるのに一部は数値とみなしてソートするの?
>>523 それも分離してくれ
プログラムの問題じゃなさそうだし
>>524 普通にやるsortだと数字の部分を考慮されないので
a100
a200
a3
ってなっちゃうんです
PHPでいうnatsortみたいなのがやりたいんですがC#でこういうソートできませんか?
>>521 Sort()でOK。IComparableは自分で実装してね。
比較関数書けばいい。数字を数値にするんだろ?
>>527 ということは標準ではこういうメソッドはなくて自力で書かないとダメって事ですか
うあ
>>530 自分で書かないといけないって
仕様さえ決めればすぐだろ
アホしかいないのか
>>529 ちょっと難しいのですがたぶんそれです
なんかC#ならこういうのに対応したメソッドがあるものだと思いました
やっぱり自力でやんないとだめなんですね
2,3行書くだけだろ。
phpみたいにあれもこれもそれも関数追加するより
必要なものを自分で書いた方が自由度高いだろ。
C# 自然順 ソートでググってるんですがコード書いてる人が見つかりません
どう書くのはヒントをいただけないでしょうか?
XP以降、シェルがStrCmpLogicalW関数を公開しててExplorerとかがソートに使ってる
難しいんじゃなくてプログラミングに向いてないだけじゃないの?
自分でやりたいこと(仕様)は決まってるのにプログラムに落とし込む際に
詳細な仕様に分解できないんだし
StrCmpLogicalW() を比較関数にすればいい。
class Program
{
[DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string psz1, string psz2);
static void Main(string[] args)
{
var l = new List<string>();
l.Add("a100");
l.Add("a3");
l.Add("a200");
l.Sort(StrCmpLogicalW);
foreach (var s in l)
Console.WriteLine(s);
}
}
538 :
デフォルトの名無しさん:2012/03/13(火) 13:51:37.89
組織の規律なだけですよ
嫌なら辞めればいいだけです
逃亡()しても銃殺刑にしたりしませんよ
何勘違いしてるの?
ああああwww
ごばくw
逃亡メソッドかと
>>537 すげーw質問者じゃないけど、そのAPI初めて知ったので勉強になったw
お礼に勝手にスタイリッシュに書き直し
var list = new List<string> { "a200", "a3", "a100", };
list.Sort(StrCmpLogicalW);
list.ForEach(Console.WriteLine);
542 :
デフォルトの名無しさん:2012/03/13(火) 14:19:30.26
>>525 多分別プロセスに分けたら解決するが、プロセス間通信でファイル操作ができるプログラム作るのも何だから
出来ればスレッド分けるだけで何とかしたいんだが無理なのかな?
543 :
デフォルトの名無しさん:2012/03/13(火) 14:21:55.75
>>542 知らん
C#だけじゃなくOSとか環境も影響しそうだしそんなのに付き合ってられん
>>535 Win98の頃にWin32APIの分厚い本を読破したけど
それ以降にこんな便利なものが追加されているんだな
最新版を読んでみようという良い機会になったw
WindowsってVista以降のUIを除けばよくできているよな。
>>537のような先生ばかりならいいんだけどな
ほとんど質問者と同等の連中がまっとうな答えも出せずに煽るばかり
>>546 >>521のレベルの質問で回答者を叩かれるのは納得いかないわw
たまたまエスパーがいただけだろ
回答できていないのだから回答者とは言わない
文字と数字でわけて文字比較して同じだったら数字を数値化して
比較するだけじゃない、質問者は自然順という言葉しか出せないから
プログラム以前の話。
>>548 煽ってるんじゃなくて何がしたいかわからないから
ヒアリングしてるんだよ
>>521がたとえば先頭はアルファベット1文字だけでその後は数字を文字列化した程度なら
自分で実装しようがそれほどでもない
もうちょっと文字数が増えてもそれほどでもないかもしれない
でもそういうのすら書かれてない
だからヒアリングするの
他人が回答書いたらケチ付ける人こそ生産性がゼロの問題児だと思います
事実上の嵐行為なので他の人もスルーしたらいいのに
552 :
537:2012/03/13(火) 14:59:38.03
確かにヒアリングは大事だよな。
俺も回答はしたが、
>>521の要望どおりっていう保証は何もないしな。
ただこういう場合、質問者自身も仕様を突き詰めて考えているわけじゃないから、
とりあえず答えを提示してみたほうが効率良くヒアリングできることもある。
自分のやりたいことがきちんと説明できるだけの知識があったらその時点ですでに解決してると思うぞ
こういうスレはエスパーじゃないと無理
>>553 エスパーじゃないのでヒアリングしたら回答してない煽ってるといわれるとどうしようもないw
何千万の仕事がもらえるアホ顧客へのヒアリングじゃないからw
少々言葉が汚いのは諦めろ
無料の代償だからw
質問者側だって少ない知識で必死に説明しようとしてるんだよ
それを回りくどくヒアリングとか言われても余計混乱するだけ
この程度の質問を予測できない奴が顧客のニーズに応えられるとはとうてい思えない
〜糞スレ終了のお知らせ〜
2chも仕事です
>>547は日本語が読めないらしい
ここにやりたい事を書いてあるみたいだけど
俺はもっとつらい顧客の対応してんだから、
お前もこれぐらい我慢しろって顧客が言うんですよ。
2chなめんなよ
ソートはみんなで答えるくせにフックの質問は答えてくれない。
プロがこんなスレにいるわけねーだろ
ここの卒業間近のやつが応えてんだよ
初心者が質問して初心者がググって答えるスレなんだからしょうがないだろ!
分からないものは知ってる振りをして煽っておかないと俺のプライドがもたねぇ!
IDつけてくんないと自演やめられねぇ
>>562 飽きたんだよ。 前も答えたけど、何の返答もよこさねーし。
まあ、検索すればあるからってより、使えないからっていう返答の方がお好みだったんだろうけどな。
ずっとこのスレに生息してるけどフックの件の回答は「グローバルフック」とかこの程度の回答しか見た事がない
おまえとおれと二人しかいないし寂しいな。
荒れる三大スレ
PHP,JavaScript,C#
571 :
デフォルトの名無しさん:2012/03/13(火) 15:42:24.40
>>568 それで十分じゃないか
そとも俺のために完璧に動くソースを作れってこと?
こんなもん荒れたうちに入らねーよ
まああれに比べたらなw
>>572 そういうあおりしても出てこないよ
逆にますます無視されるだけ
すべった?
的外れなエスパーは半月ろむってろ
このスレだと質問がネタ振りに化してる感じ
>>579 スレを活性化するためにわざとネタにしてるのかもw
ネタ振り〜してる間に〜
フックぐぐってきた
俺には必要なさそうだ
このスレ役に立ったためしがない
ぐーぐる先生のほうが優秀だし
まぬけな質問者をオチってにやにやするのが楽しくて離れらないけど
死ね
俺以外みんな死ね
俺とお前しかいないのになにいってんだ
キーボードを押すという動作は出来ますか?
sendMessageはアクティブのウィンドウに文字を送信しますのでこれはだめです
キーボードを手で押したようなことをしたいのですがそれは無理ですか?
猫を飼えば可能
>sendMessageはアクティブのウィンドウに文字を送信します
は?
SendInput の話?
SendInputとグローバルフックの話題禁止
はい出ました仕切り厨
593 :
デフォルトの名無しさん:2012/03/13(火) 17:22:50.64
例えば キーボードを押してないのに
キーボードのキーが物理的に下がる ってことはできない。
ピアノの鍵盤が下がる自動演奏みたいな。
で、何がしたいの?
>>594 AHKやuwscのようなキーボーボを押すマクロを作りたいと思います
>>593 参考になります これでやってみます
物理的にキーが下がる・・・重力あやつるしかねえな
597 :
デフォルトの名無しさん:2012/03/13(火) 18:02:05.71
ピアノとかで自動演奏するのがあるけどあれはそれなりの仕組みがいるよなw
そんな高級キーボードを買うやついねーだろw
メソッドが複数の戻り値を返せないC#では
複数の戻り値が欲しい場合は、複数のデータを1つの固まりにパックしてから返さないといけないのですが
パックの方法を調べたところ
1:独自クラスにパックして返す、2:匿名型でパックしてdynamic型で返す、3:Tupleにパックして返す、の3種類のようです
1は毎回有名のクラスを作る必要があるので論外
2は戻り値を利用するときに、インテリセンスでプロパティが表示されないので、コーディングの生産性が低いため論外
3は戻り値を利用するときに、プロパティ名がItem1と固定されているので、戻り値の意味が分からなく論外
どうすればいいですか?C#6.0で対応されるのを待つしかありませんか?
4諦める
といいたいところだけどコンソールアプリの引数のように文字列の配列を返すようにして
復元するためにキーワード化するとか
あとは同じく文字列だけどDictionaryで管理してそのインスタンスを渡す
でも復元しないといけないだろうから復元クラスを作る必要があるねw
釣り針〜
最近の質問はのび太がドラえもんにいい道具ない?ってねだるくらいのレベルだな
答えが分かってる質問というのか、ただの愚痴に近い。
>>599 やっぱ低コストな方法では無理ですな
理想としては2で匿名型をdynamic型に代入したときは
コンパイル時に確定している情報はIDE上では静的に扱ってくれると嬉しいですな
例えば、 dynamic hoge = "a"; ってやればhogeはstringで確定なんだから
>>604 いや、全くその通り理解不足なんだけど
理論上おかしくてもIDE上では便宜上そこまでやってくれるツールだと素敵なんだけどねって妄想してみた
もしくはTupleのプロパティを命名する仕組みが出来ても素敵だけど、今の言語仕様では当然無理
そもそもメソッドの引数には名前があるのに、メソッドの戻り値に名前がないのが不自然
便宜上、メソッド名が戻り値の名前になっているだけ
GetName#なら戻り値が名前なんだなって分かるのは、メソッドが戻り値を命名しているかr
その都度クラス作ったほうがいいと思うけど
大した手間じゃないし
Debug.Fail
ってプログラムを完成させてexe形式で実行されるときにどういう扱いされるの?
ConditionalAttributeの説明を読む
フォームのtopmostとメニューのチェックの状態をくっつけたいのだが(バインド?)
どうすればおk?
ApplicationSettingsは使いたくない
WinFormsならチェックが変更されたイベント拾ってしこしこ書くしかないよ
バイントみたいな便利な機能は極一部のコントロールでしか使えない
今から作るならMetro対応にして練習したほうがいいな
いやメトロなんて絶対に普及しないからw
ないよね
当のWPFすらナイナイwって言ってるしね
IS12T使ってるけど、メトロUI結構好きだよ。
もうちょっと練り込む必要があるかなとは思うけど。
String log = "a = " + a + ", b = " + b + ",c = "以下省略
みたいな書き方が目に悪いです
String log = "a = ${a}, b = ${b}, 以下略みたいに書けないでしょうか?
メがトロ
今のところ以下略みたいには書けないですね
String.Formatで勘弁して下さい
621 :
618:2012/03/13(火) 21:31:08.67
勘弁してあげません。もっといい書き方はないでしょうか
ちなみに"a=${a}"という書き方はRubyならできます
ないよ
嫌なら死ね
すぐそうやって無いとか死ねっていう
無いけどさ
勘弁しないといわれても我々にはお出しできるものが無いのです…
我々が仕様を策定しているわけではありませんので…
つIronRuby
626 :
618:2012/03/13(火) 21:48:54.05
ありがとうございます。
クソ欠陥言語が
強く同意します
我々も呆れています
>>622 こういう事を平気で書くとリアルで墓穴を掘るよ
強く同意します
我々も呆れています
うぜーよ面白いと思ってんのか
あなたの忍耐に感謝します
Win8のUIってMetroとWPFの二本柱でいくんですか?
沢山の選択肢の中にMetroが加わった。
ARMのタブレット向けなんかはMetroでしか開発できないけどね。
デスクトップではWPFですら普及してないのにましてMetroがWindows Formを代替できるわけないじゃん。
スマホ/タブレットは、もうやる前から負けは見えてるw
開発ツールの完成度でWPの逆転を予想してる人もいるみたいだけど、
こういう考えがナンセンスなのを実証する事例って過去にいっぱいあったような....
636 :
463:2012/03/14(水) 00:51:34.38
>>467 その線が有力な感じがします。
試してみます!
>>472 KeyUpメッセージの破棄も試してはいましたが、中々うまくいきません。
1.WinキーがUpとなった時にRが押されているという表現ができませんでした。
(GetAsyncKeyState 関数を使用したがうまくいかず)
2.GetAsyncKeyStateの代わりにフラグを用いてWin + Rが押された後の一番最初のWinキーアップメッセージを破棄という方法も試しましたがこれも駄目でした。
(Winキーアップ待ちという状態になってしまうため、例えばEキーを押すと、内部的にWin + Eとなりマイコンピュータが起動してしまう)
3.2の解決方法として、最初のWinキーダウンメッセージを破棄すれば良いと考えましたが、
そもそもWin + Rを押下した場合、キーダウンイベントは
(1)Winキーダウン (2)Rキーダウンといった順番でイベントが発生するため、
都合の良いときだけWinキーダウンメッセージを破棄するという表現方法が分かりませんでした。
長文すみません。
>>473 分かりやすい説明ありがとうございます。
スタートメニューが表示されてしまう原因がよく分かりました。
これを参考に、解決方法を考えてみたのですが
やはり467さんの方法が一番かと思いました。
>>489 そんな下らない物は作らないです。
グローバルフックの話題は荒れる原因のようなので
もう少し試行錯誤してみたいと思います。ありがとうございました。
一晩寝ると詰まっていても大抵解決できるよな
十数時間コーディングしっぱなしだと勝手に手が動く簡単なのしかできなくなる
普通じゃないことを無理に実装してもほかのところでそれが原因でコケて結局無意味だったことに気づく
OSの中で生かされてるのにOSに逆らった行動するプログラムは糞
>>634 WPで広告屋が作ったOSが駆逐されて、デスクトップと同じ感じになると予想
>>612-613 this.DataBindings.Add(new Binding("TopMost", this.checkBox1, "Checked"));
ではいかんの?
過疎りすぎだろ
初心者もいい加減学習するわな
こんなところで聞いてもまともな回答なんて返ってこないから無駄だってことを
ファイルやフォルダを掴んでるプロセスを特定する方法ってありますか?
Unlockerがドライバレベルで実行していることから考えれば分かるはず
またおまえか。
次にお前はこう言う、C#でAPIフックする仕方教えてください
また性格悪い奴きてんの?
質問してる人をからかって、ネタにしようとしている一部の奴がいるんだよな
自作自演
handle.exeをdllみたいに使えないかな?
コマンドプロンプト出さずに結果取得したい。
コマンドプロンプトのウインドウ最小化 とかじゃなくてね。
ProcessStartInfoのメンバ一覧眺めれ
uint[]をint[]にキャストすると”変換できません”と言われます
var int[] intArray = (int[])uintArray;
これをキャストするにはどうすればいいでしょうか?
まずハローワークへ行きます。
ハローワークいけたらプログラマーもどきなんてやってねーよ
659 :
327:2012/03/14(水) 13:49:20.03
>>328 ありがとうございました。
婆さんが日曜に亡くなって、葬式しててお礼が遅くなりました・・・
そんな報告は要らん
661 :
noiro:2012/03/14(水) 13:56:02.59 BE:2079510555-2BP(0)
誰かいますか?
10分前2chに登録したんですけど全くやり方わからなくって・・・
ERROR:Beポイントってなんですか?
標準入出力リダイレクト
664 :
デフォルトの名無しさん:2012/03/14(水) 19:48:02.07
コンソールプログラミングで1000万以下の素数をコンソールに表示するのに5秒ぐらいで出来るのに(と言っても最後の方しか見れない)
フォームプログラミングで100万以下の素数をテキストボックスに表示させようとすると固まってしまうんですけど、なんとか出来ないでしょうか?
10万以下だと表示出来てるのでプログラミングにエラーがあるわけではないです。
表示の仕方はどうなってんだ
667 :
664:2012/03/14(水) 20:05:10.75
>>665 ですよねw
コマンドプロンプトだと前の方が切れて観れなくなってしまうのが嫌でテキストボックス使ったんですけど
クリップボードに保存させて表示しない方針でやってみます。
>666
表示の仕方というと何を言ったら良いんでしょうか・・・
2 3 5 7 11 13
と言う風にして折り返しで垂直スクロールバー付きのテキストボックスに表示させました。
毎回TextBox.Textに+=で継ぎ足してねえか
669 :
664:2012/03/14(水) 20:13:27.17
いえ継ぎ足しじゃなくてstring型の変数に全部入れてからその変数をテキストボックスに表示させるようにしています。
折り返しにしておくと垂直スクロールバーのサイズを決めるために文字列幅の計算をするから
これも何かありそう
そのstringに全部入れるところで+=で継ぎ足ししてねえか
StringBuilder使うんだぞ
どちらにしてもTextBoxに表示させようとしているのが間違っている
trackBarのイベントで
trackBar1_Scroll と
trackBar1_ValueChanged はどう違いますか?
スクロール ボックスの移動またはコードによる操作によって、トラック バーの Value プロパティが変更されると発生します。
マウス操作またはキー操作でスクロール ボックスが移動すると発生します。
ぎゃ嗚呼ああああああああああああああああああああああ
676 :
664:2012/03/14(水) 21:18:33.39
>>671 仰る通りstringに入れるとこで継ぎ足してました。
StringBuilderとやらを知らなかったので調べて使ってみたら、無事に100万以下の素数を表示できました。
回答して下さった方々ありがとうございます。
677 :
デフォルトの名無しさん:2012/03/14(水) 21:21:10.73
678 :
デフォルトの名無しさん:2012/03/14(水) 21:23:07.85
当然ながらuintをintにするとある数値以上を保持してる場合は
どうなるか保証はしないよ
なんで 0.29000000000000004 になってしまうのか教えてください。
int a = 1;
double b = 0.71;
double c = (double)a - b;
//デバグで見ると c が になっている
//ちなみに
Debug.WriteLine("c = "+c);
//で表示させると 0.29
VisualStudio2005ですが 2008や 2010(?)でも 同様の現象になるのかも知りたいです。
浮動小数点数ってのはそんなもの
訂正。 なんで 0.29000000000000004 になってしまうのか教えてください。
int a = 1;
double b = 0.71;
double c = (double)a - b;
//デバグで見ると c が 0.29000000000000004 になっている
//ちなみに
Debug.WriteLine("c = "+c);
//で表示させると 0.29
VisualStudio2005ですが 2008や 2010(?)でも 同様の現象になるのかも知りたいです。
そういうもの
嫌ならdecimal使え
683 :
デフォルトの名無しさん:2012/03/14(水) 21:46:28.18
>>681 たぶんIEEEで決めた浮動小数点にしたがって計算するのは
ほぼ同じような計算誤差になると思うので気にしない方がいい
ちなみになんで0.29になるかというと
Double.ToStringは暗黙にGの数値書式指定を使用するが
DoubleにGを使って精度指定を省略すると下15桁までになる
…4はもっと小さいから切り捨てられる
685 :
681:2012/03/14(水) 21:49:52.45
マジっすか・・・・ orz
浮動小数点はちゃんと理解して使わないとおかしな結果になるから勉強したほうがいいよ
たまたまDebugでうまくいくとかいい加減なことやってるとそのうち痛い目を見ることになる
勉強した上でいろいろ考えるの面倒ならdecimalが楽だけど
687 :
デフォルトの名無しさん:2012/03/14(水) 21:51:40.53
>>685 0.290050000
こんなのが勝手に丸められると大変なことだけどねw
きっと他にもif (b == 0.0)とかやっちゃってるんだろうな
これだとc==0.29はfalseになっちゃうのか
浮動小数点の等値比較使うと汎用的なコードにしづらくなるよな
結局用途ごとに必要な精度でイプシロン決めてしまうから
地震が来たのでしばらくこのスレを開きません
逃げる準備をしておきます。
値を配列に加えていく場合、
文字列だと、string mes += "A"; の様な形でどんどん加えていけますが、
バイト配列で同様のことをできないでしょうか。
データ受信した値を配列に入れていきたいのですが、
何文字受信するかわからないので、配列の要素数をあらかじめ決められないのです。
List<byte>
あと一応、
>文字列だと、string mes += "A"; の様な形でどんどん加えていけますが
この認識は改めないと
>>664みたいなことにはまりますよ
どんどん加えているのじゃなくて、どんどんコピーして新しく作ってるんです
>>692 メモリーストリームがオススメ!IOに入ってるよ。
>>692 パフォーマンスと使い勝手を考えなければQueue<byte>とかでもいいけど、
普通は目的にあったリングバッファを自分で実装すると思うよ。
キーイベントで
case Keys.A
Keys.Aの部分を変数で書くにはどうかくのでしょうか?
switchは定数のみ
if else if 並べる
698 :
デフォルトの名無しさん:2012/03/14(水) 23:37:35.30
キーコードはVK_関連と同じだったはず
コピペ君って馬鹿だな、まで読んだ。
>>677 そんな面倒な事しなくてもArray.ConvertAllで一発。
それかLINQでSelectしてToArray
702 :
677:2012/03/15(木) 00:32:18.84
>>701 それを待ってましたw
できそうな気もしたけどそもそもそんな愚かなことをしようと思わないので
メソッド等しらないしw
調子に乗ってるな
704 :
692:2012/03/15(木) 08:14:49.37
みなさんレスありがとうございました。
>>693 普段は組み込みのCをやっているので配列については知っているつもりなので、
C#の文字列配列はすごいことできるんだなと思ってたら、
新しく作っていたんですね。納得です。
>>694 メモリーストリームという単語は初めて聞いたので、
調べて使ってみたいとおもいます。
>>695 組み込みのCではリングバッファ使ってるんが、
C#でも同じ考え方なんですね。ありがとうございます。
どなたか教えてください。
C#で
int suji = 123;
string moji = "abc" + suji;
こういう風に数値変数sujiに.ToString()を付けずなくても
結果としてmojiにabc123が代入されるのですが、
これだと何かまずいことになるでしょうか?
自分が組む時にはToString()を付けているのですが、
昔に作られたPGでおかしな挙動があり、
おかしな点が見当たらないので上記部分を疑っています。
回答よろしくお願いします。
まずいことだのおかしな挙動だの、曖昧すぎて訳分からん
疑わしいのならデバッガで確認しろよ
C#って暗黙の型変換許してたっけ?
708 :
696:2012/03/15(木) 14:03:34.13
switchでは厳しいですか
VK_というのはググってもよくわかりませんでしたこれならできるということでしょうか?
やりたいことはショートカットを外部ファイルに入れておいて、プログラム起動時にそれを読み込んで
ショートカットキーを割り当てるってことなんです
>>705 試してみたらビルドも通るし結果も正しいね。ただし、
int suji = 123;
string moji = suji;
これだとダメだった。
int suji = 123;
string moji = suji + string.Empty;
これだといけたので計算式ならば暗黙変換なのかな。
>>706 訳わからないなら口を挟むなよ。
スレタイ読めない馬鹿はブラウザ閉じろw
バグつぶすのって結構むずかしいですね。
くじけそう・・。 ってこれ質問じゃなくてただの愚痴ですね・・。
初級者と中級者の違いは、バグをつぶしていくテクというか手法にありそうな気がする。
演算子のオーバーロード。
C#の演算子オーバーロードって、1.0のときから出来た?
出来なかったら、その時の+演算子の仕様はどうなってたんだろうな
>>709 StringクラスがObjectとの連結機能を持っているから、それが使われる。
>>713 その仕様をオーバーロードしてるという。
717 :
696:2012/03/15(木) 15:32:19.18
>>712 え、っとなのでswitchは無理ということですよね
switchで可能だったとして、やりたいことが実現できるのか疑問ではある
719 :
696:2012/03/15(木) 15:36:11.29
例えばテキストエディタとか音声プレイヤーなどではショートカットをカスタマイズして設定ファイルに記録しています
これをプログラム起動時に読み込んでショートカットを設定しているようですが
これはどのように実装しているのでしょうか?
特にswitchやifにはこだわりません
Dictionaryにつっこむとか
>>714 出来た
というよりも今回は演算子オーバーロードじゃない罠
>>721 >>716が言うように、広い意味では、異なる型に同じ演算子を適用してるんだからオーバーロードといえるんじゃね
>>696 ショートカットの設定値 = 設定を数値で読み込む;
if(ショートカットの設定値 == 押されたキーコード ){
ショートカットが押された;
}
これでいんじゃね? 文面通りショートカットなら違う実装するかもだけど
Enabledがtrueのテキストボックスで、フォーカスがあるときでもキャレットを非表示にすることは出来ますか?
contextmenustripをstaticにして
アイテムいれて表示→アイテム選択orウインドウ等をクリックして消す→アイテム入れてまた表示
を繰り返すとたまに「破棄されたオブジェクトにアクセスできません。context・・・」とエラーがでるのですが
staticでも勝手に捨てられてしまったって事でしょうか?それとも表示するたびにnew するようなの?
public void a()
{
int b = func(1);
int c = func(2);
private func(int p)
{
return p + 1;
}
}
↑みたいな、メソッド内だけで使いたいメソッドって記述する方法ありますか?
メソッドの戻しが指定されてないけどほぼそれだよw
>>726 var func = new Func<int, int>((p) => p + 1);
var b = func(1);
var c = func(2);
729 :
726:2012/03/15(木) 23:13:35.10
オートコンプリートの順番って自分で変更することできますか? 降順、昇順などなど
なぜListだけForEachがあるの?
なぜDictionary/SortedListにRemoveWhereがないの?
テンプレートを作る側になって考えろ
>>725 どこかで自分でDisposeしてるんだろ
コンストラクタにcomponentみたいな名前のIContainer渡してないか?
なんでSystem.Drawing.SizeとかSystem.Windows.Sizeとかあるんですか?
型の互換性ないし混在すると吐き気がします。
System.Drawing.SizeFなんてのもありやがる。Rectangleに関しても同じ。
もしかして設計したひとは馬鹿?
「拒載韓国人(韓国人の乗車拒否)」こんな文字が台湾のタクシーに貼られていることが分かった。
韓国のインターネット上で、大きな話題を呼んでいる。
12日、韓国のコミュニティーサイトに「台湾のよくあるタクシー」「台湾の反韓感情」などのタイトルで、
台湾のタクシーの写真が投稿された。写真には女性がタクシーに乗車しようとしている場面が映っており、
開いたタクシーの窓には「拒載韓国人、NO KOREAN PASSENGER」という韓国人の乗車を拒否する文字が書かれていた。
この写真がネット上で広まると、多くの韓国人ネットユーザーが台湾タクシーの対応に反発。
「台湾はそんなに韓国人が嫌いなのか?」「私も台湾が嫌いだ」「幼稚だ」などのコメントが殺到した。
中には、「外国ではマナーを守ろうよ」「海外でK-POPや韓流は人気だけど、韓国人の市民意識のレベルはまだまだ低い」
といった意見や、「日本はほかの国々から好かれているからうらやましい」「台湾は日本が好きだよな」
「台湾は日本に植民地支配を受けたのになぜ親日なのだろう」などと日本と台湾の関係について議論する韓国人ユーザーらもいた。
韓国メディアによると、台湾内の反韓感情は、韓国が中国と国交を結んだのを機に高まった。
2004年に台湾の1人あたりのGDPが韓国を追い越した頃から、反韓感情は強まりをみせているという。
http://news.livedoor.com/article/detail/6364207/ http://image.chosun.com/sitedata/image/201203/12/2012031201423_0.jpg
ネトウヨキモイ。
738 :
デフォルトの名無しさん:2012/03/16(金) 07:24:12.77
>>735 いいえ
Drawing系はGUIを描画するだけの物じゃないし
>>735 混在しねえからそれ
前者はWinForms用、後者はWPF用
普通WinFormsかWPFかによってどっちかしか使わない
WebBrowserコントロールでプロパティにStatusTextChangedが表示されないので検索したら
「Browsable属性がfalseに設定されている」とありました
イベントハンドラを毎回追加するのを忘れて毎回調べることになりそうなのでプロパティに追加させる方法はありますか?
継承してnewでプロパティをオーバーロードする
そういう無駄な継承はお勧めできないけど
SplitContainerでpanelを丁度半分ずつになるようにするプロパティってありませんか?
SizeChangeでsplit1.SplitterDistance=split1.width/2とかじゃないの
それスプリッタ幅の半分だけ右か下に寄るだろ
なら幅の分調整しろよ
1から10まで説明しないと何もできない子供か
ゆとりを侮ってはいけない
747 :
デフォルトの名無しさん:2012/03/16(金) 16:52:07.96
オリエンテーションの条件文を追加するんじゃなくて作る奴が実装考えて判断しようぜ
Set○○というメソッドに返り値を持たせて
if (!Set○○())
{
return;
}
としている動きが気持ち悪いと思うのは、感覚を治さないといけないんでしょうか?
問題ない、気持ち悪く感じるのが正常だ
ていうかSetって言ってるのに引数なしかよ
あれか、設定以外の意味のSetなのかそれは
格納失敗ならという意味なら受け入れられるかな
SetSignal()とか…
753 :
デフォルトの名無しさん:2012/03/16(金) 18:48:15.52
androidとC#って何も関係ないけど
androidが注目されるようになってから、C#っていうか、.NET自体廃れたな・・・
formだとclosed発生するけど
controlはない
controlの場合どこに終了処理を書けばおk?
Controlが終了するってどんな状況か分からない
Disposedくらいしか思いつかない
>>754 Formに貼り付ける部品の話なら厳密に後処理してないんじゃないの?
GC任せというか
Setagaya()ならいいと思う
759 :
デフォルトの名無しさん:2012/03/16(金) 19:19:59.21
返す内容がエラーなら正義だと思うけどな
例外はコストが掛かりすぎるし
頻度によるがな
自明なものにエラー値返す必要ないし
>>734 デザイナで作られるコードをほぼそのまま利用してるのでそんなことはないと思うんだけどな
StreamのLength/SetLengthみたいに、
getterとsetterがプロパティとメソッドで分かれている方が気持ち悪い。
正しい縮尺で画面上に描画(と印刷)したいんだけど何を設定すればいいの?
モニターの型番を取得してドットピッチ得ないと無理だろ
もちろん不可能を承知で言ってるよ
例えば、DPI96であれば1ドット2.54mmとして縮尺を計算することはできるように思えるが
実際はモニタのドットピッチはまちまちで、DotByDotの表示になる解像度を96としている場合が多い
2.6ミリ(23インチFullHD)だったり(25インチFullHD)2.9ミリだったりする
前者と後者だと10%以上も違う
>>764、765
回答thx
できないのかー。残念
印刷でも無理?
論理的には正確なデータが、デバイスの仕様のせいで正確に出力できないんで
同様のことはプリンタでも起こる可能性はあるが、基本的に問題ない
大きく表示できればうれしいディスプレイと違って、サイズが変な印刷なんかしてたら売り物にならないから
年賀葉書から印刷はみ出したらこまるっしょ
PrintDocumentなら描画するときにGraphicsを受け取れるから
その中のPageUnitを見て描けばいい
ありがとう!
769 :
デフォルトの名無しさん:2012/03/16(金) 21:56:44.17
((PRIndirectReference)obj).Number
で検索ぐらいすれ
これだけじゃかわいそうだから書くけど
それは質問サイトで最初のはサンプルでもなんでもないぞ
PDFの構造はしらないけど感覚で言えば
obj 出てこない
doc 対象のドキュメント
tg ターゲットになるイメージだろ
チュートリアルあるみたいだし
それをまともに触ったら感覚つかめるんじゃないの?
わからなければまともなサンプル探して自力で考えろ
このスレの人ではわからないってことでよろしいでしょうか?
それで良いよ
くだらんことを書くなよ
どのイメージを選択するかなんてコーディングする奴の自由
そんなもんサンプルに書くかよ
じぇーんじぇんわからにゃい
C#初心者っていうより プログラミング初心者スレとか探してみたら?
このまま続けるよりは日本語の勉強や英語の勉強や社会勉強をして下地をつけたほうがいいんじゃないか
小学生が波動方程式を周りに質問攻めで解いたところでなんの意味がある
分不相応という言葉があるだろう あと100万行経験積んで出なおしてこい
論理的に正しいけど現実的に正しいとは限らない
781 :
749:2012/03/16(金) 23:52:25.25
>>749です。
みなさん回答ありがとうございました。
SetEnv() という、xmlの環境設定ファイルを外部からメンバ変数に取りこむメソッドです。返り値はint型でした。
(メインメソッドでの使い方は前レスで書いたboolではなく、if(SetEnv() != 0){ return; } という形)
>>751さんのような考え方なら少しは受け入れられそうです。
private int SetEnv()
{
//ファイルパスはメンバ変数
if (!File.Exists(m_EnvFilePath))
{
OutLog("環境設定ファイルがありません"); //ログを書き出すメソッド
return -1;
}
m_Xml.ReadXml(m_EnvFilePath);
return 0;
}
個人的にはその実装も相当気持ち悪いが
見てるだけでゲロ吐きそう
レビューの時これ見せられたらLoadEnvにしろって言うわ
素人が書いたjava的で気持ち悪い
慣習的なもんだろうからな
だから気持ち悪いという形になって現れる
理論的じゃない
確かにBeansの考え方に近いかもしれない。
フィールド設定してInitの流れだから。
よく見たら最初のコードと戻り値の対応あってないな
それにc++使いにはreturn -1;が気持ち悪いはず
コレくらいだったらboolにするかなぁ。
本人は全く気付いていないんだろうな
恐らくC#始めたばかりの素人・・・
C#っぽくないどころのレベルじゃなくて、理論的問題がある
そんな批評はいらない
テクニック的な話なんですが、
バイナリデータにあるヘッダーを読み込みたいのですが、ずらっとコードを書くしかないのでしょうか?
ヘッダーには整数や倍精度が混じっていてかなりの数があります。
数年続ければ妙に思うようになるだろうし、いいじゃん別に
早々しっくりこない人みたいにはならんよ
その前に飽きるだろうしね
>>791 unsafe使えばstructにキャストしたりできるよ
>>791 基本的にはそう
構造体とポインタ使ってという方法もあるけど
さらに別の方法もあるにはあるけどお勧めしない
795 :
デフォルトの名無しさん:2012/03/17(土) 00:37:43.44
C#みたいな使い捨て、スクリプトなんてどんなんでもいいでしょ?
ごもっともですわ
>>793,794
なるほど。ちょっと構造体試してみてまずそうならずらっと書いちゃいます。
ありがとうございました
なかなか良質問が来ない
性悪の集うスレにはお似合いです
一応初心者スレなんだから それじゃ駄目だ気持ち悪いじゃなくて
上級者の経験を生かしてどうした方がいいのか教えてあげればいいのに
悪いのは分かるけどどうすればいいかは知らないじゃ同じ穴の狢
ちょっちゅねー
俺♂だから狢じゃねーけど♂狸ほどでかくねーし
メニューにショートカットを設定したいのですが
メニューFile(&F)->Exit(&E)ってやると、ALT+F->ALT+Eでたどれますが
これとプラスしてCTRL+EでExitに設定するにはどうやるのでしょうか?
ToolStripMenuItemならShortcutKeysがある
配列で作ったのを Listに直しているのですが
li[][] の li[0] を メソッドに refで渡していたのを
list化したものを refで渡そうとすると
プロパティまたはインデクサを out か ref のパラメータとして渡すことはできません
とコンパイルエラーが出ます
多次元 List の一部を参照渡しするには どう書くのでしょうか?
private void button1_Click(object sender, EventArgs e)
{
List<List<int>> li = new List<List<int>>();
li.Add(new List<int>());
li.Add(new List<int>());
li.Add(new List<int>());
for (int i = 0; i < 3; i++)
{
fun(ref li[i]); //エラー CS0206: プロパティまたはインデクサを out か ref のパラメータとして渡すことはできません。
}
}
void fun(ref List<int> para)
{
para.Add(5);
}
一度変数に代入して、変数にrefを使い、それから戻ってきた値をListに戻す
プロパティにrefやoutが使えないのは実質的にメソッドだから
807 :
805:2012/03/17(土) 13:13:37.84
>>806 List<int> para = li[i];
fun(ref para);
li[i] = para;
こうですね。ふむふむ。
実質的にメソッドだから というのがピンとこないので調べてみようと思います。
ありがとうございました。
SQLite3の公式サイトのリンクからたどれる.Net用のDLLを使ってSQLite3のデータベースからテーブル一覧を取得したいのですが
SQLite error
near ".": syntax error
ってエラーが出て困ってます
コードはこれです
connect = new SQLiteConnection("Data Source=test.sqlite");
connect.Open();
string sql = ".tables'";
SQLiteCommand cmd = new SQLiteCommand(sql, connect);
SQLiteDataReader reader = cmd.ExecuteReader();
なお、コマンドラインからデータベースファイルにアクセスして.tablesって打つとテーブル一覧を取得出来てるのでsqlの構文が間違ってはいないはずなんですが
どなたかアドバイスお願いします
System.Data.SQLiteのサイトがCritical Error: SiteUrls.Configとか出てきて見れないから分からん
ソース持ってるならどんな加工してるか追っかければいい
昔見た時はあったような気がする
確かその時は混合モードアセンブリなのが気に入らなくて止めた
810 :
デフォルトの名無しさん:2012/03/17(土) 13:51:22.32
dataGridView1.AutoGenerateColumns = false;
DataGridViewTextBoxColumn textColumn = new DataGridViewTextBoxColumn();
textColumn.DataPropertyName = "Column1";
textColumn.Name = "Column1";
textColumn.HeaderText = "Column1";
dataGridView1.Columns.Add(textColumn);
これでdataGridView1にヘッダを1個追加できたのですが、以下みたいに配列を使って動的に追加したいのです
string[] heads = new string[] {"a", "b", "c", "d"};
dataGridView1.AutoGenerateColumns = false;
DataGridViewTextBoxColumn[] textColumn = new DataGridViewTextBoxColumn();
for(int i=0; i<4; i++)
{
textColumn[i].DataPropertyName = "Column" + i.ToString();
textColumn[i].Name = "Column" + i.ToString();
textColumn[i].HeaderText = heads[i];
dataGridView1.Columns.Add(textColumn);
}
うまくいきません
どうか伝授してください
根本的に配列の使い方が分かってないだろ
教えてやるから見返りに基礎やってくれ
for(int i=0; i<4; i++)
{
DataGridViewTextBoxColumn tc = new DataGridViewTextBoxColumn();
tc.DataPropertyName = "Column" + i.ToString();
tc.Name = "Column" + i.ToString();
tc.HeaderText = heads[i];
dataGridView1.Columns.Add(tc);
}
812 :
デフォルトの名無しさん:2012/03/17(土) 14:27:35.03
radioButton1,radioButton2 と2つ配置してありまして
radioButton2がチェックされると、textBoxが表示され
radioButton1がチェックされると、textBoxが非表示となるようにしたいです。
ベタに書くとradioButton1のCheckedがtureなら、textBoxのVisbleをfalseとすればよいのですが
textBoxのDataBindingsでデザイン時に設定できませんか?
813 :
デフォルトの名無しさん:2012/03/17(土) 14:40:05.03
>>811 ありがとうございます
これをプロパティー名を一つずつ再度確認してサンプルを作って勉強します
詳細バインドでできないっけ?と思ったらオブジェクトは出てこないんだね
じゃあ無理だね
フィールドに持ってるオブジェクトのイベントハンドラのスケルトンを
適当な名前で挿入してくれるアドインってある?
VSのスレじゃないんで
DirectWriteの使い方がわかるサイト教えてください
var kakaku = new float[]{1,2,3,4}
全ての価格に1.05をかけるにはどうすればいいですか?
forループを使わないでお願いします
819 :
デフォルトの名無しさん:2012/03/17(土) 19:47:04.60
kakaku[0]*=10;
kakaku[1]*=10;
kakaku[2]*=10;
kakaku[3]*=10;
>>808 それSQLじゃなくてsqliteのコマンドだよ
select * from sqlite_master
うろ覚えだけど確かこれでとれる
821 :
デフォルトの名無しさん:2012/03/17(土) 19:57:56.44
>>818 foreach
ループ使うんじゃねえよっていうのなら数値保持クラスを作って
消費税?計算して数値を返すメソッドを作る
822 :
デフォルトの名無しさん:2012/03/17(土) 20:02:16.74
>>817 利用者あんまり居ないのか情報すくねーな
サンプルソースとか付いてるらしいので自力で頑張るしかないな
むしろ解説ブログとか開くチャンスじゃないか
HttpWebResponceで戻ってきたXMLをファイルに書き込むにはどういればいい
HttpWebResponceで戻ってきたXMLをファイルに書き込めばいいんじゃないかな
827 :
デフォルトの名無しさん:2012/03/17(土) 20:47:19.78
>>819 その、中途半端なボケ割りと好きだわ
何で10倍やねん!
>818
LINQを使う
kakaku = kakaku.Select(c => c * 1.05);
ソケットの練習を兼ねてニコ生のコメントビューアが作りたいのですが
コメントの取得は分かりますがコメントの送信はどのようにやるのでしょうか?
830 :
デフォルトの名無しさん:2012/03/17(土) 21:09:10.07
実現してるアプリ探してソースみろ
ニコ生のAPI仕様読まないと分からんし
お前のために読むような奇特な人間もおらん
けち臭いねえ
833 :
デフォルトの名無しさん:2012/03/17(土) 21:13:47.32
タダで情報を求めておいてケチとは奇妙な話だ
「使い方の分からないAPI/ライブラリの使用法を懇切丁寧に解説するスレ」
でも立てれば?
そんなとこに教える側の人が寄り付くと思うなら、ね
俺昔ビューア作ったことあるから知ってるよ
コメントを取得する方法は大百科に書いてあるんですけど
コメントを送信するやり方が書いてなかったんですよね
どうかお願いします
どうかもへったくれもない
頼まれる筋合いもないぞ
逆にそんな筋合いあると思うのか
大百科ってユーザー投稿のアレだろ?
仕様じゃねーだろ
そんなもん参考にして何をどうしようってんだ
xmlをポストするだけだろうな
840 :
デフォルトの名無しさん:2012/03/17(土) 21:21:37.35
情報がすぐに出ないってことはやってる人がすくないんだよ
スレにいる人をケチとか言う前に自分が欲してるんだから
開拓して提供する側に回れ
パケットキャプチャすればたぶんわかる
842 :
デフォルトの名無しさん:2012/03/17(土) 21:25:09.65
>>841 2chの専ブラ作るときやったわ
一応情報をまとめたサイトもあるんだけど情報が古かったりして
動かないから苦労した
開発者ブログを見た感じ、ニコ生アラートとやら以外は公式に公開してないようだ。
仮に答えたとして、APIの仕様変わったらまたここに聞きにくるわけ?
冗談きついよなあw
844 :
デフォルトの名無しさん:2012/03/17(土) 21:31:42.89
>>843 教えてくださいっていうより作ってくださいだもんな
いまキャプチャしてみたらわかった。
開発者ブログで「少しずつ公開していきます」とか言いながら4年放置してる態度も不愉快だ
ダブルで不愉快だ
やはりニコニコは関わる全てがクズだ
>>840 やっぱそうですね
やってる方がいないと荒らす方がいらっしゃるようなのでここで消えます
848 :
デフォルトの名無しさん:2012/03/17(土) 21:35:34.82
>>846 興味が薄れることってあるからその辺は諦めろ
本来IT関連の人ってそういう方がいい場合もあるからw
おまえが荒らしなんだけどなw
そもそもスレチだし
俺なんかニコ生始まったその日にビューア作ったぞ
仕様なんて公開されなくても問題ない
パケットフィルタで十分だし、それ以上やりたかった俺はFlashのデコンパイルまでやったんだぞ
パケットキャプチャて何使ってる?
853 :
デフォルトの名無しさん:2012/03/17(土) 23:01:58.49
紐サメ
wiresharkしかないだろ・・・
ただで使って文句言うなら自分で作れと
まともに物を作った人なら思う
↑
こういうの書く奴は大抵自分中心の自己厨
855「文句言っているのは相手のためなので俺は自己中ではない!使う人の身になって考えろ自己中!(キリッ」
幼稚臭すぎて泣けてくるな。
DataTableの中身を個別のコントロールにバインドする 方法教えてくれ
まずはヤフれ、話はそれからだ
ここを荒らしているのは
C#が普及すると困るJava信者かApple信者だろアホらし
MouseEventArgsのX,Yはintなのに
GraphicsのDrawLine等はなぜ 始終点をfloatで指定できるのですか?
864 :
デフォルトの名無しさん:2012/03/18(日) 01:17:10.13
Graphicsは別に画面だけが相手じゃないしなあ・・・
マウスがある場所は画面のドット単位だけど
Graphicsは画面相手じゃないしな
ワールド変換とか座標空間のスケーリングも変えたりするから細かいとこまで指定できないと困ったりする
GDIも画面だけが相手じゃないし、ワールド変換もなかったっけ?でもintを使うよね。
>>866 設計が古いとかあるしGDIの初期の設計て
オフスクリーンバッファなどが相手でも画面周りの描画には変わりないでしょ
Graphicsはもっと後期のグラフィック関連の思想が関係してるでしょ
868 :
デフォルトの名無しさん:2012/03/18(日) 02:19:49.44
>>862 Apple信者はMacでVS使いたいって思ってんじゃないかな
俺もWin 8 CPが糞すぎていい加減Macに移行したいけどVSないとか無理
MacにVSあればフォント綺麗だし最高の開発環境なんだがなー
マシン、ユーザー、文化、全てがクリエイティヴなMacに対応しないなんて
デベロップメントツールとしては損失もいいところでしょ
俺でももっと上手に釣るわ
マックは素材は安っぽくてだめだわ
モスのほうがいい
質問してもksみたいなあおりをするのはやっぱりどこか言語の信者立ったって訳か
「電池は韓国より日本が優秀」 米テスラのケルティ氏
EV(電気自動車)スポーツカー「ロードスター」で一躍脚光を浴びた米国のテスラモーターズ。
今年、第2弾としてEVセダン「モデルS」も発売。全世界で9千台以上を受注した。
EVの心臓部であるリチウムイオン電池について、バッテリー技術部門を統括するカート・ケルティ部長に聞いた。
■韓国メーカーが車載用電池市場でも価格攻勢をかけているが、性能についての評価は?
「サムスンやLGの場合は、他社の商品をまねするのがうまいうえが、
ただ、技術優位性では、パナソニックはじめ日本メーカーの方がやはり高い」
■どういった点で日本勢の技術レベルが高いのか?
「日本メーカーは、高密度化など電池の性能を決定づける材料を深く知り尽くしている。
例えば、『電池の寿命が短くなったのはなぜか』との問い合わせに、すぐ対応してくれる。さらに、
材料の組み合わせによる電池の特性の変化なども深い部分で理解している。
一方、韓国メーカーに同じ質問をすると、『いろいろ試して、直すように頑張ります』となる。
材料に至るまで電池を化学的に理解しているという点で、日本は韓国メーカーより技術的に優位だ」
http://sankei.jp.msn.com/economy/news/120318/biz12031807000001-n3.htm
ネトウヨきもっ
>>863です。
まだ、悩んでまして・・・
Pen pen = new Pen(Color.Red);
PointF sp = new PointF(0.0f,0.0f);
PointF ep = new PointF(0.1f, 0.1f);
e.Graphics.DrawLine(pen,sp,ep);
これって、描画されているのでしょうか?
実際にやったんですが、見えなくて・・・
画面はドットの集合だと思うので、描画されないはずですよね?
0.1fでスケールをそのままで書けば1ドット未満だから
たぶん表示されないよ
ためしに1.1fでやってみなよ
PageUnit で変更するんだぞ。
DrawLineはプリンタの描画にも使うから
何でもかんでもドットじゃやってられんよ。
>>866 intだけど、単位が1/100インチとか1/20ポイントとか
整数で済むほど細かいからな。
>>877 1.1fでは表示されます。
ですが、
それは、1なのか1.1なのかを判別できないですよね
まぁ、する必要はないですが・・・
なぜ、小数点未満が指定できるのかが知りたいのです。
指定できたとして、本当に描画されるのか
881 :
デフォルトの名無しさん:2012/03/18(日) 17:09:14.51
>>880 だからゲーム用じゃないしなあ
それに小数点指定できることを否定するのならたとえばゲームなんてどうするんだ
内部は浮動小数点の塊だぞ
それを表示する段階でintしてるんだよ
コンピューターのディスプレイという装置を使う上では最後は必ずこれが起こる
でも内部的には浮動小数点管理してる物なんてたくさんある
むしろ表示段階の前からint管理すると誤差だらけで表示がおかしくなるケースは
結構あるよ
スケール拡大すれば分かるよ
しなくていいけど
883 :
デフォルトの名無しさん:2012/03/18(日) 17:10:16.14
みすw
>>881 >だからゲーム用じゃないしなあ
だから画面表示専用じゃないからなあ
>>881 っえ?
小数点指定できることを否定するとは、どういう解釈でしょうか?
理由を伺っているだけで、否定はしていないですよ
>>880 だからよ、
e.Graphics.PageUnit = GraphicsUnit.Inch;
Pen pen = new Pen(Color.Red, 0.01f);
PointF sp = new PointF(0.0f, 0.0f);
PointF ep = new PointF(0.1f, 0.1f);
e.Graphics.DrawLine(pen, sp, ep);
とかやってみろよ
もういいよ。ただの荒らしだよ。
887 :
デフォルトの名無しさん:2012/03/18(日) 17:13:24.68
まだ、やってんのかいな〜・・・
回答者も初心者かw
サブピクセル処理されるから、
PointF sp = new PointF(0.0f,0.0f);
PointF ep = new PointF(0.1f, 0.1f);
e.Graphics.DrawLine(pen,sp,ep);
としても、1/10ピクセルできちんと描画されますよ。
888 :
デフォルトの名無しさん:2012/03/18(日) 17:14:33.29
>>887 うそいいなや
サブピクセルでいうなら1/3単位だろw
889 :
デフォルトの名無しさん:2012/03/18(日) 17:17:12.15
>>888 おまえこそ、うそいいなや
どこから1/3なんて出てきたんだよw
>>889 サブピクセルは光の三原色にあたる部分が縦長で横に3つ並んで1ドットを形成してるだけだろ
第一そこまでのレンダリングするのはそれなりの設定などしないとできないだろ
以下のTをdouble と intに置き換えて計算してみるといいよ。
doubleのほうが自然に計算されてるので品質がいい。
T Val = 7;
Val /= 2;
Val += (T)0.5;
T Answer = Val;//値はなんでしょう?
>>891 その辺が面倒なところなんだよな
.net的にはintとdoubleなんだが、DirectXとか一時期のAPIの影響がある部分は
floatなんだよな・・・
>>880 何が聞きたいのかいまいちよく分からないけど、たぶんあなたはプログラマが
ピクセルを直接意識して描画するのが当たり前だと思い込んでる。
その前提が間違ってる。
例えば、Graphics.DrawLine(pen,p1,p2)が表しているのは、数学的な2次元の平面上の
2点を結ぶ抽象的な線分。
894 :
デフォルトの名無しさん:2012/03/18(日) 17:23:31.21
>>891 それって、
カレーはそば屋で食ったほうが美味しいということでしょうか?
895 :
デフォルトの名無しさん:2012/03/18(日) 17:26:52.65
>>893 3DCG周りの投影とかの概念をさらっと勉強するとわかりやすいかもね
最近の2DってZ軸などを考慮しないで3DCG周りのAPI使ってることがほとんどだし
896 :
デフォルトの名無しさん:2012/03/18(日) 17:29:58.11
>>893 p1(0,0)
p2(0.1f,0)
この2点間の距離はいくつなのですか?
0.1[ピクセル]?
885で終了だろ、いい加減
>>896 だから、ピクセルは関係ないって言ってるでしょ。
DrawLineメソッドが指示しているのは、抽象的な2次元平面上に(0,0) と(0.1, 0.1)を
結ぶ線分を描画しろってことだけ。
その抽象的な線分がディスプレイのピクセルにどのように写像されるかは、DrawLineの仕様とは別問題。
900 :
デフォルトの名無しさん:2012/03/18(日) 17:37:11.90
object.GetHashCode()で取得した値って、かぶる事ってある?
ディスプレイの場合はプログラマが直接ピクセルを意識して描画しないと不味い場面が
あるからハードウェア的な画素を意識した描画「も」できるようになってるわけだけど、
本来はプログラマが画素を意識して描画するようなAPIの方が使いにくいという意味で特殊。
>>896はそこを勘違いしてるんだけど、どうも何度言われても理解できないのかな。
そんなに難しい話じゃないと思うんだけど。
まあ、実寸の座標系使って印刷するコードを書けば一発で分かるよ。
まあ細かいことが理解できても結局プログラミングしないんでしょ
904 :
デフォルトの名無しさん:2012/03/18(日) 17:44:53.55
レスる側が初心者ってことか、このスレは・・・
>>901 オーバーライドしてたら当然かぶりうる
Int64.GetHashCodeなんかInt64をInt32に納めなきゃならんわけだし
Object.GetHashCodeも一意と考えちゃ駄目だと解説で明記してる
906 :
デフォルトの名無しさん:2012/03/18(日) 17:45:59.23
上級者は初心者スレに常駐しないだろ
908 :
デフォルトの名無しさん:2012/03/18(日) 18:07:08.56
ごもっともですね
とりあえずラスタとかベクタとかの話は余所でやれ
お腹の色が玉に瑕 腹黒い 腹黒い
GraphicsオブジェクトってどしてDisposeしなきゃならんの?GCは破棄してくれないんですか?PenやぶらしもDisposeしなくちゃ、いけないんですか?
Disposeする必要はない
内部のネイティブリソースを手動で開放する必要がある時はDisposeすればいい
手動で破棄しなくても、他のオブジェクトと同様に参照がなくなればいずれ破棄される
もう目的と手段が逆になってきてないか
細かいところに目が行き過ぎてプログラム進んでなさそう
>Disposeする必要はない
ふんとに?
GCは少なくともメモリが足りなくなったら走りはじめるが(それ以外のタイミングでも極力メモリ開放しようとするが)、
デバイス コンテキストみたいなWindows固有のリソースについても
足りなくなったら勝手にGCが走るのだろうか
.netのGCの仕様は知らんが、C#は言語仕様上は一応Windows専用言語ではない触れ込みなわけだが、、
使い終わったグラフィックオブジェクトをDispose()しない(using構文も使わない)
プログラムがリソース不足に直面せずに動いてるのって、たまたまでねえが?
>内部のネイティブリソースを手動で開放する必要がある時
ってのがGraphicsなりPenなりを使い終わった時なんじゃない?
する必要はないとか言ってもPaintで作りっぱなしとかメモリ1.5GB超えたあたりでエラー落ちするな
大量に使い捨てるとか、参照握り続けてるとかなければ多くのケースで問題なく動作する。
が、問題はなくともシステムリソース持ち続けてるのは単純に気持ち悪いのでusingなりでDisposeしときゃいい。
それでも安心できない心配性のあなたにはWinDbgをお勧めする。
だいたい、使えるリソース量に保障なんてないんだから
開放するかどうかにかかわらず
>プログラムがリソース不足に直面せずに動いてるのって、たまたまでねえが?
これはすべてのプログラムが該当するわな
VC#2010のショートカットでCTRL+Eを押した後にCTRL+Cを押すとコメントの切り替えが出来るじゃないですか
この二段階のショートカットみたいなのがやりたいんですがこれをどのように実装したらいいのでしょうか?
二段階のショートカットはユーザに評判が悪いってのが大概だから止めた方がいい
VSのコメント化もウザイんで一段階にカスタマイズしている
個人用途なので配布はしないです
どのような検索キーワードでググればいいのでしょうか?
2ストローク
とかでどうか。
思った通りにやってみるといけたりするぜ
引数を取らない関数を実行するスレッドをThreadクラスで立てたい時はこの様にしています。
new Thread(new ThreadStart( delegate() { Console.Write("test"); } ));
なぜThreadStartDelegateをThreadStartクラスで包んでいるのでしょうか?その理由をお教え下さい。
new Thread( delegate() { Console.Write("test"); } ); と書ければいいのにと思いました。
ん? それぐらいなら型推論してくれてコンパイル通るだろ?
そうしておけば複数のデリゲート型に対応できるから
省略してもちゃんとコンパイルしてくれるけど
>>925 おぉ、通りました。
型推論すごいですね。
>>926 複数の種類のデリゲートを受け取る関数はそのままでは作ることは出来ず、
それぞれのデリゲートをラップするクラスを作り、
オーバーロードする必要があったのですね。
関数の引数でデリゲートの名前を指定できないと知りませんでした。
おふたかた、レス有難うございました。
俺なら
Task.Factory.StartNew(() => Console.Write("test")); って書くけどな
フォームを非表示にしてlabelだけを表示したいので
プロパティでフォームをタイトルバーがない状態にしました
そしてフォームがロードされたときにSize = new Size(label1.Width, label1.Height);として
フォームのサイズをlabelにあわせたいのですがlabelと同じサイズになりません
private void Form1_Load(object sender, EventArgs e)
{
Size = new Size(label1.Width, label1.Height);
}
clientsize
>コントロール上のドラッグでも移動できるようにするには、そのコントロールのMouseDownおよびMouseMoveイベントハンドラに
>Form1_MouseDownおよび Form1_MouseMoveを追加します。
これやってる?
aaaaaaaaaaaaaaaaaaaaaa
miss
>>932それですありがとうございます
すいませんやっぱり動きません
[System.Security.Permissions.SecurityPermission(
から始まるやつを書いただけなのでFormにMouseDownとMouseMoveは追加してません
一応追加してみて
label1.MouseDown += new MouseEventHandler(Form1_MouseDown);
label1.MouseMove += new MouseEventHandler(Form1_MouseMove);
ってやってもダメでした
937 :
デフォルトの名無しさん:2012/03/20(火) 00:20:34.12
おい、Panelに複数のControlを追加してるが、ちょい事情があり
1. Controlを一瞬もまったく描画したくない、常にPanel#Repaint()でPanel全領域を再描画したい
2. しかしControlのマウスイベントは受け取りたい
・・って事をしたい。うまい方法あるか?
今の所、Control#RegionでControlの描画の抑制できてるが
当然ながらマウスイベントを受け取れない。
1.が厄介でPanel#Repaint()するとPanelの非クライアント領域のみ描画して
Controlを一個一個描画って動きで、見た面にもパフォーマンスも悪いんだよ
これを抑制する方法が今の所Regionをサイズ0に設定するだけなんだが。
エロいやつたのむ
WM_SETREDRAWを送って、Invalidateでもすれば?
上手いやり方は知らん
939 :
デフォルトの名無しさん:2012/03/20(火) 02:08:47.91
>>938 それやってみたけどだめやった。そろそろ諦めて別の手考えるかな、ありがと!
>>937 ・SuspendLayout()
・ResumeLayout()
・Visibleプロパティ
この3つでなんとかならんの?
941 :
デフォルトの名無しさん:2012/03/20(火) 07:14:05.06
お前を殺すのは手伝うよ
>>941 ちゃんとやりたいんだったらふざけるな。
ふざけるんだったら一人でやってろ。