5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

ふらっとC#,C♯,C#(初心者用) Part76

1 :デフォルトの名無しさん:2011/06/21(火) 15:52:07.36
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ

ふらっとC#,C♯,C#(初心者用) Part75
http://hibari.2ch.net/test/read.cgi/tech/1307186987/

■関連スレ
C#, C♯, C#相談室 Part67
http://hibari.2ch.net/test/read.cgi/tech/1308128665/
ミスターサタンのC#相談室 
http://hibari.2ch.net/test/read.cgi/tech/1092656075/
VB.NET質問スレ(Part36)
http://hibari.2ch.net/test/read.cgi/tech/1301828549/
くだすれC++/CLI(初心者用)part2
http://hibari.2ch.net/test/read.cgi/tech/1268613679/

2 :デフォルトの名無しさん:2011/06/21(火) 15:52:35.26
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてrun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。

直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php

3 :デフォルトの名無しさん:2011/06/21(火) 19:58:10.49
フォームにwebbrowserを置きました
これを使ってyahooのトップページを開きます
その開いたページを上から下まで1つの画像にして保存する方法ってございませんか?

4 :デフォルトの名無しさん:2011/06/21(火) 20:23:43.22
ググった感じではWM_PRINTを送るのかな

5 :デフォルトの名無しさん:2011/06/21(火) 20:24:29.66
>>3
超頑張ってね
http://www.squabu.com/CodeSamples/Samples/Tool/WebThumbnail.aspx

6 :デフォルトの名無しさん:2011/06/21(火) 20:26:04.09
OleDrawじゃなかったっけ
ここか相談室で見たな

7 :デフォルトの名無しさん:2011/06/21(火) 22:33:09.22
先週の土曜日に秋葉原で店員さんに聞いて部品とかいろいろ必要なものを揃えてもらいました
マイコンとPCを連動して音を鳴らす間隔を測ってみましたが結構良い感じの精度になりました。
ありがとうございました
ブログに必要な部品と作る過程も公開してみました

8 :デフォルトの名無しさん:2011/06/21(火) 22:35:05.82
このスレッドはチンパ

9 :デフォルトの名無しさん:2011/06/21(火) 22:40:04.92
C#のコードをx86ネイティブにコンパイルするプログラムを
作っているんだが、よくよく考えたら、そんなことするくらいなら
C/C++で書けばいいんだな


10 :デフォルトの名無しさん:2011/06/21(火) 22:44:35.91
秀丸マクロみたいにファイルに
message "test";
って描いたらメッセージボックスを出すマクロみたいのを作りたいのですが
過程としてはプログラムでファイルを読み込む
1行ずつ文字列を取得する
messageって描いてあったらその次の"(.*?)";を検索して.*?の部分をMessageBox.Show("ここにいれる")
みたいな流れを初心者なりに考えてみたのですがこんな感じで作ればいいのでしょうか?

11 :デフォルトの名無しさん:2011/06/21(火) 22:48:33.16
C#におけるInt32型とはオブジェクトですか?組み込み型ですか?
Int32型はObject型から派生しているのですか?

12 :デフォルトの名無しさん:2011/06/21(火) 22:54:14.46
>>10
どこまで作るかによる。
単純なマクロでいいならそれでOKだと思う。

本当に使い勝手のよいマクロを作るならまずインタプリタかコンパイル型か設計段階で決めたほうがいいと思う。
両者では構文の設計自体が変わってくる。
gotoを許すのか?とかcontinueをどうやってサポートするか、breakはどこまで抜けるのか?
など。

13 :デフォルトの名無しさん:2011/06/21(火) 23:09:55.23
>>11
> C#におけるInt32型とはオブジェクトですか?組み込み型ですか?
オブジェクト。そして組み込み型intはSystem.Int32のエイリアス。
ついでに言うと値型=構造体。

> Int32型はObject型から派生しているのですか?
うん
Object - ValueType - Int32

14 :デフォルトの名無しさん:2011/06/21(火) 23:16:25.26
>>13
ありがとうございます。
C++でいうところの組み込み型のように見えているintですら参照型なのですね。

15 :デフォルトの名無しさん:2011/06/21(火) 23:22:52.66
値型っつってんだろ

16 :デフォルトの名無しさん:2011/06/21(火) 23:23:40.52
噴いたw

17 :デフォルトの名無しさん:2011/06/21(火) 23:25:43.65
エイリアスってことは実態はSystem.Int32って事じゃないの?
Object型って参照型ですよね?

18 :デフォルトの名無しさん:2011/06/21(火) 23:28:27.92
ValueTypeから派生してる型は特別に値型なの

19 :デフォルトの名無しさん:2011/06/21(火) 23:30:59.58
あ、そういうことでしたか
ありがとうございます!

20 :デフォルトの名無しさん:2011/06/21(火) 23:35:08.27
>>12
コンパイルの仕方はぼくには難しいと断崖の絶壁に聳え立つニワトリさんを捕まえるようなハードルなのでインタプリタでやりたいとおもいます
ちょっといろいろかんがえてみます

21 :デフォルトの名無しさん:2011/06/22(水) 00:16:46.62
C#でstring[] a = [1,2,3];のとき、テキストエディタにUTF8でLFを書きました
こんぱいるで

22 :デフォルトの名無しさん:2011/06/22(水) 00:19:39.39
>>9
ヒント: mono

23 :デフォルトの名無しさん:2011/06/22(水) 00:43:11.07
結局ネイティブコードにコンパイルしてもメリット少ないんだよね
バカでかいランタイムを配布することになるし、
.NETの起動時間のボトルネックはJITよりファイルの読み込みだから起動が早くなるわけでもない
なんだかんだいって.NETは普及してしまったし

24 :デフォルトの名無しさん:2011/06/22(水) 00:55:24.78
usingで使わない名前空間入れてたら無駄なリソース的なのって増えるの?

25 :デフォルトの名無しさん:2011/06/22(水) 00:57:16.62
そんなわけが無いでしょ
usingは、言ってみりゃパスを通すだけ

26 :デフォルトの名無しさん:2011/06/22(水) 02:51:44.55
>>25
だな

usingで名前空間を上にかかなければコード中にその都度書かなければいけなくなって
コードが雑然とするだけ

ビルド後のコードに違いは無い(はず)



27 :デフォルトの名無しさん:2011/06/22(水) 08:51:42.20
int[] a = new int[]{ 0, 1, 2 };
int[] a = { 0, 1, 2};

前者と後者の違いはなんでしょうか?

28 :デフォルトの名無しさん:2011/06/22(水) 09:26:19.38
コンパイラが{}がint[]であるかどうかをチェックしてint[]の変数に代入できるかをチェックするか
コンパイラが{}の型を決定してint[]の変数に代入できるかをチェックするか
じゃね

29 :デフォルトの名無しさん:2011/06/22(水) 11:13:11.97
C#て、可変長の配列は、ArrayList 使わないといけないんだね。
てっきり、

int[] ary = {1,2,3,4};
ary[4] = 5;
とか出来るもんだと思ってた…


30 :デフォルトの名無しさん:2011/06/22(水) 11:39:28.23
ArrayList使うな
誰だ使えって言ってる奴は

31 :デフォルトの名無しさん:2011/06/22(水) 11:42:08.77
じゃあ何を使えば良いんだ?

32 :デフォルトの名無しさん:2011/06/22(水) 11:43:31.82
ArrayList使うよりList<>使え、捗るぞ

33 :デフォルトの名無しさん:2011/06/22(水) 11:56:07.13
「C# 配列」でググるとArrayListばっかり出てくるな

34 :デフォルトの名無しさん:2011/06/22(水) 12:01:19.59
それ古い記述じゃないか?

35 :デフォルトの名無しさん:2011/06/22(水) 12:01:25.41
>>27
後者は初期化時限定の略記法。
変数の定義と同時で、かつ、var を使わないときだけそう書ける。

前者はどこにでも書ける。
Method(new int[] { 1, 2, 3 });
とかも OK。

36 :デフォルトの名無しさん:2011/06/22(水) 12:02:21.48
特に理由が無ければ、配列よりもとりあえずList<>にしてる

37 :デフォルトの名無しさん:2011/06/22(水) 12:35:26.43
ちょっと質問なんだけど、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とかなかったっけ?

39 :デフォルトの名無しさん:2011/06/22(水) 12:43:18.42
一緒にリストから消せよ・・・

40 :デフォルトの名無しさん:2011/06/22(水) 12:49:16.80
こういう体系的な知識?を学ぶにはやっぱり色んなサイトを巡ってるんですか
それとも書籍を1冊ずつ極めたりしてるんですか?

このスレに向いた質問でないかも知れませんがC#の良い書籍とかサイトとかがよくわからない物でして…

41 :デフォルトの名無しさん:2011/06/22(水) 12:51:03.84
サイトとかに関しては
まずC#相談室のテンプレ見てみるのもいいかもしれないよ


42 :デフォルトの名無しさん:2011/06/22(水) 13:01:27.60
>>40
大体、都度検索 → 見つけたクラスを IntelliSense やら「定義に移動」やらで眺める → 近隣のクラスで再検索
のループ。

43 :デフォルトの名無しさん:2011/06/22(水) 13:36:25.94
>>40
絶対現場主義Visual C#実践講座―開発の現場から生まれた実践テクニック&TIPS集

には、ArrayListを使っちゃいけない理由とか書いてあるな
けっこうオヌヌメ

44 :デフォルトの名無しさん:2011/06/22(水) 14:17:16.19
List<object>
これでおk

45 :デフォルトの名無しさん:2011/06/22(水) 14:47:32.55
List<>ってなんかださいから
ArrayList使うぜ

46 :デフォルトの名無しさん:2011/06/22(水) 15:12:13.94
List<> がダサいって部分は許容してもいいけども、
ArrayList を使うのはいかなる理由を以てしても許さん。

47 :デフォルトの名無しさん:2011/06/22(水) 18:27:25.18
dougaっていうプロジェクトで、フォームにWindowsMedia playerを貼り付けて動画を再生するコードをビルドしたとき
douga.exeとAxInterop.WMPLib.dllとInterop.WMPLib.dllも作られるのですがこれらのdllを使わないで作る方法ってないですか?

48 :デフォルトの名無しさん:2011/06/22(水) 18:31:40.05
ない

49 :デフォルトの名無しさん:2011/06/22(水) 18:35:42.74
まじすか
ちょっとCでできないか調べてみます

50 :デフォルトの名無しさん:2011/06/22(水) 19:41:16.77
>>30
俺も実は引っかかった口だ。
罠クラスには困ったもんだ

51 :デフォルトの名無しさん:2011/06/22(水) 19:58:01.38
>>43
同じ著者が書いたあのふざけた(だけならいいけど、間違いだらけの)C言語本を読んだら
たぶん評価変わるよ

52 :デフォルトの名無しさん:2011/06/22(水) 20:15:59.55
くっそ ずっとArrayList使ってた
もうArrayListなんて使わねぇー

53 :デフォルトの名無しさん:2011/06/22(水) 20:19:34.49

Z

54 :デフォルトの名無しさん:2011/06/22(水) 20:25:38.47
未だに.NET Framework1.1を引き摺るプロジェクトとか泣けるけどな

55 :デフォルトの名無しさん:2011/06/22(水) 20:27:40.68
悲しいな

56 :デフォルトの名無しさん:2011/06/22(水) 20:27:52.59
1.1時代に.net使うやつって何考えてんだろうね。

「これからの標準だ」とか本気で信じたのかな?


57 :デフォルトの名無しさん:2011/06/22(水) 20:28:55.81
その時代に.netを使う大胆さを褒めてやるよw

58 :デフォルトの名無しさん:2011/06/22(水) 20:35:15.00
俺なんてredim使ってるぜ

59 :デフォルトの名無しさん:2011/06/22(水) 20:42:27.41
>>56
VB並みのRADtoolなのにちゃんとしたOOP言語ってのが魅力的だった
javaのswingなど速度的に酷い出来だったからね

60 :デフォルトの名無しさん:2011/06/22(水) 21:09:58.84
先生方のお陰でflv再生できましたっ!

61 :デフォルトの名無しさん:2011/06/22(水) 23:05:55.78
>>35 なるへそ〜

自分は>>29だけど、なんでArrayListはこんなに嫌われてるの?
良かったら理由を教えてチョ。

62 :デフォルトの名無しさん:2011/06/22(水) 23:08:38.03
http://www.atmarkit.co.jp/fdotnet/special/generics01/generics01_02.html

63 :デフォルトの名無しさん:2011/06/22(水) 23:12:19.38
好き嫌いの問題じゃないんだけどね(アホの子以外にとっては)
ただ旧式なだけ。
でも、何度も既出だけど、あえてArrayListを使う場面もないことはない

64 :デフォルトの名無しさん:2011/06/22(水) 23:13:45.33
>>62
こういうURIだけ一行コピペする人って自分の行為が何かキモいと思ってないのかなw

65 :デフォルトの名無しさん:2011/06/22(水) 23:15:01.63
1. 値取り出すとき一々キャストとかメンドウクサイ(安全性にも欠けるしね)
2. LINQで使うのが絶望的に面倒になる(毎回Castダルい、MatchCollection死ね)

66 :61:2011/06/22(水) 23:19:02.23
つまり、C++のテンプレートみたいなList<>があるから
もう古くて、Objectにキャストされるような
ArrayListをわざわざ使う必要は殆どないってことでOK?

67 :デフォルトの名無しさん:2011/06/22(水) 23:21:36.37
ok

68 :デフォルトの名無しさん:2011/06/22(水) 23:27:16.87
>>66
というか、Obsolete が付いてもいいレベル。
List<T> が完全に上位機能版。

69 :デフォルトの名無しさん:2011/06/22(水) 23:29:31.88
ああ、あと、Silverlight ではそもそもそんな無駄なクラスは完全に亡き者にされたので。

70 :61:2011/06/22(水) 23:29:39.16
ArrayListを使う必要が殆どない事はよくわかりました。
ありがとう。

71 :デフォルトの名無しさん:2011/06/23(木) 00:09:58.37
アャRってなんですか?

72 :デフォルトの名無しさん:2011/06/23(木) 00:42:31.69
今後は、「ほとんど」じゃなくて、「まったく」ないんだってば。
互換性のためだけに残されてる。

73 :デフォルトの名無しさん:2011/06/23(木) 00:51:25.20
最初からジェネリックスは必要だってあれほど言ったのに
ArrayListみたいな負の遺産が残る

74 :デフォルトの名無しさん:2011/06/23(木) 00:55:36.69
でもArrayListと違ってList<>は継承して動作弄れないんだよね
ArrayListは後で実装変えられるからクラスライブラリのパブリックメンバにしたりしてもいいんだけど
List<T>公開するのはパブリックフィールド公開するようなもん
ちゃんとやろうとしたらインターフェイス通したりしないといけなくて面倒

75 :デフォルトの名無しさん:2011/06/23(木) 01:04:47.46
お前は何を言っているんだ?

76 :デフォルトの名無しさん:2011/06/23(木) 01:18:10.24
List<T>をプロパティなどでパブリックに公開したらMSのコード分析ツールで警告出るよ
Collection<T>などで回避できるからそのために非ジェネリックコレクションを使う必要はないけど

77 :デフォルトの名無しさん:2011/06/23(木) 01:24:09.22
お前は何を言っているんだ?

List<T>でやっちゃいかんことはArrayListでもやっちゃいかん。
List<T>も別に継承できる(けども、普通、包含で使うけども)。
List<T>でだけ分析ツールが文句言ってくるのなら、
それはそもそもArrayListが忘れ去られた存在ってだけ。

78 :デフォルトの名無しさん:2011/06/23(木) 01:31:57.72
やりたいことはわからないでもないけど、
今の言語の能力じゃ無理なんだ

79 :デフォルトの名無しさん:2011/06/23(木) 01:37:34.67
継承の為には継承の為にデザインされたクラスを使うってのは基本ですがな
そしてList<T>は継承の為にデザインされていない
そんだけ

80 :デフォルトの名無しさん:2011/06/23(木) 01:45:28.30
初心者のオレ様にわかるようサンプルコードとどこがなぜダメなのか書いてくれ

81 :デフォルトの名無しさん:2011/06/23(木) 01:49:07.34
ArrayListみたいなデザインの仕方はスゲェ問題がある
例えば↓のようなコードを書いたとする
http://ideone.com/CPlrz

このコードは現時点では5を表示するが
将来に渡って5を表示するとは保証していない

ArrayList.AddRangeがどのように実装されるかは基底クラスの作者に委ねられているからだ
ArrayList.AddRangeがArrayList.Addを呼び出して実装されるようになればこのコードは10を表示するだろう

82 :デフォルトの名無しさん:2011/06/23(木) 02:00:01.22
>ArrayList.AddRangeがArrayList.Addを呼び出し
たとしても、baseの中でAddCountを足してる訳じゃないんだから結局5を返すんじゃないの

83 :デフォルトの名無しさん:2011/06/23(木) 02:01:50.82
>>82
TestListクラスでオーバーライドされてるからそうも行かない
ArrayList.AddRangeがArrayList.Addを呼んだ場合オーバーライドしたメソッドが呼ばれる

84 :デフォルトの名無しさん:2011/06/23(木) 02:02:03.13
ああ違う、ヤバいじゃんどうすんだ

85 :デフォルトの名無しさん:2011/06/23(木) 02:03:13.82
ヤバいから使うなってんだよw

86 :デフォルトの名無しさん:2011/06/23(木) 02:20:52.66
使いたければじゃんじゃん使ってよし
困ったら使うのやめればいいだけのこと

87 :デフォルトの名無しさん:2011/06/23(木) 06:32:59.83
ToolStripControlHostに関して質問があります.

UserControlをToolStripControlHostで埋め込んだコンテキストメニューを開き,
表示されたUserControlを右クリックしてさらにコンテキストメニューを開きたいと考えています.
実際にこれを実装すると,2番目のコンテキストメニューを開いた地点で,1番目のコンテキストメニューが消えてしまいます.
消えないようにするにはどうすればよいでしょうか?


88 :デフォルトの名無しさん:2011/06/23(木) 07:00:49.76
JavaはArrayList使ってもいいよね?

89 :デフォルトの名無しさん:2011/06/23(木) 07:22:08.11
ジェネリクスはただ飯みたいなもんだからな
使わないと損するよ

90 :デフォルトの名無しさん:2011/06/23(木) 07:23:04.22
今となってはListの実装とかできる人減ってるんだろうな

91 :デフォルトの名無しさん:2011/06/23(木) 08:14:21.80
俺はできるよ

92 :デフォルトの名無しさん:2011/06/23(木) 08:24:16.43
減ったのはできる人じゃなくてしたことがある人では?

93 :デフォルトの名無しさん:2011/06/23(木) 08:29:39.29
俺はしたことあるよ

94 :デフォルトの名無しさん:2011/06/23(木) 08:54:32.96
最近の言語はライブラリがしっかりしているかいちいち実装する必要がない.

95 :デフォルトの名無しさん:2011/06/23(木) 09:05:17.40
リンクリストはアルゴリズムの勉強でよく実装されるけど、
List<T>のように配列使ったリストは勉強ではあまり出てこないかもね
配列が一杯になったらリサイズするだけだからリンクリストより簡単なくらいだが

96 :デフォルトの名無しさん:2011/06/23(木) 10:56:04.74
>>87
>UserControlをToolStripControlHostで埋め込んだコンテキストメニューを開き,

ちょっと何言ってるか分かんないです


97 :デフォルトの名無しさん:2011/06/23(木) 11:37:42.92
textBox1のサイズを変更しました。

98 :87:2011/06/23(木) 12:01:22.89
>96
わかりにくい日本語ですみません...

ToolStripControlHost上で右クリックしてコンテキストメニューを開きたいと間が定ます.
つまりコンテキストメニュー上で右クリックしてさらにコンテキストメニューを開きたいと考えています.
ToolStripControlHostにはUserControlが埋め込まれています.

99 :デフォルトの名無しさん:2011/06/23(木) 12:28:11.67
素直にサブメニュー使うべきではないか

100 :87:2011/06/23(木) 12:34:07.74
>99
ToolStripControlHostは
http://lh5.ggpht.com/_TufE6r6woBg/Sqd3pJIBx4I/AAAAAAAAAKQ/bn7sTDiFxk4/s1600-h/image%5B2%5D.png
みたいな感じで任意のコントローラを配置することができます.
で,配置したコントローラ上でコンテキストメニューを開くと土台のコンテキストメニューが消えてしまうので
この問題を解決できないかと悩んでいます.

101 :デフォルトの名無しさん:2011/06/23(木) 13:05:15.70
昔はいちいち作ってたの?

102 :デフォルトの名無しさん:2011/06/23(木) 13:29:42.01
こんなのやるなら
俺だったら普通にフォームでダイアログ表示させるがな・・・・

103 :デフォルトの名無しさん:2011/06/23(木) 13:45:41.83
なんでもできるユーザーコントロールを作りたい

104 :デフォルトの名無しさん:2011/06/23(木) 13:52:42.67
C++でやれ

105 :デフォルトの名無しさん:2011/06/23(木) 14:03:26.35
OpenCVSharpの質問はここじゃ違うかな?

