ふらっと C#,C♯,C#(初心者用) Part130 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/07/18(火) 06:40:45.47ID:mH9qbH+m0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

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

■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

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

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
9デフォルトの名無しさん (ワッチョイ d896-1jjp)
垢版 |
2017/07/18(火) 12:48:38.87ID:QAHpb4DY0
ビジアルC#(フォームアプリケーション)でトランプゲーム作ってます。
その為に、配列操作を簡潔にしたいと考えてます。

ボタン入力→コンソールで操作→コンソールから値を受けとる→画像出力
間違ってますか?
2017/07/18(火) 13:43:03.26ID:y43ZtB+J0
ポインヨ使いの俺にはお前が何を言ってるのかさっぱりわからないぜ
11デフォルトの名無しさん (ワッチョイ d896-1jjp)
垢版 |
2017/07/18(火) 14:00:23.98ID:QAHpb4DY0
なるほど。

つまり、FlowSimulator見たいなソフトが作りたい!
って事です。
2017/07/18(火) 14:30:52.59ID:y43ZtB+J0
>>11
よくわかんねーからポーカーやろうぜ
プレーヤー2人ね
ジョーカー入れて53枚から5枚選べる?
もちろんダブっちゃ駄目よ
んでもう一人の分の5枚選べる?
一人目のカードを引いちゃ駄目よ
お互いにいらないカードを捨てて捨てた枚数補充して
お互いに捨てたカードとか相手が持ってるカード補充しちゃ駄目よ

(*゚∀゚)コール!花京院の魂をかけろ!

ここまでで何か行ったか?
なければ完璧だ!健闘を祈る!
13デフォルトの名無しさん (ワッチョイ d896-wbEN)
垢版 |
2017/07/18(火) 18:07:34.46ID:QAHpb4DY0
>>12
自分で作れば?
2017/07/18(火) 18:26:15.96ID:y43ZtB+J0
>>13
自分で作りやすいように書いたのでもちろん作れる!
でも今時トランプゲームなんていらないや(・∀・)
んで必要な配列の処理は洗い出せたのかい?
思ってたんと違う感じになったんじゃないかな?
2017/07/18(火) 18:52:54.47ID:QAHpb4DY0
それは、個人で調べてる。

別の問題で、コードの暗号化(exeファイル)が逆アセンブルで閲覧されてしまうんだが、
何か良い方法無いですか?
2017/07/18(火) 18:57:11.13ID:y43ZtB+J0
>>15
難読化ツール
Visual Studioに付いてくる
2017/07/18(火) 19:02:38.94ID:Y+c+0z9EM
>>15
むしろGithubで公開したら?
自分の価値を高めることを目的とするなら隠すことには全くメリットはないよ
2017/07/18(火) 19:04:51.06ID:y43ZtB+J0
よし、難読化してgithubで公開だ!
2017/07/18(火) 19:08:58.61ID:SlyZJJmU0
宇宙仮面さん生きてる?
20デフォルトの名無しさん (ワッチョイ d896-1jjp)
垢版 |
2017/07/18(火) 19:23:40.54ID:QAHpb4DY0
Dotfuscatorを検索したけど見つからない。
Visual Studio C# 2008でも付いてる?
2017/07/18(火) 19:25:04.23ID:SlyZJJmU0
ぐぐったのか?↑

ぐぐてから質問しろ
22デフォルトの名無しさん (ワッチョイ d896-1jjp)
垢版 |
2017/07/18(火) 20:00:39.41ID:QAHpb4DY0
何処にあるか分から無い。
2017/07/18(火) 20:06:29.49ID:FK0nGZqt0
商用で売るんでなければ難読かなんてする理由はまずない
24デフォルトの名無しさん (ワッチョイ d896-1jjp)
垢版 |
2017/07/18(火) 20:13:24.32ID:QAHpb4DY0
>>23
フリーソフト公開したら、
わざわざ逆アセンブルして、もっとコウしろコードはこう書けとか沢山飛んで来る。
下手クソ、俺ならこう書くぞ! とか、キツイんだよ!
2017/07/18(火) 20:16:55.46ID:z0RvcFUud
>>24
いっそソース公開した上で基本無視して有用そうな情報だけ生かしとけ、それかGithubに上げてプルリクしろIssue立てろと書いとけ
26デフォルトの名無しさん (ワッチョイ d896-1jjp)
垢版 |
2017/07/18(火) 20:27:30.63ID:QAHpb4DY0
少し、混乱してるから、
一旦、落ち着く。

