X



C#, C♯, C#相談室 Part93©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 1e06-m8Mb)垢版2017/04/22(土) 08:52:00.93ID:iVvswOrb0
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

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

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

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0537デフォルトの名無しさん (ワッチョイ 4269-m0US)垢版2018/06/17(日) 09:14:51.45ID:R12hw8Jz0
HSTファイル
調べた限りだとHiSTory fileでFXの履歴を記録したファイルで使われることが多いのかな?
自分が使いたいのはFXの履歴ではないくてカメラの履歴などの情報を取りたいです。C++などのコードで書いてるサイトはあるけどC#が見つからない
0543デフォルトの名無しさん (ワッチョイ 4269-m0US)垢版2018/06/17(日) 22:37:48.08ID:R12hw8Jz0
内容しっかり見てなかったけど100行なかったははず
C#もどこかあるだろで探してたけどC#だけまったく見当たらなかったので、結果的には自分で移植のほうが早かったかな
0544デフォルトの名無しさん (ワッチョイ 9dd2-cPc7)垢版2018/06/18(月) 00:31:09.66ID:6KD+nJyx0
どなたか助けてください

PaSoRiでFelicaのReadをしたいのです。
winscard.dllを利用し
ScardTransmitにてADPUを送信することで
非暗号化領域のREAD/WRITEをすることはできました

追加で、暗号化領域のREADをしてほしいと言われ、
Group Service KeyとUser Service Keyという2つの鍵を渡されました。
どうやらこの2つの鍵を使って暗号化領域のREADを行うようなのですが
それに該当する情報が見つかりません。

この2つの鍵と縮退鍵の関連もわかりません。
2つの鍵を使って縮退鍵を合成する???
合成したとしてどういうAPDUコマンドを送る???

ご存知の方がいらっしゃいましたらご教授ください。
0548デフォルトの名無しさん (ブーイモ MM6d-2ITt)垢版2018/06/18(月) 15:38:53.66ID:XzDxjxqSM
バイナリファイルをバイト配列に一気に読み込んでLINQでゴリゴリするなんてC#って言うか.netの醍醐味だね。
C、C++と歩んできて正直C#なめてたが、プログラムの書き方変わったよ。
0549デフォルトの名無しさん (ワッチョイ 0296-gvEZ)垢版2018/06/18(月) 19:59:56.07ID:YV8aSpRw0
バイナリファイルのバイト配列はストリーム(BinaryReader/Writer)経由でしか扱ったことないな
浅学ですまないが非常に興味があるので、何をする処理にLINQを使っているのか教えてほしい
0552デフォルトの名無しさん (ワッチョイ dd9f-2ITt)垢版2018/06/18(月) 20:55:37.17ID:Dbb+UGxb0
テキストファイルを一行ずつ読み込むとか、バイナリファイルを1フレームずつ読み込むなんてのは時代遅れなんじゃねかと。
最近は一括読み込みしかしないな。
パフォーマンスはライブラリやOSが担保してくれる。
0553デフォルトの名無しさん (アウアウエー Sa4a-jhA2)垢版2018/06/18(月) 21:33:32.15ID:ubyRHWyfa
時代遅れかどうかは知らんけど(そういうネトウヨチックな「俺スゲー」という間抜けな自己陶酔、俺は大嫌いだがw)
富豪的であってもそれが一時的(たとえばメソッドの中だけ)なら何も問題ないね。

その方がより簡潔だったり可読的に書けるなら否定する理由は何もない
0557デフォルトの名無しさん (ワッチョイ dd9f-2ITt)垢版2018/06/18(月) 21:46:48.35ID:Dbb+UGxb0
時系列的に増えていくファイルだとか、ソケット通信のバイトストリートだとかは順次読み込みするしかないよ。
だけどドライブにあるファイルは一括読み込みの方が簡単だよ。1ステップだからね。それをソートするなりデータ抽出するなりLINQ使えば簡単だよ。
それを知ってから逐次読み出しなんか面倒くさくアホらしくなったよ。
0568デフォルトの名無しさん (ワッチョイ 1f8a-DJU/)垢版2018/06/25(月) 11:21:29.65ID:pxATIqrb0
Debug.Failのサンプルコードがこんなのなんですが
プログラムのバグでもない限りは絶対に訪れないような場所には
片っ端からDebug.Failを撒いておいたほうがいいんですか?
それともそれ専用のthrowすべき例外なりがあるんでしょうか?
Assert.Fail?
何も書かないのは気持ち悪いので指針を教えてください

switch (option) {
case Option.First:
result = 1.0;
break;

// Insert additional cases.

default:
Debug.Fail("Unknown Option " + option);
result = 1.0;
break;
}
0569デフォルトの名無しさん (ブーイモ MM0f-STG2)垢版2018/06/25(月) 12:12:52.11ID:DuFsc7dIM
>>568
そういうのはフロー解析による不要なコンパイルエラーを回避するために throw する
例外の種類は状況やポリシーに応じて InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException あたりを使うのが普通
0571デフォルトの名無しさん (アウアウエー Sa7f-3IMT)垢版2018/06/25(月) 12:33:59.90ID:G9vuY89la
そうかな
>>569が挙げてくれてるので十分でしょ。
少なくともメッセージは自由に設定できるし、本当に必要なら派生もできる。

そもそも例外をそんなに細かく分類する必要が本当にあるのかちょっと疑問
0572デフォルトの名無しさん (アウアウウー Sae3-STG2)垢版2018/06/25(月) 12:40:32.20ID:M/oLTPjda
常識的にキャッチされない種類の例外なら何でもいいわな
InvalidOperationExceptionだけはキャッチされる場合があるから微妙だけど、慣習的にはわりと多数派な気がする
個人的には常に NotImplementedException にしたい
0575デフォルトの名無しさん (ワッチョイ 7fe9-5Tpg)垢版2018/06/25(月) 13:00:29.11ID:5ya7SPIm0
細かいけどコンパイルエラー回避のためにthrowする、ってのは違くない?
現実問題そんな感じになってしまうことはあるけど理想はコンパイラの都合に合わせたコードなんて無いほうがいいんだから
0576568 (ワッチョイ 9f8a-DJU/)垢版2018/06/25(月) 13:23:21.50ID:vUyRGEqk0
>>569
>InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException
これらの例外は自クラスには非はなく、呼んだ側の使い方が間違っているといった感じの例外に見えますが
そんなにこだわらなくていいんでしょうか

public class MyClass
{
public class BugException: System.SystemException{}
public void buggedmethod() { ... throw new BugException(); }
}

これで良ければ1行で定義できて1番明快に思えますが
検索してもこんなことをやってる人は誰もいないっぽい…
0577デフォルトの名無しさん (ブーイモ MM0f-STG2)垢版2018/06/25(月) 14:49:07.56ID:o35Q9ijAM
>>574
>>568のケースに限れば、defaultに来るのはenumにメンバを追加したのにcaseを追加していない「変更漏れ」であると考えることもできるから、
NotImplementedException でも意味的におかしくはない
NotSupportedExceptionは(継承の都合で)メンバ自体が使えないことを意味するからちょっと違う
0579デフォルトの名無しさん (アウアウエー Sa7f-3IMT)垢版2018/06/25(月) 18:51:31.43ID:uZsljbpsa
>>577
なるほどそうかも

関係ないけど、いつも思うけどあるインターフェイスを継承してるのに
そのインターフェイスのメソッド使ったらNotSupportedExceptionが飛んでくるって設計は
なんか不条理を感じるのは俺だけかなあw

インターフェイスって契約じゃなかったのかよw
0583デフォルトの名無しさん (ワッチョイ 7f96-qn6i)垢版2018/06/25(月) 21:43:12.62ID:xJKhLBIA0
Debugクラスのメソッドはリリース版のとき消えます、素通りします
Debug.Fail() は起こりえない状況であり、かつ、素通りしても問題ない箇所、
またはリカバリ処理を行っている箇所にしか使用できません

基本は例外か Trace.Fail() を使用するべきです

Debug.Fail() を使用して問題ないのは具体的には下記の条件に当てはまるときぐらいだと思います

・『絶対』に起こらないことを目視や単体テストで確認した上で、後続のコードでリカバリ処理を行っている箇所で、
開発によってコードが壊れてないかチェックするためにコードに挿入する
(絶対に発生しないので単体テストを行う場合は #if で慎重にコードを切り替えてエラー状態を再現することになります)

つまり、リカバリ処理してるなら Debug.Fail() は入れなくても問題ないはずです
0584568 (ワッチョイ 618a-VCRa)垢版2018/06/28(木) 16:32:42.98ID:mhaIhaYV0
遅くなりましたが例外とログの使い方大変参考になりました。
ありがとうございます。
0585デフォルトの名無しさん (ワッチョイ 45fa-2e90)垢版2018/07/04(水) 22:15:33.33ID:gFgZc5FG0
81F
0589デフォルトの名無しさん (ササクッテロル Spbd-p+0f)垢版2018/07/12(木) 21:32:30.73ID:wWmeulvip
単なる構造体にインスタンスもくそもないからな。
0591デフォルトの名無しさん (ブーイモ MMc9-hVvx)垢版2018/07/14(土) 10:59:20.35ID:21Pqhes0M
型のデフォルト値でね?
0592デフォルトの名無しさん (ワッチョイ a5b3-8eTX)垢版2018/07/14(土) 11:24:43.76ID:td9rD4BU0
Visual Studio 2017
合計 90 日間が過ぎました。

無料で使いたいんですが、どうすれば良いでしょうか?
0596デフォルトの名無しさん (ワッチョイ a5b3-8eTX)垢版2018/07/14(土) 12:06:05.24ID:td9rD4BU0
Community版に移行する事にしました。
ありがとうございます
0599デフォルトの名無しさん (ワッチョイ 6db5-p+0f)垢版2018/07/15(日) 11:14:40.73ID:GMJtRfj30
サブスクリプションで全シリーズ揃えてる俺に死角無し。
0601デフォルトの名無しさん (ササクッテロル Spc7-Bhrm)垢版2018/08/02(木) 11:31:31.36ID:ijDqx/PBp
Entity Framework Coreについて質問です。

以下のように1対多の入れ子(left join)になったデータを取ってくる場合で、一番最下層のテーブルに取得条件を追加したいです。
どのようにしてwhereメソッドを書けばよいでしょうか。
.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)

例えば以下のような感じです。
Skill.ExpireDate >= DateTime.Today

それぞれのプロパティはコレクションのため以下のようには書くことができません
Where(x => x.Departments.Groups.SubGroups.Employees.Skills.ExpireDate >= DateTime.Today)

ThenIncludeで指定しているプロパティがすべて列挙でなければ以下のように書けると思うのですが・・・
Where(x => x.Department.Group.SubGroup.Employee.Skill.ExpireDate >= DateTime.Today)

それぞれの階層のクラスは全プロパティ取得することを想定しています。
Entity Framework Coreで実現可能でしょうか。
0603デフォルトの名無しさん (ササクッテロル Spc7-Bhrm)垢版2018/08/02(木) 12:30:22.50ID:ijDqx/PBp
>>602
辿らない場合、スキルクラス単位で条件絞り込みができるのでしょうか?
これができればとても楽なのですが、、、
0605デフォルトの名無しさん (ササクッテロル Spc7-Bhrm)垢版2018/08/02(木) 15:11:34.29ID:ijDqx/PBp
いえ、辿りたいわけではなくて、辿らないとできないと勝手に思ってただけです
辿らなくて良いなら辿らないでやれればベストです。
ですがその方法がわからないので教えてもらえませんでしょうか。
0606デフォルトの名無しさん (ワッチョイ 8f9f-LI4B)垢版2018/08/02(木) 21:52:06.55ID:nmSSZypj0
var q = _context.Hoges.FromSql($@"
select H.* from Hoges H where exists (
select null from Departments D where H.DeptId = D.DeptId and exists (
select null from Groups G where D.DeptId = G.DeptId and exists (
select null from SubGroups SG where G.GrpId = SG.GrpId and exists (
select null from Employees E where SG.SGrpId = E.SGrpId and exists (
select null from Skills SK where E.EmpId = SK.EmpId and SK.ExpireDate >= {DateTime.Today}
)))))
");

var hoges = q.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)
.ToList();
0610デフォルトの名無しさん (ワッチョイ ff58-0Uuo)垢版2018/08/07(火) 20:55:48.43ID:7nA6P5yg0
Linqでの書き方で質問なのですが
同じサイズのdataAとdataBのデータがあるとして
データが違う箇所のIndexを取り出すとしたらどう書けば良いでしょうか?
今は↓のようなコードになっています。

List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
bool resultAB = dataA.SequenceEqual( dataB);

if(resultAB = false)
{
foreach(var A in dataA)
{

比較処理
}
}


結果
2
3
0611デフォルトの名無しさん (ワッチョイ b3e3-10BI)垢版2018/08/07(火) 21:22:20.14ID:UKw4EMmv0
>>610
ない頭絞って考えてみた。
Enumerable.Range(0, dataA.Count()).Where(p => dataA[p] != dataB[p]);
やら
dataA.Select((v, i) => new { value = v, index = i }).Where(p => p.value != dataB[p.index]).Select(p => p.index);

どっちも汚い。もっと賢いのおしえろください
0614611 (ワッチョイ b3e3-10BI)垢版2018/08/07(火) 21:35:47.39ID:UKw4EMmv0
無理矢理LINQつかってみたけど>>613に一票
0616デフォルトの名無しさん (ワッチョイ ff58-0Uuo)垢版2018/08/07(火) 21:41:47.05ID:7nA6P5yg0
dataAとdataBが1000件以上あるので、まず単純に変更してるのがあるか?で
SequenceEqualを使ってみた流れでLINQを調べていた流れで知りたかったです。
forで書くのがわかりやすいとは思うけど、LINQでもっとうまく書けるかなと思って

>>611参考になりました。ありがとうございます!
■ このスレッドは過去ログ倉庫に格納されています

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