トップページ⇒tech
1002コメント306KB

ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しぃ♯2015/07/08(水) 17:41:08.86ID:rwtUEn+Z
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part115
http://peace.2ch.net/test/read.cgi/tech/1426669706/

■関連スレ
C#, C♯, C#相談室 Part87
http://peace.2ch.net/test/read.cgi/tech/1427558696/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
0002デフォルトの名無しさん2015/07/10(金) 19:05:32.17ID:9iV+XuX6
javaで自然数と0だけ扱える型があればな。。と思ってたけどc#ってuintとかあるんだ。
凄い。
0003デフォルトの名無しさん2015/07/10(金) 20:38:45.56ID:mg6PwCme
C#は符号なし整数あるけどbyte以外はパフォーマンス上の理由がある場合や
アンマネージコードとの相互運用くらいでしか使わないよ。
アプリケーションロジック上、負の値にならないことを保証するために
符号なし整数を使うことは基本的にない。
負の数入れるなとドキュメントに書いて引数はintにするのが普通。
0004デフォルトの名無しさん2015/07/10(金) 22:21:38.70ID:N+jVexiC
俺も何度もjavaで探したよ。
無いんだけどね、学んでるけど忘れてまた
無かったかな?って探すんだね
0005デフォルトの名無しさん2015/07/10(金) 22:36:41.82ID:9iV+XuX6
c#版DXライブラリで画像の大きさ取得できない?
DXアーカイブ使ってるから
new System.Drawing.Bitmap("ファイル名").Height;
が使えない。
ポインタ使えないからDX.GetGraphSizeもできないし。
0006デフォルトの名無しさん2015/07/11(土) 00:47:11.68ID:hyyuE4AB
>>5
outを使ったらできました。
0007デフォルトの名無しさん2015/07/11(土) 23:17:47.30ID:ApANrqY2
正直DXライブラリをC#でやるのおすすめしない
やるならせめてオブジェクト指向に合うようにラッパーを作れ
0008デフォルトの名無しさん2015/07/11(土) 23:36:15.80ID:4jCoPE+6
c#用のゲームライブラリは何がおすすめですか?
3D機能はいりません。
0009デフォルトの名無しさん2015/07/11(土) 23:36:52.78ID:6ws9vREv
unity
0010デフォルトの名無しさん2015/07/12(日) 00:17:05.14ID:hAS8tPRT
XNAかMonoGameでいいのでは
0011デフォルトの名無しさん2015/07/12(日) 00:21:39.61ID:+HVDChTi
XNAって開発環境まだ手にはいるん
0012デフォルトの名無しさん2015/07/12(日) 00:45:25.00ID:KOjB2nQF
x^n+y^m=z^r 解は存在するか.だれも解けないといわれたビール予想
解けた方だけどうぞ
ttp://blog.livedoor.jp/superprojectx/archives/1030198512.html
0013デフォルトの名無しさん2015/07/12(日) 01:19:07.94ID:hAS8tPRT
XNAの開発環境は手に入るよ
公式のSDKだとVisualStudio2010にしかインストールできないから
2013で開発するなら非公式で配布されてるアーカイブが必要だけど
検索すればすぐ出てくる
0014デフォルトの名無しさん2015/07/12(日) 05:48:22.60ID:kb28Yfhy
XNAなんて、そんな見捨てられた、先のないものにこだわっても

>>12
今日は暑くなってきっとうまい(ビール予想)
0015デフォルトの名無しさん2015/07/12(日) 14:17:22.84ID:EWba7vB6
株の売買シグナルを見るソフトを作ろうと思っているのですが
下記の様なcsvファイルを読み込んで1分間毎の始値、安値、高値、終値を集計しなおした
csvを出力させたいのですがどのようなコードを書けば良いのかよろしくお願いします

09:00:00,1830,188600
09:00:00,1831,200
09:01:01,1831,500
09:01:01,1828,200
09:01:01,1828,100
09:02:01,1827,100
09:02:02,1825,300
09:02:02,1826,100
09:02:02,1826,200
09:03:02,1826,100
09:03:02,1826,300
09:04:02,1825,300
09:04:02,1824,300
09:04:02,1824,100
09:05:02,1824,300
09:05:03,1822,100
09:05:03,1822,100
09:05:06,1822,100
09:06:07,1819,400
09:06:07,1819,100
09:07:07,1819,200
09:07:07,1819,200

左から時間,歩み値,出来高になっています
0016デフォルトの名無しさん2015/07/12(日) 14:43:57.66ID:lnmS7JaY
>>15
ふざけんなカス
0017デフォルトの名無しさん2015/07/12(日) 15:06:48.24ID:ET0tVWzl
その様なcsvファイルを読み込んで1分間毎の始値、安値、高値、終値を集計しなおしたcsvを出力するコードを書けばいいんじゃね
0018デフォルトの名無しさん2015/07/12(日) 15:09:54.75ID:SWRxOBkR
>>15
作りますよ、いくら出せますか?
0019デフォルトの名無しさん2015/07/12(日) 15:13:32.63ID:+HVDChTi
ゴミはゴミ箱へ
0020デフォルトの名無しさん2015/07/12(日) 15:41:30.55ID:EWba7vB6
>>16
あれ?ここ初心者スレじゃ・・・気分悪くしたのならごめんね
検索するワードのヒントだけでもお願いしますm(_ _)m