どうも、ありがとう。
2017/07/18(火) 21:05:16.22ID:QAHpb4DY0
参考にしたのですが、厳しいです。
Azure in microsoft Visual Studio 2017 || Anthony Cangialosi
https://www.youtube.com/watch?v=umdy7WXauz4

設定の方法を紹介しているサイトは豊富ですが、
使い方を詳細まで乗せているサイトが見つかりません。

やりたい事
Visual Studio C#2017(フォームアプリケーション)で入力したデータとモデルを指定して、
Azureへデータを渡してから、結果を受け取り。
C#内の表に格納してから、グラフを自動で作成する事はできますか?

できれば、詳しく説明しているサイトを教えて下さい。
それと、個人利用での値段も教えて下さい。
2017/07/18(火) 21:25:55.45ID:FK0nGZqt0
普通はソースごと上げても無反応なのに、たくさん指摘が飛んでくるなんてありがたい環境じゃん
無価値な指摘は無視すればいいし、有意義な指摘は参考にすればいいだけ

>>27
どこまでまわかってるのか、何がわからないのか具体的に
Azureのサービスは立てられてるの?表からグラフは作れてるのか、そこもわからないのか?
2017/07/18(火) 21:31:45.07ID:QAHpb4DY0
>>28
冗談抜きで、何も分かって無いから顔面蒼白してる。
C#も初心者です。
2017/07/18(火) 21:45:50.66ID:tovqy0R70
まずその設計が不自然すぎる
Azure使うならASP.NETでWebサービスとして作りなよ
ASP.NETなら書籍買って読めば簡単に使えるようになる
2017/07/18(火) 21:58:53.20ID:QAHpb4DY0
資料分析任されてけど、一切、来なくなった。
あなたのポジションがなくなりました。とツイッターのメールで飛んで来た。
2017/07/19(水) 00:50:57.31ID:42DPUduf0
>>30
お薦め書籍は?
2017/07/20(木) 10:18:37.61ID:JuWBPChC0
ねーねー
Windows10でアクションセンター出すコマンドラインとかあるの?

探しきれなくて、もし出来ることがわかればC#の処理で開くことができると思うんだけど…


やっぱWinAPIなんかなぁ
2017/07/20(木) 10:57:07.79ID:vXnrP/ay0
自分でC#で組めよ
2017/07/20(木) 11:33:09.40ID:PstMpBlza
>>33
これで出来たよ
Process.Start(@"ms-actioncenter:");

元ネタはここ
http://winsupersite.com/windows-10/how-open-windows-10-apps-using-shell-commands
2017/07/20(木) 14:32:49.49ID:JuWBPChC0
>>35
ありがとうございます。
やっぱあるんですね!
2017/07/21(金) 15:26:36.42ID:h1B8jSWE0
質問です。

C#でIEは操作できますが、

C#でMicrosoft Edgeを操作する事は出来ますか?
2017/07/21(金) 18:30:07.33ID:ZXE38ZHX0
ググれカスタム
2017/07/21(金) 18:56:20.59ID:h1B8jSWE0
>>37
だが

誰か教えてくれ
2017/07/21(金) 18:56:59.85ID:xK84hYK/0
ググれ
2017/07/21(金) 19:06:22.38ID:iXuWi2WiM
>>39
ほれ
https://www.google.co.jp
2017/07/22(土) 01:49:06.33ID:SkksAqux0
c#からはやったことないけどできるよ。
ie,chrome,edgeの自動テストを作ってる。
2017/07/22(土) 03:39:06.11ID:DPcBWKY50
C#でやりたいんだよね >>42

