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

レス数が900を超えています。1000を超えると表示できなくなるよ。
2018/03/03(土) 15:09:05.75ID:SBEkwl3H
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part135
http://mevius.5ch.net/test/read.cgi/tech/1517749348/

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

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
810789
垢版 |
2018/03/30(金) 21:13:54.63ID:QYlpMr10
>>804>>808>>809
修正方法のご提示とご検証どうもありがとうございます。問題は>>809にお書きいただいたとおりです。

ただ、お書きいただいた通り問題はスコープにありますので、
Console.WriteLine(message);をifとelseの両方の中に書けばこの問題は起こりません。
この程度の内容を2回書くことは大した問題になりませんし、
この部分に対応するコードが長くなってしまった場合もメソッドとして切り出せば同じことですので、
いただいたレスを読みながら、>>789のようなプログラムを書くこと自体が筋が悪くて、
やはり>>804に適合するプログラムになるよう全体を修正するべきなのかなとも考えました。
ただ、メソッドとして切り出す方法であらゆる状況に対応できるかどうか自信がないので、
いずれにしても確信は持てていない状況です。
2018/03/30(金) 21:24:37.09ID:DYwliZHB
>>807
いつまでトンチンカンなこと言ってんの?
2018/03/30(金) 21:25:20.49ID:DYwliZHB
例のおじいちゃんかよ
レスして損した
2018/03/30(金) 21:28:28.22ID:+cAt7TAV
>>811
トンチンカンでもおじいちゃんでもないからw
こんなググればすぐに理由も対処法もわかる話でMSにクレーム付けたら
質問者が恥をかくだけ
2018/03/30(金) 21:30:10.03ID:DYwliZHB
NG推奨
2018/03/30(金) 21:30:33.31ID:roepBgfb
>>813
じゃ、どうしろって書いてあんの?
リンクのどこ見ればいいかわかんないよ
対象のコード貼ってくれ
2018/03/30(金) 21:30:33.58ID:+cAt7TAV
>>814
もうした
2018/03/30(金) 21:31:54.48ID:DYwliZHB
おじいちゃんに触れても無駄だよ
いつまでも間違いに気づいてないしレスも読んでないから
2018/03/30(金) 21:32:50.48ID:+cAt7TAV
>>815
無視するか気になるなら>>867で対処する
当たり前でしょう
2018/03/30(金) 21:33:56.46ID:roepBgfb
>>818
じゃ、バグってんじゃんw
2018/03/30(金) 21:34:34.33ID:+cAt7TAV
>>819
だから何でそうなるw
意味が分からない
2018/03/30(金) 21:35:21.33ID:DYwliZHB
>>819
おじいちゃんはまだ何が起こってると言う話なのか判ってないからレスしても無駄
スコープもわからないから
2018/03/30(金) 21:36:16.37ID:+cAt7TAV
>>821
トンチンカンなことを言ってるのは君の方なんだけど、自覚がないってのは幸福でいいねw
2018/03/30(金) 21:37:18.61ID:roepBgfb
>>820
いや、バグでしょコレ
だってこんなん指摘してきた同僚がいたらキチガイじゃん
2018/03/30(金) 21:37:22.84ID:MnRWcQoL
>>810
Visual Studio のバグでしょ
とりあえず頓珍漢野郎の>>807のリンク先に抑止方法書いてあるからそれでしのげばいいかと
2018/03/30(金) 21:38:22.07ID:+cAt7TAV
っていうか、>>789みたいなコードが警告されるのはむしろ当たり前。
outの変数を使いまわしするなんてよい作法とは言えないからだ
2018/03/30(金) 21:39:20.19ID:DYwliZHB
ジジイはトンチンカンすぎてダメだな
いつまでたっても成長しない
2018/03/30(金) 21:40:20.48ID:MnRWcQoL
使い回しとかほんとに意味わかってないんだな w
2018/03/30(金) 21:41:00.76ID:roepBgfb
>>825
使うからoutしてんじゃん
ガイジが過ぎるぞ自重しろ
2018/03/30(金) 21:41:07.53ID:+cAt7TAV
しかし、バグバグいってる連中はちゃんとググって解説記事読んでるのかねw
こんなのが同僚だったら張り倒すよw
2018/03/30(金) 21:41:48.65ID:DYwliZHB
ジジイは失礼なので取り消しておじいちゃんにまた戻す
2018/03/30(金) 21:42:50.83ID:roepBgfb
>>829
ありえねーレベルのアホだなw
outしたの使わないでどーすんだよ
832789
垢版 |
2018/03/30(金) 21:45:40.64ID:QYlpMr10
>>805
参考ページのご紹介どうもありがとうございます。
このページは拝見したのですが、問題の解決に至る道筋を見つけることができませんでした。
(確認したページのうち主要なものはあらかじめお伝えしておくべきだったかもしれません。
 申し訳ありません。)

