ふらっと C#,C♯,C#(初心者用) Part138at TECH
ふらっと C#,C♯,C#(初心者用) Part138 - 暇つぶし2ch262:デフォルトの名無しさん
18/06/22 12:00


263::58.68 ID:fAckkxP+p.net



264:デフォルトの名無しさん
18/06/22 12:11:16.45 mIOgjjA8a.net
フラットデザインは最近はやりのユニバーサルデザインとは真逆

265:デフォルトの名無しさん
18/06/22 12:11:51.14 U+1NZIRBr.net
>>254
よさげ
とりあえずKindle版ぽちった。
ありがとう!

266:デフォルトの名無しさん
18/06/22 12:19:03.29 D0ZAUiXgM.net
第2版が出てたんだな
ステマか

267:デフォルトの名無しさん
18/06/22 14:40:02.21 +QjyPCKBM.net
ダイレクトやろ

268:デフォルトの名無しさん
18/06/22 17:59:11.25 32SF4tM80.net
むしろサードパーティマーケティング

269:デフォルトの名無しさん
18/06/22 18:01:56.90 v3P4scZFM.net
今年独り社内SEとして入社しC#を選んだ者ですが、コンストラクタをオーバーロードして引数が有るものと無いものを作りました
よくよく考えると引数が無いコンストラクタのインスタンスを作って引数有りを前提にしたメソッドをコールすると最悪例外を出してしまうのですが、これは設計不良として検討し直しでしょうか?よくある事として許容されるでしょうか?

270:デフォルトの名無しさん
18/06/22 18:07:20.69 j0bZxxMK0.net
>>260
>引数が無いコンストラクタのインスタンスを作って(コンストラクタの)引数有りを前提にしたメソッド
人に聞くまでもなく作り直さないとだめだろう

271:260
18/06/22 18:21:23.38 v3P4scZFM.net
やっぱり設計の問題ですよね
フィールドに初期値入れれば例外は起きないと思いますが、引数必須のインスタンスを作られたら無意味なメソッドが完成するというのは設計者失格ですよね

272:デフォルトの名無しさん
18/06/22 18:35:58.53 j0bZxxMK0.net
>無意味なメソッドが完成する
メソッド書き直すとかないんだ・・・
普通は条件が違えば呼ばれないようにするとかメソッド内部で分岐させるとかいろいろあると思うんだが

273:デフォルトの名無しさん
18/06/22 19:36:18.31 fkpP2SFC0.net
>>251
>寿命が尽きるタイミングは分からないでしょうか
基本的には分からない
つかキャッシュ使え
そもそもDBコネクションならほとんどの場合でドライバ側でプーリングされてると思うが

274:デフォルトの名無しさん
18/06/22 19:43:22.50 RGVBxohIa.net
>>260
設計不良は大げさ過ぎw
普通に考えて
(1) 引数ありのメソッドは廃止。代わりにそのデータはプロパティでセットできるようにする。
(2) 引数なしのコンストラクタが呼ばれた時はプロパティの値は規定値が設定されるようにする
こんだけでしょう

275:デフォルトの名無しさん
18/06/22 19:58:18.66 KB00qr+FM.net
>>264
データベース管理者から、なるべく接続を増やすなと言われてます。複数のPCから複数のアプリでアクセスするので、窓口を一本化するイメージです。
なのでプーリングはアプリ分の接続が残るので逆効果。
キャッシュを使うとは具体的にはどうするのですか?ググるヒントをもう少しください。

276:デフォルトの名無しさん
18/06/22 20:38:24.35 fkpP2SFC0.net
>>266
>複数のPCから複数のアプリでアクセスするので
それサーバ側の話?
アクセスって何に?DBにアクセスするのは誰?
つか、そもそもそれWEBサービスに同時アクセスあったときにどうする気?

277:デフォルトの名無しさん
18/06/22 20:58:02.81 atRhX3PgM.net
>>260
使う側からすると、引数に渡す値ね~よのときは、引数なしのほうがいいな。
(なしのときは null渡すとかにしたくないな。私見)

278:デフォルトの名無しさん
18/06/22 22:05:33.33 rFBnrjcr0.net
>>266
接続ユーザー分排他でもするのかよw

279:デフォルトの名無しさん
18/06/22 23:04:03.86 TC2xExz/0.net
4msのインターバルタイマを実現するのにおすすめの方法を教えてください

280:デフォルトの名無しさん
18/06/22 23:08:50.34 6eBOmsiI0.net
リアルタイムOSをインストールする

281:デフォルトの名無しさん
18/06/23 00:01:03.09 9nwowUkH0.net
USBシリアル付きマイコンから適当にパルスを送ってもらう
数百円ぐらい

282:デフォルトの名無しさん
18/06/23 00:04:23.96 4A65Q


283:ZOx0.net



284:デフォルトの名無しさん
18/06/23 00:07:55.71 OXSP1qkx0.net
>>271
CreateWaitableTimerなるものを見つけました
試してみます
>>272
URLはよ!はよ!

285:デフォルトの名無しさん
18/06/23 00:27:06.35 YVqCYnTIa.net
>>273
データアクセスのためのAPI作れば

286:デフォルトの名無しさん
18/06/23 01:52:54.43 OXSP1qkx0.net
>>272
Arduino Nano互換 でいいのね?
よーし、パパがんばっちゃうぞー

287:デフォルトの名無しさん
18/06/23 02:29:38.11 RCtrcOsy0.net
>>273
>クライアントPCからデータベースに接続します。webサービスで排他処理します。
webサービスは何をもらって何を返す気なんだ
なんにしても俺には想像もつかない方式を検討してそうだ

288:デフォルトの名無しさん
18/06/23 06:55:53.26 DOoRmJ6HM.net
>>273
webサービスの中で普通にコネクションを開いて使い終わったらすぐにDisposeすればいいよ
ライブラリがいい感じにコネクション数を調整してくれる
どうしてもマニュアルでコネクションの数を制御したいならDB要求をループで処理し続けるスレッドを走らせて、他のスレッドとはキューで連携させる

289:デフォルトの名無しさん
18/06/23 07:53:25.35 5eZj9LlZM.net
web側でmax connection pool sizeを設定するだけの話に見えるが
そういう設定が無いからどうしたらいいかって話なの?

290:デフォルトの名無しさん
18/06/23 09:10:53.59 kilEB0fc0.net
tes

291:デフォルトの名無しさん
18/06/23 11:25:15.28 kilEB0fc0.net
test

292:デフォルトの名無しさん
18/06/23 11:28:34.91 kilEB0fc0.net
fwくぇ

293:デフォルトの名無しさん
18/06/23 11:42:17.32 kilEB0fc0.net
fwq

294:デフォルトの名無しさん
18/06/23 11:44:04.15 kilEB0fc0.net
fwqef

295:デフォルトの名無しさん
18/06/23 12:01:17.59 AshQdjwf0.net
よそでやれ

296:デフォルトの名無しさん
18/06/23 12:23:56.69 RL7TWjJda.net
>>262
引数なしのコンストラクタをprivateに

297:デフォルトの名無しさん
18/06/23 17:51:20.90 RCtrcOsy0.net
>>286
それだと(外部から)引数必須なインスタンスしか作れなくなる
それが設計通りならそれでいいけど
引数必須なインスタンスと引数なしのインスタンスが同一クラスである必要あるのか疑問だ
引数なしのクラスを継承して引数ありのクラス作れば良い気がするぞ

298:デフォルトの名無しさん
18/06/23 18:04:38.51 61tHQZae0.net
引数一個で騒々しいソースコードですね

299:デフォルトの名無しさん
18/06/23 22:33:46.94 RCtrcOsy0.net
動けば良いってなら好きにすればいいさ
設計論として考えるとどうしても大仰になるのはしかたない

300:デフォルトの名無しさん
18/06/23 22:44:50.08 AshQdjwf0.net
クレデンシャルを持ってる場合だけ一部の関数が使えるとか
別に珍しい設計じゃないと思うけどね

301:デフォルトの名無しさん
18/06/24 00:05:43.76 LwX9ZOYW0.net
>>289
動けばいいことの他に何を気にしてるの?
実行速度?

302:デフォルトの名無しさん
18/06/24 00:10:47.78 tHXuj/n7a.net
ああ、なんか質問を読み違えてたけど、
要は現実の使われ方として、特定のプロパティがまったく必要とされないケースがあるってことね。
単純に考えると>>287がシンプルで分かりやすいように思うけど
ケースバイケースではあるが、一つのプロパティを追加しただけのサブクラスってのも
存在意義がはっきりしないというか、名前付けに困るようなクラスになりがちのようにも思う
コンストラクタで明示的に指定されない場合はプロパティの値が規定値としておくのが
無難なケースの方が多いと思うけどね

303:デフォルトの名無しさん
18/06/24 01:25:17.80 GW8ybopf0.net
>>291
設計論だっていってるんだから、設計の美しさだよ
美しさ�


304:フ基準は人によって違うからほとんど宗教論なんだがなw >>291 >コンストラクタで明示的に指定されない場合はプロパティの値が規定値 コンストラクタで指定するものが、プロパティで指定できるようなものなら確かにそれが一番無難 ただそれなら引数つきコンストラクタの存在意義がなぁ たんにコードが短くなるぐらいだが、オブジェクト初期化子でプロパティ設定するのと大差ない気がするし



305:デフォルトの名無しさん
18/06/24 23:01:38.61 euoTg7OM0.net
webBrowser1.documentText=hoge;
で生成したHTML中にページ内リンクがあります。
(<span id="xxx"></span>)
クリック操作をせずにこのアンカーにジャンプすることはできるのでしょうか?

306:デフォルトの名無しさん
18/06/24 23:35:19.41 +Dnac0xs0.net
webBrowser1.Document.GetElementById("xxx").InvokeMember("Click");

307:デフォルトの名無しさん
18/06/24 23:43:26.59 euoTg7OM0.net
エラーは出ないのですが、ジャンプはしてくれませんでした。
単なるアンカーなので、直接それをクリックしても意味はなくて、
<a href="#xxx">XXX</a>をクリックするようにしないとジャンプしないのではないでしょうか?
(なお、ページ内に↑を用意していないので、これをクリックすることはできません)

308:デフォルトの名無しさん
18/06/25 10:34:01.89 CeO6DCCqM.net
GetElementById(...).ScrollIntoView(...)

309:デフォルトの名無しさん
18/06/25 11:16:30.33 sIr2ygWz0.net
>>297
いけました!
ありがとうございます!

310:デフォルトの名無しさん
18/06/25 16:58:03.78 L8J9ADJ70.net
ListVIewでクリックされたアイテムのインデックスを取得するにはどうしたらいいでしょうか?
例えば、以下の画像だと、"ListSubItem 3"がクリックされた時に、1,2 (1は列,2は行)といった値を取得したいです。
URLリンク(www.planetsourcecode.com)

311:260
18/06/25 17:57:14.07 TcWThoAPM.net
引数有り無しのコンストラクタで相談した者ですが色々とご意見ありがとうございます
先輩無しの独り開発なので参考になります
何が正しいかはプロジェクトの性質に左右されそうなので突き詰めませんが、驚き最小の法則的に見ると、無意味なメソッドをコール出来るとかどんな気持ちでしょうか?
私は後々混乱しそうなので避けたいのですが、さほど驚かれないならこのまま実装しようかとも

312:デフォルトの名無しさん
18/06/25 21:33:53.83 1sQ+cvRC0.net
>>299 HitTest

313:デフォルトの名無しさん
18/06/25 21:56:47.71 lw6peYFv0.net
暇つぶしにunityでプチゲームを作ろうとしているのですが
以下のような処理をしています。
URLリンク(dotnetfiddle.net)
スキルが増えるごとにSkillFactoryとTypeToParameterに分岐が増えていってしまって
なんだかなあという感じなのですが、もうちょっとマシな方法はないでしょうか。
SkillParamが諸悪の根源のような気もしていますがほかにうまい方法がおもいつかず。。

314:デフォルトの名無しさん
18/06/25 22:01:12.17 XS6tlG59d.net
githubでC#で書かれたソースコードを見るとVisual Studioで作成したファイルが見当たらないんですが、
Visual Studioを使わないほうがいいんでしょうか?

315:デフォルトの名無しさん
18/06/25 22:10:35.49 XRDiWZAB0.net
ワークシート1のb2から空になる最終行までフォーム1のコンボボックスに入れにはどうしたらいいですか?

316:デフォルトの名無しさん
18/06/25 22:15:12.37 Bspx7Xiu0.net
>>303
VisualStudioで作成したファイルって具体的には何のこと?

317:デフォルトの名無しさん
18/06/25 22:30:53.83 QLHuH/320.net
ListでKey値が一致する要素を探


318:して 内容を更新するにはどうすればいいの ループで検索するしかない?



319:デフォルトの名無しさん
18/06/25 22:41:13.84 DXP13toJ0.net
>>306
DictionaryならともかくListでKey値って何よ

320:デフォルトの名無しさん
18/06/25 22:49:08.14 QLHuH/320.net
>>307
2次元にしてキー項目を自分で作ったのよIndex用に

321:デフォルトの名無しさん
18/06/25 23:11:47.70 cq0DHw7f0.net
KeyedCollectionクラス

322:デフォルトの名無しさん
18/06/26 09:16:48.94 UPxy/vlK0.net
なぜDictionaryにしなかったのか

323:デフォルトの名無しさん
18/06/26 09:21:11.66 A+/Pd/Nq0.net
君は何故全力を尽くしても駄目なのか

324:デフォルトの名無しさん
18/06/26 09:58:06.77 1CiOys6I0.net
object型のメンバ?の値を文字列型に代入したいのですが
どのように書けば良いでしょうか?
static void Main(string[] args)
{
var obj = new { a = "a", b = "b" };
Hoge(obj);
}
static void Hoge(object obj)
{
string fuga = obj.b.ToString(); //この書き方で怒られてしまいました
}
object型は基本のようなので、根本的な所を理解していないのかも知れませんが
よろしくお願いします。

325:初心者
18/06/26 10:22:41.47 d46l513VM.net
>>312
Hogeのobjはbを知らないから……かな?

326:デフォルトの名無しさん
18/06/26 12:16:48.98 U/nLOHiUM.net
>>312
objectをdynamicに変えるといいよ

327:デフォルトの名無しさん
18/06/26 12:22:10.81 yFHnMB/La.net
>>312
つdynamic

328:デフォルトの名無しさん
18/06/26 13:31:04.74 oxIIJc6mM.net
便乗質問していいですか?
> var obj = new { a = "a", b = "b" };
これってクラスとして扱われるんですか?

329:デフォルトの名無しさん
18/06/26 13:38:08.33 ZA95aSE/M.net
扱われるよ

330:デフォルトの名無しさん
18/06/26 14:41:15.83 yB7+BiTZ0.net
インスタンスメソッドとstaticメソッドの使い分けがいまいちわからないので教えてください
public class Hoge {
private string Name { get; } = "piyo";
public Hoge(string name) {
Name = name;
}
}
上記のようなクラスがあり、これをvar hoge = new Hoge("foo"); とインスタンス化したとして、
public bool IsPiyo(){
return Name == "piyo";
}
上記のようなインスタンスメソッドを書いて、hoge.IsPiyo()とするのと、
public static bool IsPiyo(Hoge hoge){
return hoge.Name == "piyo";
}
上記のようなstaticメソッドを書いて、Hoge.IsPiyo(hoge)とするのでは、どう違い、どちらにするべきでしょうか?
なんとなく、staticの方が入力と出力がはっきりしてるのでわかりやすいのかなと思うのですが、オブジェクト指向ではないですよね

331:デフォルトの名無しさん
18/06/26 14:59:10.81 FPh9h90J0.net
インスタンスが必要かどうか。
stringクラスのCompareメソッドとCompareToメソッドが良い例。
前者はパラメータがnullでも通るが、後者はインスタンスが無いとダメ。

332:デフォルトの名無しさん
18/06/26 15:53:58.50 B40aLJ4va.net
インスタンスメンバーを参照してないならstaticにしてる
でも必ずすべきとは思わない
仮に日本語にして考えてみる
人間クラスに "はピヨです()"メソッドをそれぞれ実装すると
if(人間.はピヨです(彼)) {~}

if(彼.はピヨです()) {~};
これを見るとstatic はおかしいと思うがstaticにすることが多い

333:デフォルトの名無しさん
18/06/26 16:01:01.51 B40aLJ4va.net
誤解を招くような書き方だけど上のHogeなら間違いなくインスタンスメソッドにする

334:デフォルトの名無しさん
18/06/26 19:39:44.60 2rJMn7sUa.net
あー、ちょっとわかってきたかもです
主語というか、意味的に、表現したい意図に近い方を選ぶ感じですかね
とりあえず今回の例で言うと、インスタンスメソッドにすることにします

335:デフォルトの名無しさん
18/06/26 22:41:11.75 oc0D76610.net
RuntimeHelpers.PrepareMethod(RuntimeMethodHandle)の挙動が理解できない・・・



336:このコードでm2にPrepareMethodを使うことは不可能ですか? == using System.Runtime.CompilerServices; class B<T> { public void M() { } } class C1 : B<int> { } class C2 : B<string> { } class Program {   static void Main(string[] args)   {     var m1 = typeof(C1).GetMethod("M").MethodHandle;     var m2 = typeof(C2).GetMethod("M").MethodHandle;     RuntimeHelpers.PrepareMethod(m1); // 問題なし     RuntimeHelpers.PrepareMethod(m2); // System.ArgumentException: '指定されたジェネリックのインスタンス化は無効です。'   } } ==



337:デフォルトの名無しさん
18/06/26 22:44:20.11 QRnSOnuU0.net
>>322
別にそんなとこ気を使っても一円の利益にもならんというアドバイスも
心の片隅においておいてくれ

338:デフォルトの名無しさん
18/06/27 06:43:38.75 ZicgrVNId.net
Cでエクセルを扱っていろいろするときはやっぱcsvにしておいた方がいいのかね?

339:デフォルトの名無しさん
18/06/27 09:40:20.28 UGstrjJ10.net
>>316
匿名型、で調べてみるといい

340:デフォルトの名無しさん
18/06/27 13:28:49.32 kZGjx8UI0.net
>>325
何をやりたいか次第だけども、
csvで完結出来るのならcsvがいい

341:デフォルトの名無しさん
18/06/27 15:48:14.07 VkL9wLVWp.net
下手にxls使うと勝手に型変換してくれるからめちゃくちゃになるんだよな。

342:デフォルトの名無しさん
18/06/27 19:05:45.76 Eyd8ciC/M.net
複数のアプリで1つのserial portを使いたくて、dllで受けて受信データによって別々のイベントを発生させ、複数のアプリに受信させようと考えました。
dll内のSerialPortをstaticで持てば共有できるかと思ったのですが、staticで宣言しても呼び出し元が別プロセスだと共有されないようですね。
何かいい手はないでしょうか。

343:デフォルトの名無しさん
18/06/27 19:33:53.09 cLV89PFx0.net
シリアルポートと通信するサーバを作って
必要な数だけクライアントを待ち受けるのが楽なんじゃないの
プロセス間通信はソケットやパイプとか適当なものを使う

344:デフォルトの名無しさん
18/06/27 20:12:38.21 4yQE+Bm50.net
>>323
コレじゃダメかい?
URLリンク(stackoverflow.com)

345:デフォルトの名無しさん
18/06/27 22:11:07.14 VkL9wLVWp.net
複数のアプリにどうやって通信データを振り分けるかの方が興味あるわ。

346:デフォルトの名無しさん
18/06/27 22:41:58.18 ezuUhY+H0.net
つ MSMQ

347:デフォルトの名無しさん
18/06/27 23:21:02.53 KXFiZVY30.net
そもそもWindowsのシリアルポートって複数のアプリで共有(同時オープン)できるのか?

348:デフォルトの名無しさん
18/06/27 23:25:13.59 YJH26+lwa.net
シリアルポートはなんかが掴んでたらだめだよね

349:デフォルトの名無しさん
18/06/27 23:39:03.37 kv/Gz/3da.net
だから質問してるんでしょw
質問者は他のアプリが占有中でも無理矢理割り込む方法を聞いてるわけじゃなく、
自作アプリの複数のプロセスで共有する方法を聞いてる

350:デフォルトの名無しさん
18/06/27 23:42:52.29 lEu9Ds2F0.net
ない

351:デフォルトの名無しさん
18/06/27 23:50:05.06 KXFiZVY30.net
だからそもそもシリアルポートは複数のプロセスで共有できないでしょって言ってるんだが
どうすべきかは>>330さんがとっくに示してるわ

352:デフォルトの名無しさん
18/06/27 23:57:16.85 kv/Gz/3da.net
馬鹿にも程があるな...

353:デフォルトの名無しさん
18/06/28 00:02:45.40 o5j8xzNra.net
言ってるんだが
いつも思うけど、こういう口調って馬鹿の間で流行ってるのかねw

354:デフォルトの名無しさん
18/06/28 00:39:46.48 M7FH9WysM.net
シリアルポートに限らずdllのstatic変数が共有できないのですが、共有したい需要ってないのでしょうか?共有したい場合はどうするのがよいのでしょうか?

355:デフォルトの名無しさん
18/06/28 01:01:35.03 wDYBzoR70.net
>>332
俺も�


356:アれが疑問だ 仮にサーバーが受けたとして どうやって俺宛か判断するんだ?



357:デフォルトの名無しさん
18/06/28 01:12:05.63 5aYb43f30.net
dllのstatic云々はおいといてメモリマップトファイルならC#でも使えたかな
C++ならデータセグメントを共有メモリにできる
どちらにしろプロセス間の排他制御が必要

358:デフォルトの名無しさん
18/06/28 01:31:16.24 o5j8xzNra.net
>>342
宛先なんかなく、単に全部のアプリに同じデータがブロドキャストされれば
十分って場合もあるでしょ
例えばシリアル経由で計測器か何かのデータが送られてくるとして、
(1) 画面表示だけするアプリ
(2) エクセルにログを保存するアプリ
(3) 計測データを使って何か他の機器を制御するアプリ
何かの都合でこんな風に複数のアプリに分けて作る必要があるのかもしれない

359:デフォルトの名無しさん
18/06/28 01:38:37.90 KZQYx/g/0.net
C#でのSelenium操作についても質問していいですか?

360:デフォルトの名無しさん
18/06/28 05:25:02.37 mpKH796a0.net
>>331
レスどうもです!下のようにして上手くいきました
こうなってくるとm1に対する方法はたまたま問題が起きないだけで
m2やm3の方法のほうが望ましいように思えてきましたがそういう認識であってますか?
==
using System.Runtime.CompilerServices;
class B<T> { public void M() { } }
class C1 : B<int> { }
class C2 : B<string> { }
class C3 : B<int> { }
class Program
{
static void Main(string[] args)
{
var m1 = typeof(C1).GetMethod("M").MethodHandle;
var m2 = typeof(C2).GetMethod("M").MethodHandle;
var m3 = typeof(C3).GetMethod("M").MethodHandle;
RuntimeHelpers.PrepareMethod(m1); // 問題なし
RuntimeHelpers.PrepareMethod(m2, new[] { typeof(string).TypeHandle }); // 問題なし
RuntimeHelpers.PrepareMethod(m3, new[] { typeof(int).TypeHandle }); // 問題なし
}
}
==

361:331
18/06/28 07:24:39.78 TtGcC5rD0.net
>>346
(確固たるソースに基づく訳じゃないので推測だけど)値型か、参照型かじゃない?
参照型の場合は TypeHandleを指定する必要がある、ってこと。

362:デフォルトの名無しさん
18/06/28 07:34:23.33 wMDqdzUG0.net
>>341
よく解らんけどdllってアプリごとにメモリに個別に展開されて初期化されるからソースコード上で同じ変数名にアクセスしても実態は違うので共有できないのは当たり前なきがする

363:デフォルトの名無しさん
18/06/28 08:01:29.47 M7FH9WysM.net
Cとかって共有されなかったっけ?よく覚えてないけど。

364:デフォルトの名無しさん
18/06/28 08:16:48.89 h/Ekqdxpa.net
されるわけないだろ
何のためにプロセスがあると思ってるんだ

365:デフォルトの名無しさん
18/06/28 09:27:13.22 9GisGdyJ0.net
ないって言ってんのにな
死ぬまで悪あがきしてればいいよ

366:デフォルトの名無しさん
18/06/28 10:06:45.02 uTPw2MsS0.net
何がしたいのか知らんけど、Win2k時代にシリアル通信のロガー作ったことある。あんときは、DLLをフックしてCreateFile,ReadFile,WriteFileのデータをトレースしたが、ハッキリ言ってやめたほうが良い。

367:デフォルトの名無しさん
18/06/28 11:08:48.44 mI3gmfcxp.net
ロガーだけならどこぞの口でforkすりゃいいだけだろ。
通信内容を振り分ける仕組みだと思ってたから無理って話してんだよな。

368:デフォルトの名無しさん
18/06/28 11:17:35.66 uTPw2MsS0.net
親がシリアル掴んで、名前付きパイプで子に振り分けるかなぁ。

369:デフォルトの名無しさん
18/06/28 12:52:45.79 q5PWc0B3M.net
>>332, >>342, >>353
受信データによって
って書いてるから何らかのプロトコル決めてて、アドレスとかポート番号とかの振分け用の情報あるんだろ
LANケーブルは1本でも複数のプロセスで共有してるのと同じ
ここまで書けばよほど頭の悪い奴でなければわかると思うが>>329が言うようなことは実現可能
URLリンク(nobikko-nobinobi.hatenablog.com)
ただC#だけでできるかどうかは知らん

370:デフォルトの名無しさん
18/06/28 12:53:45.63 q5PWc0B3M.net
>>349-351
無知自慢乙

371:デフォルトの名無しさん
18/06/28 13:12:07.43 wMDqdzUG0.net



372:同じDLLのstatic変数がそれを使ってることなるプロセス間で同じメモリの場所を参照するかってことじゃないの?



373:デフォルトの名無しさん
18/06/28 13:48:50.61 f040o02ua.net
>>356
残念だけどそれはプロセス間の共有メモリの話であってシリアルポート共有じゃないよ
シリアルポートは排他でしか開けないので他の人が書いてるようにシリアルポートをサービスで開いておくしかない
それがどのような形をとるかはいろいろある

374:デフォルトの名無しさん
18/06/28 15:13:33.45 5RaMOuHjM.net
通信量など条件にもよるけど、
シリアル受信プログラムは、データの種類によって接頭語+日時名のファイルを作る。
各アプリはファイル監視して自分用のを実行する。
とかユルイ連携にするのも手かと。同時開発しやすいしテストやトラブル対処も楽。

375:デフォルトの名無しさん
18/06/28 15:19:28.79 poFZ3+du0.net
ASP.NET CoreにはJavaの@Transactionalのような仕組みはないのですか?
DispatchProxyを使ってトランザクション管理を自前実装してますがより一般的な手段があるなら乗り換えたいです

376:デフォルトの名無しさん
18/06/28 15:21:33.85 pHy9VzUja.net
今時232C使ってるようなデバイスでそんな振り分けが必要なデータなんか送ってくる可能性は低いと思いうけどねw
I2Cとか485をエミューレートしてるとかなら知らんけど
そんなデバイス聞いたことないけどさ
アプリ作るのも、ブロードキャストして要らないデータはアプリ側で捨てる方が簡単で
保守性も高いでしょう

377:デフォルトの名無しさん
18/06/28 16:53:51.04 uTPw2MsS0.net
どーせ、RS485/LAN変換器とか絡んでるんじゃね

378:デフォルトの名無しさん
18/06/28 17:08:19.49 mI3gmfcxp.net
普通のシリアル通信にコンフリクト回避のネゴエーショ等の機能は存在しないんだが、どうするつもりなんだろうな。
RS422規格の通信にするにしても、ドライバーが対応してないと難しいよな。ハードフロー制御なドライバーにして後はハードに頑張ってもらうのかな?

379:デフォルトの名無しさん
18/06/28 17:10:29.45 mI3gmfcxp.net
あ、先に書かれてたか。

380:デフォルトの名無しさん
18/06/28 17:49:10.63 Hec9+XaU0.net
LANはシリアル通信ではないのだが・・・

381:デフォルトの名無しさん
18/06/28 18:13:18.29 q5PWc0B3M.net
>>358
>>329は受信によってイベントを発生させるとか書いてるからサービスでないといろいろ面倒だが、単にポートの読み書きを共有するだけならサービスなんていらんよ

382:デフォルトの名無しさん
18/06/28 18:17:20.09 q5PWc0B3M.net
>>361
まーた、俺の環境ではそんなデータはあり得ない(キリッ
ってか
いちいちマウント取りに来なくていいよ

383:デフォルトの名無しさん
18/06/28 18:25:00.98 hgy03eod0.net
また必死なのが沸いてるなァ

384:デフォルトの名無しさん
18/06/28 19:07:13.57 mpKH796a0.net
>>347
ありがとうございます
いろいろ試してみたところ、書いてもらった通りメソッドを宣言したオブジェクトのジェネリック型引数が
全部値型ならPrepareMethodの第2引数は要らないみたいです
でも値型と参照型が混在する場合は参照型のハンドルだけ渡せばいいというわけではなくて
値型のものも含めて渡す必要があるみたいなので、
やっぱり基本的にメソッドを宣言したオブジェクトがジェネリック型引数を持つなら
第2引数は必要と考えたほうが安全な気がします

385:デフォルトの名無しさん
18/06/28 19:15:51.58 UR04nmTq0.net
君たちマニアックすぎよ!
初心者用だぞ!

386:デフォルトの名無しさん
18/06/28 19:19:04.65 u+1Q3Zjpa.net
>>367
こういう馬鹿みるちいつも思うけど、それやってるのはお前なんだけど...
馬鹿にも程があるなほんと

387:デフォルトの名無しさん
18/06/28 19:24:04.13 q5PWc0B3M.net
>>371
>>368

388:デフォルトの名無しさん
18/06/28 19:29:53.64 u+1Q3Zjpa.net
>>372
これやるのも2chの馬鹿の特徴だよね
これ見るといつも思うが、こういう馬鹿には自分自身を見る自意識がないのかね。
お前


389:自身がやってることは何なんだw それ以前に必死だったら何なのかね。意味が分からん まるで「お前ウンコした!!!」って騒いでる中学生だけど、ガチでそのあたりで精神年齢止まってる可哀想なお方なんだろうけどね



390:デフォルトの名無しさん
18/06/28 19:35:28.68 OkcoTao20.net
>>373
>>1読め

391:デフォルトの名無しさん
18/06/28 19:36:30.54 u+1Q3Zjpa.net
232C使うようなデバイスでアドレスだのポート番号だの、振り分けが必要なケースなんかレアだろう、
(質問者もそんなこと言ってない)ってのはごく普通の感想だと思うけど、異論があるならできれば
具体例上げて反論すればいい。
マウントがどうとか中学生じみたことしか言えない馬鹿は黙ってろって
いい歳こいて恥知らずかよ

392:デフォルトの名無しさん
18/06/28 19:37:46.81 u+1Q3Zjpa.net
>>374
いう相手を間違えてるよ馬鹿
こういう馬鹿も2ch名物だな

393:デフォルトの名無しさん
18/06/28 19:41:07.48 OkcoTao20.net
>C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
読めないのは誰なのか

394:デフォルトの名無しさん
18/06/28 19:44:26.95 5xE/3ALJ0.net
slip も知らない奴にほざかれてもな
あと産業用ならRS-485はまだまだ現役
URLリンク(www.fujiele.co.jp)

395:デフォルトの名無しさん
18/06/28 19:46:09.46 wDYBzoR70.net
結局、物理的な線は一本なんだろ?
なんで他アプリ全員に配るんだ?

396:デフォルトの名無しさん
18/06/28 20:21:27.00 u+1Q3Zjpa.net
>>377
お前自身も読めてない。いってるそばから「俺だけ特別」クンか
そもそもなぜ喧嘩を売った側でなく売られた側を非難するのか
馬鹿だろお前。

397:デフォルトの名無しさん
18/06/28 20:25:36.86 u+1Q3Zjpa.net
>>379
それは愚問。
ただ、昨日から言ってるように、現実的に考えれば質問者がやりたいことは
>>344みたいな感じである可能性が一番高いと思う。
もちろん、仮想的な複数の通信チャンネルを実現したい可能性も否定はできない

398:デフォルトの名無しさん
18/06/28 20:38:08.78 9GisGdyJ0.net
「自分自身」と「馬鹿」って来たら例外を握り潰す君だから
そいつこのスレに12年いるぜ

399:デフォルトの名無しさん
18/06/28 20:40:32.24 9GisGdyJ0.net
年いくつだろ
Hagexを刺した統失くらいはあるのかなw

400:デフォルトの名無しさん
18/06/28 20:44:45.44 9GisGdyJ0.net
あとは「口調」「中学生」「精神年齢」は定番ワード

401:デフォルトの名無しさん
18/06/28 20:47:01.29 u+1Q3Zjpa.net
>>382
こいつもいつも思うけど、これで自分をおかしいと思わないんだから幸せでいいよねw
前から誰のこと言ってるのか知らんけど、この意味不明な粘着質、普通にストーカーと同じメンタルだ

402:デフォルトの名無しさん
18/06/28 20:53:26.04 u+1Q3Zjpa.net
そもそも匿名掲示板で誰かを「特定」して付きまとってやろう、って動機が理解不能だけど、
普通の人間だったらそんな動機を持つ俺って異常なんじゃないかと悩むと思うんだけど...
いや悩まなくても、多少知恵がある人間なら、それって(2chにはよくいる)負けを認めるだけの
精神的強さを持たない弱者の「精神勝利法」なんじゃないか、とか思うと思うんだけど

403:デフォルトの名無しさん
18/06/28 21:27:08.49 wMDqdzUG0.net
必死だな。

404:312
18/06/28 22:49:06.80 RNZwZaAN0.net
遅レスですがobjectをdynamicに変えて値を取る事が出来ました
こんな便利な型があるんですね
ありがとうございました

405:デフォルトの名無しさん
18/06/29 07:02:58.46 41EVR+sW0.net
動機ねえ、スレが荒れそうだからかな
俺に反応して貰って、俺が反応を無視すれば、とりあえず収まるんだよ
そう、いつものことだ

406:デフォルトの名無しさん
18/06/29 07:26:58.04 mdiAhzMH0.net
>>375
232cは物理層の規格や。今だってモデムやTNC繋げる人もいるさ。

407:デフォルトの名無しさん
18/06/29 08:53:11.26 HPFHtU9c0.net
>>329
答え出てると思うけど
プロセスは3つにする
1つのプロセスはシリアル通信のサービスを提供
他の2つはクライアントとしてシリアル通信の要求をだす
要求はQueueで排他する等で安全策取る
プロセス間通信は適当に(ipc使えば簡単かな)

408:デフォルトの名無しさん
18/06/29 08:55:21.96 HPFHtU9c0.net
>>391
あ、、、要求じゃなくてサーバーが自走して受信のイベントをクライアントに出すのか
でもそれも可能だからね

409:デフォルトの名無しさん
18/06/29 09:17:28.48 VFzCkUQ4r.net
おお、コンプリティッドタスク!!!
使ってみよう
ありがとうございました

410:デフォルトの名無しさん
18/06/29 10:32:36.67 eG0vtZS/M.net
ipcは死んだ技術なのかと思ってたけどつかってる人いるんだね
デバッグ環境ではうまくいくけど実環境でこけることが多いから最近は使ってなかった

411:デフォルトの名無しさん
18/06/29 10:33:59.19 1XSLHtbi0.net
electronでもつかうことね

412:デフォルトの名無しさん
18/06/29 12:38:26.74 8d6UIl5Q0.net
配列内の文字列がtargetStrに含まれてるかどうかを調べるコードなのですが
いまどき風な書き方ってありますか?
var words = new string[] { "ああ", "いい" };
foreach (var word in words)
{
  if (targetStr.IndexOf(word) != -1)
  {
  // hit
  }
}

413:デフォルトの名無しさん
18/06/29 12:45:50.64 iCnCbkLdd.net
>>396
Contains

414:デフォルトの名無しさん
18/06/29 13:54:50.63 6eaCpSu00.net
>>396
targetStrの中に"ああ"や"いい"が含まれている判定はIndexOfでいいんじゃね?
ループつかわないでLINQのAnyメソッドにしておくとか

415:デフォルトの名無しさん
18/06/29 13:59:23.95 6eaCpSu00.net
あ、すまん。おらの見ないでよかと。>>397見てなかったorz

416:デフォルトの名無しさん
18/06/29 16:12:15.55 tWLgdBQo0.net
まぁ、words.Any(word => targetStr.Contains(word)) ですっきり書こう、が今時?なんかなぁ?

417:デフォルトの名無しさん
18/06/29 16:54:35.36 Z9lwbPEL0.net
>>400
それ、words.Any(targetStr.Contains) でいけるよ
仮引数いらん

418:デフォルトの名無しさん
18/06/29 17:33:42.32 +TbsbPax0.net
>>400-401
URLリンク(qiita.com)
このページでは
.Where( string.IsNullOrWhiteSpace );
よりも
.Where( x => string.IsNullOrWhiteSpace( x ) );
を推奨してるけどいまいちよく分からないから詳しい議論を聞いてみたい

419:デフォルトの名無しさん
18/06/29 17:56:22.21 n04C+v3iM.net
>>402
お前は何回Where呼ぶつもりやねんと
Whereの引数に渡すデリゲートのnewがネックになるほどタイトなループでWhere呼ぶなら、明らかにその設計自体が問題
どうでもいい机上の空論だから全く気にする必要はない
通常は、そんなことよりもラムダが間に一枚入ることによるメソッド呼び出しのオーバーヘッド増加のほうが問題になる

420:デフォルトの名無しさん
18/06/29 18:01:54.20 NMkrO0hpd.net
仮引数を省略してるというより渡してるものが違うだろ。
たとえフレームワークの関数でも、関数自体は俺も渡したくはないな。
xとか付けるやつは意識してないだろうが、引数名も有意義だし。
そもそもこれぐらいならインライン展開されるだろうし。

421:デフォルトの名無しさん
18/06/29 18:06:39.91 Z9lwbPEL0.net
関数を第一級オブジェクトとして取り回したくないならLinqなんぞ使わず


422:素直にループした方がいいよ



423:デフォルトの名無しさん
18/06/29 18:31:03.18 fLw6tHLKM.net
最近はクエリスタイルも悪くないかなって思えてきた
単純に記号が減って読みやすいし
ループで書いたらネストするようなクエリを書きやすい
Effective C#でもサンプルコードにクエリ形式を使ってるね

424:デフォルトの名無しさん
18/06/29 19:20:37.69 ldv2G5QsM.net
>>404
関数型の世界では関数をそのまま渡すほうが好まれるよ
その方がより宣言的だからな
ラムダはダサい

425:デフォルトの名無しさん
18/06/29 19:30:19.44 NMkrO0hpd.net
一級オブジェクトとして関数渡してんじゃん?ラムダでも。Funcがdelegateなのが気に食わんのかな。
ダサいってのは主観的な気がする。

426:デフォルトの名無しさん
18/06/29 19:40:00.41 Z9lwbPEL0.net
あれ、主張がわからんくなってきた
関数を引数にするのはいいけど、その場合必ずラムダで無名関数作ってから渡したいって話なのか

427:デフォルトの名無しさん
18/06/29 19:42:32.14 HOtQS3nQa.net
>>408
Haskellとかやってみたらわかるぞ
関数型ワールドでは徹底的にプレースホルダを省くのがクールと見做される
理由は知らん

428:396
18/06/29 20:03:36.51 8d6UIl5Q0.net
皆様ありがとうございます!
高度過ぎて理解できてませんがContainsとLINQ any調べてやってみますm(_ _)m

429:デフォルトの名無しさん
18/06/29 20:08:45.96 MGdViK9A0.net
>>410
そこら辺は言語毎の宗教だろ
他言語を持ち出して比較するのはフェアじゃない

430:デフォルトの名無しさん
18/06/29 20:19:05.54 4EyMIKKY0.net
宗教というか、純粋関数型言語とマルチパラダイム言語で記法を比べられてもな

431:デフォルトの名無しさん
18/06/29 20:32:19.73 Z9lwbPEL0.net
>>410
ポイントフリースタイルにこだわりすぎるのはHaskell界隈でも嫌われてるから
あんま変な誤解を植え付けんでくれ
仮引数があった方がわかりやすいならつければいい
ただ今回のContainsに関してはそれでわかりやすくなる要素が見当たらないので何とも
まぁどっちでも普通に読めるから、どっちでもいいよもう

432:デフォルトの名無しさん
18/06/30 13:03:37.19 stDx+Xo5a.net
デリゲートとラムダ式は別物
メソッドにラムダ式を渡してると思って実際は変換されたデリゲートを渡してる場合もある
メソッドのシグネチャーを見てラムダ式をわたしてるのかデリゲートを渡してるのか意識すべき

433:デフォルトの名無しさん
18/06/30 13:20:07.97 wYh1ox1V0.net
やっぱりラムダ式とかデリゲートとか難しい…
>>415
メソッドに渡すのは常にデリゲートだと思ってました
ラムダ式を渡す場合とデリゲートを渡す場合、それぞれの例を教えてもらえませんか?

434:デフォルトの名無しさん
18/06/30 13:26:42.98 stDx+Xo5a.net
>>416
ちょっと書いてたことはあいまいで間違っていたが詳しく知りたいなら
c# ラムダ式 式木でググる

435:デフォルトの名無しさん
18/06/30 13:47:21.51 +7yWvOiaM.net
>>415
お前は何を言ってるんだ
ラムダ式は文法要素上はメソッドの一種
メソッドだからデリゲートに暗黙的にキャストされる

436:デフォルトの名無しさん
18/06/30 13:51:28.53 1b356axK0.net
ラムダ式を渡してるって、その日本語自体がおかしい事に気づくべき。

437:デフォルトの名無しさん
18/06/30 13:52:29.78 wYh1ox1V0.net
>>417
勉強になります
>>415 の真意は↓の中で4行目だけはコンパイルできないから気をつけましょうということですか?
Func<string, bool> a = s => string.IsNullOrEmpty(s);
Func<string, bool> b = string.IsNullOrEmpty;
Expression<Func<string, bool>> c = s => string.IsNullOrEmpty(s);
Expression<Func<string, bool>> d = string.IsNullOrEmpty;
このあたりのことがとてもあやふやなので解釈が間違っていたらぜひ教えてほしいです

438:デフォルトの名無しさん
18/06/30 15:08:20.00 d8PLC79S0.net
そんなのいいから早く完成させろよ

439:デフォルトの名無しさん
18/06/30 15:12:03.88 /Bfo044u0.net
ところで
words.Any(targetStr.Contains) とか
Func<string, bool> b = string.IsNullOrEmpty; とか
これいつからできるようになってたの?
ラムダ式導入時からできてた?

440:デフォルトの名無しさん
18/06/30 15:18:18.92 +7yWvOiaM.net
>>422
C#2.0からだからラムダより前
今では誰も使ってない匿名メソッドと一緒に入った
匿名メソッドもラムダもメソッドなので、メソッドからデリゲートへの暗黙変換がないと
匿名メソッドもラムダもデリゲートをいちいち明示的にnewしないといけなくなる

441:デフォルトの名無しさん
18/06/30 15:23:28.91 EEKpc4BGa.net
>>422
ラムダ式は関係ないよw
C#2.0からデリゲートのインスタンスを明示的にnewしなくてもよくなった
URLリンク(ufcpp.net)
words.Any(targetStr.Contains) ;

words.Any(new Func<string, bool(targetStr.Contains));
の省略記法

442:デフォルトの名無しさん
18/06/30 17:23:22.11 VzcFRgA/0.net
オマエラ、
今夜ぐらいは仕事の事を忘れて肉でも食いにいけよ

443:デフォルトの名無しさん
18/07/02 09:33:02.24 6nQmCY/K0.net
あぁそうか、そういえばそのままなデリゲートだったね
すっかり忘れてたww

444:デフォルトの名無しさん
18/07/02 21:21:17.36 btMzwCPv0.net
直撮りで申し訳ないんですが
youとenemy のHP表示→それぞれ1~9の値を引くの処理をどちらかのhpが0になるまで続けるように組んだつもりなんですが、whileより上の部分と下の部分しか反映されませんでした
どうしたら上手く処理出来るでしょうか
URLリンク(i.imgur.com)

445:デフォルトの名無しさん
18/07/02 21:25:37.50 Y9X1m4Hz0.net
>>427
>= 0

446:デフォルトの名無しさん
18/07/02 21:30:15.05 btMzwCPv0.net
>>428
なるほど、確かにこれじゃあ条件が「hpが0以下の時」になっちゃってますね 助かりましたありがとうございます!

447:デフォルトの名無しさん
18/07/02 21:36:19.75 aT7of7CF0.net
わろた

448:デフォルトの名無しさん
18/07/02 21:36:50.28 aT7of7CF0.net
微笑ましさで、ね。

449:デフォルトの名無しさん
18/07/02 21:40:16.96 gdUYHRxe0.net
>>428
=いらないんじゃないか
>>427
while (you > 0&& enemy > 0){
もしくは
while (true) {
(処理)
if (you<=0||enemy<=0) break;
}

450:デフォルトの名無しさん
18/07/02 21:43:42.29 btMzwCPv0.net
>>432
両方hpが無くならないと終わらなかったので後者を使わせて貰いました
参考になります!

451:デフォルトの名無しさん
18/07/03 19:38:57.82 uKdaL+TvM.net
スクレイピングで、xpathや属性から要素を特定取得できると思いますが、逆に属性を取得することって、できるのでしょうか?
@class=取りたい属性←この値です

452:デフォルトの名無しさん
18/07/03 19:53:05.05 obHlRFH50.net
パーサーなに使ってるか知らんけど
xpath指定で値とれるなら属性指定すればとれるでしょう

453:デフォルトの名無しさん
18/07/03 19:56:50.40 BhHhKgjH0.net
ロケーションステップの末端に
/@取りたい属性
をつければ取れるだろう
あまりこのスレとは関係ないけど

454:デフォルトの名無しさん
18/07/03 20:15:00.81 3h3fF2lx0.net
>>435
>>436
その属性を取りたいんですよ。

455:デフォルトの名無しさん
18/07/03 20:40:16.29 BhHhKgjH0.net
だからぁ
/@class
だっつうの

456:デフォルトの名無しさん
18/07/03 20:43:41.32 BhHhKgjH0.net
見直すと436の説明が悪かった

457:デフォルトの名無しさん
18/07/03 21:57:38.45 c8nUoQXQM.net
属性 "名"がほしいのか
属性 "値"が欲しいのかがわからないよな

458:デフォルトの名無しさん
18/07/04 00:07:29.57 OxUMeZjO0.net
要素の属性を全部取得する
URLリンク(hokaccha.hatenablog.com)
要素の属性を全部取得したいんだけど、 jQuery ではできないっぽい。
DOMの element.attributes を使えばいける

459:デフォルトの名無しさん
18/07/04 01:32:51.59 QI


460:UWNU3h0.net



461:デフォルトの名無しさん
18/07/04 01:43:11.66 QIUWNU3h0.net
id="→sample←"
webページ上の値じゃなくて、→←で囲ったsampleという結果がほしいんです。

462:デフォルトの名無しさん
18/07/04 04:05:11.91 /r54tfMO0.net
>>345>>434は同じ人か?
seleniumの話なら
webDriver.Url = @"URLリンク(www.seleniumhq.org)
IWebElement element = webDriver.FindElement(By.Id("promo"));
element.FindElement(By.XPath("a")).GetAttribute("id");

463:デフォルトの名無しさん
18/07/04 05:51:54.18 QIUWNU3h0.net
>>444
ありがとうございます。試してみます。

464:デフォルトの名無しさん
18/07/04 07:03:48.24 nlc5wO39d.net
C♯勉強したんだけどネットに参考になるサイトないですか?
VBAはこれで勉強してネットで使いながらそこそこは出来るようにはなりました。何かを作りながら取り敢えず基礎的仕組みを理解出来ればと思ってます。
URLリンク(for-guests.com)

465:デフォルトの名無しさん
18/07/04 07:55:26.39 zwHbS25H0.net
>>446
↓とりあえずはここかな
URLリンク(dobon.net)

466:デフォルトの名無しさん
18/07/04 08:50:06.90 oGtdQ8QA0.net
いやいや未確認飛行だろう

467:デフォルトの名無しさん
18/07/04 09:30:12.33 rFQM1K2RM.net
>>444
無事に目的を果たせました!
感謝です。

468:デフォルトの名無しさん
18/07/04 15:02:10.32 x3V5psFC0.net
PC上からC#で制御できる汎用IO製品って安いのないんかな?
Raspberry PiについてるGPIOみたいなのが欲しいんだけど

469:デフォルトの名無しさん
18/07/04 15:06:52.68 ZJ2LKM3Q0.net
デバドラの認証コストだけでも結構なお金がかかるからなぁ

470:デフォルトの名無しさん
18/07/04 15:11:38.24 BdK+b5Vga.net
Arduinoがいいよ

471:デフォルトの名無しさん
18/07/04 16:48:56.19 n4h9hTEh0.net
超面白い
URLリンク(goo.gl)

472:デフォルトの名無しさん
18/07/04 17:14:18.28 Ub7D34vBa.net
>>450
あんまり安くもないがこんなのとか
URLリンク(akizukidenshi.com)
このICの本来の用途はGPIOじゃないが、GPIOとしても使えたはず。
でも8本 + αしかないし使い方に癖があった気がする。

473:デフォルトの名無しさん
18/07/04 19:26:55.57 x1yYTdeNp.net
むしろラズパイやらArduinoとシリアル通信させてそちらのgpioに何か繋ぐ方が、安心安全いざショートしちゃったとかのアクシデントの時にも安く済むよ。

474:デフォルトの名無しさん
18/07/04 19:51:54.95 F41Mlataa.net
>>454
それシリアル
USBパラレル変換モジュールの方では?

475:デフォルトの名無しさん
18/07/04 20:05:13.89 acN7B5+I0.net
Attiny85のV-USBで遊んでるarduino互換
完成品にDigisparkってのがあるけど尼とかで数百円
URLリンク(www.amazon.co.jp)

476:デフォルトの名無しさん
18/07/04 20:23:47.96 Ub7D34vBa.net
>>456
だから
>このICの本来の用途はGPIOじゃないが、GPIOとしても使えたはず。
って前置きしてるでしょ。
確認してみたけど、ちょっと変則的だけど一応使えるよやっぱり
パラレルの方(FT245)のICもGPIOとして使えるが(こっちも本来はそういう用途じゃない。ちなみにこっちは使用経験あり)
こっちの方がちょっとだけ高価でGPIOとして使えるピン数も少ない
URLリンク(akizukidenshi.com)

477:デフォルトの名無しさん
18/07/04 21:43:30.53 rQfJfUyF0.net
>>454
取説見るとデジタルI/Oは5本みたいだが。

478:デフォルトの名無しさん
18/07/04 21:46:57.76 gFgZc5FG0.net
AWK

479:デフォルトの名無しさん
18/07/04 22:01:51.27 Ub7D34vBa.net
>>459
スレ違いだけど、このドキュメントのP3に書いてある特殊機能があるんよ
URLリンク(www.ftdichip.com)
最低8本は使える
残りのプラスアルファーがどういう風に使えるかは、たぶんドライバーのAPI
アプリケーションノートに書いてあると思うが、さすがに面倒だから読んでない

480:デフォルトの名無しさん
18/07/04 23:48:29.40 acN7B5+I0.net
FTDIのはドライバ必須だし
HIDとかで繋がるやつ揃えた方が楽だよ

481:デフォルトの名無しさん
18/07/04 23:51:36.78 acN7B5+I0.net
HIDというか標準クラスね
例えばArduino Leonardo相当であれば何にでも化けられる

482:デフォルトの名無しさん
18/07/05 09:53:48.98 4AVSF7Vxp.net
HIDって、出力ディバイスにも使えたっけ?

483:デフォルトの名無しさん
18/07/05 11:12:32.85 zf6L08GCa.net
digisparkというのを使ってたけどHIDデバイスに見えて入出力OK
昔は300円以下で送料無料で中国から買えたんだけど値上がりしちゃった

484:デフォルトの名無しさん
18/07/05 15:50:31.35 P71/Py9I0.net
C♯でMySQLを操作したいのですが楽に扱えるライブラリはありますか?
EntityFrameworkを使いたいのですがイマイチ接続できないので
一応昔にSQL書いて操作するパターンも作ったことありますが出来ればせっかくなのでやり取り楽な風にできればと思ってます

485:デフォルトの名無しさん
18/07/05 16:03:16.41 I27lRIcu0.net
LinqConnect

486:デフォルトの名無しさん
18/07/05 18:53:29.35 /h700nZmM.net
Dapper

487:デフォルトの名無しさん
18/07/05 20:00:51.78 P71/Py9I0.net
ありがとうございます
Dapperの存在忘れてましたこちら使い方少し調べてみます
LinqConnectも調べましたが環境整えるところからなので余裕ができたらこちらも調べてみます

488:デフォルトの名無しさん
18/07/05 20:12:43.80 LKNZKA8z0.net
>>464
昔からあるUSB-IOもHIDだよ

489:デフォルトの名無しさん
18/07/06 14:19:45.98 v98PP3uI0.net
教えてください
Power1とPower2はxのn乗を求める関数だそうなのですが
なぜPower2がxのn乗になるのかさっぱり分かりません
しかもPower2の方がPower1よりも効率がいいらしいです
よろしくお願いします
double Power1(double x, uint n)
{
  double power = 1;
  while (n > 0)
  {
    power = power * x;
    n = n - 1;
  }
  return power;
}
double Power2(double x, uint n)
{
  double power = 1;
  while (n > 0)
  {
    if (n % 2 == 1) power = power * x;
    x = x * x;
    n = n / 2;
  }
  return power;
}

490:デフォルトの名無しさん
18/07/06 14:26:00.38 CcG3LQ040.net
double power = 1.0;
の方が効率がいいぞ

491:デフォルトの名無しさん
18/07/06 15:02:32.12 W35a98bMa.net
>>471
高校数学やん
x^(a +b) = x^a + x^b
x^(a * b) = (x^a)^b

492:デフォルトの名無しさん
18/07/06 15:02:47.67 M3cpa2kAa.net
>>471
これでわかるか?
x^n = {
nが2で割り切れるとき x^(n/2) * x^(n/2)
割り切れないとき x^((n-1)/2) * x^((n-1)/2)
}

493:474
18/07/06 15:03:33.89 M3cpa2kAa.net
すまん訂正
割り切れないとき、はこれにxを掛けてくれ

494:デフォルトの名無しさん
18/07/06 15:04:04.87 W35a98bMa.net
>>473
ん゛?
× x^(a +b) = x^a + x^b
〇 x^(a +b) = x^a * x^b

495:デフォルトの名無しさん
18/07/06 15:31:31.99 v98PP3uI0.net
>>472
ありがとうございます
定数だけの四則演算やキャストはコンパイルの時点で行われるから
効率に影響は無いと習ったのですがこの場合は違うのですね
キャストがコンパイル時と実行時のどちらで行われるかを判断する
簡単な方法があれば教えてほしいです
>>473 >>476 ありがとうございます 指数法則が関係あるのですね これをヒントにもう一度考えてみます >>474-475 ありがとうございます 教えてもらったことをヒントに再帰を使ってxのn乗を作ってみたのですが この関数はあってますか? でも、やっぱりなぜPower2がxのn乗になるのかよく分かりませんでした double Power3(double x, uint n) {   if (n == 0) return 1;   else if (n % 2 == 0) return Power3(x, n / 2) * Power3(x, n / 2);   else return Power3(x, (n - 1) / 2) * Power3(x, (n - 1) / 2) * x; }



497:デフォルトの名無しさん
18/07/06 15:54:12.85 W35a98bMa.net
>>477
こうじゃない?
いい加減に書いたから間違ってたらごめん
double Power(double x, uint n)
{
  if (x == 0) return 0;
  if (n == 0) return 1;
  if (n == 1) return x;
  return n % 2 == 0 ? Power(x * x, n / 2) : Power(x * x, n / 2) * x;
}
要するに、
x^(a + 1) = x^a * x
x^(2 * a) = (x * x)^a

498:デフォルトの名無しさん
18/07/06 16:10:07.44 v98PP3uI0.net
>>478
ありがとうございます
そのPowerを再帰を使わずに書くと>>471のPower2になるということですか?
なんだか分かりそうな気がしてきたのでその方向でもう一度考えてみます!

499:デフォルトの名無しさん
18/07/06 16:12:36.64 W35a98bMa.net
あー直接関係ないけど、0の0乗って1でいいんだな

500:デフォルトの名無しさん
18/07/06 17:25:12.79 v98PP3uI0.net
お陰様で>>471について理解できたと思います
どうもありがとうございました!
>>480
言われてみると、>>471のPower1やPower2では0の0乗が1になりますが
>>478のPowerだと0の0乗が0になりますね
調べてみたらWikipediaに「0の0乗」というページがあって
確かに0の0乗を1と考えることが多いと書いてありましたが
それ以外の考え方もあるみたいです

501:デフォルトの名無しさん
18/07/06 17:29:05.92 Utskd+YBa.net
0乗が1以外になる考え方なんてあるんだ
単位元の1に何も掛けないんだから常に1だと思ってた

502:デフォルトの名無しさん
18/07/06 22:25:57.54 cMQzyLwk0.net
高速冪乗法でググれって感じだ

503:デフォルトの名無しさん
18/07/07 00:10:19.78 PwTdVeWu0.net
>>471の件ではどうもありがとうございました
もう一つ質問させてください
以下のPopulation1とPopulation2は同じ結果になるそうです
Population1は>>471のPower2によく似てるので
これは指数計算の変形だと思うのですが、
Population2でも同じ結果になるのが理解できません
何度もすみませんがよろしくお願いします
uint Population1(uint n)
{
  uint population = 0;
  while (n > 0)
  {
    if (n % 2 == 1) population = population + 1;
    n = n / 2;
  }
  return population;
}
uint Population2(uint n)
{
  uint population = 0;
  while (n > 0)
  {
    population = population + 1;
    n = n & n - 1;
  }
  return population;
}

504:デフォルトの名無しさん
18/07/07 00:10:35.11 PwTdVeWu0.net
>>482
確かにWikipediaによれば
半群Sが単位元1をもつならSの元aの0乗は1になるので
Sが零元0ももつなら0の0乗は1になるそうです・・・なんのこっちゃw
>>483
ありがとうございます
Power2はちゃんとした名前のついたアルゴリズムだったんですね
この分だとPopulation2にも名前がついてそうですが
それらしい情報を見つけることができなかったので
もしご存知だったら教えてもらえると嬉しいです

505:デフォルトの名無しさん
18/07/07 00:33:06.38 cboIXbsqa.net
>>484
面白いねw
要は1が立ってるビットの数を数えてるわけだと思うけど、
Population2の方は
>n = n & n - 1;
これやると1が立ってる最下位ビットが消えるんだなw
名前は知らないごめんね

506:デフォルトの名無しさん
18/07/07 00:57:48.65 PwTdVeWu0.net
>>486
ありがとうございます
ビット演算については分かってるつもりだったのに全然でした・・・
ヒントを貰って下のようなプログラムを試してみたら
確かに最下位ビットが順に消えていって感動です
uint n = 4649;
while (n > 0)
{
  Console.WriteLine(Convert.ToString(n, 2));
  n = n & n - 1;
}
【実行結果】
1001000101001
1001000101000
1001000100000
1001000000000
1000000000000
でも結局n = n & n - 1;で最下位ビットが消える理由が
理解できていないのでもう少し考えてきます

507:デフォルトの名無しさん
18/07/07 01:08:23.64 cboIXbsqa.net
>>487
デクリメントした時、
(1) ボローが発生しなくなる


508:桁(つまり、最下位の1の桁)はデクリメントの前は1、後は0 (2) その下位の桁はデクリメントの前は0、後は1 (3) 上位の桁の値は変わらない なんだから、前後の値の論理積は必ず最下位の1まで0になる



509:デフォルトの名無しさん
18/07/07 01:35:58.15 PwTdVeWu0.net
>>488
とてもわかり易い説明ありがとうございます!お陰様で理解できました
実はこの説明を読むまでn & n - 1は(n & n) - 1という意味だと思ってて、
それならn - 1と同じじゃないのかと思いながらも
トンチンカンなことを言ってしまうのが怖くて黙ってたのですが、
こんなことなら変なプライドは捨ててさっさと疑問をぶつければよかったです
この問題を考えていて、少しビット演算に慣れてきた気がします
使い道があるかどうかは分かりませんが、
n = n & ~(n - 1);だと逆に最下位ビット以外を消すことができるんですね
とにかく、どうもありがとうございました

510:デフォルトの名無しさん
18/07/07 01:57:17.51 PwTdVeWu0.net
今更ですがPopulationってビットの人口ってことだったんですね・・・
Wikipediaにもページがバッチリありました
URLリンク(en.wikipedia.org)

511:デフォルトの名無しさん
18/07/07 07:04:40.39 jG1Ln0tj0.net
すいません
Pawar はx^nですか

512:デフォルトの名無しさん
18/07/07 18:20:25.33 xch9dzoq0.net
C#で予め用意されているクラス(Mathなど)のソースコードを見ることは可能ですか?
勉強がてら、どんな風に書かれているのか見てみたいのですが・・・

513:デフォルトの名無しさん
18/07/07 18:25:45.35 30ihGmDyM.net
>>492
ここにある
ちなみにMathは大部分が直接CLRに組み込まれていてC++で実装されているからあまり参考にはならんぞ
URLリンク(github.com)

514:デフォルトの名無しさん
18/07/07 18:28:37.54 cyf+ZGJha.net
そっち?

515:デフォルトの名無しさん
18/07/07 18:35:29.39 nZLHvKy0a.net
さすがに今更 Reference Sources は時代遅れだろ
Coreの方がコンパクトに纏まっててわかりやすいし、コピペしても捕まらないし

516:デフォルトの名無しさん
18/07/07 21:12:55.79 gKVOSzfp0.net
他人の書いたライブラリとか使おうと思っても仕様書もどう読めばいいかあまりわからなくて
いつも他人様の書いたコード見てやっとなんとなく使い方理解できてるんですが
サラサラかける人はどういう見かたしてるんですか?サンプル見てメソッド見ればもうわかるのですか?

517:デフォルトの名無しさん
18/07/07 21:24:10.82 Sa3mysoT0.net
>>496
ソースのメソッド見て中身理解するのは仕様書読むよりも難しくないか
メジャーなライブラリなら例を書いているサンプルがネット上にいっぱいあるし
そうでなくてもある程度自分で試しながら理解したらいいと思うが

518:デフォルトの名無しさん
18/07/07 21:27:00.32 30ihGmDyM.net
>>496
サンプル見ればだいたい分かるよ
お前も新しいフリーソフトとかWebサービスとか使うときマニュアル見なくてもだいたい分かるだろ?
それでお前の母ちゃんや友人に何で分かるのか聞かれて何て答える?
それと同じことで、経験を積むとパターンやライブラリの作者の考えが読めるようになってくる

519:デフォルトの名無しさん
18/07/07 22:41:26.27 E0dVopgVM.net
簡単だよ
こういう処理がしたいならメソッドにこういう文字列が含まれてるはずだよな
インテリセンスカチャカチャほらみろ有ったぞ
次は引数をドキュメントコメントで調べて入力
コンパイルエラー消えたよしこれでオッケー
ビルドして起動したら…はい動いたおわり
だいたいこんな感じ
今はライブラリも開発環境も優秀すぎて楽だよほんと

520:デフォルトの名無しさん
18/07/07 22:50:08.17 paMTBjoR0.net
右クリックして定義見ればよくね?

521:デフォルトの名無しさん
18/07/07 23:30:31.81 iY8uTCL40.net
LINQ使った最近のデザパタ紹介しているサイトや書籍ってある?
どこもなんか古いコードで

522:デフォルトの名無しさん
18/07/07 23:40:48.02 Xo0ZcSzF0.net
>>501
誰も使ってネーからって気づけw

523:デフォルトの名無しさん
18/07/08 00:27:29.44 7kODHcAp0.net
>>501
linqの古いコードって、例えばどんなん?ラムダ使ってない奴のことかな?

524:デフォルトの名無しさん
18/07/08 00:45:39.18 ijnRC5hf0.net
>>503
日本語

525:デフォルトの名無しさん
18/07/08 02:13:34.73 8SSmHvWN0.net
性懲りもなくよう相手にするなあこのクサレ脳みそども

526:デフォルトの名無しさん
18/07/08 11:15:40.05 YcDPlOAza.net
他のスレでデザパタと略す奴は例外なくクソって言う風潮があるから
その略称は使わないほうがいいw

527:デフォルトの名無しさん
18/07/09 15:36:56.63 Uwu2BFrsM.net
LinqというかDBアクセス系のパターンの事ならリポジトリパターンやイベントソーシング・CQRSあたりかな
MSの黒本 C#実践開発手法 はどうだろう
あとRxも押さえとけば

528:デフォルトの名無しさん
18/07/09 23:28:49.95 8W0J0prF0.net
名前付きパイプでプロセス間通信するとき、できるだけ遅延を小さくするためにすべきこと、したほうがいいことがありますか?

529:デフォルトの名無しさん
18/07/10 03:23:37.00 LdlDw2V90.net
ポータブルなASP.NET実行環境はありますか?
勝手にソフトインストール出来ない環境で使いたい為、Tomcatのように、設定ファイルで設定してexe起動するだけのタイプを探しています。

530:デフォルトの名無しさん
18/07/10 03:44:47.11 wzF2q8B9a.net
>>509
.NET CoreとASP.NET Core
SCDでデプロイして内蔵サーバーのKestelで動かす
CoreはMVC系なので509が知っているASP.NETとは別物かもしれないが

531:デフォルトの名無しさん
18/07/10 07:07:05.03 1Wfv3KWad.net
formが3つがあってそれぞれ仮にa,b,cとして、a,b,cの中にコンボボックスがいくつかあってaのコンボボックスの一つにエクセルをdbで読み取って?コンボボックスに値を入れました。
以降もコンボボックスに入れてくんですけど、違いがブック名とシート名でコードをまとめたい時はどこにどのように書けばいいですか?
今はform aのloadに一つ書いてます。

532:デフォルトの名無しさん
18/07/10 08:43:35.96 wzF2q8B9a.net
class Configurations { 各コンボボックスに入れるべき値をそれぞれプロパティとして定義 }
interface IConfigurationsSource { Configurations GetConfigurations(); }
class ExcelConfigurationsSource : IConfigurationsSource {
 private readonly string book;
 private readonly string sheet;
 public ConfigurationsSource(string book, string sheet) { this.book = book; this.sheet = sheet; }
 public Configurations GetConfigurations() { return Excelシートから読み取ってConfigurationsに詰めて返す(book, sheet); }
}
こういうのを作って使い回す

533:デフォルトの名無しさん
18/07/10 10:08:29.34 DQNNzOip0.net
クラスを継承して機能を共通化するのとインターフェースで共通化するのと何が違いますか?

534:デフォルトの名無しさん
18/07/10 10:27:34.35 u496riIwM.net
いろいろなレベルでの回答があるが
インターフェースはMIX可能
継承の濫用は保守困難になりがち
インターフェース意識した方が設計的にスマートな事が多い
c#8で事情は大きく変わるが

535:デフォルトの名無しさん
18/07/10 13:38:42.06 vEF725PNp.net
クラス継承は切り離せないが、インターフェースなら切り離せる。

536:デフォルトの名無しさん
18/07/10 15:17:35.18 ptn/0Y0d0.net
>>493
即レス


537:感謝です 勉強になります ありがとうございました



538:デフォルトの名無しさん
18/07/10 15:18:53.33 6gd4tcDd0.net
え、8ってどうなるん・・・

539:デフォルトの名無しさん
18/07/10 15:59:38.63 lFSMnKMw0.net
そらもうアレよ

540:デフォルトの名無しさん
18/07/10 17:43:22.36 pIJZecgId.net
おジャ魔女どれみc#

541:デフォルトの名無しさん
18/07/10 19:00:19.81 1Wfv3KWad.net
>>512
レベルが高過ぎてさっぱりです。
これはクラス追加してクラスに書く感じですかね?
クラス=VBのモジュールって感じでいいんですかね?

542:デフォルトの名無しさん
18/07/10 19:04:58.17 WX+x+qIF0.net
>>514
> c#8で事情は大きく変わるが
C#8ではnull非許容が標準になるという噂は聞いたことがあるのですが、
この話は検索してみてもなんのことを仰っているのか分かりませんでした
とても興味があるので、ぜひ詳しく教えていただけないでしょうか

543:デフォルトの名無しさん
18/07/10 21:19:40.32 vJrIcc2p0.net
>>521
インターフェースのデフォルト実装が導入されることかな。
.NET ランタイムにも手が入るそうな。

544:デフォルトの名無しさん
18/07/10 21:45:00.39 WX+x+qIF0.net
>>522
レスありがとうございます!
ただこれだけを聞くとC#8でインターフェースの価値が更に上がるように思うのですが、
>>514さんはインターフェースの価値を説かれた上で
「c#8で事情は大きく変わる」と仰っていているので、他の機能に拡充が図られるなどで
インターフェースの価値が相対的に下がると仰っしゃりたいように感じました
実際にはそういうわけではないのでしょうか?
いずれにしても、インターフェースのデフォルト実装は便利そうで楽しみです
あと、それほどいろいろと手を入れるなら、
IList<T>が共変なIReadOnlyList<out T>と反変なIWriteOnlyList<in T>を
継承するようにするとか、そういう変更もあると嬉しいな~と素人ながら思ってみたりw

545:デフォルトの名無しさん
18/07/10 22:52:33.99 uwEab9SB0.net
めっちゃ詳しいw

546:デフォルトの名無しさん
18/07/10 23:47:58.27 vJrIcc2p0.net
>>523
IWritableListとIReadableListみたいな名前ならともかく、
それじゃわざわざOnlyって強調した単語使ってる意味がなくなるから悪手だろ

547:デフォルトの名無しさん
18/07/11 00:12:23.28 08+HRZoYa.net
>>525
既にList<>はIReadOnlyList<>を実装してるんだから今更だろ。
IList<>がIReadOnlyList<>を継承できない理由は、インターフェイスメンバの明示的実装を壊すから
IList<>に宣言されてたメンバのうちIReadOnlyList<>と被るものを全部削除したとしたら、IList<>のメンバを明示的実装している既存のクラスが全滅する

548:デフォルトの名無しさん
18/07/11 00:40:08.40 OI/RESej0.net
誤解を与えてすまん
c#8でインターフェースのデフォルト実装がサポートされるので価値は高まるという認識でok
null不許容も含めて大きく変わるねえ

549:デフォルトの名無しさん
18/07/11 00:50:36.62 OI/RESej0.net
null非許容を乱暴に説明すると
参照型の変数にnullが入らないのがデフォになる。よって多くのシナリオでnull落ちになるケースが激減する。基本的にプログラミングが楽になる。
変数にnull許可する場合には明示的に宣言が必要になる。
既存のソースに対しては破壊的変更になるからコンパイルオプションとかになるんじゃないかな。

550:デフォルトの名無しさん
18/07/11 01:02:22.00 veaNU89qM.net
OOP的にも綺麗でテーブルが正規化されてればnull非許容は受け入れられるかもね
業務システムではあまり役に立たなそうだ

551:デフォルトの名無しさん
18/07/11 01:04:51.55 zbj7oPBja.net



552:>よって多くのシナリオでnull落ちになるケースが激減する。基本的にプログラミングが楽になる。 岩永氏の例の記事にもそう書いてあるが、何度考えてもこれは逆だと思うなw いわゆる「例外を握りつぶす」筋悪コードと同じ弊害をもたらすだけだろう



553:デフォルトの名無しさん
18/07/11 01:08:15.17 veaNU89qM.net
凄まじい列数でほとんどがnullのテーブル
あれをなんとかしないとアプリケーションからnullを排除することは難しい
インフラの問題だからホスト言語のちょっとした改善でどうにかなるものじゃない

554:デフォルトの名無しさん
18/07/11 01:22:37.10 OI/RESej0.net
最近の言語がそういう流れだからだろうね
DB絡みに外部結合やORM、既存ライブラリやサービスがある以上、null考慮は回避できないだろうから使い分けになるだろうね
nullまみれのテーブルも いまだにみかけるし
新規コードでサクサク組んでいくには便利やと思う

555:デフォルトの名無しさん
18/07/11 01:24:04.27 mrqtDgK70.net
>>525
レスありがとうございます
確かに、ReadOnlyという言葉がIReadOnlyList<>を継承するものにかかっていると考えると
IList<>がIReadOnlyList<>を継承するのは妙な感じですね
ただ現実として、>>526でも指摘していただいているようにList<>はIReadOnlyList<>を
実装していますので、ReadOnlyという言葉はあくまでIReadOnlyList<>自身にかかっていると
とらえてしまってもいいのかなと考えています
その現状の言葉遣いが間違っているのだから直すべきだというご主張なら、
実現可能性は私には難しくて分かりませんが、とても興味深いご意見だと思います
>>526
レスありがとうございます
書いていただいた文章を読むと、インターフェースは継承元のインターフェースと
同じ名前のメソッドを持てない、もしくはインターフェースの明示的実装に悪影響があると
考えていらっしゃるように見受けられたのですが、この部分がよく理解できなかったので
申し訳ないのですが詳しくご説明していただけるとありがたいです
>>527-528
レスありがとうございます
私の方こそ、変な深読みをしてしまい失礼しました
私は初学者なので機能の増強は単純に楽しみなのですが、
既存のソースを多くお持ちの方にとっては大幅な変更はいいことばかりでもないのですね
>>528-531
興味深いお話をどうもありがとうございます
自分からnull非許容の話を出しておいて恥ずかしいのですが、
実はこれが具体的にどういうものなのかほとんど理解できていないのです
var a = new string[1]; は許されるのか?とか、許されるならそれは
var a = new string[1] { string.Empty }; と同じ意味なのか?とか、
もしそれが正しいなら、クラス毎に Empty 的なものを用意しないといけないのか?とか
疑問は膨らむばかりです

556:デフォルトの名無しさん
18/07/11 01:52:22.43 OI/RESej0.net
シンプルなコードで良い疑問やなあ
実際導入されたら混乱しそう…
右辺のArrayがnullを許さないからコンパイラに怒られそう
初期値入れたらいけそう
もし仮にstringの規定値がemptyになる仕様になれば初期化無しでもコンパイルとおるかも
c#7系以前と同じ挙動にするなら
var a = new string[1]?;
という記述になるはず
List系使うから配列を生で使う機会は減ったけどね

557:デフォルトの名無しさん
18/07/11 01:53:31.50 OI/RESej0.net
恐ろしい子!

558:デフォルトの名無しさん
18/07/11 04:05:50.95 xb7b/JPY0.net
C#の話じゃないかもしれませんが、
LAN上の他のPCと通信するにはTCPorUDPしかないですかね?
ポート開けようとすると管理者のパスワード要求されるので
そういうのに影響されない方法があれば教えてください
サーバー上にファイル作って共有しようかとも思ったのですが
ロックとか速度とかちょっと使いにくいので

559:デフォルトの名無しさん
18/07/11 07:45:57.48 08+HRZoYa.net
インターネットに出れるんならAWSでSQSかKi


560:nesisでも使えば



561:デフォルトの名無しさん
18/07/11 08:15:13.05 RuBHX//DM.net
>>536
RAWなら好きなもの送れるでしょ

562:デフォルトの名無しさん
18/07/11 08:54:54.59 NAmdOA29M.net
ネットワークプログラミングの定石学びたいっす

563:デフォルトの名無しさん
18/07/11 09:14:18.75 RuBHX//DM.net
レイヤー無視なら
Multi-object Multi-lingual Document Intermediary の仕様書でも

564:デフォルトの名無しさん
18/07/11 09:42:14.12 DD+vdWYvp.net
>>536
TCPやUDPじゃないと関所を通れないからなぁ

565:デフォルトの名無しさん
18/07/11 10:03:35.37 /J4Azv5gd.net
ポート開けたくないな、名前付きパイプのRemotingは?
sambaのポートが開いてりゃ疎通できた気がする。

566:デフォルトの名無しさん
18/07/11 10:03:54.68 /J4Azv5gd.net
ないな→ないなら

567:デフォルトの名無しさん
18/07/11 12:51:43.31 vn5tWIshM.net
>>536
> ポート開けようとすると管理者のパスワード要求されるので
要するになんか管理者に知られずき通信したいんだろ
悪事に加担する気はない

568:デフォルトの名無しさん
18/07/11 12:56:39.30 fg0dx/vD0.net
アホか
くだらないことを書き込む前に少しは推敲しろ

569:デフォルトの名無しさん
18/07/11 13:59:27.90 cb0VPk/Kd.net
>>544
aho

570:デフォルトの名無しさん
18/07/11 16:51:29.67 xb7b/JPY0.net
ありがとうございます
まずは名前付きパイプを調べてみます

571:デフォルトの名無しさん
18/07/11 16:58:41.62 DD+vdWYvp.net
バイブにたかしとかりょうとか名前付けて愛用してんのかなぁ…

572:デフォルトの名無しさん
18/07/11 17:39:37.83 kzvuO0/N0.net
>>534
レスありがとうございます
>右辺のArrayがnullを許さないからコンパイラに怒られそう
>初期値入れたらいけそう
確かにそんな気がしますね
でもそうなると大きな配列とは相性が悪そう・・・
>もし仮にstringの規定値がemptyになる仕様になれば初期化無しでもコンパイルとおるかも
それが一番わかりやすそうですね
ただ、stringはともかくStringBuilderの規定値とかどうすればいいのかさっぱり見当がつきません
>c#7系以前と同じ挙動にするなら
>var a = new string[1]?;
>という記述になるはず
?の位置は[1]の前ですか?
まあ書き方はともかく、もしvar a = new StringBuilder[100];とすると
自動的に100個のStringBuilderのインスタンスが作られるなら、
そのような動作を望まなければ配列の要素の型はnull許容にしたほうが良さそうですね
そうすると、例えばジェネリック型を使うときにはstringのような型とStringBuilderのような型の
区別をつけたくなることもありそうですし、ジェネリック型制約に新しく
where T : immutable(intやstringは許すけどStringBuilderは許さない)が
追加されたり・・・とか妄想してみましたw

573:デフォルトの名無しさん
18/07/11 17:57:29.81 g/mYMck9M.net
プログラム素人で恐縮ですが、for文のスコープの中に変数を宣言するとメモリの無駄使いになるでしょうか?
for(;;) int hoge =1;
のような書き方です
for文に入る前に宣言した方が作法的に良いのであればそうしたいと思い

574:デフォルトの名無しさん
18/07/11 18:16:12.97 I//Y0R5O0.net
コンパイラが最適化するのじゃないか?
初心者は、そんな事を考えずに、なるべく狭いスコープで宣言した方が良い。
処理に、10秒以上掛かるのなら、その時に考えても良いけど
「Effective 何々」などの本を読むと、書いてあるかも知れないけど

575:デフォルトの名無しさん
18/07/11 18:20:39.15 L0DC21nsM.net
>>550
C系の言語では基本的に一箇所で宣言された変数はメソッド全体で一つしか作られない
C#の場合はクロージャが絡んだりすると変わってくるけど、基本的にはそういう思想で設計されてる
気にせず必要最小限のスコープで宣言せよ

576:デフォルトの名無しさん
18/07/11 18:31:22.94 vn5tWIshM.net
>>545-546
そんなレスしかできないからお前は🙅なんだよ w

577:デフォルトの名無しさん
18/07/11 18:40:26.95 sApF7MBC0.net
>>550
IL見ればあなたの悩みは全て解


578:決しますよ



579:デフォルトの名無しさん
18/07/11 20:26:56.12 DD+vdWYvp.net
あーでも>>550みたいな書き方すると突っ返されるメーカーあるよな。
無駄な作業させてるって自覚無いんだろうかなぁ

580:デフォルトの名無しさん
18/07/11 20:31:34.49 L0DC21nsM.net
>>550みたいな書き方してるコードってたいてい他の部分もクッソ汚いから、とりあえず突き返すのはわりと賢明なやり方

581:デフォルトの名無しさん
18/07/11 20:35:01.60 DD+vdWYvp.net
スコープ毎にスタック操作なんかしないし、汚くてもオプティマイズされたら面影も無いし、イジメでしか無い罠

582:デフォルトの名無しさん
18/07/11 20:39:44.95 sCxl2UHN0.net
>>549
このレスからにじみ出る頭のよさ

583:デフォルトの名無しさん
18/07/12 00:31:45.14 07VYm5500.net
var すら毛嫌いされちゃうとこなのでコードレビューなんかやったらストレスで禿げるわ

584:デフォルトの名無しさん
18/07/12 01:31:48.84 Mt10qC0c0.net
それぞれのコーディング規約に従えばいいんじゃないですか

585:デフォルトの名無しさん
18/07/12 02:20:50.58 uvVknaw70.net
>>555
さすがに>>550のコードは例としてはあれだが
C#でforの中でしか使わん変数をforの外で定義しろと?
どんなメーカーだよ。つかメーカーってなんのメーカーだよ

586:デフォルトの名無しさん
18/07/12 05:53:25.42 ddTdn7l60.net
C#8のデフォルトインターフェースメソッドって、
インターフェースでほぼコーディングを終わらせてしまうことも可能、
って解釈で良いのかな。

587:デフォルトの名無しさん
18/07/12 06:34:40.79 0C7UQQhF0.net
クエリとlinqとlinqToXmlの違いがなにかよくわからないです
これらはなんですか
クエリはfromやselectとか思ってたのですが
"from a ~ select a"も "XXXXXX.Select(~)" の両方ともクエリ?
linqの中にクエリがある感じですか?
用語の違いを知りたいです

588:デフォルトの名無しさん
18/07/12 06:53:16.73 TSQ/qQegM.net
>>561
C組込上がりが閑職で社内システムを任されるとありそう
関数の先頭で宣言しろ宣言

589:デフォルトの名無しさん
18/07/12 07:09:00.83 8dshyEbGd.net
>>563
メソッド式とクエリ式でググれ

590:デフォルトの名無しさん
18/07/12 07:38:41.95 VF8Jnm1rH.net
NumericUpDownで、ホイール下回転で値をUpさせる方法ないですか?

591:デフォルトの名無しさん
18/07/12 08:08:47.97 CB78gZS5M.net
>>562
ライブラリ実装者が破壊的変更の影響を最小化
細かいパフォーマンスを最適化
するためのものなので乱用しないで
拡張やダイヤモンド継承による名前の重複など問題はまだ残ってる

592:デフォルトの名無しさん
18/07/12 09:04:57.23 FtAr8eR70.net
>>553
管理者のパスワードって、単なるスーパーユーザーのパスワードのことだろきっと

593:デフォルトの名無しさん
18/07/12 12:49:07.46 96DaRN210.net
だったらなんなんだよ

594:デフォルトの名無しさん
18/07/12 15:12:12.67 iIGcGb6Z0.net
久しぶりにまたC#勉強してみようかと思ってるんだけど
最近の動向ってどうなの?雑誌でもあまり見かけなくなったけど

595:デフォルトの名無しさん
18/07/12 15:52:53.09 Yg7MNvpld.net
さあ、プログラミングの雑誌読んでる奴は最近少ないでしょ
プログラミング情報は基本ネットだからな

596:デフォルトの名無しさん
18/07/12 16:16:23.83 S+gZjDN60.net
>>570
マイクロソフトはAndroidのアプリC#で作る環境起こしたり結構力入れてる

597:デフォルトの名無しさん
18/07/12 16:37:53.91 iIGcGb6Z0.net
>>572
へえ~そうなんだ
金のにおいプンプンするね

598:デフォルトの名無しさん
18/07/12 16:40:31.97 iIGcGb6Z0.net
そういえばWindowsフォンとかいうのもあったね

599:デフォルトの名無しさん
18/07/12 16:45:06.48 Mt10qC0c0.net
>>572



600:iOSもな



601:デフォルトの名無しさん
18/07/12 17:23:36.80 S4vKnl6/d.net
雑誌とか書籍とか、本屋の棚を見てると勢力図が判るね。
Python強い。

602:デフォルトの名無しさん
18/07/12 17:25:15.60 PtJZmudoM.net
MVC使ってるんですが、アルゴリズムをSQLに書くのは邪道でしょうか?
Modelを用意している時点でC♯でアルゴリズムを書くのが正攻法なのかなという気がして
でもクエリにある程度書いた方がパフォーマンスは良さそうで悩んでいます

603:デフォルトの名無しさん
18/07/12 19:07:16.04 MbhSnhO70.net
>>566
NumericUpDownの派生コントロールを作ってOnMouseWheelを書き換える
方法 : 既存の Windows フォーム コントロールから継承する
URLリンク(docs.microsoft.com)
コード例
public class NumericUpDownEX : NumericUpDown
{
protected override void OnMouseWheel(MouseEventArgs e)
{
  if (null == e) return;
  decimal m = this.Value;
  int a = e.Delta > 0 ? -1 : 1;
  m += a * this.Increment;
  m = m > this.Maximum ? this.Maximum : m;
  m = m < this.Minimum ? this.Minimum : m;
  this.Value = m;
}
}

604:デフォルトの名無しさん
18/07/12 19:39:16.71 5nesTxgP0.net
どうでもいいことだけどEventArgsがnullで渡ってくるケースってあるの?

605:デフォルトの名無しさん
18/07/12 20:09:54.21 yTzbc7hIM.net
>>577
邪道です
ビジネスロジックがSQLを侵食すると保守性が下がりスパゲティクエリが量産されます
結果的にパフォーマンスも劣悪なものとなるでしょう

606:デフォルトの名無しさん
18/07/12 21:06:22.46 uvVknaw70.net
そのSQLはどこに書かれているのだね

607:デフォルトの名無しさん
18/07/13 06:58:05.36 DDbEgWasM.net
SQLはクエリ管理クラスでC♯で管理してます
ストアドで書かれてたらC♯がどうこういう話では無いですね
つかストアドは世間様の開発では一般的なのでしょうか
改修に弱そうなイメージがありシステム構成の検討任されたら自分なら選択しなさそうですけど

608:デフォルトの名無しさん
18/07/13 08:21:33.93 KJTjy0eMM.net
ビジネスロジックをストアドに集めるってのは
見たことあるなぁ。
既存言語はFEP構築だけに使う。
どちらかに徹底してりゃ良いんじゃね。鼻ホジ

609:デフォルトの名無しさん
18/07/13 12:34:59.94 p9f6lddDD.net
>>583
システムのリプレイスとデータベースのリプレイスのどちらが多いかだよな
後者でストアド依存は死ねると思う

610:デフォルトの名無しさん
18/07/13 14:43:56.67 0KYXvOut0.net
DBのバージョンアップじゃなくてリプレイスで
システムをリプレイスしない案件なんてほぼ考えられん

611:デフォルトの名無しさん
18/07/13 15:22:59.85 r56MKyepM.net
可能な限り全部SQLでいいよ
多くの場合SQLの方が圧倒的に簡潔だしテストも容易だし
ストアドは管理が面倒だし見通しも悪いからソースに書きたいが

612:デフォルトの名無しさん
18/07/13 16:31:35.87 JMEmIQPoM.net
SQLに書いてもいいけどシステムが死ぬまで面倒を見て、他のメンテナーに迷惑をかけないでくださいね

613:デフォルトの名無しさん
18/07/14 14:54:07.96 pS7j55swr.net
データベースにSQLite使ってるんだけど、データ量が増えたらSELECTがクッソ重くて無反応になる
無料でもっとまともなDBってないかな?

614:デフォルトの名無しさん
18/07/14 14:57:09.03 8JxBJ14s0.net
そもそもインデックスとか
ちゃんと使ってるのかね

615:デフォルトの名無しさん
18/07/14 15:00:44.83 pS7j55swr.net



616:もちろん



617:デフォルトの名無しさん
18/07/14 15:02:50.58 LIsDU/xsM.net
PostgreSQLだな

618:デフォルトの名無しさん
18/07/14 15:06:32.58 EtwCAyCb0.net
C#から使うならSQLServerでしょ

619:デフォルトの名無しさん
18/07/14 15:26:32.37 pS7j55swr.net
どちらも無料なの?

620:デフォルトの名無しさん
18/07/14 15:40:56.72 jYJ6FXN8a.net
>>579
nullで渡すと

621:デフォルトの名無しさん
18/07/14 15:44:26.58 3U2LRmJo0.net
標準ライブラリのことでは?

622:デフォルトの名無しさん
18/07/14 16:03:24.84 DkLuqI8LM.net
プライベートの開発ではpostgresql一択

623:デフォルトの名無しさん
18/07/14 16:12:40.69 XotIEGF50.net
>>588
データ量がどのくらい増えたとかテーブルのスキーマ構成とかSELECT文みてみないとなんとも言えんな
DBMS変えたら劇的に変わるもんでもないし

624:デフォルトの名無しさん
18/07/14 16:56:06.37 pS7j55swr.net
>>596
売るアプリだから無料のがよい
>>597
すまんすまん
indexの順番変えたらかなり改善した
複合indexを先に設定して、その後単一index作ってた
これを入れ替えた感じ

625:デフォルトの名無しさん
18/07/14 16:57:19.10 pGWO+29la.net
無料ならSQLServerはかなり制限がある
PostgreSQLは完全に無料で、性能・機能とも圧倒的に上
SQL ServerはWin上でGUIでお手軽に運用できるしMS製品で完結するのでドカタには愛されてる

626:デフォルトの名無しさん
18/07/14 16:59:28.09 3U2LRmJo0.net
俺はデータをカテゴリに分けてそれぞれに専用のテーブルを用意して振り分けて高速化したことある

627:デフォルトの名無しさん
18/07/14 17:06:29.29 zT+O/n6K0.net
PostgreとMySQL比べるとどんな感じ?

628:デフォルトの名無しさん
18/07/14 17:06:52.80 bK14KKak0.net
>>599
かなりって例えば?
ストアドも使えるしDBサイズも10GBまで使えるし基本問題ないっしょ。サイズ超えそうになったらバックアップDBとしてアーカイブすりゃいいしね。C#ならSQLServerがいいよ

629:デフォルトの名無しさん
18/07/14 17:09:02.22 zT+O/n6K0.net
俺もSQLServer使ってたけど10GB制限がキツイし全てのレコードを読めないと不都合だから別のDB探してたけどMySQL使おうかと思ってたところだった

630:デフォルトの名無しさん
18/07/14 17:18:11.14 DkLuqI8LM.net
MySQLは共通テーブル式が使えなくて捨てた

631:デフォルトの名無しさん
18/07/14 17:25:20.01 FtH+pgzSM.net
>>601
最近はPostgreSQLも盛り上がってるね
PostgreSQLは機能が非常に豊富で極めて柔軟、非定形データだろうが地理空間情報だろうが何でも扱える
ライセンスもMySQL(GPL)より緩い

632:デフォルトの名無しさん
18/07/14 17:25:32.60 pS7j55swr.net
>>599
まじか
postgreに変えようかな
>>602
10GBならかなり余裕あるね
ならSQLServerも良いかなあ
MySQLはWebアプリではよく使ってるけど
そもそもわかってないことがあるんだけど、SQLってSQLサーバーで動いてるわけじゃん?
SQLite以外はWinFormアプリで作ったアプリだけで動かないの?
SQLアプリみたいなのが生成されるの?

633:デフォルトの名無しさん
18/07/14 17:27:38.30 3U2LRmJo0.net
マシンにDBサーバーをたてるんだろ

634:デフォルトの名無しさん
18/07/14 17:30:16.00 zT+O/n6K0.net
>>604-605
なるほどありがとう
それならせっかくだしそっちにしてみようかな
SQLServerはEntityFramework簡単に使えたけどもPostgreSQLもライブラリとか使いやすいのかな?
MySQLは接続文字列がおかしいのかテーブル指定がおかしいのかイマイチ上手く動かせなかった

635:デフォルトの名無しさん
18/07/14 19:18:56.84 VO5okbkP0.net
ASP.NET Core MVCはオワコンになって今後はASP.NET Core Razorが主流になっていく感じですか?

636:デフォルトの名無しさん
18/07/14 19:54:51.34 GmLXhPvN0.net
>>609
お前なんか勘違いしてんぞ

637:デフォルトの名無しさん
18/07/15 10:06:31.58 vbOfg8AFM.net
今は各言語ごとにフルスタックのフレームワークがある�


638:ッど無駄に見える どれか一個がセンターにあって後は各言語対応のAPI提供というパターンにならないのか



639:デフォルトの名無しさん
18/07/15 10:20:38.72 aio6qM3qa.net
少なくとも.NETはASP.NET Coreが統一フレームワーク

640:デフォルトの名無しさん
18/07/15 10:33:05.77 X2092vNg0.net
まさに.NETのことだね

641:デフォルトの名無しさん
18/07/15 10:46:24.73 CFAGuM1zM.net
各言語ごとにフルスタックフレームあるけど
シェア3位のdjangoすら5%以下らしい
それ以下のASP.Net coreの存在意義がかなり薄いと思うけどないといけないものなのか

642:デフォルトの名無しさん
18/07/15 10:54:00.74 7Enq42ndr.net
現実
URLリンク(hotframeworks.com)

643:デフォルトの名無しさん
18/07/15 10:55:19.57 7Enq42ndr.net
Coreは存在すらしていないっぽいな

644:デフォルトの名無しさん
18/07/15 10:59:15.18 upsCSZLnM.net
検索でClassic ASP.NET/MVC/Coreは区別がつかないから混ざってるんだろ

645:デフォルトの名無しさん
18/07/15 11:08:09.00 p0LeSK9sd.net
Coreじゃなくても.NETなら多言語対応だし

646:デフォルトの名無しさん
18/07/15 12:32:26.47 mrrFOD8id.net
>>616
StackOverflowのデータ見てみろよ

647:デフォルトの名無しさん
18/07/15 12:53:44.01 7Enq42ndr.net
なんかSQLiteがおっせーって書いた者だけど、他のサーバー型SQLよりぶっ飛びで速いんだな
このまま使い続けるか

648:デフォルトの名無しさん
18/07/15 14:17:55.92 LJ5Na9vP0.net
>>620
速度求めるならメモリ使えば?
DBのinoutは別スレッドでコントロール

649:デフォルトの名無しさん
18/07/15 19:34:53.12 Bovqh3Um0.net
使ったことないからよく知らんけどローカルファイルへのアクセスだからレイテンシが小さいとか?

650:デフォルトの名無しさん
18/07/15 20:22:37.76 5Xgvchi7M.net
javaに比べると圧倒的に仕事が少ないC#ですがjavaの有償化で仕事は増えるでしょうか

651:デフォルトの名無しさん
18/07/15 20:38:51.55 BpM21w6AM.net
レガシーJavaをすぐさまC#に移植するってのは現実的じゃない
レガシーの面倒を見るためにとりあえず金を払ってライセンスを買うしかない
ライセンス買ったならじゃあいいかとなってJavaを引き続き使っていくことになる

652:デフォルトの名無しさん
18/07/15 20:54:44.00 31mTAsFB0.net
Java厨ザマアw

653:デフォルトの名無しさん
18/07/15 20:57:17.95 OJzI1T4t0.net
でもC#は無料なの?
いいえ、有償です

654:デフォルトの名無しさん
18/07/15 20:59:55.51 WCfEKFtx0.net
大人しくオラクルのケツ舐めて1CPUあたり25ドル払っとけって

655:デフォルトの名無しさん
18/07/15 21:00:24.79 31mTAsFB0.net
2ドルだろ

656:デフォルトの名無しさん
18/07/16 01:40:16.05 0WZqyTt50.net
application/jsonを使ったRPCの実装方法でスタンダードなやり方ってありますか?
ぐぐってもREST APIの実装方法ばっかり出てくるんですが…

657:デフォルトの名無しさん
18/07/16 03:10:13.20 yOmS9IaY0.net
>>629
.netならWCFかWEB API
REST APIは主流だが
規模的に保守が辛くなるなら
gRPC gatewayも良いと思う

658:デフォルトの名無しさん
18/07/16 03:53:04.58 M+rWa9nq0.net
>>609
MVCのVの部分がRazorエンジンになっただけやで。

659:デフォルトの名無しさん
18/07/16 10:04:00.08 R/aUtilHr.net
>>621
アプリ起動時とかにSQLからメモリテーブルにコピーして、追加更新削除があれば別スレッドでinoutする感じ?

660:デフォルトの名無しさん
18/07/16 15:04:39.14 f5ww7Pxw0.net
プログラミング初心者なんですが、Randomオブジェクトの扱われ方がよく分かりません
なぜ別にクラスを作らなくてもインスタンスを生成出来るのでしょうか

661:デフォルトの名無しさん
18/07/16 15:14:56.71 Tg2I8Krt0.net
>>633
「なぜ class Random { ... } とクラスを定義しなくても new Random() と書けるのか?」
という質問なら、「Random クラスは最初から�


662:闍`されてるから」が答えになると思います 質問の意図が違うなら、「XXXと書くのが正しいと思うが、実際にはYYYと書くのはなぜか?」 というように具体的なコードを交えてもう一度質問してもらえませんか?



663:デフォルトの名無しさん
18/07/16 15:17:03.84 f5ww7Pxw0.net
>>634
それで合ってます 返答どうもです

664:デフォルトの名無しさん
18/07/16 15:18:23.77 MLoWNAtR0.net
usingで指定されて無いと幾ら最初から有っても使えないけどな。

665:デフォルトの名無しさん
18/07/16 15:19:55.32 MLoWNAtR0.net
そう言う意味では、最初からusingでネームスペースが指定されているって言わないと正しくない。

666:デフォルトの名無しさん
18/07/16 15:21:33.95 fVJkfJ21M.net
JSFみたいな使いやすいフレームワークねえかなぁ
C#は言語そのもののセンスは良いけどエコシステムがショボいよな

667:デフォルトの名無しさん
18/07/16 15:50:12.73 jQHectJ10.net
>>636
namespace省略せずに書けば使えるぞ

668:デフォルトの名無しさん
18/07/16 15:55:20.48 N67OeEDm0.net
>>634みたいにも?

669:デフォルトの名無しさん
18/07/16 15:58:33.82 XBIjWYki0.net
>>640
書けないけど「使える」
>>636
> usingで指定されて無いと幾ら最初から有っても使えないけどな。
自分の書き込みぐらい覚えとけ

670:デフォルトの名無しさん
18/07/16 16:00:41.87 CrUViZU+0.net
偶にこういうコード見かけるんだけど、コーディング規約に全部書けとかあるのかな?
using System.IO;

System.IO.File.ReadAllBytes(hoge);

671:デフォルトの名無しさん
18/07/16 16:54:46.97 jQHectJ10.net
自分が作っていないクラスを使用するのに必要なのはアセンブリ/COMの参照設定。
(基本的なアセンブリは最初から設定されてる)
usingするかはどうかは別の話。
参照していないのにusingだけ書いてももちろん使えない。

672:デフォルトの名無しさん
18/07/16 17:47:55.17 SOPUXhzxM.net
>>642
そのスコープのFileクラスの定義が重複している場合
曖昧さを解消するために名前空間を全て書く必要がある
普通は標準ライブラリと名前が衝突する事態の方を避けるだろうけど

673:デフォルトの名無しさん
18/07/16 18:31:19.12 zG1+5npqa.net
>>642
そんな不合理な規約はないと信じたいねw
あえてフルネームで書くことを肯定できる(少なくとも否定的に思わない)ケースは
そのソースファイルでその名前空間の要素そ参照するのが1、2か所しかない場合ぐらいかなあ
意見は分かれるかもしれんが、バッティングを避ける目的ならエイリアスを使うのが普通でしょう
using IO = System.IO;
みたいに

674:デフォルトの名無しさん
18/07/16 19:06:40.67 XBIjWYki0.net
>>645
> そのソースファイルでその名前空間の要素そ参照するのが1、2か所しかない場合ぐらいかなあ
それならusingも書かないだろ、バカかよ

675:デフォルトの名無しさん
18/07/16 19:11:38.45 zG1+5npqa.net
何言ってるのか意味わからないねw

676:デフォルトの名無しさん
18/07/16 19:29:52.77 65+uaC9H0.net
その名前空間を使うのがここだけだと思ってフルで書いたが
やっぱり他でも使ったのでusing追加した
元の箇所は直していない
まあ、そんな感じじゃないかと

677:デフォルトの名無しさん
18/07/16 19:56:41.16 Tg2I8Krt0.net
>>634 に不適切なコードを書いたために混乱を招いてしまいました
また、 >>643 で適切な補足をしていただいていますが、
初めからこのような補足が必要ないようにできているだけでも
混乱は避けられたかもしれません。大変失礼しました


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch