[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/06 12:24 / Filesize : 269 KB / Number-of Response : 1039
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 20:50:08.06 ID:IGV3Viy6.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1436344868/

■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1443271409/

■コードを貼る場合は↓を使いましょう。
ideone.com/

528 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 06:18:48.27 ID:K38GcwBv.net]
>>463
自己解決しました
if (toolStrip1.OverflowButton.Visible)
{
toolStrip1.Width = toolStrip1.Width - toolStrip1.OverflowButton.Width - toolStrip1.OverflowButton.Margin.Horizontal;
}
でうまく行きました。

529 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 07:45:31.68 ID:jIDLqNeP.net]
googleで調べないからウゼーじゃなくて
かまってちゃんウゼェーなんだけどな
キチガイ回答者死ねと同じ理由で、どっか行きやがれって事だ
同一人物の自演くせぇけどw

530 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 11:09:13.20 ID:/Om+5HJh.net]
>>516
なんか、精神レベル14歳だな。
別にそれでも知ったことじゃないけど、わざわざこんなところで開陳して嬉しいのか?

531 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 11:58:16.38 ID:jIDLqNeP.net]
話の流れ無視して自分のしゃべりたい事ばかり回答する
強引に話題を正しい方向にもっていったら、頭おかしい初心者が現れる
この掲示板は以下それがずっとループしている、同一人物以外には見えない
本物の初心者が来たとき間違って叩いて掲示板が荒れると具合が悪いからとっとと死んでくださいって感じだね

532 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 14:57:34.97 ID:lyk3EOWa.net]
久しぶりにmsdnでクラスのドキュメント見てると
えらい見づらくなってる ていうか、バグってる

なんで、IEで表示して、重なって表示してまともに操作できないのか理解できない

一番 右に表示されるべき 「解決策はありますか」等が左に重なって表示されてて
まともに、クリックにも反応しないし
 

533 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 15:00:31.80 ID:9+4jFg/5.net]
プログラマがIEなんか使うな
IEはテストのときだけ使うもんだ

534 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 15:15:44.14 ID:lyk3EOWa.net]
いや、余計なソフトインストールしたくないし

しかし、最近IE使って、スクリプトエラーでHP見れなかったりいいことないわ
(Webサイトのせいにしてるけど、他のブラウザなら見れるだろうしw)

MSの本気が見たい

535 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 16:23:32.54 ID:ysex+PeP.net]
IE11で普通に見れるが

IE8使ってるならご愁傷様

536 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 17:05:07.62 ID:lyk3EOWa.net]
IE11なんだけど
互換性表示にしてみたけど、変わらず

なんかの設定があるのかな?
ともあれいろいろ試してみます



537 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 17:40:45.22 ID:lyk3EOWa.net]
原因判明
拡張保護モードに

538 名前:よるものだった

msdnの表示も、HPが見れない件も(Web サイトに問題が発生したため…)
拡張保護モードはそのままで、信頼済みサイトの登録したら両方とも治った

>>522さんのおかげだね あと、スレチ悪かった
[]
[ここ壊れてます]

539 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 20:30:30.83 ID:6BSNMQg5.net]
昔のHelpViewerみたいなのはもうないのかね
ローカルにヘルプインストールするやつさ

540 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:09:41.05 ID:lyk3EOWa.net]
ホントそう 10Gぐらいあったけど
今のmsdnに比べれば天国

541 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:20:07.89 ID:KsZtwWae.net]
>>525
ヘルプ→ヘルプ設定の変更→ヘルプビューアーで起動
メニューぐらいしっかり見よう

542 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:20:21.31 ID:i/oY4D53.net]
https://msdn.microsoft.com/ja-jp/library/e2h7fzkw.aspx
オフラインのヘルプ コンテンツをインストールする
Visual Studio をインストールした後、オフラインで使用できるように、
追加のヘルプ コンテンツをダウンロードすることができます。

目が節穴なのか、
目のドライバをインストールするのを忘れているのか、
頭のサポートが切れているのか

543 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:23:00.50 ID:6BSNMQg5.net]
>>527
>>528

おー
機能2015インスコしたばっかだったので


544 名前:助かりましたわー []
[ここ壊れてます]