質問させていただいている身でこのようなことをお願いするのは大変心苦しいのですが、
もしお時間に余裕がありましたら具体的な修正方法のご説明をお願いすることはできませんでしょうか。
ご説明の中で私の疑問を理解していただければ幸いですし、
いただいたご説明で問題が解決できれば願ってもないことです。

煽るような文章で答えを引き出すような形になってしまい大変申し訳ありませんが、
私の説明能力の無さゆえの苦肉の策ということで、どうぞ失礼をお許しください。
2018/03/30(金) 21:46:08.85ID:rq+fXpbo
ガイジでいいだろ
本人もそう言ってる
2018/03/30(金) 21:49:29.47ID:DYwliZHB
>>832
とりあえず別のことに時間使ったほうがいいよ
ひまーな時に思い出して修正されたか確かめるといい

うちじゃ全然再現されないからどうしようもない
835789
垢版 |
2018/03/30(金) 22:03:34.15ID:QYlpMr10
ID:+cAt7TAV 様
警告の抑制方法についてご案内いただきどうもありがとうございます。
他に解決策が見つからなければマイクロソフトに問題を報告し、
マイクロソフトに修正していただけるまで教えていただいた方法で警告を抑制したいと思います。

ただ、他の方にいただいたレスも拝見し、やはり私としてはこのメッセージが適切であるとは確信できずにいます。
もしお時間に余裕がありましたら、>>832のお願いを ID:+cAt7TAV 様にもさせていただけないでしょうか。
お願いの方法も内容も大変失礼なもので申し訳ないのですが、どうぞお許しください。
2018/03/30(金) 22:06:55.10ID:+cAt7TAV
まあ質問者がここのお馬鹿さんを代表してMSに質問してみたらいいと思う。
恥をかくのも勉強のうちかも

個人的にはちょっと調べてちょっと自分の頭で考えれば分かるはずのことを理解しようとせず、
「このバグどうなってんだコラー」なんて突撃するのは愚の骨頂にしか思えんけど

つーか、ちょっと考えれば、この警告は余計なお世話のように思えて
一定の合理性があることぐらいすぐ分かると思うんだけど、ガチで分からない奴もいるんだね世の中には
2018/03/30(金) 22:10:00.19ID:+cAt7TAV
>>835
だから、警告の意図はout変数を値を戻す以上の目的で使うのはよい作法じゃないよ、
ってことでしょう。

外側のブロックでも値を使いたいなら別の変数にコピーしてねと
2018/03/30(金) 22:14:49.66ID:roepBgfb
は?こんなのバグだろ
839789
垢版 |
2018/03/30(金) 22:22:13.29ID:QYlpMr10
たくさんご反応をいただきどうもありがとうございます。
とても勉強させていただいています。
お返事が遅くなってしまい申し訳ありません。

予想以上のレスの多さでこの話題に触れてくださった方すべてにお返事するのが難しくなってきましたので、
大変勝手ながら、これ以降、直接私の書き込みにアンカーを付けてくださった方と
特に教えていただきたいことがある方へのメッセージのみ書き込みたいと思います。どうぞよろしくお願いします。

>>825
皆さんのお話を聞いて、コードの無作法が警告メッセージの直接または間接的な原因なのではということを
かなり感じてきました。ただ、作法に関する私の理解が不十分でどうにも宙に浮いたような感覚なのです。
もしよろしければ、>>810考えについてコメントなどをいただくことはできないでしょうか。よろしくお願いいたします。
2018/03/30(金) 22:29:53.50ID:MnRWcQoL
>>836
どう書けばいいのかを書いてからほざけば? w
2018/03/30(金) 22:30:40.89ID:CA+6T7VZ
トンチンチン
842789
垢版 |
2018/03/30(金) 22:32:45.82ID:QYlpMr10
>>824
レスどうもありがとうございます。
やはりバグと考えるのが妥当なのかなという気持ちが強くなってきました。