>>18
作ってもらえるならソフト一式お願いしたいです!
でも高そうですし仮に作ってもらっても、他に広められたらその手法が使えなくなるので無理・・・
0021デフォルトの名無しさん2015/07/12(日) 15:47:23.54ID:+HVDChTi
(;´Д`)y─┛~~
0022デフォルトの名無しさん2015/07/12(日) 15:49:58.92ID:AndYlWNb
var result =
from row in (
from line in File.ReadLines("xxx.csv")
let fields = line.Split(",")
select new { time = TimeSpan.Parse(fields[0]), value = int.Parse(fields[1]) }
)
group row by (int)row.time.TotalMinutes into gr
let values = (from r in gr select r.value)
select new { time = gr.First().time, start = gr.First().value, end = gr.Last().value, low = values.Min(), high = values.Max() };
using (var writer = new StreamWriter("yyy.csv"))
foreach (var r in result)
writer.WriteLine("{0},{1},{2},{3},{4}", r.time, r.start, r.end, r.low, r.high);
0023デフォルトの名無しさん2015/07/12(日) 15:56:26.41ID:EWba7vB6
>>22
うおぉ!マジかーー!!仕事はやっ!!
助かりました!ありがとうございますm(_ _)m
0024デフォルトの名無しさん2015/07/12(日) 16:20:02.21ID:FMfQ2GOU
>>22にそれなりの手間賃支払ってやれよw
0025デフォルトの名無しさん2015/07/12(日) 17:16:25.05ID:cBs8Qecg
すげーな
0026デフォルトの名無しさん2015/07/12(日) 17:52:54.46ID:FMfQ2GOU
メソッド呼び出しに最適化を期待できる方法ってある?

sealedクラスにしたら
「シール クラスは基底クラスとして使用できないので、実行時の最適化で、
シール クラス メンバーを多少高速に呼び出すことができる場合があります。」
とのことだけど他にある?

staticクラスにできた場合も「静的クラスはシールされるため、継承できません。」
とのことなんでシールといっしょの恩恵ありそうだけど
0027デフォルトの名無しさん2015/07/12(日) 18:10:14.85ID:+HVDChTi
MethodImplOptions.AggressiveInliningとか?
効果あるのか知らんけどな。
こういう小手先の最適化は好みじゃない。
0028デフォルトの名無しさん2015/07/12(日) 18:24:04.61ID:j235lmTt
関数の定義と実行ってどう書くんですか?
「関数 定義」で検索しても、全くヒットしない謎、、、。
0029デフォルトの名無しさん2015/07/12(日) 18:34:16.69ID:+HVDChTi
その「関数」は「メソッド」とは何か違うのか?
数学的な意味でなくC#のシンタックスとしての意味で
0030デフォルトの名無しさん2015/07/12(日) 18:38:36.11ID:yuK6+Ydc
>>29
言語仕様読んでから出直せ
0031デフォルトの名無しさん2015/07/12(日) 18:44:56.84ID:+HVDChTi
>>30
嫌だね
お前のようなチンカスに指図される覚えはない
0032デフォルトの名無しさん2015/07/12(日) 18:55:37.28ID:FMfQ2GOU
>>27
さっそくのレスとんくす!
ぐぐってみたらそれなりに効果確認してるページあった
今はまだそこまで必死になる状態じゃないんで
しばらくは胸にしまっとく…
0033デフォルトの名無しさん2015/07/12(日) 21:26:46.49ID:VJ3Pqi2h
>>29
メソッドはイントランスの操作など(例えば人クラスの食べるメソッドなど)
関数は値を受け取って処理して返したりする奴(例えば四捨五入関数など)
ただjava、c#ではクラスの中にしかメソッドを定義できないので四捨五入などはstaticメソッドで関数みたいに扱う。
0034デフォルトの名無しさん2015/07/12(日) 21:55:24.23ID:KGRzGr12
イントランス…?
0035デフォルトの名無しさん2015/07/12(日) 23:01:33.08ID:OHm99y2+
なんで>>28 >>29の流れで
いまさら>>33みたいなレベルのレスが書けるのか不思議
小学生かな?
0036デフォルトの名無しさん2015/07/12(日) 23:07:58.71ID:+qEa6t8o
>>29の質問が既に低レベルだから
レベル的には>>33は釣り合ってる
朝鮮人だろう
0037デフォルトの名無しさん2015/07/13(月) 00:19:38.26ID:Xq9er/eW
え?メソッドって関数のことでしょ
0038デフォルトの名無しさん2015/07/13(月) 00:30:49.39ID:uLJCs9jb
言語仕様読んで出直せ
0039デフォルトの名無しさん2015/07/13(月) 01:04:10.08ID:Xq9er/eW
知らなくたって大きく道を外れるわけじゃないしどうでもいいや
0040デフォルトの名無しさん2015/07/13(月) 01:47:02.76ID:yrOaPRcH
?
メソッドって関数の事ですよね?
0041デフォルトの名無しさん2015/07/13(月) 01:58:57.98ID:k/rHcB2b
簡単なことを難しい言い方にして賢いでしょ僕っていう例のアレだろ
0042デフォルトの名無しさん2015/07/13(月) 07:58:24.87ID:BW/OLtAF
言語仕様読んで出直せ
0043デフォルトの名無しさん2015/07/13(月) 12:24:04.44ID:Xq9er/eW
調べたら結局同じだったわ。死ね。
0044デフォルトの名無しさん2015/07/13(月) 12:59:47.39ID:SpMkIEn8
詭弁のガイドラインみたいな方法で煙に巻くクセなんとかならないんです?
0045デフォルトの名無しさん2015/07/13(月) 13:19:18.37ID:bmR5b7A0
29が「大雑把に言えばC言語の関数はC#じゃメソッドという」で解決なんだよな
そりゃ厳密に言えば色々あるけど、質問者がそんな説明を必要としていたとは思えん
0046デフォルトの名無しさん2015/07/13(月) 13:42:46.24ID:ImKr9T3l
??
0047デフォルトの名無しさん2015/07/13(月) 14:21:29.46ID:HlNV4jRz
言語仕様読んで出直せ
0048デフォルトの名無しさん2015/07/13(月) 15:05:03.92ID:k/rHcB2b
間違いに気づいたけど引っ込みつかなくなって何度も書き込むことで
嵐ですがなにか?
ってごまかそうとしてるようにしかみえん
0049デフォルトの名無しさん2015/07/13(月) 15:19:04.54ID:1yyH7Izp
言語仕様読んで出直せ
0050デフォルトの名無しさん2015/07/13(月) 15:34:27.59ID:yrOaPRcH
メソッドって関数の事?→言語仕様読んで出直せ

なにこのプロシージャルなメソッド
0051デフォルトの名無しさん2015/07/13(月) 15:50:52.93ID:dJKcFF/k
言語仕様読んで出直せ
0052デフォルトの名無しさん2015/07/13(月) 17:44:30.42ID:m2cmu0oY
>>48
もうほっとこうず
子供か池沼か朝鮮人なんやろ多分
0053デフォルトの名無しさん2015/07/13(月) 17:48:39.34ID:iRUjNu1L
読めば 関数≠メソッド であることはすぐわかるんだが
43みたいな嘘つきはどうしようもないな
0054デフォルトの名無しさん2015/07/13(月) 18:03:31.42ID:MTe2A89l
関数=Function
メソッド=Method
0055デフォルトの名無しさん2015/07/13(月) 18:29:50.01ID:Xq9er/eW
メソッドとはメンバ関数のことであり、インスタンス内部への有無を判断基準としている。
c#において、クラスを経由しないことはありえないので関数でもメソッドでもどっちでもいいです。
白黒つけたい気持ちは分かるけど、使い分ける必要性をまず話してくんないと話にならないよ?
0056デフォルトの名無しさん2015/07/13(月) 18:33:36.78ID:TYJgiNfb
もう言語仕様読んで全てを解決しようず
0057デフォルトの名無しさん2015/07/13(月) 18:59:39.37ID:6h04LXNs
言語仕様読めって言ってるやつは、ちゃんと自分で説明できないんだろ
せめて言語仕様のどことどこを読めば良いのかぐらい教えろや
0058デフォルトの名無しさん2015/07/13(月) 19:28:06.09ID:C9kBEM1U
なんかアホな話題が続いてるな。

まるで、例えばパスカルのプログラマが「Cの関数って手続きだよな?」って言いだして
それに対して別の馬鹿が「関数≠手続き。K&R読め」とか言ってるような類のアホなやり取りを聞いてるようだ。
0059デフォルトの名無しさん2015/07/13(月) 19:31:24.83ID:XAF6gLeJ
脳障害が足りない頭必死に捻って考えた例え話とか要らねえから
言語仕様読んで出直せ
0060デフォルトの名無しさん2015/07/13(月) 20:07:29.71ID:xAsPv9do
あーはいはい、関数な。
Funcデリゲートってのが用意されてる。
ラムダ式使って割り当てたらこう↓な。
Func<int, int, int> add = (a, b) => a + b;

なんとなくわかったかな?>>28は。
0061デフォルトの名無しさん2015/07/13(月) 20:49:58.05ID:e5768dRJ
IEnumerable自身を全件逐次処理で変更するベストプラクティス教えて?
Listに変換するのってダサい?
0062デフォルトの名無しさん2015/07/13(月) 20:58:54.18ID:+K53Brvd
魔界の人も災難だな。
狂犬かよ。
https://social.msdn.microsoft.com/Forums/ja-JP/2621f2d4-b836-4201-8405-83f95df30ea1/oracle?forum=aspnetja
0063デフォルトの名無しさん2015/07/13(月) 20:59:07.07ID:2+B8uIZS
>>61
IEnumerableを実装しているというだけでは変更可能は保証されないから
質問そのもの無意味
0064デフォルトの名無しさん2015/07/13(月) 21:00:19.80ID:2+B8uIZS
>>62
また卑しい告口馬鹿かよ
その間抜けな批判精神をちったあテメエ自身に向けたらどうなだよ馬鹿。
0065デフォルトの名無しさん2015/07/13(月) 21:00:54.02ID:e5768dRJ
>>63
どゆこと?ダメなの?
0066デフォルトの名無しさん2015/07/13(月) 21:13:46.22ID:19jSAFcB
変更するうんぬんとか、実行時のコストとか抜きにしたら、
IEnumerableってまさにforeachのためにあるくらいのもんじゃないの?
0067デフォルトの名無しさん2015/07/13(月) 21:29:15.28ID:bmR5b7A0
俺はここのIxでForEachつかってる
http://rx.codeplex.com/releases

MS内部プロジェクトのLinq拡張だから安心して使えるよ
NuGetならIX-Mainで
0068デフォルトの名無しさん2015/07/13(月) 21:31:24.92ID:yPHX40bA
>MS内部プロジェクト

サードパーティーとしてのMSはかなりクソなものばかりで信用ならないのだが
0069デフォルトの名無しさん2015/07/13(月) 21:55:13.64ID:2+B8uIZS
>>65
IEnumerable<int> Hoge()
{
  yield return 1;
  yield return 2;
  yield return 3;
}
0070デフォルトの名無しさん2015/07/13(月) 22:28:59.42ID:UT45Fl9n
>>55
>メソッドとはメンバ関数のことであり

>>43に続いてお前はどうして平然と嘘ばかりつくんだ?
知らない人を騙すと何か得するのか?
0071デフォルトの名無しさん2015/07/13(月) 22:39:37.75ID:fZuv6zqV
>>70
それはあってるだろ
0072デフォルトの名無しさん2015/07/13(月) 23:59:44.42ID:k/rHcB2b
もう別もんてことでええんちゃう
誰も困らんし
0073デフォルトの名無しさん2015/07/14(火) 10:51:33.17ID:eRjQ0yE2
困るか困らないかの話なんてしてないんだよ
言語仕様読んで出直せ
0074デフォルトの名無しさん2015/07/14(火) 12:10:29.13ID:aosv1oSi
こんなNGにしやすいのを、触ってるアホがいる
0075デフォルトの名無しさん2015/07/14(火) 12:26:01.21ID:JeQicsl4
自演だろ
そしてお前も自演だろ
死ね
0076デフォルトの名無しさん2015/07/14(火) 16:46:54.69ID:EyGz34LV
libroの入門サイトでC#を勉強しているのですが
構造体の仕組みがよく分かりません
必ずstructをつけてclassのように定義するのかと思ったら
PenインスタンスとかのColorも構造体の値でしかもstructを使っていないので混乱しています
後回しにしても大丈夫な要素でしょうか?
0077デフォルトの名無しさん2015/07/14(火) 17:05:09.70ID:PRfqfrCg
>>76
スタティックなプロバティーというやつなんだが、その2つのキーワードを勉強済みならおさらいして
勉強する前ならその時にもう一度考えるといいよ
0078デフォルトの名無しさん2015/07/14(火) 18:07:43.82ID:+EV2l+UI
libroってアフィで有名なオッサンのとこだっけ?w
0079デフォルトの名無しさん2015/07/14(火) 18:43:15.39ID:W4TExsjJ
初心者は構造体なんかスルーでいいよ
自分で定義することに至っては永遠にスルーでも構わない
分からないのに使っても確実に遅くなるだけ
0080デフォルトの名無しさん2015/07/14(火) 18:46:07.02ID:RQ2DWYjg
少なくとも値型であることは理解しておかないと困る
0081デフォルトの名無しさん2015/07/14(火) 19:18:28.36ID:EyGz34LV
回答ありがとうございます
とりあえず今のところはclassとの違いを軽く把握しておくだけにします

あとサイト名は出す必要なかったですね
すみません
0082デフォルトの名無しさん2015/07/14(火) 19:30:32.75ID:UOtgE0ap
>>76 >>77 >>79のみっつのレスがそれぞれ意味不明なんだが…
>>80だけはまともな人間がレスしてるのは分かる
0083デフォルトの名無しさん2015/07/14(火) 19:41:58.66ID:hkWurMex
78も評価しろよ人間観察機
0084デフォルトの名無しさん2015/07/14(火) 20:27:57.09ID:PRfqfrCg
>>82
76がColor.Blueなどの正体がわからず混乱しているように見えたんだが外してるのかな?
0085デフォルトの名無しさん2015/07/14(火) 21:18:37.23ID:aLESowLM
>>83
78はスレ違いのような気がしたので、何の感想も無い

>>84
申し訳ないが貴方は回答側になるレベルにないと思われる
ここに赤ちゃんしかいないのなら別だが、そうじゃない
0086デフォルトの名無しさん2015/07/14(火) 21:32:58.54ID:GPLSjXa1
「C# class struct」でぐぐればいいよ

http://www.jaggersoft.com/pubs/StructsVsClasses.htm
0087デフォルトの名無しさん2015/07/14(火) 21:33:02.93ID:Br2hR6Az
pubic struct Color
{
 public static Color Blue
 {
   get{...}
 }
}

public class Unko
{
 public static Unko Deta
 {
   get{...}
 }
}
0088デフォルトの名無しさん2015/07/14(火) 21:37:06.35ID:4/H0ko1S
自分自身と同じ型を返してるのがわからないのか
それ以前に、型の定義とそれを使うところの区別がついてない気もするけど
0089デフォルトの名無しさん2015/07/15(水) 22:30:52.77ID:AFWv7/Jt
符号有りの24bit整数型で符号の表現には2の補数を使った変数を宣言したいのですがそのような型はありますか?
0090デフォルトの名無しさん2015/07/15(水) 22:37:57.19ID:mHDajIQA
>>89
必用ないでしょ。
intの下3バイトを見ればいいだけだから。

ビットの並びを直接いじる場合は手動で符号拡張する必要はあるけど
0091デフォルトの名無しさん2015/07/15(水) 22:45:17.94ID:ZXPlG9Gh
標準では無いな
0092デフォルトの名無しさん2015/07/15(水) 22:51:10.06ID:MOD79kQn
まぁ何らかの理由でサイズをケチりたいんやろな
int32でもint16でもなく…
0093デフォルトの名無しさん2015/07/15(水) 23:02:45.91ID:mHDajIQA
サイズ3の値型なんて存在しうるんだっけ?
0094デフォルトの名無しさん2015/07/15(水) 23:04:49.04ID:AFWv7/Jt
wavファイルの24bitに対応したいのです
0095デフォルトの名無しさん2015/07/15(水) 23:06:18.54ID:/Wi4KvvI
>>93
RGBとか
0096デフォルトの名無しさん2015/07/15(水) 23:22:55.27ID:EENOB+uS
>>93
これをもって存在しうる、と言っていいものかどうか分からんが
たとえばstruct b3 {byte a, b, c;}でMarshal.SizeOf(typeof(b3));は3を返すよ
0097デフォルトの名無しさん2015/07/15(水) 23:26:41.07ID:mHDajIQA
>>96
なんか属性付けたら配列の中で4バイト境界でアラインメントされないように出来るんだっけ?
0098デフォルトの名無しさん2015/07/15(水) 23:29:05.97ID:Ptd0wo45
>>96
知らない
ただ、配列くらいはうまく敷き詰めてくれていいやん、とも(勝手に)思う
0099982015/07/15(水) 23:29:42.17ID:Ptd0wo45
×>>96
○>>97
0100デフォルトの名無しさん2015/07/15(水) 23:43:05.79ID:ZXPlG9Gh
バイナリデータの3バイト符号付きフィールドを扱う時に、
3バイト配列からInt32に変換する処理なら書いたこと有る
0101デフォルトの名無しさん2015/07/16(木) 09:09:09.14ID:zSJhXTs0
>>90がファイナルアンサーだな
Int24とか作っても遅そうだし他に使い道なさそうだし
0102デフォルトの名無しさん2015/07/16(木) 09:19:56.90ID:Ry182V65
>>101
しかし必用はヤバすぎる
0103デフォルトの名無しさん2015/07/16(木) 10:14:46.75ID:JsJrinDm
ATOK様でも2番目に出てくるからなあ
0104デフォルトの名無しさん2015/07/16(木) 11:12:58.20ID:ord2dM3l
ひつ‐よう【必用】

[名・形動]必ず用いなくてはいけないこと。なくてはならないこと。また、そのさま。
0105デフォルトの名無しさん2015/07/16(木) 11:53:43.05ID:KAQIXLBV
24bitにこだわるよりも素直にデータ読み込み時に32bitに拡張して処理して、最終出力時に24bitに変換した方が速度的にも有利
0106デフォルトの名無しさん2015/07/16(木) 13:30:44.50ID:0ONcB7H/
ハイレゾ音声が24bitなのか
まー32bitで作っておいけば、将来拡張されても対応出来て良いんじゃね
0107デフォルトの名無しさん2015/07/17(金) 04:42:22.59ID:Es/joK9Z
ObservableCollection<T>を参照を切って複製したいのですが、どうすれば良いでしょうか?
具体的には、WPFでObservableCollection<T>を参照してるDataGridがあり、
もう一つ別にDataGridを設けてそこに同じデータを読み込ませたいです

今は
ObservableCollection<Data> original = new ObservableCollection<Data>();
ObservableCollection<Data> copy = new ObservableCollection<Data>(original);
としてますが、
これだと同じものを参照してしまってるようで、片方の中身を編集したらもう片方にも反映されてしまいます
0108デフォルトの名無しさん2015/07/17(金) 08:57:35.69ID:UOkg7PKf
Dataも別インスタンスにしたいなら別途それぞれをコピーするしかないよ
0109デフォルトの名無しさん2015/07/17(金) 09:35:35.05ID:X7JQ6nLK
ディープコピーか
0110デフォルトの名無しさん2015/07/17(金) 19:31:35.17ID:HzaYR/4a
質問
ある値型の値が、ボックス化されたものかどうかの判断をする方法はありますか?
(あるいは格納されている場所がスタック上かヒープ上かの判断)
0111デフォルトの名無しさん2015/07/17(金) 19:39:23.92ID:wl90je5y
C#では区別できないんじゃね
0112デフォルトの名無しさん2015/07/17(金) 19:49:51.54ID:KcPznxLR
>>110
ボックス化されたものかどうかは文脈から明らか
式の型が値型でなくて実際の値の型が値型ならボックス化されている
ヒープかスタックかは、クラスのフィールドなら常にヒープ、値渡しの引数やローカル変数なら常にスタックと分かる
構造体のフィールドや参照渡しの引数は文脈からは分からん
0113デフォルトの名無しさん2015/07/17(金) 20:24:49.28ID:FSvlnXyg
>>111 なんかどーもそれっぽいですね…。
>>112 そうだと信じていますが、では、それをどうやって確かめたのですか?
0114デフォルトの名無しさん2015/07/17(金) 20:29:53.08ID:q+IuRCuq
MSDN読めよ
0115デフォルトの名無しさん2015/07/17(金) 20:30:27.86ID:BZgjA1Kd
どうやってもクソも、そういう仕様だからだよ
0116デフォルトの名無しさん2015/07/18(土) 00:04:22.08ID:7caiOrub
>>110
具体的に何がやりたいの?
0117デフォルトの名無しさん2015/07/18(土) 00:05:44.96ID:yr0FjWHf
言語仕様読んで出直せ
0118デフォルトの名無しさん2015/07/18(土) 00:18:23.44ID:eW/teioA
>>116
最終的にそれで何かをしたいってのは無いんです
単なる学習上の好奇心です

int i = 123; // a value type
object o = i; // boxing
Type ti = i.GetType(); // ti = {Name = "Int32" FullName = "System.Int32"}
bool bi = i is ValueType; // true
Type to = o.GetType(); // to = {Name = "Int32" FullName = "System.Int32"}
bool bo = o is ValueType; // true

↑これは結果として的外れなことをしてるんですが
何かしらの演算子かメソッドで区別できないものかと
o is ReferenceTypeみたいなのがあるのかと…
0119デフォルトの名無しさん2015/07/18(土) 01:10:54.31ID:ZT9nGlOp
>>112に答え書いてくれてるのに何が納得いかないんだ
0120デフォルトの名無しさん2015/07/18(土) 01:28:20.34ID:zLkvUUGF
public static bool IsBoxed<T>(T value) {
 return value.GetType().IsValueType && !typeof(T).IsValueType;
}
これでいいだろ
>>112をC#で表現しただけだが
0121あ2015/07/18(土) 07:37:37.96ID:0dOPpxk1
WPFでDataGrid使う馬鹿
0122デフォルトの名無しさん2015/07/18(土) 08:21:50.76ID:JOV56MeV
馬鹿だからWPF使えない低脳乙w  >>121
0123デフォルトの名無しさん2015/07/18(土) 08:49:05.13ID:pLmOJt/K
>>121
無能はレスしなくていいよ
0124デフォルトの名無しさん2015/07/18(土) 09:21:34.26ID:lqXBZKF+
ハイレベルな空中戦しててワロタ
0125デフォルトの名無しさん2015/07/18(土) 09:28:41.46ID:OGP7IcNL
DataGridRowにIndexプロパティがないとか
DataGridTemplateColumnにBindingプロパティがないとか
作りかけのままリリースしたとしか思えないレベルに半端だと思う
0126デフォルトの名無しさん2015/07/18(土) 09:32:28.01ID:zLkvUUGF
実際未完成のまま放置されてるからな
WPFにDataGridは本来必要ないし、
DataGridだけ貼って終わりのゴミみたいなUI作るんならWinFormsでいい
0127デフォルトの名無しさん2015/07/18(土) 09:42:49.29ID:OGP7IcNL
RowにIndexがない理由は知ってるけどね
これも失敗作だがItemsControl仮想化のためだね
仮想化しても大して軽くならない割にいろいろな動作に制限を受ける
特にScrollIntoViewで画面に出さないと
ItemsContainerGeneratorがnullを返してくるのは頭を抱えるデザインセンス
本当に人間が仕様を考えたのか疑わしい
0128デフォルトの名無しさん2015/07/18(土) 10:36:50.43ID:InMkSBJ7
DataGridも酷いだけど、DataSetはもっと酷いぞ
0129デフォルトの名無しさん2015/07/18(土) 10:54:55.28ID:pLmOJt/K
>>128
だったら、商用のコントロールでも買ってろ馬鹿が。
文句だけほざいてテメェじゃ作れもしないアホが。

テメェで機能つけるのが当たり前の世界だろうが。何寝言言ってんだ素人。
0130デフォルトの名無しさん2015/07/18(土) 10:57:47.04ID:1Vb+31cR
>WPFでDataGrid使う馬鹿

使えない中途半端なUI作るなよと思うわ。
0131デフォルトの名無しさん2015/07/18(土) 10:58:28.78ID:1Vb+31cR
>何寝言言ってんだ素人。

初心者スレで、それを言ったらお終いだろ。
0132デフォルトの名無しさん2015/07/18(土) 11:05:50.53ID:4iDO3/6j
文化オリエント臭がプンプンしてきました
0133デフォルトの名無しさん2015/07/18(土) 11:20:22.98ID:InMkSBJ7
>>129
突然どうしたの?
ちょっと落ち着いた方がいいよ
0134デフォルトの名無しさん2015/07/18(土) 11:45:22.03ID:d0Rl5NJg
ま、DataGridに千とか万のデータ打ち込む設計がどうかしているだろ
本当に物理的に編集可な行数なら十分使えるだろうが
0135デフォルトの名無しさん2015/07/18(土) 11:48:01.39ID:OGP7IcNL
俺が叩かれたかな?と思ったら俺じゃなかった
0136デフォルトの名無しさん2015/07/18(土) 13:34:01.84ID:VnKXr/Nm
>>131
.netの基本だろ。
継承して機能つけりゃいいだけのことを。
0137デフォルトの名無しさん2015/07/18(土) 16:29:45.47ID:kigUzWWz
まだドックファイト続いててワロタww
0138デフォルトの名無しさん2015/07/18(土) 17:39:38.41ID:Cc6r9LR6
それってどこにドックするの?w
0139デフォルトの名無しさん2015/07/18(土) 17:45:28.65ID:KYBqXWjh
よろしく
0140デフォルトの名無しさん2015/07/18(土) 19:44:14.97ID:OGP7IcNL
おっさん40代?
0141デフォルトの名無しさん2015/07/18(土) 20:30:25.82ID:uaGXfYDp
.netの機能使って求めたMD5とフリーソフトで求めたMD5の値が違います
なぜですか?
0142デフォルトの名無しさん2015/07/18(土) 20:34:00.02ID:AehmtHVS
何かやり方が間違ってるんだろ
.NETで書いたプログラムの方を見直せ
0143デフォルトの名無しさん2015/07/18(土) 20:46:55.04ID:uaGXfYDp
dobonのそのままなんですが
0144デフォルトの名無しさん2015/07/18(土) 20:50:10.33ID:AehmtHVS
じゃあドボンが嘘つきなんだろ
0145デフォルトの名無しさん2015/07/18(土) 21:01:57.04ID:zLkvUUGF
ドボンみたいな低レベルなサイトやどこの馬の骨とも知れないフリーソフトじゃなくてmd5sumと比較しろ
0146デフォルトの名無しさん2015/07/18(土) 21:08:00.37ID:MLudcWcx
相変わらずドボンに厳しい
0147デフォルトの名無しさん2015/07/18(土) 21:11:37.50ID:KYBqXWjh
だってあそこ2.0あたりから更新してないし
Dispose忘れてたり、using使わない糞コードをずぅーーーーーっと垂れ流し続けてるんだもん
0148デフォルトの名無しさん2015/07/18(土) 21:35:16.44ID:uaGXfYDp
すみません解決しました
FileStreamでファイルを読み込んでいたのですが
MD5を求める前にReadInt32などの操作をしていたので、Seekを用いて現在位置を先頭に移動したら正常に求めることができました
0149デフォルトの名無しさん2015/07/18(土) 21:38:59.86ID:uqudY27Q
>>147
あそこはそこまでの糞コードはない。
0150デフォルトの名無しさん2015/07/18(土) 21:57:15.27ID:56KeiPMq
ComputeHashに渡す値を間違えたと言えば良いのに何でReadとかSeekとか理由に入れるんだろ
0151デフォルトの名無しさん2015/07/18(土) 22:02:42.05ID:KYBqXWjh
>>150
Streamのカーソルが動いてるとかよくあるバグだろが
0152デフォルトの名無しさん2015/07/18(土) 22:20:38.95ID:T1n7E+kq
どういうバグを今日書いたとかいう
つぶやきはツイッターにお願いします
0153デフォルトの名無しさん2015/07/20(月) 19:44:45.45ID:wVJZaAIO
webBrowserコントロールに表示したページのコンボボックスを操作しようとしてるのですが
コンボボックスの値をif文やswitchを使用して選択しようとすると機能しないのは仕様ですか?
0154デフォルトの名無しさん2015/07/20(月) 20:47:12.25ID:tPZY6QNc
なに? よくわかんなかったもう一回言って?
0155デフォルトの名無しさん2015/07/20(月) 21:32:25.33ID:hGLpZL55
Sかお前w
0156デフォルトの名無しさん2015/07/20(月) 21:39:25.84ID:wVJZaAIO
webBrowserコントロールに表示したページのコンボボックスを操作しようとしてるのですが
コンボボックスの値をif文やswitchを使用して選択しようとすると機能しないのは仕様ですか?
0157デフォルトの名無しさん2015/07/20(月) 21:51:21.42ID:uHZCWW9X
知らんがな
0158デフォルトの名無しさん2015/07/20(月) 21:55:06.81ID:mWKp6rRX
マウスでポチポチすればよくね
0159デフォルトの名無しさん2015/07/20(月) 22:05:36.34ID:qFejjwvs
>>156
> if文やswitchを使用して選択しようとすると機能しない

コードを書いたけど処理が呼ばれないってこと?
コードさらしてみ
0160デフォルトの名無しさん2015/07/20(月) 22:17:06.73ID:wVJZaAIO
>>159
お願いします。テキストボックスには入力できてます。
ttp://ideone.com/QWjmIA

入力しているサイト
ttps://www.immi-moj.go.jp/immimail/datainput.php
0161デフォルトの名無しさん2015/07/20(月) 22:29:21.77ID:lNsv7D0g
入国管理局!?
0162デフォルトの名無しさん2015/07/20(月) 22:47:34.61ID:mx9ysNLA
自動入力するほど大量に候補いんのかよクソワロタ
それとも嫌がらせでもすんのか
0163デフォルトの名無しさん2015/07/20(月) 23:00:27.94ID:mx9ysNLA
冷静に考えると笑えねえだろ…と思ったので
スクリプトで投稿しようとしている奴がいると
お問い合わせにこのスレのアドレスをメールしといたわ
0164デフォルトの名無しさん2015/07/20(月) 23:02:42.88ID:zZgtQ4oR
なんでスクリプトで投稿すんのがダメなんだよ
チョンかこいつ?
0165デフォルトの名無しさん2015/07/20(月) 23:26:52.76ID:4ZfZeMhy
スクリプトてまたド素人臭い表現だな。
プログラマの端くれなら普通疑問持たないのかそれ。

っていうか「スクリプトガー」って被害妄想全開の重症の2ch脳患者が使う言葉だろ。
0166デフォルトの名無しさん2015/07/20(月) 23:58:18.65ID:kLkeiRea
通報されるような内容ではないです。
ただ回答がないところを見ると、このスレでは無理そうですかね。
相談室とかstackoverflowなら回答を貰えるでしょうか…?
0167デフォルトの名無しさん2015/07/21(火) 00:12:46.56ID:WrT8X2bE
通報しますた、みたいなガキっぽい対応はしないが
ターゲットが気になるのも事実なので、今は様子見

ここと相談室の住人は同じなので
ここで回答がつかないなら相談室でもつかない
0168デフォルトの名無しさん2015/07/21(火) 00:30:48.39ID:pX3fKcaP
今来たけど、このスレでは無理そうとか
ふざけたこと言うやつには絶対レスしないw
0169デフォルトの名無しさん2015/07/21(火) 01:04:38.32ID:Hy+70Qh/
>>156
selectionindexで中身取得しなさい
01701602015/07/21(火) 06:40:02.67ID:ZOGNQ8mD
>>168
>>166は私ではない
0171デフォルトの名無しさん2015/07/21(火) 06:50:19.62ID:ZOGNQ8mD
>>169
条件分岐せずに項目を指定すればちゃんと選択出来るんですが
条件分岐させるとなぜか選択出来ないのです
0172デフォルトの名無しさん2015/07/21(火) 07:42:39.80ID:qx5oDASL
それはちゃんとステップ実行で追ってみたのか?
0173デフォルトの名無しさん2015/07/23(木) 00:36:10.11ID:GAL36oe9
獏とした質問なのですが、CやC++などで作られた既存のライブラリをC#でも呼び出せるようにした
ラッパーツールが世の中に色々ありますが、こうしてC#側(というかマネージド空間?)に呼び出されたものは
メモリリーク等の心配をせずに、普通のC#開発と同じ感覚で使えるものなんでしょうか?
それとも、ラッピングの仕方などによってC#内での使い方も多種多様なんでしょうか?
0174デフォルトの名無しさん2015/07/23(木) 00:54:25.60ID:WUAvzM35
多種多様〜の方が正しい
そもそもC#でウィンドウを出すのだって
最終的にはC++で書かれたWin32APIを呼んでいるが
適切にラップされているからC#の流儀で扱える

ラップが下手くそだったり
設計思想から意図的にラッパーを薄くしている場合は
Marshalクラス等の使用も必要になってくる
0175デフォルトの名無しさん2015/07/23(木) 01:10:17.73ID:GAL36oe9
>>174
ありがとうございます。
実は、C++で開発された3D可視化ライブラリ「VTK」をC#用にラッピングした「ActiViz」というのがあって、
VisualStudioからサクッとインストールできるのでよさそうかと思っていたんですが、
よく見たところあまり実績がなさそうでした。ドキュメントもほとんどない状態・・・
気をつけて使おうと思います。
0176デフォルトの名無しさん2015/07/24(金) 04:43:21.32ID:PyUHV8Dn
あるクラスのあるstatic関数を稼働確認のため、単独で走らせることはできるんでしょうか?

vbaみたいにちょこっと確認とかしたいんですが
0177デフォルトの名無しさん2015/07/24(金) 06:52:34.47ID:uaWMhUqq
「単独で」とはどういうことかな
実行ファイルorライブラリの中にある静的メソッドということ?

publicな型のpublicなメソッドなら普通に参照に追加して呼べばいい
そうでないならAssemblyを読み込んでリフレクション使うんじゃね
0178デフォルトの名無しさん2015/07/24(金) 07:25:32.83ID:HPe5HWAw
ユニットテスト
0179デフォルトの名無しさん2015/07/24(金) 08:39:48.79ID:PyUHV8Dn
>>178
その場でそれだけをすぐ実行できるのでしようか?
引数なしの関数であればさくっと実行できるといいんですが
0180デフォルトの名無しさん2015/07/24(金) 08:56:20.95ID:3P6rWc8H
その場でって念力で実行するわけじゃないだろうに
何のインターフェースから、くらいは言えよ
0181デフォルトの名無しさん2015/07/24(金) 09:15:38.76ID:PTXhmnKD
データを印刷するのにPrintDocumentでデータを作ってPrint()で印刷しています。
それをPDFでも出力したい、自動的に特定のフォルダに出力したPDFを置きたいという要望があったので
PrintDocumentで作ったデータを活かしつつPDF出力を実現するためにPDFCreatorという仮想PDFプリンターを使っています。
このPDFCreatorは設定でダイアログを出さずに指定のフォルダに出力する機能があり、プログラムから出力→フォルダに移動
が実現出来ます。
しかし、まれにpdfが詰まるというかうまく出力されなかったり、出力に時間がかかったりすることがあり、
もっと別のやり方を検討しています。

PrintDocumentで作った印刷データを流用でき、かつPDFを特定のフォルダに黙って出力してくれて、
高速に出力出来る方法は無いでしょうか?
0182デフォルトの名無しさん2015/07/24(金) 09:26:04.30ID:MZXcQd1B
>>179
VBAのイメージだよね、VSでは無理だよ
0183デフォルトの名無しさん2015/07/24(金) 10:30:31.65ID:PyUHV8Dn
>>182
コンテキストメニューから関数を実行して簡単なテストができればと思ったんですが、やはりそのような機能はないんですね。
ありがとうございます
0184デフォルトの名無しさん2015/07/24(金) 11:39:56.67ID:wmtnRrYQ
>>183
staticならVBAみたいにイミディエイトから呼べますよ
0185デフォルトの名無しさん2015/07/29(水) 16:22:39.70ID:cE2Nnh2z
C#のAPIリファレンスはどこで見れますか
http://docs.oracle.com/javase/jp/7/api/
こんなやつ
0186デフォルトの名無しさん2015/07/29(水) 16:27:06.71ID:2efyhCMF
これのこと?
つttps://msdn.microsoft.com/library/vstudio/gg145045%28v=vs.110%29.aspx
0187デフォルトの名無しさん2015/07/29(水) 16:36:09.83ID:cE2Nnh2z
>>186
たぶんそれです
byte[]のメソッド調べたいだけなのに使い方がわからない・・・
0188デフォルトの名無しさん2015/07/29(水) 16:45:22.90ID:Sn/ML9/s
APIじゃなくて言語仕様の方に書いてある
それでもって [] の機能はArrayクラスにあると書かれていると思うので
とりあえず、ソースの適当なところに Array x; とでも書いて、Array の位置にカーソルを移動してF1ボタンを押せば、ドキュメントにジャンプします
0189デフォルトの名無しさん2015/07/29(水) 16:48:45.01ID:2efyhCMF
これかな
つttps://msdn.microsoft.com/ja-jp/library/9b9dty7d%28v=vs.120%29.aspx
0190デフォルトの名無しさん2015/07/29(水) 19:25:03.70ID:ozMfiNSe
ここだろ
https://msdn.microsoft.com/ja-jp/library/system.array%28v=vs.110%29.aspx


つーかMSDN内を検索すんのどうすのか一瞬わからんかったわ
虫眼鏡マークをクリックしてやっと検索ボックスが出てくるとか気付くのに15秒はかかった
本当にMSはUIを研究してんの?馬鹿なの?
UIのガイドラインとか偉そうに公開してるくせに
0191デフォルトの名無しさん2015/07/29(水) 19:33:30.97ID:Sn/ML9/s
普通にF1押して調べろよってのw
byte [] の[]にカーソル合わせて押せば、即開くよ
0192デフォルトの名無しさん2015/07/29(水) 19:34:22.66ID:ozMfiNSe
メモ帳でプラグラミングしてるかもしれないし
0193デフォルトの名無しさん2015/07/29(水) 19:43:56.83ID:ubdcnWrb
>>192
なにその縛りプレイ
0194デフォルトの名無しさん2015/07/29(水) 19:47:08.21ID:Sn/ML9/s
>>192
自演だと思うが、お前キチガイ臭いぞw

まぁ、C#って奴はIDE使えなければほとんど使い物にならん糞言語なんでそういう開発はすんなって事
逆にIDEがあれば、インテリセンスもリファクタもヘルプもボタン一発だ
IDEを知ることは初心者が一番最初にやるべきこと
0195デフォルトの名無しさん2015/07/29(水) 19:49:40.71ID:ozMfiNSe
>>194
>自演だと思うが

この部分であなたがキチガイであることを半ば証明しているわけだが
0196デフォルトの名無しさん2015/07/29(水) 19:52:19.92ID:xqqvRQgq
VS無しでエディタからC#打ち込みとか罰ゲームでも勘弁して欲しい
0197デフォルトの名無しさん2015/07/29(水) 19:56:15.19ID:ozMfiNSe
VC# Expressがでる以前にはcsc.exeとEmEditorで遊んでたよ! 
0198デフォルトの名無しさん2015/07/29(水) 20:06:49.93ID:V1hEf2Re
ideなきゃろくに書けないのはどれでも一緒じゃん。
0199デフォルトの名無しさん2015/07/29(水) 22:06:44.33ID:A0PWsVoV
IDE以外での開発とかバカのすること
0200デフォルトの名無しさん2015/07/29(水) 23:04:41.90ID:lawxGqpl
初めてのプログラミングの時はネットで見つけたハローワールドをメモ帳に打ち込んで拡張子をexeにして保存したけどエラー出て訳分からなくなった。
次にコンパイラをインストールしてコンパイルして実行したけど、ウィンドウが出てきてハローワールドが表示される予想だったのに黒い画面にハローワールドが出てきて何これっって思った。
0201デフォルトの名無しさん2015/07/29(水) 23:16:02.10ID:eAAheHcV
ハロー!そして…グッドバイ!
0202デフォルトの名無しさん2015/07/30(木) 08:33:50.34ID:ncEnwVLw
質問1
refとoutの違いって、
参照先がヌルでエラーになる・ならない
参照用途・上書き用途

って感じでしょうか?
0203デフォルトの名無しさん2015/07/30(木) 08:49:08.40ID:WomjksiH
> 参照先がヌルでエラーになる・ならない
意味が分からん
outの場合呼び出し先で代入必須ぐらい
refは基本的に値上書き outは値受け取り
構造体のrefは参照用途にも ただし基本的に凄くプリミティブな部分のコードで
0204デフォルトの名無しさん2015/07/30(木) 10:14:06.54ID:ncEnwVLw
>>203
refは基本上書き
outは受け取り

練習してたコードも同じ振る舞いをしてました
こういう目的だと設計も上手く
いきそうだなと納得もできました
ありがとうございます
0205デフォルトの名無しさん2015/07/30(木) 10:44:34.51ID:2zrVhTlg
outって嫌いだな。
返り値を複数かけるようにはまだならないのかい?
0206デフォルトの名無しさん2015/07/30(木) 10:56:29.38ID:YwLirzWA
自分のソースだけではなく他人のソースも読みたいんですがどこか読めるところってありますか?
0207デフォルトの名無しさん2015/07/30(木) 11:19:20.75ID:AGRRcWLu
>>206
しっかり読め おかわりもいいぞ
http://referencesource.microsoft.com/
0208デフォルトの名無しさん2015/07/30(木) 12:11:46.97ID:m3DkqN5d
>>204
いや設計レベルで参照渡しなんか使うな
特にrefは実装でも相互運用以外ではまず使わん
0209デフォルトの名無しさん2015/07/30(木) 12:27:39.44ID:ncEnwVLw
>>208
ゲームエンジンでout引数を使ってる関数があって、
なんでoutなのかな程度の知識で質問したので、
設計はまだ先の話です

とはいえありがとうございます
0210デフォルトの名無しさん2015/07/30(木) 13:13:03.71ID:UpTkpf91
そのレベルで設計してええんか?w
0211デフォルトの名無しさん2015/07/30(木) 13:19:35.11ID:sdsqgLOY
まだ先の話です
0212デフォルトの名無しさん2015/07/30(木) 17:53:21.56ID:TTNL8OnS
ゲームエンジンで out や ref を積極的に使う理由は高速なケースが多発するからだろうな、多分
ややこしいだけなので自分は使わんけど
0213デフォルトの名無しさん2015/07/30(木) 18:47:41.69ID:AGRRcWLu
言語仕様にあるんやから使ってもええんやで
0214デフォルトの名無しさん2015/07/30(木) 18:56:12.01ID:m3DkqN5d
>>212
いや中二病とC++病が多いからだよ
0215デフォルトの名無しさん2015/07/30(木) 20:05:15.27ID:7rzKqYzF
>>207
これが.netフレームワークのソースか
こういうの読めるようにはなりたいが現状どこからどう手を付けていいかもわからんな…
0216デフォルトの名無しさん2015/07/30(木) 20:20:13.39ID:TTNL8OnS
SSCLIが出たころに全ソース読むとかやったが、最近すっかり読む気合が出ないw
だいぶ時間もたったし、そろそろ知識のリフレッシュせねばならんのだけど・・・
0217デフォルトの名無しさん2015/07/30(木) 21:11:45.40ID:ncEnwVLw
>>212
光線発射関数(光線,out 衝突先情報,光線長さ)
みたいな仕様のゲームエンジンがあって、
outなら初期化しなくてもいいから
使ってるんだろうなとは思ってます
0218デフォルトの名無しさん2015/07/30(木) 21:21:45.69ID:TTNL8OnS
>>217
outでもrefでも、オプティマイザがヘモい結果を出している時に、試しにやってみるといい結果なる事があるから
パフォーマンスが必要になったときに、書き換えたいといった用が無くてもとりあえず付けてみればいいよ
特にstructをつかっているケースなどはてき面に変わることがある
0219デフォルトの名無しさん2015/07/30(木) 21:44:43.91ID:P+ZaueL5
返り値を複数なんてのは、C言語とかの構造化プログラミングの発想から来るのかな。
関数に対して、データを入力し、データが返ってくるので、
そういう発想なら確かに欲しくなるのも分かる。

でもC#はオブジェクト指向なんで、データに対して何かするというものだから、
関数に対する入力と返ってくるデータそれ自体をオブジェクトにしてしまえばいい。

そうすれば、そもそも関数から返ってくるなんていう処理自体無くなるよね。
0220デフォルトの名無しさん2015/07/30(木) 22:03:21.62ID:TTNL8OnS
>>219
そうすると、多態性のあるオブジェクトやジェネリックスを使い始めると微妙な気分になれると思われますw
0221デフォルトの名無しさん2015/07/30(木) 22:05:49.93ID:AGRRcWLu
もっとカジュアルに複数戻り値が欲しい人がいるんだろ
それを汎用的に進めたのがクソTupleだろが
何回ループする気だよ
0222デフォルトの名無しさん2015/07/30(木) 22:17:13.16ID:gK59/+ad
scalaみたくTupleで複数戻り値できそうだけど、未だにvarで1つの変数しか宣言できないしな…
0223デフォルトの名無しさん2015/07/30(木) 23:39:21.28ID:Bcr2sdZI
Tupleでええやん、可読性なんてコメントでなんとでもなる
0224デフォルトの名無しさん2015/07/30(木) 23:52:02.74ID:S/Rfe7uQ
どうしてTupleみたいな他の言語と比べて見劣りする
劣化仕様で満足できるのか不思議
0225デフォルトの名無しさん2015/07/31(金) 00:01:55.22ID:rrZ6nxhq
void型はnull返してくれりゃいいのに。
funcもactionも同等に扱いたい
0226デフォルトの名無しさん2015/07/31(金) 23:19:09.77ID:8dpu4JxK
質問です。ファイルにアクセスするとき次のように書いているのですが、なんか冗長な気がします。
他にスマートな書き方ってあるでしょうか?

try
{
using (FileStream fs = File.Open(path, mode))
{
// ...
}
}
catch(Exception)
{
return false;
}
0227デフォルトの名無しさん2015/07/31(金) 23:26:25.49ID:zxXRNzjs
俺だったらそもそも真偽値を返すように書かない
0228デフォルトの名無しさん2015/07/31(金) 23:29:53.29ID:a7ClvwIj
catchしてfalse返すだけならtry-catch要らないと思うの
0229デフォルトの名無しさん2015/07/31(金) 23:50:24.52ID:8dpu4JxK
>>227-228
こういう感じにして例外処理は呼び出し側に書くべきということでしょうか

public Data LoadFile(path)
{
  using (FileStream fs = File.Open(path, mode))
  {
    // ...
    return data;
  }
}
0230デフォルトの名無しさん2015/08/01(土) 04:55:06.43ID:KLLUjwjY
例外処理は必要があったときに初めて書くものです
必要もないのにtry catchするのはドカタの仕事
0231デフォルトの名無しさん2015/08/02(日) 11:56:20.50ID:/GO8FC8E
private void button1_Click(object sender, EventArgs e)
の部分をクリックなしで起動させるにはどうすればよいのでしょうか?
0232デフォルトの名無しさん2015/08/02(日) 11:57:24.47ID:HOry/lAS
button1.PerformClick()
0233デフォルトの名無しさん2015/08/02(日) 15:45:03.87ID:4jhYOwvv
>>231
>>232で実現できるが普通その部分を別のメソッドにして
クリックでの呼び出しとメソッドからの呼び出しの両方に対応できるようにに書かないか?
0234デフォルトの名無しさん2015/08/04(火) 22:37:24.74ID:rZYdr8ei
>>233
横入りだが俺はそういう風に両方に対応できるように書くよ
0235デフォルトの名無しさん2015/08/08(土) 23:12:51.62ID:fIUq8GH+
Cでは関数内にstaticな配列をもてますよね?
void f(int i) {
static const char *eos[] = {"even", "odd"};
puts(eos[i % 2]);
}
C#では今はメンバで
private static readonly string[]などとして持っているのですが
これをメソッド内に移すことはできますか?
それともやはりconst string s = ""の形だけしか許されませんか?
0236デフォルトの名無しさん2015/08/08(土) 23:29:53.00ID:n+miOzAs
>>235
何が聞きたいのかよく分からんよ。
質問の意図は明確に
0237デフォルトの名無しさん2015/08/08(土) 23:40:06.09ID:FXsfmzqO
明確だろ
日本語読めないチョンは帰れ
0238デフォルトの名無しさん2015/08/08(土) 23:50:14.34ID:3Z/4sEUi
仕様制定時に関数内 static はスコープが曖昧になるからとか言うので?意図して排除したらしいけどね。
自分は出来ないと思ってるけど。。そうしないとならない理由があるの?
0239デフォルトの名無しさん2015/08/08(土) 23:55:42.57ID:z+a/XH7F
>>235
移すことは出来ないし、後者の表現しか出来ないよ
Cのベタ移植でもしたいのかね
0240デフォルトの名無しさん2015/08/09(日) 00:07:55.16ID:7R1hSeQZ
>>237
じゃあ最後の1行の意図を質問者に変わって答えて見ろ馬鹿が。
0241デフォルトの名無しさん2015/08/09(日) 00:11:01.11ID:d17ZtAC/
>>240
メソッド内でconst string[] と宣言したいけど、constの配列は宣言できないから諦めてconst stringで宣言するってことだろ
0242デフォルトの名無しさん2015/08/09(日) 00:17:23.93ID:O5qoZwzR
>>239
さっそくのレスありがとうございます!
これについてはあきらめつきました

> Cのベタ移植でもしたいのかね

単に気まぐれな、スコープ狭めたい欲です

>>238
メソッド内にstaticが書けないほうが結局みんなが幸せなんでしょうね…

>>241
ご名答。static constで書ければ悩みはなーんもなかったっすこの場合
「 定数式は、コンパイル時にすべて評価されます。
このため、参照型の定数になりうる値は、string と null 参照に限られます。」
とのことでstringだけがなぜかお目こぼしされてconstで書けるんですよね
0243デフォルトの名無しさん2015/08/09(日) 00:28:32.74ID:7R1hSeQZ
結局全然質問の意図は明確じゃなかったね。

staticなローカル変数の有無を聞きたかったのか、書き換えできないローカルな参照型変数の有無を聞きたかったのか、
どっちなんだよ。
0244デフォルトの名無しさん2015/08/09(日) 00:42:18.10ID:7R1hSeQZ
誰にも知られなくても万引きしたり壁に落書きしたりしないのが普通の人のプライド。
誰にも知られないのに万引きも落書きもしないのは腑抜けだと思うのが社会的底辺のプライド。

何の躊躇もなくチョンとか差別用語を使える奴見ると同情するわマジで。
0245デフォルトの名無しさん2015/08/09(日) 00:58:50.64ID:dl726Wch
お前のどうでもいい思想なんか聞いてねえ。
墓穴掘って静かにしてろ。
0246デフォルトの名無しさん2015/08/09(日) 01:42:11.34ID:fZV5hJWn
VBにはなぜかあるstaticローカル変数
C#に変換した時に面白い実装になってる
0247デフォルトの名無しさん2015/08/09(日) 03:51:34.98ID:lFKFU4FJ
VBとC系言語でstaticのスコープが違うから
両方を同時に扱いたい.Net Frameworkでは最初から入れない方針にしたい
そういう事なんだろうな

だけれどもVBの方は利用者パワーで押し切られて導入と
しかし、あのstaticはC++のローカルstaticとは違うから注意せよと
0248デフォルトの名無しさん2015/08/09(日) 07:57:46.58ID:bKgz+sPH
いや悪いものと判断されたから排除しただけでしょ
スコープがインスタンスとは直行するから非常に紛らわしいし
スレッドセーフどころか再入可能ですらないコードになってしまいやすい
オブジェクト指向やスレッドが一般的でなかった時代の遺物だよ
0249デフォルトの名無しさん2015/08/09(日) 09:26:47.14ID:azHeKpck
>>248
なんかstaticメンバ変数自体の話にも聞こえるが
(+それを使ってるメソッド)
0250デフォルトの名無しさん2015/08/09(日) 09:40:22.79ID:bKgz+sPH
>>249
その通りだけど、良くないもの/より良いもので代替可能なもの を
わざわざルールを複雑にしてまで便利に使えるようにする必要はないということだよ
それに、インスタンスメソッド内のstaticローカル変数なんて特に非直感的でわかりにくいでしょ
C++でもインスタンスメソッド内じゃまず使われないよ
0251デフォルトの名無しさん2015/08/09(日) 10:09:58.24ID:LoRnpOU+
× インスタンスメソッド内じゃまず使われないよ
○ ボクはインスタンスメソッド内じゃまず使わないよ
0252デフォルトの名無しさん2015/08/09(日) 14:21:02.07ID:mK6ssXs9
むしろ直感的にするためにメソッド内に書くんじゃないのか?
メソッドの中でしか使わないのにフィールド定義されてる方が
「スコープ」が不適切だろ
0253デフォルトの名無しさん2015/08/09(日) 14:41:12.34ID:DgTgF8Me
一理ある
0254デフォルトの名無しさん2015/08/09(日) 15:41:10.24ID:5rOTPidq
スコープっていうのは可視範囲だけじゃなくて寿命の概念も含む。
可視範囲と寿命が一致しないのはやはりちょっと気持ち悪い。
0255デフォルトの名無しさん2015/08/09(日) 16:24:58.03ID:Xet75zkW
C#言語仕様とは異なるスコープの用語定義をお持ちの254様が
何か申しているようです。
このご様子だときっとstaticメンバにも不満があるに違いない
0256デフォルトの名無しさん2015/08/09(日) 17:06:22.27ID:5J9QPnhV
訓詁学バカって文系には多いけどプログラマにもいるんだよねこれが。
定義ガー。
馬鹿かお前。
0257デフォルトの名無しさん2015/08/09(日) 17:32:27.47ID:fZV5hJWn
特定のstaticメソッドからのみ参照できるstatic変数が欲しいってのはたまにある
0258デフォルトの名無しさん2015/08/09(日) 18:48:20.62ID:mpXDHXHG
若い頃はstatic変数ってあまり使わなかったな
それを使うのは悪い設計みたいな考えが自分にあったのかな
0259デフォルトの名無しさん2015/08/09(日) 20:54:32.04ID:lFKFU4FJ
寿命うんぬんは実用言語の場合は今更だし
それより、インテリセンスに無駄な物が見えない方が有り難いな
匿名static匿名fieldとはっきり分かるような修飾子で書ければそれで良いと思う
0260デフォルトの名無しさん2015/08/09(日) 21:20:18.46ID:KTod5RQ5
>>259
それはダメグラマの発想だと思うよ。
コードを書く時のことだけしか考えてない。
他人の書いたコード読んでる時に、フィールドと同じ寿命の変数がメソッドの中に
隠れてるのはあんまり嬉しくないと思うけど。
0261デフォルトの名無しさん2015/08/09(日) 21:20:41.04ID:aboGxbYP
>>254
そうするとstatic変数自体がいらないって事?
0262デフォルトの名無しさん2015/08/09(日) 21:26:09.51ID:05KlD32W
>>260
何で?
俺はむしろ局所的にしておいてくれた方が嬉しいし、メンテしやすいと思うけどな。
だって、そのメンバ関数でしか触らない事が強制されてるんだぜ?
0263デフォルトの名無しさん2015/08/09(日) 21:32:49.04ID:bKgz+sPH
>>261
staticフィールドは明らかにクラス自体の寿命と一致してるでしょ
必要とするメンバだけに参照範囲を限定したいというのは理解できるけど、
クラスにインスタンススコープとクラススコープの2種類があるだけでも、(このスレ見てる人はともかく)わかりにくいという人は多いのに、
その上さらにメソッド本体に対してstaticスコープを区別するのが適切か? という判断の結果、C#ではデメリットの方が上回ると判断されたわけだ
VBではさらに「昔からのVBerの脳味噌の互換性」を加味した結果、メリットの方が上回るということだね
0264デフォルトの名無しさん2015/08/09(日) 21:39:17.33ID:y2OmKnkQ
クラス自体の寿命ってのがよくわからない
インスタンスの場合はnewとgcによる開放を想像するんだが
0265デフォルトの名無しさん2015/08/09(日) 21:41:23.05ID:KTod5RQ5
>>262
しかし、そのクラスはフィールドとプロパティ以外に(隠れた)状態を持つことになる。
それがプログラマを惑わす可能性はあると思う。特に書いた本人以外を。

>>263
VBの場合はVB脳云々じゃなくて単純にVB6のコードをコンバーターで
変換しやすくする必要があったからじゃないの?
0266デフォルトの名無しさん2015/08/09(日) 21:43:55.33ID:KTod5RQ5
まあでも、プロパティーのバッキングフィールドは今からでもプロパティーの内部に
隠せるようにはして欲しいね。

あれは確かに邪魔以外の何物でもない気がする。
0267デフォルトの名無しさん2015/08/09(日) 21:53:23.93ID:bKgz+sPH
>>264
クラスがロードされてからアプリケーション(正確にはAppDomain)が終了するまでだな
Javaだとクラスの寿命というのはわりと一般的な考え方で、インスタンスメンバに対して静的メンバをクラスメンバと呼んだりする
staticメソッドの寿命は明らかにクラスの寿命と同じなので、メソッド自体に属するメンバと考えればstaticローカル変数が使えても不自然ではないと思うよ
インスタンスメソッドについてはクラスに属するのかインスタンスに属するのか曖昧だから論外だと思うけど
0268デフォルトの名無しさん2015/08/09(日) 22:53:47.63ID:jyXoCvOV
>>267
なるほど
でも個人的にはそれは単にプログラムの寿命って感じかな
クラス単位での寿命を意識したことがないから

・プログラム、スレッド、インスタンス、の寿命
・あるタイミングでのstatic変数の初期化

っていうふうに別にわけて考えてたわ
c++やってたときはstatic変数への初期化が厳密にいつ呼ばれるのか分からなくて
結局最後までわからなかったw その点C#は
「静的コンストラクターは、最初のインスタンスを作成する前、
または静的メンバーが参照される前に自動的に呼び出されます。」とあって妙に安心
0269デフォルトの名無しさん2015/08/09(日) 23:02:10.64ID:lFKFU4FJ
>>265
内部的には隠れたフィールドなど普通に存在する訳で今更かと
オブジェクト指向専門としてガチガチに設計された言語じゃないんだからな

>>260
どう考えても読むときも楽かと、捜査範囲は限定されるほど読みやすい
理論的な話だけが問題になるだけかと、そういう話は実用言語では無視でよいと思う
0270デフォルトの名無しさん2015/08/09(日) 23:19:03.68ID:lFKFU4FJ
C/C++の場合、staticの寿命はクラスにさえ所属せずパーマネントだね
C#でも同様に考えている人も多い予感はする、いや大半そうではないかな
サンドボックスを作るとかややこしい事をやり始めると無関係ではなくなるが、まぁ普通には障害にはならない
だからそういった前提を知ったかして俺凄いやっても周りは付いてこないだろうな
0271デフォルトの名無しさん2015/08/10(月) 00:59:54.60ID:CQZ8L6Rh
>C/C++の場合、staticの寿命はクラスにさえ所属せずパーマネント

さっきから何言ってんだこの馬鹿は
0272デフォルトの名無しさん2015/08/10(月) 01:48:42.00ID:PZx3BDmz
>>271
いや、>>270は正しいよ
0273デフォルトの名無しさん2015/08/10(月) 01:50:07.43ID:PZx3BDmz
>>263
していないでしょ。
クラスの寿命って何よ。
0274デフォルトの名無しさん2015/08/10(月) 02:30:21.19ID:pZeyAeXv
クラスの寿命って言ったら静的コンストラクターが呼ばれてから
クラスの全てが破棄されるまでの期間に決まっているだろう
http://ideone.com/yHFBmd
0275デフォルトの名無しさん2015/08/10(月) 03:33:05.64ID:RHMENy6h
>>274
普通はクラスがアンロードされた時だろ

>>271
C++はJavaとは違うんだよ、C++の場合staticは静的にアドレスが決定する以上の意味は無いんだ
だから main の前に実行されて main 関数から return される前に解放される
コンストラクト・デストラクト、つまり生存期間は処理系にもよるが pragma を使って直接指示される
0276デフォルトの名無しさん2015/08/10(月) 03:40:05.93ID:RHMENy6h
つーか、リンク先もそうなっとるし
0277デフォルトの名無しさん2015/08/10(月) 03:41:37.54ID:khYUkxeG
>>275
>main の前に実行
>main 関数から return される前に解放

どちらも嘘だな
ISO/IEC 14882:2014を読み直してこい
0278デフォルトの名無しさん2015/08/10(月) 03:43:35.12ID:RHMENy6h
ごめん、returnの後だな
いずれにしてもこれらはすべてC++では処理系依存
0279デフォルトの名無しさん2015/08/10(月) 10:39:41.97ID:XCOgVsch
要するにstaticって名前が悪いんだよ
backingとか適当なキーワード新しく作ればいい
0280デフォルトの名無しさん2015/08/10(月) 11:36:21.85ID:4ydNIPR/
いや今話題になってる方のstaticはそう変じゃない。
変なのはファイルスコープの変数に付けるstaticの方
0281デフォルトの名無しさん2015/08/10(月) 13:14:17.19ID:RHMENy6h
>>280
その考えはおかしい
0282デフォルトの名無しさん2015/08/10(月) 13:19:59.86ID:TjT4/U6L
× その考えはおかしい
○ その考えはおかしいとボクは思います
0283デフォルトの名無しさん2015/08/10(月) 13:24:13.92ID:RHMENy6h
動的に確保されるが、従来のstaticと同じように扱えるから
従来のC言語をやっている人にもわかりやすいように static にしてあるとしか思えない
VBのstaticも同様だよな

classスコープだからといって static と付けるとは
動的なのに静的とはこれいかに?って物だな
0284デフォルトの名無しさん2015/08/10(月) 13:31:21.83ID:4ydNIPR/
>>281
staticっていう英語の意味が分かってないか、それとも自動変数用のメモリーが
動的に確保されることを理解してないか、またはその両方だと思うよ。
0285デフォルトの名無しさん2015/08/10(月) 13:47:53.30ID:RHMENy6h
そもそも問題として、C/C++言語ではアセンブラに変換されるときのイメージが意識されている訳で
意識されているのはスコープではなくリンカーだしな
それ以降ガベコレ搭載して、全てを動的に確保するようになっても使われているのは
単によく似た機能をもつケースについてキーワードを踏襲している以上の物じゃない
C#におけるstaticキーワードの採用は歴史的な都合だけだよ
0286デフォルトの名無しさん2015/08/10(月) 14:05:00.26ID:ioaF8ics
意味的にはVBのsharedの方が適切
0287デフォルトの名無しさん2015/08/10(月) 14:08:25.37ID:s/3IoBIJ
netネイティブって逆コンパイル対策になりますかね?
0288デフォルトの名無しさん2015/08/10(月) 14:16:02.76ID:WHjY6NlA
VBのstaticが従来と同じだって?
どれだけ頭が悪いの
0289デフォルトの名無しさん2015/08/10(月) 14:20:39.99ID:XCOgVsch
今更C#におけるstaticキーワードの是非を言っても仕方なかろう
0290デフォルトの名無しさん2015/08/10(月) 16:45:18.34ID:65tjAOy9
C#のstaticの言語仕様と.netの実装の話をごっちゃにしてね?
0291デフォルトの名無しさん2015/08/10(月) 17:34:56.13ID:ILJzsQ47
冷静でかつサービス精神にあふれる>>290仕分け人が
ごっちゃな話題をばっさり仕分ける!
0292デフォルトの名無しさん2015/08/10(月) 22:59:55.09ID:s/3IoBIJ
リアルタイムオンラインゲームでチート対策の為に

PC:キー情報送信
鯖:処理して画面を画像として返す
PC:画像を描画

としたいのですが流石にサーバーの負荷ヤバいですかね?
0293デフォルトの名無しさん2015/08/10(月) 23:05:35.89ID:idVbp4v2
チート対策の前にお前はまず動くものを作ることを考えた方がいい
ゲームの種類によってはそういうのも不可能ではないが、
サーバーの負荷云々の前に実装が面倒
そもそも存在しないゲームにチートもクソもないだろ?
0294デフォルトの名無しさん2015/08/10(月) 23:10:10.32ID:65tjAOy9
ゲーム自体が存在しない
ユーザーが存在しない
チートするほどコアなユーザーが存在しない
チートするほどの価値がゲームに存在しない
0295デフォルトの名無しさん2015/08/10(月) 23:15:38.79ID:idVbp4v2
それと、サーバーサイドで描画できるようなゲームとなると
シンプルなパズルゲームなど静的な画像を数秒以上空けて更新すればいいものに限られるだろうけど、
そういうタイプのゲームであればわざわざサーバー側で描画まで面倒見なくても
操作がルールを破ってないかのチェックだけサーバーでやれば十分なはずだよね
たとえば、サーバー側で将棋の盤面の状態を保持してて
クライアントから「6五角」が送られてきたら、
それが可能な手かどうかは容易にチェックできるはずでしょ?
0296デフォルトの名無しさん2015/08/10(月) 23:36:52.98ID:RHMENy6h
>>293-295
その反応は頭おかしい

サーバーで3D処理を全部やってストリーミングで映像を送信する事で端末ごとの性能差を回避するなんて事をしている所があるという話は聞いたことがある
ゲームはしないので、ブツはやった事も見たこともないから無責任回答ですが
0297デフォルトの名無しさん2015/08/10(月) 23:46:34.02ID:KYE64Uda
他人を頭おかしい呼ばわりする前に
もう少し性能に関する感覚を身につけた方がいい
現代のインフラではゲームの画面をリアルタイムに伝送することは
ネットワークの帯域・レスポンス的に無理
0298デフォルトの名無しさん2015/08/10(月) 23:51:17.51ID:RHMENy6h
>>297
俺の考えをきけぇ、おまえらの事情なんかどうでもいいし、そんな事聞かれてもいないが俺の考えをきけぇ
そんな感じですかw
0299デフォルトの名無しさん2015/08/11(火) 00:02:12.30ID:wWyNsVqi
>>298
悪いけどそれオマエガナーだと思うよw
0300デフォルトの名無しさん2015/08/11(火) 00:05:52.59ID:3aerp50q
なんかxboxoneがクラウドで描画アシストとか
わけのわからんことになってたんじゃなかった?

くるったような高速ネットインフラと
くるったような鯖側の演算性能が必要に思えるが
0301デフォルトの名無しさん2015/08/11(火) 00:08:28.28ID:3aerp50q
一応調べたので補足

http://www.gamespark.jp/article/2013/09/29/43767.html
> 4)クラウドプロセッシングとAI: クラウド上のプロセッシングパワーでXbox OneのグラフィックパワーやAI等を強化する
0302デフォルトの名無しさん2015/08/11(火) 00:19:43.67ID:Hny0F+fR
>>297
3dsのドラクエ10がやってた気がするが。
無理じゃないと思うが?
0303デフォルトの名無しさん2015/08/11(火) 06:48:47.39ID:RnBcDQFJ
月1500円出せば3コアのVPSが借りられるわけで
そりゃ無理じゃないだろうな
0304デフォルトの名無しさん2015/08/11(火) 09:43:07.32ID:C3iuhTEx
画面の差分だけ送ればなんとかなりそうだけど
リモートデスクトップ程度の帯域でいけそうかなと思ったけど
双方向だからどうなるか
0305デフォルトの名無しさん2015/08/11(火) 09:50:20.84ID:+IVNtZk/
双方向にはならんでしょ
でもシンクライアントなんて社内ネットワークでも帯域きついのにパブリックじゃ制限きつすぎる
0306デフォルトの名無しさん2015/08/11(火) 12:34:59.71ID:RnBcDQFJ
少なくとも無料じゃ絶対不可能だな
オンプレミスはさすがに初期投資がとんでもないことになるからAWSでも使うとして、
請求が楽しみだ
0307デフォルトの名無しさん2015/08/11(火) 14:23:19.53ID:FPKWoXY4
質問させてください
for (int i = 0; i < 3; i++)
{
double hoge;
switch (i)
{
case 0:
hoge = 22;
break;
case 1:
hoge = 23;
break;
case 2:
hoge = 24;
break;
}
Console.WriteLine(hoge);
}

このコードだと未割り当てのローカル変数 'hoge' が使用されました。
と出て動かないのですが何故なのでしょうか?
default:
  hoge = 9999;
  break;
など適当なdefaultを挟むと動くのですが…
よろしくお願いします。
0308デフォルトの名無しさん2015/08/11(火) 14:44:33.25ID:3SX2sjwF
>>307
double hoge = 0;
とすると良いかと
C#は未初期化状態の実行ルートがある場合はエラーになるという仕様になっています
0309デフォルトの名無しさん2015/08/11(火) 14:57:00.33ID:9vZWMdU3
MS様の書いたコードだとこういうのがよく出てくる
default:
throw AssertUtil.Unreachable;
こうすれば、これ以上ないくらいに意味が明確なコードになる
Unreachableは適当なメッセージ付きで例外オブジェクトをnewするプロパティで、
internal static class AssertUtilとして適当に用意すればいい
0310デフォルトの名無しさん2015/08/11(火) 15:21:28.54ID:FPKWoXY4
>>308
ご回答有難うございます。
間違いが出そうであまりしたくなかったのですが適当な値で初期化するしかないのですね
>>309
良くわかりませんが有難うございます。
0311デフォルトの名無しさん2015/08/11(火) 15:26:47.31ID:3SX2sjwF
>>310
とりあえず対症療法的に返答してしまったけど
実は自分も >>309 お勧め
hoge = 9999;
  break;
の代わりに例外を送出するコードを挿入すれば、未初期化のルートはなくなるのでエラーは無くなります
0312デフォルトの名無しさん2015/08/11(火) 15:49:56.53ID:k5vQ9zVJ
caseもhogeも使わないのも手としてはある
int[] a = {22, 23, 24};みたいにしておいて
for (int i = 0; i < 3; i++) Console.WriteLine(a[i]);

そーいう話じゃない?
失礼しました
0313デフォルトの名無しさん2015/08/11(火) 18:26:46.95ID:WK/dk0fh
>>310にはこっちの方が分かりやすいんじゃないかな
double? hoge = null
0314デフォルトの名無しさん2015/08/11(火) 19:09:20.01ID:9vZWMdU3
>>313
それはないわ
nullable使われると「nullが入ることを想定してるんだな」と思ってしまう
doubleの無効な値としてはNaN使ったほうがいい
0315デフォルトの名無しさん2015/08/12(水) 00:28:38.76ID:HTjMgJD9
意味的に値がまだ入っていない状態なんだから
double?が間違ってるってこたーない。
演算エラーのNaNを未初期化の意味の特別な値として使う馬鹿はどうしようもないな
0316デフォルトの名無しさん2015/08/12(水) 03:22:23.59ID:6lFy7xXj
値が入っていないと言う状態をちゃんと想定してるのならヌル許容型で良いと思うけど
元質問者がそう言う状況を想定してるとは思えんからなぁ

今回の質問ならまずゼロで初期化すればいいと思うけど、どういう状況をかんがえたら
間違いが出そうとかいうことになるんだろう
0317デフォルトの名無しさん2015/08/12(水) 03:35:50.16ID:4GoNFhR4
そういう状況もあるんでしょう、それは俺らが考えても仕方がないこと
0318デフォルトの名無しさん2015/08/12(水) 08:48:04.58ID:ncpOSLhg
>>310
初期化やdefaultルートと言うのは、むしろ間違いを犯さない為の措置だよ
0319デフォルトの名無しさん2015/08/12(水) 17:44:35.54ID:+JXg3H/H
HTTPでファイルダウンロード時のファイル名、ファイルサイズ、進行度、ダウンロード速度を
何個か並列で表示したいんですが、どういうアイテムを使うといいでしょうか?ListView?
0320デフォルトの名無しさん2015/08/12(水) 20:23:41.01ID:Em7FXmTW
・ListView
・DataGridView
・TableLayoutPanel
・自前
0321デフォルトの名無しさん2015/08/13(木) 18:54:54.45ID:Lcb9XwQO
ファイル操作のフィルタについて
javaのようにあるクラス(インターフェイス)を継承してフィルタを作成する事はできますか?
0322デフォルトの名無しさん2015/08/13(木) 20:01:08.00ID:/Uk5mzIy
普通にEnumerateFilesの結果をLINQやforeach&ifでフィルタする
遅延評価だから余計なメモリを食う心配はない
Javaのやり方は回りくどくて融通が利かないだけではっきり言って何の意味もない
0323デフォルトの名無しさん2015/08/13(木) 21:30:33.31ID:Lcb9XwQO
>>322
テキストを読み込むだけならそれでいいと思いますが音楽再生などはどうすればいいですか?
javaの場合zip内の音楽ファイルもフィルタを通したストリームを渡していましたが・・・
0324デフォルトの名無しさん2015/08/13(木) 22:29:06.08ID:uEvY/8an
なにいってだこいつ
0325デフォルトの名無しさん2015/08/13(木) 22:50:33.36ID:zYX1bnGl
DeflateStreamみたいなものを指してんだと思いますよ

>>323
ZipInputStreamみたいなもんはないです
Java使ってください
0326デフォルトの名無しさん2015/08/13(木) 22:59:51.43ID:Lcb9XwQO
c#で実装するにはどうすればいいでしょうか?
0327デフォルトの名無しさん2015/08/13(木) 23:57:27.60ID:zYX1bnGl
Javaを使ってください
Javaを使ってください
Javaを使ってください

C#で実現できないと死ぬしかないならSharpZipLibなどを使ってください
何らかの事情でサードパーティライブラリ使えないなら
Javaを使うか諦めて死んでください
0328デフォルトの名無しさん2015/08/14(金) 00:26:30.39ID:tFSFhc6/
>>327
こういう繰り言馬鹿にはちゃんと目玉付けろよ馬鹿2ch
0329デフォルトの名無しさん2015/08/14(金) 01:34:40.23ID:+VKhVdfh
まだ開発続いてたのか
https://github.com/adamhathcock/sharpcompress
0330デフォルトの名無しさん2015/08/15(土) 21:08:14.45ID:3TmrRaVz
vsの簡単フォームツール?のコンボボックスでSelectedIndexが見つかりません。
どこにありますか?
編集不可コンボボックスだと初期値でTextプロパティが使えないのでindexで指定するように書いてあったのですができません・・・
0331デフォルトの名無しさん2015/08/15(土) 21:28:03.67ID:tkm8AHQM
簡単フォームツールとやらの説明を先にしてくれ
0332デフォルトの名無しさん2015/08/15(土) 21:59:48.49ID:3TmrRaVz
>>331
VSのドラック&ドロップでフォームアプリを作れる奴です。
0333デフォルトの名無しさん2015/08/15(土) 22:07:39.84ID:/RqnGk0/
デザイナでSelectedIndexがあるのはWPFっぽいな
プロジェクトのテンプレートでWPFアプリケーションを選択してやり直せ
0334デフォルトの名無しさん2015/08/15(土) 22:17:54.22ID:3TmrRaVz
>>333
そういう事でしたか。ただWPFは重いみたいなのでなるべく使いたくありません(内部で重い処理をするのでGUIは軽くしたい)
多少格好悪くてもいいのでフォームを使いたいです。
フォームの編集不可コンボボックスで初期値を設定する方法を教えて下さい。
0335デフォルトの名無しさん2015/08/16(日) 06:07:44.30ID:oJJ9Sokx
WPFは無くなる、WinFormsも互換性の為に残してあるだけでいつか切られる
XAMLは残るからWPFで作った方が良いよ
0336デフォルトの名無しさん2015/08/16(日) 06:34:23.10ID:ETfKmO3b
InitializeComponent();
の後に自分でコード書けよ
0337デフォルトの名無しさん2015/08/17(月) 21:39:12.36ID:/53UNtSq
mp3形式のbyte[]を渡して音楽を再生する方法はありますか?
0338デフォルトの名無しさん2015/08/17(月) 21:48:34.26ID:GycxPgXo
あります
0339デフォルトの名無しさん2015/08/17(月) 22:24:09.39ID:/53UNtSq
>>338
いや…あの…
すみません。質問の仕方が悪かったです。

mp3形式のbyte[]を渡して音楽を再生する方法はありますか?
もしあるなら仕方を教えて下さい。
0340デフォルトの名無しさん2015/08/17(月) 22:44:26.70ID:GycxPgXo
>>339
NAudioで大体のことは出来る
0341デフォルトの名無しさん2015/08/18(火) 00:40:30.25ID:x3lUcLwJ
音源はどうやって埋め込むのでしょうか?
0342デフォルトの名無しさん2015/08/18(火) 00:45:52.56ID:vA+EdJDa
>>341はID:/53UNtSqではありません。

NAudioで多重再生とかもできそうなので使ってみます。
0343デフォルトの名無しさん2015/08/18(火) 00:56:14.22ID:d7hyhqbe
ID:/53UNtSqはID:Lcb9XwQOだろ
0344デフォルトの名無しさん2015/08/18(火) 00:59:19.35ID:vA+EdJDa
>>343
そうです。
0345デフォルトの名無しさん2015/08/18(火) 18:41:31.57ID:vA+EdJDa
mp3(wav)ストリームを作る時にbyte配列を渡すとエラーが出るのですがどうすればいいですか?
0346デフォルトの名無しさん2015/08/18(火) 18:47:11.67ID:fW4GU+Ok
エラーってどんな?MTAThread関連かな
0347デフォルトの名無しさん2015/08/18(火) 19:00:47.54ID:vA+EdJDa
コンパイルエラー
0348デフォルトの名無しさん2015/08/18(火) 19:02:55.13ID:vA+EdJDa
後もう一つ質問なんですがMP3であるか確認する為には最初の3byteがID3であるか確認を行い、wavであるか確認する為には最初の4byteがRIFFであるか確認すればいいですかね?
0349デフォルトの名無しさん2015/08/18(火) 19:19:42.12ID:m0ApadEK
>>347
エスパーじゃないから答えられない

>>348
少しは自分で調べろ
0350デフォルトの名無しさん2015/08/18(火) 19:42:03.97ID:vA+EdJDa
var reader = new Mp3FileReader(byte[]);
だとエラーになります。
0351デフォルトの名無しさん2015/08/18(火) 19:50:36.75ID:JFS1mc9t
NAudioでぐぐって懇切丁寧に説明してくれてるサイトが見つかるのにそれ見ないでグダグダ言ってたりしないよな?
0352デフォルトの名無しさん2015/08/19(水) 08:40:38.22ID:ff1G2cdZ
http://ideone.com/7cryh2

まだオブジェクトについてしっかり理解していないのですが
上のコードだと現在のコンテキストに'hoge'という名前は存在しません
と出てエラーになります。
double[] hoge = { 1, 2, 3, 4 };をclass Calcの中に持って来れば解決するのですが
そうではなくて関数の計算中にメインプログラムの値を参照することは出来ないのでしょうか?
よろしくお願いします。
0353デフォルトの名無しさん2015/08/19(水) 08:55:04.93ID:3uFtipHY
コンストラクタで渡して持たせるとか
class Calc {
private double[] hoge;
public Calc(double[] hoge) {this.hoge = hoge;}
}
メソッドにそのまま渡すとか
public double neko(double[] hoge, int a) {}
0354デフォルトの名無しさん2015/08/19(水) 08:59:11.62ID:JFnqqL9q
・コンストラクタかメソッドの引数でhogeを渡す

・hogeをpublic staticにする
0355デフォルトの名無しさん2015/08/19(水) 11:01:02.02ID:ww7HKZam
>>350
どうなった?
byte[]をMemoryStreamにすればいけると思うけど
調べりゃすぐわかるからもう解決してるかな。
0356デフォルトの名無しさん2015/08/19(水) 11:23:17.31ID:LOHOwjsk
>>355
調べていました。
Mp3FileReadeでもMemoryStreamでも同じような物だったんですね。
ありがとうございました。
0357デフォルトの名無しさん2015/08/19(水) 13:27:42.91ID:ff1G2cdZ
>>353
>>354
ありがとうございました
引数で解決しました
コンストラクタについてはまだ理解不足で出来ませんでした
0358デフォルトの名無しさん2015/08/19(水) 21:07:32.67ID:SDK3VImY
Color.FromArgb ( int argb ) の説明にはこうあるんですけど

>32 ビットの ARGB 値のバイト順は AARRGGBB です。

int の16進表記だとどうなるんですか?
あたまがこんがらがって解からなくなったんですけど
0xAARRGGBBじゃないですよね?バイト順ではないですよねこれ?
0359デフォルトの名無しさん2015/08/19(水) 21:17:08.76ID:a9PVmvtK
>>358
MSBがアルファだってちゃんと書いてあるじゃんw
そんなの書いてる間に読めるだろw
0360デフォルトの名無しさん2015/08/19(水) 21:19:12.12ID:3Mi5491C
>>358
0xaarrggbbだよ
リトルエンディアンだからメモリ上の順番はbgraだけど、バイト順でargbというMSDNの表現は別に間違いではない
バイト順=メモリ上のレイアウト ではない
0361デフォルトの名無しさん2015/08/19(水) 21:20:54.57ID:SDK3VImY
>>360
あーなるほど
でもバイト順ってなんなんですかね
0362デフォルトの名無しさん2015/08/19(水) 21:31:21.69ID:JOMIL+qj
我々プログラマがソースコード上で意識する並びじゃないのかな?
リテラルであるとかシフト演算の右左であるとか
0363デフォルトの名無しさん2015/08/19(水) 21:42:20.28ID:a9PVmvtK
絶望的な読解力だなあw

Int32の中のバイトの並び順を表す適切な言葉がないから「バイト順」(byte ordering)って書いただけ。
それだけでは曖昧で誤読される恐れがあるから、直後に「 AA で表している最上位バイト (MSB) は〜」
と補足説明を付け加えられている。

書いた人のこのぐらいの意図は普通に読み取れよホントw
0364デフォルトの名無しさん2015/08/19(水) 21:49:56.52ID:SDK3VImY
>>363
へー(軽蔑
0365デフォルトの名無しさん2015/08/19(水) 21:51:53.68ID:a9PVmvtK
>>364
絵に描いたような精神勝利法で笑える。
ダメな奴の典型だな。
0366デフォルトの名無しさん2015/08/19(水) 21:54:50.46ID:SDK3VImY
精神勝利法を駆使するのはお互い様だろw
おやすみ(^_-)-☆
0367デフォルトの名無しさん2015/08/19(水) 21:56:52.61ID:m1vdv76u
たしかに混乱しうる。以下wikipediaより引用。

> エンディアン(英: endianness)とは、多バイトのデータ(即ち基本情報記憶単位を
> 超えるデータ)をメモリ上に配置する方式の種類のこと。
> 一般的な用語による表現ではバイトオーダ(英: byte order)、
> ないしそれを一部訳して日本語ではバイト順とも言う。

> 例えば 1234ABCD(16進数)という4バイトのデータを、
> データの上位バイトからメモリに「12 34 AB CD」と並べる方式をビッグエンディアン[1]、
> データの下位バイトから「CD AB 34 12」と並べる方式をリトルエンディアン[2]という。

> インテルのx86等はリトルエンディアンを採用している

directxでカラー使うとき>>358とまったく同じこと悩んだこと思い出したw
あと、エンディアンのことを「バイト順」って呼ぶなんてことは今知った。
0368デフォルトの名無しさん2015/08/19(水) 21:59:41.75ID:a9PVmvtK
混乱なんかしないって
はっきりMSBがアルファ値だって書いてあるのに何をどう混乱するんだよ。
0369デフォルトの名無しさん2015/08/20(木) 21:32:06.62ID:lnLwpQk4
int[][] ans = { };
int[] hoge1 = { 1, 2, 3 };
int[] hoge2 = { 2, 4, 6 };
int[] hoge3 = { 3, 6, 9 };

ans = ans.Concat({hoge1});
ans = ans.Concat({hoge2});
ans = ans.Concat({hoge3});


int[][] ans = {
new int[] { 1, 2, 3 },
new int[] { 2, 4, 6 },
new int[] { 3, 6, 9 }
};

多次元配列の結合はどうやればいいのでしょうか?
ansにhoge1 hoge2 hoge3と結合していき最後書いたansの様になる様にしたいです
hogeはhoge1,hoge2,hoge3…hoge999と大量にあります
javascriptだと上記の様なconcatの使い方でも動いていたのですがC#でのconcatの使い方がよくわかりません
よろしくお願いします
0370デフォルトの名無しさん2015/08/20(木) 21:54:21.12ID:LDLo1wJS
List<int[]>
0371デフォルトの名無しさん2015/08/20(木) 21:59:56.06ID:eAPsaJbN
>>369
あくまで「多次元配列の結合」に拘るならこれでいけるはず
ans = ans.Concat(new int[][]{hoge1}).ToArray();
ans = ans.Concat(new int[][]{hoge2}).ToArray();
ans = ans.Concat(new int[][]{hoge3}).ToArray();
ふつうは>>370さんみたいにリストにぶっこんでいくのが素直
0372デフォルトの名無しさん2015/08/20(木) 22:24:34.73ID:PgotBuXR
hoge999個を定義すると考えただけで発狂しそうになる
0373デフォルトの名無しさん2015/08/20(木) 22:26:37.74ID:lnLwpQk4
>>370
>>371
ありがとうございます!
とりあえず下記の様にしたらできました!
List<int[]> ans = new List<int[]>();
ans.Add(hoge1);
ans.Add(hoge2);
ans.Add(hoge3);
0374デフォルトの名無しさん2015/08/21(金) 11:14:25.87ID:dTFb6gTE
>>373
ちなみにそれはジャグ配列な
0375デフォルトの名無しさん2015/08/21(金) 11:37:31.03ID:B+Cluudf
配列のリストな
0376デフォルトの名無しさん2015/08/21(金) 12:04:56.57ID:JyX6qxLn
配列のリスト
配列なリスト
配列でリスト
0377デフォルトの名無しさん2015/08/21(金) 18:42:36.92ID:n472Qw2U
矩形配列はもう忘れていいよ
こっそり無くなってても半分くらいの人は気づかないレベル
多次元配列≡ジャグ配列 でOK
0378デフォルトの名無しさん2015/08/21(金) 22:19:25.71ID:1hstBOde
いやさすがにそれはないだろw
C#にはせっかく多次元配列が用意されてるんだからサ…
0379デフォルトの名無しさん2015/08/21(金) 23:47:56.02ID:vFrubD+p
用途が全く違うからな
普通にどっちも使うだろ
0380デフォルトの名無しさん2015/08/22(土) 00:05:52.12ID:beXDEjbI
あえて2次元配列を使う理由って

(1) パフォーマンス最優先だから

(2) アンマネージド関数やCOMのメソッドの呼び出しで必用

(3) 長方形であることを明確にする必要がある


このぐらいか?
俺は(2)でしか使ったことないや。
0381デフォルトの名無しさん2015/08/22(土) 00:08:51.76ID:KIpdc5GT
C上がりの人が作ったプログラムを修正する羽目になった
も追加してくれ
0382デフォルトの名無しさん2015/08/22(土) 01:28:57.93ID:ripDE35b
>>380
パフォーマンス悪いんだよ。
特に昔は死ぬほど悪かった。
0383デフォルトの名無しさん2015/08/22(土) 10:54:38.66ID:JpeLxAWc
境界チェックが重いのかな
0384デフォルトの名無しさん2015/08/22(土) 11:01:32.36ID:PvgyjaqW
今は速くなったのか
C#が出た頃に試したら異常に遅くて
二度と使うかと思ったんだが
0385デフォルトの名無しさん2015/08/22(土) 11:58:12.82ID:DQb1e85A
矩形配列が遅いというより1次元配列が速い
特にシーケンシャルアクセスは一般的なパターンに対してチートな最適化がかかるのでクソ速い
0386デフォルトの名無しさん2015/08/22(土) 12:32:08.46ID:/ddVcb/Z
つまり
型[][]のほうが型[ , ]よりいいって事?
0387デフォルトの名無しさん2015/08/22(土) 12:50:57.03ID:CbGS45Xd
どーでもいいけど
矩形配列ってどういうイメージで言ってるんだろ?

二次元だけは矩形といわれりゃそうとも言えるが
三次元以降はどこが矩形になってんだろうか
0388デフォルトの名無しさん2015/08/22(土) 12:53:50.48ID:uYI7Yum0
C#の[,]ってCの[][]相当だよね確か。
要するにメモリ上では行が数珠つなぎになってる。
普通に考えればこっちの方がパフォーマンス良さそうだけど。
まあ試せば分かるんだどうけどそこまでの気力はないw
0389デフォルトの名無しさん2015/08/22(土) 14:55:15.43ID:E577aeMe
たしか中間言語レベルに(1次元)配列に特化した命令があって
1次元配列やジャグ配列はそれ使うから早いとか聞いたぞ
0390デフォルトの名無しさん2015/08/22(土) 19:40:44.94ID:olIyxBPy
>>388
多次元配列にシーケンシャルアクセスするときって一番右の添え字が一番速く回る場合がほとんどだから、
それ以外の添え字のランダムアクセスの性能はまず問題にならないんだよ
a[i][j][k]でiとjが固定でkが回るとき、a[i][j]の結果はキャッシュに乗るから結局1次元配列に対するシーケンシャルアクセスになる
そのため>>389の最適化で速くなる
0391デフォルトの名無しさん2015/08/23(日) 00:35:46.88ID:F/7pOgjh
>>390
多次元配列って要素がメモリ上に一続きで並ぶんだから
a[i, j, k]は結局b[i * J * K + j * K + k]と同じはずで、一番外側を舐める時の
効率も同じような気がするけどな。
(J, Kは各次元の長さ)
0392デフォルトの名無しさん2015/08/23(日) 00:39:37.19ID:9aqT3FI6
何でそう思うの?
「キャッシュヒット率」ってキーワードを使って40字以内で答えて
0393デフォルトの名無しさん2015/08/23(日) 00:50:03.09ID:F/7pOgjh
少なくともVMレベルでは多次元配列の一番外側の次元を舐める時も
>>390と同じように1次元配列のシーケンシャルアクセスと同じと見做せない理由はないはずだと思うけど。
0394デフォルトの名無しさん2015/08/23(日) 00:53:39.18ID:9aqT3FI6
>>390 は、キャッシュに乗るって書いてるのに、何でわざとそこをよみとばすの?
0395デフォルトの名無しさん2015/08/23(日) 00:59:36.41ID:QlQ/u5s/
>>393
外側を舐めるときはアクセス先が飛び飛びになるからキャッシュミスしやすくなるよ
もっとも、それについてはジャグ配列も同様、
というか間接参照のせいで確実にキャッシュミスするから矩形配列よりずっと効率悪いんだけど
現実にはほとんど右側しか回らないからまず問題になることはない
それが効いてくるのは行列計算など特殊な用途に限る
0396デフォルトの名無しさん2015/08/23(日) 01:00:34.67ID:F/7pOgjh
>>394
キャッシュに乗るのはa[i][j]を評価した結果の1次元配列(への参照)。
多次元配列は最初から1次元配列とみなせる。(ポインタをキャストするのと同じ)
0397デフォルトの名無しさん2015/08/23(日) 01:05:23.33ID:9aqT3FI6
はぁ、君はレジスタや一時変数のことをキャッシュって言うんですか
0398デフォルトの名無しさん2015/08/23(日) 01:05:40.18ID:QlQ/u5s/
>>396
原理的にはその通り。
で、多次元配列で右端の添え字を回すより1次元配列の方が速いのは1次元配列に対する特別な最適化があるから。
わかる?
0399デフォルトの名無しさん2015/08/23(日) 01:19:20.12ID:QlQ/u5s/
整理すると、
(1) 外側の添え字を回すときの速度… 矩形配列 > ジャグ配列 (ジャグ配列は間接アクセスのコストが大きい)
(2) 内側の添え字を回すときの速度… 矩形配列 < ジャグ配列 = 1次元配列 (最適化のため)
で、頻度はほとんどの場合 (1) << (2) なので 矩形配列 < ジャグ配列 となるわけ。
0400デフォルトの名無しさん2015/08/23(日) 01:24:53.24ID:bbkyb+Wi
もう少し面白い話をしろよ、小僧
0401デフォルトの名無しさん2015/08/23(日) 02:11:43.32ID:gVvau93D
フォーム上でEnterキーが押された場合、button1のClickイベントを発生させたいのですが
textBoxコントロールにフォーカス?がある状態だとうまくいきません
調べたらcanselectプロパティがどうのこうのって出ましたけどそんなプロパティ見つかりませんでした
どうやったらうまくいくでしょうか?
0402デフォルトの名無しさん2015/08/23(日) 02:18:14.23ID:NN7eyW37
>>401
イベント自体を発生させたいのか、イベントの処理を実行したいのかによるけど
>>231-233
0403デフォルトの名無しさん2015/08/23(日) 03:09:59.47ID:CLEYS0FF
>>401
Form.AcceptButtonかな
0404デフォルトの名無しさん2015/08/23(日) 06:09:00.56ID:lwIYFdFz
初心者ってレベルの話じゃねーぞ!
0405デフォルトの名無しさん2015/08/23(日) 10:13:20.15ID:yw66evGh
VS2008Std持ってますけど、C#で遊べますか。
0406デフォルトの名無しさん2015/08/23(日) 10:31:13.47ID:QlQ/u5s/
いいえ
そんなゴミは捨ててVS2013 CEをインストールしましょう
0407デフォルトの名無しさん2015/08/23(日) 10:33:41.05ID:K2BugEq8
>>405
使えるけど、今更VS2008使うよりも、VS2015 community(無償)をお勧めするよ。
0408デフォルトの名無しさん2015/08/23(日) 12:58:48.36ID:hc4Y2Ev5
遊ぶ範囲ならVS2015でも十分だけど、まだIDE不安定なんで実戦投入なら2013の方がええかも
0409デフォルトの名無しさん2015/08/23(日) 13:00:44.84ID:QlQ/u5s/
betaとかRCとか入れると後で正式版を入れ直したときに不具合出たりするからやめとけ
0410デフォルトの名無しさん2015/08/23(日) 13:48:03.46ID:lwIYFdFz
chart機能を使いこなしたいのですが思うように出力できません。わかりやすい解説サイトないですか?
0411デフォルトの名無しさん2015/08/23(日) 13:53:26.43ID:DLG0wmge
>>409
VS2015はRTMだよ。
パッケージ版の発売はもう少し先だけど、communityとかは関係ないし。
0412デフォルトの名無しさん2015/08/23(日) 14:01:36.88ID:yw66evGh
おお どもです
普段はC++屋ですが、C#もたのしそという事で、
2015コミュニチを入れてみます。
ばいばいあーりん
0413デフォルトの名無しさん2015/08/23(日) 14:18:15.55ID:gQjOVbxW
>>410
chartってwinFormsの?
体系的な解説サイトはないね
ブログの断片的な解説と
MSDNのヘルプ見て使うしかないね
0414デフォルトの名無しさん2015/08/23(日) 15:17:13.22ID:gVvau93D
>>403
これでいけました。ありがとうございます
0415デフォルトの名無しさん2015/08/23(日) 15:33:25.41ID:c1nLFBNy
>>413
オーマイガ
ありがとう
0416デフォルトの名無しさん2015/08/23(日) 17:16:35.76ID:0gT6iToJ
GroupBox 等いくつかのコントロールで、ForeColorがデフォルトでSystemColors.ControlTextなやつが
OSの方で色変えても追従しません。これってマジでバグだと思うんですがどうですか。

control.ForeColorをみるとSystemColors.ControlTextなんですが反映していません。
明示的に
control.ForeColor = SystemColors.ControlText;
と設定してやらないと反映されません。

まあWindows8以降はこのパーツの色を変えるダイアログがないみたいなんで
いまさらですが
0417デフォルトの名無しさん2015/08/23(日) 20:00:03.06ID:0gT6iToJ
あービジュアルスタイルで指定された色を使うコントロールと、SystemColorsにしたがうコントロールとが
不規則に混在しているというウンコ状態だったんだねぇ

SystemColors.GrayTextなんて不規則の極み

それを解消しようというのがWindows8以降であるというなら納得できます。
0418デフォルトの名無しさん2015/08/23(日) 22:07:43.35ID:fET71OJr
c++の継承クラスのコンストラクタで
引数付きの基底クラスコンストラクタを利用することは可能でしょうか
コンストラクタと同等のvoid返す関数なら呼べましたが重複するため
0419デフォルトの名無しさん2015/08/23(日) 22:08:34.42ID:pgaNpm//
C++スレで聞きたまえ
0420デフォルトの名無しさん2015/08/23(日) 22:19:18.04ID:0gT6iToJ
SystemColorsというかKownColor自体が崩壊していると思うんですけど
MSはどうすんのこれ
0421デフォルトの名無しさん2015/08/23(日) 22:26:14.09ID:idej2sB9
>>420
バグだと思うならマイクロソフトに報告しろ
ここに書いても永遠に修正されないぞ
0422デフォルトの名無しさん2015/08/23(日) 22:28:09.38ID:HkRU0Alf
>>420
どこが崩壊してるのか言ってみろ
0423デフォルトの名無しさん2015/08/24(月) 01:12:09.81ID:Xjdx/XJE
UnitTestでinternalのテストをすることはできますか?

1つのソリューションを複数プロジェクトに分け、
ビルドするときちんと外部から呼び出された場合アクセス制限で失敗してくれますが、
テストはすべて読める設定になっているのか通ってしまいます。

まぁ、ビルドで失敗するんだから必要ない気もしますが。
0424デフォルトの名無しさん2015/08/24(月) 07:47:47.31ID:vU2SL/AS
全くもって正しい挙動に見えるが、何が問題なのか
ちゃんとinternalになってることをテストしたいってことか?
静的言語なんだからそんな自明なテストは要らん
ちなみに他のアセンブリからinternalが見えるかどうかはInternalsVisibleTo属性で設定する
0425デフォルトの名無しさん2015/08/24(月) 12:36:43.05ID:rhWJLdf6
テストでうっかりinternalのプロパティとか変更してやってたとこあって、外部から変更されると保証がとれないからコンパイルエラー起こして欲しいと思ったまでです。
0426デフォルトの名無しさん2015/08/24(月) 18:23:23.88ID:LseiOS9h
抽象的な質問になるがJaneのスレを表示してるような文字ありURLあり
画像まで表示できるようなのは、どんなコントロールを使ってるの?
標準のじゃなく自分で作ってるもの?
0427デフォルトの名無しさん2015/08/24(月) 18:35:11.91ID:JuGWHiO+
個別にJaneのことまで知らんが、普通はWebBrowser使うものです
0428デフォルトの名無しさん2015/08/24(月) 18:43:24.13ID:NeYOKmLP
つSpy++
0429デフォルトの名無しさん2015/08/24(月) 19:33:13.85ID:/7MwCGkP
Jane Styleの80%はパクリでできています
0430デフォルトの名無しさん2015/08/24(月) 20:11:53.75ID:1xaRddtQ
webbrowserをview専用にしたいのだけど、どのようにすればよろしいでしょう?
0431デフォルトの名無しさん2015/08/24(月) 22:11:49.49ID:0a7TzAnO
webbrowserはもともとview専用だろ
0432デフォルトの名無しさん2015/08/24(月) 23:32:05.63ID:R+jett7l
エスパーするとControlにキャストしてEnabled=false
0433デフォルトの名無しさん2015/08/25(火) 00:51:53.08ID:D7q2HpA4
>>432
あざす!
0434デフォルトの名無しさん2015/08/25(火) 21:27:47.39ID:keF/9ok2
質問です

上から下へ進むガントチャートを作ろうとしています
TableLayoutPanelを張って弄ってました
初期位置にPictureBoxをおいて画像1を表示し、「次へ」ボタンを押すと現在地のトコロを画像2に変えて下マスへ新たにPictureBoxを作成し画像1を描画。
をしたいのですが、さっぱり分からないでいます。画像1と2はリゾースへインクルード済みです

全くドコから手を付けていいか分からないのでヘルプです!!お願いします。
0435デフォルトの名無しさん2015/08/25(火) 21:29:13.30ID:8/V4f62Y
>>434
オートメーションでエクセル方眼紙にしとけ
0436デフォルトの名無しさん2015/08/25(火) 22:03:24.60ID:keF/9ok2
>435
最初はエクセル方眼紙にしてたのですが、
・短時間しか使わない(3〜6時間程度)
・頻繁にデータを更新する
・データを保存しない
事から、C#で作る事になりまして・・・。
動的に動かすのが初めてで、悩んでます。
0437デフォルトの名無しさん2015/08/25(火) 22:11:45.83ID:ECs2oTnH
>>434
動的制御でテーブルレイアウトは向かないからフローレイアウトにすべし
0438デフォルトの名無しさん2015/08/26(水) 14:47:22.34ID:/3H2dieP
ループの中で一時的に使う値型やstringはループの中で宣言しても大丈夫ですか?

string s = "";

for (int i = 0 ; i < 10000 ; i++)
{
  s = (なんらかのデータ)

  (なんらかの処理)
}

と書くより、

for (int i = 0 ; i < 10000 ; i++)
{
  string s = (なんらかのデータ)

  (なんらかの処理)
}

とシンプルでいいのかなと思いました。
0439デフォルトの名無しさん2015/08/26(水) 14:57:27.82ID:eC2lze/B
何の問題もない
ループ回数分変数ができるといったことは無い
むしろループの中で宣言しろ
0440デフォルトの名無しさん2015/08/26(水) 15:43:46.08ID:EzE7RPUJ
動きは大丈夫だし見た目はシンプルだけどループの毎に毎回宣言するから、処理が遅くなる
0441デフォルトの名無しさん2015/08/26(水) 15:46:34.15ID:+V3nc+iF
んなアホなw
04424382015/08/26(水) 16:09:46.53ID:/3H2dieP
私も>>440のような心配をしていました。
もちろん、そこがボトルネックになるようなコードを書くわけではないので
たいした問題では無いとは思いますが、問題なければループの中で変数を宣言しようと思います。
ありがとうございました。
0443デフォルトの名無しさん2015/08/26(水) 16:40:58.93ID:ZW9B1mjA
いくら初心者スレでも回答者まで初心者なのは許されるのか?
0444デフォルトの名無しさん2015/08/26(水) 16:46:48.72ID:1VgT2ip6
問題ない
0445デフォルトの名無しさん2015/08/26(水) 16:54:55.52ID:pUWj3Ef8
構造体ならループの外に出した方がいいかも?
0446デフォルトの名無しさん2015/08/26(水) 17:52:14.81ID:RweXho13
正解はよ
0447デフォルトの名無しさん2015/08/26(水) 17:59:08.39ID:KhB9dQbP
太い線分同士の交差判定はどうやって実装すればいいでしょうか?
0448デフォルトの名無しさん2015/08/26(水) 18:04:17.37ID:+V3nc+iF
>>447
直線同士は平行でない限り必ず交わります。
幅がある場合は平行でも交わりますが、その場合はY軸またはX軸の切片で判定すればいい
0449デフォルトの名無しさん2015/08/26(水) 18:09:18.45ID:KhB9dQbP
>>448
細い線だと平行時にする抜けるので困っています
0450デフォルトの名無しさん2015/08/26(水) 18:30:30.38ID:Scd4QTtG
>>446
メモリ領域の確保についてはコンパイラーが頑張るので心配は要らない。
だがループの外と中では代入が行われるかコンストラクターが実行されるかの違いがある
stringについて言えば、代入ではメモリ再確保が省略されることが多い。
よって可読性を優先するなら中、性能を優先するなら外
0451デフォルトの名無しさん2015/08/26(水) 18:34:04.08ID:Scd4QTtG
スレを間違えた。450は忘れてくれ
0452デフォルトの名無しさん2015/08/26(水) 19:00:55.17ID:RaQz9lWW
C#の場合は>>438の前者だと空文字による無駄な初期化が入る分だけごく僅かに遅くなるだろうな
スコープが広いとGCを妨げる可能性もあるので、性能面に話を限っても内側で宣言すべき
0453デフォルトの名無しさん2015/08/26(水) 21:36:37.31ID:pUWj3Ef8
>空文字による無駄な初期化
そんな超極微細な部分が性能に影響するかよハゲ

var s = String.Empty;にしたらどうなんですかズルムケ?
0454デフォルトの名無しさん2015/08/26(水) 21:49:26.96ID:Riihex/j
IL見りゃ一発だろ
0455デフォルトの名無しさん2015/08/26(水) 21:51:20.02ID:8JHcj4Oj
>>452
プログラムの構造の違いによる速度の話してるときに
コーディングスタイルの話にすり替えんなタコ
0456デフォルトの名無しさん2015/08/26(水) 21:53:21.15ID:vD8hxuZC
えっ?
0457デフォルトの名無しさん2015/08/26(水) 22:31:54.33ID:dP9T8Aj9
どれにせよ、スコープを無意味に広げる利点はないんだからループ内に書けばいい

>>453
http://stackoverflow.com/questions/151472/what-is-the-difference-between-string-empty-and-empty-string?lq=1
0458デフォルトの名無しさん2015/08/26(水) 22:36:27.08ID:UDRnRlf6
ブッチャケルト変数は局所化した方が最適化の自由度が上がってパフォーマンスがよくなるのが普通。
下手にスコープを広げると最適化できなくなる。
0459デフォルトの名無しさん2015/08/26(水) 22:51:47.57ID:KhB9dQbP
一つの矩形(XYWH)と一つの点(XY)を持つオブジェクトが全て入る出来るだけ小さな矩形(XYWH)を求める計算式はどう作ればいいでしょうか?
0460デフォルトの名無しさん2015/08/26(水) 22:55:43.20ID:pUWj3Ef8
まず愚直に9通り考えてみようよ
0461デフォルトの名無しさん2015/08/26(水) 23:28:36.48ID:LkVTB1JB
>>459
単純に考えよう
矩形の各頂点と一つの点の計5点を含む矩形を求めればいいだけだ
l = min(x)
r = max(x)
t = min(y)
b = max(y)
0462デフォルトの名無しさん2015/08/26(水) 23:35:59.40ID:uSVZyKS9
中一レベルの問題だなw
0463デフォルトの名無しさん2015/08/26(水) 23:49:51.57ID:KhB9dQbP
>>461
ありがとうございます。
0464デフォルトの名無しさん2015/08/26(水) 23:56:47.26ID:KhB9dQbP
あ・・・でも最大値、最小値を求めるのって時間掛かりそうなので高速化と言う点ではどうですかね?
0465デフォルトの名無しさん2015/08/27(木) 01:50:09.80ID:dljCNrWS
かかんねえよ
とりあえず実装を晒せ
0466デフォルトの名無しさん2015/08/27(木) 06:07:33.10ID:hme97lr4
こんな質問してる時点で高速化もクソもないと思うが
多分直すべき箇所はほかにいくらでもあるよ
0467デフォルトの名無しさん2015/08/27(木) 06:21:35.74ID:hme97lr4
速度に配慮するなら max(x1, max(x2, max(x3, max(x4, x5)))) と書けばいい
もっとも、points.Select(p => p.x).Max() とかやったとしても ID:KhB9dQbP のアプリは全く遅くならないだろうけど
0468デフォルトの名無しさん2015/08/27(木) 07:33:08.81ID:sddxxLdl
MAXで思い出した。LINQ使う場合にMAXとMINを一度に求める方法はないの?
0469デフォルトの名無しさん2015/08/27(木) 07:44:22.70ID:M7ObSeqi
int [] intArray = { ... }
var tmp = intArray.Aggregate(new { Min = int.MaxValue , Max = int.MinValue },(acc,e)=>new { Math.Min(a.Min,e) , Math.Max(a.Max,e) });
みたいな感じ?
0470デフォルトの名無しさん2015/08/27(木) 08:33:01.15ID:l2pLn4YZ
>>467
LinQって動作おそいの?
0471デフォルトの名無しさん2015/08/27(木) 08:36:50.88ID:M7ObSeqi
そんなもん人に聞くほどの話じゃないだろ、自分で確かめろよ
DateTime 使って計測すればいい

LINQは基本遅いが、大量のデータでもメモリーを食いつくしにくいという点に特徴がある
0472デフォルトの名無しさん2015/08/27(木) 09:04:29.60ID:Sd5tuK/H
スマート厨はスマートに書けることだけ気をつけていればいいんだ
欲張るな
0473デフォルトの名無しさん2015/08/27(木) 09:24:11.88ID:sddxxLdl
>>469
ごめんfor文書くよ
0474デフォルトの名無しさん2015/08/27(木) 10:20:17.10ID:xuLv4cQN
後線分X1,Y1,X2,Y2と矩形XYWHとの当たり判定について教えて下さい
0475デフォルトの名無しさん2015/08/27(木) 17:43:55.57ID:M7ObSeqi
普通に、直線(X1,Y1)-(X2,Y2)の直線と、矩形の四辺(X,Y)-(X+W+Y) ... の四直線の交点を順次調べていって
線分および矩形の辺のある範囲内に交点があるかどうかでチェックすれば良いかと思うが・・・
特に考えるような事もないと思うが、まぁ俺よりゲーム系の人の方が詳しいだろうから
専門のサイトをググってみれば良いでしょう
0476デフォルトの名無しさん2015/08/29(土) 04:24:39.83ID:UZo0ebxG
class Program
{
static void Main(string[] args)
{
int hoge1 = 100;
int hoge2 = 200;
int hoge3 = 300;

Test(hoge1);
Test(hoge2);
Test(hoge3);
}
static void Test(int a)
{

Console.WriteLine(a);
}
}
実行すると
100
200
300
と表示されるのですがこれを
hoge1=100
hoge2=200
hoge3=300
と表示したいです
hogeは何千もあるので関数Testの中で処理したいのですが引数に何が使われているか表示させるにはどうしたらよいでしょうか?
0477デフォルトの名無しさん2015/08/29(土) 07:57:15.00ID:Qf3Ob0gy
無理だよ
Testにはintオブジェクトが渡されるだけでMain内でそれが何と呼ばれていたかなんて知ったこっちゃない
0478デフォルトの名無しさん2015/08/29(土) 08:00:35.62ID:zFAuJqk5
Test(nameof(hoge1), hoge1);
これでTestには(“hoge1”, 100)が渡る
ただしVS2015以降
0479デフォルトの名無しさん2015/08/29(土) 08:17:20.75ID:GWG9s9u1
>>476
class Program {
static void Main(string[] args){
int hoge1 = 100;
int hoge2 = 200;
int hoge3 = 300;

Test(() => hoge1);
Test(() => hoge2);
Test(() => hoge3);

}

static void Test<T>(Expression<Func<T>> e){
var member = (MemberExpression)e.Body;
var value = e.Compile()();
Console.WriteLine("{0}={1}", member.Member.Name, value);
}
}
0480デフォルトの名無しさん2015/08/29(土) 08:59:46.05ID:UZo0ebxG
ありがとうございます
>>479さんのをコピペしてみたのですがダメでした
難しい
0481デフォルトの名無しさん2015/08/29(土) 09:04:35.09ID:NLrmjxR3
頭の悪い人はダメダメいうだけで、具体的になにがダメなのか書けない。
でもそれは実はあなたを試しているのだ。
0482デフォルトの名無しさん2015/08/29(土) 09:05:00.48ID:GWG9s9u1
>>480
using System.Linq.Expressions;
0483デフォルトの名無しさん2015/08/29(土) 09:09:43.62ID:GWG9s9u1
>>480
https://ideone.com/NtCCHf
0484デフォルトの名無しさん2015/08/29(土) 09:16:31.02ID:DzY+Y5oQ
変数名が必要という設計について突っ込んだらいかんのか
0485デフォルトの名無しさん2015/08/29(土) 09:35:06.97ID:iZ5IiPu4
そういうのが必要な時は、enum使うかな。数値が重複してる場合は無理だが。
0486デフォルトの名無しさん2015/08/29(土) 09:39:19.99ID:zFAuJqk5
nameof演算子が追加されたことからもわかるように、変数やメンバの名前を直接利用しようという考えは最近ではそう珍しくない
日本人はそもそも言語が違うから自然に表示名と識別子を別けて考えているけど、
ネイティブの人たちからするとそれはDRYに反するように感じるわけ
0487デフォルトの名無しさん2015/08/29(土) 10:07:55.03ID:S0i7Jxlm
DRY??
0488デフォルトの名無しさん2015/08/29(土) 10:17:09.06ID:Qf3Ob0gy
つまりジメジメしてるという事
0489デフォルトの名無しさん2015/08/29(土) 10:46:16.43ID:F2uXL7Ua
引数の表示より何千あるhogeの定義をどうやるつもりなのかが気になる
0490デフォルトの名無しさん2015/08/29(土) 11:01:05.16ID:gmx5ty9e
軽そうなら正規表現か何かで
ガッツリ行くならテンプレートエンジンでも使うんじゃね
0491デフォルトの名無しさん2015/08/29(土) 11:22:34.41ID:2uXZUXcs
>>489
それなw
普通はソースコード上で頑張るようなことはしない
名前と値を持ったファイルを読み込んでシコシコ処理していくのでなぜダメなんだろうか
0492デフォルトの名無しさん2015/08/29(土) 11:49:00.74ID:nwlirrLq
どうでもいいけどdryとか言う人ってださいよね。
solidもださい。

オブジェクト思考に脳みそ染まりすぎだろ
0493デフォルトの名無しさん2015/08/29(土) 12:02:06.33ID:2FNbtqbB
DRYはオブジェクト指向とは関係ないだろ
0494デフォルトの名無しさん2015/08/29(土) 12:57:14.38ID:gmx5ty9e
unix哲学(の最初の一項)だって意味的にはdryですからね
0495デフォルトの名無しさん2015/08/29(土) 13:09:05.52ID:2FNbtqbB
DRYって「コピペすんなカス」ってだけのことだからな
原則とかいう大袈裟な話ではない
0496デフォルトの名無しさん2015/08/29(土) 13:13:37.63ID:HLdP7G1m
>>486
お前変数名を日本語にしてないの?
アメリカ人は自然言語の単語を使ってるのに
日本人が日本語使わなかったら思考のスピードで相当なハンデだろ
何その自虐ぷれい
0497デフォルトの名無しさん2015/08/29(土) 14:29:26.31ID:X3db1xyr
nameof演算子がありがたいのは、リファクタリングする時に、一緒に変わるところだな
以前は >>479 みたいなコード書いていたが我ながらキモイと思いつつメンテの時に楽になるからと書いていた
0498デフォルトの名無しさん2015/08/29(土) 14:46:57.60ID:X3db1xyr
>>489
C++とかで組んでいてdefineでそういうのをやっていたのを移植したいとかそういうんじゃないかとエスパー
それにしても、質問の仕方が頭おかしいw
0499デフォルトの名無しさん2015/08/29(土) 16:39:35.13ID:vqRxT/fZ
C#て、Cのマクロ的なのないのん?
0500デフォルトの名無しさん2015/08/29(土) 16:49:14.95ID:1c8d26Df
がんばれば自分でプリプロセッサーを作ることは可能なんじゃない?
0501デフォルトの名無しさん2015/08/29(土) 16:58:57.77ID:6TJW7glo
頑張らなくても普通にCのプリプロセッサ使えばいい
0502デフォルトの名無しさん2015/08/29(土) 17:05:36.32ID:1c8d26Df
インテリセンス使えないじゃん。
VSの支援あってのC#なんだからVSに統合できる形でないと全然ありがたくないよ。
0503デフォルトの名無しさん2015/08/29(土) 17:13:53.71ID:6TJW7glo
なら諦めろ
C#のプリプロセッサがしょぼいのは完全に意図的なものだし、ほとんど全てのユーザーはそれを受け入れている
VC#でフル機能のプリプロセッサがサポートされることは未来永劫ない
0504デフォルトの名無しさん2015/08/29(土) 17:15:12.44ID:1c8d26Df
なら諦めろ
誰に命令してるつもりなのかねw
0505デフォルトの名無しさん2015/08/29(土) 17:17:32.60ID:X3db1xyr
プリプロセッサは複雑になるとコンパイルが異常に重くなるから入れないんだと思われる
C++のコンパイルが極端に遅い理由がこれ、ほとんどインクルード処理の時間だとか
ファイル数が少なく小規模な内はむしろ高速化支援になるが、大規模なプロジェクトには向かない
0506デフォルトの名無しさん2015/08/29(土) 17:26:30.68ID:iFFHgZ7c
命令口調君って馬鹿だな
0507デフォルトの名無しさん2015/08/29(土) 17:42:44.16ID:DzY+Y5oQ
プリプロセッサとか時代遅れだからに決まってんだろ
0508デフォルトの名無しさん2015/08/29(土) 17:43:49.53ID:bC2lYCvq
何様のつもりだろうね
0509デフォルトの名無しさん2015/08/29(土) 19:03:41.44ID:9ExjS67L
ここまでT4テンプレートの話無し
0510デフォルトの名無しさん2015/08/29(土) 19:23:12.98ID:X3db1xyr
そりゃまぁそういう話じゃないからそんな話は出ないだろうよw
0511デフォルトの名無しさん2015/08/29(土) 19:47:35.54ID:ZpjoPE6S
T4テンプレートってなんかマイナーな感じだけど
バリバリ使ってる人いるの?
0512デフォルトの名無しさん2015/08/29(土) 20:07:17.59ID:zFAuJqk5
T4使いにくいんだよ
エンジンをRazorにしてくれ
0513デフォルトの名無しさん2015/08/30(日) 15:45:54.83ID:NgQJvyWC
>>505
ほんと?
Cのプリプロセス自体はかなり高速だと思うけど。
ぶっちゃけ、テキスト置換だから、型チェックやオブジェクト生成が入ってくるコンパイルより全然負荷かからないはず。

コンパイルが遅いのは、プリプロセッサの仕組みのせいじゃなくて、ヘッダファイルのちょっとした変更が、大影響してしまうような構成になりがちだからでは?
0514デフォルトの名無しさん2015/08/30(日) 16:13:10.60ID:4AK6XXj7
>>513
ホントだよ、これが理由でヘッダファイル無くして、ソースを全部一本につないでコンパイルする方式が検討された
ずいぶん経つが今の所流行っていないみたい、やりたくても色々難しい問題もあるだろうなとは思った
Cが始まった頃は、超大型機でも1メガバイトもメモリーあれば巨大だった
そんな時代には有効だったんだろうけど、今となっては障害でしかない
0515デフォルトの名無しさん2015/08/30(日) 16:14:16.68ID:LnHkXvZY
いやC#のフルコンパイルと比較して遙かに遅いでしょ
遅いのはコンパイルがソースファイル単位なせいでヘッダの解析とIOが馬鹿みたいに大量に発生するため
05165152015/08/30(日) 16:21:11.29ID:LnHkXvZY
被ったけど、>>515は>>513に対するレス
>>514は正しい
0517デフォルトの名無しさん2015/08/30(日) 16:30:11.40ID:NgQJvyWC
>>515
そこに異論は無い。
その通りだと思う。

>>505の
> プリプロセッサは複雑になるとコンパイルが異常に重くなるから入れないんだと思われる

この一文に、引っかかってる。
そんな理由じゃないと思うし、そもそもcのプリプロセスであれば、コンパイルよりはるかに速いし。
繰り返しだけど、コンパイルを遅くする原因があるとすれば、プリプロセッサの負荷じゃなくて、1つのincludeファイルの変更の影響が大きくなるようなソースコードになってるからだと思う。

それは、includeの問題であって、プリプロセッサとは関係なくね?って言う。
0518デフォルトの名無しさん2015/08/30(日) 16:34:08.04ID:4AK6XXj7
いずれにしても、一発で複雑な構文が解析できる今、多段に分けて処理する利点は無いだろうね
必要であればシンプルに大元の文法に組み込むのが良い
0519デフォルトの名無しさん2015/08/30(日) 16:38:50.81ID:4AK6XXj7
現在のC#の #if でさえ、リファクタリングで名前変更の対象外になったり
エラーチェックが行なわれないので、変更忘れが生じやすい
あれも失敗だったと思う
0520デフォルトの名無しさん2015/08/30(日) 16:53:35.21ID:CZuLtDMQ
>>517
>1つのincludeファイルの変更の影響が大きくなるようなソースコード
それは差分ビルドで再コンパイルの範囲が広くなりやすい理由であって、
そもそもコンパイルが遅い理由にはなってないでしょ。
遅いのは、一つのcppファイルをコンパイルするたびに同じヘッダの内容がコピーされるから。
同じものを繰り返し使うならキャッシュしたくなるが、
したくてもマクロのせいでヘッダのコードが同じでもプリプロセス結果が変わる可能性があるから毎回解析しなきゃいけない。
0521デフォルトの名無しさん2015/08/30(日) 16:58:30.22ID:4AK6XXj7
遅さの原因は横に置いといて、現実問題としてC++のコンパイルの遅さは末期症状的である事は確か
あれは駄目だよ

gccやっている連中が問題の核心はプリプロセッサと言っているんだから、まぁそういう事なんでしょうという理解
0522デフォルトの名無しさん2015/08/30(日) 17:11:44.82ID:ZHsXsd14
520も書いてるけど、プリプロセスは1パスで済むとはいえ、そのマクロを使う全部のソースファイルで
毎回毎回行う必要があるわけで、直感的にはいかにも遅そうだ。
0523デフォルトの名無しさん2015/08/30(日) 17:16:50.60ID:4AK6XXj7
>>522
1パスは無理じゃないかな・・・define入れ子や再帰とか見ていると
O(N)は組み合わせ爆発しているに違いない
0524デフォルトの名無しさん2015/08/30(日) 17:19:35.80ID:NgQJvyWC
>>520
>>522
だから、それはincludeの問題であって、マクロが直接の問題じゃないじゃん。。。
0525デフォルトの名無しさん2015/08/30(日) 17:27:13.20ID:ZHsXsd14
>>524
しかし、ファイルインクルードなしのマクロってのは想定として非現実的じゃないの?
そうだとすれば同じことじゃん。

>>523
マクロって前方参照できないから1パスで終了するような気がするけど違うの?
0526デフォルトの名無しさん2015/08/30(日) 17:27:19.21ID:CZuLtDMQ
>>524
マクロがなければいちいち律儀に#includeを展開しなくても
一つのヘッダは一度だけ解析してキャッシュしておけば済む。
0527デフォルトの名無しさん2015/08/30(日) 17:48:33.46ID:sqP4vjJl
DisposeCONの次はMacroCONですか
懲りないねえ
0528デフォルトの名無しさん2015/08/30(日) 17:50:44.54ID:4AK6XXj7
C++からC#に来た時に嵌る罠のすべてを踏み抜いてしまって
世の中が間違っていると叫びたいのでしょうw
0529デフォルトの名無しさん2015/08/30(日) 23:07:45.07ID:RGYvk5eL
アセンブリ参照とかusingで宣言してないものを自動的に解決する方法はありますか?
0530デフォルトの名無しさん2015/08/30(日) 23:11:32.41ID:RGYvk5eL
vscommunity2015を使っていますが、競合の解決がありません
0531デフォルトの名無しさん2015/08/30(日) 23:40:35.11ID:2bT5KToO
>>529
何をやりたいの?
Com以外でアセンブリ参照もしてないのに勝手に解決したら逆に不具合の原因になるわ
0532デフォルトの名無しさん2015/08/31(月) 01:27:10.57ID:1Hzl74CC
「競合の解決」はアセンブリ参照に追加されたアセンブリで参照が解決できない場合は出てこない
この仕様は8年くらい変わってないぞ
どのエディションでも変わらん

昔は出てきた気がしても200%君の勘違いだ
0533デフォルトの名無しさん2015/08/31(月) 07:43:57.51ID:49AFrTvp
>>529
MEFとか
0534デフォルトの名無しさん2015/08/31(月) 07:48:42.60ID:84YJanmx
コードをコピペしたけどusing部分がないし参照アセンブリもわからないので動かない
とかじゃね?
0535デフォルトの名無しさん2015/08/31(月) 08:52:05.41ID:Iz1Csr5a
>>534
図星です。usingに何を追加したらいいか調べる方法はありませんか?
0536デフォルトの名無しさん2015/08/31(月) 11:04:46.40ID:evG1eZoZ
コードの中で使われてるクラス名の中で、
単純すぎる英単語ではないものを探して
それをwebで検索する
0537デフォルトの名無しさん2015/08/31(月) 11:09:46.01ID:f762krvc
Eclipseのjavaにはそんな機能があったな。
VSには型名から名前空間を推論するような機能はない。
ほとんどの場合は型名でぐぐってヒットしたMSDNのページに書いてある名前空間を書けばいいよ。
当たり前だけど。
0538デフォルトの名無しさん2015/08/31(月) 12:20:29.99ID:84YJanmx
usingの前にまずアセンブリがないとインテリセンスで候補も出ないからな
片っ端から参照に追加してみるとか
ネットワーク関係だったらSystem.Web.dllとかそういう感じで
0539デフォルトの名無しさん2015/08/31(月) 12:51:42.16ID:Iz1Csr5a
>>536-538
初歩的な質問にご丁寧にありがとうございます!
0540デフォルトの名無しさん2015/08/31(月) 14:43:51.85ID:ebR3Cp6u
MSDNで該当クラスを調べたら、こんな感じで載ってるぞ。

> 名前空間: System.Xml
> アセンブリ: System.Xml (System.Xml.dll 内)
0541デフォルトの名無しさん2015/08/31(月) 22:50:51.89ID:CJf1m9QL
C#使っててよく目にする「アセンブリ」って何でつか?
ソースをコンパイルした物ではありそうですが…
0542デフォルトの名無しさん2015/08/31(月) 22:59:32.60ID:01hWgQ/p
厳密には違ったかもしれないけど、プロジェクトをビルドして出来るバイナリ(dllやexe)のことだと
理解すればいいと思うよ。
0543デフォルトの名無しさん2015/08/31(月) 23:48:27.15ID:v2yJkcjh
インサイド .NET Framework に詳しい事が書いてある
とりあえずこの辺りを参考にすれば良いかと
http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_01/idnfw11_01_02.html
0544デフォルトの名無しさん2015/09/01(火) 00:34:31.49ID:6uxEPvBd
>>542
個人的にもそういう単位としてボンヤリ把握してました

>>543
2003/06/25っすか…結構昔からこの文章あったのに
自ら探し出せずに、探し出して頂き申し訳ないです
> アセンブリとは、複数のモジュールがまとまったものである。
> モジュールは、物理的なファイルやインメモリのデータ、
> つまり具体的なビット・データを表している。
図をいっぱい描いてくれていて分かりやすいっす
0545デフォルトの名無しさん2015/09/01(火) 10:14:03.39ID:feTVzd/Y
実行時にクラスに属性を付けることはできますか?
CoreTweetというライブラリの各種データにServiceStack OrmLiteの属性をつけてデータベースに直接ぶちこみたいのですが。
0546デフォルトの名無しさん2015/09/01(火) 11:29:24.57ID:5YkoLib8
属性を参照する側がTypeDescriptorを使って属性取得してるならTypeDescriptor.AddProviderでできる
単純にPropertyInfo.GetCustomAttributesとか使ってたら無理
0547デフォルトの名無しさん2015/09/01(火) 16:04:03.42ID:VBcTY/2M
c#に詳しい人と知り合いになりたい
何処に行けば会えますか?@関西
0548デフォルトの名無しさん2015/09/01(火) 16:46:35.87ID:Vw21kw9F
IntPtrってCでいうvoid*ですよね?
int型ポインタって解説してるサイトがちらほらあるんですけど、間違いですよね?
0549デフォルトの名無しさん2015/09/01(火) 16:55:04.37ID:V9jFfi3j
どっちかってーとstdint.hのintptr_tじゃねーのかな
0550デフォルトの名無しさん2015/09/01(火) 17:05:10.40ID:imN1BkIQ
>>548
それでいいと思う
0551デフォルトの名無しさん2015/09/01(火) 17:08:38.16ID:QHJ7MDUQ
>>548
IntPtrは一応整数型ということになってる
実行環境のポインタと同じサイズをもつ整数
0552デフォルトの名無しさん2015/09/01(火) 17:14:38.72ID:imN1BkIQ
>>551
整数だと認識してもらっては困るから別の型になってるんでしょw
Intって付いてるのはサイズが環境依存であることを示すためであって深い意味はないと思う
0553デフォルトの名無しさん2015/09/01(火) 17:28:57.67ID:QHJ7MDUQ
>>552
いやInt16, Int32, IntPtr ってことだよ
Ptrはサイズを表してる
MSDNの解説にもちゃんと整数型だと書いてある
実際の用途はともかく、技術者の性でどうしても整合性を取りたかったんだろう
UIntPtrがあるのも対称性がないと気持ち悪いからというだけらしいし
0554デフォルトの名無しさん2015/09/01(火) 17:32:33.64ID:OpYBQWzE
用途としてはプラットフォームのポインタ用だからvoid*の代わりと言えるが
型としてはポインタ長の整数型だね、直接ポインタ演算子は使えないし
ポインタはポインタで別にあるし、内部的にはポインタでも実装次第だしね
05555482015/09/01(火) 18:12:24.85ID:Vw21kw9F
IntPtrが型としては整数型だというのはどこに書いてあるんでしょうか?
MSDNには「ポインターまたはハンドルを表すときに使用されるプラットホーム固有の型」とあるのですが

IntPtr i = 123; とできないのに整数型だと呼ぶのはいまいち腑に落ちないです
0556デフォルトの名無しさん2015/09/01(火) 18:32:48.53ID:DTmCsNDM
>>555
その下の解説まで読め
日本語版だと訳がちょっと曖昧だと思ったら、英語版へ
0557デフォルトの名無しさん2015/09/01(火) 19:09:56.33ID:4FVO9lh5
>>547
関東の初心者だけど一緒に切磋琢磨しないか?
0558デフォルトの名無しさん2015/09/01(火) 19:13:16.32ID:QG14L4uR
>>547
関西にはコピペプログラマーしか居ないんじゃないかな?
そもそも使えないヤツと知り合いになってもメリット無いじゃん

馴れ合いたいなら東京出てきた方がいいと思うよ マジで
05595482015/09/01(火) 20:09:08.34ID:Vw21kw9F
>>556
ほんとだありました
void*と等価なものだと勝手に思い込んでいましたが、
>>554さんの説明でよく理解できました

みなさんありがとうございました
0560デフォルトの名無しさん2015/09/01(火) 20:09:11.63ID:6HXlr4NM
>>555
整数型というのはビットの表現が素直に数の表現になるような型のことを言ってるんじゃないかな
0561デフォルトの名無しさん2015/09/01(火) 20:09:21.25ID:XP1xtbgV
しっくりこねェェェェェえええええ
0562デフォルトの名無しさん2015/09/01(火) 20:13:50.92ID:6HXlr4NM
深く考えなくても……
C#にもunsafeならvoid*あるしIntPtrから単純にキャストできるし
0563デフォルトの名無しさん2015/09/01(火) 20:38:56.56ID:4iNcN5Ov
>547
大阪ならわんくま同盟一択だと思うよ
0564デフォルトの名無しさん2015/09/01(火) 20:50:55.11ID:XBCKPgOq
>>560
青臭い話だけど、コンピータ上のいかなるデータも実態はただのバイト列であって、
それを整数とみなしたり文字列とみなしたりしてるに過ぎない。(当たり前)

整数として扱えず、整数とみなす必然性もないものを整数だと言うのは正しい態度とは思えんね。
ほとんどの実装ではポインタの実態はただのアドレスだし、ハンドルの実態はただのintだ、
言えるのはあくまでそこまでのはず。
0565デフォルトの名無しさん2015/09/01(火) 21:30:23.54ID:6HXlr4NM
>>564
アドレスが整数じゃない実装、アーキテクチャってあるのん?
0566デフォルトの名無しさん2015/09/01(火) 21:32:10.05ID:6HXlr4NM
あーなんか形而上学に入り込みそうだから撤退します
役に立たない議論になりそうなんで
0567デフォルトの名無しさん2015/09/01(火) 21:35:53.16ID:N75gTAce
>>563
ありがとうございます
こんな集まりがあったんですね!初めて知りました
0568デフォルトの名無しさん2015/09/01(火) 21:47:02.99ID:XP1xtbgV
わんくまでググると予想に「うざい」って出てくるよね
どんだけ嫌われてんだ
0569デフォルトの名無しさん2015/09/01(火) 21:49:24.43ID:+bLLLQSo
わんくまはサイトが落ちすぎという印象しかない
0570デフォルトの名無しさん2015/09/01(火) 21:57:28.06ID:i/COrQBd
なんでもいいから適当にIT系の勉強会行けばC#に詳しい人くらいいるよ
小さめの集まりのほうが話しやすかったりするし
0571デフォルトの名無しさん2015/09/02(水) 00:50:24.68ID:2yeGckFh
>>564
IntPtrが整数型ならDateTimeなんかも整数型になるもんな
0572デフォルトの名無しさん2015/09/02(水) 01:00:26.23ID:spisOxh2
整数型というなら、通常整数に対して行う事ができるであろう、基本的な演算をサポートしていない事にはな
なにをもってして、整数というのか、という整数の定義みたいな話だけど、
少なくとも四則演算ぐらいはサポートしていない事には整数型とはいえないだろう
0573デフォルトの名無しさん2015/09/02(水) 01:51:29.75ID:ON9RlsNw
まぁC#で整数型かっていうと加減算のみで微妙だけど、ポインタ型ではないという意味で、でしょ
Marshal.AllocHGlobalオーバーロードなんかではsize_t相当になったり、ハンドル然りアドレスには限らんと
CLIだとnative int (native size integers)なんだけどな…用途限られるからってサポートしてねぇんだろうな
0574デフォルトの名無しさん2015/09/02(水) 03:27:05.54ID:kn3w+K9e
非アクティブ時も常に画面前面に表示し、ブラウザを操作しながらチラ見できる簡易メモアプリを作ろうと思っています
ブラウザ(IE)上でクリックしたURLを取得し、ページごとに違ったメッセージを表示する機能が欲しいのですが
IE上でクリックしたURLを取得する為に良い方法はございませんでしょうか

低レベルな質問で申し訳ありませんがよろしくお願いいたします
0575デフォルトの名無しさん2015/09/02(水) 06:56:02.83ID:QLZy+vzo
ChromeかFirefoxに乗り換えて拡張機能作る
0576デフォルトの名無しさん2015/09/02(水) 07:43:49.86ID:d7Q3fn/H
local proxy
0577デフォルトの名無しさん2015/09/02(水) 09:44:55.81ID:kn3w+K9e
>>575
後出しになって申し訳ないのですが、対象のページがIEでしか閲覧できない上に
セキュリティの為にそういったブラウザ上で走るスクリプトの挙動を制限しているページなのです

どうにか外部のアプリケーションからクリックしたURLを読み取りたいというか、最後に開いたwebページのURLを特定したいのですが
何か良い方法はございませんでしょうか
0578デフォルトの名無しさん2015/09/02(水) 10:52:14.62ID:d7Q3fn/H
馬鹿らしい
0579デフォルトの名無しさん2015/09/02(水) 12:07:26.91ID:OPX/Zhtw
IE依存でいいならBHOを書けばいいだけだけど。
IEオワコンだしな
0580デフォルトの名無しさん2015/09/02(水) 12:32:30.73ID:Zy5vyS3O
Edgeの方は従来のアドオンが排除されてChrome/Firefox互換になったしな
今更COM弄るのは時間の無駄だからやめとけ
0581デフォルトの名無しさん2015/09/02(水) 18:34:00.54ID:OPX/Zhtw
まあ必要なら書けばいい

すごく省略するけど

SHDocVwを参照にいれて
IObjectWithSiteを実装して
SetSiteでsiteオブジェクトをIServiceProvider(COMのほう)にキャストして
そいつ.QueryService(SID_SWebBrowserApp, IID_IWebBrowserApp,...)で出てきたやつをSHDocVw.WebBrowserにでもキャストして
そのオブジェクトのSHDocVw.IWebBrowser2.NavigateComplete2イベントでナビゲーション完了を検知できる

そのクラスのGUIDを
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
に書き込むコードをComRegisterFunction属性をつけたメソッドに実装して

ビルドしたdllをregasmで登録する

ふぅ。
0582デフォルトの名無しさん2015/09/02(水) 22:31:06.29ID:bYb+8rak
C#で使えるORMのまとめサイトみたいのありませんか?
OrmLiteというのが良さそうだったのですが個人で買える価格ではなかったので他のを試してみようと思ってます。
0583デフォルトの名無しさん2015/09/02(水) 22:37:31.68ID:pGCnzLhW
>>582
3年前ので古いけど
neue cc - C#のO/Rマッパーのパフォーマンス測定 Part2
ttp://neue.cc/2012/01/17_363.html
0584デフォルトの名無しさん2015/09/02(水) 22:57:17.06ID:u5IS45iw
パフォーマンス気にしないならEF
0585デフォルトの名無しさん2015/09/03(木) 00:34:20.41ID:d+d07Uhn
EntityFrameworkとNHibernateは重すぎだろ
アセンブリ読み込むだけで数秒かかるとか狂ってる
データ管理ツールをコンソールアプリで作ったら苦情殺到したわ

無料時代のOrmLiteから派生したNServiceKit OrmLiteという無料のがあるよ
Lazy使えないせいでソートすらままならないなど最新の本家とは絶望的な差があるけど
0586デフォルトの名無しさん2015/09/03(木) 00:50:10.72ID:y+U1/g+r
OrmLiteいつの間にか年間999ドルになってるのな。
Code FirstでLINQ使えてXamarinでも動いて軽いのは他にないからな。
にしても高い。

使ってる奴いるのかよw
0587デフォルトの名無しさん2015/09/03(木) 03:25:31.20ID:NV8CB+ic
C# で自動でスウィングしながらしごいてくれるプログラムを組むにはどうしたらいいですか?
0588デフォルトの名無しさん2015/09/03(木) 03:54:42.58ID:VwE03MRI
コーディングしてくれる人に1千万円渡す
0589デフォルトの名無しさん2015/09/03(木) 12:01:45.56ID:UsUaI/IS
食べログはスポンサーの悪口を書かれると記事を消します!これってステマでは?

http://know-how-tree.com/archives/2324
0590デフォルトの名無しさん2015/09/03(木) 12:32:50.61ID:Mtr7VddV
ステマの意味ちがくね?
0591デフォルトの名無しさん2015/09/03(木) 14:58:49.20ID:uOV7ZnOE
>>581
遅くなりましたがありがとうございます
正直どれもこれも見た事の無いメソッドばかりですが一つ一つ調べて実装してみたいと思います
0592デフォルトの名無しさん2015/09/03(木) 22:00:39.38ID:AjZjPQkB
相談室でこちらのスレを勧められました、質問させてください。
フォームを透明にするとデスクトップが見えると思います。
さらにラベルを半透明にすればデスクトップが透けて見えると思います。

ですが、ラベルを半透明にしてもフォームの透過色になってしまいます。
これの解決策はないでしょうか。
0593デフォルトの名無しさん2015/09/04(金) 00:57:44.17ID:hxJ++Prv
ラベルを半透明なんて出来たっけ?w
0594デフォルトの名無しさん2015/09/04(金) 01:13:08.03ID:uAc06XW5
>>593
完全透明には出来るのですが、半透明が実現できなくて・・・
0595デフォルトの名無しさん2015/09/04(金) 02:59:04.74ID:E9RsnO5B
マルチポストするならルールを守れよ
ttp://dixq.net/forum/viewtopic.php?f=3&t=17002&sid=79864fbba0aa822f1ce369c72049d93d
0596デフォルトの名無しさん2015/09/04(金) 03:21:32.31ID:zOqkWA0Q
>>595
くっだらね。馬鹿じゃねえのお前。
0597デフォルトの名無しさん2015/09/04(金) 03:27:16.55ID:zOqkWA0Q
>>594
Formのクライアント領域の上に、クライアント領域と同じサイズの

(1) 背景色を透明
(2) 適当な不透明度に設定

した別のFormを表示して、そのFormの上のラベルを置けば一応できる。
0598デフォルトの名無しさん2015/09/05(土) 03:05:01.61ID:8l8uioFl
>>592
そもそも何でそんな変な事したいんだよ?
0599デフォルトの名無しさん2015/09/05(土) 11:48:43.72ID:7rmO370P
描いた線や図形を粘土工作みたいに
引っ張って形を変えられるペイントツールを作りたいのですが
C#で作れますか?
0600デフォルトの名無しさん2015/09/05(土) 12:04:26.44ID:yNAOhLZf
簡単に作ろうと思わなければ
(引っ張った場合の点の動作まで自分で計算して描画できるなら)
作れるよ
0601デフォルトの名無しさん2015/09/07(月) 08:27:28.79ID:8RjKVv09
1個の参照

みたいなのが各関数の上に表示されるので見づらいから消したいのですが、
オプション探しても見つかりません。
どうすれば消せますか?
0602デフォルトの名無しさん2015/09/07(月) 08:56:23.04ID:xgRymLq/
バックグラウンドスレッドである出来事
↓
BindingSourceにその出来事の情報をオブジェクトとしてAdd
↓
DataSourceにそれを設定してあるDataGridViewに表示(※)

ということをやりたいんですが、
※のところでSystem.InvalidOperationException(有効ではないスレッド間の操作)がスローされてしまいます。
これをUIのスレッドにマーシャリングさせる方法を教えて下さい。

もしかしてバインディングじゃなくて自前でやらないとダメだったりしますか?
0603デフォルトの名無しさん2015/09/07(月) 09:10:41.28ID:M58p8v+F
DataGridViewと同じスレッドでBindingSourceを作る
バックグラウンドスレッドからBindingSourceを操作する時はDataGridViewのBeginInvokeを使う
0604デフォルトの名無しさん2015/09/07(月) 09:33:49.59ID:xgRymLq/
ありがとうございます。
はやり BidingSourceとDataGridView は1対1じゃないとまずいわけですね。
BidingSource.DataSourceに割り当てたコレクションをバックグラウンドスレッドで触るようにしてやってみます。
0605デフォルトの名無しさん2015/09/07(月) 10:54:07.95ID:M58p8v+F
はやらない
0606デフォルトの名無しさん2015/09/07(月) 11:16:37.13ID:Zv2NdEDv
>>601
探してみたけど、その一個の参照がどこに出てるのかわからなかった
0607デフォルトの名無しさん2015/09/07(月) 11:59:59.33ID:8RjKVv09
>>606
ttp://cdn-ak.f.st-hatena.com/images/fotolife/s/shiba-yan/20130708/20130708005533.png
例えばこういうやつ。
何個の参照
っていうのが全ての関数などの先頭に追加されて、煩わしい。
0608デフォルトの名無しさん2015/09/07(月) 12:28:28.23ID:M58p8v+F
初めて見た
2015だと出るのか?
それとも何か設定すれば出るのかな
0609デフォルトの名無しさん2015/09/07(月) 12:30:55.27ID:Zv2NdEDv
ググったけど、CodeLensと言うらしい
瀬底のエディタのすべての言語のとこにあるみたい
0610デフォルトの名無しさん2015/09/07(月) 12:31:21.20ID:Zv2NdEDv
瀬底→設定
0611デフォルトの名無しさん2015/09/07(月) 12:32:23.20ID:62mgHfQ4
>>608

VS2013でも出るぞ

ツール > オプション の
テキストエディター
 > すべての言語
  > CodeLens
   > CodeLens を有効にする
0612デフォルトの名無しさん2015/09/07(月) 12:39:50.67ID:8RjKVv09
>>611
ありがとうございました。
C#だけ消すというのは出来ないんですね。
全ての言語で無効にします。
0613デフォルトの名無しさん2015/09/07(月) 12:42:39.92ID:Zv2NdEDv
ちなみに、、、
>CodeLens は、Visual Studio Enterprise エディションと Visual Studio Professional エディションでのみ使用できます。 Visual Studio Community エディションでは使用できません。

だって、意外なとこにCommunityの差別化が。
まあチーム向けの機能みたいだからなあ。
0614デフォルトの名無しさん2015/09/08(火) 17:20:18.96ID:HZZtDHiw
デバッグビルドとリリースビルドで参照設定もそれに応じて変える場合、
最新のC#だと、どういう方法が最も一般的ですか?
0615デフォルトの名無しさん2015/09/08(火) 19:08:29.89ID:PCnrXxe4
できない
プロジェクトファイルを直接編集するしかない
バイナリ分けるのなんて古いよ
実行時に設定で切り替えるのが普通
0616デフォルトの名無しさん2015/09/08(火) 21:09:05.34ID:02ci/Ksg
プロジェクト設定の連動と条件付きコンパイルを組み合わせるのが普通じゃないの?
0617デフォルトの名無しさん2015/09/08(火) 21:11:35.61ID:m2TIClS+
参照は無理でないか?
0618デフォルトの名無しさん2015/09/08(火) 21:39:32.31ID:02ci/Ksg
だから、別に参照を変えなくても要は動作が変わればいいんでしょ
0619デフォルトの名無しさん2015/09/08(火) 22:14:25.26ID:sosFruyq
ソースコードが手元にあるとは限らないし、
自前のライブラリでもプロジェクトごと参照するよりDLLだけ持ち運んだ方が便利な場合もあるだろう
まあ自前ならそもそもRelease版だけで問題なく使えるように作るべきだが
0620デフォルトの名無しさん2015/09/08(火) 23:34:02.75ID:b3rQEipJ
それだったら、試してないが恐らくdllを自動でプロジェクト出力のフォルダにコピーしないようにしておいて、
ビルドイベントでコピーするようにすれば出来るんじゃないの?
0621デフォルトの名無しさん2015/09/09(水) 00:14:35.30ID:3TNgmGVd
普通はGitとかSvnを使うものじゃね?
0622デフォルトの名無しさん2015/09/09(水) 02:17:52.49ID:yjluUBen
初心者だけど質問させてください
フォーム上にpictureboxがあるのですが、フォームの背景をTransparentKeyで透過させると
pictureboxの画像のその色まで透過してしまいます。ちなみにpictureboxの背景は透過させています。

・フォームは透過させる
・画像は透過させない
・pictureboxの背景は透過させる
・PNG形式の画像の透明部分は透過させる

以上のことを可能にするにはどのようなアプローチがあるでしょうか?
どなたか教えてください。
0623デフォルトの名無しさん2015/09/09(水) 03:46:44.99ID:exo6PPPq
ダブルとか配列からまとめて変数にうけることはできますか?

pythonでいうところの
(a,b,c) = f() # タプルを返す関数
みたいなことがやりたいのですが

var a,b,c = f();
0624デフォルトの名無しさん2015/09/09(水) 03:51:39.82ID:aWxFdGjX
>>623
f(out a,out b,out c);
がせいぜいかな
0625デフォルトの名無しさん2015/09/09(水) 14:30:48.07ID:bQJXzGrX
IISでWebサイトを立ち上げているのですが
認証方式は統合Windows認証にしています。
ここのHttpWebRequestでアクセスするとはじかれてしまいます。
もちろんユーザーID&パスワードを指定すればいいのですが
それではあまり意味がないのですが、どうしたら
IEでアクセスしたときのように認証されるのでしょうか?
0626デフォルトの名無しさん2015/09/09(水) 15:06:30.58ID:H6QLcVNI
認証を有効にしたら認証なしでつながらなくなりました。
認証はしたくありません。どうすればいいですか?
ってこと?Windows認証をやめたら?

そもそもIISでWebサイトを立ち上げるという行為そのものが
10年早いんでないかい?
セキュリティ事故を起こさないうちにやめるか、金払って
他の人にやってもらいなよ。
0627デフォルトの名無しさん2015/09/09(水) 15:08:42.14ID:hD/cf+ZG
>>624
ありがとうございます
0628デフォルトの名無しさん2015/09/09(水) 15:57:34.26ID:UbDBGCr0
>>626
IISインストールしたら自動的にwebサイト立ち上がるから誰でもwebサイトくらい作れるだろ
0629デフォルトの名無しさん2015/09/09(水) 18:12:59.69ID:cb5AyzMy
Windows統合認証をHTTP上でやれば
0630デフォルトの名無しさん2015/09/09(水) 18:14:02.50ID:cb5AyzMy
途中で書き込んだ

資格情報を設定したら行けたような
0631デフォルトの名無しさん2015/09/09(水) 18:29:21.77ID:zMjgz4R+
うん、いけるね
0632デフォルトの名無しさん2015/09/10(木) 19:50:19.22ID:moL6u3Le
二次元配列に対してArray.IndexOfのようなことをしたい場合、どのように記述すればいいのでしょうか?
int[,] aaa = new int[2,2]{{0,0},{0,999}};
のような場合に、999からインデックスの1,1を求めたいのですが・・・・よくわかりません
どうかよろしくお願いいたします
0633デフォルトの名無しさん2015/09/10(木) 20:33:17.64ID:gqaRleMn
>>632
SelecyMany使えばいいんじゃね
試してないけど、SelectManyは多次元データを一次元データに変換すると覚えている
0634デフォルトの名無しさん2015/09/10(木) 20:46:20.91ID:yxh9znUn
>>632
単純にforで回したら
http://ideone.com/wrdTHS
0635デフォルトの名無しさん2015/09/10(木) 22:11:15.74ID:Q2vaRfqD
>>632
LINQを使うとこうなる
拡張メソッドを使っている事に注意

http://ideone.com/crpU9B

この例だと999がある場所を全て表示する
0636デフォルトの名無しさん2015/09/11(金) 06:27:57.04ID:9Sw3jhKV
>>635
拡張メソッド無しでも書けるよ
その代わり一行がめちゃくちゃ長くなるけど
こうなると分割したくなるよね

http://ideone.com/cPDFIG
0637デフォルトの名無しさん2015/09/11(金) 07:15:10.77ID:OT8vfBSo
環境変数pathに追加するのって全バージョンのパス?
0638デフォルトの名無しさん2015/09/11(金) 07:32:55.70ID:4FdfTdDR
環境変数を汚すのは知恵遅れだけです
0639デフォルトの名無しさん2015/09/11(金) 07:42:14.25ID:c5zHOJbt
質問が知恵遅れっぽいから間違っていないな
0640デフォルトの名無しさん2015/09/11(金) 10:51:59.19ID:GHVwR1ig
>>638
>環境変数を汚す
汚すって何だよ。
デフォルトのまま使うのがいいって思い混んでるのかよ。
0641デフォルトの名無しさん2015/09/11(金) 10:58:23.06ID:/V25QaK6
そらそうよ
0642デフォルトの名無しさん2015/09/11(金) 10:58:49.68ID:vjbhKGNa
コマンドラインからビルドしたいってことなんだろうけど、実行するcsc.exeと同じバージョンにすればいいだけじゃね
0643デフォルトの名無しさん2015/09/11(金) 11:10:54.40ID:GHVwR1ig
>>641
何言ってんだよ。
現代社会は環境破壊の上に成り立っているんだよ。プログラム技術向上の為には環境変数破壊が必要なのさ
0644デフォルトの名無しさん2015/09/11(金) 22:48:41.25ID:P60+h6Zx
フォームのメソッドですが、コンパイルエラーになります。
MethodInvokerは1個の引数はだめとか。

private void InvTest(string text)
{
 if(this.InvokeRequired){
  this.Invoke((MethodeInvoker)(text=>this.InvTest(text)));
 }else{
  /* 処理 */
 }
}

これはコンパイル通ります。

private void InvTest(string text)
{
 if(this.InvokeRequired){
  this.Invoke((MethodeInvoker)(()=>this.InvTest(text)));
 }else{
  /* 処理 */
 }
}

確かにラムダ式に引数を与えなくても動作としては問題ないのですが、
コンパイルエラーの意味がわかりません。
textはラムダ式の引数であって、MethodInvokeの引数ではないと思うのです。
0645デフォルトの名無しさん2015/09/11(金) 22:59:25.43ID:WE/d+c/8
MethodeInvoker という型の定義を見なさいよ。

public delegate void MethodInvoker()

引数はないでしょ。
デリゲート型は戻り値と引数の型とその数によって定義される型ですよ。

ちなみにMethodeInvokerは古いデリゲートです。ActionやFunctionを使いましょう。
0646デフォルトの名無しさん2015/09/11(金) 23:07:55.22ID:WE/d+c/8
ラムダ式はデリゲートの簡易書式です。

text=>this.InvTest(text)

これは型としては
void Hoge( string s )というデリゲート型になります。MethodInvoker とは引数の型が合いませんよね。
0647デフォルトの名無しさん2015/09/11(金) 23:10:33.58ID:kjObb2vq
>>646
嘘つきは去れ
0648デフォルトの名無しさん2015/09/11(金) 23:13:40.81ID:WE/d+c/8
>>647
死ねよカス
0649デフォルトの名無しさん2015/09/11(金) 23:26:53.36ID:kjObb2vq
>ラムダ式はデリゲートの簡易書式です

なんて嘘を吹聴するゴミ野郎が何か吠えてるな
0650デフォルトの名無しさん2015/09/11(金) 23:44:10.17ID:JzEtAnK/
ラムだっちゃさん?
0651デフォルトの名無しさん2015/09/11(金) 23:44:37.76ID:STNjYshE
ラムダ式はメソッドだよ
デリゲートのように見えるのは、「メソッド」からシグネチャが適合するデリゲート型への暗黙変換があるから
06526442015/09/11(金) 23:59:16.94ID:P60+h6Zx
ありがとうございます。

そうなんです。だから(MethodInvoker)とカッコでくくっているのでキャストと
思うのですが、どうして引数が不正と言われるのかがわからないのです。
0653デフォルトの名無しさん2015/09/12(土) 00:00:57.19ID:1dnwRa1/
>>652
>>645見てそれ言ってんの?
0654デフォルトの名無しさん2015/09/12(土) 00:12:46.79ID:HOLpd5HQ
>>652
InvTestの引数が不正なんじゃなくて、一つの引数を取るメソッドである text => this.InvTest(text) が
MethodInvokerデリゲート型に適合しないという意味だよ
適合しない理由は>>645の通り
繰り返すが、ラムダ式 text => this.InvTest(text) はそれ自体がメソッドなんだ
0655デフォルトの名無しさん2015/09/12(土) 01:30:46.48ID:21wYen3l
質問です
現在WPFとC#を使用しているのですが、

public partial class HOGE<T> : UserControl where T:hoge

このようにジェネリックとUserControl継承を同時に行うと何故か「InitializeComponent」などが全て「現在のコンテキスト内に含まれていない」とエラーが出てしまいます

ジェネリックとUserControlを同時に使用する方法はないのでしょうか?
0656デフォルトの名無しさん2015/09/12(土) 03:15:29.47ID:x3y8hPo7
InitializeComponent などがインプリメントされているほうの分割クラス定義は
ちゃんと同じシグネチャを持つジェネリックになってるか?
0657デフォルトの名無しさん2015/09/12(土) 04:33:05.46ID:pr3IVMVd
>>652
何が「そうなんです」かわからないし、どうしてキャストすれば大丈夫だと思ったのかもわからない
論理的思考力が根本的に欠けている
0658デフォルトの名無しさん2015/09/12(土) 04:40:19.71ID:y3tQTgtb
>>651
嘘つきは去れ
0659デフォルトの名無しさん2015/09/12(土) 04:47:20.12ID:y3tQTgtb
ラムダ式は匿名関数で
デリゲートのように見えるのは、匿名関数からシグネチャが適合するデリゲート型への暗黙変換があるから
メソッドからデリケートへの暗黙変換は関係ない
匿名関数にはラムダ式と匿名関数式の二つがある
0660デフォルトの名無しさん2015/09/12(土) 07:49:40.68ID:21wYen3l
>>656
確かにpartialでxaml.csの方にしか設定していませんでした
…ただ恥ずかしながら、分割されたクラスはどこに記述されているのでしょうか?
他にはxamlファイルの
<UserControl x:Class="HOGE>
ぐらいしか見当たらないのですが、どうやらそこに<T>とするようじゃないみたいですし・・・
0661デフォルトの名無しさん2015/09/12(土) 07:56:35.47ID:u8bQrXrf
CPUの各コア温度をプログラムで取得したいのですが、どうやれば良いでしょうか。
(デバイスドライバーを自作するのは無しで)
WMIを使う方法は試しましたが、マザーボードが対応していないようでした。
0662デフォルトの名無しさん2015/09/12(土) 13:13:18.57ID:5QpLz49+
>>661
ttp://www.cpuid-pro.com/products-system-monitoring-kit.php
有料っぽいけどあったわ
0663デフォルトの名無しさん2015/09/12(土) 14:52:38.24ID:1mS4NSAq
>>661
cpu-zとかあるやん?
06646442015/09/12(土) 15:02:08.62ID:WFibBaA+
引数1個のメソッドを引数なしのデリゲートにキャストしようとしてエラーとなっていたのですね。
了解です。
キャストの(MethodInvoker)がメソッドのように振る舞ってるという風に
エラーメッセージを読み違えていました。
ありがとうございます。
0665デフォルトの名無しさん2015/09/12(土) 15:12:10.06ID:u8bQrXrf
>>662
情報ありがとうございます。
CPUID HWMonitorの中身(SDK)で、有償みたいですね。
これがやっていることを知りたいのですが、これ以上はスレ違いかな。

>>663
自分でツールを作りたいんです。
0666デフォルトの名無しさん2015/09/12(土) 15:54:39.40ID:PUofwZys
>>665
ググったらすぐ出てくるものを他人に聞く人間のクズには
答えてやらないことにしている。
0667デフォルトの名無しさん2015/09/12(土) 15:59:13.01ID:tAAkwsjL
確かにググったら普通に見つかるなw
0668デフォルトの名無しさん2015/09/12(土) 16:01:17.80ID:u8bQrXrf
>>666
ググってすぐに出てきますかね。
WinRing0を使う方法はいっぱい出てきますが、WinRing0は既に公開停止してますし。
0669デフォルトの名無しさん2015/09/12(土) 16:05:16.38ID:3nw0OQz2
WMI使う奴とWinRing0使う奴しか見つからんなぁ。
0670デフォルトの名無しさん2015/09/12(土) 16:11:00.12ID:1dnwRa1/
これ参考にすればいいんじゃないの
https://github.com/openhardwaremonitor/openhardwaremonitor
0671デフォルトの名無しさん2015/09/12(土) 16:28:14.20ID:ypYaVLmK
Ring0って書いてあるけど
0672デフォルトの名無しさん2015/09/12(土) 16:55:20.73ID:u8bQrXrf
>>670
プロジェクトにWinRing0.sysとWinRing0x64.sysが含まれてるのですが、これって公開停止したWinRing0そのものなのかな。
ソース読むと、CPUのレジスタ値を取得してるみたいなので、ドライバーは不可欠っぽいですね。
0673デフォルトの名無しさん2015/09/12(土) 16:57:31.57ID:1mS4NSAq
デジタル温度計買って来てcpuに貼っとけ!
0674デフォルトの名無しさん2015/09/12(土) 21:02:49.37ID:2/bkKms1
失礼します。少し長いのですがよろしくお願いします。
C/S型のアプリケーションで「DBから特定のテーブルの内容を読み込む」機能を作成しているのですが、
以下のように記述して問題ないか意見を聞かせてください。
環境は「VS2008」「.NET Framework2.0」「SqlServer2008R2」を使用してます。
(.NET Frameworkのバージョンが古いのですがこれは変更できません・・・)

public List<SampleRecClass> ReadData() {
  string sqlStr = "SELECT id, name ... FROM SampleTable";
  SqlConnection conn = new SqlConnection(省略);
  SqlCommand cmd = new SqlCommand(sqlStr, conn);
  conn.Open();
  SqlDataReader dr = cmd.ExecuteReader();

  List<SampleRecClass> list = List<SampleRecClass>();
※ Type ti = typeof(SampleRecClass);
※ PropertyInfo pi;
  SampleRecClass data; // [SampleRecClass]は[SampleTable]の項目と名前・型が同じプロパティを持つ
  while (dr.Read()) { // データの取得にリフレクションを利用する
    data = new SampleRecClass;
※   for(int i = 0; i < dr.FieldCount; i++){
※     pi = ti.GetProperty(dr.GetName(i));
※     if(pi != null){ pi.SetValue(data, dr.GetValue(i), null); }
※   }
    list.Add(data);
  }
  dr.Close();
  conn.Close();
  return list;
}
長いので分割します
0675デフォルトの名無しさん2015/09/12(土) 21:03:54.91ID:2/bkKms1
直す前の該当箇所のコードは以下のようになっています。
  while (dr.Read()) {
    data = new SampleRecClass;
    data.id = (int)dr["id"];
    data.name = (string)dr["name"];
    // (省略) data.項目名 = (型)dr["項目名"]が100行くらい続く
    list.Add(data);
  }
気になったのは「data.項目名 = (int)dr["項目名"];」が大量に存在することで、
また、似たようなメソッドをもつクラスが数多く実装されています。

テーブル内容を格納するクラス(サンプルではSampleRecClass)にはテーブルの項目と名前・型が
同じプロパティが存在することからリフレクションを利用すればコードを短く出来るのではないかと考えました。
Select件数は機能によりまちまちで1件の場合もあれば数千となる場合もあります。
一応データの取得自体には成功しているのですが、まわりに熟練した方がおらず、
これはやめたほうが良い、機能追加時に困るなどのご意見をお聞きしたいです。
よろしくお願いします。
0676デフォルトの名無しさん2015/09/12(土) 21:27:29.12ID:Dc+ShKP6
古き良き(?)って感じ
リフレクションを使わないにしても、その部分のコードを手書きすべきではない気が
0677デフォルトの名無しさん2015/09/12(土) 21:27:34.63ID:GTRl9rX3
>>674
dapper おすすめ
冗長なコードが一気に消滅するぞ
0678デフォルトの名無しさん2015/09/12(土) 22:12:03.95ID:2/bkKms1
>>676-677
ありがとうございます。やはりSELECT項目が増えるたびに追加していくのは微妙ですよね。

dapperというのを初めて知りました。やりたいことにものすごい近い気がします。
できればこういうのを導入したいのですが環境に手を加えるのをものすごく嫌がる職場なので説得が必要かも・・・
0679デフォルトの名無しさん2015/09/12(土) 22:57:29.52ID:1g/1FxHg
素人だけど、そこはサニタイズの一環だと思う。

旧コードだと記述されていないプロパティには値が代入されない。
新コードだと常に全てに代入される。
もし旧コード側で「内部的」なプロパティを持っていて、
それがそこに記述されていないことにより「内部的」であることを保証している場合、
サーバ側でDBの変更があり、名前が偶々被ったらいきなりバグる。
例えば、 id2 というプロパティを内部的にだけ使用していたつもりが、DB側で追加されたとか。

ただ、SampleRecClassはDB側のデータのみとして分離されていれば、この問題は発生しないはず。(※)
或いは、今ある全てのプロパティに対して代入が記述されているのなら、大丈夫。

後は旧コードは必ず固定的にキャストされていること。
SQLを使ったことがないから戻り値とかの知識がないのだけど、SQL側から型付きで返ってくるのなら、
新コードだとDB側の型と一致してしまう。
これだと、DB側で型が変更された時にいきなりバグる可能性がある。
(ただしこの場合はどうせ書き直さなければならないけど)

後は型が全部Objectになってしまうのも少し引っかかるけど、自分だけで閉じているのであれば問題ないはず。
(俺はこの点についてはC#の知識が足りないので断定は出来ない。
VC++ならネイティブ型にキャストとしている場合はアンマネージド側で使っている可能性があるのでやや危険。
ただC#ではこういうケースは無いはず。)

100行もあっても見にくいだけだし、※を確認しながらReflectionにするのはありだと思う。
(ただし素人なのでReflectionを積極的に使うべきなのかは知らない。というか、消極的に使う印象がある)
とはいえ、旧コードはDB変更の影響を全く受けないようになっているから、
この点は注意しておいた方がいい。
0680デフォルトの名無しさん2015/09/12(土) 23:45:19.33ID:HOLpd5HQ
保守やってると痛感するが、こういう冗長な受け渡しは変更時のミスを生むのでデメリットの方が多い
まあ敢えて冗長性を持たせた方がいい場合というのは稀にあるけど、
殆どの場合はただコーダーが何も考えていないだけ
0681デフォルトの名無しさん2015/09/13(日) 00:09:31.82ID:4nprMUQA
>>679-680
詳しくありがとうございます。DBの変更の可能性も考えておかないといけないですね。
もしこの方法で実装する場合はテーブル内容を格納するためのクラスのルールを明確にしておきます。

旧コードの方法で実装したら大文字小文字の違いに気づかずかなり悩みました。
その結果この方法に行き着いたんですが、保守きついですよね(笑)
0682デフォルトの名無しさん2015/09/13(日) 01:47:27.35ID:j8lACS4K
>>675
上のソースとか見るの邪魔くさいから見ないけど
(int)dr["項目名"]に対する対処法のMS的な回答は型付きデータセット使え だった
そっからORMが流行りだして、今のMS的回答はEntityFramework使え、だろうな

まあ、.NET2.0なら型付きデータセット推しの頃なんだが
俺なら今から新規で作るか大規模改造なら(マイクロ含むなんらかの)ORMか型付きデータセット
修正ならそのまま
リフレクションはないわ。手間かけて可読性とパフォーマンス落とす

nameofってコンパイラの機能なのかな
だったらターゲットが2.0でも使えるようになるかもしれんが
0683デフォルトの名無しさん2015/09/13(日) 01:50:53.17ID:zxVO0n7+
質問でさせていただきます

クラスAとそれぞれAを継承した異なるクラスB,C,Dがあります

この時B,C,Dにそれぞれ同じ名前ですが入力する数値が違う静的メンバを持たせたいです

class B:A{ static int hoge; }
class C:A{ static int hoge; }
class D:A{ static int hoge; }

みたいな感じです
しかしこれだと同じ記述をBCDにしなければなりません
なんとかA1つだけに記述してBCDに上記のような静的メンバをもたせる方法はないのでしょうか?
単純にAにstatic int hogeをもたせて継承してみましたが、BCD全てで同じ数値になってしまいました
0684デフォルトの名無しさん2015/09/13(日) 02:00:53.63ID:zxVO0n7+
あ、追記ですが
staticを使わずBCDをそれぞれシングルトンにするという方法も考えました
しかし他のクラスのジェネリックでそれぞれBCDを指定していたためコンストラクタを隠してしまうシングルトン化はエラーが出てしまいました…
0685デフォルトの名無しさん2015/09/13(日) 02:23:40.92ID:KI6l31Ot
なんかシングルトンでわざわざご丁寧にコンストラクタ隠してるやついるけど、無駄。そんなことせずにSinglton〈T〉とすればジェネリックの数だけ静的インスタンスが増える。

Tはnew制約をつければよい。
0686デフォルトの名無しさん2015/09/13(日) 02:51:09.18ID:zxVO0n7+
>>685
すいませんちょっと理解できてないのですが…
AをA<T>として、BCDそれぞれに継承する際に異なるジェネリックを与えればそれぞれ異なるAとなる・・・ということでしょうか?
0687デフォルトの名無しさん2015/09/13(日) 03:24:28.14ID:KI6l31Ot
AからDは同じような機能を持つがパラメータが違うんだろ。
なら、static intをインスタンスメンバにしろ。
値変えたい時点でstaticじゃないから。

それで、そいつらはマネージャー的な存在で独立したシングルトンみたいに扱いたいんなら、
例えば、こんなん作って
class Singlton〈T〉where T:new()
public static readonly T instance =new T()

Singlton〈A〉.Instance.Hogeでアクセスすればいい
0688デフォルトの名無しさん2015/09/13(日) 03:39:36.79ID:GeSbvumG
誰に命令してるつもりなのかねw

何より、それが自分の対人能力ゼロのうだつの上がらないクズだって語るに落ちている頭の悪さ、
どうにかならないのか。

絶対友人一人もいない、職場で誰にもまともに相手にされない(だからこんなところで見知らぬ相手に命令口調の空威張り)
奴だと思うけど本当可哀想だわ。
0689デフォルトの名無しさん2015/09/13(日) 05:13:54.59ID:bmhJO8iX
>>683
>なんとかA1つだけに記述してBCDに上記のような静的メンバをもたせる方法はないのでしょうか?
>単純にAにstatic int hogeをもたせて継承してみましたが、BCD全てで同じ数値になってしまいました

static はそういうものだから、そうならないと困るんだけど
無理矢理やるなら、class Aに派生クラスを意識した
private static ハッシュでも持っておいたら?
個々のフルクラス名を取ってハッシュキーにすればできそう
ただ保守性は悪い
0690デフォルトの名無しさん2015/09/13(日) 07:14:34.68ID:ebN6zq+j
DataGridのセル内の特定の文字列だけを文字色変更したいのですがやり方がわかりません
0691デフォルトの名無しさん2015/09/13(日) 07:16:38.55ID:lZFdp8qU
フーン、こんな所に書き込んでないで調べろよ低能
0692デフォルトの名無しさん2015/09/13(日) 08:55:32.47ID:pUutkYms
>>683はstaticに個別の値をもたせる方法を調べるよりもなんでそんなことをしたいのかを説明したほうが建設的な気がする
0693デフォルトの名無しさん2015/09/13(日) 08:56:27.05ID:zxVO0n7+
>>687
なるほど
どうもありがとうございます
0694デフォルトの名無しさん2015/09/13(日) 08:57:56.02ID:zxVO0n7+
>>689
どうもありがとうございます
ハッシュを使うという方法もあるのですね
0695デフォルトの名無しさん2015/09/13(日) 09:02:39.54ID:XKESIMh7
>>690
DataGridViewじゃなくて?
0696デフォルトの名無しさん2015/09/13(日) 09:05:08.07ID:zxVO0n7+
すいませんうっかり個別に3レスになってしまいました

>>692
BCDを所持したクラスをさらにそれぞれ数百個とか作る上、
BCDそれぞれで別の保存ファイルから値を読み込むのでstaticかシングルトンじゃないと何度も同じファイルを読み込んで非効率かなと…
0697デフォルトの名無しさん2015/09/13(日) 09:08:11.25ID:03ZHIFHO
その数百個のクラスで何するの?
そんなもん数千万〜数億の案件だよw
0698デフォルトの名無しさん2015/09/13(日) 09:12:21.59ID:uYhv53o6
hogeの初期値はどこで与えるん?
0699デフォルトの名無しさん2015/09/13(日) 09:42:02.45ID:tUSkN1m6
BCDのインスタンス作成が1回だけなら、>>687で十分
ファイル読込はそれぞれのコンストラクタで
hogeの値変えられたくないならプロパティにでもしとけばいい
0700デフォルトの名無しさん2015/09/13(日) 09:43:23.50ID:zxVO0n7+
>>697
確かにそうかもしれませんね
時間が気になってからでいいかも…

>>698
インスタンス化した時に読み込んでます
0701デフォルトの名無しさん2015/09/13(日) 09:47:57.01ID:XKESIMh7
>何度も同じファイルを読み込んで非効率

読んだら読んだよというフラグ立てときゃいいじゃんよ
0702デフォルトの名無しさん2015/09/13(日) 09:52:44.66ID:EhWWrYGM
値が違うのなら同じ変数に入れる必要はない。クラスごとに違う名前のスタティック変数に格納して
プロバティーをつかって同一視出来るように組むのが普通じゃないのかな
0703デフォルトの名無しさん2015/09/13(日) 10:54:30.99ID:tUSkN1m6
設定ファイル用のstaticクラス作ればいいんじゃね?

static class Config
{
static Config(){ /*設定ファイル読込*/ }
public int GetHoge(Type type){ /*typeから判断して読み込んだ値を返す*/ }
}
class A
{
public int Hoge { get{ return Config.GetHoge(this); } }
}
0704デフォルトの名無しさん2015/09/13(日) 10:57:16.22ID:tUSkN1m6
色々ミスってるけどやりたいことは察してくれ
0705デフォルトの名無しさん2015/09/13(日) 11:14:00.02ID:5aFl2TVk
>>675
>また、似たようなメソッドをもつクラスが数多く実装されています

テーブルクラス毎にReadDataメソッド持っている感じなのかね
テーブル基底クラスが有るならそこにReadDataメソッドを移動して、sqlStrをテーブル派生クラスのメンバ変数にして
ReadDataをSampleRecClass基底クラスを条件にしたジェネリックメソッドにすれば一つに収まると思うけど、検証が大変そう
0706デフォルトの名無しさん2015/09/13(日) 11:14:12.21ID:wQ68FTxr
こんなの
「できねえよ、死ね」
でいいだろ
お前が必死扱いて理想的な方法論を説いても
相手に理解するほどのレベルあるようには見えないぞ
0707デフォルトの名無しさん2015/09/13(日) 12:08:57.26ID:Y0jkFYe/
個人的には、そもそも実体が3つ必要なのだから、3回書くのが自然だと思えるが。
実際はただの枠だけだから>>683程度で済むはずだし。

・静的メンバは継承されるとその都度新しく作られる
・静的メンバは継承されず、常に親を参照する
のどちらの仕様を選択するかで、C#もC++も後者。(他は知らない)
前者用のキーワードすらないので、「必要ない」という判断なのだろう。
用途としてないと言うよりは、コンセプト上「その都度書け」なのだと思われる。
staticキーワード1個につき1実体が保証されることになる。

テクニックに凝らず、3回書くのが一番マシだと思うが。
>>696ならstaticにして纏めた方がいいと思う。
0708デフォルトの名無しさん2015/09/13(日) 14:13:53.99ID:ebN6zq+j
>>695
DataGridです
0709デフォルトの名無しさん2015/09/13(日) 17:13:11.02ID:pwOltzpM
>>688
相手を虐げる時に自分が言われたら最も傷つく言葉を選択するんだよね。
君の場合たくさん問題を抱えていそうだね。
人を恨んでも苦しむのは自分だよ。
0710デフォルトの名無しさん2015/09/13(日) 17:18:24.87ID:GcW02Szd
>>709
そりゃそうだろ
相手の一番言われたくない事を言うのが口喧嘩に勝つ必勝法
兵法にもちゃんとあるだろ
『・・・兵を形するの極は、無形に至る・・・その戦い勝つや複(ふたた)びせずして、形に無窮に応ず』
相手の弱点を突くんだよ
0711デフォルトの名無しさん2015/09/13(日) 17:45:56.28ID:pwOltzpM
敵を知り己を知れば
根拠のない煽り文句は独白でしか無い
0712デフォルトの名無しさん2015/09/13(日) 17:48:52.62ID:GcW02Szd
>>711
あんたも頭悪いねー
そいつの書くレスをしばらく見てて「あ、こいつはこう言われたらダウンするな」とアテを付けて
バシーンとやってやるんだよ
兵法とかことわざを使う場合その本当の意味を知って使わないとかえって墓穴を掘ることになる
0713デフォルトの名無しさん2015/09/13(日) 20:23:04.66ID:Qv9sVqhD
命令口調君って馬鹿だな
0714デフォルトの名無しさん2015/09/13(日) 20:49:21.91ID:zxVO0n7+
皆さん色々ありがとうございます
試してみたいと思います
0715デフォルトの名無しさん2015/09/13(日) 22:41:22.49ID:Y0jkFYe/
>>714
ちなみにC++だとテンプレートクラス内でstatic宣言してそれを継承すると出来るらしい。
妥当かどうかは微妙だが。
http://dixq.net/forum/viewtopic.php?f=3&;t=3169

C#だとジェネリックになるが、C++よりも機能は小さい。
多分型の一般化だけだ。
https://msdn.microsoft.com/ja-jp/library/c6cyy67b.aspx

C#について詳しくないのでこれ以上は分からないが、
仮にジェネリックでstaticを宣言できたとしても、そちらのケースだと多重継承が必要となる。
C#ではこれは出来ないから、やっぱり無理だと思う。

技巧的に凝るのも結果的に技術力を上げるので悪いことではない。
テストコードとしていいのなら色々やるのもありだと思う。(但し傍目には意味不明なコードになりがち)
本番コードなら格好悪くても3回書いとくのが無難だと思う。(不細工だが見れば分かるコードに留まる)
0716デフォルトの名無しさん2015/09/13(日) 22:45:08.87ID:03ZHIFHO
いや多重継承なんかしなくても共通の基底クラスをジェネリッククラスが継承すればいいだけ
0717デフォルトの名無しさん2015/09/13(日) 23:00:32.80ID:fCh0ndBl
vsのフォームデザインツールでイベントの削除が出来ません
ソースからイベントメソッドを消したらエラーになり、デザインツールから編集して下さい。となるのですが、デザインツールからイベントを削除する方法を教えて下さい
0718デフォルトの名無しさん2015/09/13(日) 23:02:02.02ID:WRjx3v1n
>>717
イベント一覧で対象を選択して右クリックから削除
0719デフォルトの名無しさん2015/09/13(日) 23:03:16.49ID:fCh0ndBl
>>718
イベント一覧って何処にありますか
0720デフォルトの名無しさん2015/09/13(日) 23:05:05.12ID:Y0jkFYe/
>>716
継承関係はA-ジェネリック(内側でstatic宣言)-BCDということか?
BCDが型違い等で上手く別のジェネリック実体を生成させらられば確かに出来そうだ。
技巧的にやるのなら、dummy というプロパティでも作って、BCDで型違いにしておけばいい。

ただまあ、やっぱ3回書けよw
0721デフォルトの名無しさん2015/09/14(月) 10:33:25.80ID:1YAKpuit
>>719
どうやって追加したのかな
プロパティの上の方にカミナリマークがあると思うのでそれで
0722デフォルトの名無しさん2015/09/14(月) 17:45:58.20ID:XrzIZprl
アンマネージdllの構造体をC#に渡したいのですが、構造体が中身に他の構造体の配列を持ち、
しかもその配列数が可変長であるような複雑な形である場合、Dllimportでプラットホーム呼び出しを
するのではなく、間にC++/CLIのラッパを挟むべきでしょうか?
直接のC#の話題でなくてすみません。
0723デフォルトの名無しさん2015/09/14(月) 17:52:26.52ID:P1MtCzUR
マーシャルすればええんちゃうん
0724デフォルトの名無しさん2015/09/14(月) 18:00:18.49ID:h9CenDqd
>>722
何でそんなにややこしいデータ構造なん?
0725デフォルトの名無しさん2015/09/14(月) 18:12:46.97ID:geV2gEFM
普通にポインタ使えるんだからどうとでもなるよ
0726デフォルトの名無しさん2015/09/14(月) 18:14:16.95ID:Z0K6zfx/
可変長と言ってもアレでしょ?
末尾がどんどん長くなっていくアレじゃないの?
0727デフォルトの名無しさん2015/09/14(月) 18:54:12.50ID:TbHj78H4
>>723
そういう意見も目にするのですが、複雑なデータをやりとりするならC++/CLI、
というかそれこそがC++/CLIがもっとも使われるケースではないでしょうか?

>>724
まぁ色々ありまして・・・・。
階層的なデータ構造をそのままの形で、しかもコピー的な操作なくC#に渡したいです。
(構造体内の構造体内の構造体みたいな)

>>725
C#では構造体を用意せずにとりあえずIntPtrで受け、ポインタをずらしてデータを取得していく
という方法もあるようですが、複雑なデータでは無理があるかと思います。
0728デフォルトの名無しさん2015/09/14(月) 18:54:39.86ID:p4UK8mmy
c#で音楽プレイヤーを作るにはNAudioよりBASS.Netのほうがいいのでしょうか?
0729デフォルトの名無しさん2015/09/14(月) 18:57:03.43ID:h9CenDqd
>>722
色んな手法があると思うけど何を優先したいん?
0730デフォルトの名無しさん2015/09/14(月) 19:04:18.88ID:geV2gEFM
そもそも可変長配列って具体的に何のことを言ってるんだ
ヘッダ晒せ
0731デフォルトの名無しさん2015/09/14(月) 19:36:16.25ID:TbHj78H4
>>729
すみません、いま会社なので帰ったらコード晒します。
0732デフォルトの名無しさん2015/09/14(月) 20:31:40.29ID:Z0K6zfx/
・CLIでアセンブリ作って参照に入れて使う
・C#でMarshalクラスのメソッド使って間接的に扱う
・C#でunsafe

unsafe一択だろ
0733デフォルトの名無しさん2015/09/14(月) 22:12:37.52ID:Sb4EWtSB
Windows10にしてタスクスケジューラを起動すると
エラーが出まくります。ネットで調べてレジストリを削除する、という方法を試したところ
日本語入力ができなくなってしまいリカバリをする羽目になってしまいました。


Windows10でタスクスケジューラ起動時にエラーが出るのを出なくするよい方法はありませんか?
0734デフォルトの名無しさん2015/09/14(月) 22:15:42.18ID:Z0K6zfx/
その質問とC#の関係について3行でまとめて下さい
妥当な回答が得られなければ鼻の穴にタバスコ一瓶注入ということで
0735デフォルトの名無しさん2015/09/14(月) 22:17:52.47ID:tOm8GBtx
目ピーと鼻スパとどっちがマシか
0736>>722 >>7272015/09/15(火) 02:36:01.00ID:txNSuYdr
すみません、コードはもう少し整理してから晒します。

>>732
ただの配列だけならば仰るとおりunsafe一択だと思います。
0737デフォルトの名無しさん2015/09/15(火) 09:18:34.36ID:gk5nkBuy
>>728
mp3以外のコーデック使いたいのならBass使うしかない
今作っているけど色々出来ても面白いよ
0738デフォルトの名無しさん2015/09/15(火) 13:38:22.28ID:c6kBSd9X
C#のTextBoxでMultiLine有効にした場合、
一行目
二行目
三行目
の各行の末尾には
\r
\n
\r\n
のどれが入っているのでしょうか?
0739デフォルトの名無しさん2015/09/15(火) 13:41:47.89ID:dvTerdZ2
>>738
やってみればいいんじゃね?
やれば一瞬でわかる事を、なんでわざわざ他人の手を煩わせようとするの?
0740デフォルトの名無しさん2015/09/15(火) 13:44:21.24ID:FPLJInGY
疑問は死ぬ直前に浮かんだんですけど
確かめようにも天国にはC#コンパイラがなくて…
0741デフォルトの名無しさん2015/09/15(火) 13:48:08.34ID:NhqbybaA
>>739
マジ死ねよくそ虫野郎が。確認できないから聞いてるんだろうが。
そんなことすら理解できない人間以下のごみクズ虫は、
家族血統丸ごと全員少しずつ体が壊死しながら苦しみもだえて死ね。
0742デフォルトの名無しさん2015/09/15(火) 13:57:17.74ID:c6kBSd9X
MultiLineで表示したあとその部分をコピペしてメモ帳でファイルに
保存してバイナリエディタで開くと\r\nだったんですが、おかしいですか?
0743デフォルトの名無しさん2015/09/15(火) 13:57:42.39ID:ujy8YoK6
>>738
\r\nじゃね
TextBoxは他の2つだと改行できなかったような
0744デフォルトの名無しさん2015/09/15(火) 13:57:46.86ID:sY5nOBux
>>738
教科書的な答えはこれ
https://msdn.microsoft.com/ja-jp/library/system.environment.newline%28v=vs.110%29.aspx

Windowsではもちろん\r\n
0745デフォルトの名無しさん2015/09/15(火) 14:47:46.80ID:c6kBSd9X
"一行目\r二行目"
でも改行されるのは何故ですか?
0746デフォルトの名無しさん2015/09/15(火) 14:52:43.57ID:gSnYO4lD
それはC#とどんな関係があるの?(´・ω・`)
0747デフォルトの名無しさん2015/09/15(火) 15:22:45.52ID:nRNQ5gNy
相談室で返答もらえなかったのでこちらで質問させてください。

DataGridViewでユーザーが列幅を変更する場合列の境界をドラッグ
しますが、横スクロールバーが表示される程列数や個々の幅がある
場合に最後の列幅が変更できません。
どのようにマウスで変更するのでしょうか。
0748デフォルトの名無しさん2015/09/15(火) 15:28:45.01ID:sY5nOBux
>>747
一番右にダミーの列を作っておかないと出来なかったような気がした。
0749デフォルトの名無しさん2015/09/15(火) 16:00:24.83ID:nRNQ5gNy
>>748
何かしら手を加えないと出来ないんですね・・・。
ありがとうございました。
0750デフォルトの名無しさん2015/09/15(火) 16:42:16.92ID:rDD2Qv39
>>737
mp3とwavしか使う予定ないんだけどそれならNで大丈夫かな?
両者のメリット、デメリット教えて下さい
0751デフォルトの名無しさん2015/09/15(火) 16:53:10.29ID:XyyEatel
ターゲットが広いこととライセンスかな
0752デフォルトの名無しさん2015/09/15(火) 18:43:03.20ID:gk5nkBuy
>>750
Naudioはとりあえずしか調べていないけど、WpfのMediaElementやActiveXでWmp使うのと大差なさそうだからパスした
機能的には MediaElement<Naudio<Bassなので、用途を考えて選ぶといい

