1.结构体里面是否可以有属性?
可以有属性。实测代码以及截图。
In C#, we can use the following statement to convert a string s to an integer num 124
A.int num = Convert.ToInt32(s);
B.int nym = Int32.Parse(s);
C.int num = s.ToInt();(不可以)
D.int num = int.Parse(s);(测试可以过)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Fraction { public struct StructTest { private int x; public int X { get { return x; } set { x = value; } } public StructTest(int _x) { x = _x; } } class Program { static void Main(string[] args) { StructTest str = new StructTest(); str.X = 1; Console.WriteLine(str.X); string s = "123"; int num1 = Convert.ToInt32(s); int num2 = Int32.Parse(s); //int num3 = s.ToInt(); int num4 = int.Parse(s); Console.WriteLine("num1="+num1); Console.WriteLine("num2="+num2); //Console.WriteLine(num3); Console.WriteLine("num4="+num4); Console.Read(); } } }
Property 可声明在 class, struct, interface里!
使用属性的好处:
允许只读或者只写字段;
可以在访问时验证字段;
接口和实现的数据可以不同;
替换接口中的数据。
2.参数传递的方式:按值传递、按引用传递。没有按位置传递、没有按名称传递。
3.LINQ查询:LINQ to Object, LINQ to XML, LINQ to ADO.NET 包括两种独立的技术: LINQ to DataSet 和 LINQ to SQL
对于LINQ to Object可以查询数组等里面的数据;
对于LINQ to SQL可以查询SQL能够查询的表中的数据;
对于LINQ to XML可以查询XML文档的标签等;
对于LINQ to DataSet可以查询DataSet中的数据;
3.委托的形式
f = delegate(int x){return x + 1;};
f = x => x+1;
测试代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Lambda { class Program { static void Main(string[] args) { int sum = 0; Func<int, int> f1 = x => 2 * x + 1; Func<int, int, bool> f2 = (x, y) => x > y; Func<string, int, string> f3 = (x, y) => x.Substring(y); Func<int, int> f4 = (x) => sum += x; Action a1 = () => { System.Console.WriteLine("HelloWorld"); }; Action <int> a2 = (x) => { System.Console.WriteLine(x); }; Action <bool> a3 = (x) => { System.Console.WriteLine(x); }; Action<string> a4 = (x) => { System.Console.WriteLine(x); }; for (int i = 1; i <= 10; i++ ) { f4(i); } a2(sum); a1(); a2(f1(1)); a3(f2(3, 5)); a4(f3("Zhengpengfei", 5)); System.Console.Read(); } } }
4.内嵌类型可以是类、结构、结构体、枚举、委托
具体见PPT
5.类与结构体、类与接口、重载(overloading)与重写(overriding)、虚方法与抽象方法、托管代码与非托管代码
6.Constants can be declared static (True)
在C#中const与static不能同时修饰变量;
7.装箱boxing:值类型转换为引用类型;
拆箱unboxing:引用类型转为值类型。
8.An interface member is implemented or _inherited__from a base class
接口的成员要么自己定义要么继承自父类。
接口不能包含常量、字段、操作符、构造函数、析构函数、任何静态成员、方法的实现;
9.What is the difference between private assembly and public assembly?
private assembly只能被一个应用程序使用、保存在应用程序目录中、不要求强命名、无法签名;
public assembly可以被所用应用程序使用、保存在全局程序集中、必须有一个强命名、可以签名
另外强命名包括四个部分:Assembly的命名、Assembly的版本号、Assembly的文化属性、Assembly的公钥。
原文:http://www.cnblogs.com/zpfbuaa/p/5608900.html