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


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



1 名前:デフォルトの名無しさん mailto:sage [2019/07/16(火) 15:36:23.74 ID:i1fbuZ/pM.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

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

■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part143
https://mevius.5ch.net/test/read.cgi/tech/1558002486/

■情報源
https://docs.microsoft.com/ja-jp

552 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 13:30:16.71 ID:I5nGSvp60.net]
Occam 呼んだ〜

553 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 13:38:31.81 ID:qBxw88Xh0.net]
Convert呼び出した側がOpacityとか勝手に変えたりすることがないことが明らかなら
SolidColorBrushで持っててもいいよ

554 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 13:43:03.96 ID:TB1/9ae/0.net]
>>544
上記のコードは色以外は初期化したいっていう意図だったんですね
理解出来ました、どうもありがとうございます。

555 名前:デフォルトの名無しさん [2019/09/06(金) 20:41:34.27 ID:QErA9RfTd.net]
return HttpResponseMessage {
StatusCode=HttpStatusCode.InternalServerError


これでクライアントにレスポンス返しても、クライアントで受け取ったレスポンスコードが200になるんだが、どうすりゃ良い?

556 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 23:59:27.95 ID:2XeZAy8C0.net]
short lo = 500;
short hi = -1;
int value = hi << 16 & lo;

上記のプログラムでvalueに期待する結果が格納されません。
valueの右辺へおかしいところありますか?

557 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 00:04:12.02 ID:1iyY1sdc0.net]
まず期待結果を教えろよ
脳内に格納したままで喋るな

558 名前:デフォルトの名無しさん [2019/09/07(土) 00:35:07.80 ID:lng4b11Wa.net]
ぶっ飛んでるねw

559 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 00:47:49.03 ID:lKqYze8d0.net]
>>547
なんとなく&(and)と|(or)を間違えてる気がするけど、期待値書いてくれなきゃ分からんねw

560 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 01:10:23.93 ID:ClfuNVBY0.net]
>>547
ビット演算?をしてる割には
unsignedじゃないのが気になった



561 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 01:21:40.06 ID:SOW3zbb30.net]
C派生のシフト演算子ってビット演算子よりも優先順位低いんじゃなかったか?
C#で入れ替わったのかもしれんが

562 名前:デフォルトの名無しさん [2019/09/07(土) 01:30:36.24 ID:spGdC07na.net]
型変換か?

563 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 01:31:47.20 ID:l9Sxm6Vo0.net]
>>552
docsに演算子の一覧と優先順位がある
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/

564 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 01:52:37.97 ID:lKqYze8d0.net]
>>552
逆だぞ
Cの時から

565 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 01:57:56.73 ID:7Z6eBjmW0.net]
?はもっと上げてほしい

566 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 01:58:53.26 ID:7Z6eBjmW0.net]
じゃなくて??

567 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 11:12:31.90 ID:53qID/ifa.net]
async/await、読みやすいし書きやすいけどな。

568 名前:デフォルトの名無しさん [2019/09/07(土) 11:14:11.92 ID:LlCffhcK0.net]
https://www.youtube.com/watch?v=O8ucIQA829w
Introduction into StockSharp training course

どうこれVisual Studioってこんなに速く作れるの?
自分で自動売買ソフト組めるってすごくね?

569 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 13:42:14.17 ID:mFi2C/Ml0.net]
クラスの継承について分からくなってしまったので教えて下さい。
以下のプログラムを実行すると、コメントの通り、False, True と表示されます。

[STAThread]
static void Main(string[] args)
{
  var desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
  var folderItems = new Shell32.Shell().NameSpace(desktopPath).Items();
  Console.WriteLine(folderItems is Shell32.FolderItems2); // False と表示される
  Console.WriteLine(folderItems is Shell32.FolderItems3); // True と表示される
}

Shell32.FolderItems3 は Shell32.FolderItems2 を継承しているので
2つ目が True なら必ず1つ目も True になると思っていたのですが、
これはどのようなことが起こっているのでしょうか。

FolderItems2 object
https://docs.microsoft.com/ja-jp/windows/win32/shell/folderitems2-object

FolderItems3 object
https://docs.microsoft.com/ja-jp/windows/win32/shell/folderitems3-object

