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


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

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



1 名前:デフォルトの名無しさん [2017/11/07(火) 21:11:25.20 ID:LeQqgpmT0.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part132
mevius.5ch.net/test/read.cgi/tech/1507543256/

■関連スレ
C#, C♯, C#相談室 Part95
mevius.5ch.net/test/read.cgi/tech/1508180530/

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

■情報源https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

520 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 15:16:56.52 ID:Km51pzYd0.net]
真面目に考えるとデータベースに更新分Insertしてからあらかじめ作ってあるビューをSelectするだけ
GroupBYや集計はDBでやった方が楽だしこっちでは表示件数や順序くらいしかいじらない
データベースといってもローカル鯖や組み込みもある、適材適所

521 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 17:32:51.55 ID:VYtKuwzgM.net]
インサート前にソートとかボトルネックだよね

522 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 18:05:42.37 ID:g1yHwUG3M.net]
sources
.GroupBy(s => new { 名前, テスト回数 })
.Select(g => new {
g.Key.名前,
g.Key.テスト回数,
時間 = g.Max(s => s.時間)
});

悩むところねえなぁ

523 名前:デフォルトの名無しさん [2017/11/17(金) 18:29:28.97 ID:ZBvifIa80.net]
汎用性低いな。

524 名前:デフォルトの名無しさん [2017/11/17(金) 18:32:42.23 ID:ZBvifIa80.net]
ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList()

ワシのが1番じゃろ。

525 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 18:42:45.87 ID:1r1wVT3lM.net]
よくみたら仕様ちゃうやん自分…

src.GroupBy(s => s.名前)
.SelectMany(g => g.Where(t => t.時間 == g.Max(u => u.時間));

これが王道の正解な

526 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 18:50:16.49 ID:1r1wVT3lM.net]
こっちのが速いかな

sec.ToLookup(s => s.名前)
.Select(g => new { g, m = g.Max(t => t.時間)
.SelectMany(p => p.g.Where(u => u.時間 == p.m);

527 名前:デフォルトの名無しさん [2017/11/17(金) 18:50:30.24 ID:ZBvifIa80.net]
そういやラムダ式の中の命名は超シンプルでいいんだったな。
>>518 最大値を探すためにループ、その値を持ち主をまた探すためにループってなんかキモくね?それが王道なのか。

528 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:36:01.87 ID:15/bjs8Fd.net]
>>482
まず時間と名前でグループ化
時間, 名前, テスト回数
2017/1/1, A氏, 3,4
2017/1/1, B氏, 1,2
2017/2/1, A氏, 1,2
2017/2/1, B氏, 1,2
2017/3/1, A氏, 1,2,3

あとは日付けでソートして名前でDistinctするかな



529 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:40:08.46 ID:hFmoO+PyM.net]
>>520
ループ?
SelectManyはSQLで言えば結合みたいなもの
LinqのJoinだとこんな感じかな

src.GroupBy(s => s.名前)
.Join(src,
g => new { 名前 = g.Key, 時間 = g.Max(t => t.時間) },
u => new { u.名前, u.時間 },
(g, u) => u);

SelectManyの方がわかりやすいな

530 名前:デフォルトの名無しさん [2017/11/17(金) 19:46:57.67 ID:ZBvifIa80.net]
Maxを探すためにループ、その持ち主また探すためにWhereでループ

531 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:26:05.65 ID:/4Y2zvAi0.net]
max ← 持ち主

こういう方向のリンクなら、max を探してから、持ち主も探さなきゃいけないけど、
逆方向のリンクなら、すぐ

532 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:34:11.03 ID:45Grbd2f0.net]
名前、日付で降順ソートして名前ごとの最新取るだけでなげーな

533 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:40:49.52 ID:2lBbqhr3M.net]
>>525
それ結局最後まで舐めないと全ての名前が分からないから何の意味もないぞ

534 名前:デフォルトの名無しさん [2017/11/17(金) 21:20:38.75 ID:Xkp76caL0.net]
LINQって実は裏側でforeachで回してるってホント?

535 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 21:41:36.29 ID:SHrICtEWr.net]
>>527
ループは一回

536 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 21:50:29.21 ID:/4Y2zvAi0.net]
例えば、100個の中から、1個を探すのは、全(線形)探索 O(n) しかできない

全データにインデックス・ハッシュがついていれば、O(1)だが、
ソートするには、全探索する必要がある

DB みたいに、B-tree でソートされているのなら、O(log n)



537 名前:uアルゴリズムと計算量」を勉強して []
[ここ壊れてます]

538 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 21:53:48.98 ID:45Grbd2f0.net]
>>529
すればいいじゃん
何がしたいの?
速度アップしたいの?



539 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 22:28:51.51 ID:fmtM/py00.net]
こんなにレスが付いてるとは思わなかった。
無事満足いく結果がとれるようになりました。
試したことないのもあって勉強になりましたありがとうございます。

540 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 22:41:16.10 ID:bpYBjcB50.net]
>>527
記述によっては複数回どころか毎回ループもあり得るから注意な

541 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 23:53:01.59 ID:f2B03iH5a.net]
foreach版も作ったけど
一回回すだけで辞書はできるので計算量は減るし再利用にも便利

542 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:22:17.61 ID:dA2WGfe00.net]
DBに接続して操作するクラスを作ってるのですが、コンストラクタでDBに接続してデストラクタとDisposeで切断処理を書こうと思っています
基本的にはこのような書き方でいいのでしょうか?
各処理のメソッドで接続切断を仕込むのもあると思うのですが連続で処理する場合たとパフォーマンスの低下に繋がると思ったので気になりました

543 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:26:06.53 ID:uyqqFOTJ0.net]
これEXISTS使うSQLの定番問題なんでその定番SQLが生成されるようにAnyするのが最速
そう、EFならね

544 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:33:21.33 ID:Q2wZVPR60.net]
>>534
途中でLANケーブル抜いたらどういう動作するの?

545 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:34:15.67 ID:Q2wZVPR60.net]
そしてすぐに指す!

546 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:37:14.30 ID:dA2WGfe00.net]
>>536
DBはローカルなんでそこは考えてませんでした
途中でDBとの接続切れたらエラー返すぐらいしか考えてないですね
そこでクラス抜けるようにするかどうかは分かりませんがデストラクタかdisposeに入ると思います
まだ実装してませんが

547 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:37:59.01 ID:dA2WGfe00.net]
>>535
接続部分はAnyでまとめた文打ち込む前後だけ開くってことでしょうか?

548 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 02:05:22.67 ID:uyqqFOTJ0.net]
>>539
悪いが俺のレスは質問と関係ないぞ
ちなみに各DBのコネクションクラスは質問通りのIDisposableな自動Close設計で
連続する処理する場合はコネクションを開いたまま使いまわすのが普通
SQLite.NETが参考と言うかやりたいことそのままじゃないか?



549 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 02:09:22.40 ID:dA2WGfe00.net]
>>540
ありがとうございます!

550 名前:デフォルトの名無しさん [2017/11/18(土) 02:43:03.59 ID:NMU9eY0n0.net]
>>540
ありがとうございます!

551 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 16:41:16.80 ID:S0Dl2HXu0.net]
>>540
ありがとうございます!

552 名前:デフォルトの名無しさん [2017/11/18(土) 17:07:33.62 ID:18CT9AkR0.net]
https://ideone.com/a5csSX

たくさんボタンがあって、ボタンを押すとそれに対応した画像を保存するプログラムなのですが
ひとつのsaveFileDialogを使いまわすにはどうすればいいでしょうか
上のコードのpictureBox_1、pictureBox_2が引数になる様にしたいのですが

553 名前:デフォルトの名無しさん [2017/11/18(土) 17:30:37.37 ID:mVpmRSdA6.net]
>>544
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// 画像保存処理
}

554 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 17:33:50.19 ID:v7G/T0vB0.net]
>>544
ボタンで分岐ならすぐできる
private void button_Click(object sender, EventArgs e)
{
 SaveFileDialog saveFileDialog1 = new SaveFileDialog();
if (saveFileDialog1.ShowDialog() != DialogResult.OK)) return;
if (sender==button1)
{
  pictureBox_1.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
}
else if (sender==button2)
{
}
}

555 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 18:31:43.88 ID:+tDuSBLG0.net]
>>544
ボタン事に対応したピクチャーボックスがあるならTagに設定しておくと便利だよ
button1.Tag=pictureBox_1;ってしといて
((PictureBox)(((Button)sender).Tag)).Imageって感じで画像を取得できる

556 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 19:04:31.90 ID:yU1kJYivM.net]
void RegisterClickEvent(Button b, PictureBox p)
{
var d = new SaveFileDialog();
b.Click += (s, e) => {
if (d.ShowDialog() == DialogResult.OK) {
p.Image.Save(d.FileName, ...);
}
}
}

// on load
var pairs = new [] {
new { b = button_1, p = pbox_1 },
new { b = button_2, p = pbox_2 },
...
};

foreach(var pair in pairs)
RegisterClickEvent(pair.b, pair.p);

557 名前:デフォルトの名無しさん [2017/11/18(土) 19:27:10.06 ID:18CT9AkR0.net]
みなさん有難う御座います。
やってみます。

558 名前:デフォルトの名無しさん [2017/11/18(土) 19:30:23.03 ID:NMU9eY0n0.net]
こんなところにもちゃっかり匿名クラスw



559 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:21:22.01 ID:6NKrq56ga.net]
>>544
まずSaveFileDialogのFileOKイベントを使ってるのがまずいくない?
これだと結局FileOKのイベントハンドラに引き渡すためだけにImageかパスをフィールドに持つ必要が出てくる

private string AskSaveNameFromUser()
{
  var sfd = new SaveFileDialog();
  sfd.DefaultExt = "bmp";
  sfd.Filter = "BMP形式|*.bmp";
  if (sfd.ShowDialog(this) == DialogResult.OK)
  {
    return sfd.FileName;
  }
  return null;
}

こんな風にユーザーから保存名を貰ってくるメソッドを作った方がいいんじゃない?

560 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:22:04.37 ID:6NKrq56ga.net]
その上で
private bool TrySaveImage(Image img)
{
  var savePath = AskSaveNameFromUser();
  if (savePath == null) return false;
  try
  {
    img.Save(savePath, ImageFormat.Bmp);
  }
  catch (Exception)
  {

    return false;
  }
  return true;    
}

こんなメソッドを用意すれば、後はラムダ式使ってボタンのclickイベントにこれを紐づけするだけ
button1.Click += (s, e) => TrySaveImage(pictureBox1.Image);

561 名前:デフォルトの名無しさん [2017/11/18(土) 20:36:23.54 ID:NMU9eY0n0.net]
ボタン押した時に保存したいんだからClickイベントハンドラの中に記述すればいいだろ。

562 名前:デフォルトの名無しさん [2017/11/18(土) 20:42:16.49 ID:2DwFpZ7T0.net]
フォームで画像を表示したところ、それを閉じなければコンソールに処理が戻らないプログラムになってしまいました
同時に動かす方法があれば教えていただきたいです

563 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:46:06.00 ID:v7G/T0vB0.net]
>>554
コンソールって何を指しているの?
フォームに画像表示(パネルでもPictureboxでも)して反応が無くなるってことは普通は無い

564 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:46:26.41 ID:9PzaXhXFM.net]
START をコマンド名の前に書いても?

とエスパー回答

565 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:48:58.44 ID:v7G/T0vB0.net]
モーダルフォームで表示しているのならモードレスフォームにして表示
https://dobon.net/vb/dotnet/form/showform.html

566 名前:デフォルトの名無しさん [2017/11/18(土) 20:53:01.78 ID:NMU9eY0n0.net]
>>554
Threadを使おう

var thread = new System.Threading.Thread(
() => {
System.Windows.Forms.Application.Run(form);
});
thread.Start();

567 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:57:25.99 ID:6NKrq56ga.net]
一つのプロセスで複数のUIスレッド作って大丈夫なんだっけ?

568 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:01:09.80 ID:GCI+mPsu0.net]
すみません、上手く説明できないと思うので一応コードも載せます

やりたいことはコマンドプロンプト上で流れる処理の途中で画像を呼び出すことです
その際、処理が止まってしまいます

var form = new System.Windows.Forms.Form();
var pb = new System.Windows.Forms.PictureBox();
pb.Image = System.Drawing.Image.FromFile(imgpath);
pb.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
form.Controls.Add(



569 名前:pb);
System.Windows.Forms.Application.Run(form);
[]
[ここ壊れてます]

570 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:02:37.60 ID:GCI+mPsu0.net]
途中で送信してしまいました・・
頂いた返事から色々と試してみようと思います!

571 名前:デフォルトの名無しさん [2017/11/18(土) 21:03:01.96 ID:NMU9eY0n0.net]
>>560

