C#, C♯, C#相談室 Part93©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/22(土) 08:52:00.93ID:iVvswOrb0
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part92
http://echo.2ch.net/test/read.cgi/tech/1485589613/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/09/15(土) 18:10:42.64ID:ghSS5jwya
言葉の意味はよくわからんが
Randomは第二引数未満の乱数発生するんじゃ?
2018/09/15(土) 18:34:42.22ID:nwnNkRfe0
docsにもあるけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.random?redirectedfrom=MSDN&;view=netframework-4.7.2
dobonの方が分かりやすいし読みやすいから
https://dobon.net/vb/dotnet/programing/random.html の
//0.0以上1.0未満の乱数を倍精度浮動小数点数で返す
Double d = r.NextDouble();
>>670こういう意味とは違うの?
整数範囲で出して割った方が範囲や有効桁も決められるからそっちの方がよさそうな気もする
2018/09/15(土) 18:56:24.76ID:aC3C7hdpa
[0, 1]とか(0, 1)は数学の記号ね(多分高校1年ぐらいで習ってるはずw)

Random.DoubleNextの戻り値は[0, 1)(つまり0≦x<1)らしい
普段乱数使うようなコード書いてないからよく分からんけど、
0≦x≦1とか0<x<1でないと困る場面も多いんじゃないかなと思っただけ
2018/09/15(土) 19:01:32.64ID:Bg+wr9i5a
えなんかめんどくさいからもういいよ
2018/09/15(土) 19:05:58.75ID:nwnNkRfe0
有効桁区切るのと一緒で丸め、切り上げ、切り捨てしたらいいだけでは
Random自体C#で使う場面に出くわしたことないからあまり考えないな
2018/09/15(土) 20:19:51.91ID:Fr67tYwB0
game engineだとか[]の乱数あったりするよ
()は見たことない
コーディングしてたらわかるけど利用場面は圧倒的に少ない
2018/09/15(土) 20:30:38.93ID:OUVvcRON0
>>665
> パラメータに対してちょっと複雑な変換を掛けるのだけど
と言うなら例もパラメーター使ってる例を書かなきゃ

>>668
俺もこれしか思いつかなかった
そもそも
var f = (string x) => { return "abc" + x; };
位は型推論してくれてもいいと思うんだけど難しいのかな?
2018/09/15(土) 20:39:04.65ID:OUVvcRON0
>>673
例えば0〜9の整数乱数がほしい時に[0,1)なら10倍して整数部分を取るだけだけど(0,1)とか[0,1]だとすごく面倒
679デフォルトの名無しさん (ワッチョイ 9780-9b2l)
垢版 |
2018/09/15(土) 20:42:09.91ID:KIanXBkQ0
面倒だったら擬似乱数生成器を自分で作ればいい
キミラ程度が使う程度の擬似乱数だったら数行コピペでできる程度のもんで十分だからな
2018/09/15(土) 20:49:32.65ID:Xc5RKOnR0
>>665
ローカル関数じゃだめなん?
681デフォルトの名無しさん (ワッチョイ 9780-9b2l)
垢版 |
2018/09/15(土) 20:53:08.93ID:KIanXBkQ0
https://ideone.com/PJDFVv

この程度で十分
2018/09/15(土) 21:33:37.63ID:OUVvcRON0
>>679, >>681
バカは絡んでくるな
2018/09/15(土) 21:35:49.16ID:OUVvcRON0
>>680
本来必要のない名前を考えるのが面倒
そもそもローカル関数にするぐらいなら>>661とたいして変わらんし
684デフォルトの名無しさん (ワッチョイ 9780-9b2l)
垢版 |
2018/09/15(土) 21:37:43.29ID:KIanXBkQ0
やっぱり低学歴知恵遅れは
内側の擬似乱数生成器をかえるだけの話なのがわかってないわ