.Net Framework 4.7.2 でコンパイルし、Windows 10 Pro で実行しました。
よろしくお願いいたします。

570 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 13:57:18.69 ID:+ClizqJ4d.net]
下記 は子フォームから親フォームへのデータ引き渡しのサンプルです。
ShowDialog(); の戻り値を使ってないのですが、ここがよくわかりません。

static public List<object> ShowForm2(List<object> argObjs) {
using (Form2 subForm = new Form2(argObjs)) {
subForm.ShowDialog(); // 戻り値は?
return subForm.resultObjs;
}
}

現在はデータの受け渡しは ShowDialog(); で表示、DialogResult を受け取り、これで処理を分岐。
これだと呼び出し側が少し膨らむと思って探していたサンプルが上のやつです。



571 名前:デフォルトの名無しさん [2019/09/09(月) 14:01:51.48 ID:FLVXg6p/0.net]
>>560
type of

572 名前: []
[ここ壊れてます]

573 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 14:25:45.50 ID:wj5pBZXU0.net]
>>561
それだけじゃ何とも言えないけど
ダイアログがキャンセルされたかどうかもresultObjsに含んでる
またはキャンセルされたかどうかは重要ではない
のどっちかでDialogResultは不要と考えたんじゃね
あとはただのチェック忘れか

574 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 14:33:19.47 ID:+8Zg4WGY0.net]
showdialogはあくまでサブフォーム表示中に
処理を進めないためだけに使っていて
表示したサブフォームがOKもキャンセルもない作りなら
返り値を使う必要がないんだろう

例えばファイルの検索処理とその経過を表示するだけの
サブフォームだったりするんじゃないかな

575 名前:デフォルトの名無しさん [2019/09/09(月) 14:44:41.43 ID:y33/yVcMa.net]
>>560
FolderItems2とかFolderItems3はあくまでVSによって作られた
ラッパークラスなんだと思うけど、たぶんこのラッパークラスには
元のCOMの継承関係は反映されないんだろう。

知らないけど。

576 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 14:54:29.42 ID:mFi2C/Ml0.net]
>>562
レスどうもありがとうございます。
申し訳ないですが、おっしゃりたいことが理解できませんでした。

>>565
レスどうもありがとうございます。
>>560 で貼り付けた URL は不適切で、
本来は以下の URL を貼り付けるべきでした。
申し訳ないです。

FolderItems2 Interface
https://docs.microsoft.com/en-us/dotnet/api/shell32.folderitems2

FolderItems3 Interface
https://docs.microsoft.com/en-us/dotnet/api/shell32.folderitems3

この .Net の説明を見てもやはり継承関係はあるようですし、

if (folderItems is Shell32.FolderItems3 folderItems3)
{
  Shell32.FolderItems2 folderItems2 = folderItems3;
}

のようなコードもコンパイルエラーにならないので、
継承関係があることは間違いないと思います。
また何かお分かりのことがあれば教えていただけると嬉しく思います。
よろしくお願いいたします。

577 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 15:06:55.45 ID:wj5pBZXU0.net]
COMにおける継承はメンバを引き継ぐという意味であってキャスト可能かどうかは別の話だから
.NETのコード上で明示的または暗黙的にCOMオブジェクト(のラッパ)をキャストした場合
QueryInterfaceが呼び出されてそのインターフェイスに変換できるかどうかオブジェクト自身に問い合わせる
だから共通型システム的には問題ない暗黙的キャストでもその下のQueryInterfaceで拒否される可能性がある

578 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 19:12:21.94 ID:ko6k1+RqM.net]
正規表現を教えてください。
先頭一文字は大文字アルファベット、
次の一文字は大文字アルファベットかスペース、
残り五文字が数字、です。
文字数は多すぎても少なすぎてもダメてす。

579 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 19:34:55.30 ID:N7SL81rE0.net]
[A-Z][A-Z\s]\d{5}

580 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 19:51:19.13 ID:P/8qmdeQ0.net]
C#でdxfファイルを読み込んでどんなCADデータかなと表示するにはどんな方法がありますか?



