X



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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん (ワッチョイ 9f0b-Fgt1)
垢版 |
2019/12/11(水) 22:12:11.28ID:d09CciDz0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

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

■情報源
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/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0851デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
垢版 |
2020/02/08(土) 13:56:53.42ID:v1IBJgnWF
System.Drawing の Point は int か PointF の float なのに
System.Windows の Point は double で
結局3種類ある訳で
なんでこんな面倒くさいことになってんの?
0854デフォルトの名無しさん (ワッチョイ 7f02-sfHF)
垢版 |
2020/02/08(土) 14:27:00.86ID:i54vVeN30
>>846
まず同期処理で書くことできる?
async、awaitは非同期をあまり意識させることなく実装できるのが強み
なんで、まずは普通に書けないと話にならない
自分は非同期じゃなかったらこうするってコードをあげてみたらどう?
0855デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
垢版 |
2020/02/08(土) 14:32:32.65ID:v1IBJgnWF
async await って Unity でも使えたっけ
0857デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
垢版 |
2020/02/08(土) 14:41:06.06ID:v1IBJgnWF
UWP 使う積もりは無いので大丈夫
0862デフォルトの名無しさん (ワッチョイ 17b0-tipF)
垢版 |
2020/02/08(土) 15:45:57.77ID:ybbIdUq60
プログラムとして良い悪いは別にして
グローバル変数使わずにローカルだけでやるというのは
明確にオブジェクト指向を意識する練習でもあるから
頭の体操にはいいじゃん
0868デフォルトの名無しさん (アウアウウー Sa9b-WggA)
垢版 |
2020/02/08(土) 18:18:34.40ID:Ovre0sLva
>>862
オブジェクト指向関係あるかな?w

というかね、フィールドという明示的な実体を持たないくせに
インスタンスと同じ寿命を持つ「何か」が存在する、というのを
気持ち悪いと思わない人はプログラマの適正が疑わしいと個人的には思うよw
0869デフォルトの名無しさん (アウアウウー Sa9b-WggA)
垢版 |
2020/02/08(土) 19:07:17.64ID:Ovre0sLva
書いてみたけどくだらんなやっぱりw
protected async override void OnLoad(EventArgs e)
{
  base.OnLoad(e);
  var foo = WrapAction(() => textBox1.Text += "1", 1000);
  var bar = WrapAction(() => textBox2.Text += "2", 2000);
  await RepeatAction(() =>{foo(); bar();}, 10);
}

private async Task RepeatAction(Action a, int interval)
{
  var closed = false;
  FormClosed += (sender, e) => closed = true;
  while(!closed)
  {
    await Task.Delay(interval);
    a();
  }        
}

private Action WrapAction(Action a, int interval)
{
  var timeout = System.Environment.TickCount + interval;
  return () =>
  {
    if(Environment.TickCount >= timeout)
    {
      timeout += interval;
      a();
    }
  };
}
0870デフォルトの名無しさん (ワッチョイ d735-oJhu)
垢版 |
2020/02/08(土) 19:53:29.35ID:0YppiA+B0
OS:Rasbian Stretch
ランタイム:Mono JIT compiler version 4.6.2 (Debian 4.6.2.7+dfsg-1)
ソース:https://i.imgur.com/cFLOcYN.png
パッケージ:https://i.imgur.com/bWRI0Zg.png
エラー:Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found.
ビルドターゲット:.NET Framework4.6.1

Windowsでは正常に動作します。
AngleSharpを入れていない場合であればMonoのほうでも動作します。
Anglesharpを入れるとバイナリのフォルダに大量のSystem.***.dllができます。
AngleSharpを入れていないと動くのに入れるとエラーが出る理由はなんですか?
0872デフォルトの名無しさん (ワッチョイ d735-oJhu)
垢版 |
2020/02/08(土) 20:01:31.70ID:0YppiA+B0
>>871
相談スレの方ですか?
AngleSharpを入れない場合はちゃんと動く理由がわかりません。
0873デフォルトの名無しさん (オッペケ Sr0b-RXZG)
垢版 |
2020/02/08(土) 20:06:39.89ID:1TiVu9qyr
エラー内容見ろ
エラー:Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found.

