[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/09 11:23 / Filesize : 313 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part125



1 名前:デフォルトの名無しさん(ワッチョイ f97b-lsIp) mailto:sage [2016/10/08(土) 21:33:26.22 ID:KfBpvv2w0.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part124
echo.2ch.net/test/read.cgi/tech/1471004887/

■関連スレ
C#, C♯, C#相談室 Part91
echo.2ch.net/test/read.cgi/tech/1467142749/

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

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

2 名前:デフォルトの名無しさん (ワッチョイ fc5e-lsIp) mailto:sage [2016/10/09(日) 09:01:10.77 ID:G17UML8q0.net]
>>1
スレたて乙
5レスくらい埋めないと落ちるかも

3 名前:デフォルトの名無しさん (アウアウ Sac5-Nuoi) [2016/10/09(日) 09:28:56.72 ID:tkPBsJC6a.net]
>>1
いつもROM専ですが

4 名前:デフォルトの名無しさん (ワッチョイ c3c0-lsIp) mailto:sage [2016/10/09(日) 09:30:27.17 ID:2uWzXVZF0.net]
>>1

.NET2.0のフォームアプリをメンテナンスすることになったんだが、最近のOSだと.NET3.5入れないと動かないんだな
.NET3.5と4.5.2の並行路線は何時まで続くんだろ・・・

5 名前:デフォルトの名無しさん (アウアウ Sac5-pu+C) mailto:sage [2016/10/09(日) 09:39:03.76 ID:rlAqgPo1a.net]
ほす

6 名前:デフォルトの名無しさん (ワッチョイ 21dc-6leU) mailto:sage [2016/10/09(日) 09:41:15.48 ID:r1p0JkFt0.net]
マニフェスト弄れば動くよ
基本的に100%の互換性があることになってるけど、デフォルトで動かないのは
ユーザーが勝手に4系で動かして万一重大障害発生でお前らがDOGEZAする羽目にならないように
ちゃんとテストしろよというMSの良心

7 名前:デフォルトの名無しさん (ワッチョイ fc5e-lsIp) mailto:sage [2016/10/09(日) 10:06:32.54 ID:G17UML8q0.net]
>>4>>6
これかな
https://msdn.microsoft.com/ja-jp/library/w4atty68%28v=VS.100%29.aspx
メモの
>useLegacyV2RuntimeActivationPolicy 属性を true に設定する必要があります
の部分がよくわからんけど
>>4
Windows8以降は4.0以降のランタイムしか入ってないからな

8 名前:デフォルトの名無しさん (ワッチョイ 98d4-lsIp) mailto:sage [2016/10/09(日) 16:48:44.58 ID:XK4sDCWo0.net]
前スレで、StringにAppendLineという拡張目そっと゛を追加したい云々の質問した者です
C#だと代替できるものないということで。

んで次なんですが、関数の中で Static してる変数があるんですけど、これはC#だとどうしますか。

Public Sub Hoge()
 Static First As Boolean = True

 If First Then
  First = False
  初期化っぽい処理
 End If
End Sub

関数の外に出すと他の関数から見えてしまうので

9 名前:デフォルトの名無しさん (ワッチョイ ab49-LThL) mailto:sage [2016/10/09(日) 17:03:09.61 ID:rPrC2GUx0.net]
>>8
同じクラスのprivateな変数にする。
外から見えるとかは関数単位ではなくクラス単位で考える。
同じクラス内の他の関数から見えるのは気にしない。

10 名前:デフォルトの名無しさん (ワッチョイ 7694-MJqz) mailto:sage [2016/10/09(日) 18:36:02.08 ID:ciDgbIwP0.net]
この★印の機能は何ですか?これもラムダ式?

class Program
{
static int i = 123;
static int j => i; // ★
static void Main(string[] args)
{
Console.WriteLine(j); // 123
i = 456;
Console.WriteLine(j); // 456

Console.ReadKey();
}
}



11 名前:デフォルトの名無しさん (ワッチョイ 21dc-xaNP) mailto:sage [2016/10/09(日) 18:43:54.99 ID:r1p0JkFt0.net]
>>10
expression bodied properties
C#6の新機能

12 名前:デフォルトの名無しさん (ワッチョイ 7694-MJqz) mailto:sage [2016/10/09(日) 19:55:16.81 ID:ciDgbIwP0.net]
なるほど

13 名前:デフォルトの名無しさん (ワッチョイ 34c9-VEeh) mailto:sage [2016/10/09(日) 20:12:19.64 ID:SNsM+1tN0.net]
getterだけなら使えるみたいな機能は入れなくていいよ
混じってるとみっともない

14 名前:デフォルトの名無しさん (ワッチョイ 34c9-VEeh) mailto:sage [2016/10/09(日) 20:17:23.67 ID:SNsM+1tN0.net]
みっともないって言葉は曖昧なので止める
getterだけのプロパティをexpression-bodiedで書いて
getterとsetterのプロパティを通常の記法で書いてると統一性に欠ける

15 名前:デフォルトの名無しさん (ワッチョイ c3c0-lsIp) mailto:sage [2016/10/09(日) 20:24:50.85 ID:2uWzXVZF0.net]
これはGetterだけでいいような

16 名前:デフォルトの名無しさん (ワッチョイ 21dc-xaNP) mailto:sage [2016/10/09(日) 20:26:06.97 ID:r1p0JkFt0.net]
イミュータブルなクラスを書きやすいようにするための機能だからそもそもsetなんか要らないんだよ
メソッドも式で書けるようになったからその意味では一貫性がある
正しいかどうかはともかく、C#は関数型へ進み続けている
それを受け入れられないならC#から脱落するしかない

17 名前:デフォルトの名無しさん (ワッチョイ 353c-xaNP) mailto:sage [2016/10/09(日) 20:34:20.60 ID:ufk0aci50.net]
>>16
いや、マルチパラダイムだろ

18 名前:デフォルトの名無しさん (オッペケ Sr4d-/Z78) mailto:sage [2016/10/09(日) 21:10:17.77 ID:sqq+yTnGr.net]
C#7.0では、setterでも書けるようになったりする。

19 名前:デフォルトの名無しさん (ワッチョイ 353c-lsIp) mailto:sage [2016/10/10(月) 00:16:17.24 ID:LNPO30qQ0.net]
while (true){
string text = Console.ReadLine();
//受け取った文字で処理
}

すごい久しぶりにC#やるのですが、
上記を呼び出したプログラムがいつの間にか不慮の事故で死んでいた場合、
自殺する方法があったような気がしたのですが、分からなくなりました。

これは他のexeファイルから呼び出されて標準入出力でやり取りします。

20 名前:デフォルトの名無しさん (ワッチョイ 97dd-xaNP) mailto:sage [2016/10/10(月) 05:15:45.69 ID:ht+Pv9Q40.net]
ハートビート飛ばして返事無ければブレイク



21 名前:デフォルトの名無しさん (ワッチョイ 5b00-BQsb) mailto:sage [2016/10/10(月) 07:04:48.42 ID:ScYkQPFE0.net]
>>19
https://msdn.microsoft.com/en-us/library/ms682409(VS.85).aspx

親プロセスに子プロセスをjob objectと登録しておくと、親が死んだ時に
子供をOSが自動的に殺してくれるそうです。

22 名前:デフォルトの名無しさん (ワッチョイ 7694-MJqz) mailto:sage [2016/10/10(月) 07:44:38.15 ID:UXASE0xK0.net]
親が殺し屋に自分が死んだら子を殺せと依頼するようなもの?

23 名前:デフォルトの名無しさん (ワッチョイ c63c-xaNP) mailto:sage [2016/10/10(月) 11:34:40.27 ID:Rkc5P+nq0.net]
>>19
> これは他のexeファイルから呼び出されて標準入出力でやり取りします。

パイプ使ってるってこと?
なら親が死んだら eof で ReadLine が null を返すんじゃね?

24 名前:デフォルトの名無しさん (アウアウ Sa43-TInN) [2016/10/10(月) 12:54:12.01 ID:V7Z0NZf3a.net]
UWPアプリでTextBlockにハイパーリンクを追加し、ClickイベントでそのURLを取得して色々処理したいのですが、
↓のxamlだとClick時にHyperlink_Clickは呼ばれるのですが、その後標準のブラウザで強制的に開かれてしまいます。
NavigateUriを消せば標準のブラウザで開かれることはないですが、URLを埋め込めません。
何かいい方法はないでしょうか。

<TextBlock>
<Hyperlink Click="Hyperlink_Click" NavigateUri="yahoo.co.jp">ヤフー</Hyperlink>
</TextBlock>

25 名前:デフォルトの名無しさん (ワッチョイ 353c-lsIp) mailto:sage [2016/10/10(月) 18:45:27.25 ID:LNPO30qQ0.net]
>>23
そうなの?
今試せないんだけど、改行が来なくても大丈夫系?

26 名前:デフォルトの名無しさん (ワッチョイ 353c-lsIp) mailto:sage [2016/10/10(月) 20:37:17.51 ID:LNPO30qQ0.net]
>>23今仕事に区切りがついたんで試したけど駄目でした

27 名前:デフォルトの名無しさん (ワッチョイ 7666-MJqz) mailto:sage [2016/10/10(月) 21:40:27.98 ID:/jPfSdO10.net]
>>24
これでどや!

<Button Click="Button_Click">
  <TextBlock Foreground="Blue">
    <Underline>www.msn.com/ja-JP/</Underline>
  </TextBlock>
</Button>

28 名前:デフォルトの名無しさん (ワッチョイ 7666-MJqz) mailto:sage [2016/10/10(月) 21:41:18.62 ID:/jPfSdO10.net]
ちょっと違うか

29 名前:デフォルトの名無しさん (ワッチョイ 21dc-+EyG) [2016/10/10(月) 22:04:07.58 ID:ly4XaJJN0.net]
どうでもいいけどXAMLでUnderlineやらBorderやらタグで書くのってイケてないよなあ
やっぱりCSS的なレイヤは必要だった

30 名前:デフォルトの名無しさん (ワッチョイ 353c-yd9a) mailto:sage [2016/10/10(月) 22:15:45.81 ID:uc840M750.net]
えー

CSSが生まれたのって、
「HTMLは文書の意味や構造を定義付ける為の物であって、見た目を定義付ける為の物ではない」
的な思想があっての事でしょ

HTMLとXAMLとでは存在目的が違うんだから、いらねーっすよ



31 名前:デフォルトの名無しさん (ワッチョイ 1030-VEeh) mailto:sage [2016/10/10(月) 22:17:45.98 ID:NThcQOle0.net]
前景色はStyleで指定できるがUnderlineは駄目って言われるとハンパな感はある

32 名前:デフォルトの名無しさん (ワッチョイ 1030-VEeh) mailto:sage [2016/10/10(月) 22:20:54.95 ID:NThcQOle0.net]
いや嘘だ
Control.TextDecorationsがある

33 名前:デフォルトの名無しさん (ワッチョイ c37b-jLml) mailto:sage [2016/10/10(月) 23:34:54.76 ID:MUAfL18F0.net]
UWPだとe.Handledは使えないんだったっけ?
値を埋め込みたいだけならNavigateUriの代わりに添付プロパティ使うとか

34 名前:デフォルトの名無しさん (アウアウ Sa43-TInN) mailto:sage [2016/10/11(火) 11:19:41.87 ID:n7KkGtdUa.net]
>>33
添付プロパティでいけました、ありがとうございます

35 名前:デフォルトの名無しさん (ワッチョイ 707b-lsIp) mailto:sage [2016/10/11(火) 14:48:44.44 ID:mnCEYNvQ0.net]
本に付属してるサンプルでの質問で申し訳ないのですが、
Analyze()関数にあるwhile(sf[ppos] != 13)とif(sf[ppos] >= 32)の部分なんですが、
なぜ13と32で判断させてるのかわかりません。
本書のサンプルをうpしましたので、わかる方いましたら、教えていただけないでしょうか?。

www.dotup.org/uploda/www.dotup.org1031032.7z.html

36 名前:デフォルトの名無しさん (ワッチョイ c3e2-IG4E) mailto:sage [2016/10/11(火) 15:18:08.90 ID:NhNhMU+W0.net]
WIN32APIでキャッシュ取得してクッキーやらのファイル名を一覧にしたいのですが
1度目のFindFirstUrlCacheEntryでのメソッドではうまく取得できますが
FindNextUrlCacheEntryでのメソッドでは「C」としかでてきませんでした
どうすればnextで正常に取得できますか?

int firstCacheEntryInfoBufferSize = 0;
FindFirstUrlCacheEntry(null, IntPtr.Zero, ref firstCacheEntryInfoBufferSize);
IntPtr entryPtr = Marshal.AllocHGlobal(firstCacheEntryInfoBufferSize);
var handle = FindFirstUrlCacheEntry(null, entryPtr, ref firstCacheEntryInfoBufferSize);
INTERNET_CACHE_ENTRY_INFO result = (INTERNET_CACHE_ENTRY_INFO)Marshal.PtrToStructure(entryPtr, typeof(INTERNET_CACHE_ENTRY_INFO));
//正常にフルパスが表示
richTextBox1.Text = Marshal.PtrToStringAnsi(result.lpszLocalFileName);

FindNextUrlCacheEntry(handle, IntPtr.Zero, ref firstCacheEntryInfoBufferSize);
entryPtr = Marshal.AllocHGlobal(firstCacheEntryInfoBufferSize);
FindNextUrlCacheEntry(handle, entryPtr, ref firstCacheEntryInfoBufferSize);
result = (INTERNET_CACHE_ENTRY_INFO)Marshal.PtrToStructure(entryPtr, typeof(INTERNET_CACHE_ENTRY_INFO));
//Cとだけ表示される 
richTextBox1.Text += Marshal.PtrToStringAnsi(result.lpszLocalFileName);

37 名前:デフォルトの名無しさん (ワッチョイ 9e4c-xaNP) mailto:sage [2016/10/11(火) 16:25:38.21 ID:lBkVHEla0.net]
>>30
ちょっとちゃうな。
マークアップを管理する為、別層があった方がええよってだけなんじゃね

38 名前:デフォルトの名無しさん (ワッチョイ d919-hgF0) mailto:sage [2016/10/11(火) 17:06:07.06 ID:yDjM8vhd0.net]
>>35
sfがstringであることぐらいは質問文の中に欲しいなー
stringに対して [index] でアクセスするとchar型、つまりUTF-16の文字コードが取得できる
それぞれの文字コードが指す文字は
13: CR(=\r)つまり改行文字
32: (いわゆる半角の)空白文字
CRが見つかるまでループしてるのはコメント通り1行分を読み込んでるから
空白文字の方はちょっと特殊だけど、文字コード0〜31は制御コードって言う
「文字ならざるもの」を入れておく領域になっているんで、
つまり文字として有効かどうかをチェックしてる

39 名前:デフォルトの名無しさん (アウアウ Sa76-juU9) mailto:sage [2016/10/11(火) 17:36:19.27 ID:5nhn+XnWa.net]
マジックナンバー使うような人の書いた本って読む価値あるかねw

40 名前:デフォルトの名無しさん (ワッチョイ d919-hgF0) mailto:sage [2016/10/11(火) 17:47:59.14 ID:yDjM8vhd0.net]
>>36
pinvoke.netのDllImport定義使ってる?
なんでかFindFirstUrlCacheEntryだけEntryPoint書いてるけどなぜかそれが
FindFirstUrlCacheEntryAを明示してるからそっちはANSIでNextのほうはUnicode呼び出しになる
EntryPoint消して、stringへの変換はMarshal.PtrToStringAuto使うようにする

あとFindNextUrlCacheEntryは返値見て失敗したらMarshal.GetLastError呼び出し
バッファ不足か列挙終了か確認する必要がある

そもそも最初に呼び出したFindFirstUrlCacheEntryで得られたバッファサイズはFindNextUrlCacheEntryでさらに拡張される可能性があるし
もし拡張されたらまたFindFirstUrlCacheEntryから呼び出し直しだから
はじめっから65536とか適当に大きいバッファ確保しておいて
FindNextUrlCacheEntryに渡すbufferSizeは毎回入れ直しておいた方がいい



41 名前:デフォルトの名無しさん (ブーイモ MMa8-pu+C) mailto:sage [2016/10/11(火) 20:46:16.35 ID:nLx97S41M.net]
マジックナンバーやめろ定数にしろっていうけどオブジェクト指向でシンボリック定数使うのも大概だよな

42 名前:デフォルトの名無しさん (アウアウ Sa76-juU9) mailto:sage [2016/10/11(火) 21:06:54.61 ID:k359FhBZa.net]
>>41
オブジェクト指向関係あるの?w

43 名前:デフォルトの名無しさん (ワッチョイ 353c-yd9a) mailto:sage [2016/10/11(火) 21:27:18.88 ID:oZVsanbB0.net]
シンボリック定数使えなんて誰も言ってなくね?
(まあC#はマルチパラダイム言語だが)

改行文字を判別するならエスケープシーケンス使えよと思うし
制御文字を判別するならIsControl使えよと思う場面だな、>>35

44 名前:デフォルトの名無しさん (ワッチョイ c37b-jLml) mailto:sage [2016/10/11(火) 22:06:20.93 ID:iuxGk4et0.net]
まあそもそも1行ずつ読むならTextReader使えという場面だな

45 名前:デフォルトの名無しさん (ワッチョイ d273-lsIp) mailto:sage [2016/10/11(火) 22:56:13.62 ID:z6hY1vfh0.net]
XMLの読み込み書き込みで質問なのですが

<?xml version="1.0" encoding="UTF-8"?>
-<Class1>
<id>100</id>
<name>List100</name>
-<Class1>

↑のようなXMLの場合は

public class SetTest
{
private string _id;
private string _List;

public string id
{
get { return _id; }
set { _id = value; }
}

public string List
{
get { return _List; }
set { _List = value; }
}
}

46 名前:デフォルトの名無しさん (ワッチョイ d273-lsIp) mailto:sage [2016/10/11(火) 22:59:05.10 ID:z6hY1vfh0.net]
>>45
// データ
SetTest settings = new SetTest();
settings.id = "idテスト";
settings.List = "Listテスト";

// ファイルに保存
XmlSerializer serializer = new XmlSerializer(typeof(SetTest));
// ファイルで書き出す
FileStream fs = new FileStream(Directory.GetCurrentDirectory() + "\\" + "テスト.xml", FileMode.Create);
// XMLファイルに書き込む
serializer.Serialize(fs, settings);
fs.Close();

でいけると思うのですが

47 名前:デフォルトの名無しさん (ワッチョイ d273-lsIp) mailto:sage [2016/10/11(火) 22:59:36.45 ID:z6hY1vfh0.net]
>>46

↓のようなXMLの読み込み、書き込みはどうしたらやれますか?
-<Class1>
<title>ti</title>

-<items>
-<item>
<id>100</id>
<name>List100</name>
</item>
</items>

-<items>
-<item>
<id>101</id>
<name>List101</name>
</item>
</items>
</Class1>>>46

48 名前:デフォルトの名無しさん (ワッチョイ 21dc-+EyG) mailto:sage [2016/10/11(火) 23:43:53.68 ID:aUckxkie0.net]
手軽に読み書きしたいならSystem.Xml.Linq

49 名前:デフォルトの名無しさん (ワッチョイ d273-lsIp) mailto:sage [2016/10/12(水) 00:02:48.25 ID:vhGHJWtL0.net]
調べてみます。ありがとうございます。

50 名前:デフォルトの名無しさん (ワッチョイ 707b-lsIp) mailto:sage [2016/10/12(水) 12:22:41.59 ID:rlMzapAH0.net]
>>38
説明不足ですみませんでした。
やはり、13は改行コードなんですね。下のコメントに10と13は改行コードと書いてたので、これじゃないかと思ってたのですが・・。
でも、32は書いてなかったので、質問しないとわかりませんでしたが。
丁寧な解説で、馬鹿な自分でもよくわかりました。
レス&解説ありがとうございました。

>>39
.NETでゲームを作る本は3冊(どれも古い)しかなくて、自分的には貴重だと思うんですよね。



51 名前:デフォルトの名無しさん (ワッチョイ 9ee1-xaNP) mailto:sage [2016/10/12(水) 12:27:22.50 ID:hi5pDFH90.net]
>>50
Unity使えよ・・・
WinFormsとかWPFはものにもよるけどゲームには向いてないぞ

52 名前:デフォルトの名無しさん (ワッチョイ ab0d-yd9a) [2016/10/12(水) 15:37:01.20 ID:dzycFkoT0.net]
質問です。
入力されたパスワードをファイルに暗号化して保存するのですが、
暗号化に用いた鍵はどのように保存すればいいでしょうか?

C#は逆コンパイルが簡単なので、単にプログラムの中に埋め込むだけでは危険だと想います。
インターネットに繋がっていなくても実行可能なよい方法を教えてください。

53 名前:デフォルトの名無しさん (ワッチョイ d919-hgF0) mailto:sage [2016/10/12(水) 15:55:30.36 ID:ZPnQqXwN0.net]
ローカルに置く限りはどうとでもなる
安全な置き場所なんて無いからプログラム埋め込みでも別にいいよ

54 名前:デフォルトの名無しさん (スフッ Sda8-xaNP) mailto:sage [2016/10/12(水) 16:41:55.83 ID:DOlHpAMed.net]
>>52
プログラム埋め込みしたうえでアセンブリ難読化でいいんじゃないですか

55 名前:デフォルトの名無しさん (ワッチョイ 21dc-xaNP) mailto:sage [2016/10/12(水) 16:57:13.83 ID:9oDwxE2X0.net]
アプリ自体にパスワード認証を入れるってこと?
それならパスワードは例え暗号化された形であっても一切保管しないのがセオリー
疑似コードで説明するとこんな感じ
void パスワード設定(パスワード) {
ファイルに保存("認証情報.txt", ハッシュ関数(パスワード))
}
bool パスワード認証(パスワード) {
return ハッシュ関数(パスワード) == ファイル読込("認証情報.txt"))
}
ハッシュ関数はSHA256あたり使えばいい
こうするとHDDの内容が流出しようがパスワードが漏れることはない
さらに辞書攻撃対策として、パスワードに適当に決まった文字列(ソルト)を付加してやるとより強固になる

56 名前:デフォルトの名無しさん (ワッチョイ 0dd9-VEeh) mailto:sage [2016/10/12(水) 16:59:10.98 ID:McueY18J0.net]
chromeは、今もそうかは知らないが
パスワードを平文で保存してたよ

曰わく、わざわざ暗号化して保存することで無知なユーザーに偽りの安心感を与えるのは却って害だ
とのこと

57 名前:デフォルトの名無しさん (ワッチョイ 353c-yd9a) mailto:sage [2016/10/12(水) 17:08:00.81 ID:ENho6ZSf0.net]
>ローカルに置く限りはどうとでもなる
まーこれだね

スタンドアロンで動作させるのが要件なら
鍵を複数に分割してバラバラの場所に埋め込むとかで、復号を面倒にするくらいが関の山じゃないか

58 名前:デフォルトの名無しさん (アウアウ Sa76-juU9) mailto:sage [2016/10/12(水) 17:13:10.57 ID:istexQmRa.net]
パスワード保存するってことは結局第三者であってもそのプログラムを経由したら
パスワードを知ってるのと同じことになるってことだから、よく考えればそれならそもそも別に
平文で保存したって大差ないような気もする。

まあそうは言っても体面もあるから、言い訳程度に暗号化しとけば十分なのでは

59 名前:デフォルトの名無しさん (ワッチョイ ab0d-yd9a) [2016/10/12(水) 17:47:32.16 ID:dzycFkoT0.net]
みなさんありがとうございます
すべて参考にさせて頂き熟考します

60 名前:デフォルトの名無しさん (ワッチョイ ab49-LThL) mailto:sage [2016/10/12(水) 18:49:52.25 ID:BdIUeyBr0.net]
っキーコンテナ



61 名前:デフォルトの名無しさん (ワッチョイ fc42-lsIp) [2016/10/12(水) 18:51:17.74 ID:S29qi1Dw0.net]
Win10 のエクスプローラでひとつの jpg ファイルを選択して開きたいのですが
初めて開くフォルダでは選択されません (png なんかもなるようです)
こちらと同じ
dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=33133&no=0

上のリンクでは SHOpenFolderAndSelectItems で解決とあるものの
jpg が 1 万枚とか大量にあるとやはり初回は選択されません
初回のもたつきが選択の処理を阻害している感じです

二度実行すれば大丈夫なようですがもっとスマートな策はないものでしょうか
良い方法を教えてください

62 名前:デフォルトの名無しさん (ワッチョイ c37b-jLml) mailto:sage [2016/10/12(水) 19:12:24.70 ID:XzbrdxqH0.net]
Process.Startで関連づけで開いたら駄目?

63 名前:61 (ワッチョイ fc42-lsIp) mailto:sage [2016/10/12(水) 20:24:14.25 ID:S29qi1Dw0.net]
>>62
ありがとうございます
関連づけ、というのがよくわかりませんが当方の環境でそのまま指定すると
jpg のビューアとクイックアクセスでエクスプローラが起動します
もし可能であっても関連付けなど環境を変えることはできないですねスミマセン
何か勘違いしていましたらご指摘ください

ちなみに Process.Start("explorer.exe", "/select,***") だとまったくダメで
(C# からでなく直接コマンド打っても同じです)
SHOpenFolderAndSelectItems だとマシになるといった感じです

64 名前:デフォルトの名無しさん (ワッチョイ c37b-jLml) mailto:sage [2016/10/12(水) 20:28:54.30 ID:XzbrdxqH0.net]
Process.Start("hoge.jpg");
ってやることなんだけど

65 名前:デフォルトの名無しさん (アウアウ Sa76-juU9) mailto:sage [2016/10/12(水) 21:01:48.75 ID:istexQmRa.net]
VBScriptだと、既に開いてるExploreのウィンドウを捕まえて
操作できるみたいだから、同じことがC#でも出来れば必要なら何度か
リトライできそうだけど、どうやるんだろうねえ。
www.tek-tips.com/viewthread.cfm?qid=1759903

66 名前:デフォルトの名無しさん (ワッチョイ 5c7b-pu+C) mailto:sage [2016/10/12(水) 21:18:27.66 ID:8upkYudZ0.net]
>上のリンクでは SHOpenFolderAndSelectItems で解決とあるものの
よくある「ファイルの場所をエクスプローラで開く」ってこと?

そのdobonの記事内にある
stackoverflow.com/questions/3018002/c-how-to-use-shopenfolderandselectitems
のコード使ってファイル6000個程度で試したけど手元の環境ではもたついても最終的には正確に選択されたが
フォルダまたいでも選択されることに驚いた

67 名前:デフォルトの名無しさん (ワッチョイ 7694-MJqz) mailto:sage [2016/10/12(水) 21:41:21.77 ID:y0Sdxi7M0.net]
Func<int> func = () => 3;
var i = func.Invoke();

このInvokeとは何ぞや?
動き的にはfuncを実行してるんだなってわかるけど。
Invokeを右クリックして定義に移動しても出てこないし。

68 名前:デフォルトの名無しさん (アウアウ Sa76-juU9) mailto:sage [2016/10/12(水) 21:52:34.16 ID:istexQmRa.net]
>>67
https://msdn.microsoft.com/ja-jp/library/system.delegate.aspx

69 名前:デフォルトの名無しさん (アウアウ Sac5-xaNP) mailto:sage [2016/10/12(水) 21:58:33.95 ID:5VjkdN+Ga.net]
書いてる通りSystem.Delegateのメンバで、ただ実行するだけのメソッド

70 名前:デフォルトの名無しさん (ワッチョイ 7694-MJqz) mailto:sage [2016/10/12(水) 22:18:37.21 ID:y0Sdxi7M0.net]
DynamicInvokeメソッドはあるけどInvokeメソッドがないよ?



71 名前:デフォルトの名無しさん (アウアウ Sa76-juU9) mailto:sage [2016/10/12(水) 22:20:42.72 ID:istexQmRa.net]
>>70
だから>>68にちゃんと説明があるよ

72 名前:デフォルトの名無しさん (ワッチョイ 7694-MJqz) mailto:sage [2016/10/12(水) 22:23:02.23 ID:y0Sdxi7M0.net]
これ?意味不明。
>共通言語ランタイムが提供する Invoke デリゲートと同じシグネチャを持つ各デリゲート型の方法です。
>コンパイラは、それを自動的に呼び出すために、このメソッドは、c#、Visual Basic または Visual C から明示的に呼び出す必要はありません。
>Invoke メソッドは リフレクション 、デリゲートのシグネチャを検索する場合。

73 名前:デフォルトの名無しさん (ワッチョイ 21dc-+EyG) mailto:sage [2016/10/12(水) 22:23:25.00 ID:9oDwxE2X0.net]
InvokeはSystem.Delegateクラスではなく「デリゲート型」に定義されている
デリゲート型っていうのは delegate T Func<T>(); のようにdelegateキーワードで定義される型のことね
で、通常のデリゲート呼び出しの構文 func() は func.Invoke() のシンタックスシュガー

74 名前:デフォルトの名無しさん (ワッチョイ 7694-MJqz) mailto:sage [2016/10/12(水) 22:27:44.44 ID:y0Sdxi7M0.net]
なるほど

75 名前:デフォルトの名無しさん (アウアウ Sa76-juU9) mailto:sage [2016/10/12(水) 22:31:04.83 ID:istexQmRa.net]
>>72
機械翻訳が意味不明だから、古いバージョンのドキュメントを読んだ方がいいかもね

76 名前:デフォルトの名無しさん (アウアウ Sa76-juU9) mailto:sage [2016/10/12(水) 22:32:26.53 ID:istexQmRa.net]
>>73
おいおい本当かよそれw

77 名前:デフォルトの名無しさん (ワッチョイ d91e-xaNP) mailto:sage [2016/10/12(水) 22:52:16.65 ID:x6Yo9Mwa0.net]
一応張っておくぜ
stackoverflow.com/questions/16309286/funct-vs-funct-invoke

78 名前:デフォルトの名無しさん (ワッチョイ f93a-xaNP) mailto:sage [2016/10/12(水) 23:07:59.70 ID:GJ+oagFT0.net]
null条件演算子が出来てから、Invoke()の出番が増えたなぁ

79 名前:デフォルトの名無しさん (アウアウ Sac5-xaNP) mailto:sage [2016/10/12(水) 23:44:05.17 ID:44xB4wBga.net]
ほんとに最近C#の勉強始めた者です。
Visual Studioの使い方がよくわからなくて……「新しいプロジェクト」から「空のプロジェクト」で、プログラムを書くのが良かったのですが、いつの間にかこの項目が消えて選べなくなりました。他はアプリを作るようなモードなので使いづらいです。。どうしてですか?

80 名前:デフォルトの名無しさん (ワッチョイ 877b-nzJn) mailto:sage [2016/10/13(木) 00:52:36.58 ID:aniHJH6t0.net]
そもそも、空のプロジェクトの意味がわからない

画面を持つなら、Form だし、ライブラリを作るなら、DLL だろ。
それ以外にあるのか?



81 名前:デフォルトの名無しさん (スフッ Sd4f-Oa01) mailto:sage [2016/10/13(木) 01:42:20.09 ID:HIdK+zqJd.net]
>>80
Visual C++のところに空のプロジェクトがあるだろ

82 名前:デフォルトの名無しさん (ワッチョイ 1b9f-c7dp) mailto:sage [2016/10/13(木) 03:33:19.33 ID:eeNekR2j0.net]
左のインストール済み→テンプレート→Visual C#→Windowsデスクトップの中

83 名前:デフォルトの名無しさん (ワッチョイ 8331-8qPS) mailto:sage [2016/10/13(木) 05:13:31.24 ID:XSmxsz+k0.net]
デスクトップアプリなんですが、
プログラム起動時にユーザーログインとテキストファイルの読み込みを行っています
で、それらの情報をいつでもアクセス出来るようStaticクラスに持たせているのですが
このような方法は特に問題ないでしょうか?
もっといい方法や推奨される方法があれば教えてください

84 名前:デフォルトの名無しさん (ブーイモ MM4f-DI90) mailto:sage [2016/10/13(木) 07:46:56.79 ID:d/dyHEl/M.net]
そういう作りは依存関係が暗黙化されてわかりにくくなるよ
そのクラスをインスタンスにして必要なクラスのコンストラクタで渡せばいい

85 名前:デフォルトの名無しさん (ワッチョイ bbdc-Oa01) mailto:sage [2016/10/13(木) 08:06:32.92 ID:U+TNkLbY0.net]
別のクラスの処理がテキストファイル内のパラメータに依存してたりすると、
単体テストのときテストケースの数だけいちいちファイル用意しないといけなくて面倒
>>84のように外から渡した上でインターフェイス経由でアクセスするのが理想
インスタンスをシングルトンで保持しておくのは構わないけど、それに直接アクセスしていいのは呼び出し階層の一番上だけ
他は常にコンストラクタかプロパティで渡す
面倒ならDIコンテナを使ってシングルインスタンスを注入する手もある

86 名前:デフォルトの名無しさん (ドコグロ MM97-Oa01) mailto:sage [2016/10/13(木) 08:43:31.40 ID:CLiojDhVM.net]
>>83
ごく少数
かつ
それが色々な場所で使われる
なら
ありだと思う

>>84-85 みたいな頭でっかちの一見正論は常に役に立つ訳じゃないから無視していい

87 名前:61 (ワッチョイ 8742-8qPS) mailto:sage [2016/10/13(木) 10:18:41.87 ID:T2aLctg20.net]
皆様ありがとうございます


>>64
jpg に対するビューアで表示されますので難しいのかなと
>>62 で「ビューアとクイックアクセスでエクスプローラが」と言いましたがビューアだけでした


>>65
リンク先のスクリプト当方ではなぜかうまく動きませんね
今のところこれを C# で実現する技量も持ってないです
表示させたエクスプローラを操作してというアプローチも検討していましたが
素人にはキツそうで他の安易な手法を模索中です


>>66
確かに 6,000 であれば選択しますね!これは知りませんでした
しかし 10,000 になると当方の環境ではほぼ選択されません

これまで single item のコードを元に実行していましたが
複数可のほうのコードで同じファイル名を重複して指定すると
10,000 で

88 名前:れば選択されることが分かりました
ただ 20,000 などもっと増えるとダメなようです

二重実行だと 20,000 でも選択されるのでやはりこれで手を打つべき?
[]
[ここ壊れてます]

89 名前:デフォルトの名無しさん (アウアウ Saff-+9sP) mailto:sage [2016/10/13(木) 11:10:13.49 ID:D/S7S9qga.net]
>>83
本当に共通の情報を複数から参照する必要があるのであればそれを一つのクラスにまとめてもいいけど、
単に永続化が必要な情報であるという理由だけで一つにまとめている(各々そのクラスにアクセスするのは
共通の情報ではなくそれぞれ別の情報)のであれば明らかに間違ってるな。

明確に理由は説明できないけど、staticなインスタンスではなくstaticクラスを使うのも
個人的にはちょっと違う気がする。

90 名前:デフォルトの名無しさん (ワッチョイ d77b-8qPS) mailto:sage [2016/10/13(木) 12:55:57.73 ID:QpGu+ou60.net]
>>51
.NETで基礎を磨きたくて、ゲーム作りならモチベも下がらずにやれるかなと思ってこの本にしたんです。
参考書も購入済みなので、本格的なゲームを作る時はUnityを使いますよ。



91 名前:デフォルトの名無しさん (ワッチョイ d77b-8qPS) mailto:sage [2016/10/13(木) 13:09:35.62 ID:QpGu+ou60.net]
>>79
Blend for visualstudioを選んでませんか?
これだと空のプロジェクトの項目はないので、visualstudio20xx(xxは自分がDLしたバージョン)を起動してください。
visualstudio20xxを起動させているなら、新規作成 > プロジェクト > visualC# > Windows > クラシックデスクトップにすれば出てきますよ。

92 名前:デフォルトの名無しさん (アウアウ Sa97-Oa01) mailto:sage [2016/10/13(木) 13:44:34.25 ID:OsInCkTea.net]
>>90
いろいろ調べて、Express for Desktopというのをインストールしたところうまくいきました。ありがとうございます。

93 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/13(木) 16:59:59.60 ID:Yv6P+Iys0.net]
正規表現使ってファイルパスの一部を置き換え(消去)したいんですが、
パターンを書いてみたのですが、うまくいきませんでした

"C:\Users\PCname\test\file.xlsx"

このファイルパスを表す文字列のfile.xlsx部分だけを消去したいです

94 名前:デフォルトの名無しさん (スプッッ Sdcf-Oa01) mailto:sage [2016/10/13(木) 17:10:05.54 ID:mZgNLhHCd.net]
>>92
正規表現にこだわらないなら、Pathクラス使った方が簡単じゃないか?

Path.GetDirectoryName メソッド
https://msdn.microsoft.com/ja-jp/library/system.io.path.getdirectoryname.aspx

95 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/13(木) 17:17:53.92 ID:Yv6P+Iys0.net]
>>93
こんな便利なメソッドがあったんですね
回答ありがとうございました、無事にできました。

96 名前:デフォルトの名無しさん (ブーイモ MM4f-DI90) mailto:sage [2016/10/13(木) 20:02:29.09 ID:HwCkNWajM.net]
>>86
またまたご冗談を
いろいろな場所で使われる静的なインフラクラスとかただの悪夢じゃないですか

97 名前:デフォルトの名無しさん (スフッ Sd4f-Oa01) mailto:sage [2016/10/13(木) 23:29:34.82 ID:tcMW2ABkd.net]
>>86
賛成です

98 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/14(金) 11:32:00.91 ID:5Y7KbdSJr.net]
wpf使わなくてもVisualStudioやPhotoshopみたいなブラック基調のFormデザインって作れる?

99 名前:デフォルトの名無しさん (ワッチョイ bbdc-Oa01) mailto:sage [2016/10/14(金) 11:46:46.23 ID:xv7XrH2t0.net]
簡単にというなら不可能
そもそもWPFやWebブラウザは何もないところにGUI部品っぽいものを独自に描画してるわけで、
WPFやElectronで作る場合の100倍の工数かけてそれと同じようにスクラッチすれば可能

100 名前:デフォルトの名無しさん (ワッチョイ 4f4c-Oa01) mailto:sage [2016/10/14(金) 12:10:54.76 ID:SyTitZMd0.net]
Designing XAML in Visual Studioからみてけば



101 名前:デフォルトの名無しさん (ワッチョイ 9f23-8qPS) mailto:sage [2016/10/14(金) 13:39:00.09 ID:D2RLd37K0.net]
>>98
たしかに面倒だが、100倍も掛かるわけでもないよ
部品をフラットにして、スライダーみたいな複雑なのを諦めるとか
工夫次第でなんとかなる

102 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/14(金) 14:05:32.92 ID:5Y7KbdSJr.net]
ありがと!
面倒だからやめた

103 名前:デフォルトの名無しさん (ラクラッペ MMf7-8qPS) mailto:sage [2016/10/14(金) 16:58:20.50 ID:WrhxhBRqM.net]
dataSetの最大行数や最大列数なら取得できるのですが、指定した行の列数を取得する方法がわかりません。
どう書けば指定した行の列数を取得できるようになるでしょうか?。

最大行数の取得
dataSet.Tables["DataTable"].Rows.Count;

最大列数の取得
dataSet.Tables["DataTable"].Columns.Count;

104 名前:デフォルトの名無しさん (ワッチョイ bb94-NvRm) mailto:sage [2016/10/14(金) 18:29:38.87 ID:xiSagSQl0.net]
列数って行ごとに違ったりする?

105 名前:デフォルトの名無しさん (ラクラッペ MMf7-XnCm) [2016/10/14(金) 20:28:29.33 ID:O8TwfpESM.net]
はい。行ごとに列数は変わります。
例えば、0行目は1列しかなくて、1行目は5列あり、2行目は3列しかなかったりします。
ちなみに、列の最大数より少ない行の列(使われてない列)には、空欄になってます。(dataGridViewやxmlファイルで見ると)

106 名前:デフォルトの名無しさん (ワッチョイ 83c0-8qPS) mailto:sage [2016/10/14(金) 20:35:37.38 ID:XcyjZEXI0.net]
>>104
それ値にnullが入っているだけで列そのものは存在しているよ

107 名前:デフォルトの名無しさん (ラクラッペ MMf7-XnCm) [2016/10/14(金) 20:55:06.25 ID:O8TwfpESM.net]
ということは、最大数と同じですか・・・。
行の列数ごとに処理をしたかったのですが、別の方法を考えたほうがよさそうですね。
レスありがとうございました。

108 名前:デフォルトの名無しさん (ワッチョイ 83c0-8qPS) mailto:sage [2016/10/14(金) 22:05:45.82 ID:XcyjZEXI0.net]
>>106
i行目のnull以外が入っている列の数が欲しいってのなら
dataSet.Tables["DataTable"].Rows[i].ItemArrayで行の値取得してから、ループ回してnull以外の数を数える方法もあるけど
行の列数毎に処理をするという時点で何か違う気もするけど

109 名前:デフォルトの名無しさん (ワッチョイ 2349-ciRE) mailto:sage [2016/10/14(金) 22:15:24.28 ID:naHK2HuB0.net]
>>107
やってることは変わらないけど、LINQですっきり。
dataSet.Tables["DataTable"].Rows[i].ItemArray.Count( x => x != null );

110 名前:デフォルトの名無しさん (ラクラッペ MMf7-XnCm) [2016/10/14(金) 22:16:02.67 ID:O8TwfpESM.net]
>>107
なるほど、そんな手もあるんですか。
処理といっても難しいものではなく、○行目の○列目が空なら次の行へいくというような処理です。
それを最



111 名前:後の行までやる単純な処理です。 []
[ここ壊れてます]

112 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/15(土) 03:32:09.91 ID:zqId9pk40.net]
c#を勉強中なのですが、WEBサイトにログインし、そのクッキーを取得する部分で躓いてしまいました。
語学も勉強中ですので、ja.forvo.comにアクセスするツールを勉強がてらに作ってみようと思ったのですが、
アクセスパラメタはlogin passeordの2種類しかないように見えるのですが、どこが間違っているかわかりません。

ContentLength>0 または SendChunked==true を設定する場合には要求本体を指定する必要があります。
と出てくるので、パラメタ関連だと思うのですが、どこか見落としているんでしょうか?

https://dotnetfiddle.net/s5RJok

113 名前:デフォルトの名無しさん (ワッチョイ 1b9f-c7dp) mailto:sage [2016/10/15(土) 04:14:59.65 ID:Rly0bTEF0.net]
>>110
GetResponseする前ににパラメータを送信してない
using (Stream requestStream = Request.GetRequestStream()) {
requestStream.Write(data, 0, data.Length);
}

114 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/15(土) 04:24:50.76 ID:zqId9pk40.net]
>>111
本当ですね、なんという凡ミス・・・
POSTを実行し忘れていました
回答ありがとうございました、無事にできました。

115 名前:デフォルトの名無しさん (ワッチョイ 8b3c-8qPS) mailto:sage [2016/10/15(土) 07:58:43.10 ID:aLbial8Z0.net]
言語面は大変でも構わないがGUIが楽に出来る事、
windowsでさえ動けばそれで良い、
コンパイラは無料であること、
言語の情報収集が書籍に頼らずとも、検索したら日本語でいっぱい出てくること。

って条件を提示したらC#って言われたんだよね。
ここまで合ってる?


で、ちょっとやってみたんだけど、CUIはすぐに満足行く程度に出来ました。(ハノイの塔や乱数生成など)。
でもウィンドウの表示とか描画はかなり意味が良く分かりませんでした。
GUIは楽ではないのでしょうか?
あと、検索方法やサイトがよく分かりませんでしたので、GUIを学ぶのに良さそうなサイト教えてください。
ちなみにCやC++やRubyはできますが、GUIは一度もやったことありません。

116 名前:デフォルトの名無しさん (ワッチョイ bbdc-Oa01) mailto:sage [2016/10/15(土) 09:25:22.99 ID:k370RUkX0.net]
そりゃお前がGUIに慣れてないだけだろ
C#のGUIフレームワークはVB.NETと共通
頭の弱いVBer連中にできてお前にできないなんてありえないから安心しろ

117 名前:デフォルトの名無しさん (ブーイモ MMf7-DI90) mailto:sage [2016/10/15(土) 10:07:17.04 ID:4a8N/lhaM.net]
>>113
デザイナ開いてコントロール並べてイベントハンドラにやりたい処理を書くだけ

118 名前:デフォルトの名無しさん (ワッチョイ 8742-b88/) [2016/10/15(土) 10:56:08.68 ID:Ep2P5HuE0.net]
>>113
>って条件を提示したらC#って言われたんだよね。
>ここまで合ってる?

合ってる

CUIよりGUIのほうが複雑だからGUI初心者にとって難しく楽ではないのは仕方ない
それでもC#はGUIの作業がかなり簡単になってる
頑張って覚えるしかない。”C# GUI”でググれば色々出てくるからそこから選べばいいんじゃないかな

119 名前:デフォルトの名無しさん (アウアウ Saff-+9sP) mailto:sage [2016/10/15(土) 13:07:47.01 ID:VsUz8hA6a.net]
考えてみたら、WPFはともかくWindows Formも意外と
web上にはまとまったチュートリアルなかった気がするね。
どうやって覚えたんだったかな。

まあWindows Formなら触ってるうちにだんだん分かるとは思う。
GDI+は本格的にやるなら古いペゾルドの本でも買った方がいいかもしれない

120 名前:デフォルトの名無しさん (ワッチョイ 4b79-8qPS) mailto:sage [2016/10/15(土) 15:39:03.38 ID:keBjPhCw0.net]
HTMLが分かるならWPFの方が良い
FormはGUIで組み立てていけるから楽だけど



121 名前:デフォルトの名無しさん (ワッチョイ 877b-nzJn) mailto:sage [2016/10/15(土) 15:41:04.11 ID:CMu4YX8d0.net]
ボタンなどのコントロールを並べるだけなら、HTMLのformと同じだろ

線・円・四角形などを描画するなら、HTML5のCanvas 相当の知識がいる

122 名前:デフォルトの名無しさん (ワッチョイ 875e-8qPS) mailto:sage [2016/10/15(土) 15:55:54.34 ID:Y5UYqbC90.net]
>>113
dobon.net/vb/dotnet/index.html
www.atmarkit.co.jp/ait/subtop/dotnet/
WinFormsならデザイナに適当に並べてイベントをクリックしたらイベントハンドラ自動で配置されるんだからチュートリアルとかいらない気もする

123 名前:113 (ワッチョイ 233c-8qPS) mailto:sage [2016/10/15(土) 17:38:54.02 ID:gUMRUJva0.net]
みなさんありがとう。
GUIの実現方法にもいろいろあるようで。(?)

まぁよく分かってないのですが、しばらく頑張ってみます。

124 名前:デフォルトの名無しさん (ブーイモ MMf7-DI90) mailto:sage [2016/10/15(土) 17:43:06.42 ID:pMgLYSqAM.net]
>>120
悩むところなんてないのにね
素人の新人でも1日あればBMI計算画面程度のものは作れるようになる

125 名前:113 (ワッチョイ 233c-8qPS) mailto:sage [2016/10/15(土) 17:45:41.99 ID:gUMRUJva0.net]
悩んでると言うよりGUIの仕組み自体が良く分からないって感じ
ようするに全部分からん。

126 名前:デフォルトの名無しさん (ワッチョイ ff02-GF32) mailto:sage [2016/10/15(土) 18:36:15.94 ID:i1h9IwSg0.net]
とりあえず、WindowsFormsとWPFとの大きな二つのやり方がある事を理解する必要がある

127 名前:デフォルトの名無しさん (ワッチョイ 67ce-dAUv) mailto:sage [2016/10/15(土) 18:44:07.15 ID:6v+uOgk10.net]
WindowsのGUIはWebや質問で集めた断片的な情報だけじゃVB使いにも劣る半端な物しか作れない
C#や.NETについてはペゾルド本とか定番の書籍とか沢山あるから通読を薦める

128 名前:デフォルトの名無しさん (オッペケ Srd7-310H) mailto:sage [2016/10/15(土) 19:34:08.33 ID:UDl7k1b2r.net]
>>120
WPFでも、それと同じ作り方出来るよん。
メリットがあまり無いから、その方法でやる人がいないだけで。

129 名前:デフォルトの名無しさん (ワッチョイ 83c0-Lzu8) mailto:sage [2016/10/15(土) 19:48:29.68 ID:0Lh6WVUg0.net]
>>126
バインディング考えるとWPFの方が楽でいいけど、ListViewの罫線引くのにも一苦労なのがな

130 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/15(土) 21:45:59.61 ID:auQgHyKEr.net]
今のwinformってdpi変えてもレイアウト崩れないの?



131 名前:デフォルトの名無しさん (ワッチョイ bbdc-x3Zw) mailto:sage [2016/10/15(土) 23:01:02.76 ID:k370RUkX0.net]
今のも糞もWinFormsは2.0を最後に一切更新されてないよ

132 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/15(土) 23:13:33.54 ID:auQgHyKEr.net]
そーなんだ
てことはコントロール並べただけだとdpi変えたら崩れるのか
みんなどう対処してるの?

133 名前:デフォルトの名無しさん (ワッチョイ 837b-n555) mailto:sage [2016/10/15(土) 23:14:29.34 ID:Q3fCLt+y0.net]
一応4でChartが導入されたよ(小声
外部ライブラリ取り込んだだけだけど

134 名前:デフォルトの名無しさん (ワッチョイ 2349-ciRE) mailto:sage [2016/10/15(土) 23:25:23.56 ID:vyO0bokn0.net]
>>129-130
コントロール毎だけど、高DPI対応されてるぞ。(要app.config編集)
EnableWindowsFormsHighDpiAutoResizingとかで調べると出てくる。

135 名前:デフォルトの名無しさん (ワッチョイ 6f66-8qPS) mailto:sage [2016/10/16(日) 17:31:11.11 ID:SS2oz+Dc0.net]
DataGridにバインドした場合通常
[日付][出荷][入荷][在庫]
[10/1][1000][ 0][ 0]

とバインドされますが、これをそのまま
日付 10/1|10/2|10/3|…
出荷 1000| 0| 1000|…
入荷  0|1000| 0|…
在庫  0|1000| 0|…
と横向きに表示したいのですが方法がわかりりません。

何か良い方法があれば教えてください。

136 名前:デフォルトの名無しさん (ワッチョイ 3bcb-Oa01) mailto:sage [2016/10/16(日) 19:05:12.86 ID:+xc9QiVj0.net]
Datagrid 行と列 入れ替え
ってググって出なかったら俺ならあきらめる

137 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/17(月) 11:43:58.15 ID:t0+3o69f0.net]
Aというクラスの変数をBというクラスで変更したいのですが、
グローバル変数って極力使わないほうがいいんですよね?
その場合、どうやって変更すればいいんでしょうか?

138 名前:デフォルトの名無しさん (アウアウ Sa97-DI90) mailto:sage [2016/10/17(月) 12:30:24.66 ID:0QqIT/eXa.net]
アクセサで変更する

139 名前:デフォルトの名無しさん (ワッチョイ 834f-dAUv) mailto:sage [2016/10/17(月) 16:57:58.75 ID:ka6apGFK0.net]
>>133
「C# list 行 列 入れ替え」でググると、いくつか出て来るな
DataGridViewだと出来ないっぽいので、文字列配列でやるしか無さそう

140 名前:デフォルトの名無しさん (ドコグロ MM37-Oa01) mailto:sage [2016/10/17(月) 19:17:50.46 ID:XnOIml5dM.net]
ちゅーかrowヘッダーでええんでは?



141 名前:デフォルトの名無しさん (ワッチョイ bbdc-x3Zw) mailto:sage [2016/10/17(月) 21:43:52.24 ID:8eStTtOD0.net]
>>135
そもそも本当に外から変更する必要があるのかよく考えた方がいい
安易にプロパティ(アクセサ)を使うのはお勧めしない
Aの内部に深く依存した処理ならそれはA自身のインスタンスメソッドにするのが自然

142 名前:デフォルトの名無しさん (オッペケ Srd7-310H) mailto:sage [2016/10/17(月) 22:08:48.29 ID:J1512ejnr.net]
>>135
普通はBにdelegateを持たせてAがRegister

143 名前:デフォルトの名無しさん (ワッチョイ 9f23-8qPS) mailto:sage [2016/10/18(火) 00:15:54.00 ID:5HYuZfg90.net]
BがAを生成するなら特別問題となることはないが、それ以外の場合だと一筋縄ではいかんよね
static classよりprism.unityのようなDIコンテナを検討すると良いかもしれん

144 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/18(火) 01:07:54.24 ID:z7NEdDzIr.net]
作ったアプリのインストーラーって自分で作るの?

145 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/18(火) 01:27:03.65 ID:GSTk/GYq0.net]
>>136
こういう方法があったんですね、無事にできました。
ありがとうございました。

>>139
なぜプロパティを使わないほうがいいのでしょうか?

>>140
delegateを使う方法も調べて勉強してみます、ありがとうございました。

146 名前:デフォルトの名無しさん (アウアウ Saff-+9sP) mailto:sage [2016/10/18(火) 01:50:59.73 ID:ZWaQacsZa.net]
>>143
>>139は別にプロパティを使うなとは言ってないと思うよ

>>135みたいな質問をするレベルの初心者は、本来そのクラスの外部からアクセスさせる必要がない
値まで外部に対して公開してしまいがち。

だからBからAの値を変更したいがどうしたら...以前に、そもそも本当にBからAの値を
変更する必要があるのか、まずそれを再考した方がいいと言ってるだけ恐らく。

147 名前:デフォルトの名無しさん (スププ Sd4f-Oa01) mailto:sage [2016/10/18(火) 02:23:54.86 ID:yFGfvYQ8d.net]
>>142
外注に出してもいいよ

148 名前:デフォルトの名無しさん (フォォーッ MM47-8qPS) mailto:sage [2016/10/18(火) 17:04:32.16 ID:FLRDVYGCM.net]
DataTable.Select メソッドですが、条件に変数やtextBox.Textを入れて判定させることはできないのでしょうか?
もし、できるのであれば、やり方を教えていただけないでしょうか。

149 名前:デフォルトの名無しさん (ワッチョイ 7bd6-8qPS) mailto:sage [2016/10/18(火) 19:22:23.19 ID:t0O03s4a0.net]
var hoge = dt.Select("id = " + textBox.Text);
じゃあかんの?

150 名前:デフォルトの名無しさん (オイコラミネオ MM2f-tncL) mailto:sage [2016/10/18(火) 19:42:09.04 ID:kZJdOEPWM.net]
式を文字列で作ったらいいんじゃないかな



151 名前:デフォルトの名無しさん (ワッチョイ 9f23-8qPS) mailto:sage [2016/10/18(火) 21:32:22.49 ID:5HYuZfg90.net]
幾らなんでもSQLインジェクション対策ぐらい考えて作るものでしょ

152 名前:デフォルトの名無しさん (ワッチョイ 2349-ciRE) [2016/10/19(水) 00:35:49.06 ID:D3jR0Y/10.net]
使えるなら、LINQ to DataSet使った方が楽

153 名前:デフォルトの名無しさん (アウアウ Sa3f-Oa01) mailto:sage [2016/10/19(水) 12:21:20.79 ID:uDAkjBGca.net]
アプリの組み込みDBでsqliteを使っているが、別のアプリからそのDBに接続するのは可能?

154 名前:デフォルトの名無しさん (ワッチョイ 9b19-K4Kb) mailto:sage [2016/10/19(水) 13:14:54.61 ID:az2iZHKt0.net]
DBファイルにアクセスさえできるならもちろん
個人的にFirefoxの履歴とか他の自作ツールで見てる

155 名前:デフォルトの名無しさん (ワッチョイ fbeb-pg89) [2016/10/19(水) 16:14:49.10 ID:lVxjSt550.net]
DataGridViewを使ってアプリケーションを作成していますが、
行を追加していくと当然メモリを消費しますが、
行を削除してもメモリが解放されません。
(RemoveAt、Clearなどで削除)

頻繁に行を追加したり削除するプログラムを作成していまして、
そのうちメモリが上限になってしまうのですが、
行を削除したときにメモリを解放するには
どのようにすればよいのでしょうか。
(VS2012です)

156 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/19(水) 16:23:08.57 ID:sakBD/O3r.net]
c#は勝手にメモリ解放するから気にしなくていいんじゃない?

157 名前:デフォルトの名無しさん (ワッチョイ fbeb-pg89) [2016/10/19(水) 16:33:39.48 ID:lVxjSt550.net]
>>154
レスありがとうございます。
私もその認識でいたのですが、
使用メモリが搭載上限(4G)まで行っても解放されないので、
(ガベージコレクタメソッドを使っても)
困っています。

158 名前:デフォルトの名無しさん (ブーイモ MM4f-DI90) mailto:sage [2016/10/19(水) 17:24:56.64 ID:arYWyhLnM.net]
メモリダンプして解析ツールに投げてインスタンス掴んでる犯人を特定して適当に対処すればいいよ

159 名前:デフォルトの名無しさん (ワッチョイ 834f-dAUv) mailto:sage [2016/10/19(水) 17:34:39.90 ID:4Wr5Akus0.net]
どれだけデカいデータを入れてるんだろ?
全然違うとこでメモリを溜め込んでいるのかもしれんし

160 名前:デフォルトの名無しさん (ワッチョイ 1b9f-c7dp) mailto:sage [2016/10/19(水) 19:10:01.37 ID:JZ054bhP0.net]
めんどくさいけどVirtualMode使った方がいいかもね



161 名前:デフォルトの名無しさん (ワッチョイ 875e-8qPS) mailto:sage [2016/10/19(水) 19:51:08.60 ID:8L2TKUho0.net]
DataGridViewに大きなデータを読み込む
→Rows.Clear()とColumns.Clear()とGC.Collect()する
→メモリの消費量変化せず
次に別の小さいデータを読み込む
→Rows.Clear()とColumns.Clear()とGC.Collect()する
→メモリの消費量が減る

どういう仕組みになっているんだろうなw
BitmapとかだとDispose()してnull入れてGC.Collect()するとすぐに反映されるんだが
DatagridViewにnull入れれないしな
見かけ上変わってないだけで実際には他に影響しない可能性もあるし

162 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/19(水) 21:18:49.28 ID:sakBD/O3r.net]
>>159
大きなデータってなに?

163 名前:133 (ワッチョイ 3e66-9S67) mailto:sage [2016/10/20(木) 06:52:10.99 ID:kVktOnSP0.net]
>>134
>>137
諦めてTextBoxを並べてそれっぽく見えるようにしました。

返信ありがとうございました。

164 名前:デフォルトの名無しさん (フォォーッ MM5f-DrBp) [2016/10/20(木) 14:42:52.91 ID:j15LCTLjM.net]
>>147
その方法でできました。
ありがとうございました。
>>148
そのまま記述すると、列で判定されたりしてわからなかったんですよー。

>>150
そのやり方のほうが、処理が早いみたいですね!。
ちょっと勉強したいと思います。



回答してくださった方、ありがとうございました。

165 名前:デフォルトの名無しさん (ワッチョイ 8e94-aczQ) mailto:sage [2016/10/21(金) 06:03:28.62 ID:UXfZS+K/0.net]
モジモジ君大作戦って事か

166 名前:デフォルトの名無しさん (ワッチョイ e03c-AIfR) mailto:sage [2016/10/22(土) 22:16:30.80 ID:v7gcb7o50.net]
プログラムに関しては初心者です。

最近仕事でC#プログラムを作りました。
ある測定装置を制御するプログラムです。

質問です。

データ収集の時、多少時間がかかるので、
「今処理しているんだぞ」という表示をしたく考えています。

今現在はフォーム上に置いたラベルに「データ収集中です」とだけ
表示しています。

何かこれに動き(テキストのバックの色が変わるとか)が付ければ
いいぁと思っているんですが、「処理中に表記する」事に関して
参考になるようなサイト等あれば紹介していただきたいのですが・・・

宜しくお願いします。

167 名前:デフォルトの名無しさん (ワッチョイ 1c5e-AIfR) mailto:sage [2016/10/22(土) 22:21:59.07 ID:kIxm0CI90.net]
>>164
ほかにもあるだろうけどBackgroundWorkerを使う例なら↓
dobon.net/vb/dotnet/programing/progressdialogbw.html
このページではProgressBarを使っているけどReportProgressメソッドに数値を渡せるから後は工夫次第

168 名前:デフォルトの名無しさん (ワッチョイ df49-PUkO) mailto:sage [2016/10/22(土) 23:08:53.61 ID:+hICpl7f0.net]
BackgroundWorkerとか過去の遺物。今から覚えるならIProgress<T>。
www.atmarkit.co.jp/ait/articles/1512/02/news019.html

169 名前:デフォルトの名無しさん (ワッチョイ 213c-YT5Q) mailto:sage [2016/10/22(土) 23:23:07.21 ID:NG/YSHI20.net]
>>165
おじいちゃんかな?

170 名前:デフォルトの名無しさん (アウアウ Sa76-48Mz) mailto:sage [2016/10/22(土) 23:36:06.64 ID:hnOr+aGfa.net]
>>166
BackgroundWorkerって一度も使ったことないけど、
正直、それってEAPより分かりづらくなってないか?



171 名前:デフォルトの名無しさん (ワッチョイ 177b-+OdZ) mailto:sage [2016/10/22(土) 23:36:58.50 ID:Hz0V4lr80.net]
単に実行中ですよハングアップしてるわけじゃないですよって示すだけなら
Style=MarqueeなProgressBarを使う

172 名前:デフォルトの名無しさん (ワッチョイ df49-PUkO) mailto:sage [2016/10/23(日) 00:06:56.07 ID:rBqtbPOF0.net]
>>164
ラベルの背景色を変更するのは簡単だよ。
label.BackColor = Color.Red;
とかで良い。

進捗報告が要らないなら、IProgressとかも使わずにこんな感じ。
(ラベルとプログレスバー)

ideone.com/ilYwnF

173 名前:デフォルトの名無しさん (ワッチョイ 5bdd-YT5Q) mailto:sage [2016/10/23(日) 02:45:59.94 ID:h7gARNSs0.net]
>>164
プログレスバーの出番や

174 名前:デフォルトの名無しさん (ワッチョイ e03c-9S67) mailto:sage [2016/10/23(日) 07:23:09.66 ID:0dR84IuA0.net]
164です。

皆さんいろいろありがとうございます。

>>170

プログラム見て、動きがすぐ読み取れればいいのですが、
いかんせん、初心者でして・・・すみません。
試してみますが、これは表記中になにか動きがあるのですか?

現在はフォーム上のラベルの背景色は変えていて
「データ受信中」
とだけ大きめに表示しています。

いかんせん、データ受信に時間がかかるので、
「データ受信中」のラベル表記に加えて、何か動きをつけて
「動いてまっせ」感を出したいと思っています。

一番いいのは「データ受信中」にラベルが一定間隔で点滅しているようにみえる
ようになればいいと思っていますね。

175 名前:デフォルトの名無しさん (ワッチョイ 8e94-aczQ) mailto:sage [2016/10/23(日) 22:02:41.53 ID:8jE4iVd50.net]
label.Text = "動いてまっせ";

176 名前:デフォルトの名無しさん (ワッチョイ df49-PUkO) mailto:sage [2016/10/23(日) 23:06:14.69 ID:rBqtbPOF0.net]
>>172
>>170はプログレスバーがアニメーションしてる。
ラベルを点滅させたりする機能はないので、やるならタイマー使って自分で実装。

ラベルの背景を点滅させるだけにした例
ideone.com/RvXnz5
上のコードにはタイマーの設定が無いけど、タイマーのプロパティーのIntervalを点滅間隔(msec)に設定して、
Tickイベントをダブルクリックすれば、timer1_Tick()の雛型が出来るよ。

いずれにしろ、時間のかかる処理を実行する場合は、タスク等で非同期処理にする必要がある。
そうしないとGUIが固まるので、動きのある効果を出せない。

177 名前:デフォルトの名無しさん (ワッチョイ 1c7b-AIfR) mailto:sage [2016/10/24(月) 23:19:31.36 ID:zmhV7cki0.net]
配列Aに1,4,6,2,3,5に
配列Bに6,5,3,1,2,4とあるとして、配列Aと同じ順番に配列Bをソートしたいと思っているんですが、
forの2重にしてひとつひとつ比較して並べ替えるしか方法って無いんでしょうか?

178 名前:デフォルトの名無しさん (ワッチョイ 9ddc-A7+C) mailto:sage [2016/10/24(月) 23:32:54.72 ID:b4iOClrl0.net]
var bdict = 配列B.ToDictionary(b => b);
var sorted = from a in 配列A where bdict.ContainsKey(a) select bdict[a];

179 名前:デフォルトの名無しさん (ワッチョイ dfc0-9S67) mailto:sage [2016/10/24(月) 23:34:24.42 ID:+Pg3OEGx0.net]
クエリ式がどうも好きになれないのはなんでなんだろうな

180 名前:デフォルトの名無しさん (ワッチョイ 1c7b-AIfR) mailto:sage [2016/10/25(火) 00:03:13.22 ID:guF/luut0.net]
>>176
ありがとうございました。

>>177
自分もクエリ式勉強中なのですが、どうも慣れていないせいか
しっくりこないです・・・



181 名前:デフォルトの名無しさん (ワッチョイ 9ddc-A7+C) mailto:sage [2016/10/25(火) 00:16:44.02 ID:ZSR0a5K90.net]
宣言的すぎるからじゃね
メソッド形式は高度に抽象化されてるとはいえ内部の手続きはまだなんとか透けて見える
ML系の本格的な関数型言語を学ぶとクエリ式の方が自然に感じられるようになる

182 名前:デフォルトの名無しさん (アウアウ Sa76-48Mz) mailto:sage [2016/10/25(火) 00:22:06.79 ID:vHFAVaN6a.net]
同じ順番にソートってそれコピーと同じじゃないのかって気がするんだけど...

183 名前:デフォルトの名無しさん (ワッチョイ 1c7b-AIfR) mailto:sage [2016/10/25(火) 00:41:40.24 ID:guF/luut0.net]
>>180
あ・・・・・
そりゃそうですよねw

184 名前:デフォルトの名無しさん (ワッチョイ 1c7b-AIfR) mailto:sage [2016/10/25(火) 01:28:34.91 ID:guF/luut0.net]
連投失礼します。

>>180
コピーのような気がしたんですが、自分がやりたかったことでいうと、
xlsxの中に画像ファイル名、画像説明を順不同で入っている
画像名と説明をジャグ配列に格納(配列A)
画像ファイルのパスを配列Bに格納
配列Bを配列Aのファイル名順にソート

ということがしたかったので、やはり上で教えていただいたとおりにしたほうがコードがすっきりしました。

185 名前:デフォルトの名無しさん (アウアウ Sa27-YT5Q) mailto:sage [2016/10/25(火) 02:09:08.09 ID:RwrgdaWZa.net]
>>182
画像名と説明とパスを持つオブジェクト作って、その配列を持っとけばいいんでないの?
比較のインターフェイスの実装でファイル名を比較するようにすれば、なんとでもなるような。

別の配列に従ってソートとか、関係無いものでソートしているようで気持ち悪いし、おいおい困りそう。

186 名前:デフォルトの名無しさん (ワッチョイ 9ddc-YT5Q) mailto:sage [2016/10/25(火) 06:43:34.05 ID:ZSR0a5K90.net]
俺も好きではないが、ソートキーと値が別の配列ってのはそんなに珍しい状況ではないだろ
実際、そのものズバリなメソッドがある
https://msdn.microsoft.com/ja-jp/library/85y6y2d3(v=vs.110).aspx

187 名前:デフォルトの名無しさん (ブーイモ MM6d-vevC) mailto:sage [2016/10/25(火) 06:59:06.17 ID:NvEtdSjAM.net]
データ配列とその各要素へのアドレスを格納した配列を用意してアドレスだけ並べ換えるとか昔はよくやったものだ

188 名前:デフォルトの名無しさん (スププ Sdb8-YT5Q) mailto:sage [2016/10/25(火) 12:26:17.11 ID:74VODe2Id.net]
>>184
おー、これは勉強になる。ありがとう。
>>185
ポインタの配列と聞かれると確かに納得感あるな。

189 名前:デフォルトの名無しさん (ワッチョイ ed87-l6JH) [2016/10/25(火) 13:05:36.36 ID:uBRc/ViR0.net]
>>156-159
先日はレスありがとうございました。
アプリケーションの使われ方で根本的な問題があって、一旦棚上げしております。

次にお聞きしたいことがありまして、
DataGridViewの通常モード(not仮想モード)で、
画面に表示されているときだけ、決まったセルに画像を表示し、
スクロールされて画面外に出たときはその画像を削除する方法はありますでしょうか。

仮想モードを使えない理由は、DataGridViewのテーブルを動的に作成しており、
インプットデータとDataGridViewのあるセルの数値を見て、
新規行を追加するかしないかを判定してるため、予め最終的な行数がわからないためです。

190 名前:デフォルトの名無しさん (ワッチョイ ed87-l6JH) [2016/10/25(火) 15:51:31.59 ID:uBRc/ViR0.net]
>>187ですがとりあえず自己解決しました。

ですが、フォームのサイズを変更されると、
現在見えてる行数が変わるのですが、
それが取得出来なくて、表示処理に苦心しております。

最終手段はDataGridViewのサイズから行の高さで割り返して
求めるしかないとかと思っていますが、
他にスマートな方法などありますでしょうか。



191 名前:デフォルトの名無しさん (ワッチョイ 5d94-iDGi) mailto:sage [2016/10/25(火) 16:25:22.37 ID:7TH0YyHm0.net]
Rows.GetRowCount(DataGridViewElementStates.Displayed)
ではうまくいかない?

192 名前:デフォルトの名無しさん (ワッチョイ ed87-l6JH) [2016/10/25(火) 16:31:54.92 ID:uBRc/ViR0.net]
>>189
ありがとうございます!
見事取得することが出来ました!
感謝です!

193 名前:デフォルトの名無しさん (ワッチョイ e03c-9S67) mailto:sage [2016/10/25(火) 20:52:27.11 ID:c343kGsU0.net]
>>174
ありがとうございます。
参考にします。

194 名前:デフォルトの名無しさん (ワッチョイ fb0d-JJ20) [2016/10/27(木) 09:31:19.17 ID:z/oC4hLu0.net]
サードパーティのHogeという名前空間のDLLがあり、
それを自身のMy.Hogeという名前空間上で利用するにはどうしたらいいでしょうか?

using Hoge;
namespace My.Hoge {
 ...
 //Hogeは自身(My.Hoge)の方が参照されてしまいエラーになる
 var fuga = new Hoge.Fuga();

195 名前:デフォルトの名無しさん (ワッチョイ 0319-xC4o) mailto:sage [2016/10/27(木) 09:47:56.97 ID:6XhIQECk0.net]
global::Hoge

196 名前:デフォルトの名無しさん (ワッチョイ fb0d-JJ20) [2016/10/27(木) 09:58:13.92 ID:z/oC4hLu0.net]
>>193
できました!ありがとうございます!!

197 名前:デフォルトの名無しさん (ワッチョイ a387-corf) [2016/10/27(木) 14:25:21.93 ID:wen2xrAS0.net]
度々の質問で申し訳ありませんが、
DataGridViewで、特定の列のセルが選択されているかどうかを簡単に判定する方法はありますでしょうか。

具体的な例ですと、1列目のセル(どこの行でも良い)が選択されていればtrue、
どこのセルも選択されていないか、他の列のセルが選択されている場合はfalseを得たいと思っています。
なお、選択されているセルが複数列に及んでいる場合、1列目が含まれていればtrueで良いです。

198 名前:デフォルトの名無しさん (JP 0H7f-WjTj) mailto:sage [2016/10/27(木) 14:42:40.44 ID:0JCOu095H.net]
自分なりに調べとるか?

199 名前:デフォルトの名無しさん (ワッチョイ a387-corf) [2016/10/27(木) 14:53:51.07 ID:wen2xrAS0.net]
>>196
レスありがとうございます。
今朝からずっと調べているのですが、
行全体が選択されているときなどは取得する方法はわかったのですが、
セルだけ選択されているときの判定がわからないでいます。

選択されているセルの位置を個別に判定すればもちろんわかるのですが、
すっきりした方法がないかと思い質問させていただきました。

200 名前:デフォルトの名無しさん (ワッチョイ a387-corf) [2016/10/27(木) 17:51:25.17 ID:wen2xrAS0.net]
>>197ですが、
結局個別のセルの列番号を判定して処理することにしました。
ありがとうございました。



201 名前:デフォルトの名無しさん (ワッチョイ 875b-ftE3) mailto:sage [2016/10/30(日) 07:47:13.97 ID:x2/G0x4G0.net]
.NET Native

https://msdn.microsoft.com/ja-jp/library/dn584397(v=vs.110).aspx

202 名前:デフォルトの名無しさん (ワッチョイ e7ed-lCKD) mailto:sage [2016/10/30(日) 10:33:24.81 ID:FLgXsJlx0.net]
EdgeってまだWebBrowserコンポーネントとして
使えないのでしょうか?

203 名前:デフォルトの名無しさん (ワッチョイ e3dc-ijxz) mailto:sage [2016/10/30(日) 20:15:29.09 ID:payAbzEM0.net]
永久に使えないと思うよ
.NETの一番の用途は業務アプリなんだから、
Edgeが更新されて動かへんようになったやないかどないしてくれんねん客の業務止まってんねんぞボケェ!
となるのはMSも嫌だろう

204 名前:デフォルトの名無しさん (ワッチョイ d3a1-O9pn) mailto:sage [2016/10/30(日) 20:52:10.17 ID:MO+ginbx0.net]
UWP(WinRT)以外にedgeが出張って来ることはまず無いと思う

205 名前:デフォルトの名無しさん (ワッチョイ 3f13-Jz20) mailto:sage [2016/10/30(日) 21:22:13.26 ID:qBBSmv5i0.net]
WebブラウザーのコンポーネントがないとWindows10 mobileでハイブリッドアプリ作れないんじゃないの?

206 名前:デフォルトの名無しさん (ワッチョイ 0323-0DI1) mailto:sage [2016/10/30(日) 22:04:35.41 ID:jy83/5Dm0.net]
edge以前に、何もしないとIE7 互換ってのはちょっとな

207 名前:デフォルトの名無しさん (ワッチョイ 9b7b-nx48) mailto:sage [2016/10/31(月) 01:27:08.66 ID:y972gnmv0.net]
>>203
WebViewはStoreAppでもUWPでも用意されてるぞ
なんのエンジン使ってるのかは知らんけど

208 名前:デフォルトの名無しさん (オッペケ Sr7f-Jz20) mailto:sage [2016/11/02(水) 13:52:56.07 ID:QQnK2Nx3r.net]
winformアプリ作くるんだけど、データベースって何使うのがいいの?
別サーバー用意するんじゃなくアプリ単体で解決したいんだ
前にsqLite使ったことあるんだけど
頻繁にロックかかるしファイル丸見えだからあまり現実的じゃないと思った
ちなみにデータベースエンジンとデータベースそのものの区別はわかっとるつもり

209 名前:デフォルトの名無しさん (ワッチョイ 8f4c-Jz20) mailto:sage [2016/11/02(水) 14:07:13.78 ID:g1lvpi1B0.net]
それでもやっぱSQLiteかなー
ファイルベースで解決できるし

210 名前:デフォルトの名無しさん (オッペケ Sr7f-Jz20) mailto:sage [2016/11/02(水) 14:11:59.91 ID:QQnK2Nx3r.net]
>>207
使いやすさでいえばSQLiteなんだけどね
何かの拍子にロックかかったらデータベースファイルをコピーしたファイルを使うしかロック回避できないんだよなあ
まあアクセスできなくなったらコピってそっちにアクセス、でいいんだけど…
あと機密情報とか簡単に見れてしまうのはどうしようもないよね



211 名前:デフォルトの名無しさん (JP 0H7f-WjTj) mailto:sage [2016/11/02(水) 14:16:26.97 ID:008SucRsH.net]
暗号化しとけばいいんでないの

212 名前:デフォルトの名無しさん (オッペケ Sr7f-Jz20) mailto:sage [2016/11/02(水) 14:32:24.63 ID:QQnK2Nx3r.net]
暗号化できるのか…知らんかった

213 名前:デフォルトの名無しさん (ワッチョイ 8723-0DI1) mailto:sage [2016/11/02(水) 16:28:36.49 ID:Rf/eTlDT0.net]
ローカルならmdbと、未だに生き残っているSqlServerCompact4.0てのもあるな
ef6でもサポートしているし、何故かMSが捨てきれていない

214 名前:デフォルトの名無しさん (ワッチョイ 8390-lCKD) mailto:sage [2016/11/02(水) 22:52:02.30 ID:WjbdorWW0.net]
HttpWebRequestとHttpWebResponseを内包したラッパークラス的なものを使っているんですがどうもしっくりきません
呼び出ししてhttpレスポンスコードをによって処理を変えたいときなどかなり不便です
ideone.com/WJJD1C
どんなふうに実装すればいいかアドバイスがほ

215 名前:しいです []
[ここ壊れてます]

216 名前:デフォルトの名無しさん (ワッチョイ e3dc-ijxz) mailto:sage [2016/11/02(水) 23:55:15.23 ID:pD2pdTer0.net]
バカなことしてないでSystem.Net.HttpClientを使いなさい

217 名前:デフォルトの名無しさん (ワッチョイ e990-7tG6) mailto:sage [2016/11/03(木) 13:15:37.09 ID:UTe4MGM80.net]
HttpClientでCookieやUserAgent弄れないと思うんですが・・・
どうにかして自分で自作ラッパー的なものを作りたいです

218 名前:デフォルトの名無しさん (アウアウカー Sab5-DGmA) mailto:sage [2016/11/03(木) 13:17:40.60 ID:ISr+08kWa.net]
十分ラップされてるものをさらにラップしなくてもよくね?

219 名前:デフォルトの名無しさん (ワッチョイ 7b49-XA/h) mailto:sage [2016/11/03(木) 13:23:23.18 ID:5mG4/m370.net]
>>214
どこのガセネタだ。

220 名前:デフォルトの名無しさん (ワッチョイ e990-7tG6) mailto:sage [2016/11/03(木) 14:04:43.28 ID:UTe4MGM80.net]
後学のためにラッパークラスを作りたいというのはダメなのでしょうか?



221 名前:デフォルトの名無しさん (アウアウカー Sab5-DGmA) mailto:sage [2016/11/03(木) 14:08:58.34 ID:ISr+08kWa.net]
それならソケットをラップしたほうが楽しい

222 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 15:05:14.53 ID:qQ11y2tH0.net]
string型を返す関数を使う時って、nullを返す場合を考慮すべきですか?
なんで空文字列""を返してくれないんですか

223 名前:デフォルトの名無しさん (ワッチョイ 7bc0-Xqtn) mailto:sage [2016/11/03(木) 15:29:38.41 ID:k4niuvLf0.net]
string期待するときはIsNullOrEmptyやsNullOrWhiteSpace使うからその辺はあまりこだわってないわ

224 名前:デフォルトの名無しさん (ワッチョイ e93a-DGmA) mailto:sage [2016/11/03(木) 16:26:25.12 ID:ojzMDh+/0.net]
?? ""

225 名前:デフォルトの名無しさん (ワッチョイ 137b-A9qr) mailto:sage [2016/11/03(木) 17:52:26.46 ID:ZHf7iZNF0.net]
XMLのとある要素のテキストを持ってくるメソッドを書くとして、
要素がないのと空要素があるのは区別したいじゃん?
要素がないのは異常、なら例外でも良いけど要素がないのを認めるケースもあるじゃん?

226 名前:デフォルトの名無しさん (ワッチョイ 9694-F00D) mailto:sage [2016/11/03(木) 19:07:59.15 ID:9RMeDev80.net]
パラッパラッパー

227 名前:デフォルトの名無しさん (ワッチョイ bd91-DGmA) mailto:sage [2016/11/03(木) 21:26:17.75 ID:pfzagnMt0.net]
ちなみにnull許容型でシリアライズしたらXMLどうなるん

228 名前:デフォルトの名無しさん (ワッチョイ 01d6-8n5s) mailto:sage [2016/11/03(木) 21:58:25.17 ID:n66bP8+L0.net]
数分で試せるだろ

229 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 22:24:56.14 ID:qQ11y2tH0.net]
沢山ある文字列処理の中に異物のnullが混ざる可能性があるなんて困るよ
作った人頭悪いの?

230 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 22:30:21.05 ID:qQ11y2tH0.net]
属性かなんか1行でstring型にnullが入る可能性を除去したいんだけどできないかなー



231 名前:デフォルトの名無しさん (ワッチョイ 5194-rqdB) mailto:sage [2016/11/03(木) 22:33:10.42 ID:Z2ns8N+e0.net]
>>221 じゃ駄目なの

232 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 22:39:48.45 ID:qQ11y2tH0.net]
>>228
一見して何してるか判らんのはダメなんですよ
>IsNullOrEmpty
こんなの後付けするぐらい無計画に作ったん?

233 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/03(木) 22:42:14.95 ID:Zn5aPZIfa.net]
>>226-227
たぶん頭が悪くて勘違いしてるのは君の方だと思うよw

もちろんメソッドの仕様が不適切な可能性も否定できないが、
空文字とnullを区別するのはむしろ当たり前だし、空文字とは別にnullを
返すことでしか満たせない要件があるのは一般的なことで、
それだけで直ちに間違ってるとは言えない。

234 名前:デフォルトの名無しさん (ブーイモ MM31-m5qj) mailto:sage [2016/11/03(木) 22:43:40.66 ID:sUyi6SurM.net]
??はよく使う演算子だから一見してわからないなら勉強不足だろう

235 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 22:44:00.61 ID:qQ11y2tH0.net]
DBだと定義の段階でNULL含めるかどうかって決められるじゃん
ああいう風にできないの?
string型扱う度にいちいちnull判定なんてしてられないよ

236 名前:デフォルトの名無しさん (ワッチョイ 9030-Tcji) mailto:sage [2016/11/03(木) 22:44:10.88 ID:tnVEjylW0.net]
このやりとり前に見たよ

237 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 22:49:08.44 ID:qQ11y2tH0.net]
>>230
お前が話の論点理解できないほど相当頭悪いのは判った

238 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/03(木) 22:50:02.92 ID:Zn5aPZIfa.net]
絵に描いたようなダメグラマだなこりゃ。
チ〜ン。終わってる

239 名前:デフォルトの名無しさん (ブーイモ MM31-m5qj) mailto:sage [2016/11/03(木) 22:50:47.42 ID:sUyi6SurM.net]
荒らしか

240 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 22:50:51.90 ID:qQ11y2tH0.net]
>>231
そもそも??なんていう意味不明な記号を演算子にする理由がわからない
これならIsNullOrEmptyでも使った方がマシってもんだよ



241 名前:デフォルトの名無しさん (ワッチョイ 9030-Tcji) mailto:sage [2016/11/03(木) 22:51:34.18 ID:tnVEjylW0.net]
>>232
現状はできないので↓にFeature requestを書いてくればいい
https://github.com/dotnet/roslyn/issues
素晴らしいアイデアならC#9あたりで導入されるだろう
ここで愚痴ったところで100年経っても導入されないから行動したまえ
単に愚痴が言いたいだけなら、ここでなく観葉植物にでも聞いて貰いたまえ

242 名前:デフォルトの名無しさん (ワッチョイ 137b-A9qr) mailto:sage [2016/11/03(木) 22:53:06.27 ID:ZHf7iZNF0.net]
>>232
できないよ
nullがいやならC#は無理だね
他の言語に行こう

243 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 22:56:10.34 ID:qQ11y2tH0.net]
いやリフレや属性とかややこしい仕組み用意してる割にそういう事って本当にできないの?って確かめたかったんだけど
やっぱC#ってダメなの?

244 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/03(木) 22:56:39.43 ID:Zn5aPZIfa.net]
っていうか、ID:qQ11y2tH0みたいな発想のプログラマってVBerに多いね。
俗にいう「例外を握りつぶす」ようなことをする困ったちゃんね。

nullを返さない仕様のはずのメソッドがnullを返すことがあればそれはバグだってことがわからないのな。

245 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 22:59:22.69 ID:qQ11y2tH0.net]
>>241
そりゃVB使いに失礼だろ
>>233によると俺以外にも疑問に思ってる奴はいたらしいし

246 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/03(木) 23:00:46.73 ID:Zn5aPZIfa.net]
他にもいることは馬鹿でダメで困ったちゃんでない理由にはならないけどね

247 名前:デフォルトの名無しさん (ワッチョイ 9030-Tcji) mailto:sage [2016/11/03(木) 23:00:48.11 ID:tnVEjylW0.net]
またお前かって暗に言ったつもりだったよ

248 名前:デフォルトの名無しさん (ワッチョイ 9030-Tcji) mailto:sage [2016/11/03(木) 23:01:59.57 ID:tnVEjylW0.net]
まあ、別人なのは本当らしい
向こうは物わかり良かったし

249 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 23:06:23.47 ID:qQ11y2tH0.net]
颯爽とこうすりゃいいだよ!って素晴らしい解決法は出てこないんですか?
ここは無能ばかりですかー

250 名前:デフォルトの名無しさん (ワッチョイ 01d6-8n5s) mailto:sage [2016/11/03(木) 23:06:45.61 ID:n66bP8+L0.net]
nullを完全に排除できるDBって存在するの?



251 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/03(木) 23:06:55.78 ID:K939jIpn0.net]
んー?でもnullが来るときって定義できるよな?
そのケースはどういう対応をする予定なんだ?
仕様にヌケがある問題をコーディングの問題にすり替わってね?

252 名前:デフォルトの名無しさん (ワッチョイ 9030-Tcji) mailto:sage [2016/11/03(木) 23:07:58.07 ID:tnVEjylW0.net]
>>246
いいだよ!ってどこぞの田舎貴族か?
現状はできないので↓にFeature requestを書いてくればいい
https://github.com/dotnet/roslyn/issues
素晴らしいアイデアならC#9あたりで導入されるだろう
ここで愚痴ったところで100年経っても導入されないから行動したまえ
単に愚痴が言いたいだけなら、ここでなく観葉植物にでも聞いて貰いたまえ

253 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/03(木) 23:10:56.52 ID:Zn5aPZIfa.net]
>>249
彼の言ってることは全然素晴らしくない
何か盛大に勘違いしてるだけ
勘違いしてる奴を増長させて他人に迷惑掛けるようなこと言わないのw

254 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 23:11:43.68 ID:qQ11y2tH0.net]
たぶん胡坐をかいてる君らも将来この変な仕様に苦しめられる日が必ず来る
そのときは俺の書き込みを思い出して欲しい

255 名前:デフォルトの名無しさん (ワッチョイ 5194-rqdB) mailto:sage [2016/11/03(木) 23:14:09.69 ID:Z2ns8N+e0.net]
null合体演算子を使ってnull値をあっさりと処理するたびに「一見して判らない」とゴネてた子がいたなーとは思い出すかも

256 名前:デフォルトの名無しさん (ワッチョイ e63c-DGmA) mailto:sage [2016/11/03(木) 23:14:28.83 ID:NjbREez30.net]
>>232
そういうクラスを作ればいいだけ
誰が作るかって?
当然必要としてる人だよね?

257 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 23:15:20.85 ID:qQ11y2tH0.net]
そしてここに書き込むんだよお
またお前かって煽られながらな!
>>249
今のC#の仕様でできないかって主旨だからねえ
将来のC#がどうなろうが興味ないんで

258 名前:デフォルトの名無しさん (ワッチョイ e63c-DGmA) mailto:sage [2016/11/03(木) 23:16:58.79 ID:NjbREez30.net]
>>247
フィールドの not null 属性の話でしょ

259 名前:デフォルトの名無しさん (ワッチョイ 91b6-m5qj) mailto:sage [2016/11/03(木) 23:22:32.46 ID:kHdtgxJa0.net]
プロパティ使ってSet時にnullだったら空文字に変換するとか?

260 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/03(木) 23:25:14.82 ID:K939jIpn0.net]
つーかxmlて最近使う機会が多くなったけど
何がいいのかぶっちゃけわからない
プログラムで扱うならCSVのが遙かに楽だし
客に編集させるならiniファイルのが絶対にいい
100行以上あってネストもそれなりなxmlなんて編集できないだろパンピーじゃ



261 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/03(木) 23:31:06.42 ID:qQ11y2tH0.net]
>そういうクラス
>null合体演算子
仮にそういうクラスや演算子使うとしてもさー
文字列処理する度にあちこちに埋め込むつもりなの君たち?
どうせ書き忘れてぬるぽするだけだろ

262 名前:デフォルトの名無しさん (ワッチョイ e63c-DGmA) mailto:sage [2016/11/03(木) 23:37:31.91 ID:NjbREez30.net]
>>258
> 文字列処理する度にあちこちに埋め込むつもりなの君たち?
意味わからん

263 名前:デフォルトの名無しさん (スップ Sd78-DGmA) mailto:sage [2016/11/03(木) 23:50:23.32 ID:HfUe3JFnd.net]
nullと空文字列を区別できるのは便利だよな

264 名前:デフォルトの名無しさん (ワッチョイ bd76-8Y51) mailto:sage [2016/11/03(木) 23:53:37.53 ID:q/VeKpe70.net]
>>257
もともとパンピーの利用を想定してないと思う。
DTDとか定義して厳密データ交換とかXPath/XSLTでの二次利用想定してたけど
あまりにも面倒なのでJSONとかYAMLに取って代わられてしまったな
HTML4の次を策定したときにXHTMLが主流になれなかった時に終わったと思う


>>258
nullが来ない前提で書いてぬるぽはテストで潰し切るけどなあ。
nullで問題あるなら突っ込んだ時点でNGなんだから
DB絡みならDBの型を全部NOT NULLにしておけばそう発生しないし
全部NOT NULLで定義できないなら結局nullable型(または判定処理)は必要ってことだし

265 名前:デフォルトの名無しさん (スップ Sd78-DGmA) mailto:sage [2016/11/04(金) 00:12:02.56 ID:j7dIV/6vd.net]
>>257
CSVは階層構造に出来ないから扱いにくい

266 名前:デフォルトの名無しさん (ワッチョイ 34ce-uTye) mailto:sage [2016/11/04(金) 00:16:43.73 ID:0ODaAY820.net]
階層構造は必要ない

267 名前:デフォルトの名無しさん (スップ Sd78-DGmA) mailto:sage [2016/11/04(金) 00:22:15.02 ID:j7dIV/6vd.net]
必要ある

268 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/04(金) 00:25:49.04 ID:S7YCyC790.net]
>>262
階層にする意味ねーし

269 名前:デフォルトの名無しさん (スップ Sd78-DGmA) mailto:sage [2016/11/04(金) 00:30:11.38 ID:j7dIV/6vd.net]
意味あるよ

270 名前:デフォルトの名無しさん (ワッチョイ fd4a-DGmA) mailto:sage [2016/11/04(金) 00:31:18.26 ID:t9kfIjwC0.net]
struct のフィールドにする。



271 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/04(金) 00:33:20.91 ID:S7YCyC790.net]
最終的にはどうしたってDBに突っ込む将来が予想できるなら
階層構造なんて取っ払っておいたほうがいい

272 名前:デフォルトの名無しさん (スップ Sd78-DGmA) mailto:sage [2016/11/04(金) 00:35:34.02 ID:j7dIV/6vd.net]
DBに突っ込む予定のデータの話なんかしてません

273 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/04(金) 00:38:47.72 ID:S7YCyC790.net]
>>269
でもね
世の中そーなってんの
なのでツリーを積極的に作る奴はそれだけで無能

まあ、一度xmlで書いてみれば本当に必要だった構造が見えていいかも新内

274 名前:デフォルトの名無しさん (スップ Sd78-DGmA) mailto:sage [2016/11/04(金) 00:41:52.66 ID:j7dIV/6vd.net]
今時XMLやJSON使わないなんて変わった人だねえ

275 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/04(金) 01:07:31.20 ID:S7YCyC790.net]
部品Pを扱う建屋A,C,D,Eとか考えるともうツリーとか邪魔になる

276 名前:デフォルトの名無しさん (ワッチョイ 653c-DGmA) mailto:sage [2016/11/04(金) 01:18:45.12 ID:l35mknxG0.net]
>>272
じゃあとりあえず、適当なcsprojをCSVで書いてごらん

277 名前:デフォルトの名無しさん (ワッチョイ 3ee1-umBA) mailto:sage [2016/11/04(金) 01:36:14.39 ID:9ZtkjL7R0.net]
>>219
みんな頓珍漢なこと言ってるけど、nullを返さないことを保証するのは需要もあるし、すでに標準ライブラリには導入されてる。
もちろん、空文字を返すよりもnullを返すほうが合理的なこともあるから常にnullを返さないわけではないけど

契約プログラミング(Code Contract)
https://msdn.microsoft.com/ja-jp/library/dd264808(v=vs.110).aspx

例えば、String.Concatのソースを見ると
https://referencesource.microsoft.com/#mscorlib/system/string.cs,a17e32697e4baaf6
に以下のような契約が書いてある
Contract.Ensures(Contract.Result<String>() != null);
これは、戻り値がnullではないと保証する、ということ。

逆に、これがない場合はnullを返す可能性を考慮したほうがよい

現状言語仕様レベルでは契約プログラミングは組み込まれていないので、静的な処理をコンパイラの外で行う必要がある
もちろん言語仕様に組み込む要望は出てるが、やることが多すぎて手が回ってないのでまだ入りそうにはない
https://github.com/dotnet/roslyn/issues/119


Swiftみたいに新しい言語ではnullを許容しない型とかもあるんだけど、なんせC#は15年前の仕様を破壊するわけにいかないので

278 名前:デフォルトの名無しさん (ワッチョイ 3ee1-umBA) mailto:sage [2016/11/04(金) 01:43:43.03 ID:9ZtkjL7R0.net]
あ、
>空文字を返すよりもnullを返すほうが合理的なこともあるから常にnullを返さないわけではないけど
っていうのは、非null契約が無いメソッドではってことね
非null契約があれば絶対にnullは返さない

非null契約に違反してnullを返そうとすると、静的処理でエラーになるとか、実行時に例外や強制終了になるはず(自分の認識では)

279 名前:デフォルトの名無しさん (ワッチョイ 7213-DGmA) mailto:sage [2016/11/04(金) 01:44:56.97 ID:fGBbyDJX0.net]
XMLやJSONを使わせないとか老害もいいとこだな

280 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/04(金) 08:12:03.85 ID:S7YCyC790.net]
>>276
データをDBに移しますね
の一言でend
そしてそれはあるあるNo1



281 名前:デフォルトの名無しさん (スフッ Sd28-DGmA) mailto:sage [2016/11/04(金) 08:13:58.66 ID:eeRk3Y1vd.net]
DBに入れるならDBnullなんでは?

282 名前:デフォルトの名無しさん (スフッ Sd28-DGmA) mailto:sage [2016/11/04(金) 08:15:29.14 ID:eeRk3Y1vd.net]
あ、言葉足らずだったな。
DBnullに相当する値か状態を表現したクラスしかないのでは?って。
重いとは思うが、それをXMLにあてればいいと思うけど。

283 名前:デフォルトの名無しさん (ワッチョイ b0da-uTye) [2016/11/04(金) 08:19:28.81 ID:Oa4odGBb0.net]
複数の少数があります
1.5, 3.25, 6.75, 3.375 ....

これら全てが整数になる共通の値を見つけたいのですが、何かいい方法はないでしょうか?
単純に小数点以下が一番長い物に合わせて、1000倍などにしてもいいのかもしれませんが、
できるだけ最小の値にしたいと考えています

284 名前:デフォルトの名無しさん (ワッチョイ b0da-uTye) [2016/11/04(金) 08:22:04.24 ID:Oa4odGBb0.net]
あ、↑は小数を乗算して整数になる、共通で最小の値という意味です
乗算について抜けていましたすみません

285 名前:デフォルトの名無しさん (ワッチョイ 91dc-dKGq) mailto:sage [2016/11/04(金) 08:37:27.49 ID:Fu63hJgb0.net]
10^n倍して全部整数にしてから最大公約数で割れば

286 名前:デフォルトの名無しさん (ワッチョイ e63c-DGmA) mailto:sage [2016/11/04(金) 08:40:47.32 ID:sU8qFob40.net]
>>268
リレーションがなんのためにあると思ってるんだ? w

287 名前:デフォルトの名無しさん (ワッチョイ 3223-8n5s) mailto:sage [2016/11/04(金) 08:41:56.32 ID:Nv4A79J/0.net]
>>281
小数点以下を分数に変換して最小公約数を求めたら良いんじゃないの?

288 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/04(金) 08:53:29.87 ID:S7YCyC790.net]
>>283
それでいいんだよ
xmlで階層にすると悲劇が始まる
idかkey置いて階層は作らないのが正解

289 名前:デフォルトの名無しさん (スップ Sd78-DGmA) mailto:sage [2016/11/04(金) 08:56:20.60 ID:jjNRFD+ud.net]
>>285
>>273

290 名前:デフォルトの名無しさん (ササクッテロレ Spbd-m5qj) mailto:sage [2016/11/04(金) 08:59:28.30 ID:cFPdUXQMp.net]
>>280
単純に10のn乗をかけると循環小数で詰むので分数化するに一票



291 名前:デフォルトの名無しさん (ワッチョイ 7213-DGmA) mailto:sage [2016/11/04(金) 09:01:06.22 ID:fGBbyDJX0.net]
環境設定ファイルとかクラスをシリアライズするだけで済むのにわざわざDB化するとか馬鹿馬鹿しいわ

292 名前:デフォルトの名無しさん (スフッ Sd28-DGmA) mailto:sage [2016/11/04(金) 10:48:32.91 ID:eeRk3Y1vd.net]
120120掛けて、それでもだめなら17掛けて、あとは2から割っていくと良いのでは?
それで端数が出たら、素数で割ってけば良いよ。
だいたい23くらいまで持ってたらきれいな数字になる。
分数化は面倒だろ。

293 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/04(金) 12:29:37.50 ID:whUy0fqsa.net]
>>280
宿題スレかお題スレの方がいいと思うけど、

a = 1.5, b = 3.25, c = 6.75, ....
与えられたすべての小数を整数にする最小の10の乗数をRとする

求める共通の値xが見つかったとき、a * x, b * x, c *x, ....は1以外の公約数を
持たないはずだから(ただしa, b, c, ....がすべて同じ値である場合を除く)
a * R, b * R, c * R, ....の最大公約数をGとするとき、

x = R / G

でいいような気がする。
厳密な証明は知らん

294 名前:デフォルトの名無しさん (ドコグロ MMde-DGmA) mailto:sage [2016/11/04(金) 14:08:33.75 ID:T6Zzc5iHM.net]
>>285
お前は Excel 使っとけ w

295 名前:デフォルトの名無しさん (ドコグロ MMde-DGmA) mailto:sage [2016/11/04(金) 14:10:31.34 ID:T6Zzc5iHM.net]
>>287
単純に分数にすると無理数で詰むので...

296 名前:デフォルトの名無しさん (ワッチョイ d30d-uTye) [2016/11/04(金) 14:56:57.15 ID:al1IuUx20.net]
WPF、MVVMで
ファイルやフォルダの一覧を階層構造のTreeViewで表示したいのですが
EnumerateFileSystemEntries を使って実装する方法を教えてください
参考になるサイトやサンプルでも構いません
自分で探してみても単に取得する処理だけのもの(Viewへの適用などが無い)などしか見当たらず困っています

297 名前:デフォルトの名無しさん (アウアウカー Sab5-DGmA) mailto:sage [2016/11/04(金) 15:41:50.56 ID:zqM+jrKca.net]
>>292
数学的に無理数の範囲でこの問題って解けるのか?
有理数じゃないと無理な気がするけど

298 名前:デフォルトの名無しさん (アウアウカー Sab5-DGmA) mailto:sage [2016/11/04(金) 15:47:46.77 ID:zqM+jrKca.net]
解けないっていうか、特殊な場合を除きほとんど場合解なしが解になると思う

299 名前:デフォルトの名無しさん (ワッチョイ bcdc-dKGq) mailto:sage [2016/11/04(金) 16:23:04.07 ID:V0keAHui0.net]
>>293
オブジェクトツリーが作れたらItemsSourceに放り込んでHierarchicalDataTemplateを定義するだけ

300 名前:デフォルトの名無しさん (ワッチョイ 8a02-2mfK) mailto:sage [2016/11/04(金) 21:51:02.32 ID:tYyOp6nC0.net]
>>294-295
そもそも求める数が整数とか有理数に限るとはどこにも書いてないがな



301 名前:デフォルトの名無しさん (ワッチョイ 3223-8n5s) mailto:sage [2016/11/04(金) 22:23:15.39 ID:Nv4A79J/0.net]
分数の上下桁数を2桁とか3桁程度の実用的な範囲にして、近似値で分数に変換すれば問題ないでしょ
求めたいものが何であるかによるけどね

302 名前:デフォルトの名無しさん (ワッチョイ bcdc-DGmA) mailto:sage [2016/11/05(土) 00:26:17.96 ID:u9ZZUUBm0.net]
>>298
当てずっぽうでやるんならわざわざ分数化しなくても
最初から試しに乗算してみて整数っぽくなったらOKでいいだろw

303 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/05(土) 09:41:59.67 ID:OZKlek+X0.net]
ストレージの評価のため、ファイルを同時書き込みするメソッドを
asyncで書いてみたのですが、100回くらいfor文でコールすると
logx.txtが12個とかしか作られません
処理時間で処理が打ち切られたりするのでしょうか?

private static async void TestM(string i)
{
using (FileStream fs=new FileStream(@"F:\work\log" + i + ".txt",
FileMode.Append,
FileAccess.Write,
FileShare.ReadWrite))
{
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
TextWriter tw = TextWriter.Synchronized(sw);
tw.WriteLine("test");
tw.Flush();
}
}

static void Main(string[] args)
{
for(int i = 0; i < 100; i++)
TestM(i.ToString());
}

304 名前:デフォルトの名無しさん (ワッチョイ bcdc-dKGq) mailto:sage [2016/11/05(土) 09:56:26.86 ID:u9ZZUUBm0.net]
async(というかTask)はデフォルトではスレッドプールを使うから
同時に使用されるスレッド数には限りがあり、残りのタスクはキューに溜まるだけ
普通にnew Threadしたら

305 名前:デフォルトの名無しさん (ワッチョイ e63c-DGmA) mailto:sage [2016/11/05(土) 10:06:58.71 ID:6wNzhQFs0.net]
>>297
> そもそも求める数が整数とか有理数に限るとはどこにも書いてないがな

えっ?

>>280
> これら全てが整数になる共通の値を見つけたい

306 名前:301 (ワッチョイ bcdc-dKGq) mailto:sage [2016/11/05(土) 10:09:53.89 ID:u9ZZUUBm0.net]
>>300
いやそもそもasyncの使い方がおかしいな
戻り値voidの場合、awaitが無いとasyncキーワードは全く何の意味も持たない
ワーニング出てるだろ?
(意図とは違うだろうけど)TestMは普通に同期で順番に実行されてるはずだから、
単にswやtwを閉じてないために出力されてないだけじゃないか?
あとasync void使うな

307 名前:デフォルトの名無しさん (ワッチョイ 5194-rqdB) mailto:sage [2016/11/05(土) 10:38:43.04 ID:9mC8a8qM0.net]
>>300
>>303の言うとおり非同期実行ではなく順番に一個ずつ書き込んでいってるはずだから
Mainのforループがエラーなく最後まで回っているかを確認してみたら

308 名前:300 (ワッチョイ 7220-8n5s) mailto:sage [2016/11/05(土) 19:19:50.22 ID:OZKlek+X0.net]
根本的に非同期処理のやり方が間違っていただけなんですね
精進します

309 名前:デフォルトの名無しさん (ワッチョイ 0117-7tG6) mailto:sage [2016/11/05(土) 20:30:25.56 ID:ds+C0ndM0.net]
まあネットで調べただけだと勘違いしやすいよね。
そういう風にしか書かれてないとこ多いもん。

310 名前:デフォルトの名無しさん (ワッチョイ 1541-nJsM) [2016/11/05(土) 21:34:08.85 ID:q4/6QuN40.net]
書き散らしてるクソブログ多いもんなぁ
分かったフリして書く

それを読んで分かった気になる
以下ループ



311 名前:デフォルトの名無しさん (ワッチョイ 9030-Tcji) mailto:sage [2016/11/05(土) 21:42:26.72 ID:BoxZvYjG0.net]
最近だとQiitaの「自分用メモ」がひでえ
お前用のゴミを公開するな
非公開で保存できるんだから

312 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/05(土) 22:52:00.60 ID:iEc26fmZ0.net]
昔は公開しておくといちいち指摘してくれてそれで正しい情報になっていったが
いまブログ書いてるやつがどういうつもりかわからんし触りにくいってのあるよなぁ
お節介やいてストーキングまでされたらたまらんし
殴り合い上等でブログやってる人ならいいが
最近打た

313 名前:れ弱いくせに公開するアホ増えたからなぁ []
[ここ壊れてます]

314 名前:デフォルトの名無しさん (ワッチョイ 21c8-umBA) mailto:sage [2016/11/06(日) 17:53:34.18 ID:RAhQzM620.net]
WPFでデータバインドする際の INotifyPropertyChanged の実装方針について教えてください。
GUIにバインドするクラスに以下のような2つのプロパティがあるとき

int Value { set; get; }
int Value2 { get { return this.Value * 2 } }

Value の値が変わると自動的に Value2 の結果も変動するため、
Value の setter で、Value、Value2 の2つの PropertyChanged を投げる実装をしました。
しかし、Value が Value を利用してるプロパティの面倒まで見ることに違和感を覚えます。
これは INotifyPropertyChanged の仕様として仕方が無いのでしょうか。

315 名前:デフォルトの名無しさん (ワッチョイ 01d6-8n5s) mailto:sage [2016/11/06(日) 19:37:13.87 ID:jO0QNoEc0.net]
仕方ない
氏名と名字、名前でも同じだしね

316 名前:デフォルトの名無しさん (ワッチョイ 137b-A9qr) mailto:sage [2016/11/06(日) 20:19:58.80 ID:A8MT+yST0.net]
どうしてもってなら自分自身のPropertyChangedにイベント引っかけて
Valueが変更されてたらValue2のPropertyChanged起こすとかできるけど
同一クラス内でそんなの別に気にする必要もないんじゃね?

317 名前:310 (ワッチョイ 21c8-umBA) mailto:sage [2016/11/06(日) 20:34:01.49 ID:RAhQzM620.net]
>>311 >>312
ありがとうございます。そのままの実装で作ってみます。

318 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/07(月) 16:48:49.99 ID:oxea6kUxr.net]
>>252
コードレビューで散々ごねて書き直しさせた人がいましたww

319 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/07(月) 16:51:52.12 ID:oxea6kUxr.net]
>>274
こんな事まで勉強してる人は滅多にいないかな。
それを言って理解出来る人も極めた少数派。

320 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/07(月) 16:55:30.10 ID:oxea6kUxr.net]
>>307
あるあるww



321 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/07(月) 17:15:04.36 ID:RVVbQ4DBa.net]
>>315
悪いけど、その程度のことは知ったうえでその質問者を批判してる人の方が多いと思うよw

322 名前:デフォルトの名無しさん (ワッチョイ 9823-KjJO) mailto:sage [2016/11/07(月) 19:06:22.15 ID:JC+EsK6v0.net]
うん…言葉尻を捉えるようだがContractで極めたは言い過ぎだな
実装が気になればReferenceSourceを見るのは普通だし
解説としてメジャーなufcpp.netでも触れられている

言語の詳細に興味がない、学ぶ気概がない人はそもそも…

323 名前:デフォルトの名無しさん (オッペケ Srbd-DGmA) mailto:sage [2016/11/07(月) 19:10:13.37 ID:Msy9mjY5r.net]
変数名規則どうしてる?

フィールド
publicなのは大文字開始でいいけど
privateなのをどうするか悩む

m_Hogeまたはm_hoge
f_Hogeまたはf_hoge
_Hogeまたは_hoge

324 名前:デフォルトの名無しさん (ワッチョイ e9dc-DGmA) mailto:sage [2016/11/07(月) 19:52:43.99 ID:07KTk/ms0.net]
一番人気はJavaのスタイルに合わせてhoge
10馬身差で_hogeとm_hogeじゃないか

325 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/07(月) 19:53:21.45 ID:RVVbQ4DBa.net]
バッキングフィールドは_hoge
それ以外のフィールドはmHoge

326 名前:デフォルトの名無しさん (ワッチョイ 45bd-bOSl) [2016/11/07(月) 20:47:02.70 ID:PlwpY0UQ0.net]
Qiitaですげえイラッとする内容で、
ライブラリやツールつかって、やたら「簡単にできる」みたいなことを押す論調で、
紹介している奴。
「簡単にできる」 = 「自分自身で何やってるか、何が変わったかよくわからなく
なる」ということであって、
どうなるかの仕組みを考察したり解説したりするならいいが、

その盲点を無視して、
「ね?猿でもこんなこと簡単にできるでしょ?」
「使わなきゃ損でしょ?」とかはしゃいでいるガキには、物事を説明する
資格はない。そんな有害な記事はネットに上げるな。

327 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/07(月) 21:36:50.71 ID:RVVbQ4DBa.net]
誰と戦ってるおつもりなのかねw
ばっかじゃなかろうか

328 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/07(月) 22:21:11.52 ID:JoerH3dAr.net]
>>318
ごめんなさい。
極めて少数派
の打ち間違いです。

329 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/07(月) 23:00:37.04 ID:geFZXkbd0.net]
JSONで、”[[[1,2],[2,3]]]”のようなアウトプットがしたく
いろいろ探して下記のようなコードで出力できることは
解ったのですが

JavaScriptSerializer seri = new JavaScriptSerializer();
var list = new[] { new[] { new[] {1,2 }, new[] { 2, 3 } } };
string json = seri.Serialize(list);
//出力結果:[[[1,2],[2,3]]]

これを [[[1,2],[2,3],[3,4]...]] のように動的に追記していくには
どのように書いたら良いのでしょうか?

コレクションのように .Add() で次々書けたら良いなと思うのですが
よろしくお願いします

330 名前:デフォルトの名無しさん (ワッチョイ e9dc-dKGq) mailto:sage [2016/11/07(月) 23:09:18.73 ID:07KTk/ms0.net]
>>325
本題の前に、
https://msdn.microsoft.com/ja-jp/library/system.web.script.serialization.javascriptserializer(v=vs.110).aspx
> Json.NET should be used serialization and deserialization.
とMS様もぶっちゃけてる通り、.NETでJSONを使うならJavaScriptSerializerではなく
デファクトスタンダードであるJson.NETを使いましょう
でJson.NETについて言うと、普通にList<T>をシリアライズすればJSONの配列になる。
事前に配列にしたいならToArrayすればいい。



331 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/07(月) 23:15:49.87 ID:geFZXkbd0.net]
根本的にJavaScriptSerializerは推奨されない技術だったのですね
Json.NETを検討してみます
ありがとうございます

332 名前:デフォルトの名無しさん (ドコグロ MMde-DGmA) mailto:sage [2016/11/08(火) 07:59:18.34 ID:kkRkk3iCM.net]
>>322
お前もQiitaとやらで
超難しい!超時間掛かる!
簡単とか言ってるやついるけどぶっちゃけ難解!
人類には早すぎた!
って記事かけや

333 名前:デフォルトの名無しさん (ワッチョイ 7b49-XA/h) mailto:sage [2016/11/08(火) 21:00:12.94 ID:360M0HJP0.net]
>>301
TaskCreationOptions.LongRunningオプション付けてTaskを生成すれば専用のThreadになるから、生のThreadを使う必要ないよ。
それかスレッドプールの同時実行数をチューニングする方法もある。

334 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/08(火) 21:46:12.39 ID:xSnQLWcm0.net]
昨日、jsonの質問をした者ですが
json.netに変更した所で、やはり同じところで悩んでいます
下記コードで出力結果が"[[[1,2],[2,3]]]"となるのですが

var list = new[] { new[] { new[] {1,2 }, new[] { 2, 3 } } };
string json = Newtonsoft.Json.JsonConvert.SerializeObject(list);

これを [[[1,2],[2,3],[3,4]...]] のように動的に追記していくには
どのように書いたら良いのでしょうか?

色々調べても、jsonはキーバリューの形が一般的で
配列でどう表現するのか解りませんでした

よろしくお願いします

335 名前:デフォルトの名無しさん (ワッチョイ e9dc-dKGq) mailto:sage [2016/11/08(火) 22:10:11.42 ID:ic1oOtKi0.net]
だからList<T>使えよ
JSON云々以前の問題

336 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/08(火) 23:23:57.86 ID:xSnQLWcm0.net]
List<T>のアドバイスをもとに
以下のようなコードで良い感じになってきたのですが
もう一つ配列の外カッコを表現することができませんでした

List<int[]> list = new List<int[]>();
list.Add(new[] { 1, 2 });
list.Add(new[] { 2, 3 });
list.Add(new[] { 3, 4 });
string json = Newtonsoft.Json.JsonConvert.SerializeObject(list);
//[[1,2],[2,3],[3,4]]

List<int[][]> list = new List<int[][]>();にすると
[[[1,2]],[[2,3]]]となってしまい
詰まっております

根本的に考え方が間違っているのでしょうか?

337 名前:デフォルトの名無しさん (ワッチョイ 653c-m5qj) mailto:sage [2016/11/08(火) 23:35:34.26 ID:qV47zIVg0.net]
だからなぜ配列使うのかと…

338 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/08(火) 23:55:21.12 ID:xSnQLWcm0.net]
すみません

経験不足で、配列以外でやる方法が
想像つきません

どういうイメージでやれば良いのか
教えて頂きたいです

339 名前:デフォルトの名無しさん (ワッチョイ 0117-7tG6) mailto:sage [2016/11/09(水) 00:02:28.77 ID:hsAPe+Q00.net]
そこは置いとくとして。これで解決したりしてな。(試してない)
解決なら変数の内容というか意味を考えるべきだな。

var list2 = (new List<int[][]>());
list2.Add( list.ToArray() );
// list2 をシリアライズ

340 名前:デフォルトの名無しさん (ササクッテロレ Spbd-m5qj) mailto:sage [2016/11/09(水) 03:15:10.85 ID:qcMduGDNp.net]
JSONの形だけでいいならこんなのでもいい

List<int[]>[] list3= {list};
int[][][] list4= {list.ToArray()};



341 名前:デフォルトの名無しさん (ワッチョイ e93a-DGmA) mailto:sage [2016/11/09(水) 03:33:35.81 ID:KnEUpDo20.net]
>>332
List<List<List<int>>>

342 名前:デフォルトの名無しさん (ワッチョイ 517b-8n5s) mailto:sage [2016/11/09(水) 05:25:22.53 ID:moqMbmIT0.net]
>>332
とりあえずその部分に納得したいならこうやれば形になるよw

var list = new[] { new List<int[]>() };

list[0].Add(new[] { 1, 2 });
list[0].Add(new[] { 2, 3 });

343 名前:デフォルトの名無しさん (ササクッテロレ Spbd-m5qj) mailto:sage [2016/11/09(水) 14:02:25.71 ID:qcMduGDNp.net]
多分これ>>332は理解できないだろw

前提1: JSONはJavaScript Object Notationの略でjavascriptの文法をベースにした記法である
前提2: javascriptは動的型付け原語であり、C#は
静的型付け原語である
前述3: JSONにおける配列は[]で表され、C#のList<T>と配列はJSONの配列に変換される

前提1,2からC#で必要な型の情報はJSONには記述されないため、JSONをC#に変換する場合この型情報を補完しなければならない

前提3から動的な操作を行う個所はList<T>それ以外を配列で記述するといい


学習または理解のために
C#でもコンパイラによる型推論によって型宣言を省略できるが、理解するまでは省略せずに型をきちんと書く方が理解しやすい

よってvar禁止、初期化時の型宣言の省略禁止でそれぞれを書き換えてみると多少理解が進むんでないかな?
例として>>338のlistと>>336のlist3は省略せずに書くと以下のようになり同じものであるとわかる。

List<int[]>[] list = new List<int[]>[] { new List<int[]>() };

※ List<int[]>[] は intの配列(int[]) の リスト(List<T>) の 配列(末尾の[]) という意味
※ varは、右辺で型が明らかな場合コンパイラが型を推定して補完してくれる。コンパイル時に展開されるので省略せずに型を書くのと等価になる

344 名前:デフォルトの名無しさん (ワッチョイ 3e4c-DGmA) mailto:sage [2016/11/09(水) 14:19:57.52 ID:ESFv9usG0.net]
>>339
優しいなおめぇ

345 名前:332 (ラクッペ MM2d-DGmA) mailto:sage [2016/11/09(水) 17:18:24.33 ID:ItbFMo65M.net]
試行錯誤の結果
教えて頂いたList<T>にて
希望のjsonを作れました

基礎的な理解もなく
ネットで得る断片的なソースの
コピペでは応用が効かないと痛感しています

ありがとうございます

346 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/09(水) 19:36:58.06 ID:z4p8v0swr.net]
コピペは止めとけ。
Ctrl-C,Vを禁止するだけでプログラミング能力が上がるとか何とか。

347 名前:デフォルトの名無しさん (ブーイモ MM31-m5qj) mailto:sage [2016/11/09(水) 20:18:59.79 ID:GH2RO7KKM.net]
コピペした回数により残業代減額

348 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) [2016/11/09(水) 21:32:55.41 ID:xe8Gs44h0.net]
LINQのSelectで、メンバ「txt」が"a"の場合、
メンバ「intdata」の符号を反転するということをしたいのですが、
どのように書けば良いのでしょうか?

LINQで条件式が書けるとコードが随分小さくなるので
助かります!!!

class testClass
{
public string txt { get; set; }
public int intdata { get; set; }
}

static void Main(string[] args)
{
List<testClass> ts = new List<testClass>();
ts.Add(new testClass { txt = "a", intdata = 1 });
ts.Add(new testClass { txt = "b", intdata = 2 });
var tsFnc = ts.Select(e => e.txt == "a" ? e.intdata = e.intdata * -1); //←エラー
}

349 名前:デフォルトの名無しさん (ブーイモ MM31-m5qj) mailto:sage [2016/11/09(水) 21:46:02.27 ID:GH2RO7KKM.net]
e.txt == "a"
? new testClass() { txt = e.txt , intdata = -e.intdata }
: e

350 名前:デフォルトの名無しさん (ワッチョイ e9dc-dKGq) mailto:sage [2016/11/09(水) 21:58:25.28 ID:EZkCstT40.net]
それインラインのラムダで書いてしまうとコードの意図がわかりにくいから
static testClass Hoge(testClass e) => (>>345);
のようにメソッドとして外出しした上で ts.Select(Hoge) と書くのがいいんじゃないかな
メソッド本体をラムダの形式でスマートに記述できるようになったことだし、
ちょっと複雑なラムダには積極的にメソッド名を付けることを心がけるといい



351 名前:デフォルトの名無しさん (ササクッテロレ Spbd-m5qj) mailto:sage [2016/11/09(水) 22:25:47.94 ID:qcMduGDNp.net]
>>344
そりゃ値を返さなければエラーになるよな

ts.Select( (e) =>{
if(e.txt=="a") e.intdata*=-1;
return e;
});

352 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) [2016/11/09(水) 22:41:05.99 ID:xe8Gs44h0.net]
>>347
期待した結果が出ました。
ありがとうございます!!!

色んなサイトを回ったのですが、なかなか条件式を書いているサンプルが無かったもので、助かります!!!

353 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/09(水) 22:44:01.71 ID:xe8Gs44h0.net]
>>346
従来のやり方を単純にラムダに変えるのではなく、
ラムダ的なスマートさも追及すべきということですね。

参考になります。

354 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/09(水) 22:49:39.71 ID:xe8Gs44h0.net]
ラムダというかLINQは凄い便利なんですけど、
なんか重いんですよね。

やぼったく書いていた処理をラムダにしたら
可読性が上がった反面、処理に倍の時間がかかるようになってしまい。。。

便利ゆえの宿命なのか、
使いこなせてないだけなのか、
その両方かって気がしています。

355 名前:デフォルトの名無しさん (ワッチョイ 5eed-DGmA) mailto:sage [2016/11/09(水) 22:52:28.34 ID:GViSYmlw0.net]
適宜ToArrayしろってResharperが言ってた

356 名前:デフォルトの名無しさん (ワッチョイ 8a02-2mfK) mailto:sage [2016/11/09(水) 23:09:04.87 ID:xK7OwzcU0.net]
LINQにしたら倍ほど遅くなるコードって例えばどんなん?

357 名前:デフォルトの名無しさん (ワッチョイ e9dc-dKGq) mailto:sage [2016/11/09(水) 23:23:27.68 ID:EZkCstT40.net]
>>347はないわ
インプレースで更新するんなら普通に
foreach (var e in ts) if (e.txt == “a”) e.intdata *= 1;
でいいだろ
副作用がないように見えてこっそり更新してるってのは罠に近い極めてタチの悪いコード

358 名前:デフォルトの名無しさん (ブーイモ MM31-m5qj) mailto:sage [2016/11/09(水) 23:31:35.24 ID:GH2RO7KKM.net]
>>352
実処理がメソッド呼び出しオーバーヘッドより少ない時かな
ボトルネックにはならないけど倍以上にはなる

359 名前:デフォルトの名無しさん (ワッチョイ f023-8n5s) mailto:sage [2016/11/09(水) 23:31:54.26 ID:0UIYYtz/0.net]
もしLinqでやりたいのならForEachの拡張メソッドを書くか、IxをNuGetで入れるほうが健全だな

360 名前:デフォルトの名無しさん (ワッチョイ 9f02-u2pL) mailto:sage [2016/11/10(木) 01:11:52.00 ID:gZ1S6RPu0.net]
>>354
サンプルコードある?
その論理でいくと、実処理がゼロの時が最も顕著で
通常のループよりLINQでのループ(列挙)が倍以上遅いってことになるんだが

繰り返し判定が遅いのかループの準備が遅いのか知らんが
LINQのほうが多少遅いとしても、どれだけ回したら有意な差がでるほどオーバーヘッドあるんだ



361 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/10(木) 01:38:07.59 ID:zCCtWAZL0.net]
何万回も回すとか、コンパイラを作るとかじゃなければメソッド呼び出しのコストはほぼ無視できるはず

たぶん、無駄のある書き方してるか、最適化を邪魔するような記述になってるんじゃないかな

362 名前:デフォルトの名無しさん (ブーイモ MM6f-9MLS) mailto:sage [2016/11/10(木) 01:48:41.09 ID:4pFcdHJlM.net]
>>356
だからボトルネックにはならないって書いたじゃん
倍になろうが大したことない
遅い派の人は処理オーダー違うアルゴリズムと比較してるんだろ

363 名前:0-WVKM) mailto:sage [2016/11/10(木) 02:05:10.17 ID:wdbpo9Rt0.net]
倍遅いって記述がアレで単にループ倍増しているだけじゃね

364 名前:347 (ワッチョイ 033c-9MLS) mailto:sage [2016/11/10(木) 02:45:22.58 ID:BAuxaWeL0.net]
>>353
いや俺に言われても>>344が求めてるのは "LinqのSelectで〜メンバ「intdata」の符号を反転する" 方法だからな
要求仕様がLinqのSelectで行うことを明示していて、intdataの反転した別インスタンスを返すではなくメンバ変数を反転すると定義しているならそう書くだけだ

こんな書き方するべきじゃないってのはその通りだがそれは>>344に言ってくれ

365 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/10(木) 03:27:07.24 ID:+tyQ2nEUr.net]
副作用は書かないのがコツ。

>>345が考え方としてはよろしい。

366 名前:デフォルトの名無しさん (オイコラミネオ MMdf-h9op) mailto:sage [2016/11/10(木) 09:30:47.14 ID:SIcifk3eM.net]
IxとRxってどう違うの

367 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/10(木) 10:49:41.41 ID:otGHoxmha.net]
普通に考えてそもそもSelectを使うのがおかしいw
>>353は途中まで普通のこと言ってるのに>>345は否定しないのはおかしいw

368 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/10(木) 12:52:58.94 ID:+0vOVL7/0.net]
>>347は副作用ないしインスタンスの同一性に拘らないなら目的は果たせてるだろ
分かりにくい糞コードかもしれないが、コードの形をした糞である>>347のように完全否定されるほどのものではないよ

369 名前:デフォルトの名無しさん (ワッチョイ 033c-9MLS) mailto:sage [2016/11/10(木) 13:14:42.66 ID:BAuxaWeL0.net]
こういう議論が面倒だから>>344の要求に忠実に書いた訳だが…

そもそもSelectを使うのが間違いというのは議論の余地がないからいいとして、副作用を避けるなら>>345はないわw
元のインスタンスと別インスタンスとを混在させて返すってのは罠じゃないのかと

new testClass() { txt = e.txt , intdata = e.intdata*(e.txt=="a"?-1:1) };

別インスタンスを返すなら符号の反転の有無に関わらず必ず別インスタンスで返すべき

370 名前:デフォルトの名無しさん (ワッチョイ a723-teht) mailto:sage [2016/11/10(木) 13:43:53.32 ID:o8sMendu0.net]
つか、select使わずに拡張メソッド作ったほうがよくね
例えばこんなやつ
ideone.com/YQ5uTI



371 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/10(木) 20:14:55.52 ID:jVtZ8e8U0.net]
WPFでVisual StudioのようなタブやドッキングウィンドウがあるUIを作りたく思い
そのようなテンプレートを探しています
「AvalonDock」というものは見つけましたが他にご存知なら教えてください

372 名前:デフォルトの名無しさん (ブーイモ MMef-9MLS) mailto:sage [2016/11/10(木) 20:37:33.96 ID:uFjDSD4sM.net]
>>365
もう少し視野を広くした方がいい
データ転送オブジェクトや値オブジェクトといったワードで検索してごらん
そのあとはクエリ・コマンド分離の原則を調べよう

373 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/10(木) 21:24:48.41 ID:+tyQ2nEUr.net]
>>366
それの有り難みが理解出来る人は人類では、ほとんどいないw

374 名前:デフォルトの名無しさん (ワッチョイ 7f20-teht) mailto:sage [2016/11/10(木) 22:02:45.75 ID:INda+yqE0.net]
下のようなコードで動的な数のtaskを作ることは
できるでしょうか?

static async Task ts()
{
List<Task> tsLists = new List<Task>();
var task1 = Task.Run(() =>{/*処理*/});
var task2 = Task.Run(() => {/*処理*/});
tsLists.Add(task1);
tsLists.Add(task2);
await Task.WhenAll(tsLists);
}

Task.WhenAllに配列を含めることができるのなら
taskもできるのではと思いまして

よろしくお願いします

375 名前:デフォルトの名無しさん (ワッチョイ b77b-eMoa) mailto:sage [2016/11/10(木) 22:55:20.24 ID:pEVMYV3p0.net]
var task1 は、オブジェクトだろ?

当然、コンテナにも入れられる

376 名前:デフォルトの名無しさん (ワッチョイ 4379-teht) mailto:sage [2016/11/10(木) 22:56:21.90 ID:ApowNrKS0.net]
C#の基本を理解していない奴がスレッドに手出したら死ぬからやめておけ

377 名前:デフォルトの名無しさん (ワッチョイ 7f20-teht) mailto:sage [2016/11/10(木) 23 ]
[ここ壊れてます]

378 名前::58:51.41 ID:INda+yqE0.net mailto: >var task1 は、オブジェクトだろ?

オブジェクトと聞いて、下のようなコードを書いたら
期待通りの結果が出ました
ありがとうございます

class Program
{
static async Task ts()
{
List<Task> tsLists = new List<Task>();

List<object> taskArry = new List<object>();
taskArry.Add(Task.Run(() => { Console.WriteLine("1"); }));
taskArry.Add(Task.Run(() => { Console.WriteLine("2"); }));
foreach (var tsk in taskArry)
{
var task = tsk;
tsLists.Add((Task)task);
}
await Task.WhenAll(tsLists);
}
static void Main(string[] args)
{
var t = ts();
t.Wait();
for (;;) ;
}
}

思いつきで書いているので、アンチパターンをしているかも知れませんが。。。
[]
[ここ壊れてます]

379 名前:デフォルトの名無しさん (ワッチョイ 8394-5NgJ) mailto:sage [2016/11/11(金) 02:00:56.00 ID:/+d8XFyb0.net]
>>370のコードの方は、まぁ、普通
(TaskふたつくらいならわざわざListは使わないけど)

しかし、>>373 は……どうしてこうなった

380 名前:デフォルトの名無しさん (ササクッテロリ Sp2f-9MLS) mailto:sage [2016/11/11(金) 02:40:34.81 ID:6sQwg64Zp.net]
ソフトの設定をシリアル化するために一つのクラスにまとめたのはいいけどどうアクセスするのが普通なのかよく分かりません
全部public staticにして直接さわってもいいのでしょうか



381 名前:デフォルトの名無しさん (ワッチョイ b37b-hNMU) mailto:sage [2016/11/11(金) 03:31:49.89 ID:by5SD+CT0.net]
switch文で文字列による分岐をする場合
var hoge="hoge";
// パターン1
var firstChar=hoge.SubString(0,1);
switch(firstChar){
case "a":
 switch(hoge){
  case "akina": ・・・
  case "akiko": ・・・
  case "asaka":: ・・・
  case "amika": ・・・他ずらっと続く
 }
 break;
case "h":
 switch(hoge){
  case "honoka": ・・・
  case "hosaka": ・・・
  case "hoge": ・・・他ずらっと続く
 }
break;
}
// パターン2
switch(hoge){
  case "akina": ・・・
  case "akiko": ・・・
  case "asaka":: ・・・
  case "amika": ・・・
  case "honoka": ・・・
case "hosaka": ・・・
  case "hoge": ・・・
}
パターン1、2でどちらが目的の文字列にたどり着く速度が早いのでしょうか

382 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/11(金) 04:06:38.01 ID:qvZdoaA90.net]
... DropShadowEffect.Color="{Binding RelativeSource={RelativeSource AncestorType={x:Type ContextMenu}},Path=(params:General.ShadowBrush).(SolidColorBrush.Color)}" />

この記述に間違いはありますでしょうか?

383 名前:デフォルトの名無しさん (ワッチョイ 937b-teht) mailto:sage [2016/11/11(金) 04:43:55.58 ID:MLb8BpI60.net]
>>376
後者

384 名前:デフォルトの名無しさん (ワッチョイ 3319-7KSV) mailto:sage [2016/11/11(金) 08:50:36.60 ID:OnmZcNT90.net]
>>377
Path中の括弧は基本的に添付プロパティの指定に使うもんだけど
型明示とかの意味で使おうとしてない?

385 名前:デフォルトの名無しさん (ワッチョイ b77b-eMoa) mailto:sage [2016/11/11(金) 10:27:04.66 ID:M2uBl8fv0.net]
>>373
>List<Task> tsLists = new List<Task>();
>List<object> taskArry = new List<object>();

クラスの継承チェーンでは、Objectクラスがすべてのクラスの基本で、
Object以外のクラスは、すべてそこから派生している。
もちろん、Taskクラスも、Objectクラスの派生クラス

Objectクラスは親クラスで、より抽象的なもの。
Taskクラスは派生クラスで、Objectクラスより具体的で、限定されているため安全だから、
Taskをそのまま使えばいい

Taskクラスは、Objectクラスが持っている、属性・メソッドをすべて持っているから、
そのままObjectクラスとして使える。
(Task)task で、キャストする必要などない

オブジェクト指向を、基本から勉強すべし

386 名前:デフォルトの名無しさん (ワッチョイ b77b-eMoa) mailto:sage [2016/11/11(金) 10:43:07.91 ID:M2uBl8fv0.net]
>>376-378
漏れも、辞書データベースを作る際、
aで始まる単語の表・bで始まる単語の表・cで始まる単語の表、などのように表を分けるか、
すべてを1つの表にするかで迷う

パターン1の方が、先に限定(枝刈り)されるから、速いような気がするけど、
caseが8つ以上あると、コンパイラが最適化して、
文字列をハッシュ化(整数化)するかも知れないので、パターン2の方が速いかも

387 名前:デフォルトの名無しさん (スッップ Sd1f-PwKp) mailto:sage [2016/11/11(金) 12:20:00.46 ID:B0EI7WuJd.net]
トライ木って奴だな
実際Stringのハッシュにこれが使われてるかは知らんが

388 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/11(金) 12:26:36.61 ID:TqB+9XQ4a.net]
>>376
実験して報告してw
あと、Dictionary<String, Action>を使うケースも追加で

でもまあ、人が手動でコーティングできる程度の分岐では直感的には
後者の方が速そうな気がする。

389 名前:デフォルトの名無しさん (ワッチョイ 4bda-teht) mailto:sage [2016/11/11(金) 12:31:45.60 ID:UQPlBidt0.net]
DictionaryにFunc突っ込んだほうがスッキリしていいだろう

390 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/11(金) 17:11:54.51 ID:TqB+9XQ4a.net]
>>376
あと細かいことだけど、「分類」に使うのが常に最初の1文字だけなら
素直にcharにした方が(つまりhoge[0])の方が速い気が



391 名前:デフォルトの名無しさん (ブーイモ MM1f-9MLS) mailto:sage [2016/11/11(金) 20:20:29.68 ID:Bi+hCNL7M.net]
>>375
設定クラスとファイルは適度に分割する
staticは使わない
設定読み取りインターフェースとクラスを作る
設定に依存するクラスにインジェクションする

392 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/11(金) 22:27:34.93 ID:+gNs9Nbk0.net]
>>376
多分後者は最適化でジャンプテーブルに変わるのでそっちのほうが早いかなぁ

393 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/12(土) 00:58:23.88 ID:e739leKk0.net]
>>376
本気で最適化するならプロファイル取って出現頻度順にソート
一般的にそういうのは分布がかなり偏るので統計的に速くなる

394 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/12(土) 08:39:07.19 ID:rgkWnGP70.net]
内部で二分探索やジャンプテーブルに変わろうが、毎回文字列を比較してる時点で遅い
分量が不明ならDictionaryに変えるべき
自分でアルゴリズム実装する場合はC#ではunsafeにしない限り遅い

395 名前:デフォルトの名無しさん (ブーイモ MM6f-9MLS) mailto:sage [2016/11/12(土) 08:56:42.02 ID:NIqnWzQ8M.net]
仮に倍早くなっても辞書をハードコードされたswitchで実装はしたくないな

396 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/12(土) 09:36:17.93 ID:rgkWnGP70.net]
比較前に一意な文字列に変換して、文字列値としてではなくアドレスやハッシュ値を探索するのが一番速いんだけど
そういうのって標準にないんだっけ

397 名前:デフォルトの名無しさん (ワッチョイ a723-teht) mailto:sage [2016/11/12(土) 09:47:10.83 ID:IKX2nQlp0.net]
昔見たLinuxのシェルのソースじゃ最初の方のスイッチ使ったロジックだったな
C言語の文字列の扱いなら速度差もあるかもしれんね

398 名前:デフォルトの名無しさん (ブーイモ MM6f-9MLS) mailto:sage [2016/11/12(土) 10:14:16.67 ID:gzcT9VGJM.net]
>>391
Internというのがある
同じ値の文字列を同じインスタンスの文字列にして返す

399 名前:デフォルトの名無しさん (ワッチョイ 9f02-u2pL) mailto:sage [2016/11/12(土) 15:14:10.12 ID:Ayj+NND50.net]
caseずらずらと並べると、順次検索するのか?
それだとAxxxは早いけどYxxxは遅いとかいうことになると思うんだが
単純にどっちが早いかなんて比較できんわな

400 名前:デフォルトの名無しさん (ワッチョイ 7f17-C1EH) mailto:sage [2016/11/12(土) 15:33:15.88 ID:duqbQJlR0.net]
質問です
アプリにメインのフォームとモードレスなフォームの二つがあります
モードレスなフォームを操作したあとに
メインのフォームのボタンを押そうとすると
メインのフォームへフォーカスをあてるためにワンクリック、
ボタンを押すためにもう一回ワンクリックという具合に
2回クリックしないといけないのですが、
これをワンクリックに縮める方法はなにかありますか?
(一つのウィンドウにまとめる方法以外で)



401 名前:デフォルトの名無しさん (ワッチョイ 033c-9MLS) mailto:sage [2016/11/12(土) 15:42:42.07 ID:IIxQEFvy0.net]
世界一IQの低いソースコードはこれ。ってネタを思い出したわ

>>394
switch はジャンプテーブルでの実装なので末尾のラベルであっても先頭のラベルと処理時間に差は出ない
また同じ理由から選択肢の数が増えても処理時間は殆ど増えない

402 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 15:47:36.63 ID:kNoTIrA70.net]
>>396
おいおい,一度に全部を比較できないだろう?
Axxx は最初の方に比較するし
Yxxx は最後の方に比較するのだったら
Yxxx が確定するまでの時間は Axxx よりも大きくなるのでは?
ジャンプテーブルにしようが,個々の分岐によって時間差が出るのではないかね

403 名前:デフォルトの名無しさん (ワッチョイ b75e-FQoa) mailto:sage [2016/11/12(土) 15:58:38.99 ID:GAbwEXNG0.net]
>>395
メインのフォームのボタンにMouseEnterでthis.Activate()とFocus()するようにしたら
フォーカスをあてるための分は省略できる

404 名前:デフォルトの名無しさん (ワッチョイ 6bed-eZXk) mailto:sage [2016/11/12(土) 16:17:42.31 ID:VXYUWtaP0.net]
>>395
WM_MOUSEACTIVATEでググるといい

405 名前:デフォルトの名無しさん (ワッチョイ 6f3c-PwKp) mailto:sage [2016/11/12(土) 16:30:32.34 ID:HzMgTMM90.net]
>>397
ジャンプテーブル自体を知らないなら初心者スレだからまああるとは思うがジャンプテーブル知ってて

> Axxx は最初の方に比較するし
> Yxxx は最後の方に比較するのだったら
> Yxxx が確定するまでの時間は Axxx よりも大きくなるのでは?

はないわ
言葉だけ中途半端に覚えてる知ったかなんだろうな...

406 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 16:34:08.09 ID:kNoTIrA70.net]
>>400
お前,物事を本当に突き詰めて考えたことが無いんだろう?
今回の文字列比較では差が出て当然
ジャンプテーブルといっておれば,とか間抜けにもほどがある

407 名前:デフォルトの名無しさん (ワッチョイ c3a1-PwKp) mailto:sage [2016/11/12(土) 17:10:42.68 ID:x4E8HTQB0.net]
文字列比較でテーブル上の位置を特定するには結局ハッシュテーブルと同様の実装がされてるんじゃないの
低レベルな分僅かに高速に動くかも知らんが

408 名前:デフォルトの名無しさん (ワッチョイ 7f17-C1EH) mailto:sage [2016/11/12(土) 17:11:17.70 ID:duqbQJlR0.net]
>>398-399
toolStripに対して、>>398のMouseEnterでthis.Activate()とFocus()する方法でできました
WM_MOUSEACTIVATEをハンドルする方法もあるのですね。勉強になります
ありがとうございます

409 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 17:21:06.75 ID:kNoTIrA70.net]
>>402
お前すべての文字列についてハッシュ値が異なるように設計できるとでもいうのか?
ハッシュ値をジャンプテーブルに使うとはそういうことだ,そんな無茶な主張をするのか?

410 名前:デフォルトの名無しさん (ワッチョイ a7da-teht) mailto:sage [2016/11/12(土) 17:24:24.15 ID:5Ttb/Uep0.net]
ハッシュテーブルと言ってる人につっかかるなよ



411 名前:デフォルトの名無しさん (ワッチョイ 6f3c-PwKp) mailto:sage [2016/11/12(土) 19:31:45.56 ID:HzMgTMM90.net]
>>404
知ったか君は完全ハッシュも知らないのになんでそんな偉そうなのか理解に苦しむ w

412 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/12(土) 19:37:48.04 ID:SdQQy6fO0.net]
現在はもっと最適化が入るかもしれんが、やっぱりハッシュテーブルだね
qiita.com/NetSeed/items/fd5cd2cdb2ba021518ca

ハッシュが衝突するときだけ文字列比較に行くんじゃないかな
まぁ、hashdosでもされない限りボトルネックにはなりにくいんじゃない?

413 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 19:52:58.86 ID:kNoTIrA70.net]
>>406
で,不特定な文字列に対して比較する場合に完全ハッシュを実現することはできるの?

>>407
ハッシュが衝突するかどうかは,文字列比較までやってしまわないと判明しないのでは?

414 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/12(土) 20:01:20.50 ID:SdQQy6fO0.net]
>>408
聞く前に実装を確認したほうが早い
https://referencesource.microsoft.com/#mscorlib/system/collections/generic/dictionary.cs,bcd13bb775d408f1

415 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:ちょっとすり替えたw [2016/11/12(土) 20:11:38.18 ID:kNoTIrA70.net]
>>409
なるほどね,不特定な文字列のみ対象とする連想配列ならば,まずはハッシュで付き合わせるのは「あり」なんだね

でも,特定文字列と不特定な文字列比較の case の実装について話しているのに,不特定な文字のみ対象の連想配列の例を出すのはどうかと思うよ

416 名前:デフォルトの名無しさん (ワッチョイ 6f3c-PwKp) mailto:sage [2016/11/12(土) 20:31:54.23 ID:HzMgTMM90.net]
>>408
> で,不特定な文字列に対して比較する場合に完全ハッシュを実現することはできるの?
コンパイル時に確定してるなら可能
完全ハッシュ アルゴリズム
とかでググれ

> ハッシュが衝突するかどうかは,文字列比較までやってしまわないと判明しないのでは?
ハッシュの衝突の意味がわかってないのか?
異なる入力に対して同一のハッシュ値が生成されることで当然コンパイル時にわかるから衝突するハッシュ値が生成された時だけ文字比較すればいいだけ

417 名前:デフォルトの名無しさん (スフッ Sd1f-PwKp) mailto:sage [2016/11/12(土) 20:35:13.60 ID:nrwwVciNd.net]
>>410
なんか違和感。
不特定の文字列の中に、特定の文字列は内包されるような気がする。概念的な話になるけど。

418 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 20:41:39.03 ID:kNoTIrA70.net]
>>411
>コンパイル時に確定してるなら
というのは不特定の文字列とはいわないよ
何がくるか分からない文字列に対して完全ハッシュは無理

>>412
もう少しお話をおききしたいが

419 名前:デフォルトの名無しさん (ワッチョイ 6f3c-PwKp) mailto:sage [2016/11/12(土) 20:54:31.74 ID:HzMgTMM90.net]
>>413
ああ、入力側の話か
分岐した後に一度だけ確認すればいいだけ
確認すべき文字列は確定してるから

420 名前:デフォルトの名無しさん (スフッ Sd1f-PwKp) mailto:sage [2016/11/12(土) 21:31:32.38 ID:nrwwVciNd.net]
>>413
うーん、不特定な文字列に対して安全なら、それは特定の文字列に対しても安全では無いの?
パフォーマンスは置いといて。
この包丁は誰にとっても安全です、なら、この俺にとっても安全だろうし、>>413にとっても安全だと。
竹光でもさ。

ハッシュが衝突するならオープンアドレス法かなんかでシノニムうまく扱うしか無いけど。
現実問題、Knuthのあの関数でそうそう衝突はしないけど。



421 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/12(土) 21:48:02.84 ID:SCKfSUb2a.net]
>>395
これ、せっかくVista以降改善された仕様を無にする行為だと思うんだけど

422 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/12(土) 21:53:54.19 ID:rgkWnGP70.net]
ウィンドウのフォーカス周りって10で相当わけわかめな仕様になってない?
ところでわけわかめって通じる?

423 名前:デフォルトの名無しさん (ワッチョイ 033c-Cgco) mailto:sage [2016/11/12(土) 21:56:33.32 ID:tSXTeFta0.net]
通じる(30代)

424 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/12(土) 21:58:32.19 ID:rgkWnGP70.net]
何時頃だったか裏にいたウィンドウがアクティブになろうとしてブリンクするいらん仕様を盛り込んでから俺の中で既におかしくなってるけど
10でさらにわけわかめになってる

425 名前:デフォルトの名無しさん (ワッチョイ 7f13-PwKp) mailto:sage [2016/11/12(土) 22:56:05.49 ID:TM8SsXVk0.net]
>>417
「意味とろろ」まで付けないとだめ

426 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 03:09:33.62 ID:sNDrzqcx0.net]
ファイルをサーチしてそのFileInfo.FilenameをListBoxに表示したい。
あとでItemをクリックしたとき、FileInfoの別のプロパティも参照したいのでFileInfo
自体もListBoxに保存しておきたい。

1.ListBoxを継承したコントロールを作るのは手間がかかる。
2.ListBoxを継承したクラスを作って、Formにaddすることもできるが、これだと
 位置とサイズを設定するのが面倒だ。
 
 なにか良い方法はないか?

427 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 03:28:05.31 ID:sNDrzqcx0.net]
自己解決した。

428 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 03:33:14.17 ID:sNDrzqcx0.net]
やっぱりだめやった。Objectは保存できるが、Stringも同時に保存したい。
二つ同時はむつかしいやろな。

429 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 03:33:57.68 ID:sNDrzqcx0.net]
やっぱり解決した。W thanks

430 名前:デフォルトの名無しさん (ブーイモ MM6f-9MLS) mailto:sage [2016/11/13(日) 11:41:32.61 ID:l4pNS+tdM.net]
おめでとう



431 名前:デフォルトの名無しさん (ワッチョイ d317-eZXk) mailto:sage [2016/11/13(日) 11:48:17.12 ID:DlcyGqZP0.net]
ワロタ

432 名前:デフォルトの名無しさん (ワッチョイ 9f02-EqbM) mailto:sage [2016/11/13(日) 15:32:47.36 ID:PMfnb6vA0.net]
WPFのリストボックスとか任意の型のリストで持てるんじゃなかったっけ

433 名前:デフォルトの名無しさん (オッペケ Sr2f-PwKp) mailto:sage [2016/11/13(日) 15:35:53.81 ID:LTz5BAc9r.net]
まじかよ糞フォームは独自リストをバインドすることもできないのか

434 名前:デフォルトの名無しさん (ワキゲー MMff-UXqH) mailto:sage [2016/11/13(日) 16:33:34.20 ID:bY6b9EITM.net]
ListBoxはバインドできるよ
ListViewは無理だけど

435 名前:デフォルトの名無しさん (オッペケ Sr2f-PwKp) mailto:sage [2016/11/13(日) 16:37:40.46 ID:uxmSSaQNr.net]
WPFのメリットってなに?

436 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) mailto:sage [2016/11/13(日) 17:48:03.25 ID:sNDrzqcx0.net]
public static int CountList<T>(List<T> list, Func<T, bool> predicate)
{
int count = 0;
foreach (T element in list){
// predicateが参照するメソッドを、elementを引数に渡し呼び出している
if(predicate(element)){
// 真ならカウンタをインクリメント
count++;
}
}
return count;
}

CountList<T> これはT型の変数を返すという意味なのにリターンはstatic int
なのはなぜ?

437 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) mailto:sage [2016/11/13(日) 17:53:19.93 ID:sNDrzqcx0.net]
public static T CountList<T>(List<T> list, Func<T, bool> predicate)
これの間違いか?

438 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) mailto:sage [2016/11/13(日) 17:56:52.79 ID:sNDrzqcx0.net]
>WPFのメリットってなに?

UIをプログラムはできなくても絵の得意な人がやってモデルをプログラマーが専念
できるということかな。

439 名前:デフォルトの名無しさん (ワッチョイ 033c-Cgco) mailto:sage [2016/11/13(日) 18:01:22.99 ID:r+Z8oKZ70.net]
WinFomsではやりにくいGUIも、WPFでなら作りやすいってケースはある

440 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/13(日) 18:05:48.45 ID:T5+9PjbV0.net]
>>433
現実的にはデザイナーがBlendでXAML作るなんて不可能だけどね
デザイナーに期待できるITスキルは唯一HTML/CSSだけだよ



441 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 18:07:10.18 ID:sNDrzqcx0.net]
これはどういう意味? 複雑すぎてわからん。

static String ToResult<TSource>(this IEnumerable<TSource> source)
{
return "{" + string.Join(", ", source) + "}";
}

static String ToResult<TKey, TSource>(this IEnumerable<IGrouping<TKey, TSource>> source)
{
return source.Select(group => string.Format("Key={0}, Source={1}", group.Key, group.ToResult())).ToResult();
}

442 名前:デフォルトの名無しさん (ワッチョイ b7ba-teht) mailto:sage [2016/11/13(日) 18:12:30.43 ID:pC0Itdjh0.net]
我慢してコードビハインド使わない縛りでやったらUIテストが楽そうだと思った。

443 名前:デフォルトの名無しさん (オッペケ Sr2f-PwKp) mailto:sage [2016/11/13(日) 18:30:15.49 ID:uxmSSaQNr.net]
>>433
そーなのか
ずっとWinFormしか触ってないんだけど、WinFormのコントロールと同じような動作をWPFに求めてもそういうのは用意されてないの?
たとえばWinFormのDataGridViewには自動的に絡む幅とか調整してくれるメソッドとかあるけどWPFには用意されてないとか?

>>434
逆もある?

444 名前:デフォルトの名無しさん (アウアウイー Sa0f-PwKp) mailto:sage [2016/11/13(日) 18:45:13.54 ID:lfE9hohca.net]
>>435
割と良いXAML来るけどな。うち。

445 名前:デフォルトの名無しさん (スププ Sd1f-PwKp) mailto:sage [2016/11/13(日) 19:32:10.60 ID:BXznGnDQd.net]
>>434
その逆もあるよね

446 名前:デフォルトの名無しさん (ワッチョイ a723-teht) mailto:sage [2016/11/13(日) 20:47:49.40 ID:lO2MkZMm0.net]
>>440
xamlは覚えるまでに苦労するけど、覚えちまったらFormsより遥かに素早く簡単に出来るんだけどな

447 名前:デフォルトの名無しさん (ワッチョイ b33a-teht) mailto:sage [2016/11/13(日) 21:29:38.43 ID:fclqIQTb0.net]
>>431
> CountList<T> これはT型の変数を返すという意味なのに

その T は型引数に T を取るという意味

448 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/13(日) 22:11:24.34 ID:e/ThXpat0.net]
メニューのボタンを押したら異なるViewの特定の要素にアクセスしたいのですが、どうすればいいですか?
ElementNameでは同じViewに記述していないと駄目?みたいで困っています
RelativeSourceを使えば良いのでしょうか?でも記述方法がわかりません・・・。よろしくお願いします


Menu.xaml
<MenuItem Header="Test1表示" IsCheckable="True" IsChecked="{Binding IsVisible, ElementName=Test1}" />  ←ボタンを押したら

Test.xaml
<Grid x:Name="Test1"> ←これにあるIsVisibleが切り替わるようにしたい

449 名前:デフォルトの名無しさん (ワッチョイ 4b49-VsRF) mailto:sage [2016/11/14(月) 00:31:18.15 ID:HFnn5wUH0.net]
>>440
Formの方がやりやすいGUIってどんなの?

450 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/14(月) 01:58:30.32 ID:ktK+BwK20.net]
xaml←これなんて読むんですか!



451 名前:デフォルトの名無しさん (ワッチョイ 9fa6-teht) [2016/11/14(月) 02:01:05.98 ID:dUUXzUko0.net]
ザームル

452 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/14(月) 03:26:59.64 ID:OCTkBwGI0.net]
static void Swap<T>(ref T lhs, ref T rhs){
T temp;
temp = lhs; lhs = rhs; rhs = temp;
}

呼び出しは
Swap<int>(ref a, ref b);
省略して
Swap(ref a, ref b);

これはダメか? これでもいいよな。
Swap( a, b);

453 名前:376 (ワッチョイ b37b-hNMU) mailto:sage [2016/11/14(月) 04:35:40.38 ID:v43jjczV0.net]
テストプログラムを作ってみました。
ideone.com/JtZ5ui
間違った評価していないか確認して頂きたく。

各テストを1000万回ずつ回した結果は
TestPattern1
test1 elapsed:198msec hitCounter:10000000
test2 elapsed:197msec hitCounter:10000000
test3 elapsed:196msec hitCounter:10000000

TestPattern2
test1 elapsed:192msec hitCounter:10000000
test2 elapsed:183msec hitCounter:10000000
test3 elapsed:183msec hitCounter:10000000

TestPattern3
test1 elapsed:192msec hitCounter:10000000
test2 elapsed:191msec hitCounter:10000000
test3 elapsed:186msec hitCounter:10000000

TestPattern4
test1 elapsed:261msec hitCounter:10000000
test2 elapsed:261msec hitCounter:10000000
test3 elapsed:261msec hitCounter:10000000

firstCharで絞っても大した差は無し。
Dictionary<string,Action>は遅い。

でした。

core i7 6700k Releaseビルド
Debugビルドにするとめちゃ遅い

454 名前:デフォルトの名無しさん (ワッチョイ ef9f-WrRy) mailto:sage [2016/11/14(月) 05:52:45.45 ID:/TJLzgQW0.net]
それ最適化でswitchが丸ごと無くなるんじゃないの?

455 名前:デフォルトの名無しさん (ワッチョイ 4bc0-WVKM) mailto:sage [2016/11/14(月) 12:20:13.87 ID:SBSYakm50.net]
どうせいつもの100万回で数百msの差だろと思ったら、試行回数も差も一桁違ってた・・・
考えるだけ無駄だわな

456 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/14(月) 12:27:16.06 ID:QoZcYnGka.net]
>>448
繰り返し回数よりcaseの数の方が肝だと思うけど

457 名前:デフォルトの名無しさん (ワッチョイ 6f7d-teht) mailto:sage [2016/11/14(月) 13:04:48.53 ID:BB8aMjT80.net]
DebugだとDictionaryだけ速いんだな

458 名前:デフォルトの名無しさん (ワッチョイ b39f-cYps) mailto:sage [2016/11/14(月) 15:03:27.08 ID:+U0ySF0b0.net]
VS2013 .Net4.5.1
文字列のswitchがDictionary<string, int>→switch(int)みたいなILになってるので
test4がわずかに速いな

TestPattern2もstringCaseTestPattern1呼んでるぞ

459 名前:デフォルトの名無しさん (ワッチョイ 5387-MJQ8) [2016/11/14(月) 17:41:26.21 ID:Qgf5Rn5/0.net]
話に割り込んでしまってすみません。
次のようなことをやりたいのですが、そもそも可能でしょうか。

メインフォームで時間のかかるループ処理をやっていて、
その進行状況を別フォームを表示して、
別フォーム上に配置したプログレスバーで表示したいと思っています。

以前、ループ処理自体を別フォームで行っいプログレスバー表示はさせたことはありますが、
今回は、ループ処理はメインフォームで行いたいと考えていますが、
そもそも可能なのでしょうか。

460 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/14(月) 19:12:23.97 ID:xSfNgSMsr.net]
>>454
今なら、async, await 一択。



461 名前:デフォルトの名無しさん (ワッチョイ 6f7d-teht) mailto:sage [2016/11/14(月) 19:32:29.47 ID:42tRiMkK0.net]
>>448
public static readonly Action 〜 で Actionのenumっぽいクラス作ると速い

462 名前:デフォルトの名無しさん (ドコグロ MM5f-wOPQ) mailto:sage [2016/11/14(月) 19:51:26.73 ID:kXxSR+DwM.net]
>>454
できるけどはたから見たらなんでそんな構成なの?
って感じ

463 名前:デフォルトの名無しさん (ワッチョイ 5387-MJQ8) mailto:sage [2016/11/14(月) 20:15:42.84 ID:Qgf5Rn5/0.net]
>>455
ありがとうございます。
async使った作り方を検討してみます。

>>457
本当はプログレスバーを表示しているフォームでループ処理を実行できればいいのですが、
引数が大量になったりしてしまうので、メインフォームで処理を行いたいのです。
プログレスバーを別フォームにするのは、まあ、見栄えの問題ですね。

464 名前:デフォルトの名無しさん (スップ Sd1f-wOPQ) mailto:sage [2016/11/14(月) 21:22:47.48 ID:xjbQt/rmd.net]
>>453
なぜ今どき4.5.1?

465 名前:デフォルトの名無しさん (スププ Sd1f-PwKp) mailto:sage [2016/11/14(月) 21:33:34.62 ID:gWk7pXe+d.net]
>>459
しょうもないことにつっかかるね

466 名前:デフォルトの名無しさん (ワッチョイ b3dc-dJcJ) mailto:sage [2016/11/14(月) 21:35:10.48 ID:aL/Lu1lD0.net]
.NET4.6はAPIレベルではほとんど変わってないしどうせインプレース更新で互換性あるから
わざわざターゲットバージョンを上げて動作環境を狭める意味はほぼ無いだろ

467 名前:デフォルトの名無しさん (ワッチョイ 6f3c-wOPQ) mailto:sage [2016/11/14(月) 21:46:05.31 ID:NhhLZ04e0.net]
>>458
別にやりたいようにやればいいんだが
> 引数が大量になったりしてしまうので
って言う理由はちょっとどうかと思う...

468 名前:デフォルトの名無しさん (ワッチョイ 57cb-wOPQ) mailto:sage [2016/11/14(月) 22:34:09.85 ID:3a+GOjdi0.net]
>>459
いやあああああああああああ!
2.0ででちゃううううううう!
2.0
のままリリースしちゃうのぉおおおおおお!
恥ずかしいいいいいいい!

469 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/14(月) 23:53:59.37 ID:OlP0vwcQ0.net]
>>461
サポート切れのバージョンをなんでわざわざ使ってんのかって突っ込みだろカス

470 名前:デフォルトの名無しさん (ワッチョイ 57cb-wOPQ) mailto:sage [2016/11/15(火) 00:09:10.73 ID:vnzlS/G+0.net]
なんでって
だってバージョン上げたら
テストし直しじゃんよ
そんな金ないだろっていうか
客が金出さねぇって言ってる以上動けないだろ
って人多いと思うぜ

共存できない.netのバージョンの製品が同梱されてるときとか最新で組んでドヤ顔しててもうまく行くんだろか?
それとも全部最新の.netでコンパイルし直すんだろか?



471 名前:デフォルトの名無しさん (ワッチョイ 57cb-wOPQ) mailto:sage [2016/11/15(火) 00:11:49.01 ID:vnzlS/G+0.net]
すまん知識0だけど
職場の人間も似たような感じだったので
結局よくわからず下位バージョンに合わせて出しちゃったぜ

472 名前:デフォルトの名無しさん (ブーイモ MM1f-9MLS) mailto:sage [2016/11/15(火) 01:15:16.80 ID:R9/5GWGeM.net]
バージョン非互換なんて滅多に起こらんよ
仮に起こっても数個のコンポーネントを少し弄る程度で解決できる
無論アプリの作りがマトモならって前提だけどな

473 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/15(火) 01:16:44.44 ID:MJdWHDsF0.net]
>>465
再コンパ

474 名前:Cルする必要はないって、アホの>>461ですら言ってるじゃねーか []
[ここ壊れてます]

475 名前:デフォルトの名無しさん (スップ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 01:18:25.54 ID:5Vfxrfmvd.net]
>>467
C#6の中点くらいかな、まああれはUnicodeのせいだけど

476 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 02:29:36.45 ID:7Oesxf9ud.net]
>>467
それを「起こってない」と検証する金の出処の話じゃないの?
よく分かるけど。
起こってないのと、めったに起こらないし多分大丈夫、は違う。
鍵は全部締まってるの確認したよ、と、鍵締めたかどうか定かじゃないけどこの辺は治安いいから大丈夫、は全然違う。

477 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/15(火) 02:53:21.41 ID:NoTRkZnD0.net]
WPFアプリケーションで言語を動的に切り替え可能な多言語化をしたいのですが、
調べてみるとResource.resxを使ったりxamlのResourceDictionaryを使ったりと色々あって困惑しています。
どのようなやり方が最適解なのでしょうか?

478 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/15(火) 05:52:35.99 ID:MJdWHDsF0.net]
>>470
サポート切れのバージョンを使い続けることによるリスクより、4.5.1から4.5.2へのインプレース更新の方がはるかに安全だろ

479 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/15(火) 05:53:50.91 ID:MJdWHDsF0.net]
>>471
デフォルトのロケールは?

480 名前:デフォルトの名無しさん (ワッチョイ 377b-EKpQ) mailto:sage [2016/11/15(火) 08:10:51.58 ID:7W+Eb75M0.net]
 public  class FI
  {
      FileInfo _ff;
      string _dispdata;

     public FI(FileInfo fi)
      {
          FI(fi, false); //★error になる。なんとかならないのか?
      }
      public FI(FileInfo fi, bool mode)
      {
         _ff  = fi;
          if(mode)
             _dispdata =  string .Format ("{0,20}:{1,-35} {2,-100}", _ff.CreationTime, _ff.Name, _ff.DirectoryName );
          else
             _dispdata =  string .Format ("{0,20}:{1,-35}", _ff.CreationTime, _ff.Name);

      }
       public   FileInfo finfo{ //★FileInfoという名前にしたいのにできない。何とかならないか?
         get { return _ff; }
      }
  }
}
★をみて感想をください。



481 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 08:37:11.25 ID:7Oesxf9ud.net]
>>472
サポート切れも何も。。
リスクとコストを天秤にかけるのは必要なことだろ。
はるかに、とか美味しい言葉で修飾せんと。
その程度の意識でみんなバージョン上げてんだなって思うな。

482 名前:デフォルトの名無しさん (ワッチョイ 377b-EKpQ) [2016/11/15(火) 08:51:04.93 ID:7W+Eb75M0.net]
474解決しました。たんくす

483 名前:デフォルトの名無しさん (スッップ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:05:01.57 ID:Sy8HLWAKd.net]
>>475
お前サポート切れの.NET保証できんの?すげえな尊敬するわ

484 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:14:17.64 ID:7Oesxf9ud.net]
>>477
保証をどう定義するかでしょ。
このシステムは動きます、の保証はするよ。

485 名前:デフォルトの名無しさん (ワッチョイ 4bc0-WVKM) mailto:sage [2016/11/15(火) 12:24:10.02 ID:pMl4CMoG0.net]
MSは保証してないけど動くから保証しますで通用するからまた困るんだよな

486 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/15(火) 12:32:14.65 ID:CGrdF/ira.net]
サポートっていうのは単に何か不具合が見つかった時にMS様がそれを修正する努力はします、
って程度の意味だからさあ...

ビジネストーク的には意味があると思うけど実質的な意味はあんまりないと思うけどね個人的には

487 名前:デフォルトの名無しさん (スッップ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:38:22.77 ID:Sy8HLWAKd.net]
>>478
脆弱性が見つかった時は?

488 名前:デフォルトの名無しさん (スププ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:55:55.09 ID:Z3/Q/mWPd.net]
客の社内環境が最新の.NET Framework許可してない場合も珍しくないしな

489 名前:デフォルトの名無しさん (ササクッテロレ Sp2f-9MLS) mailto:sage [2016/11/15(火) 13:15:07.06 ID:mY0gDrgyp.net]
>>481
保守で定期的に金取ってるなら契約次第
そうでないなら「フレームワーク更新作業するなら発注してね」でいいだろ

490 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 14:20:03.90 ID:7Oesxf9ud.net]
>>481
その脆弱性がシステムにとって致命的かどうか、
システム全体の検証工数と回避修正+波及箇所検証工数でどちらが勝つか(大体はラッパー作って使ってるから、その修正と波及箇所の動作検証で済む)
客が金どれだけ持ってるか、
の折り合いついた所だと思うよ。



491 名前:デフォルトの名無しさん (ワッチョイ 6f7d-teht) mailto:sage [2016/11/15(火) 14:37:14.63 ID:0U4qoaFD0.net]
XP対応の4を使い続ける

492 名前:デフォルトの名無しさん (スプッッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 15:43:51.26 ID:ODQ0lCKgd.net]
>>482
誰も最新の話なんてしてないよ

493 名前:デフォルトの名無しさん (スプッッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 15:44:52.48 ID:ODQ0lCKgd.net]
>>484
つまり、脆弱性が見つかってから検証を始めるってことね

494 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 17:05:58.01 ID:7Oesxf9ud.net]
>>487
いや、改修したり、OSやミドルやライブラリやフレームワークを更新したら、その検証をするけど、
脆弱性が発見された箇所自体はKBやらで出た内容からソース中の出現箇所出して、依存ツリー出して把握するくらいだよ、その時点では。

495 名前:デフォルトの名無しさん (ワッチョイ 339a-zoBz) [2016/11/15(火) 17:08:40.62 ID:/cCbWJxV0.net]
既存のCで書かれたエミュレータをアンマネージドDLL化して、C#のGUIアプリから
呼び出して使えないかと思っています。
DLLの関数(1フレーム分進めるなど)を呼び出すことはできると思いますが、
その際にDLL内の特定の関数(ポートへの出力、画面更新など)

496 名前:ェ実行されたとき、
C#アプリ側でイベントとして捕捉する(C#側の関数が実行される)ようなことは
できるんでしょうか。
[]
[ここ壊れてます]

497 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/15(火) 17:22:31.09 ID:PhOBmSZe0.net]
>>489
コールバックとかを使えば多分行ける
うまく行かないことがあればC++/CLIの出番かな

498 名前:デフォルトの名無しさん (ワッチョイ 3319-7KSV) mailto:sage [2016/11/15(火) 17:24:00.58 ID:weebeOlr0.net]
そのDLLのソースを書き換えても良いのなら、
DLL側はコールバック登録関数を公開して必要なときに登録されてるコールバックを呼び出す
って形は取れるけど。

499 名前:デフォルトの名無しさん (JP 0H6f-2n2A) mailto:sage [2016/11/15(火) 17:46:08.44 ID:4QSE1fRAH.net]
オンメモリで改ざん

500 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/15(火) 17:50:32.92 ID:NoTRkZnD0.net]
>>473
日本語です



501 名前:デフォルトの名無しさん (ワッチョイ 4b49-VsRF) mailto:sage [2016/11/15(火) 22:28:52.68 ID:YqUWOmsB0.net]
>>471
Resource.resxを使うかResourceDictionaryを使うかは好み。
Resource.resxはGUIで設定できる。ロードする部分はシステムのロケール依存で良ければ自動。サテライトアセンブリが生成される
ResourceDictionaryはxamlを自分で記述する。ロードする部分も自分で作成。サテライトアセンブリが生成されない
個人的にはResource.resxの方が好きかな。

で、動的に切り替えって、起動時に切り替えるだけじゃ足りない?
任意のタイミングで既存のGUIもぱっと切り替えるのが必要だとすると、上記だけじゃ駄目で、
ラッパー的なクラスを作成して、それに対してバインディングするようにする必要がある。

502 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/15(火) 23:15:19.81 ID:NoTRkZnD0.net]
>>494
どちらとも動的に切り替えるところまでは作りました
どっちにするかまだ迷っています
どちらが世界的に主流でしょうか?

503 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/15(火) 23:23:38.02 ID:r0bdrrlQ0.net]
>>495
WPF自体が主流には程遠いから好きにしろとしか

504 名前:デフォルトの名無しさん (ワッチョイ 3703-M1Ou) mailto:sage [2016/11/16(水) 14:46:22.40 ID:oJqix3AL0.net]
ArrayListを使用した2次元配列を構築したいと考えております。

データは「実験項目」、「測定値」でファイルから読み出します。
一つの「実験項目」に対して任意数の「測定値」があり、任意数の「実験項目」があります。
ファイルを読み出さないとそれぞれの要素数がわからないため動的配列を使いたいと思っています。
「実験項目」、「測定値」共に1,000以内程度の予想です。

ArrayListは扱えていると思っているのですが2次元にする方法がよくわかりません。
ご教示いただけないでしょうか。よろしくお願いします。

505 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/16(水) 15:20:15.99 ID:Nmwy7smwa.net]
>>497
ArrayListは10年以上前に役割を終えた旧式だからもう使っちゃだめ
代わりにList<T>でも使って

List<T>も2次元にはできないが、そもそも2次元にする必要がない

 - TestItem(実験項目)にMeasured(測定値)のリストList<Measured>を持たせて、

 - TestItemのリストList<TestItem>を作る

これでOKでしょ
知らんけど

506 名前:デフォルトの名無しさん (ササクッテロレ Sp2f-9MLS) mailto:sage [2016/11/16(水) 15:31:15.35 ID:E4kD/LBwp.net]
>>497
TestItem(実験項目)にMeasured(測定値)のリストを持たせたくない場合はDictionary<TestItem,List<Measured>>とか

507 名前:デフォルトの名無しさん (ワッチョイ 3703-M1Ou) mailto:sage [2016/11/16(水) 16:11:42.19 ID:oJqix3AL0.net]
>>498-499
ご教示ありがとうございます。

やはりArrayListは非推奨なのですね。
List、Dictionaryを勉強してみます。

508 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/16(水) 20:05:48.43 ID:qGX/+c5Jr.net]
何故に、そんなレガシーな亡霊がこの世に??

509 名前:デフォルトの名無しさん (ブーイモ MMef-9MLS) mailto:sage [2016/11/16(水) 20:19:51.08 ID:gtmrvLDzM.net]
リファクタリングは悪
回帰テスト嫌だからコピペして新規追加しろ
日本はそういう文化だから理解しがたいレガシーコードで溢れかえる

510 名前:デフォルトの名無しさん (ワッチョイ 4bc0-WVKM) mailto:sage [2016/11/16(水) 20:38:27.57 ID:MMds4sI/0.net]
>>501
キーワードでググったら上位にくるんじゃね
あの手の骨董品コードが残り続けるのは本当害悪でしか無いわ



511 名前:デフォルトの名無しさん (ワッチョイ d3d6-teht) mailto:sage [2016/11/16(水) 20:49:59.04 ID:Ws6HNRv60.net]
文句はいつまでも互換性を持たせているマイクロソフトに言え

512 名前:デフォルトの名無しさん (ワッチョイ 273c-WVKM) mailto:sage [2016/11/16(水) 20:57:40.76 ID:MeLHc+gy0.net]
初心者です。

先日測定機のプログラムを作りました。
データ取得の処理中に進捗状況を表示させたくなりました。
フリーズしてるのと勘違いされないようにしたいわけです。

少し調べてみたら、どうやらマルチスレッドなるもの
使うようなんですが、これについて優しく書かれている
サイトなどあればお教えいただければうれしいです。

よろしくおねがいします。

513 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/16(水) 21:08:39.93 ID:1s2sSz8X0.net]
>>505
自分でThreadやTaskを明示的に作って使う必要があるケースは少ない
再現困難なバグを引き起こしやすいから、マルチスレッドを明示的に使うのは非同期プログラミングに慣れないうちはなるべく避けた方がいい
シリアルか独自のSDKがあるのか知らないけど、何かの外部装置からデータ取ってるなら非同期で取るAPIは用意されてるだろ?
もし同期APIしか用意されてない糞SDKなら仕方ないが、そうでない限りは用意された非同期APIを使うことを優先したらいい
データをどうやって取ってるのかをお前が晒せばもっと具体的なアドバイスもできる

514 名前:デフォルトの名無しさん (ワッチョイ 37dc-WVKM) mailto:sage [2016/11/16(水) 21:10:52.22 ID:QT5715if0.net]
>>505
時間のかかる処理をバックグラウンドで実行するには?[2.0のみ、C#、VB] − @IT

www.atmarkit.co.jp/fdotnet/dotnettips/436bgworker/bgworker.html

.NET開発における非同期処理の基礎と歴史 − @IT

www.atmarkit.co.jp/fdotnet/chushin/masterasync_01/masterasync_01_01.html

515 名前:デフォルトの名無しさん (ワッチョイ cb94-5NgJ) mailto:sage [2016/11/16(水) 22:04:51.69 ID:PcfUB0DB0.net]
上のページはBackgroundWorkerの話で古すぎるし、
下のは歴史から説きおこしてるから最初から読むと長すぎる

async awaitについて書いてあるここ↓くらいから読むのがいいかと
www.atmarkit.co.jp/fdotnet/chushin/masterasync_02/masterasync_02_01.html

非同期API使うにしても、async await がわかってないと辛いだろうし

516 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/16(水) 22:20:31.36 ID:5Ihw572qa.net]
そもそも非同期とは何かを理解せずにいきなりそんなの読んで理解できると思えませんがw

517 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/16(水) 23:41:29.23 ID:1s2sSz8X0.net]
初心者ならまずはEAPから入るのがいいんじゃないか
awaitみたいな黒魔獣と違って仕組みが単純明快だし、使う側からすれば完全にシングルスレッドで非同期ができる
排他処理だのデッドロックだのいきなりマルチスレッド特有の問題を抱え込むより、
まずは純粋に非同期プログラミングのところだけを抽出して順番に理解していけばいいと思うよ

518 名前:デフォルトの名無しさん (ワッチョイ 2376-NcFo) mailto:sage [2016/11/16(水) 23:57:52.40 ID:cEthX6dM0.net]
もっと単純に↓のworkメソッドの中で10%ごとぐらいにラベル表示とかするだけの話じゃないかな
www.atmarkit.co.jp/ait/articles/0506/17/news111.html
まずは目的達成を

519 名前:デフォルトの名無しさん (ワッチョイ 9c7b-XpIe) mailto:sage [2016/11/17(木) 00:43:08.63 ID:KQ/jS2NF0.net]
ベジエ曲線の質問なんですが
P1(10,10) P2(10,40) P3(40,10) P4(40,40)
このような4点のベジエがあったとして、この放物線のP4の延長線を書きたい場合、
どのようにすればいいのでしょうか?

520 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/17(木) 00:56:22.10 ID:ViKAooID0.net]
Invoke()も今は推奨されないんじゃないかなぁ



521 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/17(木) 01:43:36.99 ID:ypT0aoV/a.net]
>>512
よく知らんけど、終了点の延長戦の方向は制御点から終了点向かう
ベクトルに等しいはずだから、後は簡単な高校数学じゃないの?

522 名前:デフォルトの名無しさん (ワッチョイ 3faf-N7ik) mailto:sage [2016/11/17(木) 02:39:29.89 ID:Dxu6gLWd0.net]
スレッド周りは古い情報が残りまくりでどうしたらいいのか難しすぎ
非同期処理とかで検索すると普通にasync awaitが見つかるけどプログレスバーとかで検索すると未だにBackgroundWorkerを使うとか書いてるから困る

523 名前:デフォルトの名無しさん (ワッチョイ 9c7b-XpIe) mailto:sage [2016/11/17(木) 03:14:03.30 ID:KQ/jS2NF0.net]
>>514
自分の説明が下手でも仕分けないのですが、
要するに2次曲線をベジエ曲線を使って描画し、
曲線の終点の延長を追記で描画したいということなのですが

524 名前:デフォルトの名無しさん (ワッチョイ b5dc-2XGH) mailto:sage [2016/11/17(木) 07:07:26.21 ID:iGNJFpBr0.net]
>>516
端点とそこでの一次の傾きさえ一致してれば滑らかに繋がってるように見える。で、それは514で答えが出てる。
二次の傾きには任意性があって、どう決めたら最も美しいかはあくまでお前の感性の問題だ。
その感性を数学的に定義するのはお前の仕事。それができたら答えは出たようなもんだろ。

525 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 07:33:08.85 ID:B+vLCAoF0.net]
>516
俺もそれ興味あるな。でもペジェー曲線を描く関数は簡単にわかるだろ。
それをプログラム的にどう実現するかが知りたいってことだよね。
バーンスタイン基底関数のブレンディング関数ではN点の式になってるが、実際には
n点でかいたベジェにn+1点を書く場合全部書き直すのは不経済だよな。

bz = new Bezier(p1,p2);
bz = bz.add(p3);
bz = bz.add(p4);
bz = bz.add(p5);
bz = bz.add(p6);

foreach pp in bz{
bz.pset(whiteColor, pp.xl,pp.yl);//前のポイントを消す
bz.pset(RedColor, pp.x,pp.y);//今回を書く
}
こんな感じじゃないか?
グラフィックはやったことないから知らんけど。わからんな前のラインを消すのが
難しいな。

526 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 07:37:55.62 ID:B+vLCAoF0.net]
まあpsetよりもplineだろうな。普通のCADはベクトルで管理していて、書き直しは
やはり、前のラインを記憶していて、背景色で上書きして消すのだと思うよ。

527 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 07:46:11.48 ID:B+vLCAoF0.net]
bz = new Bezier(p1,p2);
bz = bz.add(p3);
bz = bz.add(p4);
bz = bz.add(p5);
bz = bz.add(p6);

bz.write(red, Style1);
これでいいや、制御点はaddするときにわかってるからね。
書くときにベクトルは全部記憶してるからwriteするときに消して書けばいい。

しかし、背景色が違うところをまたがるときはどうすんの? って問題があるな。

528 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 08:20:53.64 ID:B+vLCAoF0.net]
>516
 ツールはなに? DirectXとか? どういう環境でかこうとしているんかで
かなり違うと思う。

DirectXだったら関数についてるんじゃない? 環境が正確にわかればサンプルを
書いてあげるよ。もしわからなければ、、、

529 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/17(木) 08:43:40.73 ID:UCWuOxD40.net]
c#でluaを使うためのパッケージは誰がよろしいでしょうか?

530 名前:デフォルトの名無しさん (スププ Sdb8-RUi6) mailto:sage [2016/11/17(木) 09:34:37.15 ID:Nr9kHWsUd.net]
背景の



531 名前:`画はXor Notの色じゃだめなぬ? []
[ここ壊れてます]

532 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 11:04:15.91 ID:B+vLCAoF0.net]
>背景の描画はXor Notの色じゃだめなぬ?

だめ。
psetなら隣の色を拾って背景代わりにするとできるが、、、lineだと背景の色を
覚えておかないとできないね。特に切り替わりのあるところ毎に背景を記憶して
覚えておかないとできないね。

BackColorXorline()なんて関数があって背景は別レイヤで記憶していてくれれば
できるけど。そんなのがあるんだろうな。きっと。

グラフィックコントローラの機能として何枚かのレイヤがあるんだろうね。でないと
移動するごとに大量のベクトルの書き直しとか間抜けすぎるものね。
だからレイヤーを指定して書き込みできるんじゃなかろうか?

533 名前:デフォルトの名無しさん (オッペケ Sra9-2XGH) mailto:sage [2016/11/17(木) 13:02:06.96 ID:lS45HIXqr.net]
LINQって使うとハマりそうなところって非同期だから返ってくる結果がよくからん順番になるところと可読性が悪いところ?
メリットは少なめなメモリで動くってだけかな?

Rxとかは便利そうって思えるけど

534 名前:デフォルトの名無しさん (アウアウカー Sa41-2XGH) mailto:sage [2016/11/17(木) 13:11:56.85 ID:3nQkkv32a.net]
LINQって非同期実行じゃなくて遅延評価じゃないの?
当然順番は変わらないし

更に言うとLINQの最大の利点て可読性の向上だと思ってたんだが…

535 名前:デフォルトの名無しさん (ワッチョイ 9f94-Ctj4) mailto:sage [2016/11/17(木) 13:34:27.15 ID:JueYqnTL0.net]
返ってくる順番が不確定なのはPLINQだね
(AsOrderd()を使えば順番を維持させることもできるけど)

LINQで可読性が下がるというのは、もしかして、ラムダ式に慣れてないだけでは…

536 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 13:45:17.61 ID:B+vLCAoF0.net]
>526
遅延って意味がおかしいんじゃない。クエリを書いただけでは実行しないってこと
を遅延っていってるんだろうか? そんなの当たり前のように思えるが、、、

537 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/17(木) 14:11:29.10 ID:DsCEIrdz0.net]
「C#プログラム効率的な書き方」でも読めば?
この本は嫌というほど詳細にLINQが解説してあるから

538 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 14:40:02.46 ID:B+vLCAoF0.net]
>529
 そうだね。それ読んでみる。

539 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 14:40:19.41 ID:B+vLCAoF0.net]
var dtm = new DateTime();
var user = new MembershipUser("?????", "1", "obj", "3","4", "5",
true, true, dtm, dtm, dtm, dtm, dtm);

MembershipUserをテストしようとしてるんだが"?????"は何をいれたらいいの?
無効なプロバイダーでエラーになる。

540 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 14:41:28.03 ID:B+vLCAoF0.net]
正確には

 追加情報:指定されたメンバーシップ プロバイダー名が無効です。

こんなメッセージ



541 名前:デフォルトの名無しさん (ワッチョイ 774f-oPeX) mailto:sage [2016/11/17(木) 14:41:41.50 ID:sJEahq+u0.net]
また川俣本か・・・

542 名前:デフォルトの名無しさん (JP 0H0d-2BAc) mailto:sage [2016/11/17(木) 14:41:59.02 ID:9sPAmX71H.net]
実行順序は直感と違うと思うな
副作用がなければ気にならんけど

543 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/17(木) 14:49:43.65 ID:DsCEIrdz0.net]
>>533
まあね
この人はちょっとパラノイアじみるほどマニアックなところがあるけど、
全部読破すれば間違いなくLINQ to Objectsの力が付くと思う
「こんな使い方普通しないだろw」みたいなのも書いてある

544 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/17(木) 15:17:23.72 ID:UCWuOxD40.net]
>>522です
開発環境はvisualstdioです
nugetで公開されているneolua moonsharp等のluaの拡張パッケージになにか違いがあるのでしょうか?

545 名前:497 (ワッチョイ 7c03-EDxK) mailto:sage [2016/11/17(木) 17:31:32.94 ID:K3Fbeu8d0.net]
>>497 です。

せっかくレスいただいたのですが↓が理解できませんでした。申し訳ありません。

> - TestItem(実験項目)にMeasured(測定値)のリストList<Measured>を持たせて、
> - TestItemのリストList<TestItem>を作る

List<double> lsMeasTest = new List<double>();
でListを生成して
lsMeasTest.Add(dblData);
で測定値を格納していくのはわかります。

実験項目が増えたときにListを生成するのですが
List<double> 変数名 = new List<double>();
を必要数分実行する方法がわからないのです。

546 名前:デフォルトの名無しさん (ワッチョイ 9f94-Ctj4) mailto:sage [2016/11/17(木) 17:59:43.84 ID:JueYqnTL0.net]
項目リストとしてList<List<double>>(List<double>を入れるList)を作っておく
測定値を入れたList<double>を作ったら、項目リストにAddしていく
ではだめなの

547 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 18:09:46.70 ID:B+vLCAoF0.net]
>573 
 これでどう?

var dict = new Dictionary<string, double>();
dict.Add("test1", 32.5);
dict.Add("test2", 3002.5);
dict.Add("test3", 199932.5);

548 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 18:15:42.30 ID:B+vLCAoF0.net]
var dict0 = new Dictionary<string, double>();

dict0.Add("test1", 32.5);
dict0.Add("test2", 3002.5);
dict0.Add("test3", 199932.5);

var dict1 = new Dictionary<string, double>();

dict1.Add("btest1", 32.5);
dict1.Add("btest2", 3002.5);
dict1.Add("btest3", 199932.5);

var Jkken = new Dictionary<string, Dictionary<string,double >>();
Jkken.Add("実験項目1", dict0);
Jkken.Add("実験項目2", dict1);

こうかな?

549 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/17(木) 18:25:00.31 ID:hkg3+6Yaa.net]
>>537
大サービスでサンプル書いてみた
ideone.com/WjLe3C

550 名前:デフォルトの名無しさん (ワッチョイ 21bd-2Ppy) [2016/11/17(木) 18:51:38.13 ID:mx0eMjxm0.net]
public private protected やstatic やプロパティって
どうしても必要なの?
実際に不正アクセスが起たりするもんなの?
何のために、何を防御しているのか理解できない。



551 名前:デフォルトの名無しさん (ワッチョイ b179-XpIe) mailto:sage [2016/11/17(木) 18:53:40.36 ID:VcCKxuk30.net]
不正アクセスの為にアクセス制限している訳じゃないし、不正アクセスの防止は出来ない
staticは別

552 名前:デフォルトの名無しさん (ワッチョイ 9cba-XpIe) mailto:sage [2016/11/17(木) 19:06:49.94 ID:uPELr+Dd0.net]
遂にGoogleさんも参加するって
https://mspoweruser.com/google-joins-net-foundation/

553 名前:デフォルトの名無しさん (JP 0H0d-2BAc) mailto:sage [2016/11/17(木) 19:49:50.72 ID:9sPAmX71H.net]
クラウド方面か

554 名前:デフォルトの名無しさん (ワッチョイ b5dc-2XGH) mailto:sage [2016/11/17(木) 20:22:33.07 ID:iGNJFpBr0.net]
>>542
余計な情報を外に漏らすと、それを今後もそうだと期待して依存する奴が出てくる
で、お前が後で変えたら何で勝手に変えたんやワシのコードが動かへんようになったわシバクぞボケと言われることになる
日常生活でも「言ってしまったから今更変えづらい」ってあるだろ?
確かに約束できること以外には外に余計な情報を漏らさないようにすることで、
中身を弄っても何勝手に変えとんねんと言われない変更に強いプログラ厶になるんだよ

555 名前:デフォルトの名無しさん (オッペケ Sra9-2XGH) mailto:sage [2016/11/17(木) 21:12:47.62 ID:lS45HIXqr.net]
>>529
>C#が提供するLINQ to Objectsは、多大な効能と価値を併せ持つ重要な考え方ですが、Cのポインタ同様に抽象的でわかりりにくいものです。

ってその本の解説に書いてるよ
やっぱわかりにくいんだね

556 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/17(木) 23:20:42.92 ID:iGNJFpBr0.net]
それはSQLを知らないだけかと
SQLは伝統的なドカタ道具の中ではズバ抜けてセンスのいい技術だから
食わず嫌いしないで一度ちゃんと学んだ方がいい

557 名前:デフォルトの名無しさん (ワッチョイ 9c42-XpIe) mailto:sage [2016/11/18(金) 00:06:56.41 ID:BJrPV4Dl0.net]
なぜLambdaがあるのにLinqなんて異物をぶち込んだのか
いまだにわからん

全部Lambdaでいいやん!

558 名前:デフォルトの名無しさん (ワッチョイ b97b-AAsj) [2016/11/18(金) 00:09:34.50 ID:ifsRvlL10.net]
int i = 0;
int j = 0;
System.Console.WriteLine(i++);   //0
System.Console.WriteLine(j+1);   //1

この2つはなぜ結果が異なってしまうんでしょうか?

559 名前:デフォルトの名無しさん (オッペケ Sra9-2XGH) mailto:sage [2016/11/18(金) 00:16:31.04 ID:0j66y/nmr.net]
>>548
SQLはMySQLを5年ほどやっとります

560 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/18(金) 00:30:20.75 ID:gT3Hev+M0.net]
>>550
i++はインクリメントする前の値を返すから



561 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/18(金) 00:46:38.58 ID:iR5uoSVg0.net]
>>547
最初にCのポインタをやった時を思い出すといい
初めは全然分からなかったろ?でも今は楽に分かるだろ?
要は慣れ

562 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/18(金) 00:55:03.81 ID:gT3Hev+M0.net]
>>549
JoinとかGroupByとかSelectManyとかクエリ式無しだともはや暗号だろ

563 名前:デフォルトの名無しさん (ワッチョイ 9fd4-XpIe) mailto:sage [2016/11/18(金) 01:08:31.02 ID:Bd8bsuVC0.net]
クエリ式なんか使ったことない

564 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 02:34:45.49 ID:ayjJho0i0.net]
>554
それ以外ならラムダ式でできるんか? 例えば? Where、selectを
ラムダ式で書いてみて。

ラムダ式の意味がわからんけど、まあ適当に「こんなんか」くらいで使ってる。

565 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 02:47:08.73 ID:ayjJho0i0.net]
LINQは便利やけど、OrderByとか気持ち悪くて使う気しないな。
単純にSortするよな。
多用するとパーフォマンスが無茶苦茶落ちると思う。

566 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 02:54:33.31 ID:ayjJho0i0.net]
public IEnumerable<string> Records
{
get
{
return doc.Element("root").Element("collections").Elements("own").Select(c => c.Descendants("ID").First().Value);
}
}


LINQだめじゃん。 こっちのほうが簡単。
public IEnumerable<string> Records
{
get
{
return doc.XPathSelectElements("//root/collections/own/ID");
}
} 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


567 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 02:57:24.22 ID:ayjJho0i0.net]
XpathとLINQを組み合わせてつかえんのか?

568 名前:デフォルトの名無しさん (ワッチョイ 3a13-RUi6) mailto:sage [2016/11/18(金) 03:07:45.45 ID:qODTBmiq0.net]
ごちゃごちゃうるせーよ

569 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 03:13:27.93 ID:ayjJho0i0.net]
var elem = XElement.Parse(something);
var maz = elem.Element("vehicle").Elements("car").Where(c => ((string)c.Attribute("maker")) == "mazda"));

LINQはXMLみたいな階層構造を持ってるとダメじゃない?
これじゃ最初のItemしかサーチできないよ。

570 名前:デフォルトの名無しさん (ブーイモ MM0d-N7ik) mailto:sage [2016/11/18(金) 08:03:56.85 ID:/xmrja5bM.net]
Linqがボトルネックになったことって意外とないよな
大量データってわかってれば最初から速度最適化考えるし
CLRはメモリ節約の効果がでかいんだね



571 名前:デフォルトの名無しさん (ワッチョイ b5dc-2XGH) mailto:sage [2016/11/18(金) 08:16:20.86 ID:gT3Hev+M0.net]
それはLINQ使おうとする奴はだいたい一定のスキルがあるから無茶しないだけ
LINQを使おうと思えば使えるシーンで大量データに対して O(N^2)とかの馬鹿みたいなループをやらかす奴はやっぱりいるわけだけど、
そういう奴は当然LINQなんか使わない(使えない)

572 名前:デフォルトの名無しさん (ワッチョイ ad5b-N7ik) mailto:sage [2016/11/18(金) 08:21:39.98 ID:O/884XX90.net]
トグルスイッチのようなインターフェースってWindowsformのコントロールにあるっけ?
ない場合どうやって作れる?

573 名前:デフォルトの名無しさん (ドコグロ MMff-RUi6) mailto:sage [2016/11/18(金) 08:26:54.53 ID:MmcaWbSXM.net]
>>564
チェックボックスかラジオボタンで代用

574 名前:デフォルトの名無しさん (ワッチョイ 7c03-EDxK) mailto:sage [2016/11/18(金) 08:35:21.61 ID:nNUszv7+0.net]
>>538-541
ありがとうございます!!

B+vLCAoF0さんのDictionaryを使う方法、
サンプルコードを準備していただいたhkg3+6Yaaさんの方法
どちらも勉強させていただきます。
本当に感謝です、ありがとうございました!

575 名前:デフォルトの名無しさん (オッペケ Sra9-hkLf) mailto:sage [2016/11/18(金) 09:35:07.23 ID:+KSaSaaRr.net]
LINQ-To-XMLの立場は。

576 名前:デフォルトの名無しさん (ワッチョイ b974-qiik) mailto:sage [2016/11/18(金) 09:39:13.30 ID:MjC3oXMe0.net]
知らない子ですねえ

577 名前:デフォルトの名無しさん (ワッチョイ 1519-/ySS) mailto:sage [2016/11/18(金) 10:51:06.70 ID:AfWqy2AK0.net]
>>564
2値のTrackBarとか

578 名前:デフォルトの名無しさん (ワッチョイ 88d4-XpIe) mailto:sage [2016/11/18(金) 12:42:20.87 ID:qAuADTbv0.net]
C++弄っていた人から見たら、C#もVBも大差ないよなぁ
ちょっと方言が違うだけ、みたいな

値渡しなのか参照渡しなのか、パッと見で分からないし
使った変数の後始末はFramework任せとか

579 名前:デフォルトの名無しさん (ワッチョイ 1519-/ySS) mailto:sage [2016/11/18(金) 14:11:40.18 ID:AfWqy2AK0.net]
値渡しなのか参照渡しなのか分からないのはむしろC++とVBだと思うのだけど
呼び出される側だけ特別な記述&/ByRefして呼び出す側は変わらないって言う
C#は両者共に特別な記述ref/outが必要で

580 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 14:27:23.42 ID:ayjJho0i0.net]
C++とか触る気しないな。いらんことを書く量が多すぎて気が狂いそう。
 その点F#をすこし触ってみたが、これは楽だな。C#からすると違和感があるが型推論が
しっかりしているので慣れると楽だと思う。
そもそもループを書くためのforとかがない。もしLINQを知らなかったら、ループなしで
どうやってプログラムを書くのか理解に苦しんだと思う。



581 名前:537 (ワッチョイ 7c03-EDxK) mailto:sage [2016/11/18(金) 15:03:02.85 ID:nNUszv7+0.net]
>>537 です。

>>541 でサービスしていただきましたが現状とても難しいです。
=>ってなんでしょうか。ビルドできないです。。。

でも、もう少しがんばります。

582 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/18(金) 18:15:45.39 ID:fuS99ZTSa.net]
>>573
使ってるC#のバージョンは?
それはC#6で導入された読み出し専用プロパティの省略記法

public List<Measured> MeasuredList => _MeasuredList;

public List<Measured> MeasuredList
{
  get {return _MeasuredList;}
}
と同じ。
www.atmarkit.co.jp/ait/articles/1606/01/news051.html

583 名前:デフォルトの名無しさん (ワッチョイ ad5b-N7ik) mailto:sage [2016/11/18(金) 20:21:01.12 ID:O/884XX90.net]
>>565
そっかー残念
ありがとう

584 名前:デフォルトの名無しさん (ワッチョイ 9fd4-XpIe) mailto:sage [2016/11/18(金) 20:30:49.38 ID:P4KNWvky0.net]
カスタムコントロールで適当なコントロールから継承して作ればいいだけ
簡単に作れるよ

585 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 20:45:44.35 ID:ayjJho0i0.net]
適当では作れんだろ。w
どのコントロールを継承してどのように作るのか。

586 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/18(金) 20:53:06.96 ID:cT5mFVkF0.net]
keydownイベントをプログラムから発生させる方法はありますか?

587 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/18(金) 20:54:03.59 ID:fuS99ZTSa.net]
まあ、Checkboxを継承するのが普通だろうねえ。

トグルスイッチっていうのはビジュアルをAndroidのUIにあるような奴にしたいってことかな。
ボタンの凹凸を切り替えるのでよければ何もしなくても標準でできるけど

588 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/18(金) 21:37:55.69 ID:8JkTMqoR0.net]
見た目を重視しないなら、ユーザーコントロールでトグルボタン2個乗っけるのが手っ取り早い。

589 名前:デフォルトの名無しさん (ワッチョイ 9fd4-XpIe) mailto:sage [2016/11/18(金) 21:51:48.89 ID:P4KNWvky0.net]
Checkbox継承してOnPaintで描けばいいだけだから、やってみるば簡単
Checkedで描画する画像切替えるとかで簡単に実現できる
サイズは画像のサイズに合わせてMaximumSizeとMinimumSizeを固定しちゃうとかかな

590 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/18(金) 22:02:56.90 ID:cT5mFVkF0.net]
>>578です
実装できました



591 名前:デフォルトの名無しさん (ワッチョイ 3f49-+6wY) [2016/11/18(金) 22:24:07.69 ID:8JkTMqoR0.net]
画像貼り付けて作ると高DPI対応は出来なくなるな

592 名前:デフォルトの名無しさん (ワッチョイ 34ce-ke/V) mailto:sage [2016/11/18(金) 22:47:36.55 ID:YsofO7c60.net]
画像を高画質で持っておいて伸縮サセルノデス

593 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/18(金) 22:49:04.17 ID:fuS99ZTSa.net]
EMFを使えば出来るんじゃない?
十分でかいビットマップを使ってもいいと思うけど

594 名前:デフォルトの名無しさん (ワッチョイ 34ce-ke/V) mailto:sage [2016/11/18(金) 22:51:45.64 ID:YsofO7c60.net]
ところでWindows10によくある横にスライドするスイッチ(● )←みたいなやつ
あれの状態をプログラムから参照したいのですが、
ウィンドウハンドル的なものは取れますか?

595 名前:デフォルトの名無しさん (ワッチョイ 5e23-tQqt) mailto:sage [2016/11/18(金) 23:09:11.73 ID:RGR0MUcx0.net]
>>585
つか、単純な図形だからGDI+で書いたほうが早いし、アニメーションさせたくなったら
画像はお払い箱です

596 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/18(金) 23:12:28.84 ID:8JkTMqoR0.net]
EMFは存在をすっかり忘れていたな
C#でも扱えるんだね

デカいビットマップの縮小は、小さいパーツだとあまり綺麗に表示されないよ
マルチアイコンみたいに複数の解像度の画像を用意すればましだけど

597 名前:デフォルトの名無しさん (ワッチョイ 3a13-8L7G) [2016/11/18(金) 23:29:21.49 ID:+XmNVsSt0.net]
自作のフォームアプリケーションを起動させて引数も渡したいのですがどうすればいいですか?

598 名前:デフォルトの名無しさん (ワッチョイ 3a13-8L7G) [2016/11/18(金) 23:40:26.29 ID:+XmNVsSt0.net]
できました

599 名前:デフォルトの名無しさん (ワッチョイ 5e7d-XpIe) mailto:sage [2016/11/18(金) 23:55:36.52 ID:X3QgbGYl0.net]
画像の拡大縮小はモード選べるよ。十分綺麗にできるでしょ

600 名前:デフォルトの名無しさん (ワッチョイ 56e1-RUi6) mailto:sage [2016/11/19(土) 00:45:16.52 ID:1yryIr4y0.net]
>>559
普通に出来るだろ



601 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 02:06:11.41 ID:E+HZm7+A0.net]
>Checkbox継承してOnPaintで描けばいいだけだから、やってみるば簡単
>Checkedで描画する画像切替えるとかで簡単に実現できる
>サイズは画像のサイズに合わせてMaximumSizeとMinimumSizeを固定しちゃうとかかな

こんなことやったことないわ。どういう意味だ?
なんでChecboxを継承する必要があるんだ?
つかトグルSWだよな。
ちょっとやってみるんで指導よろしく。

OnPaintで描くってどういう意味だ?
情報が欠落しすぎ。
まずプロジェクトに追加するのは何? 
ユーザーコントロール? クラス? コンポーネント?
どれだ?

602 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 02:08:07.35 ID:E+HZm7+A0.net]
checkboxを継承するってのだから、どう考えてもクラスだよな。じゃあまあ
追加クラス。

603 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 02:31:43.92 ID:E+HZm7+A0.net]
public class clsToggleButton : CheckBox
{
Form _pform;

public clsToggleButton(Form frm)
{
_pform = frm;
}
public void OnPaint (PaintEventArgs pevent)
{
//ここにトグルボタンを描く
if( this.Checked == false ){
//どこに描くんだろ?

}else{

}
}

}

604 名前:デフォルトの名無しさん (ワッチョイ 5e7d-XpIe) mailto:sage [2016/11/19(土) 02:41:43.15 ID:wlTmYqF50.net]
追加→新しい項目→カスタムコントロール
で、追加されたコードのControlの部分をCheckBoxに。
OnPaintの所は、例えば↓みたいすれば、クリックするたびに赤と青が入れ替わる
protected override void OnPaint(PaintEventArgs pe)
{
  using (var brush = new SolidBrush(Checked? Color.Red : Color.Blue))
  {
    pe.Graphics.FillRectangle(brush, ClientRectangle);
  }
}
一度ビルドすると、ツールボックスに載るのでドラッグ&ドロップでフォームに配置できる

605 名前:デフォルトの名無しさん (スププ Sdb8-RUi6) mailto:sage [2016/11/19(土) 02:54:11.98 ID:aIswJeomd.net]
>>593
一切欠落してなくない?
Checkboxを継承したコントロールだから、クラスで、コンポーネントで、ユーザコントロールだけど、そんな瑣末な話は置いといて、
とりあえず、OnPaintをオーバーライドして、graphicsにthis.checked描画してみたら?

606 名前:デフォルトの名無しさん (ワッチョイ 5e41-mj3c) [2016/11/19(土) 04:05:39.65 ID:N2eyluxh0.net]
どうしてもタメになる書籍はC++をサンプルに使われてることが
多いから調べてはいるけど
C#に慣れちゃってるとまーキモチワルい

確かにこれが出来ればほとんど何でも出来るんだろうけど・・・

とりあえずC++最高ということで

607 名前:デフォルトの名無しさん (ワッチョイ 5e41-mj3c) [2016/11/19(土) 04:38:58.99 ID:N2eyluxh0.net]
ちげぇ!
C#最高!です

なんとか基本的なことは出来るようになった希ガス
疲れたよ、もう

608 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/19(土) 06:23:34.01 ID:S6bRHJ270.net]
600げと

609 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 06:31:51.33 ID:E+HZm7+A0.net]
>Checkboxを継承したコントロールだから、クラスで、コンポーネントで、ユーザ
>コントロールだけど、そんな瑣末な話は置いといて、

うろ覚えの初心者には全然些末じゃないy。 無茶苦茶大事!!!
「Checkboxを継承したコントロール」ここにたどり着くのに一晩かかる。

ユーザコントロール is a コンポーネント
コンポーネント is a クラス 
こういう関係なの? おお、初めて知った。

トグルボタン は ユーザーコントロールとして作るってことだね。納得。

でも空クラスを配置してCheckboxを継承してもおんなじことだよね。
何が違うの?

610 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 06:56:43.78 ID:E+HZm7+A0.net]
>596
この説明は完璧って感じがする。
 これからでかけるのでチェックできない残念。



611 名前:デフォルトの名無しさん (ワッチョイ 9c7b-wMId) mailto:sage [2016/11/19(土) 08:53:15.23 ID:gGKRRZRa0.net]
>>601
各種コントロールの説明や、継承チェーンを見れば?

自分が作りたいコントロールに近いものを探して使うか、
そこから継承して派生したコントロールを作ればいい

クラスを使う時は、継承チェーンをさかのぼりながら、
ベースクラスにどういう機能があるか調べる

なぜなら派生クラスは、ベースクラスのすべての機能を持っているから

612 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/19(土) 12:30:26.20 ID:xW+PNGAl0.net]
>>598
STLなんかは後付けで今風な機能を実装しようとしてて、無理やり感が半端ない。

613 名前:デフォルトの名無しさん (スププ Sdb8-RUi6) mailto:sage [2016/11/19(土) 13:12:50.96 ID:aIswJeomd.net]
>>601
同じ事だよ。
ユーザコントロール一度画面から選ぶと、似たようなコード出て来るから、
そいつの継承元見てみ。
>>596は親切だな。

614 名前:デフォルトの名無しさん (ワッチョイ 9c7b-wMId) mailto:sage [2016/11/19(土) 18:51:47.20 ID:gGKRRZRa0.net]
よく知らんけど普通、IDEにはクラスウィザードが付いている

新しいクラスを作るときは、クラスウィザードの画面で作れば、自動的にクラスが作られる

615 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/19(土) 19:01:01.87 ID:VKIYWaqIa.net]
そんな使ってる人ほとんどいないと思うよw

ところで前から思うんだけどウィザードってのはポリコレ的にどうなのかね

616 名前:デフォルトの名無しさん (ワッチョイ 3a20-XpIe) [2016/11/20(日) 19:20:37.60 ID:DP6jtmXB0.net]
ハードディスクのベンチマークを測る
簡易ツールを作りたくて
ランダムリード・ライトのサンプルを見つけたのですが
これでハードディスクへのランダムリード・ライトになるでしょうか?

//ランダム書き込み
using (System.IO.BinaryWriter rw = new System.IO.BinaryWriter(
File.OpenWrite(@"C:\temp\test.txt"), System.Text.Encoding.UTF8))
rw.Write("0");

//ランダム読み込み
using (System.IO.FileStream file = new FileStream(@"C:\temp\test.txt",
System.IO.FileMode.Open, System.IO.FileAccess.Read))
{
byte[] bs = new byte[file.Length];
file.Read(bs, 0, bs.Length);
}

617 名前:デフォルトの名無しさん (ブーイモ MMb8-RUi6) mailto:sage [2016/11/20(日) 19:28:04.56 ID:aSeFXcOvM.net]
ファイル名が違うな ¥¥.¥PhysicalDriveN だよ

618 名前:デフォルトの名無しさん (ワッチョイ 777b-w7k2) mailto:sage [2016/11/20(日) 20:25:05.70 ID:JNgwCyth0.net]
ディスク書き込みは複数層でバッファリングがあるから
.NETのライブラリだけじゃ割と無理じゃないかな

619 名前:デフォルトの名無しさん (ワッチョイ 3a20-XpIe) [2016/11/20(日) 20:32:04.76 ID:DP6jtmXB0.net]
\\.\PhysicalDriveN
なんてドライブの指定方法があるのですね

ただ、MBRを迂闊に書き換えると
クラッシュするとか
単純な読み書きは危険なようで

だから、公開されてるベンチツールには
シーケンシャルの読み書きしかないのかと思いました

情報ありがとうございます

620 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/20(日) 22:44:41.11 ID:ujJmR5b00.net]
BindingSource のデータをLINQで扱いたいのですが
↓コードのbs に登録されているデータをLINQを使って
ID=100とID=200 のKamokuの平均値をだしたいのですがどんな風にやればいいでしょうか?


private List<Employee> emplist;

BindingSource bs = new BindingSource(emplist, string.Empty);
dataGridView1.DataSource = bs;



621 名前:デフォルトの名無しさん (ワッチョイ 777b-w7k2) mailto:sage [2016/11/20(日) 23:11:49.40 ID:JNgwCyth0.net]
DataSourceがList<T>ならBindingSourceでフィルタできるわけでも無し
emplistにWhereとAverageするだけじゃね
Whereで要素数0になる可能性があるとちょっと面倒だけど

622 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/20(日) 23:36:14.07 ID:ujJmR5b00.net]
>>613
DataTable でLINQ使うときは、↓のように var items = dt.AsEnumerable() でやれるのですが
>>612のようにやるときは、bs.AsEnumerable() みたいにはできないのですか?


DataTable dt;

var items = dt.AsEnumerable()
.Where(x => x["id"] == "100")
.Select(x => x["Koumoku"].ToString());

623 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/20(日) 23:45:11.80 ID:mNZMIvsS0.net]
BindingSourceは一応IEnumerableを実装してるから
bs.Cast<Employee>().Where(…とできるんじゃないの
試したことないしそんなことしようとも思わないけど

624 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/20(日) 23:51:53.85 ID:ujJmR5b00.net]
>>615
ありがとう試してみます。

625 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/21(月) 02:19:09.69 ID:iKiRpZRf0.net]
>>611
>>610の言う通り、c#のStreamキャッシュとOSのファイルキャッシュがあるから、C#標準のライブラリだけじゃ実現できないよ。
P/InvokeでCreateFile()やWriteFile()/ReadFile()等のWIN32APIを呼び出す必要がある。
OSのファイルキャッシュは、CreateFile()でオープンする時にFILE_FLAG_NO_BUFFERINGを指定すれば無効にできる。

HDDに直接書き込みたいなら、ロックとアンマウントも必要になるんじゃないかな。
(DeviceIoControl()でFSCTL_LOCK_VOLUMEとFSCTL_DISMOUNT_VOLUME)

626 名前:デフォルトの名無しさん (ワッチョイ 159a-2Ppy) [2016/11/21(月) 05:14:56.16 ID:6eO9t+4E0.net]
>>490-491
C#側でデリゲート型を定義して、起動時にコールバック関数のデリゲートをDLLに渡し、
DLL側では関数ポインタとして受け取ることで、C#側の関数をC側から適宜呼び出すことが
できました。C#側はunsafeを使ってないマネージコードなのに、Cから関数ポインタの形で
呼び出すことができるんですね、ちょっと驚きました。有り難うございました。

そこでもう一つ疑問が出てきたんですが、DllImportしたDLLがprintfした内容(標準出力)を、
WPFアプリやFormアプリで受け取って特定のコントロールに出力したり、GUIとは別に
コンソールウィンドウを出してそちらに表示するようなことはできるんでしょうか。

627 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/21(月) 07:15:54.06 ID:EumYM2T30.net]
SetStdHandleとかでできるんじゃないの
素直に子プロセス作ってリダイレクトした方が簡単確実だけど

628 名前:デフォルトの名無しさん (ワッチョイ fa23-tQqt) mailto:sage [2016/11/21(月) 08:51:20.53 ID:hLpmxTjl0.net]
int25とかint26思い出したわ

629 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/21(月) 20:26:47.04 ID:7M/YTSBB0.net]
LINQで質問ですが
class Person
{
public string id { get; set; }
public DateTime Dateday{ get; set; }
public int kamoku { get; set; }
}

var items = (from tesA in bs.Cast<Person>()
where tesA.id == 100
select tesA.kamoku).avrage;

↑でID = 100 のkamoku の平均を求めていますが、
Datedayの最新10件で平均を求めるのはどんな書き方があるでしょうか?
後、IDの割合を求めるときに↑のwhere tesA.id == 100 を外したのをもう一回やって割り算しているのですが一括で書くときはどうすればいいでしょうか?

630 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/21(月) 22:40:08.70 ID:EumYM2T30.net]
>>621
var av = (
 from tesA in bs.Cast<Person>()
 where tesA.id == 100
 order by tesA.Dateday descending
 select tesA.kamoku
).Take(10).Average();
IDの割合の方は質問の意味が分からない



631 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/21(月) 23:04:49.74 ID:7M/YTSBB0.net]
>>622
ありがとうございます。参考になります。

IDの割合はAverageでなくてcountにしたほうがよかった。すみません
今は↓の結果 items100 / itemsALLで割合をだしています。これを1回で書きたいです。

var items100 = (from tesA in bs.Cast<Person>()
where tesA.id == 100
select tesA.kamoku).count;

var itemsALL = (from tesA in bs.Cast<Person>()
select tesA.kamoku).count;

632 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/21(月) 23:08:48.37 ID:EumYM2T30.net]
items100 / bs.Count でいいだろそれ

633 名前:デフォルトの名無しさん (ワッチョイ 5e41-mj3c) [2016/11/21(月) 23:14:12.37 ID:lc1W0DQ40.net]
一連のスイッチのオンオフを配列にいれて
シーケンスな処理を

634 名前:するんですが
そのままだと当然boolの配列です。

この場合、配列にする際にConvert.ToInt32を使い
0,1の配列にした方が処理速度が速くなる
ということはあるでしょうか?
配列数は多くても64個です。

自分で確認はまだしてないですが
知見多き方お願いします。
[]
[ここ壊れてます]

635 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/21(月) 23:22:00.28 ID:7M/YTSBB0.net]
>>624
>>623
すみません
items100 / bs.Count だと実際にやりたいので使えないので
↓ので items100  / itemsALL で書くときはどうしたらいいでしょうか?

var items100 = (from tesA in bs.Cast<Person>()
where tesA.id == 100
select tesA.kamoku).count;

var itemsALL = (from tesA in bs.Cast<Person>()
where tesA.id > 100
select tesA.kamoku).count;

636 名前:デフォルトの名無しさん (ワッチョイ 0448-dXbs) mailto:sage [2016/11/21(月) 23:30:37.04 ID:cS6E2DFI0.net]
>>625
BitArrayを調べてみたらいい、非ジェネリックでは唯一つかえる存在かもな

637 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/21(月) 23:34:45.98 ID:4A1pLeCTa.net]
>>625
bool使って遅くなる理由があると思えんなあw
どっちにしろ要素数64じゃ差はでないでしょ。

「シーケンシャルな処理」とやらが単純な論理演算ならboolやboolの代用にintを使った配列ではなく、
intをビットワイズで使えば圧倒的に高速になるとは思う

638 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/21(月) 23:55:19.26 ID:EumYM2T30.net]
>>626
短くしたいだけならこれでいいだろ
var persons = bs.Cast<Person>();
var items100 = persons.Where(p => p.id == 100).Count();
var itemsALL = persons.Where(p => p.id > 100).Count();

全件スキャンが2度走るのが気持ち悪いということなら、素直にループにするか、
もしくはこんなやり方もできないこともない
var items = bs.Cast<Person>().ToLookup(p => p.CompareTo(100));
return items[0].Count() / items[1].Count();

639 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/22(火) 00:12:53.34 ID:FPsVs5Xk0.net]
>>629
最後のがまだよくわからないけど調べてみます。
ありがとうございました。

640 名前:デフォルトの名無しさん (ワッチョイ 7d7b-XpIe) mailto:sage [2016/11/22(火) 00:22:30.53 ID:a+0IO69G0.net]
>>630
もしかしてArrayListつかってる?List使った方がいいよ

bs = new List<Person>();


float result = (float) bs.Count(x => x.id == 100) / bs.Count(x => x.id > 100);



641 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/22(火) 07:30:50.02 ID:agBMDwRZ0.net]
関係ないけどfloatは誤差が簡単に表面化するから
初心者スレ的には「最終出力以外には使うな」でいいと思う

642 名前:デフォルトの名無しさん (ドコグロ MM74-EDxK) mailto:sage [2016/11/22(火) 09:09:41.67 ID:iOkC5GDaM.net]
>>574
遅くなりすみません。
教えていただいたコードでうまくいきました。
ありがとうございました。

使っているのはVisual C# 2013です。

643 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/22(火) 13:19:07.30 ID:xeeHVDvp0.net]
VS2013のC#って>>574の書き方は出来なかったはずだが

644 名前:デフォルトの名無しさん (ワッチョイ 5e41-mj3c) [2016/11/22(火) 20:13:44.80 ID:ZJs8cfZ60.net]
>>627
>>628

ありがとうございます!!
そうですよね、このくらいの要素数なら
どっちにしろ誤差レベルとは思いましたが
かなり有益な情報得られたんでよかったです
調べてみます!

645 名前:デフォルトの名無しさん (ワッチョイ 800d-ke/V) [2016/11/22(火) 21:09:02.72 ID:0tp2RUgI0.net]
MVVMで、AのViewにあるボタンを押したらBのViewにBindingされているViewModelの値を変更するにはどうすればいいですか?

646 名前:デフォルトの名無しさん (オッペケ Sra9-hkLf) mailto:sage [2016/11/22(火) 21:23:07.00 ID:vhsrXRxUr.net]
>>636
AとBにモデルとして関連があるなら、それ同士で連係。
画面としてのみの関連なら、ViewModel同士で連係。

647 名前:デフォルトの名無しさん (ワッチョイ 800d-ke/V) [2016/11/22(火) 21:39:14.03 ID:0tp2RUgI0.net]
>>637
返信ありがとうございます
ViewModel同士の連係の方ですが、具体的にどのようにすればいいでしょうか?
例えばBのViewModelにあるIsEnabledというメンバー変数の値がある場合、StaticにしてAのViewModelでBのViewModelのインスタンスを作るのでしょうか?

648 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/22(火) 21:48:58.09 ID:agBMDwRZ0.net]
>>638
AがBのインスタンスを作るんならStaticにする必要は全く無いだろ
しかし、そもそもVMを設ける目的は単体テストであるということを考えると、
VMが別のVMに明示的に依存するのは好ましくない
理想を言えば、AからBを直接newしたりBのメンバに直接アクセスするのではなく、
インターフェース (例えばIB) を定義してAからはIBを通してアクセスすることにして
AにBのインスタンスを外から渡してやるのがいい
インスタンスを渡すのはViewでやるかDIコンテナ使う

649 名前:デフォルトの名無しさん (ワッチョイ 800d-ke/V) [2016/11/22(火) 21:58:02.53 ID:0tp2RUgI0.net]
>>639
ご教授ありがとうございます!
ただ、
>インターフェース (例えばIB) を定義してAからはIBを通してアクセスすることにして
>AにBのインスタンスを外から渡してやるのがいい
この部分がわからないので、コードで実例を教えてください

650 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/22(火) 22:11:27.86 ID:agBMDwRZ0.net]
>>640
こんな感じ
interface IEnableable { public bool IsEnabled { get; set; } }
class AView {
 private AViewModel vm;
 public AView() {
  this.vm = new AViewModel(BViewModelのインスタンスを取得());
 }
}
class AViewModel {
 private IEnableable b;
 public AViewModel(IEnableable b) {
  this.b = b;
 }
 void 連携する() {
  this.b.IsEnabled = true;
 }
}
class BViewModel : IEnableable {
 public bool IsEnabled { get { 略 } set { 略 } }
}
BViewModelのインスタンスを取得() のところはnew BViewModel()でもいいしシングルトンでも何でもいい
MVVMでは依存関係はなるべくViewに押し付けるのが基本



651 名前:デフォルトの名無しさん (ワッチョイ 800d-ke/V) [2016/11/22(火) 22:21:59.10 ID:0tp2RUgI0.net]
>>641
なるほど、このようにやるんですね
Viewに押し付けるというのも勉強になりました
本当にありがとうございます!

652 名前:デフォルトの名無しさん (ワッチョイ 9cba-XpIe) mailto:sage [2016/11/22(火) 22:34:41.26 ID:BBlq8Dj70.net]
アプリケーションの設定を保持するクラスを作ってこれをシリアライズできるようにしたのですが、
このシリアライズしたものをapp.configに含むことはできるでしょうか?
ファイル名や場所をコードで指定するのが嫌だなぁという程度の理由ですが。

653 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/22(火) 22:42:45.68 ID:agBMDwRZ0.net]
>>643
System.Configuration.ConfigurationSection
でも普通にSettings使った方が簡単だと思うけど

654 名前:デフォルトの名無しさん (ワッチョイ 9cba-XpIe) mailto:sage [2016/11/22(火) 23:20:36.22 ID:BBlq8Dj70.net]
そうですか、無いですか。ありがとうございました。

655 名前:デフォルトの名無しさん (ワッチョイ a030-qiik) mailto:sage [2016/11/23(水) 01:45:13.48 ID:MGsJz9yg0.net]
噛み合ってなさが絶妙

656 名前:573 (ドコグロ MM87-f5kA) mailto:sage [2016/11/24(木) 09:42:16.88 ID:EZR6VYZqM.net]
>>573 です。

if(1 == args.Count()){
var t1 = new TestItem("デバイス1");
}
if (2 == args.Count()){
t1.AddMeasured(new Measured("電圧", "V", 1));
t1.AddMeasured(new Measured("電流", "mA", 100));
testItems.Add(t1);
}
上記のようにすると下IF文内のt1が”現在のコンテキスト内に存在しません”となってしまします。
IF分の条件式は例ですがt1の生成と値の格納が同条件でない場合は
どのように処置するべきでしょうか。
やりたいことはテキストファイルから各語を読み出して格納して数値演算(平均値、最大、最小、標準偏差)したいのです。
テキストに格納してある情報は次の順になります。

”項目名1”
”項目名1の測定値1”
”項目名2”
”項目名2の測定値1”
 ・・・
”項目名10”
”項目名10の測定値1”
”項目名1”
”項目名1の測定値2”
 ・・・

1回目の”項目名n”を取得したときに配列(List)を生成し
その後は”項目名n”により選択した生成済みの配列に”測定値n”を格納したいです。
本業はHWよりのためC#基礎がわかって無く申し訳ありません。
でも何とかできることは自分で処理したいと思っています。
よろしくお願いします。

657 名前:デフォルトの名無しさん (ワッチョイ ab3a-/sNf) mailto:sage [2016/11/24(木) 10:18:45.81 ID:+mUg/yMV0.net]
>>647
if文の外で変数定義する。
『スコープ』の概念を学ぶべし。

今のレベルの基本が分かってない内はvar使わない方が良いかも。
varは便利だし正しく使えば特に害のない機能だけど、意味が分からないうちはやめとこう。

658 名前:デフォルトの名無しさん (ドコグロ MM27-f5kA) mailto:sage [2016/11/24(木) 11:09:09.16 ID:IyDqbIdrM.net]
>>648
ありがとうございます!
チャレンジしてみます。

659 名前:デフォルトの名無しさん (ワッチョイ a77b-rApL) [2016/11/24(木) 12:28:53.06 ID:P/Ibr7r50.net]
varは積極的に使うべきだよ。

660 名前:デフォルトの名無しさん (ワッチョイ c748-AQyI) mailto:sage [2016/11/24(木) 14:01:47.31 ID:4ySrR9x20.net]
>>647
標準偏差は自前で計算してもいいけどMath.NET Numericsというのが既にある(nugetで入れる)
ideone.com/kv7bLQ

こういうのってRの方が手っ取り早い気がする
CSVの読み込みからグラフ描画まで揃ってるしな



661 名前:デフォルトの名無しさん (ワッチョイ 5b3c-/sNf) mailto:sage [2016/11/24(木) 14:14:09.14 ID:G2Ig6Dqz0.net]
>>648
var関係ないやろ

662 名前:648 (ブーイモ MMc7-/sNf) mailto:sage [2016/11/24(木) 15:37:41.35 ID:cupH4QVAM.net]
>>650
それは同意する。積極的に使うべき。
ただ、スコープの理解がまだの方には少し毒と思っただけ。

>>649
異論も多いようなので、varに関しては先ほどの発言を気にせず自由にやって下さいな。頑張って!

663 名前:デフォルトの名無しさん (JP 0Hdf-sTmH) mailto:sage [2016/11/24(木) 17:51:15.84 ID:2Y5JG7GhH.net]
質問します。

ファイルの存在を確認する方法についての質問です。

if (System.IO.File.Exists(@"C:\tmp\sample.txt"))
{
MessageBox.Show("ファイルは存在します");
}
else
{
MessageBox.Show("ファイルは存在しません");
}

上記例の場合、
「tempフォルダ内のsample.txtというファイル」
の存在を確認するようになっていますが、
同時に異なる2つのフォルダ内の2種類のファイルの存在を
確認するにはどうすればいいのでしょうか?

C:\tmp1\sample1.txt
C:\tmp2\sample2.txt

が同時に(又は片方だけ)存在する場合の処理を行いたいと思っています。

File.Exists((@"C:\tmp1\sample1.txt")&&(@"C:\tmp2\sample2.txt"))
みたいな書き方はできないんでしょうか?

やってみたらNGになったんで質問した次第です。

よろしくお願いします。

664 名前:デフォルトの名無しさん (ワッチョイ c748-AQyI) mailto:sage [2016/11/24(木) 18:09:09.66 ID:4ySrR9x20.net]
この場合は
if (File.Exists(@"C:\tmp\sample.txt") && File.Exists(@"C:\tmp\sample2.txt")) {}
if (File.Exists(@"C:\tmp\sample.txt") || File.Exists(@"C:\tmp\sample2.txt")) {}
という風にFile.Existsが2回必要なわけだろ

可変で1個かもしれないし2個以上かもしれないというときは
string[] list = { @"C:\tmp\sample.txt", @"C:\tmp\sample2.txt", };
に対してLINQが使える
if (list.All(x => File.Exists(x))) {}
if (list.Any(x => File.Exists(x))) {}

665 名前:デフォルトの名無しさん (スッップ Sdaf-/sNf) mailto:sage [2016/11/24(木) 18:11:35.21 ID:HdRBGkCMd.net]
>>654
Exists(..)を&&で繋げば良いよ。

666 名前:デフォルトの名無しさん (ワッチョイ abdc-MM3T) mailto:sage [2016/11/25(金) 07:04:44.10 ID:9jtEtGtN0.net]
>>655
その場合、
list.All(File.Exists)
list.Any(File.Exists)
の方がスマート

667 名前:デフォルトの名無しさん (JP 0Hdf-sTmH) mailto:sage [2016/11/25(金) 09:44:10.37 ID:55zEIhIxH.net]
654です。

ありがとうございました。

なるほど、パス名を&&でつなげてもだめですね。
File.Exists(・・・)&&File Exists(・・・)を
にしなきゃダメですね。

やってみたらうまくいきました。

LINQはあまりわかってないんですが、
やっぱり使えれればかなりコードを書くのが楽になるんでしょうか?

時間ができればやってみてもいいかなぁと思っていますが・・・

668 名前:573 (ドコグロ MMcf-f5kA) mailto:sage [2016/11/25(金) 10:18:27.69 ID:cWogpahDM.net]
>>651 >>653
レスありがとうございます。
勉強になります。

徐々に方向性が見えて来たような気がしています。
ありがとうございます。

669 名前:デフォルトの名無しさん (ワッチョイ 37d9-1MTn) mailto:sage [2016/11/25(金) 16:46:17.82 ID:3a2jMeJO0.net]
>>655を見て、RMAX未満のint乱数をN回発生させてori[]が含まれている回数を
LINQで数えたいのですが、こんなのになってしまいました
もっと簡単に書ける方法はないでしょうか

const int N = 10000;
const int RMAX = 10;
Random r = new Random();
int c = 0;
int[] ori = {1, 5};

Enumerable.Range(1, N).Select(i => new { j = r.Next(RMAX) }).Select(i => ori.Any(j => j == i.j)).Where(i => i).Select(i => { c++; return 0; }).ToArray(); // 0〜9の中にori[]が含まれているかどうか調べる
Console.WriteLine($"{N}回の繰り返しで 0〜{RMAX - 1} の中にori[]が含まれていたのは {c} 回でした。");

670 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/25(金) 17:23:50.79 ID:vVyJsUPAr.net]
Selectに副作用書くな



671 名前:デフォルトの名無しさん (ワッチョイ c748-AQyI) mailto:sage [2016/11/25(金) 17:46:39.77 ID:k5F1VYSo0.net]
つか毎回乱数作ると検証しようがないよな
int[] randoms = new int[N];
for (int i = 0; i < N; i++)
randoms[i] = r.Next(RMAX);

というのがあったと仮定して以下を実行する
c = randoms.Where(ori.Contains).Count();

672 名前:デフォルトの名無しさん (ブーイモ MMc7-/sNf) mailto:sage [2016/11/25(金) 17:51:48.96 ID:yM8tzyplM.net]
int count = Enumerable.Range(1, N)
.Select(_ => r.Next(RMAX) )
.Count(ori.Contains);

673 名前:デフォルトの名無しさん (ワッチョイ 27ba-lM3r) mailto:sage [2016/11/25(金) 23:44:37.58 ID:8749fss/0.net]
検証は普通、同じシードの疑似乱数使うだろ。

674 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/26(土) 05:41:07.62 ID:BlR4fLnAr.net]
そこで、Stateモナド登場。

675 名前:デフォルトの名無しさん (ワッチョイ 37d9-1MTn) mailto:sage [2016/11/26(土) 15:45:30.50 ID:q0gSFGbR0.net]
>>661-663
ありがとうございます

Select()に副作用書くのはListだとForEach()があるのですが、配列だと使えないので
無理矢理感がありますが許してください(汗

676 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/26(土) 15:59:56.88 ID:BlR4fLnAr.net]
>>666
許せぬ。
普通に>>663で良いんでないの?

677 名前:デフォルトの名無しさん (ワッチョイ 1349-lVzu) mailto:sage [2016/11/26(土) 16:01:54.05 ID:pkHe6RQg0.net]
>>666
ゆるさん。
根本的にLINQの使い方が間違ってる。

678 名前:デフォルトの名無しさん (ワッチョイ 37d9-1MTn) mailto:sage [2016/11/26(土) 16:46:10.56 ID:q0gSFGbR0.net]
>>667-668
駄目ですか
精進します

>>664
こうやってみました
DateTime dt = DateTime.Now; // 乱数のシード値に使う

Random r = new Random((int)dt.Ticks);

// 乱数測定1

Random r = new Random((int)dt.Ticks);

// 乱数測定2

以下続く

679 名前:デフォルトの名無しさん (ワッチョイ 37d9-1MTn) mailto:sage [2016/11/26(土) 16:58:09.08 ID:q0gSFGbR0.net]
あ、違った

DateTime dt = DateTime.Now; // 乱数のシード値に使う

Random r = new Random((int)dt.Ticks);

// 乱数測定1

r = new Random((int)dt.Ticks);

// 乱数測定2

以下続く

680 名前:デフォルトの名無しさん (ブーイモ MMaf-VGur) mailto:sage [2016/11/26(土) 17:05:31.40 ID:/HuSQ2djM.net]
public static class EnumerableEx {
public static IEnumerable<int> Randoms(int seed, int max, int count) {
var r = new Random(seed);
for(int i = 0; i < count; ++i)
yield return r.Next(max); }}

c = EnumerableEx.Randoms(seed, RMAX, N).Count(ori.Containts);



681 名前:デフォルトの名無しさん (ワッチョイ abdc-MM3T) mailto:sage [2016/11/26(土) 17:27:30.27 ID:UC4M2NKY0.net]
>>671
引数のcountは無しで無限ストリームにした方が美しいと思う
有限にしたければTakeで切ればいい

682 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/26(土) 20:57:24.75 ID:BlR4fLnAr.net]
>>670
続きは?

683 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/27(日) 02:43:47.55 ID:vLOqtuLor.net]
public static IEnumrable<T> Randoms<T>(Func<T> next)
{
while(true) {
yield return next();
}
}

任意の乱数アルゴリズムを渡せるようにと考えたけど、もはやランダムとは無関係だよねww

684 名前:デフォルトの名無しさん (ワッチョイ abdc-MM3T) mailto:sage [2016/11/27(日) 07:11:41.91 ID:dEf188sX0.net]
>>674
名前が既に機能を表してないのはともかく、これは副作用が前提になるからよくない設計
どこかで副作用を使ってない限りnext()は必ず毎回同じ値になるはず

685 名前:デフォルトの名無しさん (ワッチョイ 370b-PVnu) mailto:sage [2016/11/27(日) 13:07:28.68 ID:ZDMyX7Jh0.net]
普通に何がしたいのか分からない

686 名前:デフォルトの名無しさん (ワッチョイ 87ce-w12Y) mailto:sage [2016/11/28(月) 06:20:00.23 ID:d2SeRThv0.net]


687 名前:乱数列をインデックスで参照したいだけ
なんでしょ?
[]
[ここ壊れてます]

688 名前:デフォルトの名無しさん (ワッチョイ 87d4-TEJY) [2016/11/28(月) 20:53:46.42 ID:jgfNB/jg0.net]
実際のプログラムでデリゲート/イベントをどう使うのが便利なのか、理解できる教材・WEBサイト等があれば教えてください

689 名前:デフォルトの名無しさん (ワッチョイ c748-AQyI) mailto:sage [2016/11/28(月) 21:37:11.66 ID:TQQs9y8p0.net]
https://msdn.microsoft.com/ja-jp/library/ms173171.aspx

690 名前:デフォルトの名無しさん (ワッチョイ 4f4c-/sNf) mailto:sage [2016/11/29(火) 10:18:57.84 ID:PfRgidpN0.net]
関数ポインタなイメージだわ



691 名前:デフォルトの名無しさん (ワッチョイ 87ce-w12Y) mailto:sage [2016/11/30(水) 00:56:16.15 ID:H3buRLlE0.net]
Win32APIのコールバックに渡せる時点で外部からの見え方は関数ポインタそのもの
そこにどうやってインスタンもねじ込んでるのか正確には知らないけど
関数ポインタをユニークなヒープ領域に書いてそれを渡して呼び出させる
みたいな気持ち悪いことを裏でやってるんだろう

692 名前:デフォルトの名無しさん (ワッチョイ 87ce-w12Y) mailto:sage [2016/11/30(水) 01:03:41.03 ID:H3buRLlE0.net]
少なくとも1度はヒープ上でコード実行してるはずなんだけど
スパイウェア認定されたりしないのはなぜだろう

693 名前:デフォルトの名無しさん (ワッチョイ 279d-lM3r) mailto:sage [2016/11/30(水) 01:04:12.90 ID:w8bfAEOD0.net]
動けばいい

694 名前:デフォルトの名無しさん (ワッチョイ a77b-rApL) [2016/11/30(水) 02:53:33.77 ID:5s/CT6+70.net]
>679
Msdnの説明なんて99%糞だよな。頭和杉、マクロバカって書いてある本を
見たことがある。
 でもたまに凄くわかりやすいのがある。今日まさにそれに出会って
感想欄に

MSDNにしては本質をついていてわかりやすい。こんなにわかりやすい
せつめいは初めてだ。
これはMSDNの文章とは違う素晴らしい文章だ。たぶん外注のライターが
書いたものだと思うが、こういう外注さんは大事にしなさい。
ありえないとは思うが、もし万が一社員が書いたものならぜひともボーナス
を弾んであげてほしい。

と書いておいた。

695 名前:デフォルトの名無しさん (ワッチョイ 5b3c-0AhV) mailto:sage [2016/11/30(水) 02:59:23.96 ID:PzfaC3Zi0.net]
精神を病んでいる様だからカウンセラーにでも相談したまえ

696 名前:デフォルトの名無しさん (ワッチョイ abdc-MM3T) mailto:sage [2016/11/30(水) 07:35:52.74 ID:TOIBVM0F0.net]
>>681
マネージコードからの通常のInvokeや一般のクラスやインターフェースの仮想メソッド呼び出しでも
JITのために

697 名前:ッ様の仕組みがあるらしい
デリゲートが関数ポインタを持ってるんじゃなくて、呼び出し元(call siteという)ごとのキャッシュとして
ネイティブ関数を生成するみたいだ
[]
[ここ壊れてます]

698 名前:デフォルトの名無しさん (ワッチョイ a77b-rApL) [2016/11/30(水) 10:16:51.02 ID:5s/CT6+70.net]
Delegateはクラスを着ていない素っ裸の抽象メソッドだと思う。だから
デレッってしてる。
クラスと同様にインスタンスを作成して使うけれども抽象メソッドだから
実態のメソッドを代入して使用する。
その時に実態のメッソッドから名前を剝ぎ取った素っ裸のメソッドが
ラムダ式だ。

スッポンポンというところがデレゲートとラムダは似ている。

699 名前:デフォルトの名無しさん (ワッチョイ a77b-rApL) [2016/11/30(水) 10:35:50.72 ID:5s/CT6+70.net]
delegate int delSm(int i); //型紙delSmを作成する。 
void test() {  
 delSm Sm;         //型紙delSmから洋服Smを作成 
 Sm = (x => x * x);  //素っ裸のメソッドにSmを着せる  
 int j = Sm(16);     //j = 256  
}  

700 名前:デフォルトの名無しさん (ワッチョイ 5c03-Z4eY) mailto:sage [2016/12/01(木) 16:54:34.62 ID:0Um+ha3M0.net]
C#の質問で無く恐縮ですが
VS2013でC#コード入力していますが
補完機能の振る舞いがよくわからないことがあります。

例えば"int"と入力する場合
i→n→tとキーインすると
補完候補は"int"の表示が選択されています。
ここでスペースをキーインすると
エディタには"iint"と入力されてしまいます。

どういうことでしょうか?

returnもrreturnとなってしまいます。



701 名前:689 (ワッチョイ 5c03-Z4eY) mailto:sage [2016/12/01(木) 16:55:46.18 ID:0Um+ha3M0.net]
もしかしてATOKのせいでしょうか。

702 名前:デフォルトの名無しさん (ワッチョイ 6bc0-/mAi) mailto:sage [2016/12/01(木) 19:32:35.80 ID:Zf0m27Yo0.net]
TABキーで補完すればいいんじゃね

703 名前:デフォルトの名無しさん (ワッチョイ d1d6-NTgB) mailto:sage [2016/12/01(木) 23:26:48.62 ID:iYDC/6Ae0.net]
>>689
ATOK使ってるけど普通に使えてるな
VSのサービスパックでも当てたら直るんじゃね?

704 名前:689 (ワッチョイ 5c03-Z4eY) mailto:sage [2016/12/02(金) 08:57:18.65 ID:31Pwg6Qz0.net]
>>691 >>692
ありがとうございます。

TABにしても同じなんです。
SPためしてみます。

と、書いていましたが
たった今VS2013起動して試してみたところ
問題有りませんでした。

原因はわかりませんが再起動すれば良いようですね。
お騒がせしました。ありがとうございました。

705 名前:初心者 (ワッチョイ 50cf-yaSi) [2016/12/02(金) 14:04:42.72 ID:mPN6uvNG0.net]
C#の勉強したいんですけど
visualstudioのどれをダウンロードすればいいですか?一番左ですか?

706 名前:デフォルトの名無しさん (アウアウオー Sabe-k+pW) mailto:sage [2016/12/02(金) 14:22:34.32 ID:KR/8JQ+qa.net]
オッスオラ極右

707 名前:デフォルトの名無しさん (フォォーッ MM9b-NTgB) mailto:sage [2016/12/02(金) 14:24:44.13 ID:hCuw5ExfM.net]
>>694
download.microsoft.com/download/8/0/3/8036DBC2-135E-431D-86FE-C2C53562C9F1/vs_community_JPN.exe

708 名前:デフォルトの名無しさん (ワッチョイ 98d4-NTgB) mailto:sage [2016/12/02(金) 14:44:59.65 ID:ulrrSATP0.net]
いままでPro買ってたけどCommunityでいい気がしてきた

709 名前:デフォルトの名無しさん (オッペケ Sr8d-F2U0) mailto:sage [2016/12/02(金) 15:12:50.24 ID:B5+8wL6Vr.net]
コミュニティ使っててアプリ作って条件以上の売上出たらどうすればいいの?

710 名前:デフォルトの名無しさん (ワッチョイ 2a02-0Nhh) mailto:sage [2016/12/02(金) 15:32:17.74 ID:mFAqdh2w0.net]
買えばいいんじゃね、そんなんに売れたんなら



711 名前:デフォルトの名無しさん (ワッチョイ 9220-NTgB) mailto:sage [2016/12/02(金) 22:45:54.98 ID:5RQuVDtH0.net]
C#というわけではなく、初歩的なことかと思いますが
テスト要領書って、本来コーディング前に作っておくものでしょうか?

うちの会社じゃ
いつもコーディングの後半に作ってるんですが
一般的には

712 名前:どうなんだろうと思いまして []
[ここ壊れてます]

713 名前:デフォルトの名無しさん (ワッチョイ 4dcb-g21N) mailto:sage [2016/12/02(金) 22:56:52.05 ID:2vcaPjiT0.net]
マルチポストしてんじゃねえぞチンカス野郎

714 名前:デフォルトの名無しさん (ワッチョイ 115b-25R2) [2016/12/02(金) 23:15:26.91 ID:9K0+rqji0.net]
データベース使ったサンプルアプリ作ってみたいのですが、データベースは何を使ったらいいですか?

715 名前:デフォルトの名無しさん (ワッチョイ f4cb-yaSi) mailto:sage [2016/12/02(金) 23:44:10.13 ID:UcIXa3VL0.net]
>>702
モノによって癖があるよ
インストール方法からして上手くいかないポイントが違う

業務でWindowsアプリ作るならSQLServerExpressがオススメ
絶対使うしね
趣味でレンタルサーバー使うならmysqlが多いかも

716 名前:デフォルトの名無しさん (ワッチョイ d1d6-NTgB) mailto:sage [2016/12/02(金) 23:48:17.42 ID:kbaBWwKx0.net]
ファイルコピーだけで簡単に動かしたいのならSQLiteもいいぞ

717 名前:デフォルトの名無しさん (ワッチョイ f4ce-BRVC) mailto:sage [2016/12/02(金) 23:58:41.69 ID:P1j76Eyi0.net]
Windows標準で入ってるJet DBが何も入れる必要ない点でオススメ

718 名前:デフォルトの名無しさん (ワッチョイ 2aaf-MLbx) mailto:sage [2016/12/03(土) 00:46:33.44 ID:6QJpBGmN0.net]
SQLiteは便利で面白い
Firefoxのクッキーの管理なんかにも使われてる

719 名前:デフォルトの名無しさん (ワッチョイ 115b-25R2) [2016/12/03(土) 09:19:05.56 ID:/EDU3A450.net]
>>703-706
ありがとうございます!
さっそく調べてみます!

720 名前:デフォルトの名無しさん (ワッチョイ 92e5-/mAi) mailto:sage [2016/12/03(土) 10:35:13.28 ID:OhSejOMk0.net]
普段threadを生成してやっていた非同期処理を
バージョンアップに合わせてasync await使って実装してみようと思います。

非同期を意識しない場合の元ソースは以下のコード

private void btn_click(省略)
{
    var list = getList("なんたら");
}

private List<string> getList(string target)
{
   var list =  hogehoge関数
   return list ;
}

この中で呼び出し元の btn_click から getList関数を非同期で呼び出すことは可能でしょうか?
可能であればいずれ同期的に使う可能性も含めて getList関数には手を入れたくはないのですが、入れられないのであれば手を加えても問題ありません。

有識者の皆様、何かしらヒントでもご教示いただけれb幸いです。



721 名前:デフォルトの名無しさん (ワッチョイ 92e5-/mAi) mailto:sage [2016/12/03(土) 10:42:36.75 ID:OhSejOMk0.net]
連投失礼
記述ミス修正

getList関数には手を入れたくはないのですが、入れられないのであれば手を加えても問題ありません。

この中で呼び出し元の btn_click から getList関数を非同期で呼び出すことは可能でしょうか?
可能であればいずれ同期的に使う可能性も含めて getList関数には手を入れたくはないのですが、入れなければいけないのであれば手を加えても問題ありません。

Task<List<string>>にしないといけないんだろうなぁ…とは思いますが…。

722 名前:デフォルトの名無しさん (ワッチョイ 2a02-0Nhh) mailto:sage [2016/12/03(土) 10:56:58.35 ID:rfPwjFy00.net]
普通は同期版と非同期版と二つ定義するんじゃないのか
getListは同期関数にしたいの?非同期関数にしたいの?

723 名前:デフォルトの名無しさん (ワッチョイ 39dc-Cf2b) mailto:sage [2016/12/03(土) 11:00:28.76 ID:x7z2pgeG0.net]
なんか勘違いしてそう
async使うなら最終的にIOやユーザー操作でブロックされるところまで全部非同期で繋がないと意味ないよ?

724 名前:デフォルトの名無しさん (ワッチョイ 839d-5gNI) mailto:sage [2016/12/03(土) 11:03:34.95 ID:n86jitUO0.net]
var list = await Task.Run(() => getList("..."));
こういうことじゃないの?

725 名前:デフォルトの名無しさん (ワッチョイ 39dc-yaSi) mailto:sage [2016/12/03(土) 13:23:04.99 ID:x7z2pgeG0.net]
ところで、asyncを全面的に使ってるとストリームにたかが数バイトを書き込むだけみたいな
時間的粒度の小さいメソッドでもいちいちawaitせざるを得ないことがよくあると思うんだけど、非効率だからまとめて処理できないもんかな
個人的には、全ての書き込みがバッファリングされることが保証されてるAsyncStreamみたいなクラスがあって
後でにまとめてawait FlushAsyncするという考え方の方がWriteAsyncより使いやすいと思うんだけど

726 名前:デフォルトの名無しさん (ワッチョイ 92e5-/mAi) mailto:sage [2016/12/03(土) 13:33:41.53 ID:OhSejOMk0.net]
>>710-712
イメージ的には

getList←同期
getListAsync←非同期(内部でgetListを呼ぶ)
のようになるのかなと。

もとのgetList自体は同期処理で動くようにしておきたかっただけという簡単なものでした。
>>712さんの言うところで出来てしまいました…。

あっさり過ぎて…ありがとうございました。
これでUIが固まらない為だけの面倒な非同期を書かなくて済みそうです。

727 名前:デフォルトの名無しさん (スッップ Sda8-wK09) mailto:sage [2016/12/03(土) 17:28:43.65 ID:6dOdOU6od.net]
商用で使えるフリーの開発環境ってありますか?

728 名前:デフォルトの名無しさん (ワッチョイ 39dc-yaSi) mailto:sage [2016/12/03(土) 17:42:27.55 ID:x7z2pgeG0.net]
>>715
小規模な企業までならVS Communityが商用利用可
Communityが使えない規模ならVS Express

729 名前:デフォルトの名無しさん (ワッチョイ 8d4a-JWTN) mailto:sage [2016/12/03(土) 21:57:51.27 ID:NEbgZC1U0.net]
>List<T>も2次元にはできないが、そもそも2次元にする必要がない
list<list<T>>で二次元じゃあないの?

730 名前:デフォルトの名無しさん (ワッチョイ 839d-5gNI) mailto:sage [2016/12/03(土) 22:06:20.99 ID:n86jitUO0.net]
広義の二次元だけど狭義の二次元ではない、かな
多次元配列とジャグ配列で呼び分けるから



731 名前:デフォルトの名無しさん (ワッチョイ 1ee1-yaSi) mailto:sage [2016/12/03(土) 22:51:22.62 ID:1XG4MZmv0.net]
>>713
その程度なら自分で実装すればよくね?

732 名前:デフォルトの名無しさん (ワッチョイ 6b0d-BRVC) [2016/12/03(土) 23:02:24.03 ID:nNmCZ+K50.net]
TreeViewでファイルエクスプローラーを作りましたが
ファイルやフォルダの数が多すぎると必ずフリーズします
例えば肥大化した"C:\Windows\WinSxS"を表示するにはどうしたらいいですか?(私の環境ではサブフォルダ数が1万数千あります)

733 名前:デフォルトの名無しさん (ワッチョイ f4ce-BRVC) mailto:sage [2016/12/03(土) 23:27:08.60 ID:55Oi6B7P0.net]
>>720
そもそも1万件とか画面に一度に表示できる数じゃないんだから
一部だけ出すとか表示方法を工夫する以外にないよ
既存のファイラーとかを参考にしてみたらどうかね

734 名前:デフォルトの名無しさん (ワッチョイ f4cb-yaSi) mailto:sage [2016/12/04(日) 00:29:04.69 ID:tP3D55j/0.net]
>>720
開いたフォルダのみ中身を表示してはどうだろうか?

735 名前:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5) [2016/12/04(日) 20:20:27.84 ID:HFDVK7VF0.net]
Rxをテストしようとおもうのだが、

using System.Reactive.Linq;

これを追加しても
エラー CS0234 型または名前空間の名前 'Reactive' が名前空間 'System' に存在しません (アセンブリ参照があることを確認してください)。

となる。参照を探してもmscore.libしかないがこれをチェックすると
「すでにビルドに組み込まれているのでエラー」になる。

どうしたらいいの?

736 名前:デフォルトの名無しさん (アウアウカー Sa05-F2U0) mailto:sage [2016/12/04(日) 20:35:11.66 ID:iX2mGjzba.net]
Rxはインストールしたの?
標準ではないよ

737 名前:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5) [2016/12/05(月) 06:04:42.72 ID:kVcVuvgX0.net]
VS Community 2015で
Nuget パッケージマネージャー画面でSystem.Reactiveをインストールしようと
する
設定は参照にして、パッケージソースは「すべて」
 Nuget.org
 packagesource
 Microsoft and .NET
 Microsoft Visual Studio Offline Package
にしている。

'.NETFramework,Version=v4.5.2' を対象とするプロジェクト 'WpfApp1' に関して、
パッケージ 'System.Reactive.3.1.1' の依存関係情報の収集を試行しています
Unable to load the service index for source packagesource.
この要求の送信中にエラーが発生しました。
リモート名を解決できませんでした。: 'packagesource'
========== 終了 ==========

インストールできない。
packagesource. このエラーが出るのはパッケージマネージャの設定に
間違いがあるんだろうか?

738 名前:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5) [2016/12/05(月) 07:19:43.60 ID:kVcVuvgX0.net]
PM> Install-Package System.Reactive
Install-Package : ソース '' 内でパッケージ 'System.Reactive' が見つかりません。

つまりパスが違っている。DefaultPathはどこに設定するのだろうか?

739 名前:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5) [2016/12/05(月) 07:22:18.16 ID:kVcVuvgX0.net]
あれっ、頭にきてボタンを押しまくっていたらインストールできた。
なぜだ? わからんが、とにかくインストールできた。手当たり次第に
出たらめにやるのがいいみたいだ。

740 名前:デフォルトの名無しさん (アウアウオー Sabe-wK09) mailto:sage [2016/12/05(月) 21:52:16.25 ID:7n2NXvP5a.net]
「n = n + 1」「n++」「n += 1」

の中で速度が速い、またはメモリの消費が少ない手段はどれですか?
今回の使用目的はループ内でのカウンタです

また、それぞれの使い分けがわからないので適切な使用箇所があれば教えてください



741 名前:デフォルトの名無しさん (ワッチョイ 9213-ggLi) mailto:sage [2016/12/05(月) 21:55:01.48 ID:+86vS9TV0.net]
>>728
差はないから好きにすればいい

742 名前:デフォルトの名無しさん (ワッチョイ 467d-NTgB) mailto:sage [2016/12/05(月) 22:28:32.97 ID:k7XpTrID0.net]
++はコピーが入る

743 名前:デフォルトの名無しさん (ワッチョイ 4d7b-1jzX) mailto:sage [2016/12/05(月) 22:44:22.01 ID:VOjnBi1e0.net]
出たな、半可通

744 名前:デフォルトの名無しさん (オッペケ Sr8d-E9Xg) mailto:sage [2016/12/06(火) 02:55:06.76 ID:4zSpj2YCr.net]
>>727
VSのnugetのインストーラが古いので更新する必要がある場合がある。

745 名前:デフォルトの名無しさん (アウアウカー Sa67-OnqS) mailto:sage [2016/12/09(金) 10:45:19.60 ID:0JyYFlmma.net]
>>728
cpy add 1 mov
inc
add 1

746 名前:デフォルトの名無しさん (JP 0H5f-l58V) mailto:sage [2016/12/09(金) 10:50:44.15 ID:u4ONmpntH.net]
それだけで文にするならどうせ最適化されるでしょ

部分式として使ってるならしらんけど

747 名前:デフォルトの名無しさん (ワッチョイ 07ce-3ple) mailto:sage [2016/12/10(土) 21:08:20.94 ID:9pHrXFRT0.net]
カウンタならどうでもいいけど
インデックスとして使うならunsafe付けてポインタ扱った方がいい

748 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/10(土) 21:20:26.17 ID:THyFY8cN0.net]
そんなのが必要になる場合は限られる。
初心者スレでunsafeを気軽に進めない方が良い。

749 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/10(土) 21:36:24.82 ID:MAlDTlrl0.net]
fixedはpinのオーバーヘッドがあるから頻繁に使うとかえって遅くなるよ

750 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 06:33:33.19 ID:caNoEqSZ0.net]
>TreeViewでファイルエクスプローラーを作りましたが
>ファイルやフォルダの数が多すぎると必ずフリーズします
>例えば肥大化した"C:\Windows\WinSxS"を表示するにはどうしたらいいですか?
>(私の環>境ではサブフォルダ数が1万数千あります)

自分もこれで悩んでる。1分ごとに測定したデータが1ファイルごとに1年分ある。
 60x20x360=43万ファイル
これをGetFilesでファイル名を取り出して集計処理しようとするとファイル読み出しで
ハングする。

やり方がよくわからないので先輩に聞いたら

「Application.EentDoを入れたらキーが効くのでハングしないよ」

というアドバイスをもらってやってみたが、ダメだった。

で自分で少し調べてみたんだが、
 UIの同一スレッドでこれをやると原理的にだめ。処理が重すぎてかならずハングする。
 スレッドを分ける方法として、タスクプールを使う方法とスレッド生成がある。
 タスクプールを使うのがよい。Async/Await
というところまでは分かったんだが、どうやって実現したらいいのかまだよくわからん。



751 名前:デフォルトの名無しさん (ワッチョイ 07d4-QGPA) [2016/12/11(日) 06:47:31.93 ID:fUQnV1N+0.net]
非スタティックなメソッドを呼び出したい場合に、
new クラス名.メソッド名();
とするのはなにか問題があるのでしょうか?

752 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 08:40:31.81 ID:caNoEqSZ0.net]
>739
 それはコンパイルエラーになるから問題ないと思うが、、、

753 名前:デフォルトの名無しさん (ワッチョイ ebdc-6LJV) mailto:sage [2016/12/11(日) 09:12:08.77 ID:xUW3RgdE0.net]
>>739
new クラス名().メソッド名();
の間違いと仮定した上での回答だが、
毎回必ずそのパターンで使用されるのであれば実質staticメソッドと変わらないからstaticメソッドにすることも検討すべき
パラメータが複雑な場合にBuilderパターンとFluentなスタイルを組み合わせて、
new Request().WithEncoding(UTF8).with…().Send();
みたいにするのは丁寧に作られてるライブラリだとよくあるけど

754 名前:デフォルトの名無しさん (ワッチョイ 07cb-1E9w) mailto:sage [2016/12/11(日) 09:24:54.90 ID:G916gL+V0.net]
>>738
仕様が決まってない問題をAPIの問題にすり替えてる
超たくさんファイルがあるとき結局どうしたいの?
全部表示したいの?一部表示したいの?
ユーザに指定させて表示したいの?

755 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 09:42:50.42 ID:caNoEqSZ0.net]
仕様は明白だとおもうが、、、
 TreeView表示と同じだが、ファイルを読みだしてグラフ表示しながら同時にファイル
読み出しとその集計処理もやる必要がある。
 100ポイントづつを読みだして処理して表示する。
 続きを100ポイント読みだして処理して表示する。
このようにシングルスレッドのなかで実現できれば、それが最も良い。

しかし、処理を分割するのはGetFilesのようなライブラリを
使う場合は中断して途中から再開は不可能だ。

そこで、GetFilesは別タスクで動かして非同期処理をするパイプを作ればいい。
task1 thread
data = getfiles();
FIFO.add(data);

UI thread
tree.add( FIFO.read());
というのが検討中の内容だ。

756 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 09:42:54.26 ID:xUW3RgdE0.net]
>>738の場合は小手先のコーディングでどうするという問題じゃなくて
SparkとかHiveとか使えばいいんじゃないか

757 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 09:51:31.24 ID:caNoEqSZ0.net]
それちょっと調べてみるが、C#にキューってのがあるが、それじゃだめなの?

758 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 09:54:31.80 ID:xUW3RgdE0.net]
>>745
抽象度が全然違う
ちゃんとしたビッグデータ処理基盤を使えば、
データを全部HDFSに放り込んでおきさえすれば簡単にデータセット全体にクエリがかけられる
いちいち要件に応じて作り込まなくていい

759 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 09:55:28.07 ID:caNoEqSZ0.net]
>744
そんな商用ツールは見掛け倒しと思って間違いない。第一広まらないy。

760 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 09:58:51.14 ID:xUW3RgdE0.net]
>>747
オープンソースだしデータ処理の世界じゃクソ有名だよ?
脊髄反射で拒否する前にちょっとは新しいことに興味持ってみてもいいんじゃないかな、
余計なお世話かもしれないけど



761 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 10:05:36.19 ID:caNoEqSZ0.net]
えっ、オープンソースなのか。俄然興味がわいてきた。w

762 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 10:07:25.47 ID:caNoEqSZ0.net]
普通のDBに比べてSpark、Hiveは何がいいの?

763 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 10:12:32.86 ID:caNoEqSZ0.net]
グラフ表示するような案件だとSpark SQLがいいみたいだね。 速い。

764 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 10:16:20.28 ID:xUW3RgdE0.net]
>>750
ざっくりいえば大量データのバッチ処理が速い
レイテンシが大きいのでリクエストをリアルタイムに処理して結果を返すようなものには向いていない

765 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 10:33:30.52 ID:caNoEqSZ0.net]
C#を最近勉強をはじめたばかりだが、これはすごい言語だな。まさにアルゴリズムの最高哲学
という印象を受けた。これは面白い。
しかし目移りしてどこから取り掛かったらいいのか困る。VBをチョロっとしか経験がないので
C#には新しい概念がありすぎてミクロ的にもマクロ的にはほんとに目移りする。
 LINQ、WPF、RX、ざっとみたところだ。

いままだ右も左もわからないので取り合えず。適当にReactive Extention からマスターして
みようと思っているが、、、、

766 名前:デフォルトの名無しさん (ワッチョイ 0b7b-ymeu) mailto:sage [2016/12/11(日) 11:12:34.07 ID:n3GfLzAe0.net]
>>739
newより.の方から優先順位が高いので
その例ではクラス名.メソッド名 のスタティックメソッドを呼び出して、その戻り値をnewする事になる

なので、newをカッコでくくる
(new Date).toISOString();

767 名前:デフォルトの名無しさん (ワッチョイ 0b7b-ymeu) mailto:sage [2016/12/11(日) 11:13:40.49 ID:n3GfLzAe0.net]
ああ、すまん、Javascriptスレと間違えてたわ

768 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 11:16:14.04 ID:xUW3RgdE0.net]
Rxはマイナーな技術だしasync/awaitがわかってれば十分カバーできるからスルーでOK
WPFも終わった技術だから今更要らない
専業コーダーじゃないんなら小手先の技術に拘るのはほどほどにして
マイクロサービス的な連携だとかクラウド活用だとかもっとマクロな領域へシフトしていった方がいいと思うよ

769 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 13:36:37.71 ID:caNoEqSZ0.net]
>756
 言わんとするところはよくわかる。考え方の本質は同じだとおもう。
できれば楽にプログラムをしたい。

 WPFは終わったのだろうか? たしかに流行ってないよね。w
でもMVVMの考え方は間違っていないと思う。
Rxはマイナーな技術なんだろうか? 応用できる範囲がどの程度あるのか
はよくわからない。
 LINQには少なからず衝撃を受けたので、Push型のRXはなにかとてつもない発見
がありそうな予感がする。
もっともLINQというよりはIEnubableとかデザインパターンの考え方に衝撃を受けた。

マクロ的な技術を使う上でもミクロをある程度は理解していないと、無駄な使い方
をしてしまう可能性があるように思う。その意味では細部まで100%理解しよう
なんて思わないが、60%くらいは理解しておきたい。

770 名前:デフォルトの名無しさん (ブーイモ MM07-caEn) mailto:sage [2016/12/11(日) 13:48:02.76 ID:Z923MDQCM.net]
ネタや実験以外でRxなんて使ってる現場存在するのか



771 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/11(日) 14:07:20.29 ID:bG1axWcs0.net]
フロントならangularについてくるから使うけどC#では使ったことない

772 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/11(日) 14:12:00.35 ID:bG1axWcs0.net]
angularでもRxはtoPromiseしか使わないから使ってないような物か

773 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/11(日) 14:12:51.19 ID:31wztqOV0.net]
>>743
GetFiles()って、Directory.GetFiles()のこと?
それだったら、代わりにDirectory.EnumerateFiles()を使えば逐次処理出来るよ。

774 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/11(日) 14:29:28.43 ID:31wztqOV0.net]
>>739
恐らく、やりたいのは
(new クラス名).メソッド名();
ってことだと思うけど、何度も使う場合は毎回newすることになるので非効率。
また、IDisposeなクラスの場合はDispose()を呼べない。
上記2つに問題ないなら使っても構わない。staticメソッドにすべきだけどね。

775 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 14:49:28.21 ID:caNoEqSZ0.net]
>それだったら、代わりにDirectory.EnumerateFiles()を使えば逐次処理出来るよ。

それなかったな。 会社がVs2008なのでw
Vs2008で.net Framework4.5とかつかえるんだろうか?

776 名前:デフォルトの名無しさん (ブーイモ MM07-caEn) mailto:sage [2016/12/11(日) 14:58:46.78 ID:Z923MDQCM.net]
なきゃ実装すればいい

777 名前:デフォルトの名無しさん (ワッチョイ cb5b-w4ID) [2016/12/11(日) 14:59:38.20 ID:PxfwJXGz0.net]
こんな感じで構造体配列の中身をIntPtrにコピーしたいんですが
どういう方法がありますか?
struct A{ int x=0,y=1,z=2; }
A a = new A();
IntPtr ptr;
Marshal.StructureToPtr(a, ptr, false);

778 名前:765 (ワッチョイ cb5b-w4ID) mailto:sage [2016/12/11(日) 15:00:53.89 ID:PxfwJXGz0.net]
>>765 すいません。領域確保(AllocCoTaskMem)のところは省略してます。

779 名前:デフォルトの名無しさん (オッペケ Sr27-w4ID) [2016/12/11(日) 15:40:06.69 ID:pNKp5sE/r.net]
List<string> list = new List<string>() {"hage", "namahage"};
List<string> list = new List<string> {"hage", "namahage"};

どっちもいけるんだけどどう違うの?

780 名前:デフォルトの名無しさん (ワッチョイ 07cb-1E9w) mailto:sage [2016/12/11(日) 15:41:48.31 ID:G916gL+V0.net]
>>743
でも現実には処理が間に合わないわけじゃん
それでも一気に表示する仕様は変えないのか?
エクスプローラーではできてるのか?とか
Windowsのコピーって動作だって早く終われば進捗ウィンドウなんて出さないけど
長くかかれば進捗ウィンドウが出てくるわけよ



781 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/11(日) 15:48:11.13 ID:31wztqOV0.net]
>>763
肝心な条件を後だしとか酷いな。

Directory.EnumerateFiles()は.Net 4からだけど、VS2008は.Net3.5までだな。
.Net3.5じゃ、Async/AwaitどころかTaskも使えないぞ。
>>739で用語が混じってるけど、スレッド/スレッドプール/タスクね。

782 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/11(日) 15:55:26.64 ID:31wztqOV0.net]
Directory.GetFiles()は全てのファイルを取得するまで処理が戻ってこないから、バックグラウンド処理にした所で結局待たされる。
逐次処理がしたいなら、Win32API使ってDirectory.EnumerateFiles()のようなものを独自実装するしかないな。

783 名前:765 (ワッチョイ cb5b-w4ID) [2016/12/11(日) 17:07:16.26 ID:PxfwJXGz0.net]
こんな風に構造体の配列の要素ひとつずつをIntPtrで確保した領域にコピーしようと
したのですが、こういう方向性では無理ですか?
IntPtr ptr = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(A))*a.Length);
for(int i = 0; i < a.Length; ++i){
Marshal.StructureToPtr(a[i], ptr+i*size, false);
}

784 名前:765 (ワッチョイ cb5b-w4ID) mailto:sage [2016/12/11(日) 17:20:36.88 ID:PxfwJXGz0.net]
>>771 あーこれで問題なくいけてましたwお騒がせしました。

785 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 17:56:21.30 ID:caNoEqSZ0.net]
>770
そういうことか。 それでDoEventが聞かなかったんだね。

>769
Net4をダウンロードして、参照すればいいだけかとおもっていたが
むりか? 

786 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 18:00:11.20 ID:caNoEqSZ0.net]
>770
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\test");
System.IO.FileInfo[] files =
di.GetFiles("*.txt", System.IO.SearchOption.AllDirectories);

//ListBox1に結果を表示する
foreach (System.IO.FileInfo f in files)
{
ListBox1.Items.Add(f.FullName); ここでキューにいれればいいやん。

}

787 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 18:06:46.94 ID:caNoEqSZ0.net]
>でも現実には処理が間に合わないわけじゃん
>それでも一気に表示する仕様は変えないのか?

キューから取り出して表示するんなら、UIがわで順次表示できるよ。
問題はUIで超重たい処理がはいるのでハング状態になるということだけ
でしょ。
UIが動けば、ブレーク中断したり任意にできる。

788 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 20:18:29.55 ID:caNoEqSZ0.net]
SparkはC#サポートしてないよ。C#からどうやってつかうの? 

789 名前:デフォルトの名無しさん (ワッチョイ ebdc-6LJV) mailto:sage [2016/12/11(日) 22:29:10.18 ID:xUW3RgdE0.net]
そんなもん別プロセスでやりゃいいでしょ
パラメータや結果の受け渡しはRPC(IPC)使ってもいいけど、今回の要件ならファイルベースでもオーバーヘッドは全く無視できる

790 名前:デフォルトの名無しさん (ワッチョイ 07cb-1E9w) mailto:sage [2016/12/11(日) 22:30:49.68 ID:G916gL+V0.net]
一個一個入れて描画されてるから遅かったりして?



791 名前:デフォルトの名無しさん (ワッチョイ d723-xm+r) mailto:sage [2016/12/12(月) 01:48:31.95 ID:jfe+O/Es0.net]
>>771
.NET 4.0以降ならこういうのもあるよ、Marshal.AlignedSizeOf<T>()でアライメントされるが
https://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.safebuffer
派生クラスでhandleに確保済みポインタを設定し、Initialize<T>()等でポインタ領域も指定

StructureToPtrはジェネリックメソッドでさえも非ジェネリックのラッパーっぽいので
パフォーマンスは期待できない、unsafeで良ければ構造体ポインタ使った方が良いかもね

792 名前:デフォルトの名無しさん (ワッチョイ cb5b-w4ID) mailto:sage [2016/12/12(月) 02:20:55.85 ID:JnfesTFd0.net]
>>779
おぉ〜情報ありがとうございます!
なるほどそういうのもあるんですね。
教えて頂いた事を参考にさせて頂いてどうやるかもうちょっと考えてみます。

793 名前:デフォルトの名無しさん (ワッチョイ ebdc-6LJV) mailto:sage [2016/12/12(月) 06:39:25.29 ID:w8oqDcFY0.net]
bittableな構造体ならマネージ配列にGCHandleを割り当ててAddrOfPinnedObjectという手もあるよ
unsafeならfixedステートメントがだいたい等価
いちいちアンマネージなバッファを割り当てたり更新内容をマネージコードに書き戻したりしなくていいから楽

794 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/12(月) 08:05:25.67 ID:Jwz8x4f60.net]
>そんなもん別プロセスでやりゃいいでしょ
>パラメータや結果の受け渡しはRPC(IPC)使ってもいいけど、今回の要件なら
>ファイルベースでもオーバーヘッドは全く無視できる

全然意味がわからない。C#でCSVを作ったとして
1.C#からScalarにクエリを送信して、
2.Sparkの処理終了を待つ
3.結果を受信する。

これをC#でプログラムして、Scalarでもプログラムするってこと?
言うのは簡単だが、、、、例でもなきゃ調べてプログラムするのに1週間はかかりそう。w
本質的な情報が欠落しているとおもうよ。こんなのは初心者には全然意味がわからない。

795 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/12(月) 08:06:12.67 ID:Jwz8x4f60.net]
>777
こういうのを使えってことだろうか?
 Mobius: C# API for Spark

796 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/12(月) 08:10:10.92 ID:Jwz8x4f60.net]
var lines = sparkContext.TextFile(@"hdfs://path/to/input.txt");
var words = lines.FlatMap(s => s.Split(' '));
var wordCounts = words.Map(w => new KeyValuePair<string, int>(w.Trim(), 1))
.ReduceByKey((x, y) => x + y);
var wordCountCollection = wordCounts.Collect();
wordCounts.SaveAsTextFile(@"hdfs://path/to/wordcount.txt");

こんな感じでC#からSparkをコントロールしたいのだが、もっとも一般的で初心者向け
な簡単な方法はなにでしょうか?

797 名前:デフォルトの名無しさん (ブーイモ MM2f-6LJV) mailto:sage [2016/12/12(月) 08:30:36.13 ID:FdLiOBdBM.net]
>>784
それを普通にScalaかPythonかJavaで書いてC#からProcess.Startで呼べばいい
なんでもC#でやる必要ない

798 名前:デフォルトの名無しさん (オッペケ Sr27-l58V) mailto:sage [2016/12/12(月) 11:23:30.02 ID:FEnMQE8Ar.net]
誰も>>767に答えられないの?

799 名前:デフォルトの名無しさん (ブーイモ MM2f-6LJV) mailto:sage [2016/12/12(月) 11:31:59.68 ID:FdLiOBdBM.net]
>>786
違いはない

800 名前:デフォルトの名無しさん (アウアウオー Sa3f-ff1P) mailto:sage [2016/12/12(月) 11:55:48.82 ID:DdSBjDaJa.net]
どうでもいいけどここにちゃんとした説明があるな
https://msdn.microsoft.com/ja-jp/library/bb308966.aspx#topic12



801 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/12(月) 14:45:07.46 ID:Jwz8x4f60.net]
>785
なるほど。
 傾向を掴むだけの場合にはいいけれども、アプトプットの表現を加工したいような
場合にはやはりC#でないと、、、となって結局はC#が必要になるような気がする。

JavaもC#も言語的にはそんなに変わらないが、インテリセンスのないようなIDE
では作業できないと思わないか?
Scalaとか触ってはみたがインテリセンスがないのでこれでは使えない。
インテリセンスがあればうろ覚え程度でもなんとかなる。

802 名前:デフォルトの名無しさん (ワッチョイ b741-mm6H) [2016/12/12(月) 15:32:39.38 ID:9sS+uj7w0.net]
未指定だと
Javaはpublicに
C#はprivateになるのは
かなりデカイ違い

803 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/12(月) 15:56:55.39 ID:snQzvIqt0.net]
>>790
javaはppだぞ

804 名前:デフォルトの名無しさん (ワントンキン MMef-g0tO) mailto:sage [2016/12/12(月) 16:46:36.53 ID:cpVlzpwxM.net]
peek to peek ?

805 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/12(月) 17:00:27.95 ID:snQzvIqt0.net]
package private

806 名前:デフォルトの名無しさん (ブーイモ MM47-caEn) mailto:sage [2016/12/12(月) 18:52:15.45 ID:VeOEVzI1M.net]
えっJavaってIDEにインテリセンスもないのか

807 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/12(月) 19:44:00.02 ID:snQzvIqt0.net]
>>794
Ctrl+spaceで出すか、設定からいつでも出るようにしないといけない

808 名前:デフォルトの名無しさん (ワッチョイ 5f73-drn7) mailto:sage [2016/12/12(月) 23:05:44.03 ID:dBjxs9jc0.net]
Datatablのフィールドに氏名があったとして
Linqで荒川のindex(rowの位置)を取得するにはどう書けばいいのですか?

809 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/12(月) 23:11:46.39 ID:w8oqDcFY0.net]
>>796
そんなことはしない
データソースに直接クエリするべき

810 名前:デフォルトの名無しさん (ワッチョイ 5f73-drn7) mailto:sage [2016/12/12(月) 23:30:47.31 ID:dBjxs9jc0.net]
>>797
indexをforで探して別のフィールドの国語、数学の点を変えるでやっているんだけど
forじゃなくてLinqで探せないかなと思って、forよりLinqのが早い?かなと



811 名前:デフォルトの名無しさん (ワッチョイ 6b23-WrC4) mailto:sage [2016/12/12(月) 23:34:13.53 ID:/DQxiOau0.net]
>>798
行数が少ないだけでスピードは大して変わらんよ

812 名前:デフォルトの名無しさん (ワッチョイ b790-d424) mailto:sage [2016/12/13(火) 23:38:21.93 ID:3IrbMGrr0.net]
カレンダーを作りたいのですがフォームに表示する場合どのコントロールアイテムを使えばいいのかわかりません
使えそうなコントロールアイテムってありますか?

813 名前:デフォルトの名無しさん (ブーイモ MM07-6LJV) mailto:sage [2016/12/13(火) 23:45:34.29 ID:D1DGYHRwM.net]
WebBrowserでGoogleカレンダー表示しとけ

814 名前:デフォルトの名無しさん (ワッチョイ b790-d424) mailto:sage [2016/12/13(火) 23:45:54.00 ID:3IrbMGrr0.net]
すいません、質問内容を変えます
MonthCalenderアイテムのたとえば第1・3火曜日だけを色を変えたりとかってどうやるんでしょうか?

815 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/14(水) 01:12:4 ]
[ここ壊れてます]

816 名前:7.69 ID:dZsAFSxQ0.net mailto: 簡単な方法はない
出来合いのカレンダーコンポーネントなんかHTMLなら腐るほどあるから
今時WinFormsなんかやめてASP.NET MVCでWebアプリとして作ることをお勧めする
[]
[ここ壊れてます]

817 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/14(水) 01:25:03.42 ID:ymoBJubC0.net]
何だろね、この強引なWEB推し。
初心者がいきなりASP.NET MVCとか無理だろ。

818 名前:デフォルトの名無しさん (ワッチョイ 3f19-i2Au) mailto:sage [2016/12/14(水) 01:50:56.59 ID:WNb69LWH0.net]
webアプリってあんまり好きじゃない

819 名前:デフォルトの名無しさん (スププ Sd2f-8RvK) mailto:sage [2016/12/14(水) 02:05:02.38 ID:0k2o8obnd.net]
デスクトップアプリ作りたい人にWebアプリ薦めるとか頭おかしいだろ

820 名前:デフォルトの名無しさん (ワッチョイ 07cb-1E9w) mailto:sage [2016/12/14(水) 22:24:55.46 ID:AUUgXdZT0.net]
あー、どうだろ?
今時、DBにも繋がらないゴミになんか価値あるの?
って思う
メモ帳ですらgoogleでクラウド化してくれたことでやばいぐらい利便性が上がってる



821 名前:デフォルトの名無しさん (スププ Sd2f-8RvK) mailto:sage [2016/12/14(水) 22:39:26.79 ID:0k2o8obnd.net]
>>807
デスクトップアプリがDBに繋がらないって意味分からん

822 名前:デフォルトの名無しさん (ワッチョイ 3faf-i2Au) mailto:sage [2016/12/14(水) 22:46:30.91 ID:iFO9XKWI0.net]
デスクトップアプリでDBならSQLiteとかでもOnedriveみたいにファイルを置くだけで同期できるやつを使えば鯖なくても簡単にクラウド化できるし
ローカルのファイル書き込みと同じように使えるから初心者でも楽でいいよ

823 名前:デフォルトの名無しさん (ワッチョイ 6b23-WrC4) mailto:sage [2016/12/14(水) 23:01:05.01 ID:4HnH0eA/0.net]
>>809
SQLiteは、同時書き込みサポートしていないから、当該アプリケーション専用かつ、二重起動不可にしないと何かと問題起こるでしょ

824 名前:デフォルトの名無しさん (スププ Sd2f-8RvK) mailto:sage [2016/12/14(水) 23:06:38.72 ID:0k2o8obnd.net]
>>810
用途に合わせてDB選択すればいいじゃないですか

825 名前:デフォルトの名無しさん (ワッチョイ 34cb-Wqrw) mailto:sage [2016/12/15(木) 00:01:01.86 ID:I51Ec/8p0.net]
>>808
クラウド的な意味で
なんでもネットに繋げて見るべきだと思うな俺は

826 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 00:37:49.10 ID:R3vgAk4Qd.net]
>>812


827 名前:デフォルトの名無しさん (ブーイモ MMb8-JvIx) mailto:sage [2016/12/15(木) 00:50:31.08 ID:ArFpv1XpM.net]
いまやC#も舞台は完全にWebに移ったからなあ
.NET Coreも正式リリースされ、C#はクラウド開発の主要技術として本格的に覇権を取りにいく時代に入った
デスクトップアプリなどという終わった技術に固執している場合ではないよ

828 名前:デフォルトの名無しさん (ワッチョイ 9c9d-0G5/) mailto:sage [2016/12/15(木) 01:56:47.57 ID:UyqFS3sy0.net]
※個人の感想です

829 名前:デフォルトの名無しさん (ワッチョイ 350c-8I6M) mailto:sage [2016/12/15(木) 01:58:26.76 ID:roF9qDxe0.net]
>>814
仕事でデスクトップアプリ作ることないの?
いままでデスクトップアプリだったけど、Webに移行できたアプリって例えばどういうのがあるの?

830 名前:デフォルトの名無しさん (ワッチョイ 413c-awGI) mailto:sage [2016/12/15(木) 03:06:24.93 ID:hXmFu1Hy0.net]
>>816
業務アプリはWeb移行流行っただろ
デスクトップアプリは、開発ツールとしてならちょくちょくつくるね



831 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 04:10:25.23 ID:R3vgAk4Qd.net]
.NET Coreって別にクラウド用じゃないんだけど

832 名前:デフォルトの名無しさん (ワントンキン MM40-Qnvt) mailto:sage [2016/12/15(木) 06:03:28.59 ID:4tPXC7shM.net]
PAINT DOT NET がWebに移植されたの?

833 名前:デフォルトの名無しさん (JP 0H57-8I6M) mailto:sage [2016/12/15(木) 10:17:25.60 ID:AviUmHkiH.net]
デスクトップアプリでもクラウド上のDBに接続できるし>>807は意味わからんな
MS的にAzure App ServiceとXamarinと.NET Core推しでUWP含めデスクトップアプリを捨てにかかってる感はある

834 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 10:33:10.37 ID:QVvM9ANid.net]
>>820
xamarinはUWPサポートしてるんですが

835 名前:デフォルトの名無しさん (ワッチョイ 8001-Vn9u) mailto:sage [2016/12/15(木) 10:42:37.80 ID:FQrvRs280.net]
会社で使う業務アプリなら、使い勝手がどうとかレスポンスがどうとか文句言っても
しょうがないからWebアプリでも仕方なしに使うけど、個人で使うならよっぽど何か
メリットがない限り、Webアプリを選ぶ事はないわな

836 名前:デフォルトの名無しさん (ドコグロ MM1c-Wqrw) mailto:sage [2016/12/15(木) 11:52:17.88 ID:JOHJeedcM.net]
>>822
え?
むしろスマホも枠に入れたらwebアプリのが多くならない?

837 名前:デフォルトの名無しさん (ドコグロ MM74-f0Z7) mailto:sage [2016/12/15(木) 12:11:23.13 ID:oGetrQbmM.net]
スマホアプリ全部をWebアプリに含めるなよ

838 名前:デフォルトの名無しさん (ワッチョイ 8001-NX/j) mailto:sage [2016/12/15(木) 12:12:53.08 ID:FQrvRs280.net]
スマホの話をしてるつもりはないんだけどなw

839 名前:デフォルトの名無しさん (ワンミングク MM40-BQpQ) mailto:sage [2016/12/15(木) 12:33:06.76 ID:7KRIzockM.net]
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja

840 名前:デフォルトの名無しさん (ワッチョイ f2af-fzYk) mailto:sage [2016/12/15(木) 15:47:36.94 ID:cs8YXCvF0.net]
スマホアプリもデスクトップと同じようなものだと思ってたけど違うの?
ソシャゲー以外はゲームもそれ以外もネット無しでも動くのが多いけど



841 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 16:19:58.27 ID:QVvM9ANid.net]
>>827
同じに決まってますやん

っていうかもしかして
デスクトップアプリ=通信機能なしのアプリ
Webアプリ=通信機能ありのアプリ
と思ってる人いる?

842 名前:デフォルトの名無しさん (ワッチョイ 3976-ayWP) [2016/12/15(木) 20:22:44.73 ID:JHzpWXH70.net]
ローカルファイルの存在がある限りはデスクトップアプリなくならんよなあ
electronとかでテクノロジー的には統一されるのかもしれんが

843 名前:デフォルトの名無しさん (ワッチョイ 39d9-0Nmv) mailto:sage [2016/12/15(木) 20:50:15.58 ID:0F4R16IB0.net]
アーキテクチャーの話になってきてるからスレタイ読んで方向修正しろ

844 名前:デフォルトの名無しさん (ワッチョイ 34cb-Wqrw) mailto:sage [2016/12/15(木) 22:01:11.28 ID:I51Ec/8p0.net]
c#でスマフォアプリ作りたいよ!

845 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 22:07:11.09 ID:QVvM9ANid.net]
>>831
どうぞどうぞ

846 名前:デフォルトの名無しさん (ワッチョイ 3542-XOD+) mailto:sage [2016/12/15(木) 22:41:41.93 ID:Uw+BYsZj0.net]
>>831
つunity

847 名前:デフォルトの名無しさん (オッペケ Sr29-I6+1) mailto:sage [2016/12/15(木) 23:42:14.65 ID:FEXhH1Xvr.net]
>>833
なんでそこでUnity出てくるんだよ
アプリ=2D/3Dゲームとは限らんだろ

848 名前:デフォルトの名無しさん (アウアウイー Sa87-WqSn) mailto:sage [2016/12/15(木) 23:52:53.04 ID:JZ4+gGwKa.net]
>>834
つunity

849 名前:デフォルトの名無しさん (ワッチョイ 3542-XOD+) mailto:sage [2016/12/15(木) 23:53:04.54 ID:Uw+BYsZj0.net]
>>834
ゲームエンジンだからってゲーム製作を強制されてるわけじゃないしマルチプラットフォーム楽だから提案しただけ
情報はそれなりに多いしC#でスマホアプリ開発したいなら余裕で候補に入ってくると思うけど

850 名前:デフォルトの名無しさん (ドコグロ MM74-f0Z7) mailto:sage [2016/12/15(木) 23:55:29.59 ID:oGetrQbmM.net]
ゲームでもないのにUnityはありえないな



851 名前:デフォルトの名無しさん (ワッチョイ 35dc-JvIx) mailto:sage [2016/12/16(金) 00:09:14.95 ID:oD0nT6zl0.net]
今はXamarinもタダでVSに付いてくるからな

852 名前:デフォルトの名無しさん (ササクッテロル Sp29-DuXA) mailto:sage [2016/12/16(金) 14:15:42.62 ID:+kSjzPrMp.net]
>>837
Unity使ってゲームじゃないもの複数リリースしてるわ俺

853 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/16(金) 14:58:58.27 ID:2fwYBe0Xd.net]
変わった人ですね

854 名前:デフォルトの名無しさん (JP 0Hf9-hLkw) mailto:sage [2016/12/16(金) 16:48:03.99 ID:q/3Oja+oH.net]
Xamarinってスマホ用のちょっとしたアプリをC#でちょちょいと書くくらいの用途だったら
十分使えるのかね?

855 名前:デフォルトの名無しさん (ワッチョイ 794a-xySp) mailto:sage [2016/12/16(金) 17:30:52.01 ID:3vYA7mHR0.net]
>>814
CoreってまだPreviewでしょ?

856 名前:デフォルトの名無しさん (ワッチョイ 3179-fmwP) mailto:sage [2016/12/16(金) 17:31:55.76 ID:OhRUtX+J0.net]
ionic2でスマホアプリ作った方が楽じゃない?

857 名前:デフォルトの名無しさん (ワッチョイ 9523-8I6M) mailto:sage [2016/12/16(金) 18:33:01.02 ID:pxUpeQjw0.net]
>>842
www.publickey1.jp/blog/16/net_core_10_redhat.html
オープンソースの「.NET Core 1.0」、マイクロソフトが正式リリース。Windows/Linux/macOSに対応。 2016年6月28日

858 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/16(金) 19:33:08.33 ID:2fwYBe0Xd.net]
>>841
プログラマーのスキル次第だよ

859 名前:デフォルトの名無しさん (ワッチョイ 34cb-rqOZ) mailto:sage [2016/12/17(土) 20:24:02.58 ID:qwypf80K0.net]
>>842
Cora!何ねぼけたこと言ってんだ!

860 名前:デフォルトの名無しさん (ワッチョイ a030-0Nmv) mailto:sage [2016/12/17(土) 21:23:42.16 ID:iwmBtcKB0.net]
審議拒否



861 名前:デフォルトの名無しさん (ワッチョイ bf0d-zrF5) [2016/12/19(月) 17:35:36.43 ID:alVbxlzl0.net]
無名関数をその場で実行したいのですがどうやればいいですか?

public void Hoge()
{
  int fuga = 0;

  //JSだと (function() { fuga++; })(fuga); みたいな書き方
  () => {
   fuga++;
  }

  Console.Write(fuga.ToString()); // 1
}

862 名前:デフォルトの名無しさん (ワッチョイ b779-fmwP) mailto:sage [2016/12/19(月) 17:55:39.16 ID:C2gHCNQF0.net]
jsと同じ仕方で出来ない?
(()=>{})()

863 名前:デフォルトの名無しさん (ワッチョイ bf0d-zrF5) [2016/12/19(月) 18:00:28.82 ID:alVbxlzl0.net]
>>849
「メソッド名が必要です」とエラーが出ます。何か間違っているのでしょうか・・・?
i.imgur.com/xkxr4EQ.jpg

864 名前:デフォルトの名無しさん (ワッチョイ 9519-qvaQ) mailto:sage [2016/12/19(月) 18:07:22.05 ID:/uogIQCg0.net]
型が必要
new Action(() => fuga++)();
((Action)(() => fuga++)))();

865 名前:デフォルトの名無しさん (ワッチョイ bf0d-zrF5) [2016/12/19(月) 18:22:45.50 ID:alVbxlzl0.net]
>>851
できました!
ありがとうございます!

866 名前:デフォルトの名無しさん (アウアウオー Sa36-yl9W) mailto:sage [2016/12/19(月) 18:43:30.73 ID:3c7S3m0Fa.net]
何の意味がw

867 名前:デフォルトの名無しさん (ワッチョイ b779-fmwP) mailto:sage [2016/12/19(月) 18:55:26.87 ID:C2gHCNQF0.net]
あっそっか
C#はscalaとかjsと違って名前で判別してるんだった

868 名前:デフォルトの名無しさん (ブーイモ MMe5-JvIx) mailto:sage [2016/12/19(月) 19:16:31.85 ID:U/zOmskaM.net]
デリゲート型宣言は、イベントをオブジェクト指向に持ち込むためだけにデリゲートが存在していた時代の名残だね
今作り直したら確実に無くなるものの筆頭

869 名前:デフォルトの名無しさん (ワキゲー MMe6-qmcu) mailto:sage [2016/12/19(月) 19:24:00.11 ID:s6nMQ4X7M.net]
多値がまだない今だとref/outが

870 名前:デフォルトの名無しさん (アウアウオー Sa36-yl9W) mailto:sage [2016/12/19(月) 19:34:56.44 ID:3c7S3m0Fa.net]
>>855
そんなわけないでしょw
勘違いはなはだしいな



871 名前:デフォルトの名無しさん (ブーイモ MMe5-JvIx) mailto:sage [2016/12/19(月) 20:16:21.66 ID:U/zOmskaM.net]
>>857
昔はデリゲートなんかほんとにイベントの裏方のカスみたいな存在だったよ
もはや死語となったマルチキャストデリゲートも今じゃありえない設計判断

872 名前:デフォルトの名無しさん (ブーイモ MM8d-Qnvt) mailto:sage [2016/12/19(月) 20:27:48.59 ID:Ph61c/PCM.net]
そうなのか?Taskへの書き換えが楽だからマルチキャスト多用してるわ

873 名前:デフォルトの名無しさん (ワッチョイ 9d23-8I6M) mailto:sage [2016/12/19(月) 20:38:22.46 ID:OLcwTH7T0.net]
prismのEventAggregatorでは、マルチキャストどころか多対多のイベントがサポートされている
これとprism..Unitiy使い始めると設計が根本から変わわるよね

874 名前:デフォルトの名無しさん (ワッチョイ 35dc-JvIx) mailto:sage [2016/12/19(月) 20:43:17.00 ID:t+mkU7Kd0.net]
TaskならContinueWithやWhenAll使いなよ
マルチキャストだと戻り値取れないだろ?
後でTaskに乗り換えようとしてもコードが副作用だらけになってて排他処理が必要になるはずだから
置き換えはそう簡単にはいかないだろう

875 名前:デフォルトの名無しさん (ワンミングク MM40-Qnvt) mailto:sage [2016/12/19(月) 20:46:00.65 ID:cSqZiFK0M.net]
いや呼び出し部はちゃんど自分でバラして戻り値取ってるよ

876 名前:デフォルトの名無しさん (ワッチョイ 35dc-JvIx) mailto:sage [2016/12/19(月) 20:50:55.64 ID:t+mkU7Kd0.net]
>>862
それマルチキャスト使う意味ある?
List<Func<>>でいいじゃん
MulticastDelegateをバラすと型情報も無くなるしパフォーマンスも悪い
百害あって一理なし

877 名前:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh) [2016/12/19(月) 22:35:52.95 ID:SUXs8zgR0.net]
スレチかもしれませがすみません
C#の勉強の延長でASPでwebアプリ作ってみようかと思ってるんですがASP.NETでのwebアプリの開発って主流の一つに入るんでしょうか

878 名前:デフォルトの名無しさん (ワッチョイ 35dc-6+SE) mailto:sage [2016/12/19(月) 22:41:34.98 ID:t+mkU7Kd0.net]
>>864
今から始めるならASP.NET MVCにしとけ
無印の方のASP.NET(WebForms)はドカタ技術

879 名前:デフォルトの名無しさん (ワッチョイ 413c-bVUl) mailto:sage [2016/12/19(月) 23:07:17.43 ID:MBhcE2/40.net]
>>864
Webアプリで何がしたいの?

880 名前:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh) [2016/12/19(月) 23:08:48.47 ID:SUXs8zgR0.net]
>>865
ありがとうございます
ASP.NETの知識無しでMVCのほうから入っても問題ないのですか?



881 名前:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh) [2016/12/19(月) 23:13:07.51 ID:SUXs8zgR0.net]
>>866
特に決めてはいないですが、在庫管理やらの業務系が出来ればと考えてます

882 名前:デフォルトの名無しさん (ワッチョイ 413c-bVUl) mailto:sage [2016/12/19(月) 23:20:50.16 ID:MBhcE2/40.net]
>>868
それなら.NET CoreじゃなくてまだFullの.NET Frameworkでいいね

883 名前:デフォルトの名無しさん (ワッチョイ 35dc-6+SE) mailto:sage [2016/12/19(月) 23:53:29.04 ID:t+mkU7Kd0.net]
>>867
別物だから問題ない
.NET開発としてではなく一般的なWeb開発の技術として主流かどうかを気にしてるなら断然MVCの方がいい
いわゆるWebMVCといってWeb開発においては非常に一般的なアーキテクチャを採用してるからな
無印の方はWinFormsのようなものを無理やりWeb上に再現した変態技術だが、
お前らの独自技術はもういいからWebらしいフレームワークが欲しいというニーズに応えて「普通な」MVCができた

884 名前:デフォルトの名無しさん (ワッチョイ 413c-bVUl) mailto:sage [2016/12/19(月) 23:54:58.14 ID:MBhcE2/40.net]
>>870
今どき無印とは言わねーよ

885 名前:デフォルトの名無しさん (ワッチョイ bf49-TtuQ) mailto:sage [2016/12/19(月) 23:57:07.79 ID:yUAE2IHm0.net]
>>867
問題ない。

>>869
いきなりそんなこと言っても何のことだか分からんと思うぞ。
そもそもCoreのこと聞いてないし。

886 名前:デフォルトの名無しさん (ワッチョイ 413c-bVUl) mailto:sage [2016/12/20(火) 00:19:37.86 ID:woy83GfY0.net]
>>872
自分で調べるだろ
わからなけりゃまた聞いてくるだろうし
今から始めるやつはそもそもWeb formsなんか対象にならないだろうから、Coreと比べるのは妥当

887 名前:デフォルトの名無しさん (ワッチョイ 3a13-WTZK) mailto:sage [2016/12/20(火) 01:09:58.52 ID:bQKX6Z8E0.net]
屁理屈言うなよ

888 名前:デフォルトの名無しさん (スプッッ Sdc8-bVUl) mailto:sage [2016/12/20(火) 02:18:50.01 ID:usQ/Ng63d.net]
>>874
至極まともな考えだと思うが

889 名前:デフォルトの名無しさん (ワッチョイ 35dc-6+SE) mailto:sage [2016/12/20(火) 07:30:35.17 ID:wmh5vlKz0.net]
今はASP.NET自体も無印とCoreに分裂してるから紛らわしい
このジャップ国でASP.NETに入門しようとしたら平気でWebFormsの情報ばかり出てくるから
とりあえずはそこさえ間違えなきゃいいと思うけどね
いきなりCoreは日本語の情報少なくて厳しいと思う

890 名前:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh) [2016/12/20(火) 07:55:39.72 ID:1rO91uPl0.net]
>>864です
みなさんありがとうございます
大変参考になりました。聞いてよかったです
色々出して頂いたものは今から調べてみたいと思います



891 名前:デフォルトの名無しさん (ブーイモ MM8d-3Pgg) mailto:sage [2016/12/20(火) 19:05:30.30 ID:ZJa7dsMxM.net]
web formsはあれはあれでよく出来てるよ
経験の浅い若手を使って業務用システムをサッと作りたいときとかね
もちろん保守は他社がやると見込める時だけだが

892 名前:デフォルトの名無しさん (ワッチョイ 6751-g1cW) mailto:sage [2016/12/22(木) 23:43:30.19 ID:GClofaGB0.net]
C#を三か月前から勉強し始めました。
家でも勉強したくてパソコンにVS入れたいのですが、2015をインストールしたら,
Blend2015というのがインストールされました。
無料版ではComminityとExpressがあって、Comminityのほうがおすすめと聞いたのでそっちを入れたかったのですが・・・

Blendとはいったいどういう位置づけになるのですか?
会社ではVisualStudio2013Professionalを使っています。

893 名前:デフォルトの名無しさん (ワッチョイ b749-AD9A) mailto:sage [2016/12/22(木) 23:52:13.67 ID:x9LZEgeN0.net]
>>879
VisualStudioに付いてくるおまけ。
WPFでGUIをデザインするためのツール。
Comminityを入れたんなら、Blendとは別にComminityの方も入ってるだろ。

894 名前:デフォルトの名無しさん (ワッチョイ b749-AD9A) mailto:sage [2016/12/22(木) 23:53:53.81 ID:x9LZEgeN0.net]
あれ、community、だな。

895 名前:デフォルトの名無しさん (ワッチョイ 6751-g1cW) mailto:sage [2016/12/23(金) 00:07:02.38 ID:eKejh9BS0.net]
>>880
communityをインストールしようとしたらなぜかBlendになってました・・・。
2015もcommunityありますよね?
ありがとうございます。インストr−ルやりなおしてみます

896 名前:デフォルトの名無しさん (スフッ Sddf-Khx9) mailto:sage [2016/12/23(金) 00:13:03.88 ID:nw5SwlgYd.net]
Visual Studio入れるとBlendが付いてくる
アプリケーションの一覧にVisual Studioのフォルダが出来てないか?

897 名前:デフォルトの名無しさん (ワッチョイ 0379-d0Xh) mailto:sage [2016/12/23(金) 00:15:51.67 ID:P0PUtLY+0.net]
Blend版が付いてくるのを知らなくて、普通のVS起動していたつもりがBlend起動してて、設定項目が見つからず6時間くらい無駄にした思い出

898 名前:デフォルトの名無しさん (ワッチョイ b749-AD9A) mailto:sage [2016/12/23(金) 00:19:34.19 ID:et7LM/Li0.net]
>>882
Blendだけ入るって無いと思うけど。両方入っているはず。
落ち着いてメニューをよく見たら。

899 名前:デフォルトの名無しさん (ワッチョイ 73dc-PUH/) mailto:sage [2016/12/23(金) 00:19:39.42 ID:Boa5/2YS0.net]
仕事で使うための勉強ならBlendなんか用無しだろ
ASP.NETとWinFormsだけやっとけばいい

900 名前:デフォルトの名無しさん (ワッチョイ e75e-g1cW) mailto:sage [2016/12/23(金) 00:24:53.07 ID:ydrXOK0X0.net]
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe
>>882
必ず入っているはず。
むしろBlend版とか知らなくて、そのレス見てからサインインしたw



901 名前:デフォルトの名無しさん (アウアウカー Sa3f-fflT) [2016/12/23(金) 15:03:31.78 ID:8qbb8kwia.net]
Coreの話

902 名前:が出てたけど、ラズパイにwebアプリをデプロイできるの? []
[ここ壊れてます]

903 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/23(金) 15:17:21.07 ID:ThcKA0lt0.net]
>>888
ロードマップでは、ARM対応はQ4 2016 / Q1 2017ってなってた。Samsungが確か頑張ってるはず。

904 名前:デフォルトの名無しさん (アウアウカー Sa3f-fflT) [2016/12/23(金) 17:23:34.06 ID:9xVG4ZuTa.net]
>>889
そうなのね!ありがとう

905 名前:デフォルトの名無しさん (ワッチョイ 6751-g1cW) mailto:sage [2016/12/23(金) 18:46:44.52 ID:eKejh9BS0.net]
>>883,884,885,886,887
返信ありがとうございます
インストール一覧を調べてみたところcommunityも入っていました
もっと確認すべきでした・・・
どうもありごうございました。

906 名前:デフォルトの名無しさん (ワッチョイ d7ce-agOw) mailto:sage [2016/12/23(金) 21:53:23.45 ID:Lyl7nXDN0.net]
余計な物も入れてくるから嫌いなんだよなあインストーラー
IDE必要ないからexeビルド環境だけ入るようなオプションない?

907 名前:デフォルトの名無しさん (ワッチョイ efa1-YuIQ) mailto:sage [2016/12/23(金) 22:11:13.66 ID:wnG5DWev0.net]
csc.exeなら.NET Frameworkに含まれてんじゃないっけ

908 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 22:39:52.11 ID:6njdFiip0.net]
csc.exeはデフォで付いてくる
IDE入れないとコンパイラ入れられない言語とかない

909 名前:デフォルトの名無しさん (ワッチョイ 0f7b-SerI) mailto:sage [2016/12/23(金) 22:43:28.69 ID:jiSEHcxr0.net]
YouTube にある、T Umezawa の「メモ帳でC#超入門 #16」

ニコ生で放送しているのか?
よく知らないけど、昨日、#16 がアップされた

910 名前:デフォルトの名無しさん (ワッチョイ e30d-agOw) mailto:sage [2016/12/23(金) 22:46:42.71 ID:8ECS/mff0.net]
自作自演の宣伝きめぇ



911 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 22:55:02.72 ID:6njdFiip0.net]
メモ帳とかメリットなさすぎ
VSが重くて嫌ならVSCodeおすすめ

912 名前:デフォルトの名無しさん (ブーイモ MM8f-ncxm) mailto:sage [2016/12/23(金) 23:04:29.79 ID:gDLxrLVpM.net]
VSは機能の割には無茶苦茶軽いと思うけどな
しかもゴッテゴテのWPFアプリなのに

913 名前:デフォルトの名無しさん (ブーイモ MM3f-lsSM) mailto:sage [2016/12/23(金) 23:05:50.84 ID:MNqe+TxRM.net]
WPFが重いって無能が作り上げた先入観でしかないんだよね

914 名前:デフォルトの名無しさん (ワッチョイ f3d6-i5Qz) mailto:sage [2016/12/23(金) 23:09:15.19 ID:ejzKG2eK0.net]
超低スペックなパソコンを後生大事に使い続ける貧乏人が文句言ってるだけ

915 名前:デフォルトの名無しさん (ワッチョイ abc0-g1cW) mailto:sage [2016/12/23(金) 23:28:01.18 ID:c2xEt3tE0.net]
低スペPC使っているけど、VSは2010以前とそれ以降で重さが段違いだな

916 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 23:35:32.33 ID:6njdFiip0.net]
>>898
Eclipseに比べたらかなり軽いよね
JavaとかScalaもVSに対応してほしい

917 名前:デフォルトの名無しさん (ワッチョイ ab3c-g1cW) mailto:sage [2016/12/23(金) 23:36:01.09 ID:Fo6fBKop0.net]
2017は必要なものだけで立ち上げられるんだろ?

918 名前:デフォルトの名無しさん (ブーイモ MM3f-lsSM) mailto:sage [2016/12/23(金) 23:38:37.93 ID:MNqe+TxRM.net]
次はインストールも爆速になるらしいな
最近のMicrosoftさん頑張りすぎ
ORACLEも少しはMicrosoftを見習ってほしい

919 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 23:42:33.40 ID:6njdFiip0.net]
インストールは寝る前にするからあまり関係ないけどね

920 名前:デフォルトの名無しさん (ブーイモ MM8f-ncxm) mailto:sage [2016/12/23(金) 23:43:37.75 ID:gDLxrLVpM.net]
>>899
VSの成功が証明してるようにスケーラビリティが高いのは確かだけど、
実際小さなアプリに使うには重いよ



921 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 23:45:24.81 ID:6njdFiip0.net]
WPFはバインドがなー
Angularとかの自動更新になれるとね

922 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/24(土) 00:09:01.03 ID:LpJ8AJuF0.net]
>>892
Cake使えば?

923 名前:デフォルトの名無しさん (ワッチョイ ef9f-h9rX) mailto:sage [2016/12/24(土) 01:10:24.95 ID:YCrD1JsG0.net]
>>894
なんで自信ありそうに言いきってるの?
IDE入れないといけない言語はあるよ

924 名前:デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z) mailto:sage [2016/12/24(土) 09:08:23.75 ID:dPbQS77J0.net]
>>909
具体的に何よ?

925 名前:デフォルトの名無しさん (ワッチョイ 73dc-ncxm) mailto:sage [2016/12/24(土) 09:26:43.36 ID:3LTJc3r/0.net]
Smalltalkとか昔のVBやDelphiとか

926 名前:デフォルトの名無しさん (ワッチョイ 8f42-3ZJ0) mailto:sage [2016/12/24(土) 10:07:04.78 ID:Uz+bz49d0.net]
コンパイラ?

927 名前:デフォルトの名無しさん (アウアウカー Sa3f-a5Nx) mailto:sage [2016/12/24(土) 10:09:16.39 ID:VcKJc7+aa.net]
powerbuilderもだった

928 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/24(土) 11:28:12.62 ID:prTI7XBj0.net]
>>912
昔のVBもDelphiもコンパイラなんだけどw

929 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 13:38:48.90 ID:HbE0faQGr.net]
ウインフォームアプリ作ったんだけどインストーラーとかアップデータとかも自分で作るの?

930 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/24(土) 13:40:12.31 ID:LpJ8AJuF0.net]
>>915
ClickOnce



931 名前:デフォルトの名無しさん (ワッチョイ ef9f-h9rX) mailto:sage [2016/12/24(土) 13:41:59.25 ID:yr6q9nVG0.net]
VBAとかSmall BasicとかScratchとかもそうじゃね

932 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 13:56:05.59 ID:HbE0faQGr.net]
>>916
それってオワコンなんじゃないの?

933 名前:デフォルトの名無しさん (ブーイモ MM5f-ncxm) mailto:sage [2016/12/24(土) 14:01:46.96 ID:1tLIoM8kM.net]
>>918
それを言ったらWinFormsもオワコンだよ
今生きてるのはASP.NETとUWPだけ

934 名前:デフォルトの名無しさん (ワッチョイ abc0-g1cW) mailto:sage [2016/12/24(土) 14:03:16.98 ID:a9e/NRk30.net]
オワコンだけど代替がないってのがね

935 名前:デフォルトの名無しさん (ワッチョイ 379d-i5Qz) mailto:sage [2016/12/24(土) 14:23:05.13 ID:2536g+Dg0.net]
MSもWinFormsに回帰、注力すべき

936 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/24(土) 14:35:55.93 ID:prTI7XBj0.net]
拡張機能からNuGetでVisualStudioInstaller入れられるの知らないのカー

937 名前:デフォルトの名無しさん (ワッチョイ e33c-IeCC) [2016/12/24(土) 15:17:55.11 ID:hhClfuXq0.net]
並列処理を行いたいんですがどうすればいいでしょうか?

しかも複数の並列処理で同一のコントロール(TextBox1.text)
に同時に書き込めるようにしたいです(書き込む順番はきにしません)
あとそれぞれの並列処理を無限ループで繰り返し処理を行いたいと
思っております。

どなたか教えてください。どうぞよろしくお願いします

938 名前:デフォルトの名無しさん (オッペケ Sref-AvAH) mailto:sage [2016/12/24(土) 15:19:37.36 ID:JBAVj1Vvr.net]
>>899
無能と言うか変化について行けない頭固い人だね。
所謂老害かな。

939 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/24(土) 15:20:33.37 ID:LpJ8AJuF0.net]
>>918
その要件を簡単に実現できる方法が他にない。

940 名前:デフォルトの名無しさん (オッペケ Sref-AvAH) mailto:sage [2016/12/24(土) 15:21:12.81 ID:JBAVj1Vvr.net]
>>923
async, await 一択。



941 名前:デフォルトの名無しさん (ワッチョイ 8f13-i5Qz) mailto:sage [2016/12/24(土) 15:21:23.94 ID:XrRMaYjq0.net]
>>909
たとえば?

942 名前:デフォルトの名無しさん (ワッチョイ d7ce-agOw) mailto:sage [2016/12/24(土) 16:08:14.24 ID:yMvVW4sX0.net]
>>923
System.Windows.Forms.Control.Invoke経由で書き込むだけ

943 名前:デフォルトの名無しさん (ブーイモ MM5f-ncxm) mailto:sage [2016/12/24(土) 16:10:19.44 ID:RJkhT4CTM.net]
>>923
ワーカースレッドから好き勝手にGUI触るとカオスになるから、Producer-Consumerで分離すれば?
複雑なことをやるならGUIからではなくデザイン(見た目じゃないよ)から入る作り方も覚えていったほうがいい

944 名前:デフォルトの名無しさん (ワッチョイ 8f13-0LB+) mailto:sage [2016/12/24(土) 16:17:45.91 ID:cCwHGfM40.net]
>>928
これだな

945 名前:デフォルトの名無しさん (ワッチョイ 73dc-ncxm) mailto:sage [2016/12/24(土) 16:27:12.97 ID:3LTJc3r/0.net]
>>924
悪いけど、今時WPF推しとかそれこそ老害だと思うぞ
立ち止まって周りを見てみろ

946 名前:デフォルトの名無しさん (ワッチョイ b77b-g1cW) mailto:sage [2016/12/24(土) 16:28:09.91 ID:YD9ZIllA0.net]
話の流れが読めない人?

947 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 17:08:45.84 ID:hhClfuXq0.net]
みなさんありがとうございます。
自分なりに調べて以下の通りつくってみました
「3秒まってコンソールに文字列を出力する」という処理を並列で動作させたかったのですが
どうもそれぞれの処理が単体で実行されるだけで並列処理になっていないようです。
以下の処理を並列で実行できるようにするにはどうすればよろしいでしょうか?
private async void button1_Click(object sender, EventArgs e)
{
while (true)
{
await Task.Run(() => Thread.Sleep(3000));
Console.WriteLine("タスク完了");
}
}

948 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 17:10:58.57 ID:HbE0faQGr.net]
>>919
>>925
>>920
そっかあ
面倒だけど自作するか…
もうおっさんだからWinForm以外習得できん

949 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 17:12:35.93 ID:HbE0faQGr.net]
>>922
あれ…記憶にないけどインストールしてあったw
まあアップデータは自作になるか…

950 名前:デフォルトの名無しさん (ブーイモ MM3f-TACi) mailto:sage [2016/12/24(土) 17:21:30.45 ID:Jrqe8RRjM.net]
>>933
その例は
「3秒まってコンソールに文字列を出力する」
ってタスクを無限個作りたいのん?
最初は2個にしておけば?



951 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 17:33:48.36 ID:hhClfuXq0.net]
>>936
はいそうです
2個でも問題ありません。
簡単なサンプルとか頂ければ大変助かります
大変恐縮ですがどうぞよろしくお願い致します

952 名前:デフォルトの名無しさん (オッペケ Sref-AvAH) mailto:sage [2016/12/24(土) 17:39:03.48 ID:JBAVj1Vvr.net]
>>933
> 以下の処理
これが意味不明だけど。

十分並列にはなってる。

953 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 17:52:32.66 ID:hhClfuXq0.net]
>>938
そうなんですね。ご指摘ありがとうございます。

ただ私の想定としては、「3秒待って出力」という処理を
複数同時に開始したいと思っておりました
ですがコンソールに出力されるタイミングは3秒おきに1処理分しか
出力されず、非同期処理と変わらない処理となっているような気がします

上で示したサンプルがわかりづらくて申し訳ありませんが
タスクは2個でも3個でも同時並列で処理できれば問題ありません
大変恐縮ですがご教示頂ければと思います

954 名前:デフォルトの名無しさん (ワッチョイ 3b3a-a3YU) mailto:sage [2016/12/24(土) 18:00:04.01 ID:kAw8XX2k0.net]
>>937
void TaskTest() {
Task.Run(async () => {
await Task.Delay(3000);
Console.WriteLine(DateTime.Now);
});
Task.Run(async () => {
await Task.Delay(3000);
Console.WriteLine(DateTime.Now);
});
}

955 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 18:29:36.15 ID:hhClfuXq0.net]
>>940
ありがとうございます!
ちなみにテキストボックスなどに内容を出力することって出来ますでしょうか?
これらの処理をりようして
TextBox1.Textに内容を出力する処理をそれぞれのタスクに追加すると
エラーになってしまうようです。
お手数おかけしますがよろしくおねがいします。

956 名前:デフォルトの名無しさん (ワッチョイ 8f13-0LB+) mailto:sage [2016/12/24(土) 18:40:47.89 ID:cCwHGfM40.net]
>>941
>>928

957 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 18:41:21.02 ID:hhClfuXq0.net]
これだとやっぱり3秒毎に1処理実行されるだけなんですね・・・

async Task<string> TaskTest()
{
await Task.Delay(3000);
return "a";
}

private async void button1_Click(object sender, EventArgs e)
{
while (true)
{
TextBox1.Text += await TaskTest();
Application.DoEvents();
}
}

958 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 18:51:54.77 ID:hhClfuXq0.net]
>>942
ありがとうございます。
ただやっぱり並列にはなりませんでした・・・
なにがまちがってるんでしょうか・・・?
while (true)
{
await Task.Factory.StartNew(() =>
{
Invoke((MethodInvoker)(() =>
{
Thread.Sleep(3000);
TextBox1.Text += "a";
}));
});
}

959 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/24(土) 19:04:14.66 ID:iV5eYun00.net]
while(true)で無限にTaskを作るとOutOfMemoryExceptionになるから
Parallel使って10個ずつくらいに制限して、
TextBoxへの書き込みにはProgressを使うとこんな感じ

private void button1_Click_1(object sender, EventArgs e)
{
 IProgress<string> progress = new Progress<string>(text =>
 {
  TextBox1.Text += text;
 });
 Task.Run(() =>
 {
  while (true)
  {
   Parallel.For(0, 10, i =>
   {
    System.Threading.Thread.Sleep(3000);
    progress.Report("a");
   });
  }
 });
}

960 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 19:13:46.70 ID:hhClfuXq0.net]
ありがとうございました!大変助かりました!
お手数おかけして申し訳ありませんでした



961 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 20:17:57.50 ID:hhClfuXq0.net]
>>945
おかげさまで仕事がはかどりました
改めてありがとうございました。
ただ、ソースをよく読んでみると
Parallel.Forというのがあるので
Task使わなくても問題なさそうですね
(C#歴は1ヶ月程度なので違ってるかもしれませんが)

962 名前:デフォルトの名無しさん (ブーイモ MM3f-TACi) mailto:sage [2016/12/24(土) 20:23:51.87 ID:Jrqe8RRjM.net]
>>945
Progressなんてクラスが居たのね。こいつは捗りそう。

963 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/24(土) 20:25:53.45 ID:iV5eYun00.net]
>>947
Parallelは完了まで自スレッドをロックしてしまう
(つまり、並列ではあるけど非同期ではない)ので
UIスレッドをフリーズさせないためにはTaskとの併用が必要

964 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 20:51:06.97 ID:hhClfuXq0.net]
なるほど。ありがとうございました!

965 名前:デフォルトの名無しさん (アウアウカー Sa3f-qibb) [2016/12/24(土) 21:56:05.36 ID:AwL0H4eka.net]
おまえら割とマジですげぇわ

966 名前:デフォルトの名無しさん (ワッチョイ ab3c-g1cW) mailto:sage [2016/12/24(土) 22:01:11.57 ID:LTc/wMbf0.net]
俺は初心者だからかもしれんが
ここに世界中の天才が集まってるのかとと思うわ

967 名前:デフォルトの名無しさん (ワッチョイ bfcb-oYiN) mailto:sage [2016/12/25(日) 19:11:38.15 ID:liHUAEex0.net]
かわいい奴

968 名前:デフォルトの名無しさん (ワッチョイ e33c-IeCC) [2016/12/26(月) 00:25:16.13 ID:0WzKTwBd0.net]
時刻だけ比較したいんですがそんなことってできます?
例えば現在時刻が13:30以降の時のみtrueを返すような時ってどうすればいいですか?

969 名前:デフォルトの名無しさん (ワッチョイ 8f13-7bim) mailto:sage [2016/12/26(月) 00:35:44.64 ID:TE+B1lbE0.net]
>>954
これでどう?

var now = DateTime.Now;
var time = new DateTime(now.Year, now.Month, now.Day, 13, 30, 0);
return time <= now;

970 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/26(月) 00:46:35.20 ID:+7V9eNZX0.net]
こんなのも
TimeSpan referenceTime = new TimeSpan(13, 30, 0);
return DateTime.Now.TimeOfDay >= referenceTime;



971 名前:デフォルトの名無しさん (ワッチョイ 3bc9-DLF2) mailto:sage [2016/12/26(月) 00:54:59.31 ID:AQNPYjTP0.net]
単に
((DateTime.Now.Hour == 13 && DateTime.Now.Minute >= 30) || DateTime.Now.Hour > 13)
じゃいかんのか

972 名前:デフォルトの名無しさん (ワッチョイ e33c-IeCC) [2016/12/26(月) 01:08:14.89 ID:0WzKTwBd0.net]
ありがとうございました!

973 名前:デフォルトの名無しさん (ワッチョイ 379d-i5Qz) mailto:sage [2016/12/26(月) 02:19:47.23 ID:CIVIxVtu0.net]
今回のケースに限ったことじゃないんだけど、
1回のif文でNowを複数回参照して、Nowが全部同じ値だという保証はあるのかな?

974 名前:デフォルトの名無しさん (ワッチョイ 8f13-0LB+) mailto:sage [2016/12/26(月) 02:47:24.74 ID:TE+B1lbE0.net]
>>959
ないよ

975 名前:デフォルトの名無しさん (ブーイモ MM5f-TACi) mailto:sage [2016/12/26(月) 12:35:23.91 ID:cti1899cM.net]
13:59:59から14:00:00の変わり目だけに起こるバグとか、怖いっす

976 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/26(月) 13:03:53.01 ID:Bu04EBir0.net]
どうしても気になるなら、先に分を比較すればバグることはない

977 名前:デフォルトの名無しさん (ワッチョイ 8f42-lvdU) mailto:sage [2016/12/26(月) 14:07:19.56 ID:UJaB3lV20.net]
そんな対処せずに1回の比較で終わるようにしときゃいいやん

978 名前:デフォルトの名無しさん (スフッ Sddf-0LB+) mailto:sage [2016/12/26(月) 14:13:47.94 ID:qgo+g5wcd.net]
だから>>955みたいに先にNowを保存すればいいだろ
ウダウダ悩んでるおまえ等が信じられんわw

979 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 14:18:36.34 ID:1bhMGPyja.net]
どうでもいいけど、そもそも「現在時刻が13:30以降の時のみtrue」って要件はかなりあいまいだね。

980 名前:デフォルトの名無しさん (JP 0Hef-g1cW) mailto:sage [2016/12/26(月) 14:24:40.84 ID:E1wmt4rJH.net]
23:59:59までtrueでいいんかとか
PCの内蔵タイマーの時刻でいいんかとか
タイムゾーンはどうなんかとか



981 名前:デフォルトの名無しさん (ワッチョイ 837b-DNID) mailto:sage [2016/12/26(月) 14:38:43.61 ID:G2ewta8d0.net]
先生スレッドのカルチャー変えても比較出来るんですか

982 名前:デフォルトの名無しさん (ワッチョイ 63a4-zpPG) [2016/12/26(月) 17:15:25.72 ID:faSaUmiF0.net]
TextBox1とTexBox2(非表示)があります。
TextBox1にフォーカスが移動したら、TextBox2を表示してそちらにフォーカスを移動します。
TextBox2から別のところにフォーカスが移動したらTextBox2を非表示にしたいです。

TextBox1のEnter時に

TextBox2.Visible = true;
TextBox2.Select();

と書き、TextBox2のLeave時に

TextBox2.Visible = false;

と書きました。実行してみるとTextBox2が点滅して消えてしまいます。
調べてみるとLeave時の処理が3回実行されているようで、さらに
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.gotfocus(v=vs.110).aspx
Doing so can cause your application or the operating system to stop responding.
フォーカスの設定をするなと書いてあるようです。

最悪、透明なボタンでも設置して無理矢理実現するしかないのかなと考えていますが、
フォーカス取得時に別のテキストボックスに移動することはできませんか?

983 名前:デフォルトの名無しさん (ワッチョイ e30d-agOw) mailto:sage [2016/12/26(月) 17:20:02.90 ID:uTypYcaG0.net]
WPFは駄目って言ってる奴いるけど、じゃあ何で作るんだ?
まさか制限盛りだくさんのUWPとか言わないよな?

984 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 17:31:38.03 ID:1bhMGPyja.net]
>>968
なぜそんなアホなことをしたいの?

たぶん実現したい何らかの使用に対して君が思いついた方法がそれなんだどうけど
どう考えてもその方法は間違ってるから最終的にどういう仕様を実現したいかを
書いた方がいいと思うよ

985 名前:デフォルトの名無しさん (ワッチョイ 0fba-i5Qz) mailto:sage [2016/12/26(月) 17:31:53.92 ID:ejLfwHLb0.net]
そういう連中、WPFを知ってて言ってるわけじゃないもんな。
追及してやると主張が C#駄目 Windows駄目 デスクトップアプリ駄目 のどれかに変わる。

986 名前:デフォルトの名無しさん (ワッチョイ abc0-g1cW) mailto:sage [2016/12/26(月) 17:36:34.58 ID:BQIvjtl90.net]
>>971
今その条件で作れと言われたら迷わずWPF選びたいけど、俺社環だとForm選ばざるを得ないのが辛い

987 名前:デフォルトの名無しさん (ワッチョイ c33c-v5hB) mailto:sage [2016/12/26(月) 17:44:50.42 ID:bXBxzWjM0.net]
>俺社環だと
あるある

988 名前:デフォルトの名無しさん (ワッチョイ 63a4-zpPG) [2016/12/26(月) 17:46:33.22 ID:faSaUmiF0.net]
>>970
郵便番号を入力する部分のテキストボックスを7つに分けたのですが、
入力時には1つにしたほうが入力しやすいだろうと思いました。
LabelにするとTabでフォーカスを受け取れないので連続で入力しにくいかなと思ったり、
そもそも郵便番号をわざわざ分けているのは、入力フォームを画像にして裏に貼り、
入力イメージが掴めるようにしようかなと思った次第ですが、別のテキストボックスに
入力させてそれをプレビューしちゃだめというわけでもないので出来ないのであれば
入力とプレビューをわけようと思いますが、テキストボックスがフォーカスを受け取ったら
バトンパスのように他のテキストボックスに移動するというのは出来ないのかなと思って質問しました。

989 名前:デフォルトの名無しさん (ワッチョイ c33c-v5hB) mailto:sage [2016/12/26(月) 17:56:43.50 ID:bXBxzWjM0.net]
>郵便番号を入力する部分のテキストボックスを7つに分けたのですが
この時点でおかしいだろ(困惑)

990 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/26(月) 18:15:12.11 ID:qJ+YWzR60.net]
入力しようとしてテキストボックスを選んだら勝手に次のテキストボックスに飛ぶって
嫌がらせにしかならない気が…(どうやって入力してもらうの…)

郵便番号の枠のイメージで1文字ずつの入力にしたいというのなら
1文字しか入力できないテキストボックスを7つ配置して、
入力されたら次に飛ぶ、文字が消されたら前に飛ぶ、みたいに作るのがいいのでは



991 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 18:28:31.17 ID:1bhMGPyja.net]
>>974
ハガキや封書の〒記入欄の見た目に似せたいってことかもしれんけど、
そんなくだらない仕様を諦めるわけにいかないの?

ありがた迷惑なだけでメリットないと思うけど

郵便番号を入力するUIなんて割と多いけどそんなヘンテコな仕様見たことないよw

992 名前:デフォルトの名無しさん (ワッチョイ d7ce-agOw) mailto:sage [2016/12/26(月) 19:05:18.45 ID:/iMD3zus0.net]
話を一般化すると、プロダクトID入力画面みたいに
指定桁だけ入力し終わったら次のテキストボックスに移動したいのかな
TextChangedとSelectNextControlかな

993 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/26(月) 19:38:22.72 ID:Bu04EBir0.net]
>>969
Cのライブラリ使ったりDataGridが何とかなりそうなら、UWPも悪くない選択肢だよ
コントロールも標準で沢山ついてくるしtoolkitも充実している

994 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/26(月) 19:43:38.71 ID:Bu04EBir0.net]
郵便番号程度なら、パネルから派生させたフルスクラッチでコントロール作っても大したことない気がするな
これからも使いそうなら作っちまえよ

995 名前:デフォルトの名無しさん (ワッチョイ 5394-4hBO) mailto:sage [2016/12/26(月) 19:52:33.70 ID:5v43Qgq70.net]
>TextBox1にフォーカスが移動したら、TextBox2を表示してそちらにフォーカスを移動します。
>TextBox2から別のところにフォーカスが移動したらTextBox2を非表示にしたいです。
というのは、入力しようとすると別途用意された入力フォームが開く、みたいなUIを模したいのかなぁ

とりあえず >>968 はこれで実現できる
private void TextBox1_Enter(object sender, EventArgs e)
{
 new Task(() =>
 {
  TextBox2.Visible = true;
  TextBox2.Select();
 })
 .Start(TaskScheduler.FromCurrentSynchronizationContext());
}

フォーカスイベントの連鎖から独立した別スレッドからUIスレッドに指示を出すので
>set focus from within the Enter, GotFocus, Leave, LostFocus, Validating, or Validated event handlers
には当たらないと思う

996 名前:デフォルトの名無しさん (JP 0Hcf-Qa15) mailto:sage [2016/12/26(月) 20:00:08.21 ID:K98gijPEH.net]
役所が1セルに1文字しか入力しちゃいけないExcelフォーマット量産してるって
話を思い出した

997 名前:デフォルトの名無しさん (ワッチョイ 0fba-i5Qz) mailto:sage [2016/12/26(月) 20:14:39.87 ID:ejLfwHLb0.net]
UWPは配布が一番のネックだな。
プログラミング需要のある程度の割合を企業内ユースが占めていると思うけど、
そういう用途じゃわざわざUWPなんて使わんよな。せいぜいWinRT。
さらに、今の時点だとまだWindows7を無視できないから結局FormsかWPFってところじゃない?

998 名前:デフォルトの名無しさん (ワッチョイ 9faf-pRKv) mailto:sage [2016/12/26(月) 21:10:56.35 ID:yrQs6qFs0.net]
ストア配布なら企業内以上に一般も難しそう
欲しいソフトがあるときはWindowsはストアで探すよりも検索してベクターなり窓の社なりから探してくる人が多いし

999 名前:デフォルトの名無しさん (ワッチョイ c33c-v5hB) mailto:sage [2016/12/26(月) 21:25:19.92 ID:bXBxzWjM0.net]
Winはそうよね
海外はどうか知らんが

1000 名前:デフォルトの名無しさん (ワッチョイ e30d-agOw) mailto:sage [2016/12/26(月) 22:27:21.69 ID:uTypYcaG0.net]
じゃあ、>>756>>931は間違ってるということでいいんですね



1001 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 23:49:51.33 ID:nUdM+QKma.net]
その手の問題は最終的には自分で答えを出すしかないでしょ。

個人的には2chくんだりで「いつも誰かと戦ってる」タイプの人のいうことは真に受けない方がいいと思うけどねw
それは彼がそんなくだらないことをするのか、その動機を考えれば自明だよね

俺個人としてはこの記事(すでに古い記事だけど)のタイトルがすべてだと思う
https://www.infoq.com/jp/articles/Win8-LOB-Options

Windows Formが終わってるのと同程度にはWPFも終わってる
かといってプランCも存在しない

1002 名前:968 (ワッチョイ 736e-gQz9) [2016/12/26(月) 23:57:39.10 ID:Z8alzA0s0.net]
そこまでひどいUIとは思いませんでした。
おとなしく入力とプレビューを分けるようにします。
>>981は明日にでも試してみようと思います。

1003 名前:デフォルトの名無しさん (ワッチョイ 8f7b-YyGO) mailto:sage [2016/12/27(火) 01:33:51.84 ID:SOm/Nt9E0.net]
うめ

1004 名前:デフォルトの名無しさん (ワッチョイ 5394-4hBO) mailto:sage [2016/12/27(火) 02:10:31.58 ID:HrGPkQcW0.net]
次スレ
ふらっと C#,C♯,C#(初心者用) Part126
echo.2ch.net/test/read.cgi/tech/1482772061/

1005 名前:デフォルトの名無しさん (ワッチョイ dfcb-vcjl) mailto:sage [2016/12/27(火) 02:44:38.87 ID:Ue0MWe8H0.net]
twitterのタイムラインのようなものを作ろうと思っているのですがどのようなコントロールを使えばいいのかがわかりません
どなたか私に教えていただけないでしょうか?
よろしくお願いします

1006 名前:デフォルトの名無しさん (ワッチョイ 73dc-PUH/) mailto:sage [2016/12/27(火) 07:15:38.67 ID:CsLSwhzy0.net]
WebBrowser

1007 名前:デフォルトの名無しさん (ワッチョイ 4791-t+3N) mailto:sage [2016/12/27(火) 14:02:51.16 ID:DjR8onEe0.net]
datagridviewでセルに何か書き込まれたときにそこが真ん中になるよう自動でスクロールしたいのですが
どうすればいいですか?

1008 名前:デフォルトの名無しさん (ワッチョイ dfcb-vcjl) mailto:sage [2016/12/27(火) 14:19:39.59 ID:Ue0MWe8H0.net]
>>992
ご回答ありがとうございます
私の言葉が足らなかったようですみません
twitterのタイムラインをwebbrowserで表示するのではなくtwitterのAPIを使いツイートの情報を受け取りそれらをtwitterのタイムライン風に表示したいと考えております

1009 名前:デフォルトの名無しさん (ワッチョイ 2b94-4hBO) mailto:sage [2016/12/27(火) 14:40:14.00 ID:+TUrL10Q0.net]
>>993
CurrentCellDirtyStateChangedかCellValueChangedイベントハンドラで

int offset = dataGridView.Rows.GetRowCount(DataGridViewElementStates.Displayed) / 2;
int current = dataGridView.CurrentCell.RowIndex;
dataGridView.FirstDisplayedScrollingRowIndex = Math.Max(0, current - offset);

スクロール量はoffsetの値に+-して調整

1010 名前:デフォルトの名無しさん (ワッチョイ 4791-t+3N) mailto:sage [2016/12/27(火) 16:50:37.42 ID:DjR8onEe0.net]
>>995
なるほどオフセットと現在の位置で動かすのですか
思い通りにできましたありがとうございます



1011 名前:デフォルトの名無しさん (ワッチョイ bf4c-hHku) mailto:sage [2016/12/27(火) 17:06:23.75 ID:8I0GRdm60.net]
うめ

1012 名前:デフォルトの名無しさん (ワッチョイ 8f7b-YyGO) mailto:sage [2016/12/27(火) 23:13:31.51 ID:YmRmCI2N0.net]


1013 名前:デフォルトの名無しさん (ワッチョイ 4f17-YQ1g) mailto:sage [2016/12/27(火) 23:58:49.99 ID:tR2ogx270.net]


1014 名前:デフォルトの名無しさん (ワッチョイ 379d-i5Qz) mailto:sage [2016/12/28(水) 00:23:32.44 ID:gZZUj22C0.net]
1000ならWinForms大復活、2017以降は主力になる

1015 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<313KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef