小编use*_*194的帖子

课堂领域可以密封吗?

MSDN C#编程指南中,提到:

"A类成员,方法,字段,属性或事件,在被覆盖的基类的虚拟构件可以声明构件作为密封的派生类".

我理解上面的方法,属性和事件的声明,但上面的语句如何对类的字段有效?我在一个程序中尝试了这个并验证了一个字段不能是虚拟的,因此不能被覆盖.那怎么能被密封呢?如果它不能,那么来自MSDN参考的上述声明是否应该省略提及字段?

谢谢.

c# oop field sealed

13
推荐指数
2
解决办法
830
查看次数

为什么TCP在接收端缓冲数据

在大多数TCP PUSH功能的描述中,提到PUSH功能不仅要求发送方立即发送数据(不等待其缓冲区填充),还要求将数据推送到接收方的接收应用程序.一边,没有缓冲.

我不明白为什么TCP会在接收端缓冲数据?毕竟,TCP段在IP数据报中传播,IP数据报全部处理(即,在对任何给定段进行任何必要的IP数据报片段重组之后,IP层仅将整个段传送到TCP层).那么,为什么接收TCP层会等待将这些数据传递给它的应用程序呢?一个案例可能是应用程序在那个时间点没有读取数据.但是,如果是这种情况,那么无论如何强行将数据推送到应用程序是不可能的.因此,我的问题是,为什么PUSH功能需要指示接收器端行为的任何内容?鉴于应用程序在段到达时正在读取数据,无论如何应该直接将该段传递给应用程序.

谁能帮助解决我的疑问?

networking tcp

10
推荐指数
1
解决办法
9205
查看次数

为什么这段代码不会抛出异常?

我期望以下几行代码抛出一个异常,因为我正在访问Value一个可赋值为null的可变变量的属性null.但是,当我执行以下操作时,我没有任何异常:

int? x=null;
Console.WriteLine(x.Value==null);
Run Code Online (Sandbox Code Playgroud)

但当我这样做时:

Console.WriteLine(x.Value);
Run Code Online (Sandbox Code Playgroud)

我确实得到了一个例外,正如可以预料的那样.

但是两种访问方式有什么区别x.Value?为什么我在第一种情况下没有例外?毕竟两段代码都试图访问x.Value属性.

注意:我在www.compileonline.com网站上运行上面的代码,顺便说一句.不确定尝试使用Visual Studio编译器会产生不同的结果,但我目前无法访问Visual Studio.

TIA.

c# exception

6
推荐指数
2
解决办法
353
查看次数

标签 统计

c# ×2

exception ×1

field ×1

networking ×1

oop ×1

sealed ×1

tcp ×1