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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/12/15(土) 10:46:07.45ID:Wu4Fx0bU
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
524デフォルトの名無しさん
垢版 |
2020/06/01(月) 23:32:51.74ID:5NIHbXOS
「慶應卒の学歴なんていらない」10代起業で成功する子の共通点
https://www.excite.co.jp/news/article/President_35457/
起業で成功するキャリア形成の仕方とは? 元プロサッカー選手で起業家の鈴木啓祐氏に聞いた
https://sogyotecho.jp/career-development/
【アプリ開発で起業】必要な心得とマネタイズ方法のすべて
https://www.dreamgate.gr.jp/contents/column/application-development
学生起業家が開発、「人を軸に本を探すアプリ」とは?読書通じて「考える力」養って
https://newswitch.jp/p/20168
島田商高生がアプリ考案、発表 ICT起業家育成プログラム
https://www.at-s.com/news/article/local/central/730010.html
医師コンビが「治療用アプリ」で起業、禁煙に続き高血圧治療アプリを開発
https://diamond.jp/articles/-/229375
好きが高じて“カレー起業”、キャッシュレス決済アプリ「TOKYO MIX CURRY」の挑戦
https://diamond.jp/articles/-/215868
525デフォルトの名無しさん
垢版 |
2020/06/03(水) 16:27:42.45ID:oijTauHo
三項演算子で null のときは
?? とか ?: とか省略方法があるようですが
値で 0 のときにチェックを省く方法はありますか?
a = b == 0 ? c : b;
a = b != 0 ? b : c;
みたいな場合に
a = b ?? c;
a = b ?: c;
とかの書き方無かったですか?
2020/06/03(水) 16:36:47.26ID:aceFZYCa
>>525
ないです
素直に0比較してください
nullはプログラム上重要な要素になるので特別な処理が作られました
527デフォルトの名無しさん
垢版 |
2020/06/03(水) 17:06:59.67ID:oijTauHo
int orz(int x, int y)=>x==0?y:x;

a=orz(b,c);
でいけました
ありがとうございました
2020/06/03(水) 17:20:41.93ID:mHZXtGhi
あまり意味ない上に、何やってるかわかりずらいようなしないでもないでもない
529デフォルトの名無しさん
垢版 |
2020/06/03(水) 17:22:01.95ID:oijTauHo
bの変数名が長い時面倒じゃないですか?
2020/06/03(水) 17:25:36.20ID:lKbflSVr
本人が満足しているんだしロジックに関わりすらしない部分で持つ変なこだわりが初心者らしくていいじゃないかw
2020/06/03(水) 17:25:43.29ID:Cpnc/jbv
>>529
3ヶ月後の自分に「こいつ死ねばいいのに」って言われるやつ。
2020/06/03(水) 17:32:59.89ID:aceFZYCa
気持ちはわかるが変数名メソッド名が文字数的に長い短いを気にしないほうがいい
正しく命名された内容であればたとえ20文字超えとかでも問題ない

エディタ周りが優秀になり強力な入力補間が効く現代で文字数が減ったところで何の恩恵もない