きっと擬似乱数がなんなのかすらわかってないわ
擬似乱数がなんなのかわからずに乱数()とかいって数字使ってる程度だからな
685デフォルトの名無しさん (ワッチョイ 9780-9b2l)
垢版 |
2018/09/15(土) 21:39:33.01ID:KIanXBkQ0
つまり
コレがC#なんか使ってるヤツラのオツムの程度
686デフォルトの名無しさん (ワッチョイ b7e3-TNGn)
垢版 |
2018/09/15(土) 21:40:44.62ID:qw6mr0Vb0
>>673
(0,1)は[0,1)が0ならやりなおし、でいいんじゃないのと単純に思ったがそんなものじゃない?
687デフォルトの名無しさん (ワッチョイ 9780-9b2l)
垢版 |
2018/09/15(土) 22:05:16.77ID:KIanXBkQ0
そもそも機械イプシロンのこと分かってて
ああいうレスしてるようにはまったく見えないからな
2018/09/15(土) 22:52:03.88ID:OUVvcRON0
>>686
発生側はそれでいいとしてそれを必要とする機会がどんだけあるの?
って話かと
2018/09/15(土) 23:10:36.43ID:LMkhUY/p0
気に掛けてくれた方々に。ありがとう。

>>668
ああ。なるほど。型を明示してあげたらよかったのか。
キャストを加えたら期待通りに書くことが出来ました。ありがとうございます。

これってラムダ式を var で宣言した変数に代入できなかったことがヒントになり得たんだな。頭が回ってなかった。
これくらいは型推論してくれても良さそうなのにとは原因が分かった後での負け惜しみ。

>>666,680
今回のはそういうことが出来そうなのに出来なくて悶々としてしまって。
実用性度外視で原因を知りたかったの。
2018/09/16(日) 10:09:07.69ID:QiF2mi6W0
今ならref/outがないならAction/Funcに型推論して
シグネチャが同じdelegate間の暗黙の型変換が行われる
初期化時に左辺とかキャストとかでdelegate型が明示されてたらそのdelegate型でnewされる
でいいと思うよな〜
2018/09/19(水) 06:50:46.79ID:luZsj3k/0
Visual C#ってDelphiみたいに同じコードでWindows用とMac用にビルドできる?
マシンは両方用意できるとして
2018/09/19(水) 07:42:00.17ID:JcyGHTPld
Visual C#って具体的にはどのフレームワークを指してるのかい?
2018/09/19(水) 10:08:17.18ID:WBt1GswEM
可能
2018/09/19(水) 12:41:26.38ID:9aNAf/d20
>>691
コンソールアプリなら同じコードでどっちでも動くはずだけどGUIはよくわかんない
Xamarin Forms使えばいけるのかな?
2018/09/19(水) 13:59:56.78ID:luZsj3k/0
多分ASP.NETを使ってGUIのWebSocketクライアントを作る予定です
ありがとうございます
2018/09/19(水) 14:05:07.91ID:8sfFLOeb0
MacでWebSocket??????
ちょっと何言ってるかわかんないですね
2018/09/26(水) 21:52:32.99ID:rAzbq+Jy0
下みたいなことって出来ます?
やりたいのは object 型の変数に代入したジェネリック系のインスタンスを、さらに元のジェネリックの型にキャストし直すってことなんですが。

void func( object dic )
{
var tmp = (Dictionary)dic;  // ← これみたいなことをやる方法がないかなと
tmp.Add( "test", new object() );
}

var dic = new Dictionary< string, object >();
func( dic );
2018/09/26(水) 23:15:04.62ID:dHSM7pQD0
as
2018/09/26(水) 23:17:13.70ID:+un+mAjX0
anal
2018/09/27(木) 00:24:29.22ID:WuETTr790
>>698
言葉が足りてなかった。申し訳ない。

例示のケースの場合は、
var tmp = (Dictionary<string,object>)dic;
と指定すれば出来るのだけど、Dictionary だけでキャストし直すみたいなコトできないかなって。
as でも Dictionary だけではキャストできないことは確認しました。
2018/09/27(木) 00:30:38.46ID:5qvGm4LBa
出来たとして何の意味があるのそれw
そもそもHoge<int>より大きなHoge<T>とかHogeって型が存在するわけじゃないでしょうw
根本的に勘違いしてないか
2018/09/27(木) 08:41:34.87ID:649yR4/AM
genericsでないDictionaryは存在しないからでしょ。
genericsパッケージでないほうのHashtableならできると思うけど安全性を損ねるしやらんほうがいいんじゃね
2018/09/27(木) 12:20:51.28ID:/G4FYlhv0
IDictionaryならあるよ
キャスト時にいちいち型引数を書くのが面倒ぐらいの意味しかないけど
2018/09/27(木) 12:48:53.74ID:sTtGwCQ3a
>>700
を読み直してみると、ひょっとして要するにジェネリックの型パラメータを書くのが面倒臭いから
省略できないか?、って言いたいのかな