これだけたくさんのレスをいただき、バグであろうというご意見もいただいているので
もうマイクロソフトに報告を出してしまってもいいかなという気もしているのですが、
一応>>803に書いたとおり一日置いてから報告しようかと思います。

ただバクだとしても、このバグが今まで大した問題にならなかったということは
再現するためのコードに多かれ少なかれ作法の問題があるのではという気持ちもあり、
色々と勉強させていただきたいと考えています。
2018/03/30(金) 22:37:24.89ID:MUNCeVRK
>>842
現象再現するソリューション一式をアップローダにあげたら何か進展あるかもよ
2018/03/30(金) 23:04:09.64ID:L1eApEVG
>>789
以下の書き方ってビルド通るっけ?
ビルドエラーの時は原因と関係ない警告でたりするからmessage=nullみたいに何かいれれば解決したりしない?

string message;
if (x == 1) getMessage1(out message);
else getMessage2(out message);
Console.WriteLine(message);

後outメソッドではなく、戻り値で文字列を返すのが普通
根本的な解決じゃないけどoutキーワードを使わないgetに直せば警告を消せる
845789
垢版 |
2018/03/30(金) 23:06:10.14ID:QYlpMr10
>>834
アドバイスとご検証どうもありがとうございます。

再現性の問題については、警告のカスタム規則セットなどは使っていないつもりなのですが、
そのあたりの理解が不十分でお伝えすべきことが不足してしまっているのかも知れません。
念のため、解説ページなどを読むなどしてもう一度確認したいと思います。

また、とりあえず別のことに時間をということについて、お心遣いをとても嬉しく思います。
ただ、せっかくこれだけの反応をいただけたのだからできる限りのことを吸収して…という
殊勝(?)な考え以上に、私が感じた問題に多くの方が興味を持ってくださったことが嬉しく、
娯楽という意味でもう少しこの場にお邪魔させていただきたいと思っています。
846789
垢版 |
2018/03/30(金) 23:33:26.14ID:QYlpMr10
>>837
大変勉強になるコメントどうもありがとうございます。この観点はまったく気づいていませんでした。
確かにout変数の使い道をそこまで限定することで警告は表示されなくなりますし、
この制限はプログラムの保守性を高める効果もありそうです。
これで私個人の、警告が表示されて気持ちが悪いという問題は解決したように思います。
どうもありがとうございます。

ただそれはそれとして、今回の警告はやはり意図されたものではないと思うのですが、
もしよければこの点についてもご意見をお聞かせいただけないでしょうか。

私がこのように思うのは、以下のコードで警告が表示されないというところにあります。
847789
垢版 |
2018/03/30(金) 23:33:45.21ID:QYlpMr10
bool tryGetMessage1(int _x, out string _message)
{
if (_x == 1)
{
_message = "x is 1.";
return true;
}
else
{
_message = default(string);
return false;
}
}
void getMessage2(out string _message) => _message = "x is not 1.";

int x = 1;
if (!tryGetMessage1(x, out string message))
{
getMessage2(out message);
}

Console.WriteLine(message);
848789
垢版 |
2018/03/30(金) 23:34:33.28ID:QYlpMr10
>>837の制限に従えば上のプログラムのifの部分は次のように修正されるべきです。
しかしこの例では警告文表示されず、従って警告文は>>837の制限を課すためのものではないと思われるので、
「今回の警告は意図されたものではない」という結論に至りました。

int x = 1;
string message;
if (tryGetMessage1(x, out string message1))
{
message = message1;
}
else
{
getMessage2(out string message2);
message = message2;
}
849789
垢版 |
2018/03/30(金) 23:56:19.78ID:QYlpMr10
>>843
アドバイスどうもありがとうございます。
今更ですが、警告が表示されるコードを含むソリューションをアップロードしてみました。
https://dotup.org/uploda/dotup.org1498398.7z.html
850789
垢版 |
2018/03/31(土) 00:03:56.30ID:a/TgDl8y
>>844
レスどうもありがとうございます。
お書きいただいたコードでは、ビルドは通りますが>>789と同じ警告文が表示されました。
これは message = null と書き換えても同じようです。