void mulSparseMat32f(SparseMat& smat, Mat& src, Mat& dest, bool isTranspose) {
SparseMatIterator it = smat.begin(),it_end = smat.end();
for(;it!=it_end;++it)
http://opencv.jp/opencv2-x-samples/usage_of_sparsemat_2_superresolution

begin()やend()に相当するのが無いと思うけど、何を使えば良いのでしょう?

106 :デフォルトの名無しさん:2011/06/23(木) 14:17:22.75
知らんけどforeach

107 :デフォルトの名無しさん:2011/06/23(木) 14:21:57.85
irvineみたにファイルをダウンロードするときに一時停止してまた再開するというのはどのようにやるのでしょうか?

108 :デフォルトの名無しさん:2011/06/23(木) 14:32:39.77
一旦接続を切る
続きはRangeヘッダをつけて要求する
レスポンスヘッダがContent-Range含んでなかったら残念賞

109 :デフォルトの名無しさん:2011/06/23(木) 14:38:55.44
非同期的に処理をキャンセルする方法はBackgroundWorkerのサンプルでも読んで研究してくれ

110 :デフォルトの名無しさん:2011/06/23(木) 14:50:58.96
>>100
元のメニューのClosingイベントで条件みてe.Cancel=trueにすりゃいいんじゃないか

111 :デフォルトの名無しさん:2011/06/23(木) 17:07:35.58
>>94
でも、紙の教科書に書かれてる似非コード見るよりも、
STL のソースコード眺めた方が勉強になったよ。

C# の場合、ちょっと逆コンパイルしないと見れないって問題はあるけども…

112 :デフォルトの名無しさん:2011/06/23(木) 17:08:37.44
>>101
作らざるを得なかった。
template すらなかった時代は、汎用コレクション書けなかったから。
void* (C# でいうなら object)のコレクション書いてキャスト(Java のジェネリック的な)ならできたけど、
パフォーマンス落ちるから嫌われた。

113 :デフォルトの名無しさん:2011/06/23(木) 17:12:11.97
>>111
.net frameworkはほとんどソース公開されてるでしょ

114 :デフォルトの名無しさん:2011/06/23(木) 17:14:23.97
ライセンス的に、あんまり眺めるとまずいんじゃなかったっけ?

まあ、mono の方見ればいいのか。

115 :デフォルトの名無しさん:2011/06/23(木) 17:16:21.23
あんまり見ると目が腐るのか

116 :デフォルトの名無しさん:2011/06/23(木) 17:23:25.13
ポインタでリンクリストは新人研修でやるよな。

117 :デフォルトの名無しさん:2011/06/23(木) 18:16:22.68
おぬしのとこは新人研修なんてやるのか

118 :デフォルトの名無しさん:2011/06/23(木) 18:19:04.97
みっちり半年やるよ

119 :デフォルトの名無しさん:2011/06/23(木) 19:14:51.92
カーソル位置の色を取得する方法ってありませんか?

120 :デフォルトの名無しさん:2011/06/23(木) 19:34:46.88
あります

121 :デフォルトの名無しさん:2011/06/23(木) 19:40:19.35
Win32APIの方のGetPixel

122 :デフォルトの名無しさん:2011/06/23(木) 22:52:34.04
ポインタは参照型だしな

123 :デフォルトの名無しさん:2011/06/23(木) 22:57:42.06
LINQは便利だしな

124 :デフォルトの名無しさん:2011/06/23(木) 23:17:40.12
class Library_SQLite
{
private string testA = "あいうえお";

class Table
{
public void Table(string name)
{
//ここで上のtestAを得る方法はありますか?
}
}
}

125 :デフォルトの名無しさん:2011/06/23(木) 23:22:34.29
普通にアクセスできるけど、試してみたの?

126 :デフォルトの名無しさん:2011/06/23(木) 23:25:06.74
>>124
Library_SQLiteを渡して見る

127 :デフォルトの名無しさん:2011/06/23(木) 23:28:21.46
Javaと違ってエンクロージングインスタンスの紐付けみたいな機能がないのでインスタンス渡さないと見れない

128 :124:2011/06/23(木) 23:31:46.61
素直に親を引き渡す事にします
ありがと

129 :デフォルトの名無しさん:2011/06/23(木) 23:33:09.67
おやおや

130 :デフォルトの名無しさん:2011/06/24(金) 00:38:24.93
>>122
でもポインタ≠参照型とか一人で言い張ってる奴がいるんだよなw

131 :デフォルトの名無しさん:2011/06/24(金) 00:41:49.51
やれやれ

132 :デフォルトの名無しさん:2011/06/24(金) 01:06:49.14
うーん、文脈によるかね。

C# の用語としてのポインター型は参照型とは区別される。
一般用語としても、「ポインターを参照として使う」とかは自然だけど、=かと言われると。
C++ でも、まあ、ほぼ≒だけども、null 代入できない程度の差はあるし。

133 :デフォルトの名無しさん:2011/06/24(金) 01:26:14.16
くだらないことは気にすんなw

134 :デフォルトの名無しさん:2011/06/24(金) 01:53:03.00
下手の考え

135 :デフォルトの名無しさん:2011/06/24(金) 01:57:27.83
例えば、ポインターってアドレスを数値として扱っちゃうことで、無効な領域もさせるわけじゃない。
それは参照と呼んでいいの?何を参照してるの?

136 :デフォルトの名無しさん:2011/06/24(金) 02:06:07.36
えっ

137 :デフォルトの名無しさん:2011/06/24(金) 02:08:45.71
>>135
時空の狭間をだよ

138 :デフォルトの名無しさん:2011/06/24(金) 02:33:14.03
何か訳の判らん物を参照すると、人はそれをバグという

139 :デフォルトの名無しさん:2011/06/24(金) 06:59:17.05
ポインタはアドレス値を自由にいじれる
参照はオブジェクトのアドレスしか入れれない
でおk?

140 :デフォルトの名無しさん:2011/06/24(金) 07:02:18.96
>>139
GCが管理してるのでアドレスですらないかもしれない
GC内部の管理番号だったりするかも

141 :デフォルトの名無しさん:2011/06/24(金) 07:09:37.79
参照型のアドレスが固定だと思ってるの?

142 :デフォルトの名無しさん:2011/06/24(金) 08:46:08.11
参照型=ポインタって人々が優勢みたいだな

143 :デフォルトの名無しさん:2011/06/24(金) 09:45:07.70
実際そうだしなぁ

144 :デフォルトの名無しさん:2011/06/24(金) 10:11:10.81
おまえらって簡単に煽られるのな

145 :デフォルトの名無しさん:2011/06/24(金) 10:58:50.11
>>144
>>144

146 :デフォルトの名無しさん:2011/06/24(金) 13:50:57.50
英単語としてはpointer(指し示す)もreference(参照)も似たようなもんなんだけどもね。
C++がT*の方と区別してT&を参照って呼んだから。

147 :デフォルトの名無しさん:2011/06/24(金) 15:02:55.87
概念と実装を混同するからこうなる

148 :デフォルトの名無しさん:2011/06/24(金) 15:32:57.56
魔法少女になる前のまどかと、なった後のまどかの違いか

149 :デフォルトの名無しさん:2011/06/24(金) 15:48:42.13
VB6とCの経験しかありませんが、今からC#を学びたい、というか会社から学ぶよう言われました。
さしあたって何から始めればよかでしょうか。
向学心と折れない心は実装してると思います。

参考書や参考サイト、これは買っとけ/読んとけ な本などありましたら、ご教授いただければ幸いです。

150 :デフォルトの名無しさん:2011/06/24(金) 15:49:26.61
概念的にもこの区別非常に重要だけどね、それをポインターと参照って言い分けるのが言葉として正しいかは置いといて。

C# の参照みたいな、有効な場所しかさせなず、
そして場合によってはアドレスじゃなくて GC の管理してるハンドルとして持つもの。
GC がコンパクションで位置を移動させても正しくオブジェクトを参照するという概念。

単にアドレスを指し示すだけのポインターよりも一段階抽象度の高い概念。

151 :デフォルトの名無しさん:2011/06/24(金) 15:50:28.86
>>149
C# でググって上に出て来るサイトで OK。

152 :デフォルトの名無しさん:2011/06/24(金) 15:50:57.79
>>149
他言語の経験あるなら未確認飛行C++++読めばいいと思います

153 :デフォルトの名無しさん:2011/06/24(金) 15:54:10.23
参照型はポインターのスーパークラスである!?

154 :デフォルトの名無しさん:2011/06/24(金) 15:54:15.68
>>149
とりあえず読むより何か作ってみればおk


155 :デフォルトの名無しさん:2011/06/24(金) 15:54:16.13
未確認飛行C++++はJavaやC++のようなオブジェクト指向経験者向けだろ
あれでオブジェクト指向理解できたら天才

156 :デフォルトの名無しさん:2011/06/24(金) 15:58:24.77
C#は比較的オブジェクト指向を意識しないでいい
javaは全部抽象化で解決する文化があるせいでヤバィ


157 :デフォルトの名無しさん:2011/06/24(金) 15:59:55.04
>>153
スーパークラスって言葉は汎化、より機能が少なて広い概念側を指すから逆じゃね?

158 :デフォルトの名無しさん:2011/06/24(金) 15:59:55.56
>>149
VB.netじゃだめなんですかと聞いてみろ。

159 :デフォルトの名無しさん:2011/06/24(金) 16:00:08.20
>>149
その知識だけで触ってみれば大丈夫
俺もCとVB6の知識だけでやってるけど、何とかなってる

160 :デフォルトの名無しさん:2011/06/24(金) 16:03:37.49
そういやVB6にもクラスってあったよね
殆ど使われなかったほど不便だったけど

161 :デフォルトの名無しさん:2011/06/24(金) 16:05:01.73
>>157
大丈夫、実は俺も何を言ってるのか分かりません

162 :デフォルトの名無しさん:2011/06/24(金) 16:05:23.05
ここで変な質問してみるか
「他の言語ではできるけど、C#では絶対にできないことって何?」

163 :デフォルトの名無しさん:2011/06/24(金) 16:06:46.81
>>151-155
ありがとうございます。
.net Frameworkによる開発自体、さわったことも見たこともなく、まったくの初心者なのですが
プラットフォームSDKなども無料で手に入るのですね。
とりあえずはExpressをダウンロードして始めてみようと思います。
入門書はどれも大同小異でしょうか?「入門」とタイトルについたものを買おうと思っているんですが・・・

164 :デフォルトの名無しさん:2011/06/24(金) 16:07:30.83
手放しでお勧めできる本がないのが弱点

165 :デフォルトの名無しさん:2011/06/24(金) 16:09:03.69
>>162
C#の文法に従わないこと
チューリング完全なんだからあとは言語関係なく処理系次第

166 :デフォルトの名無しさん:2011/06/24(金) 16:09:03.99
会社にこれがあるので読んでみます
http://www.amazon.co.jp/dp/4822294307/

あと、独習C#の第二版はちょっと古すぎでしょうか?基本は同じと思うのですが、
今は.net Frameworkって3.5ですよね。


167 :デフォルトの名無しさん:2011/06/24(金) 16:09:50.82
もう4.0でてるよ

168 :デフォルトの名無しさん:2011/06/24(金) 16:11:49.53
>>149=>>163=>>166です。何度もすみません。

たとえばC#2008のexpressをダウンロードした場合、VB6との共存は無理ですか?


169 :デフォルトの名無しさん:2011/06/24(金) 16:12:57.09
全く別製品だから共存できる

170 :デフォルトの名無しさん:2011/06/24(金) 16:14:38.05
>>168
最新版はC#2010だよ

171 :149=163=166=168:2011/06/24(金) 16:14:45.54
調べてみたら、独習はもう第四版まで出ているのですね。
>>166の本とあわせ読みつつ、教えていただいたサイトでなんとかやってみます。
ありがとうございました。

172 :デフォルトの名無しさん:2011/06/24(金) 16:17:18.67
>>163
C#の入門書なんて読んだことねぇw
とりあえずdobonで十分かと
http://dobon.net/

てか、ググる時は「C# なんちゃら」じゃなく「dobon なんちゃら」のほうが速かったりする

173 :149=163=166=168:2011/06/24(金) 16:17:22.63
うを!間違えて独習C++第四版を注文するところだた('A`)

環境については会社からの指示もありますので、おそらく2008になると思います。


174 :デフォルトの名無しさん:2011/06/24(金) 16:21:01.44
なんで2008なんだ・・・?
まー良いけど
FrameWorkはXPの標準が2.0で7が3.5だから、汎用で作るなら2.0を選択しとけ

175 :デフォルトの名無しさん:2011/06/24(金) 16:24:47.51
2010は思いからな

176 :デフォルトの名無しさん:2011/06/24(金) 16:41:24.13
オーモイーガー

177 :デフォルトの名無しさん:2011/06/24(金) 16:45:19.43
オイモカラアゲ

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をメインウィンドウに設定する方法ってどうやったらいいんでしょう?

179 :デフォルトの名無しさん:2011/06/24(金) 17:00:38.64
2010って思いの?
ちゅーか、会社からの指示で2008になるって、
そんなお仕事モードなのに初心者って何?
ど素人からSE育成してるのか?その会社。ある意味すごくね?

180 :デフォルトの名無しさん:2011/06/24(金) 17:06:46.07
VB6とCは知ってるんだから、ど素人では無いだろう

181 :デフォルトの名無しさん:2011/06/24(金) 17:10:47.53
>>179
XP だとちょっともっさりかもなぁ<2010
自分は Vista 以降でしか使ったことないのでなんとも。

182 :デフォルトの名無しさん:2011/06/24(金) 17:15:24.97
>>178
http://msdn.microsoft.com/ja-jp/library/system.windows.window.owner.aspx

>この Window を所有する Window を取得または設定します。
>public Window Owner { get; set; }

設定すればいいんじゃね?

183 :デフォルトの名無しさん:2011/06/24(金) 18:14:08.45
>>182
ありがとうございます

新しいウィンドウを
myWindow.Instance.show();
で表示させるとして、例えばメソッドを呼び出したクラスをmyWindowに渡して、ownerをそれに設定する、とかは可能でしょうか?

184 :デフォルトの名無しさん:2011/06/24(金) 18:58:31.40
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);
と処理してみたのですが、こういった方法には何か問題がありますか?

186 :デフォルトの名無しさん:2011/06/24(金) 20:33:05.65
TextReaderとStreamReaderは俺の中では名前を逆にしてほしいんだが

187 :デフォルトの名無しさん:2011/06/24(金) 20:36:22.77
ツイート馬鹿参上!まで読んだ。

188 :デフォルトの名無しさん:2011/06/24(金) 20:45:11.00
>>185
全く無い

189 :デフォルトの名無しさん:2011/06/24(金) 20:45:11.41
ReaderTextにReaderStreamか。…おかしくね?
ReaderForTextとかなら、ちょっとはマシかも知れんが…。

190 :デフォルトの名無しさん:2011/06/24(金) 20:46:17.67
>>189
多分StreamReaderを抽象クラスに、TextReaderを実装クラスにしろってことだと思う

単語の順のことだったら意味分からんもん

191 :デフォルトの名無しさん:2011/06/24(金) 21:39:58.50
画面を12分割したいのですが何かいい方法はないでしょうか?

192 :デフォルトの名無しさん:2011/06/24(金) 21:41:20.92
ナイフを取り出します


TableLayoutPanelとかそんなん?

193 :デフォルトの名無しさん:2011/06/24(金) 21:41:29.38
俺たちはアンタのママじゃないんだよ

194 :デフォルトの名無しさん:2011/06/24(金) 21:55:32.46
>>188
丁寧にありがとうございました

195 :デフォルトの名無しさん:2011/06/24(金) 23:14:47.85
ゲームを作りたいのですがライブラリを別途用意しないといけませんか?

196 :デフォルトの名無しさん:2011/06/24(金) 23:17:53.04
しなくてもいいけど、した方が楽よん

197 :デフォルトの名無しさん:2011/06/24(金) 23:21:40.49
ありがとうございます
作ったゲームを配布するので.net2.0が入っているパソコンで動かせればいいのですが
slimdxとxnaの二つのどちらかお選べばよいでしょうか?

198 :デフォルトの名無しさん:2011/06/24(金) 23:26:43.37
いれるほうからいうと純正がいいはな

199 :デフォルトの名無しさん:2011/06/24(金) 23:39:42.67
扱い方はほとんど変わらないから勉強はXNAにしとけ
慣れてきたらSlimDXに移ってもいい
XNAの方が情報の量が圧倒的に多いからSlimDX使うにしてもXNAの情報のお世話になることになる

200 :デフォルトの名無しさん:2011/06/24(金) 23:51:06.26
C#で精度のよいメトロノーム作れますか?

201 :デフォルトの名無しさん:2011/06/24(金) 23:53:50.59
電子工作を荒らした質問者に成りすました荒らしさんこんばんは

202 :デフォルトの名無しさん:2011/06/24(金) 23:56:34.85
ありがとうございます
XNAいれてみます
ダウンロードサイズが大きいいのですが
これを使って作ったゲームを動かすパソコンにXNAをインストールしてもらう必要はありますか?

203 :デフォルトの名無しさん:2011/06/25(土) 00:00:12.31
>>201
面白いねー

204 :デフォルトの名無しさん:2011/06/25(土) 00:11:33.40
機械式メトロノームの方が精度いいよなぁ

205 :デフォルトの名無しさん:2011/06/25(土) 00:21:10.50
どんだけさびしい人生おくってんだよ
おまえ生きてる意味あんの?

206 :デフォルトの名無しさん:2011/06/25(土) 00:25:47.59
>>202
あるけど遊ぶだけならランタイムの方を入れるだけだからサイズはそんなに大きくない
今時DirectXでも最新のバージョン使ったらランタイムのインストールはたいがい必須

207 :デフォルトの名無しさん:2011/06/25(土) 00:35:38.47
どんだけさびしい人生おくってんだよ
おまえ生きてる意味あんの?

208 :デフォルトの名無しさん:2011/06/25(土) 00:39:08.19
もうおまえらは肉体言語で語り合えよ

209 :デフォルトの名無しさん:2011/06/25(土) 01:37:43.02
肉体言語のオブジェクトは通信するためにKoBuShiを使います。
KoBuShiは肉体言語におけるオブジェクトのいかなる形状に対しても通信が可能です。
KoBuShiをあまり使いすぎるとターゲットのオブジェクトを破壊してしまうので、使いすぎには最深の注意が必要です。
なお、肉体言語にはKoBuShiとよく似たKeRiもあります。
しかし、KeRiはターゲットオブジェクトの破壊を促進しやすいことやレイテンシーの問題により非推奨の機能となっています。

続きはWebで!!

210 :デフォルトの名無しさん:2011/06/25(土) 01:47:33.13
どんだけさびしい人生おくってんだよ
おまえ生きてる意味あんの?

211 :デフォルトの名無しさん:2011/06/25(土) 01:48:23.89
それを見つけるのは、お前自身だ…

212 :デフォルトの名無しさん:2011/06/25(土) 01:51:10.53
どんだけさびしい人生おくってんだよ
おまえ生きてる意味あんの?

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も変わってて欲しいのだけど

214 :デフォルトの名無しさん:2011/06/25(土) 06:10:14.02
>>213
そういうデータバインディング的挙動、方法はあるにはあるけども、それなりに面倒。
コード生成なりリフレクションなり使いまくりなコードになりがちで、
ちょっと現状だと、ここでさらっと(行数制限にかからない分量で)は書けない。

215 :デフォルトの名無しさん:2011/06/25(土) 10:34:48.09
どこかでクラスを使わないとな

216 :デフォルトの名無しさん:2011/06/25(土) 10:49:35.64
配列を宣言するときはなんて書くのが王道ですか?

217 :デフォルトの名無しさん:2011/06/25(土) 10:52:04.70
無い
好きなようにやれ

仕事での話なら周りの様子を伺え

218 :デフォルトの名無しさん:2011/06/25(土) 13:28:17.64
class foo
{
 public static int a
 {
  get{ return bar.a;}
  set{ bar.a = value; }
 }
}

class bar
{
 private static _a;
 public static int a
 {
  ...
 }
}

219 :デフォルトの名無しさん:2011/06/25(土) 13:37:00.01
static・・・

220 :デフォルトの名無しさん:2011/06/25(土) 13:52:39.55
聞かれて即答できるほど少なくはないし、試してみるほど暇でもない

221 :デフォルトの名無しさん:2011/06/25(土) 13:54:57.98
誤爆しました><

222 :デフォルトの名無しさん:2011/06/25(土) 14:07:10.93
かっこよすぎワロタ

223 :デフォルトの名無しさん:2011/06/25(土) 17:41:37.81
>>214
できるにはできる
キーワードはデータバインディングとリフレクションっと

アドバイスありがトン

参照してるデータは一箇所なのに
そのデータを参照してる構造体が複数あって
全部書き換えようと思うと、重たいのよ
ポインタで持っててくれれば、参照先変えるの楽なんだけどなぁ

224 :デフォルトの名無しさん:2011/06/25(土) 17:55:59.76
StructLayoutとかが絡まないんなら、fooにbarの参照を持たしておけばいい話じゃないの?
StructLayoutが必要でも、暗黙変換で誤魔化せるかもしれないし

225 :デフォルトの名無しさん:2011/06/25(土) 18:00:47.46
intじゃなくて自分の定義したクラスに置き換えちゃったら?


226 :デフォルトの名無しさん:2011/06/25(土) 18:14:44.05
>>223
どういう用途か知らんけど、それが実現したら
自分で変えたつもりもないのに、いつのまにか変数が変わってるわけか……
混乱招きそうな気がするのは俺だけかな。

227 :デフォルトの名無しさん:2011/06/25(土) 20:04:06.71
xnaでゲーム作るのにおすすめのサイトってありませんか?

228 :デフォルトの名無しさん:2011/06/25(土) 20:22:20.11
>>226
詳しく話すと、DXライブラリはVERTEX3D構造体(3Dの頂点データ)の
テクスチャ座標を特定のクラスで管理してアニメーションとかやりたいってわけ
頂点データを1フレーム毎に全部書き換えると処理落ちしちゃうから
構造体内部で参照してるアドレスを指定できたら実態を変えたら全部変わるんじゃない?
って発想なのよ

だめそうなら、アニメーションはやらない方向で考えるんだけどね

229 :デフォルトの名無しさん:2011/06/25(土) 20:33:48.74
構造体はコピー取られてるから同じアドレスは参照してないと思ふ

230 :デフォルトの名無しさん:2011/06/25(土) 20:52:57.42
>>229
ああ、そっか
構造体の実データって連続したメモリ空間で、
参照を指定してるのは、その先頭アドレスだけだっけか?
それじゃ、個々のデータの参照指定とか不可能だよね

1フレームで全部のデータ書き換え不可能って前提だと
あきらめるか、アニメーション部分を切り離すしかないのね
方針見えてきたわ、ありがトン

231 :デフォルトの名無しさん:2011/06/25(土) 21:44:20.18
C#ってマイクロソフトが作った言語だと思ってたんですけど違うんですか?

232 :デフォルトの名無しさん:2011/06/25(土) 21:49:36.47
違いません

233 :デフォルトの名無しさん:2011/06/25(土) 22:09:03.82
http://ja.wikipedia.org/wiki/C_Sharpみたらボーランドみたいなことがかかれてましたが本当ですか?

234 :デフォルトの名無しさん:2011/06/25(土) 22:17:07.75
haha! no way

235 :デフォルトの名無しさん:2011/06/25(土) 22:32:40.58
ボーランド懐かしいな

236 :デフォルトの名無しさん:2011/06/25(土) 22:40:37.57
>>233
  元Borland社員が、 (Borlandの方針変更等により) 大量にMicrosoftへ移籍
      ↓
  DelphiやC++Builderのノウハウを活かし、C#を開発

なので、Borlandが造った訳じゃない

237 :デフォルトの名無しさん:2011/06/25(土) 22:45:53.15
ボーランドが血迷ってくれたおかげだな

238 :デフォルトの名無しさん:2011/06/25(土) 22:51:04.55
わかりました

239 :デフォルトの名無しさん:2011/06/25(土) 22:51:27.69
http://msdn.microsoft.com/ja-jp/library/67ef8sbd(v=VS.80).aspxみて勉強することは良いことですか?

240 :デフォルトの名無しさん:2011/06/25(土) 22:52:17.66
>>239
こっちにしとけよ
ttp://msdn.microsoft.com/ja-jp/library/67ef8sbd(v=VS.100).aspx

241 :デフォルトの名無しさん:2011/06/25(土) 22:58:35.88
そっちのほうがあたらしくていいですね たすかりました
VC#wに頼らず秀丸とcscで一通りやってみたいと思います
(VC#でやってたら配列の宣言の仕方とかいろいろ壁にあたったので)

242 :デフォルトの名無しさん:2011/06/25(土) 23:01:55.39
>(VC#でやってたら配列の宣言の仕方とかいろいろ壁にあたったので)

ひどい八つ当たりを見た

243 :デフォルトの名無しさん:2011/06/25(土) 23:03:38.95
今どき秀丸でC#は有り得んだろ
まあ趣味でやるなら何でもいいが

244 :デフォルトの名無しさん:2011/06/25(土) 23:07:24.38
いえ、VC#が何でもやってしまうのでわかんなくなっちゃうのですよ
なので秀丸で修行してからしたいのです

245 :デフォルトの名無しさん:2011/06/25(土) 23:26:01.66
メトロノーム

246 :デフォルトの名無しさん:2011/06/25(土) 23:52:49.09
using System;

namespace test
{
class Test
{
static void Main(string[] args)
{
System.Console.WriteLine(args[0]);
}
}
}

引数を与えないと強制終了します
これはどう書き直したらよいでしょうか?

247 :デフォルトの名無しさん:2011/06/25(土) 23:53:46.86
static void Main(string[] args)
{
if(args.Length==0){
return;
}

System.Console.WriteLine(args[0]);
}

248 :デフォルトの名無しさん:2011/06/25(土) 23:57:35.59
動的な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メソッドに渡すにはどうすればいいでしょうか?教えてください

249 :デフォルトの名無しさん:2011/06/25(土) 23:57:55.11
ありがとうございます
テンプレとして書くクセをつけるように

250 :デフォルトの名無しさん:2011/06/25(土) 23:58:08.75
趣味でプログラム?

どんだけ、ヲタだよw
ほかにやることねーのかよ


251 :デフォルトの名無しさん:2011/06/25(土) 23:58:45.41
C#ってCよりも速いのですか?

252 :デフォルトの名無しさん:2011/06/26(日) 00:01:06.19
極稀になんかそういうこともあるらしいが、基本的に無い

253 :デフォルトの名無しさん:2011/06/26(日) 00:01:49.92
>>251
作り方次第じゃないかな。
古くから言われてるけども、原理的には仮想マシン通したりガベコレ使ってる分C#の方が遅い。
けど、それはプログラマーが超がんばってチューニングすればであって、適当だとそんなに差が出ない。

254 :デフォルトの名無しさん:2011/06/26(日) 00:02:30.57
>>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]});
}

このコードの意味が理解できるまでラムダ使うの止めろ
禁止だ

255 :デフォルトの名無しさん:2011/06/26(日) 00:03:43.84
コンソールで作ったプログラムだとC#のほうが全て速いんですけど気のせいなんでしょうか?

