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

■ このスレッドは過去ログ倉庫に格納されています
2017/11/29(水) 19:23:58.05ID:GNLsbK4F0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/

■コードを貼る場合は↓を使いましょう。
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/12/27(水) 20:06:48.22ID:hg84Qb1oM
>>249
その前にVSが重すぎてまともに動かないから大丈夫
2017/12/27(水) 20:47:39.32ID:Jr44gGH00
>>252
コンパイルとVisual Studioは別問題
2017/12/27(水) 20:53:22.02ID:CubzVxEy0
>>253
コンパイルに何の問題があると?
2017/12/27(水) 20:56:02.93ID:gu8VevGS0
Windowsアプリケーションにおいて、ソースファイルのフォルダ分けはどのようにされていますか?
256デフォルトの名無しさん (ワッチョイ f3eb-tmg3)
垢版 |
2017/12/27(水) 22:08:35.73ID:RcFlfCwd0
自前のクラスに、作成済みオブジェクトを探してオブジェクトを返すメソッドを作るにはどうすれば良いんですか?
Xamarin Androidにいうfindbyname()、UnityでいうGameObject.Find<T>()のようなものを自前のクラスにもつけたいんですが・・・・
2017/12/27(水) 22:19:15.35ID:ZvzZDw7/0
もっと詳しく
2017/12/27(水) 22:21:38.34ID:CubzVxEy0
もっと激しく
2017/12/27(水) 22:27:50.77ID:RcFlfCwd0
ときには情熱的に
2017/12/27(水) 23:50:53.96ID:INWFuiTDa
>>256
Dictionaryに名前でオブジェクト登録という方法があるけど
わざわざそんな無意味なことをする意味が分からない

UWPやWPFやwindows forrmsでは
xamarinのfindbynameみたいなものわざわざ使わないでもいいのに
2017/12/28(木) 03:01:35.82ID:OJX4Pfid0
>>254
コンパイルの質問なのにVisual Studioの問題にすり替えるのが不適切だと言ったまで
2017/12/28(木) 07:08:39.80ID:THqyhi+6M
データにメソッドをチェーンするのが関数型言語の特徴なのかなと解釈してるんですけど、c#は関数型言語も内包してると考えて良いのでしょうか?

