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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7bde-MYX9)
垢版 |
2017/11/07(火) 21:11:25.20ID:LeQqgpmT0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part132
http://mevius.5ch.net/test/read.cgi/tech/1507543256/

■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/11/12(日) 17:07:08.00ID:74EZy0fea
>>162
確かそうだよ
メンテナンスされてないから使うなって言われてる
2017/11/12(日) 18:00:59.99ID:ZC7erpT70
>>163
C++/CLIの件
たまに使うから気になる
ソースか検索キーワードプリーズ
2017/11/12(日) 18:26:13.27ID:/VKzDrV00
フォームアプリの新規作成は推奨しないってアナウンスはあるんで、それのことじゃないかな。
https://support2.microsoft.com/kb/3001686

C++/CLIそのものはまだサポートされてると思う。廃止されたのはマネージ拡張。
マネージ拡張からC++/CLIへの移行ドキュメントとか、比較的最近の日付でメンテナンスされてるし。
2017/11/12(日) 18:32:26.38ID:ZC7erpT70
>>165
ありがとう
フォームアプリで使うな、なら納得
2017/11/12(日) 18:59:33.96ID:yKCfx7dw0
C++/CLI捨てるわけねーだろ
2017/11/12(日) 19:11:39.89ID:MOg5phwx0
>>167
むしろ維持する意味がわからんが w
2017/11/12(日) 19:29:05.48ID:e5xLDhIK0
>>168
c/c++のライブラリをラッピングするためにある。
2017/11/12(日) 19:30:38.51ID:j0JK3XOeM
http使ったほうがいいよ
今はもうネイティヴコールする時代じゃない
2017/11/12(日) 19:35:01.10ID:MOg5phwx0
>>169
別にC++/CLIなんて要らんだろ
2017/11/12(日) 19:40:46.39ID:/VKzDrV00
C++/CLIって、なぜか使ったことなさそうな人にやたら叩かれるよねぇ。
自分に必要なけりゃスルーしとけばいいのに、わざわざ「要らない」アピールするのが謎だ。
2017/11/12(日) 19:55:44.38ID:MOg5phwx0
>>172
ん?
人の意見を聞きたくないなら掲示板なんて見なきゃいいと思うぞ
2017/11/12(日) 19:56:59.33ID:Y9bMvc7C0
>>172
こういうアピールしちゃうのも謎だよね
2017/11/12(日) 20:01:12.65ID:yKCfx7dw0
>>171
今からの世代はいらないかも知れないが、今までの世代は必要なんだわ。

過去遺産の再利用でしかないがね
2017/11/12(日) 20:14:47.79ID:MOg5phwx0
>>175
だからMSも力入れてない(2008の時代はインテリセンスすら使えなかった)し、そろそろ打ち止めってことかと
2017/11/12(日) 20:25:03.86ID:e5xLDhIK0
>>170
ApacheもNginxもGoogle V8もLinuxもc言語なんだが。
サーバサイドのサービスもc言語のもあるだろ。
178デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/12(日) 20:32:44.51ID:bU5Cj3UO0
>>170
急に飛躍しすぎ
2017/11/12(日) 20:41:06.51ID:3TYzHs9Ed
>>177
過去のもの過ぎwww「今」の話題にそれはどうかと思うぞ
2017/11/12(日) 20:52:36.78ID:e5xLDhIK0
>>179
そうか、NginxもGoogle V8も過去のものなのか
時代は変わったな。
181デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/12(日) 21:09:15.54ID:H0u2BwIs0
まあ最新技術はPythonやPHPで実装される時代だしな。
2017/11/12(日) 21:32:32.26ID:j0JK3XOeM
>>177
dotnet関係ないじゃん
Cが要らないんじゃない
相互運用が要らない
183デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/12(日) 21:44:46.58ID:H0u2BwIs0
いや、Cは要らないだろ。
Pythonが有れば何でもできる。
2017/11/12(日) 21:47:59.87ID:VOtI22LEa
ダーッ
って猪木かっ
2017/11/12(日) 22:11:19.90ID:BZnXPKY7d
0以上10未満のdouble値の乱数5個標準出力したい
186デフォルトの名無しさん (ワッチョイ 5fe9-vLjR)
垢版 |
2017/11/12(日) 22:14:51.64ID:uWcm4jWJ0
String testid= "ABCD" + ".text";