545 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:23:06.26 ID:5XQF34dG.net]
「インターネットで正しい答えを得る最良の方法」を実行したにすぎない。
現に成功している。

546 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:33:44.76 ID:6BSNMQg5.net]
いけずおっしゃらんと。
だけどダウンロード速度おっそ! 



547 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 22:42:45.43 ID:oXEakMpl.net]
>>497
おっしゃるように、C#ではなくVBでした。勘違いしてしまって誠に申し訳ありません。

.resxのほうは、「リソースの追加」をすることで.resxファイルが書き換えられることはわかりました。
でもいくらフォームにコントロールに追加してそのプロパティを変えても、
.resxの内容は書き換わりません…。どういうことなのでしょうか?

548 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 22:47:53.10 ID:oXEakMpl.net]
>>500
丁寧に教えていただきありがとうございます。
まさか既にデコンパイラプログラムがパソコン内に入っているとは思いませんでした。
これからはildasm.exeでILを読むことにします。

549 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 09:42:13.71 ID:Lrk43gML.net]
>>532
そういうのは*.designer.csのInitializeComponentの中に書かれる

550 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 11:55:19.90 ID:zP0KaUIs.net]
IL読んでも全く理解できなそう

551 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 12:03:03.87 ID:VtUJC+iX.net]
初心者って知らなくても良い(その時点で到底理解できないこと)までやろうとするよなw
.resxは、リソース(画像とか音声・テキストデータ)関係のファイルでVSが自動生成しているんだが、別に中身がどうとか気にする必要はない。
そういうのを真剣に気にして終いには、ILを読むとかわけのわからないことに手を出そうとする。

552 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 12:34:16.13 ID:56qTwYt/.net]
doubleをdblと省略する表記方法はありますか?

553 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 12:35:33.64 ID:iiu9ggf5.net]
100MB程度のテキストファイル整形して読みたいのですがWebBrowserではちょっと重過ぎます
分割で読み込めればいいのですがいい方法ありませんか?

554 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 14:08:45.19 ID:zP0KaUIs.net]
exeファイルがILだからILを読むとかプログラミング言語の存在理由を理解してなさそう
コンピュータは全部機械語での動作だから機械語の勉強した方がいいと思うよ

555 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 14:33:19.93 ID:HNCOBt+u.net]
皆様に不快な思いをさせて申し訳ありません。

リソースファイルについてですが、Lockedプロパティの値を変えたときにリソースファイルが書き換えられました。
どうやら、コントロールが持てない情報はリソースファイルが利用されるみたいです。
>>497さんの言っていることが分かりました。

お答えいただいた方々には本当に感謝しています。ありがとうございます。

また一つ疑問が生まれたので質問いたします。

var table = new DataTable();
...
table.Rows.Where(...

このように記述したとき、RowsにはWhereメソッドがないとIDEに怒られます。
DataRowCollectionクラスはIEnumerableインターフェースを実装しているのに、なぜWhereメソッドが使えないのでしょうか?

556 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 14:41:50.95 ID:VtUJC+iX.net]
Whereが必要としているのは、IEnumerableではなく、IEnumerable<T>だから



557 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:08:20.36 ID:wuOw+s8i.net]
日本語解説サイト少ないね。最新の情報知るには海外サイト見ていくしかないのか

558 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:17:21.05 ID:VtUJC+iX.net]
日本語の解説サイトなんて、2008年ぐらいのまま止まってるのばかりだろ。

559 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:19:13.97 ID:nnAxfjVL.net]
C#とmysqlでアプリ作っていてるけどサーバーが外部でセキュリティ的に心配なので
すくなくてもSSLで接続したいのだが、mysqlサーバ側のsslを有効にする方法が見つかるのだけど
visualstudio側でデータソースに設定したいときにどうしたよいかの手段が見つからない
C# mysql ssl あたりでぐぐってもこれといって方法が見つから

560 名前:ないのだけど、
なにかヒントになるものがあればアドバイスください
[]
[ここ壊れてます]

561 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:58:17.90 ID:UfQouXyC.net]
>>537
using dbl = System.Double;

でもこんなことすんなアホって絶対言われる
自分も絶対後悔する

562 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:59:19.49 ID:6ritcPOX.net]
今はどうやってつないでんの?
MySQL Connector/Net の場合ならここでなんとかならんかね
https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl.html

