ふらっと C#,C♯,C#(初心者用) Part128 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/05/02(火) 22:05:40.13ID:OPFlvhxj
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part127 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489498042/

■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

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

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2017/05/31(水) 22:42:27.39ID:P4eqmxhP
>>708
list.GroupBy(x => new { x.name, x.no })
.Where(x => x.Count() == 1)
.Select(x => x.First())
2017/05/31(水) 22:58:48.07ID:bj9JDDoN
>>712
期待通りの結果が出ました

なぜ上手くいくのかメカニズムが解らないので
参考にさせて頂きます

やはり出来る人は凄いですね

ありがとうございます
2017/05/31(水) 23:01:16.13ID:QtUbvsGm
>>709
( ´,_ゝ`)プッ
2017/05/31(水) 23:04:44.02ID:KM4I6X6v
>>709
解らないなら黙ってスルーして良いんだぜ?な?
2017/05/31(水) 23:18:52.50ID:PjLtCLFm
匿名型ってEqualsも自動実装されてるのか
知らんかった
2017/06/01(木) 00:42:51.33ID:mM6BhS1s
改めて思ったけど、IEquatable<T>とIEqualityComparer<T>の関係って
なんだかわかりづらいな。

IEquatable実装したらGetHashCodeもオーバライドしろっていうのなら
IEqualityComparerだけあれば十分じゃないのか
2017/06/01(木) 01:35:28.25ID:ludZVk+R
コンパレータ渡さ(れ)なくても比較したいことは多いだろ
2017/06/01(木) 01:39:00.91ID:ZOQStLdx
>>717
IEquatable<T>は値型に実装するもので、参照型に実装する意味はないよ
一種のマーカーインターフェイスみたいなもんで、これがあることによって
値型のときEqualityComparer<T>.Defaultなどでボックス化を回避することができる
2017/06/01(木) 02:01:45.31ID:ZOQStLdx
>>718
EqualsやGetHashCodeはObjectのメソッドなんだから常に等値比較は可能なはずで、なのになんでインターフェイスが必要なのかが質問者の疑問なんじゃないの?
その疑問はもっともで、実際、非ジェネリックなIEquatableって存在しないでしよ
等値比較できることを示すというよりは、型限定なEqualsの実装を持ってることを保証するためのインターフェイスなんだよ
2017/06/01(木) 02:23:40.58ID:ldik7UUC
>>713
なぜうまく行くのか自分でもわからんコード仕事で書きたいんだな
アホだな
お前がうまく行くことを祈る
2017/06/01(木) 02:31:26.88ID:5sVH+pSJ
煽るために産まれたのか悲しい子よ
2017/06/01(木) 02:33:53.74ID:EL41vKcx
>>721 == >>709
2017/06/01(木) 03:49:27.04ID:aKp9LbeA
C# で 6乗したら100になる数字を求める方法ってありますか?
で、プログラムで 6とか 100の部分を可変で入れ込む関数を作りたいのです。
よろしくお願い致します。
2017/06/01(木) 04:27:00.57ID:EL41vKcx
>>724
単に Math.Pow(100, 1/6) でいいと思いますが
2017/06/01(木) 04:45:54.50ID:ldik7UUC
数学的には指数と対数の関係式とか言うとこだな
2017/06/01(木) 05:26:56.81ID:ldik7UUC
>>725
累乗根ってそれで行けるんだ
2017/06/01(木) 06:53:06.02ID:rOL2FVf4
>>724
そんな数字求めて何に使う?
2017/06/01(木) 07:01:20.29ID:ldik7UUC
桁数に合わせた表示領域の計算とかするのに必要だった気がする
2017/06/01(木) 08:08:40.56ID:YbQp1MN1
>>729
それは Log10 の方だろ
巾乗根なんて日常生活だと複利計算ぐらいしか思い付かんが6年で100倍なんてあり得んし w
2017/06/01(木) 09:24:36.49ID:ABXdazBj
音つくるんかな
2017/06/01(木) 10:11:36.56ID:ZOQStLdx
工学系なら普通にあるだろうけどさすがに724は理系ではなさそうだし
2017/06/01(木) 10:43:13.05ID:RLRug1po
>>726
対数は関係ないよw
x^a^b = x^(a*b)
こういう理屈
2017/06/01(木) 11:01:21.36ID:sVwWAQG0
クラスの中にスタックを持たせたい場合、どう書くのが正しいんでしょうか。
class Solution {
private Stack<char> st = new Stack<char>();
Solution() {
}
public void pushCharacter(char c) {
st.Push(c);
}
場当たりでこんな書き方をしましたが、とても汚く感じます。
2017/06/01(木) 11:05:21.05ID:MxLX2EtY
それを汚く感じる完成が分からん
2017/06/01(木) 11:22:25.63ID:bvaaJ1gb
>>734
可読性とかはその人の感性によるものだから君が汚いって言っても他人にはよくわからんかもしれん
もっと具体的に何がどう気に入らないのか説明してくれんと要件満たしてるんだしそのコードでいいじゃんとしか言えない
2017/06/01(木) 11:34:56.00ID:8D8uwWqC
>>733
いや手持ちの数学の教科書の項目の話だった
2017/06/01(木) 11:37:26.68ID:8D8uwWqC
>>733
でも指数法則でそんなのあったっけ?
2017/06/01(木) 11:46:48.93ID:aKp9LbeA
>>725さん
できました!ありがとうございます!

>>728さん >>731さん
お察しの頂いた通り 音関係です。
C#も数学もレベルが低いので苦労しております。

皆様ありがとうございました。
2017/06/01(木) 11:49:39.28ID:sVwWAQG0
>>735-736
class Solution {
private Stack<char> st;// = new Stack<char>();

Solution() {
st = new Stack<char>();
としました。
汚く感じるというのは、変数を宣言している所で割り当てするのは変なんじゃないかなと思う、ということです。
変なこと書いてすみませんでした。
2017/06/01(木) 11:55:59.28ID:6PQ5fYPl
フィールドの初期化位置で悩むのはふらっとあるある
2017/06/01(木) 11:58:57.49ID:bvaaJ1gb
>>740
宣言と初期化を一緒にするか別にするかはそんなに綺麗汚いに影響しない感じするなー
個人的には統一されてりゃ良いと思うけど
varのこと考慮すれば宣言時初期化のほうが楽なんじゃないかな?ってちょっと思うくらい
(確かメンバ変数もvar使えるようになったよね?)
2017/06/01(木) 12:18:08.67ID:RLRug1po
>>740
むしろ初期化できるものは積極的に宣言時に初期化しなきゃ

>>934のコードで疑問に感じる点があるとすれば、スタイルがC#じゃなくてJava
になってる点を除けば、pushCharacterなんていう、スタックを意識させるようなメソッド名が
本当に適切かどうかかね

適切かどうか(そのメソッドを使う時にそれがスタックに対するpushであることを意識する必要があるのか)
はそれだけの情報からは分からないけど、仮に意識する必要がないのであれば
そのメソッド名は考え直した方がいいかもしれない
2017/06/01(木) 12:43:17.65ID:wFAG8npl
>>739
セント計算を20年ぐらい前にした覚えがあってね
2017/06/01(木) 13:09:43.89ID:8R6JhoZ8
>>742
メンバ変数にvar使えるようになったってマジ?
聞いたことないんだが
2017/06/01(木) 13:19:28.65ID:ZOQStLdx
フィールドは基本的にreadonly + 宣言時代入
どうしてもreadonlyにできない場合は宣言時代入はまあどっちでもいいと思うよ
ミュータブルなフィールドを宣言時代入するのは意味的に紛らわしいと感じる人もいるはず
747デフォルトの名無しさん
垢版 |
2017/06/01(木) 13:59:13.59ID:ZI/846Hh
すみません。質問です。

通常のメソッドから非同期メソッドを呼びだす時の場合です。非同期メソッドは無限ループで非同期受信を待機しています。
(async/await)
この時通常メソッドの中の非同期呼びだしが、await演算子を適用することを検討してくださいと警告をうけます。
非同期メソッドの呼びだしにawaitをつけたほうがいいのでしょうか
2017/06/01(木) 14:23:18.55ID:bvaaJ1gb
>>745
ごめん、記憶違いだったぽい
2017/06/01(木) 15:15:48.27ID:wFAG8npl
ようわからんけど、Clickイベントハンドラにasyncつけるとか?

することあるよ
2017/06/01(木) 15:16:26.73ID:ZOQStLdx
>>747
awaitしないなら戻り値のTaskを受け取って何らか処理しないとタスクが宙ぶらりんになる
結果を受け取る必要がないTaskかあるとしたら、それはあまり良くない設計
2017/06/01(木) 15:16:36.83ID:wFAG8npl
とエスパー
2017/06/01(木) 15:29:47.68ID:JS2ZXwNm
>>747
無限ループじゃなくてawaitで待つほうが健全だね
753デフォルトの名無しさん
垢版 |
2017/06/01(木) 17:37:25.02ID:Biom6P3b
>>747です
レスありがとうございます。何がしたいかというと
誘導失礼します
http://hensa40.cutegirl.jp/archives/1858
これのサーバー側を非同期で常にアクセスを待ち続けたいのですが、色々と例外が発生してうまく組めません。どの様にコーディングすればいいでしょうか。
2017/06/01(木) 18:13:44.67ID:4NZyrsle
>>753
サーバーで複数クライアントからの処理を同時にこなすならawaitしないのは全然普通だよ
コンパイラの警告は基本全部つぶすべきだけどその警告は場合によっては無視していい

複数クライアント対応のサーバー側の処理の骨格は普通以下のような感じ
疑似コードみたいなもんなので当然このままじゃ動かない
さらにclientWorkerで例外が起こった場合を考えるべきだけど
https://ideone.com/Xbn7g0
2017/06/01(木) 18:28:51.20ID:MxLX2EtY
> さらにclientWorkerで例外が起こった場合を考えるべきだけど
なのでawaitじゃなくてTaskのまま受け取ってContinueWithでエラー処理とかする
警告もなくなる
2017/06/01(木) 18:30:24.63ID:ZOQStLdx
>>754
いや複数リクエストを同時に処理するためのasync/awaitだろ
awaitはContinueWithに相当する操作なんだけど、なんか勘違いしてないか
757756
垢版 |
2017/06/01(木) 18:43:42.91ID:l+evRAwn
ああリンク先見たらwhileの中でawaitしないことを言ってたのか
失礼した
2017/06/01(木) 18:45:38.64ID:6PQ5fYPl
async/await使った非同期サーバー作ったけど、ネットにろくな例無くて苦労したわ
未だにこの表記で良いのかと考えるときあるし
759デフォルトの名無しさん
垢版 |
2017/06/01(木) 19:52:33.98ID:9Xkv0h5R
>>754
ありがとうございます
とりあえず以下のような感じでやって動いてはいるんですが、大丈夫でしょうか
ただ、listener.Stop()を実行すると、System.ObjectDisposedExceptionの例外がスローされます
対処方法はどうしたらいいでしょうか

public void ServerStart() {
listener.Start();
LoopTestAsync(); ←警告される
}
public void ServerStop() {
listener.Stop();
}
private async Task LoopTestAsync(){
While (True){
using (TcpClient client = await listener.AcceptTcpClientAsync()) {
clientWorker(client);
}
}
}
private void clientWorker(TcpClient client) {
using (var stream = client.GetStream()) {
IFormatter formatter = new BinaryFormatter();
Class1 c1 = (Class1)formatter.Deserialize(stream);
}
}
2017/06/01(木) 20:05:09.06ID:4R0wfsj/
>>759
当たり前じゃん
無限ループのSTOP処理考えろよ
761デフォルトの名無しさん
垢版 |
2017/06/01(木) 21:26:37.82ID:llpGiASm
iTunes、UWPアプリ化。マイクロソフト本気でストアアプリ強化へ
http://www.ask-mswin.com/news-170513/

これいつだよ
C#で作ってるのかな
2017/06/01(木) 22:00:17.31ID:tw8E59rn
正直、タッチパネル搭載のPC使ってるけどUWPなんてほぼ使ったことないw
これからもまず使わないだろう

モバイルのシェア1ケタのOSのモバイル用アプリなんて生まれる前から死んでいるw
2017/06/01(木) 22:39:29.48ID:PAXTxEs7
私はUWPのEdgeをよく使いますね
2017/06/01(木) 23:36:17.73ID:O9hXITjG
>>762
使っていることに気づいてないだけ
2017/06/01(木) 23:48:05.37ID:tw8E59rn
>>764
んなアホなw
2017/06/01(木) 23:50:53.45ID:O9hXITjG
>>765
設定触ったことないの?
2017/06/01(木) 23:51:25.64ID:EL41vKcx
UWPの電卓アプリ多用してる
2017/06/01(木) 23:52:47.43ID:tw8E59rn
>>766
そういう重箱の隅をつつく話はしてないよww
ほぼ、って言ってるでしょ

それを言うなら、Win8の時代からある立体上海みたいなゲームもやったことあるよw
2017/06/01(木) 23:57:43.40ID:tw8E59rn
っていうか、あの設定画面出てくるとゲンナリするよねw

コントロールパネルと設定画面がどういう基準で仕分けされてるのかさっぱり分からんし、
そうでなくても糞見づらいフラットデザインの画面ってイライラしてくる
2017/06/01(木) 23:57:49.23ID:EL41vKcx
>>768
Windows8はUWP非対応です
2017/06/02(金) 00:01:15.63ID:Ky4OucGy
>>768
UWPはWindows10以降
2017/06/02(金) 00:01:28.76ID:xUiVlsMK
>>768
「これからもまず使わないだろう」って書いちゃったよね恥ずかしいよね

てかなぜUWPの話でWin8が出てくる?
2017/06/02(金) 00:03:26.29ID:GRO2QHjZ
>>768
ろくにUWPを理解していないことが露呈しましたね
2017/06/02(金) 00:05:45.63ID:JeVIxJYz
>>772
幼稚だね。小学生か

普通UWPを使うって言ったらストアからダウンロードして使うか、
少なくとも最初からインストールされているアプリを、他に選択肢があるにも
かかわらずあえて使うことだろう。

Windowsを使う限り使うことがほぼ選択の余地なく不可避のものを
「ほらみろお前使ってるじゃないか」ってそんなこと言って何の意味がある

馬鹿じゃねえの
2017/06/02(金) 00:08:47.18ID:xUiVlsMK
>>774
そんな幼稚なオレオレ定義知らねえよwww
Googleって便利なものがあるからしばらく勉強してこいカス
2017/06/02(金) 00:11:04.54ID:xh/fYt88
>>774の定義ではWindows8はUWP対応なんだってさ
2017/06/02(金) 00:11:17.71ID:v1YzyP4O
空気が悪い
底辺が底辺をあおる
2017/06/02(金) 00:11:20.74ID:JIPxHJG/
>>774
焦点はUWPを使っているか使っていないかであって、ストアだの代替アプリだのは関係ない
無知を晒して恥ずかしいねえ
2017/06/02(金) 00:15:27.76ID:JeVIxJYz
>>778
君のような奴って幼稚な自分が嫌にならないんだから幸せでいいよね。

しかし、いちいち他人の揚げ足をとって言い掛かりをつけないと気が済まない馬鹿って
普段実生活でどういう人生送ってるのかね。
俺ならそういう自分に耐えらんけど

Taptiles(名前忘れてたが)はWin10になった段階でUWPにリメイクされてると思ったけど、
今起動してみたらこれストアアプリのままか、
全画面でないと動作しないのな。
2017/06/02(金) 00:19:06.60ID:L4WeawcR
明らかな間違いなのにそれを指摘されたら揚げ足取りだって喚くとか、こいつ技術者ではないだろ。
ID:JeVIxJYz
2017/06/02(金) 00:19:23.69ID:t1ywd+Cz
呼び方がわからんが、いわゆるMetroアプリは標準を除くとLine、Nebo、Wunderlist、おためしでMicrosoft Todoぐらいか
DesktopConverterだと、CrystalDiskMark、Slack、NuGet Package Explorerかな

と思っていま見たら、楽天カードアプリがあったので入れてみた
こういう、スマホはアプリ、パソコンではスマホみたいになってたやつはUWP出てくるかもしれんね
セキュリティ的にもそのほうが安全だし
2017/06/02(金) 00:22:50.08ID:JeVIxJYz
>>781
知ってるはずだと思うけど、Metroって名称はWin8発売前に撤回されたでしょ
2017/06/02(金) 00:22:55.12ID:v+jfPvQO
>>779
まだ自分が何を指摘されたのか理解できていないようだね、お馬鹿さん
いや、理解したから揚げ足取りだなんてアホなこと言って逃げたのかな?
2017/06/02(金) 00:24:50.18ID:xUiVlsMK
>>782
知ってるはずだと思うけど、UWPってフレームワークはWindows10以降でしょ
2017/06/02(金) 00:24:56.15ID:JeVIxJYz
>>783
幼稚な馬鹿に何を言っても無駄だけど、「ほぼ使ったことがない」という発言をしたのは
俺自身なんだけど。

俺自身がそれをどういう意味で言ったのかを何でお前が決められるわけ?
ほんっと馬鹿にも程がある。しかも幼稚ときてる。
人間として終わってるね。俺がお前なら朝一番で電車に飛び込むレベルで
2017/06/02(金) 00:26:46.04ID:v+jfPvQO
>>785
わかるよ、即効で反例出されて顔真っ赤なんだよね
2017/06/02(金) 00:30:05.10ID:L4WeawcR
>>785
ここは初心者スレなんだから正しい知識を教えられたら素直に受け入れたらいいんだよ
2017/06/02(金) 00:34:20.78ID:JeVIxJYz
>>787
そうだな君が馬鹿で幼稚であることは素直に受け入れてるよ
設定画面がUWPでないと言った覚えも、それを使ったことがないと言った覚えもないけどね。

まあ人間的に幼稚な奴を相手にしても腹が立つだけで得る物がないからこれで終わり
2017/06/02(金) 00:36:25.80ID:xUiVlsMK
>>788
「これからもまず使わないだろう」
2017/06/02(金) 00:42:09.88ID:L4WeawcR
>>788
「それを言うなら、Win8の時代からある立体上海みたいなゲームもやったことあるよw」
2017/06/02(金) 00:59:47.69ID:t1ywd+Cz
>>782
それはわかってるんだけど、Desktop Converterの登場でなんて呼べばいいのかわからなくなってしまった
非Desktop ConverterのUWPだけを指す呼び名って公式でなんかあったっけ?
2017/06/02(金) 02:13:44.08ID:m+CzDqBW
幼稚幼稚うるせーぞ
例外ちゃん
2017/06/02(金) 02:23:04.41ID:uW9UgDbU
>>789-790
横からマジレスすると
もうオワコン過ぎて絶対増えて行かないと思うよ

どうしたんだろうね
昔は書籍とかたくさん書く人いたのに(普及するようにお金撒いてたんだと思うけど)
今じゃそれもなくなってな
2017/06/02(金) 02:30:57.84ID:xUiVlsMK
>>793
論点はそこじゃないぜ…
2017/06/02(金) 02:55:25.77ID:uW9UgDbU
>>794
完全に消滅状態のUWPになにか主張したいことがあるの?
2017/06/02(金) 02:59:34.63ID:xUiVlsMK
>>795
流れを一切無視したこと言われてもな
2017/06/02(金) 03:00:46.29ID:3kUr2HLm
>>793
マジレスと称してまたトンチンカンなこと言い出しててワロタwww
2017/06/02(金) 03:02:44.75ID:uW9UgDbU
>>796
なんで?
uwpについてなにか言いたいことあったんじゃないの?
ないならもう完全消滅で全会一致ってことでもうこの話題はいいよね?
あとは誰の発言がどう補正されようが完全消滅の事実は消えないんだからすべてが誤差
2017/06/02(金) 03:05:16.61ID:uW9UgDbU
別にこの話題を続けたいならいかにuwpがオワコンであるか俺のリサイタルを聞きたいと言うならそれでもいいよ
2017/06/02(金) 03:06:13.55ID:xUiVlsMK
>>798
どこを読んだらそうなるんだ?
お前も即効で反例出されて逆ギレしてたキチガイの仲間か?
2017/06/02(金) 03:07:27.67ID:3kUr2HLm
>>799
こいつ話題を反らしたいだけやろ
2017/06/02(金) 03:14:41.89ID:uW9UgDbU
>>800
だからどうでもいいって
どうせ誤差だし
2017/06/02(金) 03:15:35.80ID:uW9UgDbU
>>801
uwpから?www
uwpオワコンネタは俺の大好物だからね
2017/06/02(金) 06:02:50.87ID:71uuKlN0
UWPなんて触る機会来るのかな
うちはレガシーの保守拡張がメインの三流企業だから
やるとしても5年後、10年後とかになるかもしれないな
ドキュメント残しておいてくれよ
2017/06/02(金) 11:09:58.88ID:u+O9r2nk
現場によるとしか
もしくは自分から起業
2017/06/02(金) 13:14:29.51ID:CcFW0hD0
2020年のWindows7終了祭りでWindows10が標準になれば
圧倒的なスピード差でUWP採用されやすくなるだろうね
今でもGUI部品は圧倒しているし、.net Coreが充実してくれば入れ替わるな
2017/06/02(金) 13:20:01.12ID:ypE5LaWl
>>806
あ、デジャヴwwww

なんのときだっけ?それ
結局.net framework 2.0のままだけどな!
2017/06/02(金) 13:51:22.16ID:89fS7Hhn
>>806
WPF「…俺たちは?」
UWP「…実験台?」
真のユニバーサルアプリ「旧世代のゴミどもめ!!」
2017/06/02(金) 14:06:27.38ID:PwRFjZu6
Win8ストアアプリはWin8.1出た時切り捨てて、Win8.1ストアアプリはWin10出た時に切り捨ててるからね。。。
せいぜい2010まで切り捨てないで欲しいわ。

それまでは信用出来ない。
2017/06/02(金) 14:17:18.60ID:4dlEWjvI
>>809
ha?
2017/06/02(金) 14:34:28.02ID:PwRFjZu6
Win8.1出たらWin8ストアアプリ新規で出せなくなったりね。
開発する側は開発環境新しくするだけだけど、雇ってる企業はその度に買い直しを迫られたろうし、一番可哀想だったのはストアアプリのプログラミング本出してた出版社だったな。
あんなにコロコロ変えられたら出版費用回収出来なかったろう。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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