256 :248:2011/06/26(日) 00:16:42.14
>>254
すいません。int j = iってどういうことなんですか?
違いがいまいちわかりません。。。

257 :デフォルトの名無しさん:2011/06/26(日) 00:17:49.93
分からないなら使うなってよ。

258 :デフォルトの名無しさん:2011/06/26(日) 00:29:38.64
>>256
iはループの間ずっと同じインスタンスだ
jはループする度に新しいインスタンスが作成されている

この差だ

259 :デフォルトの名無しさん:2011/06/26(日) 00:32:00.49
>>255
まあ、作り方次第だってば。
そうなることもある程度にはC#は速い。

260 :デフォルトの名無しさん:2011/06/26(日) 00:37:19.86
Cよりも完全に早くしたい、とか考えてるようなら諦めたほうがいい

261 :デフォルトの名無しさん:2011/06/26(日) 05:14:15.51
C#のコンパイラはCかC++で実装されてんのかな

262 :デフォルトの名無しさん:2011/06/26(日) 05:41:22.84
>>261
今の MS 実装はそう。C++。
Mono の C# コンパイラーは C# で書いてる。
今進めてる Roslyn(Compiler as a Service)ってプラン(.NET 5 よりさらに先)では、
C# コンパイラーを C# で再実装中。


263 :デフォルトの名無しさん:2011/06/26(日) 10:39:54.25
http://msdn.microsoft.com/ja-jp/library/ms173104.aspx
型について

int
float
string
char
var
object
bool
byte
以外に型ってありますか?
あとvarで宣言した変数の型を知る方法はございませんか?
たとえばvar a = 1;とかvar a = "test";などの型をintとかstringって知りたいのです

264 :デフォルトの名無しさん:2011/06/26(日) 10:43:22.42
int a = 10;
int b = 20;
System.Console.WriteLine(a+b);
は実行しても何も表示されません
System.Console.WriteLine("こんにちは");
は表示されました
何故ですか?

265 :デフォルトの名無しさん:2011/06/26(日) 10:45:07.11
>>263

varは型じゃない
貴方が言ってるのはおそらく基本型のことで
普通「型」と言った場合はobjectから派生する全ての型を指す

とりあえず↓に載ってるクラス全部
http://msdn.microsoft.com/ja-jp/library/ms229335%28v=VS.80%29.aspx

型を知る方法
var a = 1;
Type t = a.GetType();

266 :デフォルトの名無しさん:2011/06/26(日) 10:51:36.75
>>264
>System.Console.WriteLine(a+b);
>は実行しても何も表示されません

そんなこと無いと思うけど
http://ideone.com/9PVLT

267 :デフォルトの名無しさん:2011/06/26(日) 10:58:41.75
>>265
勉強になりました

268 :デフォルトの名無しさん:2011/06/26(日) 11:02:12.47
原因がわかりました
if (0 == args.Length) return;
を書いてて引数が何もなかったため実行されてなかっただけでした

269 :デフォルトの名無しさん:2011/06/26(日) 11:21:21.93
http://msdn.microsoft.com/ja-jp/library/yz2be5wk.aspx
スタック上とヒープ上っていうのがいまいちよくわかりません
objectは遅いって聞いた事があるのでヒープ上は遅そうで
intで指定したほうが早そうなのでスタック上のほうが能力が上みたいな感じであってますか?

270 :デフォルトの名無しさん:2011/06/26(日) 11:25:23.77
>>269
スタックはアプリが起動するときにすでに割り当てられてるメモリの一部
ヒープっていうのはOSに割り当ててくれと要求を出して割り当ててもらうメモリ

OSに要求を出す分重いけどスタックほど使用量を気にしなくていい
スタックの場合は使い方によってはオーバーフローすることもある

271 :デフォルトの名無しさん:2011/06/26(日) 11:26:36.50
コピーのされ方が違うので一概にどっちとは言い切れない

型の容量が16バイトを越える場合はヒープに取った方が良いとされている
構造体にするとスタック上に、クラスにするとヒープ上に取られる

そしてやむを得ない場合を除いて基本的にobjectで宣言すべきではない

272 :デフォルトの名無しさん:2011/06/26(日) 11:27:04.88
>>268
この比較の仕方、昔ちょっと流行った希ガス。

273 :デフォルトの名無しさん:2011/06/26(日) 11:29:43.93
昔も何も、条件式がboolに縛られてなかった言語で
代入のバグを避けるためのものだろう
C#には基本的に要らないけど

274 :デフォルトの名無しさん:2011/06/26(日) 11:33:44.90
>>270-271
何か難しいですね
PHPしか触ったことないのでそういうの意識したことありませんでした
例えばFirefoxが重いのはヒープとスタックの使い方が正しく使われてないからなんですね
要所要所でobjectにしたりintなどの型で宣言して使い分けたいと思います

275 :デフォルトの名無しさん:2011/06/26(日) 11:41:26.90
なぜFirefoxが出てきたのか不明だがは多分関係ない

276 :デフォルトの名無しさん:2011/06/26(日) 11:46:39.93
>>273
今でも愛用してるんだ?

277 :デフォルトの名無しさん:2011/06/26(日) 11:50:52.99
愛用ってなんだ
うちは規約だ

278 :デフォルトの名無しさん:2011/06/26(日) 11:57:23.58
objectの質問が出てたので自分のちょっと気になることを質問します
VC#2010からdynamicが使えますけど object型よりdynamic型を使うほうが主流じゃないんですか?

279 :デフォルトの名無しさん:2011/06/26(日) 11:59:42.86
そもそもそういう使い方してる人間が少ないから主流以前の問題

280 :デフォルトの名無しさん:2011/06/26(日) 12:02:20.48
>>277
良い組織だね。
箸を持つ手が「右手」とかも…ちと違うか。

281 :デフォルトの名無しさん:2011/06/26(日) 12:04:45.85
objectを使ってるコードは素人
dynamicを使うのは上級者ってこと?

282 :デフォルトの名無しさん:2011/06/26(日) 12:08:02.76
無意味な規約の存在は、教条主義者の馬鹿が幅を利かしてる証拠だな

283 :デフォルトの名無しさん:2011/06/26(日) 12:16:09.99
扱ってる言語がC#だけじゃないとかで、規約を一部共通化してるんじゃね

284 :デフォルトの名無しさん:2011/06/26(日) 12:18:28.83
objectとdynamicじゃ用途が違いすぎるだろ

285 :デフォルトの名無しさん:2011/06/26(日) 12:22:08.00
C#だけ使いたい
これは本当

286 :デフォルトの名無しさん:2011/06/26(日) 12:45:38.08
protected enum St : byte
{
A = "aaa",
B = "bbb",
}

static void Main()
{
Console.WriteLine((byte)St.A);
}

enumに文字列を使いたいのですがどうやればエラーがでなくなりますか?

287 :デフォルトの名無しさん:2011/06/26(日) 12:47:40.90
enumに文字列を使うことはできない

288 :デフォルトの名無しさん:2011/06/26(日) 12:54:49.45
妥協案として

protected enum St
{
aaa,
bbb,
}

static void Main()
{
Console.WriteLine(St.A.ToString());
}

289 :デフォルトの名無しさん:2011/06/26(日) 13:00:53.54
ありがとうございます

290 :デフォルトの名無しさん:2011/06/26(日) 13:06:40.82
気になったんだが、protected意味ないよな。

291 :デフォルトの名無しさん:2011/06/26(日) 13:23:25.78
http://msdn.microsoft.com/ja-jp/library/system.console_members(v=VS.80).aspxのメソッドとプロパティの違いってなんでしょうか?

292 :デフォルトの名無しさん:2011/06/26(日) 13:25:22.82
用語の説明からしなければならないの?

293 :デフォルトの名無しさん:2011/06/26(日) 13:27:45.86
Consoleを引き合いに出すってことは、Console.WriteLineとConsole.Out.WriteLineの違いとか?

294 :デフォルトの名無しさん:2011/06/26(日) 13:29:34.54
メソッド
http://msdn.microsoft.com/ja-jp/library/ms173114.aspx
プロパティ
http://msdn.microsoft.com/ja-jp/library/x9fsa0sw%28v=VS.100%29.aspx

295 :デフォルトの名無しさん:2011/06/26(日) 13:33:13.45
納得しました

メソッドは()の中にパラメータを設定して
プロパティは = の後に値を設定するやつってこです

296 :デフォルトの名無しさん:2011/06/26(日) 14:00:42.60
>>262
> C# コンパイラーを C# で再実装中。

これにどんな意味があるのかなあって思ってたことがありました。


297 :デフォルトの名無しさん:2011/06/26(日) 16:18:33.85
誰でもC#風DSLパーサーの1つや2つ組んだことがあるだろ?

298 :デフォルトの名無しさん:2011/06/26(日) 16:51:55.43
C#のコーディング規約のデファクトスタンダード
はどれでしょうか?

独自規約のベースとして使われている場合を含めて
いちばん使われているであろう規約を調べています。

みなさんがよく使われているなと感じるものをあげてください。

299 :デフォルトの名無しさん:2011/06/26(日) 16:56:15.46
つMSDN

300 :デフォルトの名無しさん:2011/06/26(日) 17:47:48.03
>>298
.NETのクラスライブラリ設計
開発チーム直伝の設計原則,コーディング標準,パターン
http://ec.nikkeibp.co.jp/item/books/C08500.html

これを推す

301 :デフォルトの名無しさん:2011/06/26(日) 17:48:44.18
>>278
まあ、主流って言われたら、object も dynamic も使わないのが主流だろ。
正確に、必要十分な要件を満たす型で受ける。

302 :デフォルトの名無しさん:2011/06/26(日) 17:49:54.92
>>296
C# を C# で再実装ってだけだと意味は対してないけども、
内部構造が標準ライブラリとして公開される。
コンパイルの過程の途中にフックできる。

303 :デフォルトの名無しさん:2011/06/26(日) 17:58:50.07
初心者スレのほうが聞きやすいのかもしれないけど、もっと
初心者が見ても役に立つ質問回答してくれよ。

304 :デフォルトの名無しさん:2011/06/26(日) 18:04:21.16
今日はそれでも結構回答されてるほうだと思うで

305 :デフォルトの名無しさん:2011/06/26(日) 18:11:14.67
初心者が理解できるかどうかは別だけどな

306 :デフォルトの名無しさん:2011/06/26(日) 18:12:05.80
言われてみれば週末なのにポインタ=参照型もメトロノームもほね」もない
素晴らしい

307 :デフォルトの名無しさん:2011/06/26(日) 18:15:40.29
黙ってろ

308 :デフォルトの名無しさん:2011/06/26(日) 18:22:03.30
ほね」。だよ
間違えないでほしいんだな

309 :デフォルトの名無しさん:2011/06/26(日) 19:58:57.44
C#言語仕様の日本語訳の版ってexpress版には付いてないけれど、
pro版を試す で16日評価版インスコすれば入るのですか?
それともWEBと同じ英語版?
それとも入らない?

310 :デフォルトの名無しさん:2011/06/26(日) 20:15:05.88
>>309
C# の仕様書、ウェブで手に入るのと全く一緒。
日本語版もウェブにある。

311 :デフォルトの名無しさん:2011/06/26(日) 20:34:05.73
すまんが誘導してくれ。古いのしか見つけられん。

312 :デフォルトの名無しさん:2011/06/26(日) 20:52:35.51
http://msdn.microsoft.com/ja-jp/library/9b9dty7d.aspx
配列の宣言の仕方がいろいろ書いてありますけどよく使われるのはどのやりかたですか?
個人的には$a = array(1,2,3);のような畑から来たので
int[] array3 = { 1, 2, 3, 4, 5, 6 };が良いかなと思っているのですが

313 :デフォルトの名無しさん:2011/06/26(日) 20:52:45.65
インスコなどと言うマヌケには心底あきれる

314 :デフォルトの名無しさん:2011/06/26(日) 21:10:47.87
>>299,>>300
Microsoftが薦めるようにするのが多いということですね。

レスありがとうございました。

315 :デフォルトの名無しさん:2011/06/26(日) 21:17:56.14
Delegateの命名にいつも困るわ

316 :デフォルトの名無しさん:2011/06/26(日) 21:25:31.29
2.0以降は自分でデリゲートを定義する機会ってそうはないと思うんだけど

317 :デフォルトの名無しさん:2011/06/26(日) 21:26:38.37
>>312
そもそもコンパイル言語ではスクリプト言語に比べると配列をリテラルで書くこと自体が少ないがそれは置いといて
その書き方がたぶん一番よく使われるけど、型推論などの最近の機能との一貫性を考えると
new[] { 1, 2, 3, 4, 5, 6 }とnew[]付けるのが今風かな

318 :デフォルトの名無しさん:2011/06/26(日) 21:48:30.07
動きゃ何でもいいんですよ

319 :デフォルトの名無しさん:2011/06/26(日) 21:53:51.27
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

322 :デフォルトの名無しさん:2011/06/26(日) 22:22:42.54
>>321
http://msdn.microsoft.com/ja-jp/library/ms229040.aspx
ガイドライン違反

323 :デフォルトの名無しさん:2011/06/26(日) 22:26:14.58
違反していたって良いじゃない。

324 :デフォルトの名無しさん:2011/06/26(日) 22:33:43.18
よかねーよ

325 :デフォルトの名無しさん:2011/06/26(日) 22:37:36.37
動きゃいいんだよ

326 :デフォルトの名無しさん:2011/06/26(日) 22:38:47.61
Callbackサフィックスは知ってるけど使う気にはならんな
実例もあまり見ないし

327 :デフォルトの名無しさん:2011/06/26(日) 22:40:25.13
そもそもデリゲート自体あまりみない

328 :デフォルトの名無しさん:2011/06/26(日) 22:42:36.27
ガイドラインはライブラリ作成者向けだから内部的に何使おうがどうでもいいはず

329 :デフォルトの名無しさん:2011/06/26(日) 22:47:30.44
イベント ハンドラ (イベントの型として使用されるデリゲート) の名前には、EventHandler というサフィックスを追加する。
イベント ハンドラではないデリゲートの名前には、サフィックス Callback を追加する。


330 :デフォルトの名無しさん:2011/06/26(日) 22:58:32.54
http://www.delicare-mscp.com/swf/cm_movie.swf

331 :デフォルトの名無しさん:2011/06/26(日) 23:12:35.01
よくわからん名前のデリゲートが乱立しても面倒なので、
FuncやActionで済むものはそれらを使ったほうが良い局面もいっぱい。
あと、EventHandler<T>はもっと積極的に使ってほしいね(.NETのライブラリ自体も……)

332 :デフォルトの名無しさん:2011/06/26(日) 23:13:07.39
>>329
良い規約だね。

333 :デフォルトの名無しさん:2011/06/26(日) 23:13:20.32
>>320
移行の理由よければ教えて

334 :デフォルトの名無しさん:2011/06/26(日) 23:21:17.09
Callback 用途じゃないのにそんな名前つけられるか。
Delegate は Delegate なんだから Delegate でいいんだよ。

335 :デフォルトの名無しさん:2011/06/26(日) 23:22:11.05
良い規約だねも何も>>322のまんまじゃん

336 :デフォルトの名無しさん:2011/06/26(日) 23:23:14.36
にんげんだもの

337 :デフォルトの名無しさん:2011/06/26(日) 23:24:29.72
つまり一貫して〜Classとか〜Interfaceとか〜Structとか〜Enumとか付けてるんだね
それなら許す

338 :デフォルトの名無しさん:2011/06/26(日) 23:24:45.40
マルチスレッドでデリケートなデリゲートを使わないオサレな
使いこなし法を教えてくれねーと

339 :デフォルトの名無しさん:2011/06/26(日) 23:29:10.01
>>334
クラスにはClassってサフィックスを付ける?

340 :デフォルトの名無しさん:2011/06/26(日) 23:32:18.84
>>339
ベースクラスの名前をつけます。

341 :デフォルトの名無しさん:2011/06/26(日) 23:44:40.86
匿名デリゲートを使うから別につけるほどでもないって話じゃなかったのか。

342 :デフォルトの名無しさん:2011/06/26(日) 23:52:05.65
Object と object って違うんですか?


343 :デフォルトの名無しさん:2011/06/26(日) 23:56:06.53
>>342
コード中に出てくるなら、クラスとインスタンス


344 :デフォルトの名無しさん:2011/06/26(日) 23:57:44.89
>>317
newつけて配列作ることにしたいと思います

345 :デフォルトの名無しさん:2011/06/26(日) 23:58:53.70
ジャグ配列というのは二次元配列と同じでしょうか?
C#では特別な名前でジャグ配列と呼んでいるという認識でおkですか?

346 :デフォルトの名無しさん:2011/06/27(月) 00:05:33.78
いいや、違うよ。ジャグと2次元は。ジャグは配列の配列だよ。

347 :デフォルトの名無しさん:2011/06/27(月) 00:15:41.06
>>346
C#だと2次元配列も配列の配列じゃ無かったか?

自分が入門書読んだ限りだと



2次元配列=長方形の配列の配列(各配列の長さが揃ってる)

ジャグ配列=各配列の長さが揃ってないデコボコの配列の配列


348 :デフォルトの名無しさん:2011/06/27(月) 00:19:23.85
>>333
開発者の確保が難しく、大規模化したことでソースの見通しと
開発効率が悪いためC#への移行を検討しています。

AIRでは全て非同期なため大規模化するとメンテナンスしきれず、
また下手な書き方をされるとFlashBuilderでは入力補間とかも
機能しなくなり、またFlashやってる開発者はある程度の規模の
チーム開発できる人間が非常に少ないのです。

349 :デフォルトの名無しさん:2011/06/27(月) 00:19:43.06
>>347
> C#だと2次元配列も配列の配列じゃ無かったか?
違うよ
1次元の配列を二次元っぽく見せてると言う方が近い

350 :デフォルトの名無しさん:2011/06/27(月) 00:21:41.57
>>348
どうしてもWebKitでなければダメ、という箇所がなければ
標準のWebBrowser(IE)を使うのがいいと思うけれど。

351 :デフォルトの名無しさん:2011/06/27(月) 00:32:31.78
>>350
3年ほど前に始まったプロジェクトなのですが、WebBrowserでは
DOMで高さがとれない場合があるとか問題点が報告され、
またMac対応などもあり急遽AIRでの実装となったのです。

352 :デフォルトの名無しさん:2011/06/27(月) 01:00:39.32
WebKit.NET見たけどDOM触れるんじゃないのこれ
普通にAPIにDOMあるじゃん

353 :デフォルトの名無しさん:2011/06/27(月) 07:44:19.68
ザッと見た感じだと、中身がほとんど無いな
https://github.com/webkitdotnet/webkitdotnet

354 :デフォルトの名無しさん:2011/06/27(月) 07:59:21.31
GekkoFXは一杯あるけどなあ
WebKitの魅力ってあんまり

355 :デフォルトの名無しさん:2011/06/27(月) 08:05:07.49
つーか今のWebBrowserはいろいろ触れるだろ
古いバージョン向けのWebBrowserのコードはいろいろ面倒だったけど

356 :デフォルトの名無しさん:2011/06/27(月) 08:13:11.81
DOMで高さ取れるよWebBrowser

357 :デフォルトの名無しさん:2011/06/27(月) 08:31:35.19
wpfのwebbrowserはDocumentがobjectだったりして使えねーけどな
あれをdinamicで組めとか言うつもりなのか?

358 :デフォルトの名無しさん:2011/06/27(月) 08:33:38.83
>>356
取れない場合があるだからなあ

359 :デフォルトの名無しさん:2011/06/27(月) 08:36:39.21
純正のWebBrowserはDelphiの頃から腐ってるイメージしかない

360 :デフォルトの名無しさん:2011/06/27(月) 08:41:50.81
webkit.netはDOMが触り程度しか実装されてないけど、JavaScript流し込んで
実行することができるので、それを使って誤魔化せ

361 :デフォルトの名無しさん:2011/06/27(月) 08:44:37.30
なんでそんなAndroidみたいなマネを

362 :デフォルトの名無しさん:2011/06/27(月) 09:31:28.76
>>354
なにそれ

363 :デフォルトの名無しさん:2011/06/27(月) 10:45:30.90
>>357
あれWPFの意味が全く無い実装で
WindowsFormsHostでWinFormsのWebBrowser使うのと同じだから
必要ならそっち使えってことだろ
Silverlightの方のWebBrowserは描画がフレームワークに統合されてるんだけど
WPFのWebBrowserはウィンドウハンドル持ってて糞

364 :デフォルトの名無しさん:2011/06/27(月) 10:53:42.81
>>363
WindowsFormsHostで使っているんだが、GridSplitterで動かすと上手く描画が更新されない
何か上手く行く方法ありませんかね?

365 :デフォルトの名無しさん:2011/06/27(月) 10:54:22.10
つまりPHPでは
$array(
array(1,2,3),
array(4,5,6)
);
とC#のジャグ配列は一緒ではないという事ですか?

366 :デフォルトの名無しさん:2011/06/27(月) 11:12:08.33
>>364
UpdateWindowPosとかInvalidateMeasureとか呼んでみたら
>>365
それはC#でいうジャグ配列(配列の配列)
C#でいう多次元配列はPHPには無い
でも不便だから多次元配列は無理に使わなくていいよ
最適化や新機能からハブられまくってる過去の機能

367 :デフォルトの名無しさん:2011/06/27(月) 11:24:09.83
このスレみてGeckoFx使ってみたが便利すぎワラタw

368 :デフォルトの名無しさん:2011/06/27(月) 12:21:54.35
>>366
了解しました

369 :デフォルトの名無しさん:2011/06/27(月) 12:23:30.50
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()してみたら、これはフリーズしました。

結果として動いたのは嬉しいんですが、ここまで違いが出た理由が全く分からなくて気持ち悪いです。
誰か説明して頂けないでしょうか?

372 :デフォルトの名無しさん:2011/06/27(月) 16:11:12.09
>>370
何故AL?

373 :デフォルトの名無しさん:2011/06/27(月) 18:06:33.44
>>371
「GUIを更新するのはGUIを生成したスレッドでなければならない」という制約がある
全部それに起因する問題

多少正確な表現ではないけど

374 :デフォルトの名無しさん:2011/06/27(月) 20:22:40.72
>>372
なんとなく

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はどうでもいい

よって「○○の作者さん、ありがとう」と書いておけばいい

377 :デフォルトの名無しさん:2011/06/27(月) 21:36:20.80
さてさて、
form2.ShowDialogはShowDialogで表示したダイアログが閉じるまでブロックされるのは仕様だろう。
ダイアログでは色々設定してその結果をプロパティなどを経由して呼び出し元に提供するからね。

で、while(true){sleep(5000)}これがなにやってるかわかるかな?
基本シングルスレッドの条件化でメッセージループしながらイベントとか処理してるはずなんだが、
そのシングルスレッドの処理をとめる行為じゃないかな?
止まってる間はメッセーループを処理できないし、それができなければフォームはフリーズしないかね?

さてさて・・・。

378 :デフォルトの名無しさん:2011/06/27(月) 21:37:39.04
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を描写するスレッドとは別のスレッドで処理される」
のどちらかなのでしょうか?

381 :デフォルトの名無しさん:2011/06/27(月) 22:30:44.72
>Primeからform2のコントロールにアクセス出来ないのは、コントロールがスレッドセーフでないからとの事のようですが、
ちげーよ。

>そもそもshowしただけではform2は別スレッドで処理されない
そうだよ。

>Calcメソッドの中で無限ループ
なんでしょ?

form2.Show();
Calc(); // ここから戻ってこない

なんだから同スレッド上のform2のメッセージポンプは動かないよ
ためしにCalc();のループ内でApplication.DoEvents();してみそ

382 :デフォルトの名無しさん:2011/06/27(月) 22:35:53.62
なんでわざわざそんな面倒でいかにもトラブルの元になりそうなことするかなあ
Calcは計算して結果をコレクションに突っ込むだけにして、フォームはタイマでも使って定期的にその結果を表示するようにするのが定石

383 :デフォルトの名無しさん:2011/06/27(月) 22:41:35.21
そんなの定石じゃないですからw



384 :デフォルトの名無しさん:2011/06/27(月) 22:50:48.51
タイマ使うかはともかく、計算用スレッドでメッセージループ回したりはしないだろ
BeginInvokeにしろBackgroundWorkerにしろ

