在C#编程中,"类的调用-c#中的泛型和其他重点"这一主题涵盖了几个关键知识点。首先,我们来探讨类的创建和调用。在C#中,数组是存储同类型对象的有效数据结构,如`Goods[] goods = new Goods[3];`,这定义了一个包含3个元素的`Goods`类型的数组,并为其分配了内存空间。然后,我们创建类的对象并将其插入到数组中,如`goods[i] = new Goods();`,这通过`new`关键字实例化了`Goods`类的对象,并通过`.`运算符访问和调用了类的属性和方法。
接着,讨论的是类型转换。C#支持两种类型转换:隐式转换和显式转换。隐式转换要求数据类型兼容,且目标数据类型必须不小于源数据类型。例如,将整数隐式转换为字符类型,但反之则可能出错。显式转换则通过`parse()`函数将字符串转换为数值类型,或者使用`Convert`类进行类型转换,如`Convert.ToInt32("4")`。
易错题部分展示了C#语言的一些常见陷阱。比如,在`switch`语句中,尽管`im/3`的结果是1,但因为`case`标签没有明确指定数字,C#会根据隐式类型转换将`case 1:`解释为`case (int)1:`,导致输出"你好"而非预期的"1"。同样,`Console.WriteLine(a+b)`中的加法操作取决于参与运算的类型,`inta=20;stringb="10";`中的`+`用于字符串连接,而`inta=20;intb=10;`中的`+`用于数值相加。
在遍历数组或字符串时,需要注意`foreach`循环的迭代方式。`foreach`用于处理集合类型的元素,如`foreach(char c in str)`会逐个字符输出字符串,而`foreach(String s in str)`则按元素处理字符串数组。另外,`for`循环和`switch`结构中的`break`语句在C#中的行为也需注意,特别是在多层嵌套结构中。
最后,关于变量作用域的问题,当在循环或条件语句中声明局部变量`i`时,要注意其可能与外部作用域中的同名变量冲突。如果在`for`循环中尝试声明`i`,它会覆盖已存在的局部变量,从而可能导致错误。
这个资源涵盖了C#中类的创建与调用、类型转换、常见的编程陷阱以及变量作用域的理解,这些知识点对于理解C#语言的基本语法和实践应用至关重要。