581 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 19:51:40.30 ID:+ClizqJ4d.net]
>>563
戻り値使わないとエラーでビルドできないと思ったんですが、こんな書き方あるんですね。

582 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 19:58:03.26 ID:ko6k1+RqM.net]
>>569
ありがとうございます!
できました!!

583 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 19:58:22.06 ID:8qRxx3SUa.net]
>>570
Autodeskのサイトからviewerが落とせたと思うがそれ使うんじゃダメなのか?
C#を使って何か独自のことがしたいの?

584 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 20:38:09.86 ID:/GXaCKPOd.net]
>>570
自力でレンダリングしてるらしきサンプル見つけた
https://www.codeproject.com/Articles/156522/DXF-Import-NET-Read-and-View-AutoCAD-Format-Files

585 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 21:02:37.25 ID:gB0pdJ5j0.net]
>>570
結構大変。DWGならlibreDWGってライブラリーがある

586 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 22:30:01.75 ID:/j9k/Fivd.net]
>>573
最終型は建築のキープランってものがあって、そこに無数の符号という記号が丸の中に書いてあるんだけどそこを色塗りをしたい。

>>574
ありがとうございます。
難解過ぎてゆっくり休みの日にでも読んでみます。

>>575
やっぱ大変そうですよね。調べてもなかなか...


C#スレはあったかいな。ありがとうございます!

587 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 00:00:22.11 ID:1SzE9pLa0.net]
一般人「ウィンドウ」
キモオタ「フォームがーーー」

588 名前:デフォルトの名無しさん [2019/09/11(水) 18:58:32.68 ID:YXyi8nZ+0.net]
フォームってなに?泡?

589 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 08:36:47.62 ID:XbTCqLqm0.net]
c#は食わず嫌いだったけど使ってみたら案外良かった
使いやすいように改良してるんだな

590 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 11:25:52.65 ID:QIiZhm2T0.net]
コントロールのタイマーの質問なんですが
private void Timer1_Tick(object sender, EventArgs e)
{
  MyClass myClass = new MyClass(this);

  myClass.//クラスの処理いろいろ

}
こう書くと毎回クラスが初期化されてしまいます
タイマー内で同じクラスのインスタンスを使い続けたい場合どのように書けばいいのでしょか?



591 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 11:31:00.31 ID:AZGZd9Ny0.net]
myClassをメンバ変数にする

592 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 11:40:42.95 ID:2zGYYD27p.net]
myClassなんて再利用性が皆無なネーミングすんなよ。

593 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 11:45:28.48 ID:joMf8nOja.net]
>>582
説明のための命名だろうよ

594 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 12:10:59.94 ID:V+BKjeIEM.net]
発達はコンテキストが想像できないから…

595 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 13:44:13.80 ID:j3ZoG8EK0.net]
>>582
aho

596 名前:デフォルトの名無しさん [2019/09/12(木) 14:02:29.31 ID:0aQt/zFJa.net]
>>580
タイマーのイベントハンドラを消して、適当なタイミング(例えばFormのLoadイベントとか)で
private void Form1_Load(object sender, EventArgs e)
{
var count = 0;
timer1.Tick += (snd, ea) =>
{
Console.WriteLine($"count = {count++}");
};
}

でもこれだとイベントの購読解除ができないので注意
っていうか、ジョークだから真に受けないでw

597 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 20:25:20.03 ID:QIiZhm2T0.net]
>>581
レスサンクス、そもそも宣言しないってことですか
それもアリかも、今回はインスタンス1個で済みそうだし

>>586
レスサンクス、むむむ、どうなるん?

>>582
めっちゃわかりやすいし

598 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 14:33:13.49 ID:FohQxIv6d.net]
>>587
コンストラクタかTickイベント(初回のみ)でTimerのTagプロパティにMyClassインスタンスを設定
senderからTagに設定されているインスタンスを取得して利用するってやり方もある

1タイマー1MyClassって感じの設計ならこっちの方がいいかもね

599 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 16:09:57.39 ID:GqasltTgM.net]
再利用性のないクラスの名前に拘り過ぎるのは
効率的に無駄だなと感じる

ライブラリ用のクラスは拘るけどね

600 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 17:07:26.51 ID:zz4VRjti0.net]
>>588
レスサンクス
だけど考えても理解できませんでした



