!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/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part143
https://mevius.5ch.net/test/read.cgi/tech/1558002486/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part144
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ドコグロ MM2f-DHp5)
2019/07/16(火) 15:36:23.74ID:i1fbuZ/pM506デフォルトの名無しさん (ワッチョイ 13ad-dWIW)
2019/08/31(土) 08:26:54.85ID:/xXRK3gd0507デフォルトの名無しさん (ワッチョイ 097d-cRT5)
2019/08/31(土) 08:38:53.92ID:auI6O9iK0508デフォルトの名無しさん (ワッチョイ d101-drPI)
2019/08/31(土) 15:26:10.82ID:pxkHJ9ge0 クロームにURL開かせるプログラムって作れるのかな
509デフォルトの名無しさん (ワッチョイ d101-drPI)
2019/08/31(土) 15:34:24.66ID:pxkHJ9ge0 標準ブラウザで開くのがありました
510デフォルトの名無しさん (ワッチョイ 895f-5xY+)
2019/08/31(土) 17:12:50.00ID:3HNIz5om0 引数にURLを入れて起動すればいいんじゃない?
やったことないけど
やったことないけど
511デフォルトの名無しさん (アウアウエー Sa23-DvX6)
2019/08/31(土) 18:30:37.90ID:OVCgKeDNa headlessでできるよー
512デフォルトの名無しさん (ワッチョイ 0101-aCR/)
2019/08/31(土) 18:34:41.41ID:lSinYyRY0 >>510
どんなブラウザでも、標準でそうなってる(べき)と思ってる。meも
どんなブラウザでも、標準でそうなってる(べき)と思ってる。meも
513デフォルトの名無しさん (ワッチョイ 9963-n2vT)
2019/08/31(土) 20:59:16.96ID:DOQSWUJb0 start url
って叩きゃ標準ブラウザが立ち上がるでしょ
引数ってブラウザのexeパス調べてそこに渡すの?
OSが知ってんだからOSにぶん投げればいいだけじゃん
って叩きゃ標準ブラウザが立ち上がるでしょ
引数ってブラウザのexeパス調べてそこに渡すの?
OSが知ってんだからOSにぶん投げればいいだけじゃん
514デフォルトの名無しさん (ワッチョイ c163-Zz8z)
2019/08/31(土) 22:02:09.86ID:3KJgwSNk0 >>508
Seleniumだな、それこそ。
Seleniumだな、それこそ。
515デフォルトの名無しさん (ワッチョイ 5124-kL5O)
2019/09/02(月) 13:12:29.24ID:x5YZ9uix0 Span<T>をコレクションに貯める事って出来ないんでしょうか?
受け取ったbyte[]から一部のみを必要としていますが、startIndexとlengthを一々記録するのも面倒であるため、現状は新たにnew byte[length]を作りコピーをして貯めています
別にこれでも全く困っていませんが、あんまりスマートではない気がしているので元のbyte[]を.AsSpan(startIndex, length)したものをコレクションに貯められればスッキリするのですが
受け取ったbyte[]から一部のみを必要としていますが、startIndexとlengthを一々記録するのも面倒であるため、現状は新たにnew byte[length]を作りコピーをして貯めています
別にこれでも全く困っていませんが、あんまりスマートではない気がしているので元のbyte[]を.AsSpan(startIndex, length)したものをコレクションに貯められればスッキリするのですが
516デフォルトの名無しさん (ワッチョイ 0b7c-+0qt)
2019/09/02(月) 13:30:51.46ID:DTXhuRLF0 できないよ
array[3..7]とかでSliceするとか元の配列を使うならArraySegment<T>使うとか
array[3..7]とかでSliceするとか元の配列を使うならArraySegment<T>使うとか
517デフォルトの名無しさん (アウアウウー Sa55-HWcK)
2019/09/02(月) 14:07:32.18ID:/BuOMso5a へーSpanってそんな制約があるのか知らんかった
https://stackoverflow.com/questions/52484998/the-type-spanchar-may-not-be-used-as-a-type-argument
https://stackoverflow.com/questions/52484998/the-type-spanchar-may-not-be-used-as-a-type-argument
518デフォルトの名無しさん (ワッチョイ 132c-cmxz)
2019/09/02(月) 14:41:25.59ID:ZSYwkq3t0 >>508
例えば、Ruby, Selenium Webdriver なら、
下のファイルを、test.rb とすると、端末で、
ruby test.rb "ここにURL"
と入力すると、引数がARGV[0] に入ってくる
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to ARGV[0] # URL
例えば、Ruby, Selenium Webdriver なら、
下のファイルを、test.rb とすると、端末で、
ruby test.rb "ここにURL"
と入力すると、引数がARGV[0] に入ってくる
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to ARGV[0] # URL
519デフォルトの名無しさん (アウアウウー Sa55-+0qt)
2019/09/02(月) 17:47:47.05ID:btOIY8sya >>515
MemoryExtensions.AsMemory()を経由してSystem.Memory<T>を管理するのはどう?
MemoryExtensions.AsMemory()を経由してSystem.Memory<T>を管理するのはどう?
520デフォルトの名無しさん (ワッチョイ 895f-rkig)
2019/09/02(月) 22:24:59.33ID:yMcQzedZ0 >>518
C#で書かないならスレチ
C#で書かないならスレチ
521デフォルトの名無しさん (ワッチョイ 0b0d-N0pA)
2019/09/03(火) 00:14:45.15ID:nBDYMOwL0 なんで突然ruby?
522デフォルトの名無しさん (ワッチョイ d352-ehfx)
2019/09/03(火) 00:20:55.08ID:UWVASv0T0 >>521
ソイツはいくつかのスレタイにRuby禁止といれることになった元凶だから、考えるだけ無駄よ
ソイツはいくつかのスレタイにRuby禁止といれることになった元凶だから、考えるだけ無駄よ
523デフォルトの名無しさん (ワッチョイ ebf2-cRT5)
2019/09/03(火) 04:53:21.49ID:uBbuO65f0 これもう半分まつもとゆきひろだろ
524デフォルトの名無しさん (ワッチョイ 3163-CiQ8)
2019/09/03(火) 07:44:05.39ID:ZfMnDhcZ0 Matzから分離した闇の半身か何か(ダークファンタジー感)
525デフォルトの名無しさん (ワッチョイ d101-drPI)
2019/09/03(火) 15:02:01.60ID:qa0OGce90 zipファイルのパスワード総当たりのコードってどこかに落ちてたりしません?
526デフォルトの名無しさん (アウウィフ FF55-ca7b)
2019/09/03(火) 15:23:56.69ID:gWEsYspAF ム板なんだし自分で書いても大した手間じゃないだろ
527デフォルトの名無しさん (ワッチョイ c1a3-wVGT)
2019/09/04(水) 23:01:10.22ID:YAGCYgl00 ラプラス使ったほうが早い
528デフォルトの名無しさん (エムゾネ FF33-UhVm)
2019/09/04(水) 23:19:14.03ID:+3gE1skmF ラプラス変換関係ないだろ
529デフォルトの名無しさん (ワッチョイ c1a3-wVGT)
2019/09/04(水) 23:23:33.02ID:YAGCYgl00 フリーソフトなんだけど(´・ω・`)
530デフォルトの名無しさん (ブーイモ MM62-5l8Y)
2019/09/05(木) 08:24:49.80ID:cdpeKhxuM ラブプラスに見えたし
531デフォルトの名無しさん (ワッチョイ 2e12-+y6x)
2019/09/05(木) 12:39:28.85ID:mWzCSlDu0 頭がc
胴体がDelphi
尻尾がJava
これはなんという生き物か?
胴体がDelphi
尻尾がJava
これはなんという生き物か?
532デフォルトの名無しさん (スププ Sd62-5A7B)
2019/09/05(木) 12:52:58.36ID:IuZ8kmLDd メインフォームと5つボタンがあるサブフォームあります。
サブフォームで押されたボタンをメインフォームに渡す方法として、下記のようなことが書いてあります。
「サブフォームの呼び出し時にメインフォームのインスタンスをサブフォームの変数に渡すか、もしくは Ownerプロパティを設定し、サブフォームにメインフォームのインスタンスを伝える必要があります。」
これ循環参照にならないのですか?
owner プロパティならフレームワークでうまくやってくれそうですが、そうしないなら典型的な循環参照でメモリにいつまでも残るように見えます。
サブフォームで押されたボタンをメインフォームに渡す方法として、下記のようなことが書いてあります。
「サブフォームの呼び出し時にメインフォームのインスタンスをサブフォームの変数に渡すか、もしくは Ownerプロパティを設定し、サブフォームにメインフォームのインスタンスを伝える必要があります。」
これ循環参照にならないのですか?
owner プロパティならフレームワークでうまくやってくれそうですが、そうしないなら典型的な循環参照でメモリにいつまでも残るように見えます。
533デフォルトの名無しさん (スププ Sd62-5A7B)
2019/09/05(木) 12:57:57.83ID:IuZ8kmLDd >532のコードで気になった部分
public FormMain() {
InitializeComponent();
fs = new FormSub();
fs.formMain = this;
}
private void button1_Click(object sender, EventArgs e) {
fs.Show();
}
public FormMain() {
InitializeComponent();
fs = new FormSub();
fs.formMain = this;
}
private void button1_Click(object sender, EventArgs e) {
fs.Show();
}
534デフォルトの名無しさん (スップ Sd62-WdK5)
2019/09/05(木) 13:07:57.99ID:/TG+lkXnd 昔のVBとかじゃないから
参照カウント方式とかじゃないから
大丈夫だよ
参照カウント方式とかじゃないから
大丈夫だよ
535デフォルトの名無しさん (オイコラミネオ MM49-HBF5)
2019/09/05(木) 15:05:44.19ID:olW2Z8c3M536デフォルトの名無しさん (ドコグロ MM0a-cUvx)
2019/09/05(木) 15:11:39.37ID:MYIgyYNAM >>535
相互参照⊂循環参照
相互参照⊂循環参照
537デフォルトの名無しさん (ワッチョイ 82f9-URh6)
2019/09/06(金) 07:39:44.27ID:ON7V4Cum0 awaitの仕組みって面白いな
プログラムは逐次実行と思い込んでいたから最初戸惑ったけど
プログラムの可読性を上げつつ非同期が書ける仕組み
プログラムは逐次実行と思い込んでいたから最初戸惑ったけど
プログラムの可読性を上げつつ非同期が書ける仕組み
538デフォルトの名無しさん (ササクッテロ Spf1-SwPx)
2019/09/06(金) 12:21:39.70ID:5uKlWCRxp バカ、逆に非同期の仕組みが分かりにくい事になってて最悪だわ。
若い奴らはある種のおまじないとしか思って無いぞ。
だからサンプル通りに書いたら動いたで思考停止してるわ。
若い奴らはある種のおまじないとしか思って無いぞ。
だからサンプル通りに書いたら動いたで思考停止してるわ。
539デフォルトの名無しさん (ササクッテロ Spf1-SwPx)
2019/09/06(金) 12:23:25.42ID:5uKlWCRxp だったら最初から完全に隠蔽しちまえばいいのにそれも出来ない半端な言語だよな。
540デフォルトの名無しさん (ワッチョイ 8922-qCkd)
2019/09/06(金) 12:27:55.87ID:RjtqJRZu0 >>537
async/awaitはとてもいいよな
async/awaitはとてもいいよな
541デフォルトの名無しさん (スップ Sdc2-5gEI)
2019/09/06(金) 12:36:51.77ID:dfZG2SkRd >>539
へー半端な言語が大増殖してるねよかったね
へー半端な言語が大増殖してるねよかったね
542デフォルトの名無しさん (ワッチョイ 4224-stHu)
2019/09/06(金) 13:29:27.52ID:TB1/9ae/0 ものすごく細かく気にする価値のないであろう上で質問させてください。
下記のようなコードではColorを予め変数として保持していますが、ColorではなくSolidColorBrushごと変数として持っておいた方が良いと思うのですが違うんでしょうか?(Colorの各変数は下記のConvertメソッドでしか使われていません)
private Color redColor = Colors.Red;
private Color blueColor = Colors.Blue;
public object Convert(object value)
{
switch ((int)value)
{
case 0:
return new SolidColorBrush(redColor);
default:
return new SolidColorBrush(blueColor);
}
}
下記のようなコードではColorを予め変数として保持していますが、ColorではなくSolidColorBrushごと変数として持っておいた方が良いと思うのですが違うんでしょうか?(Colorの各変数は下記のConvertメソッドでしか使われていません)
private Color redColor = Colors.Red;
private Color blueColor = Colors.Blue;
public object Convert(object value)
{
switch ((int)value)
{
case 0:
return new SolidColorBrush(redColor);
default:
return new SolidColorBrush(blueColor);
}
}
543デフォルトの名無しさん (ワッチョイ 9901-GY6g)
2019/09/06(金) 13:30:16.71ID:I5nGSvp60 Occam 呼んだ〜
544デフォルトの名無しさん (ワッチョイ be7c-Qx9Y)
2019/09/06(金) 13:38:31.81ID:qBxw88Xh0 Convert呼び出した側がOpacityとか勝手に変えたりすることがないことが明らかなら
SolidColorBrushで持っててもいいよ
SolidColorBrushで持っててもいいよ
545デフォルトの名無しさん (ワッチョイ 4224-stHu)
2019/09/06(金) 13:43:03.96ID:TB1/9ae/0546デフォルトの名無しさん (スップ Sd62-aA0m)
2019/09/06(金) 20:41:34.27ID:QErA9RfTd return HttpResponseMessage {
StatusCode=HttpStatusCode.InternalServerError
}
これでクライアントにレスポンス返しても、クライアントで受け取ったレスポンスコードが200になるんだが、どうすりゃ良い?
StatusCode=HttpStatusCode.InternalServerError
}
これでクライアントにレスポンス返しても、クライアントで受け取ったレスポンスコードが200になるんだが、どうすりゃ良い?
547デフォルトの名無しさん (ワッチョイ 31a5-dIzf)
2019/09/06(金) 23:59:27.95ID:2XeZAy8C0 short lo = 500;
short hi = -1;
int value = hi << 16 & lo;
上記のプログラムでvalueに期待する結果が格納されません。
valueの右辺へおかしいところありますか?
short hi = -1;
int value = hi << 16 & lo;
上記のプログラムでvalueに期待する結果が格納されません。
valueの右辺へおかしいところありますか?
548デフォルトの名無しさん (ワッチョイ 3142-RcXn)
2019/09/07(土) 00:04:12.02ID:1iyY1sdc0 まず期待結果を教えろよ
脳内に格納したままで喋るな
脳内に格納したままで喋るな
549デフォルトの名無しさん (アウアウウー Saa5-DVh7)
2019/09/07(土) 00:35:07.80ID:lng4b11Wa ぶっ飛んでるねw
550デフォルトの名無しさん (ワッチョイ dd5f-OrRa)
2019/09/07(土) 00:47:49.03ID:lKqYze8d0 >>547
なんとなく&(and)と|(or)を間違えてる気がするけど、期待値書いてくれなきゃ分からんねw
なんとなく&(and)と|(or)を間違えてる気がするけど、期待値書いてくれなきゃ分からんねw
551デフォルトの名無しさん (ワッチョイ 4d61-ILBB)
2019/09/07(土) 01:10:23.93ID:ClfuNVBY0552デフォルトの名無しさん (ワッチョイ 4279-PxCh)
2019/09/07(土) 01:21:40.06ID:SOW3zbb30 C派生のシフト演算子ってビット演算子よりも優先順位低いんじゃなかったか?
C#で入れ替わったのかもしれんが
C#で入れ替わったのかもしれんが
553デフォルトの名無しさん (アウアウウー Saa5-4tq8)
2019/09/07(土) 01:30:36.24ID:spGdC07na 型変換か?
554デフォルトの名無しさん (ワッチョイ 317b-qs1I)
2019/09/07(土) 01:31:47.20ID:l9Sxm6Vo0 >>552
docsに演算子の一覧と優先順位がある
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/
docsに演算子の一覧と優先順位がある
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/
555デフォルトの名無しさん (ワッチョイ dd5f-OrRa)
2019/09/07(土) 01:52:37.97ID:lKqYze8d0556デフォルトの名無しさん (ワッチョイ ade6-kyym)
2019/09/07(土) 01:57:56.73ID:7Z6eBjmW0 ?はもっと上げてほしい
557デフォルトの名無しさん (ワッチョイ ade6-kyym)
2019/09/07(土) 01:58:53.26ID:7Z6eBjmW0 じゃなくて??
558デフォルトの名無しさん (アウアウウー Saa5-xt41)
2019/09/07(土) 11:12:31.90ID:53qID/ifa async/await、読みやすいし書きやすいけどな。
559デフォルトの名無しさん (ワッチョイ 8990-uegj)
2019/09/07(土) 11:14:11.92ID:LlCffhcK0 https://www.youtube.com/watch?v=O8ucIQA829w
Introduction into StockSharp training course
どうこれVisual Studioってこんなに速く作れるの?
自分で自動売買ソフト組めるってすごくね?
Introduction into StockSharp training course
どうこれVisual Studioってこんなに速く作れるの?
自分で自動売買ソフト組めるってすごくね?
560デフォルトの名無しさん (ワッチョイ c294-OrRa)
2019/09/09(月) 13:42:14.17ID:mFi2C/Ml0 クラスの継承について分からくなってしまったので教えて下さい。
以下のプログラムを実行すると、コメントの通り、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 で実行しました。
よろしくお願いいたします。
以下のプログラムを実行すると、コメントの通り、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 で実行しました。
よろしくお願いいたします。
561デフォルトの名無しさん (スププ Sd62-5A7B)
2019/09/09(月) 13:57:18.69ID:+ClizqJ4d 下記 は子フォームから親フォームへのデータ引き渡しのサンプルです。
ShowDialog(); の戻り値を使ってないのですが、ここがよくわかりません。
static public List<object> ShowForm2(List<object> argObjs) {
using (Form2 subForm = new Form2(argObjs)) {
subForm.ShowDialog(); // 戻り値は?
return subForm.resultObjs;
}
}
現在はデータの受け渡しは ShowDialog(); で表示、DialogResult を受け取り、これで処理を分岐。
これだと呼び出し側が少し膨らむと思って探していたサンプルが上のやつです。
ShowDialog(); の戻り値を使ってないのですが、ここがよくわかりません。
static public List<object> ShowForm2(List<object> argObjs) {
using (Form2 subForm = new Form2(argObjs)) {
subForm.ShowDialog(); // 戻り値は?
return subForm.resultObjs;
}
}
現在はデータの受け渡しは ShowDialog(); で表示、DialogResult を受け取り、これで処理を分岐。
これだと呼び出し側が少し膨らむと思って探していたサンプルが上のやつです。
562デフォルトの名無しさん (ワッチョイ ed7c-p7Vf)
2019/09/09(月) 14:01:51.48ID:FLVXg6p/0 >>560
type of
type of
563デフォルトの名無しさん (ワッチョイ be7c-gJmI)
2019/09/09(月) 14:25:45.50ID:wj5pBZXU0 >>561
それだけじゃ何とも言えないけど
ダイアログがキャンセルされたかどうかもresultObjsに含んでる
またはキャンセルされたかどうかは重要ではない
のどっちかでDialogResultは不要と考えたんじゃね
あとはただのチェック忘れか
それだけじゃ何とも言えないけど
ダイアログがキャンセルされたかどうかもresultObjsに含んでる
またはキャンセルされたかどうかは重要ではない
のどっちかでDialogResultは不要と考えたんじゃね
あとはただのチェック忘れか
564デフォルトの名無しさん (ワッチョイ 2eda-ysR5)
2019/09/09(月) 14:33:19.47ID:+8Zg4WGY0 showdialogはあくまでサブフォーム表示中に
処理を進めないためだけに使っていて
表示したサブフォームがOKもキャンセルもない作りなら
返り値を使う必要がないんだろう
例えばファイルの検索処理とその経過を表示するだけの
サブフォームだったりするんじゃないかな
処理を進めないためだけに使っていて
表示したサブフォームがOKもキャンセルもない作りなら
返り値を使う必要がないんだろう
例えばファイルの検索処理とその経過を表示するだけの
サブフォームだったりするんじゃないかな
565デフォルトの名無しさん (アウアウウー Saa5-DVh7)
2019/09/09(月) 14:44:41.43ID:y33/yVcMa >>560
FolderItems2とかFolderItems3はあくまでVSによって作られた
ラッパークラスなんだと思うけど、たぶんこのラッパークラスには
元のCOMの継承関係は反映されないんだろう。
知らないけど。
FolderItems2とかFolderItems3はあくまでVSによって作られた
ラッパークラスなんだと思うけど、たぶんこのラッパークラスには
元のCOMの継承関係は反映されないんだろう。
知らないけど。
566デフォルトの名無しさん (ワッチョイ c294-OrRa)
2019/09/09(月) 14:54:29.42ID:mFi2C/Ml0 >>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;
}
のようなコードもコンパイルエラーにならないので、
継承関係があることは間違いないと思います。
また何かお分かりのことがあれば教えていただけると嬉しく思います。
よろしくお願いいたします。
レスどうもありがとうございます。
申し訳ないですが、おっしゃりたいことが理解できませんでした。
>>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;
}
のようなコードもコンパイルエラーにならないので、
継承関係があることは間違いないと思います。
また何かお分かりのことがあれば教えていただけると嬉しく思います。
よろしくお願いいたします。
567デフォルトの名無しさん (ワッチョイ be7c-gJmI)
2019/09/09(月) 15:06:55.45ID:wj5pBZXU0 COMにおける継承はメンバを引き継ぐという意味であってキャスト可能かどうかは別の話だから
.NETのコード上で明示的または暗黙的にCOMオブジェクト(のラッパ)をキャストした場合
QueryInterfaceが呼び出されてそのインターフェイスに変換できるかどうかオブジェクト自身に問い合わせる
だから共通型システム的には問題ない暗黙的キャストでもその下のQueryInterfaceで拒否される可能性がある
.NETのコード上で明示的または暗黙的にCOMオブジェクト(のラッパ)をキャストした場合
QueryInterfaceが呼び出されてそのインターフェイスに変換できるかどうかオブジェクト自身に問い合わせる
だから共通型システム的には問題ない暗黙的キャストでもその下のQueryInterfaceで拒否される可能性がある
568デフォルトの名無しさん (ワントンキン MM92-eDvP)
2019/09/09(月) 19:12:21.94ID:ko6k1+RqM 正規表現を教えてください。
先頭一文字は大文字アルファベット、
次の一文字は大文字アルファベットかスペース、
残り五文字が数字、です。
文字数は多すぎても少なすぎてもダメてす。
先頭一文字は大文字アルファベット、
次の一文字は大文字アルファベットかスペース、
残り五文字が数字、です。
文字数は多すぎても少なすぎてもダメてす。
569デフォルトの名無しさん (ワッチョイ 9d17-kyym)
2019/09/09(月) 19:34:55.30ID:N7SL81rE0 [A-Z][A-Z\s]\d{5}
570デフォルトの名無しさん (ワッチョイ 311f-A/9M)
2019/09/09(月) 19:51:19.13ID:P/8qmdeQ0 C#でdxfファイルを読み込んでどんなCADデータかなと表示するにはどんな方法がありますか?
571デフォルトの名無しさん (スププ Sd62-5A7B)
2019/09/09(月) 19:51:40.30ID:+ClizqJ4d >>563
戻り値使わないとエラーでビルドできないと思ったんですが、こんな書き方あるんですね。
戻り値使わないとエラーでビルドできないと思ったんですが、こんな書き方あるんですね。
572デフォルトの名無しさん (ワントンキン MM92-eDvP)
2019/09/09(月) 19:58:03.26ID:ko6k1+RqM573デフォルトの名無しさん (アウアウウー Saa5-1iLS)
2019/09/09(月) 19:58:22.06ID:8qRxx3SUa574デフォルトの名無しさん (スフッ Sd62-qCkd)
2019/09/09(月) 20:38:09.86ID:/GXaCKPOd >>570
自力でレンダリングしてるらしきサンプル見つけた
https://www.codeproject.com/Articles/156522/DXF-Import-NET-Read-and-View-AutoCAD-Format-Files
自力でレンダリングしてるらしきサンプル見つけた
https://www.codeproject.com/Articles/156522/DXF-Import-NET-Read-and-View-AutoCAD-Format-Files
575デフォルトの名無しさん (ワッチョイ adda-GY6g)
2019/09/09(月) 21:02:37.25ID:gB0pdJ5j0 >>570
結構大変。DWGならlibreDWGってライブラリーがある
結構大変。DWGならlibreDWGってライブラリーがある
576デフォルトの名無しさん (スプッッ Sd62-A/9M)
2019/09/10(火) 22:30:01.75ID:/j9k/Fivd577デフォルトの名無しさん (ワッチョイ e207-5A7B)
2019/09/11(水) 00:00:22.11ID:1SzE9pLa0 一般人「ウィンドウ」
キモオタ「フォームがーーー」
キモオタ「フォームがーーー」
578デフォルトの名無しさん (ワッチョイ 8990-uegj)
2019/09/11(水) 18:58:32.68ID:YXyi8nZ+0 フォームってなに?泡?
579デフォルトの名無しさん (ワッチョイ 7ff9-fvJG)
2019/09/12(木) 08:36:47.62ID:XbTCqLqm0 c#は食わず嫌いだったけど使ってみたら案外良かった
使いやすいように改良してるんだな
使いやすいように改良してるんだな
580デフォルトの名無しさん (ワッチョイ 9f01-smom)
2019/09/12(木) 11:25:52.65ID:QIiZhm2T0 コントロールのタイマーの質問なんですが
private void Timer1_Tick(object sender, EventArgs e)
{
MyClass myClass = new MyClass(this);
myClass.//クラスの処理いろいろ
}
こう書くと毎回クラスが初期化されてしまいます
タイマー内で同じクラスのインスタンスを使い続けたい場合どのように書けばいいのでしょか?
private void Timer1_Tick(object sender, EventArgs e)
{
MyClass myClass = new MyClass(this);
myClass.//クラスの処理いろいろ
}
こう書くと毎回クラスが初期化されてしまいます
タイマー内で同じクラスのインスタンスを使い続けたい場合どのように書けばいいのでしょか?
581デフォルトの名無しさん (ワッチョイ ffda-6eqr)
2019/09/12(木) 11:31:00.31ID:AZGZd9Ny0 myClassをメンバ変数にする
582デフォルトの名無しさん (ササクッテロ Sp73-K+Fa)
2019/09/12(木) 11:40:42.95ID:2zGYYD27p myClassなんて再利用性が皆無なネーミングすんなよ。
583デフォルトの名無しさん (アウアウウー Sa63-ErpI)
2019/09/12(木) 11:45:28.48ID:joMf8nOja >>582
説明のための命名だろうよ
説明のための命名だろうよ
584デフォルトの名無しさん (ラクッペ MMe3-pDK+)
2019/09/12(木) 12:10:59.94ID:V+BKjeIEM 発達はコンテキストが想像できないから…
585デフォルトの名無しさん (ワッチョイ 9f22-QgVy)
2019/09/12(木) 13:44:13.80ID:j3ZoG8EK0 >>582
aho
aho
586デフォルトの名無しさん (アウアウウー Sa63-THJG)
2019/09/12(木) 14:02:29.31ID:0aQt/zFJa >>580
タイマーのイベントハンドラを消して、適当なタイミング(例えばFormのLoadイベントとか)で
private void Form1_Load(object sender, EventArgs e)
{
var count = 0;
timer1.Tick += (snd, ea) =>
{
Console.WriteLine($"count = {count++}");
};
}
でもこれだとイベントの購読解除ができないので注意
っていうか、ジョークだから真に受けないでw
タイマーのイベントハンドラを消して、適当なタイミング(例えばFormのLoadイベントとか)で
private void Form1_Load(object sender, EventArgs e)
{
var count = 0;
timer1.Tick += (snd, ea) =>
{
Console.WriteLine($"count = {count++}");
};
}
でもこれだとイベントの購読解除ができないので注意
っていうか、ジョークだから真に受けないでw
587デフォルトの名無しさん (ワッチョイ 9f01-smom)
2019/09/12(木) 20:25:20.03ID:QIiZhm2T0588デフォルトの名無しさん (スップ Sd9f-lwUv)
2019/09/13(金) 14:33:13.49ID:FohQxIv6d >>587
コンストラクタかTickイベント(初回のみ)でTimerのTagプロパティにMyClassインスタンスを設定
senderからTagに設定されているインスタンスを取得して利用するってやり方もある
1タイマー1MyClassって感じの設計ならこっちの方がいいかもね
コンストラクタかTickイベント(初回のみ)でTimerのTagプロパティにMyClassインスタンスを設定
senderからTagに設定されているインスタンスを取得して利用するってやり方もある
1タイマー1MyClassって感じの設計ならこっちの方がいいかもね
589デフォルトの名無しさん (ブーイモ MM0f-x87D)
2019/09/13(金) 16:09:57.39ID:GqasltTgM 再利用性のないクラスの名前に拘り過ぎるのは
効率的に無駄だなと感じる
ライブラリ用のクラスは拘るけどね
効率的に無駄だなと感じる
ライブラリ用のクラスは拘るけどね
590デフォルトの名無しさん (ワッチョイ 9f01-smom)
2019/09/13(金) 17:07:26.51ID:zz4VRjti0591デフォルトの名無しさん (ブーイモ MM0f-x87D)
2019/09/13(金) 17:17:29.19ID:GqasltTgM これでいいじゃない
private MyClass myClass = new MyClass(this);
private void Timer1_Tick(object sender, EventArgs e)
{
myClass.//クラスの処理いろいろ
}
private MyClass myClass = new MyClass(this);
private void Timer1_Tick(object sender, EventArgs e)
{
myClass.//クラスの処理いろいろ
}
592デフォルトの名無しさん (ワッチョイ 9f90-bRiQ)
2019/09/13(金) 17:23:20.15ID:65eTAicb0 マイコラスの嫁がかわいい
593デフォルトの名無しさん (スップ Sd9f-lwUv)
2019/09/13(金) 17:47:41.70ID:FohQxIv6d >>590
コンストラクタで、
Timer1.Tag = new MyClass(this);
イベントで
var myClass = ((Timer)sender).Tag as MyClass;
コンストラクタで作ったインスタンスがTimer1のイベントで使えるようになる
これで理解出来そう?
コンストラクタで、
Timer1.Tag = new MyClass(this);
イベントで
var myClass = ((Timer)sender).Tag as MyClass;
コンストラクタで作ったインスタンスがTimer1のイベントで使えるようになる
これで理解出来そう?
594デフォルトの名無しさん (アウアウウー Sa63-THJG)
2019/09/13(金) 17:49:44.94ID:XXPMNkq8a595デフォルトの名無しさん (スップ Sd9f-lwUv)
2019/09/13(金) 17:59:46.24ID:FohQxIv6d 捕捉でsenderの扱いに馴染みがなくて分かりずらいなら
var myClass = Timer1.Tag as MyClass;
って直接コントロールを見てもいいかな
10個のタイマーでそれぞれクラス作るとかだと、メンバに持つのが嫌になるからそういう時に便利
var myClass = Timer1.Tag as MyClass;
って直接コントロールを見てもいいかな
10個のタイマーでそれぞれクラス作るとかだと、メンバに持つのが嫌になるからそういう時に便利
596デフォルトの名無しさん (ワッチョイ 9f01-smom)
2019/09/13(金) 21:09:16.91ID:zz4VRjti0 >>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
サンクスです、うまく動きました
でも正直あまり理解できてません
注:理解するのに時間がかかります
サンクスです、やってみました
//キーワード '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
サンクスです、うまく動きました
でも正直あまり理解できてません
注:理解するのに時間がかかります
597デフォルトの名無しさん (ワッチョイ 7f07-h/DA)
2019/09/13(金) 21:48:16.79ID:PFGdVlPv0 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);
// 終了条件チェック、
// 終了処理
}
今のところコードは下記です。
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);
// 終了条件チェック、
// 終了処理
}
598デフォルトの名無しさん (アウアウウー Sa63-cBLT)
2019/09/13(金) 22:11:07.86ID:YdWi/cYta >>597
int counter = 0;
void timer_Tick(object sender, EventArgs e)
{
counter++;
counter %= 256;
textBox1.BackColor = Color.FromArgb(255 - counter, 255 - counter, 255);
}
int counter = 0;
void timer_Tick(object sender, EventArgs e)
{
counter++;
counter %= 256;
textBox1.BackColor = Color.FromArgb(255 - counter, 255 - counter, 255);
}
599デフォルトの名無しさん (スップ Sd1f-lwUv)
2019/09/13(金) 22:12:15.08ID:Gf0j4OgCd600デフォルトの名無しさん (ワッチョイ 9f01-smom)
2019/09/13(金) 22:27:35.64ID:zz4VRjti0601デフォルトの名無しさん (アウアウウー Sa63-THJG)
2019/09/13(金) 23:44:37.81ID:aO4dryeFa >>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);
}
やってみた
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);
}
602デフォルトの名無しさん (アウアウウー Sa63-THJG)
2019/09/13(金) 23:44:54.82ID:aO4dryeFa 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);
}
}
{
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);
}
}
603デフォルトの名無しさん (ワッチョイ ff02-lwUv)
2019/09/14(土) 02:16:18.45ID:BYSNLn3J0 >>600
コンストラクタやフィールドだとthisって使えないんだっけ?
それならこれでいけるかな
Tagの方も同じ感じでいけるはず
private MyClass myClass;
private void Timer1_Tick(object sender, EventArgs e)
{
if(myClass = null)
{myClass = new MyClass(this);}
myClass.//クラスの処理いろいろ
}
コンストラクタやフィールドだとthisって使えないんだっけ?
それならこれでいけるかな
Tagの方も同じ感じでいけるはず
private MyClass myClass;
private void Timer1_Tick(object sender, EventArgs e)
{
if(myClass = null)
{myClass = new MyClass(this);}
myClass.//クラスの処理いろいろ
}
604デフォルトの名無しさん (ワッチョイ 9f01-smom)
2019/09/14(土) 09:11:10.12ID:weYOKlpc0605デフォルトの名無しさん (ワッチョイ 9f24-B34Y)
2019/09/14(土) 11:56:47.95ID:vC+cN/7F0 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は変化なし
var dic = new Dictionary<int, Action<float>>()という辞書に保持されているActionのメソッドを引いたり足したりしたいのですが、
下記のようにするとdicのvalueには反映されないようですが再度dicに追加してアップデートしないといけないということでしょうか?
var action = dic[1];
action += method; // action.GetInvocationList().Lengthを調べるとちゃんと足されてる一方、dic[1].GetInvocationList().Lengthは変化なし
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- 日本人の海外旅行したきのマナーよくなったのはいつから
- オマエら女に飽きただろ
- BTSのバラエティ面白すぎワロタ
- 【悲報】大分市佐賀関の火事、20軒→170軒に延焼🔥 [481941988]