var form = new System.Windows.Forms.Form();
var pb = new System.Windows.Forms.PictureBox();
pb.Image = System.Drawing.Image.FromFile(imgpath);
pb.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
form.Controls.Add(pb);

var thread = new System.Threading.Thread(
() => {
System.Windows.Forms.Application.Run(form);
});
thread.Start();

572 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:04:16.09 ID:v7G/T0vB0.net]
>>560
Application.Run(form);で止まるなそれは
フォームのインスタンス作ってShow()できないの?

573 名前:デフォルトの名無しさん [2017/11/18(土) 21:06:38.70 ID:NMU9eY0n0.net]
Application.Runをしないとメッセージ来ねえからShowしても一瞬で消えるだろ。

574 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:07:12.07 ID:v7G/T0vB0.net]
じゃあ別スレッドでやるしかないのか

575 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:19:47.80 ID:GCI+mPsu0.net]
>>562
並列処理で無事起動できました!
イカのような記号が何を意味するか分かりませんが
いい機会なのでスレッドも勉強してみます

>>563
なぜApplication.Run(form)で止まってしまうのでしょうか?
フォームに制御が移ってしまっているということですかね

576 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:23:57.35 ID:D1AcCkIgr.net]
Task使え!

577 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:26:29.84 ID:v7G/T0vB0.net]
>>560
その部分全部を別クラスにしてインスタンスを作って呼び出せば動いた
実際に呼び出す部分は
formtest f = new formtest();
f.formshow();
を入れておいて
別クラスで例えば
class formtest:Form
{
public formtest()
{ }
public void formshow()
{
   var form = new System.Windows.Forms.Form();
   var pb = new System.Windows.Forms.PictureBox();
   pb.Image = System.Drawing.Image.FromFile(imgpath);
   pb.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
   form.Controls.Add(pb);
   System.Windows.Forms.Application.Run(form);
}
}
を作っておく
>>566
ああちょっと遅かったか

578 名前:.>>568 mailto:sage [2017/11/18(土) 21:29:35.82 ID:v7G/T0vB0.net]
ごめんこれ無しでw>>568



579 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:36:41.17 ID:GCI+mPsu0.net]
>>568
丁寧に教えてもらいありがとうございます
どの実現方法も勉強になりますし、解がすぐに思い浮かびコードにできるのは憧れます

580 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:37:46.34 ID:v7G/T0vB0.net]
>>570
すいません手順間違えて動くと勘違いしていましたw
結局同じことなので参考にしないでくださいw

581 名前:デフォルトの名無しさん [2017/11/18(土) 21:50:58.81 ID:AvOAupbn0.net]
変数がNULLだったら、ってこれが一番シンプル?
a == null ? 0 : 1;

582 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:55:24.54 ID:GCI+mPsu0.net]
>>571
そうでしたか
検証までしてもらい申し訳ないです

583 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:56:43.57 ID:kl8n9Pj50.net]
>>572
つ ?? 演算子

584 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 22:13:06.30 ID:ScUjvH+z0.net]
>>574
>>572の式書ける?

585 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 22:17:16.38 ID:kl8n9Pj50.net]
>>575
書けない。nullの場合の値設定のみ。

586 名前:デフォルトの名無しさん [2017/11/18(土) 22:17:39.50 ID:AvOAupbn0.net]
NULLじゃなかった場合の処理が要らない場合は>>574がベスト?

587 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 22:20:13.27 ID:w1kiMD3J0.net]
a == null ? 0 : a;
a ?? 0;
は同じ内容になる

588 名前:デフォルトの名無しさん [2017/11/18(土) 22:21:15.58 ID:AvOAupbn0.net]
>>578
おけ
さんきゅ



589 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 22:47:38.85 ID:kl8n9Pj50.net]
ぬるぽ

590 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 23:05:35.11 ID:VG3ktzhs0.net]
Unity+C#の質問になっちゃいますが、
=========================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Ball_Ctrl : MonoBehaviour
{

public float speed = 50.0f;

void Update ()
{

Vector3 test = new Vector3();

test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime;

transform.Rotate( test );

  }
}
==========================================
これをキューブ型の3Dオブジェクトにぶち込むと上下キーで回転するんだけど、
これに回転制限を設けたい場合どうすればいいか教えてください!

591 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 23:23:09.15 ID:Wsch61C00.net]
>>581
とりあえずtest.xの値をリアルタイムで確認してみるとか

ちゃんと制御できてるのがいいんだろうけどな

592 名前:デフォルトの名無しさん [2017/11/18(土) 23:30:02.55 ID:NMU9eY0n0.net]
>>581


test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime;

// minAngle〜maxAngleの間に制限
var minAngle=20f;
var maxAngle=160f;
test.x=test.x<minAngle?minAngle:test.x;
test.x=test.x>maxAngle?maxAngle:test.x;

593 名前:581 mailto:sage [2017/11/19(日) 00:15:02.15 ID:+rKwXo5m0.net]
>>582
>>583
この説明受けてもまだチンプンカンプンで申し訳ないのですが、

実際に角度を変えている「transform.Rotate」ってのが
「現在の角度+test.x」って事だから、

if文で、
もし現在の角度がmin°〜max°以内の範囲ならば
test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime;
って事ですかね?

現在値なら
genzaiti = this.transform.eulerAngles.x;
で現在の角度を取得出来るんですが、

なんか上手くいかない・・・

>>583

test.x=test.x<minAngle?minAngle:test.x;
test.x=test.x>maxAngle?maxAngle:test.x;
の記述も意味がよく分からないです・・・

594 名前:デフォルトの名無しさん [2017/11/19(日) 00:22:50.41 ID:5IbV37Zg0.net]
genzaiti = this.transform.eulerAngles.x;
if(genzaiti>=min && genzaiti<=max) {
test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime;
}


こうしてもうまくいかないってこと?

595 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 00:46:45.14 ID:nVHpanKs0.net]
>>584
ああ、transformって姿勢行列か
だったらtransform→angleの変換は期待しない方がいい
angle→transformは一方通行として
現在のangleを保持して
毎回transformをangleから作る感じで

596 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 00:50:00.47 ID:+rKwXo5m0.net]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Ball_Ctrl : MonoBehaviour
{
public float speed = 50.0f;
public float genzaiti;
public float min = -15.0f;
public float max = 15.0f;

void Update ()
{

Vector3 test = new Vector3();
genzaiti = this.transform.eulerAngles.x;

if (genzaiti >= min && genzaiti <= max)
{
test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime;
}
transform.Rotate( test );

  }
}
====================================
教えて頂き、こうしてみたんですが
挙動がおかしいです

if文的に
↑をおしてmaxを超えるとキー入力を受け付けなくなるのは理解出来るんですが、
↓キーをおすとgenzaitiが359とか謎の数値になるのが理解できない・・・

597 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 01:17:17.13 ID:nVHpanKs0.net]
>>587
359=-1やんけ?

598 名前:デフォルトの名無しさん [2017/11/19(日) 07:08:15.26 ID:5IbV37Zg0.net]
>>587
if (genzaiti >= min && genzaiti <= max)

if (genzaiti%360 >= min && genzaiti%360 <= max)



599 名前:デフォルトの名無しさん [2017/11/19(日) 07:19:50.08 ID:5IbV37Zg0.net]
すまん、これは間違い

600 名前:デフォルトの名無しさん [2017/11/19(日) 09:53:15.87 ID:RgqRbH7C0.net]
RubyはPerlより優れていてPythonより劣っている。

601 名前:デフォルトの名無しさん [2017/11/19(日) 12:26:49.81 ID:/vA5wcYG0.net]
>>581
これで同じことやってる
https://github.com/zabaglione/ObjectRotateClamp/blob/master/ObjectRotateClamp.cs

602 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 12:35:27.94 ID:E5DVFTo40.net]
もう、自分でゴリゴリロジックを書くのが馬鹿らしくなってきた。

何処かの偉い人が言っていたが今のプログラミングは工学じゃなくて科学だと。
nugetか何処かでライブラリを拾ってきて、ひたすら実験を繰り返し、
自分の期待通りの結果が得られるかどうか判定するのみ。

603 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:13:49.58 ID:CpArH3DxM.net]
ドメインロジックもそれでできるならいいけどね
できないでしょ

604 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:23:38.14 ID:4mwAxl/ka.net]
>>593
むしろそれのどこが科学なのかとw

電気屋も建築屋もパーツや材料がスペック通りの性能を持ってるか
実験するけど、それを科学とは言わないと思うよw

605 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:31:47.12 ID:T31pkR2W0.net]
今週はずっとlockとかMoniterとかManualResetEventSlimとか
new Thread(new ThreadStartとかTask.Factory.StartNewとかTask.Run
などなど書いていて頭痛くなってきた、やり方いろいろありすぎ

606 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:34:25.58 ID:CpArH3DxM.net]
今だと

607 名前:ルとんど使わないよねその手の非同期ライブラリ []
[ここ壊れてます]

608 名前:581 mailto:sage [2017/11/19(日) 13:39:52.27 ID:+rKwXo5m0.net]
>>592
ひとまずこれをブチ込んでみたら思った通りに動いた!
よく見つけてくれましたね!ありがとうございます!

いまから一個ずつ理解するため勉強します。


他のみなさんも親切にどうもありがとうございました!
今回の件はとりあえず一件落着です。



609 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:40:17.88 ID:E5DVFTo40.net]
>>595
現代のプログラミングは科学だって言ってるのオレじゃないけどねw

ソフトウエアってパーツや材料みたいなきちんとしたスペックなんかは無いし
ソースが巨大でブラックボックス化しているので
自然科学の実験と観察のようだと皮肉って言ってるんだと思う。

610 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:42:55.02 ID:E5DVFTo40.net]
>>598 の人も実験と観察の世界だw

611 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:44:15.53 ID:Plho4dsNM.net]
>>597
いや全部使うだろ
マルチスレッドといえば、社内にParallel厨がいてうざいわ
ボトルネックになってないのに無駄に並列化するのやめろ
オーバーヘッドを増やすだけで全く速くなってないんだよ

612 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:47:26.35 ID:CpArH3DxM.net]
>>601
いや使わんよ
スレッド間の結合が強くなりすぎる

613 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:49:44.71 ID:CpArH3DxM.net]
Taskは使う
他は保守性下げるから使いたくないし使わなくても問題ない

614 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:52:13.40 ID:E5DVFTo40.net]
>>601
そういうヤツに限ってLockがなんだか分かってなくて共有リソースのロックが放置プレイ。
たまたま動いているような状態だ。

615 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:22:20.18 ID:k+hZMr200.net]
Taskは普通に使うけど、わざわざThreadを使うケースってなんかあったっけ?

616 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:32:26.34 ID:E5DVFTo40.net]
>>605
Task.Runってメインスレッドより早く終わるのが前提でしょ
メインスレッドと同時に立ち上げて上がりっぱなしのだとThread.Startでしょう。

617 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:44:54.87 ID:k+hZMr200.net]
>>606
LongRunningじゃダメなの?

618 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:55:49.72 ID:E5DVFTo40.net]
>>607
へぇ〜、スレッドプールを消費しないオプションがあったんんだ。
でも、Thread.Startを使わないでTask.Factory.StartNewに
TaskCreationOptions.LongRunningを付けて実行するメリットって何があるのだろ?



619 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:58:44.65 ID:k+hZMr200.net]
顔真っ赤やんけ・・・もういいわ

620 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:59:36.35 ID:Ay/cPvn90.net]
最近こういう下らねープライドで食い下がる奴多いな

621 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:00:15.24 ID:Ay/cPvn90.net]
もちろんid真っ赤な方に言ってるんで誤解せんといて

622 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:09:07.36 ID:E5DVFTo40.net]
>>609
真っ赤とかどうとかじゃなくて素直に聞いているだけなんだけどな。
Task.Runはお手軽だけどTask.Factory.StartNewにそれほどのメリットを感じないので聞いてみた。

623 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:54:48.98 ID:CpArH3DxM.net]
やれやれ

624 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:57:32.50 ID:0lccfPn/r.net]
過去の遺物
今はTask.Run一択

625 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:59:16.27 ID:CpArH3DxM.net]
使いたいなら使えばいいよ誰も文句は言わん
仕事で遭遇しなきゃ害はない

626 名前:デフォルトの名無しさん [2017/11/19(日) 17:17:53.28 ID:YUYxzc/40.net]
なんだこいつら...
その人は普通にThreadでいいものを無理してTaskでやる意味聞いてるだけじゃん....
なんで突然キレ出したのか謎すぎる...

627 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 17:23:28.67 ID:E5DVFTo40.net]
>>613-614
だから、メインスレッドと同じ寿命のスレッドはTask.Runでどうするんだよ。
答えられないのなら、煽るような真似をするな。