API使ってやってるの?
2017/07/22(土) 04:08:21.08ID:RdoTnEnw0
多分WebDriver使ってるんだろう
2017/07/24(月) 16:06:09.79ID:/7atmMFa0
WinForm使って3D表示するとしたら、何が一番手軽なんでしょう?
1枚絵を3D表示して色んな角度から見る程度なら、OpenTKでいいのかな?
ガッツリやるならWPFやUnityに移行した方が良いのかもしれないけども。
2017/07/24(月) 16:18:13.05ID:kPRQFbx80
なんでc#で3D表示する必要があるんだよ
2017/07/24(月) 16:34:47.01ID:/7atmMFa0
最初はBitmap画像を表示するだけだったんで、WinFormで作ったんです。
そしたら後で「これもうちょっと見易くする為に3Dで表示して」って言われたので・・・。
2017/07/24(月) 17:00:41.63ID:oo6suuL/0
この場合OpenGLかなぁ?
2017/07/24(月) 17:01:32.85ID:oo6suuL/0
OpenTKって俺何か知らん
2017/07/24(月) 17:14:44.48ID:/7atmMFa0
「OpenGL C#」でググったところ、
http://qiita.com/okajima/items/8082c0d2473949ec51e8
>OpenTKは、C#からOpenGLをいじるためのほぼ唯一の選択肢となるツールです

ってあったので、OpenGLを使うのならOpenTKを使うしか無いのかなと。
他のラッパーも動かしてみたけども、上手く動かなかったりなので。
2017/07/24(月) 17:25:57.56ID:vlNeOTKMM
WinFormsにこだわるならElementHostでそこだけWPF使うのが簡単じゃないかな
DirectXを意識するような方法だとゲーム的な作法になるので経験ないならかなりハードルが高いよ
2017/07/24(月) 17:32:00.52ID:/7atmMFa0
https://dobon.net/vb/dotnet/control/elementhost.html
WPFコントロールを使用することが出来るのですね。
OpenTKを調べてみたらNuGetから消えてたみたいなので、検討してみます。
ありがとうございます。
2017/07/24(月) 17:41:13.07ID:oo6suuL/0
3D回り酷すぎだな
音も相変わらず雑なんかな?
2017/07/24(月) 18:11:14.11ID:kPRQFbx80
テトリス作ったり3D言い出す奴とか
アホしかいないですね。このスレッドは。
2017/07/24(月) 18:21:57.94ID:oo6suuL/0
c#って何にも作れないんですね
2017/07/24(月) 18:33:39.39ID:x3MpulcWd
>>55
お前はな
2017/07/24(月) 18:46:20.02ID:oo6suuL/0
>>56
まるで自分なら作れるかのような物言いですね
でも現実をご覧なさい
2017/07/24(月) 19:33:29.80ID:lcNIkUFm0
NGスッキリ
2017/07/24(月) 21:51:36.91ID:CnUnUECm0
OpenGL wrapper for C#
ttps://stackoverflow.com/questions/5938151/opengl-wrapper-for-c-sharp
2017/07/25(火) 00:07:11.33ID:SY0Mxk4f0
>>43
webdriverをつかってる
c#用のライブラリもあるよ。
2017/07/25(火) 02:24:44.23ID:Qr8ugTQa0
>>52
NuGetにOpenTK v2.0.0あったぞ。
2017/07/25(火) 13:59:34.79ID:5w9W9evL0
Open Tetsuya Komuro
2017/07/25(火) 15:58:59.38ID:IqsCpgPN0
TextFieldParserってバグってんね
連続改行あると処理できねーし
これ地味に困るな
2017/07/25(火) 16:04:35.84ID:IqsCpgPN0
外人の作ったもんっていつもこんな感じだな
テストやってんのかよてめー
2017/07/25(火) 17:07:02.02ID:HJ9x/owo0
>>60
サンキュー

