ふらっとC#,C♯,C#(初心者用) Part80
WindowsFormアプリケーションを作成しています。 そこで行き詰ってしまいました。 (1) DataGridViewのセルにImageListの画像を表示させることはできるでしょうか。 該当セルのcolumnsのデータ型はイメージ型にしています。 (2) DataGridViewのセルにアニメーションGIFを表示させることは可能でしょうか。 すみませんが、よろしくおねがいいたします。
アプリをタスクトレイのアイコンとして格納したいのですが、 どうにも行き詰まっている状態です。お力を貸していただければ幸いです。 ネットで色々調べてみて、Windowsプログラムで、 NotifyIcon型のインスタンスを作成してVisibleをtrueにすれば うまく行くと思ったのですが、どうにもうまく行きません。 コードとしては、以下のような感じで書いているのですが、 原因らしきものがあれば、教えていただければ幸いです。 notifyIcon = new NotifyIcon { BalloonTipTitle = "お知らせ", BalloonTipText = "予定通り、処理しました。", BalloonTipIcon = ToolTipIcon.Info, Visible = true, };
>>3 (1)はい
(2)はい
>>4 Iconはどうしたの
>>3 どっちも標準じゃ無理 それなりにコード書けば可能
(1)の方はImageListじゃないとダメなの?
ImageListなんて所詮コモンコントロール用のためだけのモノなんだけど
>>4 Iconプロパティが未設定?
それだけじゃなんとも
>>5 , 6
おお、Iconプロパティを追加設定するだけで、うまくいきました!
ありがとうございます。
前スレのぬるぽの質問ですが、 デバッガがおかしいみたいで、実際にnullだったのは別の行でした お騒がせしました
9 :
デフォルトの名無しさん :2011/10/24(月) 01:08:17.87
にどとくんな(よつばAA略
前スレのぬるぽ ッガ お騒がせしました
C#スレなんだし、ヌルぽ より ヌルり で行こうぜ
継承ってめちゃくちゃ便利だぞ! 同じようなクラスを大量に作っていて それらすべてを変更したい場合 基底クラスを変更するだけで済む!
典型的なアンチパターンだな 継承せずに適切にクラス分けて使い回せ
クラスはインスタンスさえ生成しなければリソースを喰う事はありませんよね? クラス定義だけ大量にあって実際インスタンスを生成したり静的に参照することがあまり無いので少し不安に思うのですが
メモリもリソースだろ ファイルが大きけりゃ起動時に食うだろ
使わなければコンパイル時の最適化で省かれるから増えないよ
クラスもメンバも勝手に省かれることはない リフレクションで呼び出せるから
使わなかったら消えるなんて言ってたら、プラグイン用に外部公開してるインターフェースとか抽象クラスはどこに行っちゃうんだろうね。 電子の海の藻屑か…。
BookListというListに似たクラスが複数あって そこにbookが格納されている場合 (1)Bookクラスがファイル名を引数にしてインスタンス化されると Bookクラスがファイルからテキストを読み込む形にするべきか (2)BookListクラスがファイルからテキストを読み込んで Bookインスタンスを生成しデータを渡すべきか (3)全く別のクラスでファイルからテキストを読み込んで、 そのデータをBookListかBookクラスに渡すべきか どれが正解ですか?
場合による
>>22 の脳内をテレパスしないと答えられない
どういう場合ですか?
基本的に(1)のような気がするが、Bookとファイルが1対多でBookListとファイルが1対1なら(2)の方が自然かもしれない やはり仕様と状況による
小規模なら1のような気がするな。 大きくなってきたらファクトリー作るとかしたほうがいい気がするので3かな。
Bookクラスがインスタンスからされて テキストデータが必要になった瞬間にロードする 巨大ファイルのことも想定するなら必要な分だけロードする
2chの専ブラを作っています datを整形してhtml形式にして、Webブラウザコントロールで見れるようにしたいんですが 例えば、そのhtml内にURLが貼られていて、そのURLをクリックすると、そのURLを引数として他のメソッドを呼び出すことってできないですか? 調べてみたんですけどWebBrowserコントロールにはClickイベントがないみたいで・・・ 何かいい方法あれば教えて下さい
HtmlDocumentやElementにあるだろ
tabcontrolで、タブ内のコントロールを複製してタブを増やしたいんですが、 この場合ってデザイナーを使って編集できないんでしょうか
Navigatingでキャンセルのほうじゃないの?
タブチュー
35 :
29 :2011/10/24(月) 19:35:06.72
クラスの作り方でいつも悩む コレクションクラスを作るべきか コレクションをメンバとして持ったクラスを作るべきか こういう場合はこういうクラスがいいみたいな紹介してくれるサイトないかな
神託機械にでも聞いてろ
>>37 RFC 3751はまだ実装されてないぞ。
>>36 コレクションを新たに作るってのは滅多にないんじゃないか?
適当なクラス作ってListにいれて、Listをメンバに持つクラス作って
インデクサでアクセス。あとはGetEnumerator実装しとけば大体事足りる
>>38 よくそんなんパッと出てくるなw
ITypedListが付けたいとか、各種インデックスで範囲処理したいとかあるでしょ
class A { B b=new B(); var items= b.Items; } あーやっぱり気になる List<T>って便利だけどこれを戻り値にして渡すと 勝手に値を変更されることになるのがなぁ 正しい値かどうかはlist<T>をメンバに持つクラスでやりたいのに List<T>を戻り値として受けるクラスも同じように正しい値がどうか チェックして勝手にデータいれることになる しないように注意すればいいだけかもしれないが忘れるとやってしまうし ってことでコレクションクラスを自作することにならないですか?
戻り値の型をIList<T>かReadOnlyCollection<T>にして return new ReadOnlyCollection<T>(list);
っ ReadOnlyCollection
45 :
44 :2011/10/24(月) 20:59:01.42
おっとかぶった。
なるほどー試してみます。ありがとう
入力チェックはインデクサのSetでやって 変な入力あったら例外投げたらいいじゃん
popサーバにアクセスして、新着メールを取得するプログラムを作りたいのですが、 接続〜取得まではうまくいきましたが、メールをフォルダわけしている場合に、 "受信フォルダ"←ルート?のメールしか取得できません。 条件で振り分けている他のメールも取得したいのですが、行き詰まってしまいました。 よい方法がわかるかたがいらしたら回答よろしくお願いします。
>>47 インデクサ使ってくれるならいいけど
LIST渡したら普通Addされちゃうでしょ
IListでも既存のデータは値の変更されちゃうみたいですね
値の変化に合わせてファイル構成を変更するようなプログラムなので問題が
List貰う側が、ファイル構成意識しながら、今おk?値を変更したよっていちいち
報告するのも変だし、それだったらそのクラスがList持ってたらいいわけで
A.Items A.Add() A.Remove() とにかくこういうクラスがすごく気持ち悪いと思うんだけど おれだけかな?
インデクサーでおk
>>49 そもそもList渡さなきゃいいんじゃないのってこと
>>51 インデクサはちょっと違うんです
Bookが複数のページを持っているだけで
Bookが複数あるわけじゃないので
Bookクラスは一つのファイルを参照してページを構成しています
あ、まてよ、ページListを渡すんじゃなくてBookそのものを渡せばいいのか・・・
this [index]を知らないとか?
55 :
デフォルトの名無しさん :2011/10/24(月) 22:09:29.94
response.redirectってPage_Loadの中で使ってもいいんだっけ?
>>54 それ知ってるけど、意味的にはクラス配列でしょ
>>53 でもあるようにbook[i]はおかしくないですか?
いや、bookクラス渡したんじゃだめだな foreachできるようにしたいから、Listを返しているわけだし やっぱり自作コレクションクラスにするべきなのかな
>>56 別におかしくない
それが気になるならList[i]も使えなくね?
>foreachできるようにしたい 最初に言ったけどGetEnumerator実装したらいいよ
>>58 book[i]はbookがたくさんあるってこ意味になるでしょ
List[i]はBook.Pages[i]ってことだからおかしくないですよ
>>59 foreach(page p in book)
これはおかしいと思う
無意味なこと悩んでないでサクッと作れw
ネーミングセンスの問題だな books[i]とbook[i]では印象が違う
こまけぇ・・・
>>60 そんな事いってたらインデクサを実装してるクラスは
ほとんどおかしいことになるぞw
DataGridViewとかどうすりゃいいんだよ
>>48 ネットワークプログラミングスレでやってよ
>>60 ここではおかしくないと考える人の方が多いようだ
ここではお前の頭がおかしい
ここではないどこかへ行くといい
book.Authorsとか他にもあればおかしい
直感に反するのは全部駄目
クラス一つ作る手間の方が短そうだね。 下手の考えなんとやら。
page in book は見たまんまだし book[i]がbookがたくさんなら Pages[i]はpagesがたくさんだよね
book dataset
短絡評価の論理演算(&&,||)って、処理速度を向上させるために、 条件によっては一つ処理をバイパスできるってことですかね? 結果は普通の&,|使ったときと変わりないですよね? 逆は必ずしも正しくないけど。
&&,|| →bool値専用の論理演算子 &,| →整数値専用の論理演算子
if (a == null || !a.IsEnabled) { ... } っていうのはよくあるパターン 結果が全然違う
>&,| →整数値専用の論理演算子 専用ってことはない。bool型にも使える。
response.redirectってPage_Loadの中で使ってもいいんだっけ?
>>13 アンチパターンってどういうこと?
ほとんど同じ機能のメソッドがあって一部違うだけだから
継承した方がコード減ると思ってやろうと思ったんだけど
こういう場合に継承使うのはだめなの?
>>77 何か使えないって資料でもあるのか?
普通に使ってて問題になったことはないが
>>78 コード量を減らすのが目的なら継承せずに
委譲したほうが後々メンテしやすい。
コードを減らす目的で継承を使うと たくさん継承しまくりになって、 どこがどこで呼び出すとかわけわからんくなるよね。 継承は、子クラスで親クラスの何かをオーバーライド(もしくは抽象メソッドを実装) するときに使ういう、考え方がいいのだろうか。 ようするにちゃんとis-a関係があるのかってことなんだけど。
>>80 スーパークラスは抽象クラス
あと、このクラスをまとめてforeachで回したいので
やっぱり継承必要なんだよねー
それでも継承だめですか?
インターフェイスだと実装が書けないので 同じコードを複数書かなくてはいけないしなー そこまでして継承を嫌う意味がわからないんだけど
骨格実装ってのがあって… バカに説明するの面倒だからやっぱ止めとくわ
もう全部static付けたらいいよ・・・
>>86 バカに説明できない人も、またバカなんですけど
どうですか?
馬の耳に念仏ってやつだな
そんな面倒をする気はないのでバカで構いません
初心者スレでバカと言われても困りますね バカがくるスレに何用ですか? 煽るためにくるなんて暇なプログラマもいるもんですね(笑)
暇と面倒は相反しないからな
初心者スレで バカと言われても 困りますね バカが くる スレに何用ですか? 煽る ために くるなんて暇なプログラマもいるもんですね(笑)
>>82 ポリモーフィズムが目的ならいいとけど
foreach(GetEnumerator)を個別に書きたくないからというならやっぱりお勧めしないなー
ちょっと質問なのですが・・・ string[] str ={ }; これってstrって配列を宣言してるんですか? { }はnullってことですか? newも要素数も無いからインスタンスを生成したわけじゃないのに、 nullで初期化?する意味はあるのですか?
>>95 どこで見たかしらんが省略系だろうな
気になるならトライアンドエラーでいろいろアクセスしてみればいいじゃん
nullかもしれないしnullじゃないかもしれないし
とにかくやってみるのが一番
nullじゃない。 インスタンスを生成してる。 要素数は0。
WinFormsコントロールにデータを表示する場合 DataBindingsって使ってますか? データは全部DataSetに変換して使うのが基本なのかな?
おいおい…
インターフェイスすげぇ 別のクラスなのに同じインターフェイスつけると List<T>に一緒に入れられるじゃないか!感動! どこのサイトもインターフェイスの説明は 抽象クラスの違いだとか、実用性のないコード例ばっかでよくわからなかったが こういうことを例にあげて説明しろよな
それは、Objectにキャストするのと違いがあるのか?
Objectだと元の型が同じじゃないと Foreachにできないだろ
然るべき時がくれば分かります
今が教え時だよ
dynamicで受け取ってダックタイピングしたらいいじゃん
>>100 ここで非実在サイトを責められましても困りますし
>>107 それはプログラミング初心者向けではない
ついでに言うならC#はもともと他の言語が使える人が.NETに移行するときに使うために作られた言語だ
>>107 そこすげーわかりやすく書いてるけどな
C#以前にオブジェクト指向の勉強したほうがいいぞ
>>107 そこはコード例を理解するのに他の知識がいるし
説明していることは振る舞いだけで初心者には難しい
>>109 コレクションをバインドしてもいいんだよ
まあプログラミングは適性あるしな 猫でも分かる、猿でも分かる、ミジンコでも分かるC#的なサイトが必要だな
VB中学校へどうぞ 書いてる本人がオブジェクト指向よくわかってなくて無理してるのが伝わってきて切なくなる
そうやって初心者バカにするやつうざいんだけど消えてくれる? 邪魔なんだよねこのスレにとってさ
>>116 お前プログラミング初めて数か月で理解できたのか?え?
何年やってるんだよおっさん
おっさんが覚えたてのプログラマバカにしてるの?
お前どんだけ無能なんだよw
初心者煽るぐらいしかお前にはできないんだなおっさん
長くプログラミングやってるだけで偉そうにしているバカは死んでほしい 逆に長くやって未だにプログラマってのも無能な証拠じゃね? 一生安月給でPGやってろよ無能w
またこの子キレちゃった
はやく
>>100 の答え言えよ
わからないのか?
適当な事いってんじゃねーぞ
123 :
116 :2011/10/26(水) 21:23:47.65
お前らのことじゃなくてVB中学校っていう有名なサイトのことだよw わかりやすいのはわかりやすい
124 :
111 :2011/10/26(水) 21:36:04.01
>>116 無理してるも何も試行錯誤してる段階だろ
何がわからなくて、何がだめなのかもわからない時期に
そういう努力している奴をバカにするってどういうことよ?
初心者なんて要領悪くて当然だろアホか
効率のいい進め方が1通りしかないならみんなそれやってるだろ
お前がやってきた過程をなぞらないとバカなのか?
視野が狭いんだよ、だからお前は無能なの
誰からも相手されないぼっちなんだよ
無能にお詳しいですね
確かにC#って初心者に一から入門できるサイトってあんまりないよね 前作ろうかと思ったけどわかりやすく教えられないからやめた
ほぼJavaの上位互換だし
>>101 どういう意味ですか?
もしかして継承?
しゃーない わしが作ってやろう
>>129 恐らく「List<Object>なら何でも入るだろ」だと思うが
明らかにインターフェース使った時と違うよなw
>>101 はList<Object>って言いたかったのか?w
確かに何でも入るが利用する側はどうするんだよって話だな
バカだとしか言いようがない
利用する側は別々にアクセスするなら そもそもListなんかに入れるかよって話 ほんとこいつら無能だわwwww
まあ、ポリモーフィズムの説明として、どうたらこうたら言うよりも List<T>のTに入れられるぜ、ってのは分かりやすいのはそうかもね。
GetHashCodeやToStringはメソッドじゃなくてプロパティでもよさそうなんですが、 なんでメソッドなんですか?
>>134 継承するなっていったらかインターフェイスにしたのに
今度は継承しろってことか?
バカにしてるのか?ここの奴らは
>>136 どこに反応してるのか分からんが、ポリモーフィズム=継承じゃないぞ
>>135 メソッド実行時に値を得る操作を行うから
139 :
デフォルトの名無しさん :2011/10/27(木) 08:16:48.55
System.Data.SQLite の SELECT 文を高速化する方法ある? WPF の Converter 内で SELECT 文発行してたらさすがに遅すぎで、 コネクションは使いまわしにしたけどあまり早くならなかった。 事前に必要な分だけ事前にメモリに読み込んで置く方法もあるけど、 それだと、DBが更新されると、メモリ側も同期して更新する処理を 書く必要があるのでめんどい。 SQLite に詳しい人いたらおしえてください。
インテリセンスのおかげで、継承とかインターフェイスが利点がわかりやすいというのはあるよな。 ジェネリックもなかば、インテリセンスが便利になるというのが実感だしww
namespaceとクラスの違い葉なんですか?
>>141 ちょっと答えになってないかもしれないけど
名前空間の中にクラスがある。名前空間以外にはクラスが書けない
ただこれだけ。違いは?言われても、これしか答えられない
車に例えると「フレームとエンジンの違いは何?」と聞かれてるみたいなもの
namespaceはスコープの宣言 classはオブジェクトの実装の宣言
クラスと構造体の違いみたいな物
ファイルシステムのフォルダとファイルの認識でいいよ。 現実のフォルダとは一致させなくていいだけで。
>>139 どれぐらいの頻度でどのぐらいの大きさのを読みに行ってるのか分からないからなんとも。
でもまあ、とりあえずキャッシュ仕込むのは基本にして王道かと。
>>139 WPFならModelの中でやって下さいConverterはそういうことをするところじゃない
150 :
139 :2011/10/27(木) 22:02:21.56
やっぱりWPF糞だわ そしてお前らもな 質問したおれがバカみたい
そんなことよりWPFはベストプラクティスに辿りつくまでがえらく長い
待った、お前が自分(
>>150 )のことをバカみたいって自戒するのはいいよ
俺らもバカって何なんだ
153 :
141 :2011/10/27(木) 22:17:49.58
初心者のボクが作った音声プレイヤーをMITライセンスで公開したら誰かコミットしてくれますか?
コミットってなんやねんしばくぞ
まず初心者のキミが作った音声プレイヤーを公開して質を見ないとな
fittleみたいにリストが出ててレジストリ使わない奴です
すいません、2列目はSubItems[1]の間違いです。
どういうエラーか言わないのにどうしたらいいかは聞くんか 姉さん事件です どういう事件かは言えませんがどうしたら? 知るか
できれば、何の例外が出たかくらいは教えてくれ。 ArgumentOutOfRangeExceptionか?
ゆとり様はエスパーを期待しているんだろうな
すいません。
http://file.hokahokanko.animech.net/Form1.cs FormにListViewと、itemを追加する為のボタンを貼っただけです。
2列目を1回ソートした後、ボタンを押してitemを追加しようとすると
result = _objectCompare.Compare(
listViewX.SubItems[_columnToSort].Text, listViewY.SubItems[_columnToSort].Text);
の行で
'1' の InvalidArgument=Value は 'index' に対して有効ではありません。
パラメーター名: index
とでます。
>>161 はい、それがハンドルされませんでしたと出ます。
private void button_ItemAdd_Click(object sender, EventArgs e) { ListViewItem itm = ListView1.Items.Add("cccc"); itm.SubItems.Add("sub_ccc"); } この5行のうち、3行目のItems.Addの段階でソート処理が走るのよ でもSubItemsにAddしてるのは4行目なわけだ だからソートしてる段階ではまだ「存在してねえんだよクソカス」って状態なの どうすればいいかは自分で考えて
ListViewItem itm = ListView1.Items.Add("cccc"); ↑なんだこれきもちわるい
流れるようなインターフェースになりたかったけどなれてない感じ
ListView1.Items.Add("cccc").SubItems.Add("sub_ccc"); も可能ってこと? オエーー!!!! __ ___/ \ / / //⌒ / (゚)/ / / / ( /。⌒丶。 | \\゚。∴。o `/ /⌒\\゚。:o / | \U∴) | ゙U| || U
マンガ脳の恐怖、まで読んだ。
?
C#, C♯, C#相談室 Part68で解決しなかったので移動しました。
DataGridViewで、コンボボックスの列を作りました。こいつはデザイナで作ったもので
コードは全部自動生成です。このコンボボックスの色を変えたいです。
まず、ここをみて試してみたところ、
http://dobon.net/vb/dotnet/datagridview/cellcolor.html TextBoxのセルは成功しましたが、Comboboxでは色がかわらない。選択肢が下にのびる
ところだけは変わるけど。
Display StyleをNothingにすると、一応色変わるけど、選択できることをユーザに示さ
ないといけないので、StyleはDropDownかCombo必須です。
また、次のサイトでも同じ質問がを見つけましたが、未解決のようです。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=9219&KLOG=9 C#相談室で、OnDrowItemをoverrideというアドバイスを頂きましたが、当方あまり理解
できず残念ながら生かせません。このレスの解説、または別の解決をお願いします。
326:デフォルトの名無しさん :sage :2011/10/28(金) 10:48:23.79
OnDrawItemをoverrideして(protected override void OnDrawItem(DrawItemEventArgs e))
e.Graphics.DrawStringで文字を書く。背景色はe.Graphics.FillRectangle
フォーカスを示す四角形はe.DrawFocusRectangleでOK。
1/1000秒をカウントする一番最善な方法ってございませんか?
っ StopWatch って話ではなくて?
ListViewの行間を調整するにはどうすたらいいですだ?
>>175 オーナードローを有効にしてWndProcでWM_MEASUREITEMを拾って高さを返す
>>176 家庭教師でも雇え
ストリップメニューをクリックしたら A B C D みたいな感じで出したいので、 元のstripmenueに入れるstripmenueを5こぐらい作りたいのですが for(int i=0;i<5<i++) { this->hoge[i] = (gcnew System::Windows::Forms::ToolStripMenuItem()); } みたいな感じにしたいのですがhogeはどういう型の配列を使えばループで作れるでしょうか?
ありがとうございます ストリップメニューに登録するときに 今までは this->StripMenuItem1->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(5) {this->AToolStripMenuItem,this->BToolStripMenuItem,this->CToolStripMenuItem・・・} と書いてたのですがここはどうすれば良いでしょうか?
面倒くさくなったからC++/CLIスレで聞いてくれると嬉しい
わかりました ありがとうございました
Chartの拡大範囲をマウスで選択するとき、小数以下で選択できないんですけどどうすればできるようになりますか?
test
Stripmenuの子がいくつかあってCheckOnClickでチェック状態を反転させるようにしてるのですが 1回クリックするたびにShowDropDown();状態が消えてしまいます消えないようにする定番の方法を教えてください
>>176 DirectShowとSystem.Runtime.InteropServicesの学習
windowsのコマンドラインから実行したとき、ctrl+zが押されたときに特定の処理をやりたいのですが 押されたか知る方法はございませんか?
確認するが、それはコンソールアプリだよな? そうであればConsole.ReadKeyでキー入力は取れる そうでないなら起動したらコンソールから切り離されるから無理
189 :
187 :2011/10/29(土) 23:07:47.32
ごめんなさい、スレ間違いましたorz rubyスレで質問したつもりでした 質問は取り下げます
190 :
デフォルトの名無しさん :2011/10/29(土) 23:27:57.28
例えば性別テーブル 1 男 2 女 があって 性別テーブルからコンボボックスにFillでリストを表示させて、その値によってdgvの絞り込みを行っていますが、性別テーブルに無い全て(男女共)表示させたい場合どのようにすればいいですか?
テーブルにないなら表示もできないだろアホか
Fillしてコンボボックスにバインドする前に適当な値の空行を追加しろ
んで空行が選択されたらBindingSourceのFilterから性別を省くような処理を書け
>>190 は説明不足が過ぎるから信頼性は知らん
GetDirectoriesでStringにファイルのパスを入れたのですが ファイル名だけ欲しいので最後の\までを切り取りたいです どうすれば良いですか?
Path.GetFileName
195 :
デフォルトの名無しさん :2011/10/30(日) 01:37:16.39
<<192 やってみる。説明不足スマヘン。
196 :
デフォルトの名無しさん :2011/10/30(日) 01:42:03.42
<<191 無理すんな。
NetworkStream#ReadTimeout の質問です。
ReadTimeout を設定すると一回目はそれなりの時間だけ待機してくれますが
二回目以降は即座にエラーになります。
※ それなり : 3秒を指定して3.5秒かかっているのはまあ許容
何をどう設定すれば、二回目以降もタイムアウトが有効になるでしょうか?
(サンプル)
http://ideone.com/t2EwI (実行結果)
client send
server receive : abcdefg
00:00:00.0010001 client receive : abcdefg
server send
00:00:03.5122009 error : 転送接続からデータを読み取れません: 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホ
ストが応答しなかったため、確立された接続は失敗しました。。
00:00:00.0050003 error : 転送接続からデータを読み取れません: ブロック不可のソケット操作をすぐに完了できませんでした。。
00:00:00.0050003 error : 転送接続からデータを読み取れません: ブロック不可のソケット操作をすぐに完了できませんでした。。
server send
え、一回しか効かないタイムアウトなんて、何に使うんでしょう? 申し訳ありませんが、例えばWindowsSDKのどこにそのような記述があるかお教えください。
別スレッドで掴んだ状態だから
そうですか。ともかく、ReadTimeout は使わない(依存しない)ほうが良さそうですね。 ありがとうございました。
202 :
197 :2011/10/30(日) 02:58:07.62
ほんと使えねーなこのカス野郎ども ちょっと難易度高めの質問したら スルーしやがってよwwww どうでもいいことには即レスする癖にww あーあ、こんなとこで質問するんじゃなかったわwww
↑成りすましはいかんよ。
こういうネットに関してはPythonの方が楽だよな 1から処理し直さなくても手さぐりで進めていけるから
大丈夫 俺らにはIronPythonがついてる
次のListBoxのSelectedIndexの挙動の違いを教えて下さい。 void Form1_Load(object sender, EventArgs e) { ListBox list = new ListBox(); list.DataSource = new List<string>(new[] { "a", "b", "c" }); Controls.Add(list); list.FormattingEnabled = false; list.SelectedIndex = 2; // 適当にアイテムを選択 list.SelectedIndex = -1; // 選択を解除 Console.WriteLine(list.SelectedIndex); // これが 0 なのはDataSource設定時の仕様ですよね list.FormattingEnabled = true; list.SelectedIndex = 2; // 適当にアイテムを選択 list.SelectedIndex = -1; // 選択を解除 Console.WriteLine(list.SelectedIndex); // なぜ -1 になるのでしょう… } SelectedIndex = -1 ではなく ClearSelected() でも同じです。
> Console.WriteLine(list.SelectedIndex); // これが 0 なのはDataSource設定時の仕様ですよね false状態だと何も選択されていないから、何を代入してもゼロ > Console.WriteLine(list.SelectedIndex); // なぜ -1 になるのでしょう… trueになって正しい数値が入ってる
あークラスの作り方がワカンネ。 今までclass Form1に全部詰め込んで作ってたから、特に問題なく動いてたプログラムを、 クラス分けの練習しようと弄り始めたら、 アクセス領域とかコンテキストだとかヤヤこしいな。 まあ何とかその辺はクリアしたんだけど、 最後にフォーム上のコントロールを直接触ってる部分や、 スレッドセーフのためのInvokeがどうしても移動できない。 根本的に分かってないからだろうなあ。 どこかこういう初心者向けの記事載せてるサイトとか無いですかね?
>>185 ドロップダウンのClosingイベント等でキャッチして
条件にあえば.Cancel = true;にすれば閉じない
>>208 >フォーム上のコントロールを直接触ってる部分や、
>スレッドセーフのためのInvokeがどうしても移動できない
そもそも動かそうというのが間違ってるっしょ?
classに切る以上、独立した機能として切り出すわけだから。
Invokeに関しては、Controlオブジェクトをフィールドに持っておいて、
そのクラスをインスタンス化するときにcontrol.CreateHandle等を呼んでおき
Invokeするときはそのオブジェクトを使うとか
>>207 ありがとうございます。
>false状態だと何も選択されていないから、何を代入してもゼロ
list.SelectedIndex = 2; の時点ではちゃんと 2が代入できて画面上でアイテムの選択も反映されています。
また、list.SelectedIndex = -1; を2度行うと -1 が代入され、ちゃんと選択解除されてしまうんです。
>>210 あんがと。でもワカンネwww
あんたはそれをどうやって学んだの?
プログラミング歴1年くらいの頃に戻って、
アドバイスしてくれよ。
参考になった文献とかさ。
>>212 アントニオ猪木の『道』でも読んだらどうだろう。
いやマジで
>>212 dll作ったことあるか?
デリゲート、インターフェイスが何か説明できる?
WPFちょっとやってみれば?
俺はプログラミング初めて2週間だけど
理解できてるよwww
>>208 >スレッドセーフのためのInvokeがどうしても移動できない。
Invokeの移動って何ですか?
216 :
デフォルトの名無しさん :2011/10/30(日) 12:55:56.76
>>214 dllの作りかたの説明をお願いします。どうやって学んだの?
デリゲート、インターフェイスが何か説明されても用法要領がわからないので参考になる例題をお願いします。
WPFちょっとやってみたいので、ちょっと2週間ほど教えてください。まじで。
>>216 >
>>214 > dllの作りかたの説明をお願いします。どうやって学んだの?
新規追加>クラスライブラリ
ネットで調べた
> デリゲート、インターフェイスが何か説明されても用法要領がわからないので参考になる例題をお願いします。
invokeやってるんだからデリゲートは使ってるだろw
同じインターフェイスを持った者は同じように扱える
モデルクラスが増えてきたら考えていいんじゃね
てか、Viewと疎結合したいなら必須だろーw
> WPFちょっとやってみたいので、ちょっと2週間ほど教えてください。まじで。
俺も今勉強してるとこなんだよwww
秀丸マクロから呼び出せるDLLを作ることは可能ですか?
>>216 一度C#から離れてオブジェクト指向調べてみたら?
デリケートは無いかも知れないけど、インターフェ−スの用法とかはそれで分かるはずだよ
そいつに触るな WPFスレみたいに荒れるぞ
>>218 ・C++からプロセス起動 ・C++/CLI ・C++でCLRホスト ・逆P/Invoke
優先度順
700 名前:デフォルトの名無しさん[sage] 投稿日:2011/10/30(日) 04:45:34.70 糞ったれがあああああああああああああああああああああ やりたいこといっぱいあるのにXAMLの糞のせーで全然先にすすまねええええええええwwwwwwwwwwww 704 名前:デフォルトの名無しさん[sage] 投稿日:2011/10/30(日) 05:39:28.80 あーわかったわ お前がダメ人間なんだなwwwwwww お前はちょっとやってできないと向いてないって思いこむ ネガティブな根暗な人間なんだな?www お前今まで何度も向いてないとかダメ人間扱いされてきたから リアルじゃ言えなくてネットで言ってストレス発散してるんだなwww お前それ理解できるのに何年かかったよww WPF学び始めてからじゃにぞ、下積みから全部合わせただよw そういう下積みがありゃ、それみりゃすぐ理解できるかもしれんが こっちはプログラミング初心者なんだよカス てか、お前もわからないんじゃねーの? あーそーだ、きっとそーだなwww 707 名前:デフォルトの名無しさん[sage] 投稿日:2011/10/30(日) 05:52:18.16 もともとプログラマじゃないしwwアホかwwww お前みたいな根暗な人間は日陰でずっとキーボード叩いてろハゲデブwwww
713 名前:デフォルトの名無しさん[sage] 投稿日:2011/10/30(日) 07:19:54.72
>>708 何もかもだよ
staticResouceとかも意味わからない
@ITのとこも全部みたが説明自体が難しくてさっぱりだ
丸暗記するのもなんか腑に落ちないしな
あーいらいらするわ
これ独学でやるの無理なんじゃね?
WinFormsなんて最初から普通にプログラムかけたぞ
めちゃくちゃわかりにくいわXAML
ただ、ツリービューにコレクション表示したいだけがwww
なんでこんなわけのわからないコードを書きまくらなきゃいけないんだよ
どーこーがー生産性向上なんですかーーー?おしえてくれませんかねーww
こんなアホ臭いことずっとやっていかなきゃならないのかよwwww
722 名前:デフォルトの名無しさん[sage] 投稿日:2011/10/30(日) 08:23:52.17
>>719 あーわかったお前これ自分のこといっているんだろww
お前がVBばっかりやっててオブジェクト指向全く理解できないで
リストラされたから、その腹いせで言っているんだろwww
昔の言語は上から順番だったからな
お前そういうのばっかりやっててついていけないんだろ?w
だから、質問者にオブジェクト指向を理解してないとか何度もいうんだろw
お前がそのレベルなんだよwww
コントロールはクラス?何当たり前のこといっちゃってるのwww
そんな次元ですか?
TreeViewItemをクリックしたときのヒエラルキの挙動が知りたいんだよ
こいつなにやってんだよ全く、
733 名前:デフォルトの名無しさん[sage] 投稿日:2011/10/30(日) 11:53:51.10
>>717 なんだよできないのかよカス
>>728 そうそう自由にかけるんだよ
正しい使い方はこれです!みたいなのがわかんねーんだよ
>>725 早く答えろよ
ヒエラルキは内部でどうしう処理してるのかさ
誰一人答えられないじゃん
偉そうなこと言って、俺は知能が高いとか言っちゃって
ただ盲目的に丸暗記しているバカばっかじゃんwwwwwwwwwwwww
プログラミングに知能なんていらないよwww
時間と知識だけでいける分野
お前らが何年もかけて学んだことを
おれは数日で会得しているんだからなww
知能でいったら俺の方が上だよwwwwwwおっさんwwwwwwwww
>>724 エッセンシャルなんてしるかよアホか
なりすましもコイツか?
Vectorにあるようなメトロノームを作りたいのですが C#で作ることはできますか?
2chだからって無理にネタ風に書かないと恥ずかしいとでも思ってるのかねこういう馬鹿って。 はっきり言うけど、2chでネタなんかやってる奴は、自分の実生活では ネタ一つ言い合う相手もいないコミュニケーション弱者。 ボキュはコミュニケーション弱者です、って言って回って何が面白いのやら。
メトロノームちょくちょく見かけるぞ コピペ?
こういう奴がいるから、まじめに質問してる人が迷惑こうむる。 なりすましたり茶化したりするからロクなレスが付かなくなる。
メトロノームはちょっと前にいた人だ。 初夏くらいのころだっけ? 理解力はなさそうだけど誠実そうな人だったよ。
ないわw
>>228 さん
>>230 さん
HSPを一ヶ月やったことがある程度でこれからC#を始めようと思ってます
出来るよ で、Timerは何を使ったらよろしいでしょうか? と続く感じ
ああ夏のか 反応なくて逆ギレしてた回答者に粘着されてたな
メトロノームは音声ストリームをリアルタイムに合成すればハードウェアの限界まで精度が上がるって結論になっただろ
メトロ濃霧ってなに?
濃霧/Fogを使ったデッキ 一世を風靡した
C#からファイルを1つ以上選択してパラメータと一緒に送信しJSONで結果を得るプログラムを作りたいと思ってます。
WebClient.UploadFileだと1度に1つしか送れないので使えません、
下のような感じで使えるクラスが標準であればよいのですが無いようです。
既にあれば出来合いのものでもよいのでご存知の方いたら教えてください
HttpRequest req = new HttpRequest();
FormData data = new FormData();
// パラメーター
data.Add("title", "ファイルを送りたい");
data.Add("name", "名前");
// ファイル
data.Add("inputFile1", (System.IO.FileStream)file1);
data.Add("inputFile2", (System.IO.FileStream)file2);
req.Open("POST", "
http://example.com/ ", true);
req.Send(data);
>>238 あまりいい方法とは思わないけど、
適当なクラスを作って、バイト配列でファイルを格納し、
それをバイナリでメモリ上にシリアライズしたのを送るとかではだめなの?
通信するなら圧縮もした方がいいのかな?
マルチパートデータで送りたいってんだろ 質問者も言葉が足らんがシリアライズじゃ駄目駄目だな
StreamReaderを引数に取る関数のテストを書きたいんだが 文字列->StreamReaderの変換ってどうやるのさ
引数に取るものをTextReaderにしてStringReaderを使う あるいはString→byte[]→MemoryStream→StreamReader
>>241 ありがとうございます、これはわかりやすい。頑張ってみます
WCHAR *g; *g= this->textBox1->Text->ToCharArray()[0] ; コンパイルは通るし画面のテキストボックスにも文字はちゃんと表示されてるのに オブジェクト参照がオブジェクト インスタンスに設定されていません とエラーが出て止まります。どうすれば良いですか?
>>243 別人だけど正に今探しにきた内容だったわー。ありがとう。
日本語を含むStringをStreamに変換したかったんだけど、MemoryStreamを介すると日本語が上手くいかなかった。
最初からStringReaderのコンストラクタに文字列を食わせればOKだった。
可変長配列を多次元配列もしくはジャグ配列にすることって出来ます? List<double[]> hoge = new List<double[]>(100); で、宣言は通るのですが、そこに値を入れたり参照することが出来なくって
ちょっと何言ってるか分からないが ひょっとしてnew List<T>(int)の引数を初期要素数と勘違いしてる? あとListをnewすると全要素が自動的に生成されるとか思ってる? そこから一行目がまたさっぱりつながり不明なんだけども
250 :
248 :2011/10/31(月) 17:01:58.78
>>249 すいません、ジェネリックそのものを勘違いしてました
普通にジャグ配列で良かったです
教えて君向けのgoogleの検索の使い方を教えるサイト教えてください 「ね?簡単でしょ」みたいな感じの奴 このスレで見かけたんですが忘れました
どうでもいいけどListを可変長配列と呼ぶのは違和感あるなあ。 リストと配列は全然別の概念だろう。
>>243 なるほどありがとう TextReaderが親クラスだったのか
でもStreamReaderのが汎用性有りそうな名前してると思う
これはもしかしたらC#の問題では無いかもしれないけれど、質問させてください。 現在、Visual C# 2010 Express でスクリーンセーバーを作成しています。そしてスクリーンセーバーの 各設定(背景の色など)をアプリケーション構成ファイル(app.config)に保存する仕様にしました。 設定変更用のダイアログボックスを作成し、そこで「Properties.Settings.Default.○○」を利用して 設定を変更しており、設定した値はきちんと保存されています。.scrファイルを右クリックして「テスト」 でスクリーンセーバーを起動すると、設定がきちんと反映されて動作します。 しかし、私は今 Windows7 マシンを使っているのですが、.scrファイルを右クリックして 「インストール」を選択するとスクリーンセーバーの種類や待ち時間を設定するダイアログが 表示されます。ここにある小さなプレビュー画面や、「プレビュー」ボタンを押して呼び出される スクリーンセーバーは、きちんと設定が反映されて動作します。 しかし、待ち時間の経過によりスクリーンセーバーが呼び出される場合は、何故か設定が全く反映されず app.configのデフォルト値で動作してしまいます。ちなみに、サブとして WindowsXP のマシンも持っている のですが、そちらではこのような問題は起こらず設定がきちんと反映されます。 いくら考えても、どれだけネットなどで検索しても、全く原因の見当がつきません。 どなたかご助言をいただければうれしいです。
257 :
254 :2011/10/31(月) 21:14:37.16
そうみたいですね 移動しまーす
>>257 本物の254です。確かに移動しようとは思うのだけど、何故成りすましがw
「www」でこのスレ抽出すると分かるよ しかし何だ? Windows7だとスクリーンセーバーをサービスコンテキストで実行しているとでも言うんかな?
ちょっと待て app.config?user.configじゃなくて?
とりあえずメッセージボックスとかログとか仕込んで実行時のデータ確認しなよ
>>261 ああ確かに、実際に読み書きされるのは user.config です。読み直したら
誤解を招く書き方となっており申し訳ないです。
きちんとAppDataフォルダ内にはuser.configが生成しており、設定を変更するたびに
きちんと内容に反映されています。待ち時間の経過以外でスクリーンセーバーが呼び出される
ときには、きちんと変更した設定が反映されます。
どうしてWindows7限定で、待ち時間の経過で呼び出されたときだけ、反映してくれないのか……。
とりあえず、スクリーンセーバーのエントリポイントでGetUserNameやってみ
>>263 手動でやった方が速いだろアホ
てか、質問者は早く相談スレいけ
ここはキチガイと戯れるスレになったんだからな
254です。色々とご助言ありがとうございます。もう少し試行錯誤して 原因を追究してみたいと思います。
ProcessMonitorでどこのファイル読みに行ってるとか確認すれ あとファイルでなくレジストリにするとか
C#でASP.NETのシステムに関わっています いま、XMLデータがPOSTで送信されるのでそれを受けとるところでうまくいきません テストページからFormタグでPOSTしたデータをRequst[inputタグ名]で取得することはできましたが本番ではどのようにして送付されるかわかっていません 該当ページに対してPOSTでXMLデータが投げられたら受けとるようにしたいのです なにかいい手はありますか?
んなもんInputStreamから生のバイトストリーム読めよ
XMLオブジェクトが欲しければXmlDocument.Load(Stream)とかに食わせたったらええねん
XMLのことを聞いてるみたいなので初心者ながらちょっと質問です。 ATOMでBLOG記事を取得しようとしてるんだけど<link>要素を取得しようとしたら <link rel="alternate" type="text/html" href="test.html"/> こんな感じになっていたわけです。RSS1.0とかだとlinkにはURLが入ってたの。 だからちょっと困っているのですが、上のATOMのlink要素からURLのみを抜く方法を教えてください。 ちなみに「SyndicationFeed.Load」とか使わないでパーサ使う方法でお願いします。
272 :
271 :2011/11/01(火) 05:35:43.10
>>271 何に困ってるのかがまず分からない
href属性の値見ればいいじゃん?
interfaceのメリットを三行で教えてください。
276 :
デフォルトの名無しさん :2011/11/01(火) 11:45:32.95
地肌が洗える?
多重継承
簡単にあわ立ち 頭皮の各層のうるおいを守りながら洗えるから フケやかゆみを防ぐことができる
>>275 ポリモーフィズム
そのクラスがどんな機能を持っているのか分かりやすい
どんなクラスでもインターフェースさえ実装してれば同じものとして扱える
インターフェイス自体糞面倒 定義に移動ってやるとインターフェイスファイルに移動するし 引数変えたり、メソッド増やしたりするたびに 両方書き換えないといけないからな
不便だと感じるときは、まず使い方を間違ってないか疑うべきだ レンジdeパスタのように
あらゆるものをインターフェイスにする流儀はある 単体テストだけが目的で、実稼動時の実装は大抵一つだけ
マクロ使えない方が不便だわ
>>274 なんて説明したらいいのかわからなかった。本当に申し訳ない。
たとえば
taitoruuuuuuuuuuu_no_linkuuuuuu = yousoooooooo.Element(ns + "title").Value
こんな感じなコードを書く訳ですよ。nsにはatomなので
http://purl.org/atom/ns#渡してます 。
この状態でrss1の時はlinkにはURLが入ったのでそのまま表示をしたんだけど、
atomだと勝手にいろいろされちゃうので、その「href属性」を取り出す方法ってのを教えてほしいです。
申し訳ありませんがよろしくお願いします。
Element拡張メソッドがXElementオブジェクト返すってのは分かるよね? あとはMSDNでXElement調べれば属性の取得方法も分かるよ
もうちょっと概念から行った方が良いのかしら <link href="hoge"/> これはlink要素を指してて、このlink要素は「hogeという値を持つhref属性」を持ってる。 XElementのValueは開始タグと終了タグの間にあるテキストを指すわけだが、このlink要素は中身がないから当然Valueも空。 hrefの値を取得するには、 まずXMLの中からlink要素を特定する。 そのlink要素のhref属性を特定する。 そのhref属性の属性値を取得する。 という手順になる。
>>275 フレームワーク作ってる(または、作った後の)時に他人に実装作業をキックするときに、仕様を明確にし易いかな。
帰ってきた実装が明後日を向いてる時もあるだろうけど。
Cにくらべてマクロが弱くてがっかりしています とくに__LINE__ は どうやって代用するものなんでしょうか?
StackTraceクラスを使う C#の次のバージョンでは__LINE__相当の機能がサポートされる予定
もういいよ 話が通じないことだけは分かった 答えて欲しかったらソース晒せ
いや、もう諦めた こんなとこで質問するんじゃなかったわ
潔いな
最近去り際に余計なこと言い残してくヤツ増えたね
296 :
デフォルトの名無しさん :2011/11/02(水) 01:18:22.18
気にしない気にしない 完璧な答えが貰えると思い込んでたり、自分の質問の仕方が正しいと思い込んでたりといろいろだけどねw こっちも答えたいんだが情報が足りなかったり、得意分野ではないけど調べると対応できるかもと 思って情報を引き出そうとしても、それすら気に入らなくて切れて去っていく人もいるし エスパーじゃないのでわかるわけがないのにね
でもあれだなとりあえずID機能実装してくれ 成りすましで荒らしてるだけのやつもいるので
C#で2ちゃんねるにID機能を実装するにはどうすればいいんですか?
スタックとヒープに未だによくわからないんだけど スタックがint型とかstring型とかの値を指してて、ヒープがobject型やインスタンスを指してるの?
とりあえず裸で1日正座してると実装されるって聞いた。
スタックは1メガ
>>299 に便乗
その認識で合ってるけど、全ての値型がスタック?
それともスタックに積まれたメソッドのローカル変数のみ?
結局どんな型も値型変数とメソッドで構成されるから
何でもかんでもスタックに確保したら足りなくなっちゃうよね?
>>299 大ざっぱに言って
スタックはあらかじめ確保済みのメモリ
ヒープは必要に応じて確保するメモリ
スタックの主な用途はローカル変数を格納すること
で、そのローカル変数が値型だとメンバ丸ごとがスタックに格納される
参照型だとメンバ(実体)はヒープに置かれてて、その参照だけスタックに格納する
ちなみにintは値型でstringは参照型
>>302 当然参照型の中に含まれるものはすべてヒープに置かれる
つーか、そんなのは2ちゃんよりググレば詳しく説明してるサイトが 山ほどあるのに。
305 :
302 :2011/11/02(水) 09:13:00.19
>>304 ググるキーワードがわからないってケースも少なからずあるかも知れぬ
C#は値型のローカル変数の初期化にもnew使うから一概にそうとは言えない
>>307 そう
メモリ確保してそこにクラスをコンパイルして実行ファイルに埋め込んである
コピーするための雛形をコピーしてコンストラクタ呼んで初期化して・・・
>>312 ヒープに確保する領域の中ってメンバ関数への参照は持たないんだっけ?
オーバーライドとかどう対応するんだろ?
>>313 静的型だから実際の型さえわかればメソッドは一意に決まるので、インスタンスはメソッドを持たない
インスタンスは型情報を持っていて
その型情報をもとに検索する
すまん 下の方に但し書きであった >*3・・・メソッドはスタティック領域(メソッド領域)と言われる領域に確保されます。インスタンスが違って >もメソッドは同じ動作を行いますから、領域をいくつも使ったりすることはありませんのでメンバ変数分だけ >領域が確保されます。 >(実際はクラスのサイズやその他の情報も持っている筈ですが、ここでは割愛いたします。)
>>314 メソッドを個別に持たない(コピーしない)のはわかるけど
メソッドの参照なり情報は持つんじゃないの?
まあオーバーライドしない場合はコンパイル時にコンパイラが仕事しちゃえばいいんだろうけど
でもクラスライブラリとかだとそういうのは都合悪いよね
>>316 インスタンスじゃなくて型がメソッド情報を持てば十分なの
ToStringで何が呼ばれるかはインスタンスそのものじゃなくてその型で決まるだろ?
インスタンスは型情報を持てば十分
318 :
317 :2011/11/02(水) 12:13:48.74
その型で決まる というのは、変数の型じゃなくてインスタンスの型で決まるってことね Rubyみたいな動的型の言語ではインスタンスごとに持ってるメソッドが違ったりすることがあるけど 静的型の言語ではそういうことはない 補足
辞書<インスタンス,型> 辞書<型,メンバリスト> でおけ
E.M(A) はMが仮想メソッドのとき
呼び出される関数は、Eが参照するインスタンスの実行時の型によって与えられる。
その関数は、Mの最派生実装を決定するルールをその実行時型に適用することで決定する。
言語仕様からしてこういう書き方だからな
たまたま
>>319 のように実装されてるのではなくて、そういう風に実装するのが前提
C#でtypedefをファイルを超えて使いたいときってどうするの? 具体的にはUInt32に適当な別名を付けたい
322 :
299 :2011/11/02(水) 20:20:25.72
>>303 解答ありがとう。だいぶわかってきた。
>ちなみにintは値型でstringは参照型
ということはintはスタックでstringはヒープってことか
>ヒープは必要に応じて確保するメモリ
でもこの通りに考えるとint型の配列はヒープってことでおk?
>>321 実験してみた。
Using構文でtypedefの機能は果たせるけど、ファイルを横断するのは難しい。っていうか自分には出来なかった。
ネームスペースいじったりしてみたけどダメだったし、Publicでいけるかとも思ったがそれもダメ。
うむー。
>>321 implicitにUint32と相互に変換できる別の値型を自分で作れば事実上別名と同じじゃない?
でも、そもそも別名なんていらんでしょw
>>323 ,324
ありがとうございmす
正攻法は存在しないかー
>>325 まー、モジュールにしたときに依存関係ができちゃうので、
ファイル個々に設定する方が後々めんどくさくないのかも。
> でもこの通りに考えるとint型の配列はヒープってことでおk? 配列のインスタンスはヒープに確保されるね
>>324 は正攻法だろ
本物のtypedefなんかよりよっぽど真っ当な方法
そんなことのためにプリミティブ型の利点を捨てたくないです
利点といっても値型ならほとんど何も変わらないけど
ListViewでユーザーがアイテムのテキストを編集中に別のとこをクリックした時に LabelEditモードを終わらせるにはどうしたらいいですか?
Janeのレス表示部分のように文字列を表示して 特定の文字をクリックしたときに特定の処理を行うようなプログラムを作りたいのですが どういったコントロールを使用するのが妥当なのでしょうか? 表示する文字列はプログラムの処理によって変化し 文字列の行が長くなればそのコントロールをスクロールバーで上下にスクロールできるようにしたいのですが
>>333 ありがとうございます。
とりあえずRichTextBoxから試してみます
public static bool operator +(bool b1,bool b2){ return (b1 || b2);} こういうのて boolっぽい新クラス定義しないと無理なんでしょうか?
リッチテキストボックス内に A B C っていう3行表示して Aをクリックした場合 Bをクリックした場合 Cをクリックした場合 で処理って変えられるの?
っていうかそういうのは自前で描画してこそ楽しいのに
初心者用で自前で描画しろってのはなかなか
楽しさを解説してるようなURLくらい貼ってやりたいところだがそんなとこあるのかなーとか
楽しいは楽しいけどな 出口の見えない迷路はつらい
自前で描画すればマウスの位置から特定の文字列と判断するのも容易だし やってみれば意外と簡単だったりするかもよ。
とりあえず描画するのは簡単だ でもコントロールとしてきちんと機能するものを作るのはアホみたいに手間がかかる
コントロールにしなくてもいいのではないか。
//スキル foreach (Skill s in Skills) { s.Update(this); if (s.State == State.CLEAR) { Skills.Remove(s); } } 大体やりたいことは分かると思うけど、これだと >コレクションが変更されました。列挙操作は実行されない可能性があります。 って出てしまいます。 さて、どうすりゃいい?
Skills.ToArray()
お前天才だな、ども
要素が参照型じゃないと、要件は果たせないだろうけどね。
//スキル foreach (Skill s in Skills) { s.Update(this); if (s.State != State.CLEAR) { Skills2.add(s); } } Skills = Skills2
IListならforでケツからループすればいい
>>345 Skills = Skills.Where(s => { s.Update(this);
return s.State == State.CLEAR;).ToList();
>>345 カッコ閉じ忘れた
Skills = Skills.Where(s => { s.Update(this);
return s.State == State.CLEAR;}).ToList();
353 :
238 :2011/11/03(木) 22:08:06.08
238 です。241を参考にしながらようやくできました、自由に使ってやってください。
HttpRequest
http://ideone.com/2Hvfj FormData
http://ideone.com/uYeca FormData data = new FormData();
HttpRequest req = new HttpRequest();
req.Open("POST", "
http://localhost/server.php ");
data.Add("name", "名前");
data.Add("pass", "aaaaaaaaaa");
data.Add("api", "fileupload");
data.Add("inputFile1", (FileInfo)file1);
data.Add("inputFile2", (FileInfo)file2);
HttpWebResponse res = req.Send(data);
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader readStream = new StreamReader(res.GetResponseStream(), encode);
// 応答をConsoleに
Console.WriteLine(readStream.ReadToEnd());
// コネクションを切断
req.Abort();
WhereとかSelectとか意味わかんね 助けて;;
ラムダ式を勉強する→yieldを勉強する→WhereとSelectを自作してみる→完璧
ウェブブラウザコントロール使って その中のリンクをクリックしたらクリックイベントが発生するようなことってできますか? 普通にhtmlのリンクとしてしか扱うことできないんでしょうか?
ついこの前もHtmlDocumentだかにClickあるって言ってなかったか 流行ってるのかこの質問
定番の質問だよ新参のお兄さん。
HtmlElementでClickを拾って、キャンセルしたいならReturnValueに…何を返すんだったかな
e.Click にキャンルじゃなかったっけ?
そうだっけ そりゃすまんの
>>34 にあった
DocumentCompletedイベントもしくはnavigatedイベント後にその後起こるNavigatingイベントを拾って
そこで条件にあった場合はe.Cancel = true;でいけるな
本屋で何買えばいいか迷って結局何も買えずに帰ってきた 奥義、究極の、至高の、猫でも、猿でも、10日で、作りながら覚える、入門、555連発 なにか「これぞ」という実践的な内容のものないかなぁ
実践は置いといて入門からどうぞ
右下からにょきって出るのどうすんだっつってんだよ
ボーダーなしのFormをAnimateWindow
Win32APIがいるのかむずー
Win32APIって言ってもP/Invokeで関数呼び出すだけだから難易度はそんなに高くないだろう レイヤードウィンドウとかDirect2D使うなら別だけど
370 :
デフォルトの名無しさん :2011/11/04(金) 10:40:04.96
C#でクロスプラットフォームなアクションゲームを作っているのですが、Sleepの扱いでちょっと困っています。 Thread.Sleep(0)では見かけのCPU使用率が100%になって、素人に「なんだこの糞重いクソゲは」って言われそう Thread.Sleep(1)では実際に10〜15ms程度休んでしまって、たまに動作の引っかかりを感じる 1msきっちりとまでは言いませんが、せめて3〜4msだけ休ませるような方法ってないですか?
ゲームは100%になるものです。
そもそも何のためにウェイトすんの
>>372 自宅のCorei7 2600Kとかだと余裕ですが、動作検証用に用意したPentiumD 805だと結構重たいので、
スレッドプール作ってスレッド分けしてみました。結果かなり改善されましたが、スレッドの数だけ
CPUのコアごとのCPU使用率が100%にへばりついてしまいます。そのためSleep(0)をSleep(1)に
置き換えたのですが、そうするとたまに動作の引っ掛かりを感じるようになりました。
通りすがり >Thread.Sleep(1)では実際に10〜15ms程度休んでしまって 知らんかった・・・そうだったのか・・・どおりで・・・ Sleep(0)では実質、どうなってるの?休んでるの?
>>375 > Sleep(0)では実質、どうなってるの?休んでるの?
他に処理待ちのスレッドがあれば一旦そっちにCPUを渡す。
そうでなければ即座に返る。
Thread.Sleep(0.1) にすればいいよ
>>371 やねうらお氏も同じこと言ってましたね……。
友人にもテストプレイさせたのですが、
「起動して暫くしたらPCファンがフル回転始めたwwお前のゲームだけだぞこんなのwww」
と言った反応だったので、何も知らない人はそんなもんなのかなあと。
>>373 そこ一旦は見つけたのですがVista以降とのことで読み飛ばしてました。
念のため読んでみます。
C#,アクションゲーム,クロスプラットフォーム そもそも前提が間違ってるような・・・
XNAで作ればいいのに
VS2010を使っているのですが、ChartコントロールでX軸の値を、実際の値以外の数値(もしくは文字)で表示させることは出来るのでしょうか?
動画の輝度をグラフにしているのですが、フレーム数そのままでは見辛いので時間表示にしたいと思っています。
理想としては、各フレームに格納されている値に若干バラツキがあるので、それをそのまま表示することです。
もしくは、動画時間をフレームレートで割って、大体の目安として時間を表示することです。
MSDN等を参考にしても上手く行かず、ググってもVB6の情報等が入り混じっててわかり辛く一通り試してみましたが上手くいかないので質問してみました。
http://msdn.microsoft.com/ja-jp/library/dd456628.aspx よろしくお願いします。
モデルクラスとプレゼンタークラスのプロパティをバインドするにはどうすればいいですか?
Control.DataBindingsプロパティを使う プレゼンタークラスも非Controlクラスなら知らない
プレゼンターも非contorolです こんな感じにするしかないのかな? model.PropatyChanged+=(s)=>{this.Name=s};
MVPだったらビューにモデル渡してビューと直接バインドすればおk
ビューに
>>385 なら分かるけどプレゼンターに
>>385 のコードっておかしくない?
MVPでプレゼンターのコードなら
model.PropertyChanged += (s) => view.Name = s; じゃね
質問者が思ってるのはMVPというよりプレゼンテーションモデルに近いような
>>386 それやってしまうと、WinFormに依存することになりませんか?
いずれWPFに移行することになると思うので
ビューを意識した作りにはしたくないんだけど
WPFにもWinFormsでも同じように使えるモデルクラスを作りたいんです
>>388 分かってると思うが、大前提はMをVに依存させないこと。
Mとバインディングする処理(または
>>385 )をV内に書くのはその点で別に問題ないだろ?
でもMVPの基本はVにインターフェイスを被せて
>>387 のようにPがVにデータを送る。
>>389 MVPにしてしまうとMVVMに移行しにくくないですか?
MVVMはVがVMを参照して更新するわけで
MVPの場合はVがMを参照しますよね?
MVVMにしようとした場合Mのアクセサ部分を書き換えることになると思うんだけど
>>390 プレゼンターと自分が言ったんだろ
MVVMというかプレゼンテーションモデル使いたければ使えばいいけど
バインディングが貧弱だと面倒だしビューのコードも増えるぞ
WPFでMVPやる分には何の不都合もない
なんか妙なこと言ってるよね 自分で何をしようとしてるかわかってるんか
プレゼンテーションモデルじゃなくて アプリケーションモデルがしたいんです だからプレゼンターとモデルをバインドするって言っているんですけど・・・
何で食い違ってるのかようやく分かったw
プレゼンテーションモデルとアプリケーションモデルは同じものだけど
最初からVとMをバインドさせない PとMをバインドしたいからどうすればって聞いているのに 全く分かってない人だなー
用語を正しく使えないと伝わらない
MとかVとかPとか言ってるけどさ それぞれの役割ちょっと書いてみてよ たぶん認識が違うから、英語と日本語みたいに伝わらないよ
質問者の話にはVなんか出てきてないんだぜそもそも 勝手にMVPがどうとか言ってるけどさ MPっていう新しいプログラミング手法だよ 魔法でも唱えるんじゃねえの
Mはデータ管理 VはイベントをPに通知する、Pのプロパティを参照して更新 PはイベントにしたがってどのM を使うか決める Mのデータの更新を参照してVに公開する こんな感じのを作りたい 2ちゃんブラウザだとして、スレが選択されると Vが選択されたスレidexなどをPに送る Pは選択されたスレのレスをMから取得してVに向けて公開する感じ
それは紛れもなくMVVMだと思いますよ
MとかVとかPとか言わないで初めからFormsでMVVM風に書けばええんとちゃうの
一般にはアプリケーションモデルまたはプレゼンテーションモデル、 WPF使えばMVVM
一般にはって言うけどMVPやらMVCやらMVVMやらそれぞれ微妙に繋がりは違うよ どれを指してるかは「プレゼンテーションモデル」の一言では特定できん
>>401 いづれWPFに移行するのでそれに近い形で作りたいんです
MとVをくっつけちゃうと、絶対書き直さないといけないですからね
>>402 そうしたいので、Mとプレゼンテーションのバインドの仕方を聞いているんですけど
どうすればMのデータと同期が取れるんでしょうか?
VMのプロパティのゲッタでMのプロパティ返せばよくね 変更通知の関係などでそれでは不満だというならどのみちバインディングじゃ無理だろ
V→VM→Mと辿る時は普通に辿ればいいし M→VM→Vと通知が上ってくる時はINotifyPropertyChangedがチェーンしてるだけ(依存関係プロパティみたいのもあるけど)
すみません、物凄くくだらない質問なんですが、 Treeviewで、何も選択されてない状態にしたいのですが、どうすればいいでしょうか treeView1.SelectedNode = null; ではダメですか?
INotifyPropertyChangedを使った場合 VMの値は自動で変わりますか? WPFのVに対してINotifyPropertyChangedを使うと自動で同期してくれるのはわかるけど 通常のクラス同士でそれをする方法がわからない
>>408 treeView1.SelectIndex=0
>>409 >VMの値は自動で変わりますか?
変わらないよ
INotifyPropertyChangedは変更のあったプロパティの名前を通知する
VMはそれを見てMのプロパティから値を取得するか、Vに取り次ぐだけ
同期は自分でやるんだよ
つかWPFに移行したってVMとMを連結させる仕組みなんかないよ 何か変なものを読んだんじゃないか
>>410 それはComboBox.SelectedIndex プロパティじゃないですか?
TreeViewには無いみたいなんです・・・
てことは、コントロールごとにVM作るほうが簡単ってことか・・・ それって結局MVPのようにMを参照してVを更新するのと同じだよね? あーどうやったらわかりやすくコードが書けるんだ・・・ イメージとしてはVと連携するのは1つのクラスだけにした方が わかりやすそうなのに、それだと多数あるMと同期させる処理が大変 MVVMって本当に楽になるの?VとVMの関係は確かに楽だけど それを実現させるための方法が難しすぎる WPFのサンプルみてもVMをDataContextに渡してはいるけど XamlでMをインスタンス化して利用してたりもするし
だからね、同期するって発想をやめてね、VMの上にMをズラズラ並べてって VとMをバインドしちまうんだよほとんどは 加工が必要な奴だけVMを介する
そもそもVMはなぜ存在するかって言ったら、Mが増殖しすぎてわけわかめだからさ そこの緩衝にするために、だいたいVに対応するMとして置いてるわけ Mを選択するとかそんな堅苦しいこと言ってないんだよ
class VM { public M1{get;set;] public M2{get;set;] public M3{get;set;] public 本文 { get { var res= ... //m4.DatListを取得して加工 return res; } } } つまりこんな感じでもいいってこと?
Microsoft Visual Studio 2010 Express for Window Phoneを使ってます Butonを配置してタッチするたびに数値が増えていくプログラムを作りたいです お願いします
WPですか まったく分かりませんなw
そうですか。全くのド素人なので下らない質問すいませんでした
>>418 そのくらいだとプログラムというよりXAMLだけで実現できるレベルかも
で、久々にやろうとしたらエミュレーター上でサンプルプログラムが表示されねーでやんのw
エミュレーターも起動してWPのロゴもでてるんだけどなw
たんに起動に時間かかってただけだった
3分もかかるの
>>424 どこまで放置すればいいのかわからないので起動途中で終了しては再起動と繰り返してたからねw
427 :
デフォルトの名無しさん :2011/11/05(土) 00:14:59.32
>>426 おお!感謝します!ありがとうございました!
html内に記述されているxmlだけを抜き出す方法ってないでしょうか? ブラウザ上で表示するとxmlのデータが表示されるんですが、 実際にはhtmlで書かれていて、データがXmlDocumentクラスでうまく取り出せません WebBrowserクラスを使ってhtmlを取得 ↓ htmlから何かを使ってxmlだけを取り出す ↓ XmlDocumentで処理 みたいな感じになると思うんですが
429 :
デフォルトの名無しさん :2011/11/05(土) 11:19:16.51
>>428 htmlに埋もれてるxml部分のタグとか認識に使えそうな情報は無いの?
XMLに見えるだけでXMLじゃねえからな 難しさの違いはあれど画像を文字にしたいっていうのと話は変わらない
特定のページに限るならそんな難しくないだろ
少なくとも
>>428 にはパターンが抽出できないんでしょ?
その辺は人間性能に依存してしまうわ
xmdoc.loadxml(getelementbyid("hoge").outerxml) とかでできないかな
434 :
デフォルトの名無しさん :2011/11/05(土) 11:56:41.49
>>432 サイト構造なんてそうそう変えないだろうしWebBrowserが解析して
xml(ぽい?)データとして表示してる以上は何かしらのマーカーとして使える
タグはあるはずだよ
htmlを晒してくれない(晒せない?)のでxmlデータ付近のタグを聞いたんだけどね・・・
みなさんありがとうございます。
htmlをアップしてみました。
初めて使ったのでうまくできてるかどうか。。
http://ideone.com/6hdiq html内でどの部分がxmlに当たるのかは、見ればわかるので、
htmlから特定の文字列部分だけを抜き出す処理を作れば、欲しい情報は得られます。
ただ、ページがたくさんあって、それぞれ情報が異なるので
ページごとの処理を1つずつ実装するのはちょっとキツイです
正規表現でxml部分だけ抽出したら良いんじゃないの?
レンダリング後がXMLか これはむじ
bodyの全部だなw
これだったら単にhtmlのDOMに読み込んで テキストだけ取り出して連結すればいいだけじゃね
いやまてよ タグを全部とっぱらえばXMLになるか
441 :
428 :2011/11/05(土) 12:24:22.99
ブラウザに表示されているデータだけを抜き出せばそのままxmlになると思うんですが、 可能でしょうか?
ちょっと甘く見てたわ 俺はやめとくw
表示された後のデータを抜き出すという考えは捨てるべき
444 :
428 :2011/11/05(土) 12:25:38.72
そんなこと言わないで><
445 :
428 :2011/11/05(土) 12:26:32.27
>>443 htmlに依存しないことを考えればベストかなと思ったんですが。。
WebBrowserのDOMで子要素を持たないタグのインナーテキストを連結するだけでいけると思う
だな。まずはそれだな。
448 :
428 :2011/11/05(土) 12:29:56.80
これ誰得なんだ プログラムから再利用しづらいXMLって意味ないよな
取れるコードできたが晒しサイトが応答しねえww しばしまて
453 :
428 :2011/11/05(土) 13:05:44.05
>>449 xmlのタグまで抜かれてしまったのでちょっと使えないです。。
>>452 Document.Body.OuterTextから無事にxmlだけ抜き出せました。
みなさんありがとうございました!
すげー
>>455 余計なこと書かなくていい
あーまじでID欲しい
テンプレート自分で作るの難しいと思っていたけど結構簡単に弄れるんだね 毎回同じコード書いてた作業が省けて便利
そもそもなんでID表示が付いてないんだ
>>455 職場でお前がいつもそう言われてるのは想像できる
確かに安価だけ付けて「無能。センスなし。」とだけ書いてあるレスから 職場でどうこうなんて導けるわけないね 空気が読めない程度にしておこう
>なんでID表示が付いてない くだらない議論しかしないのに要らないだろ 流せってことだよ
IDが付くと困るのは自演して遊んでいる人くらいだよな
>>463 それを排除したいんだよな
2chの辺境のスレであっても気持ちよくやり取りしたいんだが
自演する人はその辺境のスレに居ついて遊んでるからな
諦めの悪い
>
>>459 は推測
いやいや。匿名掲示板での人間の社会行動学による分析だよ。
そして
>>460 の反応から「図星」ということが分かる。
以下社会行動学スレッドになります C#perはしたらばでもどこでも邪魔が入らないところへ退出ください
>>464 じゃあ質問に誠実に答えろよ
初心者バカにするからこうなるんだろ
お前らがそういう態度なら俺はやめない
C Sharpper
気持ちよく罵倒するのも含まれてるのさ
>>470 お、今度は攻撃性に転じました。
しかしオウム返し型なので、プライドは高いものの幼児性が抜けない人間と分析します。
>>469 いくらお前が馬鹿にされたからって粘着するの止めろよなw
475 :
デフォルトの名無しさん :2011/11/05(土) 18:09:20.13
そーだそーだ
やめましぇーん
反応するバカの方が邪魔
まったくだ
int も double も string も 一つの関数で 中身をプリントしたいんですが 少ない記述でパッと出来ませんかね? 下のようなことをやりたいです. 下はエラー.キャストしないと型名しか出ませんでした static void p(Object o) { Console.Write((o.GetType) o); }
>>480 プリントの段階でstringになるんだからオーバーロードすればいいだけちゃうの?
static void p(int o) { p(o.ToString(); }
static void p(double o) { p(o.ToString(); }
static void p(string o) { Console.Write(o); }
>>481 それ全部一個の関数でやりたいんですが
generic を忘れてたんでやってみます
ありがとうございました
Objectに拡張メソッドでも仕込んでおけばいいよ
static void p(object o) { p(o.ToString(); } じゃダメなんだっけ? 引数の型を限定できないけど。
役に立たねえなここの奴らは 無能ばっかかよ
>>484 static void p(object o) { Console.Write(o.ToString() ) ; }
で出来ましたありがとうございました
このスレはキチガイが一人増えても平常運行だな
非常事態が何とやらだから リアルに
>>486 そんなんで良かったのかよ。w まー、なにより。
>>489 初心者の質問は大歓迎なんだが、初心者の回答は勘弁してくれませんかね
リフレクションもしらないバカばっか
492 :
デフォルトの名無しさん :2011/11/05(土) 22:00:41.39
>>491 リフレクションもしらないバカばっか・・・・x
リフレクションという方法もあるよ・・・○
質問に対するサンプルコードを添えると尚良
この辺の反応はリアルの人間の付き合いでも現れる要素だよw
public int Number { get; set; } ↑これってどういう時に使うの?オーバーライド?
オーバーライドでそれ使うのはEFの1対多結合ぐらいだと思う
>>494 ,495
なるほど、変数みたいな使い方をするのか
うーん、それでもコードが少なくなると以外のメリットが思い浮かばない・・・
メリットはそれだけだよ 無いよりましでしょ
WPFはプロパティじゃないとバインドできない (なんでかは知らない)
static void p<T>(IList<T> a){ foreach(T piece in a) Console.Write("{0}, ", piece.ToString()); Console.WriteLine(); }
>>498 それはバインドする場合プロパティじゃないとできないからだろw
なんでやねん
プロパティじゃないとバインドできないから
バインドする場合プロパティじゃないとできないもんね
>>496 プロパティだからアクセスレベルを設定できる
public int Number { get; private set; }
とかね
まあ自動実装自体はバッキングフィールドとかget、set
いちいち宣言、実装するのがめんどくさいからできたようなもんで
あまり多くを期待してもしょうがない
バインドにはPropertyDescriptorを使うからってマジレスしていい?
理由になってないよねそれ
なんでPropertyDescriptor使うんでしょうね
for (int i = 0; i < 8;i++) { CollisionRectangles[i].X = (int)Position2D.X + tempDrawRectangles[i].X; } 変数ではないため、'System.Collections.Generic.List<Microsoft.Xna.Framework.Rectangle>.this[int]' の戻り値を変更できません。 どうすりゃ変更できるの?
別にそれなくてもバインドはできる 理由はプロパティじゃないとバインドできないからなんだよ
>>508 に追記
protected List<Rectangle> CollisionRectangles = new List<Rectangle>();
で宣言と初期化してます
>>508 一時変数に代入してからプロパティ変更して書き戻す
値型はそれ自体一つの値なのでまとめて書き換える
「変数ではないため」ってこのエラー表現も大概にして欲しい
CollisionRectangles.ToArray()[i].X に変えたらできました。 javaとごっちゃになってるわ勉強してくる、ども
>>508 CollisionRectanglesだけじゃなく残りの二つも情報だせよ
つーかC#のArrayListがよく分からん
>>513 吹いた
Javaでもうまくいかないよそれ
ArrayListは分からなくていい 今から始める奴は知らなくていい
>Javaでもうまくいかないよそれ いやいやいやw
>>516 どぼんとか古いサイトのは見ない方がいいぞ
せめて2010年以降の記事やブログみなさい
ああすまんJavaなら参照型だから大丈夫だな こっちがごっちゃになってた
JavaのtoArrayはObject[]になっちまうだろう
rectList.toArray(new Rect[0])[i].X こんなん
>>516 古い.net使う場合はいいけど.net2.0以降はList<>使え
というか構造体は基本的に作り直しじゃなかったっけ?
何かしら値が入っててXだけ入れ替える場合
CollisionRectangles[i] = new Rectangle((int)Position2D.X + tempDrawRectangles[i].X,
CollisionRectangles[i].Y, CollisionRectangles[i].Width, CollisionRectangles[i].Height);
//CollisionRectangles[i].X = (int)Position2D.X + tempDrawRectangles[i].X;
プロパティは、 public object obj{get;set;} = new object(); って書けるようになってほしいなぁ。
つかJavaでもRectangleみたいなのはよく受け渡しのときに防御的コピーすることあるだろ
プロパティ初期化子は欲しいのう
もうXNA使えよ
>もうXNA使えよ それ解決策になってない
531 :
496 :2011/11/06(日) 00:14:39.78
>>504 ああアクセスレベルを設定できるってことを忘れてた
すごいメリットを感じてきた。答えてくれた人ありがとう
だからといってプロパティじゃないとバインドできない理由にはならないけどな
もうええわ
534 :
デフォルトの名無しさん :2011/11/06(日) 01:27:47.44
やーだお
348 :デフォルトの名無しさん:2011/10/26(水) 21:18:01.54 特に理由はないんですが、GCJの過去問をDで解いてみようと思いました。 今日初めてD言語に触りました。 TopCoderとかのプログラミングコンテストでC++を使う場合は、 #defineを使ってforループの凡ミスを防ぐためにこんなことをします。 #define rep(i, n) for(int i=0; i<n; i++) こうすることで以下のようなバグをなくすことができます。 for(int i=0; i<n; i++) { for(int j=0; j<n; i++) { // i++がバグ // do something } } 代わりにこう書けるので、これに関してはバグがなくなります。 rep(i, n) { rep(j, n) { // do something } } D言語でも同じようなことができますか? できないなら諦めますが、できるならその方法をご教示ください。 C#だとどうでしょうか?
C#だとそもそもループカウンター使わないからなぁ、めったに。 ほとんどの場合、foreachで事足りる。 課題で出るような「九九表作れ」ならともかく、実用上だとほんとforeachしか使わない。
>>535 from i in Enumerable.Range(0, n)
from j in Enumerable.Range(0, n)
iとかjでループカウンタ回すの久しくみてないなぁ
for i in range(5):
for tinkasu in Tinko.Range(KARI_NO_MAWARI);
要素削除する時くらいか 後はほとんどないな
役立たず、もうええわ
あの、DataVisualization名前空間のChartとか使ってる人いないです?
htmlのtableのRowspanとColspanを正規化した時 ランダムアクセスが必要だったから二次元配列でi,j使ったな 力業でやったけど何か良い手有るのかな?
マジか 俺for使いまくってたよ 中でカウンタが必要な時以外はRangeとforeach使う方がいいのか?
547 :
デフォルトの名無しさん :2011/11/06(日) 10:37:45.80
うん
548 :
デフォルトの名無しさん :2011/11/06(日) 10:53:28.18
パネルの上にpictureboxを載せていて、パネルの範囲内にマウスが入っているときだけ、pictureboxの上にボタンを出現させたいと思っています。パネルが横200px、縦100px、pictureboxが縦横50pxで、locationは(0,0)(左上隅)です。 パネルの MouseEnter, MouseLeaveイベントを使ったのですが、pictureboxに入ったときにMouseLeaveイベントが呼ばれてしまって意図した動作になりませんでした。 パネルのMouseLeaveが呼ばれたときにpicturebox内にマウスポインタがあるかどうかチェックする処理を加えてみましたが、pictueboxから直接パネルの範囲の外に出た時、パネルのMouseLeaveが呼ばれずボタンが消えませんでした。 パネルの中のコントロールがこれから増える予定のため、中のコントロール全てのMouseLeaveイベントをチェックするのは避けたいのですが、スマートな方法は無いものでしょうか?
最近気づいたけど、重複無しの組み合わせを作るのにも int i = 1; foreach (var item in list.Take(list.Count()-1)) { foreach (var item2 in list.Skip(i)) { tmpList.Add(item + "\t" + item2); } i++; } これでいいのだよな。LINQビックリだよ。 まぁ、仕組み的にリストが巨大だとやめた方がいいやり方ですが。
もっと短く出来るとは思うが、とりあえずlist.Take(list.Count()-1)は何なんだ
おっと勘違い でもIListに全部入れてたらIEnumerableの利点がなくなるような
? ? ????? ? ? ????? ? ?
>>548 Form側のMouseMoveでポインタがパネル上にあるか調べたら
555 :
デフォルトの名無しさん :2011/11/06(日) 12:05:53.43
>>553 やってみましたが、Panelに乗った時点で、MouseMoveイベントが来なくなるように見えるのですが。
パネルのControlsを列挙して全部にイベント仕掛けるとか それなら増えても大丈夫だし
557 :
549 :2011/11/06(日) 15:31:51.22
from x in list.Select((a, i) => new { Item = a, Index = i }) from y in list.Select((b, j) => new { Item = b, Index = j }) where y.Index < x.Index select new { Item1 = x.Item, Item2 = y.Item2 } クソ遅そう
>>555 ButtonRenderer クラスを使って、PictureBox上にボタンを書くというのはどうかな?
560 :
デフォルトの名無しさん :2011/11/06(日) 16:17:41.87
>>555 WPFやSLのようにルーティングイベントだっけ?
全部のイベントを親で拾えるやつ
ああいうのがあればいいよね
あれはあれで拾いたい時に下の(上の)コントロールが拾ってHandledしちゃってて 「なんでこねえんだよ!フンガー!」 って思う時がある 特にListBoxなんかが勝手にHandledする場合がムカつく
562 :
デフォルトの名無しさん :2011/11/06(日) 16:23:26.50
>>561 まあ理想系はないよね
出来る中でUIを工夫しろとしかいいようがないもの事実w
なんでwinformでそんな面倒なUIにしようとしてるのかという
背景も気になる
foreachのvalueって参照渡し?
引数 1: 'System.Collections.Generic.List<IFugaList>' から 'System.Collections.Generic.List<System.Collections.Generic.IEnumerable<IFuga>>' に変換できません ってエラー吐かれるんだけど public interface IFugaList : IEnumerable<IFuga> { } IFugaListにIEnumerable<IFuga>を継承させても駄目なのはなんで? ダウンキャストできるんじゃ
IEnumerator<T> enums = list.GetEnumerator(); while(enums.MoveNext()){ T value = enums.Current; // foreachブロック内 } これを参照渡しと呼ぶかどうかは知らん
>>564 そりゃ、リストの継承ではないからだよ。
あくまで中身でしかない。
.LINQの OfTypeを使ってもダメ?
inだかoutだかで行けなかったっけ それはまた別か?
IList<T>は読み取り書き込み両方可能だから共変は無理
.net2.0で開発しているのでジェネリックで無理やり解決しました ありがとうございました
アプリ毎にセーブロジーック作るのが面倒なので どんな型でもxmlでシリアライズできるようにしたいんだが GetTypeで型取得してもシリアライズしてくれないんだな(動的型指定だとだめなのか?)
意味がよくわかりません XmlSerializerじゃダメなのか
IEnumerable<IEnumerable<IFuga>>ならOK。
シリアライズ可能な条件ってのがあるから どんな型でもってのがまず シリアライザにもよるけど
>>571 それで型指定する部分があるじゃないですか
そこで直接型名を"Book"とか指定すればいけるけど
セーブメソッドの引数にobjで渡して
GetType(obj)ってやってもだめなんだよ
アプリによってセーブする内容が違うから当然型も違うわけで
どんな型でも汎用的に使えるセーブクラスを作りたいの
objの型おかしいんじゃないの 出力して確認くらいはしてるんだろうね? メソッドを Save <T>(T obj){ Xmlserializer(typeof(T)) } にする
つーかシリアライザに何使ってるのかくらい書けよ。
Object.GetTypeメソッドを知らなかったというオチ?
例えばDictionaryクラスはSerializeサポートしていないから メンバーにDictionaryが有るとそれだけで不可能
晒せ 汎用クラスなら晒しても問題ないだろ
>>575 普通アプリが管理するデータって1つのリストにまとまらないじゃないですか
Viewの状態を保存するクラスと
データの保存をするクラス
savedata.ViewData.DataGridColumnsWidthList.<>
savedata.Data.List<>
このような構造のセーブデータを保存したいんですよ
でもdけいない
人の話し聞く気が無いようだし放置で
582 :
デフォルトの名無しさん :2011/11/06(日) 19:14:42.70
放置だね
放置するのはいいけど、覚悟してね
>>570 System.Xaml.XamlServices.Save(object obj)
これでええじゃん。XMLより悩みは減るよ。
Loadを使えば、呼び出してそのままオブジェクトで使えるよ。
覚悟なら常にしているさ
人はいつか時をも支配できる
foreachて処理する順序は保証されているの?
いいえ
列挙するコレクション型次第
C#に限らずどの言語でもforeachは順番は保障されない
横からすまないが、それって実行環境によって取り出す順番が変わることがあるって事?
実行環境を見て列挙順を変えるようなMoveNextを書いてればその通りだよ
IEnumeratorの実装しだい
例えば配列やListは保証されているしDictionaryは保証されていない foreachが、じゃなくて対象によって異なるわけで
だめだこいつらww ネイティブの言語扱ったことないんだろうなwww 実行環境に依存って意味がさっぱりわかってないwwww
全然分からんわ さいなら
実行環境というか実際のデータ構造というか
Hage.HelloWorld()
>>596 もともと「実装依存」の話してたところに「実行環境依存」の質問が割り込んだけど、
後者が無視されただけでしょ。
実装依存だから、まあ、実行環境依存な MoveNext も書こうと思えばかけるだろうけども。
602 :
599 :2011/11/07(月) 02:53:19.94
みんな初めてさわった言語って何?
俺は日本語だったな プログラミングはVB6だったけど
F-BASIC386
IBM-COBOL
Quick-C
N-BASIC
php
612 :
555 :2011/11/07(月) 09:06:18.47
遅くなってすいません。
>>556 やってみたのですが、中のコントロール→パネル→パネルの外 とマウスが速く動くと、時折ボタンが残ってしまいます。
MouseLeaveイベントが起きた時、マウスポインタの位置がPanelの中だったらボタンを残すような処理にしたのですが、
どうも、中のコントロールのMouseLeave時はパネルの中にマウスポインタがあり、パネルのMouseEnterが発生するタイミングの前に外に出てしまうと起きるようです。
>>559 イベントの取得と言う意味ではあまり変わらないような・・・。
>>560 はい。デメリットもあるのでしょうけれど、今回は切実に欲しいです。
>>562 twitterの様に、特定の部分にマウスがある時だけ、その下にある投稿に対するメニューを出そうと思いまして。
613 :
デフォルトの名無しさん :2011/11/07(月) 09:07:24.86
もういいよ
Cシャーパー御用達のプログラミング関係雑誌教えてくれ。 今は日経ソフトウエア1年くらい読んでるけど、そろそろネタが一周したようだから、 違うタイプ、切り口のに変えたいんだが、近所の本屋が立ち読み禁止で紐かけてるから、 中身がどんな感じかよく分からんので。どれも一緒かなぁ?
MSDN Magazine
>>612 ウィンドウプロシージャのオーバーライドは?
もうWPFかSilverlightにすればいいじゃん
silverlightって、WPFの機能限定版って考えでOK?
620 :
デフォルトの名無しさん :2011/11/07(月) 12:13:36.38
>>612 ,621
描く方はいいとして消す方に悩んでいるんでしょう?
マウスが乗ってなくなったタイミングのいいイベントがないからね。
私がやった方法では、タイマーでマウス状態を監視して、領域内なら描画、外なら消去
ってやったな。
この手法のとき、普通はタイマーで内外が変化したのを検出して再描画すると負荷が低くていいけど
乗せてるもの(この場合はPictureBoxの絵)が頻繁に更新されるならその更新タイミングで描画更新するといい。
>>622 いや、ButtonRendererはボタンクラスじゃなくて、ボタンのイメージを描画するだけのクラスです
使い方はPaintイベントや、カスタムコントロール化してOnPaintで状態見ながら自前描画する
勿論ボタンじゃないから機能は自前で実装する必要はあるけど
通常時はPicture、マウスを載せたらボタンが出現するカスタムコントロールが簡単に実現できますよ
そしてVisualStyle無効環境で涙目っと 仕方ないとはいえ場合分け面倒です
動けばいいの
>>619 SilverlightはWPFじゃなくて.NET Frameworkそのものの機能限定版
だから動かすのに.NETいらない
628 :
デフォルトの名無しさん :2011/11/07(月) 14:25:16.55
>>617 メッセージの発生タイミングが問題なので、プロシージャをオーバーライドしても解決し
ないと考えたのですが、理解が間違ってますでしょうか?
>>618 MDIなんです・・・。
>>621 >>623 やはり、パネルから抜けたかどうかの判定には関係ないと思うのですが。
(pictureboxにマウスポインタが来た時だけボタンを表示する、なら解決すると思います
が、pictureboxの親コントロールであるpanelにマウスポインタが来た時にボタンを表示
する、なので)
>>622 その方法が一番効率が良いでしょうか。MouseEnterの方は問題が無いので、MouseEnterの
タイミングでタイマーを走らせて、出たら止める、という感じですよね。
splitcontainerでパネルを上下に配置にしてパネル1にtextboxを配置させてパネル2にlistViewを配置しました textboxもlistViewもdockをfullにしてあります この状態ですとパネル1とパネル2の間に境界線が太く見えてしまいます パネル1をtextboxのサイズに合わせたいのですがデザインで境界線をマウスで上にドラッグして言ってもこれ以上玄海なのか境界線が上に移動しません 見栄え欲したいのですが方法ございませんか?
630 :
629 :2011/11/07(月) 15:57:03.48
プロパティのSplitterDistanceの数字に25が設定されていたので textboxと同じサイズの19に変更を試みるも勝手に25に戻されてしまいます
Listboxのどこかのプロパティでいじれるはず
ああtextboxか
>>630 ある程度上まで来たらPanel1を非表示化するとか?
その辺がいやならsplitcontainerを使わないでPanelを2つとsplitを使って
自前でやるとか
stackがないとき、stackが空ですと出てしまいます 例外処理InvalidOperationExceptionで取れるみたいなのですが例外処理を使わずにifで空かどうか判定する方法はございませんか?
>>634 こういうことかな??
static void Main(string[] args)
{
Stack<int> St = new Stack<int>();
Random Rnd = new Random(0);
Console.WriteLine("Stack is {0} Count!", St.Count);
St.Push(Rnd.Next());
St.Push(Rnd.Next());
Console.WriteLine("Stack is {0} Count!", St.Count);
St.Pop();
St.Pop();
Console.WriteLine("Stack is {0} Count!", St.Count);
return;
}
636 :
デフォルトの名無しさん :2011/11/07(月) 17:10:02.42
>>629 >>630 splitcontainerのPanel1MinSize が 25 になってるんじゃない?
639 :
629 :2011/11/07(月) 17:53:06.75
>>631-
>>633 ありがとうございます
小生には自前でやるほどのスキルがなくsplitcontainerを使いたいですが自前でやることも視野に入れて検討したいと思います
>>636 ありがとうございます
Panel1MinSizeを19にしたらデザイン画面がフィットしました
ただ、F5を押してプログラムが起動すると境界線が太くなります
画像を添付しました
ttp://s1.gazo.cc/up/s1_5178.jpg 左がデザインで右がF5を押したときの起動したプログラムです
ListViewコントロールなどのLabelのユーザー編集モードを 他の場所をクリックした時に終了させるにはどうしたらいいですか?
C#でのマルチスレッドを 効果的、効率的に使用するためのイディオムや注意点などを それなりに体系的に学べる書籍かサイト(msdn以外)を教えてください。 javaでいう 「Java言語で学ぶデザインパターン入門マルチスレッド編」 のようなものを探しています。
ふーん
存在しない場合なんて答えればいいの?
まあ知ってる人が答えると思うよ
>>646 おぉ、まとまってて読みやすそうです、ありがとうございます!
FileStream なんて何のためにあるんだ? 文字コード選べないしまったく使えないんだが こういう無駄な物削ってもっとスリムにしろよ
StreamReaderとかStreamWriterで文字コード選べるだろ
3.0と4.0で何が変わったんですか? まとめサイトの場所とかでいいんで教えてください。
増えてるね。
4の非同期メソッドがすごすぎる・・・
.net4じゃなくてC#4のことね
dynamicとか
>651 >652 >653 ありがとうございます。
>>648 FileStreamとかMemoryStreamとか、ネットのストリームとかそういうものは全部Streamクラスの実装
そのストリームをStreamReaderとかで操作する
こうすることで、メモリにファイルを保存したり、ネットから直にファイルのように読んだりできる
これでStreamを受け取る関数を1つ作るとファイルとメモリの違いとかを気にせずに作れて、使う側も作る側もかなり便利
>>659 そういう使い方ができるのか
ファイル操作しかしてなかったから知らなかったわ
初見ながら失礼いたします。 VisualStudio2010のC#を用いてwebアプリケーションを開発しています。 そこで現在webアプリケーションでアンドロイドのandroid_idやiphoneのUDIDなどの端末内の情報を取得したいのですが AndroidSDKの時の String deviceId = Settings.Secure.getString(this.getContentResolver(), Settings.System.ANDROID_ID); のように端末情報をvisualstudio上で取得する方法はありませんでしょうか? よろしくお願いします
時代に逆行してUDIDなんぞ使うな。あんなに簡単に偽装できるもんを認証に使うなんて頭おかしい。
>>647 C#4.0から追加された、Task周辺も読んでおいたほうがいいよ。
劇的に簡単になったから。
ど素人なのですが 変数を宣言するとき varって使わない方がいいですか? 型名をきっちり記述したほうがいいのですか?
初心者ならちゃんと型書いた方がいいんじゃないかな
varって、ユーザーによってどんな値を入れてくるか予想できない、 みたいな状況以外、使う意味無いんじゃね? 「型を考えなくてもいい」みたいな消極的な使い方はただのモノグサだし、 そんなやつはプログラマ向いてないよ。
長ったらしいの打つのめんどくさい時に使うだけだろ。 予想できないとか、型を考えなくていいって、どういう時?
> ユーザーによってどんな値を入れてくるか予想できない > 型を考えなくてもいい どっちもvarを使えない状況に見えるのだけど
668はdynamicと勘違いしてねえか 予想できなきゃvarは使えないんだけど
VB6にはdynamicに近いVariantって型があったから C#のvarがそれと同じものだと思い込んでいるのかも
Bah!
htmlのフォーマットが決まってるので簡易的に解析してるんですがString.StartsWithの結果がおかしいのです 環境はWin7Home64+.Net4です どう思いますか? デバッグ時のイミディエイトウィンドウのコピペ line[0] 60 '<' line[1] 104 'h' line[2] 51 '3' line[3] 62 '>' line[4] 12444 '゜' line.StartsWith("<h3") true line.StartsWith("<h3>") false line.Insert(4," ").StartsWith("<h3>") true
Combining- じゃなくてもそうなるんだ、へー ぐらいの感想 第二引数でOridinal指定すると純粋にchar単位でやってくれるよ
>>675 ありがとうございます。どうやって回避できました。
「どうやって回避しようかと」まで書いて打ち直したら消し忘れました
>>664 大学の研究上必要なのでお聞きしました。
一般的に使われてないことくらいわかってます。
研究・・・2chで解決法を聞くのか?w
答えてもいいが論文は連名にしてくれよ ああでもFランの論文に名前書かれても恥ずかしいだけだな やっぱいいや
JavaScriptみたいに変数名などコードを圧縮したら処理早くなるの?
mshtmlを使ってブラウザコントロールのドキュメントを触ってるんだが text="<h1 class=\"color_red\">title</h1>"; IHTMLTxtRange range = doc.selection.createRange(); range.pasteHTML(text); ってやると、<h1 class=color_red>title</h1>のようにclass=のクォーテーションが勝手に消えるけど、消えなくする方法ある?
listboxに登録したアイテムをフィルターする方法を伝授してください 例えば以下のアイテムがlistbox追加されているとします apple auth brrow cso これにtextboxにaという文字列を与えると apple auth のみ表示されるようにしたいのです 現時点ではtextboxに入力されるたびにアイテムの追加時にifでチェックしながらlistboxに追加していますが アイテム項目が多くなるとこれはきついです
あきらめるという選択
アルファベットの頭の文字分をリストとかで確保してそこに関連有るデータをソートして突っ込んでおくとか・・・。
だいぶ前にちょうどそのサンプルを見かけた覚えがある
DataTableに突っ込んでDataSourceにしといて DataView.RowFilterでフィルタ、とかかねー
ソート済みのリストを用意して自分で下限を二分探索するロジックを組むか、木を自作するか
きついっていうけど、いくつなのよ。
下記みたいなコードで、ひとつひとつは大したことない(100Mbyteぐらい?)処理 ですが、ものすごくたくさんの処理を並列実行したく思います。メモリを食うメソッド 内部はすべてusingを使ってその内部で解放しているつもりですが、たぶんGCの都合 なのか、途中でOutOfMemoryが発生してしまいます。 なんかうまいやり方があるのでしょうか。教えてください。 var t = Task.Factory.StartNew(() => { Parallel.For(progressBar1.Minimum, progressBar1.Maximum, i => { (メモリを食うメソッド); BeginInvoke((Action)(progressBar1.PerformStep)); }); } private void メモリを食うメソッド() { using(Bitmap a=new Bitmap(filename)) { いろいろ } }
並列にメモリを食うんでしょ? あきらめるか、メモリ増やせば?
>>693 勘違いしてないか
Forに渡したブロックは自動的にコア数程度に調整されて並列実行されるから
その中でさらにBeginInvokeとかいらない
それだと一気に実行されてしまう
696 :
695 :2011/11/08(火) 22:27:03.91
すまんちゃんと見てなかったわ 無視して
64bitプロセスにする いっそ処理ごとにプロセスを分ける
バケットソートも知らんアホにかまうなよ
>>693 丹念に変に溜め込んでいる変数、メソッドがないか調べるしかないかと。
巨大なリストのLINQでOutOfMemoryになったこともあるから、
溜め込んで処理をするより、逐次処理にするように変えるといいと思う。
702 :
693 :2011/11/08(火) 23:32:08.87
>>698 64bit化は残念ながらほかの事情できません。別プロセス化はどうもよく
わかりませんが、なんか情報のポインタありませんか?
>>694 メモリ増やすっつうか、根本的に32bitプロセスの限界のことです。
いろいろ試行錯誤した結果、Parallel.Forの中でSystem.GC.Collect();
を挟むことで、とりあえず動くようにはなりましたが、どうにもこれでは行き当たり
ばったり感というか、別のテストケースでは解決にならなさそうな、そういう不安が
つきまといます。メモリを食うメソッドの中で使うメモリの量自体はほぼ一定ですが、
ここの過去スレで、Parallelはコア数に応じてスレッド数を自動で調整するとあった
ので、もっとコアが多い場合はGC.Collectが間に合わないのかなあと不安です。
>>693 メソッド単位じゃなくてクラス単位で処理する
クラスにDisposeを持たせる
メソッドAを継承して子供C1,C2,... によって A'1 A'2,... として実行するとして ベースメソッドの A'1 の前に Aの処理を行うのって無理ですか?
ベースメソッドの は余計でした
base.A()ってオーバーライドされるんだっけ??
Cだと基底クラスのメソッドが呼ばれるんだっけか
基底クラスに継承クラスが呼び出すためのprotected sealedメンバ作りゃいいじゃん
WPFのCanvasでAddしてない領域のマウスイベント取るのはどうするのん?
背景にブラシを設定する 透明がよければブラシの色は透明でも構わない
あるクラスのpublicメソッドだけで実現できるが、 便利機能としてそのクラスにメソッドとして付加したい。 こんなときは積極的に拡張メソッドの形式で追加すべきですか?
いいえ 乱用するとどこのメソッドを呼んでるのかわかりづらくなるので 拡張メソッドは本当にどうしても必要な場合以外は避けるべきです
>>717 なるほど、そういう思想なんですね、うっかり乱用するところでした。
ありがとうございます
命名規則がよう分からん void CalcParameter(int bonusPoint){} int MenberID = 2; ここまでおk?
publicじゃないなら好きにしろ ここまでおkも糞もない
publicならどうなるのか書けばいいのに
そんなことは聞かれていない
CalcParameterみたいな名前って嫌い Parameterって何のParameterなんだよ
private camel、それ以外pascal、privateの中でも触れちゃいけないものは_prefix かな
デスクトップ画面を画像で取り込む できれば拡大鏡みたいなものを作りたいんだけど C#だけで可能?Win32APIとか絡んでくる?
>>726 APIも必要かもしれないがそれほど難しくないよ
でも扱うサイズによってはC#だと負荷が凄いことになるかも
画像処理は苦手なのかなC#は PCから離れて操作したいので小さい文字を拡大したいんだけど .Net Frameworkを使っているソフトは表示しているレイヤー?が特殊らしくて どの拡大鏡ツールも透けて見えちゃうんで自作しようと思ったんです VSだとテキストエディアは普通に表示されるけど、 インテリセンスやコンテクストメニューは透けて見えなかったりします マウスポインタ付近だけ拡大できればいいので画面全体じゃなくてもいいんだけど 難しいですかね
PPPOEブリッジで接続する方法を教えて下さい RASPHONE, RASDIALだとビジーでスと言われ接続できません フレッツ接続ツールでは接続できるのに
>>728 描画方法の問題だから画像処理の得意不得意は関係ないだろう
とりあえずOSとVSのバージョン、問題の.NETアプリがWPF使ってるかどうかくらいは書いてもらわないと
>>728 書き忘れた
Graphics.CopyFromScreenで問題なくキャプチャ出来るなら、タイマーで定期的にポインタ周辺をキャプチャして拡大表示するだけなので拡大鏡作るのは簡単
>>730 XPでVSは2010です
Winフォームで作ろうと思っているんですが、WPFでないと実現できないならそれでも構いません
別にWPFで作る必要はないよWinForms(GDI)とWPF(DirectX)ではスクリーンに画像を転送する機構が違うから確認しただけ XPなのか…PrintScreenでは問題なくキャプチャ出来る?
PrintScreenだと問題なくキャプチャできます
XPのデスクトップコンポジションあたりの勝手がよくわからんので調べてみたけど、PrintScreenをタイマー送信した方が簡単そうだなあ… Vista以降なら簡単なんだが
一応PrintScreenでやりたいことができました ありがとうございました
複数のファイル(100個〜1000個)を色々なクラス(とは言っても2,3クラス)から扱いたいんだけど 複数のファイルの管理専用クラスを作るのって、あり?それともやめといたほうがいい? ファイルの状態を取得するために、ファイルの状態を別のファイルに書き込むんだけど
読み手の気持ちになってみてくれ まったく分からん!
741 :
デフォルトの名無しさん :2011/11/10(木) 09:45:14.13
monthcalendarで、「20XX年XX月」の部分を押すと月一覧表示になるんですが、 この状態で固定したい場合どうしたらいいんでしょう…。 変更関連はマウスボタン押下時にクリックされた位置を取得して、イベントを握りつぶせば済むのですが、 monchcalendarの表示形式を設定するプロパティが見つかりません。 どなたかわかる人いましたらご助言願います…orz
>>739 AbstractFactory的な感じかな?
もちろんいいと思いますよ
コメントアウトを多用したからといって実行ファイルのサイズが大きくなるって事はないよね?
コメントの有無で実行ファイルのサイズを比較してみりゃわかるだろwww
>>738 どうもありがとうございます
DirextXは初めてですが、早速SDKダウンロードして試してみます
いえいえ
748 :
739 :2011/11/10(木) 22:18:49.75
>>742 ありがとう。そうやってみる
List<>で多次元を作ろうと思って
List<Object> data = new List<Object>();
List<String> str1 = new List<String>();
List<String> str2 = new List<String>();
List<String> str3 = new List<String>();
data.Add(str1);
data.Add(str2);
data.Add(str3);
こうやったあとにdata変数を通してstr1〜str3にアクセスすることってできないの?
多次元配列みたいにアクセスしたいんだけど・・・
webBrowserでiframeの中を見れますか?
普通はframe要素.contentWindowでアクセスできると思う
>>748 dataの型をList<Object>にしなきゃできるよ
何のためにやってるのか知らないけど
>>748 スキな方選ぶんだ。
static void Main(string[] args)
{
List<List<string>> StrLists = new List<List<string>>();
List<string> Strs1 = new List<string>();
List<string> Strs2 = new List<string>();
List<string> Strs3 = new List<string>();
StrLists.Add(Strs1);
StrLists.Add(Strs2);
StrLists.Add(Strs3);
StrLists[0][0] = "The String!";
List<object> ObjLists = new List<object>();
ObjLists.Add(Strs1);
ObjLists.Add(Strs2);
ObjLists.Add(Strs3);
((List<string>)ObjLists[0])[0] = "The String to Obj";
return;
}
753 :
デフォルトの名無しさん :2011/11/10(木) 22:30:47.77
>>749 ブラウザが解析して表示されてるってことは
WebBrowser.Document
が解析結果を持ってる
後は調べてくれ
VisualC#の勉強をしています。 参考書が1冊一通り読み終わったのですが、どうしても個々の機能のサンプルが小規模なので色々組み合わせた場合の使い方がよくわかりません 一通りの機能を抑えたプログラムを自作してみようと思うのですが、何かオススメはありますか?
756 :
794 :2011/11/10(木) 22:36:31.61
ついったークライアント
>>755 2ch関係は避けたいのですがWebブラウザでも大丈夫ですか?
>>754 プログラム始めたら大体ゲーム作って様子見る人が多いんじゃないかな。
テトリスとかぷよぷよとかコラムスとか。倉庫番とかライフゲームとかもあるね。
まー実用アプリが作りたいのなら分野が違うけど。
画像を読み込んで拡大縮小平行移動して960x800の枠で切り出すプログラム作ってくれ 使うから
なんでや!ネタ提供しただけやろ!
>>760 ,761
ありがとうございます
とりあえずWebブラウザ作ってみようと思います
webBrowserが読み終わってから中身見ようとおもってDocumentCompletedつかってみたら、1ページ読むのに何回も呼び出されるんだけど、どういうこと?
>>766 読み込んだhtmlのヘッダーのところに
CSSとかJavaScriptとか別ファイルになってない?
あとフレームとか
まさしくDocument単位でCompletedしたので呼ばれてるんだよ
完全に終わった場合はnavigated
んー、どちらも同じ回数呼ばれるw ファイルいっぱいだから仕方ないか
769 :
デフォルトの名無しさん :2011/11/10(木) 23:34:58.20
広告がいくつか貼りつけてあるページです あとcssとかjavascriptとかもいくつか読み込んでる
771 :
749 :2011/11/11(金) 01:47:38.40
>>751 ,752,756
ありがとう。やりたいことできたよ
後ひとつ質問なんだけど、
ファイルに「ファイル名, ダウンロードURL, ダウンロードした日」を記述されているものを読みたいんだけど
どうすれば一番簡単なの?最初object型の2次元配列でやろうと思ったんだけど、インスタンス化すると範囲が決まっちゃうし・・・
構造体かクラス記述してインスタンス化していったほうが楽?
>>771 C#のコレクションは参照型なのでデータを構造体などに記録してListに突っ込んで返却してもほぼ損失はない。かな。
パース処理するなら、なるべく一点でやりたいだろうし。
自分だったら、関数にファイル名を食わせてデータの入ったListを返却すると思う。複雑度によっては関数分割するけど。
記録する方式は自分のやりやすい方法で一回やってみるんだ。
>>738 これやってみましたがだめでした。
Graphics.CopyFromScreenと全く同じで透けてしまいます
XPとかVista以降のDWMオフ状態ではグラボに各プログラムが直接描画してるからこんなわけわからんことになる 諦めてPrintScreenエミュレートするかXPを窓から投げ捨てろ
class Test { string str1; string str2; static void Main() { string s = "QQQQ"; //Main@ Get(s); Console.WriteLine(s); Test obj1 = new Test(); obj1.str1 = "QQQQQ"; //MainA Get(obj1); Console.WriteLine(obj1.str1); } static void Get(string s) { s = "WWWW"; } static void Get(Test obj1) { obj1.str1 = "WWWWW"; } } どうしてMain@は変更しないのにMainAは変更するの? わかりやすく3行で教えてください。ggrksはorz
stringは 内容が不変な参照型という特殊な型のため 値型のような挙動をする 3行だとここまで
Get(s); で static void Get(string s) { s = "WWWW"; } を呼び出したときの string sは確かに s = "WWWW"; が実行される前までは同じところ(つまり "QQQQ")を管理してるが 変数としてはまったく別物だぞ それにC#のstringはC/C++のようにメモリの中身を書き換えるわけじゃない
@メソッド内部で引数の参照先を変えても元の参照先は変わらない。変えたいなら参照渡し(refをつける)にすればいい。 A引数の参照先は渡されたTestクラス(参照型)のオブジェクトそのもの。なのでメンバーいじると実体のメンバーも変わる。 Testが値型(struct)だの場合はコピーが渡されるので実体は変わらない。
>>777 それはこのケースにおいて一切関係ないだろ
Get(string)がGet(Test)だって、s = new Test()とやれば同じなんだから
メタファで説明するならこんな感じ?
一冊の本を一緒に見ようとMainが提案した
Main1はその本をスルーして別の本を見始めた Mainは元の本を見てる
Main2はその本のあるページに落書きした
s = "WWWW"; は sの参照先の内容を書きかえるんじゃなくて s = new string("WWWW"); つまり sの参照先を別のとこに変更するから。 さて、どの回答で分かるだろうか。
あとstatic void Get(string s)のsはネーミング変えてくれw 呼び出したところで渡した変数と挿してる場所は同じでも まったく別物だから あくまで呼び出し元が持ってる参照のコピーを持ってるだけなんで
>>780 完全な参照型である、Cの文字列ポインタなら中見が書き換わるんだぜ
@が書き換わらないのはstringが特殊な変数だからでしょ
このくらいの短いコードならhtmlエンコードすれば・・(専ブラでアンカ・・っていうのは除いて) class Test { string str1; string str2; static void Main() { string s = "QQQQ"; //Main@ Get(s); Console.WriteLine(s); Test obj1 = new Test(); obj1.str1 = "QQQQQ"; //MainA Get(obj1); Console.WriteLine(obj1.str1); } static void Get(string ss) { ss = "WWWW"; } static void Get(Test obj1) { obj1.str1 = "WWWWW"; } }
786 :
781 :2011/11/11(金) 10:26:35.65
unsafeなら参照先の書き換えもいける unsafe static void Get(string s) { fixed (char* p = s) { p[0] = 'W'; } }
788 :
デフォルトの名無しさん :2011/11/11(金) 10:27:49.30
>>786 余計なこと教えんな
基本がわかってないような人に
>>787 そうそう
呼び出し元の情報を変更したければそれなりの手続きがいる
基本的に関数(オブジェクト指向の場合はメンバ関数とかメソッドと言ってる)に渡すときは
コピーが渡される
参照型を値渡ししたものの参照先は変更できないよ、でいいんじゃね? 参照型の値渡し=住所を教えられたよ @→住所が描いてある紙を書き換えても、元の住所が変わる訳じゃないよ A→住所にしたがってその家に行って家の部品を交換したよ
>>788 値のコピーじゃないことは分かるだろう?
str=str+"a"; 左辺のstrと右辺のstrは別のメモリアドレスを参照している別物 string型は常に自分のコピーを作る
>>776 の質問をよく読めよ
string型が不変とか関係ないから
>>791 vs2010にしてから重いのであんまり起動したくないんだがしばしまて
わからなければ
if (KusariPosition.Count > 10) { if (tempCollisionRectangles.Count == 0) { tempCollisionRectangles.Add(new Rectangle(0, 0, 16, 16)); tempCollisionRectangles.Add(new Rectangle(16, 16, 16, 16)); } foreach (Rectangle r in tempCollisionRectangles) { CollisionRectangles.Add(r); } } else { foreach (Rectangle r in tempCollisionRectangles) { CollisionRectangles.Remove(r); } } これで KusariPosition.Count <= 10 になったときに CollisionRectangles.Remove(r); がリムーブしてくれないんだけど、どうすりゃいい?
tempCollisionRectanglesで管理してるRectangleと CollisionRectanglesで持ってるRectangleで一致するものがないんじゃないの?
つーかお前この間質問してたときに言われてたろ 構造体は作り直しになるって
>構造体は作り直しになるって それは場合によりけり
>>802 でも実際にヒットしてないんだから作り直しが行われたんだが
片方しか更新してないからじゃないの?
まあRectangleなんてオブジェクトの要素の一つなんだからクラスの中に入れておけばいいのに
和集合と差集合を使ったらできました ども
意味がわからんwww
集合云々の場合はポインタ渡してるだけだから CollisionRectangles.Remove(r); で除外できるって話だろ
下記のようなコードで、戻り値のbmpは破棄Disposeしなくてかまいませんか? usingを使うと、呼び出し元に戻った時にnullとなってしまいます。破棄しなけれ ば意図通り動いていますが、ちょっと不安なもので。 public static Bitmap bitmapfunction() { Bitmap bmp=new Bitmap(1000,1000); // いろいろbmpを加工する return bmp; }
bitmapfunction()の戻りを利用するプログラム側の話? bitmapfunction()の中の話?
810 :
808 :2011/11/11(金) 14:15:36.76
戻りを利用するほうでは使い終わったら破棄しています。
質問したのはbitmapfunction()の中での話です。ほおっておけばGCが処理すること
はわかっていますが、大量に並列処理するためちゃんと破棄しないとあふれてしま
います。
実は私は693で、
>>693 のアドバイスにしたがって、クラスの中でちゃんとDiposeしようと
みなおしているなかで今回の疑問になったという経緯です。
>>808 のような戻してあげるデータとして作った物をDisposeしちゃうと
自分で書いてるように折角作ったデータを破棄しちゃうのでnullになって
なんのための関数かわからなくなるよね
そういう関数からもらったデータはもらった側で破棄するとか管理するしかないね
それかGC任せか
関数の中だけで使用して関数を呼び出したところに戻って使わないような
データはDisposeするのが望ましいけどね
812 :
808 :2011/11/11(金) 15:15:43.15
なるほどですね、ありがとうございました。 だいたいイメージがつかめたように思います
factoryが生成したオブジェクトを勝手にDisposeするなんて斬新じゃん
呼び出し元で bitmapfunction を usingで使えるようにすればいいのに。
ここの回答者陣は説明下手。 教える気無いか意地が悪いのか、 わざと分かりにくい説明を平気でする。
字数制限のある掲示板で文字だけで完璧に説明しろっていうのが無茶だよ
>>817 貴方は、原稿用紙2枚程度で1から100を教えれる鉄人なんですね。わかります。
一番いいのがリモートでここをこうすればいいよって説明できるといいんだよな 会社とかでも教える時ってそういう感じだしな・・・ 後は絵チャみたいなので絵を書いて説明とかさ レベルの合わない人向けに作文書いて説明しろっていうのがなあ 仕事じゃないだし
ソース出して質問してくれるととても楽なんだけどね
>>821 せめてどこで詰まってるかのコード片をうまく混ぜてほしいよね。
そしたらぐっと回答範囲が狭まるんだが。
質問者の視野はあんまり広くないけど、回答者は様々な人と相手してるから視野の向きが違うんだよな。
で、変な回答したら、「お前らは大したことない」とか言い出す。
話を引き出すのも技術なのに。
それも自分は回答してないのにそういう発言をしたりするからもう・・・
>>823 だからID欲しいんだよ
そういう単発君を排除したいんだが・・・
VS2010 です 別のファイルのクラスを呼び出すのがどうしてもできないんですが どうすればいいでしょうか? それと Program.cs 以外のファイルのメインルーチンをデバッグって できますか?
アクセス可能な範囲にあれば(分かりにくい表現)
>>825 そこまでのレベルだと、入門書を最初から読みやがれとしか言いようがありません
多分最初の2,30ページ読めば解決できると思います
>>825 申し訳ないが初歩的すぎて何が分からないのか想像できない
ネームスペースが違うんだろ!!!!!!!!!!!!!!!!
>>825 なんかもそうだけどどれどれ・・とIDE見れば5分かかるかどうかの無いようだよね
あれこれ頭使って想像しないといけないんだよなw可能性を
多分クラスをインスタンス化してパブリックメソッドを呼び出すまで至っていないんだろうな
状態遷移図シミュレーターや二分木探索くらいはC# でも作れるのですが・・・
いつも
>>1 のテンプレを根拠にお馬鹿質問を擁護する奴が一人も出てこないところを見ると、
恐らく今日は叩く側に回ってるんだろうなw
仕切りたがる奴って本当一貫性がないご都合主義だよな。だから嫌いなんだよね。
835 :
デフォルトの名無しさん :2011/11/11(金) 23:59:09.00
>>2 のサイトを使って可能な限りのうまくいかないソースを晒す
これが鉄則かなあ・・・
素人が何もしてないのにおかしくなったっていうのと同じで
余計なことやってるかやることやってないからうまくいかないんだから
自分で対処できるまではさらけ出してみてもらうしかない
学校とか会社なら先輩読んでその場でアドバイス貰えるが
ここは文字だけでやり取りするんだし
>>834 いつも同じ人が常駐してると思わない方がw
ソリューション exp からclass をadd したので 前者はできると思います
出来ました デバッグも Main1() と名前をつけて呼び出せばいいので 2つとも出来たようです ありがとうございました
ソリューションエクスプローラが出てきたってことは前者も別プロジェクトかい ぜーんぜん伝わってないよお前 よく生きてこれたな
名前からしてMainが複数あるようだな・・・ ん?
斬新
金曜日だというのにお前ら根暗だね
ずいぶん西に住んでるな
project right click で add なので project 数は変わってません。1です
>>842 こっちもすんなり答えたいけど質問の仕方が中途半端でまともに答えられなくて
それに対して捨て台詞はき捨てられるとスレが暗くなるよね
誰が悪いと思う?
846 :
825 :2011/11/12(土) 00:26:56.70
その微妙に電波が流れてる感じの書き込みもいいよ リアルで 分かち書きになったのか?日本も
ここの奴ら雑談しかしないんだな ハテナで質問してくるわ 役立たず死ね
おう死んだるで せいぜいお達者でな
こんなとこ荒らしてどうすんだか
あるクラス変数で、参照が変わらないまま参照先だけ変えることはできるんですか? b->B, a->A の状態を a->A, a->B にしたいんですが
>>852 意味がわからない
無理に一般的な言葉使わなくていいから何がしたいのか具体的に
小文字bが消えたんなら参照変わってんじゃねえの
本当にC#だろうな C++じゃないよな
一番具体的なのはコードを提示することです
よく判らんが「インスタンスの参照は普通にコピーできます」で良いのかな?
//Main .... clone1 = father1.duplicate1(); clone2 = mother1.duplicate1(); father1.reproduce(); return; } public int reproduce(class1 mother,class1 child1,class2 child2) {//class1のmethod clone1 = this.duplicate2(); clone2 = mother.duplicate2(); return 0; } Mainのclone1, clone2の参照先がreturn のときに duplicate2() を受けたものにしたいんです
まさかコードが出てきて
>>852 より意味不明だとは思わなかった
861 :
訂正 :2011/11/12(土) 13:51:43.09
//メイン、 father1とfather2は class1のインスタンス .... class1 cloneA = father1.duplicate1(); class1 cloneB = mother1.duplicate1(); father1.reproduce(mother1, cloneA, cloneB); return; } public int reproduce(class1 mother,class1 cloneA,class1 cloneB) {//class1のmethod cloneA = this.duplicate2(); cloneB = mother.duplicate2(); return 0; } MainのcloneA, cloneBの参照先がreproduceから戻ってきたあとに duplicate1()ではなく、 duplicate2() を受けたものにしたいんです
あーはいはいはい public int reproduce(class1 mother,class1 cloneA,class1 cloneB) のcloneAとcloneBをrefにすればいい 詳しくは検索しろ
refですぐ解決するが、実際にモノ作るならクラス作ってまとめて戻り値として返す一択
まだそれはいい この質問者はまだそんなレベルじゃない
うん
>>864 お前が解答できるレベルなのかも怪しいけどなw
チェックボックスがcheakedになっている間は、指定時間ごとに 同じ処理を繰り返し実行するというプログラムはどう書けばよいですか?
Check状態変更イベントでタイマーの有効無効切り替えればいいじゃないですか
タイマーは動かしっぱなしにして タイマーイベント内でCheckedプロパティ見てもいいけど、WinFormsのTimer以外ではやらないでね
WebBrowserコントロールでjavascriptを無効にしたいのですがどうすればいいですか?
ローカルプロキシを挟んでscriptタグを抜く
>>872 そんなことしなくても
>>798 のコードでNavigatingイベントで1回目はhtmlだけどその後は
htmlヘッダーに書かれてるjsとかの解析に入るのでキャンセルすればいいだけかも
でもhtml内部に埋め込まれてるjsはどうなるかわからんw
876 :
871 :2011/11/13(日) 03:33:02.23
意外と難しいんですね。勉強してみます。。。
>>863 一択なん?
1ファイルに1クラスしか定義しないことなんて規約だと面倒だよね。
privateメソッドなら匿名クラス使ってもインテリセンス効いたっけか?
>>871 scriptタグを抜けばいい
>>873 みたいにローカルプロキシでもいいんだが、そういった機能が付いているプロキシがあるのかは知らん。
タグを指定して取り除けるようなプロキシがあるならオレも欲しい
実装するなら
1.リクエストを投げる WebRequest
2.レスポンスを受ける WebResponse
3.正規表現かなんかでタグを抜くscript,linkとか
4.webbrowserに食わせる WebBrowser.DocumentText
scriptタグ抜くだけならCSSのexpressionとか<a onclick="〜">とか<a href="javascript:〜">とかあるから不十分
同値比較?で==が使えない代表的なクラスって何がありますか?
class Program { static void Main() { Test obj = new Test(); Console.WriteLine(obj.GetA); //Main@ Console.WriteLine(obj.GetB()); //MainA } } class Test { private string str1; public string GetA { get { this.str1 = "AAA"; return this.str1; } } public string GetB() { this.str1 = "AAA"; return this.str1; } } Main@とMainAは同じ処理をしているのですが、どちらを使うのが正しいのですか? 好みの問題ですか?
Getは動詞、メソッド名は動詞から始まるようにするのがわかりやすい プロパティ名は逆に動詞をつけない方が自然 obj.A obj.GetB()
>>881 基本的に全部
Stringのように特にことわりが無い限り
>>881 そんな明らかな地雷を放置したりしないよ普通
Javaじゃないんだから
>>885 いくらでもあるぞ
たとえばXNameは==使えるけどXElementなんか値に近いのに==使えないよ
変更可能や継承が可能な参照型は原則として==を実装してはいけない
プリミティブ型以外は==使わないのが俺的常識
>>886 悪いがXElementが値には見えないし、==で比較しようと思わないな
まあ心配ならop_Equalityの有無をMSDNで確認すれば済む話
Content-Encoding: gzip のHTTPパケットのデータをC#で解凍する方法を教えて下さい
GZipStreamあたり
HttpWebRequest req; ・・略・・ req.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; これだけ
解凍できねえ・・・orz わけあってHttpWebRequest使えません
>>890 を試しても駄目なら本当にgzipか疑った方がいいな
javaのメソッドをfinal修飾するのをc#だとどうやるの?
C#はデフォルトでfinal相当だから書かなくていい 既定のvirtualメソッドはsealed override
そんなこと貴様には関係ない
パケットって言ってるのでお察し
byte[]
VistaやWin7でWindowsアップデートで自動で入るのは .Net Framework 3.5まで? 4.0ClientProfileでビルドするとクライアントはインストールしないと無理かな?
ウチの 7 には開発環境入ってないけど、.net4 も入ってるようだが。
Vistaが3.0で7が3.5 WindowsUpdateが自動で新しいバージョン入れることはないはず メーカーが入れてることは割とある
>>900 「○個の重要な更新プログラムが利用可能です」って青文字で出てる所クリックして、そこに.net4があれば、選んだ次から自動でアップデートしてくれるようになる。
>>902 3.5にしておくのが無難っぽいですね、ありがとうございます
4.0だと幸せになれる場面もあるけど そういうこと気にしないなら3.5(==2.0)でいいんじゃね
List<string>.Contains(string) この場合うまくいくけど List<CustomClass>.Contains(new CustomClass) これだと全く別物と判断するね こういうことしたい場合みんなどうしてる?
Exists/Any使う
3.5(==2.0)ってどういうこと?
CLRのバージョンは3.5でも2.0のまま
>>908 CLRに変更はないってことじゃないの?
3.5で提供されたのはあくまでCLRを変更しない上位のレイヤーだけってことで
ちょっと上のレス見なかったらFalseって言うところだった
1==2みたいだな
CLRに変更はない・・・ということは3.5をターゲットにして作っても2.0環境で動作する?自動プロパティつかえるじゃん
C#と.NETの機能は区別つけたほうがええねん
自動プロパティや匿名型や型推論は使えるけど LINQは自分でインフラ用意しない限り使えない
>>913 CLRに手を入れるっていうのはCなんかでいうところにC99になったとかそういう話で
CLRに手を入れない場合はSTLなどが増えただけってところだからなあ・・・
VSのGC効きすぎないか? 最小化してちょっとネットで調べものして戻ったら 復帰するまですごく時間がかかる HDD痛めそうだわ
918 :
デフォルトの名無しさん :2011/11/14(月) 22:54:08.16
つ SSD VS2008までは問題なかったがVS2010になるとSSDないときつい
GC、最小化、HDD どれ一つ結びついてない気がするんだけど....
メモリ64GBセットが発売されるご時世にスワップとはねえ
っ メモリ増強
922 :
921 :2011/11/14(月) 22:59:33.56
おっとかぶった。
夫がぶった><;
x86だから効果がないんじゃない。
まだx1です><;
空きメモリが十分あるのに 最小化しているとGCされて? 開くときにまたHDDから読み直すんですよ
だからGC関係ねえだろ
GCはメモリの解放機構であってmHDD上のページファイルにメモリの中身を退避する機構じゃない それはページングだ
だから解放されて、また一からインテリセンスとかコードとか いろいろ読み直しているって言っているのよ わからないのかなー
それはVSが明示的にやってるんだからやはりGCとは無関係
GC言い出したのはお前じゃん 分かってないのは自分の癖にどの面下げて物申してんのお前
知ってる単語を並べただけの初心者をあんまり責めんなよ。
煽られました 覚悟しておいてくださいね
わからないのかなー()
次はインテリセンス弱参照で持ってるとでも言いますか?
それくらいにしてやれよ
お前ら超絶バカだから煽るしか能がないんだな
うん
一行で解り易い自己紹介してくれたな
こういう簡潔な自己紹介を見習って面接に励めればよかった
間抜けが頑張っても滑稽な間抜けになるだけだぞ
自己紹介の練習はスレ違い
char[][] test の中から’a’の数と場所を調べるメソッドなり方法を頼む
946 :
デフォルトの名無しさん :2011/11/15(火) 22:36:09.81
test.SelectMany((a, i)=>a.Select((c, j)=>new {i=i,j=j,value=c}).Where(e=>e.value=='a'))って感じ?
お前ら頭良いな Winアプリ発売しようとしたけど何かコード解析されたりバグで訴えられそうで怖くて躊躇してる
コード丸見えだからな C#のシェアウェアなんてありえんわw
いや本当にID必要だろうこれ どこに要請したらいいんだ
950 :
デフォルトの名無しさん :2011/11/16(水) 01:03:32.22
>>949 ないんじゃね?
2chの運営ってアホな機能増やすことには必死だけど
こういうのは完全放置なんだよな
多数の遅くなるという主張 → そんなことはない、証拠をだせ
実際に体験したんだけど → オカルトだ
実際にVM Wareでの計測値を提示 → 具体的なことを言わず、ただ 「仮想環境のオーバーヘッドだ」
(Core2Quad Q8400 / 8GB / 7200rpm HDD @ VMware Workstation 7.11で、28→35SECに、メモリーも113→119MB))
ネイティブとVMwareのHDのベンチではあまり変わっていない(結果も示す) → 理由を示さない反論「ボトルネックになっているみたいだけど。」
実際に仮想環境でなくPCに直接入れて起動計測し、1割の遅延を確認 → 「ブートが2秒遅くなる(実際は10%遅くなっている。軽く見せる印象操作)」、
(Core2Quad Q8400 2.66G /DDR2-800 8GB / 500GD 7200rpm HDDで、15.1→16.9(+10%)SECに、メモリも107→115MB、レジストリ13→15.8MB)
結局、遅くならないという主張をしている奴は印象操作や人格攻撃、問題のすり替えを行い、遅くならないという事実を提示できない。
結論
>>2 の 「遅くならない」と言っていたのは 「嘘」 。
少なくとも起動は10%は確実に遅くなる。その他は不明だが、余計なコードがある以上、程度の差はあれ遅くならないとは考えられない。
当初のPCであれば、間違いなくもっと遅かっただろうし、またその回避は不可能ではなかった。
(起動後遅延起動、専用レジストリに設定情報を入れる等)
最低言えることは当時のユーザの現実を無視し、独善的で硬直化したタコな設計である
参考資料(古いデータだが上記の測定結果と”整合性”有り)
http://gigazine.net/news/20060911_system_delay/ (
http://thepcspy.com/read/what_slows_windows_down/の引用 )
「何のソフトを入れているとWindowsが重くなるのかリスト」
11位:.NET Framework Runtime2.0(8.89%)
25位:Java Runtime 1.5.0.06(4.00%)
(XPSP2a Pro (rel1) onto a Microsoft VirtualPC 4 (sp1) VM)
Software MeanBootTime(s) SystemDelay(s) SystemDelay(%)
.NET Framework2 .0 81.67 6.67 8.89
Control(none) 75.00 0.00 0.00
JavaRuntime1.5.0.06 78.00 3.00 4.00
>>949-950 完全放置で10年経過してるのにgdgd言い続けてる方がよほどアホだろ
どこまで夢想を続けるんだろうな
どこまで頭が足りないんだろうな
いつまで要請がどうとかいい続けるのかな
2021年になっても言ってるのかな
ソースを解読されない簡単な方法を教えてください UIをC#で書いて、重要な部分をWin32.DLLで作れば良いでしょうか?
>>954 書くのをやめる。次点で冗長な処理を入れる。
>>954 本体を暗号化
実行時にメモリに直接解凍
読むのが馬鹿らしい内容にする
なぜIDが必要なのか理解できん
お前とリアルであってみたいわ どうせ面と向かっては何一つえらそうなこと言えないんだろ 目も合わしてくれ無さそう
おまえのようなくだらんレスのIDは必要無い。
いつのまに自己紹介スレになってたんだ
IDの問題というより、1人か2人の人間の問題なだけなんだけどね。
take it easy
ああ、「スルーできない人間」だけの問題だよな
お前らが謝罪して初心者にやさしくすると誓うなら 許してやってもいい
そこにはあなたも入ってると言うことだなwww
969 :
964 :2011/11/16(水) 12:23:11.23
もっと多かったかw
馬鹿がワンサカwww
だからIDがあれば「少しは」是正される。 (変えてくる奴もいるだろうけど)
じゃあここらで初心者の質問を(誠実に答えてくれることを願う) 複数のメソッドで同じような処理をしたいので Aというメソッドを作りました が、Aメソッドの大部分は同じなのですが ほんの一部だけメソッドごとに違う処理をしたい場合 どのようにすれば簡潔に書けますか? 引数に渡すオブジェクトはメソッドごとに違います
973 :
972 :2011/11/16(水) 12:37:36.93
今現在やっているのはA1A2...とほとんど同じだけど すこし処理が違うメソッドをたくさんコピーして作っています Aメソッドは20行ぐらいのコードです
クラスを抽出してポリモーフィズムを使ってください
テンプレートメソッドとか色々あるけどそんな難しいことは考えなくていいから まずは共通部分を別の複数のメソッドに分けることを考える。 その共通部分の呼び出しくらいはコピペでもいい。全部コピペよりは遥かにマシ。
自然な機能の分割にならなければ諦める
978 :
972 :2011/11/16(水) 14:37:02.59
>>974 つまり複数のAメソッドの代わりに
複数のAクラスを作れということですか?
方法が違うだけで同じだと思いますが
>>975 Regexを使用した文字処理です
>>976 自然な機能の分割にはならないですね
一連した文字処理の流れなので
分割すると分かり難くなります
違いが渡すオブジェクト毎切り替えられるなら 渡すオブジェクトからインターフェース抽出するとかね
980 :
972 :2011/11/16(水) 15:06:58.45
オブジェクトはただのstring型の文字列なので・・・
C#ようの難読化ソフトがあるけど、あれってどれくらい効果あるの?
クラス名・メソッド名・オブジェクト名なんかが全部a,b,cみたいになったコードを読もうと思うかい?
>>980 メソッドに 文字列と、すこし処理が違う部分を渡せばいいじゃない。
984 :
972 :2011/11/16(水) 15:25:09.46
>>983 処理を渡すとはどうやってするのですか?
Visual Studioを学割で買いました! 学生最高!
Func<string,string>
987 :
972 :2011/11/16(水) 15:38:17.96
>>986 それだとref使えないですよね
処理がうまくいかないならそのまま、
うまくいったら文字列処理後返すようにしたいのです
渡すオブジェクトはそのまま利用するので
nullとか空白とか送り返さないでねって明示する意味でも
refでしたいんです
988 :
972 :2011/11/16(水) 15:40:05.22
例えばnullなんかを返されてしまうと 呼び出し先のメソッドでnullかどうかのチェックをしないといけないですよね それを複数メソッドでやるのって無駄じゃないですか?
なら自分でrefで渡せるようにしたデリゲートを宣言する
でも
>>987 みたいな処理ならそんなCみたいなことしないでクラスにして
フィールド書き換えていくようにするのがいいんじゃないか
refでもnull返せるぞ つか呼出した先で何やってるか分からないような外部インターフェイス的なものに refやoutは普通使わない
できるっちゃできるけどそこまでする事か?
こう言うのは議論のベースとなるソースコードがないとどうにもならんな
DreamSparkって高校生までじゃないのか
放送大学在籍でも大丈夫らしい
996 :
972 :2011/11/16(水) 15:58:08.53
>>989 object a= A1();
return a.Henkan(moji);
こんな感じ?デリゲートっぽいですね
>>990 同じクラスです。
別クラスの話じゃないです
997 :
972 :2011/11/16(水) 16:34:50.98
>>992 前にちゃんとソースコードをテンプレのサイトに張って質問したのに
バカと煽られて以来ソースを張るのをやめました
そうか 張らなくても議論が空転するだけだから好きにすればいい
999 :
972 :2011/11/16(水) 16:40:25.05
残念ながら答えがもらえなかったので 引き続き試合開始ですね
はい
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。