628 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 17:39:24.07 ID:nV3+UDVnM.net]
"); //]]>-->
629 名前:14" rel="noopener noreferrer" target="_blank">>>614
過去の遺物
今はasync/await一択
[]
[ここ壊れてます]

630 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 17:46:38.44 ID:jnbFiabv0.net]
>>618
Taskとasync awaitってめっちゃ紐付いてるじゃん
切り離して考えるのはおかしいぞ

631 名前:デフォルトの名無しさん [2017/11/19(日) 17:53:11.85 ID:5IbV37Zg0.net]
>>619
Task.Runを自分で書くのは過去の遺物ってことじゃね?

632 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 18:39:57.70 ID:CpArH3DxM.net]
>>616
逆ってこと

633 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 18:51:04.39 ID:T31pkR2W0.net]
過去の遺物と断言できるのはThread.suspend

634 名前:デフォルトの名無しさん [2017/11/19(日) 19:30:29.96 ID:5IbV37Zg0.net]
Unityとか出て来たから初めて使ってみたけど楽しい��

635 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 19:34:33.51 ID:2mKNwU/B0.net]
.net4.0までの環境で仕事してるおれにも同じ事いえんの?

636 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 20:01:28.15 ID:8FVAlHGr0.net]
>>624
なぜサポート切れを使うんだ?

637 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 20:08:02.55 ID:NX3L6kgWa.net]
XP使ってるエンドユーザーを切り捨てできなきゃそうするしかないね

638 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 20:33:47.12 ID:+rKwXo5m0.net]
>>623
今更感はあるのでしょうが、僕も数日前に初めてUnity(C#も)触ったんですけど
すごいですよね!今ってこんな感じにゲーム作れるんですね・・・

僕の場合3Dモデラーなんで、覚える事いっぱいだけど
プログラム出来る人なら無料のアセット入れたらすぐさまゲーム作れそうですね



639 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 22:46:03.87 ID:a21FIb9I0.net]
>>608
キャンセルや例外の処理などを他のタスクと同列に扱える。
それらが必要無いなら特にメリットも無いけど、Threadクラスに拘るメリットも無い。⇒Taskで一本化

640 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:06:57.29 ID:E5DVFTo40.net]
>>628
ありがとう!
そう言う答えが欲しかった。
メインスレッドと同時に起動しっぱなしになるスレッドをTaskで起動すると
Task内で発生した例外がTask終了時に一気に飛んでくるという解釈でよいのかな?
それだと使いにくいな。

641 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:10:42.79 ID:E5DVFTo40.net]
プログラム終了時に例外が発生することがあるが
ひょっとして.NETライブラリ内のTaskが災いしてる?

642 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:22:19.54 ID:kef1Qlbp0.net]
普段の行い

643 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:27:16.64 ID:KzEdu68P0.net]
えぇ……

644 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:32:38.48 ID:rl2qpTKV0.net]
>>630
自分で作った立ち上げっぱなしのスレッドorタスクの後処理をしてないんだろ
>>631で合ってるなw

645 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:40:03.47 ID:rl2qpTKV0.net]
立ち上げっぱなしかどうかは関係ないか
そこは訂正しとく

646 名前:デフォルトの名無しさん [2017/11/20(月) 00:18:59.27 ID:i2xgyqGp0.net]
ダッセ

647 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 04:47:41.41 ID:LQqpoEbp0.net]
>>625
知らんがなw上があほなんだよ

648 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 06:17:01.54 ID:U7p2GA3b0.net]
>>631
この業界定番のギャグだな。



649 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 06:17:56.26 ID:U7p2GA3b0.net]
>>633
nugetで拾ったライブラリの中の人の行いが悪いからだな。

650 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 07:14:49.97 ID:nPsSyBEn0.net]
>>636
お前も同類だけどな

651 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:04:56.95 ID:XyKfixC2r.net]
>>629
逆で未処理の例外があればTaskが終了する
それはThreadと同じ

652 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:07:46.65 ID:FVq6Osty0.net]
よくあんなゴミに声をかけようという気になるものだ
類は友を呼ぶからか?

653 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:09:30.80 ID:XyKfixC2r.net]
上の人からの
古い方が安心だから
と訳が解らない理由で.Net3.5を採用しようとしてる新規プロジェクトがあるw
当然現場は猛反対しているが

654 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:30:36.23 ID:OymZQAJWM.net]
>>642
変化を極端に恐れるジャップ体質どうにかしてほしいな

655 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:37:53.75 ID:phc3FRBoM.net]
>>640
wait, resultのとき以外でも落ちるのか?

656 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:40:57.62 ID:1G6nIlxwM.net]
民族性じゃなくて契約の問題
それでコストが少し増えたとしても成果じゃなく工数で金取るから不利益にならないし、
客の事業じゃなく作業に対して責任を負う以上はもどうしてもオーバークォリティにならざるを得ない
自社サービスの会社だと軽いノリでバージョン上がるぞw

657 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:43:07.45 ID:phc3FRBoM.net]
>>642
多分、安心と言っている意味が違うかも。
.NET3.5はMSが終了宣言できないバージョンになる。
vb6の様にゾンビの如く生き残り安泰w

658 名前:デフォルトの名無しさん [2017/11/20(月) 08:49:09.41 ID:Kfz9fY2x6.net]
>>641
思い通りならなくてドンマイw



659 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:55:17.32 ID:FVq6Osty0.net]
ゴミが染るから触んな

660 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 09:02:42.76 ID:phc3FRBoM.net]
>>645
受託じゃNode.jsなんて使う機会は無いもんね
自社サービス会社のがプログラマーは楽しそう

661 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 09:38:42.97 ID:zQ7I4hEQM.net]
PCLって美味しいの?

662 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 11:44:42.83 ID:bl/e+CdyM.net]
>>639
おまえは開発環境変更できる権限あるのか。いいな。

663 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 11:46:23.27 ID:bl/e+CdyM.net]
>>642
async await使えないの

664 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 11:58:13.80 ID:QH5eJXusM.net]
ギョーミーなアプリでasync/await使う?

665 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 12:14:21.61 ID:UOv8Me/NM.net]
>>653
使わない
というかawaiasyncってなんだ?って連中の方が多数派なので使えない
冗談みたいなホントの話

666 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 12:18:41.10 ID:QH5eJXusM.net]
>>654
使ってても待たせてるだけで何も出来ないとか
意味ないじゃんw っての

667 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 13:24:27.66 ID:Q9UPjx7d0.net]
>>650
デスクトップだけなら共有プロジェクトでいい

668 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 17:43:42.18 ID:XyKfixC2r.net]
>>653
バリバリ使ってる
知らない人でも説明すれば大体は解ってくれる

こんな便利なものがあるんですね!と感動する人
ふーんな人
非同期何それ美味しいの?な人
説明では解ったと言いながら実装では悪戦苦闘してる人
反応は様々だね



669 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 18:00:51.43 ID:bl/e+CdyM.net]
>>657
おれなんかTaskで匿名メソッドシコシコ書いてるわ!

670 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 18:48:31.14 ID:OyLLFCrh0.net]
すげーでかい図を出力したいんですがフォーマットは何がオススメですか?
画像だとデスクトップより大きくなると表示できないようです

671 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 18:53:19.76 ID:aqwGZvu20.net]
>>659
>デスクトップより大きくなると表示できない
こういうこと?
スクロールバーを付けて画像を表示する
dobon.net/vb/dotnet/graphics/scrollimage.html#section1

672 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:22:27.44 ID:OyLLFCrh0.net]
>>660
あ、申し訳ないです
フォームでエラー出てました

673 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:33:32.37 ID:aqwGZvu20.net]
>>661
x64(AnyCPU)で動かす
それがだめなら自分で必要なだけ読み込んで部分的に表示するしかない
GDI+にはそんな機能無かったと思うから

674 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:34:30.92 ID:U7p2GA3b0.net]
>>654
知識が.NET2.0くらいで止まってる人が多いよ。
それ以上の言語拡張は開発者置いてけぼりのMSの自己満足かもね。

675 名前:デフォルトの名無しさん [2017/11/20(月) 19:40:12.58 ID:YF/poHTW ]
[ここ壊れてます]

676 名前:6.net mailto: >>661
なんのエラーが書けや
[]
[ここ壊れてます]

677 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:43:30.41 ID:U7p2GA3b0.net]
>>659
Open XML

678 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:55:19.01 ID:U7p2GA3b0.net]
>>657
非同期何それ美味しいの? 調理間違えても、お腹壊さない?



679 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:17:10.91 ID:rFfN6JGKM.net]
>>663
というか、アメリカは内製が中心だからバージョンについて日本ほど保守的にならなくていいんだと思うよ

680 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:19:38.39 ID:aqwGZvu20.net]
>>664
エラーは今回どうでもいい情報なんだよな
むしろ表示する用途・解像度・実行環境の方が重要
x64なら10000*10000 pixel*32bppのBitmapでも余裕で表示できるけど

681 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:23:29.97 ID:e0aI6m0P0.net]
ただのコーディングミスでNullReferenceとか最悪コンパイルエラーまである

682 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:34:17.67 ID:U7p2GA3b0.net]
>>667
実際の実装に無難で枯れた技術を使うのと
新しい技術に無知なのは違うと思うけど

683 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:10:30.74 ID:LQqpoEbp0.net]
>>659
ttps://qiita.com/bsh_tw/items/b8b2f845d85d1f1dc4e9
こんな感じ?

684 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:17:18.15 ID:rFfN6JGKM.net]
>>670
そういう問題じゃないの
内製だと、選んだ技術について組織の中でノウハウを蓄積しやすい
また、開発も運用保守もユーザーも同じ主体なのでJVMのバージョンアップでベンダーに億単位でぼったくられるようなことにはならず、
更新の障壁が比較的低いんだよ

685 名前:デフォルトの名無しさん [2017/11/20(月) 21:25:02.39 ID:UI9vB3qq0.net]
>>668
いや、、フォームのエラーだけじゃわかんねえだろ、、、
本当にお前の思ってるのが原因か、、?

686 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:25:54.16 ID:U7p2GA3b0.net]
>>672
ま、見積もりありきの受託開発とリスクのある新技術の導入が合わないのはあるとは思う
なんでc#スレでJVM w

687 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:28:21.71 ID:aqwGZvu20.net]
>>673
考え方が逆だと思うんだよな
エラーだけ示されて解決できるのならそうしたらいいと思うけど、どっちにしても本人が何も言わないのならどうしようもない

688 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:28:24.50 ID:y/6cZRj30.net]
区別が付いてないんでしょ



689 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:28:54.04 ID:2/KPMrVLr.net]
内製じゃないけど開発の各関係部署にプロトタイプを配るのにクレームがつかない為に.NETのバージョンを下げてた人達がいたなあ
当然製品版も下げてたww
その話聞いて笑うしかなかった (´・ω・`)

690 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:31:06.19 ID:EjockrVW0.net]
ライセンス料ケチってVS2010とか使ってるのが原因の場合もあるぞ

691 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:47:30.51 ID:Rfx0F+NsM.net]
>>672
内製は銀の弾丸じゃねーぞw

692 名前:デフォルトの名無しさん [2017/11/20(月) 22:00:54.42 ID:UI9vB3qq0.net]
>>675
なら聞けよ
何言ってんだ

693 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:03:17.71 ID:U7p2GA3b0.net]
落ち着いて ( ´・ω・`)_且~~

694 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:12:04.01 ID:gpmTl3Lx0.net]
LINQの書き方で質問ですが
特定の教科の赤点の人数を調べるとした場合
数が少なければ↓のような処理で済むのですが

public class Test
{
public string  名前 { get; set; }
public int 国語 { get; set; }
public int 数学 { get; set; }
}

List<Test> ListTest = new ListTest ();
string Kyouka = "国語";
int akaten = 0;

if(Kyouka == "国語")
{
akaten = ListTest.Where(x=>x.国語 < 30 ).ToList().Count;
}
if(Kyouka == "数学")
{
akaten = ListTest.Where(x=>x.数学 < 30 ).ToList().Count;
}

数が増えるので↓のような書き方がやりたいんですが無理ですか?

akaten = ListTest.Where(x=>x.Kyouka < 30 ).ToList().Count;

695 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:15:11.19 ID:ThNisUZnM.net]
>>678
dotnet cli + VSCodeでいいじゃん
商用無料で最新バージョン使えるぞ
SCDなら配布も楽だし
なんで流行らないんだろ
旧バージョンもう要らんでしょ

696 名前:デフォルトの名無しさん [2017/11/20(月) 22:16:16.66 ID:UI9vB3qq0.net]
種類が増えるなら教科ごとにプロパティ作るんじゃなくて教科名+点数の辞書のリストにするのが自然だと思う