それなら答えは「できないけど仮に出来たとしても絶対やるな」じゃないの?

もちろん、
using Dictionary = System.Collections.Generic.Dictionary<string, object>;
こういうエイリアスは書けるはずだと思うけど

何にしろ、質問は他人が読んで分かるように書いて欲しいよね
2018/09/27(木) 17:14:16.27ID:kGqzP/YO0
型安全性を無視していいならdynamic使え
そうじゃないなら出来てもやるな

つかジェネリックを勘違いしてるんじゃね
2018/09/27(木) 17:21:14.85ID:Q+zVeK5uM
それによって何がしたいのかを書いてくれないと何言ってるかわからんよな
2018/09/29(土) 00:47:34.72ID:EY+8Y7mF0
ありがと。
やっぱり dynamic 使うしかないかな。避けたかったのだけど。

なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は)
object[] の要素の中身が generic だったりしたときに ToString() だとクラス名?にしかならないから。
2018/09/29(土) 03:23:52.22ID:BJdQm5Iw0
なんで何が入ってるかわからない配列なんてもんを触るんだ
静的型付け言語のメリット台無しやんけ
2018/09/29(土) 09:01:26.24ID:FmliS3qN0
何が入っているかわからないものを扱いたいと言っていながら一方でdynamicは避けたいというのが
よくわからんなぁ。避けてどうしたかったんだろうか。
2018/09/29(土) 11:56:45.30ID:EY+8Y7mF0
単に dynamic が嫌いだったのから。w
2018/09/29(土) 12:32:33.34ID:3Hj8wsg1M
ふーん。頭が悪いからじゃなかったのか
2018/09/29(土) 14:34:45.14ID:9IdCJ4nKM
たぶんjsとかの感覚で言ってるんじゃないかと
2018/09/29(土) 14:42:39.43ID:FmliS3qN0
でもJSも実行時に型を判断できるし、逆の意味で大して変わらんと思う。
2018/09/29(土) 15:07:47.86ID:EY+8Y7mF0
あれ? dynamic って推奨だったの?
おまえらがどういう場面で使ってるのか教えてくれ。
2018/09/29(土) 16:47:06.91ID:rkT/I8Hma
デシリアライズでもするつもりだったんじゃねの
クッソ面倒なんだよな実際
2018/09/29(土) 16:56:30.70ID:X4waiIaR0
ん?
> なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は)
じゃねーの?
2018/09/29(土) 18:05:26.03ID:w5r/wslsa
もういいでしょw
たぶん何か勘違いしてるだけだと思うよ

俺もプログラミング初めて2,3年は静的/動的とかコンパイル時/実行時の違いとか
分かってるようでよく分かってなかった
2018/09/29(土) 19:25:50.32ID:rSQsiXYHa
結局なにがしたいのか伝わってこない上に
微妙にムカつく上から目線
2018/10/06(土) 12:04:22.29ID:upBech+00
それは此処の仕様。
2018/10/07(日) 19:19:55.60ID:QvnX76F+0
そろそろ.NET標準でDDSのデコードできるようになってくれないかな
エクスプローラーでは普通に表示されるんだから
できればBC6と7までw
2018/10/07(日) 19:43:24.02ID:mZPrgRqf0
>>720
DDS?
2018/10/16(火) 15:29:49.78ID:gfGA4Hi30
>>694
あれ、C#って、マルチプラットフォームじゃなかったの?

Java は、Windows, Mac, Linux, iOS, Android, Chrome, Firefox, IE, どれでも
動いたよね、昔は。
2018/10/16(火) 16:00:38.35ID:y5q0bWlwM
Javaもクライアントアプリ分野から撤退したから今はクロスプラットフォーム度でいえばC#のほうが上なくらい(あくまでカタログスペック上は)
C#はWebかコンソールアプリなら.NET Core使えばLinuxやMacで動く
スマホやMac向けのGUIアプリならXamarinだな
2018/10/16(火) 16:22:14.98ID:qWHG2Ppw0
Unityも忘れるな!
mono様々やな
2018/10/21(日) 20:25:55.35ID:5Xb93YKt0
普及度とかマルチプラットフォームとかどうでもいいけど
Windows使っていて個人的に何かちょっと作ろうと思ったときに、もうC#以外考えられない体になってしまった
2018/10/21(日) 20:37:33.56ID:MDetJiiMa
おれはpythonかなー
スクリプト言語はほんま楽やで
客先でインスト制限きつい時はC#とPowerShell
Microsoftさんは早くVSCodeとdotnet cliをWindows標準にしてPowerShellを強制アプデすべき
2018/10/21(日) 21:09:20.78ID:FxDWQZOn0
おまんらWPF使ってる?
2018/10/21(日) 21:09:38.83ID:t4QZh6l3d
うん
2018/10/21(日) 21:34:18.47ID:fYYBLspX0
>>727
個人で使ったけど、これを社内外で使わせるにはMVVMきっちり教えないと破綻確実だから諦めた
2018/10/21(日) 22:39:29.79ID:eTSVpSn40
>>726
確かに楽だな。 < python
Web API を叩くプログラムをこれで書いたけど、学習まで含めてすぐ出来た。w
VS 上でも書けるのが楽さに拍車を掛けてる。

>>727
うん。でも最近はやってないな。そーいえば。
2018/10/21(日) 22:44:00.95ID:GgFjLBNe0
>>727
使ってる。
チームとして採用するのは難しいかもね。
2018/10/22(月) 07:55:37.83ID:D227Fdyd0
>>731
どうして?
学習コストの高さ?
2018/10/22(月) 08:11:55.33ID:vkGCn3UdM
そうです。
XAMLとか慣れるまで大変だし、やっぱり簡単なFORMになるんじゃないかな。
2018/10/22(月) 12:06:51.16ID:DqwlPEpNa
レイアウトはFormよりWPFの方が楽だと思うんだけどな
Formばかりやってたチームだと学習コストが高くて難しいのはある
2018/10/22(月) 12:25:16.33ID:+Bt5JEYG0
XAMLはVS補佐がまだまだ足りない
昔の落ちまくりよりは格段に進歩はしたが
2018/10/23(火) 06:15:06.44ID:oKq5ee0m0
Formやる前にWPFから入った俺は異端
2018/10/23(火) 12:11:12.26ID:Z3T8y8K/M
formは過去の遺産だから、これからやるならWPFが正統だ。
2018/10/23(火) 12:32:04.49ID:0EGfRFOMa
>>735
Blendを使ってください、ってことなんだろうけどなぁ
2018/10/23(火) 12:42:28.83ID:Q+FZ+yEYM
WPF自体は終わってるよね
次の本命が無いから使うしか無いだけで
740デフォルトの名無しさん (ワッチョイ bee8-nBLa)
垢版 |
2018/10/23(火) 12:52:00.65ID:Hcq+1RfE0
なお、どこも新規開発はFormの模様
2018/10/23(火) 12:56:27.59ID:eyu+kwgc0
MSのイチオシはUWPだしコントロールは充実しているんだけどね
TreeViewは完成したし、後はDataGridの完成を待つだけだ
2018/10/23(火) 14:20:00.03ID:oKq5ee0m0
全然未完成じゃねーか
2018/10/23(火) 14:36:28.72ID:cDc5Fd7gM
最近のMSはだいたい未完成
ちょうどGithubもやらかしたし、Azureのサービスなんかガチで世に出しちゃいけないレベルのものが大半
2018/10/23(火) 15:11:27.54ID:BR1ycnzw0
未完成の物をとりあえず出して、
バージョンアップで完成させてくのが昔からのビジネスモデルやろw
2018/10/23(火) 15:12:45.43ID:dmXi8fk90
アジャイル
2018/10/23(火) 15:51:37.07ID:Z3T8y8K/M
新規開発もFormになるのは人集めの都合だよ。
2018/10/23(火) 16:28:52.85ID:9gwDvhi80
>>739
終わってるってどういうこと?
2018/10/23(火) 16:45:50.67ID:cDc5Fd7gM
>>747
どういうこともクソもWPFは5年くらい前にとっくに開発終了してメンテナンスモードだよ
2018/10/23(火) 16:46:49.17ID:9gwDvhi80
>>748
ソースは?
.NET Core3.0知らないの?
2018/10/23(火) 16:51:18.62ID:cDc5Fd7gM
>>749
ソースは.NET 4.5以降のリリースノートだよ
何か気になる新機能はありましたか?
2018/10/23(火) 17:16:53.27ID:9gwDvhi80
>>750
で、「終わってる」だなんてMicrosoftはリリースノートに書いてるのかい?
しかも.NET Coreは都合が悪いから無視ときたもんだ…
752デフォルトの名無しさん (アウアウカー Safb-WxZP)
垢版 |
2018/10/23(火) 17:39:47.89ID:PWuDtLsGa
Core3.0まで出てるんだ
なんか使いやすくなった?
2018/10/23(火) 17:40:45.51ID:Z3T8y8K/M
WPFが終わってるならFormは死んでる。
しかし、ゾンビ技術者がウヨウヨいるから需要はあるのかも。
2018/10/23(火) 17:55:40.99ID:cDc5Fd7gM
>>751
CoreのWPF対応ってWPFをCore向けにビルドしてNuGetで入れられるようにするだけだぞ?
WPF自体の新機能ではないよ
2018/10/23(火) 18:06:42.97ID:9gwDvhi80
>>754
必死に調べて理解したのはそれだけ?

「終わっている」プロジェクトに対してそんなことしないだろ
2018/10/23(火) 18:19:29.54ID:mVZ7w/wV0
平日に役に立たない言い争いしている奴らが終わってる
2018/10/23(火) 20:09:28.44ID:AlQfFCDV0
WPFの機能追加は終わってる
なら正しいかもしれない
2018/10/23(火) 20:46:15.68ID:duwPtJnv0
>>752
せっかく切ったWPFとFormアプリ復活・・・
2018/10/23(火) 20:53:51.51ID:T5C69wUW0
業務系ならありがたいね
ランタイム依存なしでForms使えるんだろ
ブラウザ要らないじゃん
2018/10/23(火) 21:26:47.62ID:+h1AjSvua
>>759
デプロイどうすんの?アップデートの度に君が出向いて客のPCでZip解凍して回るの?
それが面倒だからWebなのに、それが.NET Coreになったところで何も解決しないよ
というかClick Onceが無くなる分だけ状況は悪くなるな
2018/10/23(火) 21:29:43.70ID:TLuMxHqO0
自前でアップデート処理を実装すれば問題なし
2018/10/23(火) 21:33:45.87ID:9gwDvhi80
>>760
>Click Onceが無くなる
ソース出してみ
2018/10/23(火) 21:43:47.63ID:+h1AjSvua
>>762
悪魔の証明を求められても困る
.NET CoreでClick Onceが使えるソースを出すのは君の仕事だ
当たり前だけど、FullFWのClick Onceを使うという本末転倒な方法は無しで頼むぞ
764デフォルトの名無しさん (ワッチョイ 1f9f-WxZP)
垢版 |
2018/10/23(火) 21:57:45.44ID:NgQNKVM70
.NET Coreって仕事で使う?
2018/10/23(火) 21:59:32.82ID:9gwDvhi80
>>763
妄想おつw
2018/10/23(火) 21:59:56.85ID:9gwDvhi80
>>764 
もちろん使ってるよ
2018/10/23(火) 22:02:41.25ID:Eu3QtAGFd
>>763
断定してたからそんなアナウンスもうされたのかと思ったのに…思い込みが激しいと周りが苦労するね
2018/10/23(火) 22:16:19.58ID:+h1AjSvua
まあプレリリースまでもうすぐだから期待してるよw
2018/10/23(火) 22:34:00.35ID:9gwDvhi80
そだねー
2018/10/23(火) 23:26:45.20ID:bb2jvxz40
WPFが.net coreに対応したといってもlinaxで動くわけではないんだよね?
じゃあなんの意味があるの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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