あと、Bassはネットで調べても情報が少ないから苦労するとは思うよ。但しなんでもできるから後々まで遊べるのは保証します
0753デフォルトの名無しさん2015/09/15(火) 18:50:34.70ID:rDD2Qv39
>>752
そうなのか。ただ波形とかする予定はないから、とりあえず今回のプロジェクトはNAudio使おうかな。
機能は十分そうだし
0754デフォルトの名無しさん2015/09/15(火) 19:11:11.19ID:iBiZirr6
Visual Studio Community 2015を使っているのですが
出来るだけキーボードで操作したくてCtrl+p,n,j,kに上下左右のカーソル移動を割り当ててるのですが
インテリセンスの候補を選ぶときにCtrl+p,nで選ぼうとするとヒントウィンドウが半透明化してしまい困ってます
この透明化を無効、もしくは他のボタン(Ctrl以外)に割り当てることはできませんか?
よろしくおねがいします。
0755デフォルトの名無しさん2015/09/15(火) 19:14:29.88ID:jiuw6WbK
>>754
emacsキーバインドにする拡張機能機能があるからそれ入れたらいい
0756デフォルトの名無しさん2015/09/15(火) 19:23:54.72ID:iBiZirr6
>>755
それって他に設定したショートカットも変わりそうですね…
emacs使いだったというわけではないので困りそうでちょっと調べてからにします

