ふらっとC#,C♯,C#( ..
[2ch|▼Menu]
159:デフォルトの名無しさん
09/03/17 22:15:21
>>157
WebBrowser でやるならそんな感じ。リクエストを投げるなら、
HttpWebRequest で Post。

160:デフォルトの名無しさん
09/03/17 22:18:49
さっそくどうも
う〜ん難しそうですね
よく読んでみます

161:デフォルトの名無しさん
09/03/18 15:09:29
クラスAで初期化(インスタンス?)したクラスBの
プロパティをクラスCから読み書きしたい場合は
クラスAのインスタンスをPublicにしてアクセスするもの
なんでしょうか。定石があれば教えて下さい。

162:デフォルトの名無しさん
09/03/18 15:26:20
よくわからんけどこんな感じのことを言ってる?

public ClassA{ public ClassB b = new ClassB(); }
public ClassB{ public string s = "test"; }

ClassC
{
  public ClassC()
  {
    ClassA a = new ClassA();
    Console.WriteLine(a.b.s);
  }
}


163:デフォルトの名無しさん
09/03/18 16:00:08
正にそう言うことです。
そういうアクセスの仕方が一般的なのかと思いまして。

164:デフォルトの名無しさん
09/03/18 16:10:54
プロパティはどこに行ったんだ

165:デフォルトの名無しさん
09/03/18 16:11:59
直接フィールド公開するのは論外として、
ClassAがstring型プロパティとして公開するか直接ClassBを公開するかは場合による

166:161
09/03/18 17:46:13
>>165
今回の場合、以下のような構成になっています。
・クラスA(メインフォーム。起動時に各種設定値を読み込みクラスBに格納)
・クラスB(設定値を保持する為のクラス。プロパティやフィールドのみ)
・クラスC(クラスAから開かれるオプション画面)

クラスAからクラスCを開いたときに既に読み込まれたクラスBの設定値を
読み込みクラスCの各種コントロールに反映したいのですが、クラスCで
クラスBを初期化すると値まで初期化されてしまい困っています。

こういう場合はどのようにするのが定石でしょうか。
>>161,163は携帯からだったので端折ってしまってすいません。

167:デフォルトの名無しさん
09/03/18 17:50:36
ClassCもフォームなんだよね?

そういう場合はClassAの側でClassCのプロパティを設定してやる方がいいんじゃないかな
ClassCのコンストラクタにClassBの参照渡すとかね

168:161
09/03/18 18:17:10
>>167
フォームです。ClassCでプロパティを作成するのは面倒なので
後者の方法についてどのようにするか色々調べてみます。
有り難う御座いました。

169:デフォルトの名無しさん
09/03/18 19:09:49
IEnumerableをシリアル化するには、どのような方法を利用すればいいですか?

170:デフォルトの名無しさん
09/03/18 19:36:26
ToArray

171:デフォルトの名無しさん
09/03/18 20:10:29
フォームを最大化する時にその中のコンポーネントも連動して
同じ比率で大きくしたいんですけどどうすればいいですか?
最大化する時に一々それぞれのサイズをいじるしかない?

172:デフォルトの名無しさん
09/03/18 20:25:16
>>171 Control.Anchorプロパティとかで解決できるかな?

173:デフォルトの名無しさん
09/03/18 20:26:00
>>171
普通はSplitContainerを使う

174:デフォルトの名無しさん
09/03/18 22:55:24
変数の型で同じバイト数のものならやっぱり
少数型より整数型のほうが速いですか?

175:デフォルトの名無しさん
09/03/18 22:56:02
>少数型
そんなものはありません

176:デフォルトの名無しさん
09/03/18 22:59:27
失礼 小数

177:デフォルトの名無しさん
09/03/18 23:01:45
初めから答える気のない奴が
揚げ足を取るだけのためにレスしてるだけだから気にすんな

178:デフォルトの名無しさん
09/03/18 23:04:15
自己紹介するスレじゃないよ

179:デフォルトの名無しさん
09/03/18 23:04:43
速いかどうかは環境依存

180:デフォルトの名無しさん
09/03/18 23:05:13
お前も自己紹介してるやないけ

181:デフォルトの名無しさん
09/03/18 23:06:55
くやしかったかい?

182:デフォルトの名無しさん
09/03/18 23:07:48
はい
くやしかったです

183:デフォルトの名無しさん
09/03/18 23:07:52
最後までレスし続けたほうが勝ちかい?

184:デフォルトの名無しさん
09/03/18 23:08:32
そう思います

185:デフォルトの名無しさん
09/03/18 23:08:37
いや君の勝ちでいいよ?

186:デフォルトの名無しさん
09/03/18 23:08:40
じゃあ俺の勝ちだろ
お前ら弱すぎワロタ

187:デフォルトの名無しさん
09/03/18 23:08:59
これだから理系は困る

188:デフォルトの名無しさん
09/03/18 23:10:04
理系って?文系って?なに?説明してくれない?

189:デフォルトの名無しさん
09/03/18 23:10:12
175 名前: デフォルトの名無しさん [sage] 投稿日: 2009/03/18(水) 22:56:02
>少数型
そんなものはありません

とりあえずさらしage

190:デフォルトの名無しさん
09/03/18 23:11:40
中卒には関係ないよ 区別があるのは高校からですよ

191:デフォルトの名無しさん
09/03/18 23:11:42
必死だな

192:デフォルトの名無しさん
09/03/18 23:11:47
>>174
とりあえずint(System.Int32)で扱えば一番良いはず。

193:デフォルトの名無しさん
09/03/18 23:12:53
理系とか文系という言葉に強烈に反応するのが約一名いるのは仕様ですか?

194:デフォルトの名無しさん
09/03/18 23:13:40
おまえら#regionで畳んどけよ

195:デフォルトの名無しさん
09/03/18 23:14:29
変換ミスぐらい許容できないバカがいるから荒れるんだよな

196:デフォルトの名無しさん
09/03/18 23:15:20
いやその後の方が問題だ