563 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 18:06:03.76 ID:6ritcPOX.net]
sshのが楽とは思うし、サーバ側で完結させてデータだけSSLでRESTfullとかでやるのもいいかと

564 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 18:29:46.19 ID:VtUJC+iX.net]
>>545
>>537
意味不明に略したら自分も他人もわからなくなるから、略してはいけない。
誰もが知ってるような単語は、略式を使う。

565 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 18:44:00.86 ID:/yUCkyPR.net]
間違いさえなければ別にforだろうがforeachだろうが好きなの使え派だったけど、他人のfor文終了条件ミスで半日潰したりすると流石に撲滅したくなるね
つーか皆いい加減LINQ使おうよ・・・

566 名前:デフォルトの名無しさん [2015/11/03(火) 19:27:35.29 ID:LOZNcNC7.net]
>>549
自分はLINK禁止にされたから辛かった。



567 名前:デフォルトの名無しさん [2015/11/03(火) 19:28:02.46 ID:LOZNcNC7.net]
間違ったLINQだな。

568 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:39:28.03 ID:VtUJC+iX.net]
LINQってそんなに難しいか?
むしろ、forとかwhile使うよりわかりやすいと思うんだが…

569 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:40:37.51 ID:RYOZjHqX.net]
LINQってforやwhileの代わりに使うものだったか?

570 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:47:07.94 ID:CJf+XPA2.net]
C#のlambdaは関数型から来た人が使うものであって
命令型の延長から来た人には理解できん類のもの
実際C#のlambdaシンタックスは初見からするとノイズが多すぎて、理解できないだろう

オブジェクト指向なのになんでここまで関数がでしゃばるのか
述語デリゲートが、なぜ普通のbooleanでダメなの?
っていらん疑問ばかりついてまわる

571 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:51:39.65 ID:UfQouXyC.net]
ラムダ式とLINQは関係ない

572 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:57:46.67 ID:Lrk43gML.net]
LINQアレルギーな奴ってろくに使ってないだけだから
そこにラムダ絡めちゃってさらに異質なもの認定してるだけ

573 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:05:19.20 ID:56qTwYt/.net]
>>545
ありがとうございました。

574 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:07:11.40 ID:sXl2Uj86.net]
すいません質問なんですけど
ほかのアプリのクライアント領域を取得したいんですが

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);

こっちを使うとそれっぽい値がはいってるんですが

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);

こっちを使うと 座標(0,0) しか入ってないんですよね…
原因に心当たりのある人いらっしゃいませんか?
よろしくお願いします

575 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:18:09.71 ID:QAKXUKz2.net]
C#の拡張の歴史をみると >>554 の人が誤解していると思われる

実はLINQとラムダ式は大いに関係がある、式ツリーの実装のために作られたようなものだし
それがなければ、無名デリゲートで十分だった
むしろラムダ型という用語にも関わらず関数型とは関係はなくはないが実質関係無いという印象
関数型が好きな人は、C#におけるこの用語は勘違いしやすいかもしれない

まぁ、哲学的に考えればの話だけど

576 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:25:04.88 ID:UfQouXyC.net]
>>558
クライアント矩形だから位置は(0,0)に決まってますねー

親ウィンドウに対する相対位置を知りたいなら
GetWindowRectしてからMapWindowRectしないとー



577 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:30:37.38 ID:sXl2Uj86.net]
すばやい返事ありがとうございます
Mapの仕方がよくわからないんですけど
とりあえず単独で使うだけではだめなんですね
もう少し調べてみます
ありがとうございました

578 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:30:43.03 ID:UfQouXyC.net]
LINQなんて最初はコレクションに対する便利機能てんこ盛りの拡張メソッドという認識でOKじゃね?
罠とかあるから習熟してから突っ込んで考えればいいんであってー

579 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:32:31.59 ID:VtUJC+iX.net]
いちいち、delegate() { return x * 2; } とか書いてられないから、() => x * 2 のように簡潔に書けるようになったのではないか。
式ツリーのラムダ式とLINQのWhereとかで使われるラムダ式は、別物だと思う。
ラムダとか言ってるけど、所詮、デリゲートだし、シグネチャさえあえばメソッドを渡すこともできる。
() => x * 2 こういう表記の仕方をラムダ式と呼んでる程度でしかない。