単純にCtrlで透明化をなんとかするだけの方法ってのはなさそうですか?
0757デフォルトの名無しさん2015/09/15(火) 21:34:45.54ID:c6kBSd9X
>>754
キーボードだけで操作すると作業がはかどるのか?
0758デフォルトの名無しさん2015/09/15(火) 22:16:24.45ID:FPLJInGY
捗るかは知らんが、よく分からない楽しさはある
とvimmer
0759デフォルトの名無しさん2015/09/16(水) 03:46:53.50ID:A8uH01qo
そういやVsVimは効かないキーがあったりと糞すぎて消したわ

>>754
適当なキーバインドソフト使うんじゃ駄目ですか?
0760デフォルトの名無しさん2015/09/16(水) 08:47:34.58ID:807nK7Mg
キーボードに存在してない扱いのカーソルキーさん…
0761デフォルトの名無しさん2015/09/16(水) 08:49:44.16ID:koLGUr+e
Marshal.AllocCoTaskMem()
で確保した領域ってゼロで埋まってたりしないの?

自分でゼロクリアしないとダメ?
0762デフォルトの名無しさん2015/09/16(水) 09:13:18.56ID:I2nNQXhc
>>761
MSDNに書いてあるじゃねーか
0763デフォルトの名無しさん2015/09/16(水) 09:21:32.17ID:koLGUr+e
でした
0764デフォルトの名無しさん2015/09/16(水) 09:31:24.41ID:tObFV6xS
>>757
画面を見なくていいので早い気がするんですが、どうでしょうかね
捗りのおすすめあれば教えて欲しいです

