!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part153
https://mevius.5ch.net/test/read.cgi/tech/1639403601/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://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/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・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#(初心者用) Part154
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0fe3-wadS)
2022/02/09(水) 23:13:39.45ID:1A90hyai0412デフォルトの名無しさん (ワッチョイ 9bc7-wAOu)
2022/04/11(月) 00:20:20.27ID:x2gvkajx0 クラスメンバーはインスタンスメンバーとしてアクセスできないという認識です。
ですが、インスタンスのメソッドからであればクラスメンバーにアクセスできることが分かりました。
これはなぜですか?
ですが、インスタンスのメソッドからであればクラスメンバーにアクセスできることが分かりました。
これはなぜですか?
413デフォルトの名無しさん (ワッチョイ 6fd2-WLRK)
2022/04/11(月) 01:33:02.08ID:MA36Pnxj0 あなたがメンバーと呼んでるものはフィールドと呼ぶべき
おそらく int _a;のように宣言したものでしょう
フィールドはインスタンスメンバとしてアクセスは可能。
だけどC#的にフィールドに直接アクセスするのはやめようねってことになってる。
大抵のフィールドはprivate宣言されてるからアクセスできないだけ
おそらく int _a;のように宣言したものでしょう
フィールドはインスタンスメンバとしてアクセスは可能。
だけどC#的にフィールドに直接アクセスするのはやめようねってことになってる。
大抵のフィールドはprivate宣言されてるからアクセスできないだけ
414デフォルトの名無しさん (ワッチョイ e22c-tEy/)
2022/04/11(月) 02:14:22.40ID:AXHTI4fJ0 単にHogeクラス内ではHoge.もthis.も省略できるってのを混同してるだけな気がする
class Hoge {
public static readonly int A = 0;
public void Piyo() {
Console.WriteLine(A); // アクセスできる Hoge内ではHoge.は省略できる
Console.WriteLine(Hoge.A); // アクセスできる
Console.WriteLine(this.A); // エラー、アクセスできない
}
}
var obj = new Hoge();
Console.WriteLine(Hoge.A); // アクセスできる
Console.WriteLine(obj.A); // エラー、アクセスできない
class Hoge {
public static readonly int A = 0;
public void Piyo() {
Console.WriteLine(A); // アクセスできる Hoge内ではHoge.は省略できる
Console.WriteLine(Hoge.A); // アクセスできる
Console.WriteLine(this.A); // エラー、アクセスできない
}
}
var obj = new Hoge();
Console.WriteLine(Hoge.A); // アクセスできる
Console.WriteLine(obj.A); // エラー、アクセスできない
415デフォルトの名無しさん (ブーイモ MM3e-Ds6D)
2022/04/11(月) 03:50:25.34ID:6OUa/NLdM 412が言いたいのは
class hoge{
private int v;
public hoge(int v){
this.v=v;
}
public void add(hoge n){
this.v+=n.v; //nのprivateなvにアクセスしてる?
}
こういうことか?理由はしらんけど。
class hoge{
private int v;
public hoge(int v){
this.v=v;
}
public void add(hoge n){
this.v+=n.v; //nのprivateなvにアクセスしてる?
}
こういうことか?理由はしらんけど。
416デフォルトの名無しさん (ワッチョイ 6f24-soYJ)
2022/04/11(月) 13:41:04.22ID:2IiYezuY0 初心者にありがちな静動の区別がついてないやつじゃないか
public static int A; ← これは実体なのでどこからでもすぐにアクセス可能
public int A; ← これは単なる設計図でしかなく実体ではないのでインスタンスという実体を通さないとアクセスできない
public static int A; ← これは実体なのでどこからでもすぐにアクセス可能
public int A; ← これは単なる設計図でしかなく実体ではないのでインスタンスという実体を通さないとアクセスできない
417デフォルトの名無しさん (アウアウウー Sabb-qGV0)
2022/04/11(月) 13:54:40.12ID:Hu2NcYeja > public static int A; ← これは実体なのでどこからでもすぐにアクセス可能
これが成り立たない(アクセスできない)理由教えてくれって話だろ
そんなもん。そうなってるからって覚えておけばいい。疑問に思うな
これが成り立たない(アクセスできない)理由教えてくれって話だろ
そんなもん。そうなってるからって覚えておけばいい。疑問に思うな
418デフォルトの名無しさん (ワッチョイ 227c-EhK1)
2022/04/11(月) 15:57:10.61ID:uofIS0L20 そもそもの意味が分かってないのかな
staticとそうでないメンバーはアクセスの方法がそもそも違うよね
基本的にstaticなメンバー変数使ったりしないけど
良くあるケースはシングルトンでそのインスタンスは1個しか存在しないというケースで
自分のクラスで自分自身のインスタンスをstaticで保存しておくみたいな事はあるけどね
staticとそうでないメンバーはアクセスの方法がそもそも違うよね
基本的にstaticなメンバー変数使ったりしないけど
良くあるケースはシングルトンでそのインスタンスは1個しか存在しないというケースで
自分のクラスで自分自身のインスタンスをstaticで保存しておくみたいな事はあるけどね
419デフォルトの名無しさん (ワッチョイ 6f24-soYJ)
2022/04/11(月) 16:49:53.85ID:2IiYezuY0 >>417
だから「実体じゃなくて単なる設計図だから」って言ってるやろ
だから「実体じゃなくて単なる設計図だから」って言ってるやろ
420デフォルトの名無しさん (ワッチョイ c235-LT45)
2022/04/11(月) 16:51:08.57ID:fsqAayw10 COM+とかのCUnknownクラスの実装とか、親クラスが子クラスの数を知るために親クラスで静的変数でカウントしてる。
QueryInterfaceとかAddRefとかReleaseのあれ。
QueryInterfaceとかAddRefとかReleaseのあれ。
421デフォルトの名無しさん (ワッチョイ 9bc7-wAOu)
2022/04/11(月) 23:27:42.68ID:x2gvkajx0 412です
コードを貼ります。
同じiにアクセスするのに、MainメソッドではエラーになりますがTestMethodではコンパイルが通ります。
これはこういうものだと覚えるしかないですか?
すみませんがご教示お願いします。
class Hoge
{
public static int i = 0;
public void TestMethod()
{
Console.WriteLine(i);
}
static void Main(string[] args)
{
var obj = new Hoge();
Console.WriteLine(obj.i); //エラー
obj.TestMethod(); //アクセスOK
}
}
コードを貼ります。
同じiにアクセスするのに、MainメソッドではエラーになりますがTestMethodではコンパイルが通ります。
これはこういうものだと覚えるしかないですか?
すみませんがご教示お願いします。
class Hoge
{
public static int i = 0;
public void TestMethod()
{
Console.WriteLine(i);
}
static void Main(string[] args)
{
var obj = new Hoge();
Console.WriteLine(obj.i); //エラー
obj.TestMethod(); //アクセスOK
}
}
422デフォルトの名無しさん (ワッチョイ cb02-9+GH)
2022/04/11(月) 23:38:14.91ID:M/snaKK00 staticの意味判ってる?
423デフォルトの名無しさん (アウアウウー Sabb-qGV0)
2022/04/12(火) 00:10:31.66ID:ONhvWtwta 理由はあるのかもしれないけど、そういうものと思うしかない
c++だとどっちでもアクセスできるんだけどな
c++だとどっちでもアクセスできるんだけどな
424デフォルトの名無しさん (ワッチョイ e2e4-vgyN)
2022/04/12(火) 00:10:46.17ID:K1UtBmdi0425デフォルトの名無しさん (ワッチョイ 9b2f-U3yj)
2022/04/12(火) 00:20:10.77ID:rqESlhgY0 staticとインスタンスの概念がちゃんと理解できてない気がするなぁ
ところでc#で静的メンバをクラスメンバって呼ぶ?
ところでc#で静的メンバをクラスメンバって呼ぶ?
426デフォルトの名無しさん (ブーイモ MM02-Znm5)
2022/04/12(火) 00:27:19.27ID:rrWkQMspM JavaとかVBとかPythonとかobj.iでも
アクセスできる言語のほうが多いよね
アクセスできる言語のほうが多いよね
427デフォルトの名無しさん (ワッチョイ 6fd2-WLRK)
2022/04/12(火) 00:37:07.08ID:E/HectKH0 Hogeクラス内からアクセスする時にstatic memberとinstance memberの両方をiのようにアクセスできる。
static memberならHoge.iの省略形。
instance memberならthis.iの省略形。
Hogeクラス内からでもthis.iとは書けない。
static memberならHoge.iの省略形。
instance memberならthis.iの省略形。
Hogeクラス内からでもthis.iとは書けない。
428デフォルトの名無しさん (ワッチョイ 6fd2-WLRK)
2022/04/12(火) 00:41:00.50ID:E/HectKH0 >>425
https://ufcpp.net/study/csharp/oo_static.html
静的メンバー(static member)==クラスメンバー
らしい
クラスメンバーという用語自体使わんから知らんかったが
https://ufcpp.net/study/csharp/oo_static.html
静的メンバー(static member)==クラスメンバー
らしい
クラスメンバーという用語自体使わんから知らんかったが
429デフォルトの名無しさん (ワッチョイ 9bc7-wAOu)
2022/04/12(火) 00:46:53.41ID:0S3ZFLlI0 省略形を理解していませんでした。
Hoge内のiはHoge.iの省略形なのですね。
ありがとうございました。
Hoge内のiはHoge.iの省略形なのですね。
ありがとうございました。
430デフォルトの名無しさん (オイコラミネオ MMe7-EhK1)
2022/04/12(火) 20:27:51.26ID:81T++xV4M >>425
C#では使わないし言葉
一部のJavaの人が使ってる概念
クラスメソッドと言う言葉があるけどJavaの人たちは
インスタンスについてるんじゃなくてクラスそのものについてるメソッドだからとそう呼んでる
ところがクラスメンバーはタダのメンバーとstaticの場合両方ともあるから意味があいまい
C#では使わないし言葉
一部のJavaの人が使ってる概念
クラスメソッドと言う言葉があるけどJavaの人たちは
インスタンスについてるんじゃなくてクラスそのものについてるメソッドだからとそう呼んでる
ところがクラスメンバーはタダのメンバーとstaticの場合両方ともあるから意味があいまい
431デフォルトの名無しさん (オイコラミネオ MMe7-EhK1)
2022/04/12(火) 20:32:46.74ID:81T++xV4M メンバーはメソッド、フィールド、プロパティ、イベントや演算子とかその他もろもろのクラスの構成部品
432デフォルトの名無しさん (ワッチョイ bbe6-hh9d)
2022/04/12(火) 20:47:58.57ID:da5RcI7d0 スタティッククラスメンバーフィールドとヨベ
433デフォルトの名無しさん (アウアウウー Sabb-qGV0)
2022/04/12(火) 20:53:22.08ID:dmzMUrMCa 変数、関数、setget
この三つにしろ。よくわからないカタカナ消えろ
この三つにしろ。よくわからないカタカナ消えろ
434デフォルトの名無しさん (ワッチョイ 42a9-LT45)
2022/04/12(火) 20:54:31.85ID:6dxddh7K0 >>433
よくわかれよw
よくわかれよw
435デフォルトの名無しさん (ワッチョイ 12bd-eTSu)
2022/04/12(火) 21:29:01.10ID:xUorz5TJ0 変数名を決める時のルールって決めてます?もしくは今までこう付けたとか何かにメモってたりします?
436デフォルトの名無しさん (ワッチョイ 8e66-7/iV)
2022/04/12(火) 21:37:33.60ID:EgjH8LRN0 インスタンスに属するか、鋳型のクラスに属するかだから
静的メンバーでもクラスメンバーでも通じるかなってかんじだが、
静的メンバー系の言い方の方がより正確に伝わりやすいね。
クラスメンバーの言い方ぢとただのグローバル関数との対比でクラスメンバーとかメンバー関数とかいってるのかな?
と思う可能性も大きいから、
前後の話中の文脈に依存するように思う。
静的メンバーでもクラスメンバーでも通じるかなってかんじだが、
静的メンバー系の言い方の方がより正確に伝わりやすいね。
クラスメンバーの言い方ぢとただのグローバル関数との対比でクラスメンバーとかメンバー関数とかいってるのかな?
と思う可能性も大きいから、
前後の話中の文脈に依存するように思う。
437デフォルトの名無しさん (ワッチョイ 6f24-soYJ)
2022/04/12(火) 21:39:49.41ID:5XdpcaKo0438デフォルトの名無しさん (ワッチョイ 362d-wyX0)
2022/04/12(火) 22:01:02.92ID:h+CbKqfb0 >>435
MSのコーディング規約を参考にしてみては
C# のコーディング規則
https://docs.microsoft.com/ja-jp/dotnet/csharp/fundamentals/coding-style/coding-conventions
MSのコーディング規約を参考にしてみては
C# のコーディング規則
https://docs.microsoft.com/ja-jp/dotnet/csharp/fundamentals/coding-style/coding-conventions
439デフォルトの名無しさん (ワッチョイ cb02-SU+f)
2022/04/12(火) 22:15:42.17ID:POzO28Jn0 アプリケーションの多重起動を抑制するのはよくありますが、同一のアプリケーションが既に起動中だった場合に起動中のアプリケーションを終了させて新たに起動したアプリケーションをアクティブにする方法ってあるでしょうか
440デフォルトの名無しさん (ワッチョイ 6f24-soYJ)
2022/04/12(火) 22:19:30.15ID:5XdpcaKo0 >>439
Process.Kill利用して出来るけど普通は既に起動中の方をアクティブにして自身は即終了ってやり方が一般的だけどな
Process.Kill利用して出来るけど普通は既に起動中の方をアクティブにして自身は即終了ってやり方が一般的だけどな
441デフォルトの名無しさん (アウアウウー Sabb-qGV0)
2022/04/12(火) 22:26:39.14ID:dmzMUrMCa >>439
プロセス間通信で終了やアクティブにする独自コマンド発行する
プロセス間通信で終了やアクティブにする独自コマンド発行する
442デフォルトの名無しさん (ワッチョイ cb02-SU+f)
2022/04/12(火) 22:31:50.96ID:POzO28Jn0 >>440-441
ご回答ありがとうございます
対象のアプリケーションはスケジューラ的なもので自動起動→自動終了を行なっていて起動時のみ処理を走らせているので、なんらかのエラーで自動終了が正常に行われなかった時の対策として取り入れておこうかと思った次第です
ご回答ありがとうございます
対象のアプリケーションはスケジューラ的なもので自動起動→自動終了を行なっていて起動時のみ処理を走らせているので、なんらかのエラーで自動終了が正常に行われなかった時の対策として取り入れておこうかと思った次第です
443デフォルトの名無しさん (ワッチョイ 12bd-eTSu)
2022/04/12(火) 23:30:49.49ID:xUorz5TJ0 >>437>>438
質問が悪かったです。
同じ意味の変数名で、アプリごとで違った命名にしてしまう事があったりするのですがその辺は皆さんは統一性があるのかなと。
arrTtlCost、arrCostTtlとかdmlSPt、dmlSrtPtとか
iをidxでやったりとか...
質問が悪かったです。
同じ意味の変数名で、アプリごとで違った命名にしてしまう事があったりするのですがその辺は皆さんは統一性があるのかなと。
arrTtlCost、arrCostTtlとかdmlSPt、dmlSrtPtとか
iをidxでやったりとか...
444デフォルトの名無しさん (ワッチョイ 47ac-btYf)
2022/04/13(水) 00:35:02.01ID:gNbyR7HN0 ワイんとこはない
別に気にされない
それはともかくハンガリアンはちょっと。。
別に気にされない
それはともかくハンガリアンはちょっと。。
445デフォルトの名無しさん (ワッチョイ 86bb-zKnc)
2022/04/13(水) 01:04:13.27ID:bIYlHEPm0 VSの機能充実してるしおれも気にしたことないな
個人的にはC/C++のコードにありがちな変数名の過度な省略はやめてほしいと感じる
ManagerをManとかMgrにしたり>>443の例でもarrとかdmlとか意味調べようがないし困るわ
個人的にはC/C++のコードにありがちな変数名の過度な省略はやめてほしいと感じる
ManagerをManとかMgrにしたり>>443の例でもarrとかdmlとか意味調べようがないし困るわ
446デフォルトの名無しさん (アウアウウー Sabb-qGV0)
2022/04/13(水) 01:09:19.48ID:Ndo4Py5Ha ルールはあった方がいい。どんなルールを採用するかは宗教論争だけどw
俺はハンガリアン大好き
IDEが一文字目は大文字にしろみたいにうるさいのは.editorconfigで黙らせてる
俺はハンガリアン大好き
IDEが一文字目は大文字にしろみたいにうるさいのは.editorconfigで黙らせてる
447デフォルトの名無しさん (ワッチョイ ef79-fyPK)
2022/04/13(水) 01:10:52.17ID:E/7NmpCy0 大文字始まりはMSのメソッドと被るから嫌
448デフォルトの名無しさん (ワッチョイ 86bb-zKnc)
2022/04/13(水) 01:20:26.33ID:bIYlHEPm0449デフォルトの名無しさん (ワッチョイ 6fd2-WLRK)
2022/04/13(水) 01:33:13.48ID:qfz8Xp880 ハンガリアン法はIDEがゴミだった時代の名残りだと思ってる
そもそもblnHoge書いたところでなにがしたいかわからん
Hogeable,Hoged,Hogeingとか書いた方がよっぽど有益
そもそもblnHoge書いたところでなにがしたいかわからん
Hogeable,Hoged,Hogeingとか書いた方がよっぽど有益
450デフォルトの名無しさん (アウアウウー Sabb-qGV0)
2022/04/13(水) 01:49:53.93ID:Ndo4Py5Ha 何示してるのか分からないっていうのは、ルール決めてないからだよ
単にハンガリアンにしますというのはルールなしと同じ
ルールが整ってるハンガリアンだと他人のソースでもひと目でそれがなにか分かるから読むのが楽になる
単にハンガリアンにしますというのはルールなしと同じ
ルールが整ってるハンガリアンだと他人のソースでもひと目でそれがなにか分かるから読むのが楽になる
451デフォルトの名無しさん (ワッチョイ cb02-9+GH)
2022/04/13(水) 02:02:43.40ID:l0BqyJbj0 昔はハンガリアン使ってたな
今のVSなら型すぐ判るし必要性を感じない
今のVSなら型すぐ判るし必要性を感じない
452デフォルトの名無しさん (ワッチョイ 86bb-zKnc)
2022/04/13(水) 02:13:05.87ID:bIYlHEPm0 ハンガリアンはぶっちゃけ時代遅れだと思うし
変数名に型情報入れるなんて途中で型変えたらどうすんねんアホかと思うわ
IDEが充実してない時代はよかったんだろうが今となってはデメリットが勝る
変数名に型情報入れるなんて途中で型変えたらどうすんねんアホかと思うわ
IDEが充実してない時代はよかったんだろうが今となってはデメリットが勝る
453デフォルトの名無しさん (ワッチョイ 8e66-7/iV)
2022/04/13(水) 02:24:06.55ID:pz/7LR9w0 まあIDEが進化してるから変数名すぐに正しく変えれるけどな。
ヘボった言語じゃなければ。
ヘボった言語じゃなければ。
454デフォルトの名無しさん (ワッチョイ 227c-EhK1)
2022/04/13(水) 02:32:33.10ID:P5y02Tze0 win32api時代は使ってたけどC#になったら使わなくなったな
今なら変数名のリファクター(変更)何かVSやその他IDEでも普通に出来るし
適当に名前付けていても問題無いしなぁ
今なら変数名のリファクター(変更)何かVSやその他IDEでも普通に出来るし
適当に名前付けていても問題無いしなぁ
455デフォルトの名無しさん (アウグロ MM7a-fyPK)
2022/04/13(水) 07:08:42.28ID:Gu4WFashM c++やるときは型によって処理が変わるのであったほうが便利
456デフォルトの名無しさん (ワッチョイ c28b-xb3m)
2022/04/13(水) 13:39:58.01ID:5l1VnwO30 C#からPowserShellを実行して
登録済みのVPN一覧を取得しようとしています。
コマンド発行までは出来たのですが戻り値
Name ServerAddress の取得が出来ません。
どの様なコードを書けばよいでしょうか?
using (var invoker = new RunspaceInvoke())
{
var result = invoker.Invoke(source);
}
resultに値が入るハズなのですが・・・分かりません。
PowerShell上で実行するとVPN一覧が表示されています。
登録済みのVPN一覧を取得しようとしています。
コマンド発行までは出来たのですが戻り値
Name ServerAddress の取得が出来ません。
どの様なコードを書けばよいでしょうか?
using (var invoker = new RunspaceInvoke())
{
var result = invoker.Invoke(source);
}
resultに値が入るハズなのですが・・・分かりません。
PowerShell上で実行するとVPN一覧が表示されています。
457デフォルトの名無しさん (ワッチョイ c235-LT45)
2022/04/13(水) 17:42:47.77ID:7n1NDRKI0 resultにプロパティがあるんじゃね?
ウォッチで見てみたら。
ウォッチで見てみたら。
458デフォルトの名無しさん (ワッチョイ c28b-xb3m)
2022/04/13(水) 17:44:10.52ID:5l1VnwO30 >>457
それがないんですよ。。。
それがないんですよ。。。
459デフォルトの名無しさん (ワッチョイ c633-iXSd)
2022/04/13(水) 18:57:53.41ID:zw+GE19b0 >>456
resultってコレクションらしいけど、キャストが必要なんじゃない?
resultってコレクションらしいけど、キャストが必要なんじゃない?
460デフォルトの名無しさん (ワッチョイ e26a-ceou)
2022/04/13(水) 20:04:59.41ID:LSUEwVF80 そもそも、PowerShellから戻り値としてちゃんと渡されてるの?
PowerShell上でって標準出力に吐いているだけなんてオチじゃないよね?
PowerShell上でって標準出力に吐いているだけなんてオチじゃないよね?
461デフォルトの名無しさん (ワッチョイ a201-nj64)
2022/04/13(水) 21:20:33.91ID:xBL6qyXw0462デフォルトの名無しさん (ワッチョイ c28b-xb3m)
2022/04/13(水) 23:58:24.80ID:5l1VnwO30463デフォルトの名無しさん (ワッチョイ c28b-xb3m)
2022/04/13(水) 23:58:46.67ID:5l1VnwO30 因みにC#からPowerShellコマンドとしてこれを発行しています。
Get-VpnConnection
Get-VpnConnection
464デフォルトの名無しさん (ワッチョイ c28b-xb3m)
2022/04/14(木) 00:02:49.87ID:SSeEsvrQ0 >>461
ありがとうございます!取れました!!!!
ありがとうございます!取れました!!!!
465デフォルトの名無しさん (ワッチョイ 47ac-btYf)
2022/04/14(木) 00:30:18.01ID:ps2WeHPI0 いえいえ
466デフォルトの名無しさん (オイコラミネオ MMe7-jTyu)
2022/04/14(木) 08:59:15.22ID:91yoHZnRM ボケ防止にC#を再開したいのですがボケ症状の無限リープに。
何が問題なのかわからない痴呆状態に。。
do
{
text = text.Replace("\n\n", "\n");
text = text.Replace(" ", " ");
} while (text.IndexOf("\n\n") != -1 || text.IndexOf(" ") != -1);
何が問題なのかわからない痴呆状態に。。
do
{
text = text.Replace("\n\n", "\n");
text = text.Replace(" ", " ");
} while (text.IndexOf("\n\n") != -1 || text.IndexOf(" ") != -1);
467デフォルトの名無しさん (オイコラミネオ MMe7-jTyu)
2022/04/14(木) 09:07:33.01ID:91yoHZnRM こう書いたら抜けたからdo-whileがそういう仕様なのかな。
int i1;
int i2;
do
{
text = text.Replace("\n\n", "\n");
text = text.Replace(" ", " ");
i1 =text.IndexOf("\n\n") ;
i2 = text.IndexOf(" ");
} while (i1 != -1 ||i2 != -1);
int i1;
int i2;
do
{
text = text.Replace("\n\n", "\n");
text = text.Replace(" ", " ");
i1 =text.IndexOf("\n\n") ;
i2 = text.IndexOf(" ");
} while (i1 != -1 ||i2 != -1);
468デフォルトの名無しさん (ブーイモ MM3e-wy5Z)
2022/04/14(木) 09:10:33.55ID:5eU+We9dM do~whileで回さなくてもReplaceだけでいいでしょ
469デフォルトの名無しさん (オイコラミネオ MMe7-jTyu)
2022/04/14(木) 09:20:03.14ID:91yoHZnRM あれ、やっぱりだめだ。
textの内容によってはi2が16000以上の数字のまま無限ループになる。
どうして?
int i1;
int i2;
do
{
text = text.Replace("\n\n", "\n");
text = text.Replace(" ", " ");
i1 = text.IndexOf("\n\n");
i2 = text.IndexOf(" ");
} while (i1 != -1 || i2 != -1);
textの内容によってはi2が16000以上の数字のまま無限ループになる。
どうして?
int i1;
int i2;
do
{
text = text.Replace("\n\n", "\n");
text = text.Replace(" ", " ");
i1 = text.IndexOf("\n\n");
i2 = text.IndexOf(" ");
} while (i1 != -1 || i2 != -1);
470デフォルトの名無しさん (アウアウウー Sabb-qGV0)
2022/04/14(木) 09:37:31.44ID:BtLi5peKa i2がってことはindexofの中のスペースがひとつなんじゃない?
indexofでやるのは中サーチしてで時間かかるから、length変化あるかのほうがいい
indexofでやるのは中サーチしてで時間かかるから、length変化あるかのほうがいい
471デフォルトの名無しさん (オイコラミネオ MMe7-jTyu)
2022/04/14(木) 09:56:41.76ID:91yoHZnRM charに変換すると\0になるからどうやらこれが「 」にヒットしてしまうらしい?
とりあえず棚上げして他の場所を弄る事にします。
とりあえず棚上げして他の場所を弄る事にします。
472デフォルトの名無しさん (スプッッ Sd22-WLRK)
2022/04/14(木) 10:24:14.77ID:6oGVEDEnd "\n\n\n"が生き残るからループは必須
なにが起こってるか知りたいならtext内容の16進ダンプをループ内で出力しなよ
VisualStudioのブレークポインタ貼るだけでもいいし
なにが起こってるか知りたいならtext内容の16進ダンプをループ内で出力しなよ
VisualStudioのブレークポインタ貼るだけでもいいし
473デフォルトの名無しさん (ブーイモ MM8e-wy5Z)
2022/04/14(木) 10:36:51.11ID:a0BRjs1jM RegexのReplaceを使うんだ
474デフォルトの名無しさん (ワッチョイ 627b-yfbP)
2022/04/14(木) 11:52:27.27ID:xhb3HQTe0 >>469
再現しないし>>471の理屈もわからないけどdo whileのその形じゃないとだめなの?
https://dotnetfiddle.net/wsvKwq
あと5chでは半角スペース連続は書き換えられるから別の文字をサンプルにするか>>1のコード書き込みサイトを利用してください
再現しないし>>471の理屈もわからないけどdo whileのその形じゃないとだめなの?
https://dotnetfiddle.net/wsvKwq
あと5chでは半角スペース連続は書き換えられるから別の文字をサンプルにするか>>1のコード書き込みサイトを利用してください
475デフォルトの名無しさん (ワッチョイ 1f79-xb3m)
2022/04/14(木) 17:17:56.63ID:cTxFb1rt0 >>466
> text = text.Replace(" ", " ");
> text.IndexOf(" ") != -1
ここの処理が意味わからん
改行と同じように半角スペース2個を1個にして条件を変更するのか
半角スペースそのものを別のものに変えたいのか
> text = text.Replace(" ", " ");
> text.IndexOf(" ") != -1
ここの処理が意味わからん
改行と同じように半角スペース2個を1個にして条件を変更するのか
半角スペースそのものを別のものに変えたいのか
476デフォルトの名無しさん (ワッチョイ 1f79-xb3m)
2022/04/14(木) 17:20:14.14ID:cTxFb1rt0477デフォルトの名無しさん (ワッチョイ 1f79-xb3m)
2022/04/14(木) 17:21:19.24ID:cTxFb1rt0478デフォルトの名無しさん (ワッチョイ df01-dH42)
2022/04/14(木) 19:24:45.24ID:4Ds/ildc0 早寝やな
479デフォルトの名無しさん (アウアウウー Sabb-qGV0)
2022/04/15(金) 10:51:24.88ID:JgjbCGpna " " ←スペース2つ
" " ←スペース1つ
5chだからスペース消されるだけだろ
" " ←スペース1つ
5chだからスペース消されるだけだろ
480デフォルトの名無しさん (スップ Sd02-BqLz)
2022/04/15(金) 11:37:41.89ID:0ObfuMR0d 全専ブラならちゃんと見えてるよ
481デフォルトの名無しさん (ワッチョイ df01-iXSd)
2022/04/15(金) 12:11:08.68ID:O+SsNQ0P0 天使のブラもちゃんと見えてます(*^_^*)
482デフォルトの名無しさん (ワッチョイ e201-Uyzu)
2022/04/15(金) 13:37:19.25ID:1joR/OE70483デフォルトの名無しさん (アウアウウー Sabb-55Lb)
2022/04/15(金) 18:49:07.37ID:ZZd0jnz9a おまえら・・・GJ!
484デフォルトの名無しさん (ワッチョイ 1fbd-DvUi)
2022/04/17(日) 12:25:11.04ID:D0SaeSYI0 フォームアプリ作成が主体として、GW本でも読もうと思うんだけどおすすめの本ありますか?
485デフォルトの名無しさん (ワッチョイ 9779-skhS)
2022/04/17(日) 14:36:40.90ID:HNDmidds0 ない
486デフォルトの名無しさん (ワッチョイ 97ad-HCi4)
2022/04/17(日) 18:32:11.96ID:3icLqeK70 >>484
作りたいアプリを考えて実装しながら勉強が捗る
作りたいアプリを考えて実装しながら勉強が捗る
487デフォルトの名無しさん (ワッチョイ 5736-XhrW)
2022/04/18(月) 17:43:30.83ID:YFSVkBgS0 以下の例のように、プログラムに間違いがなければ絶対に到達しない箇所で例外を投げる場合、
どの例外(InvalidOperationException とか InvalidProgramException とか)を
選ぶべきか、正解のようなものはありますか?
また、特に正解がなければ、皆さんのならどうするかを教えていただけると嬉しいです。
どうぞよろしくお願いいたします。
public static string GuusuuKisuu(int x)
{
int y = x & 1; // y は 0 か 1 にしかならない…はず
switch (y)
{
case 0: return "偶数だよ";
case 1: return "奇数だよ";
default: throw new Exception("プログラムが間違ってるから直してね");
}
}
どの例外(InvalidOperationException とか InvalidProgramException とか)を
選ぶべきか、正解のようなものはありますか?
また、特に正解がなければ、皆さんのならどうするかを教えていただけると嬉しいです。
どうぞよろしくお願いいたします。
public static string GuusuuKisuu(int x)
{
int y = x & 1; // y は 0 か 1 にしかならない…はず
switch (y)
{
case 0: return "偶数だよ";
case 1: return "奇数だよ";
default: throw new Exception("プログラムが間違ってるから直してね");
}
}
488デフォルトの名無しさん (ワッチョイ 9fad-29Va)
2022/04/18(月) 18:33:00.77ID:U6PNIZM80 そもそも投げない
デバッグ目的なら例外じゃなくてその時点でメッセージボックス使って表示させるし
例外の場合、投げた例外メッセージが必ずしもユーザ(この場合はデバッグしている人)に届くとは限らないと思うし
デバッグ目的なら例外じゃなくてその時点でメッセージボックス使って表示させるし
例外の場合、投げた例外メッセージが必ずしもユーザ(この場合はデバッグしている人)に届くとは限らないと思うし
489デフォルトの名無しさん (ワッチョイ 3702-2+F3)
2022/04/18(月) 18:45:48.82ID:CqNrq1/C0 そもそもswitchの必要ある?三項演算子で十分では
490デフォルトの名無しさん (ワッチョイ 9fad-29Va)
2022/04/18(月) 18:52:43.38ID:U6PNIZM80 いやwそこは例と言っているから重要ではない気がするがw
例えが悪いってのはわかるけどさw
例えが悪いってのはわかるけどさw
491デフォルトの名無しさん (ワッチョイ 3702-2+F3)
2022/04/18(月) 19:06:40.53ID:CqNrq1/C0 絶対に到達しないって判りきってるなら、別にロジック入れんでいいんじゃないの?
その例だとdefaultを奇数だよにしてもええし
その例だとdefaultを奇数だよにしてもええし
492デフォルトの名無しさん (ワッチョイ ffbb-KI6G)
2022/04/18(月) 19:08:27.71ID:8tbUw4/P0 正解はわからんけど俺ならException継承してそれ専用のクラス作るな
ぶっちゃけ既存のほにゃらかExceptionは使い所合ってるかよく分からんもの多くて困ることあるし
ぶっちゃけ既存のほにゃらかExceptionは使い所合ってるかよく分からんもの多くて困ることあるし
493デフォルトの名無しさん (アウアウウー Sa1b-MZ5k)
2022/04/18(月) 19:09:08.77ID:OZ/Iewlqa この二行だな
debug.assert(false);
throw new exception();
debug.assert(false);
throw new exception();
494デフォルトの名無しさん (ワッチョイ 7f2d-XhrW)
2022/04/18(月) 19:12:34.13ID:0xI2lblg0 >>491
もう少し質問者の意図を読もうよ…
もう少し質問者の意図を読もうよ…
495デフォルトの名無しさん (ワッチョイ 3702-2+F3)
2022/04/18(月) 19:14:17.23ID:CqNrq1/C0496デフォルトの名無しさん (アウアウウー Sa1b-MZ5k)
2022/04/18(月) 19:26:38.17ID:OZ/Iewlqa www
497デフォルトの名無しさん (ブーイモ MMbb-3xp7)
2022/04/18(月) 19:31:17.73ID:QSalzxoDM >>495
おバカ自慢要らない
おバカ自慢要らない
498デフォルトの名無しさん (ワッチョイ 9fad-29Va)
2022/04/18(月) 19:56:03.00ID:U6PNIZM80 上の例のようにわかりきっているコードはまあそうなんだけど“例”と言うようにわかりやすく示しているに過ぎず
極論を言えば、自分で見返してみても何このカオスな複雑怪奇でスパゲッティなコードがあってfuncの戻り値(Result)が0〜10の偶数値のみのはずだけど
funcが呼び出すfunc1からfunc10のどこかに不具合があって負数や奇数、または11以上がResultに入ってしまう可能性を否定することができない場合
とか
極論を言えば、自分で見返してみても何このカオスな複雑怪奇でスパゲッティなコードがあってfuncの戻り値(Result)が0〜10の偶数値のみのはずだけど
funcが呼び出すfunc1からfunc10のどこかに不具合があって負数や奇数、または11以上がResultに入ってしまう可能性を否定することができない場合
とか
499デフォルトの名無しさん (ワッチョイ 9779-skhS)
2022/04/18(月) 20:04:03.76ID:TPGSz3ry0 funcXメソッドから呼ばれているメソッドはツリー状になっており
そのメソッド総数は2586個で
全部で12566個の例外を発生させうる
すごいでしょ?
そのメソッド総数は2586個で
全部で12566個の例外を発生させうる
すごいでしょ?
500デフォルトの名無しさん (ワッチョイ 5736-XhrW)
2022/04/18(月) 20:12:51.97ID:YFSVkBgS0 たくさんのアドバイスどうもありがとうございます。
あまり良い例が用意できず申し訳ありません。
あまり良い例が用意できず申し訳ありません。
501デフォルトの名無しさん (ワッチョイ 5736-XhrW)
2022/04/18(月) 20:14:01.34ID:YFSVkBgS0 申し訳ありません。続きを書き込みたいのですが、
「レスアンカーがおかしいです」と言うエラーが出てしまっています。
「レスアンカーがおかしいです」と言うエラーが出てしまっています。
502デフォルトの名無しさん (ワッチョイ 5736-XhrW)
2022/04/18(月) 20:15:04.45ID:YFSVkBgS0 488 様 489 様 491 様
確かにおっしゃり通りですね。
ただ、状況によってはやはり例外を投げたくなることもありまして、
それをどうやって説明しようかと考えていたところ 498 様がとてもわかり易く
まとめてくださったので、よければそちらを見ていただけると嬉しいです。
492 様
なるほど!
つまり、おそらく初めからこういう目的で用意されている例外はないだろうということですね。
最初は InvalidProgramException が丁度いいかと考えていたのですが、
詳しいクラスの説明を読むとどうやら別の目的で使われる例外のようですし、
おっしゃるとおり、自分でクラスを作るのが一番のような気がしてきました。
493 様
アドバイスどうもありがとうございます。これも良いアイディアだと感じました。
意味的には一行目だけで十分だけれど、
それだけではコンパイルが通らないから二行目も書こうということですよね。
NotNullIfNotNullAttribute ならぬ ThrowExceptionIfFalseAttribute みたいなものが
Debug.Assert に付けられていて二行目がなくてもコンパイルできたらいいのにな、
なんて妄想してしまいました。
確かにおっしゃり通りですね。
ただ、状況によってはやはり例外を投げたくなることもありまして、
それをどうやって説明しようかと考えていたところ 498 様がとてもわかり易く
まとめてくださったので、よければそちらを見ていただけると嬉しいです。
492 様
なるほど!
つまり、おそらく初めからこういう目的で用意されている例外はないだろうということですね。
最初は InvalidProgramException が丁度いいかと考えていたのですが、
詳しいクラスの説明を読むとどうやら別の目的で使われる例外のようですし、
おっしゃるとおり、自分でクラスを作るのが一番のような気がしてきました。
493 様
アドバイスどうもありがとうございます。これも良いアイディアだと感じました。
意味的には一行目だけで十分だけれど、
それだけではコンパイルが通らないから二行目も書こうということですよね。
NotNullIfNotNullAttribute ならぬ ThrowExceptionIfFalseAttribute みたいなものが
Debug.Assert に付けられていて二行目がなくてもコンパイルできたらいいのにな、
なんて妄想してしまいました。
503デフォルトの名無しさん (ワッチョイ 5736-XhrW)
2022/04/18(月) 20:16:06.96ID:YFSVkBgS0 エラーの原因がよくわからなかったので、
やむを得ずレスアンカーを使うのを諦めました。
読みにくくて申し訳ありません。
やむを得ずレスアンカーを使うのを諦めました。
読みにくくて申し訳ありません。
504デフォルトの名無しさん (ワッチョイ 9f01-0UVf)
2022/04/18(月) 20:25:50.85ID:wKhqv1yX0 まあこの手の話はあちらでも挙げられてて結局しっくりくる例外はないってことになってる
https://stackoverflow.com/questions/3313906/which-exception-should-i-throw-to-signal-an-internal-error-in-my-program
MS的には System.Diagnostics.Debug.Fail() 使えやってことなんだろうね
どうしても例外上げるなら自前でLogicErrorExceptionとかを作るのが良いと思う
https://stackoverflow.com/questions/3313906/which-exception-should-i-throw-to-signal-an-internal-error-in-my-program
MS的には System.Diagnostics.Debug.Fail() 使えやってことなんだろうね
どうしても例外上げるなら自前でLogicErrorExceptionとかを作るのが良いと思う
505デフォルトの名無しさん (ブーイモ MMcf-m76R)
2022/04/18(月) 20:28:51.38ID:0OwrwjlVM MS自身のコードだと、throw AssertUtil.Unreachable; みたいなのはよくあるよ
Unreachable はプロパティで、UnreachableException みたいなinternalなカスタム例外をnewして返してるだけ
Unreachable はプロパティで、UnreachableException みたいなinternalなカスタム例外をnewして返してるだけ
506505 (ブーイモ MMcf-m76R)
2022/04/18(月) 20:39:47.71ID:0OwrwjlVM507デフォルトの名無しさん (ワッチョイ 5736-XhrW)
2022/04/18(月) 20:39:52.66ID:YFSVkBgS0508デフォルトの名無しさん (ワッチョイ 9f01-0UVf)
2022/04/18(月) 21:02:38.51ID:wKhqv1yX0 >>501
「レスアンカーがおかしいです」は4つ以上のアンカーがあると出るみたい
> 488 様 489 様 491 様
みたいなのは
≫488-489,491
のように纏めたら1アンカーと解釈されたりするので工夫したらなんとかなることもあるよ
「レスアンカーがおかしいです」は4つ以上のアンカーがあると出るみたい
> 488 様 489 様 491 様
みたいなのは
≫488-489,491
のように纏めたら1アンカーと解釈されたりするので工夫したらなんとかなることもあるよ
509デフォルトの名無しさん (ワッチョイ b72c-+1fN)
2022/04/19(火) 18:37:13.18ID:eV3D0rVm0 >>484
ない、っちゅうか買う必要ないだろ
今の時代ググってしらべりゃC#はほとんど見つかる
俺がプログラム関係の本買ったのははるか昔Win95の時代にC++のMSDN本2冊合わせて厚さ10cmくらいあったような
それ以降1冊も買ってない
ない、っちゅうか買う必要ないだろ
今の時代ググってしらべりゃC#はほとんど見つかる
俺がプログラム関係の本買ったのははるか昔Win95の時代にC++のMSDN本2冊合わせて厚さ10cmくらいあったような
それ以降1冊も買ってない
510デフォルトの名無しさん (テテンテンテン MM8f-IQiQ)
2022/04/19(火) 19:13:53.78ID:bNSjpDXdM 俺はこの類で絶対に到達しないdefaultに突入してくる不具合踏んだことあるわ。
ハードの電源ラインに特定の時間帯だけノイズはいってた。
ハードの電源ラインに特定の時間帯だけノイズはいってた。
511デフォルトの名無しさん (ワッチョイ b72f-mbkD)
2022/04/19(火) 19:51:58.01ID:x6ztzldE0512デフォルトの名無しさん (アウアウウー Sa1b-MZ5k)
2022/04/19(火) 20:00:40.81ID:4CQfli8Qa 絶対の定義によるが、普通にあるよ
俺が遭遇したのだと電源電圧下がってUSB機器がリセットされる環境
USBもの使ってる途中で逝くものだから絶対に入らないとこに入った
俺が遭遇したのだと電源電圧下がってUSB機器がリセットされる環境
USBもの使ってる途中で逝くものだから絶対に入らないとこに入った
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 【無職の男(31)】女子小学生に次々触る 下半身を露出した状態で 公然わいせつ、不同意わいせつ疑い 千葉県警 [nita★]
- 【サッカー】UEFA-CL第6節 インテル×リバプール、バルセロナ×フランクフルト、バイエルン×スポルティングなど [久太郎★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 【実況】博衣こよりのえちえち朝活🧪
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- 冬季賞与報告スレ [577451214]
- アホが使うワード 解像度 言語化 あと一つは?
- こーむいんだけど銀行にボーナス振り込まれていた
- 『猟友会がクマ駆除を嫌がるなら潰すべき。職務を放棄するハンターから免許や銃を没収して罰金を取ろう』の声、ネットで上がる [932029429]