197:174
09/03/18 23:15:23
>>192
どうも
できるだけ32bitのものを使おうとおもってますが
最近はjavaとかも64bit版あったりするんでどんなもんかなと思いまして

198:デフォルトの名無しさん
09/03/18 23:17:02
基本クラスのメソッドに含まれるメンバ変数の値を
派生クラス側で変更して、そのメソッドを使いたいんですが
どうしたらいいのでしょうか?

199:デフォルトの名無しさん
09/03/18 23:19:03
>>197
実際のところ64bit整数は32bitと同じかそれ未満の速度になるよ


200:デフォルトの名無しさん
09/03/18 23:20:52
>メソッドに含まれるメンバ変数
とは何だ?

201:デフォルトの名無しさん
09/03/18 23:22:19
>>198
値って引数のこと?

202:デフォルトの名無しさん
09/03/18 23:23:54
>>198
やりたい事をそれっぽいコードで示してみ


203:174
09/03/18 23:24:26
そうですか
これらの速度をベンチマークで比較してるとこがあればいいんですけどねえ

204:デフォルトの名無しさん
09/03/18 23:26:06
virtual?

205:デフォルトの名無しさん
09/03/18 23:26:56
きっと斜め上の回答が来る筈。
って事で、メソッド内のローカル変数だと予想

206:デフォルトの名無しさん
09/03/18 23:28:49
>>198
>>60-62と同じような質問にも読める

207:デフォルトの名無しさん
09/03/18 23:34:07
結局どれなんだよ・・・

208:デフォルトの名無しさん
09/03/18 23:35:34
>>202
こういう感じです
派生クラスでメソッドを書き直すしかないですか?

public class A{
int x = 10;
public MethodA(){
Console.WriteLine("ここに表示される値を変えたい→ " + x);
}
}

public class B : A{
new int x = 20;
}

public class DEMO{
public static void Main(){
B b = new B();
b.MethodA(); //ここで20と表示したい
}
}

209:デフォルトの名無しさん
09/03/18 23:40:05
>>208
これでどうだ
public class A
{
protected int x = 10;
public void MethodA()
{
Console.WriteLine("ここに表示される値を変えたい→ " + x);
}
}
public class B : A
{
public B()
{
this.x = 20;
}
}
public class DEMO
{
public static void Main()
{
B b = new B();
b.MethodA(); //ここで20と表示したい
}
}

210:デフォルトの名無しさん
09/03/18 23:49:16
>>209
おー、これです
ありがとうございます

211:デフォルトの名無しさん
09/03/19 00:05:49
選択した文字列を引数としてプログラムを起動するにはどうしたらいいですか?

212:デフォルトの名無しさん
09/03/19 00:08:21
>>211
URLリンク(msdn.microsoft.com)(VS.80).aspx


213:137
09/03/19 00:55:19
>>210
しかと吟味の上、よきに計らえ

214:デフォルトの名無しさん
09/03/19 00:57:01
ごばorz

215:デフォルトの名無しさん
09/03/19 01:30:02
どこの誤爆だよwww

216:デフォルトの名無しさん
09/03/19 03:00:49
現在アクティブになっている他アプリのウィンドウ名を取得することはできますか?
出来るのであればご教授お願いします。

217:デフォルトの名無しさん
09/03/19 03:18:50
>>211
Main関数の中に配列いれろ

218:217
09/03/19 03:20:26
言い方が悪かった

static void Main(string[] args)

こういう感じね


後選択した文字列ってのが意味解らない

219:デフォルトの名無しさん
09/03/19 03:22:41
user32.dllのGetForegroundWindowとGetWindowTextをDllImportして使う。
HWNDにIntPtr、LPTSTRにStringBuilderを使っとけばおk

詳しいやりかたはぐぐれ

220:デフォルトの名無しさん
09/03/19 03:26:09
>>211
System.Diagnostics.Process.Start("app.exe", "args");
こういう事をしたいのか?

221:デフォルトの名無しさん
09/03/19 03:32:12
>>219
ありがとうございます。
そのヒントを元に検索し、緑のバイクさんのところのコードを参考にして解決しました。

222:デフォルトの名無しさん
09/03/19 03:44:03
>>211
Processじゃないの?


文字列で思い出したのでついでに質問

ブラウザなどで範囲選択している文字列をコピーすることはできないでしょうか?
SendKeyで Ctrl+Cを送ると、なぜかブラウザ名と開いてるページが帰ってきてしまいます。
何かいい方法無いですか?

223:デフォルトの名無しさん
09/03/19 10:37:38
一番汎用的なのがSendKeysなのは間違いない
Ctrl+Insertの方が安定してるかも

対象限定ならともかく完全にどんなのでも使えるやりかたってのは存在しない

224:デフォルトの名無しさん
09/03/19 10:41:19
変数名を変えると一括で変換してくれるマークが出てくるじゃないですか
あれを出ないようにしたくはないんですが、他は変更しない時マークを消したいんですが
マークを押した時に出てくる2つの選択肢どっちを選んでも思い通りになりません教えてくだしあ

225:デフォルトの名無しさん
09/03/19 16:59:26
2次配列の宣言で
int[][] da = new int[8][];  として後で

da[0] = new int[8];
da[1] = new int[8]; …としていくとできますが

for (i = 0; i < 8; i++)
da[i] = new int[8];
こうするとビルドは出来ますが実行で赤Xがでてエラーになります

for などを使って一括して定義する方法ないでしょうか?
da[0,0] このタイプは使いたくないのです


226:デフォルトの名無しさん
09/03/19 17:06:08
エラーはちゃんと読みなさい。

227:デフォルトの名無しさん
09/03/19 17:08:59
>こうするとビルドは出来ますが実行で赤Xがでてエラーになります 

日本語でOK

228:デフォルトの名無しさん
09/03/19 17:09:54
エラーでないぞ?
iを定義してないだけじゃないか?

229:デフォルトの名無しさん
09/03/19 17:20:25
なんか、めちゃくちゃえげつない初期化が出来るね。

int[][] da = new int[][] { new int []{1,2,3}, new int []{5,6}, new int []{7}, new int []{8,9,10}};


