‫在这段视频中, 我们将介绍parents关键字,
‫您可能遇到过, 也可能没有遇到过, 但它绝对是编程时非常有用的关键字,
‫而且它对于您在C-sharp开发中可以控制的功能库非常重要｡
‫让我们来看看｡
‫问题是, 我们已经使用了使用参数的方法, 我可以告诉你, 因为我们已经使用了相当多的右行,
‫正如你在这里看到的, 右行表示你好世界｡
‫很酷的一点是, 如果你查看正确的行, 就像这样, 你把鼠标悬停在它上面,
‫你就可以看到它有多个重载｡
‫让我在这里再输入一次, 就像这样｡
‫然后一旦我打开支架, 它显示有18个不同的过载｡
‫多载基本上是这个方法的不同种类实作｡
‫因此, 在控制台类中, 此方法不仅有一个实现, 而且有多个实现｡
‫您可以单击此处查看｡
‫你可以看到这里有一堆右行实现｡
‫简单的一个, 然后是取布尔值的一个, 取缓冲区的一个, 基本上是一组字符,
‫等等｡
‫所以这条亮线有很多不同的过载｡
‫我特别提到的是我们这里的一个｡
‫所以这是第15个, 至少在我的Visual Studio版本中是这样｡
‫这可能会根据您的签出时间而发生变化｡
‫你可以看到这里有一个params关键字, 它表示params对象数组arg.
‫所以这意味着它会接受你给予它的那么多参数, 而且它会接受object类型的参数｡
‫基本上, 你创建的每一个类元素, 或者每一个对象, 基本上任何东西的对象都是那个类型的对象.
‫所以即使是这个类程序内部也要从对象继承｡
‫我们稍后会讨论继承, 但基本上它只是说它接受任何类型的信息或任何类型的数据.
‫这就是这个例子最酷的地方, 但是你不需要用它来接受任何类型的信息｡
‫所以在我们变得复杂之前, 让我们来看看一个例子｡
‫因此, 我们在这个重载中看到, 它接受字符串格式, 然后接受参数｡
‫所以我们只需要传递几个值给这个右行方法｡
‫所以我们只需要使用price is,
‫然后这个字符串和逗号后面的值或者第一个值, 作为参数传递给, 所以它的位置是0.
‫那么PI是314, 它将在这个位置, ET是, 这将是这个广告牌｡
‫所以如果我们运行这个｡
‫你会看到它基本上接受了我们所有的参数｡
‫所以它的价格是32, 圆周率是3｡ 148是ADD符号｡
‫当然, 我们也可以添加任意多的数字或参数｡
‫让我们举一个愚蠢的例子, 我们只是传递数字, 就像这样, 一加二加三, 以此类推.
‫基本上, 这些就是我们这里的值, 但是如果你想在字符串中使用它们,
‫我们需要从零开始｡
‫这是零位置, 这意味着它将显示1, 第二个将显示2, 这将是这个位置,
‫依此类推｡
‫所以如果我们运行这段代码, 你会发现它仍然有效｡
‫所以它是1加2加3等等, 直到得到28｡
‫所以你看, 我们这里没有8｡
‫我们有一个9｡
‫我们一起完成了所有这些, 也就是这里的28个｡
‫所以你看这里我们甚至有一个计算, 我们传递给它｡
‫所以它可以接受各种东西｡
‫但我们要查看的重要部分不是对象, 而是params关键字｡
‫因此, 让我们创建自己的示例, 在该示例中,
‫我们将使用params关键字, 以便允许根据方法的颜色向我们抛出尽可能多的参数｡
‫因此, 让我们创建一个新方法, public static｡
‫我们把它设为静态的, 这样我们就可以在main方法中使用它,
‫或者我们可以从main方法调用它, 我不返回任何东西, 它的类型是, 而我们给予它一个params方法的名字.
‫这里我们要用到params关键字｡
‫在我们的例子中, 它不是一个对象类型, 而是一个字符串数组, 我们可以传递给它｡
‫我打算跟注｡
‫字串句子的数组｡
‫所以在我们父母的方法里面｡
‫现在, 我们将使用一个四环路｡
‫而我将是零｡
‫我就要不到这句话的长度了｡
‫然后加1｡
‫所以一年加一年｡
‫好吧, 我会的
‫那么在这个循环中我想做什么呢？
‫基本上, 我只想写参数列表中的每一项｡
‫我想把它写在控制台上, 我可以用控制台来做｡
‫思想权在这里陈述｡
‫是这样｡
‫好吧, 我知道了
‫在I的位置使用这个句子, 因为如果你看它是一个数组, 它是一个字符串数组｡
‫所以位置I在开始的时候是零｡
‫所以不管第一个参数是什么, 我都要写出来, 然后加一个空格,
‫就像这样.
‫并转到for循环的下一次迭代｡
‫因此, 这个for循环将迭代我们传递给params方法的参数的次数｡
‫所以让我们在main方法中看看它｡
‫让我们调用这个方法｡
‫所以这里我用一个非常简单或者愚蠢的句子来调用这个params方法, 但是这个句子会被分解成单独的单词｡
‫所以我会说这是一个很长的字符串｡
‫我不知道什么时候会结束｡
‫点点点点｡
‫我们可以在这一点上继续下去｡
‫但基本上我们只是传递一个字符串, 另一个字符串, 另一个字符串, 等等｡
‫我们在这里传递了一串字符串｡
‫让我们运行这个应用程序｡
‫我们可以看到这是一个很长的字符串｡
‫我不知道什么时候会结束｡
‫我们现在可以随时改变这一点｡
‫那就开始吧｡
‫再来一遍｡
‫现在你看, 我们已经削弱了我们的判决｡
‫这是一个不知道什么时候会结束, 但代码仍然工作｡
‫所以sperms键盘基本上只允许我们传递我们想传递的任意多的参数｡
‫我们也可以不传递任何参数｡
‫所以我们不传递任何参数｡
‫我们会看到什么都没有发生｡
‫但我们的代码也不会崩溃｡
‫好吧, 我会的
‫这就是params关键字的酷之处｡
‫现在, 让我们创建一个也允许对象的方法｡
‫因此, 让我们创建另一个params方法｡
‫这是第二个方法的父方法, 它不接受字符串, 但只接受对象, 我们称之为stuff.
‫所以不管我们给予它什么, 我们现在要做的是,
‫对每个循环使用它, 它将遍历我们传递给它的东西, 这是一个对象数组.
‫对于每一个对象, 它会把这个对象放到正确的语句中｡
‫现在怎么办？
‫最酷的是, 每个类内部都有一个方法, 称为string｡
‫所以每一个类, 不管你在内部创建了哪个类, 都有这个方法, 或者是从object继承的,
‫也就是说它有这个被调用的方法｡
‫要串｡
‫这就意味着无论你给予我们的方法什么对象, 它都能把它变成一个字符串.
‫即使字符串将只是这样的某个东西叫做某某某类或者这个类叫做某某某｡
‫所以你可能没有得到任何有用的信息, 但至少它会使它成为一个字符串, 应用程序不会崩溃｡
‫正如我所说的, 继承是我们稍后要讨论的问题｡
‫基本上, 它是不同类之间的关系, 其中一个类将是父类｡
‫这个类可以有多个子类,
‫父类基本上具有针对特定函数和成员的特定功能集, 而继承类具有与父类相同的功能, 因此具有与父类相同的成员, 但它们可以在以后进行扩展｡
‫但正如我所说的, 我们将在单独的一章中深入讨论这个问题｡
‫所以在这里, 如果我们运行得好, 什么也不会发生｡
‫所以让我们来实际运行｡
‫让我们也调用parents方法, 并将一些很酷的值传递给它｡
‫因此, 我要传递一些愚蠢的值｡
‫我们就这样做吧｡
‫这里有一个整数, 我称之为price, 它的值是50.
‫然后我传递一个浮点数, 它就是我的pi.
‫然后我有一个字符, 这将是广告标志｡
‫然后我有一个字符串叫book, 这将是霍比特人｡
‫我现在要做的就是, 使用这个方法, 它接受一个对象的参数列表, 不管它有多少,
‫我们只传递了四个, 因为我们已经决定了.
‫我们本来可以传递三个或七个, 或者任意多个变量, 现在我们只传递所有这些不同的变量.
‫所以我们把价格定得很高｡
‫如果我们现在运行这个｡
‫我们将看到它显示为53｡ 公元14年和霍比特人｡
‫然后是第二行, 我们称之为派拉蒙方法, 方法二.
‫同样, 我们只是直接传递值｡
‫所以我们在这里传递一个字符串, 55｡ 3, 然后是字符美元符号｡
‫一个字符, 因为我们用的是单引号｡
‫基本上就是撇号｡
‫所以现在你可能会想, 我为什么要关心这个功能呢？
‫因为你给了我一些例子, 丹尼斯, 但它们对我并没有什么用处, 所以我为什么要关心？
‫因为我可以明确定义要传递多少参数, 然后我可以非常具体地定义它｡
‫问题是,
‫有很多应用程序不是这样的, 在这些应用程序中, 您实际上需要确保允许自由传递多个不同的值｡
‫我们将在下一个视频中的一个具体示例中详细介绍它｡
‫那到时见｡