>>238
ここCじゃなくてC#な
探検
ふらっと C#,C♯,C#(初心者用) Part148
レス数が1000を超えています。これ以上書き込みはできません。
239デフォルトの名無しさん (ワッチョイ faad-B4k+)
2020/08/01(土) 21:54:22.30ID:G+VYcIGl0240デフォルトの名無しさん (ワッチョイ 01da-i+jg)
2020/08/01(土) 22:04:49.38ID:8QGIO3XO0241蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9a-JZhM)
2020/08/01(土) 22:06:32.74ID:LLVAByzud macは自由陣営じゃないから。。。
242デフォルトの名無しさん (ワッチョイ 4a32-RDrw)
2020/08/01(土) 22:11:32.98ID:+9Q20FKV0 わかりました
ありがとうございます
ありがとうございます
243デフォルトの名無しさん (ワッチョイ 7a05-Zvsf)
2020/08/02(日) 06:10:11.27ID:T2MIboAU0 c#で作ったbotからandoroidスマホに通知を送る良い方法はありませんか?
履歴を確認できる方法で。
今まではline-notifyでlineに送っていたのですが、新しいルート証明書をインストールしなくてはならなくなって別の方法を探しています。
履歴を確認できる方法で。
今まではline-notifyでlineに送っていたのですが、新しいルート証明書をインストールしなくてはならなくなって別の方法を探しています。
244デフォルトの名無しさん (ワッチョイ 8ede-akQC)
2020/08/02(日) 07:27:09.21ID:EizALxAu0245デフォルトの名無しさん (ワッチョイ 56bb-JV/9)
2020/08/02(日) 12:52:22.51ID:scrCUlqp0 データクラスって一時期C#にも付くんじゃないかって言われてたのに、一体どうなったの?
https://try.kotlinlang.org/#/Kotlin%20Koans/Introduction/Data%20classes/Task.kt
オートプロパティのおかげでJavaみたくはならないから要らないってこと?
https://try.kotlinlang.org/#/Kotlin%20Koans/Introduction/Data%20classes/Task.kt
オートプロパティのおかげでJavaみたくはならないから要らないってこと?
246デフォルトの名無しさん (ワッチョイ d663-MqbD)
2020/08/02(日) 13:54:59.45ID:xaz7GC4v0 9でrecordくるよ
247デフォルトの名無しさん (ワッチョイ d62c-cfsr)
2020/08/02(日) 14:51:37.50ID:umITGI3r0248デフォルトの名無しさん (アウウィフ FF09-QWST)
2020/08/02(日) 16:20:00.33ID:NsDY9jGSF ここはプログラムを描きたい人造りたい人向けのスレ
フリーソフトダウンロードして使いたい人は相応のスレへ逝くことをお薦めします
フリーソフトダウンロードして使いたい人は相応のスレへ逝くことをお薦めします
249デフォルトの名無しさん (ワッチョイ 875f-OjAs)
2020/09/03(木) 22:01:35.41ID:RMVHFRAl0 public interface Ixxxxx
{
int method1(int x);
}
インターフェイスについて質問です。
上ではメソッドの型を定義しているわけですが、
インターフェースの引数定義で、xのように変数を設定するのはどうしてなんでしょうか。
ここでは使われない変数なので、型のみで良いと思うのですが。
それから、publicを省略して、interfaceとだけ定義する理由はどうしてなのでしょうか。
classなら、publicを前置するのに。
{
int method1(int x);
}
インターフェイスについて質問です。
上ではメソッドの型を定義しているわけですが、
インターフェースの引数定義で、xのように変数を設定するのはどうしてなんでしょうか。
ここでは使われない変数なので、型のみで良いと思うのですが。
それから、publicを省略して、interfaceとだけ定義する理由はどうしてなのでしょうか。
classなら、publicを前置するのに。
250デフォルトの名無しさん (ワッチョイ 875f-OjAs)
2020/09/03(木) 22:10:50.18ID:RMVHFRAl0 ルート相対的URLを保存するクラスは何が適しているんでしょうか。
String型に、/root/abc/def を文字列として保存しているのですが、
適切な型があれば教えてください。
String型に、/root/abc/def を文字列として保存しているのですが、
適切な型があれば教えてください。
251デフォルトの名無しさん (テテンテンテン MM8f-wKT+)
2020/09/03(木) 23:38:56.88ID:FEiIVBqsM252デフォルトの名無しさん (ワッチョイ 5fad-SVp2)
2020/09/04(金) 00:15:18.15ID:yQcUkcYq0 引数名ないとドキュメント化する時にも困るしね
253デフォルトの名無しさん (ワッチョイ 5f24-VIJL)
2020/09/04(金) 11:28:01.48ID:M8Oq5rfA0 >>249
引数や戻り値の型をしっかり定義しないといけない理由は、ILやアセンブリといった低レベル知識を学習すればよく分かるよ
機械語レベルだとint、long、float、double〜etcはそれぞれ命令文が違う
だから引数や戻り値がバラバラな値型だとそれぞれの機械語を生成しなきゃならず共用化出来ない
逆に言うと参照型であればポインタだけで済むので実は共用化が出来る
なので参照型であればobjectとして定義をすれば実際に共用化可能(値型もboxingしてobject型にすれば同様)
引数や戻り値の型をしっかり定義しないといけない理由は、ILやアセンブリといった低レベル知識を学習すればよく分かるよ
機械語レベルだとint、long、float、double〜etcはそれぞれ命令文が違う
だから引数や戻り値がバラバラな値型だとそれぞれの機械語を生成しなきゃならず共用化出来ない
逆に言うと参照型であればポインタだけで済むので実は共用化が出来る
なので参照型であればobjectとして定義をすれば実際に共用化可能(値型もboxingしてobject型にすれば同様)
254デフォルトの名無しさん (ワッチョイ 4766-K5xR)
2020/09/04(金) 11:39:06.89ID:krKESdlN0 型のみで十分なのになん変数名まで書かなきゃならんの?って質問にその回答は適切ですか?
255デフォルトの名無しさん (ワッチョイ 5fad-SVp2)
2020/09/04(金) 12:06:19.79ID:yQcUkcYq0 >>253
その回答はズレてる
その回答はズレてる
256デフォルトの名無しさん (ワッチョイ 875f-OjAs)
2020/09/04(金) 12:46:23.59ID:YyY7xdI50257デフォルトの名無しさん (テテンテンテン MM8f-wKT+)
2020/09/04(金) 13:31:45.96ID:Cdgw0eXGM インターフェイスメンバに引数名が必要なのは名前付き引数のためでもある
名前付き引数ってのはmethod1(x:123)みたいな書き方のこと
正確には名前付き引数がC#に導入されたのは比較的最近なので時系列が逆なんだけど、
.NETはC#に限らずいろんな言語を動かすことを想定して設計されてるので名前付き引数のための要請についても元々考慮されてたというわけ
名前付き引数ってのはmethod1(x:123)みたいな書き方のこと
正確には名前付き引数がC#に導入されたのは比較的最近なので時系列が逆なんだけど、
.NETはC#に限らずいろんな言語を動かすことを想定して設計されてるので名前付き引数のための要請についても元々考慮されてたというわけ
258デフォルトの名無しさん (アウアウウー Sa8b-CqCa)
2020/09/04(金) 14:23:19.04ID:Utz5OTUqa >>257
下のコードは合法なのでさすがにそれは意味不明
interface IHoge
{
void Fuga(int x);
}
class Hoge : IHoge
{
public void Fuga(int y)
{
}
}
下のコードは合法なのでさすがにそれは意味不明
interface IHoge
{
void Fuga(int x);
}
class Hoge : IHoge
{
public void Fuga(int y)
{
}
}
259デフォルトの名無しさん (ワッチョイ 878c-XrX+)
2020/09/04(金) 14:29:57.19ID:G2vvVEFn0 引数名を変更するのってどういったケースを想定してるん?
260デフォルトの名無しさん (アウアウウー Sa8b-CqCa)
2020/09/04(金) 14:34:15.41ID:Utz5OTUqa 別に想定なんかしてないのでは?
単に違法にする理由がないだけかと
単に違法にする理由がないだけかと
261デフォルトの名無しさん (ワッチョイ 5f01-YnK0)
2020/09/04(金) 17:36:23.03ID:nh9T8LFU0262デフォルトの名無しさん (アウアウウー Sa8b-CqCa)
2020/09/04(金) 18:29:28.50ID:Utz5OTUqa >>261
当たり前やんw
当たり前やんw
263デフォルトの名無しさん (アウアウウー Sa8b-CqCa)
2020/09/04(金) 19:19:04.36ID:Utz5OTUqa あーインターフェイスのメソッドの仮引数が名無し定義を許す仕様になってたら
名前付きで呼び出せないよって言いたいわけか
確かにその通りだね。
だけど「名無し定義を許さない理由の一つは名前付き引数を想定していたから」は考えすぎじゃないのかな
名前付きで呼び出せないよって言いたいわけか
確かにその通りだね。
だけど「名無し定義を許さない理由の一つは名前付き引数を想定していたから」は考えすぎじゃないのかな
264デフォルトの名無しさん (テテンテンテン MM8f-wKT+)
2020/09/04(金) 19:51:37.09ID:Cdgw0eXGM いや名前付き引数はVB.NETには昔からあったぞ
想定していないわけがない
想定していないわけがない
265デフォルトの名無しさん (ワッチョイ 7f63-K5xR)
2020/09/04(金) 20:31:43.96ID:nqNO8CQ40 そもそもコンパイルしても変数名はILに残るわけだし
C#1からたぶんそうだよね?reflectionあるんだし
C#1からたぶんそうだよね?reflectionあるんだし
266デフォルトの名無しさん (アウアウウー Sa8b-wKT+)
2020/09/05(土) 10:58:29.89ID:JiWof8twa >>265
それはもちろんその通りで、名前付き引数も当然そのメタ情報を見るわけだけど、
MSが仮に明確な意思をもってインターフェイスメンバに引数名は絶対要らないという設計判断をしたならCLIもインターフェイスメンバには例外的に引数名を持てない仕様にしただろう
CLIの設計としてはわざわざそんな例外を設けるのは不自然だし、C#の言語仕様を考えてもインターフェイスメンバだけ例外的にメソッド宣言の文法が違うのは不自然だ
もちろん、実装には追加コストを払って特別なケアが必要になるだろう
そこまでして引数名を省略したいだろうか?ということだね
それはもちろんその通りで、名前付き引数も当然そのメタ情報を見るわけだけど、
MSが仮に明確な意思をもってインターフェイスメンバに引数名は絶対要らないという設計判断をしたならCLIもインターフェイスメンバには例外的に引数名を持てない仕様にしただろう
CLIの設計としてはわざわざそんな例外を設けるのは不自然だし、C#の言語仕様を考えてもインターフェイスメンバだけ例外的にメソッド宣言の文法が違うのは不自然だ
もちろん、実装には追加コストを払って特別なケアが必要になるだろう
そこまでして引数名を省略したいだろうか?ということだね
267デフォルトの名無しさん (アウアウウー Sa8b-CqCa)
2020/09/05(土) 12:34:52.95ID:Waja5Z+Na 実行時に小さくないコストが発生するような方法なんて取るわけないと思うよw
メタ情報なんて見てるわけないじゃんwww
メタ情報なんて見てるわけないじゃんwww
268デフォルトの名無しさん (ササクッテロラ Spbb-tEhD)
2020/09/05(土) 13:22:53.11ID:azagYl6mp 家政婦はメタ
269デフォルトの名無しさん (テテンテンテン MM8f-wKT+)
2020/09/05(土) 13:51:42.86ID:6OTXYwA0M270デフォルトの名無しさん (ブーイモ MM0b-Ndt7)
2020/09/05(土) 14:12:24.58ID:RVsSclOOM 2日連続して秒で論破されとるやつw
271デフォルトの名無しさん (スッップ Sd7f-SVp2)
2020/09/05(土) 16:47:07.35ID:aivXeFh8d >>270
スレタイの通り初心者なんやろ
スレタイの通り初心者なんやろ
272デフォルトの名無しさん (アウアウウー Sa8b-CqCa)
2020/09/05(土) 18:29:01.06ID:Waja5Z+Na273デフォルトの名無しさん (ワッチョイ 5f6a-XrX+)
2020/09/05(土) 22:38:11.37ID:VnlHSptc0 インターフェースの引数名を省略する戦略なんかないって結論出てるのにね
274デフォルトの名無しさん (ワッチョイ c74f-n8ne)
2020/09/06(日) 08:18:43.19ID:gGwX7R3F0275デフォルトの名無しさん (アウウィフ FF8b-th+2)
2020/09/06(日) 14:33:55.32ID:pKWvrGW4F 省略するとき
hoge(hage,,,,,fuga,,,,kuzu,,,) みたいな言語あったなー
hoge(hage,,,,,fuga,,,,kuzu,,,) みたいな言語あったなー
276デフォルトの名無しさん (ワッチョイ 0701-3NJ+)
2020/09/07(月) 02:57:30.38ID:u0REhpNo0 using var task = Task.Run(() => Do(a, b, c));
このDoを途中で止めることできる?
Doの処理に時間がかかるためキャンセルさせたい場合がある
このDoを途中で止めることできる?
Doの処理に時間がかかるためキャンセルさせたい場合がある
277デフォルトの名無しさん (ワッチョイ 5f01-YnK0)
2020/09/07(月) 03:10:56.80ID:3uGG3SyO0278デフォルトの名無しさん (ワッチョイ 7f2c-FZ/+)
2020/09/07(月) 03:25:16.17ID:jjIciKyq0 Doがキャンセルできるように作られてればできる
そうでなければ無理
そうでなければ無理
279デフォルトの名無しさん (ワッチョイ 5f10-Q6Op)
2020/09/07(月) 09:29:51.53ID:s6/MEWpq0 a,b,cってなによ?
280デフォルトの名無しさん (ブーイモ MMcf-VdhG)
2020/09/07(月) 10:42:48.10ID:Mci5uexUM 引数じゃないの?
281デフォルトの名無しさん (ワッチョイ 0701-3NJ+)
2020/09/07(月) 16:30:38.13ID:u0REhpNo0 Doの改造も不可避みたいですね
ありがとうございました
ありがとうございました
282デフォルトの名無しさん (アウアウウー Sa21-3UIE)
2020/09/11(金) 09:13:51.86ID:rDZLwTxXa VisualC#2019パーフェクトマスター
買ってみた
800ページ近くある
勉強しなおし
Java有償化で、いろいろ特需だな
Javaよサラバ
Javaよサラバ
Why なぜに生きているのか
わからない
買ってみた
800ページ近くある
勉強しなおし
Java有償化で、いろいろ特需だな
Javaよサラバ
Javaよサラバ
Why なぜに生きているのか
わからない
283デフォルトの名無しさん (ブーイモ MM81-az8F)
2020/09/11(金) 10:05:52.91ID:qxFjIo0zM Java有償本当か?
284デフォルトの名無しさん (アウアウウー Sa21-3UIE)
2020/09/11(金) 16:12:44.77ID:rDZLwTxXa 優勝だ
285デフォルトの名無しさん (エムゾネ FF32-0ian)
2020/09/23(水) 09:34:34.80ID:hJkRvCZvF >>1
Part 149
Part 149
286デフォルトの名無しさん (アウアウウー Sa43-k+EL)
2020/09/23(水) 19:49:30.91ID:SeN5l4G8a 需要ないと思うけど暇だったので別スレで質問が出てたキー操作のシーケンスで発動する
キーボドショートカットを作ってみた
https://ideone.com/FcOn5C
使い方:
public partial class Form1 : Form
{
private KeyboardShortcutsDetector mKbsDetector = new KeyboardShortcutsDetector();
public Form1()
{
InitializeComponent();
mKbsDetector.AddKeyBinding(Keys.Control | Keys.K, Keys.Control | Keys.L, () => Console.WriteLine("Ctrl + K, L"));
mKbsDetector.AddKeyBinding(Keys.Control | Keys.K, Keys.Control | Keys.M, () => Console.WriteLine("Ctrl + K, M"));
mKbsDetector.AddKeyBinding(Keys.Control | Keys.J, Keys.Control | Keys.U, () => Console.WriteLine("Ctrl + J, U"));
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
return mKbsDetector.ProcessKey(keyData) ? true : base.ProcessCmdKey(ref msg, keyData);
}
}
退屈なコードだからたぶん見るだけ時間の無駄だと思うw
キーボドショートカットを作ってみた
https://ideone.com/FcOn5C
使い方:
public partial class Form1 : Form
{
private KeyboardShortcutsDetector mKbsDetector = new KeyboardShortcutsDetector();
public Form1()
{
InitializeComponent();
mKbsDetector.AddKeyBinding(Keys.Control | Keys.K, Keys.Control | Keys.L, () => Console.WriteLine("Ctrl + K, L"));
mKbsDetector.AddKeyBinding(Keys.Control | Keys.K, Keys.Control | Keys.M, () => Console.WriteLine("Ctrl + K, M"));
mKbsDetector.AddKeyBinding(Keys.Control | Keys.J, Keys.Control | Keys.U, () => Console.WriteLine("Ctrl + J, U"));
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
return mKbsDetector.ProcessKey(keyData) ? true : base.ProcessCmdKey(ref msg, keyData);
}
}
退屈なコードだからたぶん見るだけ時間の無駄だと思うw
287デフォルトの名無しさん (ワッチョイ 46df-yU8X)
2020/09/24(木) 00:24:56.04ID:GbsAQP4b0 MVCとかまだイマイチわからんからwinformで作ってからMVCに移行する感じで勉強してるけど一人開発だと有り難み感じないからちょっと空しい
288デフォルトの名無しさん (ラクッペペ MMde-T5KC)
2020/09/24(木) 12:42:20.92ID:gbWGo5W3M ボタン押したあとに結果リストにフォーカス移動させるのは
viewでやってええのか?
viewでやってええのか?
289デフォルトの名無しさん (ワッチョイ c67c-P9wA)
2020/09/24(木) 16:36:22.54ID:e+Ck+96a0 いいと思うよ
290デフォルトの名無しさん (ワッチョイ 1201-nSIs)
2020/09/26(土) 17:13:06.01ID:xSRIB2Tf0 windowsフォームアプリでHttpClientを使ってhtmlを取得しようと思っていますがうまくいきません。ステップ実行すると※の部分で処理が終わってしまいます。エラーに関する表示が何もでないため行き詰まってます。非同期処理に関する理解が浅いからだと思っていますが、壁を乗り越えられません。
このようなコードではなぜうまくいかないのでしょうか?
@
private void button1_Click(object sender, EventArgs e)
{
var url = "http://www.google.com";
var t = GetHtml(url);
t.Wait();
this.textBox1.Text = t.Result;
}
async Task<string> GetHtml(string url)
{
var client = new HttpClient();
var html = await client.GetStringAsync(url);//←※
return html;
}
(続く)
このようなコードではなぜうまくいかないのでしょうか?
@
private void button1_Click(object sender, EventArgs e)
{
var url = "http://www.google.com";
var t = GetHtml(url);
t.Wait();
this.textBox1.Text = t.Result;
}
async Task<string> GetHtml(string url)
{
var client = new HttpClient();
var html = await client.GetStringAsync(url);//←※
return html;
}
(続く)
291デフォルトの名無しさん (ワッチョイ 1201-nSIs)
2020/09/26(土) 17:13:28.26ID:xSRIB2Tf0 >>290の続き
ためしにコンソールアプリで似たコードを書いてみましたがうまくいきます。
A
static void Main(string[] args)
{
var url = "http://www.google.com";
var t = GetHtml(url);
t.Wait();
Console.WriteLine(t.Result);
}
static async Task<string> GetHtml(string url)
{
var client = new HttpClient();
var html = await client.GetStringAsync(url);
return html;
}
フォームアプリでもハンドラに全て突っ込めばうまくいきます。
B
private async void button1_Click(object sender, EventArgs e)
{
var url = "http://www.google.com";
var client = new HttpClient();
var html = await client.GetStringAsync(url);
this.textBox1.Text = html;
}
ためしにコンソールアプリで似たコードを書いてみましたがうまくいきます。
A
static void Main(string[] args)
{
var url = "http://www.google.com";
var t = GetHtml(url);
t.Wait();
Console.WriteLine(t.Result);
}
static async Task<string> GetHtml(string url)
{
var client = new HttpClient();
var html = await client.GetStringAsync(url);
return html;
}
フォームアプリでもハンドラに全て突っ込めばうまくいきます。
B
private async void button1_Click(object sender, EventArgs e)
{
var url = "http://www.google.com";
var client = new HttpClient();
var html = await client.GetStringAsync(url);
this.textBox1.Text = html;
}
292デフォルトの名無しさん (ワッチョイ d62d-LNaZ)
2020/09/26(土) 17:23:29.59ID:RSACZQL60 >>290
private async void button1_Click( object sender, EventArgs e )
{
var url = "http://www.google.com";
this.textBox1.Text = await GetHtml( url );
}
private async void button1_Click( object sender, EventArgs e )
{
var url = "http://www.google.com";
this.textBox1.Text = await GetHtml( url );
}
293デフォルトの名無しさん (ワッチョイ 922f-ozis)
2020/09/26(土) 17:27:53.86ID:9d7CJAWD0 asyncはwaitしちゃだめ
理由は async デッドロック あたりでググって
理由は async デッドロック あたりでググって
294デフォルトの名無しさん (ブーイモ MM0e-1HiV)
2020/09/26(土) 17:31:36.79ID:+0bWtyAMM >>290
どうしてもWait()使う場合はConfigureAwait(false)するかな
どうしてもWait()使う場合はConfigureAwait(false)するかな
295デフォルトの名無しさん (ワッチョイ 1201-nSIs)
2020/09/26(土) 17:36:48.45ID:xSRIB2Tf0296デフォルトの名無しさん (ワッチョイ 4b2c-ozis)
2020/09/27(日) 04:46:18.27ID:6sIZ9RBB0 Android, Electron などは、スレッドが2つある。
UI(描画)スレッドと、サーバー(バックグラウンド)スレッド
だから、2つのコンテキスト・文脈をまたがって、非同期などはできない。
異なる文脈の処理を呼び出すには、文脈を切り替えるような、特別な書き方がある
まあ、Windows のGUIアプリが、2つの文脈でやっているかどうかは知らないけど
UI(描画)スレッドと、サーバー(バックグラウンド)スレッド
だから、2つのコンテキスト・文脈をまたがって、非同期などはできない。
異なる文脈の処理を呼び出すには、文脈を切り替えるような、特別な書き方がある
まあ、Windows のGUIアプリが、2つの文脈でやっているかどうかは知らないけど
297デフォルトの名無しさん (ワッチョイ 9fad-D1lY)
2020/09/27(日) 07:46:38.96ID:WpoxB1nK0298デフォルトの名無しさん (ワッチョイ d684-b+lb)
2020/09/27(日) 16:39:54.69ID:BMd/NSoW0 >>290
多分非同期処理って調べるとasyncの例ばかりで自分で戻り制御する方法がよく
分からなくてTaskクラスでWaitすれば出来るとかって結論に達したんでないかと
思うのだけど・・・
まず、async指定されたメソッドは呼び出されるとメソッド全体を別スレッドとして
起動して処理を元のスレッド(この場合STAスレッド)に戻します
asyncメソッドの中でawaitを指定すると、メソッドの内容に関係なく元のスレッドに
戻るのは変わらないですが、asyncメソッドの中でawaitで指定されたメソッドが
終了するまでasyncメソッドのスレッドだけが待ち状態になり、awaitから返って
くるとawait以降を実行しasyncメソッドの最後まで行くとasyncメソッドのスレッド
だけが終了されます
検証してないので予想なのですが、Taskクラスで管理するスレッドを起動して
いない(Task.Run)状態でWaitをかけるとSTAスレッドを待つためにsleepして
しまいますがSTAスレッドはループスレッドなので当然いつまで待っても終了
しません
asyncスレッドではawaitの処理が終わって復帰しようとしても元になるSTA
スレッドがsleep状態なので、こちらもawaitから返ってこないみたいなことが
起こっているのだと思います
2のコンソールアプリの場合にはループスレッドではないのでMainの処理が
終了した時点で続きが動くのではないかと
3は正しい使い方で、STAスレッドは動かしたままbutton1_Clickメソッドが別スレッドで
動作する際にclient.GetStringAsyncの処理を待っているので普通に動作します
button1_Clickの中で待つのであればasyncメソッドを作る意味がないですし、async
メソッドで裏で動かすのであればbutton1_Clickで待ってはいけないので3の様な
形で実装するか、asyncメソッドの返却値をただのstringにして、textBox1.Textに
メソッドの返却値が入る形式に変える(こっちは試してないので嘘かも)のが正解じゃ
ないかな
多分非同期処理って調べるとasyncの例ばかりで自分で戻り制御する方法がよく
分からなくてTaskクラスでWaitすれば出来るとかって結論に達したんでないかと
思うのだけど・・・
まず、async指定されたメソッドは呼び出されるとメソッド全体を別スレッドとして
起動して処理を元のスレッド(この場合STAスレッド)に戻します
asyncメソッドの中でawaitを指定すると、メソッドの内容に関係なく元のスレッドに
戻るのは変わらないですが、asyncメソッドの中でawaitで指定されたメソッドが
終了するまでasyncメソッドのスレッドだけが待ち状態になり、awaitから返って
くるとawait以降を実行しasyncメソッドの最後まで行くとasyncメソッドのスレッド
だけが終了されます
検証してないので予想なのですが、Taskクラスで管理するスレッドを起動して
いない(Task.Run)状態でWaitをかけるとSTAスレッドを待つためにsleepして
しまいますがSTAスレッドはループスレッドなので当然いつまで待っても終了
しません
asyncスレッドではawaitの処理が終わって復帰しようとしても元になるSTA
スレッドがsleep状態なので、こちらもawaitから返ってこないみたいなことが
起こっているのだと思います
2のコンソールアプリの場合にはループスレッドではないのでMainの処理が
終了した時点で続きが動くのではないかと
3は正しい使い方で、STAスレッドは動かしたままbutton1_Clickメソッドが別スレッドで
動作する際にclient.GetStringAsyncの処理を待っているので普通に動作します
button1_Clickの中で待つのであればasyncメソッドを作る意味がないですし、async
メソッドで裏で動かすのであればbutton1_Clickで待ってはいけないので3の様な
形で実装するか、asyncメソッドの返却値をただのstringにして、textBox1.Textに
メソッドの返却値が入る形式に変える(こっちは試してないので嘘かも)のが正解じゃ
ないかな
299デフォルトの名無しさん (ワッチョイ e39e-b+lb)
2020/09/27(日) 18:04:42.91ID:co99WLAO0 つまり非同期すればハゲるということですね。
300デフォルトの名無しさん (スププ Sd32-mh94)
2020/09/27(日) 19:27:47.55ID:0F2CG6otd301デフォルトの名無しさん (スププ Sd32-mh94)
2020/09/27(日) 19:28:51.84ID:0F2CG6otd302296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 02:24:40.60ID:QIpyCS2B0 JavaScript が難しいのは、非同期が基本だから。
コンテキスト・文脈が異なる。
時間の進み方が異なる世界で、同期を取らないといけないから
Ruby が簡単なのは、同期が基本だから。
非同期の方がオプション
Android, Electron がややこしいのも、2つの文脈の同期を取る必要があるから。
1つのアプリ内に、GUI・非GUI の文脈がある
例えば、Electronなら、Main は、Node.js のCUI スレッドで、
Renderer は、GUI のChromium スレッド
双方は、決められた書き方をしないと、同期・通信できない
コンテキスト・文脈が異なる。
時間の進み方が異なる世界で、同期を取らないといけないから
Ruby が簡単なのは、同期が基本だから。
非同期の方がオプション
Android, Electron がややこしいのも、2つの文脈の同期を取る必要があるから。
1つのアプリ内に、GUI・非GUI の文脈がある
例えば、Electronなら、Main は、Node.js のCUI スレッドで、
Renderer は、GUI のChromium スレッド
双方は、決められた書き方をしないと、同期・通信できない
303デフォルトの名無しさん (ワッチョイ 1201-nSIs)
2020/09/28(月) 06:18:20.07ID:ii9XSMYC0 >>290です
>>296
コンテキスト・文脈という概念がまだ把握できてないのでそこが課題だと思ってます
>>298
自分は独習C#という本をテキストにして勉強しています。
その中で、>>291のAと似たコードが記載されていて、
これを使ってasync/awaitの基礎が説明されています。
そこで、フォームアプリで真似してみたんです。
デッドロックについてはいろいろ調べてみて基本的な理屈は理解できました。
ただ、Aのコンソールアプリでデッドロックが起きない理由がわかりません。
コンソールアプリはループスレッドではないからとのご指摘が重要だと思っていますが
まだ理解が浅くてモヤモヤしてます。
あと、
>まず、async指定されたメソッドは呼び出されるとメソッド全体を別スレッドとして
起動して・・・
の下りですが、スレッドが3つあると考えればいいのでしょうか?
a.STAスレッド(2のスレッドを呼び出したスレッド)
b.async指定されたメソッドを処理するスレッド
c.client.GetStringAsync(url)を処理するスレッド
これはAのコンソールアプリでも同じですか?
bについては独習C#には書かれていなかったので
aとbは同じスレッドだと思い込んでいました。
調べてみてよく分かったのですが、理解できていない概念が多すぎますね。
今の時点で安易に触ってしまうと変に誤った先入観を持ってしまいそうです
この辺をわかりやすくしっかり説明している書籍等、ご存じないでしょうか?
結論としては
基本的にフォームアプリの中でWaitを使うな
使いたいならConfigureAwait(false)で回避しろ
ということなのかなと思っています
>>296
コンテキスト・文脈という概念がまだ把握できてないのでそこが課題だと思ってます
>>298
自分は独習C#という本をテキストにして勉強しています。
その中で、>>291のAと似たコードが記載されていて、
これを使ってasync/awaitの基礎が説明されています。
そこで、フォームアプリで真似してみたんです。
デッドロックについてはいろいろ調べてみて基本的な理屈は理解できました。
ただ、Aのコンソールアプリでデッドロックが起きない理由がわかりません。
コンソールアプリはループスレッドではないからとのご指摘が重要だと思っていますが
まだ理解が浅くてモヤモヤしてます。
あと、
>まず、async指定されたメソッドは呼び出されるとメソッド全体を別スレッドとして
起動して・・・
の下りですが、スレッドが3つあると考えればいいのでしょうか?
a.STAスレッド(2のスレッドを呼び出したスレッド)
b.async指定されたメソッドを処理するスレッド
c.client.GetStringAsync(url)を処理するスレッド
これはAのコンソールアプリでも同じですか?
bについては独習C#には書かれていなかったので
aとbは同じスレッドだと思い込んでいました。
調べてみてよく分かったのですが、理解できていない概念が多すぎますね。
今の時点で安易に触ってしまうと変に誤った先入観を持ってしまいそうです
この辺をわかりやすくしっかり説明している書籍等、ご存じないでしょうか?
結論としては
基本的にフォームアプリの中でWaitを使うな
使いたいならConfigureAwait(false)で回避しろ
ということなのかなと思っています
304デフォルトの名無しさん (ワッチョイ 1201-nSIs)
2020/09/28(月) 07:01:50.95ID:ii9XSMYC0305デフォルトの名無しさん (ワッチョイ 12ad-LNaZ)
2020/09/28(月) 07:59:26.50ID:nO4ceNb30 すいません入門書に以下のコードがあるんですが実行してもピクチャーが真っ白で変になってるんですが
何が間違ってるんでしょうか;
https://gyazo.com/de388825132a1ac42b21b7cbb8a069fd
画像を置いてる場所はここです
https://gyazo.com/93530ea51ef1e88cbcd097846d409ca4
何が間違ってるんでしょうか;
https://gyazo.com/de388825132a1ac42b21b7cbb8a069fd
画像を置いてる場所はここです
https://gyazo.com/93530ea51ef1e88cbcd097846d409ca4
306デフォルトの名無しさん (ワッチョイ 16f2-9JDv)
2020/09/28(月) 08:35:58.50ID:lkQsRi/q0 表示したい画像はどんな内容なんですか?
307296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 08:52:18.25ID:QIpyCS2B0 >>303
コンテキスト・文脈が異なるとは、全く別世界・異次元。
時間の進み方も異なるし、全く感知できない。
通信・同期もできない
未定義の動作と同じ。
あらゆる仮定・推測ができない
だから、双方が連絡するには、特別な書き方をしないといけない
普通の言語では、例外も補足できない。
他方で例外を投げても、伝わらない
だから、ストールするのは、文脈が異なる場所で、例外が起こっている可能性もある。
起こっていても分からないから
本を買うよりも、検索して調べた方がよい。
こういう説明が載ってる本は、まずない。
余程、マニアックな本だけだろう
コンテキスト・文脈が異なるとは、全く別世界・異次元。
時間の進み方も異なるし、全く感知できない。
通信・同期もできない
未定義の動作と同じ。
あらゆる仮定・推測ができない
だから、双方が連絡するには、特別な書き方をしないといけない
普通の言語では、例外も補足できない。
他方で例外を投げても、伝わらない
だから、ストールするのは、文脈が異なる場所で、例外が起こっている可能性もある。
起こっていても分からないから
本を買うよりも、検索して調べた方がよい。
こういう説明が載ってる本は、まずない。
余程、マニアックな本だけだろう
308デフォルトの名無しさん (ワッチョイ f7b2-b+lb)
2020/09/28(月) 08:53:38.64ID:phqY8Xtx0 FormのControlsに追加しなくてもいいんだっけ?
309デフォルトの名無しさん (ワッチョイ 2f33-EUyz)
2020/09/28(月) 08:59:13.21ID:Zg0P7tB00 >>303
C#による マルチコアのための非同期/並列処理プログラミング
ttps://gihyo.jp/book/2013/978-4-7741-5828-0
C#によるWindowsシステムプログラミング 第2版
ttp://www.cutt.co.jp/book/978-4-87783-468-5.html
この2冊しかしらん
もっといいのを知ってる人いたらよろしく
C#による マルチコアのための非同期/並列処理プログラミング
ttps://gihyo.jp/book/2013/978-4-7741-5828-0
C#によるWindowsシステムプログラミング 第2版
ttp://www.cutt.co.jp/book/978-4-87783-468-5.html
この2冊しかしらん
もっといいのを知ってる人いたらよろしく
310296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 09:04:53.56ID:QIpyCS2B0 確かに、GUI の根幹には、永久のイベント(メッセージ)ループがある。
イベントドリブン
ずっと、ユーザーからのマウスイベントなどが、キューに入るのを待っている。
キューにイベントが入ると、それを処理する。
それを永久に続ける
一方、CUI では、そういうイベントドリブンは聞かない。
マウス操作で、何かをするというのも聞かない。
Ctrl + C を押して、割り込み処理を発生させることはできるが
でも、こういうアプリの終了などのソフトウェア割り込みも、イベントループで拾うけど
イベントドリブン
ずっと、ユーザーからのマウスイベントなどが、キューに入るのを待っている。
キューにイベントが入ると、それを処理する。
それを永久に続ける
一方、CUI では、そういうイベントドリブンは聞かない。
マウス操作で、何かをするというのも聞かない。
Ctrl + C を押して、割り込み処理を発生させることはできるが
でも、こういうアプリの終了などのソフトウェア割り込みも、イベントループで拾うけど
311296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 09:08:06.54ID:QIpyCS2B0 そんな難しい本を読んでも、理解できないから無駄だと思う
検索した方がよい
検索した方がよい
312デフォルトの名無しさん (ワッチョイ 2f33-EUyz)
2020/09/28(月) 09:11:10.60ID:Zg0P7tB00 >>305
用意した画像の一部だけが表示されている
たとえば、
pb.SizeMode = PictureBoxSizeMode.StretchImage;
といった感じでPictureBoxSizeModeを指定してみると何が起こってるのか何となくわかるんじゃね?
用意した画像の一部だけが表示されている
たとえば、
pb.SizeMode = PictureBoxSizeMode.StretchImage;
といった感じでPictureBoxSizeModeを指定してみると何が起こってるのか何となくわかるんじゃね?
313デフォルトの名無しさん (アウアウウー Sa43-Vzxq)
2020/09/28(月) 09:42:36.85ID:Uql71HHWa >>310
ctl+Cまで入力コマンドを待つCUIアプリはイベントドリブンと呼べるのでは?
ctl+Cまで入力コマンドを待つCUIアプリはイベントドリブンと呼べるのでは?
314デフォルトの名無しさん (ワッチョイ 9fad-D1lY)
2020/09/28(月) 09:50:37.80ID:o994bwz+0 >>310
CUIでもターミナルベースの業務アプリなんかだとイベントループ書くぞ。
CUIでもターミナルベースの業務アプリなんかだとイベントループ書くぞ。
315296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 10:20:17.53ID:QIpyCS2B0 結局、GUI・CUI も、どちらもイベントドリブンなのか
大部分は同じなのかも
大部分は同じなのかも
316デフォルトの名無しさん (ワッチョイ 9fad-D1lY)
2020/09/28(月) 10:59:03.73ID:o994bwz+0317デフォルトの名無しさん (ワッチョイ b302-S0Wo)
2020/09/28(月) 11:27:34.04ID:j++FlVxl0 Delphiに存在したメタクラス型(クラス型を代入、参照できる変数)は
C#に無いの?
C#に無いの?
318デフォルトの名無しさん (ワッチョイ 1201-nSIs)
2020/09/28(月) 11:42:34.18ID:ii9XSMYC0319デフォルトの名無しさん (ワッチョイ f7b2-b+lb)
2020/09/28(月) 11:53:52.45ID:phqY8Xtx0 >>317
Typeは?
Typeは?
320デフォルトの名無しさん (ワッチョイ b302-S0Wo)
2020/09/28(月) 13:53:50.99ID:j++FlVxl0 Typeでもある程度事は足りるけど、
あらゆる型のtypeof()を代入できるので不確実だし、Activatorとか必要で面倒。
無いなら仕方ないが…まあ移植が大変
あらゆる型のtypeof()を代入できるので不確実だし、Activatorとか必要で面倒。
無いなら仕方ないが…まあ移植が大変
321デフォルトの名無しさん (ワッチョイ 12ad-LNaZ)
2020/09/28(月) 18:57:37.61ID:nO4ceNb30322デフォルトの名無しさん (ワッチョイ 4bda-tH1f)
2020/09/28(月) 22:54:29.00ID:iemn9XLz0 >>310
CUIなRTOSなんて普通にあるけどなぁ
CUIなRTOSなんて普通にあるけどなぁ
323デフォルトの名無しさん (ワッチョイ ca4a-E04M)
2020/10/10(土) 10:58:06.91ID:RvE6O+PE0 .NET Coreでコンソール画面に
「こんにちは、WORLD!」と表示させようとすると
なぜか「こんにちは、WORL!」のように表示されます
コンソール画面のメニューからフォントを変更すると正しく表示されますが原因が分かりません
「こんにちは、WORLD!」と表示させようとすると
なぜか「こんにちは、WORL!」のように表示されます
コンソール画面のメニューからフォントを変更すると正しく表示されますが原因が分かりません
324デフォルトの名無しさん (ワッチョイ 4aad-Hns0)
2020/10/10(土) 11:22:49.95ID:OZkIKLkD0 コンソール画面とは?
325デフォルトの名無しさん (ワッチョイ af78-xYNh)
2020/10/10(土) 12:42:00.94ID:YPdRC9Oi0 >>323
コード貼れ
コード貼れ
326デフォルトの名無しさん (ワッチョイ ca4a-E04M)
2020/10/10(土) 13:17:16.07ID:RvE6O+PE0 static void Main(string[] args)
{
var str = "こんにちは、WORLD!";
Console.WriteLine("{0}", str);
Console.ReadKey();
}
{
var str = "こんにちは、WORLD!";
Console.WriteLine("{0}", str);
Console.ReadKey();
}
327デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 17:53:06.91ID:wYCx593I0328デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 17:57:00.27ID:wYCx593I0329323 326 (ワッチョイ ca4a-E04M)
2020/10/10(土) 19:40:42.12ID:RvE6O+PE0330デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 20:03:24.77ID:wYCx593I0 >>329
こちらでは正常なんでコンソール画面のプロパティの設定がおかしいんでは?
こちらでは正常なんでコンソール画面のプロパティの設定がおかしいんでは?
331蟻人間 ◆T6xkBnTXz7B0 (スププ Sdea-2Jw8)
2020/10/10(土) 20:04:01.51ID:c6WyhNHPd 何てフォント?
332デフォルトの名無しさん (ワッチョイ ca4a-E04M)
2020/10/10(土) 20:23:39.28ID:RvE6O+PE0 MSゴシックの18ポイント、Windows8.1です
来週会社のパソコンで試してみることにします
来週会社のパソコンで試してみることにします
333デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 20:41:27.03ID:wYCx593I0 >>332
8.1はプロパティでレガシーコンソールのチェックある?あったらそれチェックでいけるんでは?
8.1はプロパティでレガシーコンソールのチェックある?あったらそれチェックでいけるんでは?
334デフォルトの名無しさん (ワッチョイ ca4a-E04M)
2020/10/10(土) 20:52:24.98ID:RvE6O+PE0 ないです
335デフォルトの名無しさん (アウアウウー Sa2f-DH51)
2020/10/10(土) 21:17:43.96ID:RlZbVDXEa 何にもアドバイスできないのに恐縮だけど、
>コンソール画面のメニューからフォントを変更すると正しく表示されますが
だったら具体的にどのフォントで問題が発生してどのフォントで発生しないか
確認した範囲で書いた方がいいのでは
あと、普通テキスト変えていろいろ試さないか?
>コンソール画面のメニューからフォントを変更すると正しく表示されますが
だったら具体的にどのフォントで問題が発生してどのフォントで発生しないか
確認した範囲で書いた方がいいのでは
あと、普通テキスト変えていろいろ試さないか?
336デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 21:50:46.82ID:wYCx593I0 他のアプリでMSゴシックの18ポイント使ってみ。フォントのファイルが正常かどうか
使えるなら8.1のコンソールウィンドウの問題でしょ
使えるなら8.1のコンソールウィンドウの問題でしょ
337デフォルトの名無しさん (ワッチョイ 1b02-tHo0)
2020/10/10(土) 23:23:35.42ID:wgBcrtZd0338デフォルトの名無しさん (ワッチョイ 5b49-fMdf)
2020/10/20(火) 10:49:57.27ID:N2Y7+9Dy0 ローカルでiTextSharpを利用して、
Json形式のデータからPDF帳票を作る・・てのつくったんだが、
(サーバ上で、APIコールとかファイル読込でPDFファイルを返したかった。
イメージ的にはページごとにTextとかLineを指定したJsonデータ)
いざ業務に転用できるかなってフェーズにきて
iTextSharpのライセンス(AGPL)がやだなあ、って思ってる。
PDFSharpは日本語がなんかうまくいかない。
今のC#で、PDFを作るの、皆さんはどうやってる?
Json形式のデータからPDF帳票を作る・・てのつくったんだが、
(サーバ上で、APIコールとかファイル読込でPDFファイルを返したかった。
イメージ的にはページごとにTextとかLineを指定したJsonデータ)
いざ業務に転用できるかなってフェーズにきて
iTextSharpのライセンス(AGPL)がやだなあ、って思ってる。
PDFSharpは日本語がなんかうまくいかない。
今のC#で、PDFを作るの、皆さんはどうやってる?
339デフォルトの名無しさん (ワッチョイ 9fad-3SP/)
2020/10/20(火) 10:55:16.27ID:0/xBmjm30 >>338
業務だったらExcelCreator使ってる
業務だったらExcelCreator使ってる
340デフォルトの名無しさん (ワイーワ2 FF3f-Vszw)
2020/10/20(火) 10:59:00.80ID:pHiz9StDF PDFSharp使ってるけど問題無し
341デフォルトの名無しさん (アウアウエー Sa3f-EbeN)
2020/10/20(火) 11:10:22.94ID:d69BLAaZa React、Vueで帳票レンダリング
ヘッドレスブラウザでPDF印刷
ヘッドレスブラウザでPDF印刷
342デフォルトの名無しさん (ワイーワ2 FF3f-Vszw)
2020/10/20(火) 11:13:59.21ID:pHiz9StDF 日本語不安ならグラフィック直接PDFに張り付けろ
343デフォルトの名無しさん (ワッチョイ bbad-6ryY)
2020/10/20(火) 12:28:25.89ID:eHl8PxCr0 PDFSharpは日本語の折り返しに対応してなかったぞ。
344デフォルトの名無しさん (ワイーワ2 FF3f-Vszw)
2020/10/20(火) 12:50:06.87ID:pHiz9StDF >Json形式のデータからPDF帳票を作る
これが折り返しするかどうかだな
これが折り返しするかどうかだな
345デフォルトの名無しさん (ワッチョイ 5b49-fMdf)
2020/10/20(火) 13:46:22.13ID:N2Y7+9Dy0346デフォルトの名無しさん (アウアウエー Sa3f-EbeN)
2020/10/20(火) 13:50:07.09ID:d69BLAaZa347デフォルトの名無しさん (ワッチョイ 9fad-3SP/)
2020/10/20(火) 14:00:01.34ID:0/xBmjm30348デフォルトの名無しさん (ワッチョイ 5b49-fMdf)
2020/10/20(火) 15:28:40.52ID:N2Y7+9Dy0349デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 16:09:37.19ID:CqCKSidt0 C♯が現在最強言語らしいので勉強したいのですが
マイクロソフトはVB6の開発を打ち切ってプログラマを裏切った過去があるそうで
なかなか踏み切れずにいます。。。
C♯は20年後も開発が続いてると思いますか?
教えてエロい人
マイクロソフトはVB6の開発を打ち切ってプログラマを裏切った過去があるそうで
なかなか踏み切れずにいます。。。
C♯は20年後も開発が続いてると思いますか?
教えてエロい人
350デフォルトの名無しさん (スップ Sdbf-H+yj)
2020/10/20(火) 16:14:23.52ID:Nb9oJ8Mwd そんな先のことなんざわからん
確実に言えるのは今勉強している技術を20年後も変わらずに使い続ける前提でいるような技術者は居ない(と信じたい)
生き残ってるなら初期学習がない分少し楽かもしれないけど、新しいのが台頭してくりゃそちらを新たに学習するだけ
確実に言えるのは今勉強している技術を20年後も変わらずに使い続ける前提でいるような技術者は居ない(と信じたい)
生き残ってるなら初期学習がない分少し楽かもしれないけど、新しいのが台頭してくりゃそちらを新たに学習するだけ
351デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 16:25:01.94ID:CqCKSidt0 そうですか。先のことは誰にもわからないですよね。
逆に20年後も確実に主力な言語ってPythonくらいかな?
逆に20年後も確実に主力な言語ってPythonくらいかな?
352デフォルトの名無しさん (ワッチョイ 6b01-fMdf)
2020/10/20(火) 16:25:26.41ID:cR623l/E0 >>349
開発が続いてる言語の新しい技術についていくような人はどんな言語でもすぐ学べる
開発が続いてる言語の新しい技術についていくような人はどんな言語でもすぐ学べる
353デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 16:31:38.91ID:CqCKSidt0354デフォルトの名無しさん (ワッチョイ 9fad-3SP/)
2020/10/20(火) 16:45:13.07ID:0/xBmjm30 C#ほど後方互換性を重要視している言語ってなかなかないと思うけどね
355デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 16:48:10.12ID:CqCKSidt0356デフォルトの名無しさん (アウアウウー Sacf-0T0S)
2020/10/20(火) 17:16:01.37ID:nipGGPAZa357デフォルトの名無しさん (アウアウウー Sacf-Gzvz)
2020/10/20(火) 18:10:04.06ID:kSL2D2eBa OfficeのマクロはまだVBなんだっけ?
358デフォルトの名無しさん (スップ Sdbf-H+yj)
2020/10/20(火) 18:13:11.84ID:Nb9oJ8Mwd そだね
python使えるようにするみたいな話はあったけど進行してるのかな?
python使えるようにするみたいな話はあったけど進行してるのかな?
359デフォルトの名無しさん (ワッチョイ fb0c-lr1q)
2020/10/20(火) 18:15:13.55ID:ATqqkPAW0 >python使えるようにするみたいな話
頓挫したぞ
頓挫したぞ
360デフォルトの名無しさん (スプッッ Sdbf-1poc)
2020/10/20(火) 19:53:46.10ID:c2x7XoZLd 贅沢言わないから.NETにpython入れてVisualStudio(codeじゃない方)でサポートしてくれるだけでいいのに
361デフォルトの名無しさん (ワッチョイ ab5f-UsEC)
2020/10/20(火) 21:29:38.81ID:j1S9Ds0j0 それIronPythonと何が違うの?
362デフォルトの名無しさん (ワッチョイ 9f01-ArIQ)
2020/10/20(火) 21:48:49.93ID:iUu5GsdY0363デフォルトの名無しさん (ワッチョイ 9f42-lr1q)
2020/10/20(火) 22:16:42.30ID:jgnvePEX0 ChromeベースのWebView2がやっとラウンチしたようだね。まだ.netじゃ使えないが
Previewで確認したところマウスの戻るボタンが使えるのがいい所だな
Previewで確認したところマウスの戻るボタンが使えるのがいい所だな
364デフォルトの名無しさん (アウアウウー Sacf-Gzvz)
2020/10/20(火) 22:51:38.52ID:kSL2D2eBa >>362
へーそれは知らんかったありがと。
へーそれは知らんかったありがと。
365デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 23:36:15.59ID:CqCKSidt0366デフォルトの名無しさん (ワッチョイ 65e4-xMNm)
2020/10/21(水) 00:36:52.32ID:0KDGF23Y0 なんかうろ覚えなんだが
こういう非同期処理の書き方ってちゃんと動いたっけ?
if(!locked){
locked = true;
await xxx.Task;
locked = false;
}
async/awaitは同じスレッドに戻るからこんな単純なロックでも問題無いって昔判断したような記憶はある
こういう非同期処理の書き方ってちゃんと動いたっけ?
if(!locked){
locked = true;
await xxx.Task;
locked = false;
}
async/awaitは同じスレッドに戻るからこんな単純なロックでも問題無いって昔判断したような記憶はある
367デフォルトの名無しさん (ワッチョイ c6de-qdaq)
2020/10/21(水) 09:14:18.23ID:hl6LkBs90 ソースの一行単位でスキがうまれるので無理じゃね
ifとlocked=trueの間に実行されてる
ifとlocked=trueの間に実行されてる
368デフォルトの名無しさん (ワッチョイ c6de-qdaq)
2020/10/21(水) 09:16:03.92ID:hl6LkBs90 1行単位どころじゃなかった
意味不明なところでも割り込みあるわw
意味不明なところでも割り込みあるわw
369デフォルトの名無しさん (JP 0H22-pYMh)
2020/10/21(水) 09:43:40.30ID:eNSg6QZpH 四捨五入の結果がおかしいのって自分だけかな・・・
decimal v = -0.0195m;
decimal rounded = Math.Round(v, 2, MidpointRounding.ToPositiveInfinity);
Console.WriteLine(rounded);
ってすると、小数点2桁までになるよう(小数点3桁目を)四捨五入するので
-0.02になるはずなのに、結果が-0.01になっちゃうんですけど・・・
decimal v = -0.0195m;
decimal rounded = Math.Round(v, 2, MidpointRounding.ToPositiveInfinity);
Console.WriteLine(rounded);
ってすると、小数点2桁までになるよう(小数点3桁目を)四捨五入するので
-0.02になるはずなのに、結果が-0.01になっちゃうんですけど・・・
370デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/21(水) 09:56:42.42ID:lxmGvu010371デフォルトの名無しさん (ワッチョイ 1d1a-8DiG)
2020/10/21(水) 12:02:28.19ID:sg7OOy0L0372デフォルトの名無しさん (ワッチョイ c6de-qdaq)
2020/10/21(水) 12:16:57.36ID:hl6LkBs90 >>371
いや
if(!locked){
実行
別タスクlockedのfalseを見て処理開始
locked = true;
別タスク割り込まれたら困る処理開始
await xxx.Task;←別タスクと衝突
locked = false;
}
起こるじゃん
いや
if(!locked){
実行
別タスクlockedのfalseを見て処理開始
locked = true;
別タスク割り込まれたら困る処理開始
await xxx.Task;←別タスクと衝突
locked = false;
}
起こるじゃん
373デフォルトの名無しさん (JP 0H22-pYMh)
2020/10/21(水) 13:03:41.62ID:eNSg6QZpH >>371
-0.01と-0.02の中間(MidPoint)である-0.015のときの丸め方(Rounding)として
「MidpointRounding.ToPositiveInfinity」を指定したつもりだったのですが・・・
MidPointじゃないときにも「ToPositiveInfinity」が適用されちゃうんですね・・・
JavaScriptのMath.Round()とおなじような(四捨五入される桁の数字が5の場合に
正の無限大の方向で丸める)四捨五入をしたかっただけなのですが、
関数を自作しないとだめみたいなので自作します。
お騒がせしました。
-0.01と-0.02の中間(MidPoint)である-0.015のときの丸め方(Rounding)として
「MidpointRounding.ToPositiveInfinity」を指定したつもりだったのですが・・・
MidPointじゃないときにも「ToPositiveInfinity」が適用されちゃうんですね・・・
JavaScriptのMath.Round()とおなじような(四捨五入される桁の数字が5の場合に
正の無限大の方向で丸める)四捨五入をしたかっただけなのですが、
関数を自作しないとだめみたいなので自作します。
お騒がせしました。
374デフォルトの名無しさん (ワッチョイ 8242-gGz3)
2020/10/21(水) 13:30:40.39ID:UaTtUbsy0 await絡みのときは、排他制御はSemaphoreSlim使うのが定番ですよ
https://www.atmarkit.co.jp/ait/articles/1411/11/news117.html
https://www.atmarkit.co.jp/ait/articles/1411/11/news117.html
375デフォルトの名無しさん (アウアウウー Sa45-PQnC)
2020/10/21(水) 13:44:12.17ID:RtxzEAIBa 四捨五入:わかる
銀行丸め:わかる
正の無限大の方向で丸める:何の意味があんのそれ?
銀行丸め:わかる
正の無限大の方向で丸める:何の意味があんのそれ?
376デフォルトの名無しさん (テテンテンテン MMe6-K3fn)
2020/10/21(水) 13:52:03.73ID:xBoANC0iM 切り上げって知ってる?
377デフォルトの名無しさん (ワッチョイ 1d1a-8DiG)
2020/10/21(水) 14:15:10.32ID:sg7OOy0L0 >>373
それならこんな感じで簡単に作れるから頑張れ
static decimal[] table = new decimal[]{1E0m, 1E1m, 1E2m, 1E3m, 1E4m};
static decimal Round(decimal num, int pow) => Decimal.Floor((num * table[pow]) + 0.5m) / table[pow];
decimal num = Round(-0.015m, 2); // -0.01
>>372
普通にメインスレッドから叩いていればこうなるからな
if(!locked){ // thread 1
locked = true; // thread 1
await xxx.Task; // thread 2
locked = false; // thread 1
}
それならこんな感じで簡単に作れるから頑張れ
static decimal[] table = new decimal[]{1E0m, 1E1m, 1E2m, 1E3m, 1E4m};
static decimal Round(decimal num, int pow) => Decimal.Floor((num * table[pow]) + 0.5m) / table[pow];
decimal num = Round(-0.015m, 2); // -0.01
>>372
普通にメインスレッドから叩いていればこうなるからな
if(!locked){ // thread 1
locked = true; // thread 1
await xxx.Task; // thread 2
locked = false; // thread 1
}
378デフォルトの名無しさん (スップ Sd02-UPmx)
2020/10/21(水) 14:19:07.15ID:lJjSrE40d 正負どっち方向に動くかわかんない変換より確実に方向がわかっている変換が必要なことはあるよ
379デフォルトの名無しさん (アウアウウー Sa45-PQnC)
2020/10/21(水) 14:26:27.71ID:RtxzEAIBa380デフォルトの名無しさん (スップ Sd02-UPmx)
2020/10/21(水) 14:32:15.81ID:lJjSrE40d 5捨6入って特定に分野では一般的な計算方法では?
俺は使わないけど
俺は使わないけど
381デフォルトの名無しさん (アウアウウー Sa45-PQnC)
2020/10/21(水) 14:33:15.98ID:RtxzEAIBa382デフォルトの名無しさん (ワッチョイ 8224-3PYq)
2020/10/21(水) 14:47:36.44ID:8k52si4D0 それでもう.NET5使ってええの?
383デフォルトの名無しさん (ワッチョイ 02ad-zk6z)
2020/10/21(水) 14:52:13.96ID:v0oiVQF00 いいよ
384デフォルトの名無しさん (ワッチョイ 022f-MACq)
2020/10/21(水) 15:00:31.64ID:5E7rZ8hS0 >>377
それが問題になるのは、そのifブロックが複数スレッドで実行されたときだからな
それが問題になるのは、そのifブロックが複数スレッドで実行されたときだからな
385デフォルトの名無しさん (ワッチョイ eea7-qdaq)
2020/10/21(水) 16:37:46.89ID:APVpE4AA0386デフォルトの名無しさん (ワッチョイ 1d1a-LA9s)
2020/10/21(水) 17:36:18.89ID:sg7OOy0L0 >>385
つまりこういうのを危惧してるのか?
Task.Run(() => {
if(!locked){
locked = true;
await xxx.Task;
locked = false;
}
});
だとしたらこんなのは仮定に持ち出すのがそもそも間違い
それ言い出したらフィールド操作するあらゆるメソッドで「並列で呼び出される可能性がある」とlock()で括らなきゃいけなくなってしまう
つまりこういうのを危惧してるのか?
Task.Run(() => {
if(!locked){
locked = true;
await xxx.Task;
locked = false;
}
});
だとしたらこんなのは仮定に持ち出すのがそもそも間違い
それ言い出したらフィールド操作するあらゆるメソッドで「並列で呼び出される可能性がある」とlock()で括らなきゃいけなくなってしまう
387デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/21(水) 17:53:44.86ID:lxmGvu010 ifブロックがシングルスレッドでしか実行されない状況で
lockが必要な状況ってどういうの?
lockが必要な状況ってどういうの?
388デフォルトの名無しさん (ワッチョイ 022f-MACq)
2020/10/21(水) 17:55:56.87ID:5E7rZ8hS0 元の質問がマルチスレッドでのロックに関する質問だと思うのだがな
このコードはスレッドセーフですか?
いいえ危険です
みんなが回答してるのはそういう事
このスレの趣旨や質問者のレベルを考えると妥当な仮定と回答だと思うぞ
このコードはスレッドセーフですか?
いいえ危険です
みんなが回答してるのはそういう事
このスレの趣旨や質問者のレベルを考えると妥当な仮定と回答だと思うぞ
389デフォルトの名無しさん (ワッチョイ 022f-MACq)
2020/10/21(水) 17:58:26.66ID:5E7rZ8hS0 >>387
再入すればやばい気がしないでもない
再入すればやばい気がしないでもない
390デフォルトの名無しさん (ワッチョイ 1d1a-LA9s)
2020/10/21(水) 18:02:52.19ID:sg7OOy0L0 元の質問って>>366だろ?
> async/awaitは同じスレッドに戻るからこんな単純なロックでも問題無い
「同じスレッドに戻る」を認識してるなら疑いなくtrueやん
ここで「でも別スレッドで動かしたら危険」と言うのは質問の前提を崩してる
> async/awaitは同じスレッドに戻るからこんな単純なロックでも問題無い
「同じスレッドに戻る」を認識してるなら疑いなくtrueやん
ここで「でも別スレッドで動かしたら危険」と言うのは質問の前提を崩してる
391デフォルトの名無しさん (ワッチョイ bdad-TzND)
2020/10/21(水) 18:14:17.17ID:MqdNiLmu0 崩してないな。
392デフォルトの名無しさん (ワッチョイ 022f-MACq)
2020/10/21(水) 18:19:06.78ID:5E7rZ8hS0 そのawaitしてるのはasyncメソッドだから、メインスレッドからのみ呼ばれるとは限らん
つまりもどるのがメインスレッドだとは限らん
というの理解しているのならまあ大きなお世話だと言えなくもないが
あとフォームアプリじゃなければ、もとのスレッドに戻るも保障されないけどな
つまりもどるのがメインスレッドだとは限らん
というの理解しているのならまあ大きなお世話だと言えなくもないが
あとフォームアプリじゃなければ、もとのスレッドに戻るも保障されないけどな
393デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/21(水) 19:06:44.50ID:lxmGvu010 >>389
なるほど
ロックって言葉でちょっと意図を勘違いしてた
タスクが実行中ならもう1回呼ばれても実行しないようにしたいってことだったのか
タスクの中には他のスレッドと競合する処理はなく
ifブロックはUIスレッドでのみ実行されるという前提ならいいんじゃねって気がする
なるほど
ロックって言葉でちょっと意図を勘違いしてた
タスクが実行中ならもう1回呼ばれても実行しないようにしたいってことだったのか
タスクの中には他のスレッドと競合する処理はなく
ifブロックはUIスレッドでのみ実行されるという前提ならいいんじゃねって気がする
394デフォルトの名無しさん (ワッチョイ 895f-ojc3)
2020/10/21(水) 19:15:16.66ID:/GjtxlMb0 そもそも呼ばれないようにしろ
395デフォルトの名無しさん (ワッチョイ 1d1a-xMNm)
2020/10/21(水) 19:22:35.51ID:sg7OOy0L0396デフォルトの名無しさん (ワッチョイ fd02-XbO/)
2020/10/21(水) 20:02:51.66ID:GqMp+oa10397デフォルトの名無しさん (アウアウクー MMd1-/IKK)
2020/10/21(水) 21:32:30.66ID:38qDfhYJM >>338
まだ帳票開発したことないけど、やる機会があればDocurainってサービス使ってみようかなって思ってる
まだ帳票開発したことないけど、やる機会があればDocurainってサービス使ってみようかなって思ってる
398デフォルトの名無しさん (ワッチョイ cdda-XH2X)
2020/10/24(土) 21:17:36.19ID:skFEsPcd0 for文で書き始めて、配列から要素を取り出すだけだからforeachに書き換えて、でもやっぱりiが必要になってfor文に戻すこと多くない?
399デフォルトの名無しさん (ワッチョイ eee3-tMQb)
2020/10/24(土) 21:32:32.75ID://9fx+gF0 Index付きのSelect句で事足りる
400デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/24(土) 21:50:33.27ID:878uww5f0 MoreLinqのIndex()がKeyValuePair<int, TSource>を返してくれる
簡単だから自分で実装してもいいけどライブラリ使うほうが管理含めて楽
foreach (var (i, x) in foo.Index()) {
Console.WriteLine($"{i}: {x}");
}
簡単だから自分で実装してもいいけどライブラリ使うほうが管理含めて楽
foreach (var (i, x) in foo.Index()) {
Console.WriteLine($"{i}: {x}");
}
401デフォルトの名無しさん (ワッチョイ cdda-XH2X)
2020/10/24(土) 21:55:59.78ID:skFEsPcd0 そうなんだ
402デフォルトの名無しさん (ワッチョイ eea7-qdaq)
2020/10/24(土) 22:19:40.87ID:VOTutQQJ0 >>400
いや、これ書くぐらいならforで書くよな
いや、これ書くぐらいならforで書くよな
403デフォルトの名無しさん (ワッチョイ 5db2-Xls4)
2020/10/24(土) 23:15:08.92ID:GpR1sqnP0 >>402
たしかに
たしかに
404デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/24(土) 23:52:47.91ID:878uww5f0 またLinqバトル始まっちゃう感じ?
405デフォルトの名無しさん (ワッチョイ ee2c-ySc4)
2020/10/25(日) 00:14:13.24ID:AkfEJdVF0 (index, value)と(value, index)でバグを作ってしまったから
Index拡張メソッドは控えることにした
Index拡張メソッドは控えることにした
406デフォルトの名無しさん (ワッチョイ eee3-tMQb)
2020/10/25(日) 00:16:36.51ID:wq/6wJQN0407デフォルトの名無しさん (ワッチョイ eea7-qdaq)
2020/10/25(日) 00:24:48.70ID:lDlwJ32m0 そもそもforeachなんて作ったやつの脳みそ腐ってんだから仕方ない
何回回すのかもコードからわかんねーし
どう回したいのか変わると一気に産廃
そもそもforeachなんて産廃コード使うなよ
変更に激弱だろ
あ、インデックスN番目は処理したくない
→産廃
あ、後から処理しないと
→産廃
あ、奇数と偶数で処理変えないと
→産廃
あ、こっちの配列もみながらいっしょに処理しないと
→産廃
もうあれね
コードレビューでforeachを見つけたら
修正させるぐらいでいい
何回回すのかもコードからわかんねーし
どう回したいのか変わると一気に産廃
そもそもforeachなんて産廃コード使うなよ
変更に激弱だろ
あ、インデックスN番目は処理したくない
→産廃
あ、後から処理しないと
→産廃
あ、奇数と偶数で処理変えないと
→産廃
あ、こっちの配列もみながらいっしょに処理しないと
→産廃
もうあれね
コードレビューでforeachを見つけたら
修正させるぐらいでいい
408デフォルトの名無しさん (ワッチョイ e1ad-gqeA)
2020/10/25(日) 07:44:18.56ID:yVRP623B0 インデックスを考えるような用途でforeach使うほうが悪いだろ。
偶数と奇数で処理変えるのも意味わからんし、イテーレタを一つずつって変更に強いと思うけど。
全部Linqでなんとかなることだけどさ。
偶数と奇数で処理変えるのも意味わからんし、イテーレタを一つずつって変更に強いと思うけど。
全部Linqでなんとかなることだけどさ。
409デフォルトの名無しさん (ワッチョイ 05da-jvOs)
2020/10/25(日) 08:02:57.19ID:bN5bdnqa0 紅白に塗るとかあるよね
410デフォルトの名無しさん (アウアウクー MMd1-AKl2)
2020/10/25(日) 09:10:32.90ID:WAUUQolqM 偶数の場合こう処理します!
プログラム解説サイトとかでありがち。
実務でそういうのに出くわしたことほぼない。
プログラム解説サイトとかでありがち。
実務でそういうのに出くわしたことほぼない。
411デフォルトの名無しさん (ワッチョイ eea7-qdaq)
2020/10/25(日) 09:22:04.05ID:lDlwJ32m0412デフォルトの名無しさん (ワッチョイ eea7-qdaq)
2020/10/25(日) 09:24:16.14ID:lDlwJ32m0 2行でワンセットになるデータで
上側だけ、下側だけって処理するときもお世話になるじゃん
どんだけ組んだことないんだよ
上側だけ、下側だけって処理するときもお世話になるじゃん
どんだけ組んだことないんだよ
413デフォルトの名無しさん (ワッチョイ 86da-3XbD)
2020/10/25(日) 09:26:32.27ID:XkKy2l3/0 WPFみたいな割と最近のライブラリなら、
自前で偶数判断なんてせず交互に色を変えてくれる。
自前で偶数判断なんてせず交互に色を変えてくれる。
414デフォルトの名無しさん (スフッ Sda2-gqeA)
2020/10/25(日) 09:36:22.60ID:w//Xf3xfd415デフォルトの名無しさん (ワッチョイ eea7-qdaq)
2020/10/25(日) 09:37:37.76ID:lDlwJ32m0416デフォルトの名無しさん (スフッ Sda2-gqeA)
2020/10/25(日) 09:40:44.86ID:w//Xf3xfd417デフォルトの名無しさん (ワッチョイ eea7-qdaq)
2020/10/25(日) 09:47:07.55ID:lDlwJ32m0418デフォルトの名無しさん (ワッチョイ e1ad-gqeA)
2020/10/25(日) 10:01:32.46ID:yVRP623B0 >>417
画面側でやること。
描画関数には何行目かそもそも渡ってくるからループなんぞする必要もないだろ。
それを客が言ってるからってデータでやるのは手早くて汚い方法取ってるか、それしか知らないって事じゃん?
画面側でやること。
描画関数には何行目かそもそも渡ってくるからループなんぞする必要もないだろ。
それを客が言ってるからってデータでやるのは手早くて汚い方法取ってるか、それしか知らないって事じゃん?
419デフォルトの名無しさん (ワッチョイ c6de-qdaq)
2020/10/25(日) 10:29:58.35ID:j2oMvxGH0420デフォルトの名無しさん (ワッチョイ c6de-qdaq)
2020/10/25(日) 10:32:46.22ID:j2oMvxGH0 ループで奇数と偶数は別の描画ライブラリ使っててそっちの話だった
すまん
すまん
421デフォルトの名無しさん (ワッチョイ e1ad-gqeA)
2020/10/25(日) 10:35:11.15ID:yVRP623B0 なんか俺も言い方悪かったな。すまん。
422デフォルトの名無しさん (アウアウイー Sad1-y5oF)
2020/10/25(日) 10:36:49.62ID:MD0uz1BLa 最近のC#ならTupleで書けるからindexつきSelectのほうが短く書けて楽かな
foreach (var (item, index) in items.Select((x, i) => (x, i)))
{
Console.WriteLine($"{index}: {item}");
}
for (var index = 0; index <= items.Length; i++)
{
var item = items[i];
Console.WriteLine($"{index}: {item}");
}
後者の書き方に仕込まれてるバグを目視だけで見つけるのはやっぱりしんどい
ていうかDataGridViewなら奇数行・偶数行のスタイルをそれぞれ別に設定できたはず
なんでそれ使わないでロジックで制御するんだろう
foreach (var (item, index) in items.Select((x, i) => (x, i)))
{
Console.WriteLine($"{index}: {item}");
}
for (var index = 0; index <= items.Length; i++)
{
var item = items[i];
Console.WriteLine($"{index}: {item}");
}
後者の書き方に仕込まれてるバグを目視だけで見つけるのはやっぱりしんどい
ていうかDataGridViewなら奇数行・偶数行のスタイルをそれぞれ別に設定できたはず
なんでそれ使わないでロジックで制御するんだろう
423デフォルトの名無しさん (アウアウクー MMd1-AKl2)
2020/10/25(日) 10:46:49.59ID:WAUUQolqM >>411
そんな偶数奇数で色変えるとかはコントロール側で制御して、各機能では意識せずに作れるようにしてる。
有償のものは標準でそういう機能ついてる。
あなたのところは各機能でそんなことさせてるの?
ほとんどのシーンでforeachは使えるしforより可読性も高い。
C上がりのひとは頑なにfor文つかうよね。
そんな偶数奇数で色変えるとかはコントロール側で制御して、各機能では意識せずに作れるようにしてる。
有償のものは標準でそういう機能ついてる。
あなたのところは各機能でそんなことさせてるの?
ほとんどのシーンでforeachは使えるしforより可読性も高い。
C上がりのひとは頑なにfor文つかうよね。
424デフォルトの名無しさん (アウアウクー MMd1-AKl2)
2020/10/25(日) 10:48:09.55ID:WAUUQolqM とか書いてたら話終わってた…
425デフォルトの名無しさん (スフッ Sda2-VUOf)
2020/10/25(日) 10:57:42.82ID:ad5S/9r+d BASIC上がりの俺は頑なにforを使う
426デフォルトの名無しさん (ワッチョイ ee2f-3XbD)
2020/10/25(日) 11:43:12.08ID:6wSnm1o40 フォームアプリを作成していて、
作ったタブページを一時的に表示させないようにしたいのですが
(開発者用なのでユーザーから隠したいタブページ)
invisible設定とかないのでしょうか?
作ったタブページを一時的に表示させないようにしたいのですが
(開発者用なのでユーザーから隠したいタブページ)
invisible設定とかないのでしょうか?
427デフォルトの名無しさん (ワッチョイ 05da-jvOs)
2020/10/25(日) 11:54:01.85ID:bN5bdnqa0 visibleをfalseにしる
428デフォルトの名無しさん (ワッチョイ fd5f-Naer)
2020/10/25(日) 13:16:25.56ID:FzqccguI0 elisp上がりだとdolistか
429デフォルトの名無しさん (アウアウイー Sad1-y5oF)
2020/10/25(日) 13:18:15.58ID:MD0uz1BLa430デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/25(日) 13:20:19.02ID:M7kzCKlu0 >>405
拡張メソッドの問題ではないような・・・
それはいいとして順番だけど
map/reduce系のAPIはindexがオプショナルなので引数の順番は(value, index)が一般的で
index付きのtuple的なもの返す場合は(index, value)で返すほうが一般的
自分の知ってる言語はどれもそうなってるよ
拡張メソッドの問題ではないような・・・
それはいいとして順番だけど
map/reduce系のAPIはindexがオプショナルなので引数の順番は(value, index)が一般的で
index付きのtuple的なもの返す場合は(index, value)で返すほうが一般的
自分の知ってる言語はどれもそうなってるよ
431デフォルトの名無しさん (ワッチョイ 8901-dBbI)
2020/10/28(水) 07:40:35.09ID:qnSD+cEJ0 C#で作られた2つの実行中プログラムの間でデータの受け渡しをするならどういう方法が考えられますか?
csvやデータベースくらいしか思いつかず
csvやデータベースくらいしか思いつかず
432デフォルトの名無しさん (スフッ Sd33-5Eci)
2020/10/28(水) 08:05:19.87ID:68kYXJV6d >>431
ポート開けて通信する。
プロセス間通信する。
のどっちかかな。
Core化するなら、ポート開けて通信したほうが良いかも。
embedIOとか使うとhttpサーバがびっくりするほど簡単に立てられるよ。既存アプリの上に。
ポート開けて通信する。
プロセス間通信する。
のどっちかかな。
Core化するなら、ポート開けて通信したほうが良いかも。
embedIOとか使うとhttpサーバがびっくりするほど簡単に立てられるよ。既存アプリの上に。
433デフォルトの名無しさん (ワッチョイ 1324-XCPW)
2020/10/28(水) 08:10:45.70ID:geAq98MI0 GUI同士ならSendMessageとかも
434デフォルトの名無しさん (アウアウウー Sa9d-hJ+A)
2020/10/28(水) 08:41:56.32ID:cCglm1Caa435デフォルトの名無しさん (ワッチョイ 13ad-W+MZ)
2020/10/28(水) 09:08:45.24ID:Nt7id6vD0 Web API
436デフォルトの名無しさん (ワッチョイ 132f-G7xE)
2020/10/28(水) 09:13:36.29ID:DyAY2wG10 WCFの後継とかどうすりゃいんだ
437デフォルトの名無しさん (ワッチョイ 13ad-W+MZ)
2020/10/28(水) 09:22:47.39ID:Nt7id6vD0438デフォルトの名無しさん (ワッチョイ 69b0-Wesc)
2020/10/28(水) 09:28:12.57ID:3bmwn6Ba0 WCF 開発者に gRPC を推奨する理由
https://docs.microsoft.com/ja-jp/dotnet/architecture/grpc-for-wcf-developers/why-grpc
https://docs.microsoft.com/ja-jp/dotnet/architecture/grpc-for-wcf-developers/why-grpc
439デフォルトの名無しさん (ワッチョイ 136a-Wesc)
2020/10/28(水) 22:35:34.95ID:bWE1nSHc0 うちにはRemoting使ってて詰んでるレガシーがある
440デフォルトの名無しさん (アウアウウー Sa9d-LF1B)
2020/10/29(木) 08:48:31.11ID:GkpRv4Lwa MSMQという手も
441デフォルトの名無しさん (ブーイモ MM8d-jkRw)
2020/10/29(木) 12:27:01.55ID:VHRGFK1gM MQTT
442デフォルトの名無しさん (ワッチョイ 8901-dBbI)
2020/10/29(木) 19:28:53.48ID:obW6sm8G0443デフォルトの名無しさん (ササクッテロ Spc5-8Qnl)
2020/10/29(木) 20:32:35.12ID:ytciXGtBp お前が好きだと今日言うメモリー
気持ちを交換共有メモリー
気持ちを交換共有メモリー
444デフォルトの名無しさん (オッペケ Src5-oSKY)
2020/10/29(木) 21:27:35.00ID:fAmed0Klr 動的なJsonを作成したいのですが、いい方法ありませんか?
今考えてるのは
1. Jsonシリアライズ用クラスを用意(複数)
2. 処理部で使用するタイミングで1.クラスnew
3. 2.でnewしたクラスのみ匿名型オブジェクトに突っ込む
4. 3.をシリアライズ
これで一応は出来るんですが、3.で分岐多くなるのが非常に汚くて。
今考えてるのは
1. Jsonシリアライズ用クラスを用意(複数)
2. 処理部で使用するタイミングで1.クラスnew
3. 2.でnewしたクラスのみ匿名型オブジェクトに突っ込む
4. 3.をシリアライズ
これで一応は出来るんですが、3.で分岐多くなるのが非常に汚くて。
445デフォルトの名無しさん (オッペケ Src5-oSKY)
2020/10/29(木) 21:28:58.34ID:fAmed0Klr できれば使用したタイミングで、都度匿名型に追加できればいいんですが、実装方法わからず…
446デフォルトの名無しさん (オッペケ Src5-oSKY)
2020/10/29(木) 21:32:20.78ID:fAmed0Klr 都度匿名型に追加ってのはあくまでイメージですはい。
447デフォルトの名無しさん (ワッチョイ f946-6z/3)
2020/10/29(木) 21:37:54.98ID:w+K6PrrE0 DynamicObjectとか使えばよかったような
448デフォルトの名無しさん (ワッチョイ 8b2c-jacq)
2020/10/29(木) 21:45:46.98ID:HAxtGf170 いまいちよく分からんが、Dictionary<string, object>だとダメなの?
449デフォルトの名無しさん (オッペケ Src5-oSKY)
2020/10/29(木) 22:08:26.61ID:fAmed0Klr450デフォルトの名無しさん (ワッチョイ 518f-CXnf)
2020/10/29(木) 22:56:17.00ID:28O5aXgi0 >>425
Python が最初だとどうなるんだろうな
Python が最初だとどうなるんだろうな
451デフォルトの名無しさん (ワッチョイ 1340-mlHN)
2020/10/30(金) 05:36:06.93ID:Of4L3rez0 スタティックライブラリーを使うためDLLにしているのだが、関数ポインタを引数にする関数があって困っています。
C#の関数をその関数ポインタに結びつける方法ありますか?
C#の関数をその関数ポインタに結びつける方法ありますか?
452デフォルトの名無しさん (ワッチョイ 1324-XCPW)
2020/10/30(金) 07:28:47.86ID:NoXL5vik0 >>451
関数ポインタ引数に対してはdelegateをそのまま渡せばいいよ
LPCTSTR引数に対してstringをそのまま放り込んでも成立するのと同様にdelegateもPVOIDとして解釈される
つまりそのDLLで使う関数の型のdelegate型を作って渡せば良いだけ
関数ポインタ引数に対してはdelegateをそのまま渡せばいいよ
LPCTSTR引数に対してstringをそのまま放り込んでも成立するのと同様にdelegateもPVOIDとして解釈される
つまりそのDLLで使う関数の型のdelegate型を作って渡せば良いだけ
453デフォルトの名無しさん (ワッチョイ 1324-XCPW)
2020/10/30(金) 07:32:51.69ID:NoXL5vik0 ちなみにC#9だか10からは生の関数ポインタも扱えるって聞いた
454デフォルトの名無しさん (ワッチョイ 1340-mlHN)
2020/10/30(金) 09:43:54.51ID:Of4L3rez0 >>452
ありがとうございます。
ありがとうございます。
455デフォルトの名無しさん (ワッチョイ 2b7c-jacq)
2020/10/30(金) 09:48:27.53ID:+BFmFpNo0 関数ポインタをDLL側が保持する(寿命が関数から返ってくるまでより長い)場合は
マネージ側もその間そのdelegateインスタンスを保持しとかないとだめだぞ
マネージ側もその間そのdelegateインスタンスを保持しとかないとだめだぞ
456デフォルトの名無しさん (ワイーワ2 FF63-L1Xi)
2020/10/30(金) 12:16:19.25ID:7MkyV1CpF >>444
msgpack
msgpack
457デフォルトの名無しさん (ワッチョイ 518f-CXnf)
2020/10/30(金) 23:02:16.07ID:YXzIJ61G0 >>453
どどど、どう書くの?
どどど、どう書くの?
458デフォルトの名無しさん (ワッチョイ 136a-Wesc)
2020/10/31(土) 12:17:23.59ID:8cswqFVg0459デフォルトの名無しさん (アウウィフ FF9d-L1Xi)
2020/10/31(土) 12:27:36.76ID:fxcwqRC2F460デフォルトの名無しさん (アウアウエー Sae3-qHab)
2020/10/31(土) 20:35:43.78ID:jPO/JqMva 最近最新版がプレリリースされたwebView2って、C#ではまだ使えないんでしょうか?
https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/gettingstarted/winforms
上記サイトに習ってnugetからインストールし、1日いろいろ試して全く動作しませんでした。
ソリューションエクスプローラーの参照の、webView2をダブルクリックすると、「このプロジェクトは利用不可能き、またはビルドされていないため、オブジェクトブラウザで表示できません」と表示されます。
webView2もVisualStudioもMicrosoft Edgeも最新版をインストールしてもダメでした。
https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/gettingstarted/winforms
上記サイトに習ってnugetからインストールし、1日いろいろ試して全く動作しませんでした。
ソリューションエクスプローラーの参照の、webView2をダブルクリックすると、「このプロジェクトは利用不可能き、またはビルドされていないため、オブジェクトブラウザで表示できません」と表示されます。
webView2もVisualStudioもMicrosoft Edgeも最新版をインストールしてもダメでした。
461デフォルトの名無しさん (アウアウエー Sae3-qHab)
2020/10/31(土) 20:37:54.93ID:jPO/JqMva 間違えました。
「このプロジェクトは利用不可能か、またはビルドされていないため、オブジェクトブラウザでは表示できません。」の間違いです。
「このプロジェクトは利用不可能か、またはビルドされていないため、オブジェクトブラウザでは表示できません。」の間違いです。
462デフォルトの名無しさん (ワッチョイ fb42-L1Xi)
2020/10/31(土) 20:40:31.48ID:4IwElBvx0 WindowsFormsを勉強しはじめたんだけど
テキストボックスに処理の状況を逐一表示させたい場合ってどうやるのが正しいやり方?
とりあえずこんな感じで作ってみたら動くけどなんか違う気がする
https://ideone.com/o3Agp4
テキストボックスに処理の状況を逐一表示させたい場合ってどうやるのが正しいやり方?
とりあえずこんな感じで作ってみたら動くけどなんか違う気がする
https://ideone.com/o3Agp4
463デフォルトの名無しさん (ワッチョイ 7178-CXnf)
2020/10/31(土) 20:55:29.78ID:Pj54f0iv0 ログ的な事をやりたいんだったらListBox使う方が良いよ
一定行数に達したら先頭(最終)行を削除とかも簡単に実装できる
一定行数に達したら先頭(最終)行を削除とかも簡単に実装できる
464デフォルトの名無しさん (ブーイモ MMdd-+cRC)
2020/10/31(土) 21:00:31.63ID:+32PkI4zM >>462
allocconsole してconsole に出力するの吉
allocconsole してconsole に出力するの吉
465デフォルトの名無しさん (ワッチョイ 1324-XCPW)
2020/10/31(土) 21:00:33.78ID:1joLaKYt0 >>462
それでも良いと思うけどConsole.WriteLineみたいに強制改行関数作っといたら?
あとC#自体のアドバイスになるけど、"処理しています……" + "\r\n"は+いらないから"処理しています……\r\n"で良いし
変数挟むときは$を付けて{}で囲む$"あと{i}秒\r\n"って書き方は各プログラミング言語の中でもトップクラスに便利だから覚えておいた方が良い
それでも良いと思うけどConsole.WriteLineみたいに強制改行関数作っといたら?
あとC#自体のアドバイスになるけど、"処理しています……" + "\r\n"は+いらないから"処理しています……\r\n"で良いし
変数挟むときは$を付けて{}で囲む$"あと{i}秒\r\n"って書き方は各プログラミング言語の中でもトップクラスに便利だから覚えておいた方が良い
466デフォルトの名無しさん (ワッチョイ 8b7b-ZVtx)
2020/10/31(土) 21:34:45.65ID:2P+i0kOV0467デフォルトの名無しさん (アウアウエー Sae3-vExa)
2020/10/31(土) 21:59:39.41ID:b+5qg5vxa468デフォルトの名無しさん (ワッチョイ 136a-Wesc)
2020/10/31(土) 22:07:28.55ID:1TbrihkJ0469デフォルトの名無しさん (ワッチョイ fb42-Y3Cl)
2020/10/31(土) 22:21:19.47ID:4IwElBvx0470デフォルトの名無しさん (ワッチョイ 2b2d-yS8S)
2020/10/31(土) 22:39:35.75ID:syXSgGXN0 >>469
積極的にコンソールを使う意図が無いのであれば、AllocConsoleよりも
System.Diagnostics名前空間のDebug.WriteLine()やTrace.WriteLine()を勧める
VSのデバッグ出力画面やDebugView++等のアプリで見れる
積極的にコンソールを使う意図が無いのであれば、AllocConsoleよりも
System.Diagnostics名前空間のDebug.WriteLine()やTrace.WriteLine()を勧める
VSのデバッグ出力画面やDebugView++等のアプリで見れる
471デフォルトの名無しさん (ブーイモ MMdd-+cRC)
2020/10/31(土) 23:14:04.52ID:+32PkI4zM コンソールにはコンソールのメリットが
あるからなぁw
あるからなぁw
472デフォルトの名無しさん (ワッチョイ 136a-Wesc)
2020/11/01(日) 00:44:45.18ID:TS2lQNKS0 >>460
本当に書かれている通りにやったの?
・WebView2はプレリリース版でなければならない(今だと1.0.674-prereleaseかな?)
・EdgeはCanary版でなければならない
なんとなく、WebView2のプレリリース版でなく安定版の方を入れてそうな予感
本当に書かれている通りにやったの?
・WebView2はプレリリース版でなければならない(今だと1.0.674-prereleaseかな?)
・EdgeはCanary版でなければならない
なんとなく、WebView2のプレリリース版でなく安定版の方を入れてそうな予感
473デフォルトの名無しさん (アウアウエー Sae3-qHab)
2020/11/01(日) 08:45:28.58ID:R1ZyiuLQa >>472
ありがとうございます!
通常版のedgeをアンインストールして、edgeのcanary版をインストールして、再度通常版のedgeをインストールしたらできました!
2種類のedgeがインストールしてないと動作しないんですね。
webview2を使う場合は、全ユーザーも、canary版のedgeをインストールしていないと使用できないんでしょうか?
ありがとうございます!
通常版のedgeをアンインストールして、edgeのcanary版をインストールして、再度通常版のedgeをインストールしたらできました!
2種類のedgeがインストールしてないと動作しないんですね。
webview2を使う場合は、全ユーザーも、canary版のedgeをインストールしていないと使用できないんでしょうか?
474デフォルトの名無しさん (ワッチョイ 8b2c-jacq)
2020/11/01(日) 16:17:54.64ID:hv15RbEG0 まあまだ.NET版はpereleaseだからな
475デフォルトの名無しさん (ワッチョイ 7b42-Wesc)
2020/11/01(日) 18:01:16.91ID:CXNCiFbu0 WinUI版のWebView2使ってみたが、マウスの戻るボタンが効いたのに感動したわ
コレをどうにかするためにどんだけ苦労したことか
コレをどうにかするためにどんだけ苦労したことか
476デフォルトの名無しさん (アウアウクー MM45-S7XH)
2020/11/02(月) 07:35:20.34ID:kZXAdCJzM クラスの自動プロパティについて質問
自動プロパティがない頃は、頭にアンダースコア(_hogeHoge)をつけたprivate変数を用意しておいて、
コンストラクタやメソッドではそちらを読み書きしていた。
でも自動プロパティができたら、アンダースコアのprivate変数は不要になった。
これまで何も考えずに、コンストラクタやメソッドではプロパティそのもの(HogeHoge)に対して読み書きしているんだが、これでいいんだろうか…
それともクラス内部で読み書きが発生する場合は自動プロパティ使わないほうがいい?
自動プロパティがない頃は、頭にアンダースコア(_hogeHoge)をつけたprivate変数を用意しておいて、
コンストラクタやメソッドではそちらを読み書きしていた。
でも自動プロパティができたら、アンダースコアのprivate変数は不要になった。
これまで何も考えずに、コンストラクタやメソッドではプロパティそのもの(HogeHoge)に対して読み書きしているんだが、これでいいんだろうか…
それともクラス内部で読み書きが発生する場合は自動プロパティ使わないほうがいい?
477デフォルトの名無しさん (ワッチョイ e9b2-CXnf)
2020/11/02(月) 08:40:37.73ID:J1SwCvmZ0 getterに副作用持たせてるの?
478デフォルトの名無しさん (アウアウクー MM45-S7XH)
2020/11/02(月) 08:54:07.90ID:kZXAdCJzM >>477
何も考えずにpublic string HogeHoge{get;set;}しか書いてない
何も考えずにpublic string HogeHoge{get;set;}しか書いてない
479デフォルトの名無しさん (アウアウエー Sae3-vExa)
2020/11/02(月) 12:37:17.75ID:NZsZuJ1ia >>476
何を悩んでるのか分からない。
同じ機能なら簡潔に書けるほうがいいに決まってるので
自動実装プロパティーで必要な機能が過不足なく実現できるなら
自動実装プロパティーを使わない理由はないんじゃないの?
別にpublicやinternalなメンバーにクラス内からアクセスしてはいけないなんて変なルールはないよw
何を悩んでるのか分からない。
同じ機能なら簡潔に書けるほうがいいに決まってるので
自動実装プロパティーで必要な機能が過不足なく実現できるなら
自動実装プロパティーを使わない理由はないんじゃないの?
別にpublicやinternalなメンバーにクラス内からアクセスしてはいけないなんて変なルールはないよw
480デフォルトの名無しさん (アウアウクー MM45-S7XH)
2020/11/02(月) 12:39:05.37ID:kZXAdCJzM481デフォルトの名無しさん (エアペラ SDa5-3nSW)
2020/11/02(月) 13:48:19.73ID:iMasp6IMD c#にも、cでいうプログラミング言語Cみたいなバイブルと言える本はありますか?
482デフォルトの名無しさん (ワッチョイ a95f-pubH)
2020/11/02(月) 17:57:45.09ID:9N3uvmex0 どんどん言語がアップデートされていってるからなあ
483デフォルトの名無しさん (スッップ Sd33-5uHa)
2020/11/02(月) 18:02:08.07ID:kfCt0hOOd googleかmsか
ufcppでもいいと思うけど
ufcppでもいいと思うけど
484デフォルトの名無しさん (ワッチョイ 7933-k4VG)
2020/11/02(月) 18:19:04.77ID:8cdEIkcV0 K&Rみたいな読んでるとドヤれる(気がする)ようなのはC#ではないよね
485デフォルトの名無しさん (ブーイモ MM8d-+cRC)
2020/11/02(月) 19:33:36.63ID:QcicrBn8M ちょっと前までrtfでインストールされてたじゃん
486デフォルトの名無しさん (ワッチョイ 6963-cVcw)
2020/11/02(月) 21:55:02.37ID:KMJSmLX80 >>481
「プログラミング.NET Framework 第4版」Jeffrey Richter 著、藤原 雄介 訳
「プログラミング.NET Framework 第4版」Jeffrey Richter 著、藤原 雄介 訳
487デフォルトの名無しさん (オッペケ Src5-3TaV)
2020/11/02(月) 22:06:56.80ID:8/l8UOwbr ガチの素人で趣味でプログラミングを始めました
フォントファミリー名を取得してフォントファミリー名一覧コンボボックスを作成、そのあとコンボボックスで選んだフォントファミリーの名前で横においてるテキストブロックのフォントを変えるプログラムを作ってるんですけど、選択したコンボボックスからフォントファミリー名の取得はできてると思うんですがテキストブロックのフォントが変わりません
どうすればうまくいきますか?
フォントファミリー名を取得してフォントファミリー名一覧コンボボックスを作成、そのあとコンボボックスで選んだフォントファミリーの名前で横においてるテキストブロックのフォントを変えるプログラムを作ってるんですけど、選択したコンボボックスからフォントファミリー名の取得はできてると思うんですがテキストブロックのフォントが変わりません
どうすればうまくいきますか?
488デフォルトの名無しさん (ワッチョイ f15f-CXnf)
2020/11/02(月) 22:27:22.35ID:onwGyibB0 pictureBox1.Image = @"パス";
PictureBoxで画像を表示している時、別の画像に切り替えるときはDisposeしてからパスを変更したほうがいいでしょうか?
PictureBoxで画像を表示している時、別の画像に切り替えるときはDisposeしてからパスを変更したほうがいいでしょうか?
489デフォルトの名無しさん (オッペケ Src5-3TaV)
2020/11/02(月) 22:31:57.70ID:8/l8UOwbr もしかしてフォントファミリーは文字型変数じゃ指定できないの?
490デフォルトの名無しさん (ワッチョイ 8b7b-ZVtx)
2020/11/02(月) 22:51:52.41ID:IceSdPzo0491デフォルトの名無しさん (アウアウエー Sae3-vExa)
2020/11/02(月) 22:54:08.63ID:NZsZuJ1ia >>487
適当にやってみた
public Form1()
{
InitializeComponent();
cboFont.DropDownStyle = ComboBoxStyle.DropDownList;
cboFont.DisplayMember = "Name";
cboFont.Items.AddRange(FontFamily.Families);
cboFont.SelectedIndex = 0;
cboSize.DropDownStyle = ComboBoxStyle.DropDownList;
for (int i = 6; i < 81; i++) cboSize.Items.Add(i);
cboSize.SelectedIndex = 0;
EventHandler eh = (sender, e) => textBox1.Font = TextFont;
Load += eh;
cboFont.SelectedIndexChanged += eh;
cboSize.SelectedIndexChanged += eh;
}
適当にやってみた
public Form1()
{
InitializeComponent();
cboFont.DropDownStyle = ComboBoxStyle.DropDownList;
cboFont.DisplayMember = "Name";
cboFont.Items.AddRange(FontFamily.Families);
cboFont.SelectedIndex = 0;
cboSize.DropDownStyle = ComboBoxStyle.DropDownList;
for (int i = 6; i < 81; i++) cboSize.Items.Add(i);
cboSize.SelectedIndex = 0;
EventHandler eh = (sender, e) => textBox1.Font = TextFont;
Load += eh;
cboFont.SelectedIndexChanged += eh;
cboSize.SelectedIndexChanged += eh;
}
492デフォルトの名無しさん (アウアウエー Sae3-vExa)
2020/11/02(月) 22:54:27.55ID:NZsZuJ1ia private int TextSize
{
get
{
return (int)cboSize.SelectedItem;
}
}
private Font TextFont
{
get
{
return new Font((FontFamily)cboFont.SelectedItem, TextSize);
}
}
{
get
{
return (int)cboSize.SelectedItem;
}
}
private Font TextFont
{
get
{
return new Font((FontFamily)cboFont.SelectedItem, TextSize);
}
}
493デフォルトの名無しさん (オッペケ Src5-3TaV)
2020/11/02(月) 23:36:41.20ID:8/l8UOwbr ありがとうございます
今日はもう遅いので明日やってみます
今日はもう遅いので明日やってみます
494デフォルトの名無しさん (ワッチョイ f15f-CXnf)
2020/11/02(月) 23:49:15.55ID:onwGyibB0495デフォルトの名無しさん (ワッチョイ 8b8e-JnB3)
2020/11/03(火) 01:34:50.34ID:qmbI+CcG0 >>494
こいつVBAで荒らしていた馬鹿じゃないか?
こいつVBAで荒らしていた馬鹿じゃないか?
496デフォルトの名無しさん (ワッチョイ f15f-CXnf)
2020/11/03(火) 01:58:10.34ID:jzL8Touo0 >>495
VBAスレは見てないので人違いですね
VBAスレは見てないので人違いですね
497デフォルトの名無しさん (ワッチョイ f951-CXnf)
2020/11/03(火) 08:28:33.94ID:dsOM4bkh0 MahApps.MetroってC#はどうってことないがxamlがヤベえのね
498デフォルトの名無しさん (ワッチョイ 515f-j5Tt)
2020/11/04(水) 13:54:59.77ID:MUmomvCg0 GUIはXAMLが基本です
499デフォルトの名無しさん (アウアウエー Sada-SD8k)
2020/11/07(土) 10:45:15.58ID:t7w6OMp4a プログラムの実行を優先して、ユーザーのマウスやキーボード操作をパソコンが受け付けないようにしたいんですが可能ですか?
500デフォルトの名無しさん (ワッチョイ 697c-p592)
2020/11/07(土) 10:51:39.94ID:nZ+0GoS70 それをするとプログラムに(応答無し)って表示されるけど可能は可能
501デフォルトの名無しさん (ワッチョイ adda-6R3n)
2020/11/07(土) 12:17:39.90ID:39mGoKKv0 メッセージポンプして全部removeしてしまえばよろし
あかよろし
あかよろし
502デフォルトの名無しさん (アウアウエー Sada-SD8k)
2020/11/07(土) 12:59:34.40ID:t7w6OMp4a >>500
応答なしと表示されても問題ありません。ボタンを押した後、プログラムの一部区間だけユーザーの操作を無効化したいです。
理由は、ダイアログボックスが表示されてからSendKeysで文字を入力する際に、他の操作によりプログラムが正常動作しない時があるためです。SendKeysしか方法がなかったのでそうしています。
応答なしと表示されても問題ありません。ボタンを押した後、プログラムの一部区間だけユーザーの操作を無効化したいです。
理由は、ダイアログボックスが表示されてからSendKeysで文字を入力する際に、他の操作によりプログラムが正常動作しない時があるためです。SendKeysしか方法がなかったのでそうしています。
503デフォルトの名無しさん (アウアウエー Sada-8Myv)
2020/11/07(土) 13:48:23.82ID:GpP1ZiKDa >>502
SendKeysじゃなくてWin32のPostMessageかSendMessageを使うことを
考えるべきじゃないの?
SendKeysの仕様に合わせるためにそんな大鉈を振るうとかまともな考えとは思えんよw
SendKeysじゃなくてWin32のPostMessageかSendMessageを使うことを
考えるべきじゃないの?
SendKeysの仕様に合わせるためにそんな大鉈を振るうとかまともな考えとは思えんよw
504デフォルトの名無しさん (ワッチョイ f1ad-ASHV)
2020/11/07(土) 14:59:35.50ID:6IQ4ek2K0 >>499
マウスイベントとキーボードイベントをグローバルフックして、イベントをチェーンせずに握り潰す
マウスイベントとキーボードイベントをグローバルフックして、イベントをチェーンせずに握り潰す
505デフォルトの名無しさん (ササクッテロラ Sp79-SD8k)
2020/11/07(土) 16:41:34.70ID:cxYX5+z2p506デフォルトの名無しさん (ワッチョイ adda-6R3n)
2020/11/07(土) 22:57:41.32ID:39mGoKKv0 sendを理解出来るならpeekも出来るでしょ?
507デフォルトの名無しさん (ワッチョイ 9224-DjYi)
2020/11/09(月) 13:06:44.87ID:YQs0Gheb0 .NetCore3.1のWPFアプリってエントリポイント変えられないの?
WPFのエントリポイント変更でググるとApp.xamlのビルドアクションを「アプリケーション定義」から「ページ」に変更してMainメソッド作ればいいって書かれてるけど
.NET Coreだとまずそのビルドアクションを変えられない
WPFのエントリポイント変更でググるとApp.xamlのビルドアクションを「アプリケーション定義」から「ページ」に変更してMainメソッド作ればいいって書かれてるけど
.NET Coreだとまずそのビルドアクションを変えられない
508デフォルトの名無しさん (スッップ Sdb2-e3ZK)
2020/11/09(月) 13:27:48.21ID:9M/x9jqfd509デフォルトの名無しさん (ワッチョイ 9224-DjYi)
2020/11/09(月) 14:29:20.29ID:YQs0Gheb0510デフォルトの名無しさん (ワッチョイ f642-7Ce/)
2020/11/10(火) 12:46:09.92ID:Wkf+3jxV0 .net5が今日発表される予定らしい
https://www.dotnetconf.net/
https://www.dotnetconf.net/
511デフォルトの名無しさん (ワッチョイ b19b-t1Nk)
2020/11/10(火) 14:36:59.32ID:gS6kMlPu0 .NET5でVisual Studioはどう変わるの?
我々はこれまで通り「プロジェクトのプロパティ」から「対象のフレームワーク」で3.5を選んどけばいいんでしょ?
我々はこれまで通り「プロジェクトのプロパティ」から「対象のフレームワーク」で3.5を選んどけばいいんでしょ?
512デフォルトの名無しさん (ワッチョイ 092d-79Tt)
2020/11/10(火) 20:55:17.07ID:PRedF3Ga0 3.5?
513デフォルトの名無しさん (ワッチョイ 2578-t1Nk)
2020/11/10(火) 21:45:01.26ID:ZFV7gHPc0 3.5は流石に草生える
514デフォルトの名無しさん (ワッチョイ 1261-4vwL)
2020/11/10(火) 21:54:25.94ID:whduyV8l0 4.0だろ当然
515デフォルトの名無しさん (ラクッペペ MM96-0qd5)
2020/11/10(火) 22:16:39.16ID:HXXQLae8M 4.0はサポートされていないの?
3.5のほうがいいわけ?
3.5のほうがいいわけ?
516デフォルトの名無しさん (ワッチョイ 05ac-EYp4)
2020/11/11(水) 00:11:32.86ID:9mAhI+SY0 混乱しておりますねえ
517デフォルトの名無しさん (ワッチョイ 4be3-Y0tO)
2020/11/11(水) 00:42:32.57ID:BDEAVR3x0 サポート切れの4.0使うよりは3.5縛りのほうが健全に思えてきたわ
4.5.2に揃えたいけど、古いサーバー多いのよね
4.5.2に揃えたいけど、古いサーバー多いのよね
518デフォルトの名無しさん (ワッチョイ d55f-tE7G)
2020/11/11(水) 01:37:56.99ID:foWqNnZI0 >>511
我々は先(.NET 5)に行く、君は3.5を頼む!
我々は先(.NET 5)に行く、君は3.5を頼む!
519デフォルトの名無しさん (ワッチョイ ddda-C8e5)
2020/11/11(水) 02:30:08.95ID:szx2KMpX0520デフォルトの名無しさん (ワッチョイ c5ab-ThTQ)
2020/11/11(水) 04:26:49.73ID:zN1eFwAm0 元ネタがわかんねえw
うち3.5どころか2.0や1.1の化石あるぜ……嘘みたいだろ?
うち3.5どころか2.0や1.1の化石あるぜ……嘘みたいだろ?
521デフォルトの名無しさん (ワッチョイ cdde-PcSI)
2020/11/11(水) 07:13:29.31ID:A0Zt6oTk0 C++部がVC6でしかビルドできない
522デフォルトの名無しさん (ワッチョイ ddda-C8e5)
2020/11/11(水) 07:32:57.28ID:szx2KMpX0 zip関係は4.xから標準実装
523デフォルトの名無しさん (ワッチョイ ddc3-iJA1)
2020/11/11(水) 07:48:32.66ID:DyE7m0HI0 configファイルを作らないまたは削除する連中が嫌いだわ
524デフォルトの名無しさん (ワッチョイ 2324-PC2A)
2020/11/11(水) 10:40:12.91ID:96Q/I0na0 VS16.8.0に更新したら.NET Coreのプロジェクトは1クリックで.NET5に移行出来たな
.NET Frameworkのプロジェクトも簡単に移行できるのかな?
.NET Frameworkのプロジェクトも簡単に移行できるのかな?
525デフォルトの名無しさん (ワントンキン MMab-SRQc)
2020/11/11(水) 10:44:10.46ID:QZePbwpJM できるわけないでしょ
WebFormsとWCF廃止の時点で半数くらいのアプリは事実上移行不可能
そうでなくても変なサードのライブラリ使ってたりして移行できないケースも多いだろうね
WebFormsとWCF廃止の時点で半数くらいのアプリは事実上移行不可能
そうでなくても変なサードのライブラリ使ってたりして移行できないケースも多いだろうね
526デフォルトの名無しさん (ワッチョイ 9b42-mYn1)
2020/11/11(水) 12:47:24.27ID:5X85No/50 16.8でuwpのリリースビルドが実行不能になったわ
527デフォルトの名無しさん (ワッチョイ 2324-PC2A)
2020/11/11(水) 19:44:06.91ID:96Q/I0na0 あれ、.NET5ってWindowsアプリからコンソールアプリに変更できないの?
プロジェクトプロパティから出力の種類をコンソールアプリに変えてもコンソール出てこないんだが
プロパティ開きなおすとWindowsアプリに戻ってるし
プロジェクトプロパティから出力の種類をコンソールアプリに変えてもコンソール出てこないんだが
プロパティ開きなおすとWindowsアプリに戻ってるし
528デフォルトの名無しさん (ワッチョイ 9bde-PcSI)
2020/11/11(水) 20:49:57.45ID:WaPRIfZP0 WCFって代わりに何使えって言ってる?
529デフォルトの名無しさん (ワッチョイ ddda-C8e5)
2020/11/11(水) 21:00:29.49ID:szx2KMpX0 >>528
MQTT
MQTT
530デフォルトの名無しさん (ワッチョイ 4b2c-7EKl)
2020/11/12(木) 00:35:56.66ID:qoiJF5zI0 C#実践しながら効率良く覚えたいんだけど良い教材ないかな
とりあえずWinアプリ作りたい
頑張って独習C#を9割読んだのにもうほとんど内容覚えてない
とりあえずWinアプリ作りたい
頑張って独習C#を9割読んだのにもうほとんど内容覚えてない
531デフォルトの名無しさん (ワッチョイ 2bdf-oL1k)
2020/11/12(木) 00:56:44.98ID:nVOC+il80 そりゃ手を動かさんと覚えんよ
532デフォルトの名無しさん (ワッチョイ 4b63-RL7t)
2020/11/12(木) 00:59:41.35ID:+Hg40DyF0 何でも良いから作りゃいいんだよ
ベタなのは電卓
少機能なものをガンガン作る
ベタなのは電卓
少機能なものをガンガン作る
533デフォルトの名無しさん (ワッチョイ c5ab-ThTQ)
2020/11/12(木) 02:56:18.65ID:XDpnN8VW0 仕事してるならいつもやってるちょっとした作業を代替させるようなアプリがモチベになるきっと
534デフォルトの名無しさん (ワッチョイ cbda-sZPU)
2020/11/12(木) 05:54:42.02ID:6+k25fjF0 WinUIとMAUIの区別が曖昧にしか認識できてないんですが、
具体的な違いを説明してくれてる情報源があれば教えてください。
具体的な違いを説明してくれてる情報源があれば教えてください。
535デフォルトの名無しさん (スッップ Sd43-WYbX)
2020/11/12(木) 06:11:12.88ID:xNvOr4tgd 日頃やってる単純作業をなんでもいいから自動化
エロ動画収集とかエロ画像整理とかあるだろ
エロ動画収集とかエロ画像整理とかあるだろ
536デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
2020/11/12(木) 12:00:28.21ID:f5BAQJxFF537デフォルトの名無しさん (ワッチョイ dd9b-Y0tO)
2020/11/12(木) 14:31:20.02ID:s2LM5erN0 C#で小数点の倍精度演算をするには自分で作るしか無いの?
整数はBigIntegerで出来るのに
整数はBigIntegerで出来るのに
538デフォルトの名無しさん (アウアウエー Sa13-tE7G)
2020/11/12(木) 14:41:04.78ID:pnQCXdZla539デフォルトの名無しさん (ワッチョイ dd9b-Y0tO)
2020/11/12(木) 15:01:22.45ID:s2LM5erN0 倍精度じゃ無くて多倍長だった
めんご
めんご
540デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
2020/11/12(木) 15:16:14.73ID:f5BAQJxFF BigInteger
541デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
2020/11/12(木) 15:21:45.07ID:f5BAQJxFF https://archive.codeplex.com/?p=Sine
https://web.archive.org/web/20130225114124/http://www.emilstefanov.net/Projects/GnuMpDotNet/
https://web.archive.org/web/20130225114124/http://www.emilstefanov.net/Projects/GnuMpDotNet/
542デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
2020/11/12(木) 15:30:12.32ID:f5BAQJxFF543デフォルトの名無しさん (ワッチョイ dd9b-Y0tO)
2020/11/12(木) 17:45:20.41ID:s2LM5erN0544デフォルトの名無しさん (ワッチョイ 257c-89Yn)
2020/11/12(木) 17:46:57.77ID:6nU3MdtG0 >>543
それを標準機能や標準関数で実装してる言語ってあるの?
それを標準機能や標準関数で実装してる言語ってあるの?
545デフォルトの名無しさん (ワッチョイ 457b-6EVo)
2020/11/12(木) 17:49:22.72ID:yAJG0kR/0 >>543
メモリが許す限りの何かを扱いたいのなら数値に限らず自作しないと、そんな都合のいいものはない
メモリが許す限りの何かを扱いたいのなら数値に限らず自作しないと、そんな都合のいいものはない
546デフォルトの名無しさん (ワッチョイ 4b8e-0eP4)
2020/11/12(木) 18:50:06.12ID:n9rTzoEP0 >>545
馬鹿は黙っていれば良い例
馬鹿は黙っていれば良い例
547デフォルトの名無しさん (ワッチョイ 2db2-jJ5L)
2020/11/12(木) 19:03:16.89ID:eGo0h3N+0 Pandasに相当するライブラリないの?
548デフォルトの名無しさん (ワッチョイ 2db2-jJ5L)
2020/11/12(木) 19:03:45.07ID:eGo0h3N+0 まあC#でやる必要ないかw
549デフォルトの名無しさん (アウアウエー Sa13-PW4O)
2020/11/12(木) 19:52:59.46ID:OqW4/kLba ググってみたらdoubleの仮数部は52ビットらしけど、52ビットの分解能じゃ
不足する分野って何なんだろうねw
地球の赤道に1ミクロン単位で目盛りを振っても余裕でおつりがくる分解能みたいだけど
不足する分野って何なんだろうねw
地球の赤道に1ミクロン単位で目盛りを振っても余裕でおつりがくる分解能みたいだけど
550デフォルトの名無しさん (ワッチョイ 4ba7-PcSI)
2020/11/12(木) 20:42:07.53ID:aPogCkhJ0 >>549
円周率じゃん?
円周率じゃん?
551デフォルトの名無しさん (ワントンキン MMa3-SRQc)
2020/11/12(木) 20:42:17.55ID:/VjS/nppM >>549
オーダーの異なる多数の数値を何も考えずに前から順に足し合わせたりすれば簡単に狂うよ
オーダーの異なる多数の数値を何も考えずに前から順に足し合わせたりすれば簡単に狂うよ
552デフォルトの名無しさん (ワッチョイ 4b63-RL7t)
2020/11/12(木) 21:28:06.03ID:+Hg40DyF0 めんどくさいから整数で演算して結果の小数点を動かすわ
ってかみんなそうやってやんないの?
そりゃ高パフォーマンスで多倍長浮動小数扱えるならそれが一番だろうけど
ってかみんなそうやってやんないの?
そりゃ高パフォーマンスで多倍長浮動小数扱えるならそれが一番だろうけど
553デフォルトの名無しさん (ワッチョイ 4593-89Yn)
2020/11/12(木) 21:30:18.59ID:mp0oTovH0 一番面倒臭いのはケチ付けたいだけのID:s2LM5erN0
554デフォルトの名無しさん (ワッチョイ ddda-C8e5)
2020/11/12(木) 21:32:48.72ID:WhH2oDBM0 GMP使うからC#ではせんな。
CUGにmiracle ってライブラリーがあったけど
これも当然C#用では無いなぁ
CUGにmiracle ってライブラリーがあったけど
これも当然C#用では無いなぁ
555デフォルトの名無しさん (アウアウエー Sa13-PW4O)
2020/11/12(木) 21:51:54.26ID:OqW4/kLba >>552
誤差が累積しないような演算方法を工夫するのが普通だろうね
誤差が累積しないような演算方法を工夫するのが普通だろうね
556デフォルトの名無しさん (ワッチョイ 4bbb-6GPh)
2020/11/12(木) 21:59:49.04ID:4tCV4GAu0 すまんが、↓こう言う時の「=>」ってどう言う意味なの?
string asdf => $"jkl";
この画面の11行目でそんな感じのが出てきたんだけど・・・・
https://youtu.be/wTmZCu16LNU?t=1094
string asdf => $"jkl";
この画面の11行目でそんな感じのが出てきたんだけど・・・・
https://youtu.be/wTmZCu16LNU?t=1094
557デフォルトの名無しさん (ワッチョイ 4b2c-MZ7l)
2020/11/12(木) 22:15:18.46ID:QnwokErS0 読み取り専用プロパティの簡単な書き方
string asdf { get { $"jkl"; } }
string asdf { get => $"jkl"; }
string asdf => $"jkl";
string asdf { get; } = $"jkl"; // これだけ意味が違う
string asdf { get { $"jkl"; } }
string asdf { get => $"jkl"; }
string asdf => $"jkl";
string asdf { get; } = $"jkl"; // これだけ意味が違う
558デフォルトの名無しさん (ワッチョイ 1bda-ThTQ)
2020/11/13(金) 00:55:38.66ID:eU7TEgK20559デフォルトの名無しさん (オッペケ Src1-SNcc)
2020/11/13(金) 05:21:57.56ID:quhoX/Ovr >>543
何の計算したいの?
何の計算したいの?
560デフォルトの名無しさん (ワッチョイ 459b-Y0tO)
2020/11/13(金) 11:17:32.36ID:d7Iu7DLU0 >>559
単なる道楽なんだけどね
昔の放送大学でUBASICを使った自然対数の底と円周率の演算をやってたから
同じことをC#でやろうと思ったけどIEEE754の倍精度実数では桁が足りなかった
BigIntegerがあるならBigFloatも欲しかったなと
単なる道楽なんだけどね
昔の放送大学でUBASICを使った自然対数の底と円周率の演算をやってたから
同じことをC#でやろうと思ったけどIEEE754の倍精度実数では桁が足りなかった
BigIntegerがあるならBigFloatも欲しかったなと
561デフォルトの名無しさん (ワッチョイ 159b-NSHw)
2020/11/13(金) 11:21:41.58ID:RWm0omqa0 放送大学アーカイブズ
懐かしの名講義
再放送中毒
懐かしの名講義
再放送中毒
562デフォルトの名無しさん (ワッチョイ cd7c-LlJe)
2020/11/13(金) 11:32:20.13ID:ehJZ/AtC0563デフォルトの名無しさん (ワッチョイ 257c-89Yn)
2020/11/13(金) 12:37:29.01ID:907SkV9V0564デフォルトの名無しさん (スッップ Sd43-QgmP)
2020/11/13(金) 14:16:13.05ID:WOWtwvuFd565デフォルトの名無しさん (ワッチョイ 159b-NSHw)
2020/11/13(金) 14:18:25.76ID:RWm0omqa0 「作るしかない」
の方が最近の新しい人は逃げる傾向にあるからな
の方が最近の新しい人は逃げる傾向にあるからな
566デフォルトの名無しさん (スップ Sd43-RL7t)
2020/11/13(金) 15:13:21.55ID:od/5f45td 作るしか無いってことはほぼ世の中にはそんなものは求められていないってこと
そんなものを要求するのは根本が間違ってるか何でも周りに頼り過ぎか
真に有益なものならむしろ作って公開すりゃ良い実績になる
そんなものを要求するのは根本が間違ってるか何でも周りに頼り過ぎか
真に有益なものならむしろ作って公開すりゃ良い実績になる
567デフォルトの名無しさん (スッップ Sd43-QgmP)
2020/11/13(金) 15:22:11.67ID:WOWtwvuFd >>566
なんかそれがもうずれてんだよね。
「作るしかないの?いいのないの?」って聞かれてるんだから
「ないよ。作るしかないよ」って答えればいいのに。
世の中で求められてないとか質問に関係なくない?
有益云々も今ないから作ったら公開してくれって言えば利益にもなんのに。
残念
なんかそれがもうずれてんだよね。
「作るしかないの?いいのないの?」って聞かれてるんだから
「ないよ。作るしかないよ」って答えればいいのに。
世の中で求められてないとか質問に関係なくない?
有益云々も今ないから作ったら公開してくれって言えば利益にもなんのに。
残念
568デフォルトの名無しさん (ワッチョイ cd7c-LlJe)
2020/11/13(金) 15:25:44.29ID:fnhS2xNE0 20年位前のうbyの時代はそれが通ったけど
若い人にそういう文化はもう無い
若い人にそういう文化はもう無い
569デフォルトの名無しさん (スップ Sd43-RL7t)
2020/11/13(金) 15:29:35.13ID:od/5f45td >>567
質問への回答じゃないのにズレてるとかいうレスがそもそもズレてるって思わないの?
というか悪魔の証明はできないんだから無いよ、なんて軽々しく言えないという前提がわかってる?
ついでに誰にも求められていないものを公開して利益になるロジックを教えて
質問への回答じゃないのにズレてるとかいうレスがそもそもズレてるって思わないの?
というか悪魔の証明はできないんだから無いよ、なんて軽々しく言えないという前提がわかってる?
ついでに誰にも求められていないものを公開して利益になるロジックを教えて
570デフォルトの名無しさん (ワッチョイ 4bbb-6GPh)
2020/11/13(金) 16:12:04.51ID:/kJTTxU10571デフォルトの名無しさん (スッップ Sd43-QgmP)
2020/11/13(金) 16:31:13.21ID:WOWtwvuFd >>569
そうなの。質問への回答じゃないの。
悪魔の証明とかかたっ苦しく考えなくていいのに。
知らないなら知らないで、「俺はしらんなぁ、作るしかないんじゃない?」で答えるか黙ってればいいじゃない。知ってる人がいれば答えればいいし。
>ついでに誰にも求められていないものを公開して利益になるロジックを教えて
これは
>真に有益なものならむしろ作って公開すりゃ良い実績になる
ここからね。
ないものができるんだから利益でしょ。使う使わないは人それぞれ。少なくとも質問者には必要なんだから。
なんかすまんね
そうなの。質問への回答じゃないの。
悪魔の証明とかかたっ苦しく考えなくていいのに。
知らないなら知らないで、「俺はしらんなぁ、作るしかないんじゃない?」で答えるか黙ってればいいじゃない。知ってる人がいれば答えればいいし。
>ついでに誰にも求められていないものを公開して利益になるロジックを教えて
これは
>真に有益なものならむしろ作って公開すりゃ良い実績になる
ここからね。
ないものができるんだから利益でしょ。使う使わないは人それぞれ。少なくとも質問者には必要なんだから。
なんかすまんね
572デフォルトの名無しさん (ワッチョイ 257c-89Yn)
2020/11/13(金) 16:42:13.42ID:907SkV9V0573デフォルトの名無しさん (ワッチョイ 257c-89Yn)
2020/11/13(金) 16:47:50.11ID:907SkV9V0 精度の高い計算をするためのツールがUBASICなわけ
あえてそれを使わずにC#でやるのは本人の自由だけど、
要件をハッキリさせずにいながら出てきた案はダメ出し
そりゃ顰蹙も買うさ
あえてそれを使わずにC#でやるのは本人の自由だけど、
要件をハッキリさせずにいながら出てきた案はダメ出し
そりゃ顰蹙も買うさ
574デフォルトの名無しさん (スップ Sd43-RL7t)
2020/11/13(金) 17:05:08.44ID:od/5f45td >>571
だから答えようがないから質問を見た感想を述べているだけなんでしょ?
それをなんで、その回答はズレている!なんて突っ込むの?
質問者が求めてるなら
誰にも求められていない
に該当しないじゃんw
質問者は世の中含まれていないの?
だから答えようがないから質問を見た感想を述べているだけなんでしょ?
それをなんで、その回答はズレている!なんて突っ込むの?
質問者が求めてるなら
誰にも求められていない
に該当しないじゃんw
質問者は世の中含まれていないの?
575デフォルトの名無しさん (ワンミングク MMa3-Y0tO)
2020/11/13(金) 17:39:01.74ID:j87fJt3YM >>572
多倍長と小数は相反する概念じゃ無いぞ
BigFloatも普通にJuliaとかである型だし
このスレ理系がいなさすぎだろ
多倍長浮動小数点演算求められてんのに
「そんなものは誰にも必要じゃ無いから存在しない!自分で作れ!」とか
普通にGMPとかあるし普通はそれを奨める
多倍長と小数は相反する概念じゃ無いぞ
BigFloatも普通にJuliaとかである型だし
このスレ理系がいなさすぎだろ
多倍長浮動小数点演算求められてんのに
「そんなものは誰にも必要じゃ無いから存在しない!自分で作れ!」とか
普通にGMPとかあるし普通はそれを奨める
576デフォルトの名無しさん (スッップ Sd43-QgmP)
2020/11/13(金) 17:41:05.56ID:WOWtwvuFd577デフォルトの名無しさん (ワッチョイ 237b-E7wB)
2020/11/13(金) 18:28:33.10ID:qE0lneeB0 ワッチョイ dd9b-Y0tO ワッチョイ 459b-Y0tO ワンミングク MMa3-Y0tO 質問の仕方も使う言葉も不正確で調べた回答者にダメ出しの上にワッチョイコロコロ
NGでいいよ
NGでいいよ
578デフォルトの名無しさん (ラクッペペ MM4b-sA6t)
2020/11/13(金) 18:33:46.11ID:lrdHTx5AM BigFloatって 10÷3 するとメモリ喰らい尽くしてくれるの?
579デフォルトの名無しさん (ワッチョイ cd63-ieMj)
2020/11/13(金) 18:44:41.25ID:UDp7AbcK0580デフォルトの名無しさん (ワッチョイ 257c-89Yn)
2020/11/13(金) 18:45:15.53ID:907SkV9V0581デフォルトの名無しさん (スップ Sd43-RL7t)
2020/11/13(金) 18:46:10.29ID:od/5f45td え?普通にgmp勧めてそれじゃ精度が足りん!ってなったんじゃないの?
中身の詳細までわからんが…
C++に有効桁数100桁の演算とかあるみたいだけど要求はメモリたくさん使うレベルなんだから兆オーダーレベルの桁数なんでしょ?
中身の詳細までわからんが…
C++に有効桁数100桁の演算とかあるみたいだけど要求はメモリたくさん使うレベルなんだから兆オーダーレベルの桁数なんでしょ?
582デフォルトの名無しさん (ブーイモ MM39-C8e5)
2020/11/13(金) 18:47:51.67ID:iD09dkB6M >>575
554で勧めたんだがスルーされたんだよ
554で勧めたんだがスルーされたんだよ
583デフォルトの名無しさん (ワッチョイ 0566-RL7t)
2020/11/13(金) 18:59:56.02ID:WXkqFeV00 やろうとしたこと無いから知らんのだけど例えば円周率を何兆も計算するのあると思うけど、そういう演算ってその桁数の小数点演算必要になるの?
普通にdouble程度で十分だと勝手に思ってたけど
普通にdouble程度で十分だと勝手に思ってたけど
584デフォルトの名無しさん (ワッチョイ 45da-a+w2)
2020/11/13(金) 22:02:04.34ID:qUM0ZuKL0 wikipediaに依ると円周率の計算は
π/4 =1- 1/3 + 1/5 - 1/7...らしい
BigIntegerで1を必要な桁数だけ大きくすれば良いような
π/4 =1- 1/3 + 1/5 - 1/7...らしい
BigIntegerで1を必要な桁数だけ大きくすれば良いような
585デフォルトの名無しさん (ワッチョイ 4d33-Y0tO)
2020/11/13(金) 22:07:03.28ID:KPuGe7Gc0586デフォルトの名無しさん (ワッチョイ 4ba7-PcSI)
2020/11/13(金) 22:26:47.07ID:A6rK79tx0 だから言語に分数型が必要だって言っただろアホが
587デフォルトの名無しさん (ワッチョイ 4bf2-pfTD)
2020/11/13(金) 23:04:03.67ID:V7nqUCXH0 いや、もっとストレートに円周率型が必要
588デフォルトの名無しさん (ワッチョイ 6347-NSHw)
2020/11/14(土) 00:22:57.13ID:XJ24TZhC0589デフォルトの名無しさん (ワッチョイ 4b63-RL7t)
2020/11/14(土) 05:05:39.51ID:hLsGLi/C0 分数型があったところで無理数は表現できなくね?
アレば便利なことには間違いないが
アレば便利なことには間違いないが
590デフォルトの名無しさん (ワッチョイ 4ba7-PcSI)
2020/11/14(土) 09:03:12.56ID:cYQm19/50591デフォルトの名無しさん (ワッチョイ cd7c-LlJe)
2020/11/14(土) 15:27:05.74ID:HtCqr6h30592デフォルトの名無しさん (ワッチョイ 4d33-Y0tO)
2020/11/15(日) 09:17:33.20ID:TE31pbc70 日本でC#使うのは殆どUnityかWindowsデスクトップアプリだからな
数値計算とかしたいならPython使うしかない
数値計算とかしたいならPython使うしかない
593デフォルトの名無しさん (アウアウクー MM41-2xue)
2020/11/15(日) 09:55:21.46ID:zLhs1absM 業務アプリで1/3することってあるよ
594デフォルトの名無しさん (スプッッ Sda1-U08M)
2020/11/15(日) 12:40:40.11ID:wWBHTATOd C#ってCやVC++と比べるとかなり遅い
ですか?
遅いなら、時間の掛かる処理だけは速い言語で作るべきか悩みます
マーシャリングすれば使えるみたいなので
ですか?
遅いなら、時間の掛かる処理だけは速い言語で作るべきか悩みます
マーシャリングすれば使えるみたいなので
595デフォルトの名無しさん (ワッチョイ e52d-gWUl)
2020/11/15(日) 12:45:13.00ID:MP+vmq9O0 >>594
処理の内容と書き方による
処理の内容と書き方による
596デフォルトの名無しさん (ブーイモ MM39-C8e5)
2020/11/15(日) 12:45:47.16ID:4zqmLj42M 物にもよるが3割減ぐらいに思っておけば
597デフォルトの名無しさん (ブーイモ MM6b-eZDb)
2020/11/15(日) 12:58:30.49ID:TbjZIaKaM 分数型を作るのは面白そうやん。約分や通分の機能を持たせておけば素敵。てかMS考えてくれ。
598デフォルトの名無しさん (アウアウイー Sa41-5TVo)
2020/11/15(日) 13:20:31.23ID:ttHD4odoa >>594
ファイル読み書きやネットワークアクセスが一切なくて100%CPUパワーを使うだけのプログラムなら差が出るかもしれないけど
そうでなければ処理時間の差などI/Oにかかる時間に比べればごくわずかで塵にも等しい
ので気にするだけ無駄
というかCPUパワーを極限まで使い倒すなら、C#でマルチコア並列実行できるよう処理を書いたほうが
C/C++のシングルスレッド処理よりよっぽど早いかもしれない
よほど低性能なマシンで実行するならともかく、今どきの環境なら全部C#で書くほうが無難だと思うけどね
ファイル読み書きやネットワークアクセスが一切なくて100%CPUパワーを使うだけのプログラムなら差が出るかもしれないけど
そうでなければ処理時間の差などI/Oにかかる時間に比べればごくわずかで塵にも等しい
ので気にするだけ無駄
というかCPUパワーを極限まで使い倒すなら、C#でマルチコア並列実行できるよう処理を書いたほうが
C/C++のシングルスレッド処理よりよっぽど早いかもしれない
よほど低性能なマシンで実行するならともかく、今どきの環境なら全部C#で書くほうが無難だと思うけどね
599デフォルトの名無しさん (ワンミングク MMa3-2Uwn)
2020/11/15(日) 13:23:38.35ID:y3jy+ngDM >>597
すでに有理数クラスがNugetにあるで
https://www.nuget.org/packages/Rationals/
Example usage:
Rational left = (Rational) 1 / 2;
Rational right = (Rational) 1 / 4;
Rational sum = left + right; // equals to: 3 / 4
すでに有理数クラスがNugetにあるで
https://www.nuget.org/packages/Rationals/
Example usage:
Rational left = (Rational) 1 / 2;
Rational right = (Rational) 1 / 4;
Rational sum = left + right; // equals to: 3 / 4
600デフォルトの名無しさん (ワッチョイ a37c-WW/G)
2020/11/15(日) 16:21:09.71ID:d0/9SCdg0 >>594
どうしてもC++のライブラリをC#で使いたいとかじゃないかぎり
そのマーシャリングの処理が何気に重い気がするので
関数を何度も呼び出すみたいな使い方するなら
ベンチマーク取ってみるとC#のみの方が速いかも知れないぐらいの差じゃないかな
どうしてもC++のライブラリをC#で使いたいとかじゃないかぎり
そのマーシャリングの処理が何気に重い気がするので
関数を何度も呼び出すみたいな使い方するなら
ベンチマーク取ってみるとC#のみの方が速いかも知れないぐらいの差じゃないかな
601デフォルトの名無しさん (ワッチョイ 2324-PC2A)
2020/11/15(日) 16:38:42.28ID:alkL58xG0 >>600
マーシャリングが重いって言うと例えば
extern IntPtr GetProcAddress(IntPtr hModule, [MarshalAs(UnmanagedType.LPStr)] string procName);
とする場合、のprocNameをAnsiに変換するときってヒープ使われるの?
ヒープ使われるんだとしたら自前でstackallocしてbyte*として渡そうと思うけど
マーシャリングが重いって言うと例えば
extern IntPtr GetProcAddress(IntPtr hModule, [MarshalAs(UnmanagedType.LPStr)] string procName);
とする場合、のprocNameをAnsiに変換するときってヒープ使われるの?
ヒープ使われるんだとしたら自前でstackallocしてbyte*として渡そうと思うけど
602デフォルトの名無しさん (アウアウウー Saa9-1iYl)
2020/11/16(月) 08:44:05.44ID:dMCYT8Lea603デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
2020/11/16(月) 10:53:58.92ID:sF1WJXNTF GCは何時発動するか判らんのが欠点だけど
C#のGCはタイミングは常に判ってるのかな
C#のGCはタイミングは常に判ってるのかな
604デフォルトの名無しさん (ワッチョイ 7501-mYn1)
2020/11/16(月) 11:05:41.67ID:qYJ3Dm/90 タイミングがわかるわけじゃないけど引き起こす可能性のある手続きはわかっている
コーディングでそれを避けられる余地があるからUnityとかでまだ採用されてるんじゃない?
コーディングでそれを避けられる余地があるからUnityとかでまだ採用されてるんじゃない?
605デフォルトの名無しさん (ワッチョイ e52d-gWUl)
2020/11/16(月) 11:27:25.87ID:jhzDiMvL0 本当にクリティカルな区間はGCを(出来るだけ)禁止する等ある程度は制御できる
606デフォルトの名無しさん (ワッチョイ 257c-89Yn)
2020/11/16(月) 11:30:54.33ID:Ixi420Wb0 GC禁止する前に、あらかじめ明示的にGCって出来る?
607デフォルトの名無しさん (オッペケ Src1-RsxR)
2020/11/16(月) 12:05:22.31ID:g+EUxdXIr GC連打しまくればいいよ
608デフォルトの名無しさん (ワッチョイ e52d-gWUl)
2020/11/16(月) 13:22:47.27ID:jhzDiMvL0 GC.Collect()で強制実行出来るけど
世代上昇の問題もあるし使いこなすのは難しい
世代上昇の問題もあるし使いこなすのは難しい
609デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
2020/11/16(月) 13:24:47.04ID:sF1WJXNTF 生き残りは強毒化するのか
610デフォルトの名無しさん (ワッチョイ 4ba7-1Ypv)
2020/11/16(月) 14:26:09.78ID:vD+2eRn00 強制GC連打派
30秒に一回とかやってる
それでもなんか1秒ぐらい止まるときあるよ
30秒に一回とかやってる
それでもなんか1秒ぐらい止まるときあるよ
611デフォルトの名無しさん (アウアウウー Saa9-1iYl)
2020/11/16(月) 15:09:58.28ID:dMCYT8Lea ストップザワールドしないGCを実装してくれたらもうアプリケーションでC/C++を使うことはないかも
612デフォルトの名無しさん (ワッチョイ 2324-5Hij)
2020/11/16(月) 15:48:59.14ID:eppT6X190 むしろVC++に絶対的なGUI決定版が出たら個人開発のデスクトップアプリでC#使う事なくなるだろうな
個人開発程度の規模だとマクロのあるC++の方が返って開発速度早くなることも多いし
個人開発程度の規模だとマクロのあるC++の方が返って開発速度早くなることも多いし
613デフォルトの名無しさん (ワッチョイ d55f-g/iO)
2020/11/16(月) 17:13:00.16ID:VrPIfzyD0 GCSettings.LatencyModeで選べるよ
614デフォルトの名無しさん (ワッチョイ ed5f-Y0tO)
2020/11/16(月) 18:58:34.38ID:ZSbSJvSB0 フォーム上に設置したボタンを表示したいのですが、
フォームだけ非表示もしくは透過0%にする方法を教えてください
フォームのopacityいじるとボタンも非表示になってしまいます
フォームだけ非表示もしくは透過0%にする方法を教えてください
フォームのopacityいじるとボタンも非表示になってしまいます
615デフォルトの名無しさん (ワッチョイ 6d78-Y0tO)
2020/11/16(月) 19:19:54.16ID:Le2Iq+UD0 フォームの背景を単一色で塗り潰してTransparencyKeyで透明にしたい色を指定
616デフォルトの名無しさん (ワッチョイ 2bdf-oL1k)
2020/11/16(月) 22:13:31.62ID:G4eaPjr50 c#とvsがなかったら一生プログラムやろうなんて思わなかった
617デフォルトの名無しさん (ブーイモ MM6b-VsI6)
2020/11/16(月) 23:04:37.19ID:cHmpQkkDM C#っていい言語だよね
飾らず、気取らず、それでいて力強い。
飾らず、気取らず、それでいて力強い。
618デフォルトの名無しさん (スプッッ Sd03-U08M)
2020/11/16(月) 23:25:26.59ID:LWdxEv1Gd >>595,598,600,602
ありがとうございます!
ありがとうございます!
619デフォルトの名無しさん (スプッッ Sd03-U08M)
2020/11/16(月) 23:34:54.33ID:LWdxEv1Gd >>596
ありがとうございます!
ありがとうございます!
620デフォルトの名無しさん (アウアウエー Sa13-RMlb)
2020/11/17(火) 01:43:59.23ID:lN0UCm9Ya ファイルの日付時刻を比較したいんですがどうしたら良いですか?
621デフォルトの名無しさん (ワッチョイ ddda-C8e5)
2020/11/17(火) 01:44:52.21ID:qgtrLMb80 datetime型を比較すれば?
622デフォルトの名無しさん (ワッチョイ 2db2-jJ5L)
2020/11/17(火) 10:32:21.22ID:sO+4iEeI0 >>620
datediffや
datediffや
623デフォルトの名無しさん (アウアウエー Sa13-PW4O)
2020/11/17(火) 13:16:45.53ID:GB1Hm8K4a >>614
WPFなら普通にできたはずだけどFormでは簡単にはいかないと思うよ。
不完全だけど一番簡単にそれっぽいのを作る方法はButtonを乗せるためだけの別のform2を作って
form1をそれの親にすること。
public Form1()
{
InitializeComponent();
var loc = new Point(100, 100);
var form2 = new Form2();
Action a = () => form2.Location = PointToScreen(loc);
form2.Show(this);
Load += (s, e) => a();
Move += (s, e) => a();
}
WPFなら普通にできたはずだけどFormでは簡単にはいかないと思うよ。
不完全だけど一番簡単にそれっぽいのを作る方法はButtonを乗せるためだけの別のform2を作って
form1をそれの親にすること。
public Form1()
{
InitializeComponent();
var loc = new Point(100, 100);
var form2 = new Form2();
Action a = () => form2.Location = PointToScreen(loc);
form2.Show(this);
Load += (s, e) => a();
Move += (s, e) => a();
}
624デフォルトの名無しさん (ワッチョイ cd9b-Y0tO)
2020/11/17(火) 15:43:12.61ID:WBCoLdBR0 WPFで作る利点ってのはクロスプラットフォームに出来るってこと?
Formしか作ったことないんやけど
Formしか作ったことないんやけど
625デフォルトの名無しさん (ワッチョイ e52d-gWUl)
2020/11/17(火) 16:31:37.70ID:EuUrSlgt0 >>624
WPFはWinFormsと同じくWindowsのみ
WPFはWinFormsと同じくWindowsのみ
626デフォルトの名無しさん (ワッチョイ d55f-g/iO)
2020/11/17(火) 16:58:38.50ID:RncVdZGd0 利点というか世界的に見たらWPFのほうが主流だから
むしろ今なぜFormなのかという感じだな
むしろ今なぜFormなのかという感じだな
627デフォルトの名無しさん (JP 0H43-LEMM)
2020/11/17(火) 17:15:11.29ID:ogxxYnEyH Formsの方が簡単だから……
628デフォルトの名無しさん (ブーイモ MM6b-C8e5)
2020/11/17(火) 18:04:37.48ID:YcEiD0LrM グラフィック関係が壊滅的なので
skiaとかで支援しないと使い物にならないWPF
を勧めるとはお主も悪よのう
skiaとかで支援しないと使い物にならないWPF
を勧めるとはお主も悪よのう
629デフォルトの名無しさん (ワッチョイ a37c-WW/G)
2020/11/17(火) 18:39:12.50ID:Hw9PIOp10 WPFなんて死産みたいなもんじゃね・・・
出て結構経つけどWPFの仕事とかの話全然聞かないわ
出て結構経つけどWPFの仕事とかの話全然聞かないわ
630デフォルトの名無しさん (ワッチョイ 2324-PC2A)
2020/11/17(火) 18:46:22.75ID:PM1Apx6y0 Visual Studioの皮ってWPFなんでしょ
631デフォルトの名無しさん (ワッチョイ 4ba7-1Ypv)
2020/11/17(火) 19:20:07.15ID:cGx3KuHJ0632デフォルトの名無しさん (スップ Sd03-RL7t)
2020/11/17(火) 19:24:53.52ID:FpFQah7Cd そういうタイプはunityとかのほうが楽そう
633デフォルトの名無しさん (ワッチョイ 45da-PQ6b)
2020/11/17(火) 19:26:16.29ID:iD8vjuLm0 うちは数年前から新製品で使い始めたよ。
特定業界向け会計ソフトだから一般の目に触れる事は殆どないと思うけど。
特定業界向け会計ソフトだから一般の目に触れる事は殆どないと思うけど。
634デフォルトの名無しさん (ワッチョイ 4ba7-1Ypv)
2020/11/17(火) 19:34:04.55ID:cGx3KuHJ0635デフォルトの名無しさん (ワッチョイ 4ba7-1Ypv)
2020/11/17(火) 19:37:52.56ID:cGx3KuHJ0 あと何気に困ったのが音
後ろで音楽かけてボタンとか押したら音鳴らしてってのが
わりかしできんかったっていうかなんかあやしいライブラリ使う羽目になったっていうか
まあ、色々動く画面作りたいときはいっそunity考えた方がいいと思う
後ろで音楽かけてボタンとか押したら音鳴らしてってのが
わりかしできんかったっていうかなんかあやしいライブラリ使う羽目になったっていうか
まあ、色々動く画面作りたいときはいっそunity考えた方がいいと思う
636デフォルトの名無しさん (ワッチョイ ddda-C8e5)
2020/11/17(火) 19:42:43.18ID:qgtrLMb80 unity 只け?
637デフォルトの名無しさん (ワッチョイ a54f-mYn1)
2020/11/17(火) 20:40:45.04ID:Tiv5/dm/0 いまだに新規開発案件でforms使うところあるの?
638デフォルトの名無しさん (ワッチョイ 23ad-1Yfl)
2020/11/17(火) 20:44:36.18ID:ooCV67uO0 あるよ
639デフォルトの名無しさん (ワッチョイ 2340-WhRI)
2020/11/17(火) 20:56:30.30ID:Fq1hGO400 FAだとformで十分でウマーです。
640デフォルトの名無しさん (ワッチョイ 4d33-Y0tO)
2020/11/17(火) 21:02:12.76ID:Qs8QfDsD0 windowsなのにformsを使わない理由を逆に知りたい
641デフォルトの名無しさん (ワッチョイ 032d-gWUl)
2020/11/17(火) 21:04:02.66ID:qYg8UIQi0642デフォルトの名無しさん (ワッチョイ 0d42-WW/G)
2020/11/17(火) 22:28:01.75ID:Rs8mNRLj0 そして来年からはWinUIというWPF紛いのものが登場する、と
Win10ぽいルックスとx:Bindでコンパイル時にバインドエラー発見ってのはかなり大きい
そのうちAOTコンパイルもサポートされるそうだ
Win10ぽいルックスとx:Bindでコンパイル時にバインドエラー発見ってのはかなり大きい
そのうちAOTコンパイルもサポートされるそうだ
643デフォルトの名無しさん (アウアウエー Sa13-PW4O)
2020/11/17(火) 22:33:32.13ID:GB1Hm8K4a WPFは(既に実質的にはそうだったけど)いよいよディスコンになるの?
644デフォルトの名無しさん (ワッチョイ 032d-gWUl)
2020/11/17(火) 22:39:07.63ID:qYg8UIQi0645デフォルトの名無しさん (アウアウエー Sa13-PW4O)
2020/11/17(火) 22:40:03.59ID:GB1Hm8K4a そうか無くなるわけじゃないよねw
メンテモードか
メンテモードか
646デフォルトの名無しさん (ワッチョイ 6d78-Y0tO)
2020/11/17(火) 22:48:31.36ID:60XguBAo0 .NET MAUI 楽しみ
647デフォルトの名無しさん (ワッチョイ a790-xKON)
2020/11/18(水) 00:03:39.25ID:MO86P+zt0 maui期待しないほうがいい
ただの名前変更レベルの予感
Microsoftはなぜxamarinが失敗したか総括したのか?
表面上何もかわってないように見える
技術的にはSlimRenderアーキテクチャだかようしらんが
ただの名前変更レベルの予感
Microsoftはなぜxamarinが失敗したか総括したのか?
表面上何もかわってないように見える
技術的にはSlimRenderアーキテクチャだかようしらんが
648デフォルトの名無しさん (オッペケ Srdf-sWCu)
2020/11/18(水) 15:05:11.31ID:7Ekft4aVr VScodeで成功してるんだがElectronでいいじゃん
Electron.Netを正式サポートしろよ
Electron.Netを正式サポートしろよ
649デフォルトの名無しさん (オッペケ Srdf-gKym)
2020/11/18(水) 15:10:25.22ID:870PPpSlr >>647
だね。
だね。
650デフォルトの名無しさん (ワッチョイ cf5f-MoyO)
2020/11/18(水) 15:39:37.23ID:P3jn+KK20 Electronは失敗だよな
VSCodeだけだし
VSCodeだけだし
651デフォルトの名無しさん (ワッチョイ 5701-n9sk)
2020/11/18(水) 15:46:24.24ID:UaAov2o20 >>76
C#というのは前身がDelphiという言語なんだ
そのDelphiはVBとの死闘の末敗れてしまった
だからC#(Delphi残党)がVBを憎んでいるのは当然なんだ
ガンダムで例えるとC#はネオジオンでVBは連邦軍なんだよ
C#というのは前身がDelphiという言語なんだ
そのDelphiはVBとの死闘の末敗れてしまった
だからC#(Delphi残党)がVBを憎んでいるのは当然なんだ
ガンダムで例えるとC#はネオジオンでVBは連邦軍なんだよ
652デフォルトの名無しさん (ワッチョイ 5f01-gKym)
2020/11/18(水) 15:54:18.16ID:IPbBahkD0 >>651
笑
笑
653デフォルトの名無しさん (ワッチョイ 5f01-gKym)
2020/11/18(水) 15:54:52.11ID:IPbBahkD0 >>650
笑
笑
654デフォルトの名無しさん (ワッチョイ eff1-ZOa4)
2020/11/18(水) 16:11:46.00ID:YM9VgCd+0 >>637
わたしは中国人あるよ
わたしは中国人あるよ
655デフォルトの名無しさん (ワッチョイ ef63-CyN+)
2020/11/18(水) 16:58:13.83ID:gt3SSD7y0 >>650
SlackやDiscordもElectronだよ
SlackやDiscordもElectronだよ
656デフォルトの名無しさん (ワッチョイ 62ad-8J9H)
2020/11/18(水) 16:59:19.38ID:oW5F7Byc0 Azure Data Studio
657デフォルトの名無しさん (ワントンキン MM92-rnDP)
2020/11/18(水) 19:57:00.23ID:hzlSiPtIM >>656
ゴミは引っ込んでろ
ゴミは引っ込んでろ
658デフォルトの名無しさん (ワッチョイ 62ad-8J9H)
2020/11/18(水) 20:11:49.12ID:oW5F7Byc0 >>657
え?
え?
659デフォルトの名無しさん (ワッチョイ 977b-5hWz)
2020/11/18(水) 21:07:17.11ID:RhWccaic0 こいつら質問スレでテンプレ無視して雑談しなきゃならない使命でもあるのか?
660デフォルトの名無しさん (ワッチョイ e224-08mV)
2020/11/19(木) 10:08:06.32ID:fvT6uEqW0 StringBuilderのパフォーマンス目的で使う割には最終的なToString()で再Allocが発生するという矛盾に嫌気がさして
アンセーフなstringラッパー作って
public Length => { fixed (char* p = str) *(int*)(p - 2) = value; }みたいなことしてマニュアルで長さ変えたりしてるんだけど、こういうことしてるとGCに影響あったりする?
初期バッファとしてstr = new string('\0', 0x1000);として0x1000文字分のメモリを頂戴したのに、上記の動作で長さを5に変えたりしてると、GCによる解放時に5文字分しか解放されずに残りがリークするって事にはならないんだろうか?
アンセーフなstringラッパー作って
public Length => { fixed (char* p = str) *(int*)(p - 2) = value; }みたいなことしてマニュアルで長さ変えたりしてるんだけど、こういうことしてるとGCに影響あったりする?
初期バッファとしてstr = new string('\0', 0x1000);として0x1000文字分のメモリを頂戴したのに、上記の動作で長さを5に変えたりしてると、GCによる解放時に5文字分しか解放されずに残りがリークするって事にはならないんだろうか?
661デフォルトの名無しさん (ワッチョイ 367c-yvYW)
2020/11/19(木) 11:07:34.05ID:xT43LVbE0 > StringBuilderのパフォーマンス目的で使う割には最終的なToString()で再Allocが発生するという矛盾
そもそもそこは別に矛盾じゃないだろ
「結合のたびにアロケーションが発生する」のを防ぐもんなんだから
そもそもそこは別に矛盾じゃないだろ
「結合のたびにアロケーションが発生する」のを防ぐもんなんだから
662デフォルトの名無しさん (ワッチョイ af8c-b6az)
2020/11/19(木) 11:21:03.45ID:RERzCypk0663デフォルトの名無しさん (ワッチョイ e224-08mV)
2020/11/19(木) 11:31:10.28ID:fvT6uEqW0 >>662
良く知らないけどそれもその都度string生成してるんじゃないの?
スレッドアンセーフで良いから生成は初回かキャパ更新程度に留めて使いまわしたいんだよね
そのキャパ更新の際に捨てるときにstring.Lengthを弄ってるとメモリリークの原因になるのではないかと
良く知らないけどそれもその都度string生成してるんじゃないの?
スレッドアンセーフで良いから生成は初回かキャパ更新程度に留めて使いまわしたいんだよね
そのキャパ更新の際に捨てるときにstring.Lengthを弄ってるとメモリリークの原因になるのではないかと
664デフォルトの名無しさん (ワッチョイ e224-08mV)
2020/11/19(木) 11:37:15.19ID:fvT6uEqW0 さすがに内部でcalloc(sizeof(char), 0x1000)とかしたときの確保サイズメモっておいてくれてるのかね
GC内部の細かい挙動はMS社員でもない限り知りようないか
GC内部の細かい挙動はMS社員でもない限り知りようないか
665デフォルトの名無しさん (ワッチョイ 4240-b6az)
2020/11/19(木) 13:58:51.49ID:5X7qze6C0 NameValueCollectionをコピペすると自動整形がうまくいかなくてかっこの位置がおかしくなるので
各行ごとにDelete→Enter→Endを繰り返して手動で整形しなおしてるのですが、ちゃんと整形してくれる方法ってあるんですか?
↓みたいになったりする。
NameValueCollection vals = new NameValueCollection
{
{ "hoge","hage"},
{ "fuge","hage"},
};
各行ごとにDelete→Enter→Endを繰り返して手動で整形しなおしてるのですが、ちゃんと整形してくれる方法ってあるんですか?
↓みたいになったりする。
NameValueCollection vals = new NameValueCollection
{
{ "hoge","hage"},
{ "fuge","hage"},
};
666デフォルトの名無しさん (ワッチョイ c766-G3Z5)
2020/11/19(木) 15:16:47.51ID:wGypJVfq0 1行にする
予期しないところにある改行が原因でフォーマッターが動かない
予期しないところにある改行が原因でフォーマッターが動かない
667デフォルトの名無しさん (ワントンキン MM92-rnDP)
2020/11/19(木) 15:26:56.05ID:3nmF1AP8M >>660
いやそもそもStringBuilder.ToString()は再アロケーションしないぞ
内部のバッファをそのまま引き継ぐ実装だ
その後StringBuilderの方に追加の変更が加えられた時点で再アロケーションが発生する
いやそもそもStringBuilder.ToString()は再アロケーションしないぞ
内部のバッファをそのまま引き継ぐ実装だ
その後StringBuilderの方に追加の変更が加えられた時点で再アロケーションが発生する
668デフォルトの名無しさん (ワッチョイ 4240-b6az)
2020/11/19(木) 15:52:44.75ID:5X7qze6C0 >>666
1行というのはこういうことですか?
NameValueCollection vals = new NameValueCollection{{ "hoge","hage"},{ "fuge","hage"},};
実際には{ "hoge","hage"},が50行とかあったりするので↑では視認性やエラーチェックが面倒になります。
1行というのはこういうことですか?
NameValueCollection vals = new NameValueCollection{{ "hoge","hage"},{ "fuge","hage"},};
実際には{ "hoge","hage"},が50行とかあったりするので↑では視認性やエラーチェックが面倒になります。
669デフォルトの名無しさん (ワッチョイ 0614-Cu+U)
2020/11/19(木) 16:13:28.80ID:XTntku/z0670デフォルトの名無しさん (ワッチョイ c766-G3Z5)
2020/11/19(木) 16:33:47.05ID:wGypJVfq0 >>668
そういう長いものに自動整形を期待しない
そういう長いものを人間が視認する必要性を排除する
この手の自動整形をしようとすると負荷が半端ないことになって実用性に欠けるのですっぱり切っているのだと思う
そういう長いものに自動整形を期待しない
そういう長いものを人間が視認する必要性を排除する
この手の自動整形をしようとすると負荷が半端ないことになって実用性に欠けるのですっぱり切っているのだと思う
671デフォルトの名無しさん (アウアウエー Sa3a-VuZ6)
2020/11/19(木) 16:48:49.64ID:k15rqtpOa672デフォルトの名無しさん (ワッチョイ a201-UbMm)
2020/11/19(木) 16:50:55.24ID:EbSX4tjh0 >>671
ソース見れば普通にわかるやろ
https://referencesource.microsoft.com/#mscorlib/system/text/stringbuilder.cs,338
string ret = string.FastAllocateString(Length);
ソース見れば普通にわかるやろ
https://referencesource.microsoft.com/#mscorlib/system/text/stringbuilder.cs,338
string ret = string.FastAllocateString(Length);
673デフォルトの名無しさん (ワッチョイ 62ad-8J9H)
2020/11/19(木) 17:07:14.79ID:9igY/Fs20 りふぁれんすそーすw
674デフォルトの名無しさん (アウアウエー Sa3a-VuZ6)
2020/11/19(木) 17:26:57.34ID:k15rqtpOa .NETのStringが機械語レベルでどう実装されてるか勉強したことはないが、
普通に考えればパスカルストリングとCストリングのあいの子みたいな単純な構造でしょたぶん。
ごにょごにょした後のバイト列を普通にstringと「みなす」だけにするよね。
わざわざ別のメモリ確保してベタコピーする馬鹿な実装をする人がいるだろうか。
その必要性ができてからで遅くないと思うんだけど。
普通に考えればパスカルストリングとCストリングのあいの子みたいな単純な構造でしょたぶん。
ごにょごにょした後のバイト列を普通にstringと「みなす」だけにするよね。
わざわざ別のメモリ確保してベタコピーする馬鹿な実装をする人がいるだろうか。
その必要性ができてからで遅くないと思うんだけど。
675デフォルトの名無しさん (ワッチョイ e224-08mV)
2020/11/19(木) 18:08:19.31ID:fvT6uEqW0 >>674
C#のstringはBStrというoffset0にlength、offset4からcharの配列、そのoffset4へのポインタがstringとなる
末尾がnull文字じゃなくても問題ないが基本は末尾にnull文字が入ってるためconst wchar_t*としても扱える
そんなことはどうでもよくてマネージド内で上記の内部バイナリを書き換える方法は一切無いからわざわざアンセーフstringラッパーを作ったんだよ
一見書き換えられてるように見えるstring操作は全て新stringとして生成されてるだけだからな
+連結は長さが変わるから想像できるだろうけど、Substringすらも切り取り参照をしている訳ではなく新たにstringを生成してる(それを解決しうるマネージドな手段としてReadOnlySpanというのも一応あるが)
C#のstringはBStrというoffset0にlength、offset4からcharの配列、そのoffset4へのポインタがstringとなる
末尾がnull文字じゃなくても問題ないが基本は末尾にnull文字が入ってるためconst wchar_t*としても扱える
そんなことはどうでもよくてマネージド内で上記の内部バイナリを書き換える方法は一切無いからわざわざアンセーフstringラッパーを作ったんだよ
一見書き換えられてるように見えるstring操作は全て新stringとして生成されてるだけだからな
+連結は長さが変わるから想像できるだろうけど、Substringすらも切り取り参照をしている訳ではなく新たにstringを生成してる(それを解決しうるマネージドな手段としてReadOnlySpanというのも一応あるが)
676デフォルトの名無しさん (ワッチョイ cf5f-MoyO)
2020/11/19(木) 19:50:48.14ID:nKYhLbF50 細かいことを気にしてまでC#を使う矛盾をどう解決してるのか気になるわ
677デフォルトの名無しさん (ワッチョイ e224-08mV)
2020/11/19(木) 20:59:45.17ID:fvT6uEqW0678デフォルトの名無しさん (ワッチョイ cf5f-MoyO)
2020/11/19(木) 21:03:40.41ID:nKYhLbF50 StringBuilderを使えというのは学ぶでしょ
そこまででいい
それ以上やるならもうC#使う意味ない
そこまででいい
それ以上やるならもうC#使う意味ない
679デフォルトの名無しさん (ワッチョイ e224-08mV)
2020/11/19(木) 21:04:23.57ID:fvT6uEqW0 >>678
それじゃSpanとか実装したMSがバカみたいじゃん
それじゃSpanとか実装したMSがバカみたいじゃん
680デフォルトの名無しさん (ワッチョイ e26a-Am47)
2020/11/19(木) 21:28:29.15ID:A4wcMVuA0 >>662 が挙げてたZStringの解説記事
個人的にはそこまでパフォーマンス気にするような物作ってないから「へー」って感じで読んだだけだけど
ZString – Unity/.NET CoreにおけるゼロアロケーションのC#文字列生成
ttps://tech.cygames.co.jp/archives/3383/
個人的にはそこまでパフォーマンス気にするような物作ってないから「へー」って感じで読んだだけだけど
ZString – Unity/.NET CoreにおけるゼロアロケーションのC#文字列生成
ttps://tech.cygames.co.jp/archives/3383/
681デフォルトの名無しさん (スップ Sd02-G3Z5)
2020/11/19(木) 21:32:12.66ID:s0VdR5fOd 国内C#erで有名どころだしstringはパフォーマンス絡みでよく上がるから割と有名な方じゃないかな?
あんなにパフォーマンス気にする人が知らないのには驚きだけどw
あんなにパフォーマンス気にする人が知らないのには驚きだけどw
682デフォルトの名無しさん (ワッチョイ 06f2-HYev)
2020/11/20(金) 01:24:52.99ID:ViPIBq0U0 パフォーマンスは気にしてないんじゃないの?
アロケーション気にしてただけで
アロケーション気にしてただけで
683デフォルトの名無しさん (ワッチョイ 06b5-i8bA)
2020/11/20(金) 07:19:27.10ID:ShozvaYJ0 C++は基本がスタック、C#は基本がヒープ
この二者の最大の差はこれなのでC#のパフォーマンス改善=アロケーション回避に終始する
この二者の最大の差はこれなのでC#のパフォーマンス改善=アロケーション回避に終始する
684デフォルトの名無しさん (ワッチョイ a7ab-b6az)
2020/11/21(土) 03:48:47.56ID:zIAbzPq60 俺バカだから何万回の処理で何ms差が出るのか教えてほしい
685デフォルトの名無しさん (ワッチョイ 5f01-i8bA)
2020/11/21(土) 08:27:18.63ID:WoKZFdST0 手段が目的と化している人達にそんなこと聞いても無駄だよ
686デフォルトの名無しさん (ワッチョイ fb9e-b6az)
2020/11/21(土) 11:57:08.18ID:6fJp/BaL0 初心者スレらしい馬鹿がいて嬉しい
687デフォルトの名無しさん (ワッチョイ 5701-b6az)
2020/11/21(土) 11:59:54.22ID:zQZxJMDr0 >>680のブログ主みたいな人の方が結局生産性も高いのだから、パフォーマンス厨を馬鹿にするのは知への嫉妬にしか見えない
尤も初心者用スレで話す内容ではないが
尤も初心者用スレで話す内容ではないが
688デフォルトの名無しさん (アウアウエー Sa3a-VuZ6)
2020/11/21(土) 13:04:44.65ID:Ny+zGkjNa まあちょっと前の数値演算の話と同じだよ。
純粋な学問として円周率の桁数を追求することを否定する人はいないけど、
実用上必要ないのにそれを追求するのはただの馬鹿なフェティシズム
純粋な学問として円周率の桁数を追求することを否定する人はいないけど、
実用上必要ないのにそれを追求するのはただの馬鹿なフェティシズム
689デフォルトの名無しさん (ワッチョイ e77b-3Yk1)
2020/11/21(土) 13:16:59.22ID:QfF2kXL70 こだわっている当人が>>662を提案されているのに
>良く知らないけどそれもその都度string生成してるんじゃないの
って見もせずに切り捨てているのがわけわからない。自分の作ったunsafeメソッド誉めてほしかったの?
>良く知らないけどそれもその都度string生成してるんじゃないの
って見もせずに切り捨てているのがわけわからない。自分の作ったunsafeメソッド誉めてほしかったの?
690デフォルトの名無しさん (ワッチョイ 3b02-cChY)
2020/11/21(土) 15:32:05.57ID:TFceIuuT0 誰も>>660の質問自体には答えてあげてないんだからスレチとしてスルーで良いのでは
691デフォルトの名無しさん (ワッチョイ c29b-b6az)
2020/11/21(土) 16:59:03.08ID:ZU3qCVhf0 ASP.NET Coreを勉強してみようと思うんだけど
レンタルサーバの「使えるプログラム」のところに
PHP, Ruby, PyThon, Sh としか書かれてないところはダメですよね?
レンタルサーバの「使えるプログラム」のところに
PHP, Ruby, PyThon, Sh としか書かれてないところはダメですよね?
692デフォルトの名無しさん (ワッチョイ 8bad-p2Dd)
2020/11/21(土) 18:32:27.77ID:+zQLxjm30 勉強ならローカルで動かせばよろし。
693デフォルトの名無しさん (ワッチョイ e224-08mV)
2020/11/21(土) 19:15:26.59ID:pEQG3awY0694デフォルトの名無しさん (ワッチョイ e201-MoyO)
2020/11/21(土) 20:16:31.79ID:WQW9Bpg70 >>668
編集してるXXX.csファイルを読み込んで
NameValueCollection vals = new NameValueCollection行の次の
{行からそのあとの};行の間の行に先頭スペースを揃えて挿入して
ファイルを上書き保存するミニアプリを作って実行すればいい
テキストの平文ファイルだから編集は簡単
VSで編集中にそのような外部エディタで編集がされると
編集を反映しますかって即座に聞いてくるからはいすれば位置がそろう
編集してるXXX.csファイルを読み込んで
NameValueCollection vals = new NameValueCollection行の次の
{行からそのあとの};行の間の行に先頭スペースを揃えて挿入して
ファイルを上書き保存するミニアプリを作って実行すればいい
テキストの平文ファイルだから編集は簡単
VSで編集中にそのような外部エディタで編集がされると
編集を反映しますかって即座に聞いてくるからはいすれば位置がそろう
695デフォルトの名無しさん (ワッチョイ 3b33-b6az)
2020/11/21(土) 23:02:14.09ID:eXf0RCq40 >>688 全世界で行われてる円周率演算がすべて世界記録出すために動いてると思ってる馬鹿
696デフォルトの名無しさん (ワッチョイ ab1a-7G0V)
2020/11/22(日) 02:05:01.90ID:eyJ/0uPg0697デフォルトの名無しさん (ワッチョイ 06f2-HYev)
2020/11/22(日) 02:09:21.16ID:r7dn6Jzr0 >>695
何のためにやってるの?自己満オナニー?
何のためにやってるの?自己満オナニー?
698デフォルトの名無しさん (アウアウエー Sa3a-VuZ6)
2020/11/22(日) 02:37:39.25ID:XfbnXwSba699デフォルトの名無しさん (ワッチョイ e224-08mV)
2020/11/22(日) 08:48:28.54ID:VTf/cbNB0 >>696
マジレスすると今のところはヘッダオンリーならぬ単ソースオンリーで済ませたいのであんまり外部ライブラリには乗り気じゃないというのもあるが
とは言えZStringを拝見したところu8stringをC#で実装出来てる凄いライブラリであるようなのでtext系ファイルやらwebやらdbのクエリやらで利用したい構想立ちまくったのでありがたくスターポチって記憶させていただく
確かにただのバッファとして作ったものの実態はstringに違いないので何かの拍子にstring.Internしてしまうと結構不味いことになるね
とりあえずGCに影響ないと教えてくれて大分スッキリしたのでありがとう
マジレスすると今のところはヘッダオンリーならぬ単ソースオンリーで済ませたいのであんまり外部ライブラリには乗り気じゃないというのもあるが
とは言えZStringを拝見したところu8stringをC#で実装出来てる凄いライブラリであるようなのでtext系ファイルやらwebやらdbのクエリやらで利用したい構想立ちまくったのでありがたくスターポチって記憶させていただく
確かにただのバッファとして作ったものの実態はstringに違いないので何かの拍子にstring.Internしてしまうと結構不味いことになるね
とりあえずGCに影響ないと教えてくれて大分スッキリしたのでありがとう
700デフォルトの名無しさん (ワッチョイ 3b33-b6az)
2020/11/22(日) 09:03:29.09ID:0zyBqMyr0 >>698
「円周率の桁数を追求する」ってのは結局そういうこと
「円周率の桁数を追求する」ってのは結局そういうこと
701デフォルトの名無しさん (ワッチョイ 06a7-KMSj)
2020/11/22(日) 09:27:31.41ID:7FLAKb9y0 一番じゃないと駄目なんですか?
702デフォルトの名無しさん (ワッチョイ 5f01-FFKJ)
2020/11/22(日) 13:34:50.51ID:vJ51qgrt0 superPIじゃ駄目なんですか?
703デフォルトの名無しさん (ワッチョイ 977d-P4WK)
2020/11/25(水) 08:28:57.90ID:5XzEVJhy0 COMインターフェイスをstructに付けてboxing発生させずに使用する方法って皆無でしょうか?
704デフォルトの名無しさん (ワッチョイ 9f07-78y3)
2020/11/28(土) 16:25:59.35ID:Msb6oswN0 c# プログラマは goto でコロナを拡散してるから、ウィルス作成罪とかで刑務所にぶちこむべき。
もちろん、実質的に goto と同じ if文 、swich case とか使ってるc# プログラマも有罪。
swift や Pythonプログラマは goto 使ってないから無罪。
もちろん、実質的に goto と同じ if文 、swich case とか使ってるc# プログラマも有罪。
swift や Pythonプログラマは goto 使ってないから無罪。
705デフォルトの名無しさん (ワッチョイ 1793-zmjO)
2020/11/28(土) 17:07:38.54ID:goyIH8CW0 面白いと思って書いたの?
706デフォルトの名無しさん (ブーイモ MMdb-bcw7)
2020/11/28(土) 17:18:49.30ID:qYAW4hVUM 705は死刑
707デフォルトの名無しさん (ワッチョイ ffb5-W+Es)
2020/11/28(土) 17:53:33.87ID:yGy7muY00 >>704
Go To Hell
Go To Hell
708デフォルトの名無しさん (ブーイモ MMdb-bcw7)
2020/11/28(土) 17:57:32.34ID:qYAW4hVUM >>707
このハゲェ!
このハゲェ!
709デフォルトの名無しさん (ワッチョイ d776-OOND)
2020/11/28(土) 18:38:36.41ID:pMGwV9fR0 Windowsの ini ファイルの内容を Section, Key, Value の順で
List<Dictionary<string, List<Dictionary<string, string>>>> ini;
ini = new List<Dictionary<string, List<Dictionary<string, string>>>>();
として取り込んだものから Section の一覧(Delphi の ReadSections 相当)を
得たいのですが方法がわかりません。
教えていただけませんでしょうか。
List<Dictionary<string, List<Dictionary<string, string>>>> ini;
ini = new List<Dictionary<string, List<Dictionary<string, string>>>>();
として取り込んだものから Section の一覧(Delphi の ReadSections 相当)を
得たいのですが方法がわかりません。
教えていただけませんでしょうか。
710デフォルトの名無しさん (ワッチョイ ff2c-wz4o)
2020/11/28(土) 18:43:14.08ID:YkgqIE2E0 それのどこが分からないのか分からん
あとListはいらなくない?
あとListはいらなくない?
711デフォルトの名無しさん (ワッチョイ bfad-P4WK)
2020/11/28(土) 18:54:47.55ID:v3rIW/CF0712デフォルトの名無しさん (ワッチョイ d776-OOND)
2020/11/28(土) 19:14:35.24ID:pMGwV9fR0 >>710
説明が下手ですいません。
セクション名の一覧が下記のような考え方で取得できないかと考えていました。
public void ReadSections(ref string[] sections)
{
Array.Resize(ref sections, ini.Count);
var i = 0;
foreach (var dic1 in ini)
{
sections[i] = セクション名
i++;
}
}
書き込んだ後、下記のようにしたら希望の動作をしました。
public void ReadSections(ref string[] sections)
{
Array.Resize(ref sections, ini.Count);
var i = 0;
foreach (var dic1 in ini)
{
dic1.Keys.CopyTo(sections, i);
i++;
}
}
説明が下手ですいません。
セクション名の一覧が下記のような考え方で取得できないかと考えていました。
public void ReadSections(ref string[] sections)
{
Array.Resize(ref sections, ini.Count);
var i = 0;
foreach (var dic1 in ini)
{
sections[i] = セクション名
i++;
}
}
書き込んだ後、下記のようにしたら希望の動作をしました。
public void ReadSections(ref string[] sections)
{
Array.Resize(ref sections, ini.Count);
var i = 0;
foreach (var dic1 in ini)
{
dic1.Keys.CopyTo(sections, i);
i++;
}
}
713デフォルトの名無しさん (ワッチョイ 1745-C0hB)
2020/11/28(土) 19:41:10.86ID:7NcH7NyO0 >>709
自分もList使う意味が見いだせない
var ini = Dictionary<string, Dictionary<string, string>>とかで良いんじゃないの?
これならvar value = ini["セクション名"]["キー名"]で取り出せる
if (ini.TryGetValue("セクション名", out var keys) && keys.TryGetValue("キー名", out var value)) とやったほうが良いと思うが
代入はini["セクション名"]["キー名"] = value;
自分もList使う意味が見いだせない
var ini = Dictionary<string, Dictionary<string, string>>とかで良いんじゃないの?
これならvar value = ini["セクション名"]["キー名"]で取り出せる
if (ini.TryGetValue("セクション名", out var keys) && keys.TryGetValue("キー名", out var value)) とやったほうが良いと思うが
代入はini["セクション名"]["キー名"] = value;
714デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/28(土) 20:02:20.04ID:M3lV8yHm0 Sectionの配列を得たいなら>>713にLinqのini.Keys.ToArray()
715デフォルトの名無しさん (ワッチョイ d776-OOND)
2020/11/28(土) 20:33:03.95ID:pMGwV9fR0 >>713,714
.NET 5 が出たのを機に c# を始めたところなのでよくわかっていません。
勉強がてら自作の Delphi7(Lazarus) の自作ライブラリと同じ物の作成に挑戦中です。
ini ファイルの読み込みもネットからダウンロードしたものをベースに
改造して動きを勉強しているところです。
ですので List になっている理由もまだ理解できていませんし、Dictionary も
今日初めて見た状態です。一応 List を外してみると
foreach (var dic1 in ini)
{
if (dic1.ContainsKey(section))
{
foreach (var dic2 in dic1[section])
{
if (dic2.ContainsKey(key))
{
return dic2[key];
}
}
}
}
のような場面で ContainsKey がエラーとなりました。
とりあえず Delphi の TMemIniFile と同じ程度までできました。
.NET 5 が出たのを機に c# を始めたところなのでよくわかっていません。
勉強がてら自作の Delphi7(Lazarus) の自作ライブラリと同じ物の作成に挑戦中です。
ini ファイルの読み込みもネットからダウンロードしたものをベースに
改造して動きを勉強しているところです。
ですので List になっている理由もまだ理解できていませんし、Dictionary も
今日初めて見た状態です。一応 List を外してみると
foreach (var dic1 in ini)
{
if (dic1.ContainsKey(section))
{
foreach (var dic2 in dic1[section])
{
if (dic2.ContainsKey(key))
{
return dic2[key];
}
}
}
}
のような場面で ContainsKey がエラーとなりました。
とりあえず Delphi の TMemIniFile と同じ程度までできました。
716デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/28(土) 21:13:18.17ID:M3lV8yHm0717デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/28(土) 21:20:41.11ID:M3lV8yHm0 pascalのiniなんてもう遥か昔に使ったきりだからあんまり覚えてないがそれっぽいの作るとしたらこんな感じか
Dictionary<string, Dictionary<string, string>> ini = Dictionary<string, Dictionary<string, string>>();
string ReadString(string section, string key)
{
if (ini.TryGetValue(section, out var keys) && keys.TryGetValue(key, out var value)) return value;
else return null;
}
これだとnullチェックが必要になるから、Tryメソッドの方が便利だったりする
bool TryReadString(string section, string key, out string value)
{
value = null;
return ini.TryGetValue(section, out var keys) && keys.TryGetValue(key, out value);
}
Dictionary<string, Dictionary<string, string>> ini = Dictionary<string, Dictionary<string, string>>();
string ReadString(string section, string key)
{
if (ini.TryGetValue(section, out var keys) && keys.TryGetValue(key, out var value)) return value;
else return null;
}
これだとnullチェックが必要になるから、Tryメソッドの方が便利だったりする
bool TryReadString(string section, string key, out string value)
{
value = null;
return ini.TryGetValue(section, out var keys) && keys.TryGetValue(key, out value);
}
718デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/28(土) 21:27:31.90ID:M3lV8yHm0 そういえばiniは無かった場合の規定値を第3引数に入れておけばいいだけか
それならTryメソッドいらんね
それならTryメソッドいらんね
719デフォルトの名無しさん (ワッチョイ d733-xdSs)
2020/11/28(土) 23:40:53.47ID:xlHMBUaz0 sectionの一覧が欲しいって言ってるのに、valueを取り出す説明を延々してる奴何なの?
720デフォルトの名無しさん (ワッチョイ 5701-xdSs)
2020/11/29(日) 00:02:00.65ID:agHPEKHb0 string GetValue(Dictionary<string, Dictionary<string, string >> ini, string section, string key){
if(! ini.ContainsKey(section)) return null;
if(! ini[section].ContainsKey(key)) return null;
return ini[section][key];
}
c#に限った事ではないが、何をしたいのか分かりやすいコードを目指そうな。
if(! ini.ContainsKey(section)) return null;
if(! ini[section].ContainsKey(key)) return null;
return ini[section][key];
}
c#に限った事ではないが、何をしたいのか分かりやすいコードを目指そうな。
721デフォルトの名無しさん (ワッチョイ 7778-P4WK)
2020/11/29(日) 00:10:23.95ID:eEpZgXkU0 だから質問者が欲しいのはvalueじゃなくてsection一覧だっての
722デフォルトの名無しさん (ワッチョイ 1f3e-++yk)
2020/11/29(日) 06:31:38.45ID:kNuJF9Ar0 datagridviewにユーザーコントロールを埋め込みたいんですけどどうすればいいですか?
windowsformアプリです
ていうかdatagridviewじゃなくてもユーザーコントロールをリストで表示できれば何でもいいです
どなたか教えて下さい
windowsformアプリです
ていうかdatagridviewじゃなくてもユーザーコントロールをリストで表示できれば何でもいいです
どなたか教えて下さい
723デフォルトの名無しさん (ワッチョイ 7754-FP8+)
2020/11/29(日) 08:16:40.50ID:+pk7xniq0 >>722
TableLayoutPanel とか FlowLayoutPanel はどう?
TableLayoutPanel とか FlowLayoutPanel はどう?
724デフォルトの名無しさん (ワッチョイ 7754-FP8+)
2020/11/29(日) 08:16:40.50ID:+pk7xniq0 >>722
TableLayoutPanel とか FlowLayoutPanel はどう?
TableLayoutPanel とか FlowLayoutPanel はどう?
725デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 09:35:53.03ID:yrxBBFH+0 >>719
それは一番上に書いたんだが
それは一番上に書いたんだが
726デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 09:40:01.71ID:yrxBBFH+0 >>720
section取り出す説明は昨日一番最初のレスで書いたからもう脱線して話すけどなんでここまでTryGet使わない奴って多いんだろうな
どうせ後々インデクサアクセスするならTryGetValueの方がよっぽど分かりやすいと思うんだが
section取り出す説明は昨日一番最初のレスで書いたからもう脱線して話すけどなんでここまでTryGet使わない奴って多いんだろうな
どうせ後々インデクサアクセスするならTryGetValueの方がよっぽど分かりやすいと思うんだが
727デフォルトの名無しさん (ワッチョイ 1f3e-++yk)
2020/11/29(日) 12:22:24.94ID:kNuJF9Ar0728デフォルトの名無しさん (ワッチョイ 9f2f-OOND)
2020/11/29(日) 17:19:06.82ID:b9LXd7l70 >>722
DataGridViewCellとDataGridViewColumnを継承して自作
DataGridViewCellとDataGridViewColumnを継承して自作
729デフォルトの名無しさん (ワッチョイ d740-qZd/)
2020/11/29(日) 17:32:18.08ID:MpNpLm4W0 >>720>>726
ConstainsKey → []は、まずContainsKeyの内部でFindEntry走らせて存在確認し、存在したらインデクサアクセスして再度内部でFindEntry走らせて取り出すという2度手間してるIQ低いコード
TryGetValueは存在確認時にFindEntryしたついでに値も取り出すというスマートな関数
そもそも前者で済むならTryGetValueは存在意義ないから、上記の仕組みを想像できずとも「なんでTryGetValueってあるんだろう?」と疑問に思わなければいけない
ま、C#は多様性受け入れてる言語だから個人開発なら好きに書いたらいいが
ConstainsKey → []は、まずContainsKeyの内部でFindEntry走らせて存在確認し、存在したらインデクサアクセスして再度内部でFindEntry走らせて取り出すという2度手間してるIQ低いコード
TryGetValueは存在確認時にFindEntryしたついでに値も取り出すというスマートな関数
そもそも前者で済むならTryGetValueは存在意義ないから、上記の仕組みを想像できずとも「なんでTryGetValueってあるんだろう?」と疑問に思わなければいけない
ま、C#は多様性受け入れてる言語だから個人開発なら好きに書いたらいいが
730デフォルトの名無しさん (ワッチョイ 771a-nc77)
2020/11/29(日) 18:14:07.88ID:o/YPVzQP0 そういう値をローカル変数に代入するのを無駄と言い張って勝手にワンライナーに書き直すような地雷プログラマの振りをするのはやめろよ……初心者が本気にしたらどうするんだよ
731デフォルトの名無しさん (ワッチョイ d740-qZd/)
2020/11/29(日) 18:23:09.50ID:MpNpLm4W0 >>730
今の話でローカル変数やワンライナーが出てくる余地あるか?
今の話でローカル変数やワンライナーが出てくる余地あるか?
732デフォルトの名無しさん (ワッチョイ 771a-nc77)
2020/11/29(日) 18:52:20.22ID:o/YPVzQP0 >>731
明確にガード節で判定が切り分けられているのに、
「TryGetValueなら判定と取得を同時に行える」と言い出すのはまさしくワンライナー君の物言いだぞ
ifをあえて二つ用意してContainsKeyを使ってる時点で
「ははーん、論理重視のコーディングスタイルか」と察してやるのが有能なプログラマってもんだ
明確にガード節で判定が切り分けられているのに、
「TryGetValueなら判定と取得を同時に行える」と言い出すのはまさしくワンライナー君の物言いだぞ
ifをあえて二つ用意してContainsKeyを使ってる時点で
「ははーん、論理重視のコーディングスタイルか」と察してやるのが有能なプログラマってもんだ
733デフォルトの名無しさん (ワッチョイ d740-qZd/)
2020/11/29(日) 18:58:47.11ID:MpNpLm4W0 >>732
???
2連続で全く不必要に同じ処理を挟むような奴がとても論理重視とは思えないんだが、ContainsKey + []とTryGetValueじゃ2倍以上パフォーマンス変わってくるって知ってる?
さっきも言ったけどContainsKeyでも内部的にFindEntryが走り、インデクサアクセスでも再度FindEntryが走るという無駄がある
再度言うがMSがなんでTryGetValueというメソッドを公式でわざわざ用意したかって疑問に思わない?
簡潔さ全振りならそもそもLinq使えばいい話
???
2連続で全く不必要に同じ処理を挟むような奴がとても論理重視とは思えないんだが、ContainsKey + []とTryGetValueじゃ2倍以上パフォーマンス変わってくるって知ってる?
さっきも言ったけどContainsKeyでも内部的にFindEntryが走り、インデクサアクセスでも再度FindEntryが走るという無駄がある
再度言うがMSがなんでTryGetValueというメソッドを公式でわざわざ用意したかって疑問に思わない?
簡潔さ全振りならそもそもLinq使えばいい話
734デフォルトの名無しさん (スフッ Sdbf-a5dV)
2020/11/29(日) 19:01:28.82ID:tRrXGfded メソッドの戻り値を一回判定するだけなら
一行で書かないほうが変じゃね?
それをわざわざ一旦保存とか逆になんの意図があるのかと
たまにはデバッグやらログで出したいからと言うのはあるがそれは2回利用に当たるから入れて当然やしな
一行で書かないほうが変じゃね?
それをわざわざ一旦保存とか逆になんの意図があるのかと
たまにはデバッグやらログで出したいからと言うのはあるがそれは2回利用に当たるから入れて当然やしな
735デフォルトの名無しさん (ワッチョイ 771a-nc77)
2020/11/29(日) 19:41:11.64ID:o/YPVzQP0736デフォルトの名無しさん (ワッチョイ ff63-ykbH)
2020/11/29(日) 20:16:26.39ID:EVjNfLc/0 判定と取得を行いたいんじゃなくて取得を行いたい
なのに判定しないとプログラム上まずいことになるので判定機能付きの取得メソッドを使う
読む上でわざわざ判定と取得を別に書いてるならそこにあえての理由があるんだろうな、と推測しないといけない
今回のケースならあえてのケースなど無いので可読性を下げる要因でしか無い
なのに判定しないとプログラム上まずいことになるので判定機能付きの取得メソッドを使う
読む上でわざわざ判定と取得を別に書いてるならそこにあえての理由があるんだろうな、と推測しないといけない
今回のケースならあえてのケースなど無いので可読性を下げる要因でしか無い
737デフォルトの名無しさん (ワッチョイ f77c-FP8+)
2020/11/29(日) 20:17:12.32ID:3Ka2HmX40738デフォルトの名無しさん (ワッチョイ b7da-ZcDd)
2020/11/29(日) 20:28:09.84ID:HJnVnweF0 >>735
それは廓然大悟かね?
それは廓然大悟かね?
739デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 20:31:48.44ID:yrxBBFH+0 >>736
これのどっちが可読性良いかなんて個人の感想レベルだろ
実際俺は100%下のほうで書いてるけど一度もコードレビューで指摘されたことないしな
そして>>733が言うように実行効率は下の方が2倍近く良いので下を選択すべき理由はある
一方で上を選択すべき理由は見当たらない
if(! ini.ContainsKey(section)) return null;
if(! ini[section].ContainsKey(key)) return null;
return ini[section][key];
if (!ini.TryGetValue(section, out var keys)) return null;
if (!keys.TryGetValue(key, out var value)) return null;
return value;
これのどっちが可読性良いかなんて個人の感想レベルだろ
実際俺は100%下のほうで書いてるけど一度もコードレビューで指摘されたことないしな
そして>>733が言うように実行効率は下の方が2倍近く良いので下を選択すべき理由はある
一方で上を選択すべき理由は見当たらない
if(! ini.ContainsKey(section)) return null;
if(! ini[section].ContainsKey(key)) return null;
return ini[section][key];
if (!ini.TryGetValue(section, out var keys)) return null;
if (!keys.TryGetValue(key, out var value)) return null;
return value;
740デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 20:43:57.67ID:yrxBBFH+0 一応言っておくけどここでは713や720に合わせて書いてるだけで実際には1行で書いたりこんなに複数retは使わない
returnは一つにしろというレビューは受けたことあるんでな
returnは一つにしろというレビューは受けたことあるんでな
741デフォルトの名無しさん (ワッチョイ f77c-FP8+)
2020/11/29(日) 20:51:31.28ID:3Ka2HmX40742デフォルトの名無しさん (ワッチョイ 9f01-hU1l)
2020/11/29(日) 20:54:18.24ID:YUoXGIHl0743デフォルトの名無しさん (ワッチョイ ff63-ykbH)
2020/11/29(日) 20:56:55.50ID:EVjNfLc/0 無理に一行にするな、が通るならreturnを1つにしなくていいのでは?
数十行あるメソッドのいろんな箇所でreturnしてると気持ち悪いと思うが、こういうタイプなら複数returnで良い
可読性が個人レベルなのはそのとおり
文字の並びが似通っている、ではなくどういう機能を呼んでいるか?という意味
判定付き取得メソッドが標準で用意され、しかもメジャーな内容でパフォーマンスも良い
それでもあえてそれを呼ばないのは特殊な事情があるのでは?と読み手の思考を止めることにつながるという意味
数十行あるメソッドのいろんな箇所でreturnしてると気持ち悪いと思うが、こういうタイプなら複数returnで良い
可読性が個人レベルなのはそのとおり
文字の並びが似通っている、ではなくどういう機能を呼んでいるか?という意味
判定付き取得メソッドが標準で用意され、しかもメジャーな内容でパフォーマンスも良い
それでもあえてそれを呼ばないのは特殊な事情があるのでは?と読み手の思考を止めることにつながるという意味
744デフォルトの名無しさん (ワッチョイ 771a-nc77)
2020/11/29(日) 21:06:40.39ID:o/YPVzQP0 >>739
上のコードを採用する理由は何の値を戻しているか即座に分かるところ、と俺は判断した
return ini[section][key];
この一文で読解に要する数秒を削る為だけに2倍程度のパフォーマンスを許容するのは普通にありだよ
上のコードを採用する理由は何の値を戻しているか即座に分かるところ、と俺は判断した
return ini[section][key];
この一文で読解に要する数秒を削る為だけに2倍程度のパフォーマンスを許容するのは普通にありだよ
745デフォルトの名無しさん (ワッチョイ ff63-ykbH)
2020/11/29(日) 21:23:27.82ID:EVjNfLc/0 メソッド名見りゃそれはわかんじゃん
return文にそういう責務を与える意味は?
どうしても必要というならコメントでも書いとけば良い
return文にそういう責務を与える意味は?
どうしても必要というならコメントでも書いとけば良い
746デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 21:36:16.22ID:yrxBBFH+0 >>743
returnについては可読性に関わる納得できた理由はちゃんとあるんだが自分やチームが使わないというだけで別にうちのコーディング規約を議題に上げるつもりはない(ツッコんでくる人いそうだったから一応書いただけ)
まぁもう好きにしたらええんやない
C#メインで使っていきたいなら言語として用意されてるものは出来る限り利用すべきと思うけど
そこまで学習コスト払いたくないってことなら一つの方法を出来る限り使いまわすというのも利に適ってるしな
returnについては可読性に関わる納得できた理由はちゃんとあるんだが自分やチームが使わないというだけで別にうちのコーディング規約を議題に上げるつもりはない(ツッコんでくる人いそうだったから一応書いただけ)
まぁもう好きにしたらええんやない
C#メインで使っていきたいなら言語として用意されてるものは出来る限り利用すべきと思うけど
そこまで学習コスト払いたくないってことなら一つの方法を出来る限り使いまわすというのも利に適ってるしな
747デフォルトの名無しさん (ワッチョイ ff63-ykbH)
2020/11/29(日) 21:49:34.68ID:EVjNfLc/0 チーム内でのローカルルールがどうなってるかはどうでも良いんですよ
そのチームで合意が取れてるならなんの問題もない
ローカルルールを隠した状態で突っ込まれてローカルルールなんです!って言われても知るかよ、という感想しか出ない
ローカルなものでないなら、基本的には標準に準拠すべきで標準がわざわざtryメソッドを回避している書き方をしていない限り公の場でもそれに準じたほうが良いのでは?というだけ
そのチームで合意が取れてるならなんの問題もない
ローカルルールを隠した状態で突っ込まれてローカルルールなんです!って言われても知るかよ、という感想しか出ない
ローカルなものでないなら、基本的には標準に準拠すべきで標準がわざわざtryメソッドを回避している書き方をしていない限り公の場でもそれに準じたほうが良いのでは?というだけ
748デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 21:53:07.17ID:yrxBBFH+0749デフォルトの名無しさん (ワッチョイ ff63-ykbH)
2020/11/29(日) 21:58:49.11ID:EVjNfLc/0 >>748
なんで突っかかってくるかわからんけど747の前半は複数retの話、後半はtryの話
わざわざローカルの話である複数retのことなんざ話題に上げんで良いよ、try使うのが標準なんだからそれに習ったほうがよくね、
後半は君と同意見なんだよ
なんで突っかかってくるかわからんけど747の前半は複数retの話、後半はtryの話
わざわざローカルの話である複数retのことなんざ話題に上げんで良いよ、try使うのが標準なんだからそれに習ったほうがよくね、
後半は君と同意見なんだよ
750デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 22:01:07.98ID:yrxBBFH+0751デフォルトの名無しさん (ワッチョイ ff63-ykbH)
2020/11/29(日) 22:11:12.12ID:EVjNfLc/0 >>750
前提として標準に準拠したほうが良いよね、という主張がある
標準では複数retなんて当たり前に使ってる
それをなぜか否定しているので突っ込んだらローカルルールだ!と言われる
そういうローカルルールがあるのは構わんが、それならそう明記しなきゃ標準に準拠しようという主張とズレてブレブレなだけでは?
まさかレビューを受けたことがある、がうちにはそういうコーディング規約があるんです、の意味だったの?
前提として標準に準拠したほうが良いよね、という主張がある
標準では複数retなんて当たり前に使ってる
それをなぜか否定しているので突っ込んだらローカルルールだ!と言われる
そういうローカルルールがあるのは構わんが、それならそう明記しなきゃ標準に準拠しようという主張とズレてブレブレなだけでは?
まさかレビューを受けたことがある、がうちにはそういうコーディング規約があるんです、の意味だったの?
752デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 22:16:38.50ID:yrxBBFH+0 >>751
だから本気で否定したいなら739でもそうやって書いてるって言ってるやん
740で書いたのは「沢山return書いてる時点で可読性低い」みたいなツッコミが入るかなーと予測して"一応"と前置きして書いたと言っただろ
そこを議論するつもりはないと書いたのに異様に拘るんだな
だから本気で否定したいなら739でもそうやって書いてるって言ってるやん
740で書いたのは「沢山return書いてる時点で可読性低い」みたいなツッコミが入るかなーと予測して"一応"と前置きして書いたと言っただろ
そこを議論するつもりはないと書いたのに異様に拘るんだな
753デフォルトの名無しさん (ワッチョイ 9fad-Hr3R)
2020/11/29(日) 22:22:25.03ID:kxXRvhGP0 複数リターン禁止www
754デフォルトの名無しさん (ワッチョイ 771a-nc77)
2020/11/29(日) 22:22:55.87ID:o/YPVzQP0755デフォルトの名無しさん (ワッチョイ ff63-ykbH)
2020/11/29(日) 22:26:49.20ID:EVjNfLc/0756デフォルトの名無しさん (ワッチョイ 1702-C0hB)
2020/11/29(日) 22:38:58.86ID:5TTB8+bC0 チャゲアスASUKAのギフハブに監視されてるネタに掛けてGitHubをギフハブと呼ぶのは5chの標準語だと俺も思ってたがそこまで浸透してないのか
757デフォルトの名無しさん (アウアウイー Sacb-VDAt)
2020/11/29(日) 22:42:09.42ID:T9vV3uABa なんとも不思議な世界があるんだなあ・・・・
TryGetValueを使うのが今どきの常識的なコーディングだと思ってた自分としては
老害(あるいは悪意があって不適切なコーディングを押し付けようとしてる人)が世迷言をほざいてるだけにしか見えないや
TryGetValueを使うのが今どきの常識的なコーディングだと思ってた自分としては
老害(あるいは悪意があって不適切なコーディングを押し付けようとしてる人)が世迷言をほざいてるだけにしか見えないや
758デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 22:53:33.81ID:yrxBBFH+0 >>754
その理屈で行くとコードレビューなんて出来なくなるな
(これ明らかに意味のない文だけど何かスピリチュアル的な深い意味があるのだろうか…?配慮して指摘すべきではないか…?)なんて一々考察しなきゃいけないのかよ
その理屈で行くとコードレビューなんて出来なくなるな
(これ明らかに意味のない文だけど何かスピリチュアル的な深い意味があるのだろうか…?配慮して指摘すべきではないか…?)なんて一々考察しなきゃいけないのかよ
759デフォルトの名無しさん (ワッチョイ 9f01-hU1l)
2020/11/29(日) 23:00:13.09ID:YUoXGIHl0 了解
760デフォルトの名無しさん (ワッチョイ 9f01-hU1l)
2020/11/29(日) 23:03:55.81ID:YUoXGIHl0 >>753
MISRAにもあるし高信頼性を要求される場面ではそれなりにありがちな話だよ
MISRAにもあるし高信頼性を要求される場面ではそれなりにありがちな話だよ
761デフォルトの名無しさん (ワッチョイ b7e4-nc77)
2020/11/29(日) 23:14:22.90ID:iy3zNsHi0 >>758
レビュー受けてるような新人はそんなこと考えなくていいと思うよ
多次元辞書でアクセスそのまま返す利点が分からないならまだお勉強段階なんだから、そういうやり方もあると素直に学んでおけば良い
とりあえずチューニングはベテランがもっと後でやる仕事だから、パフォーマンスがーとか言い出すのは十年早い
レビュー受けてるような新人はそんなこと考えなくていいと思うよ
多次元辞書でアクセスそのまま返す利点が分からないならまだお勉強段階なんだから、そういうやり方もあると素直に学んでおけば良い
とりあえずチューニングはベテランがもっと後でやる仕事だから、パフォーマンスがーとか言い出すのは十年早い
762デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/29(日) 23:30:20.42ID:yrxBBFH+0 そう主張するのであれば具体的な利点を述べろよ
TryGetValue派は俺以外にもメリット述べてる奴いるけどContainsKey派は「そのほうが見やすい」程度の個人の感想以上は出てきてない
勿論それもメリットではあるがTryGetValueの方が見やすいと言う人もいるのでそこでは差は付かない
TryGetValue派は俺以外にもメリット述べてる奴いるけどContainsKey派は「そのほうが見やすい」程度の個人の感想以上は出てきてない
勿論それもメリットではあるがTryGetValueの方が見やすいと言う人もいるのでそこでは差は付かない
763デフォルトの名無しさん (ワッチョイ 9fad-Hr3R)
2020/11/29(日) 23:51:14.64ID:kxXRvhGP0 >>760
ねーよ
ねーよ
764デフォルトの名無しさん (ワッチョイ d733-xdSs)
2020/11/29(日) 23:59:15.56ID:AAs5LLYH0 宗教論争オモロイなw
765デフォルトの名無しさん (ワッチョイ b7e4-nc77)
2020/11/30(月) 00:00:33.52ID:n5NKB6GR0 >>762
しょうがないな
こういうケースは極端化すれば明確になる
dic.TryGetValue(a, out var dic2)
dic2.TryGetValue(b, out var dic3)
dic3.TryGetValue(c, out var dic4)
dic4.TryGetValue(d, out var dic5)
dic5.TryGetValue(e, out var value)
vs
var value = dic[a][b][c][d][e]
とりあえず値の取得を比較した場合こうなる
非常に馬鹿げたコードだが後者の方が察しやすくバグりにくいのは分かるはず
これは分岐を差し込んでも同じこと
こんなコードは現実にあり得ないから無効と言い張るなら、所詮はその程度のレベルなんだから黙るべき
しょうがないな
こういうケースは極端化すれば明確になる
dic.TryGetValue(a, out var dic2)
dic2.TryGetValue(b, out var dic3)
dic3.TryGetValue(c, out var dic4)
dic4.TryGetValue(d, out var dic5)
dic5.TryGetValue(e, out var value)
vs
var value = dic[a][b][c][d][e]
とりあえず値の取得を比較した場合こうなる
非常に馬鹿げたコードだが後者の方が察しやすくバグりにくいのは分かるはず
これは分岐を差し込んでも同じこと
こんなコードは現実にあり得ないから無効と言い張るなら、所詮はその程度のレベルなんだから黙るべき
766デフォルトの名無しさん (ワッチョイ d742-P4WK)
2020/11/30(月) 00:20:59.97ID:9x2/PpIx0 TryGetValue vs ContainsKey+[]の争いでしょ?
なら下はちゃんと一つ一つにContainsKey挟むべき
そして後者の方がバグりにくい理由が全く分からない。まず何のバグを対象としているのか明確に
なら下はちゃんと一つ一つにContainsKey挟むべき
そして後者の方がバグりにくい理由が全く分からない。まず何のバグを対象としているのか明確に
767デフォルトの名無しさん (ワッチョイ ff63-ykbH)
2020/11/30(月) 00:25:39.57ID:G1P0/YpK0 レビューを受けるのが新人とか言ってる時点でまともじゃないでしょ
いつの時代のエンジニア思想よw
いつの時代のエンジニア思想よw
768デフォルトの名無しさん (アウアウイー Sacb-VDAt)
2020/11/30(月) 00:26:29.87ID:E5czHbG2a なんというかb7e4-nc77みたいなのがレビュアーやったら地獄だな
自分が新人だったらたまったもんじゃない
自分が新人だったらたまったもんじゃない
769デフォルトの名無しさん (ワッチョイ b7e4-nc77)
2020/11/30(月) 00:36:41.15ID:EEdVS6ls0770デフォルトの名無しさん (アウアウエー Sadf-WCF9)
2020/11/30(月) 00:39:46.85ID:qXuQLmTVa どうせ過疎スレだからスレ消費するのは問題ないと思うけど
あまりに下らな過ぎる論争で萎えるねw
よく読んでないので素っ頓狂なこと言ってるかもしれないけど、
iniファイルぐらいなら馬鹿正直にDictionaryをネストなんかしなくても
section+keyをキーにして平坦化しても良いような気もする
あまりに下らな過ぎる論争で萎えるねw
よく読んでないので素っ頓狂なこと言ってるかもしれないけど、
iniファイルぐらいなら馬鹿正直にDictionaryをネストなんかしなくても
section+keyをキーにして平坦化しても良いような気もする
771デフォルトの名無しさん (ワッチョイ d742-P4WK)
2020/11/30(月) 00:45:42.05ID:9x2/PpIx0 >>769
答えられないんだね
答えられないんだね
772デフォルトの名無しさん (ワッチョイ 9f01-1+jW)
2020/11/30(月) 01:29:55.64ID:a85534SW0 ini parserの中身を見たらContainsKey + インデクサだった
https://github.com/rickyah/ini-parser/blob/development/src/IniParser/Model/SectionCollection.cs#L62-L77
自分なら使う側のコードがシンプルになるようにini[section][key]かini[section]?[key]の形で
sectionかkeyがnullならnullを返すようにDictionaryを少し拡張するかな
https://github.com/rickyah/ini-parser/blob/development/src/IniParser/Model/SectionCollection.cs#L62-L77
自分なら使う側のコードがシンプルになるようにini[section][key]かini[section]?[key]の形で
sectionかkeyがnullならnullを返すようにDictionaryを少し拡張するかな
773デフォルトの名無しさん (ワッチョイ 9f01-hU1l)
2020/11/30(月) 05:30:56.15ID:lgcZd+iw0 >>763
お前がそういう世界を知らんだけ
お前がそういう世界を知らんだけ
774デフォルトの名無しさん (ワッチョイ 7778-P4WK)
2020/11/30(月) 08:23:44.56ID:gN60+pZv0 相変わらず質問者無視で議論してるのウケる
テンプレ読めない人多すぎでしょw
テンプレ読めない人多すぎでしょw
775デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/30(月) 08:57:23.41ID:8S8hZPx60776デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/30(月) 09:04:32.51ID:8S8hZPx60 >>772
そのプロジェクト見た感じTryGetValueを一度も使ってないから恐らくJavaか何か出身で存在知らないんだろうな
ContainsKeyは割と色んな言語にあるからこっちの方が認知度高いのは間違いない
なので昨日も言ったが一々C#に学習コスト払いたくないって人もいるだろうからそういう場合は好きにしたらいい
そのプロジェクト見た感じTryGetValueを一度も使ってないから恐らくJavaか何か出身で存在知らないんだろうな
ContainsKeyは割と色んな言語にあるからこっちの方が認知度高いのは間違いない
なので昨日も言ったが一々C#に学習コスト払いたくないって人もいるだろうからそういう場合は好きにしたらいい
777デフォルトの名無しさん (ワッチョイ d78c-P4WK)
2020/11/30(月) 10:07:26.68ID:3MSQwEh40778デフォルトの名無しさん (ワッチョイ 977c-zmjO)
2020/11/30(月) 10:12:11.16ID:I8/NWgIp0 テンプレ読めないって事はレスも読めないんだから言っても無駄
粛々とNG
粛々とNG
779デフォルトの名無しさん (ワッチョイ 9f01-hU1l)
2020/11/30(月) 10:29:32.82ID:lgcZd+iw0780デフォルトの名無しさん (ワッチョイ 771a-nc77)
2020/11/30(月) 10:45:42.20ID:0LXXOsdO0 >>776
お、ようやく自分の間違いを認めたか
まあContainsKeyの方が可読性高いのは当たり前なんだが
762 名前:デフォルトの名無しさん (ワッチョイ 9f24-GtYN) [sage] :2020/11/29(日) 23:30:20.42 ID:yrxBBFH+0
そう主張するのであれば具体的な利点を述べろよ
TryGetValue派は俺以外にもメリット述べてる奴いるけどContainsKey派は「そのほうが見やすい」程度の個人の感想以上は出てきてない
勿論それもメリットではあるがTryGetValueの方が見やすいと言う人もいるのでそこでは差は付かない
お、ようやく自分の間違いを認めたか
まあContainsKeyの方が可読性高いのは当たり前なんだが
762 名前:デフォルトの名無しさん (ワッチョイ 9f24-GtYN) [sage] :2020/11/29(日) 23:30:20.42 ID:yrxBBFH+0
そう主張するのであれば具体的な利点を述べろよ
TryGetValue派は俺以外にもメリット述べてる奴いるけどContainsKey派は「そのほうが見やすい」程度の個人の感想以上は出てきてない
勿論それもメリットではあるがTryGetValueの方が見やすいと言う人もいるのでそこでは差は付かない
781デフォルトの名無しさん (ワッチョイ 9749-R9ZN)
2020/11/30(月) 11:16:43.36ID:o8riI3080782デフォルトの名無しさん (ワッチョイ 9fad-Hr3R)
2020/11/30(月) 11:55:30.78ID:tpJ2df0N0 >>773
ちょっとはググれよ
ちょっとはググれよ
783デフォルトの名無しさん (アウアウカー Sa2b-u/yY)
2020/11/30(月) 11:58:06.51ID:UK/ABAdxa 認知度と可読性が別物か
職場で宇宙人って呼ばれてそう
職場で宇宙人って呼ばれてそう
784デフォルトの名無しさん (スフッ Sdbf-a5dV)
2020/11/30(月) 12:11:19.73ID:zbjAWIZjd785デフォルトの名無しさん (ワッチョイ 9f01-hU1l)
2020/11/30(月) 12:13:44.19ID:lgcZd+iw0786デフォルトの名無しさん (ワッチョイ 771a-nc77)
2020/11/30(月) 12:15:09.00ID:0LXXOsdO0 TryGetValueを使うことに拘りすぎててアスペ臭しか感じない
好きにしろと言いながら必死で反論してんのが特にな
多様性を許容するっていうのは>>754みたいなスタンスなんだよ
ここまで言われて「何言ってんのか分かんない」と騒ぎ続けるのは感情で理解を拒んでるだけの地雷君
「そういうの嫌われるからやめよ?」って指摘されてるのに「なんで? 俺が正しいじゃん?」って返すのは馬鹿を通り越した何かだわ
好きにしろと言いながら必死で反論してんのが特にな
多様性を許容するっていうのは>>754みたいなスタンスなんだよ
ここまで言われて「何言ってんのか分かんない」と騒ぎ続けるのは感情で理解を拒んでるだけの地雷君
「そういうの嫌われるからやめよ?」って指摘されてるのに「なんで? 俺が正しいじゃん?」って返すのは馬鹿を通り越した何かだわ
787デフォルトの名無しさん (ワッチョイ ffa7-kyUo)
2020/11/30(月) 12:26:00.27ID:tnWbc17e0 こういうレスちんぽバトルやめねぇ?
788デフォルトの名無しさん (ワッチョイ 9fad-Hr3R)
2020/11/30(月) 12:51:21.50ID:tpJ2df0N0 >>785
MISRAって名前まで分かってるのに?
MISRAって名前まで分かってるのに?
789デフォルトの名無しさん (スッップ Sdbf-Hr3R)
2020/11/30(月) 12:52:22.17ID:PPubPKASd いまだに複数リターン禁止なんて言ってる時代錯誤なやつがいるのかよ…
790デフォルトの名無しさん (ワッチョイ 9f01-hU1l)
2020/11/30(月) 14:08:46.39ID:lgcZd+iw0791デフォルトの名無しさん (ワッチョイ 9f01-hU1l)
2020/11/30(月) 14:09:59.63ID:lgcZd+iw0792デフォルトの名無しさん (ワッチョイ 9fad-Hr3R)
2020/11/30(月) 14:11:44.42ID:tpJ2df0N0 >>790
まずはあることを示してから
まずはあることを示してから
793デフォルトの名無しさん (スフッ Sdbf-a5dV)
2020/11/30(月) 14:31:16.69ID:zbjAWIZjd794デフォルトの名無しさん (ワッチョイ 9f01-hU1l)
2020/11/30(月) 15:11:50.10ID:lgcZd+iw0 >>792
それこそ misra multiple return とかでググればいくらでも出てくるだろw
https://www.viva64.com/en/w/v2506/
>>793
だからそう言うのが非推奨な現場があるというだけの事
個人的には関数の頭でのエラーチェックでエラーだったら即リターンとかよくやってる
それこそ misra multiple return とかでググればいくらでも出てくるだろw
https://www.viva64.com/en/w/v2506/
>>793
だからそう言うのが非推奨な現場があるというだけの事
個人的には関数の頭でのエラーチェックでエラーだったら即リターンとかよくやってる
795デフォルトの名無しさん (ワッチョイ 9fad-Hr3R)
2020/11/30(月) 15:27:06.61ID:tpJ2df0N0 >>794
それのどこがC#なんだ?
それのどこがC#なんだ?
796デフォルトの名無しさん (ワッチョイ b72c-OOND)
2020/11/30(月) 16:36:59.20ID:r8rQ87Qr0 関数の出口が、複数ある奴か。
危険だから、MISRA-C の禁止事項
一方、Linux では関数の冒頭で、処理しない場合は、即リターンするとかやってる。
関数の出口に、goto で例外処理をまとめたりとか
MISRA-Cを守らない場合は、逸脱手続きが必要。
トヨタなどは、MISRA-Cで、4/100 しか点数を取れなかったとか聞いたw
MISRA-C研究会にも、トヨタのベテランが加入してるのに
危険だから、MISRA-C の禁止事項
一方、Linux では関数の冒頭で、処理しない場合は、即リターンするとかやってる。
関数の出口に、goto で例外処理をまとめたりとか
MISRA-Cを守らない場合は、逸脱手続きが必要。
トヨタなどは、MISRA-Cで、4/100 しか点数を取れなかったとか聞いたw
MISRA-C研究会にも、トヨタのベテランが加入してるのに
797デフォルトの名無しさん (ワッチョイ ffe3-P4WK)
2020/11/30(月) 16:46:43.31ID:dO4rlTbV0 俺社環だけど、これ指摘したらそれは例外処理や自動メモリ管理がないCであって、C#ではそこまで気にする必要ないんじゃね?で終わったな
798デフォルトの名無しさん (ワッチョイ b72c-OOND)
2020/11/30(月) 16:53:06.40ID:r8rQ87Qr0 辞書のキーが存在しないのは、例外じゃない。
最初から想定内の事で、予想がつくから
例外はファイルが存在しないとか
Go では例外を嫌って、複数の戻り値で、エラー値を返す
最初から想定内の事で、予想がつくから
例外はファイルが存在しないとか
Go では例外を嫌って、複数の戻り値で、エラー値を返す
799796 (ワッチョイ b72c-OOND)
2020/11/30(月) 16:56:08.66ID:r8rQ87Qr0 漏れは、戻り値を変数に入れておいて、return は1つだけにしてる
if 条件
result = 1
else
result = 2
end
return result
if 条件
result = 1
else
result = 2
end
return result
800デフォルトの名無しさん (ワッチョイ ff33-gEm4)
2020/11/30(月) 17:07:26.72ID:pPofn0IB0 うっかりミスってreturnし忘れてもIDEが警告してくれるから、分岐それぞれでreturnするほうが好き
801デフォルトの名無しさん (ワッチョイ 9f24-GtYN)
2020/11/30(月) 17:08:29.73ID:8S8hZPx60 複数returnとかワンライナーとかはそれこそ正解の無い事だから各々好きにしてくれよ
TryGetValueとContainskey+インデクサは正解があると思ってるからこっちはつい反論し続けてしまったが
TryGetValueとContainskey+インデクサは正解があると思ってるからこっちはつい反論し続けてしまったが
802デフォルトの名無しさん (スップ Sd3f-ykbH)
2020/11/30(月) 17:11:06.92ID:DAJE5R+zd なぜこのスレはテンプレを見る限り質問スレなのにスレタイにそれを示唆する文言が入っていないのですか?
803デフォルトの名無しさん (ワッチョイ d75f-OOND)
2020/11/30(月) 17:15:26.09ID:3PLmCTmV0 ヌルチェックやりはじめてから一刻も早くreturnすることを考えて書くようになった
階層が深くならないので見やすいし、上の部分だけである条件にあてはまった処理が完結してるので読みやすい
階層が深くならないので見やすいし、上の部分だけである条件にあてはまった処理が完結してるので読みやすい
804デフォルトの名無しさん (ワッチョイ 9fad-Hr3R)
2020/11/30(月) 17:24:24.88ID:tpJ2df0N0 >>797
ね、Cですら"推奨"なのに
ね、Cですら"推奨"なのに
805デフォルトの名無しさん (ワッチョイ 9f01-1+jW)
2020/11/30(月) 18:17:44.47ID:a85534SW0806デフォルトの名無しさん (ドコグロ MMdf-hU1l)
2020/11/30(月) 18:30:53.38ID:n+7nNLssM >>800
さすがにMISRAとかが言ってるのはそう言う低レベルな話じゃなくて途中脱出でのリソース開放漏れとかを心配してる
なのでC#なら例外とかusingとかを適切に使えばそれほど問題にならない
クラス継承させた時のIDisposeのコーディングが面倒なのがたまにキズだけど
さすがにMISRAとかが言ってるのはそう言う低レベルな話じゃなくて途中脱出でのリソース開放漏れとかを心配してる
なのでC#なら例外とかusingとかを適切に使えばそれほど問題にならない
クラス継承させた時のIDisposeのコーディングが面倒なのがたまにキズだけど
807デフォルトの名無しさん (エアペラ SDfb-zmjO)
2020/11/30(月) 18:52:25.38ID:+JMSCADPD 議論は然るべきスレでどうぞ
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
808デフォルトの名無しさん (ワッチョイ 9f52-Gtmg)
2020/11/30(月) 19:48:14.13ID:xZxi3SwM0 >>805
またRuby君がいい加減な知識で嘘を垂れ流そうとしてたわけか
またRuby君がいい加減な知識で嘘を垂れ流そうとしてたわけか
809デフォルトの名無しさん (ラクッペペ MM8f-uGi3)
2020/11/30(月) 21:11:19.50ID:X4ikUZ5gM いい加減なのは知識じゃなくて遺伝子じゃねえのか
欠陥品なんだから
欠陥品なんだから
810デフォルトの名無しさん (ワッチョイ 9f01-1+jW)
2020/11/30(月) 21:11:29.21ID:a85534SW0 少し調べてみたけどMISRAがsingle returnを推奨する根拠に上げてるIEC 61508には
”subprograms should have a single entry and a single exit only;”と書かれているだけ
そこに参考文献としてヨードン/コンスタンティンの「ソフトウェアの構造化設計法」を上げてるが
ヨードンやダイクストラが提唱したsingle exitは時代的にも意味が違うのでルール自体の根拠が薄い
https://softwareengineering.stackexchange.com/questions/118703/
1993年出版のCode Completeでも今回のようなケースはmultiple returnが推奨されてるくらいなので
single returnはリソースクリーンアップが必要だけど
他の方法がどうしても取れないような特殊なケースでしか意味がないと思って良さそう
”subprograms should have a single entry and a single exit only;”と書かれているだけ
そこに参考文献としてヨードン/コンスタンティンの「ソフトウェアの構造化設計法」を上げてるが
ヨードンやダイクストラが提唱したsingle exitは時代的にも意味が違うのでルール自体の根拠が薄い
https://softwareengineering.stackexchange.com/questions/118703/
1993年出版のCode Completeでも今回のようなケースはmultiple returnが推奨されてるくらいなので
single returnはリソースクリーンアップが必要だけど
他の方法がどうしても取れないような特殊なケースでしか意味がないと思って良さそう
811デフォルトの名無しさん (ワッチョイ ffa7-kyUo)
2020/11/30(月) 21:15:38.40ID:tnWbc17e0 どうでもよくねw
812796 (ワッチョイ b72c-OOND)
2020/11/30(月) 21:56:17.24ID:r8rQ87Qr0 Cプログラミングの落とし穴
C Traps and Pitfalls, Andrew Koenig, 1989
ここから、Lint, MISRA-C などが出来た
C Traps and Pitfalls, Andrew Koenig, 1989
ここから、Lint, MISRA-C などが出来た
813デフォルトの名無しさん (ワッチョイ 9f6a-m/w5)
2020/11/30(月) 22:27:10.33ID:n5+DCEBK0 c#スレなんですがそれは
814デフォルトの名無しさん (ワッチョイ 97da-P4WK)
2020/12/01(火) 11:25:23.55ID:ZwYRJuoF0 C#とはC++++、つまりCとC++を継承した言語である
よってC#スレにおいてCとC++は範囲内
悔しかったら言語名を変えることだな
よってC#スレにおいてCとC++は範囲内
悔しかったら言語名を変えることだな
815デフォルトの名無しさん (スッップ Sdbf-Hr3R)
2020/12/01(火) 11:27:04.96ID:vLuBExG+d キチガイ
816デフォルトの名無しさん (テテンテンテン MM8f-JW44)
2020/12/01(火) 11:45:19.44ID:K5BMxGNOM 似た話でelseを省略するな派もたまにいるけど、元はCOBOLの文法ではelse書かないとブロックの区切りが分かりにくいかららしいね
817デフォルトの名無しさん (アウアウエー Sadf-WCF9)
2020/12/01(火) 12:14:20.95ID:k3h/30i7a そんな流派の人に会ったことないけど、意図はたぶん古典的なぶら下がり問題対策だろうね
俺はこんなミスしたことないしIDEの時代には杞憂だと思うけど
if (true)
if (false) {}
else Console.WriteLine("来ないはず");
俺はこんなミスしたことないしIDEの時代には杞憂だと思うけど
if (true)
if (false) {}
else Console.WriteLine("来ないはず");
818デフォルトの名無しさん (ドコグロ MMdf-hU1l)
2020/12/01(火) 14:56:29.62ID:6hEFZljjM elseを省略しちゃダメって言うのは俺も見たことないな
>>817みたいなのを避けるために { } を省略しちゃダメって言うのは見かけるけど
>>817みたいなのを避けるために { } を省略しちゃダメって言うのは見かけるけど
819デフォルトの名無しさん (ワッチョイ d9f8-CJli)
2020/12/02(水) 00:57:12.14ID:+AssLSaA0 最近久しぶりに起動したらVSのテキストエディタの「自動メンバー表示」の項目ををカーソルキーで動かすのがとんでもなく重いんだけど俺環?
820デフォルトの名無しさん (ワッチョイ fb54-9rBX)
2020/12/02(水) 01:47:00.65ID:HjUyDubp0 Dispose()しないといけない条件がいまいち分からないんですが、
コンポジションとして参照を保持しているメンバーがDispose()メソッドを持ってたら、Dispose()を実装しないといけない、ていう理解でいいんでしょうか?
コンポジションとして参照を保持しているメンバーがDispose()メソッドを持ってたら、Dispose()を実装しないといけない、ていう理解でいいんでしょうか?
821デフォルトの名無しさん (JP 0H70-rBWM)
2020/12/02(水) 10:14:54.41ID:ebqkblVHH >>820
たとえばファイルを開いて中身を書き換える処理をFileStreamでするじゃん
開いてる間は他の人やプログラムがそのファイルを使えない状況になるから
使い終わったらちゃんとDisposeで閉じましょうねって事
たとえばファイルを開いて中身を書き換える処理をFileStreamでするじゃん
開いてる間は他の人やプログラムがそのファイルを使えない状況になるから
使い終わったらちゃんとDisposeで閉じましょうねって事
822デフォルトの名無しさん (ワッチョイ 9733-ssng)
2020/12/02(水) 12:15:24.35ID:q6qthHEM0 画像とかメモリ消費量が多いオブジェクトに対して、使い終わったらちゃんとDisposeで破棄しましょうねって事
823デフォルトの名無しさん (ワッチョイ 4624-onDa)
2020/12/02(水) 12:32:26.40ID:/5AdVnEZ0 >>820
基本はYes
内部でそのメンバをDisposeする仕組みが他にあるなら別に実装しなくても良いが、とは言えIDisposableを実装しておけばそのラップクラスでもusingステートメント使えるから分かりやすいしね
IDisposableはコードでDisposeせずともGCによる破棄タイミングでDisposeしてくれるから最悪し忘れても大丈夫だが(GCによるオートDisposeはパフォーマンスが悪いので出来れば避けるべきだが)
基本はYes
内部でそのメンバをDisposeする仕組みが他にあるなら別に実装しなくても良いが、とは言えIDisposableを実装しておけばそのラップクラスでもusingステートメント使えるから分かりやすいしね
IDisposableはコードでDisposeせずともGCによる破棄タイミングでDisposeしてくれるから最悪し忘れても大丈夫だが(GCによるオートDisposeはパフォーマンスが悪いので出来れば避けるべきだが)
824デフォルトの名無しさん (ワントンキン MM3b-fAcm)
2020/12/02(水) 12:51:23.41ID:VuN4nxV5M >>820
そうとは限らない
たとえば外部のAPIを使っていて、使い終わったら必ずある処理を最後に呼ばなければならないという決まりがある場合
たとえばある一連の処理の間は一時ファイルを作り、最後に消す必要がある場合
そういったユースケースをクラスにするならDisposeを実装することになるだろうな
Disposeってのはつまり、最後に特定の処理を必ず呼ばなければならないという規約に他ならない
そうとは限らない
たとえば外部のAPIを使っていて、使い終わったら必ずある処理を最後に呼ばなければならないという決まりがある場合
たとえばある一連の処理の間は一時ファイルを作り、最後に消す必要がある場合
そういったユースケースをクラスにするならDisposeを実装することになるだろうな
Disposeってのはつまり、最後に特定の処理を必ず呼ばなければならないという規約に他ならない
825デフォルトの名無しさん (アウアウエー Sa6a-JhWO)
2020/12/02(水) 18:14:26.77ID:w77bbFvMa >>820
エンジニアは教条主義的に考えてはいけない。
何も難しくない。
オブジェクトが自分のメンバー(フィールドかプロパティ)のDisposeを呼ぶべきタイミングを
自分で判断できるならわざわざDisposeを実装して他人にそれを任せる必要はない。
できないならDisposeを晒して他人にお願いする。
それだけでしょ。
でも「Disposeを呼ぶべきタイミングを自分で判断できる」のはメソッド呼び出しが
完了した後も別のスレッドで動作を続けるタイプのオブジェクトだけなので
そうは多くないはずだよね。
エンジニアは教条主義的に考えてはいけない。
何も難しくない。
オブジェクトが自分のメンバー(フィールドかプロパティ)のDisposeを呼ぶべきタイミングを
自分で判断できるならわざわざDisposeを実装して他人にそれを任せる必要はない。
できないならDisposeを晒して他人にお願いする。
それだけでしょ。
でも「Disposeを呼ぶべきタイミングを自分で判断できる」のはメソッド呼び出しが
完了した後も別のスレッドで動作を続けるタイプのオブジェクトだけなので
そうは多くないはずだよね。
826デフォルトの名無しさん (エアペラ SD03-uu7w)
2020/12/02(水) 19:47:17.83ID:o81q9kO+D >>1
> なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#, C♯, C#相談室 Part94
http://mevius.5ch.net/test/read.cgi/tech/1553075856/
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
テンプレも読めない奴らがする議論は、
もはや議論ではなくマウンティング合戦
> なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#, C♯, C#相談室 Part94
http://mevius.5ch.net/test/read.cgi/tech/1553075856/
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
テンプレも読めない奴らがする議論は、
もはや議論ではなくマウンティング合戦
827デフォルトの名無しさん (アウアウエー Sa6a-JhWO)
2020/12/02(水) 20:41:49.29ID:w77bbFvMa >>826
君がやってるのもそのマウンティング合戦のうちなのは自覚して欲しいよねw
もはや5ch全体がそうだけど特にここは過疎スレなわけで、そんな目くじら立てることないと思うよ
誰か困る奴いるの?w
誰もいないって。
君がやってるのもそのマウンティング合戦のうちなのは自覚して欲しいよねw
もはや5ch全体がそうだけど特にここは過疎スレなわけで、そんな目くじら立てることないと思うよ
誰か困る奴いるの?w
誰もいないって。
828デフォルトの名無しさん (ワッチョイ 9378-jrSk)
2020/12/02(水) 21:21:31.32ID:hwkqsjy70 過疎スレでもルールは守れよ
829デフォルトの名無しさん (ワッチョイ 9663-nmLp)
2020/12/02(水) 21:58:13.02ID:4huF2MSH0 マウンティング合戦なんか起こってたら
初心者が尻込みして書き込むのをやめてしまったりするわな
初心者が尻込みして書き込むのをやめてしまったりするわな
830デフォルトの名無しさん (ワッチョイ e43e-CQ6W)
2020/12/03(木) 00:08:24.38ID:AfLSjnCy0 winformでwebview2を使ってるんですけどcookieをセットする方法がわからなくて困ってます
どなたかわかる方教えて下さい
どなたかわかる方教えて下さい
831820 (ワッチョイ fb54-9rBX)
2020/12/03(木) 02:05:41.69ID:plL1xX/c0 みなさんありがとうございます。
そして何かすみませんでした。
そして何かすみませんでした。
832デフォルトの名無しさん (ワッチョイ 5c01-jrSk)
2020/12/03(木) 06:58:36.35ID:HwhU8QlY0833デフォルトの名無しさん (ワッチョイ 4601-XXx1)
2020/12/03(木) 07:07:12.64ID:UmUyqAch0 今更訊きづらいけどgoto文のラベルの命名ルールって
goto maki;
hirohisa:
System.Console.WriteLine("誰だよ");
goto hell;
maki:
System.Console.WriteLine("知ってる");
goto hirohisa;
hell:
System.Console.WriteLine("そうだな");
こんなんでいいの?
goto maki;
hirohisa:
System.Console.WriteLine("誰だよ");
goto hell;
maki:
System.Console.WriteLine("知ってる");
goto hirohisa;
hell:
System.Console.WriteLine("そうだな");
こんなんでいいの?
834デフォルトの名無しさん (ワッチョイ ca7c-64Es)
2020/12/03(木) 09:22:44.20ID:Mqqeu2dm0 >>830
webView2.CoreWebView2.CookieManagerはどう?
webView2.CoreWebView2.CookieManagerはどう?
835デフォルトの名無しさん (ワッチョイ 4601-XXx1)
2020/12/03(木) 16:26:09.15ID:UmUyqAch0 webview2とCEFSharpのどっちがいいのか
836デフォルトの名無しさん (ワッチョイ 9733-ssng)
2020/12/04(金) 01:59:10.27ID:/XRPGQMq0 IDisposable obj = otherObj;
using(obj){
obj = anotherObj;
}
using(obj){
obj = anotherObj;
}
837デフォルトの名無しさん (ワッチョイ 1ae3-jrSk)
2020/12/04(金) 03:16:37.86ID:yDsXPkFS0838デフォルトの名無しさん (ワッチョイ c09b-jrSk)
2020/12/04(金) 16:12:00.25ID:ZsgfFad40 nugetからインストールしたライブラリですが
別のパソコンから同じプロジェクトを開けるとusing句がエラーになってしまい
ライブラリを一度アンインストール→インストールし直さなくてはなりません
複数のパソコンで同一プロジェクトを編集するときnugetは使えないのでしょうか
別のパソコンから同じプロジェクトを開けるとusing句がエラーになってしまい
ライブラリを一度アンインストール→インストールし直さなくてはなりません
複数のパソコンで同一プロジェクトを編集するときnugetは使えないのでしょうか
839デフォルトの名無しさん (スップ Sd02-dwcT)
2020/12/04(金) 16:16:23.76ID:0hbyHhKrd nugetの修復みたいなことすれば足りないもの探して再DLしてくれるよ
840デフォルトの名無しさん (ワッチョイ 8a33-Pg90)
2020/12/04(金) 16:31:08.42ID:e5C89TYX0 ”別のパソコンから”ってもしかしてネットワーク共有して直接開いてるの?
841デフォルトの名無しさん (アウアウエー Sa6a-JhWO)
2020/12/04(金) 16:55:03.48ID:ot5BaqCCa842デフォルトの名無しさん (ワッチョイ f084-jrSk)
2020/12/04(金) 16:55:13.19ID:edWfS5jb0843デフォルトの名無しさん (ワッチョイ b0f1-xTiW)
2020/12/04(金) 17:04:36.37ID:ZLeuk8KN0844デフォルトの名無しさん (ワッチョイ b0f1-xTiW)
2020/12/04(金) 17:05:31.23ID:ZLeuk8KN0 ソースは必ずバーベキューを。
バーベキュー以外は糞まずくハズレ。
バーベキュー以外は糞まずくハズレ。
845デフォルトの名無しさん (スップ Sd02-dwcT)
2020/12/04(金) 17:25:30.91ID:0hbyHhKrd CIでビルドするとき、確実にnugetの修復が必要になるから構築したことあるならわかるはず
コマンドラインからnugetにsln渡してやればDLしてくれる
つうかオンラインからいつでも好きなversionを落としてこれるのがnuget等ライブラリ管理ソフトの強みなんだからプロジェクト内にファイルなんて置いたらメリットが減る
外部ライブラリを編集しないのにバージョン管理下においてプロジェクトを肥大化させる意味がない
コマンドラインからnugetにsln渡してやればDLしてくれる
つうかオンラインからいつでも好きなversionを落としてこれるのがnuget等ライブラリ管理ソフトの強みなんだからプロジェクト内にファイルなんて置いたらメリットが減る
外部ライブラリを編集しないのにバージョン管理下においてプロジェクトを肥大化させる意味がない
846デフォルトの名無しさん (ワッチョイ 2901-2/bE)
2020/12/04(金) 17:50:19.19ID:EWRKs4L00 Nugetってmpnと比べて
なんでなんなにトラブルの?
なんでなんなにトラブルの?
847デフォルトの名無しさん (ワッチョイ 66ad-SNNj)
2020/12/04(金) 17:56:44.09ID:vwTMj3ZS0 mpn…なんな…?
848デフォルトの名無しさん (オッペケ Sr10-2/bE)
2020/12/04(金) 18:37:31.14ID:4RJVpdFOr わりっ!
849デフォルトの名無しさん (ワッチョイ 0c01-zWK8)
2020/12/04(金) 18:50:13.35ID:V5csDP6P0 dotnet restoreすればいいけどdotnet buildとかやれば勝手にやってくれる
850デフォルトの名無しさん (ワッチョイ b701-ssng)
2020/12/04(金) 18:57:48.00ID:L60rBM570 >>837
適当なクラスに置き換えたらビルドできますよ。
適当なクラスに置き換えたらビルドできますよ。
851デフォルトの名無しさん (ワッチョイ 6e01-zLCK)
2020/12/04(金) 22:05:08.94ID:9AUT9QCq0 新潟から週2回東京に出勤、サイボウズの複業採用社員に聞く複業ライフのリアル。
https://www.businessinsider.jp/post-166126
兼業でフリーライター、サイボウズ社員・明石悠佳に学ぶパラレルワーク術
https://www.wwdjapan.com/articles/752575
「複業を解禁しなければ人も企業も成長しない」複業全面OKのサイボウズ社長と実践社員の本音対談
https://www.businessinsider.jp/post-33893
育休は最長6年、副業もOK! サイボウズはなぜ「100人100通りの人事制度」を作ったのか
https://logmi.jp/business/articles/50252
超異例「週休4日制」の導入をSMBC日興証券社長が決めた理由
https://diamond.jp/articles/-/223832
週休3日制をさらに進めた週休4日制
https://www.k-society.com/recruit/why-four-days-off-a-week/
採用情報(週休3日制を超えた週休4日制の正社員求人 | 副業OK
https://www.k-society.com/recruit/
2020年4月より「週休3日制」を導入。テックカンパニー化に向け、好循環を生み出すエンジニアリング組織へ
https://prtimes.jp/main/html/rd/p/000000096.000016431.html
https://www.businessinsider.jp/post-166126
兼業でフリーライター、サイボウズ社員・明石悠佳に学ぶパラレルワーク術
https://www.wwdjapan.com/articles/752575
「複業を解禁しなければ人も企業も成長しない」複業全面OKのサイボウズ社長と実践社員の本音対談
https://www.businessinsider.jp/post-33893
育休は最長6年、副業もOK! サイボウズはなぜ「100人100通りの人事制度」を作ったのか
https://logmi.jp/business/articles/50252
超異例「週休4日制」の導入をSMBC日興証券社長が決めた理由
https://diamond.jp/articles/-/223832
週休3日制をさらに進めた週休4日制
https://www.k-society.com/recruit/why-four-days-off-a-week/
採用情報(週休3日制を超えた週休4日制の正社員求人 | 副業OK
https://www.k-society.com/recruit/
2020年4月より「週休3日制」を導入。テックカンパニー化に向け、好循環を生み出すエンジニアリング組織へ
https://prtimes.jp/main/html/rd/p/000000096.000016431.html
852デフォルトの名無しさん (ワッチョイ aee9-+Jo+)
2020/12/05(土) 09:07:58.88ID:7mh3qGhb0 ライブラリの話ですみません
SevenZipSharpにてSolid圧縮ファイルを[STAThread](FormやWPFのメインスレッド)にてExtractArchiveするとフリーズしてしまうのは私だけでしょうか?
別スレッドやTask化したり、そもそもSTAThreadが使われないConsoleアプリでは同期でも全く正常にSolid圧縮も解凍されるのですが
SevenZipSharpにてSolid圧縮ファイルを[STAThread](FormやWPFのメインスレッド)にてExtractArchiveするとフリーズしてしまうのは私だけでしょうか?
別スレッドやTask化したり、そもそもSTAThreadが使われないConsoleアプリでは同期でも全く正常にSolid圧縮も解凍されるのですが
853デフォルトの名無しさん (ワッチョイ 0e68-9rBX)
2020/12/05(土) 10:37:20.60ID:kSej4vti0 List<List<List<int>>>→List<List<int>>
List<List<int>>→List<int>
にする方法ってLINQでは不可能ですか?
並び順は変えないとします。
for使うしかないですか?
List<List<int>>→List<int>
にする方法ってLINQでは不可能ですか?
並び順は変えないとします。
for使うしかないですか?
854デフォルトの名無しさん (ワッチョイ 0e68-9rBX)
2020/12/05(土) 10:38:07.01ID:kSej4vti0 後者が
{1,2,4}{3,9,8}→1,2,4,3,9,8って感じ
{1,2,4}{3,9,8}→1,2,4,3,9,8って感じ
855デフォルトの名無しさん (スププ Sd70-fY0N)
2020/12/05(土) 11:00:35.05ID:DXfBmITDd >>853
var result = iList.SelectMany( i => i )
var result = iList.SelectMany( i => i )
856デフォルトの名無しさん (ワッチョイ ec6a-l3pW)
2020/12/05(土) 11:12:57.38ID:+y18mv1b0 ぐぐればすぐ見つかるわよ
857デフォルトの名無しさん (ブーイモ MMfd-xTiW)
2020/12/05(土) 11:31:13.29ID:CCPlFK06M >>856
なぐるわよ
なぐるわよ
858デフォルトの名無しさん (ワッチョイ 0e68-9rBX)
2020/12/05(土) 11:42:56.05ID:kSej4vti0 >>855
順番変わりますか?
順番変わりますか?
859デフォルトの名無しさん (ワッチョイ bdde-m2yY)
2020/12/05(土) 11:52:38.53ID:qYbtudQ20 TOARRAYのADDRANGEだよさっさとしろよグズ
860デフォルトの名無しさん (ワッチョイ f0ad-fY0N)
2020/12/05(土) 12:31:48.70ID:fwzFFaeU0 >>858
多分変わらないけど、やってみて。
多分変わらないけど、やってみて。
861デフォルトの名無しさん (ワッチョイ 8e2c-64Es)
2020/12/05(土) 12:39:27.19ID:qL2nBB2w0862デフォルトの名無しさん (ワッチョイ 7349-ByIG)
2020/12/05(土) 13:26:31.39ID:UBJq3HVh0 nlogで入れた.configが読み専になったから、しょうがなくありものを先に置いといてnugetしなおしたらなんとかなった
863デフォルトの名無しさん (ワッチョイ b242-l3pW)
2020/12/05(土) 14:02:33.08ID:cSIoQ91v0864デフォルトの名無しさん (ブーイモ MM5e-JQIg)
2020/12/05(土) 15:30:56.23ID:OcFAL7DuM 手元では大丈夫でもリリースした先でダメでした、というオチがたのしそう
865デフォルトの名無しさん (オッペケ Sr10-l3pW)
2020/12/06(日) 10:13:12.99ID:a+vxG21/r c#9.0でガラッと変わるので皆さん頑張ってお勉強してください
866デフォルトの名無しさん (オッペケ Sr10-l3pW)
2020/12/06(日) 10:18:38.00ID:a+vxG21/r C#の思想が塗り替えられています
867デフォルトの名無しさん (ワッチョイ ac93-uu7w)
2020/12/06(日) 10:20:10.96ID:xxrxxdsn0 たとえば?
868デフォルトの名無しさん (オッペケ Sr10-l3pW)
2020/12/06(日) 10:26:12.41ID:a+vxG21/r recordです
他の言語から輸入した超便利機能です
他の言語から輸入した超便利機能です
869デフォルトの名無しさん (ワッチョイ ec6a-l3pW)
2020/12/06(日) 11:07:39.97ID:GAck2gc00 recordは便利だけど勉強しなおさなきゃいけないレベルでもない
新しいこといくつか覚えればいいだけ
新しいこといくつか覚えればいいだけ
870デフォルトの名無しさん (ワッチョイ 328c-k1J3)
2020/12/06(日) 11:11:11.75ID:HPmVPA7T0 expression blocksあたりが来たらC#はC#とは違う別のなにかになりそうな勢いだな
871デフォルトの名無しさん (ワッチョイ 4624-onDa)
2020/12/06(日) 11:38:38.75ID:q4vfNSTS0 recordって別にただのstructだろ?
比較の仕方が違うだけで
比較の仕方が違うだけで
872デフォルトの名無しさん (ワッチョイ bdde-m2yY)
2020/12/06(日) 11:42:51.47ID:bQe6lBYR0 参照型のイコールの動作がわかんなかった
873デフォルトの名無しさん (スッップ Sd70-SNNj)
2020/12/06(日) 11:51:20.42ID:oEu15NIyd874デフォルトの名無しさん (ワッチョイ aeda-VFnC)
2020/12/06(日) 12:22:22.88ID:3Mg1tJ4o0 >>873
KWSK
KWSK
875デフォルトの名無しさん (ワッチョイ ec6a-l3pW)
2020/12/06(日) 12:41:32.76ID:GAck2gc00 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-9#record-types
レコード型を使用すると、変更できない参照型を .NET で簡単に作成できます。
従来、.NET 型は、参照型 (クラス型と匿名型を含む) と値型 (構造体とタプルを含む) に大別されています。
レコード型を使用すると、変更できない参照型を .NET で簡単に作成できます。
従来、.NET 型は、参照型 (クラス型と匿名型を含む) と値型 (構造体とタプルを含む) に大別されています。
876デフォルトの名無しさん (ワッチョイ 9cb2-GNfD)
2020/12/06(日) 12:56:19.96ID:E6YSEnmp0 つまり、リードオンリーで参照するみたいな感じか?
877デフォルトの名無しさん (ワッチョイ 8ea7-m2yY)
2020/12/06(日) 13:08:05.96ID:e5/goOFG0 record自体に動的な参照型は持てない感じ?
878デフォルトの名無しさん (オッペケ Sr10-ta7A)
2020/12/06(日) 13:08:42.54ID:a+vxG21/r 多分今後recordを使ってないコードを見るとイライラするようになるでしょう
今すぐにじゃなくてもそのうち確実に
古いコードは全部打ち捨てられるでしょう
ただMVVM命の人には関係ないでしょう
今すぐにじゃなくてもそのうち確実に
古いコードは全部打ち捨てられるでしょう
ただMVVM命の人には関係ないでしょう
879デフォルトの名無しさん (オッペケ Sr10-ta7A)
2020/12/06(日) 13:13:29.20ID:a+vxG21/r そして普通にprivateを使わなくなる可能性もあります
C#の初期の思想が徐々に塗り替えられ捨てられていきます
C#の初期の思想が徐々に塗り替えられ捨てられていきます
880デフォルトの名無しさん (ワッチョイ aeda-VFnC)
2020/12/06(日) 13:18:25.99ID:3Mg1tJ4o0 既にキマイラだよなぁ
881デフォルトの名無しさん (オッペケ Sr10-ta7A)
2020/12/06(日) 13:23:50.76ID:a+vxG21/r どうせrecordで既存のコード捨てられるから言語ごと最初から作り直したほうが良いかもしれない
最初から作り直せるとしたらデリゲートはなくなるのかどうか
C#+F#のような言語ができたら非常に面白い
最初から作り直せるとしたらデリゲートはなくなるのかどうか
C#+F#のような言語ができたら非常に面白い
882デフォルトの名無しさん (ワッチョイ 8ea7-m2yY)
2020/12/06(日) 13:30:56.71ID:e5/goOFG0 作成後に変更できないって言ってるのに比較なんてする必要あるの?
ってのが疑問
ってのが疑問
883デフォルトの名無しさん (オッペケ Sr10-ta7A)
2020/12/06(日) 13:37:19.87ID:a+vxG21/r Listから特定のインスタンス削りたい場合で位置がわからなければ比較するしかないでしょう
884デフォルトの名無しさん (ワッチョイ 8ea7-m2yY)
2020/12/06(日) 13:40:30.34ID:e5/goOFG0 そういうの言語の機能使うのは俺的にNG
doubleのイコール比較は誤差入るのか?
doubleのイコール比較は誤差入るのか?
885デフォルトの名無しさん (オッペケ Sr10-ta7A)
2020/12/06(日) 14:29:36.48ID:a+vxG21/r Linq使うにせよなんにせよ比較は使う
初心者以下のレベルの話
初心者以下のレベルの話
886デフォルトの名無しさん (ワッチョイ 9cb2-GNfD)
2020/12/06(日) 14:57:26.26ID:E6YSEnmp0 ん?レコードってのは何が嬉しいの?
887デフォルトの名無しさん (ワッチョイ aeda-VFnC)
2020/12/06(日) 15:11:34.04ID:3Mg1tJ4o0 PASCALとかALGOLにあった奴の
先祖帰りかなぁ?
先祖帰りかなぁ?
888デフォルトの名無しさん (アウアウカー Sa0a-GYU0)
2020/12/06(日) 15:15:02.40ID:wbXowyVSa 亡き飼い主の声が聞こえる
889デフォルトの名無しさん (ワッチョイ aa01-swuE)
2020/12/06(日) 16:04:31.40ID:+WMwzRY70 変更できない参照型って言うのはそれなりに使えるとは思うがなんでrecordなんて名前なんだ?
890デフォルトの名無しさん (ワントンキン MM88-fAcm)
2020/12/06(日) 16:16:48.48ID:wcxECur/M OCaml由来
891デフォルトの名無しさん (スッップ Sd70-SNNj)
2020/12/06(日) 16:19:27.32ID:oEu15NIyd892デフォルトの名無しさん (スッップ Sd70-SNNj)
2020/12/06(日) 16:20:25.26ID:oEu15NIyd >>874
structにもrecord つけられるようにする対応はC#10.0以降
structにもrecord つけられるようにする対応はC#10.0以降
893デフォルトの名無しさん (ワッチョイ aeda-VFnC)
2020/12/06(日) 17:02:01.60ID:3Mg1tJ4o0 >>892
THX
THX
894デフォルトの名無しさん (アウアウエー Sa6a-JhWO)
2020/12/06(日) 17:09:37.16ID:L/mxF/rBa >>875
このスレのレスだけ見てたらそんなの何が嬉しいんだと思ったが、
なるほどそれなりに便利そう
ただ、MSのドキュメントに列挙されてる
- 値ベースの等価比較のためのメソッド
- GetHashCode() のオーバーライド
- コピー メンバーとクローン メンバー
これらが自動実装されるのは確かに嬉しいが、これを実現するために何でイミュータブルにする
必要があるのかいまいちよく分からない
このスレのレスだけ見てたらそんなの何が嬉しいんだと思ったが、
なるほどそれなりに便利そう
ただ、MSのドキュメントに列挙されてる
- 値ベースの等価比較のためのメソッド
- GetHashCode() のオーバーライド
- コピー メンバーとクローン メンバー
これらが自動実装されるのは確かに嬉しいが、これを実現するために何でイミュータブルにする
必要があるのかいまいちよく分からない
895デフォルトの名無しさん (アウアウカー Sa0a-GYU0)
2020/12/06(日) 17:40:09.94ID:R+T9okNaa エミュー食べる必要は無いからなあ
896デフォルトの名無しさん (ワッチョイ 1a63-dwcT)
2020/12/06(日) 18:18:00.03ID:4CZ8QguV0 むしろimutableなものが欲しい、からスタートした機能
897デフォルトの名無しさん (スププ Sd94-xoRp)
2020/12/06(日) 18:29:39.04ID:ozrCEgJEd 普通に作ってる分にはいらんわな
898デフォルトの名無しさん (ワッチョイ b9ab-jrSk)
2020/12/06(日) 18:31:30.50ID:Cw8pwO+X0 変なところで値書き換えるやつがいるから、それを型として禁止したってだけだと思ってた
899デフォルトの名無しさん (ワッチョイ 8ea7-m2yY)
2020/12/06(日) 18:43:23.29ID:e5/goOFG0 doubleの比較は何?
また、c#のウンコみたいなイプシロン使って
同値判定してんの?
また、c#のウンコみたいなイプシロン使って
同値判定してんの?
900デフォルトの名無しさん (ワッチョイ b9ab-jrSk)
2020/12/06(日) 18:49:40.35ID:Cw8pwO+X0 勘違いしてた。わざわざ書いてたいつものコードを書かなくて済むようになるのがメリットか
ところで、「record Person」の例で同姓同名の別人を区別したくなったらどうすればいいのん?
ところで、「record Person」の例で同姓同名の別人を区別したくなったらどうすればいいのん?
901デフォルトの名無しさん (ワッチョイ 8ea7-m2yY)
2020/12/06(日) 18:55:24.02ID:e5/goOFG0 大丈夫だ
それはDNAListが異なるので判別できる
それはDNAListが異なるので判別できる
902デフォルトの名無しさん (ワッチョイ 732c-RsF0)
2020/12/06(日) 19:03:18.97ID:atqZF9NJ0 「Effective 何々」とかによく書いてある、3種の神器だろ
Ruby なら宇宙船演算子、<=> で比較関数を再定義する。
ハッシュ関数を再定義する。
p 関数を再定義する。
こういう謎のようなインスタンスID ではなく、分かりやすい表示を再定義する
class A
end
p a = A.new #=> #<A:0x00000000031c2f98>
Ruby なら宇宙船演算子、<=> で比較関数を再定義する。
ハッシュ関数を再定義する。
p 関数を再定義する。
こういう謎のようなインスタンスID ではなく、分かりやすい表示を再定義する
class A
end
p a = A.new #=> #<A:0x00000000031c2f98>
903デフォルトの名無しさん (オッペケ Sr10-l3pW)
2020/12/06(日) 19:10:34.23ID:a+vxG21/r recordはプロパティが基本publicになった
今まではprivateで隠蔽されていて外部から変更されなかった
これはカプセル化なんだけどこれがpublicになっただけじゃ意図しない変更をされる場合がある
非常に困る
だいたいのケースでは参照されても変更されなければ問題がないのでイミュータブルにするじゃねーかなと
今まではprivateで隠蔽されていて外部から変更されなかった
これはカプセル化なんだけどこれがpublicになっただけじゃ意図しない変更をされる場合がある
非常に困る
だいたいのケースでは参照されても変更されなければ問題がないのでイミュータブルにするじゃねーかなと
904デフォルトの名無しさん (ワッチョイ 1a63-dwcT)
2020/12/06(日) 19:16:53.81ID:4CZ8QguV0 だから順番が逆
immutableな型が欲しい→immutableなんだからpublicでok
immutableな型が欲しい→immutableなんだからpublicでok
905デフォルトの名無しさん (オッペケ Sr10-l3pW)
2020/12/06(日) 19:18:27.50ID:a+vxG21/r 世の中もイミュータブルが求められていると言うのもその通り
ValueObjectはいったん値を設定したら変えない
値を変えたくなったら新しいValueObjectをnewして挿げ替える
ValueObjectはいったん値を設定したら変えない
値を変えたくなったら新しいValueObjectをnewして挿げ替える
906デフォルトの名無しさん (ワッチョイ 66ad-SNNj)
2020/12/06(日) 19:23:32.30ID:iGfaGXq00 別にrecord = イミューダブルじゃないからね?
907デフォルトの名無しさん (ワッチョイ 66ad-SNNj)
2020/12/06(日) 19:23:45.93ID:iGfaGXq00 イミュータブル
908デフォルトの名無しさん (オッペケ Sr10-l3pW)
2020/12/06(日) 19:29:20.15ID:a+vxG21/r 他の簡易な言語などでもデフォルトはprivateじゃなくpublic
イミュータブルかどうかは別としてデフォがpublicが流行り
イミュータブルかどうかは別としてデフォがpublicが流行り
909デフォルトの名無しさん (オッペケ Sr10-l3pW)
2020/12/06(日) 19:48:28.39ID:a+vxG21/r どちらにせよ
C#は9.0で大変身した
C#は9.0で大変身した
910デフォルトの名無しさん (ワッチョイ aa01-swuE)
2020/12/06(日) 19:50:57.76ID:+WMwzRY70 >>900
社員番号とかを追加しときゃいいだろ
社員番号とかを追加しときゃいいだろ
911デフォルトの名無しさん (ワッチョイ c04f-ta7A)
2020/12/06(日) 20:39:59.39ID:5/KOVLSv0912デフォルトの名無しさん (ワッチョイ 1a63-dwcT)
2020/12/07(月) 02:42:51.99ID:FMWF8Lcl0 9に限らず今までのversion upはどれも影響度が大きい
8のnullable、7のtuple、6の自動実装プロパティ、5の非同期、4のdynamic、3のlinq
他にもいっぱいあるけど
どれも現状のC#にとって超重要な内容
8のnullable、7のtuple、6の自動実装プロパティ、5の非同期、4のdynamic、3のlinq
他にもいっぱいあるけど
どれも現状のC#にとって超重要な内容
913デフォルトの名無しさん (ワッチョイ e43e-CQ6W)
2020/12/07(月) 03:27:02.89ID:1hmL4SHh0 10年ぶりにwindowsアプリ作りたいんだけど最近は何で作るのが主流ですか?
まだwinformsだったりする?
まだwinformsだったりする?
914デフォルトの名無しさん (ワッチョイ 66ad-SNNj)
2020/12/07(月) 03:34:00.01ID:obD3rptW0 結局WinFormsかWPF
915デフォルトの名無しさん (ワッチョイ 6e61-JQIg)
2020/12/07(月) 06:24:24.79ID:AjKIX7D20 バージョン9が話題らしいですがc#のバージョンてどこ見りゃわかるの?
916デフォルトの名無しさん (ワッチョイ fb54-9rBX)
2020/12/07(月) 07:20:40.19ID:VGjx4xxr0 >>915
VS2019なら、ソースの適当なとこに、
#error version
って書いて、versionにマウスカーソル合わせると表示される。
あと、9かそうでないかの判断だけなら、setの代わりにinit使ったプロパティが認識されるなら9。
int Hage{get; init;}
VS2019なら、ソースの適当なとこに、
#error version
って書いて、versionにマウスカーソル合わせると表示される。
あと、9かそうでないかの判断だけなら、setの代わりにinit使ったプロパティが認識されるなら9。
int Hage{get; init;}
917デフォルトの名無しさん (ワッチョイ 6e61-JQIg)
2020/12/07(月) 07:27:50.50ID:AjKIX7D20918デフォルトの名無しさん (ブーイモ MM5e-VFnC)
2020/12/07(月) 07:33:11.23ID:jipj8SHtM >>917
お大事に。
お大事に。
919デフォルトの名無しさん (アウアウクー MMd2-Jjlp)
2020/12/07(月) 07:47:15.09ID:B8tartMNM Record型って最初聞いた時に、データベースのレコードを突っ込む型と思ってたわ…
更新できないってことは
中身書き換えてEFに投げてデータベース更新することができないってことだよな。
俺もいまいち使い道がわからんわ。
どういうシステムで使うんだろ。
更新できないってことは
中身書き換えてEFに投げてデータベース更新することができないってことだよな。
俺もいまいち使い道がわからんわ。
どういうシステムで使うんだろ。
920デフォルトの名無しさん (ワッチョイ 3a10-jrSk)
2020/12/07(月) 09:03:38.47ID:qwdGv73V0 多値からなる識別子とか
921デフォルトの名無しさん (ワッチョイ ec6a-l3pW)
2020/12/07(月) 09:15:00.72ID:5xO4uxgk0922デフォルトの名無しさん (ワッチョイ 215d-jrSk)
2020/12/07(月) 10:31:45.42ID:mtQ69pRI0 .NET Core〜.NET5でWindows用アプリをビルドするとexeやdllやjsonが生成されてそれら全て必要なようですが、.NET Frameworkのようなスマートな出力には出来ないんでしょうか?
丸々exe一本にしたい訳ではなくライブラリは別にしたいので単一ファイル化とはちょっと違うのですが
丸々exe一本にしたい訳ではなくライブラリは別にしたいので単一ファイル化とはちょっと違うのですが
923デフォルトの名無しさん (ワッチョイ 66ad-SNNj)
2020/12/07(月) 12:22:21.16ID:obD3rptW0 Framework dependent
924デフォルトの名無しさん (ワッチョイ ec6a-l3pW)
2020/12/08(火) 00:25:30.96ID:8YwC0Fuu0 >>919
DDDとかValueObjectとかに関わってないと分からんかもな
DDDとかValueObjectとかに関わってないと分からんかもな
925デフォルトの名無しさん (アウアウクー MMd2-Jjlp)
2020/12/08(火) 08:36:58.75ID:qADZolAoM >>924
そのキーワードでググってみた
とにかく
Record型ってのはValueObjectを作ることを目的としたクラスであって
DBから取得したレコードを突っ込むクラスではないのね
https://www.infoq.com/jp/articles/DDD_ValueObject_0325/
…じゃあValueObject型って名前にしろよ!
そのキーワードでググってみた
とにかく
Record型ってのはValueObjectを作ることを目的としたクラスであって
DBから取得したレコードを突っ込むクラスではないのね
https://www.infoq.com/jp/articles/DDD_ValueObject_0325/
…じゃあValueObject型って名前にしろよ!
926デフォルトの名無しさん (ワッチョイ ac93-uu7w)
2020/12/08(火) 08:59:31.84ID:QL1pojox0 >>925
DBのレコード突っ込む型とか、自分で言ってて頭悪いと思わないのかな
DBのレコード突っ込む型とか、自分で言ってて頭悪いと思わないのかな
927デフォルトの名無しさん (スップ Sd9e-dwcT)
2020/12/08(火) 09:04:14.01ID:ThBsNynLd 名称なんて年単位で議論してたんだから提案あるならしてくりゃ良かったのに
928デフォルトの名無しさん (アウアウクー MMd2-Jjlp)
2020/12/08(火) 09:08:19.56ID:qADZolAoM929デフォルトの名無しさん (ワッチョイ 3a32-LJJ8)
2020/12/08(火) 09:25:23.43ID:WA2T93A40 レコードなんだから再生できても録音できないのは当たり前だろ
930デフォルトの名無しさん (アウアウクー MMd2-Jjlp)
2020/12/08(火) 09:30:24.02ID:qADZolAoM 確かにそうだな
データベースのレコードを更新するってよく考えたら変な言い回しなんだな
データベースのレコードを更新するってよく考えたら変な言い回しなんだな
931デフォルトの名無しさん (ワッチョイ c252-r0ox)
2020/12/08(火) 09:44:59.64ID:0unpAQOY0 >>928
新しいキーワードや概念が出てきたなら名前から安易に決めつけたりせずにどんなものか調べるのが当たり前の行動でないの?
新しいキーワードや概念が出てきたなら名前から安易に決めつけたりせずにどんなものか調べるのが当たり前の行動でないの?
932デフォルトの名無しさん (ワッチョイ d0f2-yHc1)
2020/12/08(火) 11:08:44.41ID:CR6HP8eG0 DVD-ROM型
933デフォルトの名無しさん (ワッチョイ 4624-onDa)
2020/12/08(火) 11:09:42.33ID:+Hjnd8Yr0 Spanで返してくれるHtmlパーサーってある?
そもそも標準のパーサーってあったっけ
jsと同じ感覚でquerySelectorとか使えると良いんだけど
そもそも標準のパーサーってあったっけ
jsと同じ感覚でquerySelectorとか使えると良いんだけど
934デフォルトの名無しさん (アウアウエー Sa6a-JhWO)
2020/12/08(火) 12:04:51.25ID:GTdYvNE8a >>924
プロパティーの型はイミュータブルなのが好ましいのは誰でも分かると思う。
プロパティーの型はイミュータブルなのが好ましいのは誰でも分かると思う。
935デフォルトの名無しさん (ドコグロ MM22-swuE)
2020/12/08(火) 12:20:44.27ID:MydVvHcuM936デフォルトの名無しさん (オッペケ Srd7-jYx2)
2020/12/08(火) 12:27:24.23ID:QPlJJaQdr >>931
漢字文化圏では字面から意味がだいたい分かることに甘えたやつが多い
漢字文化圏では字面から意味がだいたい分かることに甘えたやつが多い
937デフォルトの名無しさん (ラクッペペ MM34-xfUJ)
2020/12/08(火) 12:35:05.35ID:f+ofKIWhM 全く関係ないが昔ログインの事を略してログと呼んでいる奴がいて
それに気が付くまで話が全く理解できなかった
それに気が付くまで話が全く理解できなかった
938デフォルトの名無しさん (ブーイモ MMed-VFnC)
2020/12/08(火) 12:42:21.79ID:Jz5aG9hcM ログオンしないの?
939デフォルトの名無しさん (ワッチョイ 8401-yHc1)
2020/12/08(火) 12:57:17.36ID:UAWkpbVf0 爪折ったカセットテープ型
940デフォルトの名無しさん (ササクッテロル Sp88-yHc1)
2020/12/08(火) 13:07:42.70ID:u9TUBJ18p 平和守る名前さ〜♪
941デフォルトの名無しさん (ワッチョイ 66ad-SNNj)
2020/12/08(火) 13:23:08.32ID:v7gdDVm90 ダグオンwww
942デフォルトの名無しさん (アウアウクー MMd2-Jjlp)
2020/12/08(火) 14:49:14.43ID:qADZolAoM943デフォルトの名無しさん (ワッチョイ 0c01-zWK8)
2020/12/08(火) 15:12:08.46ID:L/fvSJtl0944デフォルトの名無しさん (ワッチョイ bc5f-RsF0)
2020/12/08(火) 15:23:20.07ID:0ctxmOmz0 >>922
必要ないのも混ざってるよ
必要ないのも混ざってるよ
945デフォルトの名無しさん (ワッチョイ aa01-swuE)
2020/12/08(火) 15:29:38.69ID:bfWpuCm70946デフォルトの名無しさん (ワッチョイ 2663-jrSk)
2020/12/08(火) 16:14:06.02ID:KeS4W5RD0 くそコード書いといて
えー読めないのみたいな顔するやつ死ね
えー読めないのみたいな顔するやつ死ね
947デフォルトの名無しさん (ワッチョイ 66ad-SNNj)
2020/12/08(火) 16:43:14.25ID:v7gdDVm90 だからrecord 自体は別にイミュータブルでも何でもないんだってば
948デフォルトの名無しさん (ラクッペペ MM34-xfUJ)
2020/12/08(火) 19:03:10.97ID:f+ofKIWhM デビュー前にレコード大賞を盗った場合はどうなるの?
949デフォルトの名無しさん (ワッチョイ 7c33-ssng)
2020/12/08(火) 19:32:57.86ID:MwY7tEEj0 tmpとかもやめて欲しいな。
950デフォルトの名無しさん (ワッチョイ f67b-twe7)
2020/12/08(火) 19:33:13.64ID:y8tTQ7tr0 質問スレで平日の昼間からずっと雑談づくしってお前らそういう仕事なの?
951デフォルトの名無しさん (ワッチョイ 4624-onDa)
2020/12/08(火) 19:54:46.60ID:+Hjnd8Yr0 >>950
このご時世で昼間に家からカキコできないほうが終わってる定期
このご時世で昼間に家からカキコできないほうが終わってる定期
952デフォルトの名無しさん (アウアウクー MM1b-iTOR)
2020/12/09(水) 02:33:30.28ID:WuZTb4kZM なにごちゃごちゃ抜かしとるんじゃ我ェ!?
953デフォルトの名無しさん (ワッチョイ 7fb0-kRr2)
2020/12/11(金) 09:52:21.87ID:xnlTyNu60 エンディアンのバイトスワップめんどくせー
954デフォルトの名無しさん (ワッチョイ df40-orE1)
2020/12/11(金) 11:23:36.63ID:RmJd06BU0 あるウェブサイトにWebrequestを使ってアクセスしようとしたところ、
「ご使用のブラウザはCookieまたはJavaScriptの設定が無効です」
と出てウェブブラウザでは表示されるページが取得できませんでした。
webrequestは今まで何度も使っていますがこんなことになったのは初めてです。
↓のようにどこの解説サイトでも掲載されているような普通のやり方でやっているだけなのですが、回避する方法はあるのでしょうか?
CookieContainer myCC = new CookieContainer()
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.CookieContainer = myCC:
「ご使用のブラウザはCookieまたはJavaScriptの設定が無効です」
と出てウェブブラウザでは表示されるページが取得できませんでした。
webrequestは今まで何度も使っていますがこんなことになったのは初めてです。
↓のようにどこの解説サイトでも掲載されているような普通のやり方でやっているだけなのですが、回避する方法はあるのでしょうか?
CookieContainer myCC = new CookieContainer()
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.CookieContainer = myCC:
955デフォルトの名無しさん (ワッチョイ df40-orE1)
2020/12/11(金) 12:09:30.98ID:RmJd06BU0 すいません、自己解決しました
956デフォルトの名無しさん (オイコラミネオ MM7b-oVOe)
2020/12/11(金) 12:28:58.18ID:e2z+8YzhM プロジェクト内で定義された派生クラスを全てリストする方法ってあるでしょうか?
例えば動物という基底クラスがあり、
派生クラスに猫、犬と2つ作ったとします。
基底クラスには鳴き声メソッドがあるとします。
猫の鳴き声メソッドは「ニャーニャー」と返します。
ある関数で「ワンワン」という文字列が来た際に
プロジェクト内の動物派生クラスを個別に生成して鳴き声メソッドを叩き、
ワンワンと鳴く派生クラスを特定する逆引きのような処理をしたいです。
if文で全派生クラスを書けばいいですが、派生クラスはガンガン増えていくので、派生クラスを定義するたびににそのif文をメンテするのはメンテ漏れのバグのリスクがあるので
プロジェクト内に現在定義された動物派生クラスを全部取ってくる事が出来れば、それをグルグル回せばメンテナンス不要のコードにできるのですが
例えば動物という基底クラスがあり、
派生クラスに猫、犬と2つ作ったとします。
基底クラスには鳴き声メソッドがあるとします。
猫の鳴き声メソッドは「ニャーニャー」と返します。
ある関数で「ワンワン」という文字列が来た際に
プロジェクト内の動物派生クラスを個別に生成して鳴き声メソッドを叩き、
ワンワンと鳴く派生クラスを特定する逆引きのような処理をしたいです。
if文で全派生クラスを書けばいいですが、派生クラスはガンガン増えていくので、派生クラスを定義するたびににそのif文をメンテするのはメンテ漏れのバグのリスクがあるので
プロジェクト内に現在定義された動物派生クラスを全部取ってくる事が出来れば、それをグルグル回せばメンテナンス不要のコードにできるのですが
957デフォルトの名無しさん (スップ Sd7f-H4RV)
2020/12/11(金) 12:46:55.66ID:VHLzC15hd SourceGeneratorならできるだろうけど、何の情報もなしにclass探すのは無理じゃない?
テーブル内のclassに対して全部処理するとかはできるだろうから編集箇所は最小限で済ませられるけど
テーブル内のclassに対して全部処理するとかはできるだろうから編集箇所は最小限で済ませられるけど
958デフォルトの名無しさん (スッップ Sdff-QrRs)
2020/12/11(金) 12:49:19.99ID:9hZE0nsxd >>956
リフレクションで頑張れば行けるかもね
リフレクションで頑張れば行けるかもね
959デフォルトの名無しさん (アウアウエー Sa9f-5lnE)
2020/12/11(金) 13:03:11.90ID:exUCYAAha >>956
動的にサブクラスを列挙するのはたぶん無理じゃないの?
public abstract class Animal
{
public Animal(Animal a)
{
...
}
}
こういう風にAnimalのコンストラクタでthisを渡すことを強制しておけば
少なくともインスタンス化されたものは把握できるね。
動的にサブクラスを列挙するのはたぶん無理じゃないの?
public abstract class Animal
{
public Animal(Animal a)
{
...
}
}
こういう風にAnimalのコンストラクタでthisを渡すことを強制しておけば
少なくともインスタンス化されたものは把握できるね。
960デフォルトの名無しさん (ワッチョイ ff7c-kRr2)
2020/12/11(金) 14:37:47.39ID:m/dnIqsS0 typeof(Animal).Assembly.GetTypes().Where(_type => _type.IsSubclassOf(typeof(Animal)))
型の列挙自体はこんなんでできるけど
インスタンスどうするの?っていう
全部の型にpublicな引数なしコンストラクタが必ずありますならなんとかなるけど
型の列挙自体はこんなんでできるけど
インスタンスどうするの?っていう
全部の型にpublicな引数なしコンストラクタが必ずありますならなんとかなるけど
961デフォルトの名無しさん (ワッチョイ 7fbb-Drbj)
2020/12/11(金) 15:40:59.87ID:69jKb/QY0 そういやクラスに、静的に実行される静的イニシャライザを書けるようにしてくれたらいいのにと思うことあるな
962デフォルトの名無しさん (テテンテンテン MM8f-3nR/)
2020/12/11(金) 16:53:05.38ID:CVvHA/5PM >>961
書けるぞ
書けるぞ
963デフォルトの名無しさん (ワッチョイ e701-BALy)
2020/12/11(金) 18:41:57.69ID:bOY22DN70 >>959
それthisじゃない。
それthisじゃない。
964デフォルトの名無しさん (アウアウエー Sa9f-5lnE)
2020/12/11(金) 19:31:50.50ID:exUCYAAha >>963
意味が分からんけど
public class Cat:Animal
{
Cat():base(this){ ... }
}
これはNGみたいだね。
別にこれで良かったのか
public abstract class Animal
{
private static List<Type> Animals = new List<Type>();
public Animal()
{
var t = this.GetType();
Animals.Remove(t);
Animals.Add(t);
}
}
意味が分からんけど
public class Cat:Animal
{
Cat():base(this){ ... }
}
これはNGみたいだね。
別にこれで良かったのか
public abstract class Animal
{
private static List<Type> Animals = new List<Type>();
public Animal()
{
var t = this.GetType();
Animals.Remove(t);
Animals.Add(t);
}
}
965デフォルトの名無しさん (ワッチョイ df2f-Goa5)
2020/12/11(金) 19:37:25.05ID:PS9oWtr00 >>960
自分のインスタンスを返す静的メソッドって作れないのか
それを親クラスかインターフェイスで規定しておけばよいんじゃ
つかわざわざインスタンス生成しなくても、鳴き声が自分かどうか判定する静的メソッドで事足りる気がするな
自分のインスタンスを返す静的メソッドって作れないのか
それを親クラスかインターフェイスで規定しておけばよいんじゃ
つかわざわざインスタンス生成しなくても、鳴き声が自分かどうか判定する静的メソッドで事足りる気がするな
966デフォルトの名無しさん (ワッチョイ 7ff2-5K8T)
2020/12/11(金) 20:32:27.16ID:ZS/vCbaU0 >>940-941
渋谷で超勇者展始まったぞ!
渋谷で超勇者展始まったぞ!
967デフォルトの名無しさん (ワッチョイ 7fbb-Drbj)
2020/12/11(金) 21:16:51.65ID:69jKb/QY0968デフォルトの名無しさん (アウアウイー Sa1b-j1yc)
2020/12/11(金) 21:34:43.36ID:bOExnmUya 「C# 静的イニシャライザ」で検索して普通に引っかかるでしょ
イニシャライザ/コンストラクタと呼び方が異なるだけで
イニシャライザ/コンストラクタと呼び方が異なるだけで
969デフォルトの名無しさん (アウアウクー MM1b-iTOR)
2020/12/13(日) 02:19:21.24ID:1g8P/X2hM c#でRSSリーダー作れましゅか?
970デフォルトの名無しさん (ワッチョイ 8710-kDsR)
2020/12/13(日) 02:27:42.98ID:mhM78eSV0 もちろん作れるさ
971デフォルトの名無しさん (ブーイモ MMeb-egwc)
2020/12/13(日) 06:26:58.36ID:TsdjEAD7M c#では作れないものはありますか?
972デフォルトの名無しさん (ワッチョイ bf62-MC0k)
2020/12/13(日) 07:37:48.18ID:18RrlrES0 >>965
全ての派生クラスで同じ名前の静的メソッドやプロパティを強要できるならそれでよさそうだけど出来なくね?
全ての派生クラスで同じ名前の静的メソッドやプロパティを強要できるならそれでよさそうだけど出来なくね?
973デフォルトの名無しさん (ワッチョイ df2f-Goa5)
2020/12/13(日) 09:06:36.69ID:unG5NNsQ0974デフォルトの名無しさん (ワッチョイ df01-1sNk)
2020/12/13(日) 10:08:37.85ID:3XNF+7/F0 >>971
お前の能力を超えたソフト
お前の能力を超えたソフト
975デフォルトの名無しさん (アウアウウー Sa6b-lled)
2020/12/13(日) 10:11:14.52ID:7La4X7B8a ネイティブDLLが作れるようになってくれないかな
976デフォルトの名無しさん (ワッチョイ df24-S/l1)
2020/12/13(日) 10:21:46.03ID:BQqdDV6m0 >>971
カーネルドライバ
カーネルドライバ
977デフォルトの名無しさん (ワッチョイ c702-kNbH)
2020/12/13(日) 10:26:06.52ID:QKeUnYpp0978デフォルトの名無しさん (ワッチョイ 2766-H4RV)
2020/12/13(日) 11:14:15.79ID:KcA96kkp0 マシン語にしたバイナリを出力するアプリをC#で作ればなんでもできることになる
979デフォルトの名無しさん (ワッチョイ bf8c-2hao)
2020/12/13(日) 14:02:37.13ID:U1NW+seS0 nativeaot(-llvm)?(旧corert)ってのがあってぇ…
980デフォルトの名無しさん (ワッチョイ df01-1sNk)
2020/12/13(日) 14:07:55.69ID:3XNF+7/F0 .NETNative をちゃんと作ればC#でもネイティブコードにコンパイルできるだろうし、そもそも性能がたいして必要ないならインタプリタでもドライバを書くことはできるだろうけどGCに依存してる言語はタイミングが読めないから難しいわな
981デフォルトの名無しさん (ワッチョイ a74f-sAgx)
2020/12/13(日) 14:47:32.03ID:E31xy0lw0 C++/CLI復権してくれたらなぁ。まずないとは思うが。
982デフォルトの名無しさん (ワッチョイ 4768-Goa5)
2020/12/14(月) 19:47:40.61ID:EY+baBGY0 WEBの写真ダウンロード処理をしてるのですが、出来るものと出来にくいものがあります。
出来にくいもの(EDGEブラウザで開けるとすぐ見れるがダウンロードでは20秒くらいかかる)
https://i.dailymail.co.uk/i/pix/2013/05/09/article-2321812-19B162BA000005DC-124_634x449.jpg
出来るもの(すぐにダウンロードできる。EDGEブラウザでもすぐ見れる)
https://i.imgur.com/bnUR6en.png
System.Net.WebClient client = new System.Net.WebClient();
client.DownloadFile("https://i.dailymail.co.uk/i/pix/2013/05/09/article-2321812-19B162BA000005DC-124_634x449.jpg", @"D:\tmp.jpg");
こういうのはサーバー側でアクセス種類がブラウザかプログラムか見分けられて
対策されてるのでしょうか?
出来にくいもの(EDGEブラウザで開けるとすぐ見れるがダウンロードでは20秒くらいかかる)
https://i.dailymail.co.uk/i/pix/2013/05/09/article-2321812-19B162BA000005DC-124_634x449.jpg
出来るもの(すぐにダウンロードできる。EDGEブラウザでもすぐ見れる)
https://i.imgur.com/bnUR6en.png
System.Net.WebClient client = new System.Net.WebClient();
client.DownloadFile("https://i.dailymail.co.uk/i/pix/2013/05/09/article-2321812-19B162BA000005DC-124_634x449.jpg", @"D:\tmp.jpg");
こういうのはサーバー側でアクセス種類がブラウザかプログラムか見分けられて
対策されてるのでしょうか?
983デフォルトの名無しさん (ワッチョイ a724-S/l1)
2020/12/14(月) 20:29:19.80ID:w+atsEVh0 出来る出来ないなら、サーバー側でUserAgentやクッキーやその他ヘッダを見てブロックするというのは普遍的な手法だからよくある事だけど
出来るものと出来にくいものはよくわからないが、一応ダウンロード前にこれ挟んで試してみるといい
client.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36");
出来るものと出来にくいものはよくわからないが、一応ダウンロード前にこれ挟んで試してみるといい
client.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36");
984デフォルトの名無しさん (アウアウイー Sa1b-j1yc)
2020/12/14(月) 21:37:41.18ID:A7r1gxtPa ブラウザでの表示が早いのはキャッシュされてるだけだと思うけど・・・・
キャッシュ全クリアしても本当にすぐ見れる?
キャッシュ全クリアしても本当にすぐ見れる?
985デフォルトの名無しさん (ワッチョイ 4768-Goa5)
2020/12/15(火) 10:35:58.18ID:md2wlUIm0 >>983
やってみましたら止まらずすぐにダウンロードできるようになりました。
サーバー側でUSERAGENTが入ってるか入ってないかでプログラムアクセスかどうかの選り分けをして
USERAGENTが空のものには20秒くらいわざとジラシが入ってるようです。
一括ダウンローダーとかの対策かなんかかもしれませんね。
ありがとうございました。
やってみましたら止まらずすぐにダウンロードできるようになりました。
サーバー側でUSERAGENTが入ってるか入ってないかでプログラムアクセスかどうかの選り分けをして
USERAGENTが空のものには20秒くらいわざとジラシが入ってるようです。
一括ダウンローダーとかの対策かなんかかもしれませんね。
ありがとうございました。
986デフォルトの名無しさん (ワッチョイ 7f33-c5Po)
2020/12/15(火) 12:40:58.94ID:uedfi1MA0 UA偽装とかリファラ偽装とか懐かしいワードを思い出した
987デフォルトの名無しさん (ワッチョイ a724-S/l1)
2020/12/15(火) 13:14:41.01ID:fP0YYSyi0 >>985
ちなみにChromeはかなり小まめにアプデ入る訳だが
Botは往々にして"Chrome/87.0.4280.88"の部分が古いままという特徴があって最新版一つ手前よりも前のバージョンだと弾くって言う対策してる鯖もある
まぁここまで対策してくるのは稀だから放置でも大方問題にはならないが、インスコフォルダやレジストリや最悪webなどからバーション取得する方法あった気がするから暇なら最新版のUAにするロジックも入れておいた方がいい
ちなみにChromeはかなり小まめにアプデ入る訳だが
Botは往々にして"Chrome/87.0.4280.88"の部分が古いままという特徴があって最新版一つ手前よりも前のバージョンだと弾くって言う対策してる鯖もある
まぁここまで対策してくるのは稀だから放置でも大方問題にはならないが、インスコフォルダやレジストリや最悪webなどからバーション取得する方法あった気がするから暇なら最新版のUAにするロジックも入れておいた方がいい
988デフォルトの名無しさん (テテンテンテン MM8f-/5tz)
2020/12/15(火) 21:23:57.67ID:2D6p9tgnM 規模のでかいプロジェクトを開発してるといつもどのファイルを開いてるのかわからなくなったり、目的のファイルが見つからなかったり大変なんですけどどうしたらいいですか?
目的のフォルダに対してブックマーク的なものが設定できたりしたら迷子にならなくてすむんですがそんなのないですか?
目的のフォルダに対してブックマーク的なものが設定できたりしたら迷子にならなくてすむんですがそんなのないですか?
989デフォルトの名無しさん (ワッチョイ a724-S/l1)
2020/12/15(火) 23:06:40.58ID:fP0YYSyi0 ref readonly変数のstructのメンバ関数呼ぶと防御コピーが発生するのは仕様?
refだけなら防御コピー発生しないのは確認できたんだけど
refだけなら防御コピー発生しないのは確認できたんだけど
990デフォルトの名無しさん (ワッチョイ 7f63-H4RV)
2020/12/15(火) 23:23:22.02ID:j+VqSr9F0991デフォルトの名無しさん (テテンテンテン MM8f-/5tz)
2020/12/15(火) 23:26:47.80ID:OK3TNwGLM992デフォルトの名無しさん (ワッチョイ 4733-BALy)
2020/12/15(火) 23:32:36.78ID:korWFWn50993デフォルトの名無しさん (ワッチョイ ba3e-3rSP)
2020/12/16(水) 01:40:22.65ID:FCFqtT9K0 >>992
複数開くってどうやるの?
複数開くってどうやるの?
994デフォルトの名無しさん (ワッチョイ ff54-G9sQ)
2020/12/16(水) 03:17:07.88ID:eAMqD84A0 共通プラットフォームの .NET 5 が出てきたってことは、.net standard はもう次バージョンは出ないんですか?
995デフォルトの名無しさん (ワッチョイ eaad-8w8B)
2020/12/16(水) 03:21:40.46ID:4YU+JB8/0 うん
996デフォルトの名無しさん (ワッチョイ 0fa7-o020)
2020/12/16(水) 07:09:48.69ID:ksVkXCtR0 >>994
誰も新しい方使わなかったらまだワンチャンあるかも?
誰も新しい方使わなかったらまだワンチャンあるかも?
997デフォルトの名無しさん (ワキゲー MMa2-Gz4g)
2020/12/16(水) 11:31:10.25ID:TSvQ057dM998デフォルトの名無しさん (ワッチョイ be2c-bCZc)
2020/12/16(水) 20:14:15.21ID:p7rmX8ox0999デフォルトの名無しさん (ワッチョイ be7b-kLfm)
2020/12/17(木) 20:00:41.21ID:Z1ozW/Gv0 >>997
スレたて乙
スレたて乙
1000デフォルトの名無しさん (ワッチョイ be2c-bCZc)
2020/12/17(木) 20:54:36.61ID:czJEN8EN0 埋め
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 204日 0時間 25分 55秒
新しいスレッドを立ててください。
life time: 204日 0時間 25分 55秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 小泉農相、備蓄米の入札中止 スーパーなどに直接売り渡す考えも ★11 [おっさん友の会★]
- 【速報】小泉農相、楽天・三木谷氏と会談…コメ流通について [おっさん友の会★]
- 中居正広、被害女性に不信感「守秘義務の遵守に強い懸念」「解除した場合、被害女性が事情聴取以外の場面で情報開示の可能性がある」★3 [Ailuropoda melanoleuca★]
- 闇バイト問題「悲惨な環境でも犯罪に走らない人が偉い」論の限界とは [おっさん友の会★]
- 【テレビ】小泉進次郎大臣 コメは「早ければ6月頭」に「2000円台」目指すと 「サン!シャイン」で……谷原章介に問われ [少考さん★]
- 【北海道】陸自駐屯地にヒグマ出没 通報を受けた警察はパトロールを強化 [シャチ★]
- 【悲報】金バエ、死亡確認。 [153490809]
- 小泉進次郎新農水相「コメ、2000円台で棚に」 [947959745]
- チーズ牛丼「おっ安くなってんじゃん」 ←安くなってそうなもの
- 米、5kg2000円台の時代へ回復か [194819832]
- これで米価下がったら江藤が単なる無能ってことじゃね [976728141]
- 聖徳太子知ってる?