697 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:21:19.53 ID:rFfN6JGKM.net]
>>682
データ設計が悪い
テスト結果(生徒ID, 科目, 点数)
生徒(生徒ID, 名前)
この方がSQLフレンドリー

698 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:30:41.09 ID:ThNisUZnM.net]
>>682
C#じゃないけどSQLアンチパターン読んだほうがいい

var map = new Dictionary<string, Func<Test, int>() {
["国語"] = t => t.国語,
["数学"] = t => t.数学,
};

var ans = map.Select(e => new {
科目 = e.Key,
赤点人数 = TestList.Count(t => e.Value(t) < 30),
});

foreach(var a in ans)
Console.WriteLine($"{a.科目}: {a.赤点人数} 人");



699 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:40:41.76 ID:aO8f69d6a.net]
>>682
それ、LINQいっこも関係ないような気が...
Func<Test, int> getScore = (x) =>
{
  if (Kyouka == "国語") return x.国語;
  if (Kyouka == "数学") return x.数学;
};
akaten = ListTest.Where(x => getScore(x) < 30 ).ToList().Count;

700 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:50:14.07 ID:rFfN6JGKM.net]
>>687
それは毎回無駄な科目チェックが入るから非効率
せっかくデリゲート使うんなら最初にgetScoreを科目に応じたものに差し替えるのがスマート
もちろんそれ以前にデータ設計が間違ってるけど

701 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:51:04.11 ID:aO8f69d6a.net]
>>688
そりゃそうでしょうけどストレートにオーダーされたものを出してるだけなんでw

702 名前:デフォルトの名無しさん [2017/11/20(月) 22:52:45.76 ID:UI9vB3qq0.net]
var akaten=ListTest.Count(x=>(int)(typeof(Test).GetProperty(Kyouka). GetValue(student))<30);

703 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 23:14:47.31 ID:gpmTl3Lx0.net]
>>684
>>685
やっぱりデータ設計が悪いと言われますか
今のうちに変えてしまうべきなのかな

>>686
Dictionary使ったことなかったので参考になります。
SQLアンチパターンすごい為になりそうなので読んでみます。

>>687
>>690
まだ完全に理解できていないけど参考になります。

レス参考に対応してみます。
みなさんアドバイスありがとうございました。

704 名前:デフォルトの名無しさん [2017/11/21(火) 11:17:50.06 ID:qjtNZd9v6.net]
new Dictionary<string, int>(){
{“たろう”, 68}
}

型引数を推論させて
new Dictionary(){
{“たろう”, 68}
}
みたいにできないの?出来ればいいのに。

705 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 12:30:59.27 ID:WV/YnhFsM.net]
C#は厳格な型言語です

706 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 12:32:30.39 ID:JYBkdGYBM.net]
C#7ならたぶんこう書ける
static Dictionary<TKey, TValue> ToDictionary(this IEnumerable<(TKey key, TValue value)> items) =>
 items.ToDictionary(x => x.key, x => x.value);

new[] { ("たろう", 68) }.ToDictionary()

707 名前:デフォルトの名無しさん [2017/11/21(火) 19:23:11.85 ID:K26qvPIE0.net]
awaitってなんの意味があるの?
待ってたら非同期の意味なくね?

708 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:28:24.05 ID:TIZ+WImHM.net]
>>695
って思うじゃん?



709 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:32:39.47 ID:oC2HbrNwa.net]
>>695
処理が終わるまで待ってるように見えるけど実際は別にスレッドを使って
違うことを同時にやってるだけ

710 名前:デフォルトの名無しさん [2017/11/21(火) 19:36:01.18 ID:K26qvPIE0.net]
>>697

メインのスレッドはタスクの実行完了を待機状態なんだろ?
待機してたら何もできないから意味なくね?

711 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:38:32.15 ID:zF41/4yq0.net]
>>698
awaitの後の処理をタスクにして、awaitで待ってるタスクの後続タスクにしてる。
メインのスレッドは待機してない。

712 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:39:21.82 ID:tfBo/9nR0.net]
>>698
簡単なコードで試せるんだから2chに書き込む時間使って動作確認すれば?

713 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:40:18.25 ID:KARCkhIlr.net]
メインスレッドはいわゆるwaitをしている訳ではない

714 名前:デフォルトの名無しさん [2017/11/21(火) 19:41:33.68 ID:K26qvPIE0.net]
>>699
なるほど!

715 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:20:36.17 ID:8K/pnPq30.net]
最近のオシロスコープはWebサーバー機能を持っていて、Webブラウザでアクセスすると
計測画面を表示させることができますが、C#で同じような機能を簡単に実装することはできるでしょうか?
リモートデスクトップではなく、WinFormsのアプリ画面だけをネット越しに共有する感じです。

716 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:27:50.82 ID:UMxxTtnJ0.net]
>>703
中にwebサーバー入ってんじゃね?
c#でって言われてもハードの構成が何を想定してるのかわかんなくね?

717 名前:デフォルトの名無しさん [2017/11/21(火) 21:31:11.05 ID:K26qvPIE0.net]
>>703
WinFormsの画面を配信したいってこと?

718 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:34:21.85 ID:UMxxTtnJ0.net]
exeコピーすればいいじゃんね



719 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:36:26.83 ID:UMxxTtnJ0.net]
サーバーのHDDのインストーラをぶっ叩けば.netframeworkも入るぞ

720 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:50:25.88 ID:z0YVJa690.net]
精度や遅延はどの程度なら許容されるんだろ

オシロスコープに出来るんならC#でも出来るとは思うけど
どんなデータの送り方してるのかまでは分からない

721 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:52:46.40 ID:HJsjXF5N0.net]
>精度や遅延はどの程度なら許容されるんだろ
要件による
遅延に関しては、ユーザ視点で表面化し難い様に誤魔化す方法が幾らかはあるし

722 名前:>>703 mailto:sage [2017/11/21(火) 21:59:41.58 ID:8K/pnPq30.net]
>>705
その通りです。

作ろうとしているのはオシロスコープとは全く別で、計測器の取得データを延々と
表示し続けるようなものです。
現状はファイルベースで共有しているのですが、例として出したオシロスコープのように
ある程度リアルタイムの値も見たいと社内で要望があったので。
なので、遅延は数秒レベルでも全く問題無いです。

723 名前:デフォルトの名無しさん [2017/11/21(火) 22:03:47.53 ID:K26qvPIE0.net]
>>710
websocketサーバー立ててjsonで生のデータを定期的に送信するようにする。
javascritで受信してcanvasとかにそれを表示するウェブアプリをウェブサーバー立てて配信する。

724 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:04:13.13 ID:oC2HbrNwa.net]
>>710
webサーバでいいだろう

725 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:11:08.94 ID:UMxxTtnJ0.net]
この場合ってHDDからデータ取ってくるだけじゃね?

726 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:11:40.48 ID:fFSiopFkM.net]
ElasticsearchとKibanaでも使えば?

727 名前:デフォルトの名無しさん [2017/11/21(火) 22:23:31.72 ID:K26qvPIE0.net]
>>713
javascriptで定期的にデータのファイルをダウンロードして表示するようにするだけか

728 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:27:39.04 ID:z0YVJa690.net]
後は計測間隔がmsスケールとかじゃなけりゃ
そんなに難しくは無いと思う



729 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:32:00.42 ID:tfBo/9nR0.net]
もうC#関係なくなってきてるな

730 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 23:02:59.07 ID:/0BXFww1a.net]
昔USBや232C接続の計測器のデータ拾う仕事してたけど
ネットワーク越しはやったことないな

サンプルレートはmsオーダどころか10ksps以上でも問題ないでしょう

731 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 23:24:00.28 ID:AM6ulXU90.net]
9600BPS同期で通信出来れば誉めてあげるよ

732 名前:デフォルトの名無しさん [2017/11/21(火) 23:29:41.27 ID:e9zQnDKx0.net]
windows visual studioでのフォームアプリを使ってのC#の質問です

例えばTextBoxAとTextBoxBのテキストボックスを
フォーム上に配置して
TextBoxAに「あ」と入力してEnterを入力したらTextBoxBに「い」と表示させるようにしたいのですが
どうすればいいでしょうか?

733 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 23:31:16.83 ID:TR9cbyXd0.net]
>>711で充分だろう
難しいとこ一つもないよ

734 名前:デフォルトの名無しさん [2017/11/21(火) 23:38:07.40 ID:K26qvPIE0.net]
>>720
テキストボックス1のイベントハンドラでテキストボックス1のTextプロパティを取得して、それが「あ」ならテキストボックス2のTextプロパティに「い」を代入する。

735 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:06:37.07 ID:jXiKT4v3a.net]
>>720
スレの存在意義を否定するようだけど
その程度でいちいち質問してたら先が思いやられるよw

public Form1()
{
  InitializeComponent();
  textBoxA.KeyDown += (s, e) =>
  {
    if(e.KeyCode == Keys.Enter && textBoxA.Text == "あ") textBoxB.Text = "い";
  };
}

自分でやっといて何だけど、本当はいきがってラムダ式なんか使わずに
イベントハンドラを書いた方が保守性の面では好ましいと思う

736 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:32:48.43 ID:pUgwVgr10.net]
いきがってラムダ式とか使ってるけど直前のレスがほぼ完全解答という

737 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:38:13.46 ID:KA0qTObfa.net]
俺だったらTrim()付けるね

738 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:47:40.32 ID:QmSU3CcY0.net]
キメェ
ctrl+vでどうなるんだ?
とか最終的にはkillfocusちゃうの?
とか考えると普段ぜってー組まない
コード見ると黒板キィィィィィって
やられてる気分になる



739 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:54:55.44 ID:d5y4PxOU0.net]
煽るだけのバカ

740 名前:デフォルトの名無しさん [2017/11/22(水) 00:55:46.04 ID:Jt3bKlvZ0.net]
そいついつもキレてんな。

741 名前:デフォルトの名無しさん [2017/11/22(水) 00:56:49.24 ID:NUn4dBze0.net]
キレッキレやな

742 名前:デフォルトの名無しさん [2017/11/22(水) 00:59:12.72 ID:8eOpOd0J0.net]
>>726
エンターで動作なんだからCtrlVがどうこうとかイミフだしフォーカス外したいなら外せばそれで済む話じゃねえか

743 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 01:38:12.73 ID:QmSU3CcY0.net]
>>730
テキストボックスでkillfocus以外での処理は鬼門
そういう暗示にかかっているのです
でもctrl+Aは気軽に入れるけどね

744 名前:デフォルトの名無しさん [2017/11/22(水) 22:27:47.55 ID:2ViDa+Rm0.net]
データバインド教えて

this.dataGridView_List.DataSource = list;
これをロード時に書けば
listにAddしてけばDataGridに行追加されてく?

745 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 23:26:53.46 ID:OlRubHVI0.net]
listがINotifyCollectionChangeを実装したオブザーバブルなリストならね。
ただのリストじゃ反映されないと思う

746 名前:デフォルトの名無しさん [2017/11/22(水) 23:30:35.23 ID:2ViDa+Rm0.net]
>>733
これWPFだけ?

747 名前:デフォルトの名無しさん [2017/11/22(水) 23:39:53.01 ID:Jt3bKlvZ0.net]
>>734
Formアプリでもあるんじゃない?
www.digi-con.co.jp/tech/node/66

748 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 00:45:13.68 ID:axjWBGmc0.net]
素朴な疑問なんですけど
ListコレクションからLINQでデータ検索したい時とか、データがソートされてる方がパフォーマンスが良いとかあるんでしょうか



749 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 00:48:24.00 ID:3UvXGadQ0.net]
>>736
ソートされてるならBinarySearchを使えば速い
LINQ使ったら線形検索になるのでソートは意味ない

750 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 09:20:42.83 ID:axjWBGmc0.net]
>>737
BinarySearchが使えるのは知りませんでした
ありがとうございます

751 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 10:19:01.69 ID:ocuKvabTr.net]
件数少ない時は線形の方が速いよ

752 名前:デフォルトの名無しさん [2017/11/23(木) 16:29:13.27 ID:1glLBmTM0.net]
1 のとき 0.7
3 のとき 0.9
8 のとき 0.6
9 のとき 0.5

こういうデータがある時、右の要素が最大である左の要素の番号を返すプログラムを作りたいのですが
簡単な方法はないでしょうか?

753 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 16:36:15.34 ID:6Js7jM8k0.net]
List〈class〉でやってみるといいのでは?
class Data

public int id{get;set;}
public double result{get;set;}

みたいに作って、ListをループさせてData.resultを確認して一番大きい数字のid(クラス)を返すみたいな
ICollectionに一番大きい数字のindex返す関数とかあった気がするからもっと楽に作れるかもしれないけど