知らなかった
2017/07/25(火) 18:46:59.69ID:IqsCpgPN0
CsvHelperでReadメソッド読んだら元の処理に差し替え出来た

ぐぐるとマッピング方式ばっかりなんだけどマッピングなんてしねーよボケがって状況なので
マッピング無し方式を見っけるのに時間かかった
67デフォルトの名無しさん (ワッチョイ 7fa2-QK4i)
垢版 |
2017/07/25(火) 19:07:52.65ID:YE6zWRAr0
>>59
これなに?
OpenGLで高度なグラフィックコントロールができるってこと?
ってかLinux向けかな
2017/07/25(火) 19:15:57.14ID:Oz2LyY6P0
>>67
無能
2017/07/25(火) 21:15:14.41ID:7wirVU/NM
OpenGLはどちらかというと低レベル層のコントロール
2017/07/25(火) 22:02:34.46ID:Qr8ugTQa0
OpenGLをまともにサポートしていないIntelの古いオンボードビデオのPCがまだまだ生き残ってるから、
なるべく多くのPCで動かしたいアプリでOpenGLの採用は厳しいな。
2017/07/25(火) 23:05:49.65ID:Voswq3dD0
いままでずっとVB.netでwinformアプリ作ってて
いい加減C#の勉強しようと思ったらnamespaceのせいでインデントが余分にいっこ右に行くんだけど
もちろんVBでも一見して見えないだけでNamespaceが宣言されてるのはわかってるんだが、インデント減らす方法ないかな
2017/07/25(火) 23:17:42.58ID:tOIsnXkLM
namespace Unko {

class Unker {

}

}

package文が欲しい
2017/07/25(火) 23:29:59.95ID:+Z9uPEav0
初心者スレで標準スタイルを破ることを推奨するわけにはいかないだろ
郷に入れば郷に従えとしか
2017/07/26(水) 00:05:38.86ID:u+EoOV6Sa
>>71
VGAやプリントアウトして机上デバッグする時代じゃないんだから意味ないよw

違和感を感じているのならそんなのすぐ慣れる。
恐らく1週間かからない
2017/07/26(水) 10:02:54.88ID:0pf2o/yC0
TextFieldParserで思うんだけど
俺が不満なのは連続改行が処理されないことだけだったのに
このクラスは使えない認定せざるを得なかった
クラスの汎用性なんて幻想だよな
じゃ、仮にTextFieldParserの動作を今から変更ってきっとできないんだよな
少なくともそれを待っているよりはCsvHelperを使ったコードに変更したほうが話が早い
クラスなんて所詮こんなもんだよな
2017/07/27(木) 07:28:39.66ID:I7X5vmO00
ゲーム制作するためにc#を勉強しています。
確かな力が身につく「超」入門 シリーズのc#版が発売されたのですが、読まれた方はいませんか?
または他にプログラム初心者にオススメのc#の本などがあれば教えていただけますか?
2017/07/27(木) 07:34:29.37ID:SfFXzpg9M
少し古いがCLR via C#ってのがいいよ
細かいところまで嘘や誤魔化しをしないでしっかり書いてくれてる
いい入門書は初心者を煙に巻くような誤魔化しが少ない
俺はこれで入門した
2017/07/27(木) 10:15:42.11ID:IIZaHOT6p
>>77
ありがとうございます!
色々と調べているんですが、評価もまちまちなので迷っていました。探してみます。
2017/07/27(木) 11:30:34.93ID:IIZaHOT6p
クラスとオブジェクトについてですが、クラス(雛形)に対して実体化されたものがオブジェクト(実態)と考えていいんですよね?

例えばRPGなんかでいうと

敵クラス
HP(変数)
攻撃力(変数)
HPがある数値を下回ると逃げる(関数)

スライム(敵オブジェクト)
HP 5 (メンバ変数)
攻撃力 3(メンバ変数)
HPが2以下になると逃げる(メンバ関数)

といった感じの理解で良いのでしょうか?また本によってはオブジェクトとインスタンスの説明が似ているので、違いがよくわかっていません。
2017/07/27(木) 11:47:24.54ID:/bT0ZqW70
スライムクラスが敵クラスを継承していて
個々のスライムがスライムクラスのインスタンスという認識
2017/07/27(木) 11:50:59.30ID:2ra8985e0
オブジェクトはオブジェクト指向にかぎらず広い定義での「物 (変数に入れたり、引数で渡したりできる)」
でオブジェクト指向が出てきて、クラスを実体化したものがインスタンス

言い換えると、クラス(設計書)をインスタンス化(オブジェクトとして実体化)したものがインスタンスって感じでいいんじゃないかな
2017/07/27(木) 11:57:32.87ID:IjeTglv/a
クラスもオブジェクトのひとつ
2017/07/27(木) 12:01:13.40ID:eK9+M30XM
ざっくりとした俺のイメージ

家の設計図がオブジェクト
家そのものがインスタンス
2017/07/27(木) 12:05:17.06ID:dUeJpjKg0
クラスと構造体をひっくるめた総称がオブジェクト
オブジェクトを実体化した物がインスタンス
2017/07/27(木) 12:10:08.71ID:IIZaHOT6p
凄い!短時間でこれだけ回答をいただきありがとうございます。
オブジェクトは設計図とか概念って考えた方がいいんでしょうか?
となるとさっきの敵クラスを継承したスライムクラスはオブジェクトというよりインスタンス?
2017/07/27(木) 12:10:51.23ID:IjeTglv/a
C#では単体で概念的なオブジェクトの話はほとんど出てこない

大体object型というすべてのクラスの元になる型の話
2017/07/27(木) 12:15:51.83ID:hUN6vPrn0
オブジェクトって単語は使わないほうがC#を理解し易いと思う
2017/07/27(木) 12:17:23.86ID:dUeJpjKg0
>敵クラスを継承したスライムクラスはオブジェクトというよりインスタンス?

class 派生クラス : 基底クラス{} // これはオブジェクト(クラス)

派生クラス 変数名 = new 派生クラス // これがインスタンス
2017/07/27(木) 12:20:24.13ID:IjeTglv/a
敵 (クラス)

↓継承

スライム (クラス)

↓インスタンス化

スライムA,スライムB,スライムC (インスタンス)
2017/07/27(木) 12:24:19.57ID:IjeTglv/a
今は気にしなくてもいいけど
C#での話と一般的なオブジェクト指向とでは話がまた違う

C#のクラスも構造体も一般的なオブジェクト指向じゃクラスでひとくくり
2017/07/27(木) 12:25:13.94ID:IIZaHOT6p
敵クラスもスライムも攻撃パターンもオブジェクトとして考えるみたいな感じがオブジェクト指向ですよね?(ざっくり)

c#はオブジェクト指向に基づいて作られているけど、オブジェクトという概念自体はあまり考えずともプログラムは組める、という考えでいいのでしょうか?
2017/07/27(木) 12:27:22.18ID:dUeJpjKg0
>攻撃パターン
そこはメンバ関数じゃないかな

>オブジェクトという概念自体はあまり考えずともプログラムは組める、という考えでいいのでしょうか?
それでいいよ
正しいオブジェクト指向とは〜とか覚えなくていい 学者や思想家になるんでもなければ
覚えるべきなのは、C#での適切なコーディング
2017/07/27(木) 12:28:34.69ID:dUeJpjKg0
つか、C#ってマルチパラダイム言語なので
純粋で完全なオブジェクト指向を適用しようとすると、かえって面倒な事になりかねないしな
2017/07/27(木) 12:30:35.13ID:IjeTglv/a
>>92
攻撃パターンもオブジェクトでいいよ
2017/07/27(木) 12:37:22.98ID:IIZaHOT6p
ある本によると、
クラスを実体化したものをオブジェクトといい、実体化することをインスタンス化する、またはオブジェクトを生成する、などといいます。クラスはオブジェクトになってから初めて利用できるのです。