385 :デフォルトの名無しさん:2011/06/27(月) 22:51:00.71
定石と言えるのは「無限ループを伴う計算はGUIとは別スレッドでやる」ぐらいだよな
後のGUIスレッドとの通信とかクラス分け等の実装は様々

386 :デフォルトの名無しさん:2011/06/27(月) 22:55:36.46
データの変更ごとにビューを更新するのが基本ではあるが、変更の頻度が高すぎて
それだと非効率な場合なんかは、確かに>>382のようにするのがまあ定石だと思うが。

387 :デフォルトの名無しさん:2011/06/27(月) 23:01:02.47
まあ取り敢えずPrimeクラスにFormを持たせるのは俺はやらないな…

388 :デフォルトの名無しさん:2011/06/27(月) 23:09:11.87
Primeクラスはスレッドやフォームを全く意識せずに作って
BackgroundWorkerで for (int i = 1; i < end; i++) { bool result = prime.IsPrime(i); BeginInvokeとかReportProgressとか共有コレクションに入れるとかして結果出力(result); }
とするのがいいと思う

389 :デフォルトの名無しさん:2011/06/27(月) 23:15:23.03
>>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
>>390
普通です

392 :デフォルトの名無しさん:2011/06/27(月) 23:52:45.30
>>390
C++で苦労したことを思い出した

393 :デフォルトの名無しさん:2011/06/28(火) 07:18:06.10
>>375
Showしたスレッドがメッセージを処理するので、while(true){sleep(5000)}で止まってる限り一行にメッセージが処理されない

394 :デフォルトの名無しさん:2011/06/28(火) 07:32:54.81
やべえ全然更新してなかった

395 :デフォルトの名無しさん:2011/06/28(火) 08:18:57.36
SendMessageの醜悪な仕様がすべての元凶か。。

396 :デフォルトの名無しさん:2011/06/28(火) 09:52:07.99
Formが無いと動かせないようなコードは極力書くべきではないわ
そういう意味でもPrimeがFormを持つよりFormにPrimeを持たせるべき…

397 :デフォルトの名無しさん:2011/06/28(火) 10:06:17.72
スクレイピングの質問です。
データがロードされてテーブルが表示される前にHTMLがダウンロードされるようです

398 :デフォルトの名無しさん:2011/06/28(火) 10:06:57.05
それは当たり前のことではないでしょうか

399 :デフォルトの名無しさん:2011/06/28(火) 10:07:06.04
質問文になってねぇ

400 :デフォルトの名無しさん:2011/06/28(火) 10:08:30.45
自動車は走る前にガソリンを入れなければならないようです。

って言ってるのと変わらん。

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を見るくらい?

404 :デフォルトの名無しさん:2011/06/28(火) 10:24:00.65
つーか何がしたいねん
スクレイピングならSGMLReaderとか使って生のXMLに触ればいいじゃないか
なぜWebBrowserを介するんだ?
お前がやりたいのは本当にスクレイピングなのだろうか?

405 :デフォルトの名無しさん:2011/06/28(火) 10:25:13.55
http://www.ken3.org/cgi-bin/group/vba_ie.asp

上記サイトのVBAで表を抜く方法をC#で行うか、別の効率の良い方法でスクレイピングしたいのです

406 :デフォルトの名無しさん:2011/06/28(火) 10:26:27.84
>>404
SgmlReaderも試しましたが、テーブルが表示される前にHTMLがダウンロードされるようです

407 :デフォルトの名無しさん:2011/06/28(火) 10:29:04.07
ああ、IEに表示されてるデータに対してやりたいってか
だからダウンロードが発生するとか意味不明な発言が飛び交ってるのね

InternetExplorer.Applicationからやろうって発想がまず間違ってる

408 :デフォルトの名無しさん:2011/06/28(火) 10:31:06.29
すごい発想やね。普通は取得したHTMLから中身を取り出すのに。

409 :デフォルトの名無しさん:2011/06/28(火) 10:36:47.43
取得するHTMLの取得タイミングをワンテンポずらしてHTMLを取得しないと取れないのです

410 :デフォルトの名無しさん:2011/06/28(火) 10:38:43.24
Ajaxってこと?

411 :デフォルトの名無しさん:2011/06/28(火) 10:38:56.05
またわけの分からんことを
エスパーの出番

412 :デフォルトの名無しさん:2011/06/28(火) 10:39:47.16
DownloadData
OpenRead
WebRequest
webbrowser
SgmlReader

あたりは試してVBAのIE操作はOKでした、C#でのIE操作記述方法は手こずってますが、ほかの効率の良い方法を試したいのです

413 :デフォルトの名無しさん:2011/06/28(火) 10:40:15.65
AjaxでもWebBrowserなら問題ないと思うけど

414 :デフォルトの名無しさん:2011/06/28(火) 10:41:02.73
Html Agility Packも試しましたがアウトでした

415 :デフォルトの名無しさん:2011/06/28(火) 10:42:54.85
>>2のideone使ってコード貼れ
貼れないなら説明する力を身につけてから出直してこい

416 :デフォルトの名無しさん:2011/06/28(火) 10:43:26.52
あとどこのデータ抜きたいのかURLね

417 :デフォルトの名無しさん:2011/06/28(火) 10:48:25.79
コードは>>405にあるものをベースに、URLはこれです
http://www.cmegroup.com/trading/equity-index/international-index/nikkei-225-dollar_quotes_settlements_futures.html

C#での更なる効率的な方法が知りたいのです

418 :デフォルトの名無しさん:2011/06/28(火) 10:48:32.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で問題無いと思ってたんですが、オブジェクト指向って難しいですね。

420 :デフォルトの名無しさん:2011/06/28(火) 10:51:52.20
>>417
OKOK理解した
javascriptの完了が待てればいいってことな

421 :デフォルトの名無しさん:2011/06/28(火) 10:53:05.36
やっぱりAjaxじゃん。

422 :デフォルトの名無しさん:2011/06/28(火) 10:54:07.56
なんとか方向性がわかりました、自己解決いたします
どうもありがとうございました

423 :デフォルトの名無しさん:2011/06/28(火) 10:55:11.51
Ajaxだと、DocumentCompleteのタイミングじゃデータの準備が出来ていないって事かな?

424 :デフォルトの名無しさん:2011/06/28(火) 10:57:54.76
Ajaxだったらテーブルができるまでポーリングするほかないな。たぶん。

425 :デフォルトの名無しさん:2011/06/28(火) 10:58:00.96
javascriptの完了待つのならnavigatedイベント拾えばいいんじゃないの?
documentcompletedイベントだとだめだが

426 :デフォルトの名無しさん:2011/06/28(火) 10:59:48.91
>>423
DocumentCompletedだとhtmlとそのヘッダー部分に書かれてるjsなどすべてでで発生するので
どれが完了したか調べないとだめ

ページを構成するファイルすべてが終わった際に発生するnavigatedイベントで考えればOK

427 :デフォルトの名無しさん:2011/06/28(火) 11:02:04.70
たとえばこのスレWebBrowserで処理させてるとdocumentcompletedイベントは2回呼ばれるんじゃないかな?

428 :デフォルトの名無しさん:2011/06/28(火) 11:07:41.09
一番いいのはパケットキャプチャしてAjaxでやってるリクエストを
マネして呼ぶことだね。そうすればWebBrowserを介さないですむ。

429 :デフォルトの名無しさん:2011/06/28(火) 11:13:27.96
>>418さんの文章は、主語が抜けてます。

430 :デフォルトの名無しさん:2011/06/28(火) 11:16:56.60
3回だった・・・・
html,jsとあとなんだろw

431 :デフォルトの名無しさん:2011/06/28(火) 11:21:22.52
>>429
ニホンゴデイイデスヨ

432 :デフォルトの名無しさん:2011/06/28(火) 11:21:34.45
XmlHttpRequestが非同期でやってる場合はNavigatedを使っても駄目だぜ

HtmlDocumentのAttachEventでjavascriptのイベントを差し込めるが
IEにはDOM変異イベントが存在しないのであった
IE死ね

433 :デフォルトの名無しさん:2011/06/28(火) 11:21:59.40
うむ。キャプチャしてクッキーまねてリクエストだしたら取れたな。
これが最速だろう。

434 :デフォルトの名無しさん:2011/06/28(火) 11:23:26.59
>>433
それってjsに書いてね?

435 :デフォルトの名無しさん:2011/06/28(火) 11:26:31.33
>>434
jsを読むのとキャプチャとどっちが楽かってことですな。

436 :デフォルトの名無しさん:2011/06/28(火) 11:28:35.56
× 死ね
○ 爆発しろ

437 :デフォルトの名無しさん:2011/06/28(火) 11:28:38.51
>>435
まあそういうことだねw
でもjsはあれこれ悩まないでも入手可能だしベタで投げる要求書いてることがほとんどだしなあ

438 :デフォルトの名無しさん:2011/06/28(火) 11:33:25.38
プロパティのオーバーロードって可能ですか?


439 :デフォルトの名無しさん:2011/06/28(火) 11:43:06.89
もちろんさ!
ただしvirtualかabstructに限る

440 :デフォルトの名無しさん:2011/06/28(火) 11:43:37.61
インデクサなら

どういう使われ方を想定してるのさ?

441 :デフォルトの名無しさん:2011/06/28(火) 11:49:41.93
>>439
オーバーライドちゃうでw

442 :デフォルトの名無しさん:2011/06/28(火) 12:46:29.33
ワロタ

443 :デフォルトの名無しさん:2011/06/28(火) 14:46:05.96
非常に初心者的質問でもうしわけありません

先日からVisual C# 2010 Expres でC#勉強しはじめたものです。
ウェブサイトでサンプルとか打ち込んで実行してみるのですが
コンソールアプリ作って実行した段階でコマンドプロンプトがピロっと表示されて
ウィンドウがすぐに閉じてしまい実行結果が確認できません。

ポーズかけておくにはどうしたらよろしいのでしょうか?

444 :デフォルトの名無しさん:2011/06/28(火) 14:48:23.59
Console.ReadLine();
で適当に入力待つとか

445 :デフォルトの名無しさん:2011/06/28(火) 14:53:24.34
ありがとうございます。
即消えなくなりました。

446 :デフォルトの名無しさん:2011/06/28(火) 14:55:46.20
面倒だから結果だけ欲しい時はCtrl-F5で起動してる
デバッグが必要なら、終了する前に止めるだろうしね

447 :443:2011/06/28(火) 15:01:17.47
デバッグ無しで実行(Ctrl+F5)だとポーズかかりますね
デバッグ開始(F5)だとポーズかからず
この違いはなにか意味あるんですかね?

448 :デフォルトの名無しさん:2011/06/28(火) 15:04:34.91
>>443
てか、なぜコンソールアプリから入るw
Windowsフォームからでいいんじゃね

449 :デフォルトの名無しさん:2011/06/28(火) 15:06:46.53
>>448
今でもご丁寧にコンソールアプリから解説してるサイトもあるからなあ・・・

450 :デフォルトの名無しさん:2011/06/28(火) 15:07:33.93
ああブレークポイント最初から設定して実行(デバッグ開始F5)で実行すればよかった
ということなのかな?

>>448 いやーみてるサンプルサイトがコンソールアプリから書いてあるからかなw
作法もなにも知らないし順次こなしていこうかと。
windowsフォームから入るのも少しかんがえます。
ありがとうございます。

451 :デフォルトの名無しさん:2011/06/28(火) 15:43:17.31
いやいや、ifとかforの段階ならコンソールもアリだと思うぞ
別にformsからでもいいが、デザイナべったりでイベントの書き方も分からないというのは避けたい


452 :デフォルトの名無しさん:2011/06/28(火) 15:58:35.59
まー目的や趣味でどっちが良いかも変わるしな

ただ、C#の良さはUIの作り易さでもあるから、Windowsフォームからで良いかなと
コントロール貼りつけてダブルクリックするだけなのはMFCには出来ない芸当だし

イベントについては当然学習は必要だけども、全くの初心者なら後回しでも良いと思う
いきなりイベントの書き方を理解させようとすると混乱の元だし、考えなくてもとりあえずは動くからなー

453 :デフォルトの名無しさん:2011/06/28(火) 17:08:07.10
僕も初心者で今年からこのスレにお世話になってますが
コンソールから入るのがいいと思ってます

454 :デフォルトの名無しさん:2011/06/28(火) 17:13:24.07
誰かも言ってたが、基本構文を覚えるときはシンプルな方法で覚えたほうが副作用無いと思う。
C#やるんであればフォームは、まぁ、避けられない道ではあるけども、VC#の挙動を把握するために下地は必要だと思う。
そのためには、C#だけじゃなく色々雑食なほうが見通しはいいと思う。

車輪の再発明は基本的に不要だけども、車輪のことを知るには車輪のコピーを作るのが一番早い。と、俺は思ってるなぁ。

455 :デフォルトの名無しさん:2011/06/28(火) 17:36:17.17
VSでボタン置いたりして遊ぶことから入ってもいいと思うな
文字が出るだけじゃパッとしない気もするし

456 :デフォルトの名無しさん:2011/06/28(火) 17:38:09.21
本人が興味のあることから始めればいいよ

457 :デフォルトの名無しさん:2011/06/28(火) 18:10:37.38
DOSから入った人はコンソールからで
Windowsから入った人はフォームからがわかりやすいと思う

458 :デフォルトの名無しさん:2011/06/28(火) 19:31:27.75
>>457
別にそれでも構わんと思うけど、本もWebも入門と言ったらコンソールばかりだからな

フォームで入門したい初心者はそうとう頑張ってググるか、コンソールアプリで書かれた入門用のコードをフォームアプリに移植しながら学習するしかない


459 :デフォルトの名無しさん:2011/06/28(火) 19:33:06.49
プログラムの挙動を確かめたいときはコンソールでさくっと書く。
UIのことは思考から極力排除したいから。

460 :デフォルトの名無しさん:2011/06/28(火) 19:37:08.84
>>459
入門書や入門サイト書いてる人も同じ考えなんだろうな


461 :デフォルトの名無しさん:2011/06/28(火) 19:45:30.28
プログラム始めたの25年前だから初心者のきもちはわからないな

462 :デフォルトの名無しさん:2011/06/28(火) 19:48:51.84
>>461
玄人の経験から初心者には何を求めるかとその道筋をどう設定するかというのが何か無い?

463 :デフォルトの名無しさん:2011/06/28(火) 20:19:01.17
おれは新人にUnity3Dからやらしてる

464 :デフォルトの名無しさん:2011/06/28(火) 20:25:47.34
何でも一枚のフォーム上で済ませたがる入門ばかりで困る。
複数フォーム、MDIとか使った食べ応えあるのがいい

465 :デフォルトの名無しさん:2011/06/28(火) 20:28:01.32
せっかくOOPL使うんだし最初からOOPを意識してたほうが後々よいと思う

466 :デフォルトの名無しさん:2011/06/28(火) 20:53:00.58
MDIはMS非推奨じゃなかったっけ
(まあ、Excelとか未だにMDIだが)

467 :デフォルトの名無しさん:2011/06/28(火) 21:00:01.83
MDIつっても昔のようにウインドウの中にウインドウのアプリって減ってない?
エクセルもあるときから別ウインドウのように開いてなかったっけ?

468 :デフォルトの名無しさん:2011/06/28(火) 21:02:41.58
今時コンソールから入ってる入門書なんてないよw
GUIばっかり。
こういう適当なこと言う人は信用ならんね。

