c#之有参和无参构造函数,扩展方法
例如在程序中创建 Parent类和Test类,在Test有三个构造函数,parent类继承Test类,那么我们可以在Test类自身中添加 扩展 方法吗?
答案:是不可以的。因为扩展方法必须是静态的,且静态方法是不存在构造函数的。
先看一段代码:
public class Test
{
public Test()
{
Console.WriteLine("这是无参的构造函数");
}
public Test(string name)
{
Console.WriteLine(string.Format("这是有参的构造函数,想知道name:{0}",name));
}
public Test(Test test, int age)
{
Console.WriteLine("这是含有Test类型的函数");
}
} public class Parent:Test
{
public Parent() : base(new Test(), ) {
Console.WriteLine("调用Test中的有参构造函数");
} } class Program
{
static void Main(string[] args)
{ Parent parent = new Parent();
//在调用的时候时候,是先调用了Test中的无参构造函数,接着调用了有Test类行的有参构造函数
}
}
还有一个this()的用法:
public class aaa{
public aaa(int v){}
public aaa() :this() {}
}
那么如何实现扩展呢?
public static class HasKz
{
public static void getName(this HasKz kz, int age)
{
//报错,提示静态类不能作为参数
}
}
//得到的结论,自身类中不能实现扩展方法 //同时扩展方法是在静态中定义的 例如在parent正确的定义//public static void GetName(this Test t,int name)
c#之有参和无参构造函数,扩展方法的更多相关文章
- Java通过反射技术动态创建对象(有参、无参构造)
实现类: package com.ljy; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTarge ...
- jnhs-java实体类的有参构造器 无参构造器Could not instantiate bean class 实体类No default constructor found
new一个对象的时候要用到构造函数, 例如Hello hello = new Hello();这时调用的是Hello的无参数构造方法; Hello hello = new Hello("hi ...
- 关于servlet中要写初始化逻辑应该重载有参还是无参的init
关于开发者在写初始化逻辑的时候,应该选用的哪个init方法@author mzy 在查看servlet的源码的时候,因为servlet是一个接口使用较麻烦: 所以我们使用它的实现类:GenericSe ...
- 在项目中导入lombok依赖自动生成有参,无参 空参 方法的注解
导入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok< ...
- httpclient的get带参不带参post带参不带参的简单应用
一,基础的的应用 1.1,get的无参请求 @Test public void doGet() throws Exception { //创建一个httpclient对象 CloseableHttpC ...
- [笔试题目]使用Stringbuffer无 参的构造函数创建 一个对象时,默认的初始容量是多少? 如果长度不够使用了,自动增长多少倍?
[笔试题目] 使用Stringbuffer无 参的构造函数创建 一个对象时,默认的初始容量是多少? 如果长度不够使用了,自动增长多少倍? StringBuffer 底层是依赖了一个字符数组才能存储字符 ...
- JAVA基础——构造函数方法总结(有参构造和无参构造)
使用构造器时需要记住: 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构造器可以有0个.1个或1个以上的参数 4.构造器没有返回 ...
- mybatis实体为什么要提供一个无参的构造函数
提问:Mybatis查询结果映射到实体类的时候,实体类为什么必须有一个空的构造函数? 类中如果没有构造函数,隐藏是无参构造函数,方便实体类需要通过Mybatis进行动态反射生成.如果实体类中一旦声明构 ...
- java有参无参构造器的的执行顺序
这里拿了用数组构造栈的一段代码说明一下 public class StackArray<E> { private Object[] data = null; private int max ...
随机推荐
- BUG笔记:Win8 IE10下input[type="password"]内字符显示被截取问题
这个BUG发生的截图: 这是发生在Windows8 IE10下,type为password的input文本框内输入长串字符后,初次失去焦点的时候会发生的一个BUG. 发生BUG的原因是这个文本框上应用 ...
- idong常用js总结
1.判断屏幕高度 $(document).ready(function() { $("#left").height($(window).height()); $(&qu ...
- (转)spring boot整合redis
一篇写的更清晰的文章,包括redis序列化:http://makaidong.com/ncjava/330749_5285125.html 1.项目目录结构 2.引入所需jar包 <!-- Sp ...
- JS的二维数组
今天,记录一下JS的二位数组,并附上例题. 一.二维数组的本质:数组中的元素又是数组. 其实,我们都见过这样的二维数组,只不过没在意罢了,例如: var arr = [[1,2,4,6],[2,4,7 ...
- WebService之Axis2(2):复合类型数据的传递
在实际的应用中,不仅需要使用WebService来传递简单类型的数据,有时也需要传递更复杂的数据,这些数据可以被称为复合类型的数据.数组与类(接口)是比较常用的复合类型.在Axis2中可以直接使用将W ...
- 数据分析与挖掘 - R语言:K-means聚类算法
一个简单的例子!环境:CentOS6.5Hadoop集群.Hive.R.RHive,具体安装及调试方法见博客内文档. 1.分析题目--有一个用户点击数据样本(husercollect)--按用户访问的 ...
- 用Anaconda安装TensorFlow+keras
检测目前安装了哪些环境变量:conda info --envs 查看当前有哪些可以使用的tensorflow版本:conda search --full -name tensorflow 查看ten ...
- 第三章基本的SQl查询语言
---恢复内容开始--- ---恢复内容结束---
- Summary: 书架问题
Consider the problem of storing n books on shelves in a library. The order of the books is fixed by ...
- chrome浏览器使用
1.如何打开多个历史网页.这个需求是这样的,有时候开了多个网页查找资料,但是又还没有做完,然后又需要重启电脑.显然重启电脑后再开启浏览器,一般都是显示浏览器的主页了,上次开的那些网页全部在历史记录里面 ...