!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part146
https://mevius.5ch.net/test/read.cgi/tech/1576069931/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part147
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (エムゾネ FF9f-HF0o)
2020/02/19(水) 17:25:41.55ID:IsrGexiaF597デフォルトの名無しさん (ワッチョイ 43da-32x/)
2020/05/13(水) 00:12:10.85ID:OFLzozUz0 ポインタで全て解決
598デフォルトの名無しさん (ワッチョイ 6d2d-imz8)
2020/05/13(水) 00:15:30.74ID:7szTGv5D0 >>596
それはボケ?
それはボケ?
599デフォルトの名無しさん (ワッチョイ c342-M5Di)
2020/05/13(水) 00:30:19.64ID:NaKv0jEn0600デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/13(水) 00:36:24.06ID:WBibu7Ic0 using Counter = Properties.Settings.Default.Counter;
601デフォルトの名無しさん (ワッチョイ 4da7-071a)
2020/05/13(水) 01:04:23.01ID:9AF39pvJ0 ポインタが欲しいんだろ
class valInt{
public int val;
}
class valStr{
public string val;
}
って作っとけば?
普段は全く必要ないのに
リフレクション使うとき滅茶苦茶必要になったわ
class valInt{
public int val;
}
class valStr{
public string val;
}
って作っとけば?
普段は全く必要ないのに
リフレクション使うとき滅茶苦茶必要になったわ
602デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 01:11:53.36ID:HB9dDlz00 質問失礼致します。
list1にはboolが3つ入っています。
list2はクラスが3つ入ったリストで、そのクラスにはpublic bool flagが宣言されています。
両方falseの番号が見つかるまで繰り返したいです。
public int Check(){
int x = list1.IndexOf(false);
while (list2[x].flag == true){
x = list1.IndexOf(false, x +1)
}
return x;
}
このコードを書いたのですが、
list2[x].flagが3つ全てtrueだった場合にx+1が範囲外になってエラーが出ていると思われます。
条件に合う物が見つからない時にも何か(-1とか)返せる様にすれば良いのかもしれませんが、どうすればいいのかまったくわかりません。。
どうかヒントだけでも教えて下さい、、
よろしくお願いします。
list1にはboolが3つ入っています。
list2はクラスが3つ入ったリストで、そのクラスにはpublic bool flagが宣言されています。
両方falseの番号が見つかるまで繰り返したいです。
public int Check(){
int x = list1.IndexOf(false);
while (list2[x].flag == true){
x = list1.IndexOf(false, x +1)
}
return x;
}
このコードを書いたのですが、
list2[x].flagが3つ全てtrueだった場合にx+1が範囲外になってエラーが出ていると思われます。
条件に合う物が見つからない時にも何か(-1とか)返せる様にすれば良いのかもしれませんが、どうすればいいのかまったくわかりません。。
どうかヒントだけでも教えて下さい、、
よろしくお願いします。
603デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 01:17:14.99ID:HB9dDlz00 書き込んだあとに気付いたのですが、もしかしてwhileの中のxはforと違って繰り返すたびに更新されないのでしょうか?
604デフォルトの名無しさん (アウアウウー Sa31-L7FI)
2020/05/13(水) 01:32:42.10ID:RZkyIb9Ia >>602
何で素直にforでスキャンしないの?
コードを書く前に、まずそれを自分が手動で行う場合の手順を日本語で明確に表現しましょう。
次にそれをコードに変換する。
インデックスを0, 1, 2と増加させて、両方falseならその時のインデックスを返すんでしょ?
何でそれを素直にコードにしないの
何で素直にforでスキャンしないの?
コードを書く前に、まずそれを自分が手動で行う場合の手順を日本語で明確に表現しましょう。
次にそれをコードに変換する。
インデックスを0, 1, 2と増加させて、両方falseならその時のインデックスを返すんでしょ?
何でそれを素直にコードにしないの
605デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 01:37:13.82ID:HB9dDlz00 >>604
すみません、2日間上手く行ってなくて最初はforで試行錯誤してたんですけど何回も調べて書き直してってやってる間になにがなんだかわからなくなってしまいました。。
もう一度forでやってみます!
すみません、2日間上手く行ってなくて最初はforで試行錯誤してたんですけど何回も調べて書き直してってやってる間になにがなんだかわからなくなってしまいました。。
もう一度forでやってみます!
606デフォルトの名無しさん (ワッチョイ 4124-/iGY)
2020/05/13(水) 08:02:36.01ID:9jM9qfYw0 >>605
プログラミング自体初心者だと思うけど基本的にwhileは使わないほうが良いよ(ちょっとしたミスで無限ループに陥ってフリーズする等バグの温床になる)
あとlist2に入ってるクラスをboolフィールドもう一つ拡張してlist2だけで運用できない?
一応既存の場合ならこういうコードでいい
for (int i = 0; i < list2.Count; i++) //list2を中心に回す
{
if (i >= list1.Count) break; //list1が範囲外になったらforを抜ける
if (!list1[i] && !list2[i].flag) return i; //両方falseならインデックスを返す
}
return -1; //全て探し終えてもfalse && falseが見つからなかったらここに到達してreturn -1
プログラミング自体初心者だと思うけど基本的にwhileは使わないほうが良いよ(ちょっとしたミスで無限ループに陥ってフリーズする等バグの温床になる)
あとlist2に入ってるクラスをboolフィールドもう一つ拡張してlist2だけで運用できない?
一応既存の場合ならこういうコードでいい
for (int i = 0; i < list2.Count; i++) //list2を中心に回す
{
if (i >= list1.Count) break; //list1が範囲外になったらforを抜ける
if (!list1[i] && !list2[i].flag) return i; //両方falseならインデックスを返す
}
return -1; //全て探し終えてもfalse && falseが見つからなかったらここに到達してreturn -1
607デフォルトの名無しさん (アウアウウー Sa1d-/iGY)
2020/05/13(水) 09:30:48.50ID:RdUH2aEBa > whileは使わない方が良いよ
それは同意しない
その程度でバグを起こすようなレベルなら何使おうがどうせまともに動くわけない
forをはじめとした、より抽象度の高い他の機能によって自然に代替できるケースにおいてはwhileより他を好むべきだとは思うが、
whileの方が自然なケースってのは存在する
それは同意しない
その程度でバグを起こすようなレベルなら何使おうがどうせまともに動くわけない
forをはじめとした、より抽象度の高い他の機能によって自然に代替できるケースにおいてはwhileより他を好むべきだとは思うが、
whileの方が自然なケースってのは存在する
608デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 09:31:40.13ID:HB9dDlz00 >>606
おはようございます。
丁寧な回答ありがとうございます。
仰る通りプログラム自体初心者です。。
一応あの後、
int index = -1;
for(int i =0; i < list1.Count; i++){
if(list1[i] == false && list2[i].flag == false){
index = i;
return index;
}
return index;
}
という風にやってみました。
合っているかわかりませんが、、一応動作しています。
breakで抜ける方法なども想像すらしてなかったので大変勉強になりました。
教えて頂いたコードの方がが安全そうなので参考にして書き直してみます!
本当にありがとうございました!
おはようございます。
丁寧な回答ありがとうございます。
仰る通りプログラム自体初心者です。。
一応あの後、
int index = -1;
for(int i =0; i < list1.Count; i++){
if(list1[i] == false && list2[i].flag == false){
index = i;
return index;
}
return index;
}
という風にやってみました。
合っているかわかりませんが、、一応動作しています。
breakで抜ける方法なども想像すらしてなかったので大変勉強になりました。
教えて頂いたコードの方がが安全そうなので参考にして書き直してみます!
本当にありがとうございました!
609デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 10:00:08.37ID:HB9dDlz00610デフォルトの名無しさん (ワッチョイ 2b01-32x/)
2020/05/13(水) 10:20:12.64ID:tJ/HyvQb0611デフォルトの名無しさん (ワッチョイ 2b01-32x/)
2020/05/13(水) 10:25:24.49ID:tJ/HyvQb0612デフォルトの名無しさん (ワッチョイ 4da7-071a)
2020/05/13(水) 11:51:27.79ID:9AF39pvJ0 >>611
だから、クラスでラップするとかしないとポインタっぽいことできないんだってばこの言語
だから、クラスでラップするとかしないとポインタっぽいことできないんだってばこの言語
613デフォルトの名無しさん (アウアウウー Sa31-L7FI)
2020/05/13(水) 12:42:25.67ID:KNUhyNjza 別にエイリアスじゃなくて一時変数でいいじゃん
int hoge = Foo.HogeHageDebuBaka;
書き換えないならそもそもエイリアスである必要がないし、
書き換える必要がある場合もほとんどのケースは一時変数に対する変更を最後に一か所で
元のフィールドなりプロパティーに書き戻すだけで済むと思うんだけど違うのかな。
int hoge = Foo.HogeHageDebuBaka;
書き換えないならそもそもエイリアスである必要がないし、
書き換える必要がある場合もほとんどのケースは一時変数に対する変更を最後に一か所で
元のフィールドなりプロパティーに書き戻すだけで済むと思うんだけど違うのかな。
614デフォルトの名無しさん (ワッチョイ 179b-Tl4l)
2020/05/13(水) 12:46:03.36ID:0MZWSb+/0 単にマクロ的に短く記述したいってことなら使用先のcsファイルの一番上にこれ書いとけばいい
using static c = Properties.Settings.Default.Counter;
using static c = Properties.Settings.Default.Counter;
615デフォルトの名無しさん (アウアウエー Sa93-ahgx)
2020/05/13(水) 13:28:16.32ID:w7cEJ83Ea Console.Out にデータを書く A.exe (ソース A.cs がある) と
Console.In からデータを読み込む B.exe があるとき
A | B
で B.exe 側で A.exe が書いたデータを取り出せるところまでは確認しました
そこで A.exe の中から
ProcessStartInfo psi = new ProcessStartInfo(){
FileName="B.exe", Arguments="", RedirectStandardInput=true,
RedirectStandardOutput=false, RedirectStandardError=false,
UseShellExecute=false, CreateNoWindow=true, ErrorDialog=false};
Process p = Process.Start(psi);
Console.WriteLine("test");
// p.WaitForExit();
// p.Close();
とすると
>error: ファイルを格納しているボリュームが外部的に変更されたため、開かれているファイルが無効になりました。
というエラーが出てしまいます。
Console.WriteLine("test"); のところを p.StandardInput.WriteLine("test");
にすれば書き込めるらしいのですが出来れば A.cs の変更を極力したくないです
あと
Console.Out.WriteLine("test"); もダメでした
RedirectStandardInput=false, もだめでした
何か使い方間違ってますか?
Console.In からデータを読み込む B.exe があるとき
A | B
で B.exe 側で A.exe が書いたデータを取り出せるところまでは確認しました
そこで A.exe の中から
ProcessStartInfo psi = new ProcessStartInfo(){
FileName="B.exe", Arguments="", RedirectStandardInput=true,
RedirectStandardOutput=false, RedirectStandardError=false,
UseShellExecute=false, CreateNoWindow=true, ErrorDialog=false};
Process p = Process.Start(psi);
Console.WriteLine("test");
// p.WaitForExit();
// p.Close();
とすると
>error: ファイルを格納しているボリュームが外部的に変更されたため、開かれているファイルが無効になりました。
というエラーが出てしまいます。
Console.WriteLine("test"); のところを p.StandardInput.WriteLine("test");
にすれば書き込めるらしいのですが出来れば A.cs の変更を極力したくないです
あと
Console.Out.WriteLine("test"); もダメでした
RedirectStandardInput=false, もだめでした
何か使い方間違ってますか?
616デフォルトの名無しさん (JP 0H13-2td9)
2020/05/13(水) 13:30:17.94ID:9ouyGW4jH IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
617デフォルトの名無しさん (ブーイモ MM5b-26de)
2020/05/13(水) 13:49:55.90ID:uqtilrQeM >>615
var tmp = Console.Out;
try {
var p = Process.Start(psi);
Console.SetOut(p.StandardInput);
Console.WriteLine("hoge");
p.WaitForExit();
}
finally {
Console.SetOut(tmp);
}
var tmp = Console.Out;
try {
var p = Process.Start(psi);
Console.SetOut(p.StandardInput);
Console.WriteLine("hoge");
p.WaitForExit();
}
finally {
Console.SetOut(tmp);
}
618デフォルトの名無しさん (ワッチョイ 2b01-32x/)
2020/05/13(水) 16:30:12.93ID:tJ/HyvQb0619デフォルトの名無しさん (ワッチョイ 4124-/iGY)
2020/05/13(水) 16:42:19.79ID:9jM9qfYw0 ポインタは使えるけどC++と違ってstaticなオブジェクトですらガベコレによってアドレス変わる可能性が常にあるから
長寿命なポインタというのは自前でガベコレ管轄外のアンマネージドメモリを確保しない限り成立しない
長寿命なポインタというのは自前でガベコレ管轄外のアンマネージドメモリを確保しない限り成立しない
620デフォルトの名無しさん (ワッチョイ 5b84-57Gp)
2020/05/13(水) 17:08:14.26ID:D3xPcSfY0 >>602
whileのロジックが足りない
while((x != -1 && x < list1.Count) && list2[x].flag)
にするとlist1の要素超えなくて見つからないと「-1」が返ると思うよ
whileのロジックが足りない
while((x != -1 && x < list1.Count) && list2[x].flag)
にするとlist1の要素超えなくて見つからないと「-1」が返ると思うよ
621デフォルトの名無しさん (ワッチョイ 5b84-57Gp)
2020/05/13(水) 17:24:13.51ID:D3xPcSfY0622デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)
2020/05/13(水) 17:39:16.20ID:VSt/R8YQ0 Ruby では普通に、print, puts メソッドで出力したら、
標準出力・$stdout に出力される
どこに出力するかなど、考えたこともない
標準出力・$stdout に出力される
どこに出力するかなど、考えたこともない
623デフォルトの名無しさん (ワッチョイ 115f-hrec)
2020/05/13(水) 17:51:43.48ID:48KyBdoc0 >>622
相変わらずバカだね
相変わらずバカだね
624622 (ワッチョイ 7f2c-JcAG)
2020/05/13(水) 18:25:56.36ID:VSt/R8YQ0 標準出力以外を使う場合は、標準エラーに出力する時だけ。
標準出力なら、パイプ・ファイルへのリダイレクトも使える
a.rb | b.rb パイプ
a.rb > b.rb 上書き
a.rb >> b.rb 追記
標準出力なら、パイプ・ファイルへのリダイレクトも使える
a.rb | b.rb パイプ
a.rb > b.rb 上書き
a.rb >> b.rb 追記
625デフォルトの名無しさん (ワッチョイ 2b01-32x/)
2020/05/13(水) 19:32:00.52ID:tJ/HyvQb0 >>619
なるほどね、実質ポインタは使い物にならないね、何が出てくるかわからないとか
なるほどね、実質ポインタは使い物にならないね、何が出てくるかわからないとか
626デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/13(水) 20:56:37.22ID:WBibu7Ic0627デフォルトの名無しさん (ワッチョイ 4124-/iGY)
2020/05/13(水) 21:18:36.78ID:9jM9qfYw0 >>625
ローカル値型変数ならその関数抜けるまではスタック上にあることが保証されるからその関数内限定でCと同じように扱える
バイト配列等参照型もfixed (byte* ptr = &bytes[0]) {}と囲っている間はガベコレにアドレス移動させない通知を出せばそのスコープ間では扱える
ポインタフィールドを持たせたいとかになるとさっき言ったようなアンマネージドメモリを利用するしかないのでC#では実質不可能になってくる
ローカル値型変数ならその関数抜けるまではスタック上にあることが保証されるからその関数内限定でCと同じように扱える
バイト配列等参照型もfixed (byte* ptr = &bytes[0]) {}と囲っている間はガベコレにアドレス移動させない通知を出せばそのスコープ間では扱える
ポインタフィールドを持たせたいとかになるとさっき言ったようなアンマネージドメモリを利用するしかないのでC#では実質不可能になってくる
628デフォルトの名無しさん (ササクッテロレ Sp63-5XO3)
2020/05/14(木) 02:19:30.95ID:2LmxtE+Tp C#に、lispでいうmapcar関数のようなものはありますか?
629デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/14(木) 03:11:58.67ID:HxdbbI2M0 >>628
Enumerable.Select()
Enumerable.Select()
630デフォルトの名無しさん (オッペケ Sr93-5iCk)
2020/05/14(木) 10:45:17.58ID:n+ookAJTr c#頑張ってきたのでc++ちょっとかじって浮気してきまっす!
挫折したら秒で戻ってきまっす!
挫折したら秒で戻ってきまっす!
631デフォルトの名無しさん (ワッチョイ 5902-gIXh)
2020/05/14(木) 11:26:58.59ID:ztWr1bjJ0 目的がかなり違う言語だから気をつけなされ
632622 (ワッチョイ 7f2c-JcAG)
2020/05/14(木) 14:04:08.71ID:FSEZeoAj0 >>626
Ruby では、`コマンド`、system(コマンド)などは同期処理だけど、
spawn は非同期だから、すぐに子プロセスのPID が返ってくる
だから、Process.waitpid で、子プロセスの終了を待ち合せる必要がある
p pid = spawn('uname') #=> 1142
Process.waitpid pid
出力
Linux
Ruby では、`コマンド`、system(コマンド)などは同期処理だけど、
spawn は非同期だから、すぐに子プロセスのPID が返ってくる
だから、Process.waitpid で、子プロセスの終了を待ち合せる必要がある
p pid = spawn('uname') #=> 1142
Process.waitpid pid
出力
Linux
633デフォルトの名無しさん (アウアウウー Sa31-7tKh)
2020/05/14(木) 14:53:15.52ID:0DpJdKOEa List<string>をfor文中で繰り返し初期化して使用したいのですが、
List<string> 変数 = new List<string>()
で出来ますか?
それともfor文の最後でclearしないといけませんか?
ネットにソースが見当たらないので質問しました。ソースもあるよという方はその内容も教えていただきたく。
お願いいたします。
List<string> 変数 = new List<string>()
で出来ますか?
それともfor文の最後でclearしないといけませんか?
ネットにソースが見当たらないので質問しました。ソースもあるよという方はその内容も教えていただきたく。
お願いいたします。
634デフォルトの名無しさん (ワッチョイ 4124-gIXh)
2020/05/14(木) 15:31:14.00ID:0NVqPTt90 forの中でList<string> 変数 = new List<string>()とループ毎に確保しているのなら終わり際にClearは書かなくていい
文字通りnewだからね
ただパフォーマンス的にはforの前で作ったリストをループ中の最後にClear()して使いまわす方が若干効率は良くなる
一般的な用途であれば差にもならない差だから前者で良いけど
文字通りnewだからね
ただパフォーマンス的にはforの前で作ったリストをループ中の最後にClear()して使いまわす方が若干効率は良くなる
一般的な用途であれば差にもならない差だから前者で良いけど
635デフォルトの名無しさん (アウアウウー Sa31-7tKh)
2020/05/14(木) 16:08:02.92ID:0DpJdKOEa >>634
なるほど、ありがとうございます。
なるほど、ありがとうございます。
636デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 16:24:15.76ID:oGs32I5W0 >>630
おかえり
おかえり
637デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 16:24:31.04ID:oGs32I5W0 >>632
さよなら
さよなら
638デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 16:25:38.87ID:oGs32I5W0 >>635
clearいれるだけ処理遅くなるぞ。不要や
clearいれるだけ処理遅くなるぞ。不要や
639デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 16:26:53.55ID:oGs32I5W0 >>635
C#にはGC機能があるから
C#にはGC機能があるから
640デフォルトの名無しさん (ワッチョイ 2b01-32x/)
2020/05/14(木) 16:40:09.33ID:IzazKMsN0641デフォルトの名無しさん (アウアウウー Sa31-7tKh)
2020/05/14(木) 16:56:49.51ID:0DpJdKOEa >>639
GC機能ってfor文だけでは機能しないと思っていたんですが、初期化時点で古いのは解放されると思っていいんでしょうか?
GC機能ってfor文だけでは機能しないと思っていたんですが、初期化時点で古いのは解放されると思っていいんでしょうか?
642デフォルトの名無しさん (ワッチョイ 9f9e-X6oS)
2020/05/14(木) 17:09:46.09ID:IJMYY1560 >>638
ここは初心者が回答してみるスレじゃないぞw
ここは初心者が回答してみるスレじゃないぞw
643デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 17:11:23.42ID:oGs32I5W0 >>642
はあ?ループ中のリスト毎回clearするなんてアホなコードお前しか書かないだろw
はあ?ループ中のリスト毎回clearするなんてアホなコードお前しか書かないだろw
644デフォルトの名無しさん (ワッチョイ eb36-5iCk)
2020/05/14(木) 17:17:42.65ID:PBygD1y70 それは言えてるな
645デフォルトの名無しさん (ワッチョイ 4124-gIXh)
2020/05/14(木) 17:23:39.55ID:0NVqPTt90 ListのClearは内部バッファの中身をデフォルトクリアしてCount = 0とするだけであってバッファのキャパ自体はそのまま
Clear後に利用する際にそのListインスタンスのキャパ以下の利用であれば内部でbuffer = new T[capacity]みたいな処理が走らないから効率化される可能性があるという話
一般的なプログラマであればこのようなことを考える意味は皆無なのでnewし直すが正解で良い
Clear後に利用する際にそのListインスタンスのキャパ以下の利用であれば内部でbuffer = new T[capacity]みたいな処理が走らないから効率化される可能性があるという話
一般的なプログラマであればこのようなことを考える意味は皆無なのでnewし直すが正解で良い
646デフォルトの名無しさん (ワッチョイ 9f9e-X6oS)
2020/05/14(木) 17:30:23.16ID:IJMYY1560 笑えるwww
今度からいちいちnewしてる馬鹿いたら、
あーこいつは初心者が回答してみるスレの住人だと分かっていいなw
今度からいちいちnewしてる馬鹿いたら、
あーこいつは初心者が回答してみるスレの住人だと分かっていいなw
647デフォルトの名無しさん (アウアウウー Sa31-7tKh)
2020/05/14(木) 17:32:02.50ID:0DpJdKOEa >>645
承知しました。
承知しました。
648デフォルトの名無しさん (ブーイモ MM81-mth5)
2020/05/14(木) 17:36:51.73ID:5fNjH7LKM >>646
恥ずかしい奴
恥ずかしい奴
649デフォルトの名無しさん (ワッチョイ 9f9e-X6oS)
2020/05/14(木) 17:41:31.72ID:IJMYY1560 >>648 ←ループの中でいちいちnewしてたnewtype発見w 初心者スレおもしれーwww
650デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/14(木) 17:45:22.91ID:HxdbbI2M0651デフォルトの名無しさん (ワッチョイ 977b-p2MU)
2020/05/14(木) 17:49:33.37ID:OtqKph2Y0 たまに勘違いしている人がいるみたいだが、このスレは「初心者用」のスレだから
質問者も回答者も「初心者」だよ
>>650
条件が詳しく書いてないんだから「場合によって使い分ける」
このスレでは「問題なく動けばいい」
質問者も回答者も「初心者」だよ
>>650
条件が詳しく書いてないんだから「場合によって使い分ける」
このスレでは「問題なく動けばいい」
652デフォルトの名無しさん (ワッチョイ eb36-5iCk)
2020/05/14(木) 17:56:08.67ID:PBygD1y70 まあ、newし直すのは意味はあるけど、
気になるのは同じ変数名を使い回してないかってことくらいやな
まあ、自分だけのコードなら好きにすればとしか
気になるのは同じ変数名を使い回してないかってことくらいやな
まあ、自分だけのコードなら好きにすればとしか
653デフォルトの名無しさん (ワッチョイ 9f9e-X6oS)
2020/05/14(木) 17:59:19.41ID:IJMYY1560 そういや初期のjavaの実装がそうだったなw 全部new。 糞おせーw
C#を実装したのがおまえらじゃなくてfastcall使いまくるヘジで助かったぜ。
C#を実装したのがおまえらじゃなくてfastcall使いまくるヘジで助かったぜ。
654デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 19:05:04.03ID:oGs32I5W0 ID:IJMYY1560
今日の基地外
今日の基地外
655デフォルトの名無しさん (ブーイモ MM81-mth5)
2020/05/14(木) 19:06:50.12ID:5fNjH7LKM >>653
違うだろ?「勉強になりました。」と素直に謝ればOK
違うだろ?「勉強になりました。」と素直に謝ればOK
656デフォルトの名無しさん (ワッチョイ 9f9e-X6oS)
2020/05/14(木) 20:07:00.35ID:IJMYY1560 なんだもう自演煽りしかできないのか。情けない。
逐一newがいかに速いか知ったかして語ればいいのにw もっと初心者スレらしくアホを晒せw
逐一newがいかに速いか知ったかして語ればいいのにw もっと初心者スレらしくアホを晒せw
657デフォルトの名無しさん (ブーイモ MM81-mth5)
2020/05/14(木) 20:31:18.28ID:5fNjH7LKM >>656
違うだろ?「勉強になりました。」と素直に謝ればOK
違うだろ?「勉強になりました。」と素直に謝ればOK
658デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 23:37:20.23ID:oGs32I5W0 >>656
こーゆうレガシーな情報をアップデート出来ない老害コーダーがスコープとか意識出来ずにスパゲッティコード量産していくんだろうな。
こーゆうレガシーな情報をアップデート出来ない老害コーダーがスコープとか意識出来ずにスパゲッティコード量産していくんだろうな。
659デフォルトの名無しさん (ワッチョイ d379-gIXh)
2020/05/14(木) 23:59:13.36ID:IXDIM6PP0 List<string> 変数 = new List<string>();
for(;;){
// 処理
変数.Clear();
}
for(;;){
List<string> 変数 = new List<string>();
// 処理
}
これで言い争い?
for(;;){
// 処理
変数.Clear();
}
for(;;){
List<string> 変数 = new List<string>();
// 処理
}
これで言い争い?
660デフォルトの名無しさん (ワッチョイ cf61-gjhq)
2020/05/15(金) 00:33:19.38ID:mc9+JSH60 さうです。
661デフォルトの名無しさん (ワッチョイ 9f9e-X6oS)
2020/05/15(金) 06:10:46.00ID:QqRlTuRs0 言い争いなんか誰もしてません。ここは無知無双を観察するスレです。
clear()は遅いですw スパゲッティになるので逐一newしてますw java思想は正しいですw ヘジは老害コーダーですってwww
clear()は遅いですw スパゲッティになるので逐一newしてますw java思想は正しいですw ヘジは老害コーダーですってwww
662デフォルトの名無しさん (ワッチョイ df6a-X4oJ)
2020/05/15(金) 08:09:40.93ID:mZ/V4tLT0 上でも書かれてるけどClearってcount=0にしてるだけだろ?
663デフォルトの名無しさん (アウアウウー Saaf-Wcp/)
2020/05/15(金) 08:38:30.68ID:4F5qAPuFa 怪しい時には実装にあたったほうがいいよ
https://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,ca7bce81a50b0aeb,references
count=0だけじゃなくて配列の個々の値も初期値に戻してる
まあそれでも_sizeがかなり大きくない限りは参照型のインスタンスを都度生成して生成してヒープに置くよりローコストだと思うけど
https://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,ca7bce81a50b0aeb,references
count=0だけじゃなくて配列の個々の値も初期値に戻してる
まあそれでも_sizeがかなり大きくない限りは参照型のインスタンスを都度生成して生成してヒープに置くよりローコストだと思うけど
664デフォルトの名無しさん (ワッチョイ 4f63-4oRg)
2020/05/15(金) 09:26:05.88ID:EzimMGOi0 争いと表現するのもおこがましさを感じる低次元さ
665デフォルトの名無しさん (ワッチョイ 9f9e-X6oS)
2020/05/15(金) 10:16:11.77ID:QqRlTuRs0 若者の夢は壊しちゃダメですよ。プライドはとても高いんですから。
あっ、老害コーダヘジのおれが考える現代風コンパイラのデータ構造の再利用実装についての動画を置いときますねw
https://channel9.msdn.com/Blogs/Seth-Juarez/Anders-Hejlsberg-on-Modern-Compiler-Construction
あっ、老害コーダヘジのおれが考える現代風コンパイラのデータ構造の再利用実装についての動画を置いときますねw
https://channel9.msdn.com/Blogs/Seth-Juarez/Anders-Hejlsberg-on-Modern-Compiler-Construction
666デフォルトの名無しさん (ワッチョイ 0b90-gsGE)
2020/05/15(金) 10:43:10.78ID:0cESgAsr0 議論でとりあえず有名人の名前出したり話すれば、有利になると思ってる単細胞な発想はやめよう
667デフォルトの名無しさん (ワッチョイ 3fac-5iCk)
2020/05/15(金) 11:04:04.35ID:SPdgeRtp0 そろそろ誰かが比較出してくれるんじゃね
それで決着だろ
それで決着だろ
668デフォルトの名無しさん (ドコグロ MM4b-cWUa)
2020/05/15(金) 11:13:54.66ID:/Y86RUc5M >>659
俺なら上を採用する場合一回分無駄になるけどループの先頭(可能であれば使う直前)にClear()を呼ぶ
俺なら上を採用する場合一回分無駄になるけどループの先頭(可能であれば使う直前)にClear()を呼ぶ
669デフォルトの名無しさん (ワッチョイ 459b-gIXh)
2020/05/15(金) 13:18:50.33ID:+lfXgI6Y0 名前、年齢、部署を表示するListViewで、マウスを当てるとポップアップ表示されるように
したく、以下のようにコーディングしました
ListViewItem lList = new ListViewItem(name);
List.ToolTipText = name //ツールチップの設定
ListViewItem.ListViewSubItem lvs = UrlList.SubItems.Add(age);
lvs.Tag = txtSearchWord.Text; //ツールチップの設定
ListViewItem.ListViewSubItem lvs = UrlList.SubItems.Add(section);
lvs.Tag = txtSearchWord.Text; //ツールチップの設定
一応これでポップアップするようになったのですが、位置がリストの表示位置と
離れすぎているのでもう少し「リストの文字に覆いかぶさるように」調節したいのですが
方法はありますでしょうか?
したく、以下のようにコーディングしました
ListViewItem lList = new ListViewItem(name);
List.ToolTipText = name //ツールチップの設定
ListViewItem.ListViewSubItem lvs = UrlList.SubItems.Add(age);
lvs.Tag = txtSearchWord.Text; //ツールチップの設定
ListViewItem.ListViewSubItem lvs = UrlList.SubItems.Add(section);
lvs.Tag = txtSearchWord.Text; //ツールチップの設定
一応これでポップアップするようになったのですが、位置がリストの表示位置と
離れすぎているのでもう少し「リストの文字に覆いかぶさるように」調節したいのですが
方法はありますでしょうか?
670デフォルトの名無しさん (ワッチョイ a72c-CX6h)
2020/05/15(金) 13:21:44.25ID:TG5diAlh0 たぶんC#書いてると上を採用するケースは少ないと思う
671デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/15(金) 13:44:50.97ID:OlE2WbGda672デフォルトの名無しさん (ワッチョイ d379-x0Oq)
2020/05/15(金) 13:52:25.10ID:/bV5Wl+o0 でも下を採用すると
newとGCと場合によってはキャパ超えの処理が複数回
ループ毎に発生する
newとGCと場合によってはキャパ超えの処理が複数回
ループ毎に発生する
673デフォルトの名無しさん (ワッチョイ 2b2c-2D9n)
2020/05/15(金) 13:53:09.86ID:1rmq22iw0 .NETの範囲内だとToolTip自分で設定してマウスオーバーした時に自分でShowするぐらいしかないのかな
https://docs.microsoft.com/en-us/windows/win32/controls/ttn-show
Win32的にはTTN_SHOWでSetWindowPosしろって書いてある
ちなみにTTN_SHOWはListViewの派生クラスでWndProcオーバーライドすると捕まえられる
https://docs.microsoft.com/en-us/windows/win32/controls/ttn-show
Win32的にはTTN_SHOWでSetWindowPosしろって書いてある
ちなみにTTN_SHOWはListViewの派生クラスでWndProcオーバーライドすると捕まえられる
674デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/15(金) 14:08:20.97ID:zOp0aFPX0 >>669
WPFだと表示位置を調整可能だけどWinFormだとデフォルトでは設定できないので
デフォルトのToolTipをオフにして自分でマウスイベント使ってToolTipを表示する
設定するToolTipのShow()メソッドで位置調整可能
WPFだと表示位置を調整可能だけどWinFormだとデフォルトでは設定できないので
デフォルトのToolTipをオフにして自分でマウスイベント使ってToolTipを表示する
設定するToolTipのShow()メソッドで位置調整可能
675デフォルトの名無しさん (ワッチョイ 6d2d-imz8)
2020/05/15(金) 15:37:07.91ID:Szckw36p0 オブジェクト複製の方法(ディープコピーやシャローコピー)を明示的に定義したインターフェイスはありますか
676デフォルトの名無しさん (テテンテンテン MM17-/iGY)
2020/05/15(金) 15:54:49.38ID:kU/eypzIM ない
ICloneableがまさにコピー方法等の規定がなく役に立たないために非推奨となったが、特に代替となるインターフェイスはない
MSとしてはコンストラクタ引数にコピー元オブジェクトを渡すことによるコピーを推奨しており、
シャローコピーなのかディープコピーなのかはそのコンストラクタのドキュメントに書くのがよいと思われる
ICloneableがまさにコピー方法等の規定がなく役に立たないために非推奨となったが、特に代替となるインターフェイスはない
MSとしてはコンストラクタ引数にコピー元オブジェクトを渡すことによるコピーを推奨しており、
シャローコピーなのかディープコピーなのかはそのコンストラクタのドキュメントに書くのがよいと思われる
677デフォルトの名無しさん (アウアウウー Sa31-L7FI)
2020/05/15(金) 16:02:55.82ID:TSXqI5G8a あったとして使い道を思いつかないw
678デフォルトの名無しさん (ブーイモ MM5b-26de)
2020/05/15(金) 16:04:17.52ID:Q6HDAvk8M ICloneableの一般化は有名なアンチパターン
679デフォルトの名無しさん (ワッチョイ 2b2c-2D9n)
2020/05/15(金) 19:43:40.41ID:1rmq22iw0 そんな推奨あったっけ
コンストラクタはasyncにできないし直接デリゲートにできないしで扱いづらいんだよね…
コンストラクタはasyncにできないし直接デリゲートにできないしで扱いづらいんだよね…
680デフォルトの名無しさん (ワッチョイ 4da7-071a)
2020/05/16(土) 02:07:37.57ID:iEtxjNqq0 CS1628 :匿名メソッド、ラムダ式、 またはクエリ式内では、refまたはoutパラメーター 'parameter'で使用できません.
ってエラーが出たらどうしたらいいですか?
ってエラーが出たらどうしたらいいですか?
681デフォルトの名無しさん (ワッチョイ 2352-ri7+)
2020/05/16(土) 02:55:26.32ID:XDh9Q16+0682デフォルトの名無しさん (ワッチョイ 3bad-fRvC)
2020/05/16(土) 02:55:57.76ID:hzvIc6mG0 そのメッセージの通りじゃね?
683デフォルトの名無しさん (ワッチョイ 4da7-071a)
2020/05/16(土) 07:51:09.90ID:iEtxjNqq0 >>682
でも値を戻して欲しいんです
でも値を戻して欲しいんです
684デフォルトの名無しさん (ドコグロ MM4b-cWUa)
2020/05/16(土) 08:33:36.19ID:1poti3B0M685デフォルトの名無しさん (ワッチョイ 4da7-071a)
2020/05/16(土) 09:03:08.49ID:iEtxjNqq0 >>684
よくわかりませんでした
よくわかりませんでした
686デフォルトの名無しさん (ワッチョイ d978-gIXh)
2020/05/16(土) 09:13:21.79ID:YgFCYzEo0 質問者が理解できない(理解しようとしない)だと回答する意味ねぇわな
687デフォルトの名無しさん (ワッチョイ 97ad-SWFu)
2020/05/16(土) 09:36:21.61ID:GaPEU8I00 MSDNは日本語版で読むと意味不明だから、英語で読んだほうが良いよ。
688デフォルトの名無しさん (ワッチョイ 3bad-fRvC)
2020/05/16(土) 09:47:43.94ID:hzvIc6mG0 >>683
だからコードをさらしてみ
だからコードをさらしてみ
689デフォルトの名無しさん (ワッチョイ 3bad-fRvC)
2020/05/16(土) 09:48:00.90ID:hzvIc6mG0 >>687
docsね
docsね
690デフォルトの名無しさん (ドコグロ MM7b-cWUa)
2020/05/16(土) 10:36:14.33ID:brzmqlgbM >>687
この程度ならたいして変わらなくね?
て言うか
> このエラーを回避するには、ローカル変数を使用するか、別のコンストラクトを使用します。
を理解 {でき|しようとし} ない奴が
> To avoid this error, use a local variable or some other construct.
を理解できるとは思えないけど…
この程度ならたいして変わらなくね?
て言うか
> このエラーを回避するには、ローカル変数を使用するか、別のコンストラクトを使用します。
を理解 {でき|しようとし} ない奴が
> To avoid this error, use a local variable or some other construct.
を理解できるとは思えないけど…
691デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/16(土) 10:50:18.03ID:5tLRWKNk0 こんな日本語を理解しようとするのは時間の無駄
Ref または out パラメーター 'parameter' 匿名メソッド、ラムダ式、またはクエリ式の内部を使用することはできません。使用する場合、このエラーが発生した、 in、 ref、またはout匿名メソッド ブロックの内部でパラメーター。
Ref または out パラメーター 'parameter' 匿名メソッド、ラムダ式、またはクエリ式の内部を使用することはできません。使用する場合、このエラーが発生した、 in、 ref、またはout匿名メソッド ブロックの内部でパラメーター。
692デフォルトの名無しさん (ワッチョイ 97ad-SWFu)
2020/05/16(土) 11:26:30.30ID:GaPEU8I00693デフォルトの名無しさん (ワッチョイ 97ad-SWFu)
2020/05/16(土) 11:31:27.82ID:GaPEU8I00 安易にgithubのイシュー切れて、好き勝手文句を書いたように見えたから前回は問題になったんだし、githubでやるより、翻訳するにあたって当たり前のツールで対訳は作るべきだと思うんだがなぁ。
何もTradosを買えって言うわけじゃないけど、何か機械翻訳ではなくてメモリ翻訳+人間でやってほしい感じがするわ。
何もTradosを買えって言うわけじゃないけど、何か機械翻訳ではなくてメモリ翻訳+人間でやってほしい感じがするわ。
694デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/16(土) 11:58:34.03ID:l25Hva970 >>683
returnで返せばええやん
returnで返せばええやん
695デフォルトの名無しさん (ドコグロ MM51-cWUa)
2020/05/16(土) 12:16:10.04ID:Xg9MPSsRM >>691
これ元の英文もおかしいと思う
Cannot use in ref or out parameter 'parameter' inside an anonymous method, lambda expression, or query expression
の 'in' がキーワードと認識できないからわかりにくい訳になってる
in, ref, outを列挙するならカンマでつないで
Cannot use in, ref, or out parameter 'parameter' inside an anonymous method, lambda expression, or query expression
とするのが普通だと思う
これならGoogle翻訳でも
匿名メソッド、ラムダ式、またはクエリ式内では、in、ref、またはoutパラメーター 'parameter'を使用できません
とそれなりの訳文になる
これ元の英文もおかしいと思う
Cannot use in ref or out parameter 'parameter' inside an anonymous method, lambda expression, or query expression
の 'in' がキーワードと認識できないからわかりにくい訳になってる
in, ref, outを列挙するならカンマでつないで
Cannot use in, ref, or out parameter 'parameter' inside an anonymous method, lambda expression, or query expression
とするのが普通だと思う
これならGoogle翻訳でも
匿名メソッド、ラムダ式、またはクエリ式内では、in、ref、またはoutパラメーター 'parameter'を使用できません
とそれなりの訳文になる
696デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/16(土) 14:19:19.88ID:5tLRWKNk0 Cannot use ref or out parameter … だったところに
新機能でinが追加されて修正したやつがミスったんだろ
実際のエラーメッセージはカンマ入りでちゃんと修正されてる
CS1628: Cannot use ref, out, or in parameter 'x' inside an anonymous method…
新機能でinが追加されて修正したやつがミスったんだろ
実際のエラーメッセージはカンマ入りでちゃんと修正されてる
CS1628: Cannot use ref, out, or in parameter 'x' inside an anonymous method…
697デフォルトの名無しさん (ワッチョイ 97ad-SWFu)
2020/05/16(土) 14:33:46.53ID:GaPEU8I00■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 [蚤の市★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」 [ぐれ★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」 [ぐれ★]
- 『DOWNTOWN+』会員数50万人突破で見えてきた 松本人志の“月収4ケタ万円”驚愕収入 [阿弥陀ヶ峰★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【芸能】永遠の童顔′ウ「光GENJI」53歳になった山本淳一の近影に「若いな?」「元気パワーもらえるよっ」 [湛然★]
- 日本人「憲法9条があれば侵略されないって叫んでた売国左翼のゴミどもは今どんな気分?😂wwwwww」 [441660812]
- 婚活女子(43)「アラフォーのおっさんが『同世代の女はおばさんに見える。10歳くらい歳の離れた女性がいい』と言っててドン引きしてる… [257926174]
- 【悲報】ドンキのドンチキとかいう激安チキン、バズりすぎてガチで売ってないwwwwwwwwwwwwwwwwww
- 安倍晋三「日本よ、世界の真ん中で咲き誇れ」高市早苗「日本外交を咲き誇らせてまいります」 [696684471]
- 女死ね
- 【悲報】東京都民さん、20過ぎてるのに自転車に乗っててて大炎上wwwwwwwwwwww女「いい歳した男で自転車に乗るのは知的障がい者だけだよ? [483447288]