流石に50文字超えみたいなのは正しく命名されたとは思えないので論外ね
533デフォルトの名無しさん
垢版 |
2020/06/03(水) 17:33:38.70ID:qEEM9XSL
>>529
一回だけで済む方法もあるよ
if ((a = b) == 0) a = c;
2020/06/03(水) 17:40:32.41ID:69kHBPnK
ではプロのお方に考察してもらいたいんだが、
なぜLINQ(IEnumerable)にはListにはあるForEachメソッドが無いのかな?
2020/06/03(水) 17:42:54.79ID:HVvELZKL
>>534
テンプレ読めない人は退場
2020/06/03(水) 18:59:47.48ID:MPquea7T
どうせやるなら
static class IntExtension {
public static int ifZeroThen(this int val, int to) => val==0 ? to : val;
}
と拡張メソッドを作って
a = b.ifZeroThen(c);
2020/06/03(水) 19:56:42.20ID:VidMmCEg
考察も糞もねーよ
https://docs.microsoft.com/en-us/archive/blogs/ericlippert/foreach-vs-foreach
2020/06/03(水) 20:12:59.40ID:4PJ7L65K
「foreachは副作用を起こすためだけに存在する操作なのだから手続き型で記述すべき」というだけのことなんだが、
理解できない馬鹿は多いんだよね
2020/06/04(木) 04:52:58.23ID:kthDryXj
1bit脳に無理言わないでくれ
2020/06/04(木) 07:52:33.54ID:dmqdgjzk
Motorola MC14500か
2020/06/04(木) 14:02:05.72ID:q8whG3cq
それってビットスライスプロセッサと同じ?
昔、AMDのAm2900だっけ?
2020/06/10(水) 14:22:02.31ID:AUFXka/X
C#で自クラスを表すキーワードってありますか?
thisで自インスタンスを指すのと同じ要領で、
ILogger<This>みたいな書き方で自クラスを指し示せると便利なんですけど
2020/06/10(水) 15:14:27.84ID:spn5Hqr7
無いんで毎回書いてください
2020/06/10(水) 17:27:35.25ID:oCluTwmU
なにが便利なんだろう
2020/06/10(水) 18:53:25.86ID:spn5Hqr7
例示の通り全部のクラスにloggerのstatic instanceをコピペで置きたいんじゃない?
2020/06/10(水) 20:18:27.76ID:npA4+8k3
派生クラス内のbaseキーワードのthis版みたいなもんか
まあ気持ちはわからんでもないがエディタのリファクタで済む話でもあるしなあ
2020/06/10(水) 20:19:08.92ID:AUFXka/X
まさに>545がやりたいことでした
DIする全クラスにloggerを用意するルールになってて、
本体のクラスとILoggerのクラスが食い違ってるものがけっこうあって、
なにかそういう間違いを防ぐ方法がないかなあと思ったのですが

