ふらっとC#,C♯,C#(初心者用) Part34
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/11/24(月) 19:16:25「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
0002デフォルトの名無しさん
2008/11/24(月) 19:16:56http://pc11.2ch.net/test/read.cgi/tech/1224754660/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
http://pc11.2ch.net/test/read.cgi/tech/1211453941/
Live3
http://pc11.2ch.net/test/read.cgi/tech/1221395634/
初心者のためのプログラミング言語ガイド Part11
http://pc11.2ch.net/test/read.cgi/tech/1218282605/
0003デフォルトの名無しさん
2008/11/24(月) 19:17:27http://www.google.co.jp/
http://msdn.microsoft.com/ja-jp/library/default.aspx
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/
0004デフォルトの名無しさん
2008/11/24(月) 19:17:58ふらっとC#,C♯,C#(初心者用) Part33
http://pc11.2ch.net/test/read.cgi/tech/1225648701/
0005デフォルトの名無しさん
2008/11/24(月) 20:11:010006デフォルトの名無しさん
2008/11/24(月) 21:00:090007前スレ991
2008/11/25(火) 00:11:00ソートされてれば何か速い方法あるんじゃないかなとは思ってたんですが、
Array.FindIndex滅茶苦茶速いですね・・・助言ありがとうございました
0008デフォルトの名無しさん
2008/11/25(火) 03:28:29これは独自メソッドだけのファイルでデザイナ要らないんです
0009デフォルトの名無しさん
2008/11/25(火) 03:32:58クラスを追加
0010デフォルトの名無しさん
2008/11/25(火) 03:42:210011デフォルトの名無しさん
2008/11/25(火) 03:52:420012デフォルトの名無しさん
2008/11/25(火) 04:07:24専用クラス作ってインスタンスを纏めて管理した方がやっぱりいいの?
0013デフォルトの名無しさん
2008/11/25(火) 04:12:12やりたいことによるだろ。各ウィンドウがどういう関係なのか、だな。
0014デフォルトの名無しさん
2008/11/25(火) 04:19:54Form1がメインウィンドウ、Form2以下がツールウィンドウです
とりあえず、わけわからなくなりそうなので今は専用クラスで管理してます
おおざっぱに書くと↓みたいな感じで
class FormsInstance
{
public FormsInstance()
{
}
public Form1 F1{ }
public Form2 F2{ }
public Form3 F3{ }
}
0015デフォルトの名無しさん
2008/11/25(火) 09:58:30理想は,フォームは隠蔽して
public void ShowHoge(Hoge hoge) { hogeViewerForm.Hoge = hoge; }
みたいに目的で考える
0016デフォルトの名無しさん
2008/11/25(火) 15:09:59日本医師会総合政策研究機構 「’02公的年金基積立金の運用実態の研究」より
不景気どこ吹く風の儲かり続ける官僚会社とは・・・??
・存在するはずの年金積立金 143兆9858億円
・実上’破綻’と評価される特殊法人や地方自 87兆8857億円
治体 などに融資され回収見込みがない積立金
・残っている年金積立金 56兆1001億円
(年金食い潰しの主な泥棒公益法人)
�@住宅金融公庫 23兆4518億円 �A地方自治体 17兆5000億円
�B年金資金運用基金 10兆6150億円 �C特別会計(裏国家予算) 10兆6000億円
�D日本政策投資銀行 4兆3490億円 �E国際協力銀行 3兆9683億円
�F都市基盤整備公団 3兆9017億円 �G日本道路公団 3兆5212億円
�H国民生活金融公庫 2兆7982億円 �I農林漁業金融公庫 1兆 823億円
�J福祉医療機構 9800億円 �K中小企業金融公庫 8478億円
�L首都高速道路公団 6196億円 �M阪神高速道路公団 5292億円
�N沖縄振興開発金融公庫 4660億円 �O鉄道建設。運輸整備機構 3158億円
�P本州四国連絡橋公団 3052億円 �Q日本育英会 2871億円
�R 電源開発 2795億円 �S石油公団 1431億円
レポートを行った森宏一郎氏は、「特殊法人だけで約60兆円の積立金を食い潰しています。特
殊法人は営利団体ではないので、これらの’借り入れ’は税金で返済しているだけです。特殊法
人へ流れた年金は役人の高額給与や退職金、公共事業、傘下のグループ企業等に食い潰され
ているのが実情です。」とコメント。
また、同氏が慶大客員教授・土居丈朗氏と、年金原資を’借り入れ’している特殊法人と自治体
の財務分析をおこなったところ、なんと24機関がCCランクの格付けで、事実上「経営破たん状態」
であることが判明した。
0017デフォルトの名無しさん
2008/11/25(火) 16:56:47することは可能でしょうか。
0018デフォルトの名無しさん
2008/11/25(火) 17:05:06001917
2008/11/25(火) 17:23:590020デフォルトの名無しさん
2008/11/25(火) 17:50:07002117
2008/11/25(火) 19:12:49GroupBoxやPanelをドラッグして、グループ化したいラジオボタンを囲ったのですがだめでした。
何かコツが有りますでしょうか。
0022デフォルトの名無しさん
2008/11/25(火) 19:20:170023デフォルトの名無しさん
2008/11/25(火) 20:27:01念のためですが、普通はGroupBoxを置いてそこにドラッグしますが、今やりたいのはその逆です。
いろいろ試してみます。
何か有りましたらまたよろしく。
0024デフォルトの名無しさん
2008/11/25(火) 21:04:03たばあいのhoge.Designer.csを見たらいいんじゃね
0025デフォルトの名無しさん
2008/11/25(火) 21:06:031つ聞くけど、君はファイルを別のフォルダにコピーや移動するときとか、
あるいはアプリでファイルを開こうって時に、フォルダやアプリの方をファイルに
ドラッグ&ドロップするのかい?w
0026デフォルトの名無しさん
2008/11/25(火) 21:26:42目的のものが得られるかそうでないか、それだけ
0028デフォルトの名無しさん
2008/11/25(火) 22:43:29行頭・行末は、^$でできるのですが。
^$*
とか?
0029デフォルトの名無しさん
2008/11/25(火) 22:45:34CallWindowProcでAccessViolationException起こして止まる時があるんだけど何でだよ?
Closeしても駄目だったが、WaitForInputIdleしたら起こらなくなった
0030デフォルトの名無しさん
2008/11/25(火) 22:53:330031デフォルトの名無しさん
2008/11/25(火) 22:59:18日本語で
0032デフォルトの名無しさん
2008/11/25(火) 22:59:36シングルラインモードなら$が文末って言えるんじゃねえか?
0033デフォルトの名無しさん
2008/11/25(火) 23:01:37それが、シングルラインじゃないんですよ…。
0034デフォルトの名無しさん
2008/11/25(火) 23:01:58はぁ?
0035デフォルトの名無しさん
2008/11/25(火) 23:14:25テキストファイルを読み込んで、その末尾の文字を知りたいのです。
というか、末尾の文字とマッチングしたいのです。
0036デフォルトの名無しさん
2008/11/25(火) 23:16:260037デフォルトの名無しさん
2008/11/25(火) 23:17:070038デフォルトの名無しさん
2008/11/25(火) 23:26:20当然、ファイルはReadToEndしてます。
で、最後の文字を知るには?
ってところで困ってるのです。
>>37
もうすこし詳しくお願いします。
0039デフォルトの名無しさん
2008/11/25(火) 23:31:07char lastChar = str[str.Length-1];
0040デフォルトの名無しさん
2008/11/25(火) 23:31:540041デフォルトの名無しさん
2008/11/25(火) 23:33:06日本語初心者のスレじゃないはずだよなあ。
0042デフォルトの名無しさん
2008/11/25(火) 23:35:230043デフォルトの名無しさん
2008/11/25(火) 23:36:520044デフォルトの名無しさん
2008/11/25(火) 23:38:32答えられないなら口を挟むな
0045デフォルトの名無しさん
2008/11/25(火) 23:40:28>>32
string str = "ahoうんこ\nbaka\nmanuke\nうんこ";
Regex re = new Regex( "うんこ$", RegexOptions.Singleline );
MessageBox.Show( re.Replace( str, "まんこ" ) );
これやってみれば分かる
0046デフォルトの名無しさん
2008/11/25(火) 23:41:090047デフォルトの名無しさん
2008/11/25(火) 23:45:090048デフォルトの名無しさん
2008/11/25(火) 23:47:080049デフォルトの名無しさん
2008/11/25(火) 23:49:32煽るだけに来るなんて何がたのしいんだ
氏ねば?
0050デフォルトの名無しさん
2008/11/26(水) 02:12:17ありがとう。できそうです。
0051デフォルトの名無しさん
2008/11/26(水) 03:31:000052デフォルトの名無しさん
2008/11/26(水) 05:12:15string str = "abc \n def \n ghi";
Regex re = new Regex(@".\z");
Console.WriteLine(re.Match(str).Value);
>>45
ま た お 前 か
0053デフォルトの名無しさん
2008/11/26(水) 09:26:580054デフォルトの名無しさん
2008/11/26(水) 12:58:11DeflateStreamでも使ってみれば
0055デフォルトの名無しさん
2008/11/26(水) 13:04:560056デフォルトの名無しさん
2008/11/26(水) 13:16:18005753
2008/11/26(水) 14:48:16見つけきらないだけ?。
ところでgoogleで検索する時に自動補完される機能が激しく邪魔なのは
おらだけ?
0058デフォルトの名無しさん
2008/11/26(水) 14:55:540059デフォルトの名無しさん
2008/11/26(水) 14:58:170060デフォルトの名無しさん
2008/11/26(水) 15:22:24つぎはなんだ? おしめの交換か?
0061デフォルトの名無しさん
2008/11/26(水) 15:24:580062デフォルトの名無しさん
2008/11/26(水) 15:50:20わざわざgoogleのホームページまで行って検索するよ。
わざわざって言ってもマウスジェスチャーですぐだけどな。
googleツールバーがスレイプニルでも使えるようになればいいんだけどな。
0063デフォルトの名無しさん
2008/11/26(水) 15:52:380064デフォルトの名無しさん
2008/11/26(水) 18:02:5464bit環境だと (IntPtr)( -1 ) は
new IntPtr( Int32 ) を呼んじゃって 0x00000000FFFFFFFFになっちゃったりします?
0xFFFFFFFFFFFFFFFFが欲しいときは(IntPtr)( -1L ) としなけりゃ駄目ですか?
0065デフォルトの名無しさん
2008/11/26(水) 19:21:31せめて質問は日本語で書こう。
0066デフォルトの名無しさん
2008/11/26(水) 20:04:050067デフォルトの名無しさん
2008/11/26(水) 20:34:430068デフォルトの名無しさん
2008/11/26(水) 20:35:560069デフォルトの名無しさん
2008/11/26(水) 20:40:50>>67
ども。
ド素人ですみません……
0070デフォルトの名無しさん
2008/11/26(水) 20:42:11ListviewのColumnsで順番を変えてるんですが
OKを押すと編集前に戻ってデザインで反映されません。
実行をしたら反映されてるんですが..
ColumsでOKを押すと一瞬だけ適用されたようになりますが
すぐに戻ってしまいます。コレクションエディタでは反映されています。
対処法があれば教えてください。
OSはVistaでVS2008SP1です。
よろしくお願いします。
0071デフォルトの名無しさん
2008/11/26(水) 20:44:190072デフォルトの名無しさん
2008/11/26(水) 20:45:010073デフォルトの名無しさん
2008/11/26(水) 22:58:08Visual Studio 2008 Service Pack 1(SP1)用Intellisenseの修正プログラムが公開されました
この修正プログラムをインストールすることによって、すべての Intellisense が日本語で表示されるようになります。
ttp://blogs.msdn.com/dd_jpn/default.aspx
0074デフォルトの名無しさん
2008/11/26(水) 23:04:10なにから手をつけていいかわからない・・
0075デフォルトの名無しさん
2008/11/26(水) 23:18:05なんでも書いてあるから
0076デフォルトの名無しさん
2008/11/26(水) 23:27:02ありがとうございます!
明日買いに行ってみます
0077デフォルトの名無しさん
2008/11/26(水) 23:48:59ちゃんと、DisplayIndex変えた?
一個一個設定するのが面倒なら、ここか相談室の過去ログに(ry
0078デフォルトの名無しさん
2008/11/27(木) 00:47:22おお!できました!
ありがとうございます。
0079デフォルトの名無しさん
2008/11/27(木) 09:48:53classAの中に、画面から入力された変数 x と yがあります。
classAからclassBを呼び出し、classBの中にある、メソッドcalcのみでxとyを利用したく、
他のclassBのメソッドには影響を及ばせたくありません。
どんな風に変数をclassAからclassBに渡せばスマートでしょうか?
0080デフォルトの名無しさん
2008/11/27(木) 10:05:16まあ普通にコンストラクタなりプロパティなりで渡してフィールドに持っとけばいいだろ
なんで他のメソッドに影響が及ぶんだ?
0081デフォルトの名無しさん
2008/11/27(木) 10:35:17classAのもつx,yを、classBのメソッドのみにスコープを限定してアクセスしたいなら
メソッドの引数として渡すしかない
classB.calcメソッドがprivateならそもそも不可能
x,yのスコープをclassB限定になら>>80のやり方で。
0082デフォルトの名無しさん
2008/11/27(木) 17:22:45たとえば
public object GetControl(){}
みたいなメソッドでTextBoxの1〜5までを戻したい時ってなんか良い方法ある?
戻り値をキャストしなくても良い方法であればかまいません。
0083デフォルトの名無しさん
2008/11/27(木) 17:29:01ジェネリックメソッド
0084デフォルトの名無しさん
2008/11/27(木) 17:37:54ん?
public TextBox GetTextBox(){}
でなんか問題ある?
0085デフォルトの名無しさん
2008/11/27(木) 21:17:12TextBoxが5個固定なら、StructやClassの配列でいいし、
可変ならList<TextBox>を返してあげればいいと思う。
将来的にTextBox5個以外にも渡すデータが増えそうなら、
ClassにしてClassのメンバにList<TextBox>を持たせればいいと思う。
0086デフォルトの名無しさん
2008/11/27(木) 21:44:190087デフォルトの名無しさん
2008/11/27(木) 21:44:35可能ならStringで出し入れした方がいいよ
0088デフォルトの名無しさん
2008/11/27(木) 21:46:27どういうメッセージをどういうルールで数値化したいのか
0089デフォルトの名無しさん
2008/11/27(木) 21:49:030090デフォルトの名無しさん
2008/11/27(木) 22:03:25メモ帳を開く
→日本語も含めたメッセージを書き込んで保存する
→バイナリエディタで開いてみる
→数値化されてる(゚д゚)ウマー
0091デフォルトの名無しさん
2008/11/27(木) 22:14:52おぉ、それでやってみます!
0092デフォルトの名無しさん
2008/11/27(木) 22:22:570093デフォルトの名無しさん
2008/11/27(木) 22:32:29EnabledするTextBoxの一覧を抽出するメソッドという可能性もあるから、
なんとも言えないけどね
>>90
思いつくのだと、Base64にエンコードして、
その文字列をASCIIコードに変換して、16進数を二桁の数値に変換するとかかな?
何が一番簡単だろう。
0094デフォルトの名無しさん
2008/11/28(金) 13:05:43List<>を渡したり返したりするのはガイドライン違反っていう話題が出た気がするけど。
それ以降、いちいちToArray()してやりとりしてる。
0095デフォルトの名無しさん
2008/11/28(金) 13:15:310096デフォルトの名無しさん
2008/11/28(金) 13:24:290097デフォルトの名無しさん
2008/11/28(金) 15:28:480098デフォルトの名無しさん
2008/11/28(金) 15:35:19>System.Collections.ObjectModel.Collection
>System.Collections.ObjectModel.ReadOnlyCollection
>System.Collections.ObjectModel.KeyedCollection
>>97
継承を前提としていないので、仮想メンバを含んでいないかららしい。
その点、上であげたコレクションは継承を目的としているから利用してもいいらしい。
0099デフォルトの名無しさん
2008/11/28(金) 15:45:010100デフォルトの名無しさん
2008/11/28(金) 15:47:160101デフォルトの名無しさん
2008/11/28(金) 15:52:37難しくてよくわからん・・・
0102デフォルトの名無しさん
2008/11/28(金) 16:04:230103デフォルトの名無しさん
2008/11/28(金) 16:13:25そこではデータセットの中身をテキストに変換してCSVで保存してるのですが、
データセットをそのままの形(と言うか特に変換しないまま)で保存することはできますか?
0104デフォルトの名無しさん
2008/11/28(金) 16:16:47DataSet.WriteXml辺りでXMLとして保存するとか
というかSQLServer使えば?
0105デフォルトの名無しさん
2008/11/28(金) 16:26:00Collectionの定義を見ればわかるけど、
Public class Collection<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
protected virtual void InsertItem(int index, T item);
protected virtual void RemoveItem(int index);
protected virtual void SetItem(int index, T item);
のように各メソッドが仮想メンバとなってるので、Collectionを継承して、
InsertItemメソッドをoverrideするなどしてイベントを発生したりさせることが可能ということらしい。
あとは、List<T>を公開すると、List<T>に関係する多くのメソッドも公開することになってしまうので、
少しのメソッドだけしか公開しないCollection<T>のほうが良いということも書いてあるね。
つまり速度優先List<T>、拡張性優先Connection<T>といったところか。
List<T>はクラスのメンバでprivateで置いといて、プロパティや戻り値、引数で公開しないというガイドライン。
0106デフォルトの名無しさん
2008/11/28(金) 16:30:07privateメンバやメソッド内で使ったList<T>の中身を返そうとしたら
ToArray()するのが常套手段なのかな?
他に方法ある?
元からList<T>使わないって選択肢はあまりにも雑だと思うんだけど…。
0107デフォルトの名無しさん
2008/11/28(金) 16:31:12再現性のないバグの温床とかそういう問題じゃなくて、
単に思想の問題なのか
0108デフォルトの名無しさん
2008/11/28(金) 16:31:480109デフォルトの名無しさん
2008/11/28(金) 16:34:430110103
2008/11/28(金) 16:35:54参考書では項目と金額を1列ごとにテキストに変換してCSV化してるのですが、
外部で使う必要が無ければ、その抽象化されたデータをそのまま外部に保存して、
またそのまま読み込めないのかなと思いました。xlsとかmdbみたいな感じで。
いずれにしても、根本的な理由は分かりませんが、取りあえずそんなことは
できないということですね?
0111デフォルトの名無しさん
2008/11/28(金) 16:41:53面倒だから、ArrayListに格納してキャストしてしまえ
それかList<T>をprivateに持つClassを自作して、それぞれのメソッドを自前で実装して、
そのClassをやりとりするとかww
>>107
自分もそう思ってたんだけど、調べた範囲では思想の問題なのかな?
という答えが多く見つかるね・・・
速くソートするために内部で値渡しになっていて、書き換えても本物は書き換わらないとかを
想像してたんだけど・・・
0112デフォルトの名無しさん
2008/11/28(金) 16:43:53シリアライズ C# とかでぐぐってみては
オブジェクトをXMLやバイナリで書き出す方法がどっかに出てると思うよ
0113デフォルトの名無しさん
2008/11/28(金) 16:47:13ありがとうございます、調べてみます。
0114デフォルトの名無しさん
2008/11/28(金) 16:58:24C/C++とか低レベルな言語を扱ったことがあるC#初心者が、「C#は便利だから抽象化されたデータをそのまま外部に保存できないか」と考えたなら正解。
ttp://dobon.net/vb/dotnet/file/xmlserializer.html
ここら辺見てみて。
もしプログラミング自体初心者で同じように考えたのならちょっと危ない気がする。
0115デフォルトの名無しさん
2008/11/28(金) 17:12:57kwsk
0117デフォルトの名無しさん
2008/11/28(金) 18:35:00駄目な理由は拡張性によるもの(>>98)だし、その解も戻り値の型を
1. インターフェイスにする(>>96)
2. 専用クラスにする(>>105)
と明確なんだが
0118デフォルトの名無しさん
2008/11/28(金) 18:43:101.どうやってList<T>をIList<T>にするの?
2.メソッド内でList<T>を生成して中身を返したいだけなのにいちいちクラスにして返さないといけない?
0119デフォルトの名無しさん
2008/11/28(金) 18:44:50だめな理由がわかりにくいのが問題だと思う
拡張性といっても、素朴に使ってるぶんには何の問題もないから
0120デフォルトの名無しさん
2008/11/28(金) 18:47:39明確なのは、その流れで見てきたからだろ
流れを知らない人が見にきていて、それは仕方のない事だから、同じ話題が繰り返されるわけで
「くだくだになる〜明確なんだが」と、「またそんな話題かよ」みたいな、
非論理的で生産性の無いレスをするなら、どうすれば、そういう無駄な事が繰り返されずに済むのか、
テンプレ化するとか、まとめwikiを作るとか、プログラマらしく論理的に考えろよ。
と喧嘩を売ってみる
0121デフォルトの名無しさん
2008/11/28(金) 19:01:39List<T>はIList<T>を実装してるよ?
0122デフォルトの名無しさん
2008/11/28(金) 19:17:59ほとんどの場合IList<T>を返してりゃいいのかしら?
0123デフォルトの名無しさん
2008/11/28(金) 19:20:27でも受け取る側はIList<T>を受け取っても、それをList<T>にするにはどうしたら…?
0124デフォルトの名無しさん
2008/11/28(金) 19:24:23ひょっとしたらそのIList<T>はList<T>じゃなくてT[]かもしれないんだから
初めはList<T>だったのにいつの間にかT[]に摩り替えられるかもしれない
0125デフォルトの名無しさん
2008/11/28(金) 19:24:54IEnumerable<T>、IList<T>、ICollection<T>、Collection<T>のどれかでいいらしいよ。
IListを継承しているから返すことはできるけど、
それでよければ、引数や戻り値はすべてObjectで返したりもらったりすればいよね?
と言うことと同じで、それでは意味がないと思う。
0126デフォルトの名無しさん
2008/11/28(金) 19:30:19キャストすればいいじゃん
private void button1_Click(object sender, EventArgs e)
{
List<string> list = new List<string>();
list.Add("123");
IList<string> ilist = list;
List<string> list1 = (List<string>)ilist;
MessageBox.Show(list1[0]);
}
0127デフォルトの名無しさん
2008/11/28(金) 19:39:080128デフォルトの名無しさん
2008/11/28(金) 19:40:20そのへんちゃんと理解してないから良く分からんな
0129デフォルトの名無しさん
2008/11/28(金) 19:46:15後でIList<T>の実体がList<T>じゃなくて別の実装に変えられて動かなくなっても文句言えんよ
0130デフォルトの名無しさん
2008/11/28(金) 19:46:52キャストできなきゃインターフェイスなんてどうやって使うんだよw
0131デフォルトの名無しさん
2008/11/28(金) 19:49:35じゃあ>>126じゃだめってことね?
だったらIList<T>返されてどうしろというのさ。
0132デフォルトの名無しさん
2008/11/28(金) 19:51:13List<T>にしたかったらList<T>のコンストラクタに渡せ
0133デフォルトの名無しさん
2008/11/28(金) 19:51:360134デフォルトの名無しさん
2008/11/28(金) 19:52:58いいんだけど、それがまかり通るなら、なんでもいいわけで、
Objectを返り値とするメソッドを作って、そこにList<T>を返してやって、
受け取る側でキャストすればいいだけの話。
あくまで原則的な話なので、コンパイラがエラーをはかなければ
List<T>を返り値や引数にしてもまったく問題ない。
>>128
誤解を恐れずに言えば、多重継承みたいなもんだから、インターフェースにもキャストできるよ。
効能的には、ISyainを持つクラスには、必ずSyainName(int syainID)というメソッドがあるということを
保証しますよ的な使い方。
社員給料Classや、社員日報ClassなどがISyainインターフェースを持っていれば、
必ずSyaunName(int SyainID)メソッドがあることが保証されるので、
社員給料Classも社員日報Classも必要あればISyainにキャストして、SyainIDからSyainNameを取得できますよ
という仕様ですよということを示すもの。
0135デフォルトの名無しさん
2008/11/28(金) 19:55:49ああそういうことか
IEnumerableとIEnumeratorの説明と合わせてみて分かった
0136デフォルトの名無しさん
2008/11/28(金) 19:55:52自分で定めて、一人でコーディングしてて、
そのメソッドの返り型のIList<T>が、絶対にList<T>だと保証できるなら使用してもok
チームでやってるなら、IList<T>には、IList<T>を継承するすべてのClassが入る余地があるから駄目
0137デフォルトの名無しさん
2008/11/28(金) 19:57:47辞書順にソートされてることって保証されますか?
0138デフォルトの名無しさん
2008/11/28(金) 19:58:37Collection<T>はパブリックな派生クラスを作るためにあるんだぜ
HogeCollection : Collection<Hoge>を返すことはあってもCollection<T>をそのまま返すことはまずない
0139デフォルトの名無しさん
2008/11/28(金) 19:59:34されないよ
0140デフォルトの名無しさん
2008/11/28(金) 19:59:35IList<>で返したら実体がなんだか分からないから困るんじゃね?
0141デフォルトの名無しさん
2008/11/28(金) 20:00:13ありがとうございます
0142デフォルトの名無しさん
2008/11/28(金) 20:03:58保証はされないことは前提として……
結果はWindowsの一般的な環境ならファイルシステム依存っぽいね
NTFSだとソートされてるみたいだがFAT32だと駄目みたいな
0143デフォルトの名無しさん
2008/11/28(金) 20:04:01だから、だったらインターフェイスって一体何のためにあると思ってるの?w
0144デフォルトの名無しさん
2008/11/28(金) 20:04:21Object.GetType()で判別できるから、目的のType以外はExceptionを吐けばいい。
そう俺は鬼
0145デフォルトの名無しさん
2008/11/28(金) 20:05:25それを言ったらpublicメンバもおkってことになっちゃうよ
0146デフォルトの名無しさん
2008/11/28(金) 20:06:04なるほど、明示的にSort()したほうがよさそうですね
あ、でもその場合NTFSだとクイックソートだと遅くなっちゃうんでしょうか・・・?
0147デフォルトの名無しさん
2008/11/28(金) 20:06:45>>144
あーリフレクションなんてあったな
使わないからそんなの存在すら忘れてた
0148デフォルトの名無しさん
2008/11/28(金) 20:09:210149デフォルトの名無しさん
2008/11/28(金) 20:14:48初心者スレ的には「リフレクションを使わない普通のやり方もわからないうちは使うな」なんだろうけど
0150デフォルトの名無しさん
2008/11/28(金) 20:19:38あ〜、なるほど完璧にわかったわ、トンクス
0151デフォルトの名無しさん
2008/11/28(金) 20:22:37どんなときにある?
自分だと、ASP.NETでSessionに格納できるのがObjectだから、
そういうのでGetTypeを利用して自作Classを判別するぐらいかな
あとは、Classのオーバーロードで判別できるし
>>150
でも面倒だからList<T>をそのまま返せたら返せたで便利だよね。
自前でIEnurableを実装すればいいのかもしれないけど。
0152デフォルトの名無しさん
2008/11/28(金) 20:25:20初心者向けなんだから
0153デフォルトの名無しさん
2008/11/28(金) 20:28:55リフレクションとか関係ないし、ダウンキャストも必要ない
一度、インターフェイスについて調べた方が良い
IList<int> list = new List<int> { 100, 200, 300 };
Console.WriteLine(list[0]); // => 100
逆に、インターフェイスにキャストしなきゃ使えない場合ならある
(インターフェイスの明示的な実装)
0154デフォルトの名無しさん
2008/11/28(金) 20:32:22約束事が守られていればList<T>を返せばいいよw
むしろ、これを禁止するとIList<T>で返す奴とか、ArrayListを返す人がいて
型宣言の意味がなくなるだろw
0155デフォルトの名無しさん
2008/11/28(金) 20:32:33渡した先でソートするとかありえないし
0156デフォルトの名無しさん
2008/11/28(金) 20:48:41IList<T> → ん? 誰おまえ?
0157デフォルトの名無しさん
2008/11/28(金) 20:50:16一応論点は分かっているつもりで、しかしあえて反論するけど
確かにより依存性が小さいインターフェイスを返す方が「ベター」までは
ほとんどの人が納得的な話だと思うんだが、でもそれって「すべき」とか「しなければならない」
って程のことでもないと思うんだよな。
俺なんてこれまで無頓着にList<T>とか返すメソッド平気で書いてるけど、
それで困ったことなんて一度もないし。
しかし何回同じ事書くんだよw
015882
2008/11/28(金) 20:51:28とりあえずジェネリックメソッドを使う方向でやってます
答えてくれた人ありがとう
0159デフォルトの名無しさん
2008/11/28(金) 20:53:08マイクロソフトのクラス設計が間違ってる
0160デフォルトの名無しさん
2008/11/28(金) 20:55:41同意
0161デフォルトの名無しさん
2008/11/28(金) 20:56:410162デフォルトの名無しさん
2008/11/28(金) 21:01:070163デフォルトの名無しさん
2008/11/28(金) 21:05:18俺にはもう行き場が無いorz
0164デフォルトの名無しさん
2008/11/28(金) 21:07:11初心者用だし、いま人がたくさんいそうだから、相談し放題でお得だぜヽ(´ー`)ノ
0165デフォルトの名無しさん
2008/11/28(金) 21:08:330166デフォルトの名無しさん
2008/11/28(金) 21:10:19なんてのもあるのね
0167デフォルトの名無しさん
2008/11/28(金) 21:10:33個人・少人数開発
・面倒だしList<T>返しときゃいいじゃないか。
・俺は全部把握している。もし変更が必要になっても、ちょっと書き換えればおk
チーム開発・クラスライブラリ
・俺が担当してない所まで責任持てない。勝手に余計な操作するな馬鹿野郎。
操作を制限・監視したり、使う側を気にせず実装を変更できるようにIList<T>などを使う。
0168デフォルトの名無しさん
2008/11/28(金) 21:12:34ってやったらコンパイルエラーになるんだが
0170デフォルトの名無しさん
2008/11/28(金) 21:16:38そもそもなんで戻り値がobjectなの?
TextBoxか,複数返すならTextBox[]でいいんじゃないの?
0171デフォルトの名無しさん
2008/11/28(金) 21:17:54IListは抽象クラスだから、インスタンス化はできない
0173デフォルトの名無しさん
2008/11/28(金) 21:21:30TextBox1は型なのか変数名なのかはっきりしろ
0174デフォルトの名無しさん
2008/11/28(金) 21:22:40SendKeysを使うしかないでしょうか?
System.Consoleには範囲指定して画面バッファを反転するようなメソッドとかないですよね?
0175デフォルトの名無しさん
2008/11/28(金) 21:23:490176デフォルトの名無しさん
2008/11/28(金) 21:26:25違うよ
インターフェースだよ
0177デフォルトの名無しさん
2008/11/28(金) 21:27:30こんなの用意して、GetControl<TextBox>();で呼ばれると
フォームにぶら下がってるTextBoxを全部返してくれるようなやつを作りたいって意味か?
と思ったけど・・>>172見ると、型とインスタンスと変数名を理解していないような気がする
0178デフォルトの名無しさん
2008/11/28(金) 21:27:42TextBox1は名前だから、キャストしなくていいんじゃないか?
Object.Nameで得られるのが、そのオブジェクトの名前で、
Object.GetType()で得られるのが、そのオブジェクトの型の名前
0179デフォルトの名無しさん
2008/11/28(金) 21:28:29MoveBufferAreaとかそれっぽいよ
0180デフォルトの名無しさん
2008/11/28(金) 21:31:070181デフォルトの名無しさん
2008/11/28(金) 21:35:37それも違うぞ
NameはControlのプロパティ
VSのデザイナがコントロールのフィールド名として利用してるだけ
GetTypeで取れるのはその型を表すTypeオブジェクト
0182デフォルトの名無しさん
2008/11/28(金) 22:10:390183デフォルトの名無しさん
2008/11/28(金) 22:12:08インターフェースと抽象クラスの違いって何?
書き方の違いとかじゃなくて本質的な違いを教えてください。
0184デフォルトの名無しさん
2008/11/28(金) 22:21:09インターフェイスは複数継承できるが抽象クラスは一つだけ
0185デフォルトの名無しさん
2008/11/28(金) 22:22:15インターフェース 抽象クラス
でググればいくらでも出てくるよ
0186デフォルトの名無しさん
2008/11/28(金) 22:28:07例えば is とか as で十分っていうよりその方が正しいのになのに Type 使うとか
メソッド呼び出しまでみんなリフレクションで平気でやったり。
別にやっちゃダメとはいわないが、あまり使わないですむように考えてほしいもんだ。
大抵の場合はインターフェイスなり何なり利用して、最小限で済ませられるはずだ。
0187デフォルトの名無しさん
2008/11/28(金) 22:34:13List<T>で返すってのは、基本的に呼び出し側でコレクションを操作していいよって意味が含まれる。
キャストしたらどっちにしても出来るとかそういうことではなくて、
型が意味を表すこともある。
もちろん安全性重視でコピーしか返さないこともあるが。
セキュリティに関わる場合とかね。
0188デフォルトの名無しさん
2008/11/28(金) 22:36:46IList<int> hoge = ( new List<int>() { 1, 2 } ).AsReadOnly();
0189デフォルトの名無しさん
2008/11/28(金) 22:38:59019082
2008/11/28(金) 22:48:33呼び出す側から指定したインスタンスを返したいだけです。
0191デフォルトの名無しさん
2008/11/28(金) 22:50:01それが正解だと思う
List<T>を返すと便利なのは、それを操作して後から追加したり削除したい場合があるから。
これは一つのClassで完結するか、同じ開発チーム内で完結するので、
List<T>を返しても問題ない。
Classごとに開発チームが違うような場合、
Objectの一覧を返すような場合には、配列にObjectを格納して渡せばいいだけなので、
わざわざList<T>で渡す必要もないし、追加されるような状況であればむしろまずいわけで。
理想はList<T>を返さないのがいいかもしれないけど、
面倒見切れる範囲であれば、List<T>を返すようなことをしても問題ないのではないかと思う。
要はいろいろと継承ができないということで、多態性がないだけの問題らしいので。
0192デフォルトの名無しさん
2008/11/28(金) 22:50:57インスタンス?型は同じならTextBoxの配列かコレクションでいいじゃん。
キャストは不要だよ。
0193デフォルトの名無しさん
2008/11/28(金) 22:52:04Object.Nameはフォームデザイナで出てくるNameとはまた別物?
0194191
2008/11/28(金) 22:53:43List<T>を返しても問題ない。
○ これは一つのClass内で完結するか、同じ開発チーム内で完結している場合、
自分で面倒を見られるのでList<T>を返しても問題ない。
0195デフォルトの名無しさん
2008/11/28(金) 22:55:08ObjectにNameはないぞ、Control.Nameが正解。
デザイナと名前と同じもの。
名前は付けてもつけなくてもいいが、IDEのフォームエディタは名前必ず付けて、
あわせて同じ名前のメンバ変数を宣言する。
0196デフォルトの名無しさん
2008/11/28(金) 22:55:15なんじゃそりゃw
TextBox GetTextBox( int num )
{
switch( num )
{
case 1:
return textBox1;
case 2:
return textBox2;
case 3:
return textBox3;
}
return null;
}
もうこれでいいよ
0197デフォルトの名無しさん
2008/11/28(金) 22:59:06「MSにとっての」公開するって意味が重すぎるんだよな結局
ただ、多態性がないだけの問題と言い切ってしまうのは微妙な
気もして、そもそも論としてコレクションライブラリ自体がそういう
風に使うように設計されている感じがする。
要はなんで ObjectModel なんて名前空間に分かれているか、
そしてそこにはなんで論理的なコレクションが集合しているか
って話な。
0199デフォルトの名無しさん
2008/11/28(金) 23:11:54MSの意図に従うのであれば,
引数,戻り値はすべてインターフェイスまたは配列
プロパティで公開するコレクションはすべてそれぞれ専用のコレクションを使う
(Collection<T>含め,ジェネリックコレクションはそのまま使わない)
が正解だろ
020082
2008/11/28(金) 23:12:41配列やコレクションで纏めてではなく、指定したインスタンスを個別に返したいのです。
>>196
そのコードと全く同じものを最初に考えましたが、受け取った側でキャストが必要でした。
(TextBox1) GetTextBox(1)
こんな感じで。これだと困る(というかめんどくさい)ので個別にそのまま返せる方法を
お聞きしたんですが、逆にジェネリックメソッドではダメな理由を聞かせてください。
0201デフォルトの名無しさん
2008/11/28(金) 23:12:42間違った。
インターフェースと純粋仮想クラスでした。
0202デフォルトの名無しさん
2008/11/28(金) 23:15:50(゚Д゚)ハァ?
もしかしてTextBox継承して、TextBox1,TextBox2,TextBox3,TextBox4,TextBox5と大量のクラス作ってたりするのか・・?
0203デフォルトの名無しさん
2008/11/28(金) 23:16:13もう一回確認するよ。TextBox1は型なわけだよね。
インスタンスというのは用法が間違ってる。
0204デフォルトの名無しさん
2008/11/28(金) 23:16:23>「MSにとっての」公開するって意味が重すぎるんだよな結局
同意
ひょっとしたら命名規則について論議しているぐらいの話なのかもしれないw
>要はなんで ObjectModel なんて名前空間に分かれているか、
>そしてそこにはなんで論理的なコレクションが集合しているかって話な。
確かにClassの宣言をみると、List<T>よりCollection<T>のほうが、
メソッドをOverrideできていろいろできそうなので、継承して拡張すれば、
返り値の型を変更せずとも済むので、便利といえば便利そう。
ただ、List<T>は速度重視のために設計しました。
拡張性重視でCollection<T>を作りました。それぞれ使って下さいっていっても、
Class内部では速度重視でList<T>を使って、受け渡しにCollection<T>を使ったとき、
それに変換しなくちゃいけないので、その分のオーバーヘッドはどうなるの?と思う
//List<T>からCollectionへの単純なキャストはできなかったよね?
0205デフォルトの名無しさん
2008/11/28(金) 23:16:37基本的な用語上の齟齬があるみたいね
TextBox1はクラス名なのか? >>190ではインスタンスと言い、
今度はやっぱりキャストしたいと言う。どっちやねん
0206デフォルトの名無しさん
2008/11/28(金) 23:18:58Collection<T>っていうのは自分でコレクションを作るときに使うんだよ
Collection<T>型のプロパティや引数なんて使わない
IList<T>ならList<T>そのまま使えるだろ
020782
2008/11/28(金) 23:23:26複数のコントロールを管理するクラスに
各コントロールのインスタンスを保持するプロパティを作って
指定したコントロールのインスタンスを呼び出すメソッドを作っています
呼び出すのはプロパティなので型なのかな?
0208デフォルトの名無しさん
2008/11/28(金) 23:24:26左側にあるメインメニュー意外で配置するとすれば何を利用する
物なのでしょうか?
メインメニューだと上に表示されてしまうのですが??
020982
2008/11/28(金) 23:25:39インスタンスというのは間違いです
0210デフォルトの名無しさん
2008/11/28(金) 23:27:33>IList<T>ならList<T>そのまま使えるだろ
IList<T>でList<T>を必ず返すという場合には使えるね。
string[] test = new string[4];
IList<string> test1 = test;
test1.Add("123");
でも、こういう代入がある可能性もあるから、そのままでは使えないでしょ
受け取る側では、List<T>が入ってるという保証がないわけだから
0212デフォルトの名無しさん
2008/11/28(金) 23:28:45すごいUIでふね
0213デフォルトの名無しさん
2008/11/28(金) 23:30:36考えるのは簡単だけど,それが実際に問題になることってめったに無いよ
>>211
型ということは,どこかに
class TextBox1 : TextBox { ... }
みたいなのがあるの? 何のために?
ジェネリックメソッドとか持ち出す前に,何かすごく基本的なところがわかってないと思う
0214デフォルトの名無しさん
2008/11/28(金) 23:31:18FormにTextBoxのコントロールが5個あって、
そのいずれか一つを選択したいってこと?
であるならば、どうして、その5つあるTextBoxから一つを選択したいのかな?
選択する理由がよくわからない。
0216デフォルトの名無しさん
2008/11/28(金) 23:33:59>考えるのは簡単だけど,それが実際に問題になることってめったに無いよ
だったら、すべての返り値と引数はObjectで問題ないってことになるから、
ここまでの話はすべて意味がなくなるね
そういう判断をせずにプログラムを組めるという「型」を公開する範囲と、
その面倒をどのレベルまで見ることができるかという点を論じてるんだからさ。
0217デフォルトの名無しさん
2008/11/28(金) 23:35:20複数のオブジェクトを、一つのメソッドで同時に返す必要があると思ったから、ジェネリックが有効だと思ったという話
一つのオブジェクトを返すだけでよければ、ジェネリックは必要ないということ
0218デフォルトの名無しさん
2008/11/28(金) 23:35:20あなたが欲しいと言っているのは
実行するとそのとき欲しかった型の特定のコントロールを返してくれる魔法のメソッドだから
0219デフォルトの名無しさん
2008/11/28(金) 23:37:23頭の中を整理しないでとりあえずレスしてみると
望んだ答えを教えてくれる魔法の回答者がいると思ってるから
0221デフォルトの名無しさん
2008/11/28(金) 23:39:560222デフォルトの名無しさん
2008/11/28(金) 23:41:25>>162じゃないからわからないけど、TextBoxというオブジェクトのインスタンスを一つだけ
返すメソッドが欲しいのであれば、ジェネリックを使う必要はまったくないよ。
だから、具体的に何をしたいのかを書いたほうが良い。
例えば、TextBoxが5個あって、その5個の中で「1」と記入されたTextBoxを返すにはどうすればいいか?とか
0223デフォルトの名無しさん
2008/11/28(金) 23:44:00いやTextBox1〜5は型らしいぞ
0224デフォルトの名無しさん
2008/11/28(金) 23:45:03型であれば,class TextBox1のような宣言がどこかにあるはずだ
もし本当に型だとすれば,一体何のためにそんなことをしているのか
君の頭の中を誰一人理解できていないんだ
0225デフォルトの名無しさん
2008/11/28(金) 23:47:55>>222も書いていることだが、質問の仕方がなってない。
自分の疑問を抽象化する能力もないくせに無理に抽象的に語らないこと。
具体的に何をしたいと思っていてどう躓いているのかを最初から書こうよ。
0226デフォルトの名無しさん
2008/11/28(金) 23:48:470227デフォルトの名無しさん
2008/11/28(金) 23:52:46ひとつの関数で同時に複数の値を戻したいなら戻り値専用のラッパクラスを準備する。
ひとつの関数で状況に合わせて異なる種類の型を戻したいなら、
ジェネリックよりオーバーロードの方が向いてると思う。
つまり・・・
public TextBox1 GetControl(){ .. }
public TextBox2 GetControl(){ .. }
public TextBox3 GetControl(){ .. }
public TextBox4 GetControl(){ .. }
public TextBox5 GetControl(){ .. }
0228デフォルトの名無しさん
2008/11/28(金) 23:54:070229デフォルトの名無しさん
2008/11/28(金) 23:56:07そうでした。書いた後気がついた。
0230デフォルトの名無しさん
2008/11/28(金) 23:57:55TextBox2 ITextBox2Getter.GetControl(){ .. }
TextBox3 ITextBox3Getter.GetControl(){ .. }
TextBox4 ITextBox4Getter.GetControl(){ .. }
TextBox5 ITextBox5Getter.GetControl(){ .. }
こうすれば解決
0231デフォルトの名無しさん
2008/11/29(土) 00:00:49void GetControl(out TextBox2 x) { }
:
うぽ
0232デフォルトの名無しさん
2008/11/29(土) 00:01:07023382
2008/11/29(土) 00:01:18呼び出すのはインスタンスを保持するプロパティです。
プロパティがnullで無ければ呼び出したインスタンスのプロパティを見たい。
public TextBox GetControl(string name)
{
switch(name)
{
case"TextBox1"
return TextBox1Instance;
case"CheckBox2"
return Checkbox2Instance;
case"PictureBox1"
return PictureBox1Instance;
}
}
private TextBox1 TextBox1Instance { get; set; }
private CheckBox2 CheckBox2 { get; set; }
private PictureBox1 PictureBox1 { get; set; }
メソッドを型ごとに複数作れば問題ない話なのかも知れないですが
一々めんどくさいので一つのメソッドでできないのかと>>82を質問しました。
0234デフォルトの名無しさん
2008/11/29(土) 00:02:35C#の何を知りたいか・・・だと思うけど、入門書という意味では、どれも大差ないと思うな・・。
一つ必要なのは、何か作るものを決めて、そのために悩むことが必要。
例えば、TextBoxを2つとLabelを一つ配置して、TextBoxに記入された数字をかけ算してLabelに表示するとか。
入門書を完遂するより、これを悩んで作るほうがよほど重要。
調べて分からなかったら、ここの人に聞いてみるのもいいし。
0235デフォルトの名無しさん
2008/11/29(土) 00:07:24意味あるの?それ
0236デフォルトの名無しさん
2008/11/29(土) 00:07:50あれってエイリアスみたいなもんなの?
何の目的で存在してるのかよくわからん
0237デフォルトの名無しさん
2008/11/29(土) 00:09:22だから推敲ってものを知らないのかよ。
分かってないんだから無理に分かってる風に書こうとするなって。
その文章じゃ誰にも内容が伝わらないと思うわ。
0238デフォルトの名無しさん
2008/11/29(土) 00:11:38publicの返り値の型がTextBoxなのに、
CheckBoxやPictureBoxのオブジェクトを返すことはできないよ。
TextBoxの名前から、目的とするTextBoxのオブジェクトを取得したいなら、
こういう方法があるね
private TextBox GetTextBox(string name)
{
TextBox textBox = (TextBox)this.Controls[name];
return textBox;
}
023982
2008/11/29(土) 00:24:05勉強になります。ありがとう。
最初にもらった回答のいくつかで解決できそうなのでもう落ちます。
>>162の意味とかはできてから考えます。
改めて回答くれた人ありがとう。
0240デフォルトの名無しさん
2008/11/29(土) 00:25:34{
return (T)this.Controls[name];
}
こうか
0241デフォルトの名無しさん
2008/11/29(土) 00:25:59{
return this.Controls[name] as T;
}
TextBox textBox1 = GetControl<TextBox>("TextBox1");
nameのコントロールが見つからなかったり、型が違ってたらnullを返す。
0243デフォルトの名無しさん
2008/11/29(土) 00:27:130244デフォルトの名無しさん
2008/11/29(土) 00:31:32へー、こんなのできるんだ。VS2008以降から?
string nameはユニークだから、帰ってくるオブジェクトとは1:1だから重なることはないんだよな・・
異なるobjectごとに別メソッドを書かなくていいから楽そうだね
0245デフォルトの名無しさん
2008/11/29(土) 00:31:39というより、絶対にいらんと断言できるわ。
024682
2008/11/29(土) 00:33:23あー、それです。ありがとうございます。
実は>>83さんに教えてもらって調べて近いところまで言ってたんですが
>>162からの流れって何だったんでしょうか・・・。
すごく時間を無駄にしたような気が・・・。
0247デフォルトの名無しさん
2008/11/29(土) 00:35:03動的にObjectが生成される場合とかには有効だと思うよ。
他にも、「ア」〜「ン」まで記述されたButtonがあって、
SQLから会社の頭文字だけを抽出して、存在する会社の頭文字だけ抽出してEnabled=trueするとか。
0248デフォルトの名無しさん
2008/11/29(土) 00:36:09どういうセンスしてるんだよw
どう考えてもコードの複雑性を不要に上げるだけだろこんなの。
0249デフォルトの名無しさん
2008/11/29(土) 00:36:13>すごく時間を無駄にしたような気が・・・。
日本語は難しいということだねw
0250デフォルトの名無しさん
2008/11/29(土) 00:37:16最初から>>233書いておけばすぐ解決してたぞw
次からは、最初に情報をしっかり書いてくれ
>>244
.NET2.0以降(VS2005〜)
0252デフォルトの名無しさん
2008/11/29(土) 00:40:26>>247でも書いたけど、動的にコントロールが追加されて、
例:TextBox_ID01、Label_ID02
それを、それぞれEnabled=Trueとかしたいときに、名前と型でオブジェクトが拾えるから便利だと思って。
0253デフォルトの名無しさん
2008/11/29(土) 00:44:49意味がわからない。
それなら>>240-241である必要はない。
Controlを返せば済む。そもそもそのための多態性だ。
それに具体的なコードを書く場面を想像すればわかるはずだと思うけど、
>>240-241のようなことをすると(いやまともなセンスしてれば絶対にしないが)
呼び出す側にもメソッドの中にも同じ分岐を書くハメになる。
0254デフォルトの名無しさん
2008/11/29(土) 00:49:19正しい設計を語りだすと
お前が>>82に、1から全部教える(代わりに書く)羽目になるぞ?
0255デフォルトの名無しさん
2008/11/29(土) 00:50:11それぞれ、別々のコントロールを探して返すメソッドを作るより、
名前からジェネリックメソッドを通じて取得できるほうが便利じゃん?
0256デフォルトの名無しさん
2008/11/29(土) 00:52:13だからどんなセンスしてりゃそういう結論になるのよ。
「名前」と「型」を対応させる同じ作業が呼び出す側にもメソッドの中にも
必要になるのに。
0257デフォルトの名無しさん
2008/11/29(土) 00:55:52例えば
foreach(i in array)
{
TextBox textBox = this.GetControl<TextBox>("TextBox" + i.ToString());
Label label = this.GetControl<TextBox>("Label" + i.ToString());
textBox.Visible = false;
label.Visible = false
}
とか?
0258デフォルトの名無しさん
2008/11/29(土) 00:57:09○ Label label = this.GetControl<Label>("Label" + i.ToString());
か
0259デフォルトの名無しさん
2008/11/29(土) 01:00:30だから(まあケアレスミスは突っ込まないとして)そのGetControlを
具体的に実装してみ?
で、無理くり1つにまとめたことで何か「嬉しい」ことがあったかどうか
考えてみれば、どれだけバカバカしいかすぐわかるよ。
0260デフォルトの名無しさん
2008/11/29(土) 01:02:16初心者の居場所なくなるじゃん
0261デフォルトの名無しさん
2008/11/29(土) 01:03:32すまん
これで不具合がないと思うから、何がばかばかしいかよくわからんな・・・
何かある?
0262241
2008/11/29(土) 01:04:26俺もControlを名前で扱う事なんてないから、こんな物いらんだろ。と思いながら書いたわけで(ry
何で書いたか?って、そりゃ彼が欲しがってたからさ
0263デフォルトの名無しさん
2008/11/29(土) 01:05:21不具合というより、単に手間を増やしてるだけに過ぎないから「バカバカしい」んだよ。
書いてみりゃ分かるよ。
本来書く前に分かるべきだけど。
0264デフォルトの名無しさん
2008/11/29(土) 01:06:09それはもちろん分かってるけどね。。
0265デフォルトの名無しさん
2008/11/29(土) 01:06:40んんん?なんで馬鹿らしいの?
煽りじゃなくて、マジでわからん。
すまないが教えてくれないか?
026682
2008/11/29(土) 01:18:26できましたー、ありがとう神様><
>>262
素人発想、わんぱく坊主あたりでw
>>263
私も気になるので今後のためにご教示ください
0267デフォルトの名無しさん
2008/11/29(土) 01:19:39微妙すぎて説明できん。サンプルコード書けばいいんだろうけどめんどい。
だから自分で書いてみれば絶対わかるって。
本質的にプログラミング初心者(つーか筋が悪い人)が行数が多いメソッドを
好む病気と同じだから。
0268デフォルトの名無しさん
2008/11/29(土) 01:23:40失せろゴミ
0269デフォルトの名無しさん
2008/11/29(土) 01:25:08例えば、コントロール決めうちで考えるとばからしいけど、
ASP.NETの各コントロールはSystem.Web.UI.WebControlsを継承してるので、
コントロールの種類如何を問わず、名前でVisibleをfalseしたりするのに有用だと思うんだが。
他にもASP.NETのRepeaterコントロールなんかでも、データベースの行数だけ
動的にコンとロールが動的に生成されるので、そのコントロールを名前から取得するのに
便利だと思うんだけど。
んー、何がばからしいのかがまったくわからないな・・・
>本質的にプログラミング初心者(つーか筋が悪い人)が行数が多いメソッドを好む病気と同じだから。
行数は少なくなると思うんだが・・・
教えて貰えないなら謎のままになって、なんか気持ちが悪いな・・・
027082
2008/11/29(土) 01:25:570271デフォルトの名無しさん
2008/11/29(土) 01:30:45それぞれのHTMLのセルに対してスタイルシートを適用するような場合でも、
メソッドが統一できるからコードが短くで済むんじゃないかな
iが行数で、動的に生成された行に配置されたボタンのクリックで、
その行のテーブルのセルのオブジェクトを取得して背景色を変えるとか。
HtmlTableCell tmpTDSyainType = (HtmlTableCell)this.tblSyainSyousai.FindControl("tdSyaunType" + i.ToString());
0272デフォルトの名無しさん
2008/11/29(土) 01:31:140273デフォルトの名無しさん
2008/11/29(土) 01:36:04>ASP.NETの各コントロールはSystem.Web.UI.WebControlsを継承してるので、
>コントロールの種類如何を問わず、名前でVisibleをfalseしたりするのに有用だと思うんだが。
自分で俺の言ってることを追認してるじゃん。
そうその場合は「コントロールの種類如何を問」う必要性はどこにもないでしょ?
>行数は少なくなると思うんだが・・・
なるわけないでしょ。
名前を引数にとってコントロールを返すメソッドを、コントロールの型ごとに
分けて書いた場合には必要がない処理を書く必要があるのだから。
筋が悪い人が1つのメソッドにゴチャゴチャ詰め込みたがる病気そのまんまだよ。
0274デフォルトの名無しさん
2008/11/29(土) 01:41:40>そうその場合は「コントロールの種類如何を問」う必要性はどこにもないでしょ?
それは、そういう継承元のClassを取得する場合でしょ。
この場合は、継承されていないようなオブジェクトにも利用できるから、
補足であって単純な追認とは違う。
>なるわけないでしょ。
いやなるでしょ。
>return (T)this.Controls[name];
ですべてのオブジェクトを持ってこれるのに、
別々のオブジェクトに対して処理したい場合には、それぞれのメソッドを作らないといけないわけだから。
0275デフォルトの名無しさん
2008/11/29(土) 01:52:51Tで返すためにTでキャストすることに何の欺瞞も不安も感じとれないのなら
何も言う言葉がないよ。
それってObjectで返して呼び出し側でTにキャストするのと何が違うの?
0276デフォルトの名無しさん
2008/11/29(土) 01:58:31Tで返すためにTでキャストすることなんて主張してないよ?
例えばよくあるパターンとして、データベースの内容に従って、社員の数だけコントロールが動的に生成される場合。
一人の社員に、名前、年齢、部署名などを記述するTextBoxが配置されると思うんだけど、
それぞれ、別のメソッドを設けなくとも
TextBox birthDay
Label age
CheckBox isMarry;
というオブジェクトを、一つのreturn (T)this.Controls[name]; というメソッドで取得ができるといってるわけ。
もしジェネリックメソッドが利用できなかったら、それぞれのコントロールを取得するメソッドを記述する必要がある。
しかも、CheckBoxはIsCheckedを操作したいとしたら、これはTextBoxにもLabelにもないプロパティだから
画一的に操作できないわけで。
>それってObjectで返して呼び出し側でTにキャストするのと何が違うの?
指定した型しか返ってこないから、それが保証される。
「だったらObjectでいいじゃん?」だったら話す意味はないから、そういう問いかけは無意味だと思うんだけど・・・。
027782
2008/11/29(土) 02:02:38おやすみなさい
0278デフォルトの名無しさん
2008/11/29(土) 02:04:34>Tで返すためにTでキャストすることなんて主張してないよ?
いやそう主張してるんだよ。
自分で自分の書いていることの意味を理解していないだけだ。
まあこれ以上俺が言っても耳に届かないだろうから他の人のセカンドオピニオンを聞いた方がいいだろうね。
0279デフォルトの名無しさん
2008/11/29(土) 02:14:23>いやそう主張してるんだよ。
return (T)this.Controls[name];
これを勘違いしてるだけじゃないか?
returnされるものが、<T>であれば、キャストする必要はないんだから。
0280デフォルトの名無しさん
2008/11/29(土) 02:17:40これもObjectで渡せば必要ないといえば必要ないし、場合によっては行数が増えるかもしれない。
でも受け渡される型をif文で判断しなくて済むようにオーバーロードを利用するパターンとかよくあるでしょ。
ジェネリックメソッドについても、それと同じこと。
0281デフォルトの名無しさん
2008/11/29(土) 02:23:41{
return (T)this.Controls[name];
}
これってwhere T : Controlで制約付いてるけど
そもそも同じ型でも内部的にキャストしてるのC#って?
同じ型ならそのまま渡すの?
0282デフォルトの名無しさん
2008/11/29(土) 02:30:01は宣言であって、実際に返しているのは
return (T)this.Controls[name];
this.Controlsが<T>を返すのなら、わざわざキャストしてreturnする必要はない
0283デフォルトの名無しさん
2008/11/29(土) 02:33:470284デフォルトの名無しさん
2008/11/29(土) 02:35:050285デフォルトの名無しさん
2008/11/29(土) 02:36:35ControlからTに暗黙的な変換はできないから、明示的にキャストしてやらないとダメじゃね?
0286デフォルトの名無しさん
2008/11/29(土) 02:38:460287デフォルトの名無しさん
2008/11/29(土) 02:45:590288デフォルトの名無しさん
2008/11/29(土) 02:47:30なので、this.Controls[name]でなくて、例えば自前で実装したメソッドで、
this.GetCntls(name)が<T>を返すのなら、わざわざキャストする必要がないってこと。
この場合は、this.Controlsがobjectを返すから<T>を返さないといけないというだけ。
0289デフォルトの名無しさん
2008/11/29(土) 02:50:06>既にあるものをまた作ってるところ
それをいったらすべてが無意味だろ。
なら高級言語なんか必要なくて、昔のマシン語レベルでしこしこ書いてればいいわけだから。
既にあるものだけど、使い勝手によっては便利だから、
様々な手法や言語が改良されて世に出てきているわけで。
0290デフォルトの名無しさん
2008/11/29(土) 02:53:160291デフォルトの名無しさん
2008/11/29(土) 02:55:03{
Control tmp = parent.Controls[name];
if(tmp is T)
{
child = (T)tmp;
return true;
}
else
{
child = default(T);
return false;
}
}
こういうのならどうだべさ?
0292デフォルトの名無しさん
2008/11/29(土) 03:01:11具体的なこと何一つわからなかったけど、なんだったんだ?って感じ
0293デフォルトの名無しさん
2008/11/29(土) 03:01:540294デフォルトの名無しさん
2008/11/29(土) 03:02:56そういうメソッドを作らねばならないなら、俺はこうする。
child = parent.Controls[name] as T;
return child != null;
>>292
1つ言えることは、>>82がTextBox1からTextBox5などという「型」を作っていると告白したのが元凶。
0295デフォルトの名無しさん
2008/11/29(土) 03:05:06今あるC#のスレって初心者用と相談室と宿題と
あとは複合・単発ネタくらいなんかな。
なんで総合みたいなスレたってないの?
0296デフォルトの名無しさん
2008/11/29(土) 03:07:25まだまだだなちくしょう
0297デフォルトの名無しさん
2008/11/29(土) 03:10:51前は.NET総合みたいなのもあったけど、あれは埋まってから誰も立てなかったな。
総合作っても 過疎・質問・終わりの見えない議論 のどれかになる予感。
0298デフォルトの名無しさん
2008/11/29(土) 03:14:55すぐ終わっちゃうからw
0299デフォルトの名無しさん
2008/11/29(土) 07:13:05意味が無いとか無駄とか絡んでいただけに見える終わり方だな。
0300デフォルトの名無しさん
2008/11/29(土) 08:38:35>>299とかに
0301デフォルトの名無しさん
2008/11/29(土) 08:45:34ごめんなさいごめんなさい
0302デフォルトの名無しさん
2008/11/29(土) 10:08:21ジェネリックにするとかえって不便になったりするんだよね
ジェネリック型にダウンキャストしたり,typeof(T)とかやった時点で実質的な意味は失われるんだし
0304デフォルトの名無しさん
2008/11/29(土) 12:26:16SplitterのCollapseってどうやるのが一般的なの?
0305デフォルトの名無しさん
2008/11/29(土) 13:52:390306デフォルトの名無しさん
2008/11/29(土) 15:55:58秀和システムの「Visual C# 2008パーフェクトマスター」と言うのを買ってきました。
全編カラーで見やすいです。
0307デフォルトの名無しさん
2008/11/29(土) 18:22:19とりあえず、TextBox2個、Labelを1個配置して、
TextBoxに入力された数字を足し算してLabelに表示するソフトを作りなさい
0308デフォルトの名無しさん
2008/11/29(土) 18:28:48そうやって遊んでると必ず限界にぶつかるから,それから本格的に言語の勉強するといいよ
何が嬉しいか,何に使うかが分かってないとなかなか頭に入らないからね
0309デフォルトの名無しさん
2008/11/29(土) 18:28:53めんどくさいんでこんなんでいいですか
try { label1.Text = Convert.ToString(Convert.ToInt32(textBox1.Text) + Convert.ToInt32(textBox2.Text)); }
catch { label1.Text = "0"; }
0310デフォルトの名無しさん
2008/11/29(土) 18:31:470点
0311デフォルトの名無しさん
2008/11/29(土) 18:36:220312デフォルトの名無しさん
2008/11/29(土) 18:40:320313デフォルトの名無しさん
2008/11/29(土) 18:49:290314デフォルトの名無しさん
2008/11/29(土) 18:52:09オブジェクトは型です。
金型にプラスティックを流し込むと同じ製品がいくつも作れるられるように、
オブジェクトから製品をいくつも作ることができます。
この製品のことをインスタンスといいます。
みたいなこと書いてあるけど、これのほうがよっぽどわかりにくいよな。
0315デフォルトの名無しさん
2008/11/29(土) 18:56:32もっとも俺が読んだ本はタイヤキの型とタイヤキだったけど
同様にanimalクラスからcatやdogを派生してる例を突っ込む奴とかいるけど
理解できない
そんなわかりにくいか?
0316デフォルトの名無しさん
2008/11/29(土) 18:57:570317デフォルトの名無しさん
2008/11/29(土) 18:59:57ジェネリックメソッドを頑なに拒否していた人が
また喧嘩を売りにきましたよ
0318デフォルトの名無しさん
2008/11/29(土) 19:01:270319デフォルトの名無しさん
2008/11/29(土) 19:06:160320デフォルトの名無しさん
2008/11/29(土) 19:59:44参照型・値型・ポインタ型と考えればいいの?
0321デフォルトの名無しさん
2008/11/29(土) 20:06:59だから分かってない人が無理して分かったように語らないこと。
意味不明すぎるよその文章。
0322デフォルトの名無しさん
2008/11/29(土) 20:10:50それを格納する変数にはその存在を指し示すアドレス
つまりポインタが入ってるんだよ?
0323デフォルトの名無しさん
2008/11/29(土) 20:12:370324320
2008/11/29(土) 20:13:01型の種類には2つの系統があるよね
○クラス・構造体・列挙型・デリゲート型
○参照型・値型
ポインタ型はどちらなんだろうと思った
0325320
2008/11/29(土) 20:15:11型の分類方法といえばいいかな
0326デフォルトの名無しさん
2008/11/29(土) 20:16:200327デフォルトの名無しさん
2008/11/29(土) 20:18:38private List<string> names;
public List<string> Names
{
get
{
return names;
}
}
これだと外部から変更できてしまう。
変更できないように間に噛ませるクラスなんていうんだっけ?
0328デフォルトの名無しさん
2008/11/29(土) 20:21:12構造体は値型
なのでコピーされる
0329デフォルトの名無しさん
2008/11/29(土) 20:22:10ReadOnlyCollection<T>
names.AsReadOnly()で作れる
プロパティで毎回作って返すのはあんまりよろしくないので
コンストラクタあたりで作って別のフィールドに入れとく
0330デフォルトの名無しさん
2008/11/29(土) 20:22:16昨晩の再現の予感
public IList<string> Names
{
get { return names.AsReadOnly(); }
}
0331デフォルトの名無しさん
2008/11/29(土) 20:24:18ありがとう。
0332デフォルトの名無しさん
2008/11/29(土) 20:28:21解釈の仕方はいろいろあるから、MSDNの記述に従うのが吉。
0333デフォルトの名無しさん
2008/11/29(土) 20:31:15これやられると使うときにいちいち結果をキャッシュしないといけなくなるんだよね
中身は連動してるから,一回作ったらフィールドに入れといた方がいい
0334デフォルトの名無しさん
2008/11/29(土) 20:31:39なるほど
ありがとうございます
0335デフォルトの名無しさん
2008/11/29(土) 20:39:31毎回作って返していいぐらいの薄いラッパだよ。
元のコレクションが変更されればそれはラッパにも反映される。
public ReadOnlyCollection( IList<T> list )
逆にスナップショットが必要なら使う側でコピーしないといけない。
0336デフォルトの名無しさん
2008/11/29(土) 20:48:52ReadOnlyList<T>はどーせ変更できないんだからIList<T>通さずにそのまま返していいよ
その方が変更できないことがはっきりして分かりやすい
0337336
2008/11/29(土) 20:50:020338デフォルトの名無しさん
2008/11/29(土) 20:57:51みんな自分で作ってるんじゃないの
0339デフォルトの名無しさん
2008/11/29(土) 21:07:02Formで初期表示前にコントロールに値を設定したり初期化処理するのは
よくあるケースだと思うのですが、この場合FormのコンストラクタとOnLoad
イベントとどちらに書くのが正しいやり方なのでしょうか?
今いじっている他の方が作成されたソース見てたら
public class AboutDialog : System.Windows.Forms.Form
{
AboutDialog {
InitializeComponent();
なんかの初期処理
コントロールへの初期設定
}
protected override void OnLoad(System.EventArgs e) {
なんかの初期処理
コントロールへの初期設定
}
}
とこんな感じでどちらにも処理書いてたりしているのですが、作法としては
どちらが正しいのでしょうか?
0340デフォルトの名無しさん
2008/11/29(土) 21:14:58System.Collections.ObjectMod.KeyedCollection<TKey, TItem>
抽象クラスならあるな。
System.Collections.ObjectModのは裏方のクラスだから、
そのまま使うようなことはしないのがマナーだと思うよ。
0341デフォルトの名無しさん
2008/11/29(土) 21:29:37コンストラクタはFormのインスタンスを作成した時しか呼ばれないが
LoadはShowDialogする度に呼ばれる
0342デフォルトの名無しさん
2008/11/29(土) 21:33:19あ、そうか...
先生、理解しました!
まさに目から漆が落ちた気分です。
ありがとうございました。
0343デフォルトの名無しさん
2008/11/29(土) 21:40:38>Formで初期表示前にコントロールに値を設定したり初期化処理するのはよくあるケースだと思うのですが
プロパティを設定して、それによってFormの初期化をしたい場合には、Loadに記述したほうがいいと思う。
NullpoForm nullpoForm = new NullpoForm();
nullpoForm.Caption = "NULLPO";
nullpoForm.FormType = 1;
nullpoForm.FormSize = 200;
というように、プロパティを設定してOnLoadでそれに従って表示を変えるという感じ。
0344デフォルトの名無しさん
2008/11/29(土) 21:41:170345デフォルトの名無しさん
2008/11/29(土) 21:42:030346デフォルトの名無しさん
2008/11/29(土) 21:48:30ソフトによってもそれぞれ
0347デフォルトの名無しさん
2008/11/29(土) 22:20:410348デフォルトの名無しさん
2008/11/29(土) 22:31:33普通は使い回さないですね(;´Д`)
どちらに書いてもプログラム的には問題ないのであくまで作法上の
話を聞きたかっただけなんです。
結果、>>341だったので、あ、そういえばそうだと鱗が落ちたわけです。
>>343
プロパティ設定はInitializeComponent()のこと?
で、表示を変える場合はOnLoadでやるということですか?
0349デフォルトの名無しさん
2008/11/29(土) 22:32:12設定ダイアログみたいなものを弱参照で持ちたいことは場合によってはあるんじゃないの?
いずれにせよ、>>339は作法とか何とかそういうVB厨チックな思考はやめたほうがいいよ。
0350デフォルトの名無しさん
2008/11/29(土) 22:38:53Formもオブジェクトでインスタンスとして存在するわけだから、
そのインスタンスも当然、プロパティを保持しているわけで。
コンストラクタで全部初期化しようとしたら、
AboutDialog() { }
の引数で、初期設定の情報をすべてやりとりしなきゃいけないわけでしょ?
0351デフォルトの名無しさん
2008/11/29(土) 22:48:18List<string>を使わないとだめでしょうか?
0352デフォルトの名無しさん
2008/11/29(土) 22:51:18今となってはそういうのは存在価値がなくなったから,ジェネリックコレクションだけを使ってればいいよ
0353デフォルトの名無しさん
2008/11/29(土) 22:56:48まあList<string>の方が良いけどな
0354デフォルトの名無しさん
2008/11/29(土) 22:58:420355デフォルトの名無しさん
2008/11/29(土) 22:59:48http://d.hatena.ne.jp/matturo/20060722/1153586919
このサイトみてStringCollectionの方がいいと読んだんですが
List<string>のほうがいいんですか?
0356デフォルトの名無しさん
2008/11/29(土) 23:02:46ジェネリックが使えない.NET1.1が対象だと思う
0357デフォルトの名無しさん
2008/11/29(土) 23:12:38と思ったが2006年中ぐらいはまだ.NET2.0は主流になりえてなかったっけ?
0358デフォルトの名無しさん
2008/11/29(土) 23:14:430359デフォルトの名無しさん
2008/11/29(土) 23:15:522.0は06/11月リリース
0360デフォルトの名無しさん
2008/11/29(土) 23:16:120361デフォルトの名無しさん
2008/11/29(土) 23:18:38だから、どこで初期化するかなんかは状況しだいでしょうが
とりあえずOnLoadが何度も呼ばれる可能性があることを知らなかったわけだし
0362デフォルトの名無しさん
2008/11/29(土) 23:21:44質問しといて逆ギレとはいい神経してるな
0363デフォルトの名無しさん
2008/11/29(土) 23:31:44あれ?
ということは、StringCollectionを使う意味は何もないということですか?
速度が早くなるとかそういうのもないんでしょうか
0364デフォルトの名無しさん
2008/11/29(土) 23:37:100367デフォルトの名無しさん
2008/11/30(日) 00:07:11よくそんなんで社会人やってられんな
0368デフォルトの名無しさん
2008/11/30(日) 00:11:27うるせぇ氏ね
0369デフォルトの名無しさん
2008/11/30(日) 00:40:030370デフォルトの名無しさん
2008/11/30(日) 00:45:100371デフォルトの名無しさん
2008/11/30(日) 00:47:530372デフォルトの名無しさん
2008/11/30(日) 00:48:50お前=俺のことだぞ?
0373デフォルトの名無しさん
2008/11/30(日) 00:50:230374デフォルトの名無しさん
2008/11/30(日) 00:51:240375デフォルトの名無しさん
2008/11/30(日) 00:52:20|| ̄ Λ_Λ
||_(Д`; ) 「なに?このお前ばっかりのスレ・・・」
\⊂´ )
( ┳'
0376デフォルトの名無しさん
2008/11/30(日) 00:53:56そう、俺は窒素並みに沸点が低いんだ。
なのに熱い男といわれるんだぜ?
0377デフォルトの名無しさん
2008/11/30(日) 00:55:29∧_∧ ∧_∧ ∧_∧
( ・∀・) ( ・∀・) ( ・∀・)
⊂ ⊂ ) ( U つ ⊂__へ つ
< < < ) ) ) (_)|
(_(_) (__)_) 彡(__)
0378デフォルトの名無しさん
2008/11/30(日) 01:41:15配置すると自然にそうなるじゃないか。
0379デフォルトの名無しさん
2008/11/30(日) 11:00:410380デフォルトの名無しさん
2008/11/30(日) 11:13:51AboutDialogの
0381デフォルトの名無しさん
2008/11/30(日) 12:44:14About dialogのHPは(ry
0382デフォルトの名無しさん
2008/11/30(日) 12:51:57何も笑えないぞ。
むしろ苛立ちを喚起されるだけ。
20年ぐらいは生きてるんだろうから、いい加減自分の笑いの感性は
標準的な人間とズレているんだってことを学習したらどうだよ。
0383デフォルトの名無しさん
2008/11/30(日) 12:53:49趣味が人と違うからじゃない。
その鈍感さを指して蔑まれているとなぜ分からんのかね。
0384デフォルトの名無しさん
2008/11/30(日) 13:08:46せめて一、二行に抑えてくれ
0385361
2008/11/30(日) 13:58:07ヲタ(笑)
分からんのかね(笑)
0386デフォルトの名無しさん
2008/11/30(日) 14:03:43おまえの自分はオタじゃないアピールなんてどうでもいいんだよ
0387339
2008/11/30(日) 14:47:42いろいろと書き込むかね?
>>341の回答で全て終わってるだろ。
しかも>>381はスルーされるだろと思って書いたらわざわざ
噛みついてきて。
>>382、>>383は絶対おっさんだろ?
消えろよな、話合わねぇんだからよ。
>>382、>>383のバカ以外の回答してくれたみなさん、ありがとうございました。
0388デフォルトの名無しさん
2008/11/30(日) 15:25:36頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
0389デフォルトの名無しさん
2008/11/30(日) 15:30:570390デフォルトの名無しさん
2008/11/30(日) 15:33:39頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
お前キモイ、自分の性格が悪いことに気づくべきだよ。
頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
お前キモイ、自分の性格が悪いことに気づくべきだよ。
頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
お前キモイ、自分の性格が悪いことに気づくべきだよ。
頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
お前キモイ、自分の性格が悪いことに気づくべきだよ。
頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
お前キモイ、自分の性格が悪いことに気づくべきだよ。
頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
お前キモイ、自分の性格が悪いことに気づくべきだよ。
頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
お前キモイ、自分の性格が悪いことに気づくべきだよ。
頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
お前キモイ、自分の性格が悪いことに気づくべきだよ。
頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
お前キモイ、自分の性格が悪いことに気づくべきだよ。
頭の悪い奴ってのは、自分が低レベルだということに気づいていないから困る。
精神レベルも低い。
0391デフォルトの名無しさん
2008/11/30(日) 15:35:240392デフォルトの名無しさん
2008/11/30(日) 15:47:55モキモキモキモキモキモキモキモキモキモキモキモキモキモキモ
イモイモイモイモイモイモイモイモイモイモイモイモイモイモイ
0393デフォルトの名無しさん
2008/11/30(日) 15:49:02モヤキイモヤキイモヤキイモヤキイモヤキイモヤキイモ
0394デフォルトの名無しさん
2008/11/30(日) 15:57:360395デフォルトの名無しさん
2008/11/30(日) 16:32:07おっさん、必死だな( ´,_ゝ`)プッ
0396341
2008/11/30(日) 16:39:12とりあえずこの件はここで手打ちな
文句がある奴は表に出ろ
0397デフォルトの名無しさん
2008/11/30(日) 16:42:360398デフォルトの名無しさん
2008/11/30(日) 16:45:150399デフォルトの名無しさん
2008/11/30(日) 20:23:110400デフォルトの名無しさん
2008/11/30(日) 20:34:580401デフォルトの名無しさん
2008/11/30(日) 20:40:360402デフォルトの名無しさん
2008/11/30(日) 20:45:40たいして変わらなかったという故事から。
0403デフォルトの名無しさん
2008/11/30(日) 20:51:49俺は足も書けるぜと調子に乗ったら、足を書いている間に負けてしまった故事から。
余計なこと。
0404デフォルトの名無しさん
2008/11/30(日) 21:05:370405デフォルトの名無しさん
2008/11/30(日) 21:54:400406デフォルトの名無しさん
2008/11/30(日) 23:10:24先手:オレ
後手:森内俊之(指導)
▲2六歩 △3四歩 ▲7六歩 △3五歩 ▲2五歩 △3二飛
▲4八銀 △6二玉 ▲5八金右 △7二玉 ▲6八玉 △3六歩
▲同 歩 △同 飛 ▲3七歩 △7六飛 ▲2二角成 △同 銀
▲6五角 △9五角 まで20手で森内の勝ち
0407デフォルトの名無しさん
2008/11/30(日) 23:32:550408デフォルトの名無しさん
2008/12/01(月) 00:22:04で、俺はこれに対するレスを待っていたわけだが・・。
0409デフォルトの名無しさん
2008/12/01(月) 00:23:380410デフォルトの名無しさん
2008/12/01(月) 01:15:24通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。
というエラーがたまに出るのですが、この例外を補足したらどのように処理すればいいでしょうか?
通信時間、通信バイト数、通信間隔によらず再現性がないので
起きないようにするのは諦めて、起きた場合適切に対処するようにしようと思いました。
よろしくお願い致します。
0411デフォルトの名無しさん
2008/12/01(月) 01:37:030412デフォルトの名無しさん
2008/12/01(月) 03:04:07Port1300を使うことにしてるんですけど、なんか使われる可能性あるんでしょうか
0413デフォルトの名無しさん
2008/12/01(月) 03:44:04h323hostcallsc 1300/tcp H323 Host Call Secure
h323hostcallsc 1300/udp H323 Host Call Secure
#192.168.0.1 と 192.168.0.2 は、わたしが使っている IP アドレスですので勝手に使わないでください。なおこの件に付いては
0414デフォルトの名無しさん
2008/12/01(月) 07:25:36ttp://www.vwnet.jp/mura/tcpip-port.htm
0415デフォルトの名無しさん
2008/12/01(月) 09:40:05192.168.0.1はいいけど、127.0.0.1は私のアドレスだから使わないでね
0416デフォルトの名無しさん
2008/12/01(月) 11:45:010417デフォルトの名無しさん
2008/12/01(月) 12:33:36可能であればその方法もお願いします。
0418デフォルトの名無しさん
2008/12/01(月) 12:35:140419デフォルトの名無しさん
2008/12/01(月) 12:53:180420417
2008/12/01(月) 12:59:15いいだけのような気がしてきました。帰宅後不明な点あれば
再度質問します。
0421デフォルトの名無しさん
2008/12/01(月) 14:36:12string RegexNames = null;
string RegexPeople = null;
RegexNames = ("みかん|いちご|りんご|");
RegexPeople = ("姫|王|王妃|");
if (Regex.Match("みかん", RegexNames).Success){
MessageBox.Show("みかんはあります");
}
if (Regex.Match("姫", RegexNames).Success){
MessageBox.Show("姫は果物です。");
}
if (Regex.Match("姫", RegexPeople).Success){
MessageBox.Show("姫はいます");
}
これで、○×○のつもりなのですが、ぜんぶ○になりなぜかふたつめの姫は果物です。でもマッチしてしまいます。
どこがまずいのでしょう? アドバイスお願いします。
0422デフォルトの名無しさん
2008/12/01(月) 14:38:320423デフォルトの名無しさん
2008/12/01(月) 16:16:200424デフォルトの名無しさん
2008/12/01(月) 16:30:08>姫|王|王妃 | ← これかよw
0425デフォルトの名無しさん
2008/12/01(月) 16:58:52>>414
>>415
ありがとうございます
H323とかいうのが使ってるんですね
取り敢えず>>414でUnassingnedのポートにして様子を見てみます
0426デフォルトの名無しさん
2008/12/01(月) 17:58:51続けるならネットワークプログラミングのスレがいいかもね
0427デフォルトの名無しさん
2008/12/01(月) 18:11:48コマンドプロンプトで「netstat -an」したら使用されている
ポートが確認出来るから、10000以上で空いているポート使えば
いいと思いますよ。
0428デフォルトの名無しさん
2008/12/01(月) 19:05:26ボタンをクリックすると、ボタン表面の描画が右下に2ピクセルほど動きますよね。
(ボタンを押したままボタンの外側にカーソルを動かすと、その状態が元に戻る。)
これは、マウスの動きに反応して、ボタン表面の描画の原点がずらされているものと思うのですが
この原点の値を取得することはできるでしょうか?
0429デフォルトの名無しさん
2008/12/01(月) 19:10:23原点は(クライアント座標で)(x, y) = (0, 0)に決まってるじゃん。
いくら初心者でもそんなところで躓いてるようじゃヤバいんじゃないのマジで。
0430デフォルトの名無しさん
2008/12/01(月) 19:18:02クライアント座標は(0. 0)だとしてもボタンがクリックされてるときだけ、
どれかのプロパティが(2, 2)になったりしないのかな?
自分でも探してみたのですが見つからなくて
0431デフォルトの名無しさん
2008/12/01(月) 19:29:030432デフォルトの名無しさん
2008/12/01(月) 19:30:45ないですか…
ありがとうございました
0433デフォルトの名無しさん
2008/12/01(月) 19:48:100434デフォルトの名無しさん
2008/12/01(月) 19:56:59エスパーするに、ボタンがポイントなりホールドされているかどうかを示すプロパティが
ないかどうか、ってことだな。
そりゃ、自分でマウス関係のイベントを拾って状態を管理するんだよ。その上で描画内容を
適当に変えるわけ。押したら位置がずれるコントロールばかりじゃないだろ?
ちなみに、蛇足だが、クリックってのはボタンを放して初めて成り立つものだからな。
0435デフォルトの名無しさん
2008/12/01(月) 20:01:340436デフォルトの名無しさん
2008/12/01(月) 20:08:23ESP能力低すぎないか?w
俺も最初読めなかったが、どうも>>428はボタンが印下されたときの、
ボタンのテキストならテキストの描画位置の(通常状態に対する)オフセット量を
知りたいんだろう。
これって>>435の言うとおりOS依存らしいので、取得できるとしてもレジストリとかからに
なるんだろうねたぶん。
0437デフォルトの名無しさん
2008/12/01(月) 20:10:290438デフォルトの名無しさん
2008/12/01(月) 20:16:13APIスレの作法をこんな所まで持ち込むなw
0439デフォルトの名無しさん
2008/12/01(月) 22:12:090440デフォルトの名無しさん
2008/12/01(月) 22:15:52デザイナならコントロール右クリックから手前にしたりとか
0441デフォルトの名無しさん
2008/12/01(月) 22:34:27その月の第何週目となるか求めるには
どのようにしたら良いのでしょうか?
週の始まりは日曜日から始まるとして考えてみたのですが
イマイチわかりません。
0442デフォルトの名無しさん
2008/12/01(月) 22:58:17ここで、n日がHoge曜日 ならば n-7m日もHoge曜日
n-7m>0を満たす最大のmを求め、そのときのn-7mをpとする
p日の曜日も分かるから、曜日的に1日の曜日より前ならp日は第二週、
そうでないなら第一週である。pの周目をqとすると、p=n-7mであるから
n=7m+pすなわちn日はq+m週である。
0443デフォルトの名無しさん
2008/12/01(月) 23:15:50まず日曜日は月曜日より、月曜日は火曜日より「小さ」くなるように
曜日に番号を振る。
今月の一日の曜日と選択された日の曜日を比べて、「小さい」なら
選択された日xは第(((x - 1) / 7) + 2)〜曜日だ。
0444デフォルトの名無しさん
2008/12/01(月) 23:16:010445441
2008/12/01(月) 23:16:26それともDateTime で求められますか?
0446デフォルトの名無しさん
2008/12/01(月) 23:24:14ググレ
0447デフォルトの名無しさん
2008/12/01(月) 23:32:51MonthCalendarによって選択された日付の情報から
その月の一日をあらわすDateTimeを作るぐらいの知恵は持とうよ。
これ初心者とか関係ないレベルの話だと思うよ。
0448441
2008/12/01(月) 23:37:52ありがとうございました。
これで失礼します。
0449417
2008/12/02(火) 00:34:57すれば目的は達成出来そうでした。
ところで、WndProcでWM_DRAWCLIPBOARDを拾っていると
エクセル等では2回程メッセージが来てしまうのですが
最初のメッセージしか拾わない方法はないでしょうか。
(APIスレで聞いた方がいい?)
0450デフォルトの名無しさん
2008/12/02(火) 00:40:450451デフォルトの名無しさん
2008/12/02(火) 02:36:031日の曜日x(0〜6)、d日は第n週目とすると
n = 1 + (d + x - 1) / 7
0452デフォルトの名無しさん
2008/12/02(火) 03:17:240453デフォルトの名無しさん
2008/12/02(火) 11:48:08起動後できるだけ早いうち(たとえば10分以内とか)のアイドル時間に、
一度だけ処理をしたいときに、
アイドル状態であるかどうかを判定するには、どうすればよいですか?
キー入力があるかどうかと、マウスの移動の有無と、
CPUの処理量を調べればいいのかと思いますが、
それぞれなんというメソッドを使うのか、アドバイスをお願いします。
0454デフォルトの名無しさん
2008/12/02(火) 12:23:330455デフォルトの名無しさん
2008/12/02(火) 13:40:230456デフォルトの名無しさん
2008/12/02(火) 14:42:09もういないだろうけど。
enum Week
{
First,
Second,
Third,
Fourth,
Fifth,
Sixth
}
Week GetWeek(DateTime time, CultureInfo culture, Calendar cal)
{
DateTime firstDayOfMonth = new DateTime(time.Year, time.Month, 1);
CalendarWeekRule weekRule = culture.DateTimeFormat.CalendarWeekRule;
DayOfWeek dow = culture.DateTimeFormat.FirstDayOfWeek;
int week1 = cal.GetWeekOfYear(time, weekRule, dow);
int week2 = cal.GetWeekOfYear(firstDayOfMonth, weekRule, dow);
return (Week)(week1 - week2);
}
とか。
0457デフォルトの名無しさん
2008/12/02(火) 15:07:44CとVB6.0の経験が少しある程度の若輩者です
この度C#でのWindowsアプリケーションを開発することになり、現在スタディ期間です
関数はClassファイルに記述し、フォーム内でクラス宣言すればいいことはわかったのですが
グローバル変数やグローバル定数を定義する場所と、対象ファイルがよく理解できません
普通にクラスファイルにグローバル値を設定し、クラス.変数(定数)のように使えばいいのでしょうか?
グローバル値を使うことが、C#で普通のことなのかそもそもわからないのですが…
それともクラスファイルに定義するのではなく、別のファイルに定義するのが一般的なのでしょうか?
本当におかしな質問で申し訳ありませんが、宜しくお願いします
0458デフォルトの名無しさん
2008/12/02(火) 15:26:05はい
0459デフォルトの名無しさん
2008/12/02(火) 16:55:17変数はクラスのメンバとして宣言する
グローバル変数や定数はないと思ったほうがいい
スタディ期間がどんだけか知らんが本読むかWebサイトざーっと見れば
そんな質問しないだろってレベル
0460デフォルトの名無しさん
2008/12/02(火) 17:44:02これどういうことですか?
編集していいの?駄目なの?
0461デフォルトの名無しさん
2008/12/02(火) 17:52:26頭の固いおバカちゃん
質問者の言いたいことをちゃんと理解してあげましょうね
0462デフォルトの名無しさん
2008/12/02(火) 17:55:490463デフォルトの名無しさん
2008/12/02(火) 18:34:210464デフォルトの名無しさん
2008/12/02(火) 18:53:09C#では、ファイルに1つのクラスのある状態がVBのクラスモジュールに最も近い。
ただし、フォームはVisual Studioがやや特別扱いしているものの、
C#言語としては標準・クラス・フォームモジュールのような区別はない。
設計次第で好きに使え。
まああんまりstaticに溢れたVBを抜け切れていないようなコードは好まれないがな。
0465デフォルトの名無しさん
2008/12/02(火) 20:12:38ファイル分けたかったらpartial class使えばOK
0466デフォルトの名無しさん
2008/12/02(火) 20:16:410467デフォルトの名無しさん
2008/12/02(火) 20:21:15世間を吹いてるオブジェクト指向言語の風の匂いくらい嗅いだことあんだろ
0468デフォルトの名無しさん
2008/12/02(火) 20:31:20新聞社かおのれは
0469デフォルトの名無しさん
2008/12/02(火) 21:16:180470デフォルトの名無しさん
2008/12/02(火) 21:51:57バカ丁寧に説明して理解できるレベルじゃないんだから動く方法を適当に答えてやればいいんだよ
そのうちほっといても理解できるようなことだ
それを重箱の隅をつつくような御託並べて459は本物の天狗だな
0471デフォルトの名無しさん
2008/12/02(火) 21:54:02動く方法を適当に答えてくれない人は黙っててください。ウザいだけです。
0472デフォルトの名無しさん
2008/12/02(火) 21:54:59ノノ `'ミ
/ y ,,,,, ,,, ミ
/ 彡 `゚ ゚' l
〃 彡 "二二つ
| 彡 ~~~~ミ
,-‐― |ll 川| ll || ll|ミ―-、
/ |ll | ヽ
/ z W`丶ノW ヽ
/ \\ / / |
/ 天 \`i / / 狗 |
0473デフォルトの名無しさん
2008/12/02(火) 21:55:21理解するとか別の話だ
建前上の授業だけすればいいような日教組じゃないんだから
0474デフォルトの名無しさん
2008/12/02(火) 21:59:32業務でスタディ期間とか言ってるタコになんかしてやる必要あんの?
そのコストは会社が払うべきじゃないのかなぁ
0475デフォルトの名無しさん
2008/12/02(火) 22:07:400476デフォルトの名無しさん
2008/12/02(火) 22:08:26なんでここに居るの?
0477デフォルトの名無しさん
2008/12/02(火) 23:14:342台のPCの内、片方にはなぜかツールボックスに型付きデータセットが追加されません。
試しに新しいプロジェクトを作ってすぐにデータセットを追加して、空のデータテーブルを
置いてビルドした時点で、片方はツールボックスに表示されるのに、片方は
追加されません。
何かツールボックスの表示の設定とかが有るのでしょうか?
0478477
2008/12/02(火) 23:20:43その画面デザイナを表示した時ですね。
その時にツールボックスに出るはずの型付データセットが表示されません。
0479デフォルトの名無しさん
2008/12/03(水) 00:39:360480デフォルトの名無しさん
2008/12/03(水) 01:01:09DBからデータを取得しDataSetに格納しているのですが、そのデータはアプリ起動中の間保持したいと考えております。
1.カプセル化し静的に保持する
2.Session、またはCacheを使い保持する
二通り考えていますが、どちらを使った有効性が高いでしょうか?また別の方法で良い方法はありますか?
ちなみに返されるデータの量は、テーブル数5、各20フィールド程です。
またマスターテーブルですので、テーブル内容の変更は基本的にありません。
0481デフォルトの名無しさん
2008/12/03(水) 06:03:51キャッシュに保持するのが楽。
0482デフォルトの名無しさん
2008/12/03(水) 07:54:110483デフォルトの名無しさん
2008/12/03(水) 09:11:400484デフォルトの名無しさん
2008/12/03(水) 10:28:45ありがとうございました。
NextValue()で値を取るんですね。
0485デフォルトの名無しさん
2008/12/03(水) 11:26:18今までVB6とかである数値のビットが立っているかどうかは
8 and 2
8 and 4
みたいな感じでそれぞれの結果が 2,4 が返るとビットがON 0の場合ビットがOFF
と判定していたのですが
C#だと
8 & 2
8 & 4
のように記述し、それぞれの結果が 2,4 が返るとビットがON 0の場合ビットがOFF
と言うように考えていいのでしょうか?
それとも何か他のC#風のやり方というのがあるのでしょうか?
ご存知の方よろしくお願いします。
0486デフォルトの名無しさん
2008/12/03(水) 11:33:190487デフォルトの名無しさん
2008/12/03(水) 11:35:31サンクスです。
安心したw
0488デフォルトの名無しさん
2008/12/03(水) 14:41:24int hoge;
}
class B{
A m_a;
public B(){
}
public RenewA(){
m_a = new A();
}
public GetA(){
return m_a;
}
}
class C{
List<A> m_listA;
}
Bはメンバ変数としてAのインスタンスを持っており、時々中身がRenewメソッドで変更されます。
CのメンバであるAのリストは、BのGetAメソッドで時々もらって集めたものです。
クラスというのは参照型なので、
Cのリストに入っているAのインスタンスたちは
Bのメンバm_a参照ということになり、
Bでm_aが新調されると、Cのリストの中身は全部入れ替わってしまうのでしょうか?
それとも、CのリストはBからGetした段階でのAの別個のインスタンスが保持されるのでしょうか?
0489デフォルトの名無しさん
2008/12/03(水) 14:52:240490デフォルトの名無しさん
2008/12/03(水) 15:04:570491デフォルトの名無しさん
2008/12/03(水) 15:39:11そうですか。わかりました。ありがとうございます。
すいませんがもう一つ質問です。
LinkedListでもっている構造体を一個ずつ走査して
必要なら中身を書き換えたいです。
foreach(StructHoge hoge in hoges)
{
hoge.age = 10;
}
上みたいに書いたら
foreach 繰り返し変数' であるため、このメンバを変更できません
とエラーが出ました。
クラスだったら上記のようにして内容を書き換えられるとは思うのですが
構造体の場合はどうやって書いたらいいのでしょうか?
0492デフォルトの名無しさん
2008/12/03(水) 16:05:33どうしてもってんならノード一つずつ辿ってって
ひとつ前に新しい構造体を挿入して現在のノードを削除の繰り返し
0493デフォルトの名無しさん
2008/12/03(水) 16:07:08static IEnumerable<LinkedListNode<T>> GetNodes<T>(LinkedList<T> list) {
LinkedListNode<T> node = list.First;
while (node != null) { yield return node; node = node.Next; }
}
foreach(LinkedListNode<StructHoge> hogeNode in hoges) {
StructHoge hoge = hogeNode.Value;
hoge.age = 10;
hogeNode.Value = hoge;
}
foreach使うならこういう小細工が必要
0494493
2008/12/03(水) 16:08:13foreach(LinkedListNode<StructHoge> hogeNode in GetNodes(hoges)) {
0495デフォルトの名無しさん
2008/12/03(水) 16:08:27そうですか・・・わかりました。ありがとうございました。
0496デフォルトの名無しさん
2008/12/03(水) 16:10:350497デフォルトの名無しさん
2008/12/03(水) 16:11:29なんだLinkedListNode<T>.Valueは{get;set;}だったのか……
ヘルプのサマリに
>ノードに格納された値を取得します。
て書かれてたから{get;}かと思った
0498デフォルトの名無しさん
2008/12/03(水) 16:16:09foreachならってことですが、
他の書き方ならもっと簡単にかけるんでしょうか?
よかったら参考に教えてください。
0499デフォルトの名無しさん
2008/12/03(水) 16:18:20いやGetNodesのwhileの中にforeach内の処理を書くことになるだけ
GetNodesは使い回せるからforeachの方が簡単
0500デフォルトの名無しさん
2008/12/03(水) 16:26:58static void ModifyValues<T>(this LinkedList<T> list, Func<T, T> modify) {
var node = list.First;
while (node != null) { node.Value = modify(node.Value); node = node.Next; }
}
list.ModifyValues(hoge => { hoge.age = 10; return x; });
こういうのもアリ
0501500
2008/12/03(水) 16:31:07hoges.ModifyValues(hoge => { hoge.age = 10; return hoge; });
0502デフォルトの名無しさん
2008/12/03(水) 16:33:060503デフォルトの名無しさん
2008/12/03(水) 16:37:23C#だとぜんぜん違うよ。
0504デフォルトの名無しさん
2008/12/03(水) 16:51:02なるほど。なにかと構造体だと面倒なんですね。勉強になりました。
ありがとうございました。
0505デフォルトの名無しさん
2008/12/03(水) 17:40:39DataGridViewを使用する際に
綺麗に枠線を出したいと思っているのですが
GridColorプロパティでセルの部分の枠線の色は変更できるのですが、
行ヘッダと列ヘッダの枠線を同じ色にできないためちょっと見た目の悪いグリッドになって困っています。
FlexGridのように綺麗にヘッダからグリッドへと繋がる線を標準機能で設定することはできませんか?
出来ないのであれば自前でオーバーライドして線を描画するしかないと思っているのですが・・・
出来ればFA環境で使いたいのであまり自前で処理して遅くなるのは避けたいなぁ…と
この辺りはテクノニックの問題だとは思いますがorz
よろしくお願いいたします。
0506デフォルトの名無しさん
2008/12/03(水) 21:34:070507デフォルトの名無しさん
2008/12/03(水) 21:36:220508デフォルトの名無しさん
2008/12/03(水) 22:15:540509デフォルトの名無しさん
2008/12/03(水) 23:50:17・C#のクライアントからWebサービスにアクセス
・Webサービスの動作にエラーは無しで処理も完了している
・クライアント側で、Webサービス呼び終わって結果が帰ってきた直後にエラー発生
・Webサービスは WebService( ref ReqestAndResponse obj )のように、リクエストが含まれるオブジェクトにレスポンス
情報を付加して返す
・ReqestAndResponseは、メンバ変数の末端はlong、string等で構成されており、
通常(当たり前ですが)XmlSerializerでシリアライズ/デシリアライズできる
出たエラーは以下です。
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
場所 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
場所 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
場所 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
場所 WebService( ReqestAndResponse& obj ) ←Webサービスのメソッド
場所 ClientMethod() ←クライアント側メソッド
XMLとして解析できない変なコードや文字がオブジェクトに含まれたのかなぁと思うのですが、.NETのWebサービスは
SOAPにする際に中身の文字列をちゃんとエスケープしてくれるはずなので、それも違うのかなぁと悩んでいます。
再現もできない状況です。
どなたかわかるかた、教えていただけると助かります。
よろしくお願いします。
0510デフォルトの名無しさん
2008/12/04(木) 00:02:38たぶん例外よく見りゃわかるんじゃね?
0511デフォルトの名無しさん
2008/12/04(木) 00:20:06という情報は無いのです
0512デフォルトの名無しさん
2008/12/04(木) 00:21:470513デフォルトの名無しさん
2008/12/04(木) 00:29:150514デフォルトの名無しさん
2008/12/04(木) 00:48:30C#になおして…
Option Explicit
Const rmax = 100
Dim r As Integer
Dim xl As Single, xr As Single
Dim yt As Single, yb As Single
Dim Stopped As Boolean
Private Sub Form_Load()
r = rmax
lblR = "半径 : " & r
With hscR
.Max = rmax
.Min = 10
.Value = r
End With
End Sub
Private Sub Form_Resize()
Init
End Sub
0515デフォルトの名無しさん
2008/12/04(木) 00:51:12C#になおして…
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
mnuExe_Click
End Sub
Private Sub hscR_Change()
r = hscR
lblR = "半径 : " & r
Init
End Sub
Private Sub mnuEnd_Click()
End
End Sub
0516デフォルトの名無しさん
2008/12/04(木) 00:52:14C#になおして…
Sub Init()
Dim ratio
ScaleMode = 3
ratio = -ScaleWidth / ScaleHeight
yt = 240: yb = -240
ScaleTop = yt
ScaleHeight = yb - yt
ScaleWidth = ratio * ScaleHeight
xl = -ScaleWidth / 2: xr = -xl
ScaleLeft = xl
Cls
FillStyle = 0
Circle (0, 0), r, RGB(255, 0, 0)
FillStyle = 1
DrawStyle = 2
Circle (0, 0), rmax, RGB(255, 0, 0)
DrawStyle = 0
Stopped = True
End Sub
0517デフォルトの名無しさん
2008/12/04(木) 00:54:59C#になおして…
Private Sub mnuExe_Click()
Dim y As Single
Stopped = False
For y = 85 To 5 Step -10
DrawLine y
Next
End Sub
0518デフォルトの名無しさん
2008/12/04(木) 00:56:27C#になおして…
Sub DrawLine(y0 As Single)
Const Ze = 700, dt = 1
Dim x As Single, y As Single
Dim xx As Single, yy As Single
Dim vx As Single, vy As Single
Dim vxx As Single, vyy As Single
Dim d As Single, f As Single
Dim x1 As Single, y1 As Single
0519デフォルトの名無しさん
2008/12/04(木) 00:58:070520デフォルトの名無しさん
2008/12/04(木) 01:00:58再現しないのです
ので、このエラーなら多分これだよというのがあれば、
それを試して再現させたいのです
0521デフォルトの名無しさん
2008/12/04(木) 01:03:04才能ねーよ。プログラム辞めた方がいい。
答えが欲しければ宿題スレでやって下さい。
ぞんざいな聞き方じゃ殴られるから丁寧に質問するように。
C#,C#の宿題片付けます。
http://pc11.2ch.net/test/read.cgi/tech/1197620454/
0522デフォルトの名無しさん
2008/12/04(木) 04:02:310523デフォルトの名無しさん
2008/12/04(木) 04:18:20死ね
0524デフォルトの名無しさん
2008/12/04(木) 07:47:01一概にそうでもないと
むしろちらつきを抑えるための技術だし
0525デフォルトの名無しさん
2008/12/04(木) 09:19:07ふつうにXmlExceptionじゃないかなとは思うが
XmlException を使用した XmlTextReader の例外処理
http://msdn.microsoft.com/ja-jp/library/ch49a7ch(VS.80).aspx
catchしてるなら例外の名前分かるはずだけど。
Deserializeで発生しうる例外:
ThreadAbortException
StackOverflowException
OutOfMemoryException
TargetInvocationException
InvalidOperationException
0526デフォルトの名無しさん
2008/12/04(木) 09:25:25class BaseClass
{
public virtual void Method1()
{
...
}
}
class InheritClass : BaseClass
{
public override void Method1()
{
...(継承クラスでの処理)...
// ベースクラスでの処理を継続したいなら
base.Method1();
}
}
0527デフォルトの名無しさん
2008/12/04(木) 10:04:14http://mamono.2ch.net/test/read.cgi/newsplus/1228350598/
''';;';';;'';;;,., ニダ・・・
''';;';'';';''';;'';;;,., ニダ・・・
やっとやっと国籍法ニダ ;;''';;';'';';';;;'';;'';;;
;;'';';';;'';;';'';';';;;'';;'';;; レイープさせろニダ
vymyvwymyvymyvy、
日本に住んでやるニダ MVvvMvyvMVvvMvyvMVvv、 参政権もよこすニダ
Λ_ヘ^−^Λ_ヘ^−^Λ_ヘ^Λ_ヘ
謝罪しろニダ ヘ__Λ ヘ__Λ ヘ__Λ ヘ__Λ
賠償しろニダ __,.ヘ /ヽ_ /ヽ__,.ヘ /ヽ__,.ヘ _,.ヘ ,.ヘ ウリは武装スリをするニダ
/\___/ヽ /\___ /\___/ヽ _/ヽ /\___/ヽ
/'''''' '''''':::::::\/'''''' '''/'''''' '''''':::::::\ /'''''' '''''':::::::\ ニダニダ
. | \丶, 、/、 ...:| \, .| \, 、/ 、.:|、/ | \, 、/ 、.:|
| ,,ノ(、_, )ヽ、,, .::::| ,,ノ(、_, )| ,,ノ(、_, )ヽ、,, .::::|_, )| ,,ノ(、_, )ヽ、,, .::|
. | `-=ニ=- ' .:::::::| `-=ニ= | `-=ニ=- ' .:::::::|ニ=| `-=ニ=- ' .:::::::|
\ `ニニ´ .:::::/\ `ニニ \ `ニニ´ .:::::/ニ´ \ `ニニ´ .:::::/ ウェーッハッハッハッハ!!
/`ー‐--‐‐―´\ /`ー‐- /`ー‐--‐‐―´\-‐‐ /`ー‐--‐‐―´\
民主は「売国党」。
0528デフォルトの名無しさん
2008/12/04(木) 13:16:48C#にはシステムメニューを扱うクラス・方法は無いのでしょうか。
1項目加えたいだけなのですが、調べてみても自前で
[DllImport("user32.dll")] でextern GetSystemMenu() や AppendMenu()
みたいのしか無いような。
選択した際の処理は、override WndProc() でやっぱりC++みたいに?
何か常識的なやり方があったら教えてください。
0529デフォルトの名無しさん
2008/12/04(木) 13:30:05がんばれ。がんばれ。やればできる。絶対できる。絶対できるよ。
ああ”あ”あーー!!1
0530デフォルトの名無しさん
2008/12/04(木) 13:34:08それでいい
まあcodeprojectとか探せばライブラリ化してる人もいるかも知れんけどどうかな
0531デフォルトの名無しさん
2008/12/04(木) 13:49:21ありがとうございます。
難しい事をやろうとしてるわけではないので、
SDKのWinUser.h見ながら頑張ります。
0532デフォルトの名無しさん
2008/12/04(木) 15:08:02DataGridViewのヘッダ枠線の色をセルに合わせる方法
1.ColumnHeadersBorderStyleプロパティをSingle
2.RowHeadersBorderStyleプロパティをSingle
3.EnableHeadersVisualStylesプロパティをfalse
0533デフォルトの名無しさん
2008/12/04(木) 15:26:38おぉぉ!!!!!!!!
出来ました!
それも簡単に
EnableHeadersVisualStyles がポイントのようですね。
ちょっと詳しく調べますが 助かりました。
ありがとうございました。
0534デフォルトの名無しさん
2008/12/04(木) 16:26:55ttp://www.developerfusion.com/tools/convert/vb-to-csharp/
0535デフォルトの名無しさん
2008/12/04(木) 18:03:37Messageとスタックトレースだけ出してるシステムとか見るんだが、
単にToStringの方がシンプルかつほぼ必要な情報をみんな出してくれるのに、何なんだろうね。
0536デフォルトの名無しさん
2008/12/04(木) 20:16:22IMEモードが編集前のものに戻ってしまいます。
これを戻さないようにはできないのでしょうか?
ImeModeChangedイベントも編集中はイベント発行がされないようでした。
例えば、日本語入力ONの状態で編集に入り、編集中に日本語入力OFFにしても、
AfterLabelEditイベントでの ListView.ImeMode = On になっている状態です。
0537デフォルトの名無しさん
2008/12/04(木) 20:21:52アンマネージドなメモリのサイズ)を調べる方法ってありますか?
0538デフォルトの名無しさん
2008/12/04(木) 20:29:41編集中はListViewの内部コントロール(TextBox?)がフォーカス取ってるからじゃないの?
そうなら内部コントロールの参照を何とかして持てば解決できるんじゃない?
0539デフォルトの名無しさん
2008/12/04(木) 20:33:39str.Length + 1バイト
0540デフォルトの名無しさん
2008/12/04(木) 20:39:08str をANSI変換して、マルチバイトが含まれてたらそれだとまずいので質問したのですが。
0541デフォルトの名無しさん
2008/12/04(木) 20:47:47ありがとうございます。
内部コントロールへのアクセスは、やはりカスタムコントロールを作るとかしないと無理ですか?
0542537
2008/12/04(木) 20:55:48[DllImport("kernel32", EntryPoint = "lstrlenA")]
private static extern int lstrlenA(IntPtr str);
0543デフォルトの名無しさん
2008/12/04(木) 21:02:05とか?
0544デフォルトの名無しさん
2008/12/04(木) 22:22:20カスタムコントロールというか、ListViewを派生していろいろやらないとダメだろうね。
ちょっとやってみたところEN_SETFOCUSでEditBoxのハンドルが取れるんだけど、
なぜかこのハンドルからはControl.FromHandle()で参照を取れないから
直接Win32APIでやるしかなさそうで面倒臭そう。
0545デフォルトの名無しさん
2008/12/04(木) 22:32:44どうもです。なんだか難しそうですね…
全然わからんので、色々調べながらやってみます。
0546デフォルトの名無しさん
2008/12/05(金) 06:49:53\\HogeServer\HogeHoge
に現在接続しているか否か(net use で表示される状態か)
を確認する手段を模索しています
そのフォルダに普通にアクセスして例外が返ってきたら
未接続であると見なそうと考えていたのですが、レスポンスが悪いので
Directory.Exists を使ってみました
この時 Directory.Exists だとダメなケースなどありますでしょうか
よろしくお願いします
0547デフォルトの名無しさん
2008/12/05(金) 10:36:50×(1)前髪をカットする
×(2)カットをする
×(3)ショートにカットする。
○(4)カットで尋ねる。
×(5)ヘアカット方法を知る。
[に]*カット[を]*[(方法)]*[(する)]*[。]*
でよいかと思ったら、(4)以外もヒットしてしまうようです。
ご助言お願いします。
0548デフォルトの名無しさん
2008/12/05(金) 10:44:48正規表現の問題ではないと思いますが。
(4)だけにマッチさせるだけなら、
new Regex("カットで尋ねる。")
ですみますが、そんなことがやりたいわけじゃないでしょう?
0549デフォルトの名無しさん
2008/12/05(金) 10:52:24早速ありがとうございます。
そうでした。
プログラムとデータをじっくり見たら、
○(6)カット
としたいのでした。
0550デフォルトの名無しさん
2008/12/05(金) 11:02:410551デフォルトの名無しさん
2008/12/05(金) 11:03:49前にどんな言葉があったら駄目なのか後ろにどんな言葉があったら駄目なのか
0552デフォルトの名無しさん
2008/12/05(金) 13:44:130553デフォルトの名無しさん
2008/12/05(金) 13:57:41その条件で本当に抜き出したい物だけを特定できるのか考えて。
そしたらそれをそのまま正規表現にすればいい。
0554デフォルトの名無しさん
2008/12/05(金) 16:56:49ttp://jp.youtube.com/
YouTubeの検索ボタンを自動でクリックする方法を教えていただけませんか?
InvokeMemberで出来ると思ったんですがCSS作られているのでよくわかりませんOrz
よろしくお願いします。
0555デフォルトの名無しさん
2008/12/05(金) 17:27:52×を排除したいのでした。それならオーケー?
結果として○のみを抜き出すことになります。
排除したい条件は今後増える可能性があり、比較的条件を明示しやすいので、○のみを抜き出すのではなく、×を排除する、という条件を正規表現で書きたいです。
×(1)前髪をカットする
×(2)カットをする
×(3)ショートにカットする。
○(4)カットで尋ねる。
×(5)ヘアカット方法を知る。
○(6)カット。
[に]*カット[を]*[(方法)]*[(する)]*[。]*
0556デフォルトの名無しさん
2008/12/05(金) 17:30:21全然条件を示せてない
>>553
0557デフォルトの名無しさん
2008/12/05(金) 17:38:38その記号の意味も書けよ。
0558デフォルトの名無しさん
2008/12/05(金) 17:40:230559デフォルトの名無しさん
2008/12/05(金) 17:51:560560デフォルトの名無しさん
2008/12/05(金) 17:57:390561デフォルトの名無しさん
2008/12/05(金) 18:06:18そもそも何をしたいのかよく分からない。
仮に自由な文字列が入っている可能性があって、さらにマッチさせたい条件そのものも変更するとか言うんだったら
もうそんな設計見直せとしか言えない
0562デフォルトの名無しさん
2008/12/05(金) 18:20:06それとも顧客から来たメールの内容を自動判別するようなアプリケーション?
前者ならもう少し自分でがんばれっていいたくなるところだし、
後者なら内容を大まかに表すリストと、フリーフォームのテキストボックスを用意して
入力するようにしてもらえばやりたいことができる気がする。
0563デフォルトの名無しさん
2008/12/05(金) 18:30:48○のものを使いたい、×のものは使いたくない。
それ以上どう整理しろっておっしゃるのでしょう?
すでに自由な文字列があり、そこから抜き出す条件を書くとしたら、ある程度の条件を書き、条件に合わないときには、条件を適宜追加する以外にないと思うのだけど。
この方針でないとしたら、見直してどうすればいいですか?
すべての可能性をあらかじめ予期するのは無理だし。
0564デフォルトの名無しさん
2008/12/05(金) 18:34:59カットで尋ねる。
が駄目でも
カットで尋ねる人
やら
カリカットで尋ねる。
ならOKになる可能性があるんだろ?
0565デフォルトの名無しさん
2008/12/05(金) 18:37:50意味分からん
なぜ〇にしたか、なぜ×にしたかの理由を書けって言ってるんだ
つーかC#と関係ないだろ
0566デフォルトの名無しさん
2008/12/05(金) 18:37:52"[にを]" にマッチするものを除外する。
0567デフォルトの名無しさん
2008/12/05(金) 18:38:51> 例文は、自由な文字列から抜き出した実例です
そもそもどういう条件の元で抜き出したんだよ
お前はどう判断して例文に○と×をつけたんだ
そこがまさに正規表現のパターンそのものになるんだろうが。
0568デフォルトの名無しさん
2008/12/05(金) 18:41:09○と×の判定基準を示さないと判らないよ。
書いてること理解できますか?
0569デフォルトの名無しさん
2008/12/05(金) 18:53:51!Regex.IsMatch(input, "(ヘアカット|カットを?する)");
0570デフォルトの名無しさん
2008/12/05(金) 19:22:11今までC/C++で書いてきた関数を使いたい
GUI部分の作成が楽といわれるC#を使いたい
という2つがあるんですが、
GUIだけC#で作って、C/C++の関数を呼び出すということは可能ですか?
0571デフォルトの名無しさん
2008/12/05(金) 19:26:090572デフォルトの名無しさん
2008/12/05(金) 19:26:34コマンドライン操作できるようにしてProcess.Start辺りから使う
って所か?
っていうかC++CLIにしたら良いんじゃねーかと思うけど
0573デフォルトの名無しさん
2008/12/05(金) 19:27:17C++/CLI でラッパーDLLを作り、それをC#から呼ぶと良い。
0574デフォルトの名無しさん
2008/12/05(金) 19:29:13C++/CLIでラッパーなんか作る必要ないだろ。
0575デフォルトの名無しさん
2008/12/05(金) 19:33:58となるとやはりC++/CLI一本で作成だな
たしかフォームデザイナも使えたよね
0576デフォルトの名無しさん
2008/12/05(金) 20:37:37TextBox1 + TextBox2ですが、
TextBox1 = 200 TextBox2 = 300として
二つを足し算したら200300と出てきましたょ。
まだまだです。
0577デフォルトの名無しさん
2008/12/05(金) 21:11:27C++/CLI使ったことないでしょ
フォームデザイナ,あれはおまけ
0578デフォルトの名無しさん
2008/12/05(金) 21:17:46このサイトに載っているサンプルプログラムをテキストにコピーすると改行されずズラーっと表示されてしまうんですけど、
これはなぜですかね?解決策があれば教えていただきたいです。
0579デフォルトの名無しさん
2008/12/05(金) 21:22:46VC++に貼り付けたらちゃんと改行されたが
0580デフォルトの名無しさん
2008/12/05(金) 21:26:50VC++に貼り付けても改行されないんです。不思議だ。
0581デフォルトの名無しさん
2008/12/05(金) 22:43:30言語自体は触ってるが確かにデザイナを使ったことはないな
そんなにひどいのか
0582デフォルトの名無しさん
2008/12/05(金) 22:58:15・C#でフォームアプリ
の2プロジェクト構成にすればいいだけじゃん
0583デフォルトの名無しさん
2008/12/05(金) 23:34:30IEを起動する。
HPの移動のアドレスを監視し
特定のページに来たとき(ヤフーのログイン画面など)
パスをテキストボックスに自動入力するツールを作りたいです。
まずはじめにログイン画面でテキストボックスのnameの値を見て
値をいれるようなクラスはありますか?
0584デフォルトの名無しさん
2008/12/05(金) 23:47:56↓読んでIHTMLDocument2取ってくれば実装は可能
http://www.usefullcode.net/2006/12/ieihtmldocument2.html
理解できないなら無理だから諦めろ
0585デフォルトの名無しさん
2008/12/06(土) 01:46:56試してないけどこれ使えるかも
Internet Explorer 相互運用性の技術サンプル
http://msdn.microsoft.com/ja-jp/library/a7f97x5e.aspx
0586デフォルトの名無しさん
2008/12/06(土) 04:38:51前髪をカットする
カットをする
ショートにカットする。
ヘアカット方法を知る。
の4つを省けばいいだけじゃないの?
無理に条件を絞る必要ないと思うし、本人もそう言ってる気がするんだけど…。
関係ないけど、「カットで尋ねる。」ってどこの日本語?
0587デフォルトの名無しさん
2008/12/06(土) 08:39:52BHO
0588デフォルトの名無しさん
2008/12/06(土) 10:48:56(4)がなぜ○なのか、以下同様
の説明が全然できてない。
0589デフォルトの名無しさん
2008/12/06(土) 11:16:17インタフェースを作るのが正解だったりしてw
0590デフォルトの名無しさん
2008/12/06(土) 11:19:40最初は>>589みたいに振り分けていけば
いつかは学習してくれて、自動で○×つけてくれる。
ってどうでしょうか?
0591デフォルトの名無しさん
2008/12/06(土) 12:45:010592デフォルトの名無しさん
2008/12/06(土) 12:48:59しかしニューラルネットって最近全く聞かんな。
0593デフォルトの名無しさん
2008/12/06(土) 14:33:20MasterPageを使用するWebPageを作っていますが、
'System.Web.UI.MasterPageクラス
'└OriginalMasterPageクラス
' + public int hogehoge;
'
'System.Web.UI.Page
'└OriginalUIPage
' └画面1
' └画面2
' :
となっていて、OriginalUIPage内からhogehogeに値をセットしたいんです。
ただ、OriginalUIPage内では "this.Master" は System.Web.UI.MasterPage
クラスとして見えているので、無理矢理 "OriginalMasterPage" にキャスト
して
((OriginalMasterPage)Master).hogehoge = 10
としてもいいんでしょうか?
一応Buildも通るし、それっぽく動作している様なんですが。
無理矢理異なる型にCastする事になんとなく危険な感じがするんです。
0594デフォルトの名無しさん
2008/12/06(土) 14:38:52まあ子が親の特別な型に依存するような設計はあんまり良くないけど
それよりもpublicフィールドやめよう
0595デフォルトの名無しさん
2008/12/06(土) 14:41:54>すでに自由な文字列があり、そこから抜き出す条件を書くとしたら、
>ある程度の条件を書き、条件に合わないときには、条件を適宜追加する以外にないと思うのだけど。
>この方針でないとしたら、見直してどうすればいいですか?
>すべての可能性をあらかじめ予期するのは無理だし。
機械的にプログラムでやるのは無理です、って言ってるようなもんじゃん。
>>555の最下行の暗号を文章で書いてみろよ。
・カットの前が「に」なら×
・カットの後ろが「を」なら×
とかさ。
これが「ある程度の条件」だよ。
コンピュータ君はコレに当てはまるかどうかを判断するしかできないないわけで、
実例出されて「こんなふうに」と言われても煙吐きます。
0596デフォルトの名無しさん
2008/12/06(土) 14:55:09is as は?
0597デフォルトの名無しさん
2008/12/06(土) 15:05:07webプログラミングやったことないんでよー知らんけど、普通に
(1) OriginalUIPageのコンストラクタでOriginalMasterPageを引数にとるようにする。
(2) OriginalUIPageでは、Masterをnewでシャドウしてコンストラクタでもらった
OriginalMasterPageを返すようにするか、OriginalMasterPageを取得する別の
プロパティを追加する。
みたいな感じにできんの?
0598デフォルトの名無しさん
2008/12/06(土) 15:26:13小沢民主党の根本は 「官僚に搾取されてナイナイナイナイと催眠にかけられてしまって
いる財源は、実はその悪党官僚搾取予算をやめれば6兆円を浮かせて出せるのだ!」
「無いんじゃないんです!」 ということを言ってるのです。
小沢さんへの薄汚い、意図的な人格攻撃、HateSpeechばかり自民党工作員は貼り付けますが、
あれは全部為にする攻撃でしかありません。
たとえば、この中でまずは 19:00 ぐらいから聴いてみてください。財源の件への質問に
対してしっかりと答えています。この意気込みをみれば、国民は小沢代表の気迫を見て
人気が盛り上がるのは間違いありませんよ!!
【ネット中継】小沢代表記者会見 2008/09/01
http://www.dpj.or.jp/news/?num=13972
この辺をみれば、国民的人気は爆発すると思うのですが、マスコミはニュースでこの辺の
肝心なところを大きく取り上げないで来たわけです。小沢人気がなぜ低いのかの原因は、
実はそこにあったでしょう!
それから、民主党代表選挙時の記者会見!これも聴いてみてください。最後までお聴きに
なれば小沢さんがどれだけ立派な政治家なのか、認識、理解することができます。
民主党・小沢さんの国家ビジョン、日本の腐敗の極みの官僚政治をぶっ壊す!!小泉が
誤魔化しで何もしなかった、本当の改革の本丸だったもの、それこそが今なされようとして
いる、これなのです!
↓
【ネット中継】代表選挙立候補者記者会見 2008/09/16
http://www.dpj.or.jp/news/?num=14009
0599デフォルトの名無しさん
2008/12/06(土) 15:27:520600デフォルトの名無しさん
2008/12/06(土) 15:28:210601デフォルトの名無しさん
2008/12/06(土) 16:13:590602デフォルトの名無しさん
2008/12/06(土) 17:28:28半チェックを評価するかしないかってこと?
0603デフォルトの名無しさん
2008/12/06(土) 17:29:28クラスライブラリにこんなコードを書いています。
1 public void SendPipe(string TargetPipe, Byte[] RecBytes) {
2 using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(".", TargetPipe, PipeDirection.InOut)) {
3 pipeClient.Connect();
4 using (StreamWriter sw = new StreamWriter(pipeClient, SJISencoding)) {
5 string RecString = SJISencoding.GetString(RecBytes);
6 sw.WriteLine(RecString);
7 }
8 }
9 }
これをWebサービスから呼ぼうとすると、3行目のConnectで
「System.UnauthorizedAccessException: パスへのアクセスは拒否されました。」
になってしまいます。
VSのデバッグページから起動したり、Winowsフォームから呼んだりするとちゃんと動くのですが・・・
ASPNETにAdministrator権限を付与しても同じでした・・・
webサービスから名前付きパイプを動かす場合なにか他に対応が必要なのでしょうか???
あまり詳しくないので適切に説明できているか判りませんが宜しくお願いします。
0604デフォルトの名無しさん
2008/12/06(土) 17:30:46enum Medal { Gold, Silver, Bronze };
string prize = ((Medal)(order - 1)).ToString + " Medal";
0605デフォルトの名無しさん
2008/12/06(土) 17:37:04enum Strings { Silver, Hello, Apple }
こういうのはダメ
0606デフォルトの名無しさん
2008/12/06(土) 18:55:30どういう意味で「作法」って言っているのかよくわからないけど、
他にもっと明示的に同じことを実現する方法があるのにわざわざenumを使うのは
合理的な選択とは思えない。
0607デフォルトの名無しさん
2008/12/06(土) 19:27:35これはすぐ処理が終了するのですが
Regex.Match(" Xxxxxxxxx.xxxxxxxxxxxxxx.xxxx,", "\s+((\w+\.?)+)$")
こっちは最後にカンマが着いているだけなのに物凄く時間がかかります
どうすれば速くなりますか?
0608607
2008/12/06(土) 19:35:23"ほげほげ Xxxxxxxxx.xxxxxxxxxxxxxx.xxxx" が "\s+((\w+\.?)+)$" にマッチするなら
((\w+\.?)+)の部分を後で別の処理に使い、マッチしないなら次に行く、というような感じです
" Xxxxxxxxx.xxxxxxxxxxxxxx.xxxx," は マッチしないので次に行ってほしいのですが、falseと判定されるまで時間がかかります
"\s+((\w+\.?)+)$" にマッチする場合 ((\w+\.?)+)の部分と同じ文字列が取得できるパターンで
上記のパターンより処理の速いものがあれば教えてください
0609デフォルトの名無しさん
2008/12/06(土) 19:40:07つーか8bit時代じゃないんだから処理時間なんて体感で語れないよ
0610607
2008/12/06(土) 20:04:38いえ、ほんとに遅いんです
こんな感じで試したんですが、カンマなしはなかなか応答が戻ってきません
Console.WriteLine("カンマなし");
if (Regex.Match(" Xxxxxxxxx.xxxxxxxxxxxxxx.xxxx", @"\s+((\w+\.?)+)$").Success)
{
Console.WriteLine("True!");
}
else
{
Console.WriteLine("False!");
}
Console.WriteLine("カンマあり");
if (Regex.Match(" Xxxxxxxxx.xxxxxxxxxxxxxx.xxxx,", @"\s+((\w+\.?)+)$").Success)
{
Console.WriteLine("True!");
}
else
{
Console.WriteLine("False!");
}
WindowsXPSP2 VC2008SP1 で試してます
0611デフォルトの名無しさん
2008/12/06(土) 20:07:350612607
2008/12/06(土) 20:10:200613デフォルトの名無しさん
2008/12/06(土) 20:10:28たった一つの文字列でその正規表現で応答が返って来ない?
ありえないな
0615デフォルトの名無しさん
2008/12/06(土) 20:33:50正規表現のエンジンによっては
なかなか処理が返って来ないってことはありうる。
詳しく知りたければ再現可能なコードにして、
正規表現スレに投げるといいかも。
0616デフォルトの名無しさん
2008/12/06(土) 20:35:24ワーストケースでは組み合わせ論的な計算量(指数とか階上オーダー)かかる。
1つ目の方は1発マッチしてるから早くて、
2つ目の方は、マッチしないから延々総当たり探索してる状態なんでは。
0618デフォルトの名無しさん
2008/12/07(日) 00:02:020619デフォルトの名無しさん
2008/12/07(日) 01:31:18ゲームのクラスの中に
毎フレーム呼ばれるUpdateっていうメンバ関数があるとして、
この中で一時的に計算に使うだけのために
あるクラスをnewしてたりするんですが、
それってGCの原因になるのでしょうか?
そういう場合、メンバ変数としてコンストラクタで一回だけnewしておいて、
中身を書き換えて使った方が効率がよかったりするのでしょうか?
0620デフォルトの名無しさん
2008/12/07(日) 01:32:480621619
2008/12/07(日) 01:37:31もしくはまったくGCの理解として間違っているのか、
その辺が知りたいです。
0622デフォルトの名無しさん
2008/12/07(日) 01:58:010623デフォルトの名無しさん
2008/12/07(日) 01:58:32まぁ、パフォーマンス気にするなら、ちゃんとプロファイル取らないと論外。
0624デフォルトの名無しさん
2008/12/07(日) 02:20:51newするコストが微々たるものなら気にしなくていいと思うけど。
0625デフォルトの名無しさん
2008/12/07(日) 02:58:37よっぽど性能に問題があるようだったら、そのときはじめて高速化を考える。
0626デフォルトの名無しさん
2008/12/07(日) 05:20:33物理的・理論的に毎回newするのとしないのでGCに影響があるかどうかを聞いているのに。
0627デフォルトの名無しさん
2008/12/07(日) 05:27:39具体的にどの程度かは実装してテストしてみるまで分からんでしょ
設計段階で分かるのなんてオーダーぐらいだろ
0628デフォルトの名無しさん
2008/12/07(日) 06:25:510629デフォルトの名無しさん
2008/12/07(日) 06:29:36↓でも貼り付けて使え
http://dobon.net/vb/dotnet/string/detectcode.html
0630デフォルトの名無しさん
2008/12/07(日) 07:14:55毎回newすればGCはすぐに起こる
0631デフォルトの名無しさん
2008/12/07(日) 07:37:51イベントハンドラの必要性がいまいちぴんと来ていません。
ボタンにイベントハンドラを割り当ててそのイベントに機能を割り当てるのと、ボタンのクリックのメソッドに機能を割り当てるのの違いはなんでしょう?
これまでは、Formでボタンをレイアウトしてダブルクリックして自動的に記述される
private void button_Click(object sender, EventArgs e)
に書いてきたので、イベントハンドラを使ったこともないのです。
イベントハンドラが必要なことはあるのでしょうか?
イベントハンドラを使うと、得なことはあるのでしょうか?
ご教示お願いします。
0632デフォルトの名無しさん
2008/12/07(日) 07:40:40フォームデザイナの生成したコードを見ると
イベントにデリゲート追加してる箇所があるはずだ
0633デフォルトの名無しさん
2008/12/07(日) 09:05:530634デフォルトの名無しさん
2008/12/07(日) 09:17:42試しにそのメソッドを削除してビルドしてみれば、隠れたイベントハンドラの存在がわかるだろう。
0635デフォルトの名無しさん
2008/12/07(日) 10:49:17デリゲートはもともとSerializableだよ
0636デフォルトの名無しさん
2008/12/07(日) 10:53:26ラムダ式で暗黙に作られる匿名クラスもSerializableですか?
0637デフォルトの名無しさん
2008/12/07(日) 10:56:120638デフォルトの名無しさん
2008/12/07(日) 10:59:11当たり前のことだから引数に渡すとか工夫しろ
0639デフォルトの名無しさん
2008/12/07(日) 11:02:04嫌々ですけども
0640デフォルトの名無しさん
2008/12/07(日) 13:16:28Click += button_Click;
あるだろ。
そのbutton_Click()はいつ動いてると思ってるんだ。
0641デフォルトの名無しさん
2008/12/07(日) 13:36:02WPFはそうやってたはず
0642デフォルトの名無しさん
2008/12/07(日) 13:40:13というようにWPFが処理してるわけじゃないよ
ただリフレクションを使ってると言いたかっただけ。念のため。
0643デフォルトの名無しさん
2008/12/07(日) 15:38:240644デフォルトの名無しさん
2008/12/07(日) 16:03:320645631
2008/12/07(日) 16:05:49ありがとうございます。
0646デフォルトの名無しさん
2008/12/07(日) 16:08:260647デフォルトの名無しさん
2008/12/07(日) 16:41:43おまえら知ってたならおしえろよな〜
0648デフォルトの名無しさん
2008/12/07(日) 16:48:50イベント=Observer
foreach=イテレータ
0649デフォルトの名無しさん
2008/12/07(日) 17:13:15これを、例えば中間の位置に移動していた状態で、Textデータを更新しても
位置が移動しないようにするにはどのようすればいいでしょうか?
間違っているかもしれませんが、今考えている方法は、
現在のスクロール位置を取得し、Caretをその位置まで移動し、
Textデータ更新後にScrollToCaret()で移動するのかと思っています。
ただ、現在のスクロール位置の取得方法などが解からないので困っています。
他の方法でもかまいません。よければご存知の方教えてください。
0650デフォルトの名無しさん
2008/12/07(日) 17:39:180651デフォルトの名無しさん
2008/12/07(日) 17:56:59わざわざこっちにも貼りに来てたのにお前ときたら・・>>73
0652デフォルトの名無しさん
2008/12/07(日) 19:26:42これで一応できたよ。
Win32に詳しくないのでベストな方法かどうかは自信ない。
public class TextBoxEx : TextBox
{
public void SetText(string text)
{
int topLine = GetFirstVisibleLine;
this.Text = text;
VerticalScroll(topLine, true);
}
public int GetFirstVisibleLine
{
get {return SendMessage(this.Handle, EM_GETFIRSTVISIBLELINE, 0, 0);}
}
public bool VerticalScroll(int lineCount, bool scrollsToDown)
{
if (!scrollsToDown) lineCount *= -1;
int ret = SendMessage(Handle, EM_LINESCROLL,0, lineCount);
return ret == 1;
}
protected const int EM_GETFIRSTVISIBLELINE = 0xCE;
protected const int EM_LINESCROLL = 0xB6;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
}
0653デフォルトの名無しさん
2008/12/07(日) 19:26:44int x = textBox1.SelectionStart;
// 更新後
textBox1.Select(x, 0);
0654デフォルトの名無しさん
2008/12/07(日) 19:37:14ttp://msdn.microsoft.com/ja-jp/library/cc430235.aspx
0655デフォルトの名無しさん
2008/12/07(日) 19:44:10この辺って具体的にどれ?
0656デフォルトの名無しさん
2008/12/07(日) 20:18:320657デフォルトの名無しさん
2008/12/08(月) 04:21:30たとえば今、
enum Flag
{
A = 0,
B,
C,
D,
E,
F
}
private Flag flag;
のようなenum型があって、A,B,Cの時にキーが押された時は次の状態へ遷移したいです。
このとき、単純に
if (flag == Flag.A || flag == Flag.B || flag == Flag.C)
{
flag++;
}
このような書き方をしてもいいのでしょうか?
試した結果、思い通りの挙動でしたが、intのように扱ってもいいのか疑問だったのでお聞きしました。
0658デフォルトの名無しさん
2008/12/08(月) 08:30:52enumがintと互換なのは仕様。
個人的にflag++が作法的にいいとは思わないけども。
0659デフォルトの名無しさん
2008/12/08(月) 08:36:31そうですかありがとうございました。
ちなみにこういった場合、どんな作法が適切ですか?
0660デフォルトの名無しさん
2008/12/08(月) 08:43:560661デフォルトの名無しさん
2008/12/08(月) 09:00:56何個も登録するようなコピー動作すると何個も飛んでくる
0662デフォルトの名無しさん
2008/12/08(月) 09:49:59データフォーマットを比較するとそれぞれ違う形式で
送られて来ているのでしょうか。
一回しか送らない、もしくは一回しか受け取らない方法はないでしょうか。
0663デフォルトの名無しさん
2008/12/08(月) 12:00:170664デフォルトの名無しさん
2008/12/08(月) 12:06:540665デフォルトの名無しさん
2008/12/08(月) 13:38:18Form_MouseHoverなどが発生しないんですが
0666デフォルトの名無しさん
2008/12/08(月) 13:53:34WndProcでWM_NCMOUSEHOVERとかNC用の独自メッセージを受け取る
0667649
2008/12/08(月) 15:08:24当方C#を始めて数日なので時間かかりました^^;
>>652
実装することが出来ました。ありがとうございます。
>>653
上手く行きませんでした。
私のやり方がおかしいのかもしれません。
現状>>652さんのやり方で解決できたのそれでいかせていただきます。
ありがとうございました。
>>654
もう少し勉強して時間があるときに自分でも考えてみようと思います。
現状>>652さんの方法で上手く行きました。
ありがとうございます。
0668デフォルトの名無しさん
2008/12/08(月) 15:14:28flagの順序を定義するメソッドをつくるとか?
0669デフォルトの名無しさん
2008/12/08(月) 18:18:140670デフォルトの名無しさん
2008/12/08(月) 18:30:12enum State{
}
とかがいいかもね。
0671660
2008/12/08(月) 19:30:05Clipboard.SetText("test");
WM_DRAWCLIPBOARDに送られてきたメッセージを以下で確認した所
IDataObject data = Clipboard.GetDataObject();
string[] clipformats = data.GetFormats();
同じメッセージが2回飛んできていました。
どうにかして違いを拾う方法は無いでしょうか。
エディタ等で文字を選択してコピーした場合は1回しかメッセージは
来ないので、一番良いのは1回しか送信しない事なんですが…。
0672デフォルトの名無しさん
2008/12/08(月) 20:14:23C++なんかだと確か先頭のポインタかなんかが送られるんだったと思いましたが、
C#の場合はどうなってるんでしょうか?
配列の中身の型によって振る舞いが変わったりするんでしょうか?
0673デフォルトの名無しさん
2008/12/08(月) 20:46:07C#の最重要事項だからこれだけでわからなかったら勉強してきて
0674デフォルトの名無しさん
2008/12/08(月) 20:48:340675デフォルトの名無しさん
2008/12/08(月) 20:51:160676デフォルトの名無しさん
2008/12/08(月) 21:47:34めんどくさ〜
0677デフォルトの名無しさん
2008/12/08(月) 22:13:03flagっていうより、(ステートマシンとかの)ステートに近い?
遷移って言ってるし。
それならそのenumをひとつだけフィールドに持つクラスを作って
implicitでそのenumと暗黙的に変換できるようにするとかどうかな。
そうすれば++とかは「次の状態に遷移することだな」って推測できるし、
順序をいじるのも循環させることも可能になるし。
0678デフォルトの名無しさん
2008/12/08(月) 22:16:23state.Next()でいいじゃん
0679デフォルトの名無しさん
2008/12/08(月) 22:22:44本気で言ってる?
0680デフォルトの名無しさん
2008/12/08(月) 22:24:49を受けての言だろ?その前提ならおかしくはないぞ。
0681677
2008/12/08(月) 22:32:060682デフォルトの名無しさん
2008/12/08(月) 22:46:51123
456
789
と記述がある場合に↓のプログラムだと
ラベル1に789しか表示されません。
123と456と789を個別に取り出すには
どうすればいいのでしょうか?
label1.に123を表示
label2に345を表示と言う具合にしたいのですが・・・・
private void read_file(string file_name)
{
if (!File.Exists(file_name)) return;
StreamReader reader = new StreamReader(file_name,
Encoding.GetEncoding("Shift_JIS"));
string A;
while ((A = reader.ReadLine()) == null)
{
label1.Text = A;
}
reader.Close();
}
0683デフォルトの名無しさん
2008/12/08(月) 22:48:070684デフォルトの名無しさん
2008/12/08(月) 22:59:53当たり前だろw
0685682
2008/12/08(月) 23:18:31失礼します。
0686デフォルトの名無しさん
2008/12/08(月) 23:18:53拡張メソッドでいいじゃん
static class StateEx {
public static State Next(this State state) {
switch(state) {
case State.A:
case State.B:
case State.C:
return ++state;
default:
throw new ArgumentException();
}
}
}
--
var s1 = State.A;
var s2 = s1.Next(); // B
var s3 = s2.Next(); // C
0687デフォルトの名無しさん
2008/12/09(火) 03:28:310688デフォルトの名無しさん
2008/12/09(火) 03:32:010689デフォルトの名無しさん
2008/12/09(火) 03:43:140690デフォルトの名無しさん
2008/12/09(火) 03:52:400691デフォルトの名無しさん
2008/12/09(火) 05:29:390692デフォルトの名無しさん
2008/12/09(火) 06:49:29{
while (true)
fuga++;
return Hoge(fuga);
}
0693デフォルトの名無しさん
2008/12/09(火) 09:25:27僕わかります
0694デフォルトの名無しさん
2008/12/09(火) 10:14:460695デフォルトの名無しさん
2008/12/09(火) 10:31:030696デフォルトの名無しさん
2008/12/09(火) 10:40:14{
Hoge();
}
0697デフォルトの名無しさん
2008/12/09(火) 10:59:40じっちゃんの名にかけて真実はたった一つの謎が解けました!!!!
0698デフォルトの名無しさん
2008/12/09(火) 11:31:02もしくは、そういう操作ができる、あるいは向いているという
コレクションがあれば教えてください。
0699デフォルトの名無しさん
2008/12/09(火) 11:32:22連結ってどういうイメージ?
元のコレクションの項目の後ろに別のコレクションの内容を追加するってことではなくて?
0700デフォルトの名無しさん
2008/12/09(火) 11:43:30そういうことです。
LinkedListなら最後のポインタに別のLinkedListのポインタの先頭っつけるだけで
高速にできるのかなと思ったのですが、どうもそれっぽいメンバが見当たらないので・・・
0701698
2008/12/09(火) 11:45:140702デフォルトの名無しさん
2008/12/09(火) 12:06:35List { get; }だしな
foreachでAddLastしていくのがいやなら新しくリンクリストクラス作ったら?
大した手間じゃないし
0703698
2008/12/09(火) 16:12:21for (int j = 0; j < 100; j++)
{
for (int i = 0; i < 50000; i++)
{
LinkedListNode<face> node = linkedlist2.First;
while (node != null)
{
linkedlist1.AddLast(node.Value);
node = node.Next;
}
}
linkedlist1.Clear();
}
Listバージョン
for (int j = 0; j < 100; j++)
{
for (int i = 0; i < 50000; i++)
{
list1.AddRange(list2);
}
list1.Clear();
}
こんな風に、沢山連結させては消す、ってのを繰り返して計測してみましたが、
Listの方がはるかに早かったのですが、妥当でしょうか?
理由はなぜですか?
0704デフォルトの名無しさん
2008/12/09(火) 16:16:510705デフォルトの名無しさん
2008/12/09(火) 16:19:53すいませんが素人なもんでもう少し詳しく教えてもらえないでしょうか。
0706デフォルトの名無しさん
2008/12/09(火) 16:25:33つまりAddLastするごとにLinkedListNode<T>のインスタンスが作られる
0707デフォルトの名無しさん
2008/12/09(火) 16:31:22そういうことですか。ありがとうございました。
0708デフォルトの名無しさん
2008/12/09(火) 16:31:42{
for (int i = 0; i < 50000; i++)
{
LinkedListNode<face> node = linkedlist2.First;
while (node != null)
{
//ここでLinkedListNodeクラスのコンストラクタが呼ばれまくってないかな?
//変更前
//linkedlist1.AddLast(node.Value);
//変更後
linkedlist1.AddLast(node);
node = node.Next;
}
}
linkedlist1.Clear();
}
こうしてみたらどうなる?
0709デフォルトの名無しさん
2008/12/09(火) 16:55:11> node は他の LinkedList に属しています。
0710デフォルトの名無しさん
2008/12/09(火) 17:07:440711デフォルトの名無しさん
2008/12/09(火) 17:29:20なにかやらしたら結果を教えてくれるのが関数
とかあいまいな感じでいいんじゃね?w
0712デフォルトの名無しさん
2008/12/09(火) 17:44:560713デフォルトの名無しさん
2008/12/09(火) 17:46:190714デフォルトの名無しさん
2008/12/09(火) 18:04:280715デフォルトの名無しさん
2008/12/09(火) 18:14:25メソッドはできる
クラスメソッド=関数
0716デフォルトの名無しさん
2008/12/09(火) 18:35:290717デフォルトの名無しさん
2008/12/09(火) 19:02:100718デフォルトの名無しさん
2008/12/09(火) 19:11:040719デフォルトの名無しさん
2008/12/09(火) 19:22:28FormClosedはClosedがobsoleteというか非推奨にするために
後から追加されたイベントだからね。
0720デフォルトの名無しさん
2008/12/09(火) 19:25:01メソッドも関数も(プログラミングにおける)機能や意味は同じで、
・関数
まず、機能ありきで、その機能の中で特定のデータ(オブジェクト等)を
操作するという、非オブジェクト指向的な観点に基づいた用語
・メソッド
まず、オブジェクトありきで、そのオブジェクトに対する操作(命令)を定義することで
さまざまな機能を実現するという、オブジェクト指向的な観点に基づいた用語
0721デフォルトの名無しさん
2008/12/09(火) 19:34:50そんな深読みするような意味なんてないって。
むしろただのハッタリだと思った方がまだしも真相に近い。
だいいち、オブジェクト指向的な発想で言えば"method"より"function"の方が
よりしっくりくるでしょ。
訳語の「関数」で考えても意味ない。
0722デフォルトの名無しさん
2008/12/09(火) 19:44:08ListのAddって内部ででかい配列を作ってはコピーしてるのかな。
だとしたら、要らなくなった小さい配列はGCの対象になるの?
とすれば、長期的にはパフォーマンス悪くなったりしない?
0723デフォルトの名無しさん
2008/12/09(火) 19:50:460724デフォルトの名無しさん
2008/12/09(火) 20:04:390725デフォルトの名無しさん
2008/12/09(火) 20:21:23VBもVBAも
0726デフォルトの名無しさん
2008/12/09(火) 20:22:59それはVBの特殊事情。
だから関数ってのは訳語だから。
元ネタはfunction
0727デフォルトの名無しさん
2008/12/09(火) 20:43:08なんで関数じゃなくて機能って訳さないんだろう
特にC言語系では機能って言ったほうがいいと思うんですがどうですかね?
0728デフォルトの名無しさん
2008/12/09(火) 20:43:080729デフォルトの名無しさん
2008/12/09(火) 20:44:18こーいうー機能をつけるためにこーいうー機能を定義する・・・
とか会話したら発狂するから
0730デフォルトの名無しさん
2008/12/09(火) 20:56:05だいたいプログラミング言語ってはじめは数学が好きな人が作って数学が好きな人が使うから
0731デフォルトの名無しさん
2008/12/09(火) 23:09:31ならアメリカ人は関数という意味も機能という意味もあるfunction
という言葉を使って会話するから発狂してるのか?
発狂してプログラマ人口激減したからインド人プログラマ大量に
引っ張って来てたりしてな
あ、インド人プログラマもfunctionて言葉使うのか・・・・・
0732デフォルトの名無しさん
2008/12/09(火) 23:21:150733デフォルトの名無しさん
2008/12/09(火) 23:32:00ワロタ
0734デフォルトの名無しさん
2008/12/09(火) 23:52:50どう書けばいいでしょうか?
0735デフォルトの名無しさん
2008/12/10(水) 00:10:59perlでなくていいならironpythonとかWSHとか使ったほうが遥かに簡単だよ
0736デフォルトの名無しさん
2008/12/10(水) 00:58:550737デフォルトの名無しさん
2008/12/10(水) 04:50:26pythonの.net上で動く奴
0738デフォルトの名無しさん
2008/12/10(水) 09:13:01値を返せる(が、返さなくてもいい)のが関数だよ
0739デフォルトの名無しさん
2008/12/10(水) 12:19:41BoundingBoxとVector3はstructです。
BoundingBoxのメンバはVector3二個で、
Vector3のメンバはfloat3個です。
forの中のv0,v1で「未割り当て〜」というエラーがでます。
forの前やforの中でv0やv1をnew Vector3()しないと怒られます。
でもなぜかBoundingBoxはnewしなくても怒られません。
なぜですか?
BoundingBox bb;
Vector3 v0,v1;
for(〜)
{
v0.X = ○;
v0.Y = ○;
v0.Z = ○;
v1.X = ○;
v1.Y = ○;
v1.Z = ○;
bb.Min = v0; ←v0とv1が未割り当てで何たらとエラー
bb.Max= v1; ←
}
0740デフォルトの名無しさん
2008/12/10(水) 12:29:51もうちょっとこっちで再現可能な情報出してくれないか。
環境とかバージョンとか。
とりあえず、VS2008でVista64の環境でエラーでないが。
0741デフォルトの名無しさん
2008/12/10(水) 12:58:110742デフォルトの名無しさん
2008/12/10(水) 12:58:46Vector3とかBoundingBoxはそれで定義されています。
Vector3はこれ
http://msdn.microsoft.com/ja-jp/library/microsoft.xna.framework.vector3.aspx
BoundingBoxはこれ
http://msdn.microsoft.com/ja-jp/library/microsoft.xna.framework.boundingbox.aspx
環境はXPのsp3とVS2005で、Windows用のプロジェクトです。
後は取り立てて特別な環境ではないと思いますが、他に何か必要な情報はあるでしょうか。
自分の認識では、構造体は値型だからnewしなくても使える、
クラスなどの参照型はnewしないと使えない、
という理解なのですが、それは誤っているでしょうか?
で、このVector3は構造体のはずなのにnewしないとエラーがでるというのが解せません。
0743739
2008/12/10(水) 13:04:43Win用のプロジェクトだとエラーがでません。
XBOX用のプロジェクトだけエラーがでてるみたいです。
ソースは両方で共有してるんですが、参照してるライブラリの中身とか
Win用とXBOX用で挙動が違うのかな・・・
0744デフォルトの名無しさん
2008/12/10(水) 13:15:550745デフォルトの名無しさん
2008/12/10(水) 13:27:22XNAスレから来ました。
しかしこれは文法とかC#の一般的問題ではない気がしてきました。
よってしかるべきところで聞いてみます。ありがとうございました。
0746デフォルトの名無しさん
2008/12/10(水) 13:29:370747デフォルトの名無しさん
2008/12/10(水) 13:30:160748デフォルトの名無しさん
2008/12/10(水) 13:33:37とりあえず報告よろ
0749デフォルトの名無しさん
2008/12/10(水) 15:08:540750デフォルトの名無しさん
2008/12/10(水) 15:11:33今こそ拡張メソッドを使う時だ
0751デフォルトの名無しさん
2008/12/10(水) 15:20:42意味不明
0752デフォルトの名無しさん
2008/12/10(水) 15:25:39こりゃおもしろい
0753デフォルトの名無しさん
2008/12/10(水) 15:28:510754デフォルトの名無しさん
2008/12/10(水) 15:28:520755デフォルトの名無しさん
2008/12/10(水) 15:34:370756デフォルトの名無しさん
2008/12/10(水) 15:36:16何とのw?
0757デフォルトの名無しさん
2008/12/10(水) 15:41:48原点からの距離に決まってるだろ
オペレーターオーバーロードなんて直感に反したものばかりなんだから
細かいことでガタガタ騒ぐなよ
0758デフォルトの名無しさん
2008/12/10(水) 15:42:40難癖のつけ方だけ一流だな
0759デフォルトの名無しさん
2008/12/10(水) 15:44:21それこそ付けたきゃ自分で勝手に付ければいい話じゃないの。
0760デフォルトの名無しさん
2008/12/10(水) 15:44:47A:もちろん距離です
0761デフォルトの名無しさん
2008/12/10(水) 15:45:59A:何との?
地球の中心からの距離に決まってるだろ
オペレーターオーバーロードなんて直感に反したものばかりなんだから
細かいことでガタガタ騒ぐなよ
0762デフォルトの名無しさん
2008/12/10(水) 15:46:02点は点を表してればいいんだよ。
0763デフォルトの名無しさん
2008/12/10(水) 15:48:36ちなみに>>749とは別人。ごめんな>>749w
おまえらみたいな頭の固い人種とは付き合えないなぁ
嘘を嘘とm
0764デフォルトの名無しさん
2008/12/10(水) 15:49:41全世界のベクトルに謝れ
0765デフォルトの名無しさん
2008/12/10(水) 15:50:10釣ったの俺だよ。
勝手に騙るなテメェ。
0766デフォルトの名無しさん
2008/12/10(水) 15:51:24ベクトルは「点」じゃなくて「量」だから
0767デフォルトの名無しさん
2008/12/10(水) 15:51:280768デフォルトの名無しさん
2008/12/10(水) 15:52:26その程度のことでクラス持ち出すなよ
これだからゆとり.NET厨は・・・
0769デフォルトの名無しさん
2008/12/10(水) 15:53:540770デフォルトの名無しさん
2008/12/10(水) 15:55:580771デフォルトの名無しさん
2008/12/10(水) 15:57:47false
0772デフォルトの名無しさん
2008/12/10(水) 16:01:28引き続き正常な流れのスレをお楽しみ下さい。
0773デフォルトの名無しさん
2008/12/10(水) 16:02:07そりゃそうだが、「方向と量」と「位置」はベクトルの共変性という観点から別に扱われる対象だぞ
・・・釣られたか?
0774デフォルトの名無しさん
2008/12/10(水) 16:04:370775デフォルトの名無しさん
2008/12/10(水) 16:05:170776デフォルトの名無しさん
2008/12/10(水) 16:05:56四元数も量が4Dベクトルの位置に等しいだけで量だぞw
バロスwwwwwwwww
0777デフォルトの名無しさん
2008/12/10(水) 16:09:070778デフォルトの名無しさん
2008/12/10(水) 16:11:290779デフォルトの名無しさん
2008/12/10(水) 16:15:200780デフォルトの名無しさん
2008/12/10(水) 16:15:470781デフォルトの名無しさん
2008/12/10(水) 16:18:340782デフォルトの名無しさん
2008/12/10(水) 16:19:300783デフォルトの名無しさん
2008/12/10(水) 16:20:580784デフォルトの名無しさん
2008/12/10(水) 16:21:500785デフォルトの名無しさん
2008/12/10(水) 16:23:310786デフォルトの名無しさん
2008/12/10(水) 16:23:560787デフォルトの名無しさん
2008/12/10(水) 17:07:220788デフォルトの名無しさん
2008/12/10(水) 17:14:480789デフォルトの名無しさん
2008/12/10(水) 17:14:540790787
2008/12/10(水) 17:17:130791デフォルトの名無しさん
2008/12/10(水) 17:20:200792デフォルトの名無しさん
2008/12/10(水) 17:24:02http://imai927.web.fc2.com/free9/kigou/index.html
このサイトが一番詳しいんじゃないか?
0793デフォルトの名無しさん
2008/12/10(水) 17:26:180794デフォルトの名無しさん
2008/12/10(水) 17:50:39タイマーを使うにはどうしたらよいでしょう?
VisualC#2008では、ツールボックスにTimerがあって、
ドラッグ&ドロップで使えたのですが、
WPFには見当たらないのです。
探し方が悪いんでしょうか?
0795デフォルトの名無しさん
2008/12/10(水) 17:54:31意味不明
0796デフォルトの名無しさん
2008/12/10(水) 17:55:560797デフォルトの名無しさん
2008/12/10(水) 17:57:05探し方が悪いというかろくに探してないように見えるが
System.Windows.ThreadingのDispatcherTimerでも使えば
0798デフォルトの名無しさん
2008/12/10(水) 17:57:36探す場所を間違えているんでしょうか?
0799デフォルトの名無しさん
2008/12/10(水) 18:00:45ワラタ
>大したスキルもないのにいつも質問者に対して上から目線
まさにこれだw
0800デフォルトの名無しさん
2008/12/10(水) 18:01:360801デフォルトの名無しさん
2008/12/10(水) 18:08:26デザイナの時より2ptだけ小さくする
0802デフォルトの名無しさん
2008/12/10(水) 18:13:45KitchenTimer
0803デフォルトの名無しさん
2008/12/10(水) 18:17:300804デフォルトの名無しさん
2008/12/10(水) 18:23:340805デフォルトの名無しさん
2008/12/10(水) 18:30:51つーかこういう流れはWin32APIスレだけでたくさんだ
0806デフォルトの名無しさん
2008/12/10(水) 18:32:28笑い所が分からないんだけど…
0807デフォルトの名無しさん
2008/12/10(水) 18:33:070808デフォルトの名無しさん
2008/12/10(水) 18:33:390809デフォルトの名無しさん
2008/12/10(水) 18:34:17APIスレもお腹いっぱいだよ。
分からないなら(ryのせいで。
0810デフォルトの名無しさん
2008/12/10(水) 18:34:37荒れるから自重しろクソガキ
0811デフォルトの名無しさん
2008/12/10(水) 18:38:080812デフォルトの名無しさん
2008/12/10(水) 18:42:27Windows.Forms.Timer相当のものが欲しければDispatcherTimerで正解。
Timers.TimerとThreading.TimerはWPFでも使っていいが、
UIいじるときはDispatcher経由になる。
あと視覚効果程度ならタイマーでなくStoryboardやTriggerを使うとよい。
0813デフォルトの名無しさん
2008/12/10(水) 19:09:120814デフォルトの名無しさん
2008/12/10(水) 19:53:05ライセンス取得に手間と時間はかかるが結構おすすめ
0815デフォルトの名無しさん
2008/12/10(水) 19:53:530816デフォルトの名無しさん
2008/12/10(水) 19:55:390817デフォルトの名無しさん
2008/12/10(水) 19:59:27なんか俺までロリコン的な空気に。
0818デフォルトの名無しさん
2008/12/10(水) 20:36:54このエディタってルーラ表示とかないの?
VC++ならオプションの所にルーラ表示の項目あったのに……
0819デフォルトの名無しさん
2008/12/10(水) 21:04:060820デフォルトの名無しさん
2008/12/10(水) 21:06:22横ってあったっけ?
0821デフォルトの名無しさん
2008/12/10(水) 21:13:240822デフォルトの名無しさん
2008/12/10(水) 21:17:44今日は、WPFからFormを開くタイミングを変更する方法を教えてください。
WPFのxaml.csのInitializeComponetn():のあとに、
Form Form1 new Form();
と書くと、Form1を開けるのですが、これだと、そのFormを閉じないとxamlのウィンドウが開きません。
順番としては、xamlのウィンドウが開き、描画が終わってからFormを開きたいのです。
教えていただけないでしょうか。
0823デフォルトの名無しさん
2008/12/10(水) 22:02:28ワープロじゃあるまいしそんなものいらんと普通思うんだけど、
一体どうしてそんなものが欲しいと思うわけ?
いまどき80桁とかアナクロなこだわり持ってる人がいるとも思えんけど、
仮にそうだとしてもステータスバーのカーソル位置表示で十分じゃん。
0824デフォルトの名無しさん
2008/12/10(水) 22:07:19おまえさんは人の勝手に口挟むほどお節介焼きなのか?
リアルで嫌われるぞ
0825デフォルトの名無しさん
2008/12/10(水) 22:12:21ツール→オプション→すべての設定を表示にチェック
テキストエディタ→C#→全般→行番号にチェック
縦はないよ
横ルーラーの話なんてしてないのに回答者たちが勝手に憶測で語り出して
質問者も大変だねぇ
0826デフォルトの名無しさん
2008/12/10(水) 22:15:09むしろ俺には不合理に思えるが、何か合理性があるのかと聞いてるんだけど。
0827デフォルトの名無しさん
2008/12/10(水) 22:17:23あのさあ...
ルーラーっていうのは定規のことなんだけどひょっとして知らんのかな?
用紙って概念がないんだから縦のルーラなんてあるわけないだろうw
ルーラといえば必然的に横ってことになる。
0828デフォルトの名無しさん
2008/12/10(水) 22:21:03かっこわる
0829デフォルトの名無しさん
2008/12/10(水) 22:21:110830デフォルトの名無しさん
2008/12/10(水) 22:23:01他人の指摘で自分のミスを認められない奴は、ただの坊やさ・・・
0831デフォルトの名無しさん
2008/12/10(水) 22:24:100832デフォルトの名無しさん
2008/12/10(水) 22:25:530833デフォルトの名無しさん
2008/12/10(水) 22:43:21理解できない?
縦は行番号と呼ぶからに決まってるだろ
英単語の意味なんて日本人の直感に反したものばかりなんだから
細かいことでガタガタ騒ぐなよ
0834デフォルトの名無しさん
2008/12/10(水) 22:44:24App.xaml.csのOnStartupの中でnew Form1().Show()
WPFのウィンドウを自動で開きたくなければ,App.xamlのStartupUri属性を削除して
好きなところでnew Window1().Show()
0835834
2008/12/10(水) 22:54:15WPFのWindow.LoadイベントのイベントハンドラでForm.Show()すればいいみたい
きっとSystem.Windows.Forms.Application.Run(new Form1())とかやってたんだろ
0836834
2008/12/10(水) 22:58:58○Window.Loaded
何度も悪いけど
0837デフォルトの名無しさん
2008/12/11(木) 00:38:19ありがとうございます。
おっしゃるように、
System.Windows.Forms.Application.Run(new Form1())とやってました…。
すごい。
これまたおっしゃるように、Formのほうが先に開いて困ってます。
WPFのWindow.Loadedイベントのイベントハンドラで、
Form.Show()
すればいい、ということなので、
Window1.xaml.csに、イベントハンドラを追加して、
FormのLoadの場合は、
private void Form1_Load(object sender, EventArgs e){//処理}
を参考に、
private void Window1_Loaded(object sender, EventArgs e){//処理}
としてみました。
これで、WPFのウィンドウは開くようになりました。
次に、//処理の部分に
Form1.Show();
と書いたところ、
エラー 1 静的でないフィールド、メソッド、またはプロパティ 'System.Windows.Forms.Control.Show()' で、オブジェクト参照が必要です
となってコンパイルできませんでした。
さらに、
System.Windows.Forms.Application.Run(new Form1())
としてみました。
この場合、エラーは出ませんが、やはりWPFのウィンドウしか開きません。
もうすこしよろしくお願いします。
0838デフォルトの名無しさん
2008/12/11(木) 00:42:44Form1 form = new Form1();
form.Show();
型とインスタンスの違いくらいは理解してないと何もできないよ
0839デフォルトの名無しさん
2008/12/11(木) 00:52:58よくあるgdgdな流れになりそうなので答え貼っとく
これくらいわからなかったらいちいち聞くより本でも読んで出直した方が早いと思う
public partial class Window1 : Window {
public Window1() {
InitializeComponent();
this.Loaded += Window1_Loaded;
}
private Window1_Loaded(object sender, RoutedEventArgs e) {
Form1 form = new Form1();
form1.Show();
}
}
0840デフォルトの名無しさん
2008/12/11(木) 01:04:210841デフォルトの名無しさん
2008/12/11(木) 14:26:43WPFでウィンドウ枠をなくす方法を教えてください。
Formの場合には、this.FormBorderStyle = FormBorderStyle.None ;
でフォームの枠をなしにできます。
ところが、WPFの場合には、xamlで
WindowStyle="None"
と設定しても、枠線だけは残ってしまいます。
枠線も表示しないようにするにはどうしたらよいでしょう?
0842デフォルトの名無しさん
2008/12/11(木) 14:34:05MDIっぽく動作させたいけど、右上にツールボックス出したくないから
メインのフォームにパネル張り付けてそこへフォームを最大化させて枠も消してControls.add
するってのはありなんだろうか?
それによって何か不都合起きないかな?
ウィンドウハンドルもってるものをもってないもののなかへ入れるってのは・・・
0843デフォルトの名無しさん
2008/12/11(木) 14:42:23ネットワークとかスレッドやってみたいけど気が乗らん。面白いのおしえて。
Webかデスクトップアプリかどっちが面白いかも教えてくれ。
0844デフォルトの名無しさん
2008/12/11(木) 14:47:10どうすれば面白いとかは発想次第だし
何が面白いなんかは個人の差だから何とも言えないだろ
とりあえずWPFでもやってみればどう?
色々アニメーションと化させられるし
0845デフォルトの名無しさん
2008/12/11(木) 14:50:33ResizeMode
0846デフォルトの名無しさん
2008/12/11(木) 15:07:290847デフォルトの名無しさん
2008/12/11(木) 18:31:57クラスファイル名 COM_Char.cs(文字操作用関数を書いたクラス)
クラスの中の関数 gCheckRegEx(正規表現チェック関数)
みたいな書き方をしたら、上司から「名前がちょっとなぁ」と言われました
こういう書き方だと何か問題があるんでしょうか?
0848デフォルトの名無しさん
2008/12/11(木) 18:37:46http://msdn.microsoft.com/ja-jp/library/ms229002.aspx
0849デフォルトの名無しさん
2008/12/11(木) 20:29:18・他の人が君の書いたソースを読む時に,まず君が考えた
その独創的ですばらしい名前付けルールをいちいち理解しないといけない
・.NETの標準的なルールに従った名前と混在するのが気持ち悪い(と感じる人は多い)
特に気を付けるのはクラスライブラリを作る時
その調子でクラスライブラリ作っても間違いなく誰も使いたがらない
その気持ち悪い名前を見た時点で使う気を無くす
0850デフォルトの名無しさん
2008/12/11(木) 23:47:36そこまで言うなら気持ち悪くない一例を書いてみろよw
初心者スレで何言ってんだ、お前
0851デフォルトの名無しさん
2008/12/12(金) 00:13:09例は>>848でFAじゃね?
0852デフォルトの名無しさん
2008/12/12(金) 00:16:44「そこまで」って、別に849は当たり前のこと言ってるだけで極論めいたことは
言ってないと思うぞ。
初心者スレも糞もないだろう。
「俺様は初心者です」と宣言すればコードが可読的になるのなら話は別だが。
0853デフォルトの名無しさん
2008/12/12(金) 00:17:08初心者を慰めるスレでもないけどね
どうすべきかは>>848で十分だけれど、質問への回答になってるのは>>849
横槍入れる必要は無いと思うよ
0854デフォルトの名無しさん
2008/12/12(金) 00:24:06C++ の制約に引きずられて設計狂う。
0855デフォルトの名無しさん
2008/12/12(金) 01:13:43C++でそれをやるのは億劫でつい避けてしまって複雑なコードになる
0856デフォルトの名無しさん
2008/12/12(金) 04:29:27なんでSystem名前空間にあるんだよ
0857デフォルトの名無しさん
2008/12/12(金) 04:45:380858デフォルトの名無しさん
2008/12/12(金) 04:53:05WebDavサーバーに対して、OPTIONSメソッドを送信して利用可能な
コマンドを取得しようとしています。サーバーは認証が必要です。Basic認証です。
で、汚いコードで大変恐縮なのですが、以下のコードで理想の結果が
返ってくる(各要素にコマンドの名前が入ったString配列)のは良いのですが
どうも挙動がおかしいのです。
String[] GetAllowMethodList() {
// リクエストの作成
HttpWebRequest request =
( HttpWebRequest )WebRequest.Create( "http://hogehoge.webdav.com" );
request.Method = ”OPTIONS";
request.Credentials = new NetworkCredential( UserName , Password );
// レスポンスの取得
using ( HttpWebResponse response = ( HttpWebResponse )request.GetResponse() ) {
// ヘッダーの読み込み
return response.GetResponseHeader( "Allow" ).Split( ',' );
}
}
0859デフォルトの名無しさん
2008/12/12(金) 04:53:36リクエストを送信するのはわかります。しかし、何故かこの場所で2回リクエストを
送っているのです。で、レスポンスは2回目のリクエストに対してのレスポンスが
HttpWebResponse responseに代入されるのです。
Microsoft Network Monitor で確認したから確かです。
その際のパケットは
(1回目のリクエスト)
HTTP:Request, OPTIONS /
(1回目のリクエストに対するレスポンス)
HTTP:Response, HTTP/1.1, Status Code = 401, URL: / , Using Basic Authentication
(2回目のリクエスト)
HTTP:Request, OPTIONS / , Using Basic Authorization
(2回目のリクエストに対するレスポンス)
HTTP:Response, HTTP/1.1, Status Code = 200, URL: /
何故2回送信されるのか理解できません。
もしかしてスレ違いでしょうか?
0860デフォルトの名無しさん
2008/12/12(金) 05:56:39詳しく知りたければ、HTTPについて勉強すべし
スレ違いだから、これくらいで
0861デフォルトの名無しさん
2008/12/12(金) 06:03:52基本認証、って返ってきてるじゃん
0862デフォルトの名無しさん
2008/12/12(金) 08:56:23例外を捕まえてにゃんにゃんするのがいいのかわからない
0863デフォルトの名無しさん
2008/12/12(金) 09:13:28たとえば例外に陥らないように書くと簡潔さが失われるような場合とかに
例外使えばいいんじゃないかな
俺は便利なので多用します
どうせ職業マじゃないからいいのさ
0864デフォルトの名無しさん
2008/12/12(金) 09:14:22WindowsはOSの名前じゃなくて、「窓たち」という普通名詞と考えるんだ
0865デフォルトの名無しさん
2008/12/12(金) 09:41:570866デフォルトの名無しさん
2008/12/12(金) 10:15:28macで動くSilverlightでもSystem.Windows(WPF系)名前空間を使うんだよ
System.Windows.Formsに限って言えば仕様上Microsoft Windowsが必要だから確かにおかしい
0867デフォルトの名無しさん
2008/12/12(金) 10:31:58ソースplz
0868デフォルトの名無しさん
2008/12/12(金) 11:31:46MS Windows じゃなくて Win32 っぽいものが必要と書けばよかったのに
0869デフォルトの名無しさん
2008/12/12(金) 11:52:51前はformが立ち上がりもしなかったがw
0870デフォルトの名無しさん
2008/12/12(金) 12:30:58無事に発見した。めちゃくちゃ黄色かった。びっくりするほど黄色かった。
パラパラとめくってみると、なんかもうどうでもいい例え話とかよりもサンプルコードがびっしりで良い感じ。
他にも中途半端に今使っているPHPも同じシリーズのものがあったのでホールド。
今転職考えてるので、この際だからと案件が多いと言われているJAVAも覚えてみることに。
結果独習C#,独習PHP,独習JAVAの三冊を購入。
ウキウキしながら帰宅して、早速黄色くて分厚い三冊を取り出す。
そしてとんでもないことに気づいてしまった。
http://niyaniya.info/pic/img/1776.jpg
おとなしく#include <stdio.h>とでも書いてろって事ですねわかります
0871デフォルトの名無しさん
2008/12/12(金) 12:32:19Code Status
Support for Windows Forms 2.0 is complete.
At this point, we are largely just fixing bugs and polishing our code.
0872デフォルトの名無しさん
2008/12/12(金) 13:03:16ねえコピペ?コピペだよね?
コピペだって言ってよ誰か。
0873デフォルトの名無しさん
2008/12/12(金) 13:15:58ねえ自演?自演だよね?
自演だって言ってよ誰か。
0874デフォルトの名無しさん
2008/12/12(金) 13:25:480875デフォルトの名無しさん
2008/12/12(金) 13:49:38と言えばいうほど870=872になるんだよな。どうでもいいけど。
つーかこの三冊買ってきた報告とかよく考えたら思いっきりスレ違いだったわ
0876デフォルトの名無しさん
2008/12/12(金) 14:05:410877デフォルトの名無しさん
2008/12/12(金) 14:09:42変わったらアホ臭くて誰もCなんて学習しないでしょ。
そんなわけで独習Cを買ってそれだけでも個人的には大満足です。
0878デフォルトの名無しさん
2008/12/12(金) 14:26:030879デフォルトの名無しさん
2008/12/12(金) 15:15:130880デフォルトの名無しさん
2008/12/12(金) 15:18:550881デフォルトの名無しさん
2008/12/12(金) 15:37:26宛先ボタンを押したときに自分で作成したフォームを表示して
アドレスを渡す方法についてヒントもしくは書籍などがあれば紹介して下さい。
0882デフォルトの名無しさん
2008/12/12(金) 15:51:54どうしてそういう事ができると思ったのか教えて下さい
0883デフォルトの名無しさん
2008/12/12(金) 16:01:470884デフォルトの名無しさん
2008/12/12(金) 16:03:25http://msdn.microsoft.com/ja-jp/library/bb157886.aspx
ここらへんを出発点に調べてくださいな。
>>882
881そのものずばりをやったことはないが、そのくらいできそうな気がするよ。
0885デフォルトの名無しさん
2008/12/12(金) 16:03:410886デフォルトの名無しさん
2008/12/12(金) 16:23:19http://www.tecinfosys.co.jp/products/office/outlook/index.html
こういうのを見かけたので出来るのかなと思ったのですが、よく見たらカスタムアドインでした。
>>884
C++をすっ飛ばしてC#を始めた私には「メッセージ」という単語に非常に抵抗があるのですが、
がんばって読んでみます。
ありがとうございました。
0887デフォルトの名無しさん
2008/12/12(金) 16:44:05やり方教えて下さいorz
0888デフォルトの名無しさん
2008/12/12(金) 16:47:100889デフォルトの名無しさん
2008/12/12(金) 16:52:29スレ違いだな
0890デフォルトの名無しさん
2008/12/12(金) 17:23:450891858
2008/12/12(金) 17:27:30やはりスレ違いですか。
いや、FirefoxのアドオンRESTTestやWebDavクライアントのCarotDAVでOPTIONSリクエストを同じサーバー(当然Basic認証)に送っても
リクエストは一回だけだから何でかなぁと思ったのがそもそもの始まりでした。
自分の理解力が根本的に足りないようです。
ありがとうございました。
0892デフォルトの名無しさん
2008/12/12(金) 20:17:450893デフォルトの名無しさん
2008/12/12(金) 20:19:22何か勘違いしてない?
0894891
2008/12/13(土) 03:55:42リクエストで
request.Headers.Add( "Authorization: Basic hogehogehogehoge=" );
みたく、Basic認証のヘッダを自前くっつけて、認証方法を指定したら1回だけになりました。
ttp://ja.wikipedia.org/wiki/Basic%E8%AA%8D%E8%A8%BC
Basic認証に関するwikiページの例1,2をすっ飛ばすことができたようです。
だから何だって話ですが、通信量は削減できた方がよいと思ったので・・・
0895デフォルトの名無しさん
2008/12/13(土) 08:42:48xamlで、WindowStyle="None"では枠線が残るので、それをなんとかしたいと考えています。
>>845
早速ありがとうございます。
System.Windows.Window.ResizeMode();
をどう使えば?
msdnを見たのですが、よくわかりませんでした…。
public Window1() {
InitializeComponent();
System.Windows.Window.ResizeMode();
}
としてみて、
エラー 1 実行不可能なメンバ 'System.Windows.Window.ResizeMode' をメソッドのように使用することはできません。
で止まってます。()内になにか入れるのかと思ったのですが、IDEの候補にはNoResizeはみあたりませんでした。
そもそもResizeModeもなくて、ResizeModeProperty()しか見当たらないです。
xamlのほうかと思って、
<Window
WindowStyle="None">
<object ResizeMode="NoResize" />
としてみましたが、
エラー 1 型 'object' が見つかりませんでした。アセンブリ参照が失われていないか、また、すべてのアセンブリがビルドされているかを確認してください。
0896デフォルトの名無しさん
2008/12/13(土) 08:49:40MSDNのどこにメソッドだなんて書いてるんだよ
ttp://msdn.microsoft.com/ja-jp/library/system.windows.window.resizemode.aspx
0897デフォルトの名無しさん
2008/12/13(土) 08:56:570898デフォルトの名無しさん
2008/12/13(土) 09:01:51会社にいるおいら涙目・・・
0899デフォルトの名無しさん
2008/12/13(土) 09:48:59早速ありがとうございます。
プロパティって、どう使うんでしょう?
0900デフォルトの名無しさん
2008/12/13(土) 10:22:560901デフォルトの名無しさん
2008/12/13(土) 10:41:27だから本来はPreAuthenticateを有効にするの。
勝手にBASIC認証のヘッダ飛ばすなんて普通はやるべきじゃない。
0902デフォルトの名無しさん
2008/12/13(土) 10:46:09オブジェクト名.プロパティ名 = プロパティに設定する値;
と使うことはわかりました。
Window.ResizeModeProperty = None;
としてみましたが、
エラー 1 名前 'None' は現在のコンテキスト内に存在しません。
となってます。
0903デフォルトの名無しさん
2008/12/13(土) 10:48:500904デフォルトの名無しさん
2008/12/13(土) 11:05:480905デフォルトの名無しさん
2008/12/13(土) 11:14:01WPFの本見ても、ウィンドウスタイルでNone/ToolWindow/SingleBorderWindow/TheeDBorderWindowくらいしかのってないです。
BorderThickness="0"
というのを試してみたが、まだ枠がある…。
0906デフォルトの名無しさん
2008/12/13(土) 11:17:04むりぽ
0907デフォルトの名無しさん
2008/12/13(土) 13:19:290908デフォルトの名無しさん
2008/12/13(土) 13:30:13書き込んだファイルをバイナリエディタで開いてみたけどそういう風に見えた
0909908
2008/12/13(土) 14:00:150910デフォルトの名無しさん
2008/12/13(土) 14:04:00この状態で1.txtが無かったらエラーになるのはわかるのですが
このエラーを回避するにはこの文の後に
どのように処理すれば良いのでしょうか??
0911デフォルトの名無しさん
2008/12/13(土) 14:06:310912デフォルトの名無しさん
2008/12/13(土) 14:15:590913デフォルトの名無しさん
2008/12/13(土) 14:17:140914910
2008/12/13(土) 14:17:43アプリケーションのコンポーネントでハンドルしていない例外が発生しました。
ファイル名が指定されていない為、プロセスが開始できません。
起動する前に、ファイルがあるか?
それともエラーの前ににメッセージを出すか?
と言う判断の方法でしょうか?
イマイチわからないのですが・・・・
0916デフォルトの名無しさん
2008/12/13(土) 15:00:46たとえば↓の○のようにしたいです。
textbox1.Text = "1";
○ = textbox1;
MessageBox.Show( ○.Text );
できるなら○の変数はどのように宣言したらいいですか?
初歩的な質問かもしれませんがよろしくお願いします。
0917デフォルトの名無しさん
2008/12/13(土) 15:14:590918デフォルトの名無しさん
2008/12/13(土) 15:20:24TextBox t = textbox1;
MessageBox.Show(t.Text);
0919デフォルトの名無しさん
2008/12/13(土) 15:21:25本買う金がなくてもc#ならウェブ上の情報にも事欠かないぞ。
0920デフォルトの名無しさん
2008/12/13(土) 15:34:08ありがとうございます!
これで400行から200行にできます○┐
>>919
精進します
0921デフォルトの名無しさん
2008/12/13(土) 16:13:01入門サイトくらい一通り読んでおいても良いだろうとは思うが
0922デフォルトの名無しさん
2008/12/13(土) 16:20:47だけど
>これで400行から200行にできます
これはww
0923デフォルトの名無しさん
2008/12/13(土) 18:41:49どう考えても時間の無駄すぎる
0924デフォルトの名無しさん
2008/12/13(土) 21:53:28union、intersection、difference、symmetric differenceなどが
高速で計算されると助かるのですが
0925デフォルトの名無しさん
2008/12/13(土) 21:57:100926デフォルトの名無しさん
2008/12/13(土) 21:58:160927デフォルトの名無しさん
2008/12/13(土) 22:14:40その最低限の知識を身につける為に作るのでは?
0928デフォルトの名無しさん
2008/12/13(土) 22:17:05LINQ to Objectsの方が速いかもしれんね
0929デフォルトの名無しさん
2008/12/13(土) 22:17:50これは便利そうですが、直積は作れないみたいですね
LINQでも集合を扱えるんですか?
0930デフォルトの名無しさん
2008/12/13(土) 22:49:16直積はこうかな
var c = from x in a
from y in b
select new { X = x, Y = y };
これはHashSetでもLINQでも同じはず
0931デフォルトの名無しさん
2008/12/14(日) 00:08:56俺は実践で英会話を学ぶぜとか意気込んでも、語彙0じゃあどうしようもない
0932デフォルトの名無しさん
2008/12/14(日) 03:51:48mouseclickイベントではタブの部分をクリックしてもイベントが発生しないみたい
どうすればいいのおしえておしえて
0933デフォルトの名無しさん
2008/12/14(日) 07:27:48開発環境無しの人でも同じ?
0934デフォルトの名無しさん
2008/12/14(日) 11:33:19ありがとう
こういう集合演算もどきも書けるんだね
0935デフォルトの名無しさん
2008/12/14(日) 16:59:31同じ。そのダイアログを変更したいなら「C# 未対処例外」でぐぐれ
0936デフォルトの名無しさん
2008/12/14(日) 22:39:16外寸から知ろうと思っても、画面のデザイン
(Windowsクラシックスタイルと、Windows XPスタイル)
によってタイトルバーの大きさが変わってしまいます..
0937デフォルトの名無しさん
2008/12/14(日) 22:43:59解決しました。
ClientSizeプロパティを見ればいいんですね。
0938デフォルトの名無しさん
2008/12/14(日) 22:44:110939デフォルトの名無しさん
2008/12/14(日) 22:45:12「クライアント領域」とは何か調べる。
っていうか、だからそのレベルの話は素直に本でも読んで覚えなって。
0940デフォルトの名無しさん
2008/12/15(月) 01:43:29Addはできるのに、Insertはできない。
どうして?!
// これを挿入したい
TabPage tp = new TabPage("test");
// 挿入されない。何も変化しない。
tabControl1.TabPages.Insert( 0, tp );
// これはちゃんと追加される
tabControl1.TabPages.Add( tp );
0941デフォルトの名無しさん
2008/12/15(月) 03:55:260942デフォルトの名無しさん
2008/12/15(月) 09:17:12とりあえずハンドルがある状態で呼んでみるとどうなるよ
0943デフォルトの名無しさん
2008/12/15(月) 10:39:19Insertしてもちゃんと内部でControls.Add()してるぞ
SuspendLayoutしっぱなしとかじゃね?
0944デフォルトの名無しさん
2008/12/15(月) 11:35:04CreateControlというのは分かりません。何というクラスのメソッドですか?
TabPageのインスタンスを先に作っておいてInsertしてもダメです。
新規プロジェクトでTabControlを1つおき、
コンストラクタのInitializeComponent()の直後でInsertまたはAddする。
これだけなのに、
Add()では追加され、
Insert()では何も起きません。
ヘルプを見ても、Add()とInsert()の使い方にに
決定的な違いがあるようには読めません。
どうしたら良いのでしょう…
0945デフォルトの名無しさん
2008/12/15(月) 11:39:44コンストラクタ以外のところ、
たとえば何かのイベントのメソッドに書いても同じです。
0946デフォルトの名無しさん
2008/12/15(月) 11:44:031にしてみる
0947デフォルトの名無しさん
2008/12/15(月) 12:12:240948デフォルトの名無しさん
2008/12/15(月) 12:15:430949デフォルトの名無しさん
2008/12/15(月) 12:20:37ソリューションエクスプローラのタブのところをドラッグアンドドロップ
0950デフォルトの名無しさん
2008/12/15(月) 12:33:16できました、ありがとう
0951デフォルトの名無しさん
2008/12/15(月) 12:47:08これ、確かマイナーなバグなんだよ。まだ直ってなかったのか。
ControlCollectionがInsertをサポートしてないのにタブコントロールが
TCM_INSERTITEM をサポートしてるからそれを使おうとしてハンドルの遅延生成の場合で
問題が起こる感じだった気がする前調べたら。
0952デフォルトの名無しさん
2008/12/15(月) 13:02:190953デフォルトの名無しさん
2008/12/15(月) 14:07:14axwebbrowserを使ったアプリケーションを作ったのですが、
・AxInterop.SHDocVw.dll
・Interop.SHDocVw.dll
この2つのdllが再頒布可能かどうか分かりません。
再頒布しても大丈夫なのでしょうか?
駄目なら、お手数ですがダウンロードサイトを出してもらえないでしょうか?
よろしくお願いします。
0954デフォルトの名無しさん
2008/12/15(月) 18:21:490955デフォルトの名無しさん
2008/12/15(月) 18:24:21.NET 2.0 から WebBrowser は Windows.Forms に含まれてるけどね
0956デフォルトの名無しさん
2008/12/15(月) 19:07:07なんと、バグでしたか。
やっとすっきりしました。
ありがとう!
Insert()はあきらめて、Add()で
済ます方法を考えます
0957デフォルトの名無しさん
2008/12/15(月) 19:47:370958デフォルトの名無しさん
2008/12/15(月) 19:53:31その次にInsertしても何も起きません。
結果として、末尾に1つTabPageが追加されるだけです。
(つまり、単にAddだけするのと同じ結果になります)
0959デフォルトの名無しさん
2008/12/15(月) 20:30:03ってやってからInsertしたらどうなる?
0961デフォルトの名無しさん
2008/12/15(月) 20:54:11先にtabControl1.CreateControl()を呼んでもダメでした。
全てのインスタンス生成が終わったあと、
MouseClick等のコールバック関数の中で
Insert()しても、ダメでしたので、
インスタンス生成順序とか、
そういった問題ではないと思います。
Add()とInsert()を交互に呼んでも、
Addは全て動作し、Insertは全て無視されます。
どんなシチュエーションでも、
Add()では追加されるのに、Insertでは挿入されない。
これはもう、TabControl.TabPages.Insert()の実装にバグがあるとしか...
0962デフォルトの名無しさん
2008/12/15(月) 22:41:12分かった。
いろんなところでInsertしてみると、確かにInsertされないことがある。
特にプログラム開始直後。
で、Debug.Assert(tabControl1.TabPages.Count != 0);
してみると、InsertできないところではAssertに失敗するので、
・Countが0だとその前の位置にはInsertできない
・TabControlにTabPagesの追加が完了するのは遅い
ってことだと思う。
バグではなくたぶん仕様なんだとは思うが、例外上げてくれてもいいのにね。
0963デフォルトの名無しさん
2008/12/15(月) 23:07:53InitializeComponent();
//おまじない?
IntPtr h = tabControl1.Handle;
TabPage tp = new TabPage("test");
tabControl1.TabPages.Add(tp);
tabControl1.TabPages.Insert(0, tp);
0964デフォルトの名無しさん
2008/12/16(火) 00:13:54>>963
これで、たしかにうまくいきますね。
素晴らしい!
ありがとうございます!
0965デフォルトの名無しさん
2008/12/16(火) 00:48:03tabControl.CreateControl();
tabControl.TabPages.Add(new TabPage("tab1"));
tabControl.TabPages.Insert(1, new TabPage("tab2"));
ソース見れば分かるが、
ハンドル未作成のときの処理がAddにはあるが、Insertにはない
因みに、フレームワークのバージョンは2.0 SP2
0966デフォルトの名無しさん
2008/12/16(火) 04:29:20X*X、Y*Yの値を求める2つの関数があります。
XnoJijhou(a); //X*Xを求める
YnoJijhou(a); //Y*Yを求める
この2関数は、中身は似たようなものなので1つにまとめて
Jijhou(a,0);
とすればX*Xを求め
Jijhou(a,1);
とすれY*Yを求めるような関数を作ることは可能ですか?
Jijhou( amime a, int index)
{
if(index == 0)
{
return a.X * a.X;
}
return a.Y*a.Y;
}
とかすれば一応OKなのですが、この方法だと
プロパティの数が増えるとメンドクサイことになりそうなので、
もっと良い方法があれば教えて欲しいです。
0967デフォルトの名無しさん
2008/12/16(火) 05:09:492乗したいだけなら a.X*a.X か Math.Pow(a.X, 2) でいいし、有り得ない例えだが、
50個のプロパティの2乗和を求めるような場合でもリフレクションかLINQを使えばいい
2乗値を提供することに意味があるクラスなら個別にプロパティを作る
XSquared, YSquared, etc.
0968デフォルトの名無しさん
2008/12/16(火) 05:19:35メジャーなバグってなんかある?
0970デフォルトの名無しさん
2008/12/16(火) 14:53:16自作アプリに使うにはどうしたらいいのでしょうか?
VS2008のToolStripは見た目が好きじゃないので…
0971デフォルトの名無しさん
2008/12/16(火) 15:22:33でそれっぽい見た目になるよ
0972デフォルトの名無しさん
2008/12/16(火) 16:27:100973デフォルトの名無しさん
2008/12/16(火) 16:40:010974デフォルトの名無しさん
2008/12/16(火) 16:57:23できました、ありがとうございました!
0975デフォルトの名無しさん
2008/12/16(火) 17:32:370976デフォルトの名無しさん
2008/12/16(火) 21:37:21条件分岐 (C# によるプログラミング入門)
http://ufcpp.net/study/csharp/st_branch.html
0977デフォルトの名無しさん
2008/12/16(火) 23:41:36昔中間言語を見たり、実際に速度測ったりしたけど
0978デフォルトの名無しさん
2008/12/17(水) 00:00:42それのJIT結果は、case数が少なかったらif-else相当のコード、
多かったらジャンプ先アドレスのテーブル参照になったんじゃなかったかな、確か。
0979デフォルトの名無しさん
2008/12/17(水) 00:06:370980デフォルトの名無しさん
2008/12/17(水) 00:44:08MSDNのC#プログラミングガイド、コレクションクラスの下のノードって
?常和?常?理って文字化けしてるんだけど通常例外処理でいいの?
子ノードは例外処理だけど
0981デフォルトの名無しさん
2008/12/17(水) 01:04:26例外と例外処理だろう
0982デフォルトの名無しさん
2008/12/17(水) 03:03:42if-elseだと逆にいくらケース数が多くても
switch相当のコードにはならねいんだよな
0983デフォルトの名無しさん
2008/12/17(水) 10:59:310984デフォルトの名無しさん
2008/12/17(水) 11:03:02unsafeで拘束解除ってのりだ。
0985デフォルトの名無しさん
2008/12/17(水) 11:35:52作ったのですが、ファンクションキーに処理を割り当てているため
F4でリストをドロップ表示させようと思うと割り当てた動作も
動きつつドロップされます
そこでフォーカスが当たっているカラムのタイプを判定したいのですが
どうやれば良いのかが分らないので教えてください。
0986デフォルトの名無しさん
2008/12/17(水) 11:42:390987デフォルトの名無しさん
2008/12/17(水) 12:22:34ありがとうございます
0988デフォルトの名無しさん
2008/12/17(水) 18:07:130989デフォルトの名無しさん
2008/12/17(水) 18:09:47可能なら引数なしのオーバーロードも用意すればリフレクションとの相性が良くなって何かと便利
0990デフォルトの名無しさん
2008/12/17(水) 21:05:06Windowsプログラミング(.net?)について何か良い本はないでしょうか?
文法が載ったコンソール画面で処理をする入門本は持っています。
0991デフォルトの名無しさん
2008/12/17(水) 21:20:52用途は、ファイルにタグ付けみたいなことをしたいのです。
あらかじめファイルのリストを登録しておいて(1000アイテムぐらい)、
〜タグが付いているファイルを列挙するのが主な目的です。
# えっちな画像をタグ管理するソフトだと思っていただいても構いません
ちなみにデーターベースの経験全く持ってゼロです
(遙か昔、DelphiからBDE経由でParadoxDBのデータベースをちょっと触ったことぐらいしかありません)
規模としてはテーブル一つあたり1000〜4000項目 位を登録する予定です。
また、画像用、音楽用とテーブルを用意するつもりですが、
一つのテーブルにまとめて 画像タグ、音楽タグ などをつけた方が良いでしょうか?
(そうすると 3万近くの項目を扱わなければなりません)
データーベースサーバを必要としないシステムが良いです。
また、友人にソフトウェアを渡す場合もあり得るので、出来るだけ単体で配布できるものが良いです。
この用途で一番お手軽な方法は何でしょう?
SQLite(一応追加で入れてみた)? SQL Server Compact ?
0992デフォルトの名無しさん
2008/12/17(水) 21:50:12http://xyzzy.s53.xrea.com/wiki/index.php?cmd=read&page=trash%2F%A4%CF%A4%AC%A4%AD%BA%EE%B2%C8%20Version%204.10%A4%CE%BD%BB%BD%EA%CF%BF%A4%F2CSV%A4%CB%CA%D1%B4%B9&word=hwa-to-csv
上記のlispプログラムの核心部分は
(replace-regexp-whole "\n" "\X0e")
(replace-regexp-whole "\X0\X0\X2\X0\X0\X0\X0\X0\X1\X0\X0\X0" "\n")
(replace-regexp-whole ".*?\X2\X0\X1\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0.\X0?\X0" "\n")
(replace-regexp-whole "\Xd6fe\Xd7ff.\Xd7ff" ",")
(replace-regexp-whole "\n," "\n")
(replace-regexp-whole "[\X017f\X1329\X164f]" ",")
(replace-regexp-whole "[\Xd6ff\Xd7ff\Xd6fe\Xd7fe]" "")
(replace-regexp-whole "[\X00-\X09\X0b-\X1f]" "")
という文字列置換に尽きるわけですがこれを下記の通りC#に移植してみました
buffer.Replace("\n", @"\X0e");
buffer.Replace(@"\X0\X0\X2\X0\X0\X0\X0\X0\X1\X0\X0\X0", "\n");
buffer.Replace(@".*?\X2\X0\X1\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0.\X0?\X0", "\n");
buffer.Replace(@"\Xd6fe\Xd7ff.\Xd7ff", ",");
buffer.Replace("\n,", "\n");
buffer.Replace(@"[\X017f\X1329\X164f]", ",");
buffer.Replace(@"[\Xd6ff\Xd7ff\Xd6fe\Xd7fe]", "");
buffer.Replace(@"[\X00-\X09\X0b-\X1f]", "");
※bufferとは文字列を格納しているstring型オブジェクト
しかし出力された文字列を見ると文字列が崩れて読めません(本来ならば綺麗なテキストになるはずです)
C#での文字列の置換部分にミスがあったのでしょうか?
0993デフォルトの名無しさん
2008/12/17(水) 22:01:23HttpRequest req;
HttpResponse res;
Stream stm;
FileStream fs;
Try
{
〜ダウンロード処理〜
}
Catch
{
〜例外処理〜
}
Finally
{
stm.Close();
fs.Close();
}
今はこんな感じでダウンロードは1回のみで終了しています。
これをダウンロードの完了または例外のスローが指定回数になるまで
ダウンロードを試行したいのですがどうやればよいか思いつきません。
GoToを使ってもCatchステートメントからTryステートメントのラベルへ
戻すことはできないみたいですしどうすればよいでしょうか?
0994デフォルトの名無しさん
2008/12/17(水) 22:06:18なんだか分かりませんが
元コードのほうは正規表現つかってんじゃない?
C#のほうは単純にstringを置換してるだけっしょ?
Regexクラス使わないと駄目じゃん
0995デフォルトの名無しさん
2008/12/17(水) 22:11:37forやwhileで囲め
gotoはブロックの中へは飛べない
仮にgotoでできたとしても絶対ダメ
gotoで上に戻るのは禁じ手
0996デフォルトの名無しさん
2008/12/17(水) 22:12:10すぐ再試行してもダメなものはダメじゃね?
0997993
2008/12/17(水) 22:15:470998デフォルトの名無しさん
2008/12/17(水) 22:16:330999993
2008/12/17(水) 22:20:50http://pc11.2ch.net/test/read.cgi/tech/1229519838/
1000デフォルトの名無しさん
2008/12/17(水) 22:21:21>>994の話もそうだけど
buffer.Replace("\n", @"\X0e");
は何もしてないよ。戻り値捨ててるやん
stringクラスは不変だからね
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。