戻り値で文字を返すべきだというのはおっしゃるとおりだと思います。
ただ>>796のような理由もあり、out変数でも警告が表示されずにすまないか思って質問させていただきました。
2018/03/31(土) 00:04:10.00ID:r1Fcmmf3
>>849
えー、このスレで解決しないといけないの?
初心者スレの領域越えてない?
2018/03/31(土) 00:04:41.30ID:r1Fcmmf3
しかも無駄に長文だしちょっと控えてよ
853789
垢版 |
2018/03/31(土) 00:25:14.41ID:a/TgDl8y
>>851 >>852
申し訳ありません。
もともと不具合なのかどうかの判断もできずこのスレで質問させていただきましたが、
IDEの不具合であるとすれば、おっしゃるとおりここで解決を目指すことではないと思います。

ただ、もしこの問題に興味を持ってくださる方がいて、問題が再現されないようであれば、
>>849のソリューションファイルでもお試しいただければ嬉しく思います。

これ以降は、「IDEのバグ修正」という方向の話について私の方から書き込むことは控えたいと思います。
しかし、すでに私が書き込んでしまった内容にお返事をいただいた際のレスについてはお許しください。

以上、長々と失礼いいたしました。
2018/03/31(土) 00:25:16.57ID:p9TP05UX
>>806
Visual Studio 2017のバージョンは?
最新版(15.6.4)で>>849のソリューションビルドしたけど、IDE0018は出なかった。

後、ID:+cAt7TAVは頓珍漢な上に指摘を一切聞かない人だから無視した方が良いよ。
2018/03/31(土) 02:11:28.67ID:r7WFMRHn
>> 853
Visual Studio 15.5.7 だけど IDE0018 は出なかった

リファクタリングしたらどうなるの?
https://codezine.jp/article/detail/9861?p=4
856789
垢版 |
2018/03/31(土) 08:06:10.45ID:Mw1mdL1r
レスどうもありがとうございます。お返事が遅くなってしまい申し訳ありません。
日中はVisual Studioを使えそうになく、申し訳ないのですがきちんとしたお返事は夜になってしまうと思います。
中途半端な内容になってしまいますが、ひとまずいただいたレスにお返事したいと思います。
後ほど改めて書き込みますので、失礼をお許しください。

>>854
Visual Studio 2017のバージョンについてご報告できておらず申し訳ありません。
恥ずかしいことに最新版を使うという意識も持てていなかったので、古いバージョンを使っているかも知れません。
(ただ、古いバージョンで検証して下さった>>855様もIDE0018は出なかったとのことなので、
 なにか他のところに問題があるのかなとも思っています。)

>>855
ご検証どうもありがとうございます。
>>854様の結果と合わせて2つのバージョンで再現しなかったとのことなので、
私は何かとても基本的なところで間違いを犯してしまっているのかも知れません。
リファクタリング機能については、ご指摘をいただいた上で試したわけではないので後でまた確認しようと思いますが、
問題の箇所では動作しなかったように記憶しています。
2018/03/31(土) 08:08:51.24ID:r1Fcmmf3
>>855
不具合報告スレでも立ててそっちでやれよ
2018/03/31(土) 08:43:46.87ID:+WsDcfNX
別にいいよ
片っ端から透明あぼーんするだけだし
2018/03/31(土) 08:51:48.82ID:OaeapR1O
>>836
> 「このバグどうなってんだコラー」なんて突撃するのは愚の骨頂にしか思えんけど
1年も前にバグと判明して解決してる
https://developercommunity.visualstudio.com/content/problem/8924/ide0018-false-suggestion.html

> 恥をかくのも勉強のうちかも
実践乙 w
2018/03/31(土) 09:03:24.19ID:9aphfiP0
>>789
正解だけ教える

bool TryGetMessage1(out string x) { x = "1"; return true; }
bool TryGetMessage2(out string x) { x = "2"; return true; }

string GetMessage(int x) {
if (x == 1 && TryGetMessage1(out var s)) return s;
if (TryGetMessage2(out var s)) return s;
return null;
}

WriteLine(GetMessage(x));
2018/03/31(土) 09:07:37.87ID:r1Fcmmf3
>>860
これが恥の上塗りか
2018/03/31(土) 12:42:07.43ID:x9Yyswdb
(結局調べれば分かることで、ググれというレスを罵倒してた奴らは今どんな心境なんだろう)
2018/03/31(土) 12:44:49.99ID:LMRl+wCl
>>860
これは主旨が違うじゃん
2018/03/31(土) 12:45:43.39ID:O8yBke8L
ワッチョイないからNGがタルい
2018/03/31(土) 13:03:27.79ID:9aphfiP0
>>863
もともと修正方法教えろって言ってるんだからこれが正解だよ
2018/03/31(土) 13:09:24.39ID:LMRl+wCl
ワッチョイ必要だな
2018/03/31(土) 13:32:48.06ID:OaeapR1O
>>862
> (結局調べれば分かることで、ググれというレスを罵倒してた奴らは今どんな心境なんだろう)
罵倒されてもしょうがないよね
って感じですけど?
しかも恥の上塗りしてる奴までいるし w
2018/03/31(土) 13:32:50.70ID:IoBwmw2C
>>865
>>789と出力結果が違うのに正解とか何ほざいてんのw
2018/03/31(土) 15:17:13.71ID:G6tH+bWp
FirstOrDefaultについて教えて下さい。
List<T>をFirstOrDefaultで条件のものを返してきた場合、
それは参照先のアドレスが返ってくるのでしょうか?
それとも写像としてコピーされたものが返ってくるのでしょうか
取り出したものの値を更新したときに、元のListは更新されますか?
2018/03/31(土) 15:28:08.82ID:IoBwmw2C
数分で試せることをなぜやらない
2018/03/31(土) 15:34:02.83ID:r1Fcmmf3
List<int>とかとList<MyClass>とかで違うよね的な?
2018/03/31(土) 15:39:45.66ID:UG1yVXDX
やってることは同じ(値をコピーしてくる)だけど結果が違ってくると言うこと
2018/03/31(土) 15:48:48.09ID:feZwED6X
教習所の教官「生徒が減ったので褒めちぎったら運転技術は向上!合格率も事故率も改善!俺はなんで今まで怒ってたんやろう?」 [274141358]
https://leia.5ch.net/test/read.cgi/poverty/1522384054/
5 名前:番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイWW d3e8-gBuS)[] 投稿日:2018/03/30(金) 13:30:33.99 ID:F53Z/ySd0
よく考えたら本当にジャップ案件だよな
初心者に対して怒鳴り散らしてどこが悪いかは一切教えない
部活と一緒だわ
2018/03/31(土) 16:04:38.32ID:fwgHW5nR
>>869
List<T>とかHashSet<T>とか初めから使えるやつはTが値型か参照型かだけ考えればいいよ
あと「Listが更新されるか」という言い方はTが参照型だと意味が曖昧になるから改めたほうがいいかと

ふと↓こんなのが頭をよぎったけど意味が分からなければスルーしておくれ
class MyList<T> : IList<T> where T : ICloneable { ... }
2018/03/31(土) 16:14:25.21ID:UG1yVXDX
IListは実装したことないな
実装例は見かけるけどOSSで実装してるのは見かけない
2018/03/31(土) 16:27:15.53ID:fwgHW5nR
>>875
>>874でIEnumerableでもICollectionでもなくIListを選んだのには深い理由があるのよ
文字数という理由がね
まあIsReadOnlyプロパティとかどうかとは思うよ
2018/03/31(土) 16:49:04.27ID:G6tH+bWp
ご指導ありがとうございます
Tが値型か参照型かというところが意識から抜けておりました
適当に組んで試してみて、その違いも確認できました
2018/03/31(土) 16:55:49.06ID:tzO3VEeA
モニタの解像度によらず実寸A4サイズのウィンドウを開いて2pの×を座標ランダムに20表示
それをクリックするというアプリを開発しようと思ってます。
最初モニタの解像度取得してモニタの実寸をユーザーが入力して、
そこからA4サイズは何ドットになるか計算してというのをフォームで作り始めたんだけど、
これだと×や他のボタンも全て計算して調整しなければいけないのかと気づきました。