754 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 16:41:24.65 ID:E5KFBI6l0.net]
楽さなら右要素でソートして末尾の左要素返せば
普通に探索しても大した手間の差ではない気もするが

755 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 16:44:45.88 ID:DqyU4UwDM.net]
>>740
DBに突っ込んでから
select key from data
where value = (select max(value) from data)
でいいよ

756 名前:デフォルトの名無しさん [2017/11/23(木) 16:58:00.67 ID:pEApwQyq6.net]
@“1 のとき 0.7
3 のとき 0.9
8 のとき 0.6
9 のとき 0.5”
.Split(‘\n’)
.Select(line => line
.Split(“のとき”)
.Select(piece => piece.Trim())
)
.OrderBy(pair => pair[1])
.Last()[0];

757 名前:デフォルトの名無しさん [2017/11/23(木) 17:01:37.44 ID:pEApwQyq6.net]
変換忘れた(;ω;)

758 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 17:03:20.80 ID:6Js7jM8k0.net]
>>744
この仕様はまったく考えてなかった
仕様聞くのって大変だな・・・



759 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 17:17:36.99 ID:cW6v2Sii0.net]
>>740
https://ideone.com/W1bKs5

760 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 17:24:58.41 ID:cW6v2Sii0.net]
よく考えたらC#だった、寝惚けてるわ

761 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 17:44:11.84 ID:cW6v2Sii0.net]
どっちで書いても同じようなもんだった
https://ideone.com/fD2j3A

762 名前:デフォルトの名無しさん [2017/11/23(木) 18:22:14.69 ID:1glLBmTM0.net]
みなさん有難う御座います。
Dictionaryを使ってみようと思うのですが

Dictionary<string,double> dict = new Dictionary<string,double>();
dict.Add("1",0.7);
dict.Add("3",0.9);
dict.Add("8",0.6);
dict.Add("9",0.5);

このあとvalueが最大値の時のキーの値を求める方法がわかりません
dict.OrderBy(pair.Value).Last.Keyじゃダメなんでしょうか?

763 名前:デフォルトの名無しさん [2017/11/23(木) 18:24:15.88 ID:pEApwQyq6.net]
>>750
いいよ

764 名前:デフォルトの名無しさん [2017/11/23(木) 18:34:21.92 ID:1glLBmTM0.net]
>>751
現在のコンテキストに 'pair' という名前は存在しません。
というエラーが出て出来ないです…

765 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:37:13.32 ID:Go3NcBxu0.net]
pair宣言してないからだろうに、
dict.OrderBy(pair => pair.key).Last.Keyじゃないかな。

766 名前:デフォルトの名無しさん [2017/11/23(木) 18:37:55.69 ID:pEApwQyq6.net]
https://ideone.com/XlOtVQ

767 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:38:17.36 ID:Go3NcBxu0.net]
もちろん
pair => pair.Value
だったな。

768 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:39:03.67 ID:4OkBFxYdM.net]
>>752
どこか適当なところで勉強してから来なさい



769 名前:デフォルトの名無しさん [2017/11/23(木) 18:54:09.98 ID:1glLBmTM0.net]
>>753
>>754
>>755
ありがとうございます!出来ました
ただ同じキーがあると動かなくなるので別の方法を考えなければいけない様です…

770 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:59:24.88 ID:kBi82nCb0.net]
>>757
同じキーが存在するのにDictionary使うのが間違い
他の人が例として使っているDataクラスで事足りると思うんだが

771 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:59:33.92 ID:yDdQ43O00.net]
そりゃキーが重複したらエラーになるよ
辞書ってそういうもんでしょ

あと重複があるんなら>>749のを使えば?

772 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 19:07:10.50 ID:eO5S+uX/0.net]
「valueが最大値の時のキーの値」だけが必要なんじゃなかろうか?

773 名前:デフォルトの名無しさん [2017/11/23(木) 19:14:33.13 ID:1glLBmTM0.net]
>>749
で教えて頂いたのでやってみます!

774 名前:デフォルトの名無しさん [2017/11/23(木) 19:16:31.56 ID:1glLBmTM0.net]
配列の大きさが不明なのでaddが使える方法でやりたかったもので…

775 名前:デフォルトの名無しさん [2017/11/23(木) 19:18:05.05 ID:pEApwQyq6.net]
var list = List<Data>()
これを使えばいい
Addもできる

776 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 20:12:06.29 ID:eO5S+uX/0.net]
>>762
単に最大時のkey, valueだけが欲しいのならListもaddも不要だけどね。。

777 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 20:41:13.63 ID:FrNu/68p0.net]
Name : aaa
Info : vvv
Message : sss
テキストファイルに↑のような空白文字で:を揃えた情報を、File.ReadLinesで取り出し、
.ToArray()で配列にしたあとTextBoxのLinesに設定したところ、コロンの位置がずれてしまいます。
foreachでTextプロパティに追加していく方法でもずれるのですが、Consoleだと綺麗に出力されます。
なにか対策等ありますか?

778 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 20:43:45.19 ID:kBi82nCb0.net]
>>765
コンソールと同じように、テキストボックスのフォントをMSゴシックみたいな等幅フォントにする



779 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 21:07:02.11 ID:FrNu/68p0.net]
>>766
MSゴシックで試したところ解決しました。
ありがとうございました。
等幅フォントの使い道がこんなところにあったとは、でした。

780 名前:デフォルトの名無しさん [2017/11/23(木) 21:25:10.61 ID:vcWp0UMr0.net]
>>764
思わせぶりなことだけ言うだけ。

781 名前:デフォルトの名無しさん [2017/11/23(木) 21:29:38.22 ID:vcWp0UMr0.net]
>>765
タブ文字じゃだめなん?

782 名前:デフォルトの名無しさん [2017/11/23(木) 21:48:04.04 ID:1glLBmTM0.net]
>>749とList使った方法で出来ました!
有難う御座いました。
ソート時の=>の書き方が色々あっていまいち理解出来てないですが…

783 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 21:59:19.61 ID:6Js7jM8k0.net]
ラムダ式とLinqは後々覚えていけばいいんじゃないの
とりあえずこういう書き方もできるって事で

784 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:15:45.74 ID:tJBaWbvoa.net]
ラムダ式はデリゲートと同時に覚えようよw
たいして覚えることないんだし、今時C#プログラマの最小要件でしょ

785 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:21:30.93 ID:Bg3Rqdl/0.net]
HttpClient client=new HttpClient();
FormUrlEncodedContent contents = new FormUrlEncodedContent(new
Dictionary<string, string>{
{"あああ","1"},
{"あああ","2"},
{"いいい","0"},
});
respnse = await client.PostAsync(url, contents);

このままだと同じキーを含んでいるのでエラーが出ます。
サイトの仕様上、このままデータを送らないといけないのですが、どう変更すれば
きるようになりますか?

786 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:24:57.40 ID:eO5S+uX/0.net]
>>770
1 のとき 0.7
3 のとき 0.9
4 のとき 0.9
5 のとき 0.9

こんなデータのとき、3,4,5のどれでもええの?

787 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:31:44.60 ID:yDdQ43O00.net]
>>773
KeyValuePairの配列でやってみたら?試してないから動くかわからんけども

788 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:53:52.49 ID:FrNu/68p0.net]
>>769
ありがとうございます。タブ文字でもできることを確認しましたが、
今回はString.Format("{0, 4} : {1}", num,message)のような文字列も綺麗に出力したいので
等幅フォントを使用したいと思います。



789 名前:デフォルトの名無しさん [2017/11/23(木) 23:31:46.08 ID:vcWp0UMr0.net]
>>773
new List<KeyValuePair<string, string>>{
{"あああ","1"},
{"あああ","2"},
{"いいい","0"},
}

790 名前:デフォルトの名無しさん [2017/11/23(木) 23:37:02.83 ID:1glLBmTM0.net]
>>774
左のデータは重複することはあっても右のデータは0.93234…みたいな感じで重複しない感じです!

791 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 23:56:53.12 ID:6gvgNZ3b0.net]
乱数をキーにして衝突して死んだやつを俺は知ってる

792 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 10:33:29.48 ID:mPUfH2u/0.net]
>>774のようなコーナーケースの指摘に対して、「そんなケースは稀だから考えなくてよい」とするか
「どっちでもいいならどっちかに決めよう」とするか、開発センスが現れるな。

793 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 11:35:20.40 ID:GsVE4oKd0.net]
今回は稀でもないけどね

794 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 11:52:48.02 ID:EfmvZejc0.net]
最大値の行を取り出すだけにコレクションは不要だけどね

795 名前:デフォルトの名無しさん [2017/11/24(金) 11:58:30.46 ID:PklTWoNU6.net]
>>782
だから口だけカマチョはやめろ

796 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:01:51.76 ID:EfmvZejc0.net]
>>783
配列の最大値を所得するロジックを知らんと?
配列ソートの前に習うだろ。

797 名前:デフォルトの名無しさん [2017/11/24(金) 12:02:53.10 ID:PklTWoNU6.net]
動的リストだからAddとか必要って言ってんだろ

798 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:09:15.88 ID:mqWCdSHW0.net]
>>782
配列リストの最大値出せるけど今回はindexがバラバラになってるじゃん



799 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:14:42.91 ID:EfmvZejc0.net]
>>785
動的リストとは?

800 名前:デフォルトの名無しさん [2017/11/24(金) 12:15:06.09 ID:J2WegmLO6.net]
>>787
Add使いたい言っとるだろ

801 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:22:59.05 ID:mqWCdSHW0.net]
一応配列もコピーとサイズ増やして擬似的に追加は出来る
昔の俺が調べて書いてたけどコレクション使えと怒られた

802 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:26:56.52 ID:EfmvZejc0.net]
>>788
それはお前らが誘導したからw
元データの構造がが何なのかワカランとどれが最適かはわからんな

803 名前:デフォルトの名無しさん [2017/11/24(金) 12:29:02.86 ID:J2WegmLO6.net]
>>790
>>762 []
[ここ壊れてます]

805 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:42:17.78 ID:EfmvZejc0.net]
>>791
c#の中からいきなり>>740のデータが湧いて出てくるはずもなく、
そのような仕様があるとしたら「宿題」だなw

806 名前:デフォルトの名無しさん [2017/11/24(金) 12:44:49.36 ID:J2WegmLO6.net]
コレクションは要らない!(キリッ

807 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:47:41.40 ID:EaZH7dVF0.net]
>>792
いい加減黙ったら。
必要だからListにしてるだけで、>>782とか何の足しにもならんぞ。

808 名前:デフォルトの名無しさん [2017/11/24(金) 12:53:50.07 ID:qz26KndN0.net]
>>760
>>764
>>782



809 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:55:58.12 ID:EfmvZejc0.net]
>>794
オレは最大値を取り出すだけならリスト構造は不要と言っているだけだ。
間違ってるか?

810 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:07:04.20 ID:EaZH7dVF0.net]
>>796
元データを用意する実装の都合でそうしてるだけなのに、そんな分かり切ったことを言う必要ないだろ。
勘違いしてるそぶりもなかったしな。

811 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:12:51.07 ID:EfmvZejc0.net]
>>797
何を言いたいのかさっぱりわからんわ。

812 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:14:37.94 ID:EaZH7dVF0.net]
>>798
最大値を取り出すためにリスト構造にしているわけではない。
これなら分かる?

813 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:18:59.06 ID:mqWCdSHW0.net]
あの説明でこの配列仕様考えてたってこと?
double?[] data = new double[]

null,
0.7,
null,
0.9,
null,
null,
null,
null,
0.6,
0.5
};

814 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:20:05.03 ID:mqWCdSHW0.net]
>>800
あぁ多次元やジャグ配列があるか
これ忘れて

815 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:23:12.73 ID:EfmvZejc0.net]
>>799
最大値を取り出した後の事に触れて無いのも事実。
最大値だけが必要なのか、取り出した最大値を使ってリストに何かをしたいのかわからない。
本人は最大値の取得だけで満足して消えてしまったし。

816 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:37:21.47 ID:cWMe5SKyM.net]
本当に最大値だけでいいのかも知んないしね

817 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:42:02.13 ID:mqWCdSHW0.net]
右が最大値の時の左の要素の番号が欲しいって書いてあるぞ
インデックスも飛び飛びで左の要素が重複するときもあるって後から出してる
確かに多次元やジャグ配列ならその仕様はありそうだけどその差は技術力の無い俺には大きな差がわからん

818 名前:デフォルトの名無しさん [2017/11/24(金) 14:07:29.79 ID:ZR8Pz10g6.net]
コレクションなんか必要ない(キリッ



819 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 14:40:56.86 ID:asGQ9mvw0.net]
今日のウンコの最大サイズとか何回目に出たウンコとかどうでもいいだろ

820 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 17:05:26.06 ID:BCw6/Ft50.net]
>>806
でも色は大事だぞ
どす黒いのはヤバイ