>>759
キーバインドソフトでCtrlを無効にするってことですか?
それだとショートカットが使えない気がしそうです
0765デフォルトの名無しさん2015/09/16(水) 14:39:14.73ID:koLGUr+e
stackallocで初期化した配列
int* i = stackalloc int[10];
の中身について興味があるんですが
C#言語仕様をあたってみたら中身は不定だとのこと。
だけどスタックに積んでいってそこがビット表現的に0じゃないってありえるんでしょうか。
0766デフォルトの名無しさん2015/09/16(水) 15:15:41.39ID:X4VHrapa
>>765
C#仕様だと確かにそう書いてある…しかしCLI仕様、即ちlocallocは.localsのinitに依存するらしい
stackallocを使う以上、ローカル変数発生は必定と思いきや最適化で無くなる事もあるから…かな?
0767デフォルトの名無しさん2015/09/16(水) 15:30:30.96ID:i1eSZn0Y
入門書数冊読みあさって、何となく理解し始めたところで
実際にアプリケーション作り始めてみたんだけど、
中級に上がるにおすすめの書籍やらサイトってありますかね

MSDNも見ながらわからないところをつぶそうとやってはおりますが、
実際のアプリ開発の中で抽象メソッドやらインターフェースやデリゲードやら
どう利用していったら良いかいまいち・・・
0768デフォルトの名無しさん2015/09/16(水) 16:52:14.60ID:Ycmd5/7D
>>767
Effectiveとか実践講座とか
0769デフォルトの名無しさん2015/09/16(水) 19:33:29.86ID:d+PGYxxz
dynamicを多用すると何か問題ありますか?
0770デフォルトの名無しさん2015/09/16(水) 19:40:13.26ID:gYRc3sT6
無いから安心して使え
全部dynamicでもいいぞ
VB.NETのデフォルトなんかそうだからな
0771デフォルトの名無しさん2015/09/16(水) 20:02:14.47ID:d+PGYxxz
>>770
ありがとうございました。もう一つ教えてください。
.NET4.5で
1秒後に一回だけ関数を実行する方法のキーワード教えてください。
ググるといろんな方法が見つかるのですが良く分かりません。
0772デフォルトの名無しさん2015/09/16(水) 20:17:24.54ID:ywYdRKIU
>>771
Timer
0773デフォルトの名無しさん2015/09/16(水) 21:24:13.98ID:eA43pHts
静的型付けの利点を捨てるdynamicを気軽に勧めんなや
07747702015/09/16(水) 22:53:20.34ID:jnCVqJ3t
俺自身は皮肉ったつもりだったよ?
0775デフォルトの名無しさん2015/09/17(木) 04:27:03.33ID:ZCAg+We/
ここで皮肉を言う意味が分からない。
ましてや、初心者に通じる訳が無い。
0776デフォルトの名無しさん2015/09/17(木) 07:03:52.21ID:rVyI7R+x
フォトビューアを作ってます。
画像をダブルクリックして開いたりする時の
その画像ファイルのパスってどうやって取得するの?
コマンドライン引数ってのが重要なのはわかったんだけど。
0777デフォルトの名無しさん2015/09/17(木) 08:16:36.27ID:YRjesxt7
Environment.GetCommandLineArgsで取れる配列に入ってませんか
0778デフォルトの名無しさん2015/09/17(木) 08:52:52.80ID:ptLmoXeB
Mainメソッドのシグネチャをstatic void Main( string[] args )にするんだ
0779デフォルトの名無しさん2015/09/17(木) 09:52:52.37ID:qWO3khEq
初心者な質問でごめん