WPFで開発するとこういうモニタサイズにかかわらず実寸で表示って簡単に処理できるの?
2018/03/31(土) 17:16:01.57ID:l8CCe9Lg
実寸はモニタ変更するたび変えないと駄目じゃん
フルHDのスマホとモニタじゃちげーし
2018/03/31(土) 17:27:51.62ID:47Bv8u8/
ユーザーが勝手にWindowsのDPI設定を変更してない限りはできるけど、
今更オワコンWPFに手を出すくらいならHTMLで作ることを強くお勧めする
CSSならmm単位で実寸指定できるからWPFよりも簡単だよ
2018/03/31(土) 17:34:37.92ID:FNt76Udy
>>868
お前は返しまでくだらないな
882デフォルトの名無しさん
垢版 |
2018/03/31(土) 17:37:43.10ID:GqrQqkMZ
イベント処理でキー読み込むのと、ただ単にキー読み込むのではどう違うの?
実行すると速度が全然違うんだけど...
2018/03/31(土) 17:38:31.40ID:io+mDfEy
例の教育心理系君か
AWS S3にHTML/CSS/JavaScript置いてURL教えるのが一番手っ取り早いだろうな
結果もJavaScriptからS3 APIで保存するようにすれば完全サーバーレスだ
その程度なら料金は月10円もしない
2018/03/31(土) 17:58:49.73ID:tzO3VEeA
ご無沙汰しておりました。
教育心理系のものです。
ようやっとC#の本読み終えて作り始めましたけど、
実世界での用紙とか×とかの大きさを統一しないと実験結果に影響が出るので実o単位で画面表示が必要なことに気づきました。

a. ディスプレイ解像度はC#で取得できたので、後は実モニタサイズをユーザーに入力してもらえば、小学生の算数レベルでA4用紙のウィドウは作れる

でいいかと思ったんだけど、
そうすると×の大きさや当たり判定の範囲まですべて計算しなければいけず、
なんかあほらしいことをやってるのか??
と疑問に思ってきました。

ブラウザ上に表示するとユーザー側でctrl+スクロールで表示の大きさ変えられちゃうんですよね。
実世界でのo単位での大きさを固定したいってあまりなさそうな要求だし、aでやってくしかないのかなぁ。
2018/03/31(土) 18:02:33.45ID:UG1yVXDX
そこまでやるなら被験者とモニターの距離も計測して一定にしないと…
2018/03/31(土) 18:12:00.40ID:NJrC8qba
なぁに網膜に直接書き込んでしまえばw
2018/03/31(土) 18:20:56.75ID:/DPGnFFi
いいね!
2018/03/31(土) 18:35:00.07ID:tzO3VEeA
>>885
その通りですね。
同じような実験で被験者の姿勢によりスコアが変わるらしいので。
2018/03/31(土) 18:42:00.60ID:AhiWvdUc
>>878
WpfにはViewBoxと言う拡大縮小自在なモジュール在るから上手くやりゃなんとかなるよ
2018/03/31(土) 18:59:42.15ID:tzO3VEeA
>>889
ViewBox調べてみます。
少しフォームベースで初めてみたんですけど、
これから勉強するならWpfとフォームどちらで作るのがおすすめですか?

フォームでもゴリゴリやっていけば狙ったものはつくれそうな感じはするんですけど、
wpfのほうがいいというのも聞いたりして悩み中です。
2018/03/31(土) 19:11:47.57ID:AhiWvdUc
>>890
件の用途だとformsは厳しいと思われるのでwpfを奨めるが、情報少ないから習得は簡単じゃないと思うよ
もし、不特定多数への配布を考えているならwpfの進化形であるUWPを使うのを奨める
2018/03/31(土) 19:59:43.42ID:kEu+XyQj
>>882
ただ単に読み込むのはどのタイミングでどうやってるの?
2018/03/31(土) 20:17:53.84ID:tzO3VEeA
>>891
wpf情報少ないんですか・・・。
UWPも書籍はまだ少ないみたいですね。
ど素人なので学習のための情報は欲しいなぁ。

フォームでも×を線で描いてしまえばなんとかなりそうなんですけど、
拙速コードでも早期論文化を目指してフォームでやるか
将来のためにUWPを勉強するか悩みますね。
2018/03/31(土) 20:26:11.30ID:Tt7WJg3O
>>893
WPFでもFormでもスケーリングはページ変換使うだけだから難しくないと思う。

■ Formを使う場合の問題点

- 自動でスケーリングされるのはグラフィックだけ。コントロールやそのフォントは
コードでスケーリングや座標変換する必要がある


■ WPFを使う場合の問題点

- GDI+ほど簡単じゃない

- 多数の図形を描画する場合はパフォーマンスが問題になる
2018/03/31(土) 22:01:55.63ID:l8CCe9Lg
何処の座標を実寸通りにしたいか?
だけでformでいいだろ
なんでボタンまでやる必要があるんだ?
2018/03/31(土) 22:04:08.01ID:tzO3VEeA
A4相当の大きさのウィンドウ表示って調べてみると難しいんですね。
DPI取得もなんかOSで100%以外の拡大表示にしてると当てにならないみたいだし、
ディスプレイの大きさはユーザーが実測値入力で妥協してももいいのかな・・・。
2018/03/31(土) 22:09:29.60ID:g9lQ5N9X
厳密な同環境を求めてるみたいだが、
マウスの移動速度で無理が出ると思う
2018/03/31(土) 22:25:11.42ID:l8CCe9Lg
>>896
だからできねぇって
スマホもフルhdだろ?
モニタもフルhdだろ?
2018/03/31(土) 22:26:20.15ID:Tt7WJg3O
>>896
一応モニター自身が持つEDIDとかいう情報に表示領域の物理サイズが含まれているらしい

WPFはどうだったか知らんけど、FormはOSのDPI設定を無視して指定ピクセルサイズでFormを
表示させられると思った。

だからDPIさえ分かれば目的の物理サイズのウィンドウを表示することは難しくないはず
2018/03/31(土) 22:40:05.11ID:IoBwmw2C
>>898
さっきからスマホスマホうるさい
WPFの時点でデスクトップWindows固定だって理解できないの?
2018/03/31(土) 22:48:21.76ID:r1Fcmmf3
>>900
えー、だから解像度に対するモニタのサイズが決定しねーと駄目でしょって話何だけど?
スマホを例に挙げたのはあんな小さいなりして解像度はフルhdだから
2018/03/31(土) 22:55:14.06ID:IoBwmw2C
ユーザーがモニタサイズを入力って何回も書いてあるじゃん
それじゃ不満なの?
2018/03/31(土) 22:55:29.08ID:vbALr7Yq
デスクトプPCとタブレットPCにでもしときゃ良いだろうに
2018/03/31(土) 23:28:19.33ID:r1Fcmmf3
>>902
逆にそこまで決定してると疑問が出るのが謎
905デフォルトの名無しさん
垢版 |
2018/03/31(土) 23:45:29.31ID:U08lgUq5
やっぱりC#もバカばかりなんだなあ
現代の三大バカ
ペチパー、ジャバパー、シーシャーパー
で決定やねw
2018/04/01(日) 00:58:58.57ID:AmnK79El
教えてください。

以下のような事をしたいと思います。
再現のために最低限必要なところだけを抜き出しているので、これだけだと意味が不明ですが、
同じような処理があちこちにあるので処理をまとめるため、このような事をしています。

public void Execute( string sql )
{
using (var command = new System.Data.SqlClient.SqlCommand(sql.ToString() ))
{
}
}

これをビルドしても警告等は出ませんが、コード分析の実行を行うと SqlCommand のところで
CA2100 の警告が出ます。意味は以下のページの通りです。

https://msdn.microsoft.com/ja-jp/library/ms182310.aspx?cs-save-lang=1&;cs-lang=csharp#code-snippet-3

要するに関数パラメータで受け取った文字列にはなにが含まれているのか分からないので危ないよ、と言われているのだと思いますが
出来れば上の関数を利用する形式で進めたいと思います。
この形式のまま CA2100 を回避する手段のアドバイスをいただけると助かります。
2018/04/01(日) 01:09:42.05ID:v0T9GXCI
>>906
生のテキストを送るなバカ
PrepareなりSqlParameterなり使ってSQL文とデータを分離しろバカ
詳しくは「C# インジェクション対策」でググれバカ
2018/04/01(日) 01:10:28.60ID:RE1ojOXr
MDT_RAW_DPIで物理的なppiに近い値が返ってくるからそれ使えで済む話、で終われば良いんだが
あれちゃんとした値が返ってくる保証が無さそうなのがねー
2018/04/01(日) 01:21:16.42ID:GUPc3ba+
C#は、C++を難しく感じる人が使う言語だから。
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況