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

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

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

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

Q&A

解決済

4回答

1160閲覧

【c#】この文を挿入するとエラりますがどうしてでしょう

OMOMURO_OML

総合スコア12

C#

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

0グッド

0クリップ

投稿2020/08/10 23:37

編集2020/08/10 23:57

int nande( int n)
{
int s =n*(n+1)/2;
return s;
}
int a =nande(n=100);

引数についてまだ理解が浅いですね。引数で宣言した変数(?)は{}の外でも
使えるのでしょうかね

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

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

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

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

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

maisumakun

2020/08/10 23:40

どのようなエラーが発生するのですか?
OMOMURO_OML

2020/08/10 23:53

The name 'n' does not exist in the current context
guest

回答4

0

ベストアンサー

単に、int a = nande(100);で呼べばいいだけの話ではないでしょうか?

投稿2020/08/11 00:03

maisumakun

総合スコア146018

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

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

OMOMURO_OML

2020/08/11 00:14

A field initializer cannot reference the non-static field, method, or property 'Csharp.nande(int)' というエラーが出ました。
maisumakun

2020/08/11 00:22

当該のコードは、どこに(どのようなファイルのどの場所に)書いていますか?
OMOMURO_OML

2020/08/11 00:28

あ、位置変えたら解決しました。ありがとうございます。
guest

0

名前付き引数のつもりなら、文法が違いますね

オプション引数・名前付き引数 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C

んで、提示のコードはC#の文法になってません。
これではどうあがいてもエラーになってしまいます。

もちょっと基本的な文法を学びましょう

投稿2020/08/11 00:19

編集2020/08/11 00:22
y_waiwai

総合スコア88042

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

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

OMOMURO_OML

2020/08/11 00:25

どうまちがっているのですか 引数は定義しないといけないのですか
y_waiwai

2020/08/11 00:30

int a =nande(n=100); 関数の中に文を書きましょう pythonとはちがって、なにもなしにいきなり文は書けません また、回答したように名前付き引数なら、=で代入してはダメです。 これは提示したリンク先を読んでください 単に引数に100を渡したいなら、maisumakunの回答のとおりでいいです
guest

0

forの()のなかと違って、変数の()の中では宣言と宣言したものの定義はできないんだなぁ(できないこともないんだなぁ)

投稿2020/08/11 00:41

OMOMURO_OML

総合スコア12

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

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

0

下記のnが定義されていないからではないでしょうか?
誤)
int a =nande(n=100);
正1)
int n;
int a =nande(n=100);
正2)
int a =nande(100);
正3)
int n;
n=100;
int a =nande(n);

投稿2020/08/10 23:46

編集2020/08/11 00:20
kikukiku

総合スコア531

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

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

Zuishin

2020/08/10 23:50

それでもコンパイルは通るかもしれませんが、n は呼び出し側のローカル変数ではなく引数を意図していると思います。
y_waiwai

2020/08/10 23:52

質問くんにその意図を聞かないといけませんねw
kikukiku

2020/08/10 23:55 編集

質問者さんのコメントを待ちましょう。
OMOMURO_OML

2020/08/10 23:58

()のなかは引数以外もはいるのですか?しらないです
y_waiwai

2020/08/11 00:01

知らないなら学びましょう。 で、あなたは()の中に代入文を書いていますが、これはどういうことを意図なさってるんでしょうか
kikukiku

2020/08/11 00:02

>引数についてまだ理解が浅いですね。 >引数で宣言した変数(?)は{}の外でも使えるのでしょうかね 引数で定義したnは{}内のみで利用できます。
Zuishin

2020/08/11 00:06

私が低評価したのは、「正1」の書き方が正しくないにもかかわらず質問者の意図通り動くだろうからです。関数の呼び出し方を知らない質問者に嘘情報を刷り込みます。 また、宣言と定義は違います。区別して使ってください。
OMOMURO_OML

2020/08/11 00:16 編集

一番上の()のなかは引数を宣言したつもりです。セミコロンいるのかな {}の外の()はnを定義したつもりです。
kikukiku

2020/08/11 00:18

()の中のnを宣言したつもりであれば、宣言になっていないです。 「正1」のように事前に宣言してください。
kikukiku

2020/08/11 00:20

本来だと、「正3」のような使い方が良いと思います。
y_waiwai

2020/08/11 00:20

名前付き引数のつもりなら、文法が違います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問