问题1:

 public int getvalue(int a)
{
try
{
a = a + ;
return a = a + ;
}
catch (Exception)
{
throw;
}
finally
{
a = a + ;
} }

int a = getvalue(3);

a的值是多少呢? 一般一定认为:finally是一定执行的,所以答案是56

但是实际是 retun 比 finally 先执行

所以答案是6

2.new 有几种用法

三种用法如下:
在 C# 中,new 关键字可用作运算符、修饰符或约束。
)new 运算符:用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。
)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。
)new 约束:用于在泛型声明中约束可能用作类型参数的参数的类型。 关于第二种用法看下例:
using System;
namespace ConsoleApplication1
{
public class BaseA
{
public int x = ;
public void Invoke()
{
Console.WriteLine(x.ToString());
}
public int TrueValue
{
get { return x; }
set { x = value; }
}
}
public class DerivedB : BaseA
{
new public int x = ;
new public void Invoke()
{
Console.WriteLine(x.ToString());
}
new public int TrueValue
{
get { return x; }
set { x = value; }
}
} class Test
{
static void Main(string[] args)
{
DerivedB b = new DerivedB();
b.Invoke();//调用DerivedB的Invoke方法,输出:2
Console.WriteLine(b.x.ToString());//输出DerivedB的成员x值:2
BaseA a = b;
a.Invoke();//调用BaseA的Invoke方法,输出:1
a.TrueValue = ;//调用BaseA的属性TrueValue,修改BaseA的成员x的值
Console.WriteLine(a.x.ToString());//输出BaseA的成员x的值:3
Console.WriteLine(b.TrueValue.ToString());//输出DerivedB的成员x的值,仍然是:1
//可见,要想访问被隐藏的基类的成员变量、属性或方法,办法就是将子类造型为父类,然
//后通过基类访问被隐藏的成员变量、属性或方法。
}
}
} new约束指定泛型类声明中的任何类型参数都必须具有公共的无参数构造函数.请看下例:
using System;
using System.Collections.Generic; namespace ConsoleApplication2
{
public class Employee
{
private string name;
private int id; public Employee()
{
name = "Temp";
id = ;
} public Employee(string s, int i)
{
name = s;
id = i;
} public string Name
{
get { return name; }
set { name = value; }
} public int ID
{
get { return id; }
set { id = value; }
}
} class ItemFactory<T> where T : new()
{
public T GetNewItem()
{
return new T();
}
} public class Test
{
public static void Main()
{
ItemFactory<Employee> EmployeeFactory = new ItemFactory<Employee>();
////此处编译器会检查Employee是否具有公有的无参构造函数。
//若没有则会有The Employee must have a public parameterless constructor 错误。
Console.WriteLine("{0}'ID is {1}.", EmployeeFactory.GetNewItem().Name, EmployeeFactory.GetNewItem().ID);
}
}
} 见MSDN上关于New的解释
new 修饰符(C# 参考) 在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。 隐藏继承的成员时,该成员的派生版本将替换基类版本。 虽然可以在不使用 new 修饰符的情况下隐藏成员,但会生成警告。 如果使用 new 显式隐藏成员,则会取消此警告,并记录要替换为派生版本这一事实。 若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并使用 new 修饰符修饰该成员。 例如: public class BaseC
{
public int x;
public void Invoke() { }
}
public class DerivedC : BaseC
{
new public void Invoke() { }
} 在此示例中,DerivedC.Invoke 隐藏了 BaseC.Invoke。 字段 x 不受影响,因为它没有被类似名称的字段隐藏。 通过继承隐藏名称采用下列形式之一: 引入类或结构中的常数、指定、属性或类型隐藏具有相同名称的所有基类成员。 引入类或结构中的方法隐藏基类中具有相同名称的属性、字段和类型。 同时也隐藏具有相同签名的所有基类方法。 引入类或结构中的索引器将隐藏具有相同名称的所有基类索引器。 对同一成员同时使用 new 和 override 是错误的做法,因为这两个修饰符的含义互斥。 new 修饰符会用同样的名称创建一个新成员并使原始成员变为隐藏的。 override 修饰符会扩展继承成员的实现。 在不隐藏继承成员的声明中使用 new 修饰符将会生成警告。 示例 在该例中,基类 BaseC 和派生类 DerivedC 使用相同的字段名 x,从而隐藏了继承字段的值。 该示例演示了 new 修饰符的用法。 另外还演示了如何使用完全限定名访问基类的隐藏成员。 public class BaseC
{
public static int x = ;
public static int y = ;
} public class DerivedC : BaseC
{
// Hide field 'x'.
new public static int x = ; static void Main()
{
// Display the new value of x:
Console.WriteLine(x); // Display the hidden value of x:
Console.WriteLine(BaseC.x); // Display the unhidden member y:
Console.WriteLine(y);
}
}
/*
Output:
100
55
22
*/ 在此示例中,嵌套类隐藏了基类中同名的类。 此示例演示了如何使用 new 修饰符来消除警告消息,以及如何使用完全限定名来访问隐藏的类成员。 public class BaseC
{
public class NestedC
{
public int x = ;
public int y;
}
} public class DerivedC : BaseC { // Nested type hiding the base type members.
new public class NestedC
{
public int x = ;
public int y;
public int z;
} static void Main()
{
// Creating an object from the overlapping class:
NestedC c1 = new NestedC(); // Creating an object from the hidden class:
BaseC.NestedC c2 = new BaseC.NestedC(); Console.WriteLine(c1.x);
Console.WriteLine(c2.x);
}
}
/*
Output:
100
200
*/

3.varchar和nvarchar分别最大长度是多少,区别是什么

1.nvarchar(n) : 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 
2.varchar[(n)]: 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。
2、区别:
1.从存储方式上,nvarchar是按字符存储的,而 varchar是按字节存储的;
2.从存储量上考虑, varchar比较节省空间,因为存储大小为字节的实际长度,而 nvarchar是双字节存储;
3.在使用上,如果存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,因为nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率;
4.如果你做的项目可能涉及不同语言之间的转换,建议用nvarchar。

4.数据库的页是什么概念

。对于SQL Server来说,每一个文件都是一长串的bytes.SQL Server逻辑上(仅仅是逻辑上,不是物理上)把这个文件分成N多8K大小的块。这个块就是所谓的页。数据库文件第一个8K的块就是页#0,下一个8K的块就是页#1,依此类推。页是IO读取的最小单元,SQL Server每一个IO读写都涉及一个页,当然了,对于多个物理上连续的页,SQL Server也可以用一个IO全部完成

具体有篇文章:http://www.cnblogs.com/CareySon/archive/2012/09/07/2674503.html

5.事务在更新的时候,其他表能不能读取,答案是根据事务级别来确定,不同的级别,不同的效果,有得会产生脏读,有得会照成死锁

具体有篇文章:http://blog.csdn.net/dinglang_2009/article/details/7204253

http://www.cnblogs.com/qanholas/archive/2012/05/02/2479340.html

补充下.net知识的更多相关文章

  1. Atitit  补充说明 sql知识图谱与线路图attilax总结补充说明

    Atitit  补充说明 sql知识图谱与线路图attilax总结补充说明 1. 常见编程语言的分类  :命令式语言.函数式语言.逻辑语言1 1.1. 按照编程语言的代际划分,又2gl,3gl,4gl ...

  2. 开始逐步补充下相关Web知识,很多年没搞了....

    <script type="text/javascript"> $(function(){ ShowProduct(); $("#ShowUserInfo&q ...

  3. python any,call,init,下划线知识汇总

    python补充 any() [来自菜鸟教程] any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True. 元素 ...

  4. 年底巩固下 CS 知识「GitHub 热点速览 v.21.49」

    作者:HelloGitHub-小鱼干 期末到了!是时候来一波 CS 复习资料了,从本科基础知识开始到实用编程技术.本周 GitHub 热点趋势榜给你提供了最全的复习资料:清华的 CS 四年学习资料.W ...

  5. myeclipse一些快捷键 错了或者没说到补充下

    Ctrl + 1 快速修复Ctrl + D  删除当前行 Ctrl + Alt + ↓ 复制当前行到下一行(复制增加)Ctrl + Alt + ↑ 复制当前行到上一行(复制增加)Alt + ↓ 当前行 ...

  6. 我的Python笔记补充:入门知识拾遗

    声明:本文整理借鉴金角大王的Python之路,Day1 - Python基础1,仅供本人学习使用!!! 入门知识拾遗 一.bytes类型 二.三元运算 1 result = 值1 if 条件 else ...

  7. Java多态、向上转型、向下转型知识分享(讲解全面)

    多态(方法的多态.对象的多态) 方法的多态 重写的多态(重要):子类继承父类,因此子类拥有父类属性和方法,如果子类重写父类方法,那么父类调用该方法的时候就会检查子类是否重写该方法,子类重写了就调用子类 ...

  8. mysql 下字符集知识汇总

    Do not issue the query set names with Connector/J, as the driver will not detect that the character ...

  9. Vue 脱坑记 - 查漏补缺(汇总下群里高频询问的xxx及给出不靠谱的解决方案)

    前言 发现群里有些问题的提问重复率太高了,每次都去回答,回答的贼烦.这里做一个大体的汇总,废话不多说,直接开始给出方案,不是手把手..若是连问题和解决都看不懂的..应该去补充下基础知识 问题汇总 Q: ...

随机推荐

  1. PowerDesigner 12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键

    PowerDesigner 12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键 1. 附加:工具栏不见了 调色板(Palette)快捷工具栏不见了PowerDesigner ...

  2. MySQL 如何更新某个字段的值为原来的值加1

    格式:update 表名称 set 字段名称 = 字段名称 + 1 [ where语句] 比如说数据库中有一张student表,要想把id为1的学生成绩(score)加1则update student ...

  3. 可重入函数、线程安全、volatile

    一. POSIX 中对可重入和线程安全这两个概念的定义: Reentrant Function:A function whose effect, when called by two or more  ...

  4. AOV网与拓扑排序

    在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称之为AOV网(Activity on Vextex Network).AOV网中的弧表示活动 ...

  5. Linux内存初始化(二)identity mapping和kernel image mapping

    一.前言 本文没有什么框架性的东西,就是按照__create_page_tables代码的执行路径走读一遍,记录在初始化阶段,内核是如何创建内核运行需要的页表过程.想要了解一些概述性的.框架性的东西可 ...

  6. VirtualBOX 不能mount优盘,移动硬盘解决方案

    The Solution (basically nayasis' solution with the second driver installation added): Safely unplug ...

  7. mysql 怎么给一个表一次增加多个字段, mysql 添加 多个 字段

    sql 语句: ALTER TABLE oversea_liveauctioneers_detail_info_2018 ADD `result` LONGTEXT, ADD `buyer_premi ...

  8. tomcat多域名配置(转)

    TOMCAT的域名配置 现在很多的公司的网站都是用tomcat作为应用服务区的,可是对于初学者,8080端口号是如何去掉的,这些网站是如何和域名绑定到一起的呢?一个 tomcat是如何绑定多域名?并且 ...

  9. Verilog学习笔记

    作者:桂. 时间:2017-06-24  11:07:40 链接:http://www.cnblogs.com/xingshansi/p/7039237.html 前言 Verilog是硬件描述语言, ...

  10. k8s的容器监测探针

    大部分的应用程序我们在部署的时候都会适当的添加监控,对于运行载体容器则更应该如此.kubernetes提供了 liveness probes来检查我们的应用程序.它是由节点上的kubelet定期执行的 ...