答:
private | 私有成员, 在类的内部才可以访问(只能从其声明上下文中进行访问) |
protected | 保护成员,该类内部和从该类派生的类中可以访问 |
Friend | 友元 ,声明 friend 元素的程序集中的代码可以访问该元素,而不能从程序集外部访问。 |
Protected Friend | 在派生类或同一程序集内都可以访问。 |
public | 公共成员,完全公开,没有访问限制。 |
internal | 在同一命名空间内可以访问。(很少用) |
答:
答:
publicclass MainClass { public static void Main(){ Console.WriteLine(Foo(30)); } public static int Foo(int i){ if (i <= 0) return 0; else if(i > 0 && i <= 2) return 1; else return Foo(i - 1) + Foo(i - 2); } }
答:
委托是将一种方法作为参数代入到另一种方法。
是,事件是一种特殊的委托。
比如:onclick事件中的参数就是一种方法。
答:
overload 重载是方法的名称相同,参数或参数类型不同,进行多次重载以适应不同的需要。
Override 是进行基类中函数的重写,实现多态。
答:
int [] array = new int [*]; int temp = 0; for(int i = 0; i<array.Length-1; i++){ for(int j = i+1 ; j < array.Length ; j++){ if (array[j] < array[i]){ temp = array[i] ; array[i] = array[j] ; array[j] = temp ; } } }
或者
public static void bubble_sort(int[] x){ for (int i = 0; i < x.Length; i++){ for (int j = i; j < x.Length; j++){ if (x[i] < x[j]){ //从大到小排序 int temp; temp = x[i]; x[i] = x[j]; x[j] = temp; } } } } static void Main(string[] args){ int[] huage = { 1, 5, 2, 9, 3, 7, 6,4,8,0}; bubble_sort(huage); foreach (var a in huage){ Console.WriteLine(a ); } }
答:
C#通过提供索引器,可以象处理数组一样处理对象。特别是属性,每一个元素都以一个get或set方法暴露。索引器不单能索引数字(数组下标),还能索引一些HASHMAP的字符串,所以,通常来说,C#中类的索引器通常只有一个,就是THIS,但也可以有无数个,只要你的参数列表不同就可以了。索引器和返回值无关, 索引器最大的好处是使代码看上去更自然,更符合实际的思考模式.
微软官方一个示例:
索引器允许类或结构的实例按照与数组相同的方式进行索引。
索引器类似于属性,不同之处在于它们的访问器采用参数。
在下面的示例中,定义了一个泛型类(class SampleCollection<T>),并为其提供了简单的 get 和 set 访问器方法(作为分配和检索值的方法)。Program 类为存储字符串创建了此类的一个实例。
classSampleCollection<T>{ private T[] arr = new T[100]; public T this[int i]{ //注意,定义索引器。this 关键字用于定义索引器。 get{ return arr[i]; //访问器采用参数 } set{ arr[i] = value; //访问器采用参数 } } } // This class shows how client code uses the indexer class Program{ static void Main(string[] args){ SampleCollection<string> stringCollection = new SampleCollection<string>(); stringCollection[0] = "Hello, World"; //这里 使用索引器进行引用 System.Console.WriteLine(stringCollection[0]); } }
索引器使得对象可按照与数组相似的方法进行索引。
get 访问器返回值。set 访问器分配值。
this 关键字用于定义索引器。
value 关键字用于定义由 set 索引器分配的值。
索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
索引器可被重载。
索引器可以有多个形参,例如当访问二维数组时。
答:
使用MVC模式分层
一般为3层:数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
表示层为了与用户交互例如用户添加表单。
答:
装箱就是隐式的将一个值型转换为引用型对象。
拆箱就是将一个引用型对象转换成任意值型。
比如:
int i=0; System.Object obj=i;
这个过程就是装箱!就是将 i 装箱!
比如:
int i=0; System.Object obj=i; int j=(int)obj;
这个过程前2句是将 i 装箱,后一句是将 obj 拆箱!
答:
托管代码是运行.NET 公共语言运行时CLR的代码。
unsafe:非托管代码,不经过CLR运行,程序员自行分配和释放内存空间。
答:
DataSet:数据集。
DataCommand:执行语句命令。
DataAdapter:数据的集合,用于填充。
DataReader:数据只读器
Connection:数据库连接对像
Command:数据库命令
答:代码后置。
答:程序集。(中间语言,源数据,资源,装配清单)
答:
1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜单选项
答:
string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间。
答:
class可以被实例化,属于引用类型,class可以实现接口和单继承其他类,还可以作为基类型,是分配在内存的堆上的。
struct属于值类型,不能作为基类型,但是可以实现接口,是分配在内存的栈上的。
答:
解1:
select top 10 * from A where id not in (select top 30 id from A)
解2:
select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
答:
GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()或者Runtime.getRuntime().gc()
答:
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。
答:
会执行,在return后执行。
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!