580 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:53:44.50 ID:QAKXUKz2.net]
>>563
内部的な型が違うんだよ int a; の a と 3 はどちらもint型だが、後者には定数という属性も内部的には付与されている
コンパイラを作る側の人は意識しているが、使う側の人には意識させないように作られている
ある種の自動変換が入っているんだ
ラムダ式をデリゲートとしてしようしようとすると、自動的にラムダ式についているCompile()メソッドが発動してデリゲート型に変換してしまう

581 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:54:59.02 ID:HNCOBt+u.net]
>>541
ありがとうございます。解決しました。
しかし、なぜDataRowCollectionクラスがIEnumerable<DataRow>の実装でないのか疑問ではあります。
まあ歴史的な理由だとは思いますが…。
(例えばDataRowCollectionクラス実装時はジェネリックという概念がなかったとか…)

582 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:56:16.62 ID:56qTwYt/.net]
asp.netで
DataTable dt = new DataTable();
GridView1.DataSource = dt;
とやって、2次元のテーブルの中身をグリッドビューにEXCELの画面みたいに
出しているのですが、セルの中で改行させる方法が分かれば教えて下さい。

583 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:59:48.89 ID:QAKXUKz2.net]
DataSetクラスはジェネリックスの無かった.NET1.0の頃からあるからね
ジェネリックのDataSet欲しいね・・・

584 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:10:25.83 ID:VtUJC+iX.net]
>>565
ジェネリックができたのは、.NET 2.0。それ以前は、ジェネリックそのものがなかった。
DataRowCollectionあたりができたのは、.net 1.0だから当然、ジェネリックではない。
後からがIEnumerable<DataRow>ぐらい付け足せるだろうと思うかも知れないが、既存の古いコードを破壊しかねないという危険性がある。
非ジェネリックなものは、rows.OfType<DataRow>() でがIEnumerable<DataRow>に変換して利用するのが吉だろう。

585 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:25:41.32 ID:Q+Hc78/A.net]
ideone.com/DfxBRT
すみません...
このプログラミングの実行順序?というか解説を
お願い致します..

586 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:32:28.64 ID:VtUJC+iX.net]
>>569
断る。スレタイの言語名1000回読んで出直してこい。



587 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:36:42.56 ID:Q+Hc78/A.net]
あ、Cじゃないスレでしたね
すみませんでした

588 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:37:56.39 ID:Qi78cw7w.net]
どうでもいいけどヘタクソなサンプルだなあ
これ見て再帰スゴイとか思う学生がいるとは思えない

589 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:41:06.36 ID:QAKXUKz2.net]
キチガイ回答者のかまってちゃん発動かいな
死んでおけ

590 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:42:15.24 ]
[ここ壊れてます]

591 名前: ID:Q+Hc78/A.net mailto: >>572
この例を見ても再帰がよく分かりません...
[]
[ここ壊れてます]

592 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 22:07:18.95 ID:UfQouXyC.net]
aより前の文字コードがきたらどうすんだろ

593 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 22:40:42.74 ID:UVzGbDip.net]
サンプルなんだから特定の条件下で動けばいいんだろ。
この程度は自分なりにでも解析をしてから分からないところだけを質問して欲しいがな。

594 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 22:42:31.39 ID:/yUCkyPR.net]
DataTableExtensionsでいいんじゃね?

595 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 22:45:40.69 ID:6rpVQh8a.net]
超初歩的な質問ですみません

インターフェイスクラスを実装した構造体クラスがあって、その構造体クラスのインスタンスをあるメソッドに渡すとします。
そのメソッドの仮引数の型はインターフェイスクラスにしておきます。

このときに、メソッドの仮引数が値渡しであればコンパイルエラーとならないのに、参照渡しにするとエラーとなる理由はなぜなのでしょうか?

596 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 23:10:16.20 ID:ExWVN0qD.net]
>>578
構造体なのかクラスなのかはっきりせい



597 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 23:15:59.04 ID:WQByrXLp.net]
何言ってるかさっぱり分からん