601 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 17:17:29.19 ID:GqasltTgM.net]
これでいいじゃない

private MyClass myClass = new MyClass(this);

private void Timer1_Tick(object sender, EventArgs e)
{

  myClass.//クラスの処理いろいろ

}

602 名前:デフォルトの名無しさん [2019/09/13(金) 17:23:20.15 ID:65eTAicb0.net]
マイコラスの嫁がかわいい

603 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 17:47:41.70 ID:FohQxIv6d.net]
>>590
コンストラクタで、
Timer1.Tag = new MyClass(this);

イベントで
var myClass = ((Timer)sender).Tag as MyClass;

コンストラクタで作ったインスタンスがTimer1のイベントで使えるようになる
これで理解出来そう?

604 名前:デフォルトの名無しさん [2019/09/13(金) 17:49:44.94 ID:XXPMNkq8a.net]
>>590
たぶんこう
var mc = (timer1.Tag ?? (timer1.Tag = new MyClass())) as MyClass;

でもこんなアホなことやったらあかんw

605 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 17:59:46.24 ID:FohQxIv6d.net]
捕捉でsenderの扱いに馴染みがなくて分かりずらいなら
var myClass = Timer1.Tag as MyClass;
って直接コントロールを見てもいいかな

10個のタイマーでそれぞれクラス作るとかだと、メンバに持つのが嫌になるからそういう時に便利

606 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 21:09:16.91 ID:zz4VRjti0.net]
>>591
サンクスです、やってみました
//キーワード 'this' は現在のコンテキストでは使用できません。
thisがなければいけるのですが、

>>593
サンクスです、コンストラクタってMyClassでしょか?
Timer1.Tag = new MyClass(this);  //thisが受け付けてもらえません
仕方ないのでButton1_Clickに置きました
var myClass = ((Timer)sender).Tag as MyClass;  //myClassがNullになります
var myClass = Timer1.Tag as MyClass;   //こっちもNullになります

>>594
サンクスです、うまく動きました
でも正直あまり理解できてません

注:理解するのに時間がかかります

607 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 21:48:16.79 ID:PFGdVlPv0.net]
windows form で背景色を白から青にジョジョにアニメーションで変化させるには?
今のところコードは下記です。

void timer_Tick(object sender, EventArgs e){
// 白 255,255,255 // 黒 0,0,0
var a = textBox1.BackColor.A;
var r = textBox1.BackColor.R;
var g = textBox1.BackColor.G;
var b = textBox1.BackColor.B;

if (a == 255) { a = 1; }
var a = a + 25;
if (a >= 255) { a = 255; }

var r = textBox1.BackColor.R - 25;
if ( r <= 0) { r = 0; }

var g = textBox1.BackColor.G - 25;
if ( g <= 0 ) { g = 0; }

var b = textBox1.BackColor.B + 25;
if (textBox1.BackColor.B >= 255) { b = 255; }

textBox1.BackColor = Color.FromArgb(a, r, g, b);

// 終了条件チェック、
// 終了処理
}

608 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 22:11:07.86 ID:YdWi/cYta.net]
>>597
int counter = 0;
void timer_Tick(object sender, EventArgs e)
{
counter++;
counter %= 256;
textBox1.BackColor = Color.FromArgb(255 - counter, 255 - counter, 255);
}

609 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 22:12:15.08 ID:Gf0j4OgCd.net]
>>596
>>580 でMyClassにthis を渡しているから皆thisを渡してインスタンスを作ってんだけどthisいらないの?
いらないならthisは消していいよ

610 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 22:27:35.64 ID:zz4VRjti0.net]
>>599
いやthisは欲しいです、Class内からtextboxコントロールのメソッド触りたいので
form1渡してます



611 名前:デフォルトの名無しさん [2019/09/13(金) 23:44:37.81 ID:aO4dryeFa.net]
>>597
やってみた
public partial class Form1 : Form
{
  private Stopwatch mStopwatch = new Stopwatch();

  public Form1()
  {
    InitializeComponent();
  }

  private Color BlendColor(Color a, Color b, double pos)
  {
    Func<int, int, int> blend = (i, j) =>
    {
      var x = Math.Round((1 - pos) * i + pos * j, 0);
      return Math.Min(255, (int)x);
    };

    var A = blend(a.A, b.A);
    var R = blend(a.R, b.R);
    var G = blend(a.G, b.G);
    var B = blend(a.B, b.B);
    return Color.FromArgb(A, R, G, B);
  }

612 名前:デフォルトの名無しさん [2019/09/13(金) 23:44:54.82 ID:aO4dryeFa.net]
  private void button1_Click(object sender, EventArgs e)
  {
    mStopwatch.Restart();
  }

  private void timer1_Tick(object sender, EventArgs e)
  {
    var timeout = 5d;
    var elapse = Math.Min(timeout, mStopwatch.ElapsedMilliseconds / 1000d);
    var pos = elapse / timeout;
    BackColor = BlendColor(Color.White, Color.Blue, pos);
  }
}

613 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 02:16:18.45 ID:BYSNLn3J0.net]
>>600
コンストラクタやフィールドだとthisって使えないんだっけ?
それならこれでいけるかな
Tagの方も同じ感じでいけるはず

private MyClass myClass;

private void Timer1_Tick(object sender, EventArgs e)
{
if(myClass = null)
{myClass = new MyClass(this);}

myClass.//クラスの処理いろいろ
}

614 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 09:11:10.12 ID:weYOKlpc0.net]
>>603
れすさんくすです
なるほど宣言と初期化をわけるのですね、うまく動きました

615 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 11:56:47.95 ID:vC+cN/7F0.net]
Action<T>は値型という解釈で良いのでしょうか?
var dic = new Dictionary<int, Action<float>>()という辞書に保持されているActionのメソッドを引いたり足したりしたいのですが、
下記のようにするとdicのvalueには反映されないようですが再度dicに追加してアップデートしないといけないということでしょうか?
var action = dic[1];
action += method; // action.GetInvocationList().Lengthを調べるとちゃんと足されてる一方、dic[1].GetInvocationList().Lengthは変化なし

616 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 12:17:37.64 ID:iAxlaW7xa.net]
デリゲートは参照型
action += method は文字通り action = action + method であり、結合後の新しいインスタンスが action に代入される
デリゲート同士の + は String と同様に言語仕様によって特別扱いされており、Delegate.Combine メソッドの呼び出しに変換される
ちなみにイベントに対する += は x.ev = x.ev + method ではなくプロパティと同様にxに対する特殊なメソッド呼び出しになる
作法的な話をすると、デリゲートのマルチキャストは歴史的経緯による遺物であり、イベントハンドラ以外には基本的に使わない方がいいよ

617 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 12:37:52.80 ID:vC+cN/7F0.net]
なるほど、action += methodは、action = new Action(action + method)的な形ということだったんですね
ありがとうございます

618 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 14:06:14.47 ID:nQc/7xFt0.net]
Windows form だとちょっとした色変えるだけのエフェクト書くの大変。

iPhone swift だと 下記みたいな 2行 でかけるのに。
UIView.animate(withDuration: 0.5, delay: 0.0, options:[]
, animations: { TextField.backgroundColor = .blue }
, completion : { _ in TextField.backgroundColor = .white } )

Form のクラスメソッドに色、透明度、位置、回転、大きさとかを変化させるアニメーション系のメソッド追加してほしいね。

619 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 16:27:56.54 ID:y7dkXYFS0.net]
>>608
そういう人はWPF使う方がええよ
mvvmにこだわらなければそんな差ないし

620 名前:デフォルトの名無しさん [2019/09/15(日) 11:17:21.32 ID:ZbgEJrYza.net]
今でも業務系のASPって、MVCよりWeb formsのほうが多い?



621 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 11:21:19.74 ID:0P7zcb1/0.net]
>>610
多いと言うか更改されずに腫れ物システムとして生き残ってるのが多いよ

622 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 11:23:22.76 ID:qUTb/lfg0.net]
>>610
ASPとASP.NETは違うよ

623 名前:デフォルトの名無しさん [2019/09/15(日) 14:39:22.86 ID:CYqvBFjrF.net]
ASP: Application Service Provider