xmlで設定ファイルを書き込み読み込みしようと思うんだけど、
xml用のプロパティを保持するクラスをstaticにして
読み書き用の別クラスからストリームで読み出したものを一気に流し込むことは
型のある変数はもてないのがstaticのようだから、できないもの?
プロパティ保持のクラスを静的でなくインスタンス化したものなら
インスタンス変数に投げればすんなり入るけど、staticにしたら
やっぱり個々のプロパティに直接入れていかないとだめかな
0780デフォルトの名無しさん2015/09/17(木) 11:23:59.82ID:xUhCynvH
「ストリームで読み出したものを一気に流し込む」処理の内容による
まあ設定情報保持クラスは非staticクラスにしとくのがいいよ
0781デフォルトの名無しさん2015/09/17(木) 11:28:24.38ID:wD39lUDh
何であえてstaticクラスを使いたいと思うのかよく理解できんね。
0782デフォルトの名無しさん2015/09/17(木) 11:36:09.47ID:YRjesxt7
必要があればstaticにするって優先順位じゃなく
必要があれば非staticにするって優先順位で考えているのでしょ
なぜなら貧乏症だから
0783デフォルトの名無しさん2015/09/17(木) 11:37:04.09ID:wHK4fsDg
質問の答えにならんが、xmlじゃなくiniにしてしまうのも・・・
やることは変わらんがw
0784デフォルトの名無しさん2015/09/17(木) 11:55:01.38ID:qWO3khEq
起動時に設定を呼び出し、終了時に書き出して基本的な設定情報を保持して
起動フォーム以外のフォームでも設定情報を簡単に呼び出したくて
インスタンス化したとしたら、起動フォームから呼び出すフォーム毎に
インスタンス変数を受け渡してと・・・思うと面倒かなと思ったので、
それならstaticにしてどのフォームからも呼び出せば良いかなと考えたのですが

やっぱり非staticがよいのですね
となると、インスタンス化した変数にストリームから流し入れたら、
そこからstaticの設定情報保持用クラスを作成して一つ一つ格納していけばいいのかな
なんか2度手間な気もしなくないですが・・・