ひょっとしたら他言語使用者向けのC#の入門書にはそういう趣向のものがあるかもしれないが、
少なくともプログラミング未経験者向けの本(C#でプログラミングに入門する本)にそんなのはない。

ある訳ないよ今時そんなの売れないもん。

469 :デフォルトの名無しさん:2011/06/28(火) 21:08:22.15
最初に「GUIとは」「CUIとは」「簡単なGUIアプリの例」くらいは出すけど、
その後、文法説明に入るとしばらくコンソールって感じの奴が多くない?

470 :デフォルトの名無しさん:2011/06/28(火) 21:09:53.44
独習とかコンソールだった気がするけど

471 :デフォルトの名無しさん:2011/06/28(火) 21:11:04.88
猫でもわかる と wisdomsoft はコンソールからだな

472 :デフォルトの名無しさん:2011/06/28(火) 21:12:04.97
>>469
まあ実行結果出すにしてもGUIの場合だとtextboxでも貼り付けておかないと
だめだろうしってことじゃないの?

あとGUIの場合はmainから始まらないでLoadとかShownにコード書くしね

473 :デフォルトの名無しさん:2011/06/28(火) 21:12:52.34
どうでもいい争いw

474 :デフォルトの名無しさん:2011/06/28(火) 21:13:17.27
「.NET」について解説している入門書は確実にFormが出ると思う
「C#」について解説している入門書はそうでもないと思う

475 :デフォルトの名無しさん:2011/06/28(火) 21:14:59.81
お前らどんだけ入門書好きなんだよ

476 :デフォルトの名無しさん:2011/06/28(火) 21:15:26.56
いつも心は初心者なんだよ

477 :デフォルトの名無しさん:2011/06/28(火) 21:16:32.05
梅沢富男の夢芝居か

478 :デフォルトの名無しさん:2011/06/28(火) 21:16:43.02
まあ、初心者用のスレだからなw

479 :デフォルトの名無しさん:2011/06/28(火) 21:18:11.93
どの本でC#童貞を捨てたか晒してもいいよ

480 :デフォルトの名無しさん:2011/06/28(火) 21:19:14.93
Javaから移籍組だから読んでない

481 : 忍法帖【Lv=2,xxxP】 :2011/06/28(火) 21:19:48.74
>>464
だなぁ。

482 :デフォルトの名無しさん:2011/06/28(火) 21:20:31.03
>>467
Excelの何が嫌って
「別ディレクトリに有る、同じ名前のファイル」 を同一プロセス上で開けない所だ('A`)

>>479
最初は本読まずに、@IT・CodeZine等の情報サイトや個人ブログからだったなあ
C#始めたきっかけはSilverlightからだった

483 :デフォルトの名無しさん:2011/06/28(火) 21:30:23.79
MDIはもうWin98の時代に一度死亡宣告されてるよね。
その割にしぶとい。
SDIの優位性を説く時に引き合いに出されてたIEも結局MDIになっちゃったし。

しかし、.NETのMDIはバグ多すぎるな

484 :デフォルトの名無しさん:2011/06/28(火) 22:00:36.88
IEはMDIって言うのか?
タブとMDIは、また別物だと思う (OperaはMDIだが)

複数のウィンドウでプロセスを共有する、という意味では
まあMDI的と言えるかもだが

485 :デフォルトの名無しさん:2011/06/28(火) 22:22:35.60
身近なMDIソフトがあるじゃないか・・・・VS

486 :デフォルトの名無しさん:2011/06/28(火) 22:25:42.01
Beepの音量をC#で調整する方法はございませんか?

487 :デフォルトの名無しさん:2011/06/28(火) 22:29:25.54
タブ型はあんまりMDIとは言わないだろう
VS2010はドキュメントを子ウィンドウに分離できるようになったけど
フローティングだから昔ながらのMDIとは全く動作が違うし

488 :デフォルトの名無しさん:2011/06/28(火) 22:31:47.01
http://ja.wikipedia.org/wiki/Multiple_Document_Interface
>タブ方式のインターフェースのことはTabbed Document Interface (TDI) と言う

らしいよ

489 :デフォルトの名無しさん:2011/06/28(火) 22:35:03.14
そういやMTIなんてのも有ったな…w
GIMPみたいな奴か

490 :デフォルトの名無しさん:2011/06/28(火) 22:37:05.19
フローティグっていう言葉の意味は普通はドッキングしてないって意味。
MDIかどうかとはあまり関係がありません。

っていうか、あれがMDIじゃなくて何がMDIよ。
プログラマにもこういう人いるのな

491 :デフォルトの名無しさん:2011/06/28(火) 22:40:06.28
>>486
Vista以降で使えるAPIがあって、音量調節可能

Core Audio API
http://www.codeproject.com/KB/vista/CoreAudio.aspx

492 :デフォルトの名無しさん:2011/06/28(火) 22:41:20.78
タブ使ってるかどうかもMDIと関係ないな。
MDIはメインメニューにウィンドウ選択するアイテムをマージできるけど、
単にそのメニューの同じ機能をタブに持たせただけじゃん。

493 :デフォルトの名無しさん:2011/06/28(火) 22:43:23.89
>>491
ありがとうございます

494 :490:2011/06/28(火) 22:45:58.35
と思ったけど、2010からは確かにメインウィンドウがMDI親になってないなw
そんなの試したことないから気づかなかったすまん

495 :デフォルトの名無しさん:2011/06/28(火) 22:52:50.21
親から外に出せないウィンドウなんかもう要らんよ

496 :デフォルトの名無しさん:2011/06/28(火) 23:02:31.95
マルチモニタ環境での利便性のためにああなったらしいね

497 :デフォルトの名無しさん:2011/06/28(火) 23:13:49.04
ボタンクリックイベントにだらだら書いて、結果をメッセージダイアログをぴろ〜んって
子供騙しにもなりゃしない。つか、今時子供の方が眼が肥えてる。
無関心無感動じゃなく、低レベル過ぎて冷めてるんだよな〜。

498 :デフォルトの名無しさん:2011/06/28(火) 23:16:49.37
なにいってんだこいつ

499 :デフォルトの名無しさん:2011/06/28(火) 23:19:30.83
ボタンクリックイベントにだらだらコーディング楽しすぎワロタ

500 :デフォルトの名無しさん:2011/06/28(火) 23:23:10.25
ボタンクリックイベントにだらだらコーディングしないと上司に怒られるオワタ

501 :デフォルトの名無しさん:2011/06/28(火) 23:38:18.64
イベントハンドラには、確かにあまり長々と書きたくは無い。
でも、イベントハンドラに一行も書かない事が美徳であるかの様なMVVM原理主義もどうかと思う。

502 :デフォルトの名無しさん:2011/06/28(火) 23:59:02.68
イベントハンドラの中身を他のクラスに書いてるだけ
が一番タチが悪い
結局そのクラスからフォーム上のコントロールに直接アクセスしたりしてて何の意味もない

503 :デフォルトの名無しさん:2011/06/29(水) 00:00:04.51
メッセージボックスがポンポコ出るアプリなんて糞

504 :デフォルトの名無しさん:2011/06/29(水) 00:11:23.81
上の方で言ってるけどFormが無くても動作できるならそれでよし

505 :デフォルトの名無しさん:2011/06/29(水) 00:18:08.39
まあ、無難なところかな。
初心者には全く必要ないけどw

506 :デフォルトの名無しさん:2011/06/29(水) 00:57:32.93
上のPrimeもそうだが、初心者はクラス分けようとすると
利用される側が利用する側をやたらと呼び出す構造にしてしまいがち
本当に必要ならイベントとかインターフェイスとか使えばいいけど、
それが本当に必要な場面ってそれほど多くなくて、複雑で取り回ししづらくなるから可能なら避ける

507 :デフォルトの名無しさん:2011/06/29(水) 00:59:31.39
便利にしようとすると相互作用させたくなるもんなー

508 :デフォルトの名無しさん:2011/06/29(水) 01:06:20.19
「将来の拡張性」って言う魔法の言葉は、今一つ役に立たなかったりするけどね

509 :デフォルトの名無しさん:2011/06/29(水) 06:06:21.31
C#で画像をAA化するソフトを作ってみたいんですが、何が必要ですか?

510 :デフォルトの名無しさん:2011/06/29(水) 07:01:42.62
よくある漢字の濃淡に置き換えるやつ?
それとも職人がつくるようなAA?

前者ならグレースケール化して一定範囲の明るさの平均値を漢字等に置き換える
後者なら輪郭抽出とかかな? 職人に訊きなw

511 :デフォルトの名無しさん:2011/06/29(水) 08:48:14.44
PCが出力している音声を保存する方法を探しています。
どのようなAPIで可能でしょうか?ぐぐるためのヒントなど
いただけたらと。

512 :デフォルトの名無しさん:2011/06/29(水) 09:02:14.68
>>511
>>491


513 :デフォルトの名無しさん:2011/06/29(水) 09:11:31.51
これか!
http://wisdom.sakura.ne.jp/system/winapi/media/mm7.html

514 :デフォルトの名無しさん:2011/06/29(水) 10:49:00.97
自分はPHPしかできなくてC#とCとJavaとHSPとかじってみたんですが
一つ勉強すると他の言語を触らなくなるので書き方とかわからなくなります
PHPはもう何年もやってるのでブランクあってもすぐかけるのですが
他の言語だとそうもいきません
ここのスレの先輩方はどうやって克服して言ってるのでしょうか?

515 :デフォルトの名無しさん:2011/06/29(水) 10:55:00.53
そんなの普通でしょ

516 :デフォルトの名無しさん:2011/06/29(水) 10:56:18.04
慣れです

517 :デフォルトの名無しさん:2011/06/29(水) 10:56:36.69
経験して積み重ねていくしかないと思うけど・・・
しいて言えばメイン言語との差分を覚えていくって感じにはしてる
WEB系なら大きな造りは基本変わらないから

518 :デフォルトの名無しさん:2011/06/29(水) 11:12:43.02
サービスの制御について質問なんですが、ドキュメントを読むと

ServiceController sc = new ServiceController(サービス名,マシン名)
sc.Pause();

で別PCのサービスの制御ができるようで、実際にやってみたらできました。
ただ、認証をしていないのですが、これはなぜでしょうか?
一度リモートデスクトップで入っているので、その設定を勝手に見ているからなんでしょうか?


519 :デフォルトの名無しさん:2011/06/29(水) 11:12:45.58
これだな
http://eternalwindows.jp/winmm/wave/wave04.html

520 :デフォルトの名無しさん:2011/06/29(水) 11:23:35.20
え?

521 :デフォルトの名無しさん:2011/06/29(水) 19:59:43.57
ここでコードを晒したら誰かが採点してくれたりしてくれますか?
コードはコンソールプログラムです

522 :デフォルトの名無しさん:2011/06/29(水) 20:02:11.88
http://ideone.com/
↑を使えば、誰かしら見るだろ。
採点は基準がないから、むずかしいけど、感想ぐらいなら聞けるんじゃない?

523 :デフォルトの名無しさん:2011/06/29(水) 20:06:21.65
いつもここでお世話になっているものです
最近コンソールはC#で作る必要ないかなと思うようになりました
コンソールならRubyとかPythonのほうがいいような気がしました
できるならCがいいのかもしれません
C#は手っ取り早くGUIプログラムを綺麗なコードで作れるのが一番のメリットだと思います

524 :デフォルトの名無しさん:2011/06/29(水) 20:07:51.82
俺的に今更Cは無いな…C++なら同意しとく

525 :デフォルトの名無しさん:2011/06/29(水) 20:11:09.32
今更コンソールアプリ作るとしたら、大抵はGUIアプリのオマケじゃないか?
だったら同言語で書くよ

526 :デフォルトの名無しさん:2011/06/29(水) 20:21:29.73
C#にとってはCUIもGUIもただのライブラリだからな・・・

527 :デフォルトの名無しさん:2011/06/29(水) 20:40:34.25
自分用のちょっとしたツールなんかは、GUIが必要でなければコンソールでやっちゃうかな
C#っつーか、PowerShell辺りで十分な事も多いが

528 :デフォルトの名無しさん:2011/06/29(水) 21:58:46.12
楽さで選ぶとExcelVBAが・・・

529 :デフォルトの名無しさん:2011/06/29(水) 22:09:15.56
とりあえず、処理は別クラスにして、簡単なGUIにしちゃうな。

530 :デフォルトの名無しさん:2011/06/29(水) 22:13:27.31
>>528
こないだ初めて仕事で簡単なのを書いたが
俺には苦痛以外の何物でもなかったぜ……

531 :デフォルトの名無しさん:2011/06/29(水) 23:33:05.84
>>524
C++はCほど厳密にメモリ管理できずC#ほど手軽でもない中途半端すぎるクソ言語だとGObjectの作者が言ってた

532 :デフォルトの名無しさん:2011/06/29(水) 23:35:36.41
Cにメモリ管理なんてあったっけ
意味不明だな

533 :デフォルトの名無しさん:2011/06/29(水) 23:40:46.83
まあ、PC98でDOS動かしてた頃なら、メモリ管理も厳密にやらないといけなかったんだろうけど

534 :デフォルトの名無しさん:2011/06/29(水) 23:42:26.02
シングルプロセスの時はメモリ管理がアバウトって話をよく聞いた気がする。
未使用領域を確保しないで使うとか。

535 :デフォルトの名無しさん:2011/06/29(水) 23:45:48.06
>>532
CとC#とPythonの混在が最強だろう

536 :デフォルトの名無しさん:2011/06/30(木) 00:34:36.67
と、初心者が言ってみる

537 :デフォルトの名無しさん:2011/06/30(木) 00:47:06.74
C++がCよりメモリ管理があいまいだっていう発想は普通はないよな。
どういうことか聞いてみたいな。

538 :デフォルトの名無しさん:2011/06/30(木) 01:20:37.28
Pythonはsubprocessの仕様がアレなのでWin環境では実用といいがたい

539 :デフォルトの名無しさん:2011/06/30(木) 01:56:23.29
スタックにインスタンス置くとかじゃね
実際小さい規模の開発なら何でもかんでもスタックに置いて参照渡ししまくるようなC++らしいやり方はとても便利で
メモリをそんなに意識せずに結構テキトーに扱えるよ
複雑になってくるとあまり役に立たなくなるけど

540 :デフォルトの名無しさん:2011/06/30(木) 02:17:57.92
ラベルに文字を出したときにPaddingをゼロにしていても左側に余白ができるんですが
この余白の幅(ピクセル)を求めるにはどうすればいいのでしょうか?

ttp://thuploader.orz.hm/1mup/dat/1mup_02647.png

541 :デフォルトの名無しさん:2011/06/30(木) 03:45:14.75
それはそのフォントのグリフ自体に設定されてるマージンじゃないの?
だからPaddingとか関係ない

適当なサイズのビットマップを作成して x=0 の位置に文字を描画

画像左端からピクセルの色をチェック

背景色以外のピクセルが来たらその x 座標が l の左側のマージン

もちろん糞遅いから GetPixel なんか使うなよ

542 :デフォルトの名無しさん:2011/06/30(木) 03:50:25.69
書き忘れた
各行について調べて、見つかった x 座標の最小値とるんだぞ

543 :デフォルトの名無しさん:2011/06/30(木) 07:50:41.06
C#勉強中の初心者ですが、処理をクラス毎に分けるというのがよくわかりません
フォームアプリケーションで例えばテキストボックスに入力された文字をテキストファイルに書きだす
この処理だけでもForm1クラスとは別のクラスに書いて呼び出したほうがいいんでしょうか?
別クラスにすると、テキストボックスのインスタンスをどうにかして取得するか、
引数としてテキストボックスのテキストを渡すということをしなければいけないのでどっちがいいのかわからないです・・・

544 :デフォルトの名無しさん:2011/06/30(木) 07:54:33.47
>>543
そのくらいの規模なら必要ないでしょ

ある程度規模が大きくなるとこの辺は分けたいなあとかいうのが
でてくるだろうからそのときでいいんじゃないの?

545 :デフォルトの名無しさん:2011/06/30(木) 08:07:27.37
>>543
なんだこれ
だせぇなって思うまではクラスは使わなくていいよ

546 :デフォルトの名無しさん:2011/06/30(木) 09:24:38.31
>>543
初心者はとりあえずクラスやインスタンスのような言葉は考えるな
とりあえず直接文字列をテキストファイルに書き出せばおk

547 :543:2011/06/30(木) 09:31:34.61
返答ありがとうございます
複雑なコードになりそうな時だけ、別クラスに書きこむことにします

548 :デフォルトの名無しさん:2011/06/30(木) 09:39:44.21
C#というより.net ってシランうちにComplexサポートするようになってたんだな。
当然、VBもComplex使えます

http://msdn.microsoft.com/ja-jp/library/ee259523.aspx

549 :デフォルトの名無しさん:2011/06/30(木) 09:55:21.61
ぐおおおおおおおおおおおおおお
自分でComplexクラスを作ったばっかりなのに・・・
そもそも今まで虚数計算出来ないこと自体が謎だったんだ

550 :デフォルトの名無しさん:2011/06/30(木) 09:56:41.97
>>548
数学で使うの?

551 :デフォルトの名無しさん:2011/06/30(木) 10:50:47.03
>>549
自分のとMSのを比べれば
色々勉強になるから全くの無駄にはならないじゃん

552 :デフォルトの名無しさん:2011/06/30(木) 11:11:39.60
>>551
実数部と虚数部を用意するだけなんだけどなw

553 :デフォルトの名無しさん:2011/06/30(木) 11:17:01.80
main.csからfile.csという外部ファイルのクラスは読めるのですが
file.csがfolderっていうフォルダにに入ってた場合(folder\file.cs)どうやってmain.csから読み込むのでしょうか?

554 :デフォルトの名無しさん:2011/06/30(木) 11:32:08.85
.NET Frameworkって、上位互換だから4.0入れとけば大丈夫、
って誰か言ってたからそうしてたけど、
今日初めて、2.0をインストールしろと要求された。
ということは、1.0から4.0まで全部入れてないと
動かないアプリが出てくると言うことですか?

555 :デフォルトの名無しさん:2011/06/30(木) 11:49:38.08
>>554
機能としては上位互換だけど、
XPに入ってるのは2.0

556 :デフォルトの名無しさん:2011/06/30(木) 11:54:21.30
>>553
C# に物理パス関係ないんだけど。
C 言語とかと勘違いしてない?

>>554
バージョン指定を明示してるんじゃないかな。

557 :デフォルトの名無しさん:2011/06/30(木) 12:11:33.61
>>554
元々.NETは出来る限り後方互換は保つようにするけど
原則としてそのアセンブリに合ったバージョンのものを使うべしって指向

で、その方針を強化するために.NET 4ではapp.configに明記しない限り
.NET 2.0用のアセンブリは.NET 4でロードしないようになった

558 :デフォルトの名無しさん:2011/06/30(木) 12:18:23.50
C#ってJavaに勝てるんですか?俺的には今C#の勉強をしてて無駄になったら後悔しそうなんです

559 :デフォルトの名無しさん:2011/06/30(木) 12:25:13.87
マジで吹いてしまったw

560 :デフォルトの名無しさん:2011/06/30(木) 12:41:03.35
ABC順で並べたらC#の圧勝なわけなんですけど

561 :デフォルトの名無しさん:2011/06/30(木) 13:00:17.71
>>558
Java も C# も両方残るでしょ、確実に。

562 :デフォルトの名無しさん:2011/06/30(木) 13:03:23.94
むしろC#はJavaを含んでいるといっても過言ではない

563 :デフォルトの名無しさん:2011/06/30(木) 13:07:27.48
まぁC#覚えればJavaにスライドするのはかなり楽だし損にはならない

564 :デフォルトの名無しさん:2011/06/30(木) 13:09:32.17
んだんだ

565 :デフォルトの名無しさん:2011/06/30(木) 13:32:33.54
Javaを少しだけ簡単にしたのがC#みたいな物だしな

566 :デフォルトの名無しさん:2011/06/30(木) 13:35:35.25
Javaはオワコンの雰囲気がただよってる。まるでCOBOLのような。

567 :デフォルトの名無しさん:2011/06/30(木) 13:53:42.83
最初のポストコボルであったPL/1からずいぶん経つけど
致命傷負いながら生き残っているよな
寧ろPL/1の方が青息吐息だよ

568 :デフォルトの名無しさん:2011/06/30(木) 13:53:45.01
http://journal.mycom.co.jp/news/2011/05/09/001/index.html
しかし、人気爆発中

569 :デフォルトの名無しさん:2011/06/30(木) 13:59:17.72
プログラム・ランゲージ ナンバー・ワン!

570 :デフォルトの名無しさん:2011/06/30(木) 14:08:35.89
>>566
そうなんですよ
そのJavaにC#が負けると僕の勉強が水の泡に鳴るので

571 :デフォルトの名無しさん:2011/06/30(木) 14:11:00.62
ワラタ

572 :デフォルトの名無しさん:2011/06/30(木) 14:11:43.18
言語なんて道具だろ
どのプラットフォームでどういう物作るかで道具を使い分けるくらいのつもりでいろよ

573 :デフォルトの名無しさん:2011/06/30(木) 14:16:07.46
>>570
安心しろ
何勉強しようが10年経てば水の泡だ
たとえ組み込みの世界でもな

574 :デフォルトの名無しさん:2011/06/30(木) 14:20:21.85
>>567
COBOLとPL/1はほぼ同時期に開発された

575 :デフォルトの名無しさん:2011/06/30(木) 14:26:12.01
俺はありとあらゆる言語を覚えたいが
今覚えてないのはLISPくらいか
後はほとんどマスターしたな。

576 :デフォルトの名無しさん:2011/06/30(木) 14:30:53.55
オラクル、グーグルから26億ドルの損害賠償を要求--Javaの特許侵害で
http://japan.cnet.com/news/business/35004664


577 :デフォルトの名無しさん:2011/06/30(木) 14:32:57.18
>>576

お探しのページは存在しません
2秒後にトップページに移動します。

578 :デフォルトの名無しさん:2011/06/30(木) 14:41:18.11
61億ドルじゃなかったっけ

579 :デフォルトの名無しさん:2011/06/30(木) 18:28:02.60
>>568
Lua人気上がってるのかー
ちょっと意外だな。や、良い言語だけれdも

>>575
Dとかgoとかもかよw

580 :デフォルトの名無しさん:2011/06/30(木) 18:36:02.41
HSPとかなでしこも忘れないで

581 :デフォルトの名無しさん:2011/06/30(木) 19:48:15.98
いや忘れてOKだろ

582 :デフォルトの名無しさん:2011/06/30(木) 19:53:19.43
ゲーム作るときってHSPのほうがいいですよね
だってHSPで作ればライブラリなんてインストールしてない環境でも動くし
C#でゲーム作るとたいていはXNAをインストールしたり場合によってはC#4.0も入れないと動かないし

583 :デフォルトの名無しさん:2011/06/30(木) 20:11:41.18
C#に慣れてる人がHSP使うとストレスで剥げるよ

584 :デフォルトの名無しさん:2011/06/30(木) 20:12:27.79
staticなクラスのプロパティに変更が加えられたことを通知するにはどうしたらいいんでしょうか

585 :デフォルトの名無しさん:2011/06/30(木) 20:16:27.92
でもおもしろいゲーム作ったらユーザーはどうにかして動かそうとするけどね
ランタイムなしで動いても1回起動して終わりがほとんどでしょ

586 :デフォルトの名無しさん:2011/06/30(木) 20:18:25.95
いやHSPは論外だろ

587 :デフォルトの名無しさん:2011/06/30(木) 20:24:24.18
>>584
イベント使えば良いんじゃね?

588 :デフォルトの名無しさん:2011/06/30(木) 20:24:35.91
>>584
クラスにOnChangedイベントなどを作成して
プロパティのsetterで呼べばいいんじゃないか?

589 :デフォルトの名無しさん:2011/06/30(木) 20:32:23.01
C#もWPFで禿げそうなんだけど。。。まだ、使う時期じゃないのかねぇ?
いろいろ、足りないものが多すぎる。

590 :デフォルトの名無しさん:2011/06/30(木) 20:33:46.36
Blendをタダでよこせ

591 :デフォルトの名無しさん:2011/06/30(木) 20:43:04.33
VSだけでは状態遷移を書くのが不便すぎるWPF。
Qtにはグラフィカルに編集できるエディタが無料で付いてくるぞ。
なんとかしろMS

592 :デフォルトの名無しさん:2011/06/30(木) 20:49:09.44
>>584
イベント使えばいいけどメモリリークには注意しろよ
登録解除しない限り通知先が絶対にGCされなくなる
イベントに限らずインターフェイスでもデリゲートでも同じ

593 :デフォルトの名無しさん:2011/06/30(木) 20:50:46.93
WeakEventにしようぜ

594 :デフォルトの名無しさん:2011/06/30(木) 20:51:02.45
>>592
デリゲートの登録・解除はわかるけど、インターフェースってどういうケース?

595 :デフォルトの名無しさん:2011/06/30(木) 20:53:52.82
オブザーバーパターンでも念頭にあったんじゃない?
C#でそんなのやる奴はいないけどさ

596 :デフォルトの名無しさん:2011/06/30(木) 21:02:35.77
メモリリークなんかどーだっていいんだよ
うるさすぎ
アプリ再起動すればいいだけ

597 :デフォルトの名無しさん:2011/06/30(木) 21:18:12.05
String.Internとかだとプロセス境界超えるけどね

598 :デフォルトの名無しさん:2011/06/30(木) 21:32:34.84
HSPは生産性が高まる実際言語だな
C#はクラスとかメソッドなどの難解な概念を見つけないとだめだから

599 :デフォルトの名無しさん:2011/06/30(木) 21:33:31.85
おじいちゃん、その話はもう終わったよ

600 :デフォルトの名無しさん:2011/06/30(木) 21:34:32.28
ファミリーベーシックで生産性がどうのこうの

601 :デフォルトの名無しさん:2011/06/30(木) 21:53:06.83
C#の参照型=Cのポインタ

602 :デフォルトの名無しさん:2011/06/30(木) 21:54:33.99
はい、次の方。

603 :デフォルトの名無しさん:2011/06/30(木) 21:55:39.59
はい、次の方。

604 :デフォルトの名無しさん:2011/06/30(木) 22:23:16.66
goto next;

605 :デフォルトの名無しさん:2011/06/30(木) 22:26:01.20
なんだかんだいったところで、Windowsアプリは
C/C++じゃなきゃ、お金をとれないよな


606 :デフォルトの名無しさん:2011/06/30(木) 22:27:11.04
BtoCかBtoBかで違うっしょ、そういうのは

607 :デフォルトの名無しさん:2011/06/30(木) 22:31:39.41
メトロノームはC#で作った方が精度いいしなぁ

608 :デフォルトの名無しさん:2011/06/30(木) 22:34:25.45
メトロノーム…
メトロ…
Metro…!(ビクンビクン

609 :デフォルトの名無しさん:2011/06/30(木) 22:36:09.10
.netあまつさえVBAでお金とりました。お客の希望でしたが、すいません・・・

610 :デフォルトの名無しさん:2011/06/30(木) 22:58:40.97
なんだかんだVBAは寿命が長い

611 :デフォルトの名無しさん:2011/06/30(木) 23:00:58.95
いい加減、PowerShellやLightSwitchに座を明け渡して欲しいモンだが
中々しぶといよなあ >VBA

612 :デフォルトの名無しさん:2011/06/30(木) 23:52:42.47
VBAよりもLINQを使おう!

613 :デフォルトの名無しさん:2011/07/01(金) 00:03:20.48
みなさんのお知恵を借りてC#の勉強は続けて生きたいと思います
やっぱりJavaも吸収したいのでJavaもやることにします
C#でアンドロイドアプリがつくれるようになるのが理想ですが

614 :デフォルトの名無しさん:2011/07/01(金) 00:23:08.00
Mono for Androidなるものがあったりするんだけども、有償なのよね。
Unity は Android 対応してないんだっけ?

615 :デフォルトの名無しさん:2011/07/01(金) 00:23:15.28
>>613
金出せるならC#でAndroidアプリ作れるよ

616 :デフォルトの名無しさん:2011/07/01(金) 00:52:13.71
アンドロイドってなに?メトロイドの仲間?

メトロイド
メトロイ
メトロ
メトロノ

617 :デフォルトの名無しさん:2011/07/01(金) 00:57:49.83
オランダ妻は電気ウナギの…なんてのが昔あったな

618 :540:2011/07/01(金) 00:59:38.35
>>541
回答ありがとうございます。

いろいろ探してたらそれっぽいサイトが見つかったのでこのやり方でやってみて
できなかったらローラー作戦で行こうと思います。

VB.netで文字を正確な位置に描く。
ttp://penguinlab.jp/blog/post/117

619 :422:2011/07/01(金) 07:36:18.85
>>428
>>432
>>433
>>435

何度もすみません、ここらへんググってもよく分かりません
オススメの書籍を教えてください

620 :デフォルトの名無しさん:2011/07/01(金) 09:05:20.38
君はプログラマに向いてないよ、やめてしまえ

621 :デフォルトの名無しさん:2011/07/01(金) 09:09:22.71
>>620
まあC#とは直接関係ないけどヒントくらいはいいんでね?

パケットキャプチャとか言ってるのはこういうツールでhttp通信を覗く
http://www.atmarkit.co.jp/fwin2k/win2ktips/1045wshark/wshark.html
※これに関連するのはhttpヘッダーなど

jsを読むっていうのはあなたがデータを入手したいホームページのソース
を開いてhtmlのヘッダなどに書かれてるjavascriptのアドレスを調べて
それを開くとjavascriptのソースが入手可能なのでそれを解析する
※これに関連するのはhtmlとjavascriptとhtmlヘッダーなど

622 :デフォルトの名無しさん:2011/07/01(金) 09:48:25.04
>>621
概要の把握には助かりました
あと、実装部分で参考になる書籍、リンクがあったら助かります
ちなみにプログラムそのものは目的じゃないです

623 :デフォルトの名無しさん:2011/07/01(金) 09:52:52.07
httpヘッダーがわかればHttpWebRequestを使ってjsが入手してるxmlだっけ?
を取得するコードを書いて表を作るとかすればいいんじゃないの?

まずはxmlを入手するコードを書くしかないね

624 :デフォルトの名無しさん:2011/07/01(金) 10:01:44.42
ググってわからない人に書籍を教えても
わからないって言うだけだから無駄なんだよね

625 :デフォルトの名無しさん:2011/07/01(金) 10:02:11.47
しょうがないなー
今回だけだぞ
http://dobon.net/vb/dotnet/internet/usecookie.html
のコードのMainを

//指定したURLのHTMLを受信し、表示する
GetHtml("http://www.cmegroup.com/trading/equity-index/international-index/nikkei-225-dollar_quotes_settlements_futures.html");
//もう一度受信する
string result = GetHtml("http://www.cmegroup.com/CmeWS/mvc/xsltTransformer.do?xlstDoc=/XSLT/da/DailySettlement.xsl&url=/da/DailySettlement/V1/DSReport/ProductCode/NK/FOI/FUT/EXCHANGE/XCME/Underlying/NK?tradeDate=06/30/2011¤tTime=1309480698484");

System.IO.StreamWriter sw = new System.IO.StreamWriter(
@"result.html",
true,
System.Text.Encoding.GetEncoding("shift_jis"));
sw.Write(result);
//閉じる
sw.Close();

と書き換えれば取れるよ

626 :デフォルトの名無しさん:2011/07/01(金) 10:07:56.45
おもったより簡単そうですね、助かりましたありがとうございます

627 :デフォルトの名無しさん:2011/07/01(金) 10:36:47.76
この程度人に聞かないとできない時点で駄目駄目なんだ
調子に乗るな

628 :デフォルトの名無しさん:2011/07/01(金) 10:43:16.28
やっぱC#をメインにするとサーバ用のモジュールとかモバイルアプリ開発ができなくなるからC#は作りたいものがあるときにそのつど勉強することにします

629 :デフォルトの名無しさん:2011/07/01(金) 10:43:40.60
まぁそんなツンケンするなよ
本職でなくちょっと早めに必要だったからじっくり調べる時間も無かったってところだろう

まぁ>>627の言うこともわかる。
社内でそんなの言われたらちょっとキレるわ

630 :デフォルトの名無しさん:2011/07/01(金) 10:56:51.53
キレるレベルなのに他人にはツンケンするなと言う
俺はそんなお前にキレるわ

631 :デフォルトの名無しさん:2011/07/01(金) 11:01:16.04
>>630
いやいや、表に出さないレベルにちょびっとだけ内部ギレするかんじ
言いたいこともわかるけどソコまで言わないでも てかんじ

632 :デフォルトの名無しさん:2011/07/01(金) 11:03:33.86
マジでコイツにイライラする

633 :デフォルトの名無しさん:2011/07/01(金) 11:23:08.86
マツコに見えた

634 :デフォルトの名無しさん:2011/07/01(金) 17:24:44.06
マジで恋する5秒前

635 :デフォルトの名無しさん:2011/07/01(金) 19:11:27.65
メトロノーム作りたいんですけどC#って精度いいですか?

636 :デフォルトの名無しさん:2011/07/01(金) 19:14:16.55
腹時計よりはいいよ

637 :デフォルトの名無しさん:2011/07/01(金) 19:20:36.61
>>635
定期的に荒らそうとすんなww

638 :デフォルトの名無しさん:2011/07/01(金) 19:45:10.29
彼は結局メトロノームは作れたのだろうか
そこがすごい気になる

639 :デフォルトの名無しさん:2011/07/01(金) 19:52:45.33
メトロノームの話題が定期的に発生するのですが遅延が増大して困っています。
もっと一定のリズムで荒れないでしょうか?

640 :デフォルトの名無しさん:2011/07/01(金) 20:31:30.12
っていうか、こういう人と笑いのツボがズレまくってる奴(間違いなく友人は一人もいないだろ)
本気で鬱陶しいな。

641 :デフォルトの名無しさん:2011/07/01(金) 20:34:26.36
笑いのツボにあったレスよろw

642 :デフォルトの名無しさん:2011/07/01(金) 20:50:00.83
つーか死ね。マジ死ね。腹膜にガン細胞播種しまくってのた打ち回って死ね。

643 :デフォルトの名無しさん:2011/07/01(金) 21:10:45.01
腹膜にがん細胞を播種しまくってのた打ち回って死ぬ
ってのが笑いのツボでよろしかったでしょうか?

644 :デフォルトの名無しさん:2011/07/01(金) 21:12:20.36
どっちかってえと秘孔を突いてやって欲しいな

645 :デフォルトの名無しさん:2011/07/01(金) 22:29:37.73
違う板で粘着して質問した本人はでてこなくなった
http://kamome.2ch.net/test/read.cgi/denki/1306297455/677

646 :デフォルトの名無しさん:2011/07/01(金) 22:30:21.66
書きミス
×粘着して
○感謝クレクレ君に粘着されて

647 :デフォルトの名無しさん:2011/07/01(金) 23:37:38.09
>>645
しっかり出てきてるじゃんw

648 :デフォルトの名無しさん:2011/07/01(金) 23:39:15.45
boolean 正常なときにtrue,おかしいときはfalse
byte ものすごく小さい数字を使うとき
char 一文字しか使わないときに
short 比較的小さい範囲の数を使うときに
int 
long
float 少数を表示するときに使う
double

使い分けが分かりません
longやdoubleが必要な時ってありますか?
それとも最初からbyte,short,intを使わず、longを使い、
floatを使わずdoubleだけ使えばいいような気がするのですが
パフォーマンスに影響あるのでしょうか?

649 :デフォルトの名無しさん:2011/07/01(金) 23:43:04.58
俺の場合。

char 文字列
short ケーキですか。
int 整数はほとんどこれ
long おいしいの?
float データサイズが気になるなら。
double 基本こっち。

って感じで使ってるから、4つかな?アクティブな型って。

650 :デフォルトの名無しさん:2011/07/01(金) 23:44:24.50
あ、bool忘れてた。

bool 超使う。特に関数の戻り値でifの分岐したりするときはかなり便利。

651 :デフォルトの名無しさん:2011/07/01(金) 23:47:54.76
とりあえずbool,  int, doubleを使い分ければいいよ

652 :デフォルトの名無しさん:2011/07/01(金) 23:50:04.91
bool,charは立場が全然違うから置いとく
byteも割と別の立場
数値型としては大体はint,doubleで足りる
longは稀にだがintで桁数が不安なときに
floatはSystem.Drawingで仕方なく
shortはまあ時々Win32APIとかが要求してくるよね
unsigned系はほぼ使わない

653 :デフォルトの名無しさん:2011/07/01(金) 23:51:03.14
doubleでもfloatでも要が足りる場合はdouble
intでもlongでも要が足りる場合はint
これが常識。

でも前者は理解できるが後者はよく考えるとちょっと奇妙な気がしないでもないな。
ただの習慣の問題だとは思うが

654 :デフォルトの名無しさん:2011/07/01(金) 23:52:57.84
>>648
>longやdoubleが必要な時ってありますか?
それはひょっとしてギャグで(AA略
…まー、C#で新規実装するなら
bool, int, double だけで十分なケースはかなり多いと思うけれども。
(charは、数値文字参照コードを扱う必要が有るなら使う)

「過去のソフトウェア資産で出力されたファイルを、C#で読み込みたい」 とか云う場合には
ファイルフォーマットによっては、より小さい型を細かく使うのがベターな場合も有るっしょ。

655 :デフォルトの名無しさん:2011/07/01(金) 23:55:03.69
unsigned系は 「負の値を入れない事が確定している」 ケースなら、俺は積極的に使うなー。

656 :デフォルトの名無しさん:2011/07/01(金) 23:56:50.66
decimalェ…

657 :デフォルトの名無しさん:2011/07/01(金) 23:57:19.39
>>656
流石にお前だけはパフォーマンスが…

658 :デフォルトの名無しさん:2011/07/01(金) 23:57:54.53
longは時間関連でたまに〜って感じ

659 :デフォルトの名無しさん:2011/07/01(金) 23:59:45.57
積極的な使い道は限られてるからCLS準拠じゃないんだと思うけど....

符号なしの型の使い道って、せいぜい「これに入っているのは値じゃなくて
ビットイメージですよ」ってのを暗示したい時ぐらいじゃない?

660 :デフォルトの名無しさん:2011/07/02(土) 00:00:24.18
16Bitで組んだことあると、long使う癖が抜けないんだよな
昔のintは16Bitだったからね

661 :デフォルトの名無しさん:2011/07/02(土) 00:02:32.54
単純に、「2Gだと不足するけど、4Gなら必要十分」とか
…あんま実例が思い浮かばんな

>>660
あー、あるある
俺はWin32APIの勉強始めた頃、「数値型はLONGを使いましょう」みたいなのを読んで
以後、LONGで指定する癖が付いてた事が有るわ

662 :デフォルトの名無しさん:2011/07/02(土) 00:06:59.40
>>661
あと、16bitだと、当然レジスタも16bitだから、変数をintで宣言すると最適化でレジスタ使ってくれたんだよね
で、少しでも大きな数を使いたいから、16bit処理系ではunsigned intが標準的な変数だった

663 :デフォルトの名無しさん:2011/07/02(土) 00:08:33.29
>当然レジスタも16bitだから、変数をintで宣言すると最適化でレジスタ使ってくれたんだよね
さすがに勘違いが酷いと思う

664 :デフォルトの名無しさん:2011/07/02(土) 00:10:49.58
☆デラックス

665 :デフォルトの名無しさん:2011/07/02(土) 00:11:34.57
まあ、shortとかintを使う理由って
結局の所はパフォーマンスだよなあ

L2キャッシュ・L3キャッシュのヒット率とか、ガベコレの発生頻度とか考えると
必要十分な範囲で、可能な限りコンパクトに纏めたい気はして来る

666 :デフォルトの名無しさん:2011/07/02(土) 00:12:13.84
>>663
16bitのC言語では当然の最適化だったが

667 :デフォルトの名無しさん:2011/07/02(土) 00:12:14.00
符号なし整数はbyte以外CLS非準拠…
クラスライブラリで使うとMSに怒られるよ

668 :デフォルトの名無しさん:2011/07/02(土) 00:14:30.25
後、C#からはちょっと逸れるが
データベースのカラム設計とかな >型のサイズを気にする

669 :デフォルトの名無しさん:2011/07/02(土) 00:41:23.32
>>658
ファイル関連でも使うな

670 :デフォルトの名無しさん:2011/07/02(土) 00:57:21.51
で、結局メトロノームは機械式の方が精度いいのかい?

671 :デフォルトの名無しさん:2011/07/02(土) 01:01:17.76
>>670
蒸し返すなwww

672 :デフォルトの名無しさん:2011/07/02(土) 01:14:57.79
>>665
shortなんか使ったらかえってパフォーマンスは落ちる気がするが....
少なくともint比で改善はしないだろう。

shortの用途って符号拡張ぐらいしか思い浮かばない

673 :デフォルトの名無しさん:2011/07/02(土) 01:33:03.56
マイコンでEEPROMにデータ保存して、COMでPCに吸い出したりしてると、shortもunsignedも使う。
一般的な用途とは思えないけど。。。
そろそろ、マイコンでSDに保存が普通になるだろうが。。。

674 :デフォルトの名無しさん:2011/07/02(土) 01:37:15.29
まさに符号拡張とかビットイメージに使う使い方だな

675 :デフォルトの名無しさん:2011/07/02(土) 01:41:30.94
ビット演算すると強制的にintにされるから俺は考えるのを止めた

676 :デフォルトの名無しさん:2011/07/02(土) 01:48:39.68
RS232をCOMっていうな

677 :デフォルトの名無しさん:2011/07/02(土) 02:04:45.09
int と double が基本なのは、それが大体一番高速だったから。

32bit CPU + 64bit FPU(浮動小数点ユニット)という構成だった時代が長い。
最近は CPU が64bit化しちゃってるし、
SSE とか MMX 命令だと32bit浮動小数点×4命令持ってたり、
GPU が32bit浮動小数点を基本に動いてたりで、
必ずしもint/doubleが速くない。

>>672
キャッシュヒット率の改善という意味では、構造体とか配列の場合に限ってshortが有効な場面もあるかも。


678 :デフォルトの名無しさん:2011/07/02(土) 02:05:30.50
>>657
long 同士だったら long になるはず。
32ビット未満なら32ビットにするっていう仕様のはず。

679 :デフォルトの名無しさん:2011/07/02(土) 03:59:59.28
C#でゲーム作るのにXNAとかDXライブラリがあるのは知ってますが
DirectXを直接扱うのは出来ないのでしょうか?

680 :デフォルトの名無しさん:2011/07/02(土) 04:11:51.82
可能だけどラッパーのXNA使わない理由がよくわからん
DXライブラリもラッパーだけどVC++向けに作ってるようなところあるしなあ

681 :デフォルトの名無しさん:2011/07/02(土) 08:31:16.00
質問があります.
配列同士の足し算はLINQでどのように記述すればよいのでしょうか?
たとえば,
v1 = {1,2,3,4,5,6};
v2 = {1,1,1,1,1,1}
に対して
{2,3,4,5,6,7}という値を得たいと考えています.


682 :デフォルトの名無しさん:2011/07/02(土) 08:37:17.01
Zip

683 :デフォルトの名無しさん:2011/07/02(土) 10:06:42.91
>682
ありがとうございます.

私の説明が不足していましたが,v1,v2,...vnとn個のベクトルに対して配列同士の足し算をするにはどうすればよいでしょうか?

684 :デフォルトの名無しさん:2011/07/02(土) 10:12:20.83
そのベクトルというのが何を指すのか分からんがZipはZip
二次元とか三次元ベクトルを表す型なら加算演算子ぐらい用意してるだろ

685 :デフォルトの名無しさん:2011/07/02(土) 10:16:05.41
正規表現のようにLinqも独立させるべき?w

686 :デフォルトの名無しさん:2011/07/02(土) 10:25:10.56
専用スレは既に有る
ttp://hibari.2ch.net/test/read.cgi/tech/1202568694/l50

687 :デフォルトの名無しさん:2011/07/02(土) 10:28:21.06
あるんかい

688 :デフォルトの名無しさん:2011/07/02(土) 10:46:25.10
>684
説明が不明瞭ですみません...

v∈R^nを満たすm個の配列(たとえば{v1,v2,v3,...,vm}⊂R^n)があって
これらののΣvを求めたいと考えています.
Zipは2つの配列間の操作と理解していますが,2つだけではなくm個全ての総和を求めたいと考えています.

689 :デフォルトの名無しさん:2011/07/02(土) 10:59:08.58
ならAggregateも使う

690 :デフォルトの名無しさん:2011/07/02(土) 11:08:34.83
>>683
それはVector型作っておいて、Vector型にoperator+ を定義しておいて、
Aggregate で足せばいいんじゃない?

691 :デフォルトの名無しさん:2011/07/02(土) 11:09:44.69
どうしても、ベクトルを IEnumerable 使って抽象的に扱いたい場合、
Aggregate の中で Zip。

692 :デフォルトの名無しさん:2011/07/02(土) 11:55:51.90
そういう数値計算的なアレなら普通にループ回せばいいのに
任意次元のベクトルで>>690のようなことをすると一時オブジェクトが大量発生してとんでもなく非効率になるので
Aggregate使うならVector型に+=相当のメソッドを定義しとく
でもそれじゃ結局ループ書くわけでLINQの意味があんまり…

693 :デフォルトの名無しさん:2011/07/02(土) 12:06:16.83
int[] v3 = v1.Select(n => n + v2[v1.ToList().IndexOf(n)]).ToArray();

694 :デフォルトの名無しさん:2011/07/02(土) 12:08:50.44
効率とか速度が気になるならそもそもLINQなんて使わないし

695 :デフォルトの名無しさん:2011/07/02(土) 12:34:49.98
LINQが出てくるような処理はネットワークやIOがボトルネックになることが多いからどうでもいい
でもこの場合はそうでもなさそうだしLINQ使ったからって分かりやすくなるわけでもないし…

696 :デフォルトの名無しさん:2011/07/02(土) 13:05:16.46
int[] v3 = v1.Select((n,i) => n + v2[i]).ToArray();
例外とかは知らん

697 :天使 ◆uL5esZLBSE :2011/07/02(土) 13:17:27.64
ゴミだな


698 :デフォルトの名無しさん:2011/07/02(土) 13:21:43.53
まだしばらくは.net 2.0でいいよな

699 :デフォルトの名無しさん:2011/07/02(土) 13:21:48.13
LINQは天使

700 :デフォルトの名無しさん:2011/07/02(土) 13:26:34.15
また暇人が速度測り出すんだろうなw

701 :デフォルトの名無しさん:2011/07/02(土) 13:29:06.44
半角英数字20文字を1行に1データとして、100万行あるとします
これをソートするときに一番効率のようソートアルゴリズムは何でしょうか?

702 :デフォルトの名無しさん:2011/07/02(土) 14:00:26.14
ソートしないで済むのが最善

703 :デフォルトの名無しさん:2011/07/02(土) 14:03:45.26
効率とはなにか

時間か
メモリか
コード量か


704 :デフォルトの名無しさん:2011/07/02(土) 14:03:50.08
そーっとやればいいかも

705 :688:2011/07/02(土) 14:09:53.47
いろいろ参考になりました.
ありがとうございます.

706 :デフォルトの名無しさん:2011/07/02(土) 14:34:10.24
早く終わればいいです

707 :デフォルトの名無しさん:2011/07/02(土) 15:37:24.39
32ビット整数に上の桁から順に頭から4文字を詰めて、その値を使ってクイックソート
それを階層的に5回やるとか

708 :707:2011/07/02(土) 15:55:47.44
いや意味ないか
普通に文字列でクイックソートすればいいんじゃね

709 :デフォルトの名無しさん:2011/07/02(土) 15:56:01.21
試したけど4500ミリ秒しか掛からなかったから普通にソートしていいんじゃないのかと思う
http://ideone.com/0oxyN

710 :デフォルトの名無しさん:2011/07/02(土) 15:57:04.23
あ、テスト環境はE8400、VistaSP2、VS2010です

711 :デフォルトの名無しさん:2011/07/02(土) 16:03:21.02
今時100万のデータとかでもメモリーに乗っちゃうから、プログラミングのお題としては
面白くも何ともないなw

712 :デフォルトの名無しさん:2011/07/02(土) 16:19:49.16
1文字2byte * 20文字 * 100万行 = 40MB
余裕過ぎるな

713 :デフォルトの名無しさん:2011/07/02(土) 16:45:00.53
>>683

Matlab使え。
実際数値計算をアプリに組み込みたいなら話は別だが、
プラットフォームがPCで、数値計算そのものが目的ならMatlab選択を排除しちゃ、
苦労するだけで何もいいことはない。

714 :デフォルトの名無しさん:2011/07/02(土) 16:59:01.22
命令口調クンは相変わらず馬鹿だなw

715 :デフォルトの名無しさん:2011/07/02(土) 16:59:55.82
スレチかもしれない、ごめん。

プログラミングのこと全然知らないんだけど、常駐プログラムみたいな感じで、
ネット上の特定のデータを定期的に取得するプログラムを作りたいと思ってます。
そのために選択するべき言語はC#でよろしいのでしょうか?

716 :デフォルトの名無しさん:2011/07/02(土) 17:07:03.52
>>715
取得したデータをどうするかに寄る。
何所かに保存するとか、自動的にメール配信するとか、画面上にダイアログ出して表示するとか。

そのくらいの用途なら、俺はPowerShellでやっちゃうかな。

717 :デフォルトの名無しさん:2011/07/02(土) 17:10:40.87
常駐しなくともタスクスケジューラで一定時間ごとに起動するってのもあるよね

718 :デフォルトの名無しさん:2011/07/02(土) 17:25:07.59
岡崎図書館事件はググって読んでおけよ
簡単に前科つくぞ

719 :デフォルトの名無しさん:2011/07/02(土) 17:29:03.36
>>718
さっき未解決事件スレ見てたから一瞬ビクっとした。

720 :デフォルトの名無しさん:2011/07/02(土) 17:46:15.93
>>716
返信ありがとう。
取得した数値データはエクセルのようにまとめて表示できるようにしたいと考えてます。

PowerShell調べてきます。

721 :デフォルトの名無しさん:2011/07/02(土) 18:17:41.77
いやいやC#でいいじゃん

722 :デフォルトの名無しさん:2011/07/02(土) 22:36:05.99
>>681行列の内積とか外積とか扱うには、そういうことが得意なDirectXに任せちゃうのがイイと思う。知らんけど。

723 :デフォルトの名無しさん:2011/07/02(土) 23:28:24.08
DirectXでサポートされてる線形代数って2,3,4次元のベクトルと行列だけだよ
まさかDirectCompute使えと? チェーンソーで鉛筆削るようなもんだぞw

724 :デフォルトの名無しさん:2011/07/02(土) 23:39:48.80
漢らしいな。逆に、ソレ見てみたくなった。

725 :デフォルトの名無しさん:2011/07/03(日) 03:18:33.11
小学生の頃はチェーンソーで鉛筆削ってたが、中学以降はシャープペンシル使うようになったからなぁ

726 :デフォルトの名無しさん:2011/07/03(日) 03:44:15.84
昔の人ってホントに字が綺麗なんだよな。くっきりはっきり読みやすい。俺のなんかミミズが下痢便で苦しんでのたうち廻っているようにしか見えんのにさ。

727 :デフォルトの名無しさん:2011/07/03(日) 11:00:38.07
昔も字が汚い人はいたがそういう人は
あまり書かないから現存してない、とかじゃ?
俺も汚いんだよな・・・

728 :デフォルトの名無しさん:2011/07/03(日) 12:17:49.18
俺は時々雰囲気すら出てない漢字を書いてしまう。
自分でどこか違うなぁって重いながらどこが違うかわからな。

729 :デフォルトの名無しさん:2011/07/03(日) 13:55:40.31
まず日本語

730 :デフォルトの名無しさん:2011/07/03(日) 14:00:26.32
ダーウィンの進化論を思い出せ。
字がうまい人は食べ物にありつけず自然淘汰されたんだ

そうして生き残ったのが俺たちの祖先って訳さ

731 :デフォルトの名無しさん:2011/07/03(日) 17:20:01.76
ASP.NETの本、買ってきて読み始めたんだけど、
ほとんどがWebデータベースの説明みたいだ。ツマンネ。
もっと幅広いジャンルで、Webアプリでこんな面白いことやってる、
どうやってつくってるんだ?みたいなサイトや本ってないですか?

732 :デフォルトの名無しさん:2011/07/03(日) 17:23:50.70
機能としてはそんなもんだしねえ
機能を利用して何をするかは解説本の範疇じゃなく事例本の範疇よね

733 :デフォルトの名無しさん:2011/07/03(日) 20:35:44.68
>>731
http://msdn.microsoft.com/ja-jp/windowsazure/hh180847

734 :デフォルトの名無しさん:2011/07/03(日) 21:13:41.50
結局、C#の使い道ってwebだけ?

デスクトップアプリなんかは、MFCなんか書くのが普通ですか?

735 :デフォルトの名無しさん:2011/07/03(日) 21:18:20.90
フォームにwindows media playerをおきました
矢印キーで再生位置を変えたいのですが
左キーを押すと-5秒戻って、右キーを押すと+5秒進みたいのですが
keydownイベントを入れてやってみたのですが、1回押しただけならちゃんと正常に再生位置を変えられるのですが
押しっぱなしにして離したときに再生位置が変わりまくります
押しっぱなしにする事で処理が蓄積されているのだと思うのですが
一般的なプレイヤーのように離したときの位置で再生するようにできませんか?

736 :デフォルトの名無しさん:2011/07/03(日) 21:20:03.23
>>734
いや、普通に Windows デスクトップっつったら .NET。
MFC はない。

パフォーマンスが必要な大規模アプリに限って使いはすると思うけど、
普通は C# か VB で書く。

737 :デフォルトの名無しさん:2011/07/03(日) 21:33:24.40
.NETに普通のメニューバーないのかな
WinAPI叩いたときみたいなの

738 :デフォルトの名無しさん:2011/07/03(日) 21:38:08.60
>>736
大規模って。。。
mfcは最も開発される機会の多い中規模開発をターゲットとして設計されてるんだが。。。

大規模だと、unix系OS独占なので、mfcも.netも出番はない


739 :デフォルトの名無しさん:2011/07/03(日) 21:43:43.92
>>736
Windows デスクトップアプリケーションで.NETなんて
みたことがない。



740 :デフォルトの名無しさん:2011/07/03(日) 21:53:59.46
個人ユースかフリーウエアってノリだよな。


741 :デフォルトの名無しさん:2011/07/03(日) 22:00:14.77
BtoBではそれなりに

742 :デフォルトの名無しさん:2011/07/03(日) 22:02:37.31
大規模ってどういうの?
mayaとかblenderは大規模?

743 :デフォルトの名無しさん:2011/07/03(日) 22:04:26.23
>>739
Visual Studio 2010 と Blend。

744 :デフォルトの名無しさん:2011/07/03(日) 22:04:43.40
最近はWindowsアプリもC#の案件多いよ。
MFCでやってきたけどC#はヤバイくらい簡単。
これはもう専門職じゃない感じ。
フィーリングで作れちゃう感じだよ。
言語仕様がというより.Netフレームワークが便利すぎるんだろうね。

745 :デフォルトの名無しさん:2011/07/03(日) 22:08:59.33
何回繰り返したか分からないやり取りだけど

見識の狭さを露呈するだけだから見たことがないとか言い切らない方がいい

746 :デフォルトの名無しさん:2011/07/03(日) 22:08:59.93
確かに簡単だね。ひとつ欠点を上げるとしたら、
全部、見た目が同じになる。
世界観が作りにくい、ってことか。

747 :デフォルトの名無しさん:2011/07/03(日) 22:10:48.94
>>746
Expression Encoderとかあるから、やる気が有れば出来るんじゃないか

748 :デフォルトの名無しさん:2011/07/03(日) 22:25:34.01
>>742
中規模



749 :デフォルトの名無しさん:2011/07/03(日) 22:32:52.11
世界観ワラタw
FFでも作ってんの?

750 :デフォルトの名無しさん:2011/07/03(日) 22:37:14.95
Formsは簡単と言われるけど、データバインドとかのオブジェクトモデルは全然理解されてないよね

751 :デフォルトの名無しさん:2011/07/03(日) 22:38:07.63
むしろWPFは世界観(笑)を作りやすくなってるけど

752 :デフォルトの名無しさん:2011/07/03(日) 22:39:27.97
>>750
微妙に中途半端だからなぁ

753 :デフォルトの名無しさん:2011/07/03(日) 22:43:38.65
>>746
世界観( ・`ω・´)キリッ

754 :デフォルトの名無しさん:2011/07/03(日) 22:45:54.75
商品イメージと言うかなんと言うか

755 :デフォルトの名無しさん:2011/07/03(日) 22:46:15.62
世界観いいな。今度職場で使ってみる

756 :デフォルトの名無しさん:2011/07/03(日) 22:47:51.68
世界観ってのはここではウインドの外観のことを指してんの?
それともソースコードを眺めた時の事をいってるの?

757 :デフォルトの名無しさん:2011/07/03(日) 22:48:45.34
もっとこうブワッという感じで
ババーンってなって
ビシッと決まった画面

よくわからない^q^

758 :デフォルトの名無しさん:2011/07/03(日) 22:57:02.88
これは酷いw

>大規模とか中規模とか
どんな意味で言ってるのか、さっぱり解らねーぜよ。

一口に 「大規模」 って言っても、
アプリの開発工数的に大規模なのか
搭載される対象が大規模なのか (部屋一つ占拠する様な産業機械とか)
成果物を使って出来る事が大規模なのかで (OSとか)
全是意味が違って来るっしょ。

759 :デフォルトの名無しさん:2011/07/03(日) 23:02:11.59
>搭載される対象が大規模なのか (部屋一つ占拠する様な産業機械とか)
そんな大規模はねーだろw

760 :デフォルトの名無しさん:2011/07/03(日) 23:38:27.47
>>735
WPFのRepeatButton相当のコントロールを探すか作るかすれば

761 :デフォルトの名無しさん:2011/07/03(日) 23:43:57.71
ウチは中小企業だが上司が中国人で、ハードの開発担当者が北朝鮮の在日さんで、案件は防衛庁向け無線移動局の○○です。大規模間違いなし。

762 :デフォルトの名無しさん:2011/07/03(日) 23:45:05.46
俺もトラックの案件やってるから大規模だわ

763 :デフォルトの名無しさん:2011/07/03(日) 23:51:13.97
俺なんかビルの光熱費請求アプリつくってる。
ビルだぜビル。
部屋ひとつとかハナクソだろ。

764 :デフォルトの名無しさん:2011/07/04(月) 00:05:10.98
>>761
嘘乙

官公庁向けで.NETなんて100%ありえん

765 :デフォルトの名無しさん:2011/07/04(月) 00:38:06.44
>>764
761のものとは全然違う(多分)けど、うちも一応官公庁向けのものを.NETでやってるよ
ありえん、ってのは何を根拠に?

766 :デフォルトの名無しさん:2011/07/04(月) 00:49:22.27
願望だろw

767 :デフォルトの名無しさん:2011/07/04(月) 01:19:54.88
>>758
。。。OSは全然大規模じゃないよ?
大きさも、部屋一つ分占拠してようが産業用機械も組み込みに分類される
(ソフト開発の規模的には小規模な方)

大規模っつったら、工数の多さとそれに伴う予算の大きさ


768 :デフォルトの名無しさん:2011/07/04(月) 02:33:41.24
http://search6.jugem.jp/?eid=737
> マイクロソフトがWindows Vista(1月30日発売)の開発に投じた金額
> は5年間で推定75億ドルにのぼるという。これに対して、アップルの
> 全開発費は5年間で30億ドルほど。


大・中・小の基準は人それぞれだけどね……
OSって小規模なの?

769 :デフォルトの名無しさん:2011/07/04(月) 02:42:23.51
75億つっても5年でだぞ。
1年あたりだといくらだよw

770 :デフォルトの名無しさん:2011/07/04(月) 02:42:48.12
ほっとけよ。自分の尺度でしか物を見られない人なんだから。

771 :デフォルトの名無しさん:2011/07/04(月) 04:56:14.36
割り算くらいやれよ

772 :デフォルトの名無しさん:2011/07/04(月) 05:14:00.20
5÷75


773 :デフォルトの名無しさん:2011/07/04(月) 07:51:53.14
e?

774 :デフォルトの名無しさん:2011/07/04(月) 08:50:43.44
75÷=5

775 :デフォルトの名無しさん:2011/07/04(月) 10:01:38.62
VC#で作ってるんですけどassembler.csっていうのが勝手に作られて
そこにパソコンのユーザー名?だかなんかが載ってしまいます
なるべくこういう情報を載せたくないのですがこのファイルって消してもいいのでしょうか?

776 :デフォルトの名無しさん:2011/07/04(月) 10:02:39.88
exeにも埋もれてるけどね

777 :デフォルトの名無しさん:2011/07/04(月) 10:06:56.80
C#で作られてるフリーソフトは皆埋め込まれてるから誰でもみれちゃうってことですか?

778 :デフォルトの名無しさん:2011/07/04(月) 10:12:17.56
まあよっぽど珍しい名前の人がPCのアカウントとして実名入れてる場合を
除けばその程度の情報漏れたところで知れてるけどねw

779 :デフォルトの名無しさん:2011/07/04(月) 10:22:36.30
プロジェクトのプロパティのアセンブリ情報の話?

780 :デフォルトの名無しさん:2011/07/04(月) 10:56:30.41
デバッグ情報をnoneにしろよ低能

781 :デフォルトの名無しさん:2011/07/04(月) 11:17:08.53
>>780
すいませんそれkwsk

782 :デフォルトの名無しさん:2011/07/04(月) 11:20:07.85
>>781
情報科学屋さんを目指す人のメモ exeファイル中の個人情報
http://did2.blog64.fc2.com/blog-entry-26.html

783 :デフォルトの名無しさん:2011/07/04(月) 12:38:38.42
OSをインストールするときやユーザー登録には本名は使わないのが普通だよね?ね?ね?

784 :デフォルトの名無しさん:2011/07/04(月) 12:40:47.43
俺はPCの名前はハンドルネーム入れてる。OSのアクチはネットでやってるが、ユーザー登録はしたことがない。

785 :デフォルトの名無しさん:2011/07/04(月) 13:29:34.20
クリックワンスでIDEからテスト用証明書作ると
バッチリ作成者がユーザー名だな

786 :デフォルトの名無しさん:2011/07/04(月) 13:47:26.00
個人情報ダダ漏れとかちょっと^^;
ユーザー名がアイドルやアニメキャラの奴は涙目だな

787 :デフォルトの名無しさん:2011/07/04(月) 13:48:33.45
だからC#ってクズなんだな

788 :デフォルトの名無しさん:2011/07/04(月) 13:57:04.74
>>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);

一応、これで渡してあげれてるのは確認しました
でもちょっと煩雑な気がするので、もうちょっと見た目がすっきりするような書き方があったら教えてください

791 :デフォルトの名無しさん:2011/07/04(月) 16:42:36.48
RectangleはFrameworkElementを継承しているのだから、そんな面倒な事をするまでもなくParentプロパティを持っている
http://msdn.microsoft.com/ja-jp/library/system.windows.frameworkelement.parent.aspx

クラスを使うならまずクラスを知りましょう
パブリックメソッドとパブリックプロパティ一覧に目を通すくらいはしてもいいはずです

792 :789:2011/07/04(月) 17:19:09.59
>>791
Parentプロパティをどのように使ってメインウィンドウのインスタンスを把握するのですか?
class Rectangleのインスタンスを作成して、その時点ではParentは空ですよね

793 :デフォルトの名無しさん:2011/07/04(月) 17:45:23.52
少しは試せクズ
Children.AddしてデバッガでParentプロパティ見てみろ

794 :デフォルトの名無しさん:2011/07/04(月) 17:52:00.28
ツリー構造なのだから親の親の親の…と辿っていけばそのうちWindowクラスに辿りつく

795 :デフォルトの名無しさん:2011/07/04(月) 18:02:33.48
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

796 :デフォルトの名無しさん:2011/07/04(月) 18:03:54.14
やさしいと思うけどなw

797 :デフォルトの名無しさん:2011/07/04(月) 18:03:56.84
>>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は継承できないってことですね
ご指摘ありがとうございます

800 :デフォルトの名無しさん:2011/07/04(月) 18:11:06.38
UserControlなんて今まで一言も出てこなかったな
情報は漏らさず書けよトンチキ

801 :デフォルトの名無しさん:2011/07/04(月) 18:12:20.30
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
あ、理解できたら自殺してくださいね^^

803 :デフォルトの名無しさん:2011/07/04(月) 18:14:02.23
優しいなあ

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) }
}
メインウィンドウの場所を示す目印を置いておく感じで使おうということでしょうか?
参考にさせていただきますありがとうございます

805 :デフォルトの名無しさん:2011/07/04(月) 18:53:39.26
>>789を100回読め
Addした後で親がわかってもしょうがない

806 :デフォルトの名無しさん:2011/07/04(月) 18:55:42.93
あー>>805>>801やらその他あて

807 :デフォルトの名無しさん:2011/07/04(月) 19:02:11.85
>>805-806
親が子を追加するのが普通なのでその論理は成り立たない

808 :デフォルトの名無しさん:2011/07/04(月) 19:04:57.10
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

Canvas c = new Canvas();
AddChild(c);

DokujiClass r = new DokujiClass();
c.Children.Add(r);
}
}

これだけだろ
独自クラスの方でMainWindowが知りたければParent辿っていけばいいだけの話

809 :デフォルトの名無しさん:2011/07/04(月) 19:06:00.46
>>807
最初にそう指摘するならともかく
今になってそれは苦しい

810 :デフォルトの名無しさん:2011/07/04(月) 19:07:21.75
うーくるシー死ぬ^q^

それは苦しい(キリリッ

811 :デフォルトの名無しさん:2011/07/04(月) 19:10:07.82
100回読んだけど何か?

812 :デフォルトの名無しさん:2011/07/04(月) 19:13:08.28
最近はだWPFからC♯入門するのか。
時代は変わったものだ。

813 :デフォルトの名無しさん:2011/07/04(月) 19:20:26.62
そりゃ、確実にオワコンなFormsで教え始めちゃダメでしょ。
Windows 8 のグラフィック API は WPF に近いらしいし。

814 :デフォルトの名無しさん:2011/07/04(月) 19:36:21.43
WPF入門は別に不思議じゃないけど
C#入門でWPF使うってのは珍しい気がする…

815 :デフォルトの名無しさん:2011/07/04(月) 19:38:43.04
理想を言えば、入門向けにもどんどん最新の話入れた方がいいのよ。
それができないのは、通常、記事書く側が追いきれないからであって、
読む側が難しいからじゃない。

書ける人はWPFで入門記事書いた方がいい。

816 :デフォルトの名無しさん:2011/07/04(月) 19:42:00.21
XAMLとかMVVMとか関係ないところで躓くかもしれん

817 :デフォルトの名無しさん:2011/07/04(月) 19:42:31.56
でもWPFって色々と(覚えるのが)面倒くさい部分あるじゃん
依存関係プロパティに添付プロパティ、ルーティングイベントにバインディングの数々

818 :デフォルトの名無しさん:2011/07/04(月) 19:49:18.04
MVVM は、変に用語出さず、さもそれが当たり前かのように仕込めば OK。
初心者染め上げる。

XAML も別に何も困らなくね?
どうせ Blend か VS で書くんだし。

依存関係プロパティは教えるの面倒だけども、そこスルーしてでもバインディングは最初から教えるべき。
GUI のビューにはデータのプレースホルダーしか残しちゃいけない。
これは WPF だけじゃなくて、ASP.NET でも MVC はそういう構造だし。

819 :デフォルトの名無しさん:2011/07/04(月) 20:08:29.49
ちょっとまって!WPFを覚えたほうがいいの?
別にC#を主力にする気はないからC#を捨ててWPFを覚えたほうがいいの?
初心者の俺としては無駄なものを覚えたくないからそこのへんハッキリしてください!

820 :デフォルトの名無しさん:2011/07/04(月) 20:11:38.22
C# 捨ててWPFってのがちょっと意味わからない。

まあ、必要に迫られてなきゃWin8の発表待ってからでいいんじゃね?
WPFっぽい(WPFを洗練した感じらしい)ってだけで、「WPFです」ではないし。

821 :デフォルトの名無しさん:2011/07/04(月) 20:12:24.81
WPFもC#で書くだろ
捨てるとかイミフ

822 :デフォルトの名無しさん:2011/07/04(月) 20:17:05.52
初心者キモ過ぎワロス

823 :789:2011/07/04(月) 20:18:47.52
>>812
UIをポコポコ感覚的においていけるんで初学者としては勉強しててとても楽しいです

メインウィンドウの位置を簡単に取得できるように下準備しておくという方向なら
シングルトンにしてインスタンスへはスタティックプロパティで触るようにするのが一番すっきりするような気がするのですが
MeinWindowをシングルトンにする場合に気をつけることは何かありますか?

824 :デフォルトの名無しさん:2011/07/04(月) 20:23:11.91
だからそんな設計すんなっての
子コントロールは子コントロール自身のこと以外感知するな
自然に見える範囲で動作を構成できるようにしろ

お前前にいた人の話聞かないシングルトン坊だろ
日本語読み取れないうちは質問すんなや

825 :デフォルトの名無しさん:2011/07/04(月) 20:25:14.65
擬似グローバル変数か。

826 :デフォルトの名無しさん:2011/07/04(月) 20:27:37.50
直接親を参照するな

827 :デフォルトの名無しさん:2011/07/04(月) 20:35:03.78
日本語読めずに散々見当違いのコード晒してたのはどっちだっつう話だな。

828 :デフォルトの名無しさん:2011/07/04(月) 20:42:58.45
今になってそれは苦しいな。

829 :デフォルトの名無しさん:2011/07/04(月) 21:34:09.78
MVCソングでも聞けばおk
http://csl.ensm-douai.fr/noury/20

830 :デフォルトの名無しさん:2011/07/04(月) 21:35:02.95
C#覚えてもさ、結局さ俺はLinuxとかUnixベースで動くものを書いてるからC#を覚える意味がよくわからなくなってきた
もうC#を勉強して3週間ぐらいだけど(実質はC#しってHello worldから初めて今まで1年以上たつけど)

831 :デフォルトの名無しさん:2011/07/04(月) 21:45:55.59
日本語の勉強してからまたきてください
その時に「本当のC#」をお見せしますよ

832 :デフォルトの名無しさん:2011/07/04(月) 21:47:40.95
覚える意味がないならやめればいいだけ。
WPFはExpressでは、足りないものが多すぎる。

833 :デフォルトの名無しさん:2011/07/04(月) 22:49:22.96
>>832
Expressで足りないものが多すぎる件についてkwsk

834 :デフォルトの名無しさん:2011/07/04(月) 23:43:22.96
Tupleってどういう時に使ってる?

835 :デフォルトの名無しさん:2011/07/04(月) 23:45:36.28
明示的な型が必要だが、わざわざ定義するのが面倒くさい時

836 :デフォルトの名無しさん:2011/07/04(月) 23:55:52.07
Item1、Item2とかソースが読みづらくなるから使わなくていいよ。F#のために追加されただけ。
(name, age) = GetNameAndAge()
本来こんな感じで使うもんだけどもちろんC#でこういうことはできない。

837 :デフォルトの名無しさん:2011/07/04(月) 23:56:28.02
ここみてると本当C#ってクソだわ

838 :デフォルトの名無しさん:2011/07/05(火) 00:11:58.35
メソッドの引数や戻り値の型ってソース読んだりメソッド呼ぶ時には重要なヒントになるから
C#でタプルをサポートするとその利点が大きく損なわれる
pythonみたいな動的言語だと元々そのヒントが無いからタプルによるマイナスは無いんだけど

839 :デフォルトの名無しさん:2011/07/05(火) 00:41:25.73
(Windowsアプリの作成時の質問です)
GridViewに次の様に連番があるとします。
数が多いので指定した数値に該当する行をGridView内で上下中央に
スライドさせたいのですがどうすれば良いでしょうか?


社員番号




〜 略 〜
1000

番号で 550 と入力しスクロールを実行すると 550番が中央に来る様にしたいです。
賢人の皆様、お知恵を拝借下さい。



840 :デフォルトの名無しさん:2011/07/05(火) 08:57:11.94
WinアプリでGridViewってーと、WPFのListView?

841 :デフォルトの名無しさん:2011/07/05(火) 11:29:01.85
C#の勉強のために一回フォームデザイナを使わず全部手書きで書いてみるのって効果ある?

842 :デフォルトの名無しさん:2011/07/05(火) 11:32:53.30
>>841
あるとすれば動的に部品を追加したりするコードを書くときのためくらいかなあ・・

843 :デフォルトの名無しさん:2011/07/05(火) 11:59:26.51
寝ぼけてわけわかんないとこ押しちゃったまま保存して起きた時にどこがおかしいのかわからない時・・・

でも何とかなっちゃうか

844 :デフォルトの名無しさん:2011/07/05(火) 12:07:37.58
簡単な動的アニメーションを、Threadでwhileとsleepを使って動かす方法と、
Timerで動かす方法を作って、タスクマネージャで見てみました。
アニメーションがあまりにも簡単な物だったので、ほとんど差は出ませんでしたがw、
CPU使用率はThread方式が若干低く、PF使用量はほぼ一緒という感じですか?
(描画してる物が同じで、Timerが動いてないのだから当然か?)
背景でアニメを動かしつつ、別のプログラムを動かしたいときは、
CPUの負担が軽いThread方式のほうが有利ってことですか?
ところでPF(ページファイル)使用量って何ですか?

845 :デフォルトの名無しさん:2011/07/05(火) 12:18:24.93
>>844
C#に関係ない部分だからググって調べろよ

と言いたい所だけど、仮想メモリのこと

846 :デフォルトの名無しさん:2011/07/05(火) 12:38:19.38
なるほど。ありがとうございました。

847 :デフォルトの名無しさん:2011/07/05(火) 13:21:13.47
せめてPFがどんどん増えていきますがどこを見たら良いのでしょうか?
とかだったら関係あるのに

848 :デフォルトの名無しさん:2011/07/05(火) 14:55:05.45
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〜を実装していなくとも全てのターゲットに変更が通知されるのかが不思議です
この違いはどこからきてるものなのでしょうか?

849 :デフォルトの名無しさん:2011/07/05(火) 14:59:52.52
バインディングターゲットは、例えばTextBoxならユーザーの入力によってTextChangedとか発生するわけでしょ
クラスの内部でそん時にバインディングソースに値を返してるだけ

何か不思議なところあるか?

850 :デフォルトの名無しさん:2011/07/05(火) 15:20:04.30
なるほど、ターゲット自体がInotyfy〜のPropertyChangedEventに相当するイベントをもっていて
ソース自身が「変更されました通知」を出す代わりに、ターゲットが「ソースを変更しました通知」を出してるわけですね

851 :デフォルトの名無しさん:2011/07/05(火) 16:16:46.14
正確にはバインディングターゲットがバインディングソースに値を設定する時はBindingExpression.UpdateSourceを呼んでいて
これを呼ぶとバインディングソースのBindingオブジェクトにBinding.SourceUpdatedが発生する
で、同じBindingオブジェクトを参照している連中全員がこれを受け取るという寸法

852 :デフォルトの名無しさん:2011/07/05(火) 16:41:44.07
やり方は自分で調べますので、できるかできないかだけ教えていただけるとありがたいです。

バルーンツールチップにDataGridViewを埋め込みたいのですが、できますか?



853 :デフォルトの名無しさん:2011/07/05(火) 16:48:00.26
出来るわけねえだろzk

854 :852:2011/07/05(火) 16:50:43.29
やっぱできないですか。

なんていうか、チッチャイWindowを表示して、GridViewはりつけよっと

ありがとう。

855 :839:2011/07/05(火) 20:22:08.34
誰か教えて下さいぃー

856 :デフォルトの名無しさん:2011/07/05(火) 20:29:43.52
>>839
>>840

857 :デフォルトの名無しさん:2011/07/05(火) 20:31:07.22
Win32だとListViewってアイテムを追加するとindexって増えていって、途中のitemを削除すると
リストのトップにいるやつでもindexが5とかで、0じゃない数字たった気がするんですが
C#のListViewのItemsのItemのIndexって表示されている順番と一致していると考えていいですか?
例えば先頭の0から4まで削除したら、今まで5だったヤツは0になる、と。

858 :デフォルトの名無しさん:2011/07/05(火) 20:32:51.18
>>855
・CollectionView.MoveCurrentTo
・DataGridView.FirstDisplayedScrollingRowIndex

859 :デフォルトの名無しさん:2011/07/05(火) 21:14:34.46
>>858
ありがとうございます!!
何とかやりたい事が出来そうです!!

thaks you for your brain

860 :デフォルトの名無しさん:2011/07/05(火) 21:37:40.40
変な英語w

861 :デフォルトの名無しさん:2011/07/05(火) 21:46:02.53
.netのもっさり感はいつになったら解消するの?
くらだらねー機能ばっか増やすのに工数使ってんなよ



862 :デフォルトの名無しさん:2011/07/05(火) 21:57:29.33
仕組み上、いつまで待っても解消されないです

863 :デフォルトの名無しさん:2011/07/05(火) 21:59:10.24
>>861
あんたがPCアップデートしたら。

864 :デフォルトの名無しさん:2011/07/05(火) 22:01:27.59
MSDNのIEqualityComparer<T>の解説ページで
>IEqualityComparer<T> インターフェイスを実装する代わりに EqualityComparer<T> から派生させることをお勧めします。
>EqualityComparer<T> クラスは、Object.Equals メソッドの代わりに IEquatable<T>.Equals メソッドを使用して
>等しいかどうかをテストするからです。
とあるんだが、この意味というか利点がわからなくて悩んじまったよ
結局StackOverflow.comにわかりやすい説明してくれてる人がいて納得できたが

865 :デフォルトの名無しさん:2011/07/05(火) 22:13:15.33
C#のListViewの見た目の並び順とIndexプロパティの順番は同じだと仮定してよいの?
マイクロソフトはずっとこの手の情報をヘルプに書いてこなかったけど仕様としては不定なのかな?

866 :デフォルトの名無しさん:2011/07/05(火) 22:22:21.88
>>865
あちこち質問する時間があれば自分で試せるだろw
馬鹿じゃないのか。

というか、ListViewItemCollectionのインデクサの解説よめば普通に分かるだろ。

867 :デフォルトの名無しさん:2011/07/05(火) 22:23:15.47
>>866
ありがと
試さないけどインデクサの解説読んでくる

868 :デフォルトの名無しさん:2011/07/05(火) 22:28:24.56
壁ドン

869 :デフォルトの名無しさん:2011/07/05(火) 22:33:24.12
試せっていってるやつは仕様=実装だと思ってるのか?

870 :デフォルトの名無しさん:2011/07/05(火) 22:35:17.28
使いもしない知識を人使って答えさすってのを指して怒ってんじゃねえの〜

871 :デフォルトの名無しさん:2011/07/05(火) 22:39:36.34
いいんだよ優しいスレだから

872 :デフォルトの名無しさん:2011/07/06(水) 00:05:36.23
50マイクロ秒きっちりにファイルに書き込みをしたいのですが
どんなに頑張っても+−25マイクロ秒の誤差がでます
精度のよいライブラリはないでしょうか?

873 :デフォルトの名無しさん:2011/07/06(水) 00:07:51.03
そんな一ひねりしなくて良いから
メトロノームでネタ振ってくれて構わんから

874 :デフォルトの名無しさん:2011/07/06(水) 00:09:31.50
シーシャープでメトロクロス作りたいんですがよいライブラリないですか?

875 :デフォルトの名無しさん:2011/07/06(水) 00:30:24.41
>>874
つまんねーから腹膜にガン細胞ばら撒いてのたくりまわって死ね

876 :デフォルトの名無しさん:2011/07/06(水) 01:00:11.72
結局のところ、シェアウェアを書こうと思ったら、C/C++じゃな駄目ですよね

.NETで書かれた、CADや3Dなんて使用に耐えうるとは思えん
キーエンスのVisionEditorなんて最悪としか言いようがない
なぜに.NET使うのかと激しく文句言ったよ、おそくてたえられん

877 :デフォルトの名無しさん:2011/07/06(水) 01:00:40.56
>>869
これが自然科学だったらあんたの態度の方が正しいと思うが、
プログラミングは一種人文学だからな。

インデックスがその時次第で連続だったり歯抜けが放置されたままだったり、
そんな気まぐれな実装をする奴がいるのか現実問題。

っていうかそもそも常識で考えれば歯抜け状態を許すなんて実装はありえないから、
その常識を念のため確認するだけのことだろ。

878 :デフォルトの名無しさん:2011/07/06(水) 01:03:50.13
>インデックスがその時次第で連続だったり歯抜けが放置されたままだったり
だったら確認してもしょうがないのでは。
確認したときはたまたま正しかったかもしれん

879 :デフォルトの名無しさん:2011/07/06(水) 01:06:35.38
何がだったらなのか意味が分かりませんが....

880 :デフォルトの名無しさん:2011/07/06(水) 01:09:44.93
インデックスが歯抜けなんてバグ以外の何物でもないっしょ
列挙操作でヌルリとか

881 :デフォルトの名無しさん:2011/07/06(水) 01:51:44.12
String型の配列を、プログラム終了時に書きだして、プログラム開始時にその書きだしたファイルから復元することってできないですか?
app.configってやつは配列使えないっぽいんで・・・

882 :デフォルトの名無しさん:2011/07/06(水) 02:02:36.40
>>881
配列をforeachで一要素ずつ吐いてって、何らかの衝突しないデリミタを考える。
っていうのはどうだろう。

883 :デフォルトの名無しさん:2011/07/06(水) 02:20:26.74
>>881
>>881
自分は大体、Environment.GetFolderPath(ApplicationData) の下に設定ファイル作って、
XmlSerializer の類でその手の保存してる。


884 :デフォルトの名無しさん:2011/07/06(水) 04:08:37.08
http://dobon.net/vb/dotnet/programing/mysettings.html
手っ取り早いのがよければこれ

885 :デフォルトの名無しさん:2011/07/06(水) 04:09:35.67
まあString[]限定ならFile.ReadAllLinesとWriteAllLinesもよかろうさ

886 :デフォルトの名無しさん:2011/07/06(水) 07:41:01.51
コントロールを何個も重ねているコントロールのダブルクリックイベントが
一番上のコントロールにしか発生しない。
ベースとなるコントロールにも、イベントを発生する方法は?

887 :デフォルトの名無しさん:2011/07/06(水) 07:57:04.89
>>877
別に歯抜けとは言っていない。
DBみたいに効率を重視して保持している一方
表示に関してはいくつかのフラグをみてそれにあわせて
ソートされた結果を別に持っているかもしれないだろ。

888 :デフォルトの名無しさん:2011/07/06(水) 08:15:46.90
リストビューってコレクションでの順番を入れ替えたら自動的に表示順も入れ替わるの?
なんかもうその時点でおかしくない?
コレクションの要素を削除追加したら画面への描画がロックされてなかったら同期取れないじゃん。
コレクションの要素を操作するときは画面への描画をどうやってロック、アンロックするんだ?
その仕組みが無い限りコレクションのオーダーと表示のオーダーが同じと言う保障はまったく無いだろ。

889 :デフォルトの名無しさん:2011/07/06(水) 08:24:33.09
WPFだと基本的には常にバインド先と直接同期してて
ビュー上だけで並べ替えたりする必要があるときは間にCollectionViewを挟んで明確に分離する

890 :デフォルトの名無しさん:2011/07/06(水) 08:47:27.44
>>886
何個も重ねているって
何段も継承してるってこと?

オーバーライドしてるOnDoubleClickとかOnMouseClickメソッドで
baseの該当メソッドちゃんと呼ぶ

891 :デフォルトの名無しさん:2011/07/06(水) 08:49:30.02
>>888
>コレクションの要素を削除追加したら画面への描画がロックされてなかったら同期取れないじゃん。
>コレクションの要素を操作するときは画面への描画をどうやってロック、アンロックするんだ?

ちょっと言ってることがよく分かりません

892 :デフォルトの名無しさん:2011/07/06(水) 10:28:50.00
ClickイベントならInvokeOnClickがあるが


893 :デフォルトの名無しさん:2011/07/06(水) 11:27:28.84
>>873


894 :デフォルトの名無しさん:2011/07/06(水) 12:13:17.25
C#4.0って企業のパソコンにはいっているものですか?
入れるの面倒くさくていれてない系ですかね?

895 :デフォルトの名無しさん:2011/07/06(水) 12:15:12.42
セキュリティに敏感なところは枯れた技術しか使わないと聞いたことがあるな。

896 :デフォルトの名無しさん:2011/07/06(水) 13:02:32.57
やっぱC#は趣味用だな

897 :デフォルトの名無しさん:2011/07/06(水) 13:05:11.17
古いバージョンと枯れたバージョンは違うので注意なー
ソニーみたいに

今4.0が入ってる所は少ないんじゃないかな

898 :デフォルトの名無しさん:2011/07/06(水) 13:16:23.02
セキュリティと言うか、信頼性だな
安定して動くことが大事で、余計な部分で業務が止まったら損失大きいし

899 :デフォルトの名無しさん:2011/07/06(水) 16:30:52.80
ちょっとコーディングで相談があるのでお願いします
まだプログラミング始めてあまり時間が経ってないので、慣れてないのもあるのですが
いつもぐちゃぐちゃになってしまって、クラス跨いだりすると意味がわからなくなります・・・
どうにか綺麗にコーディングするコツを教えてもらえないでしょうか?

900 :デフォルトの名無しさん:2011/07/06(水) 16:35:22.91
意味がわからなくなるくらいなら無理にクラスを使わず、
スパゲティコードで書け

901 :デフォルトの名無しさん:2011/07/06(水) 16:48:50.01
>>899
リファクタリングしろ。

プロトタイプはプロトタイプと割り切る。
テストしっかり書いておいて、クソコードはどこかで機会見て書き換える。

902 :デフォルトの名無しさん:2011/07/06(水) 16:50:23.92
このスレにソースコードをデーンと上げてリファクタリングさせてた人もいたな

903 :デフォルトの名無しさん:2011/07/06(水) 18:54:45.80
重み付きランダム選択について調べてるのですが、
出てくるのは他のプログラム言語だったり、英語だったりして、困っております。
C#で日本語で書かれた解説どこかに無いですかね?


904 :デフォルトの名無しさん:2011/07/06(水) 18:57:42.11
世界が至れり尽くせりだと思うなよ

905 :デフォルトの名無しさん:2011/07/06(水) 18:57:54.12
>>903
他言語のを参考にすれば良いじゃん。
別に英語でもコードを見ればやりたいことはわかるだろ?

906 :デフォルトの名無しさん:2011/07/06(水) 18:58:32.41
>>903
要するに重みをどう解釈するか。って話でしょ?
自分だったら、配列に値を突っ込む際に重いやつほど同じあたいか同じ参照たくさん突っ込んでランダムシャッフルするかなぁ。

907 :デフォルトの名無しさん:2011/07/06(水) 18:58:45.06
>>903
他の言語のコードあるなら、移植くらいしろよ
その程度の応用力無いと、成長出来んぞ


908 :デフォルトの名無しさん:2011/07/06(水) 21:13:05.81
>>890
継承ではなく、重ねてる
タイマーでマウスのクリック監視しかないかな

909 :デフォルトの名無しさん:2011/07/06(水) 21:20:43.33
>>886,>>887は揃って何か勘違いしてるな

910 :デフォルトの名無しさん:2011/07/06(水) 21:32:18.78
>>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
>>909もなにか勘違いしてそうだな

912 :デフォルトの名無しさん:2011/07/06(水) 21:37:41.16
DBでorder byを指定せずselectしたらたまたまinsertした順番に取得できた
order byの指定無しだとinsert順に取得できることを確認できた

913 :デフォルトの名無しさん:2011/07/06(水) 21:37:59.40
値を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
>>911も何か勘違いしている気がする

915 :887:2011/07/06(水) 21:40:22.24
>>914
なんでテメェが887なのってんの?
この勘違い脳が

916 :887:2011/07/06(水) 21:41:35.56
>>915
も勘違いしているな
それも相当に

917 :デフォルトの名無しさん:2011/07/06(水) 21:44:16.45
一人で何やってんの

918 :デフォルトの名無しさん:2011/07/06(水) 21:45:19.59
効率を考えるなら、あらかじめすべての要素のしきい値(=その要素より前にあるすべての要素の重みの和)
を計算した配列を作っておいてバイナリサーチかな

919 :887:2011/07/06(水) 22:14:04.83
>>916
ダメだこりゃw

920 :デフォルトの名無しさん:2011/07/06(水) 23:10:28.88
C#がPHPを超えて世界で3位の人気言語だと?

921 :デフォルトの名無しさん:2011/07/06(水) 23:15:43.80
すいません、wpfのListViewで、複数行の選択はどうやってやればいいのですか?

922 :デフォルトの名無しさん:2011/07/06(水) 23:16:03.42
クラスのprivate変数にプロパティを使って(get setで)アクセスできますが、

class hoge
{
private int hoge;

public void Set(int value)
{
this.hoge = value + 10;
}

}
のSet関数のように特定の値を足すようにプロパティで記述できますかね?

923 :デフォルトの名無しさん:2011/07/06(水) 23:19:58.17
+=

924 :デフォルトの名無しさん:2011/07/06(水) 23:19:58.21
なんでもないです。普通にできますね。。。。

925 :デフォルトの名無しさん:2011/07/06(水) 23:24:49.39
>>921
SelectionMode

926 :デフォルトの名無しさん:2011/07/06(水) 23:26:38.53
CとC++の基礎だけサラっと流したものですが、C#の仕様ってのはまだ定まっていないのでしょうか?
教本を選ぶ際に気をつける点とかありますか?

927 :デフォルトの名無しさん:2011/07/06(水) 23:28:38.91
仕様が固まってないってこたあないが

.NET系の入門書を選ぶと言語仕様の理解が足らず
C#そのものの入門書を選ぶと.NET Frameworkの理解に欠ける

928 :デフォルトの名無しさん:2011/07/06(水) 23:31:07.81
LINQとかラムダ式とか後から便利なのが増えたりはするな

929 :デフォルトの名無しさん:2011/07/06(水) 23:34:44.28
どっかのD言語とかRubyとかと違ってMSは後方互換性を極めて重視するので、
昔の参考書のコードのコンパイルが通らないというようなことはない
Javaですらバージョンアップでキーワードが増えてコンパイル通らなくなったりすることがあるけど
C#の場合は同名の識別子が存在する場合はキーワードがキーワードじゃなくなったりする徹底ぶり

930 :デフォルトの名無しさん:2011/07/06(水) 23:34:51.67
>>926
じゃあ、聞くけども、C++(0x いつになったら正式告知されるんだよ)は「仕様定まってる」と言うの?

931 :デフォルトの名無しさん:2011/07/06(水) 23:37:09.97
C# で過去のコードがコンパイル通らなかったって話、実務の範囲では1度も聞いたことがない。

わざわざ狙って変なコード書けば、
1.0でコンパイル通ったコードを2.0で通らなくするとかも可能ではあるけども。

932 :デフォルトの名無しさん:2011/07/06(水) 23:41:57.41
ごく稀にそういうのもあるらしいが
やってみるとわかるけど、狙ってもできないw\

933 :デフォルトの名無しさん:2011/07/06(水) 23:44:57.43
有名なのは、 a(b<c, d>(e))
ジェネリック導入の前後で解釈の仕方が変わる。

まあ、誰がこんなコード書くんだって話だけど。

934 :デフォルトの名無しさん:2011/07/06(水) 23:47:38.11
まあ、結構すごいよね、文脈依存キーワード。
int from = 5;
var var = 3;
とかが普通にコンパイル OK だし。

935 :デフォルトの名無しさん:2011/07/06(水) 23:51:15.89
そういうのって言語を設計したりコンパイラ作ったりする立場からしたらやりたくないんだろうな
文法定義やコンパイラの実装がすごい汚くなる

936 :デフォルトの名無しさん:2011/07/06(水) 23:51:35.71
>>927
いや、動かすのはUNITYってそふとなんですよ。
>>928
IT系はそういうの多すぎですよねえ。
>>929
やり方が簡単になったりってのが頻繁だったり?
>>930
公式にはもう動かないと思うのですが。
>>931
そういうものですか。心配要らない様ですね。
>>932
わかりました!
>>933
だいじょうぶですか。
>>934
なんかおじけづいてきました・・・

937 :デフォルトの名無しさん:2011/07/06(水) 23:59:23.63
>>934
それくらいはまあそうだろうって感じだけど
varっていうクラスがあったらvarがvarクラスになるのにはびっくりした

938 :デフォルトの名無しさん:2011/07/07(木) 00:05:30.53
コンパイル?

所詮C#ってインタプリタじゃん

939 :デフォルトの名無しさん:2011/07/07(木) 00:06:56.77
>>938
インタプリタじゃ無いよ。

940 :デフォルトの名無しさん:2011/07/07(木) 00:07:03.37
>>938
いやいや
それは違う

941 :デフォルトの名無しさん:2011/07/07(木) 00:11:21.09
JITコンパイラっていうんだよね?

942 :デフォルトの名無しさん:2011/07/07(木) 00:12:24.91
>>925
いや、モードを切り替える方法じゃなくて、実際にどうやって複数行を選択するかを知りたいんですが
お願いします

943 :デフォルトの名無しさん:2011/07/07(木) 00:13:31.06
確かに昔のBASICも.netのように中間コードに勝手にしてた物もあったけど
JITでネイティブコード化するのでぜんぜん違う

944 :デフォルトの名無しさん:2011/07/07(木) 00:19:07.34
>>942
SelectedItems.Add

945 :デフォルトの名無しさん:2011/07/07(木) 00:22:41.08
>>942
CTRLとかSHIFT押しながら

946 :デフォルトの名無しさん:2011/07/07(木) 00:23:34.39
>>944
行けました。ありがとうございました

947 :デフォルトの名無しさん:2011/07/07(木) 00:38:58.06
>>938
インタプリタではない
ヴァーチャルママンと、呼べ!!!


948 :デフォルトの名無しさん:2011/07/07(木) 03:01:27.07
>>936
Unity は Mono っていう .NET クローンベースだけど、
Mono はかなりちゃんとしてるよ。
MS の支援も受けてやってるし。

というかさ、C# ってちゃんと標準化してるんだぜ?
その一方で、Java って実は標準化してない。

>>938
最近、純粋な意味でインタープリター(実行時にいちいち構文解析してる)なものとかないよ。
大体は実行時のどこかでネイティブ化して、その後はそのネイティブコード使い続ける。

949 :デフォルトの名無しさん:2011/07/07(木) 03:05:38.16
Mono がどのくらいしっかりしてるかっていうと、
Windows で MS 実装の C# コンパイラーでコンパイルしたコードが、
Linux 上の Mono の VM でちゃんと動く。
基本ライブラリ程度しか使ってないものの場合で、動かなかったって話1度も聞いたことない。

一方で、WPF とか、GUI 回りはさすがに移植されてないんで動かない。
けどもまあ、Unity 使うならその辺りは関係ない話。

950 :デフォルトの名無しさん:2011/07/07(木) 12:43:15.57
質問させてください。

呼び出し元プロジェクトのクラスを呼び出し先DLL の中でインスタンス化して、値をセットした上で呼び出し元に返す仕組みを考えています。
DLL 側へどのような情報を渡して、DLL 側でどのような処理を行えば実現出来るでしょうか。

元はプロジェクト内の1機能で、クラスのフルネームを渡してインスタンスを作成していたのですが、ネームスペースが変わったせいかインスタンス化出来なくなりました。

宜しくご教示下さい。

951 :デフォルトの名無しさん:2011/07/07(木) 12:56:12.94
>>948
あざっす。
かなりちゃんとしてますね。
UnrealUDKの独自言語でやってたのがハナクソに思えてきた・・・

952 :デフォルトの名無しさん:2011/07/07(木) 13:11:14.62
DLL の中でインスタンス化とかないから

953 :デフォルトの名無しさん:2011/07/07(木) 13:14:44.53
>>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>();

954 :デフォルトの名無しさん:2011/07/07(木) 13:22:38.60
ネームスペースが変わったんじゃなく、明示的に使わなかったアセンブリはロードされない

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を渡してやれば今まで通りクラスのフルネームでやれますね。
と言うことで今回はこのやり方でいかせていただきました。

皆様、回答頂きありがとうございました。

957 :デフォルトの名無しさん:2011/07/07(木) 18:05:51.44
いやリフレクションでもいいけどそれならTypeオブジェクト渡そうよ

958 :デフォルトの名無しさん:2011/07/07(木) 21:30:13.53
画像処理なんだが大学でSeam Carvingのプログラム作らにゃならないんだけど
何を参考にしたらいいんだろうか・・・

959 :デフォルトの名無しさん:2011/07/07(木) 22:26:31.95
まず。論文よめ

960 :デフォルトの名無しさん:2011/07/08(金) 09:56:45.03
とりあえずググレ
必要な部分を保護して他を延ばすだけだし、既存の技術の組み合わせだけで出来るだろ

961 :デフォルトの名無しさん:2011/07/08(金) 10:05:46.43
>>958
シームカビングはサンプルもいっぱいあるぞ
C++とかだけど変にクラスとか使ってないやつもあるから簡単にわかる
解説も詳しくされてるし

CとC++出来ない俺が作れたんだから大丈夫だ

962 :デフォルトの名無しさん:2011/07/08(金) 10:54:58.84
それよりもゼロシート法の資料が全然出て来なくて困る
日本語で唯一と思われる本は全部書いて無い上、サンプルコードは使用してない変数だらけだし

963 :デフォルトの名無しさん:2011/07/08(金) 11:26:52.52
>>575
Whitespace とか Brainf*ck もマスターしたのか、すごいなw

964 :デフォルトの名無しさん:2011/07/08(金) 12:11:58.34
多次元の連想配列てありますか?

965 :デフォルトの名無しさん:2011/07/08(金) 12:14:57.96
>>964
Dictionary<Dictionary<T, U>, V> ってやるか、
複合キークラスを作って Dictionary<Key, V>
(Key クラスはGetHashCodeとEqualsをオーバーライド)

966 :デフォルトの名無しさん:2011/07/08(金) 13:28:18.74
プログラムを作るときに設計をやるっていうのを聞きました
具体的にどうやって設計するのでしょうか?

967 :デフォルトの名無しさん:2011/07/08(金) 13:30:22.60
設計なんてしないよ
コード書きながら考える


968 :デフォルトの名無しさん:2011/07/08(金) 13:31:15.18
>>965
ありがとうございます
Tupleとかいうの使うんですかね?
やってみます

969 :デフォルトの名無しさん:2011/07/08(金) 13:33:15.29
>>967
それは、設計と言われて、仕様書みたいなのを想像しすぎ。

コード書きながらであっても、
どこでクラスを区切ろう、クラス名やメソッド名は何にしよう、どういう依存関係持たせよう
とかは設計の一部。

単に、最近のプログラミング言語が設計に関する能力も備えてるというだけ。

970 :デフォルトの名無しさん:2011/07/08(金) 13:40:56.62
>>966
基本的に、
エンドユーザーがどういう機能を求めてるのか洗い出し
→ (概念設計) それを基に、どういう技術使って作るか決めたり
  大まかにモジュール区切る(C#で実装すると大体それがそのままクラスになる)
→ (実装設計) クラスとかメソッドの仕様決めてく

大規模開発だと概念レベルと実装が人も違う、会社も違うとかになるけど、
小規模だとたいてい同じ人がやる。
実際にプロトタイプのコード書きながら概念設計とかもざら。

971 :デフォルトの名無しさん:2011/07/08(金) 13:48:02.01
つあり箇条書きでこういう機能が欲しいって言うのを書いていくところから始めるってことでしょうか?

972 :デフォルトの名無しさん:2011/07/08(金) 13:50:47.62
世の中にはプログラムが完成してから仕様書という名の反省文を書く人もいるらしいしなw

973 :デフォルトの名無しさん:2011/07/08(金) 13:51:36.49
>>971
だいたいそういうこと。

そのとき、主語抜かないようにね。
アプリによっては、エンドユーザーって言っても、一般社員、管理者、役員とか分かれるんで。
誰なら何ができる/何をしたいを明記。

974 :デフォルトの名無しさん:2011/07/08(金) 14:16:06.08
>>972
クライアントへの詫び状でなければまだマシってもんさ

975 :デフォルトの名無しさん:2011/07/08(金) 14:29:32.39
とりあえずフォームに必要そうなコントロールを貼りつけてから考える
ただ、これを素人に見せると「完成まで後少し」と思われてしまうので注意

976 :デフォルトの名無しさん:2011/07/08(金) 14:37:26.94
>>975
うちがそれだ
画面で着てるから後表示とか登録書くだけでしょ

あほかソレが時間かかるし入力チェックやエラー処理系はどこいったんだと
PCのセットアップもあるし
ただ動くだけでいいなら誰も苦労しねぇよ

977 :デフォルトの名無しさん:2011/07/08(金) 14:41:04.80
ただ動くだけでいいって言ってるんだよ

978 :デフォルトの名無しさん:2011/07/08(金) 14:42:48.93
>>977
そのただ動くだけでいいっていうのがトラップw

979 :デフォルトの名無しさん:2011/07/08(金) 14:47:26.18
フォームにボタン等を配置⇒あと少しで完成と思われる
とりあえずボタンの内容を記述して、単純な動作の確認⇒完成したと思われる
他のボタンを押したりすると不具合発生⇒しっかりした物を作れと怒られる

いつも大体こんな感じ

980 :デフォルトの名無しさん:2011/07/08(金) 14:53:09.54
Mから書いてればそんな事にならないのに

981 :デフォルトの名無しさん:2011/07/08(金) 14:54:54.03
ブラックはそんな感じなのか

982 :デフォルトの名無しさん:2011/07/08(金) 14:56:27.38
相手<この機能とこの機能とこの機能があると便利だな
俺<出来ました
相手<機能多すぎて画面見辛いから、やっぱこの機能とこの機能はいらない

特に苦労した機能に限って、いらないって言われるんだよな・・・

983 :デフォルトの名無しさん:2011/07/08(金) 15:05:11.10
ブラックでアジャイルを採用する理由は開発が進んでると見せかけて納期をごまかすためだと聞いたことがある

984 :デフォルトの名無しさん:2011/07/08(金) 15:12:33.31
もっとこみゅにけーしょんしようぜ!

985 :デフォルトの名無しさん:2011/07/08(金) 15:13:39.07
>>984
無理じゃね?

日本の場合「とりあえず動けばいいんだよ」という発言権持ってる人ってオールドタイプなのに
威張ってるだけってことが多いし

理解してる人はそういう発言はしない

986 :デフォルトの名無しさん:2011/07/08(金) 15:18:09.80
次スレ立ててくる

987 :デフォルトの名無しさん:2011/07/08(金) 15:18:46.58
普通に仕様書作って承認してもらえばいいだけじゃん
いらないと言われても金は請求できるだろ

988 :デフォルトの名無しさん:2011/07/08(金) 15:23:51.68
ふらっとC#,C♯,C#(初心者用) Part77
http://hibari.2ch.net/test/read.cgi/tech/1310106189/

989 :デフォルトの名無しさん:2011/07/08(金) 15:50:04.34
仕様書って完成してから使える機能を書く物じゃね?

990 :デフォルトの名無しさん:2011/07/08(金) 17:24:46.55
お前らあれだろ
取扱説明書を仕様書と言われて困惑するタイプだろ

991 :デフォルトの名無しさん:2011/07/08(金) 17:52:07.22
初心者からの質問には「ぐぐれ」とか「曖昧なヒント」しか出さない不親切な連中が、
どうでもいいネタでスレ埋めるなよ、カスども。

992 :デフォルトの名無しさん:2011/07/08(金) 20:54:26.10
うめ

993 :デフォルトの名無しさん:2011/07/08(金) 20:58:20.27
はね」。

994 :デフォルトの名無しさん:2011/07/08(金) 21:07:02.80
とめ」。

995 :デフォルトの名無しさん:2011/07/08(金) 21:08:12.68
うめ

996 :デフォルトの名無しさん:2011/07/08(金) 21:11:54.05
ど根性かえるの寿司屋か

997 :デフォルトの名無しさん:2011/07/08(金) 21:21:37.65
蒼樹うめ

ふらっとC#,C♯,C#(初心者用) Part77
http://hibari.2ch.net/test/read.cgi/tech/1310106189/

998 :デフォルトの名無しさん:2011/07/08(金) 21:21:54.05
おしまいじゃあああああああああああああああ

999 :デフォルトの名無しさん:2011/07/08(金) 21:22:02.04
うめニャン

1000 :デフォルトの名無しさん:2011/07/08(金) 21:22:10.50
the end.

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

198 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)