624 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:44:41.18 ID:DjqXGTBC0.net]
>>612
aho

625 名前:デフォルトの名無しさん [2019/09/15(日) 17:46:02.32 ID:tc+PQ4bB0.net]
アスペルガー

626 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 18:48:25.55 ID:qUTb/lfg0.net]
>>614
お前がな

627 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 19:36:43.99 ID:50f2l1H40.net]
application hosting options

628 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 20:38:22.87 ID:IMDj4f3rd.net]
>>612
アプリケーションサービスプロバイダ(英語: Application Service Provider、ASP)とは、
アプリケーションソフト等のサービス(機能)をネットワーク経由で提供するプロバイダ(= provide 提供する 事業者・人・仕組み 等全般)のこと[1]。

広義にはこうした仕組みのソフトウェア提供形態やビジネスモデルまでも指す[1]。
https://ja.m.wikipedia.org/wiki/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80

629 名前:デフォルトの名無しさん [2019/09/15(日) 22:04:55.99 ID:ZbgEJrYza.net]
>>610です
>>612
ごめんなさい。自分が端折ってしまったのがいけませんでした。ASP.NETです
>>611
やはりそんな感じなんですかね。意外とASP.NET関連の求人が多いので保守メインなのか開発メインなのか気になったもので

630 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 22:31:35.04 ID:007yvQzV0.net]
ACTIVE SELF PROTECTION の求人だったりして
https://activeselfprotection.com/



631 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 01:27:46.19 ID:2BSu07WM0.net]
Bitmapを返すdllがあります(C#で作成)
それをWinFormsで参照し、Bitmapを受け取りたいのですが、空の?Bitmapが返ってきます。
デバッガでdll側がきちんとBitmapをreturnしているところまでは確認できました。
ほかにどごを見直せばいいでしょうか

632 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 01:45:47.54 ID:2BSu07WM0.net]
>>621
dll側をよく確認したところ、記述ミスがありました。
スレ汚ししてしまってすみません。

633 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 10:01:49.86 ID:z/LnXMaR0.net]
Process.Start()
で既に起動済みの外部コンソールアプリにコマンドを渡して結果を受け取りたいんですけど
どうすればいいですか?

634 名前:デフォルトの名無しさん [2019/09/16(月) 10:55:23.20 ID:1SVMjj7z0.net]
>>623
起動時に繋いどかないと後からは無理
cammy.co.jp/technical/2017/05/16/c-%e6%a8%99%e6%ba%96%e5%87%ba%e5%8a%9b%e3%82%92%e8%87%aa%e5%88%86%e3%81%ae%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%ab%e3%83%aa%e3%83%80%e3%82%a4%e3%83%ac%e3%82%af%e3%83%88%e3%81%99/

635 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 11:17:36.58 ID:TvwShLRF0.net]
>>623
processをどう作ったか書かないと

636 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 12:31:59.14 ID:z/LnXMaR0.net]
>>625
普通にこんな感じです

Process prc=new Process();
ProcessStartInfo psInfo = new ProcessStartInfo();

psInfo.FileName = "hoge.exe";
psInfo.CreateNoWindow = true;
psInfo.UseShellExecute = false;

prc.StartInfo = psInfo;
prc.Start();

コンソールアプリはすぐに終了せずに待機してくれるタイプです

637 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 12:42:54.00 ID:yFJZVYWt0.net]
>>626
自分でプロセスを起動してるなら入出力をリダイレクトするだけ
psInfo.RedirectStandardOutput = true
psInfo.RedirectStandardInput = true;

起動後は
proc.StandardInput.WriteLine("hoge");
proc.StandardOutput.ReadToEnd();
proc.WaitForExit();

638 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 18:45:14.27 ID:4wOD4j6P0.net]
ポリモーフィズムに関しての質問なんですけど
よくある例えでdogクラスのオブジェクトもcatクラスのオブジェクトもまとめてanimalクラスの配列で扱えるみたいなのあるじゃないですか
でも例えばこの時catクラスでだけ定義されてるフィールドがあったとして、配列に格納した途端アクセスできなくなっちゃいませんか
privateとかpublicは置いといて、たとえば、bool isPrettyとか定義されてたとして、animals[0].isprettyは無理じゃないですか。親クラスから子クラスで独自に定義されてるもんは触れられないですよね
とりあえずまとめて親クラスで持っておいて使う時になったら子クラスの情報使いたいみたいなときなんかうまくやる方法ってないもんですかね。