ないようなら間違えないように気を付けるしかないですね、わかりました
2020/06/10(水) 23:33:38.62ID:YByuqf7A
スニペット定義すればいい話じゃないの
なんでそんなクソみたいな需要のためにキーワード追加しなきゃならんのよ
2020/06/19(金) 03:25:40.20ID:o8JsoPqL
人種差別を肯定し、master というブランチ名を使うレイシストc# プログラマーのボーナスは全廃し、給与50% カット6ヶ月ぐらいすべき。
2020/06/19(金) 09:39:13.25ID:wB3O0HGg
mainという単語からは主流≒多数派ばかり優遇して少数派を蔑ろにする差別的な印象を感じる
2020/06/19(金) 21:57:34.06ID:bZZY8ExL
branchとかmergeとかもPC的にはそのうち禁止されるんじゃね?
2020/06/19(金) 22:34:43.07ID:wHZO34HU
PATAのデバイスついてるPCもアウトだな。masterにslaveだもの。
2020/06/19(金) 22:36:55.15ID:cGppewf8
コロナ感染源だからホストも禁止
2020/06/20(土) 03:28:44.15ID:ASLg4tM8
slaveは言い訳できないが、masterはいいだろ
言葉狩りの暴走は勘弁してほしい
2020/06/20(土) 03:44:34.61ID:cD8U+O2A
変数名やメソッド名全部に差別チェックが入る時代が来るぞ
556デフォルトの名無しさん
垢版 |
2020/06/20(土) 04:13:37.90ID:FLQMzrN5
くだらね
考えすぎだと思うよ
日本語でも主/従というがこれをpolitically incorrectだと言う人はいないでしょ
2020/06/20(土) 04:23:55.75ID:fYTLW7H/
外圧に簡単に屈するぞ?
2020/06/20(土) 04:26:17.64ID:ASLg4tM8
そんなことより、変数名に日本語使う会社の先輩を禁止にしてほしい
2020/06/20(土) 08:05:50.48ID:wP1jy1tm
>>558
良いじゃないか。
国民皆保険制度の健康保険の記号と番号なんて、
kenpoKigouとkenpoNoぐらいしかうまく当てられんぞ。
insuranceとはちょっと意味合い違うからな。
2020/06/20(土) 08:52:50.69ID:bhe8z7NH
そういうのって正式に英語名称が定義されたりしないの?
2020/06/20(土) 09:37:58.40ID:GUrzgoSo
全国の地方自治体向けに作られた翻訳システムがあるが英訳はめちゃくちゃわかりにくいぞ
区役所とかのホームページ見れば分かる
2020/06/20(土) 10:12:31.31ID:bhe8z7NH
プログラマが勝手に作ったローマ字使うくらいなら正式な英語あるならそれ使えばいいじゃん
わかりにくさはローマ字も一緒だし
それも嫌なら正式名称の日本語かな
日本語は入力がめんどくさい、isとかつけたら見づらいとかあるんで個人的には英語にしたいところ
2020/06/20(土) 10:20:29.03ID:cD8U+O2A
配偶者特別控除とか英訳した変数使われたら長すぎてたまらん
2020/06/20(土) 10:25:55.97ID:7xYXUXXu
こんなところでくだらん雑談されたらたまらん
2020/06/20(土) 10:44:13.15ID:bhe8z7NH
そんな長いのかと思ってググったら全然長くないじゃん
2020/06/20(土) 12:35:54.56ID:VKvCWYLS
>>560
必ずしも充足されてるとは言い難い。
まず政府管掌健康保険が協会けんぽに変わったから、云々、と歴史まで追いかけるときりがない。
それに、プログラマが勝手に決めないぞ。プロジェクトでコンセンサスとって対訳表作る。
2020/06/20(土) 12:52:11.90ID:bhe8z7NH
>>566
対訳表に則っているなら先輩が変数名に日本語使うのを禁止になんかできんだろう
規約を変えたいという気持ちならわかるが
2020/06/20(土) 13:33:06.13ID:VKvCWYLS
>>567
うん、だから禁止になんてする必要ないじゃないかって言ってる。
コンセンサスが基本だから、先輩後輩関係なくどうしても納得ができないと言い張れば変わるよ。
2020/06/20(土) 14:04:38.62ID:bhe8z7NH
>>568
元のレスの環境はわからんが対訳表なんかきっちり固めない規模なんだろう
だから個々人の裁量で進行する
世の中規約がきっちりしてるプロジェクトばっかならそもそもあんな愚痴なんて出ないよ
2020/06/20(土) 14:35:58.82ID:VKvCWYLS
>>569
まあそれもそうかもなぁ。
ただ正式名称が良いとは思うが、日本語マルチバイトで変数を使われるのは俺も嫌だ。
インテリセンスで泣けてくると思う。
2020/06/20(土) 22:15:40.53ID:mviXVPvw
出来もしないのに無理やり英語使われてもなあ
ソースコード読んで直す側としては、変数名で恥ずかしいスペルミスされたり見当はずれの英単語使われるくらいだったら
開き直って日本語の変数名にしてくれてるほうが100倍マシ
ローマ字表記はヘボン非ヘボンの混在だったり長音や「おう」の表記ゆれだったりでgrepできなくて迷惑
子音のみ表記は論外
2020/06/20(土) 22:52:27.79ID:Zs4RBEp5
shine←誰だ!ソースコードに死ねって書いた奴は!

お前が一番英語できねーじゃん
2020/06/20(土) 22:59:06.50ID:hRQ9XdbD
酔っぱらって雑談書き込みたい人はマ板に行けよ
2020/06/21(日) 13:48:49.92ID:wYwqTW6D
素面だったら失礼だろ…
2020/06/21(日) 20:17:32.76ID:aN4OBWpj
派生クラスのインスタンスが与えられていて、abstruct な基底クラスの virtual なメソッドを呼び出すにはどうすればいいでしょうか?

