对于C#中的一些点滴你真的理解了吗?

废话不多说看题目,看看我们自己真的理解了吗?

1、如下代码输出的结果是什么?

public class A{

public virtual void Func(int  number=10)

{

Console.WriteLine("Class A
Func:"+number);

}

}

public class B{

public virtual void Func(int  number=10)

{

Console.WriteLine("Class B
Func:"+number);

}

}

void  main(arg)

{

B b=new B();

A a=b;

a.Func();

}

输出的答案是:Class B Func:10 ; 你看的没错
并不是Class B
Func:20;由于a是一个指向B实例的引用,因此在运行的时候会调用B::Fun。但缺省参数是在编译期决定的。在编译的时候,编译器只知道a是一个类型a的引用,具体指向什么类型在编译期是不能确定的,因此会按照A::Fun的声明把缺省参数number设为10。这一题的关键在于理解确定缺省参数的值是在编译的时候,但确定引用、的虚函数调用哪个类型的函数是在运行的时候。

时间: 2024-11-08 09:23:57

对于C#中的一些点滴你真的理解了吗?的相关文章

三层,你真的理解了吗?

这篇博客,在草稿箱存了很久,直至今日才准备发表.为什么呢?刚开始写这个博客的时候是三层登录刚刚实现.代码是借鉴的网上大神的,只是实现了简单的登录功能.知道它有三个层,每层是干吗的,理解也仅仅局限于官方的解释.也就是下面的这些东东: UI(view):显示层,只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理. BLL(Business Logic Layer):业务逻辑层,通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理.处理完成后,返回必要数据给UI

你真的理解大数据吗?

(大讲台——国内首个it在线自适应学习平台,轻量级的高薪就业和技能提升解决方案) 大数据很火,已然是一种大势所趋,是雷军口中的下一个吹起猪的风口,是刘强东哥伦比亚大学深造回来的第一个发展对象.大数据牵动着全国精英的心.然而,你真的理解什么是大数据吗? 就目前来看,对大数据进行解释的声音总体分为两种,一种是大数据数据量级要大,一般可达到pb级别,有了足量的数据之后,根据数据搭建起一个全方位多角度立体化的识别体系,比如说谣言这件事,以前数据量虽大,但处理技术欠佳,不能对谣言这类信息作出全方位立体化多

你真的理解函数式编程吗?

你真的理解函数式编程吗? 大数据以及人工智能越来越流程,你是否可以轻松适应大数据编程,函数式编程在其中起着重要作用,如何从面向对象编程跳槽到函数式编程?你是否觉得函数式各种概念难于理解?本场 Chat 将为你解答.我将为你分享亲身学习和理解关于函数式编程的经验: 高阶函数.闭包.匿名函数等 高阶函数和闭包是啥关系? 柯里化 函数式编程思维 适合人群: 如果你想转人工智能领域,请关注此 Chat 如果你想了解机器学习,请关注此 Chat 如果你正在学习一下机器学习,请购关注 Chat 实录提要:

领域模型,你真的理解的了吗?

领域模型,你真的理解的了吗? 背景 UML比较难学,主要是其本身很复杂并且涉及到大量的概念名词.领域模型就是其中之一,网络上搜索到关于领域模型的知识应该是有两种,一种是来源于最初的传统软件开发过程,一种来源于领域驱动设计(DDD),这两者很容易混淆.以下是我对领域模型这个概念的一些理解. 1. 领域模型是什么? 理论派观点: Domain Model是一个商业建模范畴概念,即使一个企业不开发软件,也具备其业务模型: 所有同行企业,其业务模型必定有非常大的共性和内在的规律性. 由行业内的各个企业的

我想这次我真的理解了 JavaScript 的单线程机制

今天面试的时候被问到一个问题,是关于 JS 异步的.当时我脑海中闪过了一个单线程的概念,但却没有把真正的原理阐述清楚.所以回来特意重新回顾了前面单线程和异步相关的一些知识点. 虽然之前学习的时候也接触了单线程模型相关的东西,但当时理解得并不是很清楚和明白.所以这道面试题也没有给出一语中的的答案.重新阅读阮一峰的 <JavaScript 运行机制详解>和我之前写的<setTimeout 异步与回调>之后.我决定重新写一篇博客来更加白话的总结 JS 的单线程机制和异步. 重演历史 -

ios中关于对锚点的理解

锚点在ios中见到的地方不多,大部分用在动画中. 今天看到一个动画,上面都是关于锚点的,锚点这个概念在两年前看cocos2d得基本概念时接触过,当时没怎么看,今天看到了,就在好好的学一下. 看了一篇blog,是关于锚点的,就借鉴一些上面的图像: cocos2d里采用OpenGL ES坐标系,坐标原点在屏幕左下角.而ios采用的是Quartz 2D坐标系,坐标原点在屏幕左上角. 在cocos2d和ios中分别把视图的坐标点设为(10,10),结果如下: 那么什么是锚点呢?下面以一个例子来说明: 比

数据库中一些基本概念的深入理解

1.怎样理解事务的一致性 一致性就是一个这样的东西,一致性对于不同的应用领域有着不同的定义,因为它就是按照业务规则来说明这个是一致的,那个是不一致的,这个角度上讲,一致性就是一个系统的状态,一个合理的状态.而合理则表现在这个状态是否符合业务规则.例如:转账业务中合理的状态就是,转出和转入帐户必须出入相等,如果不等那就意味着不合理,也就是不一致,有时候我们很容易就能把它定为"守恒一致性",也就是说总体来说什么也不多,什么也不少就是一致性.而这个规则能够使用于其他的义务吗?我们不能说不能,

IIFE-js中(function(){…})()立即执行函数写法理解

介绍IIFE IIFE的性能 使用IIFE的好处 IIFE最佳实践 jQuery优化 在Bootstrap源码(具体请看<Bootstrap源码解析>)和其他jQuery插件经常看到如下的写法: Js代码   +function ($) { }(window.jQuery); 这种写法称为: IIFE (Imdiately Invoked Function Expression 立即执行的函数表达式). 一步步来分析这段代码. 先弄清函数表达式(function expression)和 函数

递归中对于参数和变量的理解

 对于递归函数:参数,局部变量的生存期和调用时间问题 ================================================================================================== #include <stdio.h> int binary_to_ascii( unsigned int value) { unsigned int quotient; quotient = value / 10;