首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# NET 3.5 :属性或索引器不能分配给“--”,它是只读的

C# NET 3.5是一种编程语言,它是微软公司开发的一种面向对象的编程语言。属性或索引器是C#中的一种特殊语法,用于访问和操作类的成员变量。在C#中,属性或索引器可以被分配新的值,但有些属性或索引器是只读的,即不能被分配新的值。

对于属性或索引器不能分配给“--”,它是只读的这个问题,可能是由于在代码中尝试给一个只读的属性或索引器赋值导致的。只读属性或索引器在声明时使用get访问器,而不使用set访问器,因此无法对其进行赋值操作。

解决这个问题的方法是检查代码中对属性或索引器的赋值操作,并确保只对可写的属性或索引器进行赋值。如果需要对只读属性或索引器进行赋值,可以考虑修改其定义,添加set访问器来支持赋值操作。

在腾讯云的相关产品中,与C# NET 3.5开发相关的产品包括:

  1. 云服务器(CVM):腾讯云提供的弹性云服务器,可用于部署和运行C# NET 3.5应用程序。详情请参考:云服务器产品介绍
  2. 云数据库MySQL版(TencentDB for MySQL):腾讯云提供的MySQL数据库服务,可用于存储和管理C# NET 3.5应用程序的数据。详情请参考:云数据库MySQL版产品介绍
  3. 云存储(COS):腾讯云提供的对象存储服务,可用于存储和管理C# NET 3.5应用程序中的静态资源文件。详情请参考:云存储产品介绍

请注意,以上仅是腾讯云提供的一些相关产品,其他云计算品牌商也可能提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#8.0新增特性

readonly 修饰符对于只读属性是必需。 编译会假设 get 访问可以修改状态;必须显式声明 readonly。...如果没有通过调用任何可用构造函数通过初始化表达式来设置变量,编译将生成警告。 此外,不能向不可为空引用类型分配一个可以为 Null 值。...不过,编译器使用流分析来确保可为空引用类型任何变量在被访问分配给不可为空引用类型之前,都会对其 Null 性进行检查。 异步流: 从 C# 8.0 开始,可以创建并以异步方式使用流。...返回异步流方法有三个属性它是用 async 修饰符声明。 它将返回 IAsyncEnumerable。 该方法包含用于在异步流中返回连续元素 yield return 语句。...仅当左操作数计算为 null 时,会将其右操作数分配给左操作数。 非托管构造类型: 在 C# 7.3 及更低版本中,构造类型(包含至少一个类型参数类型)不能为非托管类型。

1.1K40

了解C#协变和逆变

你可以将 IEnumerable 实例分配给 IEnumerable 类型变量。 Contravariance 使你能够使用比原始指定类型更泛型(派生程度更小)类型。...你可以将 Action 实例分配给 Action 类型变量。 Invariance 表示只能使用最初指定类型。 固定泛型类型参数既不是协变,也不是逆变。...你无法将 List 实例分配给 List 类型变量,反之亦然。 以上来自于官方文档对协变、逆变、不变性解释 为啥C#需要协变和逆变?...,C#协变和逆变就是主要有两种目的: 兼容性:.NET2.0就推出了泛型,而从.NET 2.0到.NET 3.5期间不支持对泛型接口中占位符T支持隐式转换,因此在.NET4.0推出协变和逆变 为了支持更广泛隐式类型转换...(); IEnumerable fooBase = foo; 实际上,对于协变,有下面的约束,否则则会在编译时报错: 泛型参数占位符以out关键子标识,并且占位符T只能用于只读属性

90210

C# 9.0 中新增功能

它是不可变,因为在创建它后,无法修改任何属性。...属性初始值设定项可明确哪个值正在设置哪个属性。 缺点是这些属性必须是可设置。 从 C# 9.0 开始,可为属性索引创建 init 访问,而不是 set 访问。...它会在初始化之外分配给仅限 init 属性: // Error!...编译将这些类型其他转换和操作作为本机整数公开。 本机大小整数定义 MaxValue MinValue 属性。 这些值不能表示为编译时编译时,因为它取决于目标计算机上整数本机大小。...在 C# 9.0 之前,分部方法为 private,但不能指定访问修饰符、不能返回 void,也不能具有 out 参数。 这些限制意味着,如果未提供任何方法实现,编译会删除对分部方法所有调用。

1.7K20

C# 8 - 其它新特性