using System;
using System.Reflection;

namespace ConsoleApp1
{
class Base1
{
public virtual void method1()
{
Console.WriteLine("Base1 method1");
}
}

abstract class D1 : Base1
{
public override void method1()
{
Console.WriteLine("D1 method1");
}
}
2020/06/21(日) 20:17:46.82ID:aN4OBWpj
class D2 : D1
{
public override void method1()
{
Console.WriteLine("D2 method1");
}

public void callBaseMethod()
{
base.method1();
}
}


class Program
{
static void Main(string[] args)
{
D2 d2instance = new D2();
d2instance.method1();
d2instance.callBaseMethod();
Type d1type1 = d2instance.GetType().BaseType;
MethodInfo mi1 = d1type1.GetMethod("method1", BindingFlags.Instance | BindingFlags.Public);
mi1.Invoke(d2instance, null);
D1 d2asD1 = d2instance as D1;
MethodInfo mi2 = d1type1.GetMethod("method1", BindingFlags.Instance | BindingFlags.Public);
mi2.Invoke(d2instance, null);
}
}
}
2020/06/21(日) 20:20:09.44ID:aN4OBWpj
D2クラスのメソッド内からは base を使って D1::method1 を呼び出せますが、D2クラス外から D1::method1 を呼び出したいのです。
reflection を例のように試してみましたが、これではD2.method1 が実行されました。
2020/06/21(日) 21:33:25.88ID:PVQJTyJk
じゃあbaseでも返してやればいいじゃん
579デフォルトの名無しさん
垢版 |
2020/06/21(日) 21:35:29.29ID:X+exSJnj
>>576
ここの方法で一応出来た
https://stackoverflow.com/questions/43797869/how-to-call-base-method-from-derived-class-instance-in-c
何で出来るのかは聞かないでw
さっぱり分からん
2020/06/21(日) 22:28:34.53ID:aN4OBWpj
static void Main(string[] args)
{
D2 d2instance = new D2();
D1 d2asD1 = d2instance as D1;
MethodInfo mi5 = typeof(D1).GetMethod("method1", BindingFlags.Instance | BindingFlags.Public);
var dynamicMethod = new DynamicMethod("baseMethod1", mi5.ReturnType, new[] { mi5.DeclaringType }, mi5.DeclaringType);

var il = dynamicMethod.GetILGenerator();
il.Emit(OpCodes.Ldarg_0);
il.EmitCall(OpCodes.Call, mi5, null);
il.Emit(OpCodes.Ret);

dynamicMethod.Invoke(null, new object[] { d2asD1 });
}