821 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 17:12:26.57 ID:asGQ9mvw0.net]
>>807
それ、最大サイズとかじゃなくて
少量でもアウトだから

822 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 20:00:59.51 ID:7dGX3zxS0.net]
非同期処理のasync/awaitって

処理A
var ret = await Task();
処理B

みたいなときはTaskの中の処理が終わるまでは処理Bには進まないという理解であってる?

あとTaskの中がプロパティに値を代入するだけみたいなawaitを使うタイミングがない場合は

await Task.Run(()=>{ Taskの中でやりたい処理 });

って書くしかない?

823 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 20:36:08.05 ID:GsVE4oKd0.net]
馬鹿か
8回もよく粘ったもんだな

824 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:02:49.89 ID:3H9uQYBg0.net]
>>809
1.そのasyncメソッドの中だけを考えればそれで合ってる
2.ちょっと何言ってるか分からない awaitを使うタイミングがないって何?

825 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:16:49.61 ID:h5bnr1q30.net]
まだひよっこでよくわかって無いんだが
過去の他人が書いたコードで

if (条件){
処理 A
}
else if (条件){
処理 B
}
else{
// 何もしない
}

みたいなコードを見ることがあるんだが
このelseの何もしないってのは必要なのか?

826 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:23:55.00 ID:7dGX3zxS0.net]
>>811
大雑把に書くと下みたいなクラスのプロパティ書き換えるだけのメソッド
awaitする要素見えないけどawait演算子書かないとvisual studioが警告出すからどうやってawaitすればいいのかと

private async Task<bool> Task()
{
a=b;
c=d;
return true;
}

827 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:24:04.90 ID:573d9hpx0.net]
>>812
本人に聞けよw
というごく当たり前の話を省くと
・説明的なコードとしてわざわざつけくわえてある
・追加の可能性があるのでわかりやすいようにわざわざ残してある
このあたりじゃだめか?
C#として必要か?って話なら自分で消してみてビルドしろよって返す

828 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:25:24.75 ID:mqWCdSHW0.net]
後々追加するかもで書いたり何もしないってのをはっきり伝えたいとかで書いてるんじゃないかな
コンストラクタで
class Sample

public Sample()

//何もしない


に近いものを感じる



829 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:41:06.27 ID:h5bnr1q30.net]
>>814>>815
本人はもう辞めてたの
あぁ説明的な感じなのかな
別にこんなふうに書くのがC#のお約束とかじゃないよね

830 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:43:14.83 ID:573d9hpx0.net]
>>816
IDEやコンパイラが怒らない限りC#の約束事とか知らんしどうでもいい
そしてそのくらいの最適化はコンパイラに期待できる

831 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:43:58.48 ID:zpTIVf120.net]
使い道としてはなんだろね
何もしないにブレークポイントを設定するとAもBも処理しない条件のとき止まるかな
だったらlogger.infoしといてもいいのに

832 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:45:42.73 ID:QGkXc5ztM.net]
>>812
SIerのコーディング規約としてCOBOLの次代からある書き方だよ。
機械的にelseを入れるんじゃなくてelseの処理で何かもれて無いか考えてから空elseを入れましょうって事が形骸化して残ってる。
ほぼなんの意味もないコードです。

833 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:56:58.69 ID:h5bnr1q30.net]
>>817>>819
その人独自の癖みたいなもんだったってことか
消しても問題なく動くんでまぁ大丈夫っぽいし

834 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 22:17:05.19 ID:hbIcAcZv0.net]
>>809ってretが処理Bの中で使われなきゃ、待たずに処理B行っちゃうんじゃないの?

835 名前:デフォルトの名無しさん [2017/11/24(金) 22:19:14.41 ID:7i1mZEYS6.net]
そのコードがasync修飾子を付けたメソッドの中に書かれてるとしたらそれはないだろ

836 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 22:31:11.65 ID:h5bnr1q30.net]
非同期処理内のコードでは無かった
これってasync修飾子内のコードだとなんかのエラー回避とかになるの?

837 名前:デフォルトの名無しさん [2017/11/24(金) 22:31:59.96 ID:7i1mZEYS6.net]
おまえに言ってねえよカス

838 名前:デフォルトの名無しさん [2017/11/24(金) 22:37:51.54 ID:tzXAZjO3p.net]
>>824
レス指定すら出来ないとか低脳かよ



839 名前:デフォルトの名無しさん [2017/11/24(金) 22:39:38.31 ID:S6xecz6o0.net]
バカか?

840 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 22:41:49.16 ID:7dGX3zxS0.net]
下のSetメソッドだと処理Bでretを使ってなくても大丈夫?
private async Task Set()
{
処理A
var ret = await Task();
処理B
}

private async Task<bool> Task()
{
a=b;
c=d;
return true;
}

上のコードでTaskの中身にawait使いたかったら下みたいに書くしかない?
他の方法ある?

private async Task<bool> Task()
{
Task task = Task.Run(()=>{
a=b;
c=d;
}
await task;
return true;
}

841 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 22:42:24.96 ID:V887TCBHM.net]
>>825
この間からネットでしかストレス解消できない寂しいやつが湧いてる

842 名前:デフォルトの名無しさん [2017/11/24(金) 22:49:06.66 ID:tzXAZjO3p.net]
つーかガックシって大学回線のワッチョイか
まさに低脳猿そのものだな
大学から2chとかどこの馬鹿大学の馬鹿ガキだよ

843 名前:デフォルトの名無しさん [2017/11/24(金) 23:14:31.39 ID:P/o0ISHr0.net]
ウゼエ、ササクッテロ

844 名前:デフォルトの名無しさん [2017/11/24(金) 23:20:37.11 ID:tzXAZjO3p.net]
ワッチョイの下4桁が変わってねぇぞ大学から2chの低脳猿ガキ

845 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 23:33:10.90 ID:oz95vMBJM.net]
>>812
忘れたんじゃなくて意図した動きですよって申し送りか

846 名前:デフォルトの名無しさん [2017/11/24(金) 23:54:06.99 ID:2BrQd4/c0.net]
datagridviewで下から2つ目だけ変更する方法教えて
1 あああ
4 いいい
8 ううう
9 えええ
2 おおお

上から探索して行特定してCell位置指定して編集するしかない?

847 名前:デフォルトの名無しさん [2017/11/25(土) 00:01:37.19 ID:pvPgs+4u0.net]
>>833
https://qiita.com/lusf/items/222bbcb6a3f69306517b

848 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 00:06:13.82 ID:yrhFfhmW0.net]
asyncってアシンク?エイシンク?



849 名前:デフォルトの名無しさん [2017/11/25(土) 00:08:11.36 ID:6waUtYEo0.net]
>>834
えーおもろ
DataSouce使うと
プロパティ名がそのまま項目名になるのか

850 名前:デフォルトの名無しさん [2017/11/25(土) 00:10:38.42 ID:pvPgs+4u0.net]
eɪsíŋkrənəs
エイシンクロナス

851 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 01:10:38.87 ID:1pHkPeMia.net]
ガチでアシンクだと間違って記憶してたわw
aが頭について「非」の意味になる単語って他にあったっけ?
aliveやaloudは違うしなあ

852 名前:デフォルトの名無しさん [2017/11/25(土) 01:16:18.14 ID:kqX7412r0.net]
www.wdic.org/w/WDIC/ASYNC

853 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 01:23:13.48 ID:vI6wj4vV0.net]
>>827
1.大丈夫
2.プロパティの設定ぐらいでTaskにする意味があるかは別にして、Task.Runでいいよ

854 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 08:19:21.33 ID:uShMkUYk0.net]
>>827
Task.Runはその中が別スレッドになるので注意。
return await Task.FromResult(true);
か、
asyncを外して
return Task.FromResult(true);
で。

855 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 08:55:10.96 ID:t8H/7SYV0.net]
>>841
return await Task.FromResult(true); じゃなかったらTaskがiscompletedになる前に終わっちゃう?

856 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 09:31:02.68 ID:uShMkUYk0.net]
始めからcompletedなTaskが返る

857 名前:デフォルトの名無しさん [2017/11/25(土) 12:39:27.40 ID:8Imfk/az0.net]
>>841
???

858 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 14:45:48.16 ID:yDO/xVL00.net]
private Task<bool> MyTask()
{
 return Task.Run(()=>{a=b;c=d;;return true;});
}
で良いと思うんだわ。戻り値が何故必要なのか知らんが



859 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:00:28.46 ID:ROI3Hzdd0.net]
>>812
場面によるが 「何もしない」ではなく、asset(0) を書く、というのはやる
そうなるようにすべて条件をきっちり列挙するようにしている、c# にアサーションはありますか?

860 名前:デフォルトの名無しさん [2017/11/25(土) 17:12:39.27 ID:JSTnYDsg0.net]
>>841
上のやつってTask<Task>が返ってくるの?

861 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:18:13.44 ID:KwQ02SYsp.net]
ワッチョイ末尾forRは大学から書き込んだりIDコロコロ変える煽りガイジなのでNGname推奨

862 名前:デフォルトの名無しさん [2017/11/25(土) 17:20:24.36 ID:JSTnYDsg0.net]
x 変える o 変わる
ササクッテロも煽りカスなのでNG推奨

863 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:35:24.80 ID:KnGPLM4Ka.net]
何度も同じこと言って申し訳ないけど、だからワッチョイだのIDだのって嫌いなんだよね。

こういう他人にネチネチ粘着する馬鹿を喜ばせるだけのことで、
本来の目的であったはずの荒らしに対する抑止力どころか、かえって逆効果にしかならない

しかしさあ、いつも思うんだけど「誰かに粘着してやろう」とか思う奴って
どういう思考回路してるのかね。

俺には粘着する側の負い目を語るに落ちてるようにしか見えないけど、
テメエを客観視する能力ってものがないのかねw

864 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:41:28.81 ID:P4DLYtAR0.net]
っ[ 鏡 ]

865 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:47:24.32 ID:4eIXfHS3M.net]
>>850
しかしさあ、いつも思うんだけど、毎回この「いつも思うんだけど、〜、かねw」パターンのレスを繰り返す奴ってどういう思考回路してるのかね。
俺には認知症か記憶障害にしか見えないけど、
テメエを客観視する能力ってものがないのかねw

866 名前:デフォルトの名無しさん [2017/11/25(土) 17:57:34.25 ID:pvPgs+4u0.net]
大丈夫かこのスレ?w

867 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:59:21.22 ID:+aAkFYw20.net]
>>851
無茶苦茶イケメンが写ってる

868 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 18:03:20.01 ID:D6HLQxmJ0.net]
>>850
無かったらないで気持ち悪い自演をする奴がいるからあったほうがいいよ
こっちのが連投中の単発IDは信用に値しないだけだし



869 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 18:30:56.28 ID:FtBpL/BP0.net]
>>852
その人は10年以上それやってるからほっといてあげて

870 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 18:33:11.33 ID:ROI3Hzdd0.net]
>>850
ID は良かったともうよ、期限付きで連投荒らしを排除できるからね
土方キチガイちゃん、今はどうしているのかな…

871 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 19:10:27.33 ID:59PrSiyL0.net]
>>852
自己紹介?

872 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 20:33:11.25 ID:mXV87WPlr.net]
>>846
ある

873 名前:デフォルトの名無しさん [2017/11/25(土) 20:47:38.24 ID:UxolN1FL0.net]
(´・ω・`)linqってマジックみたいにむちゃくちゃすごいってほんとなの?
C# っておぼえるのむずかしいの?

874 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 20:58:40.30 ID:oOkyLeSsM.net]
>>860
C#はメジャーな言語の中では特別難しいわけではないがどっちかというと難しめの部類
もともと他言語の経験者向けに作られた言語なので、他の言語の経験があればわりとすんなり入れる
反面、プログラミング自体の初心者には「なんでそんなことをするのか」と感じる部分が多く馴染みにくいと思われる
C#

875 名前:ノ限ったことじゃないが、プログラミング自体が初めてなら最初は誰でも血を吐き地獄を見て自分の無能さに絶望するもんだ []
[ここ壊れてます]

876 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:05:19.12 ID:D6HLQxmJ0.net]
>>860
linqガイジ自演やめろ

877 名前:デフォルトの名無しさん [2017/11/25(土) 21:18:11.07 ID:pvPgs+4u0.net]
>>860
linqじゃなくてもjavascriptでも同じこと出来る

878 名前:デフォルトの名無しさん [2017/11/25(土) 21:20:36.41 ID:UxolN1FL0.net]
(´・ω・`)そうなんやー



879 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:44:29.45 ID:+Jz8ZPqE0.net]
>>861
> プログラミング自体の初心者には「なんでそんなことをするのか」と感じる部分が多く
具体的にどんなところ?

880 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:13:03.23 ID:P4DLYtAR0.net]
コンソールアプリケーションから学んでけば、そんなでも無いと思うけどな
いきなりGUIじゃ訳分からなくなるのも当然っつーか

「今は分からないだろうけど、取り合えずおまじないと思って書いといて」
的なお約束なんて、Cでもあるもんだし

881 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:22:22.08 ID:oiqZXgpT0.net]
初心者なら「なんでstringだけnullableなんだよOptionとかねーのかよ」と思うだろう

882 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:26:45.83 ID:P4DLYtAR0.net]
そんな事を言い出す初心者嫌だわ

883 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:51:32.94 ID:yrhFfhmW0.net]
>>865
newするところだろww

884 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:55:41.38 ID:N5s7ffCaM.net]
何故stringはnewがいらないの?

885 名前:デフォルトの名無しさん [2017/11/25(土) 22:56:21.40 ID:pvPgs+4u0.net]
リテラルで省略できるから

886 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:01:32.05 ID:+Jz8ZPqE0.net]
>>869
そう言うつまんない返し要らんし

887 名前:デフォルトの名無しさん [2017/11/25(土) 23:03:29.13 ID:8TvkEmrh0.net]
クッソおもろい見本回答を見せてくれ

888 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:12:07.91 ID:+Jz8ZPqE0.net]
>>873
アホなのか?
面白い回答なんて求めてない



889 名前:デフォルトの名無しさん [2017/11/25(土) 23:13:26.66 ID:mL7zXSYF0.net]
アホにもわかるように説明してくれ

890 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:15:22.09 ID:+Jz8ZPqE0.net]
>>875
>>865の質問の意味がわからないなら黙っていてくれ

891 名前:デフォルトの名無しさん [2017/11/25(土) 23:17:09.05 ID:mL7zXSYF0.net]
>>87のレスがダメな理由をアホにもわかるように説明してくれ

892 名前:デフォルトの名無しさん [2017/11/25(土) 23:17:56.98 ID:pvPgs+4u0.net]
>>870のレスがダメな理由をアホにもわかるように説明してくれ

893 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:19:55.08 ID:ebsrSawd0.net]
>>867
stringはclassだからnullableなのは当然じゃね?
どこに引っかかっるのか分からん

894 名前:デフォルトの名無しさん [2017/11/25(土) 23:22:51.70 ID:pvPgs+4u0.net]
nullableじゃない他の言語があるってことじゃね?知らんけど。

895 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:28:42.07 ID:ebsrSawd0.net]
>>878
string はimmutableだから

newが要らないというより
newが必要となる状況がない
newしてインスタンス作っても
そのインスタンスのプロパティを変更する術がない
immutableだから

896 名前:デフォルトの名無しさん [2017/11/25(土) 23:29:51.79 ID:pvPgs+4u0.net]
>>881すまん安価ミスってたわ
>>869のレスがダメな理由な。

897 名前:デフォルトの名無しさん [2017/11/25(土) 23:30:52.77 ID:pvPgs+4u0.net]
872 デフォルトの名無しさん (ワッチョイ 5fb3-CDhT)[sage] 2017/11/25(土) 23:01:32.05 ID:+Jz8ZPqE0

>>869
そう言うつまんない返し要らんし




898 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:58:41.99 ID:A9/gx1Z/0.net]
流れをぶった切って申しわけないが
container.Resolve<IEventAggregator>().PublishOnUIThread(new MaxProgressMessage(FileList.Count));
が長すぎて幻滅してるんだ、短かくする方法ない?



899 名前:デフォルトの名無しさん [2017/11/26(日) 00:01:18.75 ID:esrARD9/0.net]
無いだろ。
分解するくらいしか

900 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 00:09:31.88 ID:8WHK08hV0.net]
長くて見づらいというなら改行したらだめかね

901 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 00:31:14.56 ID:2r+x+WFfM.net]
手段を問わないならジェネリックメソッドでも書けば短くなるだろう

902 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 00:37:23.82 ID:E6i9SBGc0.net]
その呪文は必ず出てくるやつだから、ベースクラス作って埋め立てて見えなくするのも手だ

903 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 06:55:45.07 ID:sYAKtbjg0.net]
>>888
何を召喚する呪文?

904 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 07:32:40.07 ID:pGcZHtwF0.net]
>>882-883
>>869のどこが
> プログラミング自体の初心者には「なんでそんなことをするのか」と感じる部分
なのか詳しく書いてみ

905 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 07:45:26.48 ID:KNE4EyEa0.net]
>>890
だから、newするとこだろ

906 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 08:16:58.08 ID:pGcZHtwF0.net]
>>891
理由を書け
とアホにもわかるように書かないとダメなの?

907 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 08:17:27.00 ID:E6i9SBGc0.net]
>>889
vdlz.xyz/Csharp/ToolKit/MVVM/Prism/Tutorial/010_EventAggregationQuickStart.html
こんなやつを使うための前準備

908 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 10:40:50.07 ID:2r+x+WFfM.net]
横からだけどnewする意味が分からなかった
無駄に見えた

AAA aaa = new AAA();

それとAAAが二回書かないといけないのも無駄に見えた
今はvarがあるからいいけど

c++だと AAA aaa;でオブジェクトができる



909 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 10:59:28.85 ID:5qF5LlC+0.net]
そこはC++で比較するなら、

AAA* aaa = new AAA();

でないの

910 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:05:35.98 ID:5qF5LlC+0.net]
もっと言うなら、参照型だからnewが必要になるんであって
C#のクラスは全て参照型だから、ってのが理由でしょ

911 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:06:13.70 ID:v4Gq1kEY0.net]
newが分からないって人はおそらく
C#がというよりオブジェクト指向が分かってない

912 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:19:31.24 ID:sYAKtbjg0.net]
"Hello, world." 出力させるだけなのになんでなんでこんなに長いコードが必要なのかと思ったわ

913 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:21:24.75 ID:5qF5LlC+0.net]
エントリポイントがあって、入出力のライブラリを読み込まなきゃいけないからしゃーない
……というのを理解する為に、基礎知識って必要なんすよな

914 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:26:52.04 ID:KNE4EyEa0.net]
>>897
分からない じゃなくて、 初心者のころ分からなかった。

915 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:27:52.79 ID:fisQ6o8j0.net]
コンソールアプリを作った時のmain関数の戻りが何故voidがデフォ?

916 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:28:34.60 ID:KNE4EyEa0.net]
この流れどうでもいいわ
>>861は責任とれよ

917 名前:デフォルトの名無しさん [2017/11/26(日) 12:27:12.72 ID:xDPLX0UM0.net]
ゴミスレ

918 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 12:59:52.42 ID:pGcZHtwF0.net]
>>902
絡んできて最後はこれかよ w



919 名前:デフォルトの名無しさん [2017/11/26(日) 19:53:03.03 ID:esrARD9/0.net]
今更だけどスレタイのふらっとって♭とかかてんだな
今気づいたわ。考えた奴センスあるな

920 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 05:07:40.67 ID:zYU8hzi70.net]
「C#」の失敗は
↑この名前そのもの。
名前に記号を含んだことでネット検索などでの調査が非常にしずらい。
現にこのスレのタイトルは検索で辿りつけるようにシャープを3種類(#,♯,#)も使っている。

921 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 05:28:02.06 ID:J9PNM2DU0.net]
C言語よりマシ

922 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 06:39:27.91 ID:mxmQS4Eu0.net]
Goなんてグーグルで検索するの大変、グーグルなのに

923 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 07:17:04.00 ID:U9yOEuDb0.net]
APLよりはマシ

924 名前:デフォルトの名無しさん [2017/11/27(月) 07:57:54.24 ID:9arhdycY0.net]
普通に検索できるけど。
https://i.imgur.com/JuJbkc6.png

925 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 08:30:46.44 ID:ENOa9M21M.net]
>>906
> 名前に記号を含んだことでネット検索などでの調査が非常にしずらい。
いつの時代で止まってるんだよ w

926 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 08:32:52.42 ID:Oy0eCX2Rr.net]
検索で苦労したのは初期だね
ある程度広まると普通に検索できるようになった
Google先生をなめてはいけないw

927 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 11:20:17.01 ID:moQmEOhzM.net]
>>906
Google舐めんなよ、c#の検索で困ったことはないぞ

928 名前:デフォルトの名無しさん [2017/11/27(月) 11:56:36.72 ID:YP5p2xtB6.net]
名前の短さとユニーク性から言って他の言語の中で1番検索が手軽だろ



929 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 12:42:18.81 ID:XW1caEg1p.net]
記号よりもCの派生みたいな名前しといてわりとそんなことない方が問題

930 名前:デフォルトの名無しさん [2017/11/27(月) 15:04:54.85 ID:Nt2T9amD0.net]
Golang

931 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 17:16:49.94 ID:cJelrrxv0.net]
でも初期はヒット数皆無だったね

932 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 17:45:58.74 ID:6f5qj3RBd.net]
>>917
昔々

933 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 18:04:10.89 ID:vgvtax0D0.net]
初期ってXP発売当時=21世紀の最初の頃だよな

934 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 19:10:17.82 ID:OWKhgpwq0.net]
>>915
まあどっちかっつーとDelphiの流れを汲んでるからな

935 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 19:51:53.13 ID:cJelrrxv0.net]
windows7出たあたりのときもc#とか記号入りの語句の検索に
Google自体が弱かった

936 名前:デフォルトの名無しさん [2017/11/27(月) 20:08:46.06 ID:kbE8zzrJ0.net]
英語圏だとc sharpとかやるのにお前らなんでシーシャープとか検索の工夫せんのや?

937 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 20:11:02.29 ID:za1uA7lb0.net]
スレで聞いたり回答はしても自分でググらない人がいるのか
C# のあとに調べたこと書いて普通に見つかるのに

938 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 20:19:33.20 ID:GUxcPAnYM.net]
ドボンとか宇宙仮面みとけば良かったから問題ない



939 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 20:21:46.22 ID:ENOa9M21M.net]
>>917
記号を検索してくれなかったからな
なので演算子の検索とかも大変だった

940 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 21:37:45.69 ID:zPT1usJA0.net]
痴呆老人の繰り言のようだ

941 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 07:06:59.04 ID:SLs8Sy3DM.net]
ちょまどよりもドボンのが貢献度高いけどドボンはMSにスカウトされたの?

942 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 07:14:46.79 ID:SLs8Sy3DM.net]
C#でもDIしてみたいと思ったのですが、使うのは絶対にインターフェースなのでしょうか
抽象クラスを使ってる例を見ないので、ひょっとしたら抽象クラスは使わないのかと感じています

943 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 07:38:58.15 ID:vyISmGF6d.net]
>>928
必要があれば使うよ

944 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 08:44:27.50 ID:tn7hDAAkM.net]
>>928
インターフェース継承(必ずしもC#のinterfaceではなく、使う側からの見え方を継承するという意味ね)に抽象クラスを使うのは今時はあまり好まれない
規模の大きな開発だと、使われる側の前に使う側のクラスが先に実装されてしまうこともよくあるし、
いちいち個別に判断するより少々冗長になったとしても全部interfaceの方が分かりやすいし後で融通利くだろという考え方をすることが多い
抽象クラスを使って実装を共通化したい場合は、interfaceを抽象クラスが継承してそれを更に継承すればいい

945 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 09:16:48.34 ID:7U+HR4FY0.net]
インターフェースクラス自体いらんけどね

946 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 09:57:15.96 ID:QXpLTJ6d0.net]
インターフェースはクラスじゃないんだが、そこら辺から勉強やり直したほうが良いと思う

947 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 09:58:37.73 ID:7U+HR4FY0.net]
>>932
インターフェースいらん
何かメリットある?

948 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:04:21.92 ID:QXpLTJ6d0.net]
>>933
例えばusing構文は、interfaceに依存しているけど
アレ便利だと思わん?



949 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:06:06.04 ID:7U+HR4FY0.net]
>>934
思わん
実際意図通りに動くかどうかは中身を見ないとわからんから
usingで書いたけどリークしたりとかあるあるじゃん

950 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:07:25.71 ID:7U+HR4FY0.net]
他には?

951 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:07:35.24 ID:PGwr6nW1M.net]
>>927
ドボンの中の人は匿名で出たがりじゃ無いのでオファーが有っても断ってるだろうな。

952 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:14:53.34 ID:7U+HR4FY0.net]
そもそも不特定多数が突然触る環

953 名前:境って開発じゃないよな
ちゃんと設計してから組むのが当然であって
どんな場面を想定してるのか全くわからない
インターフェースを統一しようがどうだろうが必要なデータを必要なだけしか渡さないでほしい
[]
[ここ壊れてます]

