ふらっとC#,C♯,C#(初心者用) Part76
フォームにwebbrowserを置きました これを使ってyahooのトップページを開きます その開いたページを上から下まで1つの画像にして保存する方法ってございませんか?
ググった感じではWM_PRINTを送るのかな
OleDrawじゃなかったっけ ここか相談室で見たな
先週の土曜日に秋葉原で店員さんに聞いて部品とかいろいろ必要なものを揃えてもらいました マイコンとPCを連動して音を鳴らす間隔を測ってみましたが結構良い感じの精度になりました。 ありがとうございました ブログに必要な部品と作る過程も公開してみました
8 :
デフォルトの名無しさん :2011/06/21(火) 22:35:05.82
このスレッドはチンパ
9 :
デフォルトの名無しさん :2011/06/21(火) 22:40:04.92
C#のコードをx86ネイティブにコンパイルするプログラムを 作っているんだが、よくよく考えたら、そんなことするくらいなら C/C++で書けばいいんだな
秀丸マクロみたいにファイルに message "test"; って描いたらメッセージボックスを出すマクロみたいのを作りたいのですが 過程としてはプログラムでファイルを読み込む 1行ずつ文字列を取得する messageって描いてあったらその次の"(.*?)";を検索して.*?の部分をMessageBox.Show("ここにいれる") みたいな流れを初心者なりに考えてみたのですがこんな感じで作ればいいのでしょうか?
11 :
デフォルトの名無しさん :2011/06/21(火) 22:48:33.16
C#におけるInt32型とはオブジェクトですか?組み込み型ですか? Int32型はObject型から派生しているのですか?
>>10 どこまで作るかによる。
単純なマクロでいいならそれでOKだと思う。
本当に使い勝手のよいマクロを作るならまずインタプリタかコンパイル型か設計段階で決めたほうがいいと思う。
両者では構文の設計自体が変わってくる。
gotoを許すのか?とかcontinueをどうやってサポートするか、breakはどこまで抜けるのか?
など。
>>11 > C#におけるInt32型とはオブジェクトですか?組み込み型ですか?
オブジェクト。そして組み込み型intはSystem.Int32のエイリアス。
ついでに言うと値型=構造体。
> Int32型はObject型から派生しているのですか?
うん
Object - ValueType - Int32
>>13 ありがとうございます。
C++でいうところの組み込み型のように見えているintですら参照型なのですね。
値型っつってんだろ
噴いたw
エイリアスってことは実態はSystem.Int32って事じゃないの? Object型って参照型ですよね?
ValueTypeから派生してる型は特別に値型なの
あ、そういうことでしたか ありがとうございます!
>>12 コンパイルの仕方はぼくには難しいと断崖の絶壁に聳え立つニワトリさんを捕まえるようなハードルなのでインタプリタでやりたいとおもいます
ちょっといろいろかんがえてみます
C#でstring[] a = [1,2,3];のとき、テキストエディタにUTF8でLFを書きました こんぱいるで
23 :
デフォルトの名無しさん :2011/06/22(水) 00:43:11.07
結局ネイティブコードにコンパイルしてもメリット少ないんだよね バカでかいランタイムを配布することになるし、 .NETの起動時間のボトルネックはJITよりファイルの読み込みだから起動が早くなるわけでもない なんだかんだいって.NETは普及してしまったし
usingで使わない名前空間入れてたら無駄なリソース的なのって増えるの?
そんなわけが無いでしょ usingは、言ってみりゃパスを通すだけ
>>25 だな
usingで名前空間を上にかかなければコード中にその都度書かなければいけなくなって
コードが雑然とするだけ
ビルド後のコードに違いは無い(はず)
27 :
デフォルトの名無しさん :2011/06/22(水) 08:51:42.20
int[] a = new int[]{ 0, 1, 2 }; int[] a = { 0, 1, 2}; 前者と後者の違いはなんでしょうか?
コンパイラが{}がint[]であるかどうかをチェックしてint[]の変数に代入できるかをチェックするか コンパイラが{}の型を決定してint[]の変数に代入できるかをチェックするか じゃね
C#て、可変長の配列は、ArrayList 使わないといけないんだね。 てっきり、 int[] ary = {1,2,3,4}; ary[4] = 5; とか出来るもんだと思ってた…
ArrayList使うな 誰だ使えって言ってる奴は
じゃあ何を使えば良いんだ?
ArrayList使うよりList<>使え、捗るぞ
「C# 配列」でググるとArrayListばっかり出てくるな
それ古い記述じゃないか?
>>27 後者は初期化時限定の略記法。
変数の定義と同時で、かつ、var を使わないときだけそう書ける。
前者はどこにでも書ける。
Method(new int[] { 1, 2, 3 });
とかも OK。
特に理由が無ければ、配列よりもとりあえずList<>にしてる
ちょっと質問なんだけど、List<>でTabPageとTextBoxのインスタンスを持たすようにしているんだけど TabPageが削除されたときに、TabPageの配列がズレるのが困る 例えばtabPage[0], tabPage[1], tabPage[2]とあるときにtabPage[1]を削除するとtabPage[0], tabPage[2]ってなるわけだけど 配列を簡単に整理する方法ってないの?
38 :
デフォルトの名無しさん :2011/06/22(水) 12:42:17.86
>>37 List<>だったらremoveとかなかったっけ?
一緒にリストから消せよ・・・
こういう体系的な知識?を学ぶにはやっぱり色んなサイトを巡ってるんですか それとも書籍を1冊ずつ極めたりしてるんですか? このスレに向いた質問でないかも知れませんがC#の良い書籍とかサイトとかがよくわからない物でして…
サイトとかに関しては まずC#相談室のテンプレ見てみるのもいいかもしれないよ
>>40 大体、都度検索 → 見つけたクラスを IntelliSense やら「定義に移動」やらで眺める → 近隣のクラスで再検索
のループ。
>>40 絶対現場主義Visual C#実践講座―開発の現場から生まれた実践テクニック&TIPS集
には、ArrayListを使っちゃいけない理由とか書いてあるな
けっこうオヌヌメ
List<object> これでおk
List<>ってなんかださいから ArrayList使うぜ
List<> がダサいって部分は許容してもいいけども、 ArrayList を使うのはいかなる理由を以てしても許さん。
dougaっていうプロジェクトで、フォームにWindowsMedia playerを貼り付けて動画を再生するコードをビルドしたとき douga.exeとAxInterop.WMPLib.dllとInterop.WMPLib.dllも作られるのですがこれらのdllを使わないで作る方法ってないですか?
ない
まじすか ちょっとCでできないか調べてみます
>>30 俺も実は引っかかった口だ。
罠クラスには困ったもんだ
>>43 同じ著者が書いたあのふざけた(だけならいいけど、間違いだらけの)C言語本を読んだら
たぶん評価変わるよ
くっそ ずっとArrayList使ってた もうArrayListなんて使わねぇー
Z
未だに.NET Framework1.1を引き摺るプロジェクトとか泣けるけどな
悲しいな
1.1時代に.net使うやつって何考えてんだろうね。 「これからの標準だ」とか本気で信じたのかな?
その時代に.netを使う大胆さを褒めてやるよw
俺なんてredim使ってるぜ
59 :
デフォルトの名無しさん :2011/06/22(水) 20:42:27.41
>>56 VB並みのRADtoolなのにちゃんとしたOOP言語ってのが魅力的だった
javaのswingなど速度的に酷い出来だったからね
先生方のお陰でflv再生できましたっ!
61 :
デフォルトの名無しさん :2011/06/22(水) 23:05:55.78
>>35 なるへそ〜
自分は
>>29 だけど、なんでArrayListはこんなに嫌われてるの?
良かったら理由を教えてチョ。
62 :
デフォルトの名無しさん :2011/06/22(水) 23:08:38.03
好き嫌いの問題じゃないんだけどね(アホの子以外にとっては) ただ旧式なだけ。 でも、何度も既出だけど、あえてArrayListを使う場面もないことはない
>>62 こういうURIだけ一行コピペする人って自分の行為が何かキモいと思ってないのかなw
1. 値取り出すとき一々キャストとかメンドウクサイ(安全性にも欠けるしね) 2. LINQで使うのが絶望的に面倒になる(毎回Castダルい、MatchCollection死ね)
66 :
61 :2011/06/22(水) 23:19:02.23
つまり、C++のテンプレートみたいなList<>があるから もう古くて、Objectにキャストされるような ArrayListをわざわざ使う必要は殆どないってことでOK?
ok
>>66 というか、Obsolete が付いてもいいレベル。
List<T> が完全に上位機能版。
ああ、あと、Silverlight ではそもそもそんな無駄なクラスは完全に亡き者にされたので。
70 :
61 :2011/06/22(水) 23:29:39.16
ArrayListを使う必要が殆どない事はよくわかりました。 ありがとう。
アャRってなんですか?
今後は、「ほとんど」じゃなくて、「まったく」ないんだってば。 互換性のためだけに残されてる。
最初からジェネリックスは必要だってあれほど言ったのに ArrayListみたいな負の遺産が残る
74 :
デフォルトの名無しさん :2011/06/23(木) 00:55:36.69
でもArrayListと違ってList<>は継承して動作弄れないんだよね ArrayListは後で実装変えられるからクラスライブラリのパブリックメンバにしたりしてもいいんだけど List<T>公開するのはパブリックフィールド公開するようなもん ちゃんとやろうとしたらインターフェイス通したりしないといけなくて面倒
お前は何を言っているんだ?
List<T>をプロパティなどでパブリックに公開したらMSのコード分析ツールで警告出るよ Collection<T>などで回避できるからそのために非ジェネリックコレクションを使う必要はないけど
お前は何を言っているんだ? List<T>でやっちゃいかんことはArrayListでもやっちゃいかん。 List<T>も別に継承できる(けども、普通、包含で使うけども)。 List<T>でだけ分析ツールが文句言ってくるのなら、 それはそもそもArrayListが忘れ去られた存在ってだけ。
やりたいことはわからないでもないけど、 今の言語の能力じゃ無理なんだ
継承の為には継承の為にデザインされたクラスを使うってのは基本ですがな そしてList<T>は継承の為にデザインされていない そんだけ
初心者のオレ様にわかるようサンプルコードとどこがなぜダメなのか書いてくれ
ArrayListみたいなデザインの仕方はスゲェ問題がある
例えば↓のようなコードを書いたとする
http://ideone.com/CPlrz このコードは現時点では5を表示するが
将来に渡って5を表示するとは保証していない
ArrayList.AddRangeがどのように実装されるかは基底クラスの作者に委ねられているからだ
ArrayList.AddRangeがArrayList.Addを呼び出して実装されるようになればこのコードは10を表示するだろう
>ArrayList.AddRangeがArrayList.Addを呼び出し たとしても、baseの中でAddCountを足してる訳じゃないんだから結局5を返すんじゃないの
>>82 TestListクラスでオーバーライドされてるからそうも行かない
ArrayList.AddRangeがArrayList.Addを呼んだ場合オーバーライドしたメソッドが呼ばれる
ああ違う、ヤバいじゃんどうすんだ
ヤバいから使うなってんだよw
使いたければじゃんじゃん使ってよし 困ったら使うのやめればいいだけのこと
ToolStripControlHostに関して質問があります. UserControlをToolStripControlHostで埋め込んだコンテキストメニューを開き, 表示されたUserControlを右クリックしてさらにコンテキストメニューを開きたいと考えています. 実際にこれを実装すると,2番目のコンテキストメニューを開いた地点で,1番目のコンテキストメニューが消えてしまいます. 消えないようにするにはどうすればよいでしょうか?
JavaはArrayList使ってもいいよね?
ジェネリクスはただ飯みたいなもんだからな 使わないと損するよ
今となってはListの実装とかできる人減ってるんだろうな
俺はできるよ
減ったのはできる人じゃなくてしたことがある人では?
俺はしたことあるよ
最近の言語はライブラリがしっかりしているかいちいち実装する必要がない.
リンクリストはアルゴリズムの勉強でよく実装されるけど、 List<T>のように配列使ったリストは勉強ではあまり出てこないかもね 配列が一杯になったらリサイズするだけだからリンクリストより簡単なくらいだが
>>87 >UserControlをToolStripControlHostで埋め込んだコンテキストメニューを開き,
ちょっと何言ってるか分かんないです
textBox1のサイズを変更しました。
98 :
87 :2011/06/23(木) 12:01:22.89
>96 わかりにくい日本語ですみません... ToolStripControlHost上で右クリックしてコンテキストメニューを開きたいと間が定ます. つまりコンテキストメニュー上で右クリックしてさらにコンテキストメニューを開きたいと考えています. ToolStripControlHostにはUserControlが埋め込まれています.
素直にサブメニュー使うべきではないか
100 :
87 :2011/06/23(木) 12:34:07.74
昔はいちいち作ってたの?
こんなのやるなら 俺だったら普通にフォームでダイアログ表示させるがな・・・・
なんでもできるユーザーコントロールを作りたい
C++でやれ
知らんけどforeach
irvineみたにファイルをダウンロードするときに一時停止してまた再開するというのはどのようにやるのでしょうか?
一旦接続を切る 続きはRangeヘッダをつけて要求する レスポンスヘッダがContent-Range含んでなかったら残念賞
非同期的に処理をキャンセルする方法はBackgroundWorkerのサンプルでも読んで研究してくれ
>>100 元のメニューのClosingイベントで条件みてe.Cancel=trueにすりゃいいんじゃないか
>>94 でも、紙の教科書に書かれてる似非コード見るよりも、
STL のソースコード眺めた方が勉強になったよ。
C# の場合、ちょっと逆コンパイルしないと見れないって問題はあるけども…
>>101 作らざるを得なかった。
template すらなかった時代は、汎用コレクション書けなかったから。
void* (C# でいうなら object)のコレクション書いてキャスト(Java のジェネリック的な)ならできたけど、
パフォーマンス落ちるから嫌われた。
>>111 .net frameworkはほとんどソース公開されてるでしょ
ライセンス的に、あんまり眺めるとまずいんじゃなかったっけ? まあ、mono の方見ればいいのか。
あんまり見ると目が腐るのか
ポインタでリンクリストは新人研修でやるよな。
おぬしのとこは新人研修なんてやるのか
みっちり半年やるよ
カーソル位置の色を取得する方法ってありませんか?
あります
Win32APIの方のGetPixel
122 :
デフォルトの名無しさん :2011/06/23(木) 22:52:34.04
ポインタは参照型だしな
LINQは便利だしな
class Library_SQLite { private string testA = "あいうえお"; class Table { public void Table(string name) { //ここで上のtestAを得る方法はありますか? } } }
普通にアクセスできるけど、試してみたの?
>>124 Library_SQLiteを渡して見る
Javaと違ってエンクロージングインスタンスの紐付けみたいな機能がないのでインスタンス渡さないと見れない
128 :
124 :2011/06/23(木) 23:31:46.61
素直に親を引き渡す事にします ありがと
おやおや
>>122 でもポインタ≠参照型とか一人で言い張ってる奴がいるんだよなw
やれやれ
うーん、文脈によるかね。 C# の用語としてのポインター型は参照型とは区別される。 一般用語としても、「ポインターを参照として使う」とかは自然だけど、=かと言われると。 C++ でも、まあ、ほぼ≒だけども、null 代入できない程度の差はあるし。
くだらないことは気にすんなw
下手の考え
例えば、ポインターってアドレスを数値として扱っちゃうことで、無効な領域もさせるわけじゃない。 それは参照と呼んでいいの?何を参照してるの?
えっ
138 :
デフォルトの名無しさん :2011/06/24(金) 02:33:14.03
何か訳の判らん物を参照すると、人はそれをバグという
ポインタはアドレス値を自由にいじれる 参照はオブジェクトのアドレスしか入れれない でおk?
>>139 GCが管理してるのでアドレスですらないかもしれない
GC内部の管理番号だったりするかも
参照型のアドレスが固定だと思ってるの?
参照型=ポインタって人々が優勢みたいだな
実際そうだしなぁ
おまえらって簡単に煽られるのな
英単語としてはpointer(指し示す)もreference(参照)も似たようなもんなんだけどもね。 C++がT*の方と区別してT&を参照って呼んだから。
概念と実装を混同するからこうなる
魔法少女になる前のまどかと、なった後のまどかの違いか
VB6とCの経験しかありませんが、今からC#を学びたい、というか会社から学ぶよう言われました。 さしあたって何から始めればよかでしょうか。 向学心と折れない心は実装してると思います。 参考書や参考サイト、これは買っとけ/読んとけ な本などありましたら、ご教授いただければ幸いです。
概念的にもこの区別非常に重要だけどね、それをポインターと参照って言い分けるのが言葉として正しいかは置いといて。 C# の参照みたいな、有効な場所しかさせなず、 そして場合によってはアドレスじゃなくて GC の管理してるハンドルとして持つもの。 GC がコンパクションで位置を移動させても正しくオブジェクトを参照するという概念。 単にアドレスを指し示すだけのポインターよりも一段階抽象度の高い概念。
>>149 C# でググって上に出て来るサイトで OK。
>>149 他言語の経験あるなら未確認飛行C++++読めばいいと思います
参照型はポインターのスーパークラスである!?
>>149 とりあえず読むより何か作ってみればおk
未確認飛行C++++はJavaやC++のようなオブジェクト指向経験者向けだろ あれでオブジェクト指向理解できたら天才
C#は比較的オブジェクト指向を意識しないでいい javaは全部抽象化で解決する文化があるせいでヤバィ
>>153 スーパークラスって言葉は汎化、より機能が少なて広い概念側を指すから逆じゃね?
>>149 VB.netじゃだめなんですかと聞いてみろ。
>>149 その知識だけで触ってみれば大丈夫
俺もCとVB6の知識だけでやってるけど、何とかなってる
160 :
デフォルトの名無しさん :2011/06/24(金) 16:03:37.49
そういやVB6にもクラスってあったよね 殆ど使われなかったほど不便だったけど
>>157 大丈夫、実は俺も何を言ってるのか分かりません
ここで変な質問してみるか 「他の言語ではできるけど、C#では絶対にできないことって何?」
>>151-155 ありがとうございます。
.net Frameworkによる開発自体、さわったことも見たこともなく、まったくの初心者なのですが
プラットフォームSDKなども無料で手に入るのですね。
とりあえずはExpressをダウンロードして始めてみようと思います。
入門書はどれも大同小異でしょうか?「入門」とタイトルについたものを買おうと思っているんですが・・・
手放しでお勧めできる本がないのが弱点
>>162 C#の文法に従わないこと
チューリング完全なんだからあとは言語関係なく処理系次第
もう4.0でてるよ
全く別製品だから共存できる
170 :
デフォルトの名無しさん :2011/06/24(金) 16:14:38.05
調べてみたら、独習はもう第四版まで出ているのですね。
>>166 の本とあわせ読みつつ、教えていただいたサイトでなんとかやってみます。
ありがとうございました。
うを!間違えて独習C++第四版を注文するところだた('A`) 環境については会社からの指示もありますので、おそらく2008になると思います。
なんで2008なんだ・・・? まー良いけど FrameWorkはXPの標準が2.0で7が3.5だから、汎用で作るなら2.0を選択しとけ
2010は思いからな
オーモイーガー
オイモカラアゲ
178 :
デフォルトの名無しさん :2011/06/24(金) 16:54:09.46
public sealed class myWindow : Window { private myWindow(){ InitializeComponent(); } private static myWindow mw =new myWindow(); public static myWindow Instance{get {return mw;}} } ってやってシングルトンなウィンドウつくったんだけど、これのownerをメインウィンドウに設定する方法ってどうやったらいいんでしょう?
2010って思いの? ちゅーか、会社からの指示で2008になるって、 そんなお仕事モードなのに初心者って何? ど素人からSE育成してるのか?その会社。ある意味すごくね?
VB6とCは知ってるんだから、ど素人では無いだろう
>>179 XP だとちょっともっさりかもなぁ<2010
自分は Vista 以降でしか使ったことないのでなんとも。
183 :
デフォルトの名無しさん :2011/06/24(金) 18:14:08.45
>>182 ありがとうございます
新しいウィンドウを
myWindow.Instance.show();
で表示させるとして、例えばメソッドを呼び出したクラスをmyWindowに渡して、ownerをそれに設定する、とかは可能でしょうか?
myWindow.Instance.Owner = hogehogeMainWindow; すればいいんじゃね
185 :
デフォルトの名無しさん :2011/06/24(金) 20:30:25.78
>>184 myWindow.Instance.show();
とするたびに
myWindow.Instance.Owner = this;
をセットで書くということでしょうか?
いまmyWindowクラスにメソッド
public static void myWindowCall ( Window Yobidasimoto )
{ cw_instance.Owner = Yobidasimoto;
cw_instance.Show(); }
を追加して、呼び出し元からは
myWindow.myWindowCall(this);
と処理してみたのですが、こういった方法には何か問題がありますか?
TextReaderとStreamReaderは俺の中では名前を逆にしてほしいんだが
ツイート馬鹿参上!まで読んだ。
ReaderTextにReaderStreamか。…おかしくね? ReaderForTextとかなら、ちょっとはマシかも知れんが…。
>>189 多分StreamReaderを抽象クラスに、TextReaderを実装クラスにしろってことだと思う
単語の順のことだったら意味分からんもん
191 :
デフォルトの名無しさん :2011/06/24(金) 21:39:58.50
画面を12分割したいのですが何かいい方法はないでしょうか?
ナイフを取り出します TableLayoutPanelとかそんなん?
俺たちはアンタのママじゃないんだよ
194 :
デフォルトの名無しさん :2011/06/24(金) 21:55:32.46
ゲームを作りたいのですがライブラリを別途用意しないといけませんか?
しなくてもいいけど、した方が楽よん
ありがとうございます 作ったゲームを配布するので.net2.0が入っているパソコンで動かせればいいのですが slimdxとxnaの二つのどちらかお選べばよいでしょうか?
いれるほうからいうと純正がいいはな
扱い方はほとんど変わらないから勉強はXNAにしとけ 慣れてきたらSlimDXに移ってもいい XNAの方が情報の量が圧倒的に多いからSlimDX使うにしてもXNAの情報のお世話になることになる
C#で精度のよいメトロノーム作れますか?
電子工作を荒らした質問者に成りすました荒らしさんこんばんは
ありがとうございます XNAいれてみます ダウンロードサイズが大きいいのですが これを使って作ったゲームを動かすパソコンにXNAをインストールしてもらう必要はありますか?
機械式メトロノームの方が精度いいよなぁ
どんだけさびしい人生おくってんだよ おまえ生きてる意味あんの?
>>202 あるけど遊ぶだけならランタイムの方を入れるだけだからサイズはそんなに大きくない
今時DirectXでも最新のバージョン使ったらランタイムのインストールはたいがい必須
207 :
デフォルトの名無しさん :2011/06/25(土) 00:35:38.47
どんだけさびしい人生おくってんだよ おまえ生きてる意味あんの?
もうおまえらは肉体言語で語り合えよ
肉体言語のオブジェクトは通信するためにKoBuShiを使います。 KoBuShiは肉体言語におけるオブジェクトのいかなる形状に対しても通信が可能です。 KoBuShiをあまり使いすぎるとターゲットのオブジェクトを破壊してしまうので、使いすぎには最深の注意が必要です。 なお、肉体言語にはKoBuShiとよく似たKeRiもあります。 しかし、KeRiはターゲットオブジェクトの破壊を促進しやすいことやレイテンシーの問題により非推奨の機能となっています。 続きはWebで!!
どんだけさびしい人生おくってんだよ おまえ生きてる意味あんの?
それを見つけるのは、お前自身だ…
どんだけさびしい人生おくってんだよ おまえ生きてる意味あんの?
213 :
デフォルトの名無しさん :2011/06/25(土) 05:38:05.01
struct foo { int a {get; set;} } ってな具合に定義して foo.aの参照先を class bar { private _a; public a { get{return _a;} set{_a = value;} } } って感じのbar.aにしたいのだけどよい方法ないかな? bar.aを変えたら、foo.aも変わってて欲しいのだけど
>>213 そういうデータバインディング的挙動、方法はあるにはあるけども、それなりに面倒。
コード生成なりリフレクションなり使いまくりなコードになりがちで、
ちょっと現状だと、ここでさらっと(行数制限にかからない分量で)は書けない。
どこかでクラスを使わないとな
配列を宣言するときはなんて書くのが王道ですか?
217 :
デフォルトの名無しさん :2011/06/25(土) 10:52:04.70
無い 好きなようにやれ 仕事での話なら周りの様子を伺え
class foo { public static int a { get{ return bar.a;} set{ bar.a = value; } } } class bar { private static _a; public static int a { ... } }
static・・・
聞かれて即答できるほど少なくはないし、試してみるほど暇でもない
誤爆しました><
かっこよすぎワロタ
>>214 できるにはできる
キーワードはデータバインディングとリフレクションっと
アドバイスありがトン
参照してるデータは一箇所なのに
そのデータを参照してる構造体が複数あって
全部書き換えようと思うと、重たいのよ
ポインタで持っててくれれば、参照先変えるの楽なんだけどなぁ
StructLayoutとかが絡まないんなら、fooにbarの参照を持たしておけばいい話じゃないの? StructLayoutが必要でも、暗黙変換で誤魔化せるかもしれないし
intじゃなくて自分の定義したクラスに置き換えちゃったら?
>>223 どういう用途か知らんけど、それが実現したら
自分で変えたつもりもないのに、いつのまにか変数が変わってるわけか……
混乱招きそうな気がするのは俺だけかな。
xnaでゲーム作るのにおすすめのサイトってありませんか?
>>226 詳しく話すと、DXライブラリはVERTEX3D構造体(3Dの頂点データ)の
テクスチャ座標を特定のクラスで管理してアニメーションとかやりたいってわけ
頂点データを1フレーム毎に全部書き換えると処理落ちしちゃうから
構造体内部で参照してるアドレスを指定できたら実態を変えたら全部変わるんじゃない?
って発想なのよ
だめそうなら、アニメーションはやらない方向で考えるんだけどね
構造体はコピー取られてるから同じアドレスは参照してないと思ふ
>>229 ああ、そっか
構造体の実データって連続したメモリ空間で、
参照を指定してるのは、その先頭アドレスだけだっけか?
それじゃ、個々のデータの参照指定とか不可能だよね
1フレームで全部のデータ書き換え不可能って前提だと
あきらめるか、アニメーション部分を切り離すしかないのね
方針見えてきたわ、ありがトン
C#ってマイクロソフトが作った言語だと思ってたんですけど違うんですか?
違いません
haha! no way
ボーランド懐かしいな
>>233 元Borland社員が、 (Borlandの方針変更等により) 大量にMicrosoftへ移籍
↓
DelphiやC++Builderのノウハウを活かし、C#を開発
なので、Borlandが造った訳じゃない
ボーランドが血迷ってくれたおかげだな
わかりました
そっちのほうがあたらしくていいですね たすかりました VC#wに頼らず秀丸とcscで一通りやってみたいと思います (VC#でやってたら配列の宣言の仕方とかいろいろ壁にあたったので)
>(VC#でやってたら配列の宣言の仕方とかいろいろ壁にあたったので) ひどい八つ当たりを見た
今どき秀丸でC#は有り得んだろ まあ趣味でやるなら何でもいいが
いえ、VC#が何でもやってしまうのでわかんなくなっちゃうのですよ なので秀丸で修行してからしたいのです
245 :
デフォルトの名無しさん :2011/06/25(土) 23:26:01.66
メトロノーム
using System; namespace test { class Test { static void Main(string[] args) { System.Console.WriteLine(args[0]); } } } 引数を与えないと強制終了します これはどう書き直したらよいでしょうか?
static void Main(string[] args) { if(args.Length==0){ return; } System.Console.WriteLine(args[0]); }
動的なToolStripItemを作ってイベントハンドラを設定したいんですが、上手くいきません for (int i = 0; i < tabs; i++) { toolstripitem.Add(new ToolStripMenuItem()); toolstripitem[i].Name = "メモ[" + i + "]_ToolStripItem"; toolstripitem[i].Text = "メモ[" + i + "]"; toolstripitem[i].Click += (object sender2, EventArgs e2) => DeleteData(i); this.タブを削除ToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { this.toolstripitem[i]}); } これでビルドして実行するとループ終了条件時のiの値がDeleteData()メソッドに渡されてしまいます・・・ その時その時のiの値をDeleteDataメソッドに渡すにはどうすればいいでしょうか?教えてください
ありがとうございます テンプレとして書くクセをつけるように
250 :
デフォルトの名無しさん :2011/06/25(土) 23:58:08.75
趣味でプログラム? どんだけ、ヲタだよw ほかにやることねーのかよ
C#ってCよりも速いのですか?
極稀になんかそういうこともあるらしいが、基本的に無い
>>251 作り方次第じゃないかな。
古くから言われてるけども、原理的には仮想マシン通したりガベコレ使ってる分C#の方が遅い。
けど、それはプログラマーが超がんばってチューニングすればであって、適当だとそんなに差が出ない。
>>248 for (int i = 0; i < tabs; i++)
{
int j = i;
toolstripitem.Add(new ToolStripMenuItem());
toolstripitem[i].Name = "メモ[" + i + "]_ToolStripItem";
toolstripitem[i].Text = "メモ[" + i + "]";
toolstripitem[i].Click += (object sender2, EventArgs e2) => DeleteData(j);
this.タブを削除ToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] {
this.toolstripitem[i]});
}
このコードの意味が理解できるまでラムダ使うの止めろ
禁止だ
コンソールで作ったプログラムだとC#のほうが全て速いんですけど気のせいなんでしょうか?
256 :
248 :2011/06/26(日) 00:16:42.14
>>254 すいません。int j = iってどういうことなんですか?
違いがいまいちわかりません。。。
分からないなら使うなってよ。
>>256 iはループの間ずっと同じインスタンスだ
jはループする度に新しいインスタンスが作成されている
この差だ
>>255 まあ、作り方次第だってば。
そうなることもある程度にはC#は速い。
Cよりも完全に早くしたい、とか考えてるようなら諦めたほうがいい
C#のコンパイラはCかC++で実装されてんのかな
>>261 今の MS 実装はそう。C++。
Mono の C# コンパイラーは C# で書いてる。
今進めてる Roslyn(Compiler as a Service)ってプラン(.NET 5 よりさらに先)では、
C# コンパイラーを C# で再実装中。
int a = 10; int b = 20; System.Console.WriteLine(a+b); は実行しても何も表示されません System.Console.WriteLine("こんにちは"); は表示されました 何故ですか?
原因がわかりました if (0 == args.Length) return; を書いてて引数が何もなかったため実行されてなかっただけでした
270 :
デフォルトの名無しさん :2011/06/26(日) 11:25:23.77
>>269 スタックはアプリが起動するときにすでに割り当てられてるメモリの一部
ヒープっていうのはOSに割り当ててくれと要求を出して割り当ててもらうメモリ
OSに要求を出す分重いけどスタックほど使用量を気にしなくていい
スタックの場合は使い方によってはオーバーフローすることもある
コピーのされ方が違うので一概にどっちとは言い切れない 型の容量が16バイトを越える場合はヒープに取った方が良いとされている 構造体にするとスタック上に、クラスにするとヒープ上に取られる そしてやむを得ない場合を除いて基本的にobjectで宣言すべきではない
>>268 この比較の仕方、昔ちょっと流行った希ガス。
昔も何も、条件式がboolに縛られてなかった言語で 代入のバグを避けるためのものだろう C#には基本的に要らないけど
>>270-271 何か難しいですね
PHPしか触ったことないのでそういうの意識したことありませんでした
例えばFirefoxが重いのはヒープとスタックの使い方が正しく使われてないからなんですね
要所要所でobjectにしたりintなどの型で宣言して使い分けたいと思います
なぜFirefoxが出てきたのか不明だがは多分関係ない
愛用ってなんだ うちは規約だ
objectの質問が出てたので自分のちょっと気になることを質問します VC#2010からdynamicが使えますけど object型よりdynamic型を使うほうが主流じゃないんですか?
そもそもそういう使い方してる人間が少ないから主流以前の問題
>>277 良い組織だね。
箸を持つ手が「右手」とかも…ちと違うか。
objectを使ってるコードは素人 dynamicを使うのは上級者ってこと?
無意味な規約の存在は、教条主義者の馬鹿が幅を利かしてる証拠だな
扱ってる言語がC#だけじゃないとかで、規約を一部共通化してるんじゃね
objectとdynamicじゃ用途が違いすぎるだろ
C#だけ使いたい これは本当
protected enum St : byte { A = "aaa", B = "bbb", } static void Main() { Console.WriteLine((byte)St.A); } enumに文字列を使いたいのですがどうやればエラーがでなくなりますか?
enumに文字列を使うことはできない
妥協案として protected enum St { aaa, bbb, } static void Main() { Console.WriteLine(St.A.ToString()); }
ありがとうございます
気になったんだが、protected意味ないよな。
用語の説明からしなければならないの?
Consoleを引き合いに出すってことは、Console.WriteLineとConsole.Out.WriteLineの違いとか?
納得しました メソッドは()の中にパラメータを設定して プロパティは = の後に値を設定するやつってこです
>>262 > C# コンパイラーを C# で再実装中。
これにどんな意味があるのかなあって思ってたことがありました。
誰でもC#風DSLパーサーの1つや2つ組んだことがあるだろ?
C#のコーディング規約のデファクトスタンダード はどれでしょうか? 独自規約のベースとして使われている場合を含めて いちばん使われているであろう規約を調べています。 みなさんがよく使われているなと感じるものをあげてください。
つMSDN
>>278 まあ、主流って言われたら、object も dynamic も使わないのが主流だろ。
正確に、必要十分な要件を満たす型で受ける。
>>296 C# を C# で再実装ってだけだと意味は対してないけども、
内部構造が標準ライブラリとして公開される。
コンパイルの過程の途中にフックできる。
初心者スレのほうが聞きやすいのかもしれないけど、もっと 初心者が見ても役に立つ質問回答してくれよ。
今日はそれでも結構回答されてるほうだと思うで
初心者が理解できるかどうかは別だけどな
言われてみれば週末なのにポインタ=参照型もメトロノームもほね」もない 素晴らしい
黙ってろ
ほね」。だよ 間違えないでほしいんだな
309 :
デフォルトの名無しさん :2011/06/26(日) 19:58:57.44
C#言語仕様の日本語訳の版ってexpress版には付いてないけれど、 pro版を試す で16日評価版インスコすれば入るのですか? それともWEBと同じ英語版? それとも入らない?
>>309 C# の仕様書、ウェブで手に入るのと全く一緒。
日本語版もウェブにある。
すまんが誘導してくれ。古いのしか見つけられん。
インスコなどと言うマヌケには心底あきれる
>>299 ,
>>300 Microsoftが薦めるようにするのが多いということですね。
レスありがとうございました。
Delegateの命名にいつも困るわ
2.0以降は自分でデリゲートを定義する機会ってそうはないと思うんだけど
>>312 そもそもコンパイル言語ではスクリプト言語に比べると配列をリテラルで書くこと自体が少ないがそれは置いといて
その書き方がたぶん一番よく使われるけど、型推論などの最近の機能との一貫性を考えると
new[] { 1, 2, 3, 4, 5, 6 }とnew[]付けるのが今風かな
動きゃ何でもいいんですよ
PHPの感覚に近いのはむしろ var array3 = new List<int> { 1, 2, 3, 4, 5, 6 }; じゃね 配列じゃないけど
320 :
デフォルトの名無しさん :2011/06/26(日) 22:07:42.94
Adobe AIRで作ったアプリを.NETアプリに移行したいのですがWebkit使ってる部分をどうしようか悩んでます Webkit.NETというオープンソースのを試してみたのですがDOMが使えないようなのでダメっぽい感じでした 有償でもいいのでDOMまで使えるWebkitライブラリありませんか?
321 :
デフォルトの名無しさん :2011/06/26(日) 22:11:44.75
>>315 後ろにDelegateって付けとけ。
GetXXXXDelegate
違反していたって良いじゃない。
よかねーよ
動きゃいいんだよ
Callbackサフィックスは知ってるけど使う気にはならんな 実例もあまり見ないし
そもそもデリゲート自体あまりみない
ガイドラインはライブラリ作成者向けだから内部的に何使おうがどうでもいいはず
イベント ハンドラ (イベントの型として使用されるデリゲート) の名前には、EventHandler というサフィックスを追加する。 イベント ハンドラではないデリゲートの名前には、サフィックス Callback を追加する。
よくわからん名前のデリゲートが乱立しても面倒なので、 FuncやActionで済むものはそれらを使ったほうが良い局面もいっぱい。 あと、EventHandler<T>はもっと積極的に使ってほしいね(.NETのライブラリ自体も……)
Callback 用途じゃないのにそんな名前つけられるか。 Delegate は Delegate なんだから Delegate でいいんだよ。
にんげんだもの
つまり一貫して〜Classとか〜Interfaceとか〜Structとか〜Enumとか付けてるんだね それなら許す
マルチスレッドでデリケートなデリゲートを使わないオサレな 使いこなし法を教えてくれねーと
>>334 クラスにはClassってサフィックスを付ける?
匿名デリゲートを使うから別につけるほどでもないって話じゃなかったのか。
342 :
デフォルトの名無しさん :2011/06/26(日) 23:52:05.65
Object と object って違うんですか?
>>342 コード中に出てくるなら、クラスとインスタンス
>>317 newつけて配列作ることにしたいと思います
ジャグ配列というのは二次元配列と同じでしょうか? C#では特別な名前でジャグ配列と呼んでいるという認識でおkですか?
いいや、違うよ。ジャグと2次元は。ジャグは配列の配列だよ。
>>346 C#だと2次元配列も配列の配列じゃ無かったか?
自分が入門書読んだ限りだと
2次元配列=長方形の配列の配列(各配列の長さが揃ってる)
ジャグ配列=各配列の長さが揃ってないデコボコの配列の配列
348 :
デフォルトの名無しさん :2011/06/27(月) 00:19:23.85
>>333 開発者の確保が難しく、大規模化したことでソースの見通しと
開発効率が悪いためC#への移行を検討しています。
AIRでは全て非同期なため大規模化するとメンテナンスしきれず、
また下手な書き方をされるとFlashBuilderでは入力補間とかも
機能しなくなり、またFlashやってる開発者はある程度の規模の
チーム開発できる人間が非常に少ないのです。
>>347 > C#だと2次元配列も配列の配列じゃ無かったか?
違うよ
1次元の配列を二次元っぽく見せてると言う方が近い
>>348 どうしてもWebKitでなければダメ、という箇所がなければ
標準のWebBrowser(IE)を使うのがいいと思うけれど。
351 :
デフォルトの名無しさん :2011/06/27(月) 00:32:31.78
>>350 3年ほど前に始まったプロジェクトなのですが、WebBrowserでは
DOMで高さがとれない場合があるとか問題点が報告され、
またMac対応などもあり急遽AIRでの実装となったのです。
WebKit.NET見たけどDOM触れるんじゃないのこれ 普通にAPIにDOMあるじゃん
353 :
デフォルトの名無しさん :2011/06/27(月) 07:44:19.68
GekkoFXは一杯あるけどなあ WebKitの魅力ってあんまり
355 :
デフォルトの名無しさん :2011/06/27(月) 08:05:07.49
つーか今のWebBrowserはいろいろ触れるだろ 古いバージョン向けのWebBrowserのコードはいろいろ面倒だったけど
DOMで高さ取れるよWebBrowser
357 :
デフォルトの名無しさん :2011/06/27(月) 08:31:35.19
wpfのwebbrowserはDocumentがobjectだったりして使えねーけどな あれをdinamicで組めとか言うつもりなのか?
359 :
デフォルトの名無しさん :2011/06/27(月) 08:36:39.21
純正のWebBrowserはDelphiの頃から腐ってるイメージしかない
webkit.netはDOMが触り程度しか実装されてないけど、JavaScript流し込んで 実行することができるので、それを使って誤魔化せ
なんでそんなAndroidみたいなマネを
362 :
デフォルトの名無しさん :2011/06/27(月) 09:31:28.76
>>357 あれWPFの意味が全く無い実装で
WindowsFormsHostでWinFormsのWebBrowser使うのと同じだから
必要ならそっち使えってことだろ
Silverlightの方のWebBrowserは描画がフレームワークに統合されてるんだけど
WPFのWebBrowserはウィンドウハンドル持ってて糞
364 :
デフォルトの名無しさん :2011/06/27(月) 10:53:42.81
>>363 WindowsFormsHostで使っているんだが、GridSplitterで動かすと上手く描画が更新されない
何か上手く行く方法ありませんかね?
つまりPHPでは $array( array(1,2,3), array(4,5,6) ); とC#のジャグ配列は一緒ではないという事ですか?
>>364 UpdateWindowPosとかInvalidateMeasureとか呼んでみたら
>>365 それはC#でいうジャグ配列(配列の配列)
C#でいう多次元配列はPHPには無い
でも不便だから多次元配列は無理に使わなくていいよ
最適化や新機能からハブられまくってる過去の機能
367 :
デフォルトの名無しさん :2011/06/27(月) 11:24:09.83
このスレみてGeckoFx使ってみたが便利すぎワラタw
GeckoFxとwebkit.netってそれぞれライセンスが異なりますが それらとIEのwebbrowserを組み合わせて3つのエンジンが使えるブラウザを作った場合ってライセンスは何で配布したらよいのでしょうか?
370 :
デフォルトの名無しさん :2011/06/27(月) 13:29:16.63
Apache License
371 :
デフォルトの名無しさん :2011/06/27(月) 15:04:42.52
textboxを一つ持ったForm2クラスと、整数を1から素数判定していくPrimeクラスが有って、 PrimeクラスはForm2クラスを所有して、publicなstartCalc、privateなCalcメソッドを持っています。 Form2クラスは自身のtextboxに文字を追記するpublicなwritelnメソッドを持っています。 希望の挙動は、PrimeクラスのstartCalcを呼ぶと、 メソッド内部でForm2が生成され、Calcメソッドの中で無限ループしつつ、逐一Form2.writelnに結果を書きだす事です。 こんなプログラムを書きたいのですが、startCalcの中で、form2.ShowDialog();Calc();とするとForm2を閉じるまでCalcが行われませんし、 form2.Show();Calc();とすると、ウィンドウメッセージの処理を忘れた時のような状態でフリーズしました。 そこで、並列にすれば良いのかな?と思って、 System.Threading.Tasks.Parallel.Invoke(form2.Show,Calc);としてみましたが、これもフリーズし、 最終的にSystem.Threading.Tasks.Parallel.Invoke(wrapper,Calc);としてwrapperの中でform2.ShowDialogすると希望通りの挙動になりました。 気になったのでwrapperの中でform2.Show()してみたら、これはフリーズしました。 結果として動いたのは嬉しいんですが、ここまで違いが出た理由が全く分からなくて気持ち悪いです。 誰か説明して頂けないでしょうか?
>>371 「GUIを更新するのはGUIを生成したスレッドでなければならない」という制約がある
全部それに起因する問題
多少正確な表現ではないけど
374 :
デフォルトの名無しさん :2011/06/27(月) 20:22:40.72
375 :
デフォルトの名無しさん :2011/06/27(月) 21:27:59.72
>>373 なるほど、色々読んできて理解しました。
最後の上手く行ったコードもデバッグモードで動かしたら例外吐いてました。
ですが、上記のフリーズするパターンは、
例えばform2.Show();while(true){sleep(5000)}のような、form2のコントロールにアクセスしないようなコードでも再現するので、
また別の理由では無いかと思うのですが、どうなんでしょうか?
376 :
デフォルトの名無しさん :2011/06/27(月) 21:35:22.56
>>372 GeckoFxがMPL(LGPL)
Webkit.NETがMIT
WebBrowserはどうでもいい
よって「○○の作者さん、ありがとう」と書いておけばいい
さてさて、 form2.ShowDialogはShowDialogで表示したダイアログが閉じるまでブロックされるのは仕様だろう。 ダイアログでは色々設定してその結果をプロパティなどを経由して呼び出し元に提供するからね。 で、while(true){sleep(5000)}これがなにやってるかわかるかな? 基本シングルスレッドの条件化でメッセージループしながらイベントとか処理してるはずなんだが、 そのシングルスレッドの処理をとめる行為じゃないかな? 止まってる間はメッセーループを処理できないし、それができなければフォームはフリーズしないかね? さてさて・・・。
CalcメソッドやThread.Sleepでスレッドがブロックされてて GUIが更新されてないからフリーズしたように見えてるだけじゃなくて?
379 :
378 :2011/06/27(月) 21:42:14.12
おや、かぶったね まあべたにマルチスレッド化するのが答えだわな 別スレッド起こしてそっちでform2作成 Calc()の走ってるスレッドからGUI更新はform2.Invokeまたはform2.BeginInvoke
380 :
デフォルトの名無しさん :2011/06/27(月) 22:07:32.65
>>377-379 Primeからform2のコントロールにアクセス出来ないのは、コントロールがスレッドセーフでないからとの事のようですが、
それならばPrime(というよりform2.Showの呼び出し元)はform2とは別のスレッドで動いているという事ではないんでしょうか?
Primeとform2が別のスレッドで動いているのならば、Primeが無限ループに陥っていてもform2の描写は適切にされると考えたのですが、
「そもそもshowしただけではform2は別スレッドで処理されない」
「メッセージループはform2を描写するスレッドとは別のスレッドで処理される」
のどちらかなのでしょうか?
>Primeからform2のコントロールにアクセス出来ないのは、コントロールがスレッドセーフでないからとの事のようですが、 ちげーよ。 >そもそもshowしただけではform2は別スレッドで処理されない そうだよ。 >Calcメソッドの中で無限ループ なんでしょ? form2.Show(); Calc(); // ここから戻ってこない なんだから同スレッド上のform2のメッセージポンプは動かないよ ためしにCalc();のループ内でApplication.DoEvents();してみそ
なんでわざわざそんな面倒でいかにもトラブルの元になりそうなことするかなあ Calcは計算して結果をコレクションに突っ込むだけにして、フォームはタイマでも使って定期的にその結果を表示するようにするのが定石
そんなの定石じゃないですからw
タイマ使うかはともかく、計算用スレッドでメッセージループ回したりはしないだろ BeginInvokeにしろBackgroundWorkerにしろ
385 :
デフォルトの名無しさん :2011/06/27(月) 22:51:00.71
定石と言えるのは「無限ループを伴う計算はGUIとは別スレッドでやる」ぐらいだよな 後のGUIスレッドとの通信とかクラス分け等の実装は様々
データの変更ごとにビューを更新するのが基本ではあるが、変更の頻度が高すぎて
それだと非効率な場合なんかは、確かに
>>382 のようにするのがまあ定石だと思うが。
まあ取り敢えずPrimeクラスにFormを持たせるのは俺はやらないな…
Primeクラスはスレッドやフォームを全く意識せずに作って BackgroundWorkerで for (int i = 1; i < end; i++) { bool result = prime.IsPrime(i); BeginInvokeとかReportProgressとか共有コレクションに入れるとかして結果出力(result); } とするのがいいと思う
>>376 結局ライセンスが違うからMPLにもMITにもできないじゃん
390 :
デフォルトの名無しさん :2011/06/27(月) 23:23:27.44
メソッドの中でnewしてそれをreturnするってあり? { Hoge hoge = new Hoge(); return hoge; } みたいな、コードです。
391 :
デフォルトの名無しさん :2011/06/27(月) 23:26:24.78
>>375 Showしたスレッドがメッセージを処理するので、while(true){sleep(5000)}で止まってる限り一行にメッセージが処理されない
やべえ全然更新してなかった
SendMessageの醜悪な仕様がすべての元凶か。。
Formが無いと動かせないようなコードは極力書くべきではないわ そういう意味でもPrimeがFormを持つよりFormにPrimeを持たせるべき…
397 :
デフォルトの名無しさん :2011/06/28(火) 10:06:17.72
スクレイピングの質問です。 データがロードされてテーブルが表示される前にHTMLがダウンロードされるようです
それは当たり前のことではないでしょうか
質問文になってねぇ
自動車は走る前にガソリンを入れなければならないようです。 って言ってるのと変わらん。
401 :
デフォルトの名無しさん :2011/06/28(火) 10:15:50.37
HttpRequest等の類似手法で一呼吸おいてからダウンロードする方法はありますか?
402 :
デフォルトの名無しさん :2011/06/28(火) 10:18:09.37
ちなみにIE操作等で数秒待ってからの読み込み方法だとダウンロードできるようです
403 :
デフォルトの名無しさん :2011/06/28(火) 10:18:37.59
htmlをダウンロードして加工したあとwebbrowserに渡すとなるといろいろ不都合が起きそうだな 内部でproxyぽいことをするかnavigatingイベントあたりでナビゲートに入る段階でhtmlを見るくらい?
つーか何がしたいねん スクレイピングならSGMLReaderとか使って生のXMLに触ればいいじゃないか なぜWebBrowserを介するんだ? お前がやりたいのは本当にスクレイピングなのだろうか?
405 :
デフォルトの名無しさん :2011/06/28(火) 10:25:13.55
406 :
デフォルトの名無しさん :2011/06/28(火) 10:26:27.84
>>404 SgmlReaderも試しましたが、テーブルが表示される前にHTMLがダウンロードされるようです
ああ、IEに表示されてるデータに対してやりたいってか だからダウンロードが発生するとか意味不明な発言が飛び交ってるのね InternetExplorer.Applicationからやろうって発想がまず間違ってる
すごい発想やね。普通は取得したHTMLから中身を取り出すのに。
409 :
デフォルトの名無しさん :2011/06/28(火) 10:36:47.43
取得するHTMLの取得タイミングをワンテンポずらしてHTMLを取得しないと取れないのです
Ajaxってこと?
またわけの分からんことを エスパーの出番
412 :
デフォルトの名無しさん :2011/06/28(火) 10:39:47.16
DownloadData OpenRead WebRequest webbrowser SgmlReader あたりは試してVBAのIE操作はOKでした、C#でのIE操作記述方法は手こずってますが、ほかの効率の良い方法を試したいのです
AjaxでもWebBrowserなら問題ないと思うけど
414 :
デフォルトの名無しさん :2011/06/28(火) 10:41:02.73
Html Agility Packも試しましたがアウトでした
>>2 のideone使ってコード貼れ
貼れないなら説明する力を身につけてから出直してこい
あとどこのデータ抜きたいのかURLね
417 :
デフォルトの名無しさん :2011/06/28(火) 10:48:25.79
必須言語として日本語の習得が必要だな
419 :
371 :2011/06/28(火) 10:50:56.63
皆さん回答有難うございました。そもそも根本の理解がおかしかったようですね。
Expressのデバッガにもスレッドビューが有ったら良かったのに……
>>382 ,384,388
Timer、BeginInvoke、BackgroundWorkerの存在を初めて知りました。
次はこれらを使ってみようと思います。ありがとうございました。
>>387 ,396
PrimeのためにFormが有って、PrimeがFormを利用するので、
Prime has Formで問題無いと思ってたんですが、オブジェクト指向って難しいですね。
>>417 OKOK理解した
javascriptの完了が待てればいいってことな
やっぱりAjaxじゃん。
422 :
デフォルトの名無しさん :2011/06/28(火) 10:54:07.56
なんとか方向性がわかりました、自己解決いたします どうもありがとうございました
423 :
デフォルトの名無しさん :2011/06/28(火) 10:55:11.51
Ajaxだと、DocumentCompleteのタイミングじゃデータの準備が出来ていないって事かな?
Ajaxだったらテーブルができるまでポーリングするほかないな。たぶん。
javascriptの完了待つのならnavigatedイベント拾えばいいんじゃないの? documentcompletedイベントだとだめだが
426 :
デフォルトの名無しさん :2011/06/28(火) 10:59:48.91
>>423 DocumentCompletedだとhtmlとそのヘッダー部分に書かれてるjsなどすべてでで発生するので
どれが完了したか調べないとだめ
ページを構成するファイルすべてが終わった際に発生するnavigatedイベントで考えればOK
たとえばこのスレWebBrowserで処理させてるとdocumentcompletedイベントは2回呼ばれるんじゃないかな?
一番いいのはパケットキャプチャしてAjaxでやってるリクエストを マネして呼ぶことだね。そうすればWebBrowserを介さないですむ。
3回だった・・・・ html,jsとあとなんだろw
XmlHttpRequestが非同期でやってる場合はNavigatedを使っても駄目だぜ HtmlDocumentのAttachEventでjavascriptのイベントを差し込めるが IEにはDOM変異イベントが存在しないのであった IE死ね
うむ。キャプチャしてクッキーまねてリクエストだしたら取れたな。 これが最速だろう。
>>434 jsを読むのとキャプチャとどっちが楽かってことですな。
× 死ね ○ 爆発しろ
>>435 まあそういうことだねw
でもjsはあれこれ悩まないでも入手可能だしベタで投げる要求書いてることがほとんどだしなあ
438 :
デフォルトの名無しさん :2011/06/28(火) 11:33:25.38
プロパティのオーバーロードって可能ですか?
もちろんさ! ただしvirtualかabstructに限る
インデクサなら どういう使われ方を想定してるのさ?
ワロタ
443 :
デフォルトの名無しさん :2011/06/28(火) 14:46:05.96
非常に初心者的質問でもうしわけありません 先日からVisual C# 2010 Expres でC#勉強しはじめたものです。 ウェブサイトでサンプルとか打ち込んで実行してみるのですが コンソールアプリ作って実行した段階でコマンドプロンプトがピロっと表示されて ウィンドウがすぐに閉じてしまい実行結果が確認できません。 ポーズかけておくにはどうしたらよろしいのでしょうか?
Console.ReadLine(); で適当に入力待つとか
ありがとうございます。 即消えなくなりました。
面倒だから結果だけ欲しい時はCtrl-F5で起動してる デバッグが必要なら、終了する前に止めるだろうしね
447 :
443 :2011/06/28(火) 15:01:17.47
デバッグ無しで実行(Ctrl+F5)だとポーズかかりますね デバッグ開始(F5)だとポーズかからず この違いはなにか意味あるんですかね?
>>443 てか、なぜコンソールアプリから入るw
Windowsフォームからでいいんじゃね
>>448 今でもご丁寧にコンソールアプリから解説してるサイトもあるからなあ・・・
ああブレークポイント最初から設定して実行(デバッグ開始F5)で実行すればよかった
ということなのかな?
>>448 いやーみてるサンプルサイトがコンソールアプリから書いてあるからかなw
作法もなにも知らないし順次こなしていこうかと。
windowsフォームから入るのも少しかんがえます。
ありがとうございます。
いやいや、ifとかforの段階ならコンソールもアリだと思うぞ 別にformsからでもいいが、デザイナべったりでイベントの書き方も分からないというのは避けたい
まー目的や趣味でどっちが良いかも変わるしな ただ、C#の良さはUIの作り易さでもあるから、Windowsフォームからで良いかなと コントロール貼りつけてダブルクリックするだけなのはMFCには出来ない芸当だし イベントについては当然学習は必要だけども、全くの初心者なら後回しでも良いと思う いきなりイベントの書き方を理解させようとすると混乱の元だし、考えなくてもとりあえずは動くからなー
僕も初心者で今年からこのスレにお世話になってますが コンソールから入るのがいいと思ってます
誰かも言ってたが、基本構文を覚えるときはシンプルな方法で覚えたほうが副作用無いと思う。 C#やるんであればフォームは、まぁ、避けられない道ではあるけども、VC#の挙動を把握するために下地は必要だと思う。 そのためには、C#だけじゃなく色々雑食なほうが見通しはいいと思う。 車輪の再発明は基本的に不要だけども、車輪のことを知るには車輪のコピーを作るのが一番早い。と、俺は思ってるなぁ。
VSでボタン置いたりして遊ぶことから入ってもいいと思うな 文字が出るだけじゃパッとしない気もするし
本人が興味のあることから始めればいいよ
DOSから入った人はコンソールからで Windowsから入った人はフォームからがわかりやすいと思う
>>457 別にそれでも構わんと思うけど、本もWebも入門と言ったらコンソールばかりだからな
フォームで入門したい初心者はそうとう頑張ってググるか、コンソールアプリで書かれた入門用のコードをフォームアプリに移植しながら学習するしかない
プログラムの挙動を確かめたいときはコンソールでさくっと書く。 UIのことは思考から極力排除したいから。
>>459 入門書や入門サイト書いてる人も同じ考えなんだろうな
プログラム始めたの25年前だから初心者のきもちはわからないな
>>461 玄人の経験から初心者には何を求めるかとその道筋をどう設定するかというのが何か無い?
463 :
デフォルトの名無しさん :2011/06/28(火) 20:19:01.17
おれは新人にUnity3Dからやらしてる
何でも一枚のフォーム上で済ませたがる入門ばかりで困る。 複数フォーム、MDIとか使った食べ応えあるのがいい
せっかくOOPL使うんだし最初からOOPを意識してたほうが後々よいと思う
MDIはMS非推奨じゃなかったっけ (まあ、Excelとか未だにMDIだが)
MDIつっても昔のようにウインドウの中にウインドウのアプリって減ってない? エクセルもあるときから別ウインドウのように開いてなかったっけ?
今時コンソールから入ってる入門書なんてないよw GUIばっかり。 こういう適当なこと言う人は信用ならんね。 ひょっとしたら他言語使用者向けのC#の入門書にはそういう趣向のものがあるかもしれないが、 少なくともプログラミング未経験者向けの本(C#でプログラミングに入門する本)にそんなのはない。 ある訳ないよ今時そんなの売れないもん。
最初に「GUIとは」「CUIとは」「簡単なGUIアプリの例」くらいは出すけど、 その後、文法説明に入るとしばらくコンソールって感じの奴が多くない?
独習とかコンソールだった気がするけど
猫でもわかる と wisdomsoft はコンソールからだな
472 :
デフォルトの名無しさん :2011/06/28(火) 21:12:04.97
>>469 まあ実行結果出すにしてもGUIの場合だとtextboxでも貼り付けておかないと
だめだろうしってことじゃないの?
あとGUIの場合はmainから始まらないでLoadとかShownにコード書くしね
どうでもいい争いw
「.NET」について解説している入門書は確実にFormが出ると思う 「C#」について解説している入門書はそうでもないと思う
お前らどんだけ入門書好きなんだよ
いつも心は初心者なんだよ
梅沢富男の夢芝居か
まあ、初心者用のスレだからなw
どの本でC#童貞を捨てたか晒してもいいよ
Javaから移籍組だから読んでない
>>467 Excelの何が嫌って
「別ディレクトリに有る、同じ名前のファイル」 を同一プロセス上で開けない所だ('A`)
>>479 最初は本読まずに、@IT・CodeZine等の情報サイトや個人ブログからだったなあ
C#始めたきっかけはSilverlightからだった
MDIはもうWin98の時代に一度死亡宣告されてるよね。 その割にしぶとい。 SDIの優位性を説く時に引き合いに出されてたIEも結局MDIになっちゃったし。 しかし、.NETのMDIはバグ多すぎるな
IEはMDIって言うのか? タブとMDIは、また別物だと思う (OperaはMDIだが) 複数のウィンドウでプロセスを共有する、という意味では まあMDI的と言えるかもだが
485 :
デフォルトの名無しさん :2011/06/28(火) 22:22:35.60
身近なMDIソフトがあるじゃないか・・・・VS
Beepの音量をC#で調整する方法はございませんか?
タブ型はあんまりMDIとは言わないだろう VS2010はドキュメントを子ウィンドウに分離できるようになったけど フローティングだから昔ながらのMDIとは全く動作が違うし
そういやMTIなんてのも有ったな…w GIMPみたいな奴か
フローティグっていう言葉の意味は普通はドッキングしてないって意味。 MDIかどうかとはあまり関係がありません。 っていうか、あれがMDIじゃなくて何がMDIよ。 プログラマにもこういう人いるのな
491 :
デフォルトの名無しさん :2011/06/28(火) 22:40:06.28
タブ使ってるかどうかもMDIと関係ないな。 MDIはメインメニューにウィンドウ選択するアイテムをマージできるけど、 単にそのメニューの同じ機能をタブに持たせただけじゃん。
494 :
490 :2011/06/28(火) 22:45:58.35
と思ったけど、2010からは確かにメインウィンドウがMDI親になってないなw そんなの試したことないから気づかなかったすまん
親から外に出せないウィンドウなんかもう要らんよ
マルチモニタ環境での利便性のためにああなったらしいね
ボタンクリックイベントにだらだら書いて、結果をメッセージダイアログをぴろ〜んって 子供騙しにもなりゃしない。つか、今時子供の方が眼が肥えてる。 無関心無感動じゃなく、低レベル過ぎて冷めてるんだよな〜。
なにいってんだこいつ
ボタンクリックイベントにだらだらコーディング楽しすぎワロタ
ボタンクリックイベントにだらだらコーディングしないと上司に怒られるオワタ
イベントハンドラには、確かにあまり長々と書きたくは無い。 でも、イベントハンドラに一行も書かない事が美徳であるかの様なMVVM原理主義もどうかと思う。
イベントハンドラの中身を他のクラスに書いてるだけ が一番タチが悪い 結局そのクラスからフォーム上のコントロールに直接アクセスしたりしてて何の意味もない
メッセージボックスがポンポコ出るアプリなんて糞
上の方で言ってるけどFormが無くても動作できるならそれでよし
まあ、無難なところかな。 初心者には全く必要ないけどw
上のPrimeもそうだが、初心者はクラス分けようとすると 利用される側が利用する側をやたらと呼び出す構造にしてしまいがち 本当に必要ならイベントとかインターフェイスとか使えばいいけど、 それが本当に必要な場面ってそれほど多くなくて、複雑で取り回ししづらくなるから可能なら避ける
便利にしようとすると相互作用させたくなるもんなー
508 :
デフォルトの名無しさん :2011/06/29(水) 01:06:20.19
「将来の拡張性」って言う魔法の言葉は、今一つ役に立たなかったりするけどね
C#で画像をAA化するソフトを作ってみたいんですが、何が必要ですか?
よくある漢字の濃淡に置き換えるやつ? それとも職人がつくるようなAA? 前者ならグレースケール化して一定範囲の明るさの平均値を漢字等に置き換える 後者なら輪郭抽出とかかな? 職人に訊きなw
PCが出力している音声を保存する方法を探しています。 どのようなAPIで可能でしょうか?ぐぐるためのヒントなど いただけたらと。
自分はPHPしかできなくてC#とCとJavaとHSPとかじってみたんですが 一つ勉強すると他の言語を触らなくなるので書き方とかわからなくなります PHPはもう何年もやってるのでブランクあってもすぐかけるのですが 他の言語だとそうもいきません ここのスレの先輩方はどうやって克服して言ってるのでしょうか?
そんなの普通でしょ
慣れです
経験して積み重ねていくしかないと思うけど・・・ しいて言えばメイン言語との差分を覚えていくって感じにはしてる WEB系なら大きな造りは基本変わらないから
サービスの制御について質問なんですが、ドキュメントを読むと ServiceController sc = new ServiceController(サービス名,マシン名) sc.Pause(); で別PCのサービスの制御ができるようで、実際にやってみたらできました。 ただ、認証をしていないのですが、これはなぜでしょうか? 一度リモートデスクトップで入っているので、その設定を勝手に見ているからなんでしょうか?
え?
ここでコードを晒したら誰かが採点してくれたりしてくれますか? コードはコンソールプログラムです
いつもここでお世話になっているものです 最近コンソールはC#で作る必要ないかなと思うようになりました コンソールならRubyとかPythonのほうがいいような気がしました できるならCがいいのかもしれません C#は手っ取り早くGUIプログラムを綺麗なコードで作れるのが一番のメリットだと思います
俺的に今更Cは無いな…C++なら同意しとく
今更コンソールアプリ作るとしたら、大抵はGUIアプリのオマケじゃないか? だったら同言語で書くよ
C#にとってはCUIもGUIもただのライブラリだからな・・・
自分用のちょっとしたツールなんかは、GUIが必要でなければコンソールでやっちゃうかな C#っつーか、PowerShell辺りで十分な事も多いが
528 :
デフォルトの名無しさん :2011/06/29(水) 21:58:46.12
楽さで選ぶとExcelVBAが・・・
とりあえず、処理は別クラスにして、簡単なGUIにしちゃうな。
>>528 こないだ初めて仕事で簡単なのを書いたが
俺には苦痛以外の何物でもなかったぜ……
531 :
デフォルトの名無しさん :2011/06/29(水) 23:33:05.84
>>524 C++はCほど厳密にメモリ管理できずC#ほど手軽でもない中途半端すぎるクソ言語だとGObjectの作者が言ってた
Cにメモリ管理なんてあったっけ 意味不明だな
まあ、PC98でDOS動かしてた頃なら、メモリ管理も厳密にやらないといけなかったんだろうけど
シングルプロセスの時はメモリ管理がアバウトって話をよく聞いた気がする。 未使用領域を確保しないで使うとか。
535 :
デフォルトの名無しさん :2011/06/29(水) 23:45:48.06
>>532 CとC#とPythonの混在が最強だろう
と、初心者が言ってみる
C++がCよりメモリ管理があいまいだっていう発想は普通はないよな。 どういうことか聞いてみたいな。
Pythonはsubprocessの仕様がアレなのでWin環境では実用といいがたい
スタックにインスタンス置くとかじゃね 実際小さい規模の開発なら何でもかんでもスタックに置いて参照渡ししまくるようなC++らしいやり方はとても便利で メモリをそんなに意識せずに結構テキトーに扱えるよ 複雑になってくるとあまり役に立たなくなるけど
それはそのフォントのグリフ自体に設定されてるマージンじゃないの? だからPaddingとか関係ない 適当なサイズのビットマップを作成して x=0 の位置に文字を描画 ↓ 画像左端からピクセルの色をチェック ↓ 背景色以外のピクセルが来たらその x 座標が l の左側のマージン もちろん糞遅いから GetPixel なんか使うなよ
書き忘れた 各行について調べて、見つかった x 座標の最小値とるんだぞ
C#勉強中の初心者ですが、処理をクラス毎に分けるというのがよくわかりません フォームアプリケーションで例えばテキストボックスに入力された文字をテキストファイルに書きだす この処理だけでもForm1クラスとは別のクラスに書いて呼び出したほうがいいんでしょうか? 別クラスにすると、テキストボックスのインスタンスをどうにかして取得するか、 引数としてテキストボックスのテキストを渡すということをしなければいけないのでどっちがいいのかわからないです・・・
544 :
デフォルトの名無しさん :2011/06/30(木) 07:54:33.47
>>543 そのくらいの規模なら必要ないでしょ
ある程度規模が大きくなるとこの辺は分けたいなあとかいうのが
でてくるだろうからそのときでいいんじゃないの?
>>543 なんだこれ
だせぇなって思うまではクラスは使わなくていいよ
>>543 初心者はとりあえずクラスやインスタンスのような言葉は考えるな
とりあえず直接文字列をテキストファイルに書き出せばおk
547 :
543 :2011/06/30(木) 09:31:34.61
返答ありがとうございます 複雑なコードになりそうな時だけ、別クラスに書きこむことにします
ぐおおおおおおおおおおおおおお 自分でComplexクラスを作ったばっかりなのに・・・ そもそも今まで虚数計算出来ないこと自体が謎だったんだ
550 :
デフォルトの名無しさん :2011/06/30(木) 09:56:41.97
>>549 自分のとMSのを比べれば
色々勉強になるから全くの無駄にはならないじゃん
>>551 実数部と虚数部を用意するだけなんだけどなw
main.csからfile.csという外部ファイルのクラスは読めるのですが file.csがfolderっていうフォルダにに入ってた場合(folder\file.cs)どうやってmain.csから読み込むのでしょうか?
.NET Frameworkって、上位互換だから4.0入れとけば大丈夫、 って誰か言ってたからそうしてたけど、 今日初めて、2.0をインストールしろと要求された。 ということは、1.0から4.0まで全部入れてないと 動かないアプリが出てくると言うことですか?
>>554 機能としては上位互換だけど、
XPに入ってるのは2.0
>>553 C# に物理パス関係ないんだけど。
C 言語とかと勘違いしてない?
>>554 バージョン指定を明示してるんじゃないかな。
>>554 元々.NETは出来る限り後方互換は保つようにするけど
原則としてそのアセンブリに合ったバージョンのものを使うべしって指向
で、その方針を強化するために.NET 4ではapp.configに明記しない限り
.NET 2.0用のアセンブリは.NET 4でロードしないようになった
C#ってJavaに勝てるんですか?俺的には今C#の勉強をしてて無駄になったら後悔しそうなんです
マジで吹いてしまったw
ABC順で並べたらC#の圧勝なわけなんですけど
>>558 Java も C# も両方残るでしょ、確実に。
むしろC#はJavaを含んでいるといっても過言ではない
まぁC#覚えればJavaにスライドするのはかなり楽だし損にはならない
んだんだ
Javaを少しだけ簡単にしたのがC#みたいな物だしな
Javaはオワコンの雰囲気がただよってる。まるでCOBOLのような。
567 :
デフォルトの名無しさん :2011/06/30(木) 13:53:42.83
最初のポストコボルであったPL/1からずいぶん経つけど 致命傷負いながら生き残っているよな 寧ろPL/1の方が青息吐息だよ
プログラム・ランゲージ ナンバー・ワン!
>>566 そうなんですよ
そのJavaにC#が負けると僕の勉強が水の泡に鳴るので
ワラタ
言語なんて道具だろ どのプラットフォームでどういう物作るかで道具を使い分けるくらいのつもりでいろよ
>>570 安心しろ
何勉強しようが10年経てば水の泡だ
たとえ組み込みの世界でもな
>>567 COBOLとPL/1はほぼ同時期に開発された
俺はありとあらゆる言語を覚えたいが 今覚えてないのはLISPくらいか 後はほとんどマスターしたな。
>>576 お探しのページは存在しません
2秒後にトップページに移動します。
61億ドルじゃなかったっけ
>>568 Lua人気上がってるのかー
ちょっと意外だな。や、良い言語だけれdも
>>575 Dとかgoとかもかよw
HSPとかなでしこも忘れないで
いや忘れてOKだろ
ゲーム作るときってHSPのほうがいいですよね だってHSPで作ればライブラリなんてインストールしてない環境でも動くし C#でゲーム作るとたいていはXNAをインストールしたり場合によってはC#4.0も入れないと動かないし
C#に慣れてる人がHSP使うとストレスで剥げるよ
584 :
デフォルトの名無しさん :2011/06/30(木) 20:12:27.79
staticなクラスのプロパティに変更が加えられたことを通知するにはどうしたらいいんでしょうか
でもおもしろいゲーム作ったらユーザーはどうにかして動かそうとするけどね ランタイムなしで動いても1回起動して終わりがほとんどでしょ
いやHSPは論外だろ
587 :
デフォルトの名無しさん :2011/06/30(木) 20:24:24.18
>>584 クラスにOnChangedイベントなどを作成して
プロパティのsetterで呼べばいいんじゃないか?
C#もWPFで禿げそうなんだけど。。。まだ、使う時期じゃないのかねぇ? いろいろ、足りないものが多すぎる。
Blendをタダでよこせ
VSだけでは状態遷移を書くのが不便すぎるWPF。 Qtにはグラフィカルに編集できるエディタが無料で付いてくるぞ。 なんとかしろMS
>>584 イベント使えばいいけどメモリリークには注意しろよ
登録解除しない限り通知先が絶対にGCされなくなる
イベントに限らずインターフェイスでもデリゲートでも同じ
WeakEventにしようぜ
>>592 デリゲートの登録・解除はわかるけど、インターフェースってどういうケース?
オブザーバーパターンでも念頭にあったんじゃない? C#でそんなのやる奴はいないけどさ
メモリリークなんかどーだっていいんだよ うるさすぎ アプリ再起動すればいいだけ
String.Internとかだとプロセス境界超えるけどね
HSPは生産性が高まる実際言語だな C#はクラスとかメソッドなどの難解な概念を見つけないとだめだから
おじいちゃん、その話はもう終わったよ
ファミリーベーシックで生産性がどうのこうの
C#の参照型=Cのポインタ
はい、次の方。
はい、次の方。
goto next;
605 :
デフォルトの名無しさん :2011/06/30(木) 22:26:01.20
なんだかんだいったところで、Windowsアプリは C/C++じゃなきゃ、お金をとれないよな
BtoCかBtoBかで違うっしょ、そういうのは
メトロノームはC#で作った方が精度いいしなぁ
メトロノーム… メトロ… Metro…!(ビクンビクン
.netあまつさえVBAでお金とりました。お客の希望でしたが、すいません・・・
なんだかんだVBAは寿命が長い
いい加減、PowerShellやLightSwitchに座を明け渡して欲しいモンだが 中々しぶといよなあ >VBA
VBAよりもLINQを使おう!
みなさんのお知恵を借りてC#の勉強は続けて生きたいと思います やっぱりJavaも吸収したいのでJavaもやることにします C#でアンドロイドアプリがつくれるようになるのが理想ですが
Mono for Androidなるものがあったりするんだけども、有償なのよね。 Unity は Android 対応してないんだっけ?
>>613 金出せるならC#でAndroidアプリ作れるよ
アンドロイドってなに?メトロイドの仲間? メトロイド メトロイ メトロ メトロノ
オランダ妻は電気ウナギの…なんてのが昔あったな
618 :
540 :2011/07/01(金) 00:59:38.35
619 :
422 :2011/07/01(金) 07:36:18.85
君はプログラマに向いてないよ、やめてしまえ
622 :
デフォルトの名無しさん :2011/07/01(金) 09:48:25.04
>>621 概要の把握には助かりました
あと、実装部分で参考になる書籍、リンクがあったら助かります
ちなみにプログラムそのものは目的じゃないです
httpヘッダーがわかればHttpWebRequestを使ってjsが入手してるxmlだっけ? を取得するコードを書いて表を作るとかすればいいんじゃないの? まずはxmlを入手するコードを書くしかないね
ググってわからない人に書籍を教えても わからないって言うだけだから無駄なんだよね
626 :
デフォルトの名無しさん :2011/07/01(金) 10:07:56.45
おもったより簡単そうですね、助かりましたありがとうございます
この程度人に聞かないとできない時点で駄目駄目なんだ 調子に乗るな
やっぱC#をメインにするとサーバ用のモジュールとかモバイルアプリ開発ができなくなるからC#は作りたいものがあるときにそのつど勉強することにします
まぁそんなツンケンするなよ
本職でなくちょっと早めに必要だったからじっくり調べる時間も無かったってところだろう
まぁ
>>627 の言うこともわかる。
社内でそんなの言われたらちょっとキレるわ
キレるレベルなのに他人にはツンケンするなと言う 俺はそんなお前にキレるわ
>>630 いやいや、表に出さないレベルにちょびっとだけ内部ギレするかんじ
言いたいこともわかるけどソコまで言わないでも てかんじ
マジでコイツにイライラする
マツコに見えた
マジで恋する5秒前
635 :
デフォルトの名無しさん :2011/07/01(金) 19:11:27.65
メトロノーム作りたいんですけどC#って精度いいですか?
腹時計よりはいいよ
彼は結局メトロノームは作れたのだろうか そこがすごい気になる
メトロノームの話題が定期的に発生するのですが遅延が増大して困っています。 もっと一定のリズムで荒れないでしょうか?
っていうか、こういう人と笑いのツボがズレまくってる奴(間違いなく友人は一人もいないだろ) 本気で鬱陶しいな。
笑いのツボにあったレスよろw
つーか死ね。マジ死ね。腹膜にガン細胞播種しまくってのた打ち回って死ね。
腹膜にがん細胞を播種しまくってのた打ち回って死ぬ ってのが笑いのツボでよろしかったでしょうか?
どっちかってえと秘孔を突いてやって欲しいな
書きミス ×粘着して ○感謝クレクレ君に粘着されて
647 :
デフォルトの名無しさん :2011/07/01(金) 23:37:38.09
boolean 正常なときにtrue,おかしいときはfalse byte ものすごく小さい数字を使うとき char 一文字しか使わないときに short 比較的小さい範囲の数を使うときに int long float 少数を表示するときに使う double 使い分けが分かりません longやdoubleが必要な時ってありますか? それとも最初からbyte,short,intを使わず、longを使い、 floatを使わずdoubleだけ使えばいいような気がするのですが パフォーマンスに影響あるのでしょうか?
俺の場合。 char 文字列 short ケーキですか。 int 整数はほとんどこれ long おいしいの? float データサイズが気になるなら。 double 基本こっち。 って感じで使ってるから、4つかな?アクティブな型って。
あ、bool忘れてた。 bool 超使う。特に関数の戻り値でifの分岐したりするときはかなり便利。
とりあえずbool, int, doubleを使い分ければいいよ
bool,charは立場が全然違うから置いとく byteも割と別の立場 数値型としては大体はint,doubleで足りる longは稀にだがintで桁数が不安なときに floatはSystem.Drawingで仕方なく shortはまあ時々Win32APIとかが要求してくるよね unsigned系はほぼ使わない
doubleでもfloatでも要が足りる場合はdouble intでもlongでも要が足りる場合はint これが常識。 でも前者は理解できるが後者はよく考えるとちょっと奇妙な気がしないでもないな。 ただの習慣の問題だとは思うが
>>648 >longやdoubleが必要な時ってありますか?
それはひょっとしてギャグで(AA略
…まー、C#で新規実装するなら
bool, int, double だけで十分なケースはかなり多いと思うけれども。
(charは、数値文字参照コードを扱う必要が有るなら使う)
「過去のソフトウェア資産で出力されたファイルを、C#で読み込みたい」 とか云う場合には
ファイルフォーマットによっては、より小さい型を細かく使うのがベターな場合も有るっしょ。
unsigned系は 「負の値を入れない事が確定している」 ケースなら、俺は積極的に使うなー。
decimalェ…
longは時間関連でたまに〜って感じ
積極的な使い道は限られてるからCLS準拠じゃないんだと思うけど.... 符号なしの型の使い道って、せいぜい「これに入っているのは値じゃなくて ビットイメージですよ」ってのを暗示したい時ぐらいじゃない?
660 :
デフォルトの名無しさん :2011/07/02(土) 00:00:24.18
16Bitで組んだことあると、long使う癖が抜けないんだよな 昔のintは16Bitだったからね
単純に、「2Gだと不足するけど、4Gなら必要十分」とか
…あんま実例が思い浮かばんな
>>660 あー、あるある
俺はWin32APIの勉強始めた頃、「数値型はLONGを使いましょう」みたいなのを読んで
以後、LONGで指定する癖が付いてた事が有るわ
662 :
デフォルトの名無しさん :2011/07/02(土) 00:06:59.40
>>661 あと、16bitだと、当然レジスタも16bitだから、変数をintで宣言すると最適化でレジスタ使ってくれたんだよね
で、少しでも大きな数を使いたいから、16bit処理系ではunsigned intが標準的な変数だった
>当然レジスタも16bitだから、変数をintで宣言すると最適化でレジスタ使ってくれたんだよね さすがに勘違いが酷いと思う
☆デラックス
まあ、shortとかintを使う理由って 結局の所はパフォーマンスだよなあ L2キャッシュ・L3キャッシュのヒット率とか、ガベコレの発生頻度とか考えると 必要十分な範囲で、可能な限りコンパクトに纏めたい気はして来る
666 :
デフォルトの名無しさん :2011/07/02(土) 00:12:13.84
>>663 16bitのC言語では当然の最適化だったが
符号なし整数はbyte以外CLS非準拠… クラスライブラリで使うとMSに怒られるよ
後、C#からはちょっと逸れるが データベースのカラム設計とかな >型のサイズを気にする
で、結局メトロノームは機械式の方が精度いいのかい?
>>665 shortなんか使ったらかえってパフォーマンスは落ちる気がするが....
少なくともint比で改善はしないだろう。
shortの用途って符号拡張ぐらいしか思い浮かばない
マイコンでEEPROMにデータ保存して、COMでPCに吸い出したりしてると、shortもunsignedも使う。 一般的な用途とは思えないけど。。。 そろそろ、マイコンでSDに保存が普通になるだろうが。。。
まさに符号拡張とかビットイメージに使う使い方だな
ビット演算すると強制的にintにされるから俺は考えるのを止めた
RS232をCOMっていうな
int と double が基本なのは、それが大体一番高速だったから。
32bit CPU + 64bit FPU(浮動小数点ユニット)という構成だった時代が長い。
最近は CPU が64bit化しちゃってるし、
SSE とか MMX 命令だと32bit浮動小数点×4命令持ってたり、
GPU が32bit浮動小数点を基本に動いてたりで、
必ずしもint/doubleが速くない。
>>672 キャッシュヒット率の改善という意味では、構造体とか配列の場合に限ってshortが有効な場面もあるかも。
>>657 long 同士だったら long になるはず。
32ビット未満なら32ビットにするっていう仕様のはず。
C#でゲーム作るのにXNAとかDXライブラリがあるのは知ってますが DirectXを直接扱うのは出来ないのでしょうか?
可能だけどラッパーのXNA使わない理由がよくわからん DXライブラリもラッパーだけどVC++向けに作ってるようなところあるしなあ
質問があります. 配列同士の足し算はLINQでどのように記述すればよいのでしょうか? たとえば, v1 = {1,2,3,4,5,6}; v2 = {1,1,1,1,1,1} に対して {2,3,4,5,6,7}という値を得たいと考えています.
Zip
>682 ありがとうございます. 私の説明が不足していましたが,v1,v2,...vnとn個のベクトルに対して配列同士の足し算をするにはどうすればよいでしょうか?
そのベクトルというのが何を指すのか分からんがZipはZip 二次元とか三次元ベクトルを表す型なら加算演算子ぐらい用意してるだろ
685 :
デフォルトの名無しさん :2011/07/02(土) 10:16:05.41
正規表現のようにLinqも独立させるべき?w
687 :
デフォルトの名無しさん :2011/07/02(土) 10:28:21.06
あるんかい
>684 説明が不明瞭ですみません... v∈R^nを満たすm個の配列(たとえば{v1,v2,v3,...,vm}⊂R^n)があって これらののΣvを求めたいと考えています. Zipは2つの配列間の操作と理解していますが,2つだけではなくm個全ての総和を求めたいと考えています.
ならAggregateも使う
>>683 それはVector型作っておいて、Vector型にoperator+ を定義しておいて、
Aggregate で足せばいいんじゃない?
どうしても、ベクトルを IEnumerable 使って抽象的に扱いたい場合、 Aggregate の中で Zip。
そういう数値計算的なアレなら普通にループ回せばいいのに
任意次元のベクトルで
>>690 のようなことをすると一時オブジェクトが大量発生してとんでもなく非効率になるので
Aggregate使うならVector型に+=相当のメソッドを定義しとく
でもそれじゃ結局ループ書くわけでLINQの意味があんまり…
int[] v3 = v1.Select(n => n + v2[v1.ToList().IndexOf(n)]).ToArray();
効率とか速度が気になるならそもそもLINQなんて使わないし
LINQが出てくるような処理はネットワークやIOがボトルネックになることが多いからどうでもいい でもこの場合はそうでもなさそうだしLINQ使ったからって分かりやすくなるわけでもないし…
int[] v3 = v1.Select((n,i) => n + v2[i]).ToArray(); 例外とかは知らん
ゴミだな
まだしばらくは.net 2.0でいいよな
LINQは天使
また暇人が速度測り出すんだろうなw
半角英数字20文字を1行に1データとして、100万行あるとします これをソートするときに一番効率のようソートアルゴリズムは何でしょうか?
ソートしないで済むのが最善
効率とはなにか 時間か メモリか コード量か
そーっとやればいいかも
705 :
688 :2011/07/02(土) 14:09:53.47
いろいろ参考になりました. ありがとうございます.
早く終わればいいです
32ビット整数に上の桁から順に頭から4文字を詰めて、その値を使ってクイックソート それを階層的に5回やるとか
708 :
707 :2011/07/02(土) 15:55:47.44
いや意味ないか 普通に文字列でクイックソートすればいいんじゃね
あ、テスト環境はE8400、VistaSP2、VS2010です
今時100万のデータとかでもメモリーに乗っちゃうから、プログラミングのお題としては 面白くも何ともないなw
1文字2byte * 20文字 * 100万行 = 40MB 余裕過ぎるな
>>683 Matlab使え。
実際数値計算をアプリに組み込みたいなら話は別だが、
プラットフォームがPCで、数値計算そのものが目的ならMatlab選択を排除しちゃ、
苦労するだけで何もいいことはない。
命令口調クンは相変わらず馬鹿だなw
スレチかもしれない、ごめん。 プログラミングのこと全然知らないんだけど、常駐プログラムみたいな感じで、 ネット上の特定のデータを定期的に取得するプログラムを作りたいと思ってます。 そのために選択するべき言語はC#でよろしいのでしょうか?
>>715 取得したデータをどうするかに寄る。
何所かに保存するとか、自動的にメール配信するとか、画面上にダイアログ出して表示するとか。
そのくらいの用途なら、俺はPowerShellでやっちゃうかな。
常駐しなくともタスクスケジューラで一定時間ごとに起動するってのもあるよね
岡崎図書館事件はググって読んでおけよ 簡単に前科つくぞ
>>718 さっき未解決事件スレ見てたから一瞬ビクっとした。
>>716 返信ありがとう。
取得した数値データはエクセルのようにまとめて表示できるようにしたいと考えてます。
PowerShell調べてきます。
いやいやC#でいいじゃん
>>681 行列の内積とか外積とか扱うには、そういうことが得意なDirectXに任せちゃうのがイイと思う。知らんけど。
DirectXでサポートされてる線形代数って2,3,4次元のベクトルと行列だけだよ まさかDirectCompute使えと? チェーンソーで鉛筆削るようなもんだぞw
漢らしいな。逆に、ソレ見てみたくなった。
小学生の頃はチェーンソーで鉛筆削ってたが、中学以降はシャープペンシル使うようになったからなぁ
昔の人ってホントに字が綺麗なんだよな。くっきりはっきり読みやすい。俺のなんかミミズが下痢便で苦しんでのたうち廻っているようにしか見えんのにさ。
昔も字が汚い人はいたがそういう人は あまり書かないから現存してない、とかじゃ? 俺も汚いんだよな・・・
俺は時々雰囲気すら出てない漢字を書いてしまう。 自分でどこか違うなぁって重いながらどこが違うかわからな。
まず日本語
ダーウィンの進化論を思い出せ。 字がうまい人は食べ物にありつけず自然淘汰されたんだ そうして生き残ったのが俺たちの祖先って訳さ
ASP.NETの本、買ってきて読み始めたんだけど、 ほとんどがWebデータベースの説明みたいだ。ツマンネ。 もっと幅広いジャンルで、Webアプリでこんな面白いことやってる、 どうやってつくってるんだ?みたいなサイトや本ってないですか?
機能としてはそんなもんだしねえ 機能を利用して何をするかは解説本の範疇じゃなく事例本の範疇よね
734 :
デフォルトの名無しさん :2011/07/03(日) 21:13:41.50
結局、C#の使い道ってwebだけ? デスクトップアプリなんかは、MFCなんか書くのが普通ですか?
フォームにwindows media playerをおきました 矢印キーで再生位置を変えたいのですが 左キーを押すと-5秒戻って、右キーを押すと+5秒進みたいのですが keydownイベントを入れてやってみたのですが、1回押しただけならちゃんと正常に再生位置を変えられるのですが 押しっぱなしにして離したときに再生位置が変わりまくります 押しっぱなしにする事で処理が蓄積されているのだと思うのですが 一般的なプレイヤーのように離したときの位置で再生するようにできませんか?
>>734 いや、普通に Windows デスクトップっつったら .NET。
MFC はない。
パフォーマンスが必要な大規模アプリに限って使いはすると思うけど、
普通は C# か VB で書く。
.NETに普通のメニューバーないのかな WinAPI叩いたときみたいなの
>>736 大規模って。。。
mfcは最も開発される機会の多い中規模開発をターゲットとして設計されてるんだが。。。
大規模だと、unix系OS独占なので、mfcも.netも出番はない
739 :
デフォルトの名無しさん :2011/07/03(日) 21:43:43.92
>>736 Windows デスクトップアプリケーションで.NETなんて
みたことがない。
個人ユースかフリーウエアってノリだよな。
BtoBではそれなりに
大規模ってどういうの? mayaとかblenderは大規模?
>>739 Visual Studio 2010 と Blend。
最近はWindowsアプリもC#の案件多いよ。 MFCでやってきたけどC#はヤバイくらい簡単。 これはもう専門職じゃない感じ。 フィーリングで作れちゃう感じだよ。 言語仕様がというより.Netフレームワークが便利すぎるんだろうね。
何回繰り返したか分からないやり取りだけど 見識の狭さを露呈するだけだから見たことがないとか言い切らない方がいい
確かに簡単だね。ひとつ欠点を上げるとしたら、 全部、見た目が同じになる。 世界観が作りにくい、ってことか。
>>746 Expression Encoderとかあるから、やる気が有れば出来るんじゃないか
世界観ワラタw FFでも作ってんの?
750 :
デフォルトの名無しさん :2011/07/03(日) 22:37:14.95
Formsは簡単と言われるけど、データバインドとかのオブジェクトモデルは全然理解されてないよね
むしろWPFは世界観(笑)を作りやすくなってるけど
商品イメージと言うかなんと言うか
世界観いいな。今度職場で使ってみる
世界観ってのはここではウインドの外観のことを指してんの? それともソースコードを眺めた時の事をいってるの?
もっとこうブワッという感じで ババーンってなって ビシッと決まった画面 よくわからない^q^
これは酷いw >大規模とか中規模とか どんな意味で言ってるのか、さっぱり解らねーぜよ。 一口に 「大規模」 って言っても、 アプリの開発工数的に大規模なのか 搭載される対象が大規模なのか (部屋一つ占拠する様な産業機械とか) 成果物を使って出来る事が大規模なのかで (OSとか) 全是意味が違って来るっしょ。
>搭載される対象が大規模なのか (部屋一つ占拠する様な産業機械とか) そんな大規模はねーだろw
>>735 WPFのRepeatButton相当のコントロールを探すか作るかすれば
ウチは中小企業だが上司が中国人で、ハードの開発担当者が北朝鮮の在日さんで、案件は防衛庁向け無線移動局の○○です。大規模間違いなし。
俺もトラックの案件やってるから大規模だわ
俺なんかビルの光熱費請求アプリつくってる。 ビルだぜビル。 部屋ひとつとかハナクソだろ。
764 :
デフォルトの名無しさん :2011/07/04(月) 00:05:10.98
>>761 嘘乙
官公庁向けで.NETなんて100%ありえん
>>764 761のものとは全然違う(多分)けど、うちも一応官公庁向けのものを.NETでやってるよ
ありえん、ってのは何を根拠に?
願望だろw
>>758 。。。OSは全然大規模じゃないよ?
大きさも、部屋一つ分占拠してようが産業用機械も組み込みに分類される
(ソフト開発の規模的には小規模な方)
大規模っつったら、工数の多さとそれに伴う予算の大きさ
http://search6.jugem.jp/?eid=737 > マイクロソフトがWindows Vista(1月30日発売)の開発に投じた金額
> は5年間で推定75億ドルにのぼるという。これに対して、アップルの
> 全開発費は5年間で30億ドルほど。
大・中・小の基準は人それぞれだけどね……
OSって小規模なの?
75億つっても5年でだぞ。 1年あたりだといくらだよw
ほっとけよ。自分の尺度でしか物を見られない人なんだから。
割り算くらいやれよ
5÷75
e?
75÷=5
VC#で作ってるんですけどassembler.csっていうのが勝手に作られて そこにパソコンのユーザー名?だかなんかが載ってしまいます なるべくこういう情報を載せたくないのですがこのファイルって消してもいいのでしょうか?
exeにも埋もれてるけどね
C#で作られてるフリーソフトは皆埋め込まれてるから誰でもみれちゃうってことですか?
まあよっぽど珍しい名前の人がPCのアカウントとして実名入れてる場合を 除けばその程度の情報漏れたところで知れてるけどねw
プロジェクトのプロパティのアセンブリ情報の話?
デバッグ情報をnoneにしろよ低能
OSをインストールするときやユーザー登録には本名は使わないのが普通だよね?ね?ね?
俺はPCの名前はハンドルネーム入れてる。OSのアクチはネットでやってるが、ユーザー登録はしたことがない。
クリックワンスでIDEからテスト用証明書作ると バッチリ作成者がユーザー名だな
個人情報ダダ漏れとかちょっと^^; ユーザー名がアイドルやアニメキャラの奴は涙目だな
だからC#ってクズなんだな
>>787 今までの話はほとんどC#関係無いけどなw
789 :
デフォルトの名無しさん :2011/07/04(月) 16:30:22.83
独習の初心者で、visualstudio2010Expresでwpfに取り組んでいます xamlデザイナーでMainWindowにCanvasを追加して、そこにメソッドでコントロールを追加させるときに MainWindowのメソッドでは void controlAdd(){ this.canvas.Children.Add(new Rectangle() ) } こんな感じで書いています ここで、例えばRectangleを継承した独自クラスに「インスタンス自身をメインウィンドウのキャンバスに追加する」 というメソッドをもたせるときはどのように「メインウィンドウのキャンバス」を指定してあげるのがいいんでしょうか
790 :
789 :2011/07/04(月) 16:33:53.14
独自クラスには class myRect : Rectangle{ void controlAddEx(){ 「メインウィンドウのキャンバス」.Children.Add( this ) } } こういう感じでメソッドを持たせてあげるとすると、 要はどのようにしてメインウィンドウのインスタンスを渡してあげるかということになると思うのですが Window main = System.Windows.Application.Current.MainWindow; ((MainWindow)main).appCanvas.Children.Add(this); 一応、これで渡してあげれてるのは確認しました でもちょっと煩雑な気がするので、もうちょっと見た目がすっきりするような書き方があったら教えてください
792 :
789 :2011/07/04(月) 17:19:09.59
>>791 Parentプロパティをどのように使ってメインウィンドウのインスタンスを把握するのですか?
class Rectangleのインスタンスを作成して、その時点ではParentは空ですよね
少しは試せクズ Children.AddしてデバッガでParentプロパティ見てみろ
ツリー構造なのだから親の親の親の…と辿っていけばそのうちWindowクラスに辿りつく
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
やさしいと思うけどなw
>>789 > ここで、例えばRectangleを継承した独自クラスに「インスタンス自身をメインウィンドウのキャンバスに追加する」
> というメソッドをもたせるときはどのように「メインウィンドウのキャンバス」を指定してあげるのがいいんでしょうか
Rectangleはsealedなので悩む必要ありません。
798 :
789 :2011/07/04(月) 18:06:16.50
>>793 namespace WpfApplication1
{
public class Class1 : UserControl
{
public Class1() { }
public void contAddEx(){
//「メインウィンドウ」.canvas.Children.Add(this);
//メインウィンドウをどう指定するか
//なにかしらのParentプロパティを辿ってMainWindowのインスタンスを取得する?
}
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Class1 cl = new Class1();
//ここでは cl.Parent=null
cl.contAddEx();
}
}
}
こんな感じなんですが、どこでどのインスタンスを何に向けてAddすればよろしいんでしょうか?
799 :
789 :2011/07/04(月) 18:09:33.49
>>797 Rectangleは継承できないってことですね
ご指摘ありがとうございます
UserControlなんて今まで一言も出てこなかったな 情報は漏らさず書けよトンチキ
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Canvas c = new Canvas(); AddChild(c); Rectangle r = new Rectangle(); c.Children.Add(r); FrameworkElement e = r.Parent as FrameworkElement; while (e != null && !(e is Window)) { e = e.Parent as FrameworkElement; } } }
802 :
801 :2011/07/04(月) 18:12:42.19
あ、理解できたら自殺してくださいね^^
優しいなあ
804 :
789 :2011/07/04(月) 18:49:23.81
>>801 教えていただきたかったのは
>>789 > 独自クラスに「インスタンス自身をメインウィンドウのキャンバスに追加する」
> というメソッドをもたせる
ということでしたので、そこからだと、
public partial class MainWindow : Window{
public static FrameworkElement e;//追加
public MainWindow()
{InitializeComponent();
Canvas c = new Canvas();
AddChild(c);
Rectangle r = new Rectangle();
c.Children.Add(r);
//FrameworkElement e = r.Parent as FrameworkElement;
e = r.Parent as FrameworkElement;//追加
while (e != null && !(e is Window))
{e = e.Parent as FrameworkElement;}
}
}
としたうえで、クラス側ではこんな感じにして
class Class1{
void contAdd(){ (MainWindow.e as MainWindow).canvas.Children.Add(this) }
}
メインウィンドウの場所を示す目印を置いておく感じで使おうということでしょうか?
参考にさせていただきますありがとうございます
>>789 を100回読め
Addした後で親がわかってもしょうがない
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Canvas c = new Canvas(); AddChild(c); DokujiClass r = new DokujiClass(); c.Children.Add(r); } } これだけだろ 独自クラスの方でMainWindowが知りたければParent辿っていけばいいだけの話
>>807 最初にそう指摘するならともかく
今になってそれは苦しい
うーくるシー死ぬ^q^ それは苦しい(キリリッ
100回読んだけど何か?
最近はだWPFからC♯入門するのか。 時代は変わったものだ。
そりゃ、確実にオワコンなFormsで教え始めちゃダメでしょ。 Windows 8 のグラフィック API は WPF に近いらしいし。
WPF入門は別に不思議じゃないけど C#入門でWPF使うってのは珍しい気がする…
理想を言えば、入門向けにもどんどん最新の話入れた方がいいのよ。 それができないのは、通常、記事書く側が追いきれないからであって、 読む側が難しいからじゃない。 書ける人はWPFで入門記事書いた方がいい。
XAMLとかMVVMとか関係ないところで躓くかもしれん
でもWPFって色々と(覚えるのが)面倒くさい部分あるじゃん 依存関係プロパティに添付プロパティ、ルーティングイベントにバインディングの数々
MVVM は、変に用語出さず、さもそれが当たり前かのように仕込めば OK。 初心者染め上げる。 XAML も別に何も困らなくね? どうせ Blend か VS で書くんだし。 依存関係プロパティは教えるの面倒だけども、そこスルーしてでもバインディングは最初から教えるべき。 GUI のビューにはデータのプレースホルダーしか残しちゃいけない。 これは WPF だけじゃなくて、ASP.NET でも MVC はそういう構造だし。
ちょっとまって!WPFを覚えたほうがいいの? 別にC#を主力にする気はないからC#を捨ててWPFを覚えたほうがいいの? 初心者の俺としては無駄なものを覚えたくないからそこのへんハッキリしてください!
C# 捨ててWPFってのがちょっと意味わからない。 まあ、必要に迫られてなきゃWin8の発表待ってからでいいんじゃね? WPFっぽい(WPFを洗練した感じらしい)ってだけで、「WPFです」ではないし。
WPFもC#で書くだろ 捨てるとかイミフ
初心者キモ過ぎワロス
823 :
789 :2011/07/04(月) 20:18:47.52
>>812 UIをポコポコ感覚的においていけるんで初学者としては勉強しててとても楽しいです
メインウィンドウの位置を簡単に取得できるように下準備しておくという方向なら
シングルトンにしてインスタンスへはスタティックプロパティで触るようにするのが一番すっきりするような気がするのですが
MeinWindowをシングルトンにする場合に気をつけることは何かありますか?
だからそんな設計すんなっての 子コントロールは子コントロール自身のこと以外感知するな 自然に見える範囲で動作を構成できるようにしろ お前前にいた人の話聞かないシングルトン坊だろ 日本語読み取れないうちは質問すんなや
擬似グローバル変数か。
直接親を参照するな
日本語読めずに散々見当違いのコード晒してたのはどっちだっつう話だな。
今になってそれは苦しいな。
C#覚えてもさ、結局さ俺はLinuxとかUnixベースで動くものを書いてるからC#を覚える意味がよくわからなくなってきた もうC#を勉強して3週間ぐらいだけど(実質はC#しってHello worldから初めて今まで1年以上たつけど)
日本語の勉強してからまたきてください その時に「本当のC#」をお見せしますよ
覚える意味がないならやめればいいだけ。 WPFはExpressでは、足りないものが多すぎる。
>>832 Expressで足りないものが多すぎる件についてkwsk
Tupleってどういう時に使ってる?
明示的な型が必要だが、わざわざ定義するのが面倒くさい時
Item1、Item2とかソースが読みづらくなるから使わなくていいよ。F#のために追加されただけ。 (name, age) = GetNameAndAge() 本来こんな感じで使うもんだけどもちろんC#でこういうことはできない。
ここみてると本当C#ってクソだわ
メソッドの引数や戻り値の型ってソース読んだりメソッド呼ぶ時には重要なヒントになるから C#でタプルをサポートするとその利点が大きく損なわれる pythonみたいな動的言語だと元々そのヒントが無いからタプルによるマイナスは無いんだけど
(Windowsアプリの作成時の質問です) GridViewに次の様に連番があるとします。 数が多いので指定した数値に該当する行をGridView内で上下中央に スライドさせたいのですがどうすれば良いでしょうか? 社員番号 1 2 3 〜 略 〜 1000 番号で 550 と入力しスクロールを実行すると 550番が中央に来る様にしたいです。 賢人の皆様、お知恵を拝借下さい。
WinアプリでGridViewってーと、WPFのListView?
C#の勉強のために一回フォームデザイナを使わず全部手書きで書いてみるのって効果ある?
842 :
デフォルトの名無しさん :2011/07/05(火) 11:32:53.30
>>841 あるとすれば動的に部品を追加したりするコードを書くときのためくらいかなあ・・
寝ぼけてわけわかんないとこ押しちゃったまま保存して起きた時にどこがおかしいのかわからない時・・・ でも何とかなっちゃうか
簡単な動的アニメーションを、Threadでwhileとsleepを使って動かす方法と、 Timerで動かす方法を作って、タスクマネージャで見てみました。 アニメーションがあまりにも簡単な物だったので、ほとんど差は出ませんでしたがw、 CPU使用率はThread方式が若干低く、PF使用量はほぼ一緒という感じですか? (描画してる物が同じで、Timerが動いてないのだから当然か?) 背景でアニメを動かしつつ、別のプログラムを動かしたいときは、 CPUの負担が軽いThread方式のほうが有利ってことですか? ところでPF(ページファイル)使用量って何ですか?
>>844 C#に関係ない部分だからググって調べろよ
と言いたい所だけど、仮想メモリのこと
なるほど。ありがとうございました。
せめてPFがどんどん増えていきますがどこを見たら良いのでしょうか? とかだったら関係あるのに
Bindingの仕組みについて教えてください NameプロパティをもつPersonクラスをつくってそれに変更を加えるとき コード側でDataContextにPersonのインスタンスをつっこんで、xaml側では <StackPanel> <TextBlock Name="textBlock1" Text="{Binding Path=Name }" Background="WhiteSmoke" /> <TextBox Name="textBox1"> <Binding Path="Name" UpdateSourceTrigger="PropertyChanged"></Binding> </TextBox> <Button Content="name_change" Name="button1" Click="button1_Click" /> <Button Content="name_show" Name="button2" Click="button2_Click" /> </StackPanel> これでTextBoxに新たな値を入力したとき、バインディングソースが変更され 同時にソースの変更が他のTextBlockなどの表示にも反映されるのは確認できました しかしビハインドコードからインスタンスに直接変更を加えたときは、これらの表示には変更が反映されません ソースのプロパティに変更が加えられたことをバインディングターゲットに知らせるには INotifyPropertyChangedインターフェイスを実装する必要があるということで、 実際に実装してみるとコードからの変更でも通知が働き、バインディングされた各コントロールが更新されることも確認できました ですがこうなると逆に、なぜバインディングターゲットからの変更については ソースがINotify〜を実装していなくとも全てのターゲットに変更が通知されるのかが不思議です この違いはどこからきてるものなのでしょうか?
バインディングターゲットは、例えばTextBoxならユーザーの入力によってTextChangedとか発生するわけでしょ クラスの内部でそん時にバインディングソースに値を返してるだけ 何か不思議なところあるか?
なるほど、ターゲット自体がInotyfy〜のPropertyChangedEventに相当するイベントをもっていて ソース自身が「変更されました通知」を出す代わりに、ターゲットが「ソースを変更しました通知」を出してるわけですね
正確にはバインディングターゲットがバインディングソースに値を設定する時はBindingExpression.UpdateSourceを呼んでいて これを呼ぶとバインディングソースのBindingオブジェクトにBinding.SourceUpdatedが発生する で、同じBindingオブジェクトを参照している連中全員がこれを受け取るという寸法
852 :
デフォルトの名無しさん :2011/07/05(火) 16:41:44.07
やり方は自分で調べますので、できるかできないかだけ教えていただけるとありがたいです。 バルーンツールチップにDataGridViewを埋め込みたいのですが、できますか?
出来るわけねえだろzk
854 :
852 :2011/07/05(火) 16:50:43.29
やっぱできないですか。 なんていうか、チッチャイWindowを表示して、GridViewはりつけよっと ありがとう。
855 :
839 :2011/07/05(火) 20:22:08.34
誰か教えて下さいぃー
Win32だとListViewってアイテムを追加するとindexって増えていって、途中のitemを削除すると リストのトップにいるやつでもindexが5とかで、0じゃない数字たった気がするんですが C#のListViewのItemsのItemのIndexって表示されている順番と一致していると考えていいですか? 例えば先頭の0から4まで削除したら、今まで5だったヤツは0になる、と。
>>855 ・CollectionView.MoveCurrentTo
・DataGridView.FirstDisplayedScrollingRowIndex
>>858 ありがとうございます!!
何とかやりたい事が出来そうです!!
thaks you for your brain
変な英語w
861 :
デフォルトの名無しさん :2011/07/05(火) 21:46:02.53
.netのもっさり感はいつになったら解消するの? くらだらねー機能ばっか増やすのに工数使ってんなよ
仕組み上、いつまで待っても解消されないです
864 :
デフォルトの名無しさん :2011/07/05(火) 22:01:27.59
MSDNのIEqualityComparer<T>の解説ページで >IEqualityComparer<T> インターフェイスを実装する代わりに EqualityComparer<T> から派生させることをお勧めします。 >EqualityComparer<T> クラスは、Object.Equals メソッドの代わりに IEquatable<T>.Equals メソッドを使用して >等しいかどうかをテストするからです。 とあるんだが、この意味というか利点がわからなくて悩んじまったよ 結局StackOverflow.comにわかりやすい説明してくれてる人がいて納得できたが
C#のListViewの見た目の並び順とIndexプロパティの順番は同じだと仮定してよいの? マイクロソフトはずっとこの手の情報をヘルプに書いてこなかったけど仕様としては不定なのかな?
>>865 あちこち質問する時間があれば自分で試せるだろw
馬鹿じゃないのか。
というか、ListViewItemCollectionのインデクサの解説よめば普通に分かるだろ。
>>866 ありがと
試さないけどインデクサの解説読んでくる
壁ドン
試せっていってるやつは仕様=実装だと思ってるのか?
使いもしない知識を人使って答えさすってのを指して怒ってんじゃねえの〜
いいんだよ優しいスレだから
50マイクロ秒きっちりにファイルに書き込みをしたいのですが どんなに頑張っても+−25マイクロ秒の誤差がでます 精度のよいライブラリはないでしょうか?
そんな一ひねりしなくて良いから メトロノームでネタ振ってくれて構わんから
シーシャープでメトロクロス作りたいんですがよいライブラリないですか?
>>874 つまんねーから腹膜にガン細胞ばら撒いてのたくりまわって死ね
876 :
デフォルトの名無しさん :2011/07/06(水) 01:00:11.72
結局のところ、シェアウェアを書こうと思ったら、C/C++じゃな駄目ですよね .NETで書かれた、CADや3Dなんて使用に耐えうるとは思えん キーエンスのVisionEditorなんて最悪としか言いようがない なぜに.NET使うのかと激しく文句言ったよ、おそくてたえられん
>>869 これが自然科学だったらあんたの態度の方が正しいと思うが、
プログラミングは一種人文学だからな。
インデックスがその時次第で連続だったり歯抜けが放置されたままだったり、
そんな気まぐれな実装をする奴がいるのか現実問題。
っていうかそもそも常識で考えれば歯抜け状態を許すなんて実装はありえないから、
その常識を念のため確認するだけのことだろ。
>インデックスがその時次第で連続だったり歯抜けが放置されたままだったり だったら確認してもしょうがないのでは。 確認したときはたまたま正しかったかもしれん
何がだったらなのか意味が分かりませんが....
インデックスが歯抜けなんてバグ以外の何物でもないっしょ 列挙操作でヌルリとか
String型の配列を、プログラム終了時に書きだして、プログラム開始時にその書きだしたファイルから復元することってできないですか? app.configってやつは配列使えないっぽいんで・・・
>>881 配列をforeachで一要素ずつ吐いてって、何らかの衝突しないデリミタを考える。
っていうのはどうだろう。
>>881 >>881 自分は大体、Environment.GetFolderPath(ApplicationData) の下に設定ファイル作って、
XmlSerializer の類でその手の保存してる。
まあString[]限定ならFile.ReadAllLinesとWriteAllLinesもよかろうさ
コントロールを何個も重ねているコントロールのダブルクリックイベントが 一番上のコントロールにしか発生しない。 ベースとなるコントロールにも、イベントを発生する方法は?
>>877 別に歯抜けとは言っていない。
DBみたいに効率を重視して保持している一方
表示に関してはいくつかのフラグをみてそれにあわせて
ソートされた結果を別に持っているかもしれないだろ。
リストビューってコレクションでの順番を入れ替えたら自動的に表示順も入れ替わるの? なんかもうその時点でおかしくない? コレクションの要素を削除追加したら画面への描画がロックされてなかったら同期取れないじゃん。 コレクションの要素を操作するときは画面への描画をどうやってロック、アンロックするんだ? その仕組みが無い限りコレクションのオーダーと表示のオーダーが同じと言う保障はまったく無いだろ。
WPFだと基本的には常にバインド先と直接同期してて ビュー上だけで並べ替えたりする必要があるときは間にCollectionViewを挟んで明確に分離する
>>886 何個も重ねているって
何段も継承してるってこと?
オーバーライドしてるOnDoubleClickとかOnMouseClickメソッドで
baseの該当メソッドちゃんと呼ぶ
>>888 >コレクションの要素を削除追加したら画面への描画がロックされてなかったら同期取れないじゃん。
>コレクションの要素を操作するときは画面への描画をどうやってロック、アンロックするんだ?
ちょっと言ってることがよく分かりません
ClickイベントならInvokeOnClickがあるが
C#4.0って企業のパソコンにはいっているものですか? 入れるの面倒くさくていれてない系ですかね?
セキュリティに敏感なところは枯れた技術しか使わないと聞いたことがあるな。
やっぱC#は趣味用だな
古いバージョンと枯れたバージョンは違うので注意なー ソニーみたいに 今4.0が入ってる所は少ないんじゃないかな
セキュリティと言うか、信頼性だな 安定して動くことが大事で、余計な部分で業務が止まったら損失大きいし
ちょっとコーディングで相談があるのでお願いします まだプログラミング始めてあまり時間が経ってないので、慣れてないのもあるのですが いつもぐちゃぐちゃになってしまって、クラス跨いだりすると意味がわからなくなります・・・ どうにか綺麗にコーディングするコツを教えてもらえないでしょうか?
意味がわからなくなるくらいなら無理にクラスを使わず、 スパゲティコードで書け
>>899 リファクタリングしろ。
プロトタイプはプロトタイプと割り切る。
テストしっかり書いておいて、クソコードはどこかで機会見て書き換える。
このスレにソースコードをデーンと上げてリファクタリングさせてた人もいたな
重み付きランダム選択について調べてるのですが、 出てくるのは他のプログラム言語だったり、英語だったりして、困っております。 C#で日本語で書かれた解説どこかに無いですかね?
世界が至れり尽くせりだと思うなよ
>>903 他言語のを参考にすれば良いじゃん。
別に英語でもコードを見ればやりたいことはわかるだろ?
>>903 要するに重みをどう解釈するか。って話でしょ?
自分だったら、配列に値を突っ込む際に重いやつほど同じあたいか同じ参照たくさん突っ込んでランダムシャッフルするかなぁ。
>>903 他の言語のコードあるなら、移植くらいしろよ
その程度の応用力無いと、成長出来んぞ
>>890 継承ではなく、重ねてる
タイマーでマウスのクリック監視しかないかな
>>903 ルーレット選択?
int i = 0;
double sum = pockets.Sum(), rnd = random.NextDouble() * sum, s = 0;
while (rnd <= s) { s += pockets[i++]; }
return i;
pocketsは重みの配列(double[])
911 :
887 :2011/07/06(水) 21:34:14.61
DBでorder byを指定せずselectしたらたまたまinsertした順番に取得できた order byの指定無しだとinsert順に取得できることを確認できた
値をa,b,c、それぞれの重みをp,q,rとする時 int[] arr = new int[] { a,a,a,a,a,... * p, b,b,b,b,b... * q, c,c,c,c,c... * r } あとは乱数で取り出す
914 :
887 :2011/07/06(水) 21:38:50.03
915 :
887 :2011/07/06(水) 21:40:22.24
>>914 なんでテメェが887なのってんの?
この勘違い脳が
916 :
887 :2011/07/06(水) 21:41:35.56
一人で何やってんの
効率を考えるなら、あらかじめすべての要素のしきい値(=その要素より前にあるすべての要素の重みの和) を計算した配列を作っておいてバイナリサーチかな
919 :
887 :2011/07/06(水) 22:14:04.83
C#がPHPを超えて世界で3位の人気言語だと?
921 :
デフォルトの名無しさん :2011/07/06(水) 23:15:43.80
すいません、wpfのListViewで、複数行の選択はどうやってやればいいのですか?
クラスのprivate変数にプロパティを使って(get setで)アクセスできますが、 class hoge { private int hoge; public void Set(int value) { this.hoge = value + 10; } } のSet関数のように特定の値を足すようにプロパティで記述できますかね?
+=
なんでもないです。普通にできますね。。。。
926 :
デフォルトの名無しさん :2011/07/06(水) 23:26:38.53
CとC++の基礎だけサラっと流したものですが、C#の仕様ってのはまだ定まっていないのでしょうか? 教本を選ぶ際に気をつける点とかありますか?
仕様が固まってないってこたあないが .NET系の入門書を選ぶと言語仕様の理解が足らず C#そのものの入門書を選ぶと.NET Frameworkの理解に欠ける
LINQとかラムダ式とか後から便利なのが増えたりはするな
どっかのD言語とかRubyとかと違ってMSは後方互換性を極めて重視するので、 昔の参考書のコードのコンパイルが通らないというようなことはない Javaですらバージョンアップでキーワードが増えてコンパイル通らなくなったりすることがあるけど C#の場合は同名の識別子が存在する場合はキーワードがキーワードじゃなくなったりする徹底ぶり
>>926 じゃあ、聞くけども、C++(0x いつになったら正式告知されるんだよ)は「仕様定まってる」と言うの?
C# で過去のコードがコンパイル通らなかったって話、実務の範囲では1度も聞いたことがない。 わざわざ狙って変なコード書けば、 1.0でコンパイル通ったコードを2.0で通らなくするとかも可能ではあるけども。
ごく稀にそういうのもあるらしいが やってみるとわかるけど、狙ってもできないw\
有名なのは、 a(b<c, d>(e)) ジェネリック導入の前後で解釈の仕方が変わる。 まあ、誰がこんなコード書くんだって話だけど。
まあ、結構すごいよね、文脈依存キーワード。 int from = 5; var var = 3; とかが普通にコンパイル OK だし。
そういうのって言語を設計したりコンパイラ作ったりする立場からしたらやりたくないんだろうな 文法定義やコンパイラの実装がすごい汚くなる
936 :
デフォルトの名無しさん :2011/07/06(水) 23:51:35.71
>>934 それくらいはまあそうだろうって感じだけど
varっていうクラスがあったらvarがvarクラスになるのにはびっくりした
938 :
デフォルトの名無しさん :2011/07/07(木) 00:05:30.53
コンパイル? 所詮C#ってインタプリタじゃん
940 :
デフォルトの名無しさん :2011/07/07(木) 00:07:03.37
JITコンパイラっていうんだよね?
942 :
デフォルトの名無しさん :2011/07/07(木) 00:12:24.91
>>925 いや、モードを切り替える方法じゃなくて、実際にどうやって複数行を選択するかを知りたいんですが
お願いします
943 :
デフォルトの名無しさん :2011/07/07(木) 00:13:31.06
確かに昔のBASICも.netのように中間コードに勝手にしてた物もあったけど JITでネイティブコード化するのでぜんぜん違う
946 :
デフォルトの名無しさん :2011/07/07(木) 00:23:34.39
>>938 インタプリタではない
ヴァーチャルママンと、呼べ!!!
>>936 Unity は Mono っていう .NET クローンベースだけど、
Mono はかなりちゃんとしてるよ。
MS の支援も受けてやってるし。
というかさ、C# ってちゃんと標準化してるんだぜ?
その一方で、Java って実は標準化してない。
>>938 最近、純粋な意味でインタープリター(実行時にいちいち構文解析してる)なものとかないよ。
大体は実行時のどこかでネイティブ化して、その後はそのネイティブコード使い続ける。
Mono がどのくらいしっかりしてるかっていうと、 Windows で MS 実装の C# コンパイラーでコンパイルしたコードが、 Linux 上の Mono の VM でちゃんと動く。 基本ライブラリ程度しか使ってないものの場合で、動かなかったって話1度も聞いたことない。 一方で、WPF とか、GUI 回りはさすがに移植されてないんで動かない。 けどもまあ、Unity 使うならその辺りは関係ない話。
質問させてください。 呼び出し元プロジェクトのクラスを呼び出し先DLL の中でインスタンス化して、値をセットした上で呼び出し元に返す仕組みを考えています。 DLL 側へどのような情報を渡して、DLL 側でどのような処理を行えば実現出来るでしょうか。 元はプロジェクト内の1機能で、クラスのフルネームを渡してインスタンスを作成していたのですが、ネームスペースが変わったせいかインスタンス化出来なくなりました。 宜しくご教示下さい。
951 :
デフォルトの名無しさん :2011/07/07(木) 12:56:12.94
>>948 あざっす。
かなりちゃんとしてますね。
UnrealUDKの独自言語でやってたのがハナクソに思えてきた・・・
DLL の中でインスタンス化とかないから
>>950 インターフェイスを使う
DLL側
interface IHoge { void SetHoge(int value); }
public void CreateHoge<T>() where T : new(), IHoge { var hoge = new T(); hoge.SetHoge(1234); return hoge; }
呼び出し側
class HogeImpl : IHoge { public void SetHoge(int value) { this.value = value; } }
HogeImpl hoge = CreateHogeを持ってるクラスのオブジェクト.CreateHoge<HogeImpl>();
ネームスペースが変わったんじゃなく、明示的に使わなかったアセンブリはロードされない
955 :
953 :2011/07/07(木) 13:23:03.02
訂正 public interface IHoge public T CreateHoge
956 :
950 :2011/07/07(木) 17:56:45.01
>>952 宜しくないですか、、、
インとアウトを分かりやすくしたかったんですが、そのぶん中身がごちゃごちゃになってしまいました。
>>953 なるほど、こうすれば外から与えたクラスをなかでインスタンス化したうえで弄って返却できますね。勉強になりました。
new 制約は最後に指定しなきゃダメって怒られたんでそこだけ並び替えました。
>>954 つまり呼び元からassemblyを渡してやれば今まで通りクラスのフルネームでやれますね。
と言うことで今回はこのやり方でいかせていただきました。
皆様、回答頂きありがとうございました。
いやリフレクションでもいいけどそれならTypeオブジェクト渡そうよ
画像処理なんだが大学でSeam Carvingのプログラム作らにゃならないんだけど 何を参考にしたらいいんだろうか・・・
まず。論文よめ
とりあえずググレ 必要な部分を保護して他を延ばすだけだし、既存の技術の組み合わせだけで出来るだろ
>>958 シームカビングはサンプルもいっぱいあるぞ
C++とかだけど変にクラスとか使ってないやつもあるから簡単にわかる
解説も詳しくされてるし
CとC++出来ない俺が作れたんだから大丈夫だ
それよりもゼロシート法の資料が全然出て来なくて困る 日本語で唯一と思われる本は全部書いて無い上、サンプルコードは使用してない変数だらけだし
>>575 Whitespace とか Brainf*ck もマスターしたのか、すごいなw
多次元の連想配列てありますか?
>>964 Dictionary<Dictionary<T, U>, V> ってやるか、
複合キークラスを作って Dictionary<Key, V>
(Key クラスはGetHashCodeとEqualsをオーバーライド)
プログラムを作るときに設計をやるっていうのを聞きました 具体的にどうやって設計するのでしょうか?
設計なんてしないよ コード書きながら考える
>>965 ありがとうございます
Tupleとかいうの使うんですかね?
やってみます
>>967 それは、設計と言われて、仕様書みたいなのを想像しすぎ。
コード書きながらであっても、
どこでクラスを区切ろう、クラス名やメソッド名は何にしよう、どういう依存関係持たせよう
とかは設計の一部。
単に、最近のプログラミング言語が設計に関する能力も備えてるというだけ。
>>966 基本的に、
エンドユーザーがどういう機能を求めてるのか洗い出し
→ (概念設計) それを基に、どういう技術使って作るか決めたり
大まかにモジュール区切る(C#で実装すると大体それがそのままクラスになる)
→ (実装設計) クラスとかメソッドの仕様決めてく
大規模開発だと概念レベルと実装が人も違う、会社も違うとかになるけど、
小規模だとたいてい同じ人がやる。
実際にプロトタイプのコード書きながら概念設計とかもざら。
つあり箇条書きでこういう機能が欲しいって言うのを書いていくところから始めるってことでしょうか?
世の中にはプログラムが完成してから仕様書という名の反省文を書く人もいるらしいしなw
>>971 だいたいそういうこと。
そのとき、主語抜かないようにね。
アプリによっては、エンドユーザーって言っても、一般社員、管理者、役員とか分かれるんで。
誰なら何ができる/何をしたいを明記。
>>972 クライアントへの詫び状でなければまだマシってもんさ
とりあえずフォームに必要そうなコントロールを貼りつけてから考える ただ、これを素人に見せると「完成まで後少し」と思われてしまうので注意
>>975 うちがそれだ
画面で着てるから後表示とか登録書くだけでしょ
あほかソレが時間かかるし入力チェックやエラー処理系はどこいったんだと
PCのセットアップもあるし
ただ動くだけでいいなら誰も苦労しねぇよ
ただ動くだけでいいって言ってるんだよ
978 :
デフォルトの名無しさん :2011/07/08(金) 14:42:48.93
>>977 そのただ動くだけでいいっていうのがトラップw
フォームにボタン等を配置⇒あと少しで完成と思われる とりあえずボタンの内容を記述して、単純な動作の確認⇒完成したと思われる 他のボタンを押したりすると不具合発生⇒しっかりした物を作れと怒られる いつも大体こんな感じ
Mから書いてればそんな事にならないのに
ブラックはそんな感じなのか
相手<この機能とこの機能とこの機能があると便利だな 俺<出来ました 相手<機能多すぎて画面見辛いから、やっぱこの機能とこの機能はいらない 特に苦労した機能に限って、いらないって言われるんだよな・・・
ブラックでアジャイルを採用する理由は開発が進んでると見せかけて納期をごまかすためだと聞いたことがある
もっとこみゅにけーしょんしようぜ!
985 :
デフォルトの名無しさん :2011/07/08(金) 15:13:39.07
>>984 無理じゃね?
日本の場合「とりあえず動けばいいんだよ」という発言権持ってる人ってオールドタイプなのに
威張ってるだけってことが多いし
理解してる人はそういう発言はしない
次スレ立ててくる
普通に仕様書作って承認してもらえばいいだけじゃん いらないと言われても金は請求できるだろ
仕様書って完成してから使える機能を書く物じゃね?
お前らあれだろ 取扱説明書を仕様書と言われて困惑するタイプだろ
初心者からの質問には「ぐぐれ」とか「曖昧なヒント」しか出さない不親切な連中が、 どうでもいいネタでスレ埋めるなよ、カスども。
992 :
デフォルトの名無しさん :2011/07/08(金) 20:54:26.10
うめ
993 :
デフォルトの名無しさん :2011/07/08(金) 20:58:20.27
はね」。
とめ」。
うめ
ど根性かえるの寿司屋か
おしまいじゃあああああああああああああああ
うめニャン
the end.
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。