!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:IsrGexiaF577デフォルトの名無しさん (ワッチョイ 0778-ts7H)
2020/05/03(日) 11:04:56.94ID:m1rOQWOt0 Windows以外のOSでも動くからそれは間違ってる
578デフォルトの名無しさん (アウアウエー Sa9f-ur4w)
2020/05/03(日) 11:47:56.93ID:zajIy9nAa Windows に WSL BOW 等があるように
C# にまるごと Windows が付いてくる訳じゃないのな?
C# にまるごと Windows が付いてくる訳じゃないのな?
579デフォルトの名無しさん (ワッチョイ dfad-3E9b)
2020/05/03(日) 14:41:41.12ID:O9QRGsEr0 >>576
何を言ってるんですか?
何を言ってるんですか?
580デフォルトの名無しさん (ワッチョイ 075f-MN6J)
2020/05/05(火) 03:04:26.70ID:ODFnlIPd0 >>552
プロジェクト内のファイル書き換えればいける
→https://github.com/cefsharp/CefSharp/issues/1714
もしくはプロジェクトの設定でAnyCPUじゃなくせばおk
プロジェクト内のファイル書き換えればいける
→https://github.com/cefsharp/CefSharp/issues/1714
もしくはプロジェクトの設定でAnyCPUじゃなくせばおk
581デフォルトの名無しさん (ワッチョイ 075f-LBUi)
2020/05/05(火) 07:23:25.99ID:AqRvYPWH0 【新型コロナ】富士フイルム、ゲイツ財団などからコロナ治療薬の製造受託
https://asahi.2ch.net/test/read.cgi/newsplus/1588319133/
c# プログラマ専用病院を作って、外から鍵かけて、理論的致死量の5倍ぐらい未承認治療薬を投与すれば開発速度が上がると思う。
コンピューターオタクに人権はないから、人権侵害にはならないし、c#プログラミングなんて 5ch とスタックオーバーフローを見れば誰でもできるから、プログラマ不足にもならない。
https://asahi.2ch.net/test/read.cgi/newsplus/1588319133/
c# プログラマ専用病院を作って、外から鍵かけて、理論的致死量の5倍ぐらい未承認治療薬を投与すれば開発速度が上がると思う。
コンピューターオタクに人権はないから、人権侵害にはならないし、c#プログラミングなんて 5ch とスタックオーバーフローを見れば誰でもできるから、プログラマ不足にもならない。
582デフォルトの名無しさん (ワッチョイ 2301-jgrQ)
2020/05/12(火) 00:36:35.47ID:xM8JclQ70 ttps://qiita.com/satorimon/items/5d2e6db7fe938fee958c
C#でこのページを参考にしたコードを書いているのですが、
var squares = contours.Where(a =>
{・・・})
のところの記述の意味がよくわかりません
中で宣言やらreturnやらしていて何がなんだか・・・でもビルドすると正常に動いてます
Whereで調べてもこのような構文での使い方が出てこなくて困っています
C#でこのページを参考にしたコードを書いているのですが、
var squares = contours.Where(a =>
{・・・})
のところの記述の意味がよくわかりません
中で宣言やらreturnやらしていて何がなんだか・・・でもビルドすると正常に動いてます
Whereで調べてもこのような構文での使い方が出てこなくて困っています
583デフォルトの名無しさん (ササクッテロレ Sp33-wEAr)
2020/05/12(火) 00:42:27.10ID:oML3x0+6p >>582
ただの無名関数にしか見えないが...
ただの無名関数にしか見えないが...
584デフォルトの名無しさん (ワッチョイ 6a02-gIrT)
2020/05/12(火) 00:43:24.46ID:SOptQxct0 LINQというものです
585デフォルトの名無しさん (ワッチョイ 5b2d-C0uG)
2020/05/12(火) 00:44:45.73ID:Rm1nFE+i0586デフォルトの名無しさん (ワッチョイ 2a01-Yqly)
2020/05/12(火) 00:57:05.47ID:rr7jvTFY0 Whereで調べても使い方出てくるよ
IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.where?view=netcore-3.1
ただリファレンスにあるWhereメソッドのシグニチャを
初心者が理解できるようになるまでの道のりは結構長いな
public static IEnumerable<TSource> Where<TSource> (this IEnumerable<TSource> source, Func<TSource,bool> predicate);
IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.where?view=netcore-3.1
ただリファレンスにあるWhereメソッドのシグニチャを
初心者が理解できるようになるまでの道のりは結構長いな
public static IEnumerable<TSource> Where<TSource> (this IEnumerable<TSource> source, Func<TSource,bool> predicate);
587デフォルトの名無しさん (アウアウエー Sae2-oySJ)
2020/05/12(火) 01:39:09.58ID:zR/fg8GXa 親クラスを参照する方法はありますでしょうか。
Javaで書くなら以下のイメージとなります。
class A {
int val;
class B {
void Method() {
A.this.val; // ここで親クラスを参照したい
}
}
}
Javaで書くなら以下のイメージとなります。
class A {
int val;
class B {
void Method() {
A.this.val; // ここで親クラスを参照したい
}
}
}
588デフォルトの名無しさん (ワッチョイ 2301-oySJ)
2020/05/12(火) 01:41:52.90ID:xM8JclQ70 >>582です
理解出来ましたありがとうございます!
理解出来ましたありがとうございます!
589デフォルトの名無しさん (ワッチョイ 5b2c-1Non)
2020/05/12(火) 01:47:51.53ID:ApYFe+qM0590デフォルトの名無しさん (アウアウウー Sa1f-OGoq)
2020/05/12(火) 01:54:35.84ID:DaJUnBm/a591デフォルトの名無しさん (アウアウエー Sae2-oySJ)
2020/05/12(火) 01:59:01.93ID:zR/fg8GXa >>589-590
ありがとうございます
ありがとうございます
592デフォルトの名無しさん (ワッチョイ 5b01-gIrT)
2020/05/12(火) 22:22:13.93ID:/QEFAV670 参照型の変数ってないんですか?
int c = Properties.Settings.Default.Counter
みたいにエイリアスっぽく使いたいのですが、何かいい方法あるでしょか
int c = Properties.Settings.Default.Counter
みたいにエイリアスっぽく使いたいのですが、何かいい方法あるでしょか
593デフォルトの名無しさん (ワッチョイ be7b-nLaH)
2020/05/12(火) 22:35:54.36ID:Qqvr4tTg0594デフォルトの名無しさん (ワッチョイ 5b2c-1Non)
2020/05/12(火) 22:41:58.71ID:ApYFe+qM0 エイリアスっていうからC++でいうところのT&型かと思ったけど違うのか?
C#で「参照型の変数」って普通のstring text;とかDataTable table;とかになるけど
C#で「参照型の変数」って普通のstring text;とかDataTable table;とかになるけど
595デフォルトの名無しさん (ワッチョイ 6a6a-oySJ)
2020/05/12(火) 23:23:20.17ID:qR+vLqM00 ref のことじゃね?
ref var x = ref Xxxxx;
ref var x = ref Xxxxx;
596デフォルトの名無しさん (ワッチョイ 532f-EoUu)
2020/05/13(水) 00:03:03.61ID:J5ZD6qBk0 int? のことじゃね?
597デフォルトの名無しさん (ワッチョイ 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としてはコンストラクタ引数にコピー元オブジェクトを渡すことによるコピーを推奨しており、
シャローコピーなのかディープコピーなのかはそのコンストラクタのドキュメントに書くのがよいと思われる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 [蚤の市★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」 [ぐれ★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」 [ぐれ★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 『DOWNTOWN+』会員数50万人突破で見えてきた 松本人志の“月収4ケタ万円”驚愕収入 [阿弥陀ヶ峰★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 眼帯つけようかな
- 天ぷら食いたい
- 勇者の母「ん……ふっ、起きなさいっ……私のっ……私のかわいい坊やっ、今日は貴方が……んはっ……勇者として旅立つ日……うふふ」
- 大塚芳忠のASMR
- 東京てこんな女ばっかいるの?
- ペヤング超大盛り完食出来そうもない