(范围和索引C# 8.0 - 默认接口方法 C# 8 - using声明 和 异步流 .NET Core 3.0 里新JSON API .NET Core 3.0 本地工具 .NET Core...只读struct成员 从C# 8开始,我们可以在struct成员上使用readonly修饰符。...但是这里会出现警告,因为 ToString 访问了未标记为 readonly Distance 属性。也就是需要创建防御性副本时,编译会发出警告。...由于Distance属性不会修改状态,所以可以在它前边加上readonly修饰符以修复此警告: ? 请注意,readonly 修饰符对于只读属性是必须要添加。...但是自动实现属性则是一个例外;编译将所有自动实现 Getter 视为 readonly,因此,此处无需向 X 和 Y 属性添加 readonly 修饰符。

84510

.NET周刊【12月第1期 2023-12-06】

小心 C#只读结构体成员 https://www.cnblogs.com/broadm/p/17862169.html 本文讲述了 C#中结构体只读属性对代码行为影响。...通过示例展示了将结构体成员设为只读后,尝试修改其字段值时,编译不报错但修改不成功,因为只读机制会导致字段值在堆栈上拷贝。这种隐蔽行为可能引发 BUG,如自旋锁示例中计数错误。...文章建议在结构体字段需要只读时,使用 readonly 关键字直接修饰,以避免潜在问题。.../ .NET 8 提供 Microsoft.Extensions.Telemetry.Abstractions 中包含“LogProperties”属性说明,该属性属性值保留在日志中。...引入“FakeTimeProvider”,它是 .NET 8 中引入“ITimeProvider”伪造实现,以及“FakeLogger”,它是新引入“ILogger”伪造实现。

20310

C#历来语法特性总结

} = "Louzi"; 匿名类型 匿名类型是C# 3后推出功能,它无需显示定义类型,将一组只读属性封装到单个对象中。...如果两个多个匿名对象指定了顺序、名称、类型相同属性,编译会把它们视为相同类型实例。在创建匿名类型时,如果不指定成员名称,编译会把用于初始化属性名称作为属性名称。...6开始,对象初始化列表不仅可以初始化可访问字段和属性,还可以设置索引。...{ get; set; } = "Property"; } 表达式体 从C# 6起,支持方法、运算符和只读属性表达式体定义,自C# 7.0起,支持构造函数、终结属性索引表达式体定义。...=合并赋值运算符:C# 8后可用,仅在左侧操作数求值结果为null时,才将右操作数值赋值给左操作数。否则,不会计算其右操作数。??=运算符左操作数必须是变量、属性索引元素。 // ??

34540

C# 中使用 Span 和 Memory 编写高性能代码

目录 在 C# 中使用 Span 和 Memory 编写高性能代码 .NET 中支持内存类型 .NET Core 2.1 中新增类型 访问连续内存: Span 和 Memory Span 介绍 C#...Span 和 Memory 结构体为数组、字符串任何连续托管非托管内存块提供低级接口,它们主要功能是促进微优化和编写低分配代码,以减少托管内存分配,从而减少垃圾收集负担。...Span 能够指向分配给堆栈堆上内存块。但是,因为 Span 被定义为 ref 结构,所以它应该只驻留在堆栈上。...Span 源代码显示它基本上包含两个只读字段: 一个本机指针和一个长度属性,表示 Span 包含元素数。...当需要修改处理 Memory 引用缓冲区时,Span 属性允许开发者获得高效索引功能。

2.8K10

c#面试题汇总

Override 是进行基类中函数重写。Override是面向对象概念 6、C#索引是否只能根据数字进行索引?是否允许多个索引参数? 参数个数和类型都是任意。...接口只包含方法(Method)、属性(Property)、索引(Index)、事件(Event)签名,但不能定义字段和包含实现方法; 抽象类可以定义字段、属性、包含有实现方法。 ...下列关于C#索引理解正确是(c   )      a) 索引参数必须是两个两个以上      b) 索引参数类型必须是整数型      c) 索引没有名字      d) 以上皆非   ...49、.请叙述属性索引区别。 (*)没啥意义      属性          索引       通过名称标识。 通过签名标识。       通过简单名称成员访问来访问。 ...可以为静态成员实例成员。 必须为实例成员。       属性   get   访问没有参数。 索引   get   访问器具有与索引相同形参表。

4.8K20

C# 8 新增小功能

c),但不能用于变量(var a1 = b ??c)。 目前,这个(例 3)模式匹配版本计划于 C# 8.0 中提供,其他两个则于 8.x 中提供。...就在几个星期前,我试图清理一些大量使用 get/set 属性代码,使其成为一个更加只读初始化构造函数(ctor-initialized),此时我发现我真希望该特性是这样。...4 月,该特性从 C# 9 迁移到了 C# 8 上。 结构上只读成员 当分配给只读字段或用作 in 参数时,结构上方法有个性能小问题。如果我们调用结构上方法,编译首先会生成防御性副本。...然而,出于性能缘故,很多结构是可变。 根据只读示例方法提议,开发人员将能够把单个方法标记为只读。这向编译表明,防御性副本不是必要,没有值会被修改。...这和Pure 属性不同,只要只读方法不修改结构本身值,那么就有明显副作用。 自动实现属性 getter 将被自动认为是只读。在某些情况下,setter 也可以被标记为只读

51720

.NET泛型集合

获取值可以通过索引TryGetValue方法;与非泛型IDictionary类型不同,如果试图用不存在键获取值,IDictionary索引将抛出一个KeyNotFoundException...通常来说,返回集合副本只读包装是比较适宜,除非方法全部目的就是通过返回集合做出变动。 B.2 列表 从很多方面来说,列表是最简单也最自然集合类型。...它不仅知道如何创建数组及其索引,还可以在foreach循环中直接支持它们;在使用表达式对编译时已知为数组类型进行迭代时,将使用Length属性和数组索引,而不会创建迭代对象。...普通字典实现基本上可以通过索引提供添加更新,通过Add方法添加抛出异常,但ConcurrentDictionary提供了名副其实大杂烩。...此外,IReadOnlyList协变性意味着它不能暴露任何以T为参数方法,如Contains和IndexOf。其最大好处在于它暴露了一个索引,通过索引来获取项。