このABCD.textっていう中身は"テスト"っていう文字列が入ってるとします。
でも、testidの中には”ABCD.text"が設定されるのですが、
どうすれば"テスト"という値が入るのでしょうか。

ABCD.textはtextviewで"テスト"という文字をあらかじめ設定しています。
2017/11/12(日) 22:29:14.34ID:Y9bMvc7C0
stringの識別子名を中身に変換したいって?
そんな方法はないです
188186 (ワッチョイ 5fe9-vLjR)
垢版 |
2017/11/12(日) 22:34:55.34ID:uWcm4jWJ0
下記の引数でアクセスすると、上記は期待値が入るのですが、
下記のtestidを指定するとおもった結果となりません。
しかし、ABCD.textといった風に直接指定するのではなく変数か何かで間接的に指定したいと思っております。

関数(ABCD.text);
関数(testid);
2017/11/12(日) 22:36:08.48ID:Y9bMvc7C0
デリゲートを渡すのはどうか
2017/11/12(日) 22:37:37.16ID:aoPluejS0
>>188
テキストボックスを変数みたいに扱いたいって言ってるのか?
2017/11/12(日) 22:42:23.71ID:aoPluejS0
c#だとポインタなくなったから
んなことできないんだよね
2017/11/12(日) 22:52:01.90ID:VOtI22LEa
何言ってるのかさっぱり分からんw
ABCD.textって何ぞねw
2017/11/12(日) 22:53:27.72ID:aoPluejS0
>>192
多分テキストボックスのtextプロパティ
2017/11/12(日) 22:56:45.91ID:Y9bMvc7C0
ABCDというidが付けられたTextView(Xamarin/Androidのlabel)
のtextプロパティに"テスト"という文字列が設定されている

これを何らかの方法で文字列で指定して取りたい
2017/11/12(日) 23:00:49.49ID:VOtI22LEa
>>193
なるほどww

言語能力とプログラミング能力に関連があるって考えに俺は懐疑的だったけど
やっぱり関係が深いのかもしれないねw
2017/11/12(日) 23:04:37.50ID:aoPluejS0
>>194
無理じゃね?
本当は何がやりたいん?
197デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/12(日) 23:17:26.10ID:bU5Cj3UO0
>>194
ググればすぐでてくる
https://qiita.com/tokishirazu/items/66a25331d4c78980366e
2017/11/12(日) 23:25:24.74ID:eFe5AqQqM
>>197
やめろ
糞プログラマが量産される
2017/11/12(日) 23:36:13.84ID:WcVSvCUs0
>>195
それを理解するには十分な例だったなw
2017/11/12(日) 23:37:57.60ID:eFe5AqQqM
>>186
"ABCD" + ".text"してるなら
testidの中身はやはり "ABCD.text"です
ただの文字列です
それが勝手に”テスト”になってたら怖いし不便です
プログラムしてて予測がつきませんので"ABCD.text"のままでいるほうが安心です

"ABCD.text"からABCD.textにできる言語もありますが
C#は基本的にそういうのはやらない方向でプログラムするべきです
2017/11/13(月) 00:09:08.69ID:rsYvFHCwr
全然推測できんw

まさかこう言う事?
string testid= ABCD.text;
2017/11/13(月) 00:11:27.37ID:nr7xz/FC0
ダックタイピングする言語じゃないからね
2017/11/13(月) 00:25:51.01ID:KiX40CjjM
>>188
変数に入れたいならtextview型の変数を作っておいてそこに入れよう

textview target = ABCD;

関数(target.text);
2017/11/13(月) 00:26:26.95ID:rsYvFHCwr

string testid = File.ReadLines("ABCD.text");
????
205デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/13(月) 00:31:47.43ID:sn+CO+UA0
>>186
String testid= "ABCD" + ".text";
じゃなくて

