我正在声明一些空的字符串,因此以后不会抛出错误.
我读过这是正确的方法:
string Camnr = Klantnr = Ordernr = Bonnr = Volgnr = Omschrijving = Startdatum = Bonprioriteit = Matsoort = Dikte = Draaibaarheid = Draaiomschrijving = Orderleverdatum = Regeltaakkode = Gebruiksvoorkeur = Regelcamprog = Regeltijd = Orderrelease = "";
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我收到这个错误:Klantnr does not exist in the current context.
我做错了什么?
Hab*_*bib 127
你可以这样做:
string Camnr, Klantnr, Ordernr, Bonnr, Volgnr;// and so on.
Camnr = Klantnr = Ordernr = Bonnr = Volgnr = string.Empty;
Run Code Online (Sandbox Code Playgroud)
首先,您必须定义变量,然后才能使用它们.
Bot*_*000 37
你可以这样做:
string Camnr = "", Klantnr = "", ... // or String.Empty
Run Code Online (Sandbox Code Playgroud)
或者您可以先将它们全部声明,然后在下一行中使用您的方式.
我称之为连接声明的一个例子:
string Camnr = "",
Klantnr = "",
Ordernr = "",
Bonnr = "",
Volgnr = "",
Omschrijving = "",
Startdatum = "",
Bonprioriteit = "",
Matsoort = "",
Dikte = "",
Draaibaarheid = "",
Draaiomschrijving = "",
Orderleverdatum = "",
Regeltaakkode = "",
Gebruiksvoorkeur = "",
Regelcamprog = "",
Regeltijd = "",
Orderrelease = "";
Run Code Online (Sandbox Code Playgroud)
只需2美分,希望它可以帮到某个地方.
所有的信息都在现有的答案中,但我个人希望有一个简洁的总结,所以这里尝试一下;为了简洁起见,这些命令使用int变量,但它们同样适用于任何类型,包括string.
声明多个变量和:
int i = 0, j = 1; // declare and initialize each, single-type only.
// Note: `var` is NOT supported as of C# 8.0, but see below.
// ===
// C# 7.0+ / .NET Framework 4.7+ using syntactic sugar based on *value tuples*:
// Infer the types from the RHS tuple elements.
var (i, s) = (0, "hi");
// Explicitly type the individual variables.
(int i, string s) = (0, "hi");
Run Code Online (Sandbox Code Playgroud)
int i, j; // *declare* first (`var` is NOT supported)
i = j = 42; // then *initialize*
// Single-statement alternative that is perhaps visually less obvious:
// Initialize the first variable with the desired value, then use
// the first variable to initialize the remaining ones.
int i = 42, j = i, k = i;
Run Code Online (Sandbox Code Playgroud)
什么不起作用:
除非使用值元组语法,否则不能var在上述语句中使用,因为var仅适用于 (a) 具有初始化值(可以从中推断类型)的声明和 (b),从 C# 8.0 开始,如果该声明是语句中唯一的声明(否则您将收到编译错误)error CS0819: Implicitly-typed variables cannot have multiple declarators。
仅在多重声明语句中的最后一个变量之后放置初始化值只会初始化最后一个变量:
int i, j = 1; // initializes *only* j
现在可以通过以下方式声明和初始化多个变量:
var (anInt, aFloat, aBoolean, aChar, aString, anArray, aRecordType, anObjectType) =
(1, 2.14, true, 'a', "C# is awesome!", new[] { "Asia", "Europe" } , new Country { Name = "India"}, new City { Name = "Kolkata"} );
Console.WriteLine(anInt);
Console.WriteLine(aFloat);
Console.WriteLine(aBoolean);
Console.WriteLine(aChar);
Console.WriteLine(aString);
Array.ForEach(anArray, Console.WriteLine);
Console.WriteLine(aRecordType.Name);
Console.WriteLine(anObjectType.Name);
Run Code Online (Sandbox Code Playgroud)
以下是所需自定义类型的定义:
internal record Country { internal string Name {get; set;}}
internal class City { internal string Name {get; set;}}
Run Code Online (Sandbox Code Playgroud)
这已经在 .NET 5/C# 9 上进行了测试。
试试:
string Camnr, Klantnr, Ordernr, Bonnr, Volgnr, Omschrijving;
Camnr = Klantnr = Ordernr = Bonnr = Volgnr = Omschrijving = string.Empty;
Run Code Online (Sandbox Code Playgroud)
尝试
string Camnr , Klantnr , Ordernr , Bonnr , Volgnr , Omschrijving , Startdatum , Bonprioriteit , Matsoort , Dikte , Draaibaarheid , Draaiomschrijving , Orderleverdatum , Regeltaakkode , Gebruiksvoorkeur , Regelcamprog , Regeltijd , Orderrelease ;
Run Code Online (Sandbox Code Playgroud)
进而
Camnr = Klantnr = Ordernr = Bonnr = Volgnr = Omschrijving = Startdatum = Bonprioriteit = Matsoort = Dikte = Draaibaarheid = Draaiomschrijving = Orderleverdatum = Regeltaakkode = Gebruiksvoorkeur = Regelcamprog = Regeltijd = Orderrelease = "";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95960 次 |
| 最近记录: |