「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1533466544/
■コードを貼る場合は↓を使いましょう。
http://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
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part140
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9e9f-LwdJ)
2018/10/04(木) 18:56:38.41ID:JnxMNCXd0739デフォルトの名無しさん (ワッチョイ b676-xVue)
2018/12/01(土) 19:36:32.06ID:IDJAnGVn0740デフォルトの名無しさん (ワッチョイ 0eeb-hzet)
2018/12/01(土) 21:00:00.35ID:4Hpcan/K0 ありがとう!なんで10になるのかはわかったよ
ただ次になぜ10が10個並んじゃわないのかが全然わかんなくなってきたぜ・・・・
ただ次になぜ10が10個並んじゃわないのかが全然わかんなくなってきたぜ・・・・
741デフォルトの名無しさん (ワッチョイ b676-xVue)
2018/12/01(土) 21:02:51.31ID:IDJAnGVn0 >>740
forループの実行中にTaskが開始されてるからでしょ
forループの実行中にTaskが開始されてるからでしょ
742デフォルトの名無しさん (ワッチョイ 0eeb-hzet)
2018/12/01(土) 22:13:11.50ID:4Hpcan/K0 >>741
forループ中にTaskが開始されるとなぜ1つになっちゃうのか全然わからなんだ・・・・
forループ中にTaskが開始されるとなぜ1つになっちゃうのか全然わからなんだ・・・・
743デフォルトの名無しさん (ワッチョイ 8a7e-o5Pc)
2018/12/01(土) 22:53:47.54ID:THW+jwSM0 メインスレッドが即座に終了して出力なしの方がザラだと思うが
明示的に待たないとTaskの完了など知った事ではないよ
というか徒に増やした所でメモリ帯域とかで躓くのがオチ
Taskは非同期だし、並列実行が望みならGPGPUなりを…
明示的に待たないとTaskの完了など知った事ではないよ
というか徒に増やした所でメモリ帯域とかで躓くのがオチ
Taskは非同期だし、並列実行が望みならGPGPUなりを…
744デフォルトの名無しさん (ブーイモ MMba-D04G)
2018/12/01(土) 22:57:20.39ID:q6i9ekrsM たかが10要素だし、配列に入れてるんだからWhenAllとかで待てるだろ
直行する問題を分離できないおバカさんかな
直行する問題を分離できないおバカさんかな
745デフォルトの名無しさん (ワッチョイ 9ab3-lzSb)
2018/12/01(土) 23:13:24.31ID:BBiFvNwv0 >>727-730
ありがとうございました。いい方法あったんですね
そろい踏みで
var task = new Task[10];
for (int i = 0; i < 10; i++)
{ int j = i; task[i] = Task.Run(() => Console.WriteLine("a={0}", j)); }
var tasks = Enumerable.Range(0, 10).Select(i => Task.Run(() => {Console.WriteLine("b={0}",i);})).ToArray();
var task2 = new Task[10];
for (int i = 0; i < 10; i++)
{ task2[i] = Task.Run(() => Console.WriteLine("c={0}", i)); }
foreach (var i in Enumerable.Range(0, 10)) { Console.WriteLine("d={0}", i); }
Console.ReadKey();
で何回か試してみると、foreachだけは必ずタスクの起動順が順番通りで揃うんですね
ちょっとこれを使ってみます
ありがとうございました。いい方法あったんですね
そろい踏みで
var task = new Task[10];
for (int i = 0; i < 10; i++)
{ int j = i; task[i] = Task.Run(() => Console.WriteLine("a={0}", j)); }
var tasks = Enumerable.Range(0, 10).Select(i => Task.Run(() => {Console.WriteLine("b={0}",i);})).ToArray();
var task2 = new Task[10];
for (int i = 0; i < 10; i++)
{ task2[i] = Task.Run(() => Console.WriteLine("c={0}", i)); }
foreach (var i in Enumerable.Range(0, 10)) { Console.WriteLine("d={0}", i); }
Console.ReadKey();
で何回か試してみると、foreachだけは必ずタスクの起動順が順番通りで揃うんですね
ちょっとこれを使ってみます
746デフォルトの名無しさん (ワッチョイ 23da-UzSb)
2018/12/01(土) 23:22:08.99ID:R6GB4fM+0 >>745
foreachのはTask作ってない。他に合わせるなら
foreach (var i in Enumerable.Range(0, 10)) { Task.Run( () => {Console.WriteLine("d={0}", i); } }
でないとおかしい。
foreachのはTask作ってない。他に合わせるなら
foreach (var i in Enumerable.Range(0, 10)) { Task.Run( () => {Console.WriteLine("d={0}", i); } }
でないとおかしい。
747デフォルトの名無しさん (ワッチョイ 8a7e-o5Pc)
2018/12/01(土) 23:22:16.02ID:THW+jwSM0 foreachだけはTaskどころか普通の同期処理だが…?
748デフォルトの名無しさん (ブーイモ MMba-D04G)
2018/12/01(土) 23:23:22.50ID:q6i9ekrsM749デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)
2018/12/01(土) 23:28:44.22ID:UFOjA6r40 意味わからんな
750デフォルトの名無しさん (スププ Sdba-xVue)
2018/12/01(土) 23:57:08.18ID:cajtydEwd >>749
この馬鹿ちんが
この馬鹿ちんが
751デフォルトの名無しさん (ワッチョイ 9ab3-lzSb)
2018/12/01(土) 23:59:39.62ID:BBiFvNwv0752デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)
2018/12/02(日) 00:15:47.90ID:y4RDtfAe0 そんな簡単なコード間違えるような記述方式なのに頭おかしい
753デフォルトの名無しさん (ワッチョイ b676-xVue)
2018/12/02(日) 00:27:50.88ID:heWd1TkG0 >>752
日本語おかしい
日本語おかしい
754デフォルトの名無しさん (ワッチョイ b7e3-Xv+l)
2018/12/02(日) 01:08:52.07ID:y4RDtfAe0 こんな簡単なコードでバグってるのかよ
やっぱりラムダはクソだな
やっぱりラムダはクソだな
755デフォルトの名無しさん (ワッチョイ 9ab3-lzSb)
2018/12/02(日) 09:05:24.28ID:VRa40hbi0 ラムダ式って
void method()
{
int x = 1;
int y = 10;
Action a = () => {Console.WriteLine( x + y); };
a.Invoke();
x += 100;
a.Invoke();
}
こうやってメソッド内に導入した瞬間にこのメソッドが
class クラス名が非表示のクラス
{
int x;
int y;
void a()
{
Console.WriteLine(this.x + this.y);
}
public void method()
{
this.x = 1;
this.y = 10;
a();
this.x+=100;
a();
}
}
みたいに勝手にクラス化されて変数が内部でフィールド扱いになるって理解でいい?
void method()
{
int x = 1;
int y = 10;
Action a = () => {Console.WriteLine( x + y); };
a.Invoke();
x += 100;
a.Invoke();
}
こうやってメソッド内に導入した瞬間にこのメソッドが
class クラス名が非表示のクラス
{
int x;
int y;
void a()
{
Console.WriteLine(this.x + this.y);
}
public void method()
{
this.x = 1;
this.y = 10;
a();
this.x+=100;
a();
}
}
みたいに勝手にクラス化されて変数が内部でフィールド扱いになるって理解でいい?
756デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/02(日) 12:15:35.79ID:uCltPpgZa757デフォルトの名無しさん (ワッチョイ b676-xVue)
2018/12/02(日) 12:25:04.16ID:heWd1TkG0 生成されたアセンブリをILSpyで逆アセンブルすると参考になるよ
758デフォルトの名無しさん (ドコグロ MM83-Xv+l)
2018/12/02(日) 12:25:51.63ID:wepbCU4lM こんな雑魚コードでそこまでしないと挙動のわからない欠陥品
759デフォルトの名無しさん (ワッチョイ 4e81-bxW6)
2018/12/02(日) 14:08:20.38ID:9iE6z7au0 雑魚はこんなこともりかいできないのか
生活が大変そうですね…
ああでも雑魚は特養で生活してるから大丈夫だね
よかった
生活が大変そうですね…
ああでも雑魚は特養で生活してるから大丈夫だね
よかった
760デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
2018/12/02(日) 15:05:44.53ID:1mt10vUo0 質問です
staticなclassに機密情報を保持してプロジェクト内のすべてのコードから参照して利用できるようにしたいです
その場合、改竄を防ぐために決められた場所(コード)からしかsetできないようにしたいですがどうすればいいでしょうか?
また他プロセスからのメモリ改竄はどのように対策をすればいいでしょうか?
staticなclassに機密情報を保持してプロジェクト内のすべてのコードから参照して利用できるようにしたいです
その場合、改竄を防ぐために決められた場所(コード)からしかsetできないようにしたいですがどうすればいいでしょうか?
また他プロセスからのメモリ改竄はどのように対策をすればいいでしょうか?
761デフォルトの名無しさん (オッペケ Sr3b-eb2q)
2018/12/02(日) 15:25:34.83ID:8Z0+kDxur >>760
c#アプリに機密情報なんか書き込むな
c#アプリに機密情報なんか書き込むな
762デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
2018/12/02(日) 15:26:44.53ID:1mt10vUo0763デフォルトの名無しさん (ワッチョイ a7c3-lzSb)
2018/12/02(日) 15:45:30.50ID:XLvYoqNs0 >>760
他プロセスからの保護は、System.Security.Cryptographyの
ProtectedMemory.Protect()でMemoryProtectionScope.SameProcessを指定するとかかな
他プロセスからの保護は、System.Security.Cryptographyの
ProtectedMemory.Protect()でMemoryProtectionScope.SameProcessを指定するとかかな
764デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
2018/12/02(日) 15:49:14.43ID:1mt10vUo0765デフォルトの名無しさん (ワッチョイ a7c3-lzSb)
2018/12/02(日) 15:55:25.15ID:XLvYoqNs0 特定の呼び出し元からのみ設定に関しては、StackTraceで呼び出し元を確認かな。
Caller Infoだと微妙か。
Caller Infoだと微妙か。
766デフォルトの名無しさん (ワッチョイ dbb8-C0zt)
2018/12/02(日) 15:55:38.27ID:yai2DppL0 メモリを直接書き換えてくるような攻撃だとアクセス修飾子なんて一切関係なく書き換えられるし、そもそもその後のif文自体を書き換えたりとかしてくるから一定レベル以上の攻撃は防げない
とりあえずxor暗号程度で保持しとくとかは?
get => 機密情報 ^ 0x01234567;
set => 機密情報 = value ^ 0x01234567;
とりあえずxor暗号程度で保持しとくとかは?
get => 機密情報 ^ 0x01234567;
set => 機密情報 = value ^ 0x01234567;
767デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/02(日) 15:57:52.77ID:uCltPpgZa >>760
前者はセッターをinternalにするのが一番素直で分かりやすいと思う
前者はセッターをinternalにするのが一番素直で分かりやすいと思う
768デフォルトの名無しさん (ワッチョイ 4b9f-GnKV)
2018/12/02(日) 16:00:32.72ID:1mt10vUo0769デフォルトの名無しさん (ワッチョイ 23da-UzSb)
2018/12/02(日) 16:23:19.21ID:3wF0RuQO0 >>767
アクセス修飾子での制限はリフレクションで簡単に突破される
アクセス修飾子での制限はリフレクションで簡単に突破される
770デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/02(日) 17:32:37.60ID:uCltPpgZa771デフォルトの名無しさん (オッペケ Sr3b-eb2q)
2018/12/02(日) 17:55:56.69ID:8Z0+kDxur そもそもお漏らししてもいい案件だけやる
772デフォルトの名無しさん (ワッチョイ 23da-UzSb)
2018/12/02(日) 18:07:52.27ID:3wF0RuQO0773デフォルトの名無しさん (ワッチョイ 171d-MyyE)
2018/12/02(日) 19:18:46.11ID:wUrRop5j0 リフレクションって何?
774デフォルトの名無しさん (ワッチョイ e717-r3MB)
2018/12/02(日) 20:03:59.45ID:Vovs5evr0 ggrks
775デフォルトの名無しさん (ワッチョイ f68a-C0zt)
2018/12/02(日) 22:24:30.53ID:h/Y7nr/g0 文字列を変数名として扱う仕組みのこと
776デフォルトの名無しさん (ブーイモ MMba-v8/O)
2018/12/02(日) 22:36:49.76ID:AtVX1yZrM >>774
答えられないなら黙ってればいいのに
答えられないなら黙ってればいいのに
777デフォルトの名無しさん (ワッチョイ 0bb3-JqKq)
2018/12/02(日) 22:42:42.22ID:HHTlCBKM0 >>776
それはお前も同じ
それはお前も同じ
778デフォルトの名無しさん (ワッチョイ b676-xVue)
2018/12/03(月) 01:50:08.39ID:CtimMCgY0 >>777
え???
え???
779デフォルトの名無しさん (ワッチョイ 4e81-bxW6)
2018/12/03(月) 09:10:29.70ID:7GT4duU30780デフォルトの名無しさん (スププ Sdba-xVue)
2018/12/03(月) 10:30:31.17ID:58uLWeIid >>779
お前がな
お前がな
781デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/03(月) 14:27:17.52ID:1qcFF+t30 ClassA,ClassB,,,のインスタンスをJsonで保存したい。
Class Ihozon{
void init(){} //変数を初期化
string serialize(ClassA str){ }
ClassA deserialize( string json){ }
}
というインターフェースを作って保存処理は共通化したいと思うのだが、Serializeするのにクラス名の
引数が必要になるので共通化できない。こういう場合どうしたらいいの?
Class Ihozon{
void init(){} //変数を初期化
string serialize(ClassA str){ }
ClassA deserialize( string json){ }
}
というインターフェースを作って保存処理は共通化したいと思うのだが、Serializeするのにクラス名の
引数が必要になるので共通化できない。こういう場合どうしたらいいの?
782デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/03(月) 15:09:15.55ID:kXdIrz5+a >>781
ちょっと何言ってるのかよく分からないところがあるので
勘違いかもしれないけど、普通にジェネリックメソッドにするだけじゃないの?
public static string JsonSerialize<T>(T obj) {...}
public static T JsonDeserialize<T>(string json) {...}
ちょっと何言ってるのかよく分からないところがあるので
勘違いかもしれないけど、普通にジェネリックメソッドにするだけじゃないの?
public static string JsonSerialize<T>(T obj) {...}
public static T JsonDeserialize<T>(string json) {...}
783デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/03(月) 15:51:51.32ID:1qcFF+t30 jeneric interface をつかったらいいんだね。できました。ありがとう。
784デフォルトの名無しさん (ササクッテロレ Sp3b-QMby)
2018/12/03(月) 16:33:19.27ID:k9BWMLgHp インスタンスを保存して何か良い事あるのか?
言葉の違いなだけならいいが…クラス内の値を保存するんだよな?
クラスのある位置を示すポインタを保存するんじゃないんだよな?
言葉の違いなだけならいいが…クラス内の値を保存するんだよな?
クラスのある位置を示すポインタを保存するんじゃないんだよな?
785デフォルトの名無しさん (スププ Sdba-xVue)
2018/12/03(月) 16:45:46.51ID:wi/+8SfFd >>784
アスペ
アスペ
786デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/03(月) 17:31:56.17ID:1qcFF+t30 public interface Ijson<T> {
T deserialize(string json);
string serialize(T js);
void init();
}
public class ClassA : Ijson<ClassA>
{ }
ClassAをシリアライズしたいのだけでど、Interfaseするんはわかったんだが内部に
つねに class ClassFile{ void FileSave() {} void FileLoad(){} } を継承もしたい。
(中が固定なのでいちいち実装したくない)
ClassA A = new ClassA();
A.FileLoad(); // これでAはファイルデータで初期化したい。
継承とinterfaceを同時にやるってどうやるの?
T deserialize(string json);
string serialize(T js);
void init();
}
public class ClassA : Ijson<ClassA>
{ }
ClassAをシリアライズしたいのだけでど、Interfaseするんはわかったんだが内部に
つねに class ClassFile{ void FileSave() {} void FileLoad(){} } を継承もしたい。
(中が固定なのでいちいち実装したくない)
ClassA A = new ClassA();
A.FileLoad(); // これでAはファイルデータで初期化したい。
継承とinterfaceを同時にやるってどうやるの?
787デフォルトの名無しさん (スプッッ Sd5a-VqKd)
2018/12/03(月) 17:49:03.84ID:PYYWjLDMd System.Web.Mail.MailMessageクラスのFieldプロパティでCDOのFieldを追加してました。
System.Webは古いからSystem.Net.Mailを使えと警告が出るので置き換えようとしてみたところ、対応する方法が見つかりませんでした。
ご存知の方いないでしょうか。
System.Webは古いからSystem.Net.Mailを使えと警告が出るので置き換えようとしてみたところ、対応する方法が見つかりませんでした。
ご存知の方いないでしょうか。
788デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/03(月) 18:01:20.51ID:1qcFF+t30 >>786
自己解決:Interfaseやめてジェネリックのクラス使えばできました。
自己解決:Interfaseやめてジェネリックのクラス使えばできました。
789デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/03(月) 21:15:19.45ID:1qcFF+t30 別のプロジェクトからCopy してきた Form1をNameSpace名をこのプロジェクトに
あわせて
var fm = new Form1();
fm.ShowDialg();
とやっても、空のフォームが立ち上がる。なぜなんだろう?
あわせて
var fm = new Form1();
fm.ShowDialg();
とやっても、空のフォームが立ち上がる。なぜなんだろう?
790デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/03(月) 22:08:22.85ID:jwp068Q1a791デフォルトの名無しさん (ワッチョイ a7c3-lzSb)
2018/12/03(月) 22:10:11.00ID:yskaDDV40792デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/04(火) 04:22:30.94ID:16QpsEK/0793デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/04(火) 04:55:27.00ID:16QpsEK/0 >>791
interfaceを使えないかトライしてみましたが、どうもうまく行かないです。
ClassFileはIjsonをインターフェースする必要があって、Ijsonのinit()はClassAのプロパティや
変数の初期化なのでClassAの中でしか実装できません。なので
ClassFile:Ijson<ClassA>
ClassA:ClassFile<ClassA>
のような構成になります。しかし問題があります。
問題:ClassFileの中ではinit()は実装したくないのに、実装を余儀なくされるが、初期化したい変数は
ClassAの中にあるので困る。
interfaceを使えないかトライしてみましたが、どうもうまく行かないです。
ClassFileはIjsonをインターフェースする必要があって、Ijsonのinit()はClassAのプロパティや
変数の初期化なのでClassAの中でしか実装できません。なので
ClassFile:Ijson<ClassA>
ClassA:ClassFile<ClassA>
のような構成になります。しかし問題があります。
問題:ClassFileの中ではinit()は実装したくないのに、実装を余儀なくされるが、初期化したい変数は
ClassAの中にあるので困る。
794デフォルトの名無しさん (ワッチョイ b39d-hzet)
2018/12/04(火) 05:04:31.89ID:16QpsEK/0 clsAのインスタンスに代入する方法ってこれでいいのでしょうか?
public class clsA: clsJson <clsA>
{
public void ParamLoad() {
clsGamenParam v = this;
v = base.ParamLoad();
}
}
public class clsJson<T>{
public T ParamLoad(string IniName = "") {
T param = default (T);
param = deserialize(json);
return param;
}
}
public class clsA: clsJson <clsA>
{
public void ParamLoad() {
clsGamenParam v = this;
v = base.ParamLoad();
}
}
public class clsJson<T>{
public T ParamLoad(string IniName = "") {
T param = default (T);
param = deserialize(json);
return param;
}
}
795デフォルトの名無しさん (アウアウエー Sa52-C0zt)
2018/12/04(火) 10:13:14.55ID:4uTJLjzta splitcontainerで上下分割してて、
最大化させてもpanel1の方は縦幅(height)は変わらないようにしたいのだけど
どのプロパティで設定できるのでしょうか
最大化させてもpanel1の方は縦幅(height)は変わらないようにしたいのだけど
どのプロパティで設定できるのでしょうか
796デフォルトの名無しさん (ササクッテロレ Sp3b-QMby)
2018/12/04(火) 10:17:41.08ID:1iwBpvbbp 初期化を隠蔽したい?
なら隠しメンバーに初期化済みフラグを持つことだな。
なら隠しメンバーに初期化済みフラグを持つことだな。
797デフォルトの名無しさん (ワッチョイ 3e23-+kBR)
2018/12/04(火) 10:29:22.89ID:P8iyvSfE0 >>795
FixedPanel
FixedPanel
798デフォルトの名無しさん (ワッチョイ 5a9b-m+hN)
2018/12/04(火) 22:37:30.63ID:TaxB7EJj0 ピクチャーボックスに線を書くとか丸を書くとかした後にクリックで線を選択出来たりとかします?
エクセルで言うオートシェイプ見たいな感じで
エクセルで言うオートシェイプ見たいな感じで
799デフォルトの名無しさん (ブーイモ MM67-D04G)
2018/12/04(火) 22:40:16.97ID:zGwuExf2M >>798
できません
できません
800デフォルトの名無しさん (ワッチョイ e717-r3MB)
2018/12/04(火) 22:41:05.29ID:LDdnm3po0 出来るよ
日本じゃコード例殆ど無いけど海外ならそこそこ見つかる
日本じゃコード例殆ど無いけど海外ならそこそこ見つかる
801デフォルトの名無しさん (ブーイモ MM67-D04G)
2018/12/04(火) 22:44:12.07ID:zGwuExf2M そりゃスクラッチで作ればできるだろうな
>>798のような質問をしてるレベルならまず無理だが
>>798のような質問をしてるレベルならまず無理だが
802デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/04(火) 23:34:36.38ID:S3l73Gw8a >>798
円や直線みたいな単純な図形でアンチエイリアスとかも不要なら
確かVBer向けのシェイプコントロールってのがあったはずだから、それを使えば一発だね
http://www.atmarkit.co.jp/fdotnet/dotnettips/781winlineshape/winlineshape.html
描画するんじゃなくて子コントロールを加える形になると思うけど
円や直線みたいな単純な図形でアンチエイリアスとかも不要なら
確かVBer向けのシェイプコントロールってのがあったはずだから、それを使えば一発だね
http://www.atmarkit.co.jp/fdotnet/dotnettips/781winlineshape/winlineshape.html
描画するんじゃなくて子コントロールを加える形になると思うけど
803デフォルトの名無しさん (スプッッ Sd5a-KXwy)
2018/12/05(水) 13:01:06.99ID:6cU8181gd シングルトンパターン実装が面倒だからstatic実装をしてしまう私は雑魚なのでしょうか
いつインスタンスが作られるかぐらいの差しかないんじゃないのぉぉぉお起動時に一度だけ呼ぶ使われ方ならぁぁぁあ
いつインスタンスが作られるかぐらいの差しかないんじゃないのぉぉぉお起動時に一度だけ呼ぶ使われ方ならぁぁぁあ
804デフォルトの名無しさん (ワッチョイ dbb8-o5Pc)
2018/12/05(水) 13:04:16.51ID:aXYPARRR0 ソロなら何でもいいよ
805デフォルトの名無しさん (ブーイモ MMba-D04G)
2018/12/05(水) 13:24:54.14ID:mkn+H/81M >>803
グローバル変数を作る目的でシングルトンにするくらいなら、Globalクラスでも作ってそのstaticフィールドとして持たせて共有したほうがマシ
シングルトンが用いられる大抵のケースでは、アプリでクラスAのインスタンスが一つしか必要とされないという要件を、
誤ってクラスA側に持ち込んでしまい不必要な制限をクラスAに対して与えている
基本的にシングルトンはアンチパターンであり、使うべきではないと考えておけばいい
グローバル変数を作る目的でシングルトンにするくらいなら、Globalクラスでも作ってそのstaticフィールドとして持たせて共有したほうがマシ
シングルトンが用いられる大抵のケースでは、アプリでクラスAのインスタンスが一つしか必要とされないという要件を、
誤ってクラスA側に持ち込んでしまい不必要な制限をクラスAに対して与えている
基本的にシングルトンはアンチパターンであり、使うべきではないと考えておけばいい
806デフォルトの名無しさん (ササクッテロ Sp3b-prQC)
2018/12/05(水) 13:58:19.38ID:p3OBsqIWp グローバル変数が必要になったケースというのが今までにない気がする
807デフォルトの名無しさん (ドコグロ MMba-Xv+l)
2018/12/05(水) 18:56:11.79ID:ZBoGDzWjM ログとかデバッグ用情報とかあったほうがよくね?
引数にログ渡すのも面倒やし
引数にログ渡すのも面倒やし
808デフォルトの名無しさん (ドコグロ MMba-Xv+l)
2018/12/05(水) 19:00:23.97ID:ZBoGDzWjM すべてのインスタンスをグローバル神クラスに突っ込む方法で管理してる現場も
案外良かったよ
リークの類に強いのがよかった
ひと目でわかるし
案外良かったよ
リークの類に強いのがよかった
ひと目でわかるし
809デフォルトの名無しさん (アウアウエー Sa52-70Pl)
2018/12/05(水) 19:14:24.09ID:24zuz0jWa810デフォルトの名無しさん (ワッチョイ a7c3-QMby)
2018/12/05(水) 20:00:32.14ID:xXLuhtRv0 えーリソースひとつしか無いのにあちこちで呼ばれて困るわ。セマフォ使うにもシングルトンにしないと意味ないし。
811デフォルトの名無しさん (ワッチョイ 1a06-C0zt)
2018/12/05(水) 21:40:54.86ID:9TXdxV+e0 そこでPrism.Unity等のDIコンテナですよ
812デフォルトの名無しさん (ワッチョイ abeb-3M3s)
2018/12/06(木) 17:22:48.54ID:PXx1OaoO0 そういやDIコンテナってどういう仕組みになってんのか全然わからん
コンストラクタの引数をインターフェイスにするだけで、登録済みのオブジェクトを自動的に注入してくれるわけだけど・・・・
あれってコンストラクタの呼び出し側は一体どんな仕組みになってるの?
そもそも引数のインターフェースを増やそうが減らそうがコンパイルエラーが起きないって、呼び出す側は一体どうなってるのかしら
コンストラクタの引数をインターフェイスにするだけで、登録済みのオブジェクトを自動的に注入してくれるわけだけど・・・・
あれってコンストラクタの呼び出し側は一体どんな仕組みになってるの?
そもそも引数のインターフェースを増やそうが減らそうがコンパイルエラーが起きないって、呼び出す側は一体どうなってるのかしら
813デフォルトの名無しさん (ブーイモ MMb3-AsR1)
2018/12/06(木) 17:34:01.28ID:hvLOwgvNM >>812
普通にリフレクションで引数の情報取ったりコンストラクタ呼んでインスタンス作ったり簡単にできる
普通にリフレクションで引数の情報取ったりコンストラクタ呼んでインスタンス作ったり簡単にできる
814デフォルトの名無しさん (ワッチョイ abeb-3M3s)
2018/12/06(木) 17:45:26.67ID:PXx1OaoO0815デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
2018/12/06(木) 23:07:45.72ID:LqRlvnk/0 リフレションとかバカしか使わないわ
816デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)
2018/12/06(木) 23:24:16.18ID:8fboZWCH0 デバッグ用に良さそうと思ってたら
winformにそのものがあるしね
winformにそのものがあるしね
817デフォルトの名無しさん (ワッチョイ b3eb-xqdQ)
2018/12/06(木) 23:24:59.62ID:8KxpykpJ0 属性で使いまくってるじゃん
818デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
2018/12/06(木) 23:47:06.96ID:LqRlvnk/0 リフレクションはウンコみたいな依存関係を作る元凶だからな
まともなヤツならまず使わない
まともなヤツならまず使わない
819デフォルトの名無しさん (ワッチョイ 5b76-Pwcg)
2018/12/06(木) 23:55:23.28ID:FaxHPz5Y0 リフレクションは便利だよね
時々使うわ
時々使うわ
820デフォルトの名無しさん (スフッ Sdb3-Pwcg)
2018/12/06(木) 23:57:45.21ID:cH+4Ya2yd リフレクションは普通に使うわな
821デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
2018/12/07(金) 00:12:46.91ID:0/x3pMw+0 こうやってクソみたいな依存関係のあるクソコードが量産されていくのがよくわかる
822デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
2018/12/07(金) 00:14:25.89ID:0/x3pMw+0 AというオブジェクトからBというオブジェクトにアクセスする場合
よほどの理由がないかぎりBからAにアクセスすることは避けないといけない
できるだけコンポジションにするべき
この場合、AがBを内包するようにする
コレはシロウトでなければ常識の問題だからな
よほどの理由がないかぎりBからAにアクセスすることは避けないといけない
できるだけコンポジションにするべき
この場合、AがBを内包するようにする
コレはシロウトでなければ常識の問題だからな
823デフォルトの名無しさん (ワッチョイ 5b76-Pwcg)
2018/12/07(金) 00:21:54.56ID:XLGZ01Wf0 リフレクション最高
これからも積極的に使おう
これからも積極的に使おう
824デフォルトの名無しさん (ワッチョイ d9e3-k/Y9)
2018/12/07(金) 00:27:55.79ID:OtTuCL9w0 >>822
> AというオブジェクトからBというオブジェクトにアクセスする場合
> よほどの理由がないかぎりBからAにアクセスすることは避けないといけない
何で?
例えば俺がAでお前がBだったとする
俺からお前を殴るかもしれんし
お前から俺を殴るかもしれん
どちらにしろ
お前はすでに死んでいる
> AというオブジェクトからBというオブジェクトにアクセスする場合
> よほどの理由がないかぎりBからAにアクセスすることは避けないといけない
何で?
例えば俺がAでお前がBだったとする
俺からお前を殴るかもしれんし
お前から俺を殴るかもしれん
どちらにしろ
お前はすでに死んでいる
825デフォルトの名無しさん (ワッチョイ 418a-Po2/)
2018/12/07(金) 00:28:53.29ID:frCtIBO+0 おめえに俺はなぐれねえ
826デフォルトの名無しさん (ワッチョイ 93d2-2OAS)
2018/12/07(金) 00:29:03.36ID:u+M3piYs0 >>815
おばか
おばか
827デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
2018/12/07(金) 00:32:37.34ID:0/x3pMw+0 低学歴知恵遅れほど
継承とリフレクションをうれしがって多用するからな
まさに
オブジェクト指向に低学歴知恵遅れは
キチガイに刃物
継承とリフレクションをうれしがって多用するからな
まさに
オブジェクト指向に低学歴知恵遅れは
キチガイに刃物
828デフォルトの名無しさん (アウアウエー Sa23-M/db)
2018/12/07(金) 00:37:33.94ID:UtwEaJZea おじさんはこれを思い出した
https://youtu.be/YLhuSYTySVM
https://youtu.be/YLhuSYTySVM
829デフォルトの名無しさん (スフッ Sdb3-Pwcg)
2018/12/07(金) 00:44:42.63ID:yHtgxfh3d リフレクションを使わないソースコードなんて気の抜けたコーラだろ
830デフォルトの名無しさん (ワッチョイ 93d2-2OAS)
2018/12/07(金) 01:12:03.95ID:u+M3piYs0 使ってることに気づいてないだけ
831デフォルトの名無しさん (ワッチョイ e18a-nOOm)
2018/12/07(金) 03:53:19.21ID:4tv6nv6l0 64bitの.NET Core でSQLite使いたい時はどれ落とせばいいんですか?
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
.NET Core用のは以下の1つしかないっぽいけど、これ使うと、"間違ったフォーマットのプログラムを読み込もうとしました。"とエラーが発生します。
Precompiled Binaries for the .NET Standard 2.0 (.NET Core 2.0)
過去の.net frameworkの経験上、bit違いでこのエラーが出るようなんですが、Core用SQLite.dllが上記しかないので、どうしようもない状態です。
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
.NET Core用のは以下の1つしかないっぽいけど、これ使うと、"間違ったフォーマットのプログラムを読み込もうとしました。"とエラーが発生します。
Precompiled Binaries for the .NET Standard 2.0 (.NET Core 2.0)
過去の.net frameworkの経験上、bit違いでこのエラーが出るようなんですが、Core用SQLite.dllが上記しかないので、どうしようもない状態です。
832デフォルトの名無しさん (ワッチョイ 93d2-2OAS)
2018/12/07(金) 07:11:23.20ID:u+M3piYs0 EF Coreのマイグレーションで自動生成したことしかないわ
833デフォルトの名無しさん (ワッチョイ 89f7-e/g/)
2018/12/07(金) 08:35:25.92ID:TvdhMF8B0 気ままにREFLECTION
834デフォルトの名無しさん (アウアウエー Sa23-AsR1)
2018/12/07(金) 08:37:40.31ID:2afnIVVGa835デフォルトの名無しさん (スッップ Sdb3-2OAS)
2018/12/07(金) 08:55:42.95ID:CXp+sqegd ああdllの話かw
こないだNuGet知らないやつがいて驚いたわ
こないだNuGet知らないやつがいて驚いたわ
836デフォルトの名無しさん (オイコラミネオ MMdd-KJ8f)
2018/12/07(金) 09:11:59.73ID:t0xhrKmJM リフレクションが止まらない
837デフォルトの名無しさん (ワッチョイ 9306-n9Ol)
2018/12/07(金) 09:28:53.50ID:0Ncculaf0 >>831
UWPでは、System.Data.Sqliteとは別系統のMicrosoft.Data.SQliteというMSご謹製のライブラリがあるのでそっちを使ってください
ちなみにDapperはマトモ動きませんのでEF Core使うか直にADOやらないと駄目だけどね
UWPでは、System.Data.Sqliteとは別系統のMicrosoft.Data.SQliteというMSご謹製のライブラリがあるのでそっちを使ってください
ちなみにDapperはマトモ動きませんのでEF Core使うか直にADOやらないと駄目だけどね
838デフォルトの名無しさん (スッップ Sdb3-2OAS)
2018/12/07(金) 10:45:05.23ID:CXp+sqegd >>837
Dapperについて詳しく
Dapperについて詳しく
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 働いて参ります
- ( ・᷄ὢ・᷅ )あ?
- 地震
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- ブタをぶったたく