String testid=ABCD.text;
2017/11/13(月) 00:36:09.38ID:KiX40CjjM
脳のテストみたいだな
理解できるものだけ理解してる
出来ない人は変なレスしてる
207デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/13(月) 00:38:07.10ID:sn+CO+UA0
答えはリフレクションだろ?
2017/11/13(月) 01:06:43.08ID:8PrajDy/0
初心者がやりたがることとしては定番だろう
そんなに意外性はない
209デフォルトの名無しさん (ワッチョイ df8a-KLCy)
垢版 |
2017/11/13(月) 01:41:09.93ID:v8HXsfBj0
>>208
は?
2017/11/13(月) 02:07:05.43ID:c1Jq4ATj0
>>185
var rand = new Random();
for (var i = 0; i < 5; i++) Console.WriteLine(rand.NextDouble() * 10.0);
2017/11/13(月) 12:29:38.53ID:JPipM5yVd
Controls.OfType<TextBox>().First(c => c.Name == "ABCD").Text
2017/11/13(月) 16:41:04.48ID:KG3ltkXj0
昨日DLLについて質問したものです。
おかげさまでとりあえずやりたいことが実現できました。
C♯からも呼び出せるマクロです^^

電卓とメモ帳を自動操作
http://fast-uploader.com/file/7066114303960/
2017/11/13(月) 17:00:21.29ID:5C1yWWLzM
parallelの中で更にparallelするとどうなりますか?
2017/11/13(月) 17:19:10.80ID:3aIhrZk00
CPUの数だけでパラってあとは順番待ち?
2017/11/13(月) 17:48:55.95ID:c1Jq4ATj0
超Parallelになる
216デフォルトの名無しさん (ワッチョイ ff7f-OWtR)
垢版 |
2017/11/13(月) 18:28:32.97ID:SvVWerXL0
プリミティブな配列
例えばstring[]とかってシリアライズ出来ましたっけ?
2017/11/13(月) 19:09:21.17ID:M6weAJAZM
どんなシリアライザ使うのかもわからんのに答えようがないが
まあそれをシリアライズできないシリアライザはまずないだろうな
218デフォルトの名無しさん (スププ Sd9f-KLCy)
垢版 |
2017/11/13(月) 20:26:35.00ID:WRqgiOAAd
>>188
致命的に説明が下手か何も理解してないかのどっちかだと思う
下手に一般化するより今書いてるコードにコメント書いてそのまま晒した方がマシ
219デフォルトの名無しさん (ワッチョイ 7f7f-OWtR)
垢版 |
2017/11/13(月) 21:09:23.39ID:K5+qKqcP0
>>217
ありがとうございます
2017/11/13(月) 21:18:38.99ID:hP7f8JAdd
asynctaskの中でhttpによるデータ取得して取得したデータを戻り値で返す処理を作成しました。
同時にexceptionによる詳細なエラー内容も戻り値として返したいのですが、どのようにすればよいでしょうか?
戻り値が2つできないので困っております。又、戻り値の型は違います。
2017/11/13(月) 21:22:56.43ID:9NHQYSXO0
>>220
その2つをプロパティとして持つ型をつくる
2017/11/13(月) 21:23:06.80ID:qa5qRZI10
>>220
戻り値二種のValueTuple返せば良いんじゃないの
2017/11/13(月) 21:32:13.09ID:3DwKtl+Id
>>222
WebAPIっぽいし、Tupleだとシリアライズした時にItem1、Item2ってなっちゃわない?
2017/11/13(月) 21:33:28.45ID:3DwKtl+Id
あ、読み違えてたかもゴメン
225デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/13(月) 21:38:36.94ID:sn+CO+UA0
>>220
エラーオブジェクトに応答とその他情報突っ込んでthrow
2017/11/13(月) 22:01:26.37ID:qSvbvuzsa
>>220
こんな型でも返しますかw
public class FunctionResult<T>
{
  public FunctionResult(T val)
  {
    Value = val;
  }

  public FunctionResult(Exception ex)
  {
    Exception = ex;
  }

  public bool HasValue
  {
    get { return Exception != null; }
  }

