分析代码

本文探讨了C#中的编程技巧,包括关键字使用、静态构造函数行为、字符串与编码长度差异等。同时介绍了SQL Server数据库操作技巧,如特定行范围查询及数据集与数据阅读器的使用场景对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 分析以下代码:       

public static void CheckLength()
        {
            string str = "abcdefg某某某";
            int i = System.Text.Encoding.Default.GetBytes(str).Length;
            int j = str.Length;
            Console.WriteLine(string.Format("i={0},j={1}",i,j));
        }

输出结果是什么?

 

Answer:i=13,j=10

 

  • Const和readonly区别

const用来声明编译时常量,readonly用来声明运行时常量

 

  • 接口和抽象类的区别

接口中的所有方法必须是抽象的,并且不能指定方法的访问修饰符(默认都是public);抽象类中的方法可以是抽象的,

也可以有具体的实现,也可以指定方法的访问修饰符

 

  • 写sql语句,取出表A中31到40行的记录(使用sql server数据库,以自动增长的id作为主键,该id可能不是连续增长)

solution 1: select top 10 * from A where id not in (select top 30 id from A)

solution 2: select top 10 * from A where id > (select  max(id) from (select top 30 id from A) as A)

 

  • dataset 和datareader的区别

datareader和dataset最大的区别在于,datareader使用时始终占用sqlConnection,在线操作数据库。任何对sqlConnection的操作都会引发datareader的异常。因为datareader每次只在内存中加载一条数据,所以占用的内存是很小的。因为datareader的特殊性和高性能,所以datareader是只进的。你读了第一条后就不能再读取第一条了。

dataset则是将数据一次性加载在内存中,抛弃数据库连接。读取完毕即放弃数据库连接。因为dataset将数据全部加载在内存中。所以比较消耗内存。但是比datareader要灵活,可以动态的添加行/列,对数据库进行回传更新操作。

 

  • 在C#中using和new两个关键字有什么意义?

using引入一个命名子空间,或在使用了一个对象后自动调用其IDespose,

New实例化一个对象,或者修饰一个方法,表示完全重写此方法。

 

  • 判断下列代码的输出是什么?(构造函数,static构造函数)【C】

    class Class1
    {
        public static int count = 0; //a
        static Class1()
        {
            count++;//b
        }
        public Class1()
        {
            count++;//c
        }
        static void Main()
        {
            Class1 c1 = new Class1();//step1
            Class1 c2 = new Class1();//step2
            Console.WriteLine(count);
            Console.ReadKey();
        }
    }

 

A:1,     B:2,    C:3,    D:4

 

分析:程序初始化后首先给static变量赋值,运行a,count=0;

然后,运行static的构造函数,运行b,count=1;

然后,运行step1,对c1初始化,因为count变量已存在,直接运行构造函数c,count=2;

最后,运行step2,对c2初始化,运行构造函数c,count=3;

所以,输出结果为3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值