230:デフォルトの名無しさん
09/03/19 17:22:22
もう一息
var da = new int[][] { new []{1,2,3}, new []{5,6}, new []{7}, new []{8,9,10}};


231:デフォルトの名無しさん
09/03/19 17:49:43
>>228
でないですか?iの定義はしてるはずなんですが
>>226
エラーというか画面全体に×が出るあれです


232:デフォルトの名無しさん
09/03/19 18:13:52
宣言する場所と実際にデータを使う場所が悪かったようです
直りました、どうもすいません

233:デフォルトの名無しさん
09/03/19 22:49:45
 
日本を狙う 朝鮮人の原爆ミサイル建造費用は

  日本国内の 在日パチンコ屋からの送金

パチンコの市場規模は 年間30兆円

  日本の国家予算の 3分の1以上

  北朝鮮の国家予算の なんと100年分!

これを在日朝鮮人が 自由に動かし

  パチンコマネーを 北朝鮮に送金している

パチンコ屋を 全面営業禁止にしない限り

  北朝鮮は制裁など 痛くもカユくもない
 
在日朝鮮人なら 生活保護もらい放題

  毎月二十数万円もらって 毎日遊んで暮らしてる

  住宅費・医療費・教育費なんでも無料

  税金は1円も払わない 超特権階級(貴族)

  民主党は 選挙権まで与える予定

  日本は 在日天国  <丶`∀´> ウハウハ〜♪

URLリンク(2cchan.ham-radio-op.net)

234:デフォルトの名無しさん
09/03/20 00:36:39
>>223
おお、Ctrl+Insertで望んでいた動きができました
なぜCtrl+Cで上手くいかなかったんだろうなぁ

ありがとうございました

235:デフォルトの名無しさん
09/03/20 03:02:46
すみません。質問いいですか?

実にくだらないのですが、解りません・・・

データグリッドビュー内の全てのRow毎にForeachループを廻したいのですが
やり方が解りません。

どなたか教えては頂けませんか?
宜しくお願い致します。

236:デフォルトの名無しさん
09/03/20 03:06:15
foreach(DataGridViewRow row in dataGridView1.Rows)
{
うんたらうんたら;
}

237:デフォルトの名無しさん
09/03/20 20:30:07
C#3.0勉強中
匿名メソッドのラムダ式の便利さはわかったけど、
ExpressionTreeというのが、どういう場合に使われて便利なのかよくわからない
これは便利だっていうサンプルが乗ってるサイトとかありますか?

238:デフォルトの名無しさん
09/03/20 22:56:48
URLリンク(www.opentk.com)
のExampleの中のWinForms 1 : Simple GL Controlのサンプルを、
ボタンを押したら箱が回るアニメーションが再生/一時停止するようにするには
どうすればいいですか?
箱を描画する処理は作れるんですが、アニメーションを実装する方法が良く分かりません・・
シングルスレッドで処理したいんですが、ApplicationContextクラスを作ったりしなければならない?

239:238
09/03/20 23:13:52
BackGroundWorkerとかデリゲートの非同期呼び出しとか
使わず
while(ウィンドウが閉じられていない間)
{
メッセージ処理

ゲームの描画処理とかSleepとか
}
見たいな事はC#では出来ないんでしょうか

240:デフォルトの名無しさん
09/03/20 23:21:28
マルチスレッドが嫌ならDoEventsでも使えば

241:238
09/03/20 23:31:18
>>240
メッセージ処理をDoEventsでするんですか?
しかしApplication.Run(new Form1());
した後どこから>>239みたいなループに入れば・・?
OnClick()の中にwhile文入れたりとかは駄目ですよね・・?

242:デフォルトの名無しさん
09/03/21 00:11:27
>>237
マニアックな例になるけど、
URLリンク(ufcpp.net)
とか。

あと、C# 4.0のdynamicは内部的に式木使って動的コード生成してる。

いずれにせよ、あんまりエンドユーザー向けの機能ではない。

243:デフォルトの名無しさん
09/03/21 11:12:18
株式の情報とかを取得するのに
皆、Yahooファイナンスから情報を得ているのが多いみたいですが
あれは?ファイナンスのHTMLを取得して
中を読み取り表示しているだけなのかな?

244:デフォルトの名無しさん
09/03/21 11:14:56
YahooのWebAPIではファイナンスの情報提供してないみたいだからそうなんじゃない?

245:デフォルトの名無しさん
09/03/21 11:29:19
Yahooの株式データはurlにクエリ付けて操作できる

246:デフォルトの名無しさん
09/03/21 11:47:11
URLにクエリですか?

247:デフォルトの名無しさん
09/03/21 11:48:41
だけど取得はHTMLだから仕様変更されたら一発でアボーン。
つか金融系でAPIを公開しているところないよなぁ・・・
純金の相場を取得するモジュール作ったけど、仕様がいつ変わるかわからないのが怖い。

248:デフォルトの名無しさん
09/03/21 11:50:23
>>246
クエリ文字列。

URLリンク(stocks.finance.yahoo.co.jp)
なら
code=4686.q

つまりURLの後ろの?以降の文字列。

249:デフォルトの名無しさん
09/03/21 11:55:39
>>248
銘柄のコードでですね。

それでHTMLを取得してから
中を自分で作るしかないのか・・・・・

>>247さんの言う通り
HTMLが変わったら終わりですね。

どうするかなぁ〜( ̄ヘ ̄;)ウーン

250:デフォルトの名無しさん
09/03/21 12:20:33
スクレイピングなんてそんなもん。

正規表現を設定ファイルに出すとかしておいて、
変更時の修正が最低限に済むようにしとけ。

251:デフォルトの名無しさん
09/03/21 12:25:08
携帯から失礼。ふと疑問に思ったのでよろしくお願いします。

オブジェクトを作るとき、+=と=の場合があるんですがどう違うんですか?

252:デフォルトの名無しさん
09/03/21 12:47:17
たぶん、イベントハンドラの関連づけを勘違いしてるんじゃないかな。

253:デフォルトの名無しさん
09/03/21 12:48:45
YAHOOファイナンスは銘柄コード以外に日付もクエリに指定する事が出来て
過去10年分の株価時系列データが意外と簡単に取得出来るな
詳しいやり方は忘れた

254:243
09/03/21 13:04:14
色々な意見ありがとうございます。
ちょっと考えてから作るか作らないか検討します。

255:デフォルトの名無しさん
09/03/21 13:07:14
>>252
たぶんそうです。
+=と=の違いってどうなんですか?

256:デフォルトの名無しさん
09/03/21 13:10:34
調べろよ。

x = x + y;

x = y;

の違い。

257:デフォルトの名無しさん
09/03/21 14:14:23
>>242
おお ありがとう
あと見ておくべきところとしてはこんなところかな?
なんかいろいろあるなぁ

・ASP.NET MVC 1.0
・ASP.NET AJAX
・ASP.NET Dynamic Data
・ADO.NET Entity Framework
・ADO.NET Data Services
・Silverlight 2.0
・Silverlight Controls for ASP.NET
・C#3.0 匿名メソッド
・C#3.0 ラムダ
・C#3.0 初期化子
・C#3.0 匿名型
・C#3.0 暗黙型付け
・C#3.0 拡張メソッド


258:デフォルトの名無しさん
09/03/21 14:28:45
>>256
ハンドラーに+=ってイメージがつかないんです(ノ_・。)

259:デフォルトの名無しさん
09/03/21 14:34:45
継ぎ足していくイメージだな

260:デフォルトの名無しさん
09/03/21 15:05:28
>>258
 delegate void FooHandler(string s);
 void Bar(string s) { Console.WriteLine(s); }
 void Test() {
   FooHandler f = null;
   f += Bar; // ..1
   f = f + Bar; // ..2
   f = (FooHandler) Delegate.Combine(f, new FooHandler(Bar)); // ..3
   f("hello");
 }
1.2.3 は全部同じ意味。


261:デフォルトの名無しさん
09/03/21 15:13:23
でも実際、delegateの場合は+=演算子がオーバーロードされて、
Delegate.Combineメソッドが実行されるってこと?

262:デフォルトの名無しさん
09/03/21 17:29:32
演算子オーバーロードではなく、糖衣構文。
コンパイラが自動的に Delegate.Combine() に変換してくれるのであって、
Delegateクラスで + 演算子が定義されているわけではない。

263:デフォルトの名無しさん
09/03/21 19:32:07
スレリンク(gamedev板:95-番)


264:デフォルトの名無しさん
09/03/21 20:11:21
WEBサイトを画像化するには
どういった方法をとるのが適切ですか?
よければサンプルコードの掲載されてるようなURLもいただけるとありがたいです。

265:デフォルトの名無しさん
09/03/21 21:11:11
throw new System.Exception();

│               _∧∧∧∧∧∧∧∧∧∧_
│               > そ、その動きはトキ! <
│                ̄∨∨∨∨∨∨∨∨∨∨ ̄
│ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜)
↓ ≡  ノノノノ ノ  サッ

266:デフォルトの名無しさん
09/03/21 22:51:33
>>257
LINQを学べば自動的にC#3.0の追加要素は全部学べるよ。

267:デフォルトの名無しさん
09/03/21 23:22:15
>>266
LINQ TO SQLはキャンセルの方向だからお勧めできないよ

268:デフォルトの名無しさん
09/03/21 23:33:19
>>267
>>257 のリストのどこにもLINQ TO SQLとかいてないな。
ひょっとしてLINQ = LINQ TO SQLとか思ってる人なの?

269:デフォルトの名無しさん
09/03/21 23:39:27
>LINQ TO SQLはキャンセルの方向
そうなのか
知らんかった
理由は何?


270:デフォルトの名無しさん
09/03/21 23:43:32
ひとことでいうと DB 屋さんが作ったものじゃないから。
ある意味 Linq の参考実装だったものがそのまま出てきたような
もの。でもライトでいいんだけどねあれ。実質 SQL Server 限定で
なければ。
DBLinq はどうなってるんだっけか。

271:デフォルトの名無しさん
09/03/21 23:57:35
>>268
EntityにはLINQ TO SQLが内包されてるし、
一言でLINQと説明しているC#関連のサイトのほとんどはLINQ TO SQLだからね

272:デフォルトの名無しさん
09/03/22 00:06:44
EntityにはLINQ TO SQLと同等のExpression<T>を使ったクエリ文は使用しているが内包はしていない。
>一言でLINQと説明しているC#関連のサイトのほとんどはLINQ TO SQLだからね 
これは君の脳内ソース。


273:デフォルトの名無しさん
09/03/22 00:22:14
LINQでLINQ TO SQLを説明してるサイトのほうが少ないと思うんだが、
いったい普段どういうサイトを見てるんだろうか

274:デフォルトの名無しさん
09/03/22 00:29:31
>>272
紛らわしいが、普通に理解して貰えれば、Entity Frameworkのことを差しているのは明白だと思うんだけど。
EntityFrameworkはSP1になって実装されたものだからC#3.0(VS2008)の特徴として紹介されてる
LINQ関連は、ほとんどLINQ TO SQLっていってるわけ。

実際にC#でLINQ TO SQLでないものを紹介していれ例は少ないよ。
脳内ソースというか、普通にググればわかるレベル。

275:デフォルトの名無しさん
09/03/22 00:38:37
つまり、ググると混同してるのやら誤解しているのやらがたくさん出てくると


276:デフォルトの名無しさん
09/03/22 00:42:17
>>274
はいはい(笑)

277:デフォルトの名無しさん
09/03/22 00:44:56
あの論点が見えないのですが
>>266-276 の繋がりがよく分からないあたりから
食い違いがあるのではないでしょうか

278:デフォルトの名無しさん
09/03/22 00:45:53
…Linq to SQL が sqlmetal とかの特定技術であることすら知らない?
Entity Framework の Linq 技術周りに関して言えばそれは
Linq to Entities だ。EDM に対してのクエリである ObjectQuery の
構築で使用している。
Linq to Entities と Linq to SQL は生まれも実装もラインも別。マジで。
つながりでいえば Linq のプロバイダとして実装されているぐらいしか
共通点はない。

279:デフォルトの名無しさん
09/03/22 00:45:59
訂正 >>266-267 でした

280:デフォルトの名無しさん
09/03/22 00:46:05
>>275
>>276
はいどうぞ

>また、VS 2008 SP1&.NET Framework 3.5 SP1では
>「ADO.NET Entity Framework(ADO.NETエンティティ・フレームワーク)」
>(以降、Entity Framework)という新しいデータベース・アクセス・テクノロジが追加されている。

URLリンク(www.atmarkit.co.jp)

281:デフォルトの名無しさん
09/03/22 00:50:35
>>280
だから何?って感じなんだがwww
何の証明にもなってない

282:デフォルトの名無しさん
09/03/22 00:51:16
>>281
>>278は華麗にスルー?

283:デフォルトの名無しさん
09/03/22 00:52:39
>>282
うん
だから何?って感じだし
なんでそんなに必死なのかさえ理解できないし

284:デフォルトの名無しさん
09/03/22 00:54:20
脳内ソース出しちゃう人の話なんか誰も取り合っちゃくれんよ
それが2chです

285:デフォルトの名無しさん
09/03/22 00:55:09
なんか論点がずれてる気がするな。
その記事ではEFとLINQ TO SQLをちゃんと区別してるんだから、
そうなると誰もそれには異論は唱えてないことになると思うのだけど
IDがないとわかんね。

286:デフォルトの名無しさん
09/03/22 00:56:27
だから

>LINQ To EntitiesはEDMのモデル向けの“LINQ To SQL”といってもよいものだが、
>LINQ To SQLにはない機能(例えば、複数のテーブルから1つのエンティティを作成する機能など)が搭載されている。

>EDMに基づくLINQ To Entitiesは、データベースやオブジェクトの変更にも強いなどのメリットがあるため、
>今後はLINQ To Entitiesの方が(LINQ To SQLよりも)より多くの場面で活用されていくのではないだろうかと筆者は予測している

287:デフォルトの名無しさん
09/03/22 01:12:59
linqとして紹介されてたものが実はlinq to sqlのことだとも知らなかったのか。。

288:デフォルトの名無しさん
09/03/22 01:15:53
>>287
君か、引っ掻き回してたのは

289:デフォルトの名無しさん
09/03/22 01:19:00
何を?
勘違いしてた人はいるみたいだけどね

290:デフォルトの名無しさん
09/03/22 01:19:46
Linq だけならふつーは Linq to Objects を指すんじゃない。


291:デフォルトの名無しさん
09/03/22 01:25:58
じゃあ事実関係から

1 Linq To SQLはLinq To Entityとは別物 ここまではok?
URLリンク(www.atmarkit.co.jp)

2 VS2008と.NET3.5は同じ時期にリリースされた ここまではok?
URLリンク(itpro.nikkeibp.co.jp)

3 Linq To SQLは.3.5に搭載されている ここまではok?
URLリンク(d.hatena.ne.jp)

4 Linq To Entity(Entity Framework)は3.5 SP1で搭載された ここまではok?
URLリンク(d.hatena.ne.jp)

従って3の時点でリリースされていないLinq To Entity(Entity Framework)を
C#の特徴として紹介できない(将来の機能の紹介は別)。 ここまではok?


292:デフォルトの名無しさん
09/03/22 01:31:57
>>290
同感

だが、メソッドのネーミングがSQL由来なので
使った事が無い人はSQLの利用がメインだと思うかもね

293:デフォルトの名無しさん
09/03/22 01:34:27
>>291
SP1は既にリリースされてるわけで将来の機能というわけではないよ。
ただ、議論をする上で扱いは決めておく必要はある。
というわけで含まない前提でどうぞ。

294:デフォルトの名無しさん
09/03/22 01:40:49
>>293
普通に解釈すれば、3時点から見た「将来」と読めるから、
その突っ込みはズレてると思うぞ?

295:デフォルトの名無しさん
09/03/22 01:43:48
3の時点でリリースされていないLinq To Entity
3の時点で紹介できない
どちらが普通かは難しいけが後者で了解

296:デフォルトの名無しさん
09/03/22 01:48:39
それ前提ならC#とLINQの解説は、SP1公開以前のものがほとんどだから
少なくともLinqToEntitiesを解説したものは圧倒的に少ないな
どっちにしろSQLのほうはなくなるらしいから学ぶならEntitiesのほうだろ

297:デフォルトの名無しさん
09/03/22 02:37:11
学ぶならまずはLINQ to Objectsですよ。
第一、Linqの説明で一番多いのはLINQ to Objectsだし。
SQL系に隠れてスルーされ気味ですが、非常に有益な技術です。

298:デフォルトの名無しさん
09/03/22 03:49:08
LINQ to XML使ってる俺はどうなんの

299:デフォルトの名無しさん
09/03/22 10:18:18
LINQといえばまず第一にLINQ to Objectsだろ
ないと絶対に困るレベルのプログラムの基本部品だ

LINQ to SQLとかEntityなんてのはそれを応用して作った
ただのORマッパーだろ
LINQという技術の射程の長さは表れてるけど
それがLINQの代表というわけじゃない

300:デフォルトの名無しさん
09/03/22 10:27:11
>>298
まあ、XML操作が必要な作業してるんなら、
LINQ to XMLはかなり使いやすいXMLライブラリだと思う。

>>299
応用というか、同じ書式で書けるってのがポイントか。


301:sage
09/03/22 10:59:30
OS  :WindowsXP
開発環境:VisualStudio2008 Pro
開発言語:C# 3.0

AccessデータベースをOLEで接続し、
データバインドしたDataGridViewでデータを表形式で表示しつつ、
DataGridViewの右横にデータバインドしたテキストボックスを配置し、
DataGridViewでデータを選択し、それをテキストボックスで
データ更新が出来る名簿ソフトを作成しています。

それに、DataViewのRowFilterでDataGridViewでのデータの絞込みが出来る
用に機能追加し、またデータバインドのソースをDataViewにして、絞込みした
状態でデータ更新ができるようにしようとしました。

しかし、
RowFilterでフィルタをかけている状態で、下記のコマンドをボタンで更新処理を
実行しようとすると、DataGridのフォーカスを手動で変更をしないとデータベースが
更新されないのです。

フォーカスを移動しなくても更新されるようにEndCurrentEdit
メソッドを事前にかけているのですが、何かコマンドが足りないのでしょうか?
恐れ入りますが、ご教示いただけないでしょうか?

以下コマンド-----------------
int iRow; //更新したレコード数
this.BindingContext[dbCustomer1, "M_Customer"].EndCurrentEdit();
iRow = oleDbDataAdapter1.Update(dbCustomer1, "M_Customer");
MessageBox.Show("更新 " + iRow + "件");
-----------------------------

302:デフォルトの名無しさん
09/03/22 11:06:11
C#にはデフォルト引数がなく、同様の機能はオーバーロードを使って表現するみたいですが、
これって冗長じゃないですか?いくつも同じ名前のメソッドが増えてなんだか回りくどいような気がします。
Pythonだとデフォルト引数、名前付き引数がサポートされてるので、
それに慣れていたせいもあってかいまいち理解できません。
オーバーロードの方が優れている点ってあるのでしょうか?
それとも、そもそもデフォルト引数を使うような事自体が珍しいんでしょうか。

303:デフォルトの名無しさん
09/03/22 11:17:12
デフォルト引数をまとめたクラスを一個作ればいいだけだからねえ

304:デフォルトの名無しさん
09/03/22 11:58:12
>>302
4.0からデフォルト引数と名前付き引数に対応するよ

305:デフォルトの名無しさん
09/03/22 13:59:30
相談室スレから誘導されてきました。いまさらだけどあっちのソースだいぶまちがってる・・・。

今ラジアンで角度を処理するクラスを作っているのですが、次のような動作をさせたいんです
1.値を代入したときは値を正規化してからいれる(負値だったら正値に、2π以上だったら2πで剰余算)
2.値を参照するときはそのまま参照
3.floatと同じように扱える
プロパティを使って実装すると次のようになりますが
  class RegularizedAngle
  {
    private float InAngle;
    public float Angle
    {
      get { return Angle; }
      set
       {
         //Angleが負値だったら正値に
         if (value < 0) Angle = (float)(Math.PI * 2f) + Angle;
         //valueが2π以上だったら2πで剰余算
         Angle = value % (float)(Math.PI * 2f);
       }
    }
  }
これを普通のfloatと同じように扱いたいんです。たとえば・・・

RegularizedAngle Ang = (float)(Math.PI * 2f);   //すなわち6.28・・・の代入
Ang += 1;                         //代入したとき内部で正規化がおこなわれて1になる。
Ang += Ang;                       //これで2になる?

こんなかんじで見た目を組み込み型みたいにしたいんです。
しかし上記のプロパティをつかった方法だとアクセスするときに
Ang.Angle としなければなりませんし、宣言するときにはnewが必要です
組み込み型を継承したクラスを作ればよいのでしょうか・・・?

306:デフォルトの名無しさん
09/03/22 14:04:08
URLリンク(msdn.microsoft.com)

現在↑のページの
1.3 Visual C# による実践コンポーネント指向プログラミング
簡易ドローツールを作成しているところなのですが
手順通りに作成しても、ソースをコピーしても

 Windows Form Designer generated code

の部分でエラーを吐いてうまく作成ができません
これを解決する為のお知恵をお貸しいただけないでしょうか
お願いいたします。

307:デフォルトの名無しさん
09/03/22 14:08:45
>>306
//Windows Form Designer generated code
とコメントアウトすればいいのかな?


308:デフォルトの名無しさん
09/03/22 14:18:32
>>307
いえ、そうしてもエラーが増えるばかりで、そうしていいやら・・

309:デフォルトの名無しさん
09/03/22 14:25:03
>>308
VS2002/2003の頃の記事だから、percial class じゃないんだな。

そこはおそらく、これだ。画面は自分で準備しろということじゃないかな。
#region Windows Form Designer generated code
・・・・
#end region

をIDE上で閉じてるイメージ。

310:デフォルトの名無しさん
09/03/22 14:29:20
>>305
演算子オーバーロードしまくれば大体望みの動作になると思うよ
でも普通にプロパティアクセスする方が分かりやすいよ

311:デフォルトの名無しさん
09/03/22 14:29:43
>>306
それは手順通りではないでしょ。
追加するのは、イベントハンドラの部分。

312:デフォルトの名無しさん
09/03/22 14:30:13
>>302
デフォルト引数の値を変更したとき、
利用者側の再コンパイルが必要って言うデメリットもあるから今まで対応してこなかった。
さすがに開発者からの要望に折れて、4.0で実装。


313:デフォルトの名無しさん
09/03/22 14:32:21
>>309
レスありがとうございます
「pertial識別子が型hにありません。この型に別のpartial宣言が(ry」
までたどり着けました

314:デフォルトの名無しさん
09/03/22 14:33:15
.>>310
あんまり賢い方法ではないってことですね・・・。
プロパティで実装してみます。ありがとうございました。

315:デフォルトの名無しさん
09/03/22 14:35:48
>>313
駄目だこりゃ。
どうしてもこの教材である必要がなければ、他のあたって。

316:デフォルトの名無しさん
09/03/22 14:38:41
>>315
私が根本的に勘違いしているみたいですね・・・
すみませんとりあえず他のをあたります

317:315
09/03/22 14:42:35
うん
Form1.Designer.csの内容をこのサンプルから省いて、
Form1.csに追加が必要なメンバ変数とイベントハンドラの記述をすれば
動くので、原理的に難しい話では全くないんだけど、
それができる人は、そもそもこのチュートリアルをやる必要がありません。

318:デフォルトの名無しさん
09/03/22 14:45:51
>>305
普通に演算子オーバーロードすれば良いと思う。
newでインスタンス作りたくなければ、構造体にすればいい。
けど、フィールドの初期化しなきゃいけないので、宣言だけはnewで我慢かなぁ

319:デフォルトの名無しさん
09/03/22 14:50:26
>>314
floatと完全互換ならこの程度で済みそうだけど、複雑になるとoverloadの山になるな。
struct RegularizedAngle {
 float inAngle;
 public RegularizedAngle(float f) { inAngle = f; }
 public float Angle { 
   get { return inAngle; } 
   set { inAngle = value; } // いろいろ省略
 }
 public static implicit operator RegularizedAngle(float f) {
     return new RegularizedAngle(f); 
 }
 public static implicit operator RegularizedAngle(double f) {
     return (RegularizedAngle) (float) f;
 }
 public static implicit operator float(RegularizedAngle ra) {
     return ra.Angle;
 }
 public override string ToString() { return Angle.ToString(); }
}
--
static void Main() {
    RegularizedAngle x1 = 12.3;
    RegularizedAngle x2 = 10;
    float f = x1 * 3;
    RegularizedAngle x3 = x1 * x2;


320:デフォルトの名無しさん
09/03/22 15:01:40
>>319
ちびっと訂正
>public RegularizedAngle(float f) { inAngle = f; } 
public RegularizedAngle(float f) { inAngle = 0; Angle = f; }


321:デフォルトの名無しさん
09/03/22 15:46:43
なんかlinqを使うより、IEnumerable<>のSelect<>メソッドやWhere<>メソッドを使ったほうが
わかりやすい気がするのはなぜですか?
linqtがfromから始まるのが気持ち悪いからですか?

322:デフォルトの名無しさん
09/03/22 15:46:54
>>319-320
ありがとうございます。参考になります。
しかし完全に理解するのは難しそうですね・・・。
それの上にさらに正規化処理を入れなければならないのですよね・・・。

323:デフォルトの名無しさん
09/03/22 16:01:10
>>321
クエリ式が分かりにくいと感じるなら拡張メソッドでLINQやればいい
fromからなのはインテリセンス効かせるため

324:デフォルトの名無しさん
09/03/22 16:02:59
>>321
それもLINQ

325:デフォルトの名無しさん
09/03/22 16:08:46
クエリ式なんかただのSQLっぽく見せるためのプリプロセッサなんだから
SQL大好き人間以外は使う必要の無いものだよ
SQL大好き人間でも最終的には拡張メソッドに適応すべきだろう

326:デフォルトの名無しさん
09/03/22 16:30:24
LINQってなんて読むの?ラインクエリ?

327:デフォルトの名無しさん
09/03/22 16:37:16
なるほど、そんなもんなんだ
機能としては、ADO.NETのDataTable.Select();が、より簡単に使えるようになりました的な感じなのね
メモリ上にデータをもって検索するとか、xmlから検索するとかに便利そうね

つか配列を検索しやすくしましたって感じ?
データベースから引っ張ってくるのは結果セットだけ取得して、
それを単に表示させるだけのほうが再計算入るよりパフォーマンスがよさそうなんだがそのあたりはどうなんだろう

328:デフォルトの名無しさん
09/03/22 16:44:47
LINQをSQLに使えばSQL文が生成され
データベースに問い合わせされ結果セットだけが取得されるんだよ

329:デフォルトの名無しさん
09/03/22 16:59:20
>>325
letとか多重from使おうとするとメソッド形式ではちと厳しい。

>>326
リンク。
linkと同じ音で読めってさ。



330:デフォルトの名無しさん
09/03/22 17:05:29
へー、その場で動的にクエリを生成してくれるのね
難しい処理はストアドに記述してしまうし、
ある程度の決まった処理ならxsdファイルのDataSetに記述したほうが楽そうだけど、
DataSetでは、where文を動的に生成することができなかったから、
それが簡単に記述できるようになるのなら確かに便利かもしれん

331:デフォルトの名無しさん
09/03/22 17:28:33
ボタンを押したらtextBoxのフォントサイズを
変えようとしてるのですが

iの中にはint で18 が入ってる

textBox1.Font.Size = i.ToString();

でどうもうまくいきません、どう記述したらよいでしょうか?

332:デフォルトの名無しさん
09/03/22 17:32:38
ReadOnleyプロパティだからそれ。

333:デフォルトの名無しさん
09/03/22 17:34:19
やどりぎ+どくどく

334:デフォルトの名無しさん
09/03/22 17:35:31
>>333
すいません、ありがとうございます、リッチテクストでも同じでしょうか?

335:デフォルトの名無しさん
09/03/22 19:39:34
EnterpriseLibrary4.1の使い方が全く分かりません・・・
ダウンロードしてインストールして・・・
そこからどうすればいいのか・・・

336:デフォルトの名無しさん
09/03/22 20:42:35
文字列から数字取り出すのってどうやったら良いですか?1 2でなく12 3 434とかで 

337:デフォルトの名無しさん
09/03/22 20:51:11
>>336
new Regex(@"\d+").Match(str);


338:デフォルトの名無しさん
09/03/22 20:53:46
ありがとうございますた

339:デフォルトの名無しさん
09/03/22 22:01:47
linq試してみました
簡単にsqlが取得できるのはすごいね
ただアドホッククエリは今までと同じようにEntitySQLとか使って取得するのね
結局は型無しになってしまうし・・・

簡単にクエリ書けるのはいいけど、ソースコードの中でばんばん書けてしまうと、
mvcモデルの原則に反するんじゃないのかな?
普通に使用するなら型付きDataSetのほうが楽でわかりやすい気がするんだけど、
そうなるとLinqToEntitiesを導入する最大の利点ってなんなんだろう・・・
DBデータの取得、更新を行う再利用可能なクラス(Model)が作りやすいってことなのかな?

340:デフォルトの名無しさん
09/03/22 22:23:24
モデルの中にかけばいいんじゃねーの?

341:デフォルトの名無しさん
09/03/22 23:26:37
>>339
ビジネスロジック層とデータ層の間を繋ぐもの的な位置づけ。

342:デフォルトの名無しさん
09/03/23 01:08:46
C++/CLI から来ました。方向性が間違ってたらすみません。
>>305
class RegularizedAngle {
  private float InAngle;

  public float Angle {
    get {
      return this.InAngle;
    }
    set {
      if (value <= 0.0) // valueが負値だったら正値にする正規化
        this.InAngle = value + (int)(value / (Math.PI*2.0f) + 1.0) * Math.PI*2.0f;
      else // valueが正値だったら2πで剰余算する正規化
        this.InAngle = value - (int)(value / (Math.PI*2.0f)) * Math.PI*2.0f;
    }
  }
}

343:305
09/03/23 02:13:02
>>342 ありがとうございます。処理を見直した結果-3.14〜+3.14までを格納するように改めました。
  //角度を格納するが強制的に正規化される型
  //doubleとしてアクセスできる
  public class RegularizedAngle
  {
    private double InAngle;
    public RegularizedAngle()
    {
      InAngle = 0;
    }
    public RegularizedAngle(double i)
    {
      InAngle = 0;
      Angle = i;
    }
    public double Degree
    {
      get { return StgUtil.RadToDeg(InAngle); }
      set { Angle = StgUtil.DegToRad(value); }
    }
    private double Angle
    {
      get { return InAngle; }
      set
      {
        //6.28以上だったら6.28で剰余算
        if (value > StgUtil.PIx2) value %= StgUtil.PIx2;
        InAngle = value;
      }
    }

344:デフォルトの名無しさん
09/03/23 02:16:15
    //lはrより左方向
    public static bool operator >(double l, RegularizedAngle r)
    { return AngCheck(l, r.Angle); }
    public static bool operator >(RegularizedAngle l, double r)
    { return AngCheck(l.Angle, r); }
    public static bool operator >(RegularizedAngle l, RegularizedAngle r)
    { return AngCheck(l.Angle, r.Angle); }
    //lはrより右方向
    public static bool operator <(double l, RegularizedAngle r)
    { return !AngCheck(l, r.Angle); }
    public static bool operator <(RegularizedAngle l, double r)
    { return !AngCheck(l.Angle, r); }
    public static bool operator <(RegularizedAngle l, RegularizedAngle r)
    { return !AngCheck(l.Angle, r.Angle); }
    //lから右回りと左回り、どっちがrへの移動量がすくない?
    private static bool AngCheck(double l, double r)
    { return (l + r >= 0); }    //ここの処理をなんて書いていいのかわかりません。。。

    //doubleを代入された場合
    public static implicit operator RegularizedAngle(double f)
    { return new RegularizedAngle(f); }
    //doubleを代入された場合
    //doubleとして参照された場合
    //演算子の動作もdoubleに準拠
    public static implicit operator double(RegularizedAngle l)
    { return l.InAngle; }

    public override string ToString()
    { return Angle.ToString(); }
  }
ぐぐってみるとY座標から右回り左回りを算出するという手段がありました。おそらく0度が真右になるからできるんだと思いますが、
このクラスは角度だけを扱いたいので角度(ラジアン)だけから算出したいのです。何か良い方法があったらどうかお教えください。

345:デフォルトの名無しさん
09/03/23 11:08:45
C#はじめて2Weekの新参者ですが教えてください
サーバーエクスプローラからTBを選択してForm上にDRAG&DROPすると
oleDbDataAdapter1が作成されるのですが、同じmdbの別TBを
DRAG&DROPすると別のoleDbDataAdapter2が作られるのですが、
二つのoleDbDataAdapterを作成しなければいけないのでしょうか?
oleDbDataAdapter1だけにはできないんでしょうか?
C#2003です、よろしくお願いします

346:デフォルトの名無しさん
09/03/23 11:33:11
嫌です

347:デフォルトの名無しさん
09/03/23 12:42:50
同意

348:デフォルトの名無しさん
09/03/23 17:56:52
御意

349:デフォルトの名無しさん
09/03/23 18:22:15
ザムディン

350:デフォルトの名無しさん
09/03/23 19:36:18
質問です。
System.Windows.Forms.Formクラスの
FormBorderStyleプロパティをNoneにし、
WindowStateをMaximizedにすると
タスクバーがフォームに隠れてしまうのは仕様ですか?
またFormBorderStyleをNoneにしたまま
これを回避する方法はどなたかご存知ですか?

351:デフォルトの名無しさん
09/03/23 20:39:37
仕様じゃないですかね
とりあえずスクリーンのWorkingAreaを
MaximizedBoundsに設定したらいいんじゃない?


352:デフォルトの名無しさん
09/03/23 20:56:08
System.Windows.Forms.Screen
から作業領域取得して設定

353:350
09/03/23 21:37:29
this.MaximizedBounds = Screen.GetWorkingArea(this);
で修正できました。
ありがとうございます。

354:デフォルトの名無しさん
09/03/24 16:25:49
a += b * c;
はb*cの結果とaを足してくれるんですか?

355:デフォルトの名無しさん
09/03/24 16:31:41
それくらい試せよ

356:デフォルトの名無しさん
09/03/24 16:32:23
>>354
試してみればいい。

357:デフォルトの名無しさん
09/03/24 17:46:10
なるほど
ありがとうございました

358:デフォルトの名無しさん
09/03/24 17:57:07
a += b * c;

a = a + (b * c);
だけど
a += b + c;

a = (a + b) + c;
足し算だから結果は変わらない
これは試してわかるようなレベルじゃない


359:デフォルトの名無しさん
09/03/24 18:02:19
結合法則考えればすぐ分かるだろ

360:デフォルトの名無しさん
09/03/24 18:05:05
a * = b + c
は?

361:デフォルトの名無しさん
09/03/24 18:07:48
a = a * (b + c)

362:デフォルトの名無しさん
09/03/24 18:10:05
演算子の優先順位なんて基礎だろ基礎
MSDNで「C# の演算子」調べろよ

363:デフォルトの名無しさん
09/03/24 18:16:51
うそばっかりだなこの擦れ

364:デフォルトの名無しさん
09/03/24 18:25:10
if(!>>1-362)
{
Console.WriteLine(>>363);
}



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5255日前に更新/200 KB
担当:undef