System.Net.ServicePointManager.CloseConnectionGroupsというメソッドが見つからないと言うことだ

何故見つからないかと言えば前に書いた内容で調べるべき
0874デフォルトの名無しさん (オッペケ Sr0b-RXZG)
垢版 |
2020/02/08(土) 20:10:36.90ID:1TiVu9qyr
入門者なのかもしれないけどいきなり面倒な方法を使って勉強しても大変だよ
標準的な内容である程度勉強した後に発展でMONOを使うならいいと思うと書いてもまあ理解されないだろうな

標準的な入門を選ぶか
いばらの道の入門を選ぶかは個人の自由だもの
0875デフォルトの名無しさん (ワッチョイ d735-oJhu)
垢版 |
2020/02/08(土) 20:11:25.33ID:0YppiA+B0
>>873
AngleSharpを入れなければそのようなエラーは出ません
その理由がわからないという質問です。
0877デフォルトの名無しさん (ワッチョイ d735-oJhu)
垢版 |
2020/02/08(土) 20:38:36.42ID:0YppiA+B0
しかしWindowsではエラーになりません
0879デフォルトの名無しさん (ワッチョイ d735-oJhu)
垢版 |
2020/02/08(土) 20:44:56.35ID:0YppiA+B0
System.AggregateException: One or more errors occurred. ---> System.MissingMethodException: Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found.
at System.Net.Http.HttpMessageHandler.Dispose () [0x00000] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpMessageInvoker.Dispose (System.Boolean disposing) [0x0001e] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpClient.Dispose (System.Boolean disposing) [0x0002c] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpMessageInvoker.Dispose () [0x00000] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at ConsoleApp17.Program+<MainAsync>d__1.MoveNext () [0x00117] in <a0ba2302dc914c45933daaf9af0bf56d>:0
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00052] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.Tasks.Task.Wait () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0
at ConsoleApp17.Program.Main (System.String[] args) [0x00005] in <a0ba2302dc914c45933daaf9af0bf56d>:0
---> (Inner Exception #0) System.MissingMethodException: Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found.
at System.Net.Http.HttpMessageHandler.Dispose () [0x00000] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpMessageInvoker.Dispose (System.Boolean disposing) [0x0001e] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpClient.Dispose (System.Boolean disposing) [0x0002c] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpMessageInvoker.Dispose () [0x00000] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at ConsoleApp17.Program+<MainAsync>d__1.MoveNext () [0x00117] in <a0ba2302dc914c45933daaf9af0bf56d>:0 <---
0882デフォルトの名無しさん (オッペケ Sr0b-RXZG)
垢版 |
2020/02/08(土) 21:00:10.67ID:1TiVu9qyr
.net framework ≠ monoのframework
それぞれ違う実装で別物

それを.net standardで標準化しようとしてる
でも実際にちゃんと実装されてるか不明
仕組みがすべてうまくいってるのか不明
対応したライブラリを作っている人の検証も十分かどうかわからない

動かない場合他人に聞くより自分で調べるしかない
0883デフォルトの名無しさん (ワッチョイ d735-oJhu)
垢版 |
2020/02/08(土) 21:04:25.30ID:0YppiA+B0
>>880
ありがとうございます!
しかしそのまま削除してしまうと下記のようなエラーが出てしまいますね…
コンパイルからするとしたら勝手にコピーされるのを禁止する的なオプションが必要そうで難しそうですね…

Unhandled Exception:
System.BadImageFormatException: Could not resolve field token 0x04000002
File name: 'ConsoleApp17'
at ConsoleApp17.Program.Main (System.String[] args) [0x00000] in <a0ba2302dc914c45933daaf9af0bf56d>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.BadImageFormatException: Could not resolve field token 0x04000002
File name: 'ConsoleApp17'
at ConsoleApp17.Program.Main (System.String[] args) [0x00000] in <a0ba2302dc914c45933daaf9af0bf56d>:0
0884デフォルトの名無しさん (ラクッペ MMcb-9sS2)
垢版 |
2020/02/08(土) 23:34:06.57ID:I9BdfAP3M
コンインハイブで有罪判決 ♪─O(≧∇≦)O──♪

ユーザーな cpu、gpu を勝手に使い、外部にデータを送信していたのがダメっぽい。

ユーザーの許可なく、デリゲートに処理なげるコードを書いてるc# 犯罪者も全員逮捕すべきだね。

ボタンを押した時の処理をボタンクラス等に書いておけば、インテリセンスで入力補完できて便利なのでみんなでそうすべき。
0885デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
垢版 |
2020/02/09(日) 16:03:46.61ID:wTv3WydAF
Hoge[] hage = new Hoge[123];
List<Hoge> hige = new List<Hoge>();
foreach(Hoge h in hage) hige.Add(h);

hage.Length と hige.Count とでプロパティ名が違うのが気になります
0889デフォルトの名無しさん (ワッチョイ 17f1-LgKx)
垢版 |
2020/02/09(日) 17:16:40.25ID:YpWJ7Y8F0
>>888
うるさいこのハゲ!
0890デフォルトの名無しさん (ラクッペ MMcb-oJhu)
垢版 |
2020/02/09(日) 18:41:55.44ID:umzLclnyM
リストはコレクションを継承してるからな
コレクションに長さはおかしい
0893デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
垢版 |
2020/02/10(月) 11:03:50.95ID:nWEhVxBk0
気になったから調べたぞ
Arrayクラスの実装に↓のようなものがあるというのが答えかな
(IListはICollectionを継承してる)

// Number of elements in the Array.
int ICollection.Count
{ get { return Length; } }

こう書くとCountはprivateになるから見えないが
インターフェイスは全部publicだからインターフェイスに直接アクセスすると当然見える
なんか微妙な挙動な気もするが
0894デフォルトの名無しさん (アウアウウー Sa9b-WggA)
垢版 |
2020/02/10(月) 11:45:05.82ID:IhKcOfNDa
そもそも愚問だと思うよ
逆に実装してるはずのインターフェイスのメンバーにアクセスできなかったらおかしいでしょw
意味がわからないよ

インターフェイス周辺の文法はVBの方がイケてるね。
VBの文法ならこういう変な勘違いは起こらない
0895デフォルトの名無しさん (ワッチョイ 37da-56gX)
垢版 |
2020/02/10(月) 11:56:37.17ID:8uBZGbTk0
何の問題もないからVBとかいらない
想像するしかないけど配列の長さとしてはLengthの方がふさわしいから隠したんだろ
ICollectionとして扱えば一貫してCountが使えるんだから何の問題もない
0897デフォルトの名無しさん (アウアウウー Sa9b-WggA)
垢版 |
2020/02/10(月) 12:05:13.80ID:IhKcOfNDa
明示的実装にしたのは単に混乱防止のためでしょ。
(ジェネリッククレクションは.NET 1.0の時代には存在しない)

Lengthという名前が採用されている理由はシンプルにCountにすると、
例えばnullを要素としてカウントしないアプリケーションだと違和感があるからじゃないの?
かといってCapacityとも違う。だからLengthなんでしょう。たぶん。
0898デフォルトの名無しさん (ラクッペ MMcb-oJhu)
垢版 |
2020/02/10(月) 12:31:42.73ID:sdl18RcGM
ぶんた。
0899デフォルトの名無しさん (アウアウウー Sa9b-WggA)
垢版 |
2020/02/10(月) 12:34:23.08ID:IhKcOfNDa
もっとシンプルに、たとえ多次元配列であっても配列はメモリー上の連続した領域であることを
意識させたかったのかもしれない。考えすぎかw
0901デフォルトの名無しさん (ラクッペ MMcb-oJhu)
垢版 |
2020/02/10(月) 15:04:17.44ID:sdl18RcGM
じゃあKosuuで。
0903デフォルトの名無しさん (ワッチョイ d77b-3biP)
垢版 |
2020/02/10(月) 18:14:07.48ID:dpw80QrL0
平日の昼間にスレ違いの雑談で埋めるようなところにワッチョイはもういらないよな
次スレは
ふらっと C#,C♯,C#(初心者用) Part141
https://mevius.5ch.net/test/read.cgi/tech/1544838367/
使ってここの継続は立てるなよ。前スレからだがテンプレも読めず雑談やスレ違いで埋める数人のためのスレとかいらん
0904デフォルトの名無しさん (アウアウウー Sa9b-WggA)
垢版 |
2020/02/10(月) 19:30:31.67ID:IhKcOfNDa
>>903
もともとワッチョイなんて有害無益なのは(普通の思考回路してたら)分かるけど
そうじゃないのに限って「声がでかい」のでそんなこと言っても無駄だと思うよw
0907デフォルトの名無しさん (ワッチョイ d735-oJhu)
垢版 |
2020/02/10(月) 23:26:50.94ID:Qiy0cFHh0
せっかくレッテルまで貼ったのに誰にも共感してもらえてなくて草
0908デフォルトの名無しさん (ワッチョイ 17a7-gMkZ)
垢版 |
2020/02/10(月) 23:28:38.33ID:N80PVT3u0
自演ができなくなると何かまずいのか?

たまに単発IDの頭のイカレタ質問と回答が書き込まれる一連のやり取りがそうなのか?
明らかに初心者の域出てるししかも誰も興味ないし
他の初心者の邪魔だからやめた方がいいぞアレ
人の気持ちを考えられない人間になると設計も自然とヘタクソになっていくから
プログラミングの腕も引きづられて落ちていくぞ
0909デフォルトの名無しさん (ワッチョイ 9f63-OK07)
垢版 |
2020/02/10(月) 23:56:49.13ID:hCu3Oxoe0
ようわからんが、単芝生やしてる15/15はこのスレの大古参なので、生意気な口を聞くなよ
0910デフォルトの名無しさん (ワッチョイ 9f63-OK07)
垢版 |
2020/02/11(火) 00:00:22.07ID:BVyNsmkt0
15/15ってなんや
(アウアウウー Sa9b-WggA)のことね
大先輩だよ
もう13年くらいいるよね
0911デフォルトの名無しさん (アウアウウー Sa9b-WggA)
垢版 |
2020/02/11(火) 00:12:43.21ID:FSEIJRHXa
>>905
例えば>>909-910みたいな変なの。

ちょっと前新型コロナの話題が出てたけどあれと同じだよ。
日本人は目的合理性ではなく気が済むかどうかで意思決定しがち。
日本人はこういうところ韓国人と完全に同じだね。

ワッチョイに推進論者が意図するようなプラスの効果なんか期待できないことは自明だ。
そのくせに意図せざる負の効果だけはしっかり存在する。

これ言うと荒れるかもしれないが、ワッチョイ推進論者は匿名掲示板で
「他人が何者か特定した気にならないと気が済まない」ストーカー気質の変な少数者だが、
本人たちにその自覚はない。
0912デフォルトの名無しさん (ワッチョイ d735-oJhu)
垢版 |
2020/02/11(火) 00:24:53.99ID:HEmsPZVy0
ワッチョイみて、なんだまたアイツか。って安心するんだろ
0913デフォルトの名無しさん (ワッチョイ 9f6a-56gX)
垢版 |
2020/02/11(火) 01:47:11.53ID:O1nniQPu0
>>911
負の効果なんてないだろ
自演できなくて悔しいですって正直に言えば賛成してやらんでもないぞ
0915デフォルトの名無しさん (アウアウウー Sa9b-Hkqy)
垢版 |
2020/02/11(火) 08:10:47.80ID:UM7DBn99a
レス番飛んで変な流れになってると思ったら謎理論を展開してる人が
意図せざる負の効果とかかっこいいこと言ってるけど
ワッチョイでNGされちゃうことで構ってくれる人が減るのが嫌なだけでしょ
0917デフォルトの名無しさん (ワッチョイ bf66-QQjh)
垢版 |
2020/02/11(火) 09:16:27.39ID:RZk53+g00
jsonの配列の行数が欲しくて以下のようなコードを書いたのですが

var jsonlist = DynamicJson.Parse(@"{""a"":1, ""b"":2}");
int cnt = 0;
foreach(var json in jsonlist)
{
cnt++;
}

jsonlist.Count()的な端的な書き方はあるでしょうか?
0919sage (ワッチョイ ff02-QQjh)
垢版 |
2020/02/11(火) 21:31:13.81ID:Ewfd3Otp0
>>917
ちらっと見た限りDynamicJsonってDynamicObject派生の独自の実装みたいだから
クラス作った人に聞くしかないのでは?

http://neue.cc/2010/04/30_256.html
0934デフォルトの名無しさん (ワッチョイ 5eda-GUQA)
垢版 |
2020/02/12(水) 12:13:24.49ID:25nTHRNQ0
utf8jsonは早いのかもしれないけど、publicメンバじゃないとダメとか
依存ライブラリが多いとかちょっと使い勝手がな。。

あと全体に言えるけど、
DateTime型をそのままJSONに変換したときに、JSONマッパ毎に結果が異なるのはどうにかならないかな
0938デフォルトの名無しさん (ワッチョイ 9259-GUQA)
垢版 |
2020/02/12(水) 20:32:47.74ID:seLTTpXD0
listの一部要素を切り出したい時ってインデックスの指定以外で早い方法ある?
要素100で0~8,3~21,10~30,50~61,~~みたいに切り出すとして切り出す長さは事前に与えられるケース

getRangeはコピーつくるみたいなので除外して、skipとtakeはどうなんだろと調べてみたらどうにも結果が安定しない
skipは先頭からn個目まで一気にスキップするわけではなくて、順番に数えてn個までの要素を跳ばしてるのかな
0940デフォルトの名無しさん (アウアウウー Sac3-+wK4)
垢版 |
2020/02/12(水) 20:58:26.58ID:dQ+MgkrDa
>>938
ないのでは?
あくまでIEnumerable前提の実装だから非効率なのは仕方ないよね。
分かってるだろうけどそれが気に入らないなら自分で書けばいいだけなわけで
0942デフォルトの名無しさん (ワッチョイ ff35-uDFW)
垢版 |
2020/02/12(水) 21:29:06.10ID:CnJeTJ1J0
IEnumerableって順序ないのにSkipの説明には「シーケンス内の指定された数の要素をバイパスし、残りの要素を返します」って書いてるけどシーケンスって順序決まった列じゃないの?
0946デフォルトの名無しさん (ワッチョイ 9259-GUQA)
垢版 |
2020/02/12(水) 23:47:21.81ID:seLTTpXD0
>>944
こんなのあるんだなあ。ありがとう
むしろこっちの書き方に混乱した
> sequence is IList<T> list

C#7からできるようになったみたいだけど、これのメリットって変数のスコープを限定できるって理解でいい?
0947デフォルトの名無しさん (ワッチョイ ff35-uDFW)
垢版 |
2020/02/13(木) 00:08:03.05ID:uK7heoRi0
>>943
IEnumerableを継承してるコレクションもシーケンスだったのか
コレクションというくらいだからおもちゃ箱のおもちゃみたいなグチャグチャな塊のイメージだった
0951デフォルトの名無しさん (ワッチョイ d201-b83C)
垢版 |
2020/02/13(木) 01:49:45.90ID:r7bSHOfr0
>>946
パターンマッチで一発でできるのがメリットでそれ以外は副産物じゃないかな

if (sequence is IList<T> list) {
return list[5..];
}

IList<T> list;
if (sequence is IList<T>) {
list = (IList<T>)sequence;
return list[5..];
}
と同じイメージで変数スコープはちょっと特殊
レス数が950を超えています。1000を超えると書き込みができなくなります。

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