で、F#は関数型専用言語という位置づけで
2017/12/28(木) 07:22:15.38ID:mHFTOa6Td
>>262
F#は関数型専用ではなく、マルチパラダイム
2017/12/28(木) 07:27:00.29ID:THqyhi+6M
>>263
そうなんですか
となるとc#にかなり接近してる気がするのですが、F#がなぜ作られたか不思議です
2017/12/28(木) 07:43:07.29ID:yMSttuCfa
>>262
まず大前提としてメソッドチェーンと関数型プログラミングは何にも関係ない
下手にオブジェクト指向とのマルチパラダイムから入るより、まずはML系とかHaskell, Schemeみたいなちゃんとした関数型言語を触って特徴を掴むのがいいと思う
2017/12/28(木) 08:13:25.30ID:ux20Gvlta
最終目的は何なん?
2017/12/28(木) 08:24:33.51ID:8DtRzb3L0
関数型言語やるとコードが綺麗になるから目的なんか関係なく一度は経験するべき
2017/12/28(木) 10:07:38.23ID:mHFTOa6Td
>>264
あくまでも専用ではないという指摘ね
2017/12/28(木) 10:27:05.35ID:UQgDKgtxr
>>255
ケースバイケース
一つの答は無い
270デフォルトの名無しさん (ワッチョイ 5fd5-7ecw)
垢版 |
2017/12/28(木) 11:30:41.15ID:MTDYAVo/0
>>249
>>251
パソコンのメモリは十分に余裕があると仮定してプログラム的な容量の限界が知りたいです。
C#は無限にコードが書きこめるということですか?
2017/12/28(木) 12:42:40.91ID:ISLNvVJt0
C#言語にはソースコードサイズの限界なんて定義されてない
むしろ定義されてる言語って存在するの?
2017/12/28(木) 12:42:57.97ID:kdbduM9Wd
>>270
無限にコードが書き込めるって、具体的にどういうことを想定してるの?
2017/12/28(木) 13:03:29.10ID:qTeBLGvd6
コンパイル可能なソースコードサイズがコンピュータのメモリ資源に依存するコンパイラがあるってことじゃね
274デフォルトの名無しさん (ワッチョイ 5fd5-7ecw)
垢版 |
2017/12/28(木) 13:29:50.10ID:MTDYAVo/0
>>271
VB6は数百万行で限界が来てコンパイルできなくなりました。
>>272
コードを千万行単位で書き込んでも大丈夫か知りたいです。
2017/12/28(木) 13:37:17.01ID:bfoeL7nqM
適宜プロジェクト分ければ楽勝だろ
VS自体のソースとかだと余裕で超えてるだろうし
2017/12/28(木) 14:18:54.84ID:2t6rj/eWH
銀行の基幹システムかよ
277デフォルトの名無しさん (ブーイモ MM27-QRIm)
垢版 |
2017/12/28(木) 14:28:23.21ID:4EMpIOJ0M
>>271
コンパイラーの上限値を明記してる処理系はあるけどc#の見つからんな。
何処かにあるはず。
278デフォルトの名無しさん (ブーイモ MM27-QRIm)
垢版 |
2017/12/28(木) 15:01:10.61ID:4EMpIOJ0M
コンパイラエラーCS1033の記述に
/debugオプションを指定した場合は16,707,556行。しない場合は268,435,454行って書いてある。
1つのソースコードファイルにそんな行数を想定してるんだw
2017/12/28(木) 15:02:08.30ID:Pbz8zTsrp
1ファイルの行数の制限はCで見たことあるけど
プロジェクトやモジュール単位での総行数の制限は見たことないな
本当にそんなのあるの?
280デフォルトの名無しさん (ブーイモ MM27-QRIm)
垢版 |
2017/12/28(木) 15:02:46.82ID:4EMpIOJ0M
>>274
そんなサイズのVB6なんて見たことないw
281デフォルトの名無しさん (ブーイモ MM27-QRIm)
垢版 |
2017/12/28(木) 15:06:16.70ID:4EMpIOJ0M
>>279
リンカーに上限値があるかもね。
2017/12/28(木) 15:18:45.90ID:0QpKKHbp0
約1600万行のcsファイル開きたくないな
どう考えてもGodClassですがな
283デフォルトの名無しさん (ブーイモ MM27-QRIm)
垢版 |
2017/12/28(木) 15:26:24.91ID:4EMpIOJ0M
Visual Studioのエディタがハングするだろ
2017/12/28(木) 15:29:15.32ID:qUCulPnS0
>>267
lisp/scheme は関数型にはいりますか?
2017/12/28(木) 15:46:38.41ID:VwS/1tfY0
>>274
> コードを千万行単位で書き込んでも大丈夫か知りたいです。
試せばいいだけ
2017/12/28(木) 15:47:41.32ID:4ftZK9Tqa
>>285
そーでもない
もし本当に超えそうなら
2017/12/28(木) 15:55:49.66ID:4SlZSkiq0
OSが止まる可能性アリ。
2017/12/28(木) 16:06:05.42ID:HXzpTfmra
>>284
何をもって入らないにしたいのかわからないくらい入るじゃん
2017/12/28(木) 16:33:31.43ID:qUCulPnS0
>>288
lisp って太古の昔から存在しているじゃない、これに比肩するのは cobol とか fortran とか、位に
そんな昔に関数型が存在できたのか?
2017/12/28(木) 16:52:34.19ID:BvK/JshZa
コンパイラなんて自分で書いたことも理論勉強したこともないけど、
扱える識別子の数の上限とかは当然あるんだろうなあ

もっとも、恐らく全部がオンメモリで動いてるはずのインテリセンスの限界ですら
普通のプログラマはたぶん経験してないはずで、必要ならディスクも使えるはずの
コンパイラの限界なんて実用上は無限と想定してよいんじゃないかしら
2017/12/28(木) 17:01:12.05ID:4ftZK9Tqa
言語を二次コードとして
一次コードから生成する形のプログラムを組んだらそういう限界を超えやすいかもしれんな
2017/12/28(木) 17:51:47.90ID:Ub6XmzY9a
>>289
実装として問題ない性能が出たかは別として、関数型パラダイム自体は大昔からある
ラムダ計算も提唱された時期はチューリングマシンとあまり変わりなかったはず
関数型なんて要は文より式を多用する書き方ってくらいの認識でいいよ
初期Lispだって十分関数型といえる
2017/12/28(木) 21:01:15.87ID:0+I+cwib0
>>256
>作成済みオブジェクトを探してオブジェクトを返す
という点だけで反応するけど、シングルトンのオブジェクトを共有したいみたいな話なら
MEFとかUnity(ゲームじゃない方)とかのDIコンテナ利用すればいいんじゃないかな。
2017/12/29(金) 09:36:53.74ID:oOC6ueEnM
リフレクションしたいんだろ
2017/12/30(土) 12:06:27.98ID:fp/oHxe90
javascriptで生成後の値をスクレイピングして取得するにはどのような方法がおすすめですか?
2017/12/30(土) 12:28:35.27ID:fH0y6h0/M
>>295
普通にヘッドレスブラウザ & Seleniumでいいよ
今ならchromeやfirefoxがヘッドレス対応してる
C#はSeleniumライブラリの出来がイマイチなのでpythonやその他の言語を使ったほうがいいだろうね
2017/12/30(土) 14:14:37.73ID:fp/oHxe90
>>296
ベースはC#で行きたい場合、スクレイピングはpythonで作って、dllにでもして呼び出すイメージでしょうか?
2017/12/30(土) 14:16:47.93ID:fH0y6h0/M
C#でもSeleniumは動かせるよ
おすすめはしないってだけ
2017/12/30(土) 14:21:49.39ID:fH0y6h0/M
python使うならモジュールではなくサービスにしたほうがいいだろうね
2017/12/30(土) 14:23:22.82ID:IKvN98q1M
普通にProcess.Startでいいよ
スクレイピングなんかそれ自体クソ重いから連携はファイルベースで全く問題ない
2017/12/30(土) 14:47:06.31ID:gOML52to0
>>298
なぜ?
2017/12/31(日) 01:25:27.69ID:/ykdU4z00
出来がイマイチだから
2017/12/31(日) 06:36:51.88ID:5u0blHAo0
>>302
何に比べてどうイマイチなの?
2018/01/01(月) 20:52:37.58ID:G7LbeSvc0
oracleに接続するのはodp.net安定ですか?
2018/01/02(火) 00:30:47.40ID:TZO8s3980
>>304
それ以外に何を考えてんの?
2018/01/02(火) 20:06:46.76ID:c6AfmmkU0
ファイル、新しいプロジェクトを選びます
Windowsフォームアプリケーション
を選択したいのですが、見当たりません

visual studio 2017インストールし、C#の勉強をしようとしています
背景が真っ黒で白地にしたいですが、表示(V)を左クリックしても背景を変更する設定が分かりません

c#本を2010年に買って、8年かかってやっとインストールする気になり…当時はvisual studio2010をインストールしてね、でしたが…
2017をインストールしました
2018/01/02(火) 20:12:18.10ID:lWw7BAnPa
>>306
http://www.softantenna.com/wp/tips/visual-studio-2017-install/

ワークロードで.netデスクトップアプリ開発をインストールしてねんじゃね?
2018/01/02(火) 20:33:51.04ID:c6AfmmkU0
スタートボタンからblend for visual studio 2017を起動してました

vのvisual studio2017から起動したら、白背景、Windowsフォームアプリケーション(.net flamework)ボタンがありました

.NET Frameworkは外したいけと、外せないようですね
2018/01/02(火) 21:59:17.87ID:c6AfmmkU0
>>307
307さん、ありがとう
本のサンプルプログラム、1つ動かせました
早く.exe作りたいです
少しずつページを進めます!
2018/01/02(火) 22:06:55.09ID:NRmrCA2E0
楽しみにしているところ申し訳ないが、動かせたのなら既にお前は.exeを作っている
2018/01/02(火) 23:08:41.27ID:jqAIBNHq0
驚愕の事実だな
2018/01/02(火) 23:11:08.00ID:kv7Tqflpa
プロジェクトが作れない

こんなのがFAQなんだからMSはいろいろと見直したほうがいい
2018/01/02(火) 23:37:02.78ID:T7ovXE0Aa
初心者でも落ち着いて考えれば十分解決可能な問題のような気もするんだけどね
2018/01/02(火) 23:42:05.33ID:jqAIBNHq0
鳥には芋虫の考えなんてわからないよ
2018/01/02(火) 23:53:32.38ID:c6AfmmkU0
まったりとした雰囲気ありがとう、皆さん
自分は古く融通が利かないタイプです

フォルダ作ってコンパイラとリンカ放り込み、パスを通してbat作ってコンパイル
エラーが出たら、エラーリストをテキストエディタで読みタグジャンプ、エラー修正…
開発環境はFD1枚で持ち運び

だから今の開発環境インストール50GBに驚愕、ソースバックアップどうするの??開発環境はノーパソごと持ち運びか?とか
visual studio2000いくつかを過去にインストールした時はOSごと落ちてOS再インストールを味わって困惑してました

奮起してゆっくり覚えます
2018/01/03(水) 00:01:56.60ID:gYcQuPfn0
>>315
batでコンパイルならMSBuildはまだ現役だからそうそう焦ることは無いんじゃね
ソースバックアップは今ならオンラインでGit使えば履歴・差分管理も出来て楽だよ
2018/01/03(水) 01:17:17.11ID:E10k9nmq0
テスト
2018/01/03(水) 01:36:11.94ID:zucBe8Ms0
>>315
言うほど何個ものコンピュータで開発するか?
それぞれで環境作ればよくね?
プロジェクトは個人ならOneDriveかグループならGithubとか
2018/01/03(水) 01:38:01.68ID:E10k9nmq0
なんかcmd.exe←全部半角にすると書き込めないね
2018/01/03(水) 01:44:24.84ID:zucBe8Ms0
a.exe
2018/01/03(水) 01:45:06.51ID:zucBe8Ms0
cmd.exe
2018/01/03(水) 01:47:07.02ID:zucBe8Ms0
a.js
2018/01/03(水) 01:48:25.71ID:zucBe8Ms0
script
2018/01/03(水) 01:48:44.83ID:zucBe8Ms0
<>
2018/01/03(水) 01:51:42.79ID:zucBe8Ms0
<script> ←これも書き込めない
2018/01/03(水) 03:03:39.73ID:BLwnNh6e0
ここはテストスレではありません
327デフォルトの名無しさん (ワッチョイ 9ff7-57r9)
垢版 |
2018/01/03(水) 21:40:35.60ID:4IoSL1o20
int a=2;
int b=3;
int c=9;
int d=11;
このうち10より小さいもののうちで一番大きいものを選択する(アルファベットを返す)コードはどういうふうに書けばよいでしょうか?
2018/01/03(水) 21:49:31.09ID:asJzHhKy0
>>327
var list = new List<int> { a, b, c, d };
var result = list.Where(l => l < 10).Max();
329デフォルトの名無しさん (ワッチョイ 9ff7-57r9)
垢版 |
2018/01/03(水) 21:52:22.30ID:4IoSL1o20
ありがとうございます。
2018/01/03(水) 21:55:57.06ID:zucBe8Ms0
var dict = new Dictionary<string, int>(){
{"a", 2},
{"b", 3},
{"c", 9},
{"d", 11}
};

var result = dict.Where(data=>data.Value<10).Max(data=>data.Value).Key;
331デフォルトの名無しさん (ワッチョイ 9ff7-57r9)
垢版 |
2018/01/03(水) 22:08:04.88ID:4IoSL1o20
何度もすいません
int a=2;
int b=3;
int c=9;
int d=11;
同じアルファベットに対応したフラグ
bool a_flag=true;
bool b_flag=true;
bool c_flag=true;
bool d_flag=false;
このうちフラグがtrueの中のもので一番大きいものを選択する(アルファベットを返す)コードはどういうふうに書けばよいでしょうか?
2018/01/03(水) 22:21:19.29ID:wQKC+m+qa
そういうことをやりたいなら

C#入門を全部終えてからやれ
2018/01/03(水) 22:26:46.45ID:wQKC+m+qa
処理内容を変数の名前に依存するのは悪いやり方

int aがbool a_fragに関連していると決めているのはコードを書いてる人間だけ

プログラム上は関連づけられてない
とんでもない愚かなコード
2018/01/03(水) 22:28:33.33ID:zucBe8Ms0
>>331
https://ideone.com/5Ob6vu
2018/01/03(水) 22:30:30.27ID:MV/bJa3c0
C#でなくパッパラパー向けの言語やればいい
Pなんとかっていう
2018/01/03(水) 22:30:39.56ID:asJzHhKy0
>>334
それだと最大値をもつものが複数あった場合が考慮されていない
2018/01/03(水) 22:33:25.93ID:zucBe8Ms0
>>336
うむ。
一応Valueは重複しないものとして最初に出現したやつを選ぶことにしておいた
2018/01/03(水) 22:39:35.15ID:zucBe8Ms0
最大値を持つアルファベットをすべて出力するVer
https://ideone.com/RfUhMp
339デフォルトの名無しさん (ワッチョイ 9ff7-57r9)
垢版 |
2018/01/03(水) 22:43:09.66ID:4IoSL1o20
ありがとうございます
自分のコードにあてはめて書いてみます
また来ます
2018/01/03(水) 22:47:32.12ID:zucBe8Ms0
何故Max関数はリストの要素そのものではなく判別に使った式の値を出力する仕様にしたのか
2018/01/03(水) 22:48:35.18ID:zucBe8Ms0
と思ったけど最大値が複数あるときにそうじゃないと困るからか!初めて気付いた
2018/01/03(水) 22:56:32.16ID:wQKC+m+qa
いやいやそんな理由じゃないぞw
最大値を求める関数から要素返されても困るだろ
2018/01/03(水) 22:59:13.78ID:zucBe8Ms0
>>342
まあそうなんだけどさw
要素自体を抽象的な順序数として考えれば要素が返されてもおかしくないのにって思ってたは w
2018/01/03(水) 23:02:45.49ID:zucBe8Ms0
DateTimeオブジェクトみたいな w
2018/01/03(水) 23:04:14.73ID:a50vShvf0
どれか一個えらぶ関数じゃなくて一応演算の結果を返す関数だからな
SumとかAvgとかと挙動違ったら面倒くさい
2018/01/03(水) 23:07:01.35ID:wQKC+m+qa
そういう問題でもない…
2018/01/03(水) 23:09:47.06ID:kBuweVPR0
>>331
さっきの解を、swichで判定だな。
もしくはdictionary型をつかう。
348デフォルトの名無しさん (ワッチョイ 9ff7-57r9)
垢版 |
2018/01/03(水) 23:59:11.68ID:4IoSL1o20
var list = new List<bool> { true, false, true, true, true, true };
Console.WriteLine(list.Count(true));

trueの数を表示させたいのですがこの場合ラムダ式はどのように書けばいいでしょうか?
2018/01/04(木) 00:05:25.85ID:7evDO2yEa
それは「この場合ラムダ式」が分からないんじゃなくて、そもそもラムダ式がまるで分からないんだと思うw
質問する前にやることがあるんじゃないのかな
350デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/04(木) 00:08:30.14ID:dskbzAHG0
すいません…
LINQ触るの初めてなもので…
2018/01/04(木) 00:22:00.97ID:jrk7LVb6a
ラムダ式以前にc#がわかってないだろ
コード書くには早すぎる
入門書を読み返せ
回答が出てないなら新しいのを買え
352デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/04(木) 00:28:30.17ID:dskbzAHG0
var list = new List<bool> { true, false, true, true, true, true };
Console.WriteLine(list.Count(n => n == true));

とりあえずこれで動きました
nはメソッドの引数みたいなものでなんでも構わないのでしょうか?

var list = new List<bool> { true, false, true, true, true, true };
textBox1.Text = list.Count(n => n == true).ToString();

また上の様にすると動かないのですが、これは何故でしょうか? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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