598 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 23:17:05.85 ID:JipnsoZF.net]
>>578
参照渡しはメソッド側で引数に値を代入して書き換えできる
同じインターフェイスを実装した別の型の値を代入される可能性がある
また、値型をインターフェイスにキャストするにはボックス化が必要なのでコピーが発生するから参照渡しは不可
インターフェイス通したいならジェネリックのwhere使う

599 名前:578 mailto:sage [2015/11/05(木) 23:56:44.30 ID:6rpVQh8a.net]
>>579
すみません、構造体です。
まだあやふやな理解で申し訳ないです。

>>581
ボックス化というのがいまいちわかっていないですが、
値型を参照渡ししようとしてもコピーしないと出来ないということですか?

ジェネリックとは?ちょっと調べてみます。
ありがとうございます。

600 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 00:22:51.45 ID:v3nYR+i3.net]
intを渡すとして、

不可 → void Hoge(ref IComparable<int> cmp){}

可 → void Hoge<T>(ref T cmp) where T : IComparable<int>{}

601 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 00:31:22.76 ID:dWA72Rvv.net]
>>582
構造体(struct)にもインターフェースは、指定可能。
すべての型は、object型として扱えるため、object型に代入可能で、構造体(値型)も当然、objectとして扱える。
object型というのは、言い換えればobjectクラスなので、objectは、参照型。

構造体など値型を参照型として扱うとき必要なのがボックス化と呼ばれるもの。
また、インターフェースも参照型なので、インターフェースとして受けてしまうとボックス化が発生する。

イメージ的には、 ボックス化されるとき、new object( 10 ) のような感じで値型をラップした新しいオブジェクトが作成されている。
void Foo( IHoge x ) のようなインターフェースを受け取るメソッドに値型を渡しても、Fooメソッドでは、別のオブジェクトになっているのでいくら書き換えたところで無意味。

値型でなく、最初からクラスとして作っておけば、そういう問題は起きないが構造体を使いたい場合、下記のように制約付きのジェネリックメソッドを使うと良い。

static void Foo<T>( ref T arg ) where T : IHoge {
arg.Value = 100;
}

こうすれば、ボックス化は、発生しないで、IHogeインターフェースのメンバーを呼び出すことが可能となる。
refは、参照渡しさせるために必要。

602 名前:578 mailto:sage [2015/11/06(金) 00:42:25.19 ID:pjudYN7I.net]
>>583-584
教えていただいた通りに修正したらエラー解消しました。

詳細な解説ありがとうございます。
納得できました。

603 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 09:12:45.36 ID:MQ0OQAyt.net]
1つのプロジェクトから2つ以上のアセンブリを出力するようにってできる?
こんな感じにA.csproj → A.x86.dll A.x64.dll

604 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 12:16:37.98 ID:955qm0wN.net]
プロジェクト構成を追加する

605 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 12:19:39.17 ID:dWA72Rvv.net]
Any CPUじゃダメなの?

606 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 15:32:24.63 ID:guayBMf4.net]
ダメだろ



607 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 15:39:55.16 ID:KrpwsfQj.net]
クラスライブラリプロジェクトでEntityFrameworkを利用する
メインのプロジェクトではEFに直接関わるようなコードは一切書いていないのに
エラーが出て、どうやらApp.configをクラスライブラリのそれと同じように書き
EFもインストールしないといけないみたいですがなぜですか?
メインのコンソールアプリでは、
ClassLibrary1.Run();
としか書いていないのに

608 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 16:20:31.16 ID:hUa1dWCf.net]
>>588-589
dllならAny CPUで良い気がするけどな

>>590
そのクラスライブラリがEF使ってるからだろ

609 名前:質問者 mailto:sage [2015/11/06(金) 19:15:27.36 ID:n93wU3zk.net]
public const string[] names = { "abe", "kume", "ume"};
は何故できないの?
C#っておかしい

610 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:45:53.50 ID:DdHE3j1N.net]
歴史のある言語だし、配列のconstを許すと何か不都合があるんじゃないかな
知らんけど

611 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:49:11.59 ID:JLRIGyKN.net]
一般的な業務システムにEF使うのってお前ら的にどう思う?

DB周りに中間テーブル勝手に作られたり
とかどうなんかなーって思うんだけど