>>783
iniがやっぱりお手軽なんですかね
iniのやり方も一度勉強してみます
0785デフォルトの名無しさん2015/09/17(木) 12:02:40.41ID:Z358njol
Settings 使わないのはなんで?
いやまあ使わなくてもいいけどさ
0786デフォルトの名無しさん2015/09/17(木) 12:15:52.95ID:qWO3khEq
>>785
accessデータベースとつないでDataSetに流し込んでいるのですが、
複数のaccessファイルを切り替えて使いたいために
Settingsには動的に接続文字列を格納してるんです
Accessファイルの暗号化パスワードも接続文字列に入れてるので
(起動後のデータベースファイル選択時にパスワード入力)
他の設定情報の変更と一緒にそれまで反映させてしまうのはいかがなものかと
別に設定ファイルを作ろうかと思った次第です
0787デフォルトの名無しさん2015/09/17(木) 12:17:46.95ID:xUhCynvH
設定ファイルから読み込んだ設定なんてstaticでいいと思うよ?
ただ、staticクラスじゃなくてstaticインスタンスを使う
0788デフォルトの名無しさん2015/09/17(木) 12:27:26.44ID:CwN+IHGi
>>787
設定読んだ後もメモリに居座るのは無駄。
だから何であえてstataicなんだよ。意味が分からない。
0789デフォルトの名無しさん2015/09/17(木) 12:30:50.22ID:ptLmoXeB
>>788
設定情報はどこかにおいとかなきゃいけないから
同じでしょうが
0790デフォルトの名無しさん2015/09/17(木) 12:32:32.83ID:Nh2CPZLE
穏やかにやらないとお前もstaticにするぞ
0791デフォルトの名無しさん2015/09/17(木) 12:52:22.44ID:CwN+IHGi
>>789
保存される情報はあるクラスが持つ情報の一部だったり、複数のクラスに跨っていたりする場合が多い。
0792デフォルトの名無しさん2015/09/17(木) 12:59:09.42ID:xUhCynvH
そうだね、場合が多いね
0793デフォルトの名無しさん2015/09/17(木) 13:04:10.65ID:CwN+IHGi
まあこれだけは言える。
特にそうすべき理由もないのに意味なくstaticを使う奴は馬鹿。
0794デフォルトの名無しさん2015/09/17(木) 13:14:24.36ID:A4RYA4mG
そんな事はstaticに限らず何でも一緒だよね?(´・ω・`)
>特にそうすべき理由もないのに意味なく
0795デフォルトの名無しさん2015/09/17(木) 13:26:12.34ID:CwN+IHGi
っていうか、>>787説だと設定値を持つ(使う)クラスのプロパティのゲッター/セッターでは
設定値クラスのプロパティかフィールドへのアクセスするのかね。

そんな糞コード嫌だね俺は。
0796デフォルトの名無しさん2015/09/17(木) 14:31:02.96ID:ptLmoXeB
むしろ設定が分散していると設定忘れ同期忘れシリアライズ忘れが発生しそうじゃない?

>>795
設定値は設定クラスに集約されてて使うときはそこにアクセスするんでしょ
なんで使うクラスがまた設定値のプロパティなんて持つのさ
0797デフォルトの名無しさん2015/09/17(木) 14:44:56.00ID:CwN+IHGi
>>796
自分で>>789こう書いてるのに馬鹿じゃねえの。
0798デフォルトの名無しさん2015/09/17(木) 15:05:55.81ID:CwN+IHGi
保存が必用なプロパティなんてのは必用なときに保存用のクラス(に/から)コピーする。
保存が必用だからって妙な実装をしてるコードは読みづらい。(後から読んで意図がつかみにくい)
0799デフォルトの名無しさん2015/09/17(木) 15:13:51.76ID:CwN+IHGi
>>795のような実装だと、設定をファイルから復元した時、プロパティのセッターが
呼ばれずにプロパティの値が変更されることになるから、セッターで〜Changedみたいな
イベントをトリガーすることもできない。
0800デフォルトの名無しさん2015/09/17(木) 15:14:19.15ID:ptLmoXeB
どうやら日本語が通じないようで……
0801デフォルトの名無しさん2015/09/17(木) 15:19:03.12ID:ptLmoXeB
>>787から>>799みたいに妄想大爆発させてるけど、大丈夫?
0802デフォルトの名無しさん2015/09/17(木) 15:37:57.77ID:Nh2CPZLE
すいませんすぐstaticにしときますんで…
0803デフォルトの名無しさん2015/09/17(木) 15:39:48.79ID:qWO3khEq
>>787
問題は、static変数に設定値を保持するようにしたとして、
そうなるとxmlからの読み込みになると設定項目毎に
受け取った変数からコピーしていかないとだめですよね?
元々の質問は、それが面倒(実装し忘れが不安)なので
インスタンス変数のようにまとめて流し込めないかなと思った次第で

ただ、流し込んだものについて、起動フォーム以外の各作業画面からも
その設定値を適宜読み出したいのでインスタンス変数だとフォームの遷移時に
受け渡しが面倒になるのかなと思ったところです

>>788
起動フォームで読み込んだあと、メモリの無駄というのもわかります
起動フォームで読み込んだ設定値を、他フォームでも適宜読み出すには
staticを使わない場合どんな方法がおすすめでしょうか
0804デフォルトの名無しさん2015/09/17(木) 17:18:37.07ID:1ELXlKiO
class hoge{
public void test(){
Console.WriteLine("test");
}
}
class form{
private void ボタン_Click(object sender, EventArgs e)
{
new hoge().test();
}
}

何故かヌルポが発生します
何故でしょうか
0805デフォルトの名無しさん2015/09/17(木) 17:43:32.90ID:Z358njol
どのタイミングでどれに対して出るの?
2015でそっくり動かしてみたけど、発生しないけどな
0806デフォルトの名無しさん2015/09/17(木) 19:10:36.61ID:ICRm1uRp
設定ファイルって普通staticで管理しない?
Settings とか ConfigurationManager とかで

>>803
やりたいことを短く明確に書いてくれ

ちなみに Settings はファイル名変えれば複数持てる
0807デフォルトの名無しさん2015/09/17(木) 19:52:35.62ID:1ELXlKiO
>>805
フォームのイベント処理で発生する
0808デフォルトの名無しさん2015/09/17(木) 20:00:42.63ID:Nh2CPZLE
どれに、がないぞ。どれに、が。
0809デフォルトの名無しさん2015/09/17(木) 20:08:39.49ID:1ELXlKiO
あ、別の場所でnew List<class>をするのを忘れていたのが原因でした
0810デフォルトの名無しさん2015/09/17(木) 20:09:47.15ID:5vdfvi1U
ここまで何の参考にもならん質問と自己回答は始めてだわ
0811デフォルトの名無しさん2015/09/17(木) 20:17:27.46ID:UKEnet8d
ぬるぽってそんなもんだよね
0812デフォルトの名無しさん2015/09/17(木) 20:18:42.79ID:1ELXlKiO
javaのネットビーンズみたいにエラー行番号クリックで飛ばす方法は無いでしょうか?
コンソールへの出力じゃなくて、VSに出力したいです
0813デフォルトの名無しさん2015/09/17(木) 21:02:05.02ID:CxP5vej7
まずテディベアに話して聞かせとけよ
0814デフォルトの名無しさん2015/09/17(木) 23:19:25.56ID:34Ly8BP7
>>806
おぉ
本で独学の素人だと、普通〜するっていうのがわからんのでこういうレスありがたいっす
ファイル名変えて保存するものとしないものとで分けてみます
0815デフォルトの名無しさん2015/09/17(木) 23:33:53.36ID:CxP5vej7
試してないけど
コードの表示でSettings.csを直接編集して
System.Configuration.UserScopedSettingAttributeをつけずにプロパティを宣言したら
やれそうな気はするけどな
0816デフォルトの名無しさん2015/09/18(金) 01:22:40.74ID:o/7QhVk8
>>815
コード手で変えると更新の度に勝手に元に戻されて
うざいのなんの…
0817デフォルトの名無しさん2015/09/18(金) 03:35:30.23ID:bwgdxQ+r
それはない
編集するファイル間違えてるよ君
0818デフォルトの名無しさん2015/09/18(金) 07:03:08.66ID:o/7QhVk8
Setting.cs でしょ
例えばコードで接続文字列をユーサースコープにしておくと
更新時にアプリケーションスコープに戻されるとかさ
0819デフォルトの名無しさん2015/09/18(金) 08:28:02.30ID:z8M0Fqug
馬鹿なことやってるなあ
何のためにpartialクラスになってると思っているのだろう
0820デフォルトの名無しさん2015/09/18(金) 08:33:04.98ID:z8M0Fqug
と思ったけど, 815が直接弄ってとか言ってるのがそもそもの原因か
0821デフォルトの名無しさん2015/09/18(金) 09:00:03.55ID:XXX0uBUc
>>818
素人ですんません
更新ってのは、ビルドするたびにってこと?それともアプリケーション上で
Settingsを変更して保存したときのこと?
0822デフォルトの名無しさん2015/09/19(土) 09:34:29.05ID:/AaC5Ev3
不特定多数のテーブルからヘッダ情報とデータを取り出して表示する
プログラムを作りたいのですが、モデルクラスをどのように作れば
良いのでしょうか?

DataTableでなら作れるかと思うのですが、
もう、レガシーな技術になっているようなので、
二の足を踏んでしまいます。

よろしくお願いします。
0823デフォルトの名無しさん2015/09/19(土) 09:50:09.17ID:6KYOX3HP
そんなもんSQLのバッチでいいだろ?
C#触る必要ないし、GUI付けるにしてもコマンドラインでSQLコマンド実行して出力を取得するだけ
0824デフォルトの名無しさん2015/09/19(土) 22:54:01.27ID:LWDO+p/N
恥ずかしながら、.NET FrameWorkのバージョンとC#のバージョンはそれほど関係なくて
.NET FrameWorkのバージョンが古くても新しいC#の文法が使えると初めて知った。
0825デフォルトの名無しさん2015/09/19(土) 23:02:30.76ID:Kqw9m9lZ
>>824
その新しいC#の文法とやらの具体例教えてくれよ
0826デフォルトの名無しさん2015/09/19(土) 23:07:17.13ID:LWDO+p/N
http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_01/csharp30_01_01.html
最新の環境を使ってる人にはあんまり意味ないと思うけど、
ラムダ式ってどんなのだろうって調べてて↑の記事よんでたら一番下の部分にかいてあったんだ。
「C# 3.0の適用範囲」の部分
0827デフォルトの名無しさん2015/09/19(土) 23:10:21.49ID:LWDO+p/N
なんかかき方が悪かったな。関係ないって言い方は訂正する。
0828デフォルトの名無しさん2015/09/19(土) 23:34:02.51ID:Kqw9m9lZ
>>824は新しいC#の構文解釈ができるコンパイラ(VS)があればって前提なのね
どうやってビルド通すんだよと脊髄反射レスしてたわ・・・
0829デフォルトの名無しさん2015/09/19(土) 23:37:30.69ID:LWDO+p/N
http://so-zou.jp/software/tech/programming/c-sharp/misc/version.htm
そうです。わかりにくくてごめんね。この表の関係みたいのを知らなかった。
0830デフォルトの名無しさん2015/09/20(日) 01:21:34.24ID:pU2LJebP
オーバーロードの優先順位ってどうなっているんですか?
例えば、以下のようなメソッドにnullを渡すと型は判別ができないに関わらず、
実行できると思いますが。

public void Select(params IMyObject[] targets)
public void Select(IEnumerable<IMyObject> targets)
0831デフォルトの名無しさん2015/09/20(日) 01:27:00.98ID:pU2LJebP
オーバーロードの優先順位ってどうなっているんですか?
例えば、以下のようなメソッドにnullを渡すと型は判別ができないに関わらず、
実行できると思いますが。

public void Select(params IMyObject[] targets)
public void Select(IEnumerable<IMyObject> targets)
0832デフォルトの名無しさん2015/09/20(日) 01:38:47.12ID:CkGP2p7k
お爺ちゃん
さっきも糞レスしたよ
0833デフォルトの名無しさん2015/09/20(日) 02:21:32.13ID:vBjKt0IW
漏れの勘では、先に、より厳密な型の方に一致する

集合演算の含む・含まれるの関係
A{1,2} ∋ B{1}
C{1}は、先にBに一致する
0834デフォルトの名無しさん2015/09/20(日) 08:16:53.14ID:+fmwbwgx
フォームにテーブルを置いて沢山ボタンを貼ったら拡大縮小が重いんですけど何とかできませんか?
0835デフォルトの名無しさん2015/09/20(日) 08:53:38.85ID:atv7oNrq
(拡大縮小?ウィンドウのリサイズじゃなくて?
リサイズならSuspendLayoutとか使ってリサイズ中の再レイアウトしなければいいよ)

うわぁ糞UI
作った奴の顔がみたいわ
0836デフォルトの名無しさん2015/09/20(日) 08:59:46.10ID:ID+VTfau
>>830
確かnullを直接渡すと怒られるよ
変数に入れたnullなら型情報が分かるんで、より一致する方のオーバーロードが使われる
0837デフォルトの名無しさん2015/09/20(日) 09:12:06.59ID:G8nyRp9n
ごらんください!
>>836が会話の出来ないアスペです!!
0838デフォルトの名無しさん2015/09/20(日) 09:31:55.72ID:MJM0/U0P
>そんなもんSQLのバッチでいいだろ?

つまり、Entity Frameworkのような、モデルを作って
バインドする新しいやり方では、不特定多数のテーブルを
扱うことは想定されていないんですね。

そういう事をやりたいなら、CUIやDataTableを使うレガシーな方法で行うか、
そもそも、そんな要件は無いだろうという世間の流れで。
0839デフォルトの名無しさん2015/09/20(日) 09:42:13.68ID:xvj/AjF/
俺に言わせればDataTableすら新しすぎる
0840デフォルトの名無しさん2015/09/20(日) 15:48:35.19ID:6eBMLW7j
ひと目でわかるVisual C# 2013/2012っていう本に従って勉強中です
データバインディングの項目で、Microsoft.TeamFoundation.Controlsアセンブリを追加するところがあるのですが
私の使っているVS 2015にそれが見当たりません
TeamFoundation.TestManagement.Clientと.Commonしかないのです
これは今は使えないということでしょうか?
調べてるとMVVMが廃れたわけでもなさそうなのですが
どうすればTeamFoundation.MVVM名前空間のViewModelBaseを使うことが出来るのですか?
0841デフォルトの名無しさん2015/09/20(日) 16:50:06.13ID:KnkVTe6x
VS2013/2012を使えばいいんじゃないかな
0842デフォルトの名無しさん2015/09/20(日) 20:33:53.23ID:hA4WAsts
>>837
死 ね
0843デフォルトの名無しさん2015/09/20(日) 21:29:00.00ID:pU2LJebP
>>833,836
なんか潜在的なバグが混入しそうですよね。
まぁ、どちらの型で認識されようがオーバーロードしてる時点で無用な心配なのかな。
0844デフォルトの名無しさん2015/09/20(日) 21:49:33.68ID:WVEtGqG9
試したが直接nullでも動くな
違う副作用のあるようなメソッドだったりしたら激しくバグのもとになるな
0845デフォルトの名無しさん2015/09/22(火) 10:57:20.96ID:4C+5DK23
初歩の初歩ですまんのだけど
ソリューションエクスプローラに新しいフォルダ作成して
作ったクラスファイルたちをまとめて入れたらデザイン画面で一斉に
エラーで表示されなくなってしまった

ソリューションエクスプローラの階層ってどういう概念なの?
クラスファイルが大量にできあがってきたらどうやって整理してるもんなの?
フィルターとやらも開いているか保留中のものしか選べないし
0846デフォルトの名無しさん2015/09/22(火) 11:29:47.88ID:kM8Zsdev
フォルダとネームスペースは無関係なのがC#
0847デフォルトの名無しさん2015/09/22(火) 11:32:45.40ID:UA3KR8BB
あれ、そうだっけ
後からいれても問題なったよ
フォルダの中にクラス作ったら名前空間がついてしまうけど
0848デフォルトの名無しさん2015/09/22(火) 11:35:12.87ID:WwX+UBs0
ソースファイルがVSに認識されてさえいれば、フォルダ階層がどうなってようが関係ない
resxなどの隠しファイルを間違って消したりしてなければ、リビルドすれば直るはず
ちなみに普通は名前空間でフォルダを分ける
0849デフォルトの名無しさん2015/09/22(火) 11:59:43.22ID:4C+5DK23
みなさんレスどうもです

どうもフォルダ整理した直後に作成したフォームが原因なのか
リビルドしたり再起動したり繰り返し、該当フォームのない状態でやり直したら
ようやく元通りになって、フォルダの整理も無事でけました

なぜかFormの継承が全てエラー表示になってて焦った・・・
0850デフォルトの名無しさん2015/09/22(火) 14:29:58.51ID:rOgi/y60
VSで新規ファイル作るとnamespaceに勝手にフォルダ名付けてくれるからだろ
0851デフォルトの名無しさん2015/09/22(火) 16:25:37.34ID:ongmovxt
http://d.hatena.ne.jp/n-trino/20060830
これってhttp://iup.2ch-library.com/i/i1512019-1442906619.jpgの時falseにならないんですか?
0852デフォルトの名無しさん2015/09/22(火) 16:51:03.80ID:H6Cx9bao
>>851
何でここで聞いてんの?バカなの?
0853デフォルトの名無しさん2015/09/22(火) 16:53:22.24ID:gQIVdZQM
初期状態は?
初期状態から問題の状態に一気に遷移するのか?
0854デフォルトの名無しさん2015/09/22(火) 16:58:20.68ID:a5cNA6UJ
>>851
矩形と点の当たり判定なんて楽勝だろ?
事前に判定入れて、端点のどちらか一方でも矩形の内側にあれば当たりでいい
0855デフォルトの名無しさん2015/09/22(火) 16:59:45.82ID:ongmovxt
>>852
今c#で色々作ってるから

>>854 ありがとう
0856デフォルトの名無しさん2015/09/22(火) 17:13:01.38ID:a5cNA6UJ
交差判定なんか任意の線分同士、矩形同士、球同士の判定だけ作っておけばいいよ
あとは矩形と線分でも何でも線分同士の判定に帰着させてそれを使い回せばいいだけだ
一般的なケースに絞ったほうが最適化もやりやすいし、事前に矩形か球で対象を絞っておけば計算量はほとんど増えん
0857デフォルトの名無しさん2015/09/22(火) 17:52:58.32ID:D62fIqEh
いろいろな都合で動きが離散的だったりするとすり抜けが発生するよね
0858デフォルトの名無しさん2015/09/22(火) 18:10:59.79ID:3hlt/w8A
よく読んでないけど、>>851は四角形の四辺のいずれかが線分と交差する場合のみを
「当たり」とみなしてるんだから線分が四角形に内包される場合は「当たり」にならないのは当たり前だな。

線分LMと四角形ABCDが接触している必要十分条件は、点Lと点Mの少なくとも一つが、

(1) 上辺ABの下側にある
(2) 右辺BCの左側にある
(3) 下辺CDの上側にある
(4) 左辺DAの右側にある

このすべてを満たすことじゃないのかな。
外積を使えばある点が線分の左右(上下)どちら側にあるか判定できるはず
0859デフォルトの名無しさん2015/09/22(火) 18:24:43.98ID:Fps1T422
>>858
それは点が四角形に含まれる条件
線分が四角形を跨がる場合があるからそれだけじゃダメ
0860デフォルトの名無しさん2015/09/22(火) 18:30:07.02ID:3hlt/w8A
>>859
良く読んだ?
0861デフォルトの名無しさん2015/09/22(火) 18:39:26.90ID:3hlt/w8A
いややっぱり>>858じゃダメだなすまんw
0862デフォルトの名無しさん2015/09/22(火) 19:53:05.50ID:RCOlapbD
>>857
Winding Number Algorithmの考え方やね
ポリゴンの各辺に対して線分の交差調べながら、同時に線分の両端の巻き数調べればいけるんちゃう?
http://www.nttpc.co.jp/technology/number_algorithm.html
0863デフォルトの名無しさん2015/09/22(火) 20:14:23.32ID:ongmovxt
つまり
線分の両端の点と矩形の判定をして片方でも当たっていたらtrue
4つの辺と線分の判定をしてどれか当たっていたらtrue
どちらも駄目ならfalseでいいですかね?
0864デフォルトの名無しさん2015/09/22(火) 23:52:18.67ID:ongmovxt
順不同引数関数って作れませんかね?
さっきの当たり判定プログラムで、(四角,線)でも(線,四角)でも指定できるようにしたいです
0865デフォルトの名無しさん2015/09/22(火) 23:53:38.07ID:7b9YUjXM
>>864
作れますよ
0866デフォルトの名無しさん2015/09/22(火) 23:57:43.24ID:+2wZ1QC+
オーバーロードすればできるが、当然それを呼ぶときには両方の引数の型を静的に知っている必要があるので
呼ぶときに自分で順番を入れ替えればよく、特に意味がないからやめておいた方がいい
多態を使う手もあるが、当たり判定の組み合わせなんて知れてるんだから必要以上に複雑にするのはお勧めしない
0867デフォルトの名無しさん2015/09/23(水) 00:04:16.32ID:I8cESb/2
オーバーロードしないと無理ですか…複雑になりそうなので止めておきます
適当に2つの構造体を渡したら判定してくれると便利と思いました
0868デフォルトの名無しさん2015/09/23(水) 00:06:02.21ID:jFImzPWq
止めとけバカの一言だな
0869デフォルトの名無しさん2015/09/23(水) 00:07:45.36ID:eoRXT0IT
引数の名前書いて渡せばできるだろ
0870デフォルトの名無しさん2015/09/23(水) 09:29:41.17ID:VaH5eN5d
何千行?何万行?くらいのコードを書けば初心者を脱出出来ますか?
0871デフォルトの名無しさん2015/09/23(水) 10:45:21.87ID:Edj0jzP7
沢山書くだけで初心者脱却できると思っているのなら永遠に無理
0872デフォルトの名無しさん2015/09/23(水) 13:39:47.66ID:5eBf/OXr
>>869
名前付き引数ね
https://msdn.microsoft.com/ja-jp/library/dd264739.aspx

使ったこと無かったわ
VS上ではあまり意味のない機能かな
0873デフォルトの名無しさん2015/09/23(水) 15:54:03.11ID:1jqGrEyR
2Dゲーム当たり判定総合 [転載禁止]c2ch.net
http://peace.2ch.net/test/read.cgi/tech/1442990347/
0874デフォルトの名無しさん2015/09/23(水) 16:56:33.87ID:sRMylV5p
>>872
単純な順番の入れ替えなどどうでもよくて、本来は省略可能な引数が多数あるメソッドで使うんだよ
殆どがデフォルトでいいけど、一箇所二箇所だけ指定なんてことも出来る
0875デフォルトの名無しさん2015/09/23(水) 18:26:05.53ID:5eBf/OXr
>>874
なるほど
0876デフォルトの名無しさん2015/09/24(木) 03:03:59.19ID:7x8LRaYH
DBからDapperでデータをマッピングし、
それを変更した後、マッピングしたタイミングの状態と変更後の状態の差分を取って更新用のSQLを生成したいのですが、
何か楽な方法はないでしょうか?

今はForEachでぐるぐる回してますが、あまり美しくなくてどうにかしたいです。
特にUpdate文を生成するのがネックになっています。
0877デフォルトの名無しさん2015/09/25(金) 12:45:13.28ID:cJmaZWu4
C#長いこと触ってないな。今はAndoroidアプリメインだし
ところで、C#のnamespaceのフォルダ表示が
しっくりこなかったな〜
java組から入りやすい様にstringもStringで
いける形で作ってあるし
namespaceとかするなら、いっそjava同様に
フォルダ単位で作れば良かったのに
あと、partialって気持ち悪くて使った事無かったな〜
0878デフォルトの名無しさん2015/09/25(金) 12:54:49.83ID:0lz/blt5
しっくりこないんです氏ってアプリ屋に転身されたんですか
0879デフォルトの名無しさん2015/09/25(金) 18:31:43.31ID:77sgM+Ge
>>876
AdapterパターンでIDbConnectionをフックして、Dapperが実行したSQLを抜けば?
prepared statementまで考慮する必要があるならちょっと厄介だけど
0880デフォルトの名無しさん2015/09/25(金) 20:26:51.15ID:KJgftwp5
>>877

namespaceがフォルダと同じ=OSの制約を受ける
つまりjavaは糞仕様

多くのOSで共通を目指してるのにこれはないわ
0881デフォルトの名無しさん2015/09/25(金) 22:47:35.52ID:rKY1TxYt
>>877
トイプログラムなら、partialは不要。
0882デフォルトの名無しさん2015/09/25(金) 22:59:57.76ID:d/BU1gwb
と馬鹿が申しております
0883デフォルトの名無しさん2015/09/25(金) 23:22:31.69ID:EAOTXXYi
partialクラスがなかった頃のVSには戻りたくない
0884デフォルトの名無しさん2015/09/25(金) 23:28:14.19ID:4d8u8vME
partialとか自前で使うの勧められてないでしょ

VSで自動生成されるデザインとコードを分離するためのものやん
0885デフォルトの名無しさん2015/09/25(金) 23:54:48.56ID:cJmaZWu4
そういえば、C#とは関係無いけどC#に手を出した時に
それまでVBというやつに手を出したことなくて
VB.NETを少しだけ触ったけど
なんだよDim i as Integerって、と思ったな〜
それも大文字小文字関係ないって、どういう事だよ
そんで、少しコンポーネントをウィンドウにポトペタ貼って
コードいじってたら、初期化時のインスタンス精製場所で
エラーが出て、フルパスに変更して直ったけど
「コード書くのメンドクセ!」って思った
だいたい、設定変えりゃ良いらしいけど
配列のindexが1からって、なんだありゃ!!
0886デフォルトの名無しさん2015/09/25(金) 23:56:20.95ID:mPJsDAwW
自動生成以外であれ使うくらいなら、2階建て3階建にしたほうが使い勝手いいもんね
それぞれの階層でprivateがつかえるんだから平屋なんかやってられないわ
0887デフォルトの名無しさん2015/09/26(土) 00:04:32.60ID:zrXaO1D9
partialつかって4kの単体クラスライブラリを2k×2にしてた奴なら見たことある
0888デフォルトの名無しさん2015/09/26(土) 00:10:37.36ID:uTIKCoPr
>>885
なんとなく違和感を覚える文章を書くね、君
内容じゃなくて表現や文法が
0889デフォルトの名無しさん2015/09/26(土) 00:55:02.64ID:snRIqmgr
手続き的な文章だから
手続き脳なんじゃね?
0890デフォルトの名無しさん2015/09/26(土) 10:15:18.43ID:CRuLH1jE
VB.NETの配列は0ベースだろ
1ベースとみなしてもだいたいそれっぽく動くように、x(5)と宣言したらx(0)〜x(5)までの6要素が作られる馬鹿な仕様
0891デフォルトの名無しさん2015/09/26(土) 12:41:08.15ID:kJBpLW52
VBAと勘違いしてるんだと思うよw
VB6ですら0起番だからw
0892デフォルトの名無しさん2015/09/26(土) 13:35:02.36ID:sASHUMF/
VB6はOption Base使えるだろう
0893デフォルトの名無しさん2015/09/26(土) 15:24:15.27ID:txfl6VFM
>>884
インナークラス作るときに別ファイルにしたいじゃん
0894デフォルトの名無しさん2015/09/26(土) 20:16:44.48ID:XoMNa86j
VBAですら0オリジンなんだが
0895デフォルトの名無しさん2015/09/26(土) 20:20:05.57ID:VMIaqxNe
どうでもいいけど”0オリジン”は和製英語だよ
0896デフォルトの名無しさん2015/09/26(土) 20:23:57.31ID:XoMNa86j
和製英語なのか
まあつまり、日本国内では通用するって事だな
0897デフォルトの名無しさん2015/09/26(土) 21:08:47.54ID:VOk2B2El
VBはDimって物自体がどうにかならんかったんかな
Dimはディメンジョンの略で、MS-Basicが配列しか静的型付けしなかった頃からの惰性だもんな
0898デフォルトの名無しさん2015/09/27(日) 05:52:07.89ID:us1PQXsq
英語だとzero-basedかな
0899デフォルトの名無しさん2015/09/27(日) 13:51:19.21ID:NFaIPZI4
"zero origin"でググってみりゃ分かるけど、普通に使われてるけどねw
0900デフォルトの名無しさん2015/09/27(日) 14:30:11.84ID:NRLqsz4V
まあ
https://en.wikipedia.org/wiki/Zero-based_numbering
だろうね
0901デフォルトの名無しさん2015/09/27(日) 14:32:44.83ID:us1PQXsq
>>899
普通に使われてるとは思えないが……
0902デフォルトの名無しさん2015/09/27(日) 15:21:25.99ID:m0mYbJjD
C#で質問があります
空のオブジェクトをDisposeすることによってBad_pool_headerのブルースクリーンエラーが出ることはあるのでしょうか

以下、経緯です
自分が作成したプログラム(C#で作成)が動作中、ブルースクリーンが発生しました
Bad_pool_header(0xc2)のパラメータ1が0x7(現在のスレッドがすでに解放されたプールを、解放しようとしました)でした

unsafeは使用しておらず直接メモリを書き換えるようなことはしていませんでしたが、
Disposeで作成したオブジェクトを削除する処理が入っているため関連性があるのか気になりここに書き込みさせていただきました
なおBlueScreenViewで解析した所ドライバはNtfs.sysで落ちていました

(ちなみに、試しに空のオブジェクトをDisposeしましたがソフトが落ちるだけでブルースクリーンは発生しませんでした)
長文失礼しました
0903デフォルトの名無しさん2015/09/27(日) 15:53:59.01ID:crxP/jjh
Disposeの中で実際何をやっているのかによる
Disposeメソッド自体は特別なものでも何でもなく普通のメソッド
0904デフォルトの名無しさん2015/09/27(日) 15:59:08.74ID:Tcvq0fDO
>>902
とりあえず再現性確認しろよ
0905デフォルトの名無しさん2015/09/27(日) 16:07:22.60ID:m0mYbJjD
>>904
2か月ほど動いてて先週1回ですね
再現性は低いです
0906デフォルトの名無しさん2015/09/27(日) 16:14:19.32ID:8A5jeRhu
そもそも冒頭の「空のオブジェクト」って何のことさ
IDiposableを中身空で実装しただけのクラスインスタンスをDisposeしたの?
0907デフォルトの名無しさん2015/09/27(日) 16:14:24.49ID:gmEdMoRf
>>905
命令口調のお馬鹿なんか相手にしなくていいのに。

普通に考えてプログラムよりシステム(HDD)の障害の可能性の方が高いと思うんだけど、
ファイルシステムのチェックとかやったの?
0908デフォルトの名無しさん2015/09/27(日) 16:15:15.68ID:m0mYbJjD
>>903
Disposeの内部によっては発生する可能性があるわけですね
あるメーカーのライブラリのクラスのオブジェクトをDisposeしてるので問い合わせてみます
0909デフォルトの名無しさん2015/09/27(日) 16:18:16.16ID:m0mYbJjD
>>907
ntfs.sysのドライバーで停止してたので、念のためにドライブのエラーチェックやデバイスマネージャの確認をしてみたのですが特に破損・エラー等はありませんでした
windows7の為、噂のkp41病の可能性も考えましたが、まずソフトを疑ってみようと調べてるところでした
0910デフォルトの名無しさん2015/09/27(日) 16:18:26.10ID:8A5jeRhu
最終的にそれを言うなら最初に言うべきだった
0911デフォルトの名無しさん2015/09/27(日) 16:19:40.74ID:m0mYbJjD
>>910
そうですね、すみません
0912デフォルトの名無しさん2015/09/27(日) 16:34:16.75ID:HPcLVpj2
ブルースクリーンってカーネル層のエラーだろ
普通に考えてC#のプログラムミス等でブルースクリーンなんて起こせないと思うんだが
0913デフォルトの名無しさん2015/09/27(日) 17:28:31.85ID:Tcvq0fDO
>>905
普通はそれならシロだよ

知ったかの馬鹿なんて無視しとけ
丁寧にでたらめを言う奴も死ねでいい
問い合わせなんて迷惑なだけだから止めた方がいい
0914デフォルトの名無しさん2015/09/27(日) 18:47:17.01ID:ULqoDcvQ
Usingなんてつかうからバグが発生する
0915デフォルトの名無しさん2015/09/27(日) 21:40:32.92ID:QHSPW0OV
プログラムなんて辞めちまえ。そして旅に出ろ。
0916デフォルトの名無しさん2015/09/27(日) 22:07:30.53ID:LVZWwNwi
VSのtimerのTickイベントでClearメソッドで消してからDrawLineメソッドで線を描くのをループさせるアニメーションを作ると描いた線がチラつきます
いったいどうしたらいいんですか?
(´・ω・`)
0917デフォルトの名無しさん2015/09/27(日) 22:14:22.99ID:us1PQXsq
>>916
ちょっと今それどころじゃないんだけど
すっこんでて
0918デフォルトの名無しさん2015/09/27(日) 22:16:25.97ID:8A5jeRhu
ひっでえw
0919デフォルトの名無しさん2015/09/27(日) 22:19:52.15ID:jTsd9hQM
>>916
ダブルバッファでググレ
0920デフォルトの名無しさん2015/09/29(火) 05:14:12.62ID:BhlzjE5k
VS2015でStreamReaderクラスを使おうとすると
『現在のコンテキストにStreamReaderという名前は存在しません』と出て
毎回先頭にusing System.IO;と書かないといけないんだけど、
デフォでusing System.IO;が表記されてるようにはできないんですか?
(´・ω・`)
0921デフォルトの名無しさん2015/09/29(火) 06:06:08.83ID:0lZfHTgJ
>>920
出来るよ
参照設定するあたりだったかな
0922デフォルトの名無しさん2015/09/29(火) 06:37:06.56ID:95NUhHsK
別アセンブリにあるクラスのインスタンスのプライベートメンバ構造体のパブリックメンバに
書き込みを行いたいんですが、何か良い方法は無いでしょうか?
0923デフォルトの名無しさん2015/09/29(火) 07:38:29.33ID:uHzwbLlZ
プロキシするアクセッサーでも用意しなよ
それが穏当だろ

どうせできないんだろうけど
ソースに手が出せないとか
アセンブリしか提供されてないとか後出し条件でさ

そうなんだろ?だろ?
0924デフォルトの名無しさん2015/09/29(火) 07:43:16.34ID:+KF25K9W
リフレクションでFieldInfo取得してSetValue
セキュリティ制限があると使えないこともあるけど
0925デフォルトの名無しさん2015/09/29(火) 08:55:02.53ID:95NUhHsK
>>923
ご明察。セッターメソッドは存在するんですがそのメソッド内部の処理を迂回して直接書き込みたい、と言う感じです。

>>924
自分もリフレクションで何とかしようとやって見たんですが、
FieldInfo.SetValueで渡す構造体インスタンス?(値型ですが)が確保できなくて困ってます。

 typeof(外部クラス型).GetField("構造体名",BF).GetValue(外部クラスインスタンス);

をした時点で「構造体の値がコピーされたobject」が返ってくる様です。(その為SetValueDirectでも無理でした)
コピー構造体のメンバを書き替えてコピー構造体自体を代入する、と言う手段もあるんですが、
書き込む際にその都度GetValueするハメになるので、なんとか構造体のメンバへ直接書き込みたい次第。
0926デフォルトの名無しさん2015/09/29(火) 09:40:33.01ID:SqFlqVze
カプセル化 オブジェクト志向(笑)
0927デフォルトの名無しさん2015/09/29(火) 09:41:41.44ID:RQ7ZrE+f
>>926
だれにレスしてるのか書けやフニャチン野郎
0928デフォルトの名無しさん2015/09/29(火) 10:07:21.45ID:OzHcCqWJ
http://ideone.com/z19md3
こういうことかね ideoneだと実行時に転けるけど
0929デフォルトの名無しさん2015/09/29(火) 10:18:55.02ID:qVFuDZbI
穴ガバガバ小僧に語る棒は持ってない
0930デフォルトの名無しさん2015/09/29(火) 11:16:52.06ID:95NUhHsK
>>928
まさにそんな感じです。
そのコードだとMakeTypedReferenceでNotImplementedException吐くみたいですね。なんでだろう。
0931デフォルトの名無しさん2015/09/29(火) 14:13:54.86ID:OzHcCqWJ
Monoがサポートしてないとかそんなんだろ
0932デフォルトの名無しさん2015/09/29(火) 15:07:12.67ID:95NUhHsK
>>931
なるほど、monoが原因ですが。と言う事は.NETではこのコードで問題ないんですね。
助かりました。ありがとうございました。
0933デフォルトの名無しさん2015/09/29(火) 15:54:09.92ID:FsgQifDT
c#はじめて2ヶ月のど素人なんだけど、EntityFrameworkはどう勉強したら良いのやら
ネットで初心者向けにでてるのはWindowsFormが中心だし、
入門向けの書籍を読みあさってみたけど、EntityFrameworkの記載は数ページだし

とりあえず帳票アプリをデータベースからDataGridViewに流してやってみてるんだけど、
時代遅れなんかな・・・
たとえば2010年くらいの記事に、「EntityeFrameworkがほとんどで、あまりDataSetやDataTableを
使っていることはないですが」・・みたいな記述を目にすると今やってるのが不安
0934デフォルトの名無しさん2015/09/29(火) 16:59:57.86ID:0lZfHTgJ
>>933
>EntityFramework
何だよそれ、俺はc#の上級者(自称)だが聞いた事がないぞ。
0935デフォルトの名無しさん2015/09/29(火) 17:48:09.43ID:69dhz8kz
上級者には不要
0936デフォルトの名無しさん2015/09/29(火) 17:50:35.97ID:3zRIyegQ
>>934
このスレでも何度か出てきてるのに
0937デフォルトの名無しさん2015/09/29(火) 19:33:43.09ID:acQqRnNE
2ヶ月ならまだ他に覚えるべきことありそうだが

ORマッパーなら軽量のdapperをとりあえず使っておいて

ラムダ式やLINQ、dynamic等
c#3.0以降の技術学んだ方がよくね
0938デフォルトの名無しさん2015/09/29(火) 19:42:14.31ID:+KF25K9W
まずはSQL覚える
その次はSQLを撒き散らすのをやめてDAOやRepositoryに纏める
ORMに手を出していいのはそれからだよ
この段階を踏むとORMを触ったときにその必要性に疑問を感じるかもしれないが、それは正しいこと
ORMが間違ってるとは言わないが、良い手法は他にもあるというのを理解した方がいい
0939デフォルトの名無しさん2015/09/29(火) 20:10:56.54ID:acQqRnNE
他言語はやってるものかと思ったわ
0940デフォルトの名無しさん2015/09/29(火) 23:28:38.05ID:5ZVAdYEK
EFは所詮オモチャなんだよね
最初は面白いけどそれだけ
保守性を犠牲にしてまで使う価値はない
0941デフォルトの名無しさん2015/09/29(火) 23:52:11.43ID:0mib0yFJ
逆だろ
保守性と開発効率のためにパフォーマンスを犠牲にしてる
0942デフォルトの名無しさん2015/09/30(水) 01:17:40.44ID:hVBoGBdF
開発効率はともかく、保守性はどうだろうなぁ
どっちにしろある程度のノウハウの蓄積は必要なんだが
EFは現状バージョンアップが早すぎて蓄積させてる暇がないという
0943デフォルトの名無しさん2015/09/30(水) 01:41:09.02ID:OTpQKuTn
modelをラップして、
ラップしたクラスはmodelのように扱えるという機能はありますか?

var model = new MyModel()
var wrapper = new Wrapper〈MyModel〉(model)

wrapper.member

つまり、IsAに限りなく近いHasAをやりたいです。
0944デフォルトの名無しさん2015/09/30(水) 02:00:06.46ID:e6fbRZDk
>>943
出来ないけど出来たとして何の意味が?
09459332015/09/30(水) 05:43:38.01ID:WJymSOZZ
皆さんレスありがとうございます

EFは必須ってほどでもないんですかね

>>937
C#3.0の技術を盛り込んだというと究極のC#〜あたりの本を読めばいいのかな
LINQも入門書あたりの内容は入れても、実際に書いていてもどこで使って良いのか
理解が浅い証拠ですね
0946デフォルトの名無しさん2015/09/30(水) 06:02:40.17ID:0EvGJYX4
>>944
デコレータやアダプタの自動生成は便利だよ
0947デフォルトの名無しさん2015/09/30(水) 06:24:20.21ID:ZFzEM6SP
tes
0948デフォルトの名無しさん2015/09/30(水) 07:13:01.25ID:fNcF+cXU
Visual Studioの機能を網羅的に解説したリファレンス本みたいなのってないでしょうか?
なんか最近ちょっと調べると知らない機能出てきてこんなのあったんだ!って思うことが多いので…
0949デフォルトの名無しさん2015/09/30(水) 07:16:00.39ID:L4DkDpWh
>>948
msdnだろ
0950デフォルトの名無しさん2015/09/30(水) 07:23:00.73ID:hnuxw5SV
本当に網羅したら世界大百科事典になる
0951デフォルトの名無しさん2015/09/30(水) 10:09:16.97ID:nwDEPt3E
解説した本を読み終わる頃には新しいVSが出て
新刊が出る
0952デフォルトの名無しさん2015/09/30(水) 10:53:37.42ID:x9GB7uA/
>>943
ぱっと思いついたのはDynamicObjectクラス
0953デフォルトの名無しさん2015/09/30(水) 11:54:18.82ID:Q1Di+uY9
知っとくとお得な新機能!みたいなのを書き散らすブログとかいっぱいあるのを
適当につまみ食いすればいい
0954デフォルトの名無しさん2015/09/30(水) 13:06:25.72ID:pKnU5s27
>>945
その本は初学の頃お世話になった

なんでもIEnumerableで処理したくなるよ
0955デフォルトの名無しさん2015/09/30(水) 15:01:35.74ID:fNcF+cXU
>>948です。機能多すぎて網羅的な本は無理なんですね…
MSDNとかブログを地道に読んでくことにします。ありがとうごさいました。
0956デフォルトの名無しさん2015/09/30(水) 16:33:41.90ID:P1igtzmQ
POST送信して応答したzipファイルを保存したくてコード組んだのですが
ブラウザに比べて何かダウンロード速度が遅いような気がするんですが
おかしい個所ありますか?

WebRequest req = WebRequest.Create(url);
(POST送信した)
res = req.GetResponse();
resStream = res.GetResponseStream();
//応答データをファイルに書き込む
byte[] buff = new byte[65536];
for (; ; )
{
int read = resStream.Read(buff, 0, 65536);
if (read == 0) break;
savefile.Write(buff, 0, read);
}
0957デフォルトの名無しさん2015/09/30(水) 17:07:40.88ID:jOwHXJke
バッファがでかすぎる
1024で良い
0958デフォルトの名無しさん2015/09/30(水) 17:28:07.62ID:j+1x7wg+
遅いというのは何を持って判断した?
0959デフォルトの名無しさん2015/09/30(水) 19:02:39.21ID:OTpQKuTn
>>952
内部の仕組みとしてはまさにそれを使うけど、インテリセンス聞かないからなぁ。
0960デフォルトの名無しさん2015/09/30(水) 19:59:03.89ID:hnuxw5SV
>>943
具体的にそのWrapperで何をやりたいんだ?
まず継承ではダメな理由を説明してくれ
横断的な振る舞いを追加したいんだったらCastle.DynamicProxyが便利
0961デフォルトの名無しさん2015/09/30(水) 21:34:05.01ID:CMvmRCiR
すいませんasync/awaitがよく分からないのですが

Func<int> asyncJob = Proc;
int ret = await Task.Run(asyncJob);

public int Proc(string s){ return 1; }

この時Procに渡す引数sはどこにどう書いたらいいんですか?
0962デフォルトの名無しさん2015/09/30(水) 21:44:48.32ID:vjWRlA19
なんかシグネチャがめちゃくちゃだが
0963デフォルトの名無しさん2015/09/30(水) 22:01:25.16ID:aWp5LDLh
プリミティブ型を独自に作ることは可能でしょうか?
またはクラスをプリミティブ型の様に使う実装をすることは可能でしょうか?

Code hoge = 1;

みたいな感じで。
0964デフォルトの名無しさん2015/09/30(水) 22:01:34.53ID:OTpQKuTn
>>960
デコレータであるからです。
HasAなので継承ではないです。
プロキシは試したけど、使ってるライブラリとの間で副作用があって使えなかった。
まぁできないかなぁー 思った程度です。
0965デフォルトの名無しさん2015/09/30(水) 22:03:49.60ID:OTpQKuTn
>>963
暗黙的キャストをimplictで定義できるよ。
0966デフォルトの名無しさん2015/09/30(水) 22:12:13.45ID:g+DE3vTm
>>961
よくわからんけど
こういうことか?

Func<string, int> asyncJob = Proc;
int ret = await Task.Run( () => asyncJob("引数s"));
public int Proc(string s) { return 1; }
0967デフォルトの名無しさん2015/09/30(水) 22:36:06.77ID:JV2XwNbb
>>963
プリミティブ型というんはc#にはないよ

それに
Code hoge = 1;
こういう書き方はできてもしないほうがいい
だってそれはCode型に intの1を入れてるだけに見えるから
だったらintに入れろよって事
0968デフォルトの名無しさん2015/09/30(水) 23:03:35.93ID:uAnnwQ8v
プログラムの勉強のため、C#を始めたのですが、
練習でデリゲートを書いたところ、変数「funcNew」に
期待した文字"8"が入りませんでした。

基本的な事で恐縮ですが、なぜ"8"が入らないのでしょうか?

delegate string SimpleFunc(int x, int y);

static public string AddFunc(int a, int b)
{
return (a + b).ToString();
}

static void Main(string[] args)
{
SimpleFunc sf = AddFunc;
string funcOld = sf(6, 2);

Func<int, int, string> funcNew = AddFunc;

Console.Write(funcOld); //"8"
Console.Write(funcNew); //"8"が入らない

}
0969デフォルトの名無しさん2015/09/30(水) 23:06:12.29ID:lnfdPqWh
funcNew(6, 2)
じゃないの
0970デフォルトの名無しさん2015/09/30(水) 23:08:17.48ID:hnuxw5SV
>>967
おかしな理屈だな
左辺は明らかにCode型なんだから、変換が行われてるのは見たら分かるだろ
型宣言が離れた場所にある場合には分かりにくいこともあるけど、そんなのは程度問題だ
実際、MS公式の見解として「代入に伴う型変換はその他一般の暗黙変換よりも明示的である」と考えられていて、
C#には明示的型変換、暗黙変換の他に代入変換というのがあったりする
代入変換は暗黙変換より明示的なので、暗黙変換よりもちょっとだけ柔軟に型変換してくれる場合がある
0971デフォルトの名無しさん2015/09/30(水) 23:16:16.59ID:uAnnwQ8v
>>969
言われて気が付きました。
理解不足を痛感します。

ありがとうございました。
0972デフォルトの名無しさん2015/09/30(水) 23:37:00.29ID:aEcL3JaV
http://peace.2ch.net/test/read.cgi/internet/1401535906/107
  ↑ ↑ ↑ ↑ ↑ ↑ 
0973デフォルトの名無しさん2015/09/30(水) 23:52:29.93ID:cPCKDzHR
Code型に1を入れることが直感的に何をしてるかわかるならいいと思うけど
0974デフォルトの名無しさん2015/10/01(木) 01:20:55.93ID:Rq0aBvC1
>>966
そういう風に記述するんですか
基本的なことがわかってませんでした
0975デフォルトの名無しさん2015/10/01(木) 03:11:13.17ID:AtezcQYZ
Codeクラスが数値クラス(たとえば固定小数点型)ならintを代入するのもありだろう
でもintからそうでない値を作るならコンストラクタを経由すべき
内部的にはlongを持ってるだけのDateTime型でもintからの型変換は持ってないはずだし、型変換は等価な関係で行うべき
0976デフォルトの名無しさん2015/10/01(木) 03:13:44.14ID:tpp1/Mwf
> Code hoge = 1;
この書き方ってまさにvb6の既定のプロパティだね
Dim L As Label
L = "Important"
0977デフォルトの名無しさん2015/10/01(木) 15:55:59.35ID:pyRjNSO9
C#を日本語で解説したイーラーニングサイトや動画ってありませんか?
できれば無料〜1万円程度だとありがたいのですが
0978デフォルトの名無しさん2015/10/01(木) 19:17:18.98ID:WaYLt0zd
本じゃダメなの?
0979デフォルトの名無しさん2015/10/01(木) 19:19:08.15ID:L5Difcd6
unityのC#なんですが、System.Dataの機能(DataTableやDataSet)が使えません
ソースに記述しても認識されませんでした
なので、VS2013のプロジェクトエクスプローラの参照から、参照→参照の追加で
System.Dataを追加し、ソースにDataTableと記述したところ、認識されました

しかし今度は「error CS0234:型または名前空間名 'Data' は名前空間 'System' に存在しません。アセンブリ参照が不足しています」
と出てしまいます

このエラーの解決策が全く分かりません
どなたか解決策ご存知でしたら教えて下さい
0980デフォルトの名無しさん2015/10/01(木) 19:43:18.27ID:a//W8GIK
>>979
Unityは詳しくないが、UnityのプロジェクトでDLL参照を追加したりするのはUnityのエディタ側でやるもんじゃないのか?
VS側で開いてるプロジェクトってVSで編集するためのダミーみたいなもんだろ
0981デフォルトの名無しさん2015/10/01(木) 20:38:14.89ID:L5Difcd6
>>980
Unity側の設定で解消するのではないか、という事ですか?

ただ、VSの参照の追加から参照を追加すると「参照がありません」エラーログは
解消したので、VSの設定で何とかする問題なのでは、と思ったんです

Unityスレで聞いたらUnity関係ないと言われそうだったので、こちらで質問させて頂きました
0982デフォルトの名無しさん2015/10/01(木) 20:43:39.33ID:ASS/6Yz0
unityって何だ?おら知らん。
0983デフォルトの名無しさん2015/10/01(木) 21:00:32.30ID:L5Difcd6
>>980
解決しました!
>>980様の仰る通りUnity側で参照させる必要があったみたいです
System.Data.DLLをコピーしてきて、Assetフォルダ内に入れたら参照されました
そもそもスレ違いの質問でした、お騒がせしました。
0984デフォルトの名無しさん2015/10/01(木) 23:25:13.96ID:eWSapn5g
ラムダ式を使って、無名関数を作れることが解って
面白いなと思ったのですが、使いどころってあるのでしょうか?

Func<int, int, string> sfLambda = (a, b) => {
return (a + b).ToString();
};
0985デフォルトの名無しさん2015/10/02(金) 01:36:25.88ID:0oezT4CD
LINQでも使って遊んでろ
0986デフォルトの名無しさん2015/10/02(金) 01:48:29.80ID:aLJ8vobS
一々変数を使って色々準備する必要がない

どっかのサイトではブロック構造としないことで、コード内の行を一々上下させて読まずに、まるで英語を読むかのように読むことが可能とかなんとか
0987デフォルトの名無しさん2015/10/02(金) 04:10:51.35ID:j2xAjxnc
>>977
ドットインストールには、C#は無いの?
0988デフォルトの名無しさん2015/10/02(金) 04:50:12.21ID:Pv15Ozf0
次スレは?
0989デフォルトの名無しさん2015/10/02(金) 07:44:59.47ID:skXD4GMF
>>988
よくぞ気付いた!作らせてしんぜよう。
0990デフォルトの名無しさん2015/10/02(金) 12:29:02.63ID:hYxBSZEe
>>945
EF楽だよ

WPFでEFとSQLiteをNugetからインストール
サーバーエクスプローラでデータベース作成
データベースからモデル作成
(ここまでSQL文もコードも一切書く必要なし)

あとは好きにLINQでレコードの追加削除などすればいい
必要な知識はLINQだけ
データベースはじめて3日目の俺がいうんだから間違いない
ちなみに情報はネットだけで事足りた
0991デフォルトの名無しさん2015/10/02(金) 14:08:28.55ID:XsCDb17v
>>990
sql server expressじゃあなくてsql lite使うのはなぜ?
0992デフォルトの名無しさん2015/10/02(金) 19:44:50.20ID:kSmjR9/m
SQLiteを使っててEFの重さを許容できるケースが思いつかない
EFってサーバーで動く業務アプリ作るのに使うもんだよ
0993デフォルトの名無しさん2015/10/02(金) 20:04:12.81ID:7HANc3XL
所詮3日目の意見だというのに何を真に受けているのだろう
EF憎しで頭と目がおかしくなっているのか?
0994デフォルトの名無しさん2015/10/02(金) 20:26:16.56ID:aoEvK3aX
次スレマダー
0995デフォルトの名無しさん2015/10/02(金) 20:51:04.17ID:IGV3Viy6
残り少なかったので宣言無しで建ててしまいました、すまぬ

ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1443786608/
0996デフォルトの名無しさん2015/10/03(土) 00:48:39.17ID:1uVAP/bb
こっち埋めてくれ
0997デフォルトの名無しさん2015/10/03(土) 00:52:24.28ID:vM3mlDUS
うめうめ
0998デフォルトの名無しさん2015/10/03(土) 04:59:53.66ID:vW0+wuND
>>995
乙
0999デフォルトの名無しさん2015/10/03(土) 08:08:42.45ID:HWsbwgO4
うまるーん
1000デフォルトの名無しさん2015/10/03(土) 08:55:44.24ID:ziGldjqg
>>1000なら朝鮮半島沈没
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
レス数が1000を超えています。これ以上書き込みはできません。