と書かれているのですが、実際にはクラスもオブジェクト指向で考えるとオブジェクトの一つだけれど、そこまで考えるとややこしいから無視してていいよ、って感じですかね?
2017/07/27(木) 12:47:23.41ID:IIZaHOT6p
つまり

敵クラス(雛形クラス)
HP(変数)
攻撃力(変数)
HPがある数値を下回ると逃げる(関数)

スライムクラス(継承クラス)
HP 5 (メンバ変数)
攻撃力 3(メンバ変数)
HPが2以下になると逃げる(メンバ関数)

インスタンス化

スライムA、スライムB、スライムC・・・


でも言ってしまえば、これら全てオブジェクト。

という理解でよろしいでしょうか?
2017/07/27(木) 12:50:15.14ID:h/+lquUO0
>>96
インスタンス化したもの(メモリに割り当てられた)がそう。
君がいうようにスライムA,スライムB…がオブジェクトでおk
2017/07/27(木) 12:52:42.14ID:P1js1uXhM
またオレオレ定義でグダグダになっとる w
イメージなら>>83がまあまともだと思うわ
2017/07/27(木) 13:12:19.93ID:xd52THukM
オブジェクトって言葉はふわふわしがちな印象だから
実際のプログラム言語ベースで考える場合とかは使わないほうが安全
C#ならクラス(構造体含む)とインスタンスで事足りる
2017/07/27(木) 13:33:43.77ID:NOEMiJHP0
C#(VB.NET)の継承は、なんちゃってだからなぁ
2017/07/27(木) 14:15:37.95ID:CNHQ1SOW0
ぶっちゃけ

継承とかして実装するから
可読性が悪くなって保守コストがかかる事分からんのかねぇ
2017/07/27(木) 14:19:50.11ID:XtIOKCvm0
リアルタイムゲームはすべてのパラメータをリアルタイムでエクセルで閲覧できるような構造で作らないとデバッグ間に合わない
縦軸インスタンス、横軸パラメータで
バグったら前後のデータを自動出力

オブジェクト指向(ツリー構造的な意味で)は合わないと思う
2017/07/27(木) 16:38:48.16ID:A+CF0/O/a
>>96
オブジェクトとは何か、みたいな哲学的疑問(笑)が気になるのは
よく分かるけど、そういうのは後回しで十分だし後回しにした方がいいと思うよw
たぶん、不毛なだけw

初心者は具体的なコード例を見て、どういうコードがどう機能するか、
何が実現できるのか、そういうところに集中した方がいいと思う
2017/07/27(木) 17:13:14.27ID:Rm6foVYz0
>>98
いやこういう例え方って初心者にとっては一番ふわふわしてて分からないと思うんだけど
2017/07/27(木) 17:30:52.71ID:eK9+M30XM
>>104
ごめんね
2017/07/27(木) 19:00:29.42ID:P1js1uXhM
>>104
そう?
たいていの人は設計図とか家自体はイメージできるしそのイメージとそんなに解離してないと思うけどな
2017/07/27(木) 19:25:46.31ID:okcLdcsWa
オブジェクトはともかく、インスタンスなんて変な例えや哲学的な話じゃなくて、
もっと現実のコード寄りに「newすると作られて使えるようになる何か」
ぐらいにに理解した方がいいよw

しつこいけど、初心者にとって重要なのは「インスタンスって何?」みたいな意味論じゃなくて
インスタンスを作るコードをどう書くか、どう記述したらインスタンスのメンバーにアクセスできるか、
っていう機能主義的な具体論
2017/07/27(木) 19:54:58.52ID:+34FnjidM
new = メモリ確保して初期化する
でいいんだよ
くだらねえ例え話はいらん
2017/07/27(木) 20:46:55.30ID:eK9+M30XM
>>107
それは強く同意だな
俺としてはオブジェクトとかインスタンスとかの言葉すら知らなくていいとも思ってる

newしたらなんか動いた!すげー!
くらいの軽い感覚が理想
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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