639 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 18:49:22.91 ID:6boldAmf0.net]
C#的にはパターンマッチングで分岐すればそれは可能だが
親クラスが持っていない情報を子クラスが持っている時点でそのクラス設計は疑わしい
その例ならanimalクラスにvirtual bool IsPrettyを持たせるべき

640 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 18:50:41.39 ID:fvAMDErgd.net]
そもそも使うものをまとめておくのが親クラスというかインターフェースや抽象クラスの役目なので、持ってるかどうかもわからないisprettyを使いたいのが間違ってる。無理やりやるんならリフレクションで存在確認するしかないよ



641 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 18:51:12.83 ID:6boldAmf0.net]
親クラスが持っていない情報というのは言い過ぎだな
親クラスが持っていないpublicプロパティを子クラスが持っているのは怪しい設計

642 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 18:54:14.01 ID:fvAMDErgd.net]
例えばヒゲのプロパティは猫しか持ってないと思うけど、そういう場合は is か as で具象クラスの型を確認してキャストして取ることは出来るけど、それはなんか気持ち悪い気がする

643 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 19:11:59.16 ID:6boldAmf0.net]
全動物のうち猫しかヒゲを持ってないわけじゃあるまいし
Animal型にNullable型のヒゲプロパティを持たせてそれがnullかどうかで処理を分岐させればいいだけでは

Animalクラスがヒゲを持ってるのは唐突過ぎると思うならFaceプロパティでも挟めばいい

644 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 19:13:48.81 ID:189yfApBd.net]
>>628
親クラスを無駄なメンバーで膨らませるのはバッドパターン。
インターフェイスを使うべき。

IPrety InterFace を付けたなんらかの型のリストをループすればいい。

// IPrety InterFace で拡張した型ならなんでもループで回せる。
if myUnit.isPrety == true {
myUnit.doSomething();
}

645 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 20:02:19.06 ID:5qQz1pKl0.net]
>>628
ダウンキャストしなされ
as クラス名;でよろし

646 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 20:15:43.47 ID:4wOD4j6P0.net]
色々勉強になりました
こう共通のメソッドとフィールドがあるからくくりだして親にしようくらいの気持ちだったんですけどぐぐったらそういうのそもそもダメらしいですね
素直に各クラスで同じフィールド定義して継承関係全部なくそうと思います。

647 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 20:16:03.96 ID:mLXav9Fo0.net]
まあそれだったらanimalに純粋仮想メソッド作ってCatにだけ必要な処理書くほうがいいって考えはわかる

648 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 20:45:51.61 ID:gcZDzsnLa.net]
>>631
えー、そうなんか
それけっこう使ってるなぁ、、、

649 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 21:13:37.27 ID:XDhMjXUv0.net]
.NET Framework の Object クラスを全否定してるじゃんw

650 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 21:14:22.17 ID:D+I+Wj20M.net]
親クラスが持ってないプロパティを子クラスが持ってるって
.Netですらわんさかあるじゃないの



651 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 21:15:50.88 ID:D+I+Wj20M.net]
あ、かぶった
機能を追加するために継承して関数やプロパティを増やすのが
ごく普通の設計じゃね
子クラスの全プロパティを親が網羅してたら使いにくいわ

652 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 21:42:46.98 ID:hXcOzvgxa.net]
機能を追加するための継承は現代的なOOPではあまり積極的には行われないんだよ
現代的なOOPにおいては実装継承は本質的に悪であるとされ、明確なメリットがある場合を除いて基本的に避けるんだよ
端的に言えば、抽象クラスを定義して、明確に拡張ポイントとして用意されたメソッドのみをオーバーライドする、
という使い方が今時の唯一の実装継承の使い方であると理解しておけばマサカリを食らうことはない
機能を追加したいだけなら継承する必要は全くなくて、ただそれぞれのクラスを別個に使うか、包含すりゃいいだけだ






[ 続きを読む ] / [ 携帯版 ]

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

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