14920

苏州同程旅游学长给我全面的面试知识库

我们已经介绍了50多种基本知识,以推进常见C#面试问题和答案 2、什么是C#C#是一种面向对象,类型安全托管语言,由.Net框架编译以生成Microsoft中间语言。...编译将方法地址存储为入口点,并使用此信息在创建任何对象之前开始执行。Void是类型修饰符,它声明方法变量不返回任何值。 6、什么是物体? ?...我们不能在静态方法中使用’This’,因为我们只能在静态方法中使用静态变量/方法。 13、常量和只读之间有什么区别? 常量变量在编译时声明和初始化。此后无法更改该值。...System.String是不可变。当我们修改字符串变量值时,会将新内存分配给新值,并释放先前内存分配。...另一方面,Finalize()用于相同目的,但不能保证对象垃圾回收。 28、什么是循环引用? 循环引用是指两个多个资源相互依赖导致锁定条件并使资源无法使用情况。

3K20

.NET 基础面试题(二)

拆箱:把引用类型转换为值类型,首先检查对象实例,确保它是给定值类型装箱值,然后将这个值从实例中复制到值类型变量中。...5、索引实现过程,是否只能根据数字进行索引 C#通过提供索引,可以象处理数组一样处理对象。特别是属性,每一个元素都以一个getset方法暴露。...索引不单能索引数字(数组下标),还能索引一些HASHMAP字符串,所以,通常来说,C#中类索引通常只有一个,就是THIS,但也可以有无数个,只要你参数列表不同就可以了索引和返回值无关, 索引最大好处是使代码看上去更自然...微软官方一个示例:索引允许类结构实例按照与数组相同方式进行索引索引类似于属性,不同之处在于它们访问采用参数。...相当于"",Empty 是静态只读字段,string str="" 初始对象并分配一个空字符串内存空间,string str=null 初始化对象但是不分配内存空间。

46200

.NET 基础面试题(二)

拆箱:把引用类型转换为值类型,首先检查对象实例,确保它是给定值类型装箱值,然后将这个值从实例中复制到值类型变量中。...5、索引实现过程,是否只能根据数字进行索引 C#通过提供索引,可以象处理数组一样处理对象。特别是属性,每一个元素都以一个getset方法暴露。...索引不单能索引数字(数组下标),还能索引一些HASHMAP字符串,所以,通常来说,C#中类索引通常只有一个,就是THIS,但也可以有无数个,只要你参数列表不同就可以了索引和返回值无关, 索引最大好处是使代码看上去更自然...微软官方一个示例:索引允许类结构实例按照与数组相同方式进行索引索引类似于属性,不同之处在于它们访问采用参数。...相当于"",Empty 是静态只读字段,string str="" 初始对象并分配一个空字符串内存空间,string str=null 初始化对象但是不分配内存空间。

41830

ARCGIS接口详细说明

只读,以用于获取属性数量) 利用上面两个接口并用索引去依次循环获得每一列属性pField(Ifield接口) IFields接口第三个方法FindField(Name)(方法,输入想要查找属性域字段名称...此方法类似于IFeature接口Store方法 IRow接口第四个属性Table(只读,获取该行所在表格,返回值为ITable类型) IRow接口第五个属性Value(Index) (读写,获取该行在参数索引字段值...(只读,获得该数组变量中Point个数,返回Long类型变量) IPointArray接口第三个属性Element(Index)(只读,获得该数组变量中位于参数Index索引位置点Point,返回一个...实参应为Null(C#,VB.Net)或者Nothing(VB6)。...IEnumLayer变量) IMap接口第二个属性LayerCount(只读,返回该map里面Layer个数) IMap接口第三个属性Layer(Index) (只读,返回指定索引index位置

2.3K60

.Net知识大全(个人整理)

C#就是为宣传.NET而创立,它直接集成于Visual Studio .NET中,VB也在.NET 1.0发布后对其进行支持, 所以这两门语言与.NET平台耦合度很高,并且.NET技术大多都是以C...5.override与重载区别 答 : Override:要扩展修改继承方法、属性索引事件抽象实现虚实现,重写基方法必须与 override 方法具有相同签名。...答:索引允许类结构实例就像数组一样进行索引索引类似于属性,不同之处在于它们访问采用参数。...接口声明只能包含如下类型静态成员函数声明:方法、属性、事件、索引。 接口成员不能包含任何实现代码,而在每一个成员声明主体后必须使用分号。 接口名称必须从大写I开始。...DataSet可以离线处理,前后滚动,而DataReader不能离线处理,且是只读向前,速度快。 DataSet可以存储数据库各种对象,比如表触发等,可以更新回原来数据库。

1.2K20
领券