美文网首页
C#中的匿名类型

C#中的匿名类型

作者: WxhShine | 来源:发表于2018-10-01 00:13 被阅读0次

​ 在一个项目中遇到了一个关于匿名类型的坑

在C#中的匿名类型是这样创建的:

new {Id = 1, Name = "Tom", Psw = "123"};

而这些匿名类型的属性是internal的,所以是只有在同一程序集才能使用。

​ 在一个项目中我使用了dynamic去声明了一个参数,并且跨程序集调用了此方法,则会抛出异常: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException :object类中未包含Id的定义

//在一个项目添加此代码
using System;
namespace DynamicDemo {
    class Program {
        static void Main(string[] args) {
            var user = new { Id = 1, name = "Tom", psw = "123" };
            LoginInter(user);
            Demo.Demo.Login(user);
            Console.ReadKey();
        }
        public static void LoginInter(dynamic user) {
            Console.Write(user.Id + user.name + user.psw);
        }
    }
}

//在另一个项目中添加此代码  生成的程序集是Demo.dll
using System;
namespace Demo {
    public class Demo {
        public static void Login(dynamic user) {
            Console.Write(user.Id + user.name + user.psw);//抛出异常
        }
    }
}

public 关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别,对访问公共成员没有限制。

protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。

private 关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的。

internal 关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的。

相关文章

  • C#中的匿名类型

    ​ 在一个项目中遇到了一个关于匿名类型的坑 在C#中的匿名类型是这样创建的: 而这些匿名类型的属性是inter...

  • C#匿名类型

    我们会花费很多的时间为数据表示创建一些简单的类,尤其是在数据库应用程序中。经常会有一系列的类只提供属性。这些类什么...

  • C#之托管与非托管资源

    C#中的数据类型 C#中的所有类型都是(直接或间接)从System.Object类型派生的。C#的类型被分成两大类...

  • var lady first

    C# 中的隐式类型的局部变量是为了支持匿名类型而出现的,并且也是为了解决一部分查询操作返回的结果是 IQuerya...

  • iOS基础之block

    1.block类型-存储代码块的类型 在异步编程时常需要进行函数回调,在C#中会用匿名委托或者lambda表达式讲...

  • C#匿名函数

    在 2.0 之前的 C# 版本中,声明委托的唯一方式是使用命名方法。 C# 2.0 引入匿名方法,在 C# 3.0...

  • 第一部分:C#语言基础

    第1章 C#类型基础 C#中的两种类型:值类型和引用类型 1.1 值类型和引用类型 值类型包括了结构和枚举,引用类...

  • GO 语言取得 Ethernet 类型的网卡地址

    在 C# 中取得 Ethernet 类型的网卡地址 在 C# 中,因为有 NetworkInterface .Ne...

  • C#

    C#语言 语法知识 is 检查一个类型是否兼容另一个类型 返回 bool值 lambda 说简单一点,就是一个匿名...

  • 知识整理

    C#语言 语法知识 is 检查一个类型是否兼容另一个类型 返回 bool值 lambda 说简单一点,就是一个匿名...

网友评论

      本文标题:C#中的匿名类型

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