これで
D1 method1
と出力されました。
何で出来るのかはさっぱり分からないけど、完全に理解したので、感謝の気持ちだけ送ります。
2020/06/22(月) 09:37:12.13ID:0XzJmbel
環境によって動かなくなるかもしんないことした?
2020/07/10(金) 21:20:51.69ID:X9xi9dVy
今までGUI作ったことなかったなーと思って勉強しようと思ったんですが今だとどれを勉強するのがいいんですかね
さすがにformsは古い?そうだけどWPF以降も色々と出ていてこのタイミングでどれをやるのがいいのか迷ってて
2020/07/10(金) 21:29:39.13ID:Yln2FJAO
>>582
就活用ならUnityでもやるのがいいんじゃね
そうじゃないのならVB6ですらWindows10で動くんだから古いとか気にする必要はないはず
2020/07/10(金) 22:13:58.78ID:3+C210Fo
正解はwebで
2020/07/10(金) 22:15:24.02ID:JuXuxxAz
OWINで
2020/07/11(土) 02:28:11.25ID:Xb91GAGB
続きはCM2の後で
587デフォルトの名無しさん
垢版 |
2020/07/11(土) 11:09:59.93ID:J0INoyBc
Unityに+1
Unityのゲームの中身じゃなくてEditorの方をおすすめ
2020/07/12(日) 21:38:45.35ID:aDzqciee
unityがおすすめなんですね。あれゲーム専用だと思ってました
もっぱら業務アプリばっかなんでそういう用途にも使えるとは思ってなかったです
589デフォルトの名無しさん
垢版 |
2020/07/13(月) 09:25:32.82ID:TjSPxylo
業務アプリ用の言語ωでゲーム造ってる人も居るしな
2020/07/13(月) 15:55:03.59ID:Ke/bF0yo
倉庫の在庫官吏を、VRで実際の倉庫とそっくりに作った仮想倉庫内を移動して有無を確認するようなシステムにしたらITで社会が幸せになるね
2020/07/13(月) 16:01:37.04ID:H0zeGwMI
数値で確認じゃなくVRでわざわざ見渡すシステムを作るのか
すげーな、現場でそんな発想するやついねーわw
2020/07/13(月) 16:58:20.45ID:aaJV9hNQ
カメラを設置するだけでも大変だったのに
モデリングに手間暇かかるだけ無駄
2020/07/13(月) 17:15:16.60ID:9YDjNgWA
商品もリアルに表現しなきゃねってことで
手足に負荷がかかるような器具を付けて商品の重さも再現するんでしょ?
倉庫の広さも実感できるようにランニングマシーンの進化版みたいのに乗ってと・・・
2020/07/13(月) 17:28:58.81ID:Ke/bF0yo
これからは業務アプリもunityやunrealengineだな
2020/07/13(月) 17:32:08.72ID:aaJV9hNQ
自動倉庫のシステム組むのにそんなもんいらん
2020/07/13(月) 17:38:07.71ID:VzOfFxcE
配管系のゲージは研修半分でオーバーレイして表示させるとかそういう話聞くけど、在庫数は無いわ。
金はかかるがだいたいパレットやらロットにRFタグつけて棚卸しできるようにするだろ。
ちなみにプラントのモデルは案外あるし、点群で撮っちゃうって手もある。

ただ、確かにモデルを表示する類の業務アプリはUnityで作ってるのもあるよ。
それなりに大手の製造業だけど。
2020/07/13(月) 21:29:20.64ID:dyxM/ipS
>>593
リアル涙の倉庫番スペシャルか。
別方面で売れるかもしれんな。w
2020/07/13(月) 22:41:02.33ID:onCQ4Lj1
そんなに余裕ならamazonの倉庫で
働けば良いのに:-p
599デフォルトの名無しさん
垢版 |
2020/07/14(火) 11:59:39.83ID:Mma3I+br
倉庫管理楽しくなりそう
https://www.youtube.com/watch?v=Lu56xVlZ40M
2020/07/14(火) 20:22:00.29ID:dcabkqyp
>>597
バーチャルで人が汗水垂らして荷物を運んで
それとシンクロしてリアル倉庫で機械が荷物運ぶのな
これこそ来たるべき未来の労働の姿だわ
2020/07/14(火) 20:29:04.35ID:Wijq2S4p
パシフィック・リムが思い浮かぶな
2020/07/14(火) 20:30:24.39ID:3GhCpHPS
まあゲームだな
2020/07/14(火) 21:04:18.81ID:GSoz0Gzm
>>600
それだけでは体力的に厳しいからパワーアシストスーツを着ないとな
604デフォルトの名無しさん
垢版 |
2020/07/19(日) 18:09:36.82ID:PL1UBy2g
X軸を対数にしようとIsLogarithmic= Trueにしたら"対数スケールはこの軸には使用できません"と例外が出たが、
Y軸では出ません。

プロットしたデータが悪いのかと試しにXもYも同じデータでプロットしてもX軸を対数にしたときだけやはり例外が出ます(Y軸だけ対数表記だと出ない)。
詳しい方がいたらアドバイスをください。

