17/11/30 23:45:15.41 dLltLXuH.net
>>110
なるほど。そこまで外れてなかったようで安心しました。
113:デフォルトの名無しさん
17/11/30 23:46:11.61 YyeHHjlB.net
>>109
変数:割り当てられたメモリー上の特定のアドレス範囲
値:変数の中身(変数に割り当てられたメモリーの範囲のバイト列)
参照:変数に割り当てられたメモリーの範囲の開始アドレス
まあ、値がwebページのコンテンツなら参照はそのURIみたいなもの
114:デフォルトの名無しさん
17/12/01 00:04:00.62 euIX7D1U.net
>>112
値をコピーする際にアドレスをよりどころにしているのが参照渡しということですね。
なんとなくイメージはわかるのですがなかなか。
115:デフォルトの名無しさん
17/12/01 00:20:18.07 g1uYteJH.net
>>113
何も難しくないよw
2chで言えば参照渡しは人(メソッド)に対してレスのアンカーを示すだけで
中身は教えない。
値渡しはレスの内容のコピペ
参照渡し:
>>113
値渡し:
値をコピーする際にアドレスをよりどころにしているのが参照渡しということですね。
なんとなくイメージはわかるのですがなかなか。
116:デフォルトの名無しさん
17/12/01 09:09:10.01 0aG9Yubt.net
C#の次期バージョンではin参照渡しとかreadonly ref structとか参照渡し周りが超絶複雑になるよ
117:デフォルトの名無しさん
17/12/01 09:15:31.37 WDfZGQOx.net
.NETライブラリがそれらを採用しないなら使わん
118:デフォルトの名無しさん
17/12/01 09:53:17.68 prkNCuF1.net
>>116
ライブラリってのが何を指してるのかしらんが、CLRはパフォーマンス向上のために採用するだろ
119:デフォルトの名無しさん
17/12/01 09:54:03.08 2xCFHlEB.net
なんの思想もなくただ思い付いた機能追加してんな
次世代の課題はどう考えてもコードの自動生成だからな
もうc#にそれを受け切るキャパはないと結論出してくだらん機能追加してんのかな?
この設計を実現するためのこの機能ってのがないよな
120:デフォルトの名無しさん
17/12/01 09:57:33.53 ey3QBHng.net
馬鹿は要らん心配しなくていいぞw
121:デフォルトの名無しさん
17/12/01 10:17:38.98 iOkVpy7f.net
>>119
ごもっともだがmsの言語拡張にいったい何パーセントのc#プログラマーがついて行けてるんだろ?
122:デフォルトの名無しさん
17/12/01 10:18:45.36 WDfZGQOx.net
無駄にごちゃごちゃするだけ
要らんやろ
123:デフォルトの名無しさん
17/12/01 10:34:20.88 THofu70g.net
>>120
基盤のためだから、馬鹿な一般プログラマーはついていけなくていい
パフォーマンス向上だ間接的な利益を受けるから
124:デフォルトの名無しさん
17/12/01 10:37:55.11 tm4OIa2O.net
値型参照関連の新機能はパフォーマンス向上のために追加されるから
使わん奴は一生使わんだろうな
125:デフォルトの名無しさん
17/12/01 11:15:01.09 iOkVpy7f.net
>>122
>>102の法則が発動され中途半端な馬鹿がグダグダで複雑怪奇な(当然バグだらけ)の
コードを量産するから困るのです。
126:デフォルトの名無しさん
17/12/01 11:19:59.25 KuFa7ekd.net
馬鹿と一緒に仕事しなければOK
馬鹿に仕事を発注しなければOK
そうもいかないって?馬鹿は大変だなw
127:デフォルトの名無しさん
17/12/01 11:25:04.63 iOkVpy7f.net
受託開発なんて馬鹿の巣窟だわ
128:デフォルトの名無しさん
17/12/01 12:24:05.27 Y1F3euov.net
MicrosoftがVBを切り捨てたようにC#も底辺から切り捨てられていく
底辺プログラマの未来は暗い
129:デフォルトの名無しさん
17/12/01 12:25:29.05 RDzVJ16W.net
C#は他の言語で便利な機能があれば取り入れようとしてる時期
rubyみたいに何でも取り入れてごちゃごちゃにならなければいいけど
本当の意味で新しい機能はしばらく追加されないだろう
130:デフォルトの名無しさん
17/12/01 12:30:03.27 ZeZypetk.net
>>128
それって簡単に言えばなんの思想もないから他言語パクって見ますって話でしょw
131:デフォルトの名無しさん
17/12/01 12:33:48.54 TMbg8N17.net
>>129
全部入れてるわけじゃない
思想的にあってるものだけ入れてる
似たような感じだったjavaとも進化の仕方から違いが見て取れるはず
C#の下位がjavaと思ってたけど今は結構違いがある
132:デフォルトの名無しさん
17/12/01 12:42:25.56 WDfZGQOx.net
プログラマとして大事なのはコミュ力だから
133:デフォルトの名無しさん
17/12/01 12:52:31.16 Y1F3euov.net
技術力があれば不要なコミュニケーションを大幅ぬ削減できるという事実から目をそらさないで
134:デフォルトの名無しさん
17/12/01 12:53:48.42 iOkVpy7f.net
それはない
135:デフォルトの名無しさん
17/12/01 13:05:58.75 OnhdkLQO.net
そりゃC#にはVisualStudioとRoslynという超強力な助っ人がいるからね
さらにReSharper買えばリファクタリングも楽々
136:デフォルトの名無しさん
17/12/01 13:10:05.18 THofu70g.net
>>128
まあ8だろうね
137:デフォルトの名無しさん
17/12/01 21:14:22.99 IpWMomyL.net
outって使った記憶無いなぁってプログラム書いてたらTryParseで普通に使ってた
138:デフォルトの名無しさん
17/12/02 00:32:48.74 8Fsyuzgi.net
>>123
うむ
ほとんどの人は気にする必要すらない
139:デフォルトの名無しさん
17/12/02 02:52:21.48 GXJK2Or3.net
Parallelで走らせてる処理を一時停止させる方法ない?
140:デフォルトの名無しさん
17/12/02 04:44:45.92 y1r+I3k4.net
>>136
無い
141:デフォルトの名無しさん
17/12/02 09:04:32.19 VVl/8CKy.net
private class Pixel
{
public byte R { get; }
public byte G { get; }
public byte B { get; }
public int Index { get; }
public Pixel(IList<byte> data, int index)
{
B = data[0];
G = data[1];
R = data[2];
Index = index;
}
}
private static (int x1, int x2, int y1, int y2) Solve(BitmapSource source)
{
var width = source.PixelWidth;
var height = source.PixelHeight;
var stride = width * source.Format.BitsPerPixel / 8;
var data = new byte[stride * height];
source.CopyPixels(data, stride, 0);
var pixels = data.Buffer(source.Format.BitsPerPixel / 8).Select((x, i) => new Pixel(x, i));
あるところのコピペですが、最後の行の data.Bufferで 「'byte[]' に 'Buffer' の定義が含まれておらず、型 'byte[]' の最初の引数を受け付ける拡張メソッド 'Buffer' が見つかりませんでした。」
となります。 Byte型にBufferメソッドはないのですが、なぜこのような記述になっているのでしょうか?
142:デフォルトの名無しさん
17/12/02 09:14:48.79 FEBxWHiJ.net
usingが抜けてる
143:デフォルトの名無しさん
17/12/02 09:16:43.91 DFDj7NSx.net
>>140
.netのバージョンじゃん?
144:デフォルトの名無しさん
17/12/02 09:20:05.04 y4HB0lRC.net
>>140
多分元々はBufferメソッドは拡張メソッドとして定義されてたものだと思う。配列型のメンバに無くてもあとから追加したように見せるやつ。
145:デフォルトの名無しさん
17/12/02 10:41:07.35 kxO6m70V.net
>>140
Rxじゃね
146:デフォルトの名無しさん
17/12/02 11:40:59.81 VVl/8CKy.net
みなさんどうもありがとうございます。
>>141
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
なので問題はないと思います。
>>142
古い.NET Frameworkしろってことですよね?
やってみたんたんですけど、Byte型に Bufferメソッドはなかったです。
>>143
自作した拡張メソッドなら他人にはわからないですね。
やってることはBitmapImageからピクセルデータの配列を取得してるので
べつのものに置き換えて済みそうな気がするんですが・・・
>>144
知らないのでググってみました。色々できそうなので調べてみます。
147:デフォルトの名無しさん
17/12/02 13:42:47.26 NyAfE05B.net
小さいから見えんかったけど
IListじゃん
ググると微妙に出てくる
148:デフォルトの名無しさん
17/12/02 14:36:47.13 d+Ubtrjs.net
C#のint配列はArrayの派生クラスですか?
149:デフォルトの名無しさん
17/12/02 14:57:01.75 DKhOQsY1.net
そうだよ
150:デフォルトの名無しさん
17/12/02 15:33:22.07 suCQ4i95.net
>>147
形式的にそう見えるようになっているけど、実際には通常のクラスの継承とは異なってるよ
配列は配列型という特別な種類の型であって、クラスや構造体とはまた異なるものだ
151:デフォルトの名無しさん
17/12/04 22:56:10.41 ZukSnJvXA
AngleSharpの使い方について教えてください!
<div class="aaa" hoge="javascript:changeBackgroundColor(this);">
<span id="idxxx" class="laste_span">取得したい箇所</span>
</div>
このようなelementがあったとして、
// 指定したサイトのHTMLをストリ
152:ームで取得するvar doc = default(IHtmlDocument);using (var client = new HttpClient())using (var stream = await client.GetStreamAsync(new Uri(urlstring))) { // AngleSharp.Parser.Html.HtmlParserオブジェクトにHTMLをパースさせる var parser = new HtmlParser(); doc = await parser.ParseAsync(stream);}ここからdocに対してどのようにアクセスすれば取得したい箇所を取り出せるのでしょうか?
153:デフォルトの名無しさん
17/12/04 23:04:09.19 vR5lLnEi.net
AngleSharpの使い方について教えてください!
<div class="aaa" hoge="javascript:changeBackgroundColor(this);">
<span id="idxxx" class="laste_span">取得したい箇所</span>
</div>
このようなelementがあったとして、
// 指定したサイトのHTMLをストリームで取得する
var doc = default(IHtmlDocument);
using (var client = new HttpClient())
using (var stream = await client.GetStreamAsync(new Uri(urlstring))) {
// AngleSharp.Parser.Html.HtmlParserオブジェクトにHTMLをパースさせる
var parser = new HtmlParser();
doc = await parser.ParseAsync(stream);
}
ここからdocに対してどのようにすれば取得したい箇所が得られるのでしょうか?
154:デフォルトの名無しさん
17/12/04 23:14:30.56 LqjCBPi+.net
...
}
var elm=doc.QuerySelector(“div.aaa span#idxxx”);
var text=elm.TextContent.Trim(); //文字列を取得
155:デフォルトの名無しさん
17/12/04 23:20:48.64 2ttKv46c.net
>>152
#idxxx だけでよくね?
156:デフォルトの名無しさん
17/12/05 00:13:40.14 bv7GN3wK.net
id よりも先祖の階層は、指定する必要がない
最も子孫の、id 以降を指定するだけでよい
157:デフォルトの名無しさん
17/12/05 00:37:34.79 me3XgAZI.net
>>152
>>153
>>154
ありがとうございます!
明日確認してみます。
158:デフォルトの名無しさん
17/12/05 05:15:33.65 cXtd7Bhl.net
あるtextBox1と表示内容が同じtextBox2を作りたいのですが
textBox1.Text="hoge";
textBox2.Text="hoge";
と記述するのではなくて
visualstudioのデザイナーでコピーするだけでtextBox2を簡単に作れる様な方法はないでしょうか?
159:デフォルトの名無しさん
17/12/05 06:21:13.05 td42eqy6.net
デザイナーでコピーすればいいじゃん
160:デフォルトの名無しさん
17/12/05 07:59:45.98 IsGNrsv0.net
連動させたいってこと?
161:デフォルトの名無しさん
17/12/05 08:01:01.32 cXtd7Bhl.net
すいません、Textの内容hogeは計�
162:Z結果をstringに変換したもので毎回違うので 単にコピーしただけでは出来なくて困っています
163:デフォルトの名無しさん
17/12/05 08:02:23.95 cXtd7Bhl.net
はい、連動させたいということです
データバインドというので出来るのかなと思ったのですが難しくてよくわかりませんでした…
164:デフォルトの名無しさん
17/12/05 08:05:41.37 cXtd7Bhl.net
複数のタブで色々な計算をしていて、その結果を見やすい様にひとつのタブにまとめて表示させたい
という感じです
165:デフォルトの名無しさん
17/12/05 08:09:42.45 IsGNrsv0.net
コンテクストクラスを作ってタブ開いたときにそのコンテクストオブジェクトの内容を表示させる
166:デフォルトの名無しさん
17/12/05 08:49:06.85 aO16oHUn.net
更新タイミングでそうなるように値入れればいいじゃん
167:デフォルトの名無しさん
17/12/05 08:50:24.01 aO16oHUn.net
何ができなくて困ってるのか全くわからない
168:デフォルトの名無しさん
17/12/05 09:35:53.48 5W3/kp5y.net
うむ。
textBox1.Text=res1;
textBox2.Text=res1;
textBox1.Text=res2;
textBox2.Text=res2;
こんな感じで毎回両方に代入すればいい。
169:デフォルトの名無しさん
17/12/05 11:10:31.20 8/AWIhin.net
なんで要素1つのタプルが宣言できねえんだよこのポンコツ
170:デフォルトの名無しさん
17/12/05 12:23:48.53 Z3/XP0Jc.net
changed使えば
171:デフォルトの名無しさん
17/12/05 13:39:29.23 92ldxPu3.net
>>156
文字通りに解釈すると表示が同期するコントロールを継承・またはユーザーコントロールとして新しく作るってなるけど
>>165とどっちが楽とか考えてみたらいいよ
172:デフォルトの名無しさん
17/12/05 13:44:53.19 yVpW5F/D.net
EF初心者なんですがPKが有るDBでsaveChangesしようとするとPKが重複してるというエラー出ます。解決策を教えてください。
173:デフォルトの名無しさん
17/12/05 14:34:58.67 dOKGjr2C.net
コードを修正する
174:デフォルトの名無しさん
17/12/05 18:14:21.88 BG6o1pBu.net
増減する情報(例えば、車種、色、ナンバー等)を管理するのに適したものは何ですか?
自作クラスを作って
List<myClass> myList;
myList.Add(new myClass());
myList.Remove(~);
とするのと、
DataTableで、車種、色、ナンバーを Columnsとし、
Row の Add と Remove するのと、
実行速度とかの面で、どちらがよいでしょうか。
175:デフォルトの名無しさん
17/12/05 18:27:09.86 K4lUm6I7.net
>>171
Listに1票
176:デフォルトの名無しさん
17/12/05 18:28:03.32 AWED9izS.net
ListのAddはO(1)、RemoveはO(n)
DictionaryのAddはO(1)、RemoveはほぼO(1)
なのでキーがユニークになるならDictionaryを使えばOK
あとDataTableは余程のことが無い限り使っちゃダメ
177:デフォルトの名無しさん
17/12/05 18:38:38.70 xkHn8EO8.net
>>171
それを保存するならDBを使うべき
SQLiteとか
178:デフォルトの名無しさん
17/12/05 18:39:45.00 BG6o1pBu.net
DataTable はダメなんですか?
別件ですが、日時を有する情報で、ある特定の期間の直近のデータを特定したい場合があり、
Selectを使いたいのでDataTableを使った経験があるのですが、よくなかったですか?
179:デフォルトの名無しさん
17/12/05 18:41:02.99 BG6o1pBu.net
>>174
保存はしません。あくまでも内部の情報としての利用です。
180:デフォルトの名無しさん
17/12/05 18:43:51.03 xkHn8EO8.net
DataTableは土方臭いから、やり方に拘るタイプの人は嫌ってることが多い
DataTable自体は、パフォーマンスに優れ、クソ安定した優秀な技術
愛用してるプログラマがクソなだけ
181:デフォルトの名無しさん
17/12/05 18:47:31.87 Yyswv8hy.net
DataTable よりも List を使うと 10 倍早くなる
略
DataTable 8.32, 8.12, 8.12 sec
list 0.88, 0.83, 0.83 sec
とう具合に、DataTable よりも list のほうが 10 倍早くなっています。
182:デフォルトの名無しさん
17/12/05 19:00:51.66 PhhOBNeX.net
その10倍がボトルネックにならなきゃどうでもいい
183:デフォルトの名無しさん
17/12/05 19:04:36.42 rIDRW6+f.net
>>179
質問者が実行速度にこだわっているのならどうでもよくはない
そんな話するのならこの質問がどうでもいいってなる
184:デフォルトの名無しさん
17/12/05 19:13:14.27 BG6o1pBu.net
皆さん、ありがとうございます。
速度も速いしクソにはなりたくないので、今回の案件ではlistを使う方向で進めることにします。
先ほど書いたとおり、以前DateTime型の絞込みでSelectが便利だと思いDataTableを使ったことがあります。
この場合も、listで、自力でソードや比較を実装した方が良かったのでしょうか?
まぁ速度の兼ね合いかとは思うのですが、皆様ならどうしますか。
185:デフォルトの名無しさん
17/12/05 19:15:08.60 0r8GtYYi.net
8秒と0.8秒だったら大騒ぎだが80msと8msの差だったら無視できるという意味では
どういうものをどのくらい扱うかで違うから本人がテストしなきゃ仕方ないね
186:デフォルトの名無しさん
17/12/05 19:17:31.03 k+S65OIc.net
DataTableはオワコン
Microsoftも切捨てようとしたがクレーマーの圧力に負けてしぶしぶサポートすることになった
187:デフォルトの名無しさん
17/12/05 19:19:50.77 rIDRW6+f.net
>>181
まず用途が管理なのに保存しないとか意味不明なんだけど
データその都度読み込んで捨てるのなら作りやすい方で作って
速度アップ見込めそうなら形式を変えるだけ
188:デフォルトの名無しさん
17/12/05 19:21:31.02 ICEc9nSZ.net
何れにしてもLinqは覚えておこう
189:デフォルトの名無しさん
17/12/05 19:47:42.46 C7A8AnoX.net
RemoveするならGetHashCodeとEqualsをちゃんと実装してHashSetにぶち込んだ方が良くない…?
190:デフォルトの名無しさん
17/12/05 20:12:24.58 ParyWK8l.net
リストに重複データが存在するかもしれないしHashsetにしていいかは不明だな
設計書とか作って主キーやユニークキーにあたるデータを明示的にしてんならそれでいいけど大抵はIEqualityComparer指定する方が使い勝手がよさそう
191:デフォルトの名無しさん
17/12/05 20:22:49.22 PhhOBNeX.net
>>181
先ずは作り易い方で作れ
速度面の改善をするのは、一通り完成してからでいい
ボトルネックは大抵、標準ライブラリからどのクラスを採用するかなんてレベルには無いから気にすんな
192:デフォルトの名無しさん
17/12/05 20:48:47.73 XeWx8Qol.net
>>170
分からないなら答えなくてもいいよ
193:デフォルトの名無しさん
17/12/05 21:03:05.57 BG6o1pBu.net
皆さん、レスありがとうございます。
色々と馴染みのないキーワードが出てきたので少しずつ調べて行きたいと思います。
194:デフォルトの名無しさん
17/12/05 21:42:08.05 IsGNrsv0.net
Googleのトップがプログラミング
195:デフォルトの名無しさん
17/12/06 08:39:00.97 Y6zaPgMb.net
>>183
クレーマー言うな。
EFが普及してないんだから仕方ない。
msはDataTableよりvb6に引導を渡してくれ。
196:デフォルトの名無しさん
17/12/06 15:27:39.07 nfsVfh5P.net
Webフォームを作っています。
サーバ上の特定のフォルダに、とあるファイルが不定期に生成されます。
それを監視してWebフォームに表示したいのですが、FileSystemWatherのようなコントロールはないでしょうか?
ない場合、Timerで回すしかない考え付かないのですが、通常Webフォームで1秒間隔程度なら許容されるインターバルでしょうか?
197:デフォルトの名無しさん
17/12/06 15:39:57.42 A61Dczsv.net
>>193
無いと言うか、あったところでその状況をサーバに取りに行かないとどうにもならん。
ユースケースによるかと。
コネクション数を気にしないなら、ファイルが生成されるまでタイムアウトしないAPI作って、ajaxで呼ぶのが一番機敏に動く�
198:ニ思う。 一秒間隔でリクエストはちょっと多いんじゃないかな。生成されてない画面を10人が10分開いたままにしたら、それだけで6000行もログが埋まってしまう気がする。
199:デフォルトの名無しさん
17/12/06 15:53:34.43 sywZU+Dz.net
>>193
問題ないけど不定期ならプッシュ通知の実装もありますよ
200:デフォルトの名無しさん
17/12/06 15:55:24.63 nfsVfh5P.net
>>194
言葉足らずですみません。
IISが動いているサーバにデータのファイルが不定期に生成されます。
それをWeb画面で様子をみたいという要望です。
動いてる様子が分かればいいのですが、ファイルがまとまって生成される事があるため、
ある程度短いインターバルにしたいとは思ってたのですが。
ローカルアプリも考えたのですが、その場合、複数のPCがサーバのファイルを覗きに行く事になるので、それはそれで嫌かなと思いまして。
> ファイルが生成されるまでタイムアウトしないAPI作って、ajaxで呼ぶ
もう少し教えてもらえないでしょうか。
APIって具体的に何で作ったどんな形式のものですか?
調べるヒントをください。
>>195
同じくもう少しヒントを!どんな感じの実装ですか?
201:デフォルトの名無しさん
17/12/06 16:07:24.35 sywZU+Dz.net
>>196
ごめん、Webプッシュと言うらしいけど未だ使ったことは無いんだ
グーグル先生に聞いてください
202:デフォルトの名無しさん
17/12/06 16:32:05.88 0RCrbv9w.net
>>196
SignalR
203:デフォルトの名無しさん
17/12/06 17:50:23.31 3KlZJVUn.net
C#を採用したTizen4.0っていうOSのスマホが発展途上国でバカ売れらしい
204:デフォルトの名無しさん
17/12/06 18:10:03.35 nv7gWMkp.net
indexでF5連打
205:デフォルトの名無しさん
17/12/06 18:21:23.18 nv7gWMkp.net
この人と同一人物じゃないかと疑ってしまう
703 名前:デフォルトの名無しさん (ワッチョイ 02c2-8CrJ)[sage] 投稿日:2017/11/21(火) 21:20:36.17 ID:8K/pnPq30 [1/2]
最近のオシロスコープはWebサーバー機能を持っていて、Webブラウザでアクセスすると
計測画面を表示させることができますが、C#で同じような機能を簡単に実装することはできるでしょうか?
リモートデスクトップではなく、WinFormsのアプリ画面だけをネット越しに共有する感じです。
206:デフォルトの名無しさん
17/12/06 18:23:00.31 zMhQDjeD.net
>>196
Web Socketかポーリングを使う
つまりSignalR
207:デフォルトの名無しさん
17/12/06 19:40:50.48 trEM6d6d.net
ポーリング間隔はどっちにしろ決めないと話にならない
208:デフォルトの名無しさん
17/12/06 19:44:16.54 WLCLi8WA.net
ロングポーリングかWebSocketならポーリング間隔は不要だぞ
209:デフォルトの名無しさん
17/12/06 19:50:30.04 trEM6d6d.net
>>204
どういう仕組み?
210:デフォルトの名無しさん
17/12/06 19:54:18.94 trEM6d6d.net
サーバー側でクライアント数の把握をするの?
悪手じゃね?
211:デフォルトの名無しさん
17/12/06 20:24:33.34 WLCLi8WA.net
通知が取得できるようになるまで長いことセッション張りっぱなしにするだけだぞ
悪手もクソも普通に使われてる手法
212:デフォルトの名無しさん
17/12/06 20:26:17.59 jQEB5IsZ.net
>>206
SignalR知らんの?
213:デフォルトの名無しさん
17/12/06 20:50:56.89 trEM6d6d.net
>>207
それってサーバー側でクライアントを管理してないとできないよね?
214:デフォルトの名無しさん
17/12/06 20:51:29.75 trEM6d6d.net
>>208
いや、これ仕組みの話だから
215:デフォルトの名無しさん
17/12/06 21:59:20.59 W/tg1Ic8.net
>>209
それが何か?
普通のHTTPリクエスト処理だって、リクエストを受け付けてからレスポンスを返すまで、
君の言葉で言えばクライアントを管理してるだろ
そのレスポンスを返すまでの時間が長いだけだよ
216:デフォルトの名無しさん
17/12/06 22:02:13.59 trEM6d6d.net
>>211
ファイル更新が丸一日無かったらどうなんの?
217:デフォルトの名無しさん
17/12/06 22:13:07.11 W/tg1Ic8.net
>>212
リクエストにタイムアウト付けるに決まってるだろ
218:デフォルトの名無しさん
17/12/06 22:15:10.75 H2dXQlT6.net
元の質問Timerで一秒間隔で呼び出すとかなんだが大丈夫なのか?
219:デフォルトの名無しさん
17/12/06 22:29:46.09 JrOz0Sq/.net
>>214
5chのリクエスト数に比べると屁みたいなもんだろな。
220:デフォルトの名無しさん
17/12/06 22:31:12.35 9Cl2Q0EY.net
そもそもサーバーのファイル一覧を表示するWebアプリなんか自分で作らなくても出来合いのOSSが腐るほどあるだろ
自分で作るより遥かに品質もいいよ
221:デフォルトの名無しさん
17/12/06 22:34:48.06 H2dXQlT6.net
>>215
サーバーがそんな強力な前提か
222:デフォルトの名無しさん
17/12/06 22:35:13.44 lccJ0ap6.net
webベースのファイル管理サービスでイケてるやつあったっけ?
223:デフォルトの名無しさん
17/12/06 22:36:33.33 W/tg1Ic8.net
>>215
キャパシティ的な話をするなら、そもそもサーバーのディレクトリを各クライアントがネットワークドライブにマウントしても全く問題もないだろうな
用途的に、問題になるほどにクライアントの数が多いとは思えん
224:213
17/12/06 22:36:35.54 H2dXQlT6.net
って違うw釣られて間違えたw
クライアント側の話だよ
225:デフォルトの名無しさん
17/12/06 22:41:18.34 9Cl2Q0EY.net
>>220
ロングポーリングなら関係ないぞ
結局はサーバー側でのファイル生成イベントの発生頻度次第
226:デフォルトの名無しさん
17/12/06 22:43:23.56 JrOz0Sq/.net
>>219
タスクトレイ常駐型のデスクトップアプリでも作った方が使いやすいだろうな。
227:デフォルトの名無しさん
17/12/06 23:56:51.95 5T1FsMv1.net
サーバー側はFileSystemWatcher(だったっけ?)でフォルダ監視してなんかあったらテキストファイルでもDBでも適当な保管場所に情報を保存するサービスと
その保存場所から自動更新でひたすら情報を読み取るWeb画面作ればよくね?
自分ならそうするわ
ボリューム的に半日仕事で終わるし
228:デフォルトの名無しさん
17/12/07 01:41:57.78 h6BVmLyc.net
1秒じゃなくて4秒にしよう
229:デフォルトの名無しさん
17/12/07 07:03:53.69 e1xCIudC.net
他のアプリにキーボードのコマンドを送りたいのですが、どの様な方法があるでしょうか?
sendinputなど調べてみたのですが例が少なく今一理解出来ませんでした
230:デフォルトの名無しさん
17/12/07 07:58:46.72 h6BVmLyc.net
プロセス間通信
231:デフォルトの名無しさん
17/12/07 08:07:25.81 QlnDuWpW.net
>>223
> その保存場所から自動更新でひたすら情報を読み取るWeb画面作ればよくね?
だからそれやるとクライアントが多い時にサーバーがパンクするからSignalRとかでサーバーから通知するって話
まあサーバーから通知って言うけど仕組み的にはイベント発生までレスポンスを返さないって言うだけのことなんだけどな
232:デフォルトの名無しさん
17/12/07 08:16:20.37 1QpgLYuZ.net
なつかしのSendMessageとか
233:デフォルトの名無しさん
17/12/07 08:27:43.21 teoFHcQT.net
>>225
SendKeysで
sendinputは他のプロセスには送れない
234:デフォルトの名無しさん
17/12/07 08:50:35.95 afn7IHoQ.net
.netの場合クラスないでFontオブジェクトを生成した場合にはクラスを解放した場合は
Fontオブジェクトは解放されるの? Disposeすべきかどうかはどうやって調べたら
いいのだ?
235:デフォルトの名無しさん
17/12/07 10:06:11.39 lA04OzcH.net
>>227
しないっつうのw どういう理解してる?
なんのためにわざわざ別にサービス作って保存してんだ
これでパンクするならごく普通のWebサービスも作れんわ
236:デフォルトの名無しさん
17/12/07 10:31:29.62 vYoZ1cCC.net
>>230
パフォーマンスを要求するなら適切なタイミングで解放すべき。
どうでもいいならガーベッジコレクタに任せる
237:デフォルトの名無しさん
17/12/07 10:32:55.56 vYoZ1cCC.net
質問の答えになってなかった
238:デフォルトの名無しさん
17/12/07 10:43:44.03 teoFHcQT.net
>>230
IDisposable実装してないクラスは放置で良いと思ってる。
239:デフォルトの名無しさん
17/12/07 10:56:49.03 ODzGS5Kr.net
FontをDisposeするコードは見
240:たことも発想も無かったな newで作ったら全部Disposeする発想なのか
241:デフォルトの名無しさん
17/12/07 10:58:19.97 vYoZ1cCC.net
Font, Pen, Brushはサイズ重いしな
242:デフォルトの名無しさん
17/12/07 11:44:12.26 Rln0TdUu.net
>>235
Fontはコントロールを自作する場合は(ほとんどの場合手抜きで)コントロールと同じ寿命に
することもあるけど、usingで対処できる場合が大半でしょ
243:デフォルトの名無しさん
17/12/07 12:54:28.08 QlnDuWpW.net
>>231
見たときに最新情報になってりゃいいんじゃなくて、イベントが発生したらあまり遅れずにクライアント側の画面を更新するんだぞ?
なぜSignalRとかの話になってるのか理解してないだろ
244:デフォルトの名無しさん
17/12/07 13:02:41.60 lA04OzcH.net
>>238
そもそもWeb画面で見たいっつう要望じゃん
つうか100台同時アクセスして毎秒更新してもカスみたいな負荷だわこんなもん
一体どんな骨董品で動かす想定してんだよ
245:デフォルトの名無しさん
17/12/07 13:07:11.00 lA04OzcH.net
そうでなくてもSignalRなんているかよ
サービスでtcpポートlistenしてイベント発生する都度情報を垂れ流す古き良きソケット間通信で十分だろw
246:デフォルトの名無しさん
17/12/07 13:09:35.59 teoFHcQT.net
日本語で
247:デフォルトの名無しさん
17/12/07 13:22:15.77 2pT1zkKO.net
>>240
ブ ブラウザ画面の話してるから要するにWebSocketってこと?
248:デフォルトの名無しさん
17/12/07 13:29:39.70 lA04OzcH.net
>>242
いや
デスクトップアプリにするんでもソケット間通信でいいよねっつう話
249:デフォルトの名無しさん
17/12/07 13:51:52.29 +NxgTnqm.net
Webアプリで素のソケット通信って何なのさ?
250:デフォルトの名無しさん
17/12/07 14:33:53.52 LGA5S92E.net
質問者置いてけぼりでワロタ
いつの間にかサーバ側を何とかする話になってる
251:デフォルトの名無しさん
17/12/07 14:40:55.27 +NxgTnqm.net
皆さん、単純なものを複雑に実装するスキルをお持ちのようでw
252:デフォルトの名無しさん
17/12/07 15:33:24.53 BPsvGxGu.net
C#でデーモン作って状況をDBに保管して、webシステムは普通にDBからページ作れば良いんじゃね?
セッション全てがフォルダアクセスに行くと面倒だからそれだけ避ければいい
253:デフォルトの名無しさん
17/12/07 16:02:17.31 cbI0OqL3.net
知らないのならば
254:デフォルトの名無しさん
17/12/07 16:10:15.58 CONsZMOl.net
>>196
見たい時にボタンクリックして最新情報を取得すればいいやん。
常時モニターする必要性は無いだろ?
255:デフォルトの名無しさん
17/12/07 16:16:30.86 3BaUjcas.net
本当に初歩的なことで無知で予め謝るね、ごめんなさい。
var revokedPasswords = [
];
function getAuthenticationHash (password) {
var hasher = new jsSHA("SHA-256", "TEXT");
hasher.update("vira " + password.trim().toLowerCase() + " mate");
return hasher.getHash("HEX");
};
function isValidPassword (password) {
if (revokedPasswords.indexOf(hash) >= 0)
return false;
var hash = getAuthenticationHash(password);
if (validPasswords.indexOf(hash) >= 0)
return true;
return false;
};
context.getAuthenticationHash = getAuthenticationHash;
context.isValidPassword = isValidPassword;
というのがあって、これはパスワードを”SHA-256”ってやつで変換しろってことであってるのかな?
256:デフォルトの名無しさん
17/12/07 16:19:30.73 bi5OWsBC.net
>>250
ここはc#スレです
257:デフォルトの名無しさん
17/12/07 17:32:36.95 2pT1zkKO.net
>>250
はいそうです。
258:デフォルトの名無しさん
17/12/07 18:14:35.54 +Wu2cJH/.net
>>228>>229
ありがとうございます
最終的にバックグラウンドでキー入力を他アプリに送りたいのですが
どういった方法があるでしょうか?
259:デフォルトの名無しさん
17/12/07 18:30:35.51 NSH9BpmW.net
>>253
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
URLリンク(dobon.net)
バックグラウンドとは?
特定のアプリに対してのみ送信なら無理
260:デフォルトの名無しさん
17/12/07 19:35:39.52 qnTgxbKH.net
>>253
バックグランドってタスクトレイ常駐アプリにしたいって事?
NotifyIcon使えば出来るけど。
バックグランドがWindowsサービスって意味なら無理かな。
.NETのSendKeysは、半角カナや&は化ける。
WSHのSendKeysを使えば化けないかも。
261:デフォルトの名無しさん
17/12/07 20:32:51.80 QlnDuWpW.net
>>239
> そもそもWeb画面で見たいっつう要望じゃん
>>193と>>196を読んで自動更新したいんだ
って理解できないアホは黙ってろ
262:デフォルトの名無しさん
17/12/07 20:48:22.81 p8nuhjj6.net
>>239が言ってるのは、クライアントがサーバーに対してXHRでも使って1秒ごとにポーリングすればいいということだと思うぞ
リクエストのたびにサーバー側でも毎回ファイルシステム舐めてファイル一覧作ってたら遅いだろうけど、
サーバー側ではFileSystemWatcherなり定期的なポーリングなりで非同期でファイル一覧のキャッシュを更新していけば、
クライアントが頻繁にリクエストしてきてもまず問題にはならない
263:デフォルトの名無しさん
17/12/07 20:50:09.09 lA04OzcH.net
>>257
普通誰が読んでもそういう理解になるよね
264:デフォルトの名無しさん
17/12/07 20:54:28.15 h6BVmLyc.net
>>256はWebに疎すぎる
265:デフォルトの名無しさん
17/12/07 21:06:57.10 p8nuhjj6.net
(A)サーバー内でのファイルシステムに対するポーリング と、(B)クライアントによるサーバーへのポーリング がごっちゃになってるのがこの話の混乱の原因
そこを非同期で分離するのはまず常識的な大前提であって、
ABそれぞれをどう最適化するかはそれほど重要ではない
とりあえず実装が手っ取り早いのはABとも定期的に更新することだし、
効率と即時性を追求するならAはFileSystemWatcherでBはロングポーリングorWebSocketだろうね
266:デフォルトの名無しさん
17/12/07 21:09:53.55 G7lyLovK.net
>>257-259
なんでそんなタコな設計するんだ?
って>>194に既に書いてあるのにバカすぎるだろ
267:デフォルトの名無しさん
17/12/07 21:12:08.87 qnTgxbKH.net
質問主はWebアプリに拘ってるわけじゃないけど
沢山のクライアントPCからWebサーバのフォルダを共有したくないからWebアプリが良いかな程度に思ってるだけだろ。
Webサーバ上に監視サービス作るのならWebアプリに拘る必要は無いし。
268:デフォルトの名無しさん
17/12/07 21:19:32.52 lA04OzcH.net
>>261
>>194がバカだからね
仕方ないね
ファイルが生成されるまでタイムアウトしないAPIとか、1秒間隔のリクエストが多いとか、6000行のログとか
何もかも全てが意味不明だからね
どうしようもないね
269:デフォルトの名無しさん
17/12/07 21:21:02.83 p8nuhjj6.net
>>261
>>194と矛盾することは何も言ってないつもりだけどな
>>194は>>260でいうBの部分の実装例を挙げてるだけであって、Aの部分については何も言及してないぞ
270:デフォルトの名無しさん
17/12/07 21:24:18.74 Is/SlhXg.net
悪いけどこれC#の話題なのかなあ?
271:デフォルトの名無しさん
17/12/07 21:29:45.67 EeTBbz6o.net
じゃあ会社でLINQを薦めようとしたら、その前にまずユニットテストを覚えさせなければと愕然とした話でいいのか
272:デフォルトの名無しさん
17/12/07 21:40:07.74 lfszpYB8.net
ソケット通信はstunnelで暗号化するんだよね?
273:デフォルトの名無しさん
17/12/07 21:46:02.79 G7lyLovK.net
>>264
そもそもAをどうのこうの言ってる奴は池沼の>>223ぐらいだろ w
274:デフォルトの名無しさん
17/12/07 23:37:45.38 gBefvYul.net
イベントの購読破棄って
どんなケースでも破棄されるように几帳面にやるものなの?
URLリンク(takachan.hatenablog.com)
275: これ見たら-=しなくても漏れないようなので サボりたくなるんだけど サボってはいけないケースとサボっていいケースがあるなら知っておきたい
276:デフォルトの名無しさん
17/12/08 02:03:25.04 cDyzbPRT.net
>>269
何やってるのかよー分からん記事だねw
イベントでリークが発生しうるのは相談室の方の97に書いてあるケースだけだと思う
それは違うって言ってる人もいるけど、たぶん何か勘違いしてるだけだと思うね
277:デフォルトの名無しさん
17/12/08 02:05:20.09 dE4K6487.net
{"status":"go","solution":{"Res":"0SpQ"},"endTime":1512663686}
っていうJSONデータがあって、その中のResの値をとりたいんですけど、
var seri = new DataContractJsonSerializer(typeof(recapres));
byte[] bytes = Encoding.UTF8.GetBytes(a);
var ms = new MemoryStream(bytes);
recapres info = (recapres)seri.ReadObject(ms);
ここまでは調べて書けたんですけど、
この先のResの値をとるコードの書き方がわかりません。
どのように記述すればいいのでしょうか?
solutionの部分は、
[DataMember]
public List<SOL> solution { get; set; }
としてしてます。
278:デフォルトの名無しさん
17/12/08 04:06:20.76 xohAuzUW.net
>>271
です。
調べる方法変えたらいけました
279:デフォルトの名無しさん
17/12/08 07:58:19.65 ahDNvKU9.net
>>270
サボってはいけないのはイベント発行側のライフサイクルが長いとき
サボっていいのは発行側と購読側のライフサイクルがほぼ同じとき
という理解でOK?
280:デフォルトの名無しさん
17/12/08 08:11:45.30 PpC6VnTr.net
>>269
このリンク先の人はイベントとGCを正しく理解してない
この人、他の記事もバカっぽいのばっかりだから初心者はこんなの見ちゃだめ
>>273
間違ってはいないけど、補足するなら
発行側より購読側のライフサイクルが長いときもサボっていい
参照の向きは必ず発行側→購読側なので、イベントハンドラの登録そのものは発行側の寿命には影響しない
フォームとボタンのように、たいていは購読側も発行側への参照を握り続けているので、結果的に寿命は一致するケースが多いんだけどね
281:デフォルトの名無しさん
17/12/08 08:41:02.41 LOVuAI3k.net
>>274
SIerの中の人のブログだね
c#でメモリリークって「推して知るべし」
282:デフォルトの名無しさん
17/12/08 08:43:23.27 oxsZSnq/.net
>>263
193だけどなんで?
普通にロングポーリングの実装かと。
283:デフォルトの名無しさん
17/12/08 09:32:30.34 eUH+zyLO.net
イベントとかUIしか使わんしUIはデザイナーが勝手にコーディングするからイベントなんて使わんな
284:デフォルトの名無しさん
17/12/08 09:40:52.12 2x5NCYhZ.net
へえ、すごいね
帰っていいよ
285:デフォルトの名無しさん
17/12/08 11:10:02.45 cJ57jE1N.net
+=を一切使わずに作るのか
コマンドバインディングを駆使する感じ?
それは確かに凄いな
286:デフォルトの名無しさん
17/12/08 11:28:41.60 7LHrgDvL.net
>>276
ロングポーリングの実装について勉強しといで
単にタイムアウトを無期限にする実装のことをロングポーリングとは言わない
287:デフォルトの名無しさん
17/12/08 11:44:45.00 oxsZSnq/.net
>>280
うん、実装次第だよね。
無期限か、プロキシに切られる寸前にするか、10分にするか、どうでも。
無期限はCouchDBのchange監視なんかは、ほっといたら無期限になるんじゃなかったっけ?
ログが大きくなったり他のを埋めるほどのリクエストは問題だと思うけど。特にイントラでの運用だと。
事例調べてきたらいいのになぁ
288:デフォルトの名無しさん
17/12/08 12:25:41.51 IbEiOVbO.net
>>279
?
289:デフォルトの名無しさん
17/12/08 12:27:34.90 IbEiOVbO.net
イベント使う機会ある?
290:デフォルトの名無しさん
17/12/08 12:44:05.29 M8mJAXMK.net
>>283
無い人はそれでいいよ
自分には~いらないとか~必要ないとかそういうこと言いあうスレじゃないんで
291:デフォルトの名無しさん
17/12/08 12:53:05.93 eUH+zyLO.net
>>284
単純に興味がある
みんななにに使ってるだろう。
そもそも要らないとは一言も
292:デフォルトの名無しさん
17/12/08 12:56:22.31 n5uOCz3i.net
>>285
UIアプリつくったことないの?
イベントだらけやん
293:デフォルトの名無しさん
17/12/08 12:58:10.32 eUH+zyLO.net
>>286
うん。UIしか俺も使わん。
それ以外にある?
UIのはデザイナが勝手にコーディングするからイベントに触れることがない。
294:デフォルトの名無しさん
17/12/08 12:58:14.04 PXTxgSdc.net
>>280
> 単にタイムアウトを無期限にする実装のことをロングポーリングとは言わない
そんなことを思ってるのは君だけ
マジでちょっと勉強してきた方がいいぞ
今だと単なるアホにしか見えてないし
295:デフォルトの名無しさん
17/12/08 13:04:34.05 LezyuZlt.net
>>287
通信アプリとかデータが来たらオレオレイベント発生させる。
296:デフォルトの名無しさん
17/12/08 13:11:44.12 T81djMMQ.net
あらゆるクラスにログ出力のイベントつけちゃう
297:デフォルトの名無しさん
17/12/08 13:19:11.96 zPIj5vhG.net
ID変わってるかもですが、>>193です。
反応できてないですが、皆さんの議論は参考にさせて頂いています。
SignalRですか?少し調べてみたのですが、目的に合致しているかもしれません。
ですが、後だしなのですが、今回対象になっているサーバがframework 3.5で、
現在運用されているwebアプリはVS2008で開発されています。
ここに追加する形で考えているため、SignalRは使えません。
(別の場所に同じようなサーバがあり、こちらは去年立ち上げたばかりで、水平展開することになり、かつ、私が担当する事になったら是非ともSignalRなりを勉強したいと思っています。)
そこで、やはりTimerを使う事になるかなと思っているのですが、気になる点があるので教えていただければありがたいです。
ログが大きくなるとあるのですが、意識してなくてもログが記録されているものなのですか?
そのログはどこで確認でき、ログを残さなくすることはできないのでしょうか?
298:デフォルトの名無しさん
17/12/08 13:23:25.17 LezyuZlt.net
>>291
IISのログの事だろうけど気にしなくても良いでしょ。
299:デフォルトの名無しさん
17/12/08 13:28:18.22 Xls5mA2Y.net
プロパティー変化時の~Changedイベントは普通に多用するでしょう。
非同期処理完了をイベントで通知するのは非同期メソッドが出来たので
流行らなくなったね。
300:デフォルトの名無しさん
17/12/08 14:02:11.06 PpIHj1rp.net
最近はイベントも種類が増えたね
・x:Bindによるイベントバインディング
・EventAggregatorって言う集約イベント
・Rxや、その派生のReactiveProperty
従来型はあまり使わなくなったね。
301:デフォルトの名無しさん
17/12/08 14:10:42.44 M8mJAXMK.net
>>287
最初の質問は「イベント使う機会ある?」だったけど、相手によってどんどん変えるの?
動的にコントロール追加する時とかデザイナでできない
イベントが多重発生する状況のときは処理中に止めて終わったらイベントを再開する
他にもあるだろうけど自分が遭遇する機会無いのならそれでいいじゃん
>>291
質問続けるのならどこまでサーバー側をいじれるかも書いてほしい
一番簡単なのが他の人も書いているけどサーバー側でステータス用意して
クライアント側がそれを取りに行くだけの処理の時だから
302:デフォルトの名無しさん
17/12/08 14:16:37.32 yJmj+jOP.net
PerformanceCounterって、
OS起動直後からしばらく立たないと使えないとかの制限あるんですかね?
303:デフォルトの名無しさん
17/12/08 14:45:49.73 IbEiOVbO.net
>>295
なんも変わってなくね
最初から「UIしか使わんやろ」オンリーですが?
304:デフォルトの名無しさん
17/12/08 14:52:00.48 IbEiOVbO.net
>自分が遭遇する機会無いのならそれでいいじゃん
なにをそんなにイカってるのか分からんわ。
「イベントってUIしか使わなくなくね?イベントの使い道他になにがあるの?」
単純な疑問に突然キレられても困惑よ。
305:デフォルトの名無しさん
17/12/08 15:19:35.30 FTlzMntS.net
ここのスレの住人は「C#の~要らなくね?」って意見に過敏だからなwwwww C#信者だから当たり前かなw
要らないとは言ってなくてもそう解釈されるんじゃよw
306:デフォルトの名無しさん
17/12/08 15:22:00.68 XHPT3EtZ.net
あのさぁ、c#の#って要らなくねえ?
って言ってみる。
307:デフォルトの名無しさん
17/12/08 15:37:29.35 NIv2jCgd.net
要りますよ、おじいちゃん。
308:デフォルトの名無しさん
17/12/08 15:43:54.34 XHPT3EtZ.net
#を取ったら、オブジェクト指向もジェネリックスもラムダ式も例外もイベントも無くなって平和になるべ?
309:デフォルトの名無しさん
17/12/08 16:08:01.83 zPIj5vhG.net
>>295
失礼しました。
サーバは、frameworkのインストールとか、既存の動いているソフトをいじるとかはできないですが、
新たなソフト(Webでもローカルexeでも)を動かしたり、フォルダやファイルの操作は自由にできます。
>一番簡単なのが他の人も書いているけどサーバー側でステータス用意して
>クライアント側がそれを取りに行くだけの処理の時だから
自分に理解できない事は脳内でスルーしてしまっているかも。
これは別途、更新したファイルのリストを作っておくとかって事でしょうか?
確かに作成されたファイルを、各リクエスト(=開いてるブラウザ、ですよね?)毎のTimerイベントで行うのは非効率ですね。
私のレベルでは、サーバでローカルアプリを動かして、何らかのファイルなりDBに出力するくらいしか思いつきません。
Webアプリ内で、同等の事とかできればいいんでしょうけど。
310:デフォルトの名無しさん
17/12/08 18:12:13.39 oxsZSnq/.net
>>291
記録されてる。IISの設定次第。
残さないってのは、邪魔なログがある以上に困るのでやめて。
>>292
IISのログだけど、障害調査する側に回ったら、気にしてほしいと願うようになると思う。
311:デフォルトの名無しさん
17/12/08 18:55:14.76 Hk+pFmDF.net
C#だけの話では無いのですが、インスタンス作られたら自分の仕事するだけでフィールドもパブリックメソッドも無いクラスって、OOP的にはアンチパターンでしょうか
312:デフォルトの名無しさん
17/12/08 19:03:17.13 cJ57jE1N.net
>>305
パターンというのはみんなが繰り返しやるからパターンと呼ばれる
だれもそんな設計しないと思うので
何かのアンチではあってもアンチパターンではないと思う
313:デフォルトの名無しさん
17/12/08 19:11:34.28 PpC6VnTr.net
>>305
フィールドを使いたいなら分からないでもないが、フィールドも使わないんだったら単なる静的メソッドでいいだろ
あえて変なスタイルを採用する積極的理由がない
314:デフォルトの名無しさん
17/12/08 19:22:05.40 Vo/E3SIp.net
>>305
コンストラクタの中で処理するのはアンチパターンに入るかも
315:デフォルトの名無しさん
17/12/08 21:13:55.11 l65xZylR.net
>>308
コンストラクタだけで完結させるのはやはりアンチパターンですよね
データベース相手で、パブリックメソッドが一つしかないクラスを作った時に、コンストラクタで全部やっちゃえば良いねと作っちゃったんですけど、こんなことしてるクラス見たこと
316:無いので不安に思い
317:デフォルトの名無しさん
17/12/08 21:46:31.29 T5yPQbL2.net
コンストラクタ内で全部やっちゃうのは、
コンストラクタの責務を超えてる気がするなー
318:デフォルトの名無しさん
17/12/08 21:48:13.33 T5yPQbL2.net
数年後とかに(または自分以外の人間が)、コードを改修するハメになった時に
うっかりその派生クラスとか作ると、ヘンな副作用を起こしそうなので
ちゃんとメソッドに分割した方がお行儀が良い、と思う
319:デフォルトの名無しさん
17/12/08 22:06:43.30 nAKkewiT.net
>>305
既に指摘されてる通り、アンチどうこう以前に普通は無意味だからやらないけど、
staticクラスは多態できない(インターフェイスも実装できないし継承関係も作れない)ので、
多態を実現するために例え状態(フィールドやプロパティ)を持たなくてもインスタンスを
作ることは理屈上はありえると思う。
私しゃーやったことありませんが
320:デフォルトの名無しさん
17/12/08 22:39:43.44 zVfb1lJX.net
>>305
staticメソッドじゃダメなの?
321:デフォルトの名無しさん
17/12/08 22:48:26.92 8QW3tG+Y.net
>>306
ところで設計じゃないよ
コーディングプランだからw
322:デフォルトの名無しさん
17/12/08 23:59:26.68 ahDNvKU9.net
>>314
ん?
何が違うんだ?
323:デフォルトの名無しさん
17/12/09 18:25:35.22 yz0yK5Nn.net
C++でゲーム作っていた者ですが
今後はC#で作っていこうと勉強しています
C++あがりのプログラマがC#で間違い易い、
ありがちなミスを教えてください。
324:デフォルトの名無しさん
17/12/09 18:46:18.09 Yi9bTbLW.net
迷わず行けよ行けば分かるさダー
325:デフォルトの名無しさん
17/12/09 18:51:16.17 DLrsngiD.net
C++とかいう高度な言語使えないから分からんにゃーい
326:デフォルトの名無しさん
17/12/09 19:05:02.00 9A22gNCm.net
>>316
ミスじゃないけどGCでイライラしそう
327:デフォルトの名無しさん
17/12/09 19:14:58.17 x4vPcfX+.net
>>316
速度最適化を気にしすぎないことかな
328:デフォルトの名無しさん
17/12/09 19:22:18.63 fpEjaZID.net
>>316
C++プログラマがC#でよくやる間違い
・クラス名の頭にCを付ける
・名前空間やメソッド名を先頭小文字にしたりアンスコ入れたりする
・using 名前空間; を恐れる
・int を System.Int32 と書きたがる
・ループ大好き
・new を嫌う
・やたらとenumを多用する
・エラーを戻り値で返す
329:デフォルトの名無しさん
17/12/09 19:26:45.34 fpEjaZID.net
あと、
・やたらとでかいクラスを作る
も追加で
C++はクラス定義が面倒なので心理的に大きなクラスを作る癖がつきがち
330:デフォルトの名無しさん
17/12/09 19:39:14.82 Avl0kHLY.net
C#はRADありきで細かい部分はちょくちょくリファレンスを読んで確認するしかない
331:デフォルトの名無しさん
17/12/09 19:42:11.92 kSf52iSg.net
>>321
> ・やたらとenumを多用する
具体的な解説Please。
C#でもよく使うと思うけど。
332:デフォルトの名無しさん
17/12/09 19:51:35.61 zCNCLFXW.net
templateの感覚でGenericを使おうとして発狂する
333:デフォルトの名無しさん
17/12/09 19:55:26.03 fpEjaZID.net
>>324
C++で多態を使うなら便利なRAIIを捨てなくてはならない(スマポを使うこともできるが、普通は可能なら避けたいと考える)
多態を使う心理的ハードルが高くなるわけだ
334:デフォルトの名無しさん
17/12/09 20:41:18.42 1hSvWs3J.net
>>319
かなり持続性を求めるアプリ?FullGCの影響くらうのって1秒くらいだよね?
335:デフォルトの名無しさん
17/12/09 20:44:23.80 LewaYlvd.net
地雷原のC++を歩けるなら舗装道路のC#なんか楽勝だろと思うけど、
落とし穴があるとしたらこういう驕りかもしれんね。
C#出た頃C#によく分からん難癖付けてたのはJavaな人で、C++erはむしろ
好意的な評価の人が多かったような気がするから考えすぎかもしれんけど
336:デフォルトの名無しさん
17/12/09 20:46:31.46 kSf52iSg.net
>>326
それとenumに何の関係が?
337:デフォルトの名無しさん
17/12/09 21:10:41.34 jyWlwvil.net
>>327
1秒ももたついたらクソゲーの烙印押されと思うぞ
338:デフォルトの名無しさん
17/12/09 21:16:00.04 DLrsngiD.net
ゲーム開発かよ
339:デフォルトの名無しさん
17/12/09 21:31:07.48 kSf52iSg.net
動画でも音声でもリアルタイム処理が必要な場合は1秒でも止まると困るね。
340:デフォルトの名無しさん
17/12/09 21:36:14.68 bldOuh/e.net
10秒に一度ぐらいずつ強制gcやっときゃいいよ
341:デフォルトの名無しさん
17/12/09 21:41:11.39 LewaYlvd.net
大昔のPC-98じゃあるまいしそんな止まらないからw
何でGCの話になるといつもこうなのw
何十年前の話をしてるんだよw
342:デフォルトの名無しさん
17/12/09 21:44:43.70 CMBXHaeA.net
GCで体感できるほどもたついたことないな
343:デフォルトの名無しさん
17/12/09 21:53:25.70 fpEjaZID.net
>>329
さすがにenumと多態が結びつかないのはオブジェクト指向の理解不足
344:デフォルトの名無しさん
17/12/09 21:56:19.74 DLrsngiD.net
>>336
分からないから詳しく
345:デフォルトの名無しさん
17/12/09 22:01:20.70 bldOuh/e.net
enum継承できねーから使わねーよ
346:デフォルトの名無しさん
17/12/09 22:03:05.57 DLrsngiD.net
>>338
そういうことか
347:デフォルトの名無しさん
17/12/09 22:06:49.31 LNYXpqZE.net
んー、それでもC++の人が多用するって理由とそれがC#じゃ間違いって理由がよくわからん。
348:デフォルトの名無しさん
17/12/09 22:09:24.80 DLrsngiD.net
>>340
C++使いは多態を使いたがらないから、多態使わないならenumをなんの懸念もなく使えるから使いまくるってことかな?
349:デフォルトの名無しさん
17/12/09 22:12:55.12 CMBXHaeA.net
この流れは質問に対して必要なのか?
後今更だが
>>321
>・名前空間やメソッド名を先頭小文字にしたりアンスコ入れたりする
これは非推奨だがビルドが通るので間違いとは言えない
350:デフォルトの名無しさん
17/12/09 22:13:29.50 jyWlwvil.net
enum を継承? w
351:デフォルトの名無しさん
17/12/09 22:15:27.00 DLrsngiD.net
>>342
エラーじゃないならいいってことならそれ以外のやつも当てはまるだろ?
なぜそれだけピックアップしたんだ?
352:デフォルトの名無しさん
17/12/09 22:17:17.61 CMBXHaeA.net
>>344
他は知らん
353:デフォルトの名無しさん
17/12/09 22:20:10.10 DLrsngiD.net
>>343
クラスの中にインナーenum(?)を定義したら、そのクラス継承してもそのenumが未定義になるってことかな?
354:デフォルトの名無しさん
17/12/09 22:28:13.72 Er9Ndq7R.net
最近enumが~って言う初心者が一人紛れ込んだだけだから
相手にしなくていいよ
355:デフォルトの名無しさん
17/12/10 00:39:39.78 okOunyow.net
言語そのものの事ではないのだけど。
Windows10 の PC に入れっぱなしにしてた VS Community 2015 で C# で Webアプリ(MVC)の新規プロジェクトを作成して、
それをそのままビルド→実行するとブラウザが起動して(これは当たり前)、
サーバーエラーとなって「指定された引数は、有効な値の範囲内にありません。」て表示する&
ダイアログで「Mirosoft.VsHub.Server.HttpHost64.exeは動作を停止しました」って出ます。
HttpHost64.exeの方は連続して出てて、 KB3090034 を当てたら最初の1回だけになりました。
原因が分からないので同じような症状を経験、解決した人か心当たりのある方がいたら対処法を教えて欲しいです。
356:デフォルトの名無しさん
17/12/10 02:07:22.55 40kmfkZ7.net
これは?
URLリンク(northbrain.org)
357:デフォルトの名無しさん
17/12/10 10:45:19.56 +bg1ulUg.net
enum大好きな人多いよね
358:デフォルトの名無しさん
17/12/10 10:51:21.68 cFJQGF3i.net
処理結果表すのに文字列やint使いたくないからenum使っているけど、他に良い方法あるかな?
359:デフォルトの名無しさん
17/12/10 10:56:20.84 OKZOYtiA.net
>>351
設計の筋が悪いんだと思うよ
たとえばデータ取得処理が返すべきは成功コードorエラーコードではなく
取得したデータそのものであり、失敗したら例外を投げる
360:デフォルトの名無しさん
17/12/10 10:59:35.44 cFJQGF3i.net
ごめんなさい、例の子呼んじゃいました・・・
361:デフォルトの名無しさん
17/12/10 11:19:22.17 klwCxkV9.net
死ね
362:デフォルトの名無しさん
17/12/10 11:22:56.63 zEFqnqTD.net
質問があいまいな上に答えてもらった相手を例の子呼ばわりって何がしたいんだろう
文字列とint対応させて作りたいのならenum使うの自然だし変えようとしたらその設計変えるしかないわ
363:デフォルトの名無しさん
17/12/10 11:23:21.91 7Si01GpM.net
なんでこうも例外は嫌われなきゃいけないのか
364:デフォルトの名無しさん
17/12/10 11:24:00.35 DEQ8njbJ.net
あいつが召喚されるから
365:デフォルトの名無しさん
17/12/10 11:24:37.45 1RSLLPBx.net
>>351
オブジェクトを返せばいいよ
366:デフォルトの名無しさん
17/12/10 11:25:55.23 1RSLLPBx.net
例外を使えないならOOPやめたほうがいい
というかプログラマやめたら?
同僚からしたらすげえ邪魔なんだけど
367:デフォルトの名無しさん
17/12/10 11:27:29.98 zEFqnqTD.net
>>356
>>359
例外の話じゃなかったのに処理結果=例外なんだ
368:デフォルトの名無しさん
17/12/10 11:31:38.35 1RSLLPBx.net
>>360
一般論的に言って例外使えない子は退職して欲しいってだけだよ
>>355に対する答えは>>359で出してるでしょ
369:デフォルトの名無しさん
17/12/10 11:32:45.27 K5F4H8OZ.net
例外も内部にステータス持つなら同じことだから、要はenumのかわりにクラスを使えということなんだろう。
必ずしもそれが筋が良いとは思わんけどな。
370:デフォルトの名無しさん
17/12/10 11:36:28.15 zEFqnqTD.net
>>361
例外使えないとか使わない前提じゃないけどもう日本語通じないか
ファイルダイアログも使ったことないんだろうね
371:デフォルトの名無しさん
17/12/10 11:36:52.38 1RSLLPBx.net
>>361
>>>360
>一般論的に言って例外使えない子は退職して欲しいってだけだよ
>>>355に対する答えは>>359で出してるでしょ
安価ミス
>>355に対する答えは>>358で出してるでしょ
372:デフォルトの名無しさん
17/12/10 11:38:37.58 zEFqnqTD.net
>>364
ああごめん
アンカーまともに判断して意味不明な煽りだと勘違いしたわ
373:デフォルトの名無しさん
17/12/10 11:55:32.54 7Si01GpM.net
enumで戻り値を返した先にはswitch~case文の羅列が待っている
それは、オブジェクト指向として美しくない
とか言って見る
374:デフォルトの名無しさん
17/12/10 12:15:32.85 I3oRkg9y.net
>>350
エナム?イーナム?
375:デフォルトの名無しさん
17/12/10 12:16:06.09 fCk6aJzv.net
メソッドの結果が何種類かある
どの結果なら何をするかはメソッド自体は知らない
なのでenumを返してクライアントに判断してもらう
って理由でenumならなんの問題もない
enum switch地獄に陥るのはクライアントの実装の問題なので解消できる問題だな
イベントでもいいけどイベントは管理しにくいからできれば避けたい
376:347
17/12/10 12:24:22.81 okOunyow.net
>>349
ありがとうございます。
HttpHost64.exe のエラーダイアログは出ないんですが、「指定された引数は、有効な値の範囲内にありません。」は同じでした。
本当になんなんだろう。。
377:デフォルトの名無しさん
17/12/10 12:25:57.85 w7IPLNC5.net
そんなもん地獄でもなんでもないわw
大袈裟なやつだなw
378:デフォルトの名無しさん
17/12/10 12:42:01.80 hfoTCgp6.net
なんでEnumダメなん?.NET標準ライブラリでもよく使われてるやん
379:デフォルトの名無しさん
17/12/10 12:44:31.00 KNXh5gp+.net
補完効くから便利だもんね
switchとか全部書いてくれるし
380:デフォルトの名無しさん
17/12/10 13:02:49.80 Lqf3YhZb.net
>>366
その主張一時期流行ったけど、今になって冷静に考えると
かなり羹に懲りて膾吹いてる感がある
381:デフォルトの名無しさん
17/12/10 13:08:33.64 1RSLLPBx.net
ケースバイケース
microsoftが使ってれば万能というわけでもないし使ってなければダメというわけでも無い
382:デフォルトの名無しさん
17/12/10 13:24:00.94 TdgJU12g.net
ダメって言ってる奴の頭がおかしいだけ
enum の継承とか意味わからんし
383:デフォルトの名無しさん
17/12/10 13:31:07.35 Xq7qpXg6.net
>>375
ステートマシン作ってそのクラスを継承すると欲しくなる
384:デフォルトの名無しさん
17/12/10 13:33:07.99 1RSLLPBx.net
ダメとは言わないがコード整理するとenumが自然と消える
385:デフォルトの名無しさん
17/12/10 14:00:03.48 K5F4H8OZ.net
どこでどういうタイミングで消えるのか興味深い
386:デフォルトの名無しさん
17/12/10 14:11:52.06 1RSLLPBx.net
>>378
例えばこういう感じ
void ExternalCode(MyEnum e) {
int x = 0;
if (e == MyEnum.A) x = 1;
if (e == MyEnum.B) x = 2;
Console.WriteLine(x) }
↓
static class MyEnumEx {
public static int GetX(this MyEnum e) {
if (e == MyEnum.A) return 1;
if (e == MyEnum.B) return 2;
return 0; } }
void ExternalCode(MyEnum e) {
Console.WriteLine(e.GetX()); }
↓
class MyEnumBase {
public virtual int GetX() { return 0; } }
class MyEnumA : MyEnumBase {
public override int GetX() { return 1; } }
class MyEnumB : MyEnumBase {
public override int GetX() { return 2; } }
void ExternalCode(MyEnumBase e) {
Console.WriteLine(e.GetX()); }
387:デフォルトの名無しさん
17/12/10 14:20:47.04 K5F4H8OZ.net
ありがとう。
言いたいことはわかったけど、それって整理されたの?という疑問は残る。
この例だとenumで分岐されるのがint xという単一の値を決定する処理だけだけど、
ExternalCode() には class MyEnumEx を用意して、MyEnumを使う別の処理には
また別のclassを用意して、ってなるわけだよね。
388:デフォルトの名無しさん
17/12/10 14:23:46.87 KNXh5gp+.net
君のenumの使い方がそもそもおかしいだけで、普通はオプション的なものに使うからそうはならないだろう
389:デフォルトの名無しさん
17/12/10 14:44:45.17 1RSLLPBx.net
>>380
ならないわけだよ
MyEnumに関する責務が分散していることが問題だから整理して凝集させるわけだ
それなのに責務をまた複数のクラスに分散させてちゃ意味が無いだろう
別の場所でyを取得する処理が書かれてるなら
class MyEnumBase {
public virtual int GetX() { return 0; }
public virtual int GetY() { ... }
}
というように拡張していけばいい
390:デフォルトの名無しさん
17/12/10 14:50:12.52 o/NiMYKz.net
>>376
サブステートを定義するとかしかやりようがないような気がするけど...
enum 使わなきゃ綺麗に書けるの?
391:デフォルトの名無しさん
17/12/10 15:30:45.08 hRp3Q2MJ.net
>>369
最新の2017でないのなら専用スレで聞け
Visual Studio 2015 Part8
スレリンク(tech板)
VSは複数バージョン入れると干渉して稀に不具合起きるらしいけどその辺は自己責任
392:デフォルトの名無しさん
17/12/10 16:01:41.00 K5F4H8OZ.net
>>382
そこ集めちゃうの?という印象。
たとえば enum System.IO.FileMode のようなものを class で置き換えるとした場合、せっかく
抽象化したのに操作対象毎に異なる実装をそこに全部書くことを想定しているんだろうか。
393:デフォルトの名無しさん
17/12/10 16:32:25.95 1RSLLPBx.net
>>385
操作対象はインターフェースで分離する
FileModeはFileModeに関連する責務だけを担当する
操作対象に関する責務はFileModeには無い
394:デフォルトの名無しさん
17/12/10 16:41:37.05 1RSLLPBx.net
むろん全てのenumをオブジェクトにすべきと言ってるわけではない
ビジネスレイヤではオブジェクトにしたほうが良い場面が圧倒的に多いが
単なるフラグセットとみなしたほうが有利な場面もそりゃあるだろう
395:デフォルトの名無しさん
17/12/10 16:56:48.76 K5F4H8OZ.net
>操作対象に関する責務はFileModeには無い
だからね、例えばローカルファイルとネットワークドライブ上のファイルとで同じFileModeに対する
操作手順が異なるとした場合、それをどこに実装するかって話。
1つの class Enum に実装するのは論外として、インターフェースと実装クラスに分離するなら>>380の通り。
あるいはFileクラスに掛かる実装は class Enum 側に持たないというならenumのままでもいいじゃん、となる。
>>387
結局そうだよね。圧倒的かどうかは知らんけどw
396:デフォルトの名無しさん
17/12/10 16:57:04.47 AsjcCxkl.net
xがなにで1と2でどう違うのか分からんが
まずxをクラス(か構造体)にするべきだと思うんだが
397:デフォルトの名無しさん
17/12/10 16:59:10.81 1RSLLPBx.net
>>389
大した意味のないサンプルに深入りするの馬鹿馬鹿しくない?
398:デフォルトの名無しさん
17/12/10 17:11:04.47 QtRE0gJ3.net
ほらキチガイが湧いたwww
399:デフォルトの名無しさん
17/12/10 17:14:47.78 IOEOCVr0.net
例外も列挙体もLINQもインタフェースもイラネってかwwwwww
400:デフォルトの名無しさん
17/12/10 17:31:58.06 klwCxkV9.net
死ねで終わらせとけばいいのに相手しやがって死ね
401:デフォルトの名無しさん
17/12/10 17:55:36.64 CnpEkAKU.net
昔流行ったswitchを無くせって話は、元々はJavaみたいな関数ポインタもデリゲートも使えない言語で
ジャンプテーブルをどうやって実現するかって話(要するにいかに効率化するかって目線の話)
だったと思うんだけど、それが途中からこじつけか何か知らんけどOOP敵に美しいとか正しいって
話にすり替わった印象しかないね。
そりゃ多態使ってswitch無くした方が美しく可読的に書ける場合もあるけど、
そうじゃない場合の方が圧倒的に多い。
要するに上にも書いたけど、羹に懲りて膾を吹く類の話だよね。
今でもこういうこと言ってる人の話は真に受けちゃダメだと思う
402:デフォルトの名無しさん
17/12/10 18:11:31.06 u72ghqtY.net
enumをクラス化でシンプルにできるのはシングルのenumで状態が決まる場合
複合的な状態を持ってるとまあ理解に苦しむコードになるよ
ifとswitchのほうが読みやすく理解しやすいならそっちを使えばいい
403:デフォルトの名無しさん
17/12/10 18:13:44.60 o/NiMYKz.net
>>390
例示されたサンプルがおかしいって言われてるって言うことをそろそろ気づこうか
404:デフォルトの名無しさん
17/12/10 18:15:53.82 40kmfkZ7.net
しょーもな
首吊って死ねば?
405:デフォルトの名無しさん
17/12/10 18:30:36.92 1RSLLPBx.net
>>394
オブジェクト指向をやるならカプセル化や単一責務は基本中の基本
enum switchはそれを全部ぶち壊しにする
だからやめとけって世界中で言われてんだよ
406:デフォルトの名無しさん
17/12/10 18:39:54.73 u72ghqtY.net
それは使い方が悪いだけだよ
407:デフォルトの名無しさん
17/12/10 18:41:44.28 o/NiMYKz.net
>>398
お前の狭い世界はどうでもいい
408:デフォルトの名無しさん
17/12/10 18:45:22.58 1RSLLPBx.net
まあ初心者スレだしOOPわからんってのも仕方がないか…
何年後かには理解できてると思う
409:デフォルトの名無しさん
17/12/10 18:47:16.85 u72ghqtY.net
>>379
このコートの最初が悪くてあとが良いとは限らないと思うが
これ100個あったとして
どこぞの言語みたいに一クラス一ファイル縛りがあったら100個ファイルが必要
それに見通しが非常に悪い
switchも見通しが悪いけど100個のクラスの100メソッドを検索で渡るよりまし
410:デフォルトの名無しさん
17/12/10 18:49:15.44 u72ghqtY.net
状態によって見やすいコードはかわるけどswitch==悪はfalseだろ
411:デフォルトの名無しさん
17/12/10 18:52:06.23 40kmfkZ7.net
>>403
草
412:デフォルトの名無しさん
17/12/10 18:52:09.72 in4pjWGE.net
雑談スレか
413:デフォルトの名無しさん
17/12/10 18:55:12.88 1RSLLPBx.net
>>402
すまんがまず100このenum値って時点で設計ミスだと思うぞ
普通の業務ロジックでそんな区分分けみたことないわ
大量のenumといったらせいぜいリソースIDのラベル化とか?
そ�
414:ネんまでクラス化はしないよ なんでもクラス化するわけじゃないってなんどもレスしてるよね? まあ仮に区分が膨大な場合でもそれがビジネス上の振る舞いを持つならクラスにしたほうがいいぞ クラスにしたら見通し悪いっていうけど そりゃビジネスそのものが見通し悪いんだから仕方がないか クラスっていう保護がなければもっと悲惨なことになる
415:347
17/12/10 18:55:31.09 okOunyow.net
>>384
誘導ありがとうございます。
416:デフォルトの名無しさん
17/12/10 18:57:52.94 u72ghqtY.net
もともと責務と言いながら
状態を伝えるだけのenumをクラスに拡張しちゃって責務の内容を広げっちゃって
保守性を落としてるんだからまだまだだね
417:デフォルトの名無しさん
17/12/10 18:59:10.78 u72ghqtY.net
>>406
1つ目と3つ目を比べると1つ目のほうがすぐれたコードだと思う
理解しやすい
それ以上優れてる理由はない
418:デフォルトの名無しさん
17/12/10 19:02:50.61 1RSLLPBx.net
enumが100個あってシステムのあっちこっちに分岐があります
仕様が変わりました値Aの仕様が変わりました
enumの場合:
システムをenumのAで検索
あっちこっちでヒットしたコードを慎重に整合性を確認しながら修正
もしかしたら見逃しがあるかもしれないと不安を抱えながら作業
Aを修正してるのに周りの他の値の場合の処理が凄まじいノイズになってめまいがする
コードが他の責務に埋め込まれてるのでテストは容易ではない
クラスの場合:
派生クラスAが定義されてるファイルを開く
1つのファイルに集中できるので楽々修正
Aに関する処理は全部このファイルにあるので見逃しも無い
他の値の処理が周りに無いのでクリアな視界で作業可能
クラスになってるのでテストは超簡単
419:デフォルトの名無しさん
17/12/10 19:07:08.35 1RSLLPBx.net
enum値が削除されたら?
新しいenum値が追加されたら?
クラス化されてないと超しんどいぞ
システムにばら撒かれたenum100個なんて管理しきれないよ
OOPの言語と開発環境ならクラス100個は楽勝で管理できるけどな
420:デフォルトの名無しさん
17/12/10 19:07:59.48 u72ghqtY.net
>>410
クラスを使うべき時は使う
そうじゃないときはswitch enumでも十分
421:デフォルトの名無しさん
17/12/10 19:09:21.56 HHgBYreh.net
enumなんて存在すら忘れてた
もうクセでデータ保持するクラス作っちゃってたわ
やっぱ固定値の列挙はenumの方がええんやろか
422:デフォルトの名無しさん
17/12/10 19:10:43.29 1RSLLPBx.net
>>412
それでいいよ
ビジネスが入り組んできたらクラスにリファクタリングすればいい
俺は最初からクラスにしてるけどね
423:デフォルトの名無しさん
17/12/10 19:13:57.59 o/NiMYKz.net
>>411
> システムにばら撒かれたenum100個なんて管理しきれないよ
enum 使ったことないのか?
なんか実務を知らないのに
URLリンク(iwa4.hatenablog.com)
とかを見て switch は悪 ⇒ enum 不要
とか拗らせてるって感じ w
424:デフォルトの名無しさん
17/12/10 19:16:05.80 KNXh5gp+.net
enumをクラスにするという考えがあることが根本的な設計のセンスの無さを感じる
425:デフォルトの名無しさん
17/12/10 19:18:31.13 u72ghqtY.net
そのenumを置き換えたクラスを使う場所が100個あって後段でそれぞれ違う処理(メソッド)が必要なら
100個のクラス*100のメソッド=10000必要になる
本当に管理しきれるのかな
記号は記号でしかないと思う
426:デフォルトの名無しさん
17/12/10 19:23:13.06 1RSLLPBx.net
君たちはさC#を使ってるけどOOPはできてないんじゃないかな?
たぶん昔ながらの手続き型のパラダイムから進歩してない
フィールドやプロパティは丸出しで
データベースの物理構造を色濃く反映したDTOを
ネストしまくり分岐しまくりのやけに長いトランザクションスクリプトで処理する
そんなコードばかり書いてるんだろ?
427:デフォルトの名無しさん
17/12/10 19:27:02.30 1RSLLPBx.net
>>417
仕切れるよ
疎結合高業務で
428:責務がしっかり分けられてるからね というかそれで管理できなかったらクラスという枠組みを失い無秩序状態になった同じ数(経験上もっと多くなるが)の処理なんて余計に管理できないだろ
429:デフォルトの名無しさん
17/12/10 19:28:10.84 RKQe6ZfS.net
>>418
キミ自身、キミの言う「昔ながらの手続き型のパラダイム」でキミの考える最強の「OOP」をしとるんやで
もう少し脳を鍛えようか?ね?
430:デフォルトの名無しさん
17/12/10 19:28:59.49 0VP/mrFZ.net
滅茶苦茶レベルの低いところで仕事してるんだろうなあってのは伝わってくる
431:デフォルトの名無しさん
17/12/10 19:29:31.44 K5F4H8OZ.net
>>419
いや、あんたの主張は疎結合どころか、enum相当のクラスに結合しまくりだろう。
432:デフォルトの名無しさん
17/12/10 19:32:15.18 1RSLLPBx.net
>>422
疎結合だよ
クラスにすればenumを使う側はenumの振る舞いの実装を知らなくていい
クラスにすればある値と他の値の処理が同じスコープで干渉しなくて済む
こんな基本もわかってないんだよなぁ
ま、初心者スレってことか
433:デフォルトの名無しさん
17/12/10 19:36:46.16 O8bRFaEo.net
\
 ̄ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
`'ー '´
○
O
,.- ‐─ ‐- 、
,r'´ `ヽ
,イ jト、
/:.:! j i.::::゙,
i:.:.:| _,, ,、--、 !:;;;;|
|;;;;j ,r''"二ヽ r'⌒ヽ !;;;!
,ヘ;;i! ,,_r ・,ン.:! {〈・_,>、,, jヘi!
〈 j>j、 "´, イ `ヽ ,':::〉!
`ゝ.`, ノ、__,入 j::rソ
`゙i / ,r===ュ, `, '.:〔_
}! ! i.:::::::::::.:! ;! .!::::j::`` ー----─r- 、
, イ.:ト、 ゙===='′ ,イ!:::::!::.:.:.:. ゙, `ヽ
_ノ /j.:::!:トヽ、 ´ ̄` ,ノ´ ,リ::::.:!:::.:.. i. \
,.r'´ /.::!:::::::| `ヽ`"""´ /ノ.:.:.:.:.::!:.:. | !
/ .:|.:.:.:::ト、 リ / !:. ! |
/ l , へ\! /'7ヽ |: j |
. / l/^ヾ:::ト、! j! l 〉、 | | . |
/ i .::| i| j! | / `ー'′ ! j! !
434:デフォルトの名無しさん
17/12/10 19:38:51.23 40kmfkZ7.net
はい!
ID:1RSLLPBxの勝ち!w
おまえらドンマイw
435:デフォルトの名無しさん
17/12/10 19:40:38.39 0VP/mrFZ.net
enumの使い所を間違えるようなレベルの人間でないと共感は得られないと思う
436:デフォルトの名無しさん
17/12/10 19:41:38.15 lTpNuF7F.net
と、中身のないレスをしてみるのであった。
437:デフォルトの名無しさん
17/12/10 19:46:34.91 YjUTAOlB.net
ステータス(状態)をクラスにしちゃうと色々と説明が必要になっちゃうけどな
もっと素直に設計できねぇの?
お前らの剣は無駄な動きが多過ぎる
438:デフォルトの名無しさん
17/12/10 19:49:25.32 +dBvFTXH.net
すみません。質問ですが、例外とエラーの違いって何ですか?
439:デフォルトの名無しさん
17/12/10 19:49:27.62 0VP/mrFZ.net
状態に複数の要素が絡んだ時、彼はどうクラスを設計するだろうか
440:デフォルトの名無しさん
17/12/10 19:51:18.85 40kmfkZ7.net
>>426
>>428
>>430
負け惜しみが見苦しすぎるw
441:片山博文MZ
17/12/10 19:52:02.61 M7uFif4k.net
例外は制御がぶっ飛ぶやつ。
エラーは、正常に処理ができなかったという意味。
442:デフォルトの名無しさん
17/12/10 19:57:13.54 NAV3AZ5L.net
状態数も20くらいまでなら把握できるが…それ以上はいやだねえ…
443:デフォルトの名無しさん
17/12/10 19:58:57.63 in4pjWGE.net
>>429
ここで言っている例外はtry-catchでcatchで受けられる処理(Application Exceptionの類)の話
そのエラーの意味が何に対するエラーなのかわからないので違いは説明できない
444:デフォルトの名無しさん
17/12/10 19:59:05.93 0VP/mrFZ.net
enumだらけの.net frameworkを、enumじゃなくてクラスにしろよなんて思いながら使ってないだろうよ
445:デフォルトの名無しさん
17/12/10 20:01:31.79 1RSLLPBx.net
>>435
ベーシックライブラリと業務システムのドメインロジックを同じ感覚で書くプログラマは居ないよ
446:デフォルトの名無しさん
17/12/10 20:04:07.99 0VP/mrFZ.net
>>436
だから普通は使い所をわかってるから、こんなこと何の議論も起こらないよねって話じゃん
447:デフォルトの名無しさん
17/12/10 20:04:55.70 40kmfkZ7.net
からからうっせーよ死ねや
448:デフォルトの名無しさん
17/12/10 20:14:56.93 1RSLLPBx.net
>>437
わかってないからなここの初心者連中
449:デフォルトの名無しさん
17/12/10 20:17:38.09 in4pjWGE.net
このスレ来ている時点でみんな初心者。スレタイに「初心者用」ってちゃんと書いてあるから
450:デフォルトの名無しさん
17/12/10 20:41:13.41 o/NiMYKz.net
初心者ならいいんだけど、初心者を卒業したと勘違いしてる ID:1RSLLPBx が痛々しいだけ
451:デフォルトの名無しさん
17/12/10 20:42:45.81 1RSLLPBx.net
今日は負け惜しみを沢山見たが反論は少なかったなぁ
452:デフォルトの名無しさん
17/12/10 20:57:11.24 gQySa/bC.net
キチガイにふれるなよ
453:デフォルトの名無しさん
17/12/10 21:46:32.27 Uujd9YQH.net
計算量の観点で比較すると
switchはコンパイラが2分探索にしてくれる場合がある O(log2(N))
クラス化はインスタンス生成された時点で仮想関数テーブルが紐付く O(1)+ディスパッチのコスト
で合ってる?
454:デフォルトの名無しさん
17/12/10 21:54:10.74 bPupZbt5.net
>>444
switch でも状況によってジャンプテーブルにしたりするんじゃね?
455:デフォルトの名無しさん
17/12/10 22:12:18.04 Uujd9YQH.net
>>445
C#はジャンプテーブルも使うみたいですね
この比較はあんま意味ない気がしてきたので閉めます
456:デフォルトの名無しさん
17/12/10 22:28:48.38 klwCxkV9.net
俺以外でここまで書き込んだ奴は明日朝一で中央線に飛び込んで死ね
457:デフォルトの名無しさん
17/12/10 22:37:53.36 8I95hEEE.net
仮想メソッド呼び出しはJITがインラインキャッシュで展開するからコストはほぼゼロのはず
458:デフォルトの名無しさん
17/12/10 22:38:00.15 /a8M7Ljd.net
>>447
板違い。メンタルヘルス板に行け
459:447
17/12/10 22:39:14.02 8I95hEEE.net
補足
展開っていってもインライン展開するわけじゃないよ
静的なメソッド呼び出しに置き換えるということ
460:デフォルトの名無しさん
17/12/10 22:54:55.63 4CvOnmGy.net
>>429
例外 ⊂ エラー
461:デフォルトの名無しさん
17/12/10 23:09:05.85 NAV3AZ5L.net
>>450
vtable を間に噛むんじゃないか?
462:デフォルトの名無しさん
17/12/10 23:13:59.68 40kmfkZ7.net
>>451
マ?
463:デフォルトの名無しさん
17/12/10 23:47:37.64 u72ghqtY.net
shapeクラスをベースに持つrectangleとcircleクラスの挙動をswitchで制御してるならOOPに反すると思うけど
確固たる概念も実体もないものをわざわざクラスにしてまでenumを消す理由はない
普通のマジックナンバー代わりの記号がenum
オブジェクト間でクラスがメッセージをenumで渡すだけ
上手に使えばいいだけ
464:デフォルトの名無しさん
17/12/10 23:56:55.90 +mi54qJj.net
あ、もうその話終わってるんで(^^;
465:デフォルトの名無しさん
17/12/11 00:02:40.94 4r/Nu0Q4.net
>>454
お前も勝利宣言しとけよ
明日以降やられてもたまらん
466:デフォルトの名無しさん
17/12/11 00:13:22.40 duNhD2vY.net
実体の無い物
467:をクラスにしたらドキュメント書けよと それだけだけどな 書かないでやってる奴はギルティ
468:デフォルトの名無しさん
17/12/11 00:24:03.35 ZlOMrHZS.net
メッセージがただの記号だったのにクラスになるとオブジェクトの生成や
必要に応じてライフタイム管理が必要になる
しかも作ったオブジェクトに処理を移譲したり他のオブジェクトを渡したりして新たなオブジェクトと結合が密になる恐れがある
そこまでしないなら記号の受け渡しで済んだものがクラスの管理が増えるだけでメリットは薄い
469:デフォルトの名無しさん
17/12/11 03:52:53.05 oxZtEftd.net
あー、そーゆーのはママに教えてあげてね
470:デフォルトの名無しさん
17/12/11 06:40:10.22 6BzZoNtD.net
>>442
そりゃ反論はガン無視だもんな w
471:デフォルトの名無しさん
17/12/11 08:32:07.64 Pz9H8j59.net
> オブジェクトの生成
状態変わらないのだからpublicなstaticメンバで持てばよい
> ライフタイム管理
そんなに気になるのならstructにすればよい
> 処理を委譲したり(最後まで)
全く意味不明
472:デフォルトの名無しさん
17/12/11 08:37:46.08 PAoZtWNN.net
一晩経っても負け惜しみ言ってるやつ居てわろた
せめて反論したらどうなの?
>>458
メッセージを列挙値で済ませようとする発想がまずチープだがまあいい
RegexOptionsみたいな場合もあるからな
問題はドメインオブジェクトを列挙値で表現してしまうケースな
昨日から議論してんのはメッセージの話じゃないんだよそもそも
君はまだそこを理解してない
473:デフォルトの名無しさん
17/12/11 08:40:03.91 Pz9H8j59.net
どうしてもenumにこだわりたいのなら
Attribute付加
拡張メソッド作る
こんな手段はある
474:デフォルトの名無しさん
17/12/11 08:44:48.49 PAoZtWNN.net
他のオブジェクトとの関連云々ってさ
べつに列挙値からオブジェクトにしたから急に関連が出てきたものじゃないんだよね
ドメインの性質としてもともと本質的に関連があるものなんだよそれは
それがオブジェクトにしたことによって可視化されただけ
列挙値のままだと関連があるのにそれがハッキリと見えず暗黙の結合状態になってるだけ
それはまさに最悪の状態だよ
475:デフォルトの名無しさん
17/12/11 08:50:22.92 DFoAuevB.net
設計書の構造に箱ができないものをクラスにするのはセンスが悪いな
こんなゴミクラスたくさん作っちゃってクラス図でどうやって説明するの?
476:デフォルトの名無しさん
17/12/11 08:56:14.04 DFoAuevB.net
汎用ライブラリにでもぶち込むならともかく
こんな枝葉までクラスにされるとソースの粒度に統一感がでない
ステータスなんかクラスにすんなよ
ドキュメント書くのが面倒くせえだろ
それはイコール他人に説明する手間が増えてることだと気づけよ
どーせドキュメント書かないんだろお前馬鹿だから
477:デフォルトの名無しさん
17/12/11 09:36:16.99 SJ7HWrxD.net
他人に説明するためのドキュメントは確かに書かないな
ソース見たほうが早いし間違いがない
ソースコードが設計書である
俺が馬鹿かどうかに関係なく、
アジャイルやGOAでやるとどこでもそうでしょ
478:デフォルトの名無しさん
17/12/11 09:38:16.34 LDcEcB6H.net
>>467
ワケのわからんソース書くやつに限ってお前みたいなこと言うのな
479:デフォルトの名無しさん
17/12/11 09:41:22.91 ibPW1Iwl.net
ちょっと昔な感じだな
今は当たり前にドキュメントを書いてる時代だと思うけど
480:デフォルトの名無しさん
17/12/11 09:43:28.23 oxZtEftd.net
はいはいご立派ご立派
481:デフォルトの名無しさん
17/12/11 09:48:35.34 kESkT9Ub.net
おはようございます。(改行大杉で怒られたので行間を詰めています。
現在押し付けられて困っていることがありご教示いただければと思っております。
環境:フレームワーク4.71 + MVCフレームワーク5OS:Wi
482:n2012 現在上記環境で動いているシステムがあり、 いくつかのリクエスト文字列と画像ファイル1つをマルチパートで受け取るシステムがあります。 今回、アンドロイド側のJAVAアプリからデータをマルチパートでPOSTしてくる予定だったのですが 時間不足で実装できないと言われ、データを以下のように送ると言ってきています。 (AndroidといえどJavaと同様なのでマルチパートのOutputStreamを作成して送ってくるだけだと思うのですが…。) 1.ファイルをバイト配列に変換 2.そのバイト配列をBase64エンコード 3.最終的にUTF-8の文字列にして通常のリクエスト文字列として送信 上記の仕様だそうです。 そこで上記の逆手順を…と思い 考えれる範囲で 1.リクエスト文字列をUTF-8バイト配列に変換 2.そのバイト配列をChar[]に変換 3.Char[]をFromBase64CharArrayでバイト配列に変換 とやってみたのですが System.FormatException: 入力は有効な Base-64 文字列ではありません。 上記例外が当然のように発生します。 単純にアンドロイド側からBase64で送ってもらえればそのままデコードできるのですが それも突っぱねられて困っています。 そもそもこの逆変換が技術的に不可能なようであれば相手側に強く言うこともできるのですが その根拠が示せず言い出せません。 1.そもそも可能なのか? 2.手順的にはどのようにするのがよいのか ヒントだけでも構いませんのでご教示いただければと思っております。 以上です。
483:デフォルトの名無しさん
17/12/11 09:54:06.70 LDcEcB6H.net
>>471
欲しい形の文字列とどう違うのか比較してみろよ
484:デフォルトの名無しさん
17/12/11 10:11:54.42 kESkT9Ub.net
>>472
ありがとうございます。
あぁ、なるほど!
該当ファイルをBase64文字列にして
その差を比較してみて両者が合うように変換していってみる
ということですね。
ちょっとコツコツやってみることにしてみます。
485:デフォルトの名無しさん
17/12/11 11:07:13.45 jHA/gkIg.net
>>471
リクエスト文字列を直接Char[]にせずバイト配列にいったん変える意味が分からない
リクエスト文字列がBASE64の文字列でなければFromBase64CharArrayは使えない
URLリンク(msdn.microsoft.com)(v=vs.71).aspx/html
486:デフォルトの名無しさん
17/12/11 12:02:38.34 0NyrcvQf.net
switchを無くせって話、WPFとかのMVVMにちょっと似てるね
どっちの場合も原理主義者が主張するような美しい理念がワークするのは、
ある一定の条件というか閾値を超える事例だけであって、それ以外の場合は
かえって可読性とか保守性とかが低下すると思うんだけど、原理主義者がそういう現実を
無視して何にでも適用可能な万能の方法みたいにごり押ししてる感がある
487:デフォルトの名無しさん
17/12/11 12:11:33.55 SaVPDOly.net
多少冗長になっても1つのルールに沿って全部書いた方が読みやすいだろ
488:デフォルトの名無しさん
17/12/11 12:12:00.53 LDcEcB6H.net
もういい加減組めちまってる奴は
次の課題を自分で探さないといけない
プログラムスキルは組めるようになったら
そこでMaxなんだよ
さっさと次の課題を探さないから
どーでもいいことが意味ありそうに思えてくる
489:デフォルトの名無しさん
17/12/11 12:58:53.47 WHbaikY8.net
>>379みたいなケースでswitchをなくせ
って言うのはそりゃそうだなって思うけど
そもそも>>379の最初の方の組み方がおかしいだけでenumの問題じゃない
それを>>379の例だけでswitchをなくせと言うならまだしもenumなくせとか言い出すから頓珍漢なことになってるだけ
490:デフォルトの名無しさん
17/12/11 13:49:25.47 jxfuchh+.net
>>743
レスありがとうございます。
相手が手順的にBASE64のバイト配列をUTF8文字列にして送ってくるようだったのでその手順が必要なのかな…と思いまして。
そもそも何故バイト配列からBASE64の文字列にダイレクトにしなかったのかと…。おもいつつです。
491:デフォルトの名無しさん
17/12/11 15:28:30.74 MTsA4uB/.net
>>471
元の仕様
1.ファイルをバイト配列に変換
バイト配列ができる
2.そのバイト配列をBase64エンコード
ファイルをBase64エンコードした文字列ができる(仕様上UTF-8でもシフトJISでも同じ)
3.最終的にUTF-8の文字列にして通常のリクエスト文字列として送信
これが何の変換かわからない(2.の理由により必要がない)
まず元の仕様を勘違いしていないか?
その上で逆手順のテストコードバグっているから不必要にややこしくなってる
492:デフォルトの名無しさん
17/12/11 15:39:40.21 FZFaQSBJ.net
ファイルをバイト配列に格納→をBase64に変換
↓
Base64をバイト配列に変換→バイト配列をファイルとして保存
493:デフォルトの名無しさん
17/12/11 15:45:33.14 MTsA4uB/.net
>>471
あとBASE64の文字列の長さは4の倍数でConvert.FromBase64CharArrayにそれ以外の長さのChar[]を指定するとエラーになる
不足分を自分で埋める('='で埋める)必要があればそれもやらないと
494:デフォルトの名無しさん
17/12/11 16:00:32.40 JAdbtKtz.net
多分UTF-8のBOMの有無でずれているんだろうな
手順がいくら増えようが不可逆になることはない
495:デフォルトの名無しさん
17/12/11 17:48:13.13 s+GYIw+B.net
>>478
誰もenum無くせとは言ってないぞ
ドメインクラスをenumで表現するなって言ってる
496:デフォルトの名無しさん
17/12/11 18:27:40.38 sMdN9sff.net
ドメインが理解出来ていないからすれ違いのままなのかな
497:デフォルトの名無しさん
17/12/11 19:55:13.88 WHbaikY8.net
>>484
お前が誰か知らんけど
>>377
> ダメとは言わないがコード整理するとenumが自然と消える
とか言ってたアホがいるって話
498:デフォルトの名無しさん
17/12/11 20:33:38.88 hCIPbzdz.net
>>486
外人?
ダメともなくせとも言ってないじゃん
499:デフォルトの名無しさん
17/12/11 20:53:07.48 WHbaikY8.net
はいはい、言葉尻にしか反論できないってことね
可哀想だな w
500:デフォルトの名無しさん
17/12/11 22:32:51.43 g6aSF5Tx.net
やれやれ
501:デフォルトの名無しさん
17/12/11 22:54:45.84 Mf9o9uwW.net
あれあれ
これは言葉尻ではない気がする
502:デフォルトの名無しさん
17/12/11 22:59:42.23 SJ7HWrxD.net
goto文をなくせの頃から何にも変わってないな
gotoをなくせ
enumをなくせ
switchをなくせ
シングルトンをなくせ
ヘルパークラスをなくせ
一応どれも正しい
間違ってはいない
でもこういうルールは別に守らなくてもいい
どうでもいいルールなんだよ
DRY原則とかOpen/Close原則とかの設計原則の方がより重要あってね
503:デフォルトの名無しさん
17/12/11 23:06:06.50 +NqpgsqU.net
どっちでもどうでもいいよ
どうせ動くんだし
テストをしっかりすればいいだけ
504:デフォルトの名無しさん
17/12/11 23:22:47.89 Mf9o9uwW.net
gotoとenumの間にはかなり差がある気がする
前方へgotoは絶対悪だから使用厳禁
ドメインのenumと同じかw
もうちょっと緩いと思うが
switchはパターンマッチとして使うのは推奨なご時勢だけどC#のswitch構文は力不足だね
505:デフォルトの名無しさん
17/12/11 23:36:59.61 izyLx6FJ.net
gotoは後方への方が凶悪だろ
前方だけに使う分にはbreakやtry-catchと大差ない
506:493
17/12/11 23:40:04.94 izyLx6FJ.net
書いてから気付いたが前方参照の意味での前方か
失礼
507:デフォルトの名無しさん
17/12/11 23:43:50.74 wiZ77PPl.net
>>491
ルールと呼ぼうが原則と呼ぼうが本質は何も変わらんよ
要するにバカの暴走を制限する為の足枷でしかないw
508:デフォルトの名無しさん
17/12/11 23:54:41.55 SJ7HWrxD.net
>>496
〇〇をなくせというルールが馬鹿にたいする足枷でしかないのは全くその通り
だから俺みたいな賢人にはどうでもいい
逆に馬鹿に設計原則は理解出来ないだろう
SOLID原則が理解出来るならそいつは馬鹿ではない
509:デフォルトの名無しさん
17/12/12 00:01:45.14 98iDbaWn.net
>>497
表面的な理解で原理主義に陥いってしまう奴は沢山いるし
本質的にそいつはバカなんだと思うよw
それは理解してないのだと言われればそれまでだがw
510:デフォルトの名無しさん
17/12/12 00:04:06.99 4TJt3MwM.net
質問と関係ないレスどこまで続けんの
相談室行けよ
511:デフォルトの名無しさん
17/12/12 00:13:24.19 Vo2kP02L.net
バカにされて色々悔しかったんだろ、察してやれや
512:デフォルトの名無しさん
17/12/12 00:26:32.44 98iDbaWn.net
抽象的な話になると必ずこういうレスがつくなw
これもバカの典型w
513:デフォルトの名無しさん
17/12/12 01:19:52.30 sZfK5OGe.net
enum不要っていう馬鹿らしい主張は全然聞かない
514:デフォルトの名無しさん
17/12/12 01:31:17.45 /hFzA9NO.net
バカスレ
515:デフォルトの名無しさん
17/12/12 01:33:06.37 lIsHmOMn.net
初心者用スレで難しい話すんなよ
俺みたいな趣味グラマーが楽しめないだろ
516:デフォルトの名無しさん
17/12/12 02:08:48.08 YqkrRdmr.net
しゅみません
517:デフォルトの名無しさん
17/12/12 02:13:45.88 5Qo60rlq.net
しゅき
518:デフォルトの名無しさん
17/12/12 05:04:47.87 Vo2kP02L.net
>>501
必ず?
今まで何度も辛い目に逢ったのかな? w
519:デフォルトの名無しさん
17/12/12 09:32:06.37 enzDDAPg.net
10年以上いたら辛いこともあるだろ
520:デフォルトの名無しさん
17/12/12 09:55:36.90 B9ezHy21.net
>>507
一晩越してもまだ悔しいんかw
521:デフォルトの名無しさん
17/12/12 13:01:20.73 55mcEBCK.net
>>509
お前がな w
522:デフォルトの名無しさん
17/12/12 21:31:34.33 CwRQgOlO.net
tensorflow+keras+c#で
エロ画像を自動分類するソフトを
作って欲しいと頼まれたんだけど
c#から出来そうですか?
参考になるサイトないですか?