假设有一个基类A和一个B派生自的类A.然后,我们知道类的构造函数A永远不会被类继承B.但是,当B创建新对象时,则会A调用类的默认构造函数,然后调用类的默认/自定义构造函数B.也许这样做的目的是A需要将类的字段初始化为默认值.
现在,假设该类A已定义了自定义构造函数.这意味着A编译器会以静默方式删除类的默认构造函数.现在,在创建一个新的类实例时B,A在调用类B的构造函数之前会自动调用哪个类的构造函数?(A在这种情况下,类字段如何初始化?)
我试图理解代表的概念,并得到一个查询.假设我们将一个委托定义为返回类型为int,并接受int类型的2个参数.
代表声明:
public delegate int BinaryOp(int x, int y);
Run Code Online (Sandbox Code Playgroud)
现在,假设我们有两个方法(加法和乘法)都接受2个int参数并返回一个int结果.
码:
static int Add(int x, int y)
{
return x + y;
}
static int Multiply(int x, int y)
{
return x * y;
}
Run Code Online (Sandbox Code Playgroud)
现在,当add和multiply方法被添加到此委托中时,然后当委托被调用时,如:
BinaryOp b = new BinaryOp(Add);
b+=new BinaryOp(Multiply);
int value=delegate_name(2,3);
Run Code Online (Sandbox Code Playgroud)
然后,根据我的理解,这两种方法都被调用.现在,两个方法中的哪一个存储在值变量中?或者它在这种情况下返回一个数组?
请注意:这是一个概念性问题,与特定于生产的代码无关。
假设我们有一个带有虚拟方法GetBonus(int value)的Class A
接下来,我们从该类派生一个类,称为类B。在该类B中,我们重写方法GetBonus。
接下来,我们从B类派生一个名为C类的类。
现在,类C也可以覆盖类A的GetBonus方法。
题:
C类是否覆盖A类或B类的方法定义?
在C类中,如何防止A类方法的重载?
在C类中,如何防止B类方法被压倒?
我知道有一个SEALED关键字用于密封虚拟重写方法。但是上述问题将帮助我清除疑虑。
我读过自动实现的属性不能只读或只写.它们只能是读写的.
然而,在学习界面时,我遇到了foll.代码,它创建只读/只写和读写类型的自动属性.那可以接受吗?
public interface IPointy
{
// A read-write property in an interface would look like:
// retType PropName { get; set; }
// while a write-only property in an interface would be:
// retType PropName { set; }
byte Points { get; }
}
Run Code Online (Sandbox Code Playgroud) Thread.Join和waitHandle.WaitOne(),它们都强制调用线程等待.直到线程完成执行,直到分别调用waitHandle.Set().
但除此之外,2之间有什么区别吗?
为什么通用代表有DelegateName<T>?为什么不DelegateName(T arg)
参数已经指定了类型,那么为什么必须跟随委托名称<T>,它是作为命名约定,还是开发人员知道它接受整数或这种C#语法的目的是什么?
public delegate void MyGenericDelegate<T>(T arg);
Main()
{
// Register targets.
MyGenericDelegate<string> strTarget = new MyGenericDelegate<string>(StringTarget);
strTarget("Some string data");
MyGenericDelegate<int> intTarget = new MyGenericDelegate<int>(IntTarget);
intTarget(9);
static void StringTarget(string arg)
{
Console.WriteLine("arg in uppercase is: {0}", arg.ToUpper());
}
static void IntTarget(int arg)
{
Console.WriteLine("++arg is: {0}", ++arg);
}
}
Run Code Online (Sandbox Code Playgroud) 请帮我看看我的理解是否正确。
ASP.NET 会话存储在 Web 服务器上,不使用任何 cookie。
ASP.NET 如果配置为使用 webconfig->session state 的 session:那么我们可以将其配置为 stateconnection 或 sqlconnection。
ASP.NET 如果配置为使用会话状态(作为 stateconnection 或作为 sqlconnection),那么当用户在代码中使用会话时,将使用客户端计算机上的 cookie,除非您在 webconfig 中指定 cookieless=true
如果我们使用<sessionState cookieless="true" />then 默认情况下 stateconnection 设置为 localhost
c# ×6
delegates ×2
asp.net ×1
constructor ×1
generics ×1
inheritance ×1
interface ×1
oop ×1
polymorphism ×1
properties ×1
session ×1