private void CalcFFT(int samplingNum)
{
chart2.Series[0].Points.Clear();
var input = new Complex[samplingNum];
var output = new Complex[samplingNum];
for (int i = 0; i < chart1.Series[0].Points.Count; i++){
input[i] = new Complex(chart1.Series[0].Points[i].YValues[0], 0);
output[i] = new Complex(chart1.Series[1].Points[i].YValues[0], 0);
}
// FFTを実行
Fourier.Forward(input);
Fourier.Forward(output);
for (int i = 0; i < input.Length; i++){
var aftInput = Complex.Divide(input[i], output[i]);
var aftOutput = 20*Math.Log10( Complex.Abs(aftInput));
chart2.Series[0].Points.AddXY(aftOutput, aftOutput);
}
chart2.ChartAreas[0].AxisX.IsLogarithmic = true;//これだけ例外になる
chart2.ChartAreas[0].AxisY.IsLogarithmic = true;
}
2020/07/19(日) 18:18:21.40ID:R6Y/ShSW
>>604
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datavisualization.charting.axis.islogarithmic?view=netframework-4.8
>対数グラフでは、0 または負のデータ値を使用できません
https://mrymmthr.wordpress.com/2015/07/15/chart01/
606デフォルトの名無しさん
垢版 |
2020/07/19(日) 18:29:40.39ID:PL1UBy2g
>>605
0や負数を取り除いてもエラーになってしまうんです。
そもそもY軸では負数を含めてもエラーにはならなかったので悩んでいます・・・。

上記のリンクも調べて既に試したのですが、
SuppressExceptionsを設定してもダメでした。
2020/07/19(日) 20:29:44.78ID:xpqal6/5
chartなんて使ったことないから何か勘違いしてるかもしれんけど
別に何の問題もなかった
private void PlotSomething()
{
  for (int i = 0; i < 10; i++)
  {
    var x = Math.Pow(10, i);
    chart1.Series[0].Points.AddXY(x, x);
  }
  chart1.ChartAreas[0].AxisX.IsLogarithmic = true;
  chart1.ChartAreas[0].AxisY.IsLogarithmic = true;
}
2020/07/19(日) 21:46:59.96ID:HgFtcLoK
動くコードから一つ一つ近づけて行くのもいい手だよね
609デフォルトの名無しさん
垢版 |
2020/07/19(日) 22:52:49.13ID:PL1UBy2g
>>607
コードをお借りして試してみましたがダメでした・・・
私の環境で気になるのは、
AddXYをした後でもX軸のAxisX.Minumum=0でAxisX.Maximum=1のままだったんですよね・・・
そのままformを抜けて描画すると突然アボートになる・・・
2020/07/19(日) 23:04:54.28ID:vyF3aSiC
フォームロード時にエラーになる?
対数軸持ちチャートはデータ数0を
許さないから、ダミーデータを入れた?

series.enabled = false;はしてある?

でなかったらわからないです。
2020/07/19(日) 23:35:35.36ID:HgFtcLoK
>>609
新規作成したプロジェクトでも同じって言ってるの?
612デフォルトの名無しさん
垢版 |
2020/07/19(日) 23:51:19.95ID:PL1UBy2g
>>611
すみません、新規作成したプロジェクトで>>607を走らせたらいけました・・・
今のプロジェクトで変なプロパティ触っちゃったのかな
X軸の対数表記絶対許さないマンな動きだったのでコントロールを作り直して試してみます!
2020/07/20(月) 00:01:29.70ID:evpinthC
>>612
また、新規作成して今度は駄目なコントロール貼り付けて
動くか確認

思った通り駄目だったら
動くやつと比較ツールで比較して出た差分を修正して動くようになるところを確認

