美文网首页
一些知识的提升:密闭类和静态类、深拷贝和浅拷贝

一些知识的提升:密闭类和静态类、深拷贝和浅拷贝

作者: 即墨9999 | 来源:发表于2018-12-24 14:46 被阅读8次

1.密闭类和静态类

1、密闭类是修饰为sealed的类, sealed不能有子类。一般只有系统中的一些基本类声明为sealed。面试题:是否可以编写一个类继承自String类?

答:不能,因为string被声明为了sealed了

2、静态类:声明为static的类,不能实例化,只能定义static成员。通常用他定义扩展方法

3、C#3.0特性:扩展方法。声明静态类,增加一个静态方法,第一个参数是被扩展类型的标记为this,然后在其他类中可以直接调用,本质上还是对静态方法调用提供的一个“语法糖”,也可以用普通静态方法的方式调用,所以不能访问private和protected成员。例子:给String扩展一个IsEmail方法。自己写的机会比较少。

usingSystem;

usingSystem.Collections;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

namespaceTestConsole

{

    class Program

    {

        static void Main(string[] args) {

            string str = "HelloWorld!";

  str.ShowMsg(str);

            Console.ReadKey();

        }

}

    #region 扩展方法

    static class MyString

    {

        public static void ShowMsg(this string a, stringmsg)

        {

            Console.WriteLine(msg);

        }

    }

    #endregion 扩展方法

}

2.深拷贝、浅拷贝

如果拷贝的时候共享被引用的对象就是浅拷贝,如果被引用的对象也拷贝一份出来就是深拷贝。(深拷贝就是说重新new一个对象,然后把之前的那个对象的属性值在重新赋值给这个用户)

usingSystem;

usingSystem.Collections;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

namespaceTestConsole

{

    class Program

    {

        static void Main(string[] args)

        {

            MyCopy copy1 = new TestConsole.MyCopy();

            copy1.Name ="蛋蛋";

            copy1.Age =18;

            MyCopy copy2 = copy1;//浅拷贝

            MyCopy copy3 = new MyCopy();

            copy3.Name =copy1.Name;

            copy3.Age =copy1.Age;//深拷贝

            Console.ReadKey();

        }

}

    #region 深拷贝、浅拷贝

    class MyCopy

    {

        public string Name { get; set; }

        public int Age { get; set; }

    }

    #endregion 深拷贝、浅拷贝

}},  "JWoIVy�Z�T%�

相关文章

  • 一些知识的提升:密闭类和静态类、深拷贝和浅拷贝

    1.密闭类和静态类 1、密闭类是修饰为sealed的类, sealed不能有子类。一般只有系统中的一些基本类声明为...

  • 音视频开发之旅(21)运算符重载、继承、多态、模版

    目录 类和对象的重要知识点 运算符重载 继承 多态 模版 一、类和对象的重要知识点 1.1 深拷贝与浅拷贝 浅拷贝...

  • Java基础 - 深拷贝和浅拷贝

    Java 的深拷贝和浅拷贝 什么是深拷贝、浅拷贝 (深克隆、浅克隆)? 在 Java 中,数据类型分为 基本数据类...

  • 深拷贝、浅拷贝

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • 面试题整理

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • PHP之剑走偏锋的DeepCopy

    php的深拷贝和浅拷贝问题,普通变量对象的赋值 = 是深拷贝,& 是浅拷贝。 输出结果: 类对象的拷贝问题就得看下...

  • 面试 (一) : 基础篇

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。• 深拷贝同浅拷贝的区别:浅拷...

  • 基础

    1、父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅...

  • 常见的面试(一)

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。• 深拷贝同浅拷贝的区别:浅拷...

  • 深拷贝和浅拷贝不同

    浅拷贝:指针(地址)拷贝,不会产生新对象深拷贝:内容拷贝,会产生新对象 非容器类对象的深拷贝、浅拷贝 非容器类对象...

网友评论

      本文标题:一些知识的提升:密闭类和静态类、深拷贝和浅拷贝

      本文链接:https://www.haomeiwen.com/subject/tmkzkqtx.html