ふらっとC#,C♯,C#(初心者用) Part71
糞スレ LINQ WPF プロポーショナルフォント
3 :
前スレ990 :2011/03/14(月) 02:55:12.33
おいこら、せっかくおれが立ててやろうとしてたのに なめとんのかワレ>>1
前スレ997は4桁とかに桁数増やしたときのことも考えた方がいいと思うぞ あれじゃコード膨れ上がるばかりじゃないか あとゲーム作るなら、PC側も人間の考えた数字当てるとかをやってみなよ 過去入力で人間が嘘ついてないか(矛盾した入力してないか)もチェックしたりさ
5 :
前スレ997 :2011/03/14(月) 03:20:39.00
>>4 確かに1桁増やすごとにえらいコードが増えますよね
仮に4桁だけでも7行近く増えますね
一体どのようなものを習得すればコードを短くできるんですか?
あとさっきのhit&blowを人間側とPC側を入れ替えるってことですか?
もうhit&blowの話飽きた
いつになったらLINQとかデリゲートが普通に使われるようになるんだろうなw
デリゲート使ってないってどんなコード?
9 :
デフォルトの名無しさん :2011/03/14(月) 10:29:16.59
イベントハンドラとか使わないでMain関数だけで済ませてるんでしょ多分
イベントの処理は全部OnXXXのオーバーライドでやるのか 継承による再利用(笑)とか継承に夢見てた時代のコードだな
今C#の学習をしている最中です。 その中で抽象クラスとインターフェイスについて、学習しやっていることは分かったのですが、イマイチメリットが分かりません。 実際に業務で使用していないからという理由もありますが、皆様の使用する際のメリットについて御意見をお聞かせ願えないでしょうか?
たとえばStreamはそれが具体的に何なのか知らなくても共通に扱えるだろ。 実際はファイルだったりメモリ上のデータだったりインターネットからリアルタイムに送られてくるデータだったりする。 Streamクラスのインスタンスを引数に取ってデータを読み込むメソッド一つあれば、 それら全てに対応できる。うまく作ればそういうことができる。 もう一つのメリットは単体テスト。クラスAがクラスBに依存している場合、BがないとAのテストはできないけど クラスAがインターフェイスを通してクラスBを利用していれば、Bがまだ完成していなくても ダミーのクラスを使ってAのテストが行える。
>>11 自分だけで作っている分には不要な機能だな
WPFもそう、個人でやるようなものじゃないし
個人ならカプセル化不要というような話なら理がないこともないが、 ポリモーフィズムは個人とか関係ないだろ ある程度規模が大きくなれば個人だろうと使うべき時は使う デリゲートも本質的にはインターフェイスと一緒だけど、それも使わないの?
本質的にはって便利な言葉だよなぁ
じゃあ訂正 デリゲートとメソッド一つだけのインターフェイスは互いに置き換えられる。 だったらなんでインターフェイス使わないのかというと、面倒だしIDEとの相性も悪いから。
>デリゲートとメソッド一つだけのインターフェイスは互いに置き換えられる。 それぞれ何を抽象化しているか考えるほね」。
プログラミングって1か月やってないとすぐ忘れるな
>>19 一箇月じゃないが、3〜4年ほど遠ざかってて
C言語触ってみたら Hello World の書き方すら忘れてて、軽くショックを受けたわ。
最初にincludeするライブラリが、マジで思い出せんかった。
俺も軽く2000年くらい遠ざかってたらコンパイラすら作れなくなっててワロタw
特にインテリセンスがあるから単語が思い出せないよな 携帯が普及して漢字を書けないみたいな
お前らむなしくないのか?
そのほねってなんだよ 最近よく見かけるが てか、このスレでしか見かけないが
35年プログラミングから遠ざかったことがないから 遠ざかったらどうなるかやってみたいなぁ
俺は一番離れたときでも100年くらいかな
>>25 前スレからコピー
640 名前:デフォルトの名無しさん[sage] 投稿日:2011/03/09(水) 16:56:53.07
publicにしてもprivateですがどうやってアクセスのintだとしてら
例えばプロパテュにコンストラクタで入れるなら外部からは
でも{get}と{getprivatesett}は違うんですほね」。教えて
669 名前:デフォルトの名無しさん[sage] 投稿日:2011/03/09(水) 20:41:30.25
テキストからデータを切り出してDBに追加するプログラム作ってるんだとしてら
例えば既にレコードが存在する場合更新にしたいならどうやってDataSet経由と
DataAdapter直接は違うんですほね」。教えて
なんかこんな感じの変な質問があってそれがツボに嵌ったのは
しばらく使われてるだけ
その前は別のがあったんだけどな・・・
そういうことにしたいんだね
どういうことだよww
既成事実
Microsoft Visual C# 2010 Expressをインストールしたのですが Visual Studio 2010 Service Pack 1は関係ありますか? 入れた方がいいですか?また可能ですか?
関係あるし可能だから入れとけ もしかしたら適用済みかもしれないからバージョン情報でチェックしろ
入れられるものはすべて入れろ!
一番大事なのはこんな糞スレは見ないこと
そして糞#なんてやらないこと
こんな板には来ないこと
負けないこと
信じ抜くこと
愛は勝つ
Linqは負ける
Linqは負けましぇん
いや負ける
101回目のyield return
マヨネーゼなんてIUnknown
Linq無しでXMLの読み書きとか考えたくない・・・
JSがある
LINQのせいで
>>48 みたいな被害者が増えているな
まあ便利な物は使えばいいじゃんw馬鹿なの?
Ruby最強説
Rubyはオワコン
Perlが最強
そしてWPFへ・・・
いや、WPFはないは
確かに、C言語ができないのはダメだなw
WPF…神経質、潔癖症、不平不満ばかり言う新社会人 C#…器用貧乏 C++…秀才 Ruby…低学歴だが要領はいい JavaScript…将来が約束された若きホープ
Perl…忍者
何でWPFを言語と同列に並べてるの?馬鹿なの?
言語と同列に並べられるくらいの大きな存在とみなされてるんじゃないですか スゴイネ
WPF…イケメンだけどバカ
67 :
デフォルトの名無しさん :2011/03/15(火) 01:15:12.57
はいはいC言語できなくて悔しいねw
時代を感じるね
時代はSilverlightですよねー
LINQやWPF叩いてる荒らしの相手するなよ。
JavaScriptは方言をなくしてからでてこい
気に食わない=荒らし
ここまでF#なし
もうアホは放置しろよ
放置しろよおおぉぉ!!!!!!!!!!
LINQかC言語どっちがオススメですか?
嫌です。
SilverLight…常に2番 F#…ハミゴ
関数型言語の元祖はC#だから
F# == J#
false
true
if(!true) return true;
true
true
warn
true
Javaはオワコヮ
キティが発狂したのかよ
まだキティとか使ってる人いたんだ
C#使いこなせなかったから腹いせだろ
次は妄想屋か
LINQいいよね〜
実際効率だったらC#よりRubyの方が優れている 最近では組み込みOSの実装にRubyが使われるのが一般的になってきたし
ホーソレデ
正直Ruby使うならC++使うわw
ホーソレデ
ほね」。
島根臭が美しくない
LINQいいよね〜
トムって日本でいう太郎みたいなものか?
ホーソレデ
LLLLLLL
object x = new object[10];
GUIを使うならRubyはカス まだPythonの方が遥かに生産性が高いがそれでもVC#の足元にも及ばない
しかし、大手企業でC#を採用しているところは未だない
VBは簡単とは言うが、JavaやCとの縁遠さを考えると人的資源としてはそうでも無い気がすんのにね 潰しがきかねえし
JavaやC#が使えてVBが使えない人はいないけど逆はいる 実際にはVB.NETが使えてるならC#もJavaもそんなに変わらないというのに、 C系言語に対する恐怖のようなものを植えつけられてるんだろう
VBしか使えない人なんて最近見かけないんだけど
見かけない方がいいよ
しかし、大手企業でC#を採用しているところは未だない
C++至上主義と、VBしか出来ない人って同じ人種に見える
同じ人種だろ 柳刃包丁で大根剥くか?
サイトから画像URLを検索してダウンロードしていく場合 スレッド、非同期プログラミング、非同期デリゲート どれを使えばいいかな?
メモリ管理とかやりたくねーからC++はパス
マジな話どれでもいいよ
そっか、じゃあ簡単そうなスレッドでやってみる
121 :
デフォルトの名無しさん :2011/03/15(火) 15:10:27.75
ウィンドウハンドル番号ってなに?
識別子IDみたいなもんじゃないか
this.だとそのプロジェクト内のすべてが候補にあがるけど そのクラス内のメソッドや変数だけを候補にあげるような便利なのってありますか?
124 :
デフォルトの名無しさん :2011/03/15(火) 15:12:54.77
どうして調べるのさ?
?
126 :
デフォルトの名無しさん :2011/03/15(火) 15:14:00.49
>>121 一意な識別子かな
C/C++のころはアドレスをそのまま識別子にしてるんじゃないかって話だったけど
127 :
デフォルトの名無しさん :2011/03/15(火) 15:15:44.26
>>124 その識別子IDはどうやったら分かるの?
128 :
デフォルトの名無しさん :2011/03/15(火) 15:17:17.32
>>123 >this.だとそのプロジェクト内のすべてが候補にあがるけど
あがらねーだろ
クラスの中でthisってやればそのクラスのことだ
129 :
デフォルトの名無しさん :2011/03/15(火) 15:17:57.74
教えてくださいって言う
ComboBoxの枠線の色を変えたいです。 方法が見つからなかったので、 ComboBoxを継承したクラスのOnPaintメソッドで e.Graphics.DrawRectangle(Pens.Red, this.ClientRectangle); などをやってみましたが、色は変わりませんでした。 どうにかして枠線の色を変えれないでしょうか?
>>131 枠線の色を変えようだなんて思わないことだな
fc2にftpでファイルをアップロードする方法を教えてください
FtpWebRequest
ですよねぇ それがうまくいかないんです
SystemEx.dllなるものを作ったとして それをメインプロジェクトとdllの両方で使いたい場合 両方に参照を追加するのですか?
そう
ども
メソッドの命名の仕方で教えてほしいんだけど どれがいいですか? @ Class class1 { class2.Do() } A Class class1 { class2Do() } B using class2; Class class1 { Do() }
>>140 @…文法違反
A….NET Frameworkのガイドライン違反(クラス名, メソッド名)
B….NET Frameworkのガイドライン違反(クラス名)
何をしたいのか分からないw
class Class1 // クラス名は先頭大文字 { public void Do(); //公開メンバは全て先頭大文字 } これが正しい
いやーそういう意味じゃなくて 例えば namespace テレビ { Class 操作 { public 起動(){} } {} } こんな感じで作った場合 他に操作という名のクラスや起動という名のメソッドがあった場合 テレビなのかパソコンの操作のかわからないじゃないですか そういうのを避けるために、また長々と書きたくないので テレビ.操作.起動(); とやるのか テレビ操作.起動(); か テレビ起動(); か どうすればいいかいつも迷うんですけど
何のためのネームスペースやねん
とりあえずテレビ起動(); は無理だろ クラス名をテレビにすれば解決するんじゃねw
どうしてもテレビと操作分離したいのならTVControllerだろう
「操作」か「テレビ操作」かどちらかだったら「テレビ操作」だな 可読性の問題もあるし、 名前空間にかかわらず、原則として一緒に使われるものの名前は被らせてはいけない
149 :
144 :2011/03/15(火) 19:27:59.17
>>145 といいますと?
>>146 それだと、メインのクラスで
テレビ.起動()
という感じでメソッドを利用するんですか?
>>147 分離とはどういうことですか?
言っている意味がよくわからないんで
もうちょっと詳しく教えてもらえませんか?
なんて言うかメソッド名だけ書いていると
どのクラスのメソッドか、しばらくするとぱっとみてわからなくなるんですよ
だから他の人はどうしてるのかと
ある人は、メソッド名にすべてクラス名を書いてました
AAP_Do();
VCC_Do();
とかこんな感じ。
マウスポインタ合わせなくてもすぐどのクラスを使っているかわかる
本当にそれC#の話?
C#じゃクラス名は省略できないだろ 必ず クラス名.メソッド名(); の形になるから、メソッド名はシンプルなものでいい。 クラスはusingできるので、名前空間にかかわらず名前はなるべく重複させない。 もしかして、実装継承をしまくる開発スタイルなの? それだったらその手法自体が良くないので、一般に良いとか悪いとか言っても仕方がない。
ポリモーフィズムさんに謝ってって感じだな
オブジェクト指向的にはデータと振る舞いがセットになるので class テレビ { int 表示中のちゃんねる; void 起動(); void 停止(); void ちゃんねる前(); void ちゃんねる次(); } みたいになる(操作はテレビが内包する)って話 操作だけ別クラスに分けるならいわゆるMVCのMとCだろうからXXXController
155 :
144 :2011/03/15(火) 19:37:30.65
例えばこういうのじゃだめなんですか? namespace テレビ { Class テレビ { public 起動(){} } } ネームスペースが邪魔なんですよね 名前をつけるのはクラスだけだったらいいのに クラスだけにしたい場合メインプロジェクトにそのクラスを組み込んでやればいいけど テレビクラスを他のプロジェクトでも流用したいのでクラスライブラリにした場合 ネームスペースをどうするかいつも迷うんですよ あと、テレビクラスにしてしまった場合 テレビクラスで使うデータセットをどうするかってことも迷う 例えば var data=テレビ.リモコンデータセット.リモコンから送信されたデータ か var data=テレビ.リモコンから送信されたデータ←これだと何かおかしくないですか?
名前空間のガイドラインがあったはず… あのね、単に同意が欲しいのなら駄目なんですかとか聞かなくていいよ。 好きにしろよ。
157 :
144 :2011/03/15(火) 19:39:55.51
>>150 参考にしたソースはJavaScriptで書いてました
それはメソッド名にクラス名くっつけてました
>>151 すいません。それは勘違いでした。
それと初心者なので難しい用語で言われてもよくわかりません
ほね語ならもっと可愛らしいのに・・・
namespace [
>>144 ].Media.Player
interface IPlayerController{ 起動()とかチャンネル変更()とか }
class TV : IPlayerController { //実装 }
class Radio : IPlayerCpntroller { //違う実装 }
160 :
144 :2011/03/15(火) 19:41:15.44
>>156 いやー別にそんな意味で言ったわけじゃなくて
自分なりに考えてこういう案は?ってことなんで
説得しようとかそういうニュアンスじゃないです
案とか言われても味噌汁にはチョコレートだよな!と言われてる感じなんだが
>>155 >var data=テレビ.リモコンから送信されたデータ←これだと何かおかしくないですか?
「リモコンから送信されたデータ」とか書くからだろ
「他機器からの操作要求」ならなんもおかしい事はない
話変わるけどeclipse-jee-ganymedeが2時間掛けても落ちてこなくて死にたい
初心者なら変なこと考える前に勉強したら? クラスライブラリの正しいデザインなんて言語をマスターして .NETのクラスライブラリの使い方にも慣れてから考えること どうせ勉強中に書いてるコードなんて後で全て捨ててるよ
1回件のjavascriptのコードをC#で書いてみりゃあいいじゃん 無駄だって分かるから
余計な物付いててもいいならAll in Oneで落としちゃえば? EE入ってるし
168 :
144 :2011/03/15(火) 19:47:59.88
もしかして、クラス名に動詞を持ってきてるからおかしくなったっぽいですね
>>159 例えばインターフェースを設けられないような関連性のないクラスの場合は
どうやって区別しますか?
例えば
SystemEx.IO
System.IO
IOクラスを使う場合どう区別しますか?
そのIOは名前空間だ using ExIO = SystemEx.IO;
170 :
144 :2011/03/15(火) 19:50:01.20
>>162 要求だとメソッドですよね
それはプロパティのつもりで書いたんですけど
171 :
144 :2011/03/15(火) 19:51:18.43
>>169 じゃあそれぞれのStreamReaderを使う場合どう区別しますか?
>>167 AllInOneでやったらGAEpluginが競合で入らないん
>>171 そんな設計しない
174 :
144 :2011/03/15(火) 19:55:10.57
>>172 いやだから、別のネームスペースで同じクラス名があった場合の話なんだけど
SystemEx.IO.StreamReader
System.IO.StreamReader
これらどっちかをどうやって区別するの?
>>170 たぶんC#でリモコンとテレビの関係を実装するなら
テレビ.操作(操作データ)をリモコンが呼び出すことになるからそんなプロパティは要らん
176 :
144 :2011/03/15(火) 19:55:49.13
>>176 そんな設計しなければ良いと言っているだろ?
スゲー面白いwww
>>174 だからそれはガイドライン違反だ
>>172 の>コア名前空間の型と競合する型の名前を割り当てないでください。
に違反する
万が一有ったとしてもフルネームで使うか名前が長いなら
>>169 のように別名付けとけばいい
181 :
144 :2011/03/15(火) 19:58:38.73
>>175 例えばの話なんで、実際テレビクラスなんて作るわけじゃないので
本質的な質問に対して答えてほしい
あれは、複数のデータセットクラスをどうやって見分けるかの質問です
さらにデータセットネームスペースなんてのは他のクラスやプロジェクトでもあるので
どのデータセットのデータセットクラスかどうやって区別するのか聞いているんです
エイリアスが1個なら別に意味のある名前でなくてもいいし。
なんでここまで同じ名前にこだわってんだ??
184 :
144 :2011/03/15(火) 20:01:17.29
>>179 コアってなんですか
じゃあ、変えますよ
MySys.IO.StreamReader
MyOppai.IO.Hage
こういうのがあった場合
StreamReaderはどのスペースのか
Hageはどのネームスペースのか
どうやったらすぐわかるようにできますか?
>>181 普通は同じ名前のデータセットなんか作らないから、見分ける必要性がない
最近using使わないのがマイブーム インテリセンスががばーって出なくなっていい
クラス名は原則被らせるな。名前空間が違おうがクラス名を見ただけで意味の分かる名前にしろ。 メソッド名は常にクラス名とセットだからシンプルでいい。 これはMSがそう決めている。
>>184 やってみればわかるけ、ど競合して同時にインポートできないから全くの杞憂だよ
189 :
144 :2011/03/15(火) 20:02:27.90
>>183 長くなるからですよ
TVUtils
RadioUtils
とかクラス名が長くなるのが嫌なんですよ
TV.Utils
Radio.Utils
にすると今度はどのUtilsかわからなくなる
VS先生が補完してくれるから長くても意味のある名前をつけろよ
Utilsなんて名前のクラスは作らない 名は体を現さねばならない 何のUtilsなんだか分からないじゃないかね
自分だけならどうしようが勝手だけどさ。 名前付けのポリシーは統一されてることに意味があるんであって、 MSの意向に従う気が無いなら、良い悪いの議論しても意味無いわけ。
193 :
144 :2011/03/15(火) 20:06:13.16
>>187 ええ?じゃあネームスペースができた理由で
同じクラス名でも同じプロパティ名でも使えますー
なんて説明は誤解を招くような説明じゃないですか?
例でも同じクラス名をわざと作って
これでもできますとかやってたりするし
だから、同じような機能のクラスは同じクラス名にしようって思ったんですけど
194 :
144 :2011/03/15(火) 20:08:31.80
>>191 Utilsはネームスペースですか?
ネームスペースとクラスの記述が同じだからややこしんだよな
AAA.BBB.CCC()
これだとBBBがクラスかネームスペースか誰も区別できないでしょ?
>>189 一般的なコーディング規約の類は前者のアプローチを選んでいます
MSもPEARもZendもApacheもAdobeもね
どこでも通用するからね
貴方がどこでも通用する人間になりたいのなら前者を選ぶといいでしょう
そうでないのないなら、我が道を行って頂いて全く構いません
196 :
144 :2011/03/15(火) 20:09:18.73
>>192 だから正しい方法教えてよ
従わないなんて誰もいってないでしょ
できるよ
>>194 お前C#で書いたことがあるのかw
>AAA.BBB.CCC()
>これだとBBBがクラスかネームスペースか誰も区別できない
100%メソッドだろがw
そのためのusingじゃないの?
200 :
144 :2011/03/15(火) 20:10:41.51
>>195 ふーん
でも、自分で書いてて思ったけど
TVUtils
これもネームスペースにするべきで
クラス名にしたらおかしいんじゃない?
>>193 わかりにくいから。
君がとっても便利なライブラリを作ってネットで公開したとする。
そのライブラリはA.dllとB.dllの2つで構成されている。
その利用者が、AとBを君の知らない別のライブラリC.dllと組み合わせて使ったとする。
C.dllには君のライブラリと同じ名前のクラスが含まれていた。でも、利用者は名前空間のおかげで
両者を区別して使うことができる。
君が作ったA.dllとB.dllにはMSのガイドラインが適用され、同じ名前のクラスを含んではいけない。
>>200 だから、
「我が道を行って頂いて全く構わない」
と言っているでしょう?
204 :
144 :2011/03/15(火) 20:12:02.11
>>198 なんで?
ListBox.Items.Add()
かもしれないじゃん?
この場合クラスだよ?
>>204 じゃあBBBがネームスペースの場合を書いてみ
なんかユーモアを感じるスレだな
TVUtilsがネームスペースだというならその下にどんなクラス名付けるんだろうな
BBBはネームスペースになれないだろ
209 :
144 :2011/03/15(火) 20:14:56.73
>>202 まってまって、だからそれは
同じ名前空間の場合AとBに同じクラスを作っちゃいけないってことでしょ?
だから例えで出したじゃない
System.IO.StreamReader
SystemEx.IOEx.StreamReader
この場合同じクラス名でもいいよね?
で、どうやってどの名前空間のクラスか判断するの?
>>209 省略して書けない様になってるから安心したまえ
System.IO.StreamReader SystemEx.IOEx.StreamReader って使うときに全部書くんだよ
>>209 違う。名前空間にかかわらず、一緒に利用されると想定されるなら
同じ名前を付けてはいけない。
213 :
144 :2011/03/15(火) 20:16:35.74
>>207 リモコンクラスとか
節電クラスとか
いろいろあるじゃん
C++でAAA_BBB_CCC_DDDとかおぞましいクラス名つけてる奴と同じ臭いがする
同時にオブジェクト指向を派手に誤解してるっぽい気配
節電クラスってすごいな…
一体誰に何を教わってこうなったんだ?
まず
>>172 のリンク先を読め
>>211 のような混乱が起きないようにするために
>名前空間にかかわらず、一緒に利用されると想定されるなら同じ名前を付けてはいけない。
という約束になっている。
俺だったらテレビに節電プロパティ持たせるわ 勘違いしてたけどUtilsって現実世界のテレビの付属品を指して言ってるのか 斬新だな
おれもUtilsってのは便利な静的メソッドでもまとめたかと思ってたわ・・・新しいな
221 :
144 :2011/03/15(火) 20:20:49.55
じゃあ、クラス名は別にしなければいけないのはわかったけど メソッド名は別に同じのでもいいんだよね? ListBox.items.Add Lisview.Items.Add とか同じだけど機能が違う
インスタンスの型見れば同じだけど機能が違うのがわかるからいいよ
>>221 それは意味が同じだから同じ名前なんだよ
名前が被ってるんじゃない
それはどっちもIList実装してるんだしあたぼう
すげー勢いでスレ消費してるな
226 :
144 :2011/03/15(火) 20:23:02.05
まあ、なんとなくわかった とりあえず、クラス名1から全部変えないだめだな 感謝するよ
C#がダメでもHSPが君を待ってるよ
JavaでawtとcollectionのListを間違えてぐわーとなってみるといいよ
229 :
144 :2011/03/15(火) 20:27:33.27
とりあえず、まとめると クラス名はできるだけ具体的な物を指すような名前にしてー メソッドはシンプルに機能名を書いて(ダブってもいい) ネームスペースは抽象的名前でグループ化するもの?か
230 :
144 :2011/03/15(火) 20:29:55.56
>>229 それでいいよ
ネームスペース名に関しては別に意味なんか無くてもよくて(あるに越したことはないけど)、
極端な話、君の名前でも構わない。
他のライブラリと組み合わせて使うときに被らないようにするためだけのもの。
232 :
144 :2011/03/15(火) 20:38:14.58
例えばだけど… ようつべから動画DLするソフトを作る場合 YouTubeDownloader.YTUtils.MovieDownloader.Download(string URL); YouTubeDownloader.YTUtils.MovieSearcher.Search(string searchStrings); こんな感じ?
233 :
144 :2011/03/15(火) 20:39:23.00
どうしてもクラス名とメソッド名が被るんだよね これがなんか冗長な感じがしてイラっとする
名前空間フェチか
YTUtilsとかいらん ナントカUtilsというと普通はstaticメソッドばかりのクラスを指すので混乱を招く どうしても間になんか入れたいならYouTubeDownloader.Movie.MovieDownloaderとかにしとけ C++なんかとは違ってusingはどんどん使っていいから冗長とか気にするな
そんな小規模なアプリなら名前空間は一つで十分だろw
ちゃんとしたクラスライブラリとして公開するなら <144の名前>.YouTubeDownloader.MovieDownloader とするのが本式
238 :
144 :2011/03/15(火) 20:51:19.58
>>235 なるほど、じゃあクラス名は長くてもいいからわかりやすい名前にするんだね
動画情報をまとえまとめておくのはこんな感じ?
string YouTubeDownloader.MovieDataSet.MovieCollections[int index].Title;
>>237 ほー、そんな自分アピールしちゃっていいんだ
239 :
144 :2011/03/15(火) 20:53:00.00
あ、.MovieDataSetはいらないのか string YouTubeDownloader.MovieCollections[int index].Title; string YouTubeDownloader.AudioCollections[int index].Title; こんな感じ化
もう一個違和感あったんだけど、「データセット」って*.xsdのことだよね?
241 :
144 :2011/03/15(火) 20:56:36.09
>>240 何それ
public Class Movie
{
public string Title;
public string URL;
}
public Class MovieCollection:List<Movie>
こんな感じを想定してる
List<T>は継承するな お馴染ガイドライン違反です
だから通じなかったんだな C#ではデータセットって言うのはDataSetを継承したクラスを指すのでそれ以外の用途にその言葉を使うと混乱の元になる
コンパイルが通らないのがデフぉ
245 :
144 :2011/03/15(火) 21:18:33.21
>>237 これもだめだな
ニコニコダウンローダーを作るとクラス名が被る
NicoNicoDownloader.MovieDownloader
ってことは
NicoNicoDownloader.NicoNicoMovieDownloader
になるわけか
そうなると結局ネームスペースいらねーじゃんって話なんだが・・・・
斬新
なにこの諦めモード。頑張って教えてやれよ
思考回路が斬新過ぎて
namespace MovieDownloaders { abstract class MovieDownloader; namespace NicoNico { class NicoNicoMovieDownloader : MovieDownloader; } namespace YouTube { class YouTubeDownloader : MovieDownloader; } } こうだな
250 :
144 :2011/03/15(火) 21:41:07.87
N2Downloader.N2MovieDownloader.Download ちょっと略してみたが・・・ Help!
251 :
144 :2011/03/15(火) 21:43:42.84
>>249 なるほど、確かにすっきりしそうだけど
それは最初からニコニコとyoutube両方作ることを想定しているからじゃない?
この言語?IDEっていうのかな?は
プロジェクト名を容易に変更できないじゃないですか・・
これがホント面倒ですよね
あとで
>>249 にしたいと思ったら、あっちこっち変更しないとだめだし
Help What!?
namespace
>>144 .Net.Downloaders
{
abstract class MovieDownloader{}
class NicoNicoMovieDownloader :MovieDownloader {}
class YoutubeMovieDownloader :MovieDownloader{}
}
デフォルトネームスペースは変更できなかったっけ
まず名前空間の時点で固有名詞を含めるのやめた方がいい 最上位の部分の組織名などを使う場合をのぞいて
流し読みしてきたけど、眩暈がするような斬新さだな…。
>>251 最初からニコニコとyoutube両方作ることを想定していないのに、
あらゆるクラスにNicoNicoだとかN2だとかのプレフィックス付けて回るのか?w
257 :
144 :2011/03/15(火) 21:51:25.14
>>253 これも気になる点が
ニコニコ用のムービー情報のデータクラスはどうするかという問題
Downloaders.NicoNicoMovieDownloader.MovieCollections
とする場合
コレクションクラスをDownloadersの下に作ると
Downloaders.NicoNicoCollectionsとインテリセンスで候補に出ますよね?
ニコニコダウンローダー用のデータクラスがニコニコダウンローダークラスと
同じ階層に候補として出るのがイラっとしませんか?
例えば
form1で
this.ListBoxItemCollections
なんてできたらキモチワルイでしょ?
DownLoaderの下にはつくらんよ
259 :
144 :2011/03/15(火) 21:52:54.03
あー、内部クラスってのがあってね… お願いだから基礎からやってくんねえかな
YAGNIでググれ
262 :
144 :2011/03/15(火) 21:53:28.62
264 :
144 :2011/03/15(火) 21:54:12.35
265 :
144 :2011/03/15(火) 21:55:07.17
>>263 イラっとするけど、汎用的な名前でクラス名を作ると
被ってしまうおそれがあるでしょ?
名前空間が違っても同じクラス名作っちゃだめなんですよね?
そうここで教わりましたが
独自のコレクションを持つ必要があるクラス(ListBoxとか)はListBox.ObjectCollectionみたいな内部クラスを持ってる
汎用部品として作るクラスのnamespaceと 特定のアプリでしか使わないnamespaceは分けるべ
なんかもう相手するのに疲れたから後はお前らやっといて
Javaだと徹底してインターフェースとImplの名前空間分けてるよな
270 :
144 :2011/03/15(火) 22:00:25.11
>>266 Class c1
{
Class c2
{
}
}
こういうことをしろってことですか?
うん
それでいいよ
273 :
144 :2011/03/15(火) 22:02:39.61
>>267 最初から汎用的だとわかっているならいいですけど
初心者の私にはどれが汎用的に使えるかわからないので
固有名詞のようなクラスを作るんですよ
初心者なら難しいこと考えなくていいよ
名前空間を汎用的に使えるように考えることはできるだろ? 所詮グループなんだから
276 :
144 :2011/03/15(火) 22:10:59.12
まあ、騙されたと思って
>>253 で作ってみるか
継承よりインターフェースの方が良さそうだけど
ほね」。
144はクソど素人のくせに知ったか振りの単語をそこかしこに混ぜてくるのが自然にむかつかせるね。
どうかな〜最上位をインターフェースにしても形にこだわる貴方は骨格実装を書くと思うw
>どれが汎用的に使えるかわからないので
だったらインターフェイスはありえない選択。最悪。
>>172 くらい読めないようなら継承もやめた方がいいと思うけど。
282 :
144 :2011/03/15(火) 22:55:16.01
いやでもさ、データクラスを内部クラスにしちゃったら メインクラスでまたその受け皿クラス作らないとだめだよね 動画のinfoクラスって全体で使うわけだから 内部クラスってやぱっりどうなんかなぁ
基本的に、外から見える内部クラスを作ってはいけない。
>>266 のようなのは例外。内部クラスは外のクラスのprivateメンバにアクセスできるから
そのために内部クラスを使ってる。そういう理由がなければ禁止。
285 :
144 :2011/03/15(火) 23:01:49.79
>>283 そういう意味じゃなくて
タイトル、URL、ファイルサイズのクラスを作って
それを全体で使える方が楽じゃない?
内部クラス作るより
糞コテw
287 :
5 :2011/03/15(火) 23:04:38.05
もっとC#覚えようとしているんですが何からすればいいか、わかりません クラスとインスタンス、継承などはわかるんですがこれから次何をすればいいのかわからないんです 何かアドバイスください・・・
指示に従えないなら質問するな
自動保守ツールを作りなさい
>>287 それだけ分かれば十分。なんか好きなもの作れ。
慣れないうちは継承はいらん。カプセル化だけ意識してればいい。
わかんないのに難しいことばっかり考えてると144みたいになっちゃうぞ
Hit&Blowはもうよせ
hit&blowをGUIで
Twitter上でHit&Blowを延々プレイし続けるbot_
「だからそれは」 「〜じゃない?」 「いやでも」 「そうじゃなくて」 「そういう意味じゃなくて」 ・・・
「〜てみた」 「暇だから〜」 ・・・
言いたいことがあるのなら三点リーダでお茶を濁すな
・・・
300 :
144 :2011/03/16(水) 02:19:09.44
>>253 これ
Net名前空間使ってるけど
System.Netがあるからガイドライン違反だね
初心者騙ってるのか、自分で調べようともしない馬鹿なのか分からんが 引き際誤っちゃ見苦しいわ。
遅レスの上にくだらないw さすが糞コテ人格破綻低脳陳腐猿並級144w
>>300 全く読んでないんだろうが、ガイドライン違反なのは
「コア名前空間の『型と競合する型の名前』 」
だ。
名前空間を競合させるなと言ってるんじゃない。
304 :
287 :2011/03/16(水) 03:57:52.12
>>290 わかりました。自分の作りたい物を作ってみたいと思います
質問なんですが、Form1とForm2の間で変数を共有したり、値を引き渡したりすることってできないんですか?
名前空間ってなんやねん namespaceやろw
306 :
144 :2011/03/16(水) 03:58:20.01
>>303 だからそういう説明じゃ初心者にはわからないの
経験積んだ人だとすぐイメージできるんだろうけど
経験がないからそれらの単語が何を指しているのかわからない
コア名前空間=これは何?どれ?
型=どれの型?主語がないからわからない
競合=競合ってどういう状態を指す?名前空間が別なんだから競合してないんじゃないのか?
どのサイトもプログラミングできる人前提の説明なんだよなー
俺みたいな初心者はさ、それぞれの単語の意味を理解するのに
プログラミングにおける意味合いではなくて
日常会話における一般的な意味で読解しようとするんだよ
だから、理解のズレができて結果わからないんだよ
文語と口語が入り乱れているって言えばわかりやすいかな
また例外君かよ
お前は起きてても電気代の無駄だから寝ろ
309 :
144 :2011/03/16(水) 04:04:32.35
クラス という一言でも、一般的には学校のクラスなわけで クラスの一般的な意味は知っていても理解できない プログラミングにおけるクラスが何かプログラマじゃないとわからない
わからないわからない連呼するだけならプログラミングなんぞやらなくてよろしい
311 :
144 :2011/03/16(水) 04:10:53.78
一般的な意味とプログラミングにおける特殊な意味
この両方を理解したうえで初心者にわかりやすく
伝えるにはバカだと無理なんだよ
よくいうだろ、難しい言葉で説明するより簡単な言葉で説明する方が難しいって
地震の説明でも専門用語が飛び交って一般人には理解できない
格納容器、圧力鍋とかいろいろ言ってるが
一般人がイメージするものと、専門家がイメージするのは全く違うわけよ
お前らはイメージできるからわかりやすく教えているつもりだろうが
こっちからしたら何を言っているのかわからない
だから専門用語並べて説明されるより
正解の例を出してくれた方がいい
>>253 のはdownloaddownloadって冗長だから
お前らが実際に作るならどういう名前つけるか
スパっと教えろ!能書きは要らない、煽りはいらない
ズバリが聞きたい!
312 :
144 :2011/03/16(水) 04:12:00.19
例外君、トリップ付けといてよ
初心者のためのスレだけど教えて君用じゃないんだ
144発狂w
小学生からのゲームプログラミングでも読んで大人しくしてて欲しいわ。
316 :
144 :2011/03/16(水) 04:20:22.92
例外君も普通の文章書けるけどな この板のすべての固定が嫉妬するような普通以上の文章をね
ほうほうそれでそれで?
例外さんと144は同じ病院?
例外君は偏屈なポリシーに触れなければ割とまともだよ。
320 :
144 :2011/03/16(水) 04:23:42.04
おしっこ飲みたい
321 :
デフォルトの名無しさん :2011/03/16(水) 04:24:11.32
>>144 もうちょっとC#の勉強してから来るといいよ
個人でやってるなら命名規則なんて問題無いしさ
ああageちまった、ごめん
中途半端に知識付き始めた奴って妙に命名規則やコーディング規約にこだわりだすよね
>>319 常にトリップ付けてくれないと、いつも馬鹿なこと言ってるおかしな人としか認識されんよね。
326 :
144 :2011/03/16(水) 04:29:08.60
ここは馬鹿ばっかりだな 実務経験ある奴なんていないんだろ
C#2010をインストールして、swfファイルを再生しようと思い COMからShowckwaveを参照しても、ツールボックスに追加されません。 環境はvistaでActiveXなどもインスト済みなのですが、何がいけないのでしょうか
328 :
144 :2011/03/16(水) 04:29:35.84
いやーだからさ、ズバリ教えてよ
そうすりゃ大人しくするからさ
>>320 お前がなんで144にしているわけ?
幼稚なことしてないで早く寝ろよ
原子力もそうだけど詳細が知りたいのなら文句言う前に自分で図書館行くなりググるなりして知識身につければいいのに 受動的な勉強で済むのは中学生までだよ 専門用語だっていちいち置き換えたり説明したりするのが面倒だから定義されるわけで
>>323 こだわるとかじゃなくて、後で何度も名前変更したりするから
ちゃんとした名前の付け方を知りたいんだよ
一番腹が立つのがプロジェクト名を失敗したとき
後で修正効かないし本当にイライラさせる
NG登録が楽になったわ これからもちゃんと付けろよ
>>329 だから一通り文法は勉強したよ
でも名前の付け方なんてチュートリアルはどこにもないぞ
ここは質問スレだろ、答えたくないらなそれでいいが
いちいち説教される覚えはない
お前がそう思うならお前がそうすりゃいいだけ
俺に押し付けるな
144じゃなくて例外君か、名前空間ってしっくりこないんです にでもしとけ
そういう意味でトリップつけろとか 成りすまししたりする愉快犯だったってことだな じゃあ、外すわ
文法を勉強したという割には上の方のレスで文法違反を平気で書いてんな。
初心者スレですら邪見にされる
>>144 wwwwwwww
アホはプログラムなんか書いてないで寝てろよwwwwww
たかが名前の付け方のしつもんだけなのに 誰も答えられないし、言い訳ばかりするし えらそうに説教するし ほんと役に立たないスレだな そうやって敷居高くしてろよ 間口狭くしてろよ その結果糞プログラマしかいなくなって 海外のプログラマに負けた現状にヒーヒー言ってろよ 技術独占してケチ臭くした結果がこれだろ? 優秀なフリーソフトはいつも外人が作る ゲームソフトもすべて外人 日本人プログラマはゲームエンジンもフレームワークも作れない 自社製の糞重い時代遅れのゲーム作りつづけて倒産 ライバルが減るからいいやって思っているバカ 分母が減るってことはそれだけ需要も減るってことなんだよ 自分の首絞めていることに気付いてないんだなこいつらは 海外フォーラムなんて本当に親切に教えてくれるぞ おまえらにはもう頼まないバーカ死ね
プロジェクト名変えるのなんてプロジェクトとソリューションのファイルを開いてちょっと書き換えるだけじゃん ググレカス アホはプログラムなんか書いてないで寝てろよwwwwww
インテリセンス効くし冗長でもいいんじゃないかな、って言えばいいの?
>>338 一生PGやってな負け組wいや、そういう職にもついてないかw
お前このスレにずっと常駐してる荒らしだろ?
仕事もできない無能がここで憂さ晴らししてるだけなのは丸わかり
一生そうやってろ
後悔するのはお前だ
最後まで恥ずかしいやつだなwww アホはプログラムなんか書いてないで寝てろよwwwwww
文章の書き方からして頭の悪さが滲み出てるからな アホは相手にしないのが一番
長い 3文字で
ねむい
>>342 別にアホじゃないし、
プログラミングできないとアホとか思っている奴の方がバカ
世間知らず、引きこもり、障害者、天涯孤独
おれはプログラマじゃないしw
そんな根暗な奴らと一緒に仕事したくないわw
このスレ見てよくわかったわ
気持ち悪い奴らばかり
理屈っぽくて、上げ足ばかり取って、煽ってばかりいる無能
お前らの暇つぶしはこういうことするしかないの?
なんてみじめな人生だろうね
気持ち悪い、本当に気持ち悪いは理系の奴は
348 :
144 :2011/03/16(水) 04:55:10.95
おしっこしたいよぉ
>>344 >>文章の書き方
もうこの時点でお前が低学歴なのがわかったw
アホ丸出しw
>>347 >理屈っぽくて、上げ足ばかり取って、煽ってばかりいる無能
>世間知らず、引きこもり、障害者、天涯孤独
>根暗 気持ち悪い奴
あぁ、いつもの自己紹介か。
なんてみじめな人生だろうね
と思い込みたい図星君
>>349 >理屈っぽくて、上げ足ばかり取って、煽ってばかりいる無能
>気持ち悪い、本当に気持ち悪い
>>352 語彙が少なすぎて、自分の言葉で反論することもできないバカ丸出しww
と思い込みたい図星君
355 :
144 :2011/03/16(水) 05:03:47.04
ちんこ
この内の何割が自演なのか
もしかして全部
>>144 の自演か?
>>文章の書き方 これでなんて低学歴なの?
お前等全員アホだろ 寝ろ
>>355 また成りすましか
おっさんなのに知能は小学生レベルだなお前わ
最近ずっとこのスレに常駐してるだろお前
引っ込みがつかなくなった
>>144 を弄って遊ぶ流れか
答えれなくて低学歴涙目wwwwwwwww
海外フォーラムは僕にやさしかったんだぁー!!
367 :
144 :2011/03/16(水) 05:13:53.58
ぼくなんかより
>>327 に真面目に答えてあげてください。それだけが私の望みです。
>>327 追加しただけだとツールボックスには表示されない
メニュー→ツール→ツールボックスアイテムの選択→COMコンポーネント→Shockwave〜にチェックすると表示される
さて答えた所で遊びを続けようね
2chには自分よりバカだと分かったら叩いて遊ぶ奴が居るからな 次からは海外フォーラムで聞いた方がいい
372 :
144 :2011/03/16(水) 05:17:03.59
おまんちょ舐めたい
半端な理解で調子に乗って失敗してそうな所が透けて見える
"半端"と言えるほどに理解できているのか怪しい
お前さん学歴コンプレックスでもあるのか?
語彙不足
379 :
144 :2011/03/16(水) 05:27:39.13
おめーらいい加減にしろよ
なぜ海外フォーラムでなくここで聞いたんだろう?
2位の3倍近い175もの勢い。 今日もふらっとは元気です。
D♭
ほね」。
その親切な海外フォーラムは…と書いててわかったよ 親切にもわざわざ日本語で答えてくれたって事か
これならまだデザパタ厨の方がかわいいわ。
どさくさに紛れてデザパタ厨正当化キタ
VB厨よりひでえ
いや正当化はしてないが
そろそろLINQの話でもしようか
ネタ提供してよ
ニコニコ動画のダウンローダーはどうすればいいですか?
Oracleでは常識であらゆる分野で普通に使われる科学の基本手続きである統計的結果が働かないからLINQなんか使うべきではないよプンプン
LINQいいよね〜
ニコニコの公開APIをHTTPで叩けば動画のアドレス取れるからそれを落とせばいい はい次どうぞ
YouTubeのダウンローダーはどうすればいいですか?
例えば namespace テレビ { Class 操作 { public 起動(){} } {} } こんな感じで作った場合 他に操作という名のクラスや起動という名のメソッドがあった場合 テレビなのかパソコンの操作のかわからないじゃないですか そういうのを避けるために、また長々と書きたくないので テレビ.操作.起動(); とやるのか テレビ操作.起動(); か テレビ起動(); か どうすればいいかいつも迷うんですけど
不惑の歳まで待つべし
而立から不惑までの間には深い隔たりがあるらしい。 俗に言う30歳定年説
というのは嘘
厨房が湧くとその後はしばらく荒れるな
そうだね
たくさんクラスはあれど使うのは極一部 なので、過去入力したことのあるクラスやメソッドだけを 候補で出すようなエディタを作ってみた
それVSのアドインで欲しいな
VBのインテリセンスはそうなってるよ C#に無いのはニーズが少ないから意図的に付けてないんだろうけど 初心者向けにはいいかもね
(´・ω・`)…
VSのインテリセンスはリアルタイムな反映とかスキップマッチとか表示速度とか 他がとても追いつけない最高の技術なのに それを捨てて独立したエディタとして再発明するのは現実的じゃないな VS2010の拡張機能として作るなら役に立つと思う
で、どうやったらインテリセンスの候補にフィルターかけれるの
VS2010なら難しくないらしいよ intellisense extension あたりで検索すれば情報出てくる
オンラインギャラリー初めて使ってみた いろいろあるんだなー おら、ワクワクしてきたぞ
どんな風に違うのか、スクリーンショットプリーズ。
HTTPリクエストヘッダをブラウザと同じ物にすれば同じのが帰ってくるよ
オンラインギャラリーで見つけたけど VS10x CodeMap v2 これすげー便利じゃん こういう機能ほしかったんだ 今でスクロールしてたけどこれで快適
せめてエディタ上部のドロップダウン使えよ まあ今時のディスプレイは大きいから、昔ながらの省スペースデザインよりも 横にでっかいツリーが表示されてるほうが便利なのは確かだけど
それでもいけたなw つい忘れてしまうんだよなそれ
>>415 >>416 ありがとうございます
どうも時間帯にもよるようで今は同じ画像が取得・表示されます
明日試してみます
エディタ上部のドロップダウンって大昔のVB由来だよな 一体いつからあるんだアレ いいかげん変えてCodeMapみたいにしてもいいと思う
インテリセンスのフィルター機能見つけた CSharpIntellisensePresenter これである程度は絞れるようになったけど 過去のログから絞るのはできないようだなぁ
あのドロップダウンは項目多すぎて使う気せんわw
あのドロップダウンはC++では大活躍
そしてRuby最強
ドロップダウンに簡単なフィルター付けれればいいのにな shift押したらメソッドのみとか
object型っていらないよね 使い道ないじゃん
private readonly object lockObject = new object(); があるじゃないか あとComponent.Eventsのキーにもnew object()使う 他にある?
全てのオブジェクトの基底クラスなんて言われてもしっくりこないもんな 全くだわ
何でもいいから一意の識別子が欲しい場合にnew object()は便利だよ
>>428 はその一例
ドロップダウンはVB方式のクラス+フィールド/メソッド+イベントでいいと思うんだが、 WithEvents相当の機能が無いから変えたのかな
そりゃそうだろ 言語の構造的に明らかに不自然
Func<IEnumerable<T>,IEnumerable<T>>に相当するデリゲートって用意されてる?
Selectじゃだめなん
だめに決まってるだろw
デリゲートの型なんて気にする必要があるのは、ライブラリが特定の型を要求するときぐらいだろ 無ければ黙って定義しとけ
無さそう
うむ
ナハナハ
442 :
デフォルトの名無しさん :2011/03/16(水) 23:25:15.75
objectって基本クラスじゃないの?
java.lang.Objectだっけ?
そうそう javaから解脱するため、C#5.1ではobjectが廃止になるって避難勧告が出てた 研究者も言ってる
foreach (Process p in Process.GetProcesses()){} このときpが64bitで実行されてるか調べるにはどうしたら良いですか?
Is64Bit
ほね」。
IsWow64Process
できました、さんくす foreach (Process p in Process.GetProcesses()) { if (p.MainWindowHandle != IntPtr.Zero) { IsWow64Process(p.Handle, out iswow64); if (iswow64) { }
NERHOUDOU!
452 :
304 :2011/03/17(木) 02:08:30.17
ごめんなさい解決しないのでもう一度質問させてください Form1からモードレスフォームとしてForm2を表示してデータを入力し、Form1に反映させていんですが どのようにしたらいいのかわかりません ぐぐったらOwnerプロパティ使えと出ましたが、登録数がわからないので配列を使用しようと思うんですが いい管理方法が浮かびません・・・
ごめんなさいモーダルフォームでした
LINQ使えよ
456 :
304 :2011/03/17(木) 02:33:04.43
>>453 デリゲートを使うということはForm1の方に主要メソッドを書いておいてForm2で呼び出すってことですよね?
>>455 SQLを触ったことがないので、Linqはさっぱりわかりません
継承ハンドラでオーバースウェイすればいい
458 :
304 :2011/03/17(木) 05:14:33.23
OpenFileDialogのマネじゃだめなの?
460 :
デフォルトの名無しさん :2011/03/17(木) 05:42:27.50
>>458 455と457は無視してね、このスレのネタだから
まじめに答えているのは453さんのデリゲートだけでが、それで良いと思いますよ
何を隠そう、これもネタなんです
internal static class Globals { public static Form1 Form1; public static Form2 Form2; } こんなクラスを用意しておいて、Form1やForm2のInitializeComponent();の行の後にそれぞれ Globals.Form1 = this; と Globals.Form2 = this; を書き加えておく。 これでどこからでもGlobals.Form1でForm1にアクセスできる。 わかってないのに無理してデリゲート使ったり見境なく引数に渡したりするよりは この方がよっぽど見通しがいい。
動けばよかろうなのよ
>>458 で紹介されてるOwnerのキャストなんて最低の方法だろ
コンストラクタに直接渡す方法も結局
>>462 とそう変わらない良くない方法だが
Ownerは外から見てForm2がForm1に依存してることがわからないから質が悪い
モーダルなのにstaticな空間で共有はやりすぎじゃないかと思うよねー
ちゃんと作るならForm2にForm1は直接渡さないで OpenFileDialog的な感じにするとかイベントやインターフェイス使うとかするべきで そこまでしないなら他はどうせ悪い方法であることには違いは無くて それなら全部グローバルでいいと思う
>>462 お前またそんなダサいこと教える気が
お前のコード醜そうだな
だったら
>>467 がダサくない方法を教えてやってくれよ
Form2がForm1に依存しないこと・Form1とForm2のカプセル化を破らないこと が条件ね
ただし今の304が理解できることが大前提な
デリゲート
クラスを横つながりに作るな そんな変な癖はつけさせないほうが身のため
だいたい
>>452 のような質問が出てくる時点で
ここでどんな高度な方法を教わったとしても、どうせマトモなものができるわけないんだよw
勉強中なんだから仕方ないこと
イベントを使う
OpenFileDialogに1票
悩むまでもないと思うんだよね…
C#でcookieを削除する方法を教えてください
cookieって自分で作ったマイブラウザじゃなく一般的なIEとかFFのやつ?
DeleteUrlCacheEntryとかなんとか
横からだけどデリゲートだとどう書くの?
class Form2 { private Action<Hoge> updateHoge; public Form2(Action<Hoge> updateHoge { this.updateHoge = updateHoge; } private void button1_Click(object sender, EventArgs e) { var hoge = new Hoge() { /* 入力されたデータを設定 */ }; updateHoge(hoge); } } こんな感じにするんだろ この場合ならプロパティとイベントを使ったほうが適切だけど
グローバル最強 デリゲート? ごみの日に捨てとけ
C#でグローバルって言われてもねぇ・・・
>>462 は実質グローバル変数でしょ
もちろんシングルトンもそう
>>462 C#なのにこんなことしている人って…・
実はオブジェクト指向ってしっくりこないんです!
485 :
デフォルトの名無しさん :2011/03/17(木) 20:35:03.85
ほね の前は しっくりこないんです がブームだったよね
そろそろ他言語と混同するのやめろよな
相変わらず勘違いしてる人が多いけど、問題が多いのは必用もないものが (グローバルに)見えることによって必用なものの見通しが悪くなること。 これが起こらないのであれば、グローバルであることが直ちに悪いとは言えない。 なんかメインフォームのインスタンスメソッドからいろんなオブジェクトの インスタンスを取得するような謎の設計のコードを見たことがあるけど、 こういう人は「グローバルは悪」ってよく考えずに妄信してるんだと思う。
2点。やり直し
489 :
デフォルトの名無しさん :2011/03/17(木) 20:59:34.10
つうかモーダルダイアログでグローバル使うのはバカだろ パブリックで公開すれば良いだけだよな
普通にダイアログのプロパティ読み書きでいいじゃねえかよォ
親に子が設定してやるって発想がよくない。
でも、ダイアログがデータベースにアクセスしたりする場合はどうする? データソースとか触るならそれってグローバル(笑)と大差なくね?
ダイアログからデータソースに直接アクセスさせる人って・・・・
ワロス
何で脈絡なく唐突にデータソースの話が出てきたのか全く微塵も理解できない
入出力機能はなるべく一点に集中させたいですよね
え…?いや別に。
>>492 はUI層の情報をDB介してやり取りするのか?
ああいうこというやつってWPFなんて絶対無理だなw MVVMどころかMVCすら理解できていない
別にダイアログがファイルやレジストリに書いて、それを親で読んだってええやん ソケットで通信してもええし、一旦サーバーに上げて改めて読むでもええやん やりたいようにやりゃええんや
501 :
304 :2011/03/17(木) 21:43:49.55
>>462 さんのコードで出来ました。ありがとうございます
本のデータベース的なものを作っていて、csv形式で出力して読み書きして管理するソフトを作ってるんですが
Program.csにあるメソッドにForm2.csからアクセスするにはどうすればいいでしょうか?
やりたいことはForm2のテキストボックスに入力された文字列を引数とし、Program.csのRegisterクラスの静的NewRegisterメソッドにデリゲートを間に挟んで使ってcsvファイルに書きこもうとしてるんですが
Form2.cs側で現在のコンテキスト内に存在しませんと出ます・・・
class Register { public static void NewRegister(record); } こんな感じでいいの? Register.NewRegisterでどっからでも呼べる デリゲートなんか要らん
管理できる範囲でなら何したってええんや
だから、まずは、文法を覚えろよ!!!!!!!!!!!!!!!!!!!!!!!!!!
何をしようがどういうやり方を取ろうが好きにすればいいけど、 コンテキスト内に存在しませんってエラーに対処できないレベルだと手を止めたほうがいい。 インスタンスメソッドとスタティックメソッドの区別も、メソッドのスコープも理解してないって事だろ?
144ぇ・・・
はじめのうちはデリゲートなんか忘れていいよ インターフェイスや継承もいらん 自分が理解できる範囲でシンプルに作れ
508 :
デフォルトの名無しさん :2011/03/17(木) 22:00:06.63
Windows Form アプリケーションを作成しています。 その中で、csvテキストファイルを書き出す処理までは書くことができたのですが、 「CSV出力」ボタンをユーザが押したときに、 よく見かける 「開く、保存、キャンセル」 をユーザが選択できるダイアログボックスを出したいと思っているのですが、 出し方が分かりません。 ご教示ください。
自分でFormかWindow使って書かないとありません。
出力ボタンなのに開くボタンがあんの??
素敵じゃない。
>>508 まず、どういう風に利用するか考える
var dialog = new MyConfirmDialog();
var result = dialog.ShowDialog();
if (result == MyConfirmDialogResult.Open) {
//開く
} else if (result == …
たとえばこんな感じに利用できたら素敵だよね。じゃあ実現方法を考えてみよう。
クラスとインスタンスが分かってるならできるはず。
起動前に SetApartmentState() で STA に設定されたスレッドでは、 暗黙のうちに CoInitialize() が実行されると考えてよいのでしょうか。 スレッドをSTAにすると言えば、CoInitialize() なり OleInitialize() を 実行することしか意味しないと思うのですが。
なんだってええんや それが青春や
>>502 >>505 >>507 デリゲートなしでできました。ありがとうございます
登録番号的なのを、実装しようと思うんですがプログラムを終了しても値が保存されるようにするには
どのような方法がありますか?終了時にファイルに書き出して起動時に読み込むしかないんでしょうか?
516 :
144 :2011/03/17(木) 22:20:19.96
お前らどうでもいいことにはよく噛み付くのなw
お前らバカの代わりにおれが初心者にわかりやすく解説してやる マンションを思い浮かべてください 201号室にはAさんが、202号室にはBさんが住んでいます Aさんは会社から帰宅しのんびりテレビを見ていました するとどうでしょう!リモコン操作もしていないのに いきなりチャンネルが変えられたのです! 最初はテレビが壊れたのかと思っていましたが 原因はすぐにわかりました。 後ろを振り返ると、Bさんが壁に穴を開け あなたのテレビを勝手に覗いているのです! しかも、あなたが持っているテレビのリモコンと全く同じものを! Aさんは憤慨しました。人のうちのテレビを勝手に弄り 壁に穴まで開けて、プライバシーの侵害だ。と Bさんは言いました 「グローバルのほうがよくね?」
俺だったら自動採番にしてSQLに突っ込むは
誰だよこのアホ召喚した奴
>>515 CSVの中に一緒に書き出しちゃあマズイのかい?
余程テレビがすきなんだな
敷居が低いのも考え物だわ。
523 :
デフォルトの名無しさん :2011/03/17(木) 22:27:16.32
一人でソフト作ったら、マンションじゃなくて部屋が何室もある大豪邸なんだから 家主が好き勝手にやっても問題ないぜw
524 :
144 :2011/03/17(木) 22:27:53.03
おちんちんシュッシュしちゃうぞコラw
それでは解決法を紹介します 壁の穴を塞いで新しくテレビを買い、Bさんが要求してきたらネットを介して 今現在、どのチャンネルを見ているかの情報を送ります Bさんはその情報は放棄してもいいし、弄っても構いません Bさんは多少不便になりましたが、直接テレビを操作するのと同じように 情報を収集することができます。 また、AさんもBさんの要求に対して情報を送る手間がありますが 勝手にチャンネルを変えられることもなく、覗かれる心配も無くなりました めでたしめでたし
526 :
144 :2011/03/17(木) 22:30:39.28
まぁ本音はというと壁の穴なんてどうでもいいからまんまんの穴に突っ込みたいんですけどねw
ASP.NETでPDFを印刷する方法を探しています。 開発環境はvisual studio 2003 C#です。 よろしくお願いします。
>>523 規模が大きくなるにつれ収拾がつかなくなり
混乱することになるでしょうね
低レベルなアプリならいいでしょうけど
基本的にはデータを操作するのは1つのクラスで
他のクラスがそのデータをほしいならコピーを渡せばいいだけ
どのクラスでも直接いじれるようにするなんてバカげてますね
なんか俺の偽物が出回っているな
Windowsサービスを作成しているのですが、 コマンドプロンプトからinstallutil [サービス名].exeでインストールした後 開始しようとすると、Program.csでエラーが発生します。 ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[]{new [サービス名]()};←ここで ServiceBase.Run(ServicesToRun); TypeInitializeExceptionが出るんですが、具体的に何が原因と考えられますか? クラスの初期化に失敗している、という事だと思うんですが、今までこんなエラーが 出た事は無かったので……。
おい おい
532 :
デフォルトの名無しさん :2011/03/17(木) 22:37:13.16
このスレしっくりこないんです!!
>>527 サーバーサイドからそんなことできるわけないじゃん
クライアントを配るしかないよ
534 :
こごろう :2011/03/17(木) 22:37:50.26
>>512 さん
ありがとうございます。
MyConfirmDialog
というクラスがないのですが、特別な設定が必要なのでしょうか。
検索して探しましたが、見つかりませんでした。
すみませんが、よろしくお願いします。
144 ◆ICMfxa8ww. ってどうでもいい雑談にしか絡まないよね。
低脳だからな
PDFをembedで埋め込んでjavascriptから印刷させるとか?
540 :
539 :2011/03/17(木) 22:43:20.83
すまん見間違い 無視して
>>520 csvファイルに書き出して、例えば登録番号100まで本を登録しプログラムを終了し
次起動して101番目から登録し始めるという方法を思いつきません・・・
542 :
デフォルトの名無しさん :2011/03/17(木) 23:00:05.51
ほね」。
>>541 登録データをListに入れといて、Count+1を次の登録番号にすればいい
削除したときは全体に登録番号ふりなおし
DB使ってもいいんだぜ
つか採番が必要なら使った方がよかろうよ
>>545 よく意味がわからないので簡単そうなxmlシリアライザを使ってみようと思います
ま、いいんじゃない Listすら分からないとか危険な領域だとは思うけど
本当に分かってる奴なんてこのスレにはいない
552 :
530 :2011/03/18(金) 00:04:21.19
すみませんtypeinitializationexceptionでした
TypeInitializationってstaticコンストラクタでスローされるやつだろ てか、肝心の例外の中身を出さずにどうしろと
俺は初心者だったが、ここのスレで教わって デリゲートとMVVMを2日で習得したけどな 初心者でもやる気があればこれぐらいできる 昔のようにネットもない時代と比べたら全然マシ
C#なんて1日あれば十分 このスレの奴らなんて所詮は口だけの雑魚だから実際にはC#すらできない奴ばっか
お前は習得したつもりになってるだけだろw
早く上達したかったら質問しまくること 周りにプログラマがいるならそいつに聞きまくれ いないならここやネットで質問しまくれ 調べる時間がとにかく勿体ない そんな暇があったら質問しまくれ これが上達への近道 迷惑かけちゃいけないなんて思っている奴はこの時代に生きていけないぞ
そんな文章書く暇あるくらいなら質問しとけよ
別に「馴れ合うな」なんて説教するつもりもねえけど、 どうせ馴れ合いたいならそれなりのもっと人がいる板でやった方が楽しいと思うよ。 こんなところで無理してキャラ演じて何か楽しいか?
>調べる時間がとにかく勿体ない 馬鹿みたいに延々と雑談してる奴が、時間が勿体ないって笑えないな。
質問しまくるならこのスレだけにしておけよ 他のスレやリアルの知人に迷惑を掛けるな
>>556 これだからド低脳は…
俺は高脳なんだからC#どころかRubyやLINQまで完全に理解なんだよ
理解した結果日本語を失ってしまったということですね
本当に高脳な人間はほね語話すんだよ
144はあほね」。
>>565 このキチガイずっとこのスレにいるけど
何が目的なんだ?
リストラされた腹いせのつもりか?
お前毎回オウム返しと下ネタしか言えないんだな 知的障害者か?
最近いろんなスレでこういう病的な奴が湧いているよな もう何年も2ちゃんでしか会話してない感じなんだろうな どいつも反応が単調で思考停止してる
釣れるね〜
572 :
144 :2011/03/18(金) 02:24:53.50
ちんぽ
573 :
304 :2011/03/18(金) 02:25:58.74
xmlシリアラザ使うことで、データ値を保存することができるようになりましたが 00001のような番号をC#内で保持するにはどうすればいいでしょうか?
醜態を晒すのか釣るのかどっちかにしろよw
最近いろんなスレでこういう病的な奴が湧いているよな もう何年も2ちゃんでしか会話してない感じなんだろうな どいつも反応が単調で思考停止してる
>◆ICMfxa8ww. 語弊がどうこう言ってたのに煽りがショボイ
「知的障害か?」「思考停止」「自演乙」「単調だな」 ・・・
・・・
579 :
304 :2011/03/18(金) 02:44:06.17
自己解決しました。すいません
既成事実
581 :
304 :2011/03/18(金) 06:51:16.30
xmlシリアライザを使って、プログラムを終了しても値を保存しようとしているんですが 数値を変更しても保存しても初期値のままなんです・・・ どうにか変更された数値を保存する方法はないんでしょうか?
それは君が保存してないだけだよ プログラムは君の書いた通りに動いているんだからね
ローカル変数とか保存しようとしたたら超ウケる
>>573 とかちょっと考えたらわかりそうなものだけど
もうちょっと考えてみよう
いいからソースだせよ しょうもないミスだろ
587 :
304 :2011/03/18(金) 17:48:52.23
ソース出したらパクられてしまうので・・・
どんなご立派なソースだよw
変なプライドが一番気持ち悪い
自意識過剰過ぎる
591 :
デフォルトの名無しさん :2011/03/18(金) 18:01:59.79
多分そのくらいのソースだと後出しにならないように情報だせば だれか書いてくれるくらいのレベルだよ そんなたいそうなものじゃない というかすでにあれこれコード書いてるので晒したくないってことなのかもしれないけど
ま、いいじゃないか 雲を掴みながらお勉強 仙人みたいだね 何年かかるか知らんけど
答えられないなら書き込まなくていいです。ウザイだけですから。
>>587 マトモに動かないソースを誰がパクるんだよ
using System.Diagnostics; とかのusingの部分をファイルごとに書かないで別のところにまとめておけないんでしょうか 毎回追加するのがつらいです
プロジェクトテンプレート、項目テンプレートでggr
#include
144=304か、酷いなぁ
しっくりこないんです!
結局質問の答えをもらえてないのが笑える
601 :
304 :2011/03/18(金) 20:08:41.55
>>584 すいません、それは自分で解決しました
ソースを公開するのはProgram.csとForm1.csとForm2.csだけでいいんでしょうか?
あと
>>587 は自分じゃないです
602 :
デフォルトの名無しさん :2011/03/18(金) 20:14:18.67
>>601 >ソースを公開するのはProgram.csとForm1.csとForm2.csだけでいいんでしょうか?
うん
ソース公開は
>>1 のソース貼るサイトを利用するといいかも
まあソース公開が面倒ならこういう感じで情報やり取りしたいって書いて
書いてもらうのでもいいかもね
>あと
>>587 は自分じゃないです
成りすましが困る場合はトリップ使うしかないね
トリップ付けました ソース準備するのでちょっと待っててください
みんなで「こんなの絶対おかしいよ」って抗議の電話入れまくればいいと思うよ。
なんでプログラム板ってID表示ないの?
C#にはdefineないの? Program Begin PrintOneLineWithNewLine "This is C#."; End とか書きたいんだけど
テキストエディタとしてでも使っててくれ
Program.csの55行目見て ああ・・・ ってなったわ
なんか凄いな。
解決するだけなら5分だが、他にやることがあるだろうと感じる。
>>608 defineはあるけど条件付きコンパイルのフラグを立てるだけ
そういうアホなことをする奴が出るから制限されるんだよ
Cでもそんなことやったら死刑
わざわざ書いたのかよw
>>616 まあ手探りでやるのもいいが
>>607 のような状態だと
正しい道に導くっていうのも大事かと
CSVなんて久々だぜ・・・
Ruby教えてくだちい。
まずPerlをインストールします
服を脱ぎます
>>615 amazonで調べたんですけど独習C#ってやつですか?
ちょっとおさいふと相談してきます・・・
>>622 買わなくていいだろ
ソース晒せば誰か教えてくれるよ
立ち読みでいいよ
625 :
144 :2011/03/18(金) 21:52:24.54
>>622 スレで質問して聞きまくったほうがいいよ
金もかからないし合理的
本読んでれば3秒で分かることを糞スレで叩かれながら3時間待つのが合理的なのかな
Rubyやれば自然とC#もできるようになるよ
629 :
144 :2011/03/18(金) 21:56:30.39
無駄金使うよりマシ
>>627 本でわかることもあるが人と見せ合うことでより良い方向へ行く場合もある
2chで学習とかwww
本で学習とかwww
まあ読み書きが苦手な子はプログラマには向いてないだろうな
リフレクションを使って見るとわかるけれど、プロパティーはフィールド(変数)とも メソッドとも区別されている。概念として言語レベルでサポートされている。それが 利点の全て。高級言語なのだから。 get_foo, set_fooだと、あるパラメタを取得、設定するメソッドである事をプログラマが 名前で示す単なる慣習に過ぎないけれど、C#ではプロパティという概念によって取得、 設定という行為を特別扱いしている。つまり、get, setメソッドという慣習の事をJAVA言語 は``知らない''けれど、JAVAプログラマは``知って''いた。つまりJAVAプログラマも無意識 にプロパティという概念を持っていたわけ。しかしその概念をJAVAは``知らなかった''。 一方でプロパティという概念をC#は``知っている''。たとえば、あるクラスが持っている プロパティの一覧を取得するなんて事もリフレクションによって可能。プログラマが扱って いる概念を言語がサポートしているのは、できる事が増えるわけじゃないけど、高級言語では 素直に喜ぶべき事。それだけ構造性が増すのだから。 まとめると、JAVAでも同じ事を``プログラマが''やっていたんだから、``言語が''同じ事を やってくれるのを素直に喜べば良い。新しい事ができるわけではないから、使い方はJAVA と同様で全然良い。ぶっちゃけ、get_foo, set_booとタイプミスしなくて済む機能くらいの 認識でも良い。
>>627 バカだなーここで質問するのは保険だよ
同時に自分でも調べるわけよ
その答え合わせ的なものと思ったらいい
わんくま同盟ってプログラミング界の権威なんですか?
あんな落ちやすいサーバーが権威…?
どんな権威があるんだよw
玉石混淆
NyaRuRuさんや恵比寿さんが天才的だと聞きました
そういえば最近わんくまの掲示板でいつ行っても繋がらないなw MSの飼い犬みたいな人が多そうだから当然MS製品なんだろうけど、 サーバーのことよく知らんがいまだにMSのサーバーって品質悪いのかな。
アホか
MVPになれたのってわんくまのおかげじゃね?ってくらい低レベルなやつがいて笑える
>>607 とそれほど違わないようなレベルの奴はいたな
誰かコテ付けて2ch発のMVPを目指してみろよ
647 :
デフォルトの名無しさん :2011/03/18(金) 23:59:57.05
何をやればMVP取れるの?
varって赤波線出るときと出ないときがあるんですが、何がいけないんですか?
宣言と同時に初期化されていないか、右辺から型が推論できないと駄目
そもそもvarでエラーが出る原因が分からないうちは根本的にvar使うべきじゃない
651 :
デフォルトの名無しさん :2011/03/19(土) 00:50:49.75
>>648 気になるときにマウスカーソル乗せるとある程度はわかるよ
static public class sample() のstaticを消したら var cls = new sample(); で波線消えました クラスの中でクラスを書く理由が内側のクラスを外に書くのと同じ意味になると思ってつけたんですが、なぜvarの時だけ赤波線になったんですか?
varとかそういう次元ですらなかったでござる
質問するにしても最低限のことを知らないと意思疎通ができない
だってstaticをつけて初期化するとそこを通った時一度だけ実行されるから for(int a = 0; a<10; a++) { static int b = 0; b=a+b; } とするとstatic int b = 0;は一度しか実行されないと書いてあるので、 class main() { var cls = new sample(); static class sample() { } } と書いたんです何か変ですか?
>>652 staticなクラスはnew出来ないよ。このエラーにvarは関係ない。
静的クラスとインスタンスを理解しよう。
納得しましたありがとう!
658 :
デフォルトの名無しさん :2011/03/19(土) 01:26:58.19
本当に判ったんだろうか?
staticはすでに実態があるのでnewしなくていい
C# 2010で拡張機能の「Productivity Power Tools」入れました。 会社は開発マシンネット禁止なのでネット専用マシンからダウンロードした奴をコピーしてインストールしました。 するとフォームに貼り付けたコントロールの名前を変更するとほぼ確実に「再起動します」とVS2010が再起動するようになりました。 かなり最悪です。 拡張機能で「Productivity Power Tools」を無効にしたら問題ないので「Productivity Power Tools」が原因のようです。 しかしネットで探してもそんな事例は見つかりません。 同じ現象の人いますか? 仕方ないので一度VS2010をアンインストールして再インストールしましたが同じでした。 SP1があったのでこれも入れてみましたが同じでした。
テレビに例えると、家族で見たい番組が違うので 人数分だけテレビがあるといい こういう場合はnewして複数作る テレビが故障して直すときのドライバーは1個でいいので staticなクラスやメソッドにすればいい
>>661 そういうたとえは既に分かってる人には納得してくれるけど、
まだ知らない人には混乱を増すだけだと思う。
じゃあ別の例えで 静的でないクラスは FileInfoのようにある特定のディレクトリ情報を渡して その情報を元に各メソッドを何度も使用したいときに使う あるFileInfoにはアプリのディレクトリ あるFileInfoには保存先のディレクトリ 最初にパスを渡して初期化してやれば ファイル関連の操作時に毎回パスを渡す必要がない 一方静的クラスのDirectoryなどは 毎回ディレクトリパスを渡してやらないと処理してくれない 毎回違うパスを入力するならこっちのほうがいい
例えが下手な人ほど例え話をしたがる。 大抵、本人は下手だということを自覚してない。
おかしな例えだな。インスタンスとクラスの関係が理解できてないんじゃね
668 :
デフォルトの名無しさん :2011/03/19(土) 02:21:59.43
その人がどれくらいのレベルなのかさえ把握できていないと説明するのは難しいな インスタンスの概念さえ訳って居るなら簡単なことなのにね
>>648 は上手くわんくまや低レベルMVPから話題をそらしたわけだ
静的クラスはOOPからハブられててちょっと可愛そう
クラスは設計図で〜って例えがよくあるけど 言っていること自体はよくわかるが 実際プログラミングにおいてどう使うんだってのが やっぱりわからない
デリゲートもある作業を委譲すると説明しているけど だからどうなの?って思う メソッドで書けばいいだけじゃないの? クラスを作ればいいだけじゃないの? 実用性のない単純なソースを見せられても 使いたいとは思わない(三角関数求めるとか) 上級者が実際に使っている場面を説明してほしい
673 :
デフォルトの名無しさん :2011/03/19(土) 02:52:18.59
>>671 機能わけみたいなもんだよ
ICチップとかで考えればいい
メソッドがICのピンだな
それぞれ意味があって入力すれば当然出力もある
値を保持する物もあるし
自演も疲れた 誰か説明して・・・
単純なソースで説明しているのは 元々概念を知っている人が、どうやって記述するのか忘れたときに 見るにはいいかもしれないが、初心者には利点がわからない デリゲートの説明で一番わかりやすかったのが、DelegateCommandだったな 確かにこれがあれば簡潔なコードが書けるようになる
676 :
デフォルトの名無しさん :2011/03/19(土) 02:56:43.59
クラスってちゃんと作ると再利用性が抜群に高い 関数型言語に対するアドバンテージはそこだと思うんだけどね
677 :
デフォルトの名無しさん :2011/03/19(土) 02:57:55.85
>>672 コールバックって使ったことない?
コールバックが無いとポーリングしないといけないのですげー無駄なんだけど
よくあるデリゲートの例で 1つのクラスでデリゲート宣言からデリゲートのインスタンス化を やっているもの こんな例え何の意味があるの? 多くの初心者がメソッド直接呼び出せばいいだけだろって ツッコミ入れたはず
というかさ WinFormのイベントは全部デリゲートじゃなかったっけ? イベントがこないときも「イベント来てませんかー?」ってチェックするループ書くわけ? イベントが来たら所定のメソッド呼んでもらえばいいだけでしょ? そういう意味では特定のイベントの処理を移譲してるわけだよね
どの教材で勉強するかも才能のうちだよな
コールバックって何かぐぐってみたら 普段やっていることだった form2からform1のメソッドを呼び出しもらうときとか
682 :
デフォルトの名無しさん :2011/03/19(土) 03:07:01.58
クラスの説明で犬猫出されても困るんだよなぁ とっかかりだから忘れているのか、あそこら辺を改良しようなんて声は聞いたこともない
まあプログラミングは適正あるし。ダメな人にはどう説明してもダメだろう
すいません
>>615 のソースをそのまま使うとプログラムが変わってしまいます
form1にbutton1を作ってないし、どうすればいいでしょうか?
コールバックは実際どういう場面で使うの? 道具を使い分けるという意味じゃ多態性と同じじゃないの?
686 :
デフォルトの名無しさん :2011/03/19(土) 03:37:36.07
>>685 ポーリングしたくない場合とか
たとえば非同期ダウンロードなんかも分かりやすい例かな
本気で2chで勉強してるみたいだなw しばらくこのスレはアレな質問で埋まるのか・・・ みんなガンバ
688 :
デフォルトの名無しさん :2011/03/19(土) 03:46:16.13
あとGUIとは別のスレッドを使う場合は必要になるよね
static void Main(string[] args) { delCallback2 dc2 = Method3; Console.WriteLine(dc2((x, y) => x + y)); Console.WriteLine(dc2((x, y) => x - y)); Console.WriteLine(dc2((x, y) => x * y)); Console.WriteLine(dc2((x, y) => x / y)); } static int Method3(del2 callback) { return callback(Method4(),Method5()); } こんなことしなくてもさ var x=5;var y=5; Console.WriteLine( x + y); Console.WriteLine( x - y); Console.WriteLine( x * y); Console.WriteLine( x / y); これでいいじゃん^^
デリゲートにしても継承にしてもさ より簡潔なコードを書くために開発されたわけでしょ? これ以上線形化できないようなコードを例に出してほしいわ もっと短くかけるのになぜわざわざ長いコードを書かないといけないのかと この時点で例として失敗だよね
酷す・・・
692 :
デフォルトの名無しさん :2011/03/19(土) 03:56:59.76
暇つぶしとはいえ毎回同じ手口で釣られるのにも飽きてきたわ
>>690 そろそろ次のネタ考えろよ
デリゲートを使う利点、目的 こういうのを明確にしてほしいね ただデリゲートの説明をして、読んだ人が納得するとでも 思っているのだろうか? 初心者が知りたいのは、なぜそれが必要なのか、なのにさ 勉強でもそうじゃない?なぜ勉強するのかをわからない人は 学習効率は落ちる 日本の教育ってそういうところが欠けてるよね
本気でないことを祈るw
釣りとかじゃなくてさ もっと簡単に簡潔に記述できる方法があるのに なぜデリゲートを使うのかって話よ デリゲートじゃなければできないこと デリゲートだから簡潔に書ける そういうのコードを例に挙げろといいたい
つMSDN
698 :
デフォルトの名無しさん :2011/03/19(土) 04:07:12.09
コードひたすら書け そのうちデリゲートを書いた方がいい場面がでてくるが 使い方がわかってないので悩む そのときこのスレでこういう場合どうすればいいですか〜?と聞け しっくりこないです!!とかほね。は入らん
ググレカスとしか言えんわ
ほね」。な
ゲーム作る時とかデリゲートのありがたみが実感できるよ
わんくま同盟
人の説明にはつっかかるくせに お前らは何一つ説明できないのな がっかりだわ
説明でてるじゃん WinFormのイベントなんかもデリゲートだって その辺でわからないのならやめたほうがいいよ
707 :
144 :2011/03/19(土) 04:22:03.33
無能しかいないからな
空気を読んで説明してあげなかっただけなんですが がっかりです
709 :
デフォルトの名無しさん :2011/03/19(土) 04:25:20.42
しっくりこないです!!
>>706 何でお前にやめるかどうか決められないといけないわけ?
アイちゃんこと
>>144 を育てるスレになっちゃったな
仕事もせず2chに入り浸り、荒らしに執念を燃やす例外君が不憫だ
邪魔だから
で、質問と並行して調べた結果はどうだったのかね?w 調べてないの?w 分からなかったの?wwwwww
〉〉684 無かったら作ればいいんだよ。 そこまで面倒見てられっか。
このスレ雰囲気変わったなー 2,3人キチガイが常駐しているようで質問を妨害される
>>714 お前いつもいるよな
他にすることないの?
635 名前: ◆ICMfxa8ww. [sage] 投稿日:2011/03/18(金) 22:18:45.56
>>627 バカだなーここで質問するのは保険だよ
同時に自分でも調べるわけよ
その答え合わせ的なものと思ったらいい
NyaRuRu乙
>>721 語彙が少なすぎて、自分の言葉で反論することもできないバカ丸出しww
>>723 語彙が少なすぎて、自分の言葉で反論することもできないバカ丸出しww
727 :
144 :2011/03/19(土) 04:57:28.26
馬鹿ばっか
>>725 だからそんな記事はいらないってことだよ
個人でやってるサイトですら無意味なコード載せているからな
ただの言い訳に過ぎない
>>276 と
>>300 見れば分かる通り、知ったかですぐ調子に乗るタイプだからしゃあない。
お前らだって中高の時分には多少思うところがあるだろう?
eyamane
お前の存在が最も不要だけどなw
>>729 中二病をこじらせちゃった類だね。
玉石混淆の中から必要な物を見つけ、自分で検証して理解するのはとても重要。
石を拾ってきて形が悪いだの文句を言っても何一つ進歩しない。
なんか「俺に必要ない記事はいらね」みたいな… あれだな、インターネットから出てってパソコン通信やってりゃいいんだと思うぞ あそこなら誰もが幼稚な王様でいられる
>>732 そうするしかないことはお前に言われなくてもわかっている
何当たり前のこと言っているの?
サイトの説明が糞なのは事実
それに対して指摘しているんだよ
理解力のない奴だな
記事書いた本人じゃないのかと言いたくなるぐらい言い訳がましいな デリゲートの説明すらできないカスばかりでがっかり
>>734 で、ちゃんと玉は拾ってきたのかい?www
相談室に飛び火w
>>737 と
>>736 はずっとスレに常駐して荒らし続けるのが目的なの?
お前ら毎日いるよな?障害者か?
見えない敵も楽やないで
>>738 で、調べった結果はどうだったんだ?
全部カス見たいな記事で何一つ収穫が得られなかったとでも言うんじゃあるまいな。
収穫の仕方が分からないッ…
すぐに相手を障害者とか知的障害者とか言う奴って もしかしてそれで優位に立てたと思ってんのかね
語弊の少なさを大声で教えてるようなものだな
そういうのはどっちかというと自分の精神衛生を保つためだろん
>>737 >>736 おまえら二人もう何時間もこのスレにいるよな?
一体何しにきてるの?
答える気もなければ質問するわけでもない
頭おかしいんじゃないの?
知的障害者?
一人だったりw
747 :
144 :2011/03/19(土) 05:36:20.84
ちんぽ
>>745 君が「当たり前のこと」
>>734 と言うように
当然、「必要な物を見つけ、自分で検証して理解」している
>>732 筈だと思いたいが
旗色が悪くなると話を逸らして逃げ出す事から察しろ と?
これからは相談室で質問するは ここは精神疾患者しかいなさそうだから
お前のような馬鹿を隔離するためにわざわざ分けているのに、向こうにまで荒らしに行くのか
>>748 幼稚な思考だな
リアルでも無能扱いだろw
自分を否定する人間はクズであってくれないと困るんだな そうじゃないと間接的に自分を否定することになる そして敵対者のクズな部分が見つけることができない時、錯乱するか、レッテル貼りか、あるいは両方が始まる
>>748 相談室に逃げ出しちゃったね。こっちに行けと言われるだけなのにw
>>750 馬鹿はお前だけで十分
一人でオナってろw
>>752 錯乱してレッテル張り始めちゃってるなw
>>752 それお前らきちがいの常套手段じゃんw
初心者煽って楽しんでいるお前らそのものだな
もうレスしないし、このスレも見ないから
あとはキチガイ同士楽しくやってください
お前は「何時間もこのスレにいる」
>>745 のに、何一つ進歩していないな。
この時間で検索して有用な記事を捜し、コーディングして検証していれば馬鹿にされずに済んだのに
自意識過剰なお前が今後レスしないなんて不可能に決まっているだろう?
こんな馬鹿はそうそう居ないから名前隠してもすぐバレるな
スレ見ないのも無理だろなw 何言われてるか気になって仕方ないさそーなタイプ
これほど見事な「もうこねぇよヽ(`Д´)ノウワァァァン」は滅多に見れないな。
「もうレスしないしスレも見ない」 ↓ 本当は気になってしかたがなく、反論したいときは他人の振りして書き込む
まーた無駄にスレ消費しやがってお前らは
傍観者のフリ
助けてドラえも〜ん
神は言っている、ーーLINQはまだ無理とーー
デリゲートは関数を入れる変数 デリゲートは関数を入れる変数
違うよ デリゲートは関数を入れる「型」 クラス、構造体、列挙体、デリゲート と並ぶ言葉
770 :
デフォルトの名無しさん :2011/03/19(土) 12:11:14.68
型は「デリゲート型」でインスタンスは「デリゲート」
つまり
>>768 のが正しい
772 :
660 :2011/03/19(土) 12:16:05.52
>>660 情報ないようなので別の掲示板で質問しますので、こちらは無視して下さい。
もともと
>>660 はスレ違いだろ
2chで聞くにしてもVSのスレで聞け
774 :
デフォルトの名無しさん :2011/03/19(土) 12:31:07.72
>>771 機械翻訳じゃなくて3.5の方を見ればデリゲート型とデリゲートが区別されてる
>>774 原文
>A delegate is a type that defines a method signature.
VS2008
>delegate は、メソッド シグネチャを定義する型であり
デリゲート型という表現がされることは確かにあるが、単にデリゲートというと型。
ECMA-334(C#2.0) 8.2 Types
>Reference types include class types, interface types, delegate types, and array types.
ということで、クラスやインターフェイスも型であることを強調したい場合には
クラス型とかインターフェイス型と呼んでいいの。
なんだこの流れ・・・
最近変なのが湧いてると思ったら春休みかよ
例外さんといい144といいC#は基地外に愛され易いのかな おかげでこのスレの勢いは一位だよw
779 :
デフォルトの名無しさん :2011/03/19(土) 17:12:50.57
今C#を勉強中なんですが、windowsのスリープではなく休止状態をキーボードから復帰させる方法はありませんか? あと、キーボードのユーザーキーにスリープを登録するにはどうすればいいんでしょうか?
781 :
デフォルトの名無しさん :2011/03/19(土) 17:30:07.61
>>780 その辺はBIOSなんかの仕事じゃないかな?
>>780 今C#を勉強中なんですが、あなたの質問はC#と関係なくないですか
仮想MIDIポートを作りたいのですが、C#で作れますか? カーネルドライバーを作る前にユーザーモードドライバーを作れるか必ず検討してくださいと書いてあるんですが
784 :
デフォルトの名無しさん :2011/03/19(土) 18:13:21.78
その辺はC++で作った方がいいんじゃないの? GUIとか書かないのならC/C++もそれほどじゃないでしょ
それ以前に「仮想MIDIポート」の意味するところが分からない。 何それ?
MIDI Yokeみたいなのかな?
仮想MIDIポートの話はスレ違い
ドライバ書くのは厳しい
789 :
144 :2011/03/19(土) 19:34:15.52
スレ違いだろうが聞いておいて答えが得られたら儲けもんだ
791 :
デフォルトの名無しさん :2011/03/19(土) 20:01:03.18
トリップが無いから偽物だろ
本物・偽物関係なく、同じネタでよく飽きないなと
釣れたw
C#による偉大なプロダクトって何がありますか?
795 :
デフォルトの名無しさん :2011/03/19(土) 20:37:43.05
.NET Framework
わんくま同盟
hello, world
C#でエロゲ作れますか?
>>798 どこだったか忘れたけど商用メーカーで使ってたところがある
エロゲ.NET
801 :
デフォルトの名無しさん :2011/03/19(土) 21:33:28.42
昔はFlashエロゲとかもあった
802 :
デフォルトの名無しさん :2011/03/19(土) 21:34:28.45
2DエロゲだとWPFもしくはSLがいいんじゃね?
文字だけのコンソールエロゲとかあったでしょ エロは環境非依存
ヒロインはLabelコントロール
どちらにAnchorしようかしら?! それともDock = DockStyle.Fill? ああんもうInvalidate()
label1.Text = "ひぁ、あ、ふぁ、くうぅ! ……あは、い、くっ、ふあぁ!!";
807 :
デフォルトの名無しさん :2011/03/19(土) 22:00:58.84
>>802 立絵をStyleとControlTemplateで実現するとか胸が熱くなる
オサレなエロゲ作るならWPFっしょ
>>806 テキストは外部データから読み込んでバインドしろよw
ちゃんと文字送りとかも考慮しろよ
ボイスあるのに字幕必要って聴覚障害者かよ
ボイスないんだろ
文字と画像と音声を協調させつつスクリプトをシンプルな形式に維持するのが難しい
ゲ制作板でやれよ
プ板でやれ
gdiplus.dllを同梱しているエロゲなら見たことある。 速度を追求しないかぎりはC++でも便利だもんな。
デリゲートという特殊な型はなんで用意されたの? Method1というメソッドがあって、 呼び出すのはMethod1();なのはいいけど、メソッド自体を指すのはMethod;ではだめだったのか? 実際、メソッド自身を指すのはnew Action(Method);と、型に入れてやる必要がある。 メソッド自身をそのまま扱うのは技術的に無理だったんだろうか?
どんなメソッド名かわからないのに デリゲート無しでどうやってボタンクリックしたときに そのメソッドを呼び出すんだって話
gdiplusは標準じゃないんだったか
Hoge(Method1);みたいにデリゲート使わずメソッドをそのままつっこめないのかなーと思った。 が、書きながら気づいたけどこれだと受け取る側でメソッドのシグネチャが指定できないな。 納得できたような気がする…。
>>817 C#はクラスベースの静的型言語といって、型やそのメンバは完全に静的な構成を持ってて
実行時のオブジェクトとは厳密に区別されるんだよ
.NETの設計の根本なので
822 :
デフォルトの名無しさん :2011/03/20(日) 00:55:34.14
>>817 デリゲートってC/C++の関数ポインタと同等だろ
特殊でもなんでもないじゃん
疑問があるならちゃんとリファレンス読もうよ・・・
オブジェクト指向を勉強してると、オブジェクト自身がインスタンスメソッドを 持ってるという説明がされてることがおおいんだけど C#やC++やJavaのような静的型の言語では実はそれは間違ってて、 インスタンスではなく型が全てのインスタンスメソッドを持ってる。 だからインスタンスメソッドを渡そうと思うと、そのメソッドを持ってるはずのインスタンスと、 型が持ってる実際のメソッドを結びつけてやる必要がある。
もうさ、超初心者の俺をC#プログラマに育てるとしたらほね」。スレでも建てろよ
>>819 確かWindows2000にも対応していたから、そのためなんだろう。
実際省略記法として
>>820 のように書いても通るよ
あくまで省略なので、デリゲートのインスタンス化が不要になるわけではない
理由は
>>824
ラスト2行が残念
一度自分でデリゲートと同等のクラスを作ってみれば分かるよ
最近のデリゲートネタの中では最も高度な質問だなw インスタンスメソッドというのがどういう風に実装されてるのかわかってないと なぜ必要かは理解できないと思う
グローバルが最強のように、最強のポインタをC#でも残しときゃよかったんだよ そしたらデリゲートとかハナモゲラな言葉使わずに関数ポインタで話ついたのに
デメリットの方が大きいだろアホ C++やってろよおっさん
内部動作が知りたければ、定番の「プログラミング Microsoft .NET Framework」読んどくといい。 4年ぶりに改訂されて.NET4対応の第3版が出たよ。
スレッド作ってそこでWebClientを使って画像をダウンロードしてみたのですが Form1が固まってしまいます どうしてですか?
837 :
デフォルトの名無しさん :2011/03/20(日) 02:13:44.91
同期のダウンロードだからじゃないの?
同期のダウンロードですが、別スレッド内でしています
間入ったw
>>837 は
>>835 へ
そういうプログラムの場合は非同期ダウンロードを使う
というかデリゲートネタ投下したやつがまたやってるのか?
840 :
デフォルトの名無しさん :2011/03/20(日) 02:15:23.64
>>835 本当にスレッドつくってやってるの?
new Thread(_ => new WebClient().DownloadString("
http://hoge.jpg ")).Start();
で固まらないと思うけど(このコードを推奨するわけじゃないよ、Taskとかもっといいものを使おう)
844 :
842 :2011/03/20(日) 02:23:44.37
Joinは終了するときに使うものと思ったのですが 違いますか?
>>844 入力補完(IntelliSense)の解説読もう。
「終了するまでブロックします」
ということだよ。
846 :
デフォルトの名無しさん :2011/03/20(日) 02:34:59.77
スレッド立てて待ってるのかよw
847 :
144 :2011/03/20(日) 02:49:03.08
まんまん
848 :
842 :2011/03/20(日) 02:58:31.58
>>845 なんというミス
削除したら無事いけました
ありがとうございます
>>844 関係あるから言ってんだろうが馬鹿が
意味も理解出来ない奴が何で関係無いって言い切れるんだ
851 :
デフォルトの名無しさん :2011/03/20(日) 08:42:58.61
平常運行だな
全然平常運行じゃないだろw
アデランスの中野さんじゃなかった保安院の人は平常運行だろうが!!
全てを包みこむくだスレに異常などという状況は初めから存在しないのだ
低能な質問が増えたってことは 低能ですら始められちゃうC#!ってことで喜ぶべきだろ 低能な回答者ばかりってことは 低能ですら教えられちゃうC#!ってことで喜ぶべきだろ
857 :
デフォルトの名無しさん :2011/03/20(日) 15:24:07.73
レスの意味は分かるし間違ってはいないけど、レスした意味は分からない
大体
>>856 と同じ
ここで答えてる人ってどうやってC#を学んだんですか? 書籍ですか?ネットだけで学んだんですか? 詳しく教えてください
ベーマガ
860 :
デフォルトの名無しさん :2011/03/21(月) 06:42:54.36
VB.NET他8言語を知ってる状態だったので自然に使えた
ネットだけで十分学べるけど 書籍ならVisual StudioとC#使って簡単なWinFormsのアプリ作るチュートリアル的な本を読むのもいい。
プログラミング自体初心者なら 分厚い本じゃなくて薄い本を何度も読んだ方がいいと思う 一番助かったのは本屋で売られているような書籍でもなく C#に同梱されていた「はじめてのC#」ってチュートリアル本だった ネットで十分と言っている人はパソコンの知識もさることながら 他言語でプログラミングの基礎を学んだ人 やっぱり最初は手元に本があったほうがいいよ
C#から入る人ってあまりいないと思う 他の言語が使える人向けの言語で、プログラミングの基本的な考え方から 丁寧に解説してるような本やサイトは少ない印象 Javaからやれば
Javaは言語はシンプルだけど周辺のライブラリやフレームワークが複雑怪奇 Javaから入ってちょっとSwingでも齧って糞さを体感してからC#に入ると デリゲートって何のためにあるの?みたいな疑問は絶対に出ないw
public int IntVal { get { return IntVal; } } int intVal; こういうミスをコンパイル時に検知させるオプションって無い?
無い なるべく自動実装プロパティを使うとかフィールドにはプレフィックスを付けるとか
867 :
デフォルトの名無しさん :2011/03/21(月) 11:45:50.70
TFSとコード分析組み合わせたらコミット不可に出来ない? 使ったことないから知らんけど
無いか・・・ありがとう。 一瞬パニくった。nunitやらハングアップするんだもんな。
静的メソッド・静的変数(クラス変数)について質問です ある解説サイトを読んで静的変数(クラス変数)はインスタンスを一つしか持つことができないと書いてありました またメソッドに大してstaticを付けると静的メソッドにできると書いてありました ただしインスタンス変数にはアクセスできなくなると書いてありました 下で試したところ普通にアクセスできてるみたいでした class MainClass { static void Main(string[] args) { var sc = new SubClass(); sc.data = "文字列"; SubClass.Sub(sc.data); Console.ReadKey(); } } class SubClass { public string data; public static void Sub(string str) { Console.WriteLine(str); } } どのようなときにアクセスできなくなるんですか?教えてください
このタイプの勘違いは初めて見たわ class SubClass { public string data; public static void Sub() { Console.WriteLine(data); // これができないってこと } }
class MainClass { string data; //インスタンスフィールド static void Main(string[] args) { data = "This is instance field"; //エラー } } こういうことじゃないかな。インスタンスフィールドはnewしないと実体が無いのでアクセス出来ない。
あの
やっぱりいいです
気になる
877 :
デフォルトの名無しさん :2011/03/23(水) 14:30:26.79
int型の123を文字列の"+123"に変換するにはどうしたら良いでしょうか
そのページに書いてある。
880 :
デフォルトの名無しさん :2011/03/23(水) 15:03:09.74
符号とくに+については書いてないような・・ 下の方の質問はされてるようだが
881 :
877 :2011/03/23(水) 15:07:09.12
セクション区切り記号というやつを使えば良いのかな ありがとうございました
LINQいいよね〜
Oracleでは常識であらゆる分野で普通に使われる科学の基本手続きである統計的結果が働かないからLINQなんか使うべきではないよ
1. LINQはかわいいな〜! 2. LINQはかわいいな〜!! 3. LINQはかわいいな〜!!!
海外サーバーを経由してネットする方法を詳細に記している「書籍」知りませんか? 別に悪いことするために聞いているのではありませんがw wikileaksのハッカーが、それをしていると聞いて興味を持ちまして
C#ぜんぜん関係ねーだろがクソバカ
LINQいいよね〜
linq厨が沸きすぎだろ 大量のデータなんかはDBサーバからソートして取ってくる方が早いときもあるし 全てにおいて万能に早いわけじゃない だからわきまえろ
1. LINQはかわいいな〜! 2. LINQはかわいいな〜!! 3. LINQはかわいいな〜!!!
失礼します。 時間のかかる処理を行う為、処理をキャンセルさせるボタン以外は押せないようにしたいのですが、楽な方法ってありますでしょうか? 理想は this.Enabled = false; // 全てを操作不能にする BottonCancel.Enabled = true; // キャンセルボタンだけは使えるようにする で、動くような感じです。 個別にEnabledをfalseにするしか無いのでしょうか? よろしくお願いします。
892 :
デフォルトの名無しさん :2011/03/25(金) 11:31:36.88
>>891 キャンセル以外のボタンをグループボックスやパネルに乗っけてそれのEnableを弄るでいけたと思った
でも、文字の色は黒いままだった気がする
つLINQ
そろそろMVVMが流行るんじゃないか?!
しょぼい質問おkですか?
どうぞ
複数のWebサイトに接続するのにParallel.ForEachでDownloadStringAsync してるんですがxmlに書き出したいので全ての処理が終わったか知る方法って あるでしょうか?
デリゲートを使う
899 :
891 :2011/03/25(金) 13:17:58.20
出来るだけグループボックスでまとめて、小さいのを個別でやってくしか無いですよね。 ありがとうございました。
>>897 Parallel.ForEach使うんだったら同期ダウンロードしろ
一つだけダウンロード用のスレッド作って、その中でParallel.ForEachで同期ダウンロードさせれば
Parallel.ForEachから抜けた時点で全て完了してる
非同期ダウンロードだったらParallelいらん
>>900 教えてもらった方法で出来ました!ありがとうです
日本の危機的状況に、よくC#なんかやってられるな ニュースが気になってプログラミングできねえ
>>902 近くならしょうがないけど俺たちに出来ることはないんだよ
そこは割り切れ
仕事進めて金回す意味でも
>>889 LINQ to SQLなんて使うわけないだろ
>>901 ちゃんとロックするかSystem.Collections.Concurrent系のコレクション使うかしてるのか?
ダウンロードが完了したデータを複数のスレッドで共有されるList<T>にロックなしで突っ込んだりしたら
運が悪いと壊れるぞ
>>905 おっしゃるとおり正規表現で抜き出して結果を普通のList<T>に入れてましたw
2,3個の軽いループで動いてたから大丈夫だと思ってました
System.Collections.Concurrentについて勉強してきます!
foreach (var result in sites.AsParallel().Select(site => 同期的にダウンロードして結果を返す(site))) { //resultを書き出すとかコレクションに入れるとか(ロック不要) } PLINQ使うならこの方がいいと思うけど PLINQはCPUを有効活用するためのものなのでダウンロードに使うのはそもそも不適切 ダウンロードするのに実行環境のコア数に合わせてスレッド数変えるとかおかしいだろ
このLINQいやだわ〜
プログラミング初心者なんですが、 VC#2010Expressで使える、ツマミやスライダーのようなGUIは提供されてないのでしょうか? 名称とかよく分からないのでググってもHitしません。 できればフリーが嬉しいのですが、そんなのあったら教えてください。
どんなものがほしいんだよ
トラックバーがあるよ まずはツールボックスの中身全部確認しようね
ああ!「全てのWindowsフォーム」の中にしか含まれないツールもあったのですね! 下のカテゴリ分けされた中しか見てませんでした。 トラックバーが使えそうですね。ありがとうございました。
913 :
デフォルトの名無しさん :2011/03/25(金) 20:44:11.39
>>904 MCTS:70-561に1問も出なかったLINQ to SQLさんの悪口はやめろ
LINQ to SQLはLINQの宣伝のために作られたようなもんだからな 生まれる前に即死することが決まっていた技術
例の統計的結果さんがLINQの主用途がSQLみたいに言うんだもんw
LINQ to ObjectとLINQ to XMLと LINQ to SQLとLINQ to Entitiesとその他色々 を全部一緒にしてLINQは統計的結果云々って言い始めちゃうような人の相手するだけ時間の無駄
Process.Start()がシンボリックリンクの実行ファイルを実行出来ないんだけど、 なんでかな? コマンドプロンプトからはちゃんと実行出来る。
エラーとか出てるん?
919 :
917 :2011/03/25(金) 23:17:59.10
System.ComponentModel.Win32Exception はハンドルされませんでした。 Message=指定されたパスが見つかりません。 Source=System ErrorCode=-2147467259 NativeErrorCode=3 シンボリックリンクじゃなくて、対象のexeファイルをコピーした時は実行出来る。
パスって絶対パスか?
921 :
917 :2011/03/25(金) 23:23:36.01
絶対パスじゃなくて、exeファイルの名前だけ。 シンボリックリンクの場所はPATHが通っていて、 Pythonのスクリプトやバッチファイルからは、問題なく実行出来てる。
922 :
917 :2011/03/25(金) 23:32:23.63
絶対パスにしてみたら、シンボリックリンクでも実行出来るなあ。 exeファイルをコピーした場合は、ファイル名だけで実行出来る。 変なの。
ヒント: ShellExecute, カレントフォルダ
924 :
917 :2011/03/26(土) 00:16:50.61
>>923 UseShellExecuteはデフォルトでtrueな筈だし、
シンボリックリンクじゃなければ、パスが通ってれば実行出来てる。
カレントフォルダにシンボリックリンク作ってみたけど、やっぱり実行出来ない。
カレントフォルダにexeファイルをコピーすると実行出来る。
シンボリックリンクの実行になんかセキュリティでもかかってるのかな。
エクスプローラーからクリックしても実行出来ないなあ。 前からこうだったっかな・・・ .netとは関係なさそうね。諦める。
.Net内部のメソッドの内側の実装を知りたいんですが、どこで見えますか? Reflectorとか使うんでしょうか
デバッガでステップ実行して追っかけたり、.NET Mass Downloaderで一括ダウンロードしたり Webで見れるようにしてくれてるとこがあるから、そこで見てもいい。
929 :
デフォルトの名無しさん :2011/03/26(土) 14:20:54.34
超初心者 スライドショーを作ってみてC#の面白さに感動したのですが 次はどんなの作ればいいでしょうか? 参考になるような書籍も買っています(これからはじめるVisualC#2010) ーーーーーーーーーーーーーーーーーーーーーーーー いや〜「自分で考えろksとか言われそうで怖いなぁ(´・ω・`)」
LINQいいよね〜
>>929 ゲームでも、ツールでも、自分で作りたいもの作りなよ
何かないの?
何にもないならヒットアンドブローで、COM側も人間の数字当てるような奴ね
またHit&Blowか
>>929 全ドライブをスキャンしてアレな画像や動画を分類し好みを学習して毎日アレな時にサジェストしてくるツール
Hit&Blow
HIT&BIT
if (Hit && Blow) { throw new Exception(); }
演算子のオーバーロードについて勉強しているんですが どのように使うのか、何のためにあるのかわかりません いったいどのように使うと便利なんですか?
5-4=9 にして友人を驚かせられる
943 :
デフォルトの名無しさん :2011/03/27(日) 07:38:19.18
ぶっちゃけ役立たずです
波紋使う時に便利
演算子のオーバーロードについて勉強するとしてら 例えばどのように使うのか、何のためにあるのかわかりません いったいどのように使うと便利なんですほね」。教えて
946 :
デフォルトの名無しさん :2011/03/27(日) 08:39:29.15
ほね」。 の方が使えることが判明ほね」。
複数のクラスから参照したい変数List<class>があって今はシングルトンとういう方法で そこを参照してるんですが色々見てたらシングルトンは駄目みたいな事が書いてあって でもList<T>なんでstaticにも出来なくて困ってます。なにかよい方法ってありますか?
>>947 何をしたいのかいまひとつ分からないけど
staticクラスのメンバーにList<class>があればいいんじゃない。
>>948 そのclassが
class item
{
string name;
int kakaku;
}
みたいな入れ物でstaticに入れる方法がわからないのです
<T_T>
staticって書けよ
>>947 >シングルトンは駄目
なぜ?
>List<T>なんでstaticにも出来なくて
なぜ?
日本語でOK
954 :
デフォルトの名無しさん :2011/03/27(日) 12:21:38.11
>>952 Tにstaticクラスぶち込んでいるとしか・・・
List<T_T>
>>952 説明不足ですみません
シングルトンは静的クラスがあるからそれを使えみたいな事がどこかに書いてあったので
静的クラスでできないかなと模索してました
でも
>>949 みたいなクラスをList<item> items = new List<item>();
として使ってるので静的クラスのメンバに出来なくて困ってました
>>958 ありがとうございます。
そこを読みながら色々やってみたんですがstaticでList<T>をメンバにしても
Tの中身がインスタンス変数(class)なので.AddするときNewが必要で
とりあえず他の部分の実装もしたいのでシングルトンか
>>957 さんの方法でやってみます
と思ったんだけど無理に参照するんじゃなくて利用する側からイベントを通知して List<T>を持たせたクラスに処理させればいいんじゃないかって気もしてきました 難しいです・・・
よし、もうシングルトンとか忘れようっ!
初心者はイベント・デリゲート・継承は忘れろ
イベントは初心者も有効に活用した方がいいと思うけどね。 まあC#の場合はVBと違ってデリゲートをある程度理解しないとイベントも使いにくいからあれなんだけど
出来合いのイベントを使うのはいいけど定義するのはObserver理解してから…
>>963 イベントでC#とVBで違いあるか?
仕事柄どっちも使ってるけどどういうこと
Handlesだろ
デリゲートがあれば関数を配列のように使えるぞ! いちいちfunc_1()、func_2(),func_3()・・・ みたいにいっぱい作りたくないだろう?
他にも違いがあるよ。 VBの場合は(VB6からのマイグレーション向けの機能で積極的に使われることは想定されてないと思うが) クラスにイベントを定義する時に、デリゲートの代わりにイベントハンドラの引数を 指定することが出来る。 だからデリゲートがわかってなくてもとりあえずイベントを定義して使える。
なんで?
.NETのイベントはobserverパターンそのものだから observerわかってればイベントとデリゲートの違いがわからないなんてありえない
observerっての調べて見たけど依存度が高くて読みにくい
プロパティの中に、PropatyChanged();を入れるのが なんかダサくてやだ
NotifyPropertyChangedの実装は面倒すぎて泣ける
自動生成しろ
プロパティにPropertyChangedイベントが最初からついてたらいいんだよな 何も実装しなくても変化したときにこのメソッドが呼び出されるとか public Num.Changed() { }
この辺はBindable属性で通知サポートするFlexがうらやましい
イベントとか自前で実装しなくても form2のプロパティが変化したときもform1.cs上の このメソッドが呼び出されるとか private void form2.PropA.Changed(...) { }
DependencyPropertyみたいな自動生成はできないのだろうか
T4で十分
自動生成で間に合わないような複雑なプロパティなら
どうせ
>>979 みたいな機能があったとしても役には立たんよ
コトロールのイベントハンドラが自動生成できるんだから プロパティも同じようにできると思うんだけどな
>>981 確かにそうだけど、そんな複雑なものを作ることケースは少ない
あまり使ったことないがデータバインディングの話? なんで唐突にそんな話になったんだろう。
イベント->Observer->INotifyPropertyChanged 別に流れとしては自然
文字列のエンコードを変更したいのですが、 文字列(EUC) → バイト配列 → 文字列(Shift_JIS) とやらずに、 文字列(EUC) → 文字列(Shift_JIS) といった文字列から文字列への変換は出来るのでしょうか?
>>986 変換テーブル用意すればできるだろうけども、それをC#でやる意味はあんまり感じられないけども。
普通にEUCを読んで(C#は内部表現的にUTF16になる)、SJISで書き出せばいいんじゃね?
バイト配列(EUC) -> バイト配列(Shift_JIS) ならEncoding.Convertでいけるが、 文字列(EUC)とか文字列(Shift_JIS)とかはちょっとC#では想像しにくい
>>986 なんか勘違いしてるような気がする....
それを言うなら、
バイト配列(Encoded in EUC)⇒文字列⇒バイト配列(Encoded in Shift-JIS)
じゃないのか。
990 :
デフォルトの名無しさん :2011/03/28(月) 01:15:54.41
ASP.NETのDataGridに登録されてるデータ件数の情報は含まれているのでしょうか?
ASPのDataGridならDataSource使ってるはずだろ
992 :
デフォルトの名無しさん :2011/03/28(月) 02:58:37.71
>>991 DataSourceを型変換することによって値を取得できるようになるということでしょうか?
DataSourceには誰が値を設定しているんだい? 神様か?違うだろお前だろ?
Formがアクティブになった時に発生するイベントはありますが、 アクティブじゃなくなった時に発生するイベントはありますか?
ない やりたければWndProcオーバーライドしてWM_ACTIVATEを捕まえる
Form.ActivatedやForm.Deactivateがあったと思うが…?
コードを実行中に、自コード内にテキストを挿入したい VBAで言うと Microsoft Visual Basic for Applications Extensibility を参照設定 モジュール内 VBProjectオブジェクトセット オブジェクト.VBcomponents(モジュール).Codemodule.InsertLines(テキスト) なんだけど フォームからボタンくりくりするだけで、自動的にクラスを挿入したいと考えてるんだけど どうしたらよいですか?
コンパイラでそんなめんどくさい事するのはやめろ
止めたほうがいいとか 他の方法とれとか そんな回答されてもこまるん 代替手段はあるんだ、値を保持したフォームなりXMLなりから数秒ごとに毎回読み出して判定するコードをクラス全てに書き出せばいいんだから
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。