  private T _Value;
  public T Value
  {
    get
    {
      if (!HasValue) throw new InvalidOperationException();
      return _Value;
    }
    private set { _Value = value; }
  }

  public Exception Exception { get; private set; }
}
2017/11/13(月) 23:32:00.25ID:1k/7dsAB0
>>220
>同時にexceptionによる詳細なエラー内容も戻り値として返したいのですが

例外throwすれば良いだけでは?
2017/11/14(火) 01:18:02.74ID:Rbk2zOBm0
正常時は別の戻り値、異常時はthrow?で戻り値の型に合った内容が、
格納されるのでしょうか。
呼び出し元で、どのように取り出せばよいのでしょうか。
229デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 01:28:44.28ID:Xx2aI1jk0
>>228
エラー処理で検索
2017/11/14(火) 01:36:41.11ID:Rbk2zOBm0
いろいろお教えいただいているのですが、
http://www.nowonbun.com/2016/06/c-trycatchthrowfinally.html#!
↑のようなHPとかthrow とかエラー処理で検索しても
戻り値に入れて、それを呼び出し元でどのように見ているのかいくら探してもでてきません。。

try,catchとかでコンソールにエラー内容出力のことではないですよね。。
2017/11/14(火) 01:36:47.07ID:sw4py9T60
「c# 例外」で検索!
2017/11/14(火) 01:43:50.50ID:sw4py9T60
例外と例外処理
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/exceptions/index

try 内で、throw すれば、catch で補足できる。
throw した例外クラスが、catch の引数に渡ってくる。
以下の e

catch (例外クラス e)
233デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 01:44:37.90ID:Xx2aI1jk0
関数内で例外をキャッチして新しくException オブジェクト作ってそのInner
Exception にキャッチした例外オブジェクトを突っ込んで作った例外オブジェクトのDataプロパティに返したたいデータ突っ込む
それをthrowして呼び出し元でキャッチしてDataプロパティから取り出す
2017/11/14(火) 01:54:03.16ID:KYSlLmBD0
>>233
新しくExceptionオブジェクト作るなアホか
235228 (ワッチョイ 5fe9-vLjR)
垢版 |
2017/11/14(火) 01:59:34.75ID:Rbk2zOBm0
皆さまありがとうございます。いまださっぱりわからないので出直してきます。。
ありがとうございました。

try catchでcatchのとこにエラー情報が入る?まではわかったきがするのですが、
再スローとかInnerExceptionになるとさっぱりでした。

下位の呼び出し先のエラー情報を上位の呼び出し元にthrowすれば戻り値関係なく渡せるといった感じなのでしょうか。。
サイトみててもそうはどうやってもみえなかったのです。
2017/11/14(火) 02:08:30.45ID:n7fEU+IFd
>>233
意図的にExceptionのインスタンスを作ってスローするのは間違い
SystemExceptionやNullReferenceException、IndexOutOfRangeExceptionも同様
2017/11/14(火) 02:11:41.66ID:L0+XEUiLa
悪口言うつもりはないけど例外の使い方も知らないのに非同期に手を出すとか
順番がおかしいと思うw
2017/11/14(火) 02:12:51.73ID:L0+XEUiLa
>>236
そんなのケースバイケースでしょう。
一概に間違いだとする理由がない。
そういうのを教条主義という
2017/11/14(火) 02:17:16.73ID:VqdZ1M78d
>>238
Microsoft自身がやめろって言ってんのに、わざわざそれに反することをするのはアホ
2017/11/14(火) 02:18:50.68ID:KYSlLmBD0
>>238
c#の例外について少しでもかじったことがあるのならば、アンチパターンだと知ってるはず
2017/11/14(火) 02:20:03.11ID:L0+XEUiLa
>>239
そんなこと言ってる?
言うわけないと思うが仮にそうでも合理性がなければ従う理由もない。
「なぜ」を問わずに盲従する奴こそアホだ
242デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 02:22:37.27ID:Xx2aI1jk0
>>236
どういうこと?
Exception派生クラスの中から適切なものを選ぶってこと?
それともキャッチした例外オブジェクトにデータを付加するの?
2017/11/14(火) 02:24:17.15ID:NHaW+CLNd
>>241
基本中の基本https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/exceptions/creating-and-throwing-exceptions
2017/11/14(火) 02:25:47.16ID:KYSlLmBD0
>>241
なぜ言うわけ無いと思ったのか説明してごらん
2017/11/14(火) 02:26:51.36ID:L0+XEUiLa
>>243
そんなことどこにも書いてないどころか>>233と同じことをやってる例が出てるけどw
本当にちゃんと読んだ?w
2017/11/14(火) 02:27:34.33ID:L0+XEUiLa
>>244
現に言ってないねw
>>243をちゃんと読んでごらん
そんなことどこにも書いてない
2017/11/14(火) 02:31:42.57ID:WLqSYvBrd
>>245
ちゃんと読めよカスwww

>自作のソース コードからは、意図的に System.Exception、System.SystemException、System.NullReferenceException、または System.IndexOutOfRangeException をスローしないでください。
2017/11/14(火) 02:32:24.83ID:KYSlLmBD0
>>246
日本語のドキュメントなのに読めないとか
249デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 02:33:31.14ID:Xx2aI1jk0
なんでスップ2つ+固定回線で自演してるの?
2017/11/14(火) 02:34:47.54ID:L0+XEUiLa
>>247
言っちゃわるいけど、君の読解力がおかしいことはよくわかった。

その一文のどこをどう呼んでもキャッチした例外をInnerExceptionに入れて
別の例外を投げてはいけない、などという意味には読めません
2017/11/14(火) 02:36:25.31ID:WLqSYvBrd
>>250
読解力がないのはお前。否定してるのはExceptionクラスのインスタンスをnewしていること。
2017/11/14(火) 02:38:38.93ID:L0+XEUiLa
しかし、

>自作のソース コードからは、意図的に System.Exception、System.SystemException、System.NullReferenceException、または System.IndexOutOfRangeException をスローしないでください。

これ、前者2つがダメな理由は分かるけど後者2つはかなり意味不明だね。
翻訳ミスを疑ったけど英語でもそうなってる。
これはさすがに盲従する奴はアホだと思う
2017/11/14(火) 02:40:17.14ID:WLqSYvBrd
>>252
本気で言ってる?同じ疑問を持つ人はいるみたいだから少しググれば出てくるけど
https://stackoverflow.com/questions/22453650/why-are-we-not-to-throw-these-exceptions
2017/11/14(火) 02:41:11.99ID:L0+XEUiLa
>>251
普通に読めば>>233に出てくるExceptionとは限定的にExceptionクラスだけを
指しているとは読めない
2017/11/14(火) 02:45:47.13ID:WLqSYvBrd
>>254
あんな質問してくる初心者に「新しくExceptionオブジェクト作って」と言えば、「new Exception()」するだろうよ
ところで、>>253を少しは読んだのかい?
2017/11/14(火) 02:46:50.86ID:L0+XEUiLa
>>253
なるほど、NullReferenceExceptionの方は一応回答者が理由出してるけど
もっと明示的な例外の方が良いから使うなというには弱いように感じるね。

IndexOutOfRangeException の方は使っちゃダメな理由出てないね
2017/11/14(火) 02:47:11.28ID:KYSlLmBD0
>>254
勉強になって良かったね
2017/11/14(火) 02:47:35.87ID:L0+XEUiLa
>>255
それ、じゃあ自分なら何て表現するか考えてから言ってる?
2017/11/14(火) 02:48:14.13ID:L0+XEUiLa
>>257
「よっしゃ、今日はこのぐらいにしといたるわ」 by 池乃めだか
2017/11/14(火) 02:48:46.66ID:WLqSYvBrd
>>256
出てるからちゃんと読みなさい
2017/11/14(火) 02:49:29.79ID:L0+XEUiLa
>>260
出てないって
出てるなら引用してみ
2017/11/14(火) 02:50:04.51ID:WLqSYvBrd
>>261
煽って探してもらおうとするクズ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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