面试题

  最近同学们也陆陆续续的开始了面试,他们也总结了一些面试题,在这里,我也来做一个汇总: 

1.枚举是什么?

详情:https://www.runoob.com/csharp/csharp-enum.html

  枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。

  声明枚举的一般语法: 

enum <enum_name>
{ 
    enumeration list 
};

其中,

  • enum_name 指定枚举的类型名称。
  • enumeration list 是一个用逗号分隔的标识符列表。

枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.例如:

enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };

2.形参是什么?

  形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传如的参数.

  实参:全称为"实际参数"是在调用时传递个该函数的参数.形参和实参的类型必须要一致,或者要符合隐含转换规则,

3.怎样在当前页面显示当前页面的网址?

window.location
// 或者
window.location.href

  实例演示:

  新建一个空白HTML文档

  输入:

<script>
    alert(window.location.href)
</script>

  查看效果.

4.什么是LINQ?

  LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性。

5.asp.net中最常用的类有哪些?

  1. Response
  2. Request
  3. Server
  4. Application
  5. Session
  6. Cooki

更多介绍请见:https://zhidao.baidu.com/question/423840458.html

6.三层架构的数据来源?

  三层分别是UI表现层,BLL业务逻辑层,DAL数据访问层,数据来源是DAL与数据库打交道,通过DAL从数据库获取数据.

7.c#中拼接字符串

  开发过程中常用到的拼接字符串的方法有三种:

  1 简单 “+=” 拼接法

string str="a";
 
str+="c"+"d";
 
string str_1="a"+"b";

  第一种方式的实现原理,第一步先在内存中分配空间,存储str变量的对象,值为"a", “+=”时,又会重新创建一个对象来存储新的字符串(“abc"),把str指向这个新的地址。所以只有简单几步的拼写时,一般不会有太大问题,如果有时候需要循环拼接时,就会不断创建新的对象,很浪费性能和内存。 

  2 String.Format()

string str= String.Format("{0}{1}{2}","a","b","c");

  这种方式的代码看起来比较整洁,易于月度,效率也比+=高效很多。

  3 StringBuilder.Append

StringBuilder str=new StringBuilder();
 
str.Append("a"); 

  StringBuilder 是预先创建一个比较大的内存,以后每次操作时判断容量上限是否不够用,如果不够用就自动把容量扩大一倍,修改的还是第一次创建的对象的值。

  如果是简单的拼写时,可以用 "+=", string.format

循环内拼写很长的字符串时,就需要用到StringBuilder来节省性能和内存了。

8.读入取配置文件内容.

  1. 在右侧的资源管理器里,引用,添加引用,选择.net中的System.Configuration
  2. 在代码最前面,添加usingSystem.Configuration;
  3. 在你想读取配置文件的地方,使用:String hotelnama=ConfigurationManager.AppSetting["hotelnama"];

变量hotelnama读取的就是配置文件中你添加的值了.

9.分隔字符串的方法是什么

1.根据单个分隔字符用split截取

例如

string st="GT123_1";
string[] sArray=st.split("_");

即可得到sArray[0]="GT13",sArray[1]="1".

2.利用多个字符来分隔字符串

例如

string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split(new char[2] { 'j', '_' });
foreach(string e in sArray)
{
    Console.WriteLine(e);
}

得到sArray[0]="GTAZB",sArray[1]="Jiang".sArray[2]="Ben",sArray[3]="123".

3.根据字符串或字符串组来截取字符串

例如

string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries);
foreach(string e in sArray)
{
    Console.WriteLine(e);
}

得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123".

4.提取字符串中的第i个字符开始的长度为j的字符串

例如

string str = "GTAZB_JiangjBen_123";
int start=3,length=8; 
Console.WriteLine(str.Substring(start-1, length));

输出得到AZB_Jian.

5.提取字符串中右数长度为i的字符串

例如

string str = "GTAZB_JiangjBen_123";
string tSt;
int i=5;
tSt = str.Substring(str.Length - i); 
Console.WriteLine(tSt);

输出n_123.

6.替换字符串中的特定字符串

例如

string str = "GTAZB_JiangjBen_123";
string tSt;
tSt = str.Replace("123","321");
Console.WriteLine(tSt);

输出GTAZB_JiangjBen_321.

7.删除字符串中的特定字符串Jiangj

例如

string str = "GTAZB_JiangjBen_123";
string tSt;
tSt = str.Replace("Jiangj","");
Console.WriteLine(tSt);

输出GTAZX_Ben_123.

8.删除指定位置(第i个)的指定长度(length)的字符串

例如

string str = "GTAZB_JiangjBen_123";
int i=5,length=8;
str=str.remove(i,length);
console.writeline(str);

输出GTAZBen_123.

10.判断字符串每个值.

  针对这道题,我觉得可以将字符串的每个值逐个放入一个数组中,然后就可以对每个值进行判断了.

  System.String自带有ToCharArray方法,可以直接将字符串转为char数组,也就是例如

string str = "hello, world";
char[] chars = str.ToCharArray();

11.htmI转义字符

  HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用。这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢?

  这就要说到HTML转义字符串(Escape Sequence)了。

在这里我就只列举了最常用的一些,更多详情链接:https://www.cnblogs.com/legend-song/p/4037041.html

最常用的字符实体
显示说明实体名称实体编号
  半方大的空白 &ensp; &#8194;
  全方大的空白 &emsp; &#8195;
  不断行的空白格 &nbsp; &#160;
< 小于 &lt; &#60;
> 大于 &gt; &#62;
& &符号 &amp; &#38;
" 双引号 &quot; &#34;
© 版权 &copy; &#169;
® 已注册商标 &reg; &#174;
商标(美国) &#8482;
× 乘号 &times; &#215;
÷ 除号 &divide; &#247;
原文地址:https://www.cnblogs.com/fei-H/p/10961468.html