954 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:15:16.01 ID:QXpLTJ6d0.net]
>>935
usingはDisposeを呼び出すだけの機能なんだから、バグが有るなら実装したアンタの責任だろ

955 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:16:56.59 ID:7U+HR4FY0.net]
>>939
別に俺が作ったときの話してるわけじゃない
そもそも俺はこのクソ機能嫌いだから使ってない

956 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:20:37.75 ID:7U+HR4FY0.net]
標準ライブラリぐらい共有されてるソースでしか使わないほうがいいんじゃない?
コミュニケーションコストが大きくない?
ドキュメントもそれなりに書かないとどこの誰向けのインターフェースなのかわかりにくい
お客様に使わせる前提?
サンプルソース用意した方が良さそうだし

957 名前:デフォルトの名無しさん [2017/11/28(火) 10:29:54.52 ID:c9nafor26.net]
抽象クラスだと一個しか共通機能付けれないじゃん。

958 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:37:12.94 ID:fCILQp+K0.net]
だからBindableBaseは使いにくいんじゃハゲ言われても
毎回INotifyPropertyChangedを実装してる方が毛根に悪いだろ



959 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 11:03:18.93 ID:PGwr6nW1M.net]
また、基地外湧いてる

960 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 11:05:45.21 ID:yuNzgourM.net]
>>944
ブーイモで認定とかないわ

961 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 11:31:18.53 ID:PGwr6nW1M.net]
会社の回線使って5ch見るとツーホーされるんでw

962 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 12:13:04.45 ID:AHd0O/Rna.net]
どうせならstaticおじさんパロって「しっくりこないんです」って言ってほしかった。
まあ、どっちにしろ面白くないよ悪いけど。

2chだからって無理して道化を演じなくてもいいんだよ。
20年前30年前ならわかるけど、まさか2017年にもなってネットの掲示板に書き込むことが
君にとって非日常なのか?w

963 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 12:21:50.69 ID:OnZeiLZr0.net]
2006年からC#スレにいる奴にとってはもはや日常を越えてるよな

964 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:01:21.00 ID:vyISmGF6d.net]
>>931
インターフェースクラスwww

965 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:17:00.01 ID:yuNzgourM.net]
staticおじさんは小難しい仕組みを延々と語ってたけど
俺は単純にメンバ変数がグローバル変数化するのが嫌でクラス使うのやめた

966 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:24:48.88 ID:7U+HR4FY0.net]
>>949
インターフェースのメリットを説明できないからそういうレスするんだよね
なにも作れないから言語の機能だけ覚えて身を固めたんでしょ?
説明をさせるとメッキが剥がれちゃうんだよね?

967 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:42:38.72 ID:7U+HR4FY0.net]
相手も想定してないのにインターフェースなんて意味ないって
誰に提供したいインターフェースなの?
ただ趣味で作ってるゴミコードなんでしょ?

あ、usingがメリットとか言ってたっけ?
アレのどこがメリットなんだよ
使うたびに実装できてるか中身確認しねーと解放できてるかもわかんねーじゃん
しかも明示的に実行されてるのかどうなのか見えなくなってるし

968 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:48:33.09 ID:bfhutU2GM.net]
>>952
> あ、usingがメリットとか言ってたっけ?
> アレのどこがメリットなんだよ
> 使うたびに実装できてるか中身確認しねーと解放できてるかもわかんねーじゃん
> しかも明示的に実行されてるのかどうなのか見えなくなってるし

詳しく



969 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:50:43.25 ID:7U+HR4FY0.net]
>>953
ブーイモじゃ嫌
でもusingが動いてるかどうかどうやって確認する?

970 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 14:24:36.03 ID:h4MoZ9j60.net]
普通にDispose書いたときに
Disposeが正しく動いてるかどうかを確認するのと
同じようにすればいいんじゃね
しらんけど

971 名前:デフォルトの名無しさん [2017/11/28(火) 14:25:39.80 ID:xJKXjbc10.net]
>>954
インターフェースのデメリットを説明できないからそういうレスするんだよね
なにも作れないから言語の機能だけ覚えて身を固めたんでしょ?
説明をさせるとメッキが剥がれちゃうんだよね?

972 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 14:33:47.59 ID:bfhutU2GM.net]
>>954
usingなんてシンタックスシュガーなんでdisposeコードは自動展開されている。
逆コンパイルしてILコードでも見とけ。

973 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 14:40:17.59 ID:7U+HR4FY0.net]
>>955
え?どこみんの?

974 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 14:41:56.97 ID:7U+HR4FY0.net]
>>957
それ、わかりやすいコードなの?
解析が困難になってない?

975 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 15:00:07.13 ID:bfhutU2GM.net]
>>959
そこは、それ食べられるの? 美味しいの? だろ。
美味しいかどうかはわからんがCLRは食うぞ。

976 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 15:09:47.65 ID:7U+HR4FY0.net]
>>960
(*゚∀゚)bブーイモは期待通り駄目だな

977 名前:デフォルトの名無しさん [2017/11/28(火) 16:23:31.62 ID:1xNDji3d0.net]
クラスの継承だと一個しか継承できないじゃん。
機能が被ってるけど親子関係にはないクラス作りたかったらそれぞれに同じ機能実装しないとダメじゃないの?どうやるの?

978 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 17:20:04.90 ID:Qe8OZN310.net]
多重継承



979 名前:デフォルトの名無しさん [2017/11/28(火) 17:35:52.85 ID:SapPVZy10.net]
それぞれで実装しないといけないのはどっちでも同じだけどインターフェースがないと親子関係にないクラスに同じ機能があることを明示できない。

980 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 18:34:11.84 ID:7U+HR4FY0.net]
>>964
はぁ?
どういうケース?

981 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 18:58:30.06 ID:AywzDJwi0.net]
おまえ、.NETのライブラリがインターフェースだらけだと知って
インタフェースはイラネって言ってるのか?

982 名前:デフォルトの名無しさん [2017/11/28(火) 19:05:52.27 ID:MQt2+v8o0.net]
>>965
どういうケースもクソもないだろ。
インターフェースってそういうもんだろ?
インターフェース使えば親子関係にないクラスでも同じ機能のメンバに同じ書き方でアクセスできるようにできるぞ。

983 名前:デフォルトの名無しさん [2017/11/28(火) 19:08:08.25 ID:MQt2+v8o0.net]
>>966
みんなが使うライブラリならインターフェース使ってもいいけど同じチーム内でしか使わないならそんなのいらないらしい

984 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:09:54.51 ID:7U+HR4FY0.net]
>>966
企業が全体に提供するものは有りだと思ってる
インターフェースを提供する側と使用する側が明確じゃん
ドキュメントも割りとしっかり書かれるだろうし
サンプルソースもあれば
テストもしっかりされてる

でも人売り派遣プロジェクトではコミュニケーションコストが上がるだけなので無駄
10人以内のプロジェクトでは無駄ぐらいに受け取ってくれていい

985 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:17:20.15 ID:AywzDJwi0.net]
>>968
ユニットテストでモック使うときはインターフェース使うけどね。

奴隷派遣の戦場ではインターフェース不要は認める。

986 名前:デフォルトの名無しさん [2017/11/28(火) 19:30:18.03 ID:MQt2+v8o0.net]
要するにインターフェースいるか要らんかは条件次第なのにインターフェース自体要らん(と言ってるように聞こえるようなこと)を言い出したそいつが諸悪の根源ってこと。

987 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:39:10.15 ID:Z6M2FdMEH.net]
俺が理解できないものは使わない ← これは正しい
俺が理解できないものは要らない ← 単なるおバカ

988 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:41:18.71 ID:7U+HR4FY0.net]
>>971
いや、大手ライブラリ提供側なら使ってもいいってだけで
メリットはさっぱりわからん
いらないんじゃない?



989 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:43:27.10 ID:muuNV74C0.net]
ソルジャーはインタフェースに定数を定義する

990 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:50:33.68 ID:1gCYrVqGM.net]
javaの様にinterfaceにトレイトを入れれば?

991 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:53:10.33 ID:w7dx9OeN0.net]
ジャップを以外に人売り派遣C#ユーザーなんかいねーから問題ねーだろ

992 名前:デフォルトの名無しさん [2017/11/28(火) 20:08:25.12 ID:A5IfF+7K6.net]
>>973
メリットはクラスになにかしらの共通の機能を次々と簡単に付加できること
そしてその機能を持ってるクラスのオブジェクトをまとめて処理可能

993 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 20:11:57.14 ID:1gCYrVqGM.net]
interfaceは必要なメンバーを持ってるよという印なだけで
機能追加は別な話

994 名前:デフォルトの名無しさん [2017/11/28(火) 20:15:05.35 ID:A5IfF+7K6.net]
どっちでもいい
例えばINotifyナンチャラとか付ければ簡単に新しい機能を付加できるしその機能があることをプログラムが知ることができる

995 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 20:34:10.41 ID:7U+HR4FY0.net]
>>978
俺もそう思う
機能追加は別だよね

996 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 20:36:14.43 ID:7MxKQMqJ0.net]
>>980
次スレ

997 名前:デフォルトの名無しさん [2017/11/28(火) 20:42:42.92 ID:A5IfF+7K6.net]
>>980
別だとしてもその実現の過程でインターフェースは必要になる
機能をペタペタ付加したいなら基底クラスの継承だけで共通化するより簡単になる

998 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 21:32:30.59 ID:7U+HR4FY0.net]
>>981
ふらっと C#,C♯,C#(初心者用) Part134
mevius.5ch.net/test/read.cgi/tech/1511872248/

mateの機能使ったらワッチョイ付いてなかったw



999 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 21:34:31.90 ID:7U+HR4FY0.net]
>>982
え?別にいらないし俺は
お前しか使ってないんだからお前が説明しろよw

1000 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 21:46:03.84 ID:Uj4nMEBrr.net]
>>972
ww
まあよくいるけどね
そう言う人達

1001 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 22:06:45.64 ID:+2YCkirN0.net]
>>984
初心者ならインターフェイスは不要
if使ってクラスごとに場合分けして書けば対応できる
この書き方が冗長だと感じたときに必要になる

1002 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 22:10:01.45 ID:7U+HR4FY0.net]
>>986
昔はそういうのもあったかもしれんけど
今は明示的に書くことのわかりやすさの方を優先してるから
ゴミにしか見えないや

1003 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 22:17:35.16 ID:s2z2xmpX0.net]
>>987
はいキチガイ

1004 名前:デフォルトの名無しさん [2017/11/28(火) 22:29:51.83 ID:g1MyZtTV0.net]
クソスレ

1005 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 04:01:41.95 ID:GKLQJ/Lf0.net]
クソレス

1006 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 06:39:28.26 ID:72enVETJ0.net]
>>952
これインターフェイス関係なく普通の継承でもそうじゃん
StreamのDisposeを使うときはあらゆる実装を確認するのかな

1007 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 07:04:15.95 ID:YmbiuT7DM.net]
staticおじさんは直ぐに意固地になる

神が人間クラスにstaticおじさんインターフェースをimplementsした上、加齢により意固地になるメソッドに実装書かれたから

1008 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 08:19:51.68 ID:rMr3voC10.net]
>>991
だから企業が提供してるなら有りって言ってんじゃん
でも手作りならやめるべき



1009 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 08:39:14.71 ID:VYTpT9vMM.net]
>>993
ほんと中途半端な実装は迷惑だよね。
中身を見て殺意を覚

1010 名前:えるようなのがあるよ。 []
[ここ壊れてます]

1011 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 09:31:54.46 ID:rMr3voC10.net]
>>994
お前が自分はそうじゃねぇって思ってるならその考えを改めるべき

1012 名前:デフォルトの名無しさん [2017/11/29(水) 09:33:48.08 ID:bodUKsOx0.net]

   ̄ヽ、   _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     `'ー '´
      ○
       O
         ,r"´⌒`゙`ヽ
       / ,   -‐- !、
      / {,}f  -‐- ,,,__、)  と思うゴリラであった
    /   /  .r'~"''‐--、)
  ,r''"´⌒ヽ{   ヽ (・)ハ(・)}、
 /      \  (⊂`-'つ)i-、
          `}. (__,,ノヽ_ノ,ノ  \
           l   `-" ,ノ    ヽ
           } 、、___,j''      l

1013 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 10:01:47.13 ID:+NOPuT/4p.net]
やけに盛り上がってると思ったらおじさん湧いてたのかぁ

1014 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 10:29:15.32 ID:rMr3voC10.net]
>>997
お父さん(白い犬)チッス

1015 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 10:49:50.75 ID:gShtlFNMd.net]
まだいたのかキチガイ

1016 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 11:07:12.42 ID:VFisOLC/M.net]
>>999
同一人物か?
いくつ端末持ってんだ?
ガイジ過ぎるw

1017 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 21日 13時間 55分 47秒

1018 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef