如果使用某个变量去获取某个类型的对象创建,但是在这个类型的构造函数调用时抛出异常,请问此变量是否可以拿到对应的对象

如下面代码

        private void F1()
{
Foo foo = null;
try
{
foo = new Foo();
}
catch
{
// 忽略
}
} class Foo
{
public Foo()
{
throw new Exception("lindexi is doubi");
} ~Foo()
{
}
}

请问在执行完成 F1 函数前,在 F1 函数定义的 foo 变量是什么,是空,还是 Foo 对象

答案自然是空,原因是在 .NET 运行时的逻辑是先分配对象内存空间,然后再调用对象的构造函数,接着将对象赋值给到 foo 变量

而在进行第二步时就炸了,自然就不会给 foo 变量赋值

dotnet C# 如果在构造函数抛出异常 是否可以拿到对象赋值的变量的更多相关文章

  1. Javascript函数、构造函数、原型、类和对象

    函数 函数是JavaScript中特殊的对象,对函数执行typeof运算会返回字符串"function",因为函数也是对象,他们可以拥有属性和方法. 静态方法 函数在JS中定义了类 ...

  2. 使用DOM的方法获取所有li元素,然后使用jQuery()构造函数把它封装为jQuery对象

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. C++(1)C++类四个默认函数---构造函数、析构函数、拷贝函数、赋值函数

    C++构造函数和析构函数 默认构造函数指不带参数或者所有参数都有缺省值的构造函数!!! (1)构造函数.析构函数与赋值函数 构造函数.析构函数与赋值函数是每个类最基本的函数.它们太普通以致让人容易麻痹 ...

  4. c++拷贝构造函数,深拷贝,浅拷贝,对象内存

    https://blog.csdn.net/lwbeyond/article/details/6202256 防止默认拷贝发生 通过对对象复制的分析,我们发现对象的复制大多在进行“值传递”时发生,这里 ...

  5. 1--面试总结-js深入理解,对象,原型链,构造函数,执行上下文堆栈,执行上下文,变量对象,活动对象,作用域链,闭包,This

    参考一手资料:http://dmitrysoshnikov.com/ecmascript/javascript-the-core/中文翻译版本:https://zhuanlan.zhihu.com/p ...

  6. 在java类中,是先执行类的构造函数还是先执行类的私有非静态变量

    举例子: package test_instance; public class TestClassLoaderTime { public TestClassLoaderTime(){ System. ...

  7. 实现数组类(C++ 拷贝构造函数、拷贝函数)要判断赋值左右对象不相等,坑惨了

    #include <iostream> using namespace std; class ArrayIndexOutOfBoundsException{ // 异常类 public: ...

  8. Autowired注解的妙用---在Controller里的构造函数里获取需要注入的对象

    /*@Resource private Observer<TaxiObserverVo> taxiPushObserver; @Resource private Observer<T ...

  9. javascript中new操作符

    当代码var p= new Person("tom")执行时,其实内部做了如下几件事情: 1.创建一个空白对象(new Object()). 2.拷贝Person.prototyp ...

  10. JavaScript继承详解(一)

    面向对象与基于对象 几乎每个开发人员都有面向对象语言(比如C++.C#.Java)的开发经验. 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例. 类定义了一类事物公共的行为和方法:而实例则 ...

随机推荐

  1. 记录--uniapp开发安卓APP视频通话模块初实践

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 视频通话SDK用的即构的,uniapp插件市场地址 推送用的极光的,uniapp插件市场地址 即构音视频SDK uniapp插件市场的貌似 ...

  2. multisim中常见的显示器

    multisim中常见的显示器 1.实验原理 multisim中做实验仿真一般需要各种各样的仿真器来模拟实验结果.这里列举几种比较常见的显示器以便后面快速选择. 2.实验操作 (1)LED[二极管] ...

  3. 【mybatis踩坑】mybatis获取类型为字符串String的参数自动加引号

    今天写了一个简单的测试例子,用mybatis实现新建一个MySQL数据表 整体是JavaWeb项目,下面的代码是不完整的. 这是mapper 1 <?xml version="1.0& ...

  4. SQLSERVER 的表分区(水平) 操作记录2

    1        ----(非原创只是自己整理记录!!!)---------------原文地址: https://www.cnblogs.com/libingql/category/184251.h ...

  5. 实用 Linux 命令 Windos 命令 实例演示 持续更新中

    实用 Linux 命令 Windos 命令 实例演示 持续更新中 目录 实用 Linux 命令 Windos 命令 实例演示 持续更新中 Linux 命令 [Command [options] [lo ...

  6. #交互,栈#LOJ 3005 「JOISC 2015 Day 4」Limited Memory

    题目 分析 一开始想的是栈的匹配,但是位数不够,而且还忘记写memory.h, 考虑它询问次数不超过一万五千次,\(O(n^2)\)的询问是绰绰有余的, 如果每一个符号都能被匹配那整个串也能被匹配,而 ...

  7. C++ 面试必备:常见 C++ 面试题汇总及详细解析

    C++作为一门重要的编程语言,其在面试中常常是热门的考察对象.本文将会介绍一些常见的C++面试题,帮助C++面试者避免很多不必要的困惑和迷惑.每个问题都有相对应的答案,以便各位同学快速查阅. C++和 ...

  8. mysql系列之杂谈(一)

    从刚开始工作到现在,除了实习的时候在国企用过oracle,毕业之后陪伴我的数据库一直都是mysql,而由于mysql的开源特性,也让成为无数公司的宠儿,越走越远. 我们在刚开始使用mysql时,会发现 ...

  9. 驾考宝典携手HMS Core统一扫码服务,构建复杂场景中的流畅扫码体验

    "驾考宝典"是一款颇具人气的互联网综合驾照考试学习应用,通过强大的驾考功能,在手机移动端为学车学员提供从报名.学习到拿本的全方位驾考服务.作为一个专业的驾培平台,"驾考宝 ...

  10. JS实现文件转base64

    核心: function file2base64(){ fileAddress = document.getElementById("fileImage").files[0]; f ...