質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

1回答

467閲覧

Microsoft Visual Studioでのerror (C#)

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2017/07/08 21:05

編集2017/07/09 07:29

###前提・実現したいこと
Visual Studioを使っているのですが、Console.WriteLineの行でエラーが発生します。
考えられる対処法はないでしょうか
当方プログラミングに関しては何の知識もないです
###発生している問題・エラーメッセージ
現在のコンテキストに'Console'という名前は存在していません

現在のコンテキストに'Console'という名前は存在していません

###該当のソースコード

C#

1class Sample 2{ 3 static readonly Uri endpointUri = new Uri("http://*******"); 4 5 6 public static async Task Main() 7 { 8 var method = "aaaaa"; 9 var path = "/v1/aaaaabb"; 10 var query = ""; 11 12 using (var client = new HttpClient()) 13 using (var request = new HttpRequestMessage(new HttpMethod(method), path + query)) 14 { 15 client.BaseAddress = endpointUri; 16 var message = await client.SendAsync(request); 17 var response = await message.Content.ReadAsStringAsync(); 18 19 Console.WriteLine(response); 20 } 21 22 } 23}

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
プロジェクト作成では空白のアプリ(Windows ユニバーサル)
そもそもどこに.csファイルを置けばいいのかも分かりません。
propertiesとかAssetsとかApp.xamlとかなんで存在してるのかも分かりません。
それとついでにNuGetのパッケージってなぜインストールするのですか?
さっぱり分からん

(:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠) (:3」∠)

###追記1
Properties:アプリのプロパティ情報
参照
Assets:アプリ起動時に表示される画像ファイル
App.xaml:アプリの C# コードファイル
ApplicationInsights.config:構成ファイル
MainPage.xaml:アプリ画面の XAML ファイル
Package.appxmanifest:設定情報を含むマニュフェストファイル
project.json:コマンド実行を定義するファイル
らしいですがApp.xamlにソースコードを書き込んでも同様のエラーが出ます

###追記2
Microsoft Visual Studio Community 2017,Version15.2(26430.15)Releaseです。TemplateはVisual C#のWindows ユニバーサル、空白のアプリ(Windows ユニバーサル)です。調べてみたところ、「Windowsアプリケーションでの開発環境なのでコンソールアプリケーションのConsole.writelineは使えない」というようなことらしいです。試しにコンソールアプリケーションとして実行しようとしましたが出力の種類が先述のver?では変更できません。また、おそらくusing System.Windows.Formsと記述すると「ない」と出るのでそこをどうにかするといくかもしれないと思っています。当方完全にプログラミングに関して無知なので用語などがおかしいと思いますがご容赦ください。

いまここを発見しました。
解決できそうな気がする。(まだ読んでない)

###追記3
ConsoleじゃなくてMainPage.xamlのテキストボックスに書き出せばいいのかな?????????????
どうすればいいんだろう

###追記4

イメージ説明

###現在のApp.xaml.csのコード

一部伏字,
using は追記4の茶色く塗ってるやつ
後半はテンプレートそのままです。

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.ApplicationModel; using Windows.ApplicationModel.Activation; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; using *********; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; namespace TRUE { /// <summary> /// 既定の Application クラスを補完するアプリケーション固有の動作を提供します。 /// </summary> sealed partial class App : Application { /// <summary> /// 単一アプリケーション オブジェクトを初期化します。これは、実行される作成したコードの ///最初の行であるため、main() または WinMain() と論理的に等価です。 /// </summary> static readonly Uri endpointUri = new Uri("https://*********"); public App() { this.InitializeComponent(); this.Suspending += OnSuspending; } public static async Task Main() { var method = "***"; var path = "/v1/*******"; var query = ""; using (var client = new HttpClient()) using (var request = new HttpRequestMessage(new HttpMethod(method), path + query)) { client.BaseAddress = endpointUri; var message = await client.SendAsync(request); var response = await message.Content.ReadAsStringAsync(); TextBox1.Text = "...??"; //Console.WriteLine(response); } } /// <summary> /// アプリケーションがエンド ユーザーによって正常に起動されたときに呼び出されます。他のエントリ ポイントは、 /// アプリケーションが特定のファイルを開くために起動されたときなどに使用されます。 /// </summary> /// <param name="e">起動の要求とプロセスの詳細を表示します。</param> protected override void OnLaunched(LaunchActivatedEventArgs e) { Frame rootFrame = Window.Current.Content as Frame; // ウィンドウに既にコンテンツが表示されている場合は、アプリケーションの初期化を繰り返さずに、 // ウィンドウがアクティブであることだけを確認してください if (rootFrame == null) { // ナビゲーション コンテキストとして動作するフレームを作成し、最初のページに移動します rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { //TODO: 以前中断したアプリケーションから状態を読み込みます } // フレームを現在のウィンドウに配置します Window.Current.Content = rootFrame; } if (e.PrelaunchActivated == false) { if (rootFrame.Content == null) { // ナビゲーション スタックが復元されない場合は、最初のページに移動します。 // このとき、必要な情報をナビゲーション パラメーターとして渡して、新しいページを //構成します rootFrame.Navigate(typeof(MainPage), e.Arguments); } // 現在のウィンドウがアクティブであることを確認します Window.Current.Activate(); } } /// <summary> /// 特定のページへの移動が失敗したときに呼び出されます /// </summary> /// <param name="sender">移動に失敗したフレーム</param> /// <param name="e">ナビゲーション エラーの詳細</param> void OnNavigationFailed(object sender, NavigationFailedEventArgs e) { throw new Exception("Failed to load Page " + e.SourcePageType.FullName); } /// <summary> /// アプリケーションの実行が中断されたときに呼び出されます。 /// アプリケーションが終了されるか、メモリの内容がそのままで再開されるかに /// かかわらず、アプリケーションの状態が保存されます。 /// </summary> /// <param name="sender">中断要求の送信元。</param> /// <param name="e">中断要求の詳細。</param> private void OnSuspending(object sender, SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); //TODO: アプリケーションの状態を保存してバックグラウンドの動作があれば停止します deferral.Complete(); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/07/09 01:04

Visual Studio 関係のことを質問しているのですから、そのバージョン・エディションぐらいは書きましょうよ。あと、どのテンプレートを使ってプロジェクトを新規作成したかも書いてください。
退会済みユーザー

退会済みユーザー

2017/07/09 05:20

Microsoft Visual Studio Community 2017,Version15.2(26430.15)Releaseです。TemplateはVisual C#のWindows ユニバーサル、空白のアプリ(Windows ユニバーサル)です。調べてみたところ、「Windowsアプリケーションでの開発環境なのでコンソールアプリケーションのConsole.writelineは使えない」というようなことらしいです。試しにコンソールアプリケーションとして実行しようとしましたが出力の種類が先述のver?では変更できません。また、おそらくusing System.Windows.Formsと記述すると「ない」と出るのでそこをどうにかするといくかもしれないと思っています。当方完全にプログラミングに関して無知なので用語などがおかしいと思いますがご容赦ください。
guest

回答1

0

結果を何かしらの形で画面に表示したい、と言うことでよろしいでしょうか。一般的には以下のやり方になります。

CUI(コンソール)アプリの場合
・コンソールに書き出す(Console.WriteLine)

GUI(Windows Forms、WPF)アプリの場合
・メッセージボックスを出す
・テキストボックス等GUI部品を用意し、値をセットする

Webアプリの場合
・レスポンスとして返す。

Windowsサービスなど、UIを持たないアプリの場合
・ログファイルに書き出す。

ユニバーサルアプリは良く知りませんが、MainPage.xamlがあると言うことは、WPFベースなのでしょうか。一番基本的なのは以下のやり方です。

1.画面にボタンを配置する。
2.画面にテキストボックスを配置する。その際、名前をつけておく。例: <TextBox Name="TextBox1" ... />
3.ボタンクリックのイベントハンドラを作り、実行したいコードを書く。結果を表示したいところで TextBox1.Text = "..."; と書く。

他に MessageBox.Show(...); も使えると思います。


追記
最新の Visual Studio ダウンロードしてきました。
ユニバーサルアプリは初めてですがとりあえず。。。

手順

  1. Visual Studio で新規プロジェクトを作成(ユニバーサルアプリ)
  2. MainPage.xaml を開く
  3. ツールボックスから Button と TextBox をページにドラッグ。
  4. Button と TextBox を適当に配置・サイズ調整。
  5. Button をダブルクリック。(コード画面になってイベントハンドラが作成されます)
  6. イベントハンドラにコードを書く。

コードを書く際、注意点があります。
・HttpClient や HttpRequestMessage を使う場合、最初に using System.Net.Http; を書く必要があります。
・await を使う場合、関数に async を書く必要があります。

MainPage.xaml

XAML

1<Page 2 x:Class="App1.MainPage" 3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 5 xmlns:local="using:App1" 6 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 7 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 8 mc:Ignorable="d"> 9 10 <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 11 <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="10,20,0,0" VerticalAlignment="Top" Click="button_Click"/> 12 <TextBox x:Name="textBox" HorizontalAlignment="Left" Margin="10,73,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="340" Height="276"/> 13 </Grid> 14</Page>

MainPage.xaml.cs

C#

1using System; 2using System.Collections.Generic; 3using System.IO; 4using System.Linq; 5using System.Runtime.InteropServices.WindowsRuntime; 6using Windows.Foundation; 7using Windows.Foundation.Collections; 8using Windows.UI.Xaml; 9using Windows.UI.Xaml.Controls; 10using Windows.UI.Xaml.Controls.Primitives; 11using Windows.UI.Xaml.Data; 12using Windows.UI.Xaml.Input; 13using Windows.UI.Xaml.Media; 14using Windows.UI.Xaml.Navigation; 15using System.Net.Http; 16 17namespace App1 18{ 19 public sealed partial class MainPage : Page 20 { 21 public MainPage() 22 { 23 this.InitializeComponent(); 24 } 25 26 private async void button_Click(object sender, RoutedEventArgs e) 27 { 28 Uri endpointUri = new Uri("https://teratail.com/"); 29 var method = "GET"; 30 var path = "/"; 31 var query = ""; 32 33 using (var client = new HttpClient()) 34 using (var request = new HttpRequestMessage(new HttpMethod(method), path + query)) 35 { 36 client.BaseAddress = endpointUri; 37 var message = await client.SendAsync(request); 38 var response = await message.Content.ReadAsStringAsync(); 39 this.textBox.Text = response; 40 } 41 } 42 } 43}

しかし、改めて見てみると、ユニバーサルアプリ、初心者にはいろいろハードル高すぎですね。。。
これが理想形の開発環境だと言うことは分かるのですが。。。

とりあえず、Amazonとかで、何か初心者向けの本とか買ってみた方が良いと思います。
私が初心者のころは、かたっぱしに本を買って、試行錯誤してました。
めげずにがんばってくださいね。

投稿2017/07/09 06:22

編集2017/07/09 08:31
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/07/09 07:24

「追記4」のMainPage.xaml.csにて<TextBox Name="TextBox1" ... />を作りました。 App.xaml.csに「該当のソースコード」を記述しています。そこの例のConsole.WriteLineの代わりにTextBox1.Text = "..."とすると同じように「現在のコンテキストにgetという名前は存在しません」と返されます。 回答に「TextBox.Text = "..."」とありますが「例: <TextBox Name="TextBox1" ... />」の「...」を入力するということではないですよね?
退会済みユーザー

退会済みユーザー

2017/07/09 09:55

感謝します。 一歩前に進めました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問