とか
614デフォルトの名無しさん
垢版 |
2020/07/20(月) 10:09:35.64ID:oCdL4TUp
for (int i = 0; i < input.Length; i++){
var aftInput = Math.Log10(Complex.Divide(input[i], output[i]));
var aftOutput = 20*Math.Log10( Complex.Abs(aftInput));
chart2.Series[0].Points.AddXY(aftOutput, aftOutput);
}
chart2.ChartAreas[0].AxisX.IsLogarithmic = true;
chart2.ChartAreas[0].AxisY.IsLogarithmic = true;
615デフォルトの名無しさん
垢版 |
2020/07/20(月) 10:10:59.89ID:oCdL4TUp
こっちか
for (int i = 0; i < input.Length; i++){
var aftInput = Math.Log10(Complex.Abs(Complex.Divide(input[i], output[i])));
var aftOutput = 20*Math.Log10( Complex.Abs(aftInput));
chart2.Series[0].Points.AddXY(aftOutput, aftOutput);
}
chart2.ChartAreas[0].AxisX.IsLogarithmic = true;
chart2.ChartAreas[0].AxisY.IsLogarithmic = true;
2020/07/20(月) 12:08:59.65ID:2IOyO+tV
いや、ソリューション全部比較しないとプロパティまで見えないよね?
2020/07/22(水) 12:10:47.54ID:G1e5+QGc
※usingは長いので省略
class useDynamicObject1{
static void Main()
{
dynamic order1 = new Order();
order1.ProductID = 100;
}
}

class Order: DynamicObject
{
private Dictionary<string,object> items = new Ditionary<string,object>();
private const object MyDefault = null;

public override bool TrySetMember(SetMemberBinder binder,object value)
{長すぎてエラーが起こるので略}
}
というようなコードがあったとします。dynamic order1 = new Order();
order1.ProductID = 100; この部分でOrderオブジェクトのTrySetMemberメソッドが動作してるっぽいんですが
通常 order1.TrySetMember(引数を入れる);という形でインスタンスメソッドを呼び出しますよね?
なぜorder1.ProductID = 100;の記述でTrySetMenmberメソッドが呼び出されるのかがわかりません
理由を教えてください、よろしくお願いいたします。
2020/07/22(水) 12:17:39.88ID:PZLPLd2s
>>617
継承元のsetterがそう書いてるからじゃないの?
代入でsetterメソッドが呼ばれるよ
2020/07/22(水) 13:48:00.79ID:SRlHt7kI
>>617
docsに書かれている通り、プロパティに値をsetするときに呼ばれるような仕様だから、じゃダメなの?
https://docs.microsoft.com/ja-jp/dotnet/api/system.dynamic.dynamicobject.trysetmember?view=netcore-3.1
>このメソッドは、sampleObject.SampleProperty = "Test"のようなステートメントがある場合に呼び出されます。
>sampleObject は、DynamicObject クラスから派生したクラスのインスタンスです。
620デフォルトの名無しさん
垢版 |
2020/07/22(水) 15:11:33.71ID:RCIwbmD0
なるほど、状況はわかりましたが コードのイメージができません
どのようなコードを記述するか参考例はないでしょうか?

※どこかのサイトにかいてあるコードでもかまいません
621デフォルトの名無しさん
垢版 |
2020/07/22(水) 17:11:56.47ID:Vz073kjI
マルチスレッドについて質問です。
C#は初心者です。

コードの書き方を見ると、Threadは使うな!Taskを使え!というものばかり見ます。
今の時代はThreadはgotoみたいな扱いで、使っちゃだめなんでしょうか。
2020/07/22(水) 17:15:28.36ID:CV+o1S+t
>>621
Taskで事足りるから、Threadを直接扱うメリットが無い
2020/07/22(水) 19:37:30.15ID:INn9Gfu9
>>621
ThreadをThread.sleepで保留していて無理やり割り込んで起こすとか
言うような処理が必要なければTaskとかParalellで十分だかららしいよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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