小编hel*_*rld的帖子

OOP继承和默认构造函数

假设有一个基类A和一个B派生自的类A.然后,我们知道类的构造函数A永远不会被类继承B.但是,当B创建新对象时,则会A调用类的默认构造函数,然后调用类的默认/自定义构造函数B.也许这样做的目的是A需要将类的字段初始化为默认值.

现在,假设该类A已定义了自定义构造函数.这意味着A编译器会以静默方式删除类的默认构造函数.现在,在创建一个新的类实例时B,A在调用类B的构造函数之前会自动调用哪个类的构造函数?(A在这种情况下,类字段如何初始化?)

c# oop constructor

44
推荐指数
2
解决办法
1万
查看次数

使用具有返回值的多个函数调用委托

我试图理解代表的概念,并得到一个查询.假设我们将一个委托定义为返回类型为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)

然后,根据我的理解,这两种方法都被调用.现在,两个方法中的哪一个存储在值变量中?或者它在这种情况下返回一个数组?

c# delegates

7
推荐指数
2
解决办法
4249
查看次数

防止继承链中的虚拟和替代

请注意:这是一个概念性问题,与特定于生产的代码无关。

假设我们有一个带有虚拟方法GetBonus(int value)的Class A

接下来,我们从该类派生一个类,称为类B。在该类B中,我们重写方法GetBonus。

接下来,我们从B类派生一个名为C类的类。

现在,类C也可以覆盖类A的GetBonus方法。

题:

  1. C类是否覆盖A类或B类的方法定义?

  2. 在C类中,如何防止A类方法的重载?

  3. 在C类中,如何防止B类方法被压倒?

我知道有一个SEALED关键字用于密封虚拟重写方法。但是上述问题将帮助我清除疑虑。

c# polymorphism inheritance

3
推荐指数
1
解决办法
948
查看次数

只读并在Interface中只写自动属性

我读过自动实现的属性不能只读或只写.它们只能是读写的.

然而,在学习界面时,我遇到了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)

c# properties interface

3
推荐指数
1
解决办法
615
查看次数

Thread.Join和waitHandle.WaitOne()有什么区别?

Thread.Join和waitHandle.WaitOne(),它们都强制调用线程等待.直到线程完成执行,直到分别调用waitHandle.Set().

但除此之外,2之间有什么区别吗?

c# multithreading

0
推荐指数
1
解决办法
1144
查看次数

为什么通用委托有DelegateName <T>(T arg)?为什么不使用DelegateName(T arg)

为什么通用代表有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)

c# generics delegates

0
推荐指数
1
解决办法
70
查看次数

ASP.NET 会话与会话状态以及 cookie 与 cookie 较少

请帮我看看我的理解是否正确。

  1. ASP.NET 会话存储在 Web 服务器上,不使用任何 cookie。

  2. ASP.NET 如果配置为使用 webconfig->session state 的 session:那么我们可以将其配置为 stateconnection 或 sqlconnection。

  3. ASP.NET 如果配置为使用会话状态(作为 stateconnection 或作为 sqlconnection),那么当用户在代码中使用会话时,将使用客户端计算机上的 cookie,除非您在 webconfig 中指定 cookieless=true

  4. 如果我们使用<sessionState cookieless="true" />then 默认情况下 stateconnection 设置为 localhost

asp.net session session-state

0
推荐指数
1
解决办法
4326
查看次数