任何人都可以解释":"代表代码。我理解代码,但不知道这个"背后的逻辑/条件:"操作
{
"services": [
{
"id": "red0",
"name": "redis",
"address": "127.0.0.1",
"port": 6000,
},
{
"id": "red1",
"name": "redis",
"address": "127.0.0.1",
"port": 7000,
},
]
}
答案 0 :(得分:2)
在七个根本不同的地方使用冒号(我可以在评论中的每个人的帮助下思考):
在类定义或通用约束定义中将类名与其基类/接口实现分开。
public class Foo : Bar { }
public class Foo<T> where T : Bar { }
public void Foo<T>() where T : Bar { }
指示如何在当前类或当前构造函数之前的基类构造函数上调用另一个构造函数。
public Foo() : base() { }
public Foo(int bar) : this() { }
指定全局命名空间(如 C.Lang 指出,这是namespace alias qualifier)
global::System.Console
指定属性目标
[assembly: AssemblyVersion("1.0.0.0")]
指定参数名称
Console.WriteLine(value: "Foo");
作为三元表达的一部分
var result = foo ? bar : baz;
作为case
或goto
标签的一部分。
switch(foo) { case bar: break; }
goto Bar;
Foo: return true;
Bar: return false;
在所有这些情况下,冒号不用作运算符或关键字(::
除外)。它属于简单的句法符号类别,如[]
或{}
。它们只是让编译器确切地知道它们周围的其他符号是什么意思。
答案 1 :(得分:2)
在你的情况下,你有一个包含多个构造函数的类,所以
class Constructor()
有一个默认(无args)构造函数和一个带有2个字符串作为参数的构造函数。
如果有人调用默认构造函数,那么该类将在内部调用构造函数,并使用2个字符串重载它。
这是该代码的解释