612 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:49:47.56 ID:H8/mSBf4.net]
C#のconstはmutabilityを示す修飾子ではない
mutabilityはクラス特性の一つにすぎない

613 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:52:12.27 ID:O+3ivu6x.net]
>>594
テーブル管理をきっちりして、メンテナンスが面倒な糞長いクエリ作らないことさえ心がければ問題ないと思う
それが出来るなら何でもOKだろと言われたらそれまでだが

614 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:01:54.19 ID:hUa1dWCf.net]
>>594
コードファーストで、プログラマがモデル変更したらDBレイアウト変わるとか
DB層とアプリ層と分離するような業務システムだとあり得ん

EFはコードファーストしかないわけじゃないけど
最近、既存DBからコードファーストとかいうわけわからんオプションも追加されたけど
EDM作らんで良いし、マッピングの自由度上がるから、これが結構いい感じだぞ
俺はこれをコードセカンドと呼ぶ事にしたw

615 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:02:50.21 ID:Vl4Fajoj.net]
構造体のconstもできないよね
あとIntPtr(これは仕方ないか)

616 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:04:07.68 ID:v3nYR+i3.net]
>>594
DBファーストなら中間テーブルは作られない(たぶん)
パフォーマンスに引っかからなければ採用していいと思う



617 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:07:22.09 ID:v3nYR+i3.net]
>>592
ミュータブルなら配列があれば許されたかもね…

618 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:11:37.63 ID:VIb2xLBB.net]
constはコンパイル時にリテラルを埋め込むからnewで生成するインスタンスはconstへ代入できない。

C#で配列を定数扱いしたければReadOnlyCollectionを使う。

619 名前:デフォルトの名無しさん [2015/11/06(金) 22:35:43.69 ID:ZOMBif/U.net]
readonlyにするとそのメンバの参照を変えることはできなくなりますが、そのメンバのメンバの値は変えれますよね?

そのメンバのメンバもreadonlyにすることはできないんですか?

620 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 22:45:54.70 ID:v3nYR+i3.net]
メンバをreadonlyプロパティにすればいい

コレクションならIReadOnly〜インターフェースがある

621 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:10:20.05 ID:lDi+bZZ1.net]
C#のmutabilityはクラス特性で備えるもので
修飾子で指定するものじゃないと言ってんだろ
理解力が不足しているのか?

622 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:18:27.60 ID:dWA72Rvv.net]
こんな感じでプロパティ作れば、初期化以外で変更できないようにできるけど…

shield class Hoge {
public int Property1 {
get;
} = 10;

public int Property2 {
get;
} = 20;
}

623 名前:デフォルトの名無しさん [2015/11/06(金) 23:25:34.03 ID:ZOMBif/U.net]
>>603
ありがとうございます。使ってみます。

>>604
ちょっと調べたけどよくわかりませんでした。
久しぶりに会った友達に、おめ

624 名前:ぇずいぶんとミュータブルなぁーって使う感じでしょうか? []
[ここ壊れてます]

625 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:28:23.63 ID:x7E/To5I.net]
>>605
もうちょっとこの構文は何とかならなかったのかと思うな…

626 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:42:18.13 ID:KrpwsfQj.net]
>>591
そこがよくわからないんです
クラスライブラリでしか使ってないEFが
なぜメインプロジェクトでもインストールして
App.configまで書き換えないといけないのか
例えば、zipライブラリやその他ライブラリを
ライブラリプロジェクトで使っていても
メインプロジェクトでそれらライブラリを参照しなくてもいけてます
同じように分離できないんでしょうか?



627 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:51:07.90 ID:MmN1hyKF.net]
>>604
その説明は、誤解を生みまくる
const言っているなら C++ のアレを意識しているんだろうから
C++のmutableとゴッチャになる

628 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:55:31.99 ID:MmN1hyKF.net]
Java全盛期の時代に、政治的な都合でJavaクローンとして生まれたC#ゆえ
書き換えに関する制御は基本的に期待しないほうが良い、というか諦めたほうが良いでしょう
当時constなど不要、高速化目的ならオプティマイザが頑張ればいいという考えが席巻していたから残念な事になってしまっている
目的は高速化じゃないといっても話聞きゃしない話聞かない回答者みたいなので一杯になってたからな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<269KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef