[表示 : 全て 最新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

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