ふらっと 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/26(火) 21:10:38.80ID:cWcYrW8d0
もし元インスタンスにさわりたくないなら、元のコレクションとは別に
ソートした結果のインデックス位置をもつコレクションつくってそっちから引っ張るけど
2017/12/26(火) 21:11:48.58ID:biBlc3d/0
>>229
{}ではなく()では?
2017/12/26(火) 21:20:16.36ID:0luiAFcJ0
>>232
IListも継承してるクラスだからインデクサ持ってんじゃないかな

元インスタンスに触りたくないというよりは元インスタンスにも反映させたい
別クラスで作られたオブジェクトのインスタンスを渡してもらっていて、それをreaonlyにセットこっちのを並び替えたら同じ様に元のデータも並び替えられるって感じ

ここら辺の構成は弄れない
本当に勘弁してほしいわ
236デフォルトの名無しさん (ワッチョイ f3f7-fDUi)
垢版 |
2017/12/26(火) 21:21:35.79ID:YcrPMu9B0
>>234
(にしてもだめでした
http://d.hatena.ne.jp/cjohn/20090105/1231156636
このページの通りにやっているのですが出来ません
2017/12/26(火) 21:24:39.45ID:biBlc3d/0
>>235
ICollectionはIEnumerableしか継承してないんだがIListも継承してるとは?
2017/12/26(火) 21:33:32.33ID:0luiAFcJ0
>>237
今議題にしてるのがCollection<T>クラスだからそっちの継承をみてくれ
2017/12/26(火) 21:34:59.26ID:biBlc3d/0
>>236
マイクロソフトのドキュメントみて\1を$1にしたらできた
2017/12/26(火) 21:38:58.29ID:biBlc3d/0
>>238
すまんな
じゃあ先頭から参照書き換えていけばいいのでは?
241デフォルトの名無しさん (ワッチョイ f3f7-fDUi)
垢版 |
2017/12/26(火) 21:43:23.19ID:YcrPMu9B0
>>239
(にして$にしたらできました!有難う御座います!
2017/12/26(火) 21:57:00.69ID:0luiAFcJ0
なるほど、Add、Removeじゃなくてhoge[i]=s みたいな感じで順に設定し直せばいいのか
多分>>233も同じことを言ってたんだろうけど別の意味で捉えてた
次からそうするわ
2017/12/26(火) 22:15:00.14ID:Nu277XVha
車輪の再発明感全開だなw

public static class Extensions
{
  public static void CopyTo<T>(this IList<T> src, IList<T> dst)
  {
    int count = Math.Min(src.Count, dst.Count);
    for (int i = 0; i < count; i++)
      dst[i] = src[i];
  }

  public static void Sort<T, TKey>(this IList<T> x, Func<T, TKey> keySelector)
  {
    x.OrderBy(keySelector).ToList().CopyTo(x);
  }
}
2017/12/26(火) 22:17:42.69ID:DUnSIAzj0
>>235
いい機会だからリファクタしようぜ
2017/12/26(火) 22:34:38.39ID:OyWBWrx4p
>>243
親切杉ワロタ
2017/12/26(火) 22:59:22.02ID:OUkXE0b1a
srcやdistがnullの場合は?
2017/12/27(水) 06:40:33.49ID:8vUn4Dy4r
即死
2017/12/27(水) 08:15:03.92ID:F/ihue6L0
即死するべき
249デフォルトの名無しさん (ワッチョイ f3d5-EmoC)
垢版 |
2017/12/27(水) 17:55:28.81ID:LR8quwCc0
C#はメモリ不足でコンパイルできないことはありますか?
2017/12/27(水) 18:05:13.47ID:P6EO0z0h0
>>249
該当するコンパイラのスレで聞いてください
2017/12/27(水) 18:23:31.71ID:BZ3b6503d
>>249
絶対にないとはいえないけど、そもそもそんなマシンじゃ開発なんてできやしない。
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#入門を全部終えてからやれ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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