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

在D365/X++中,当我使用"this“表示变量存在于实例上时,为什么'(‘是无效的?

在D365/X++中,当使用"this"表示变量存在于实例上时,为什么"("是无效的?

在D365/X++中,"this"关键字用于引用当前对象的实例。它可以在类的方法中使用,表示对当前对象的引用。当使用"this"时,可以通过"."操作符来访问实例上的变量、属性和方法。

然而,"("是无效的,因为它是一个括号操作符,用于表示函数调用或表达式的分组。在D365/X++中,括号操作符不能直接用于"this"关键字后面,因为它会导致语法错误。

如果想要在D365/X++中使用括号操作符,可以将其用于函数调用或表达式的分组,而不是用于"this"关键字后面。例如:

代码语言:txt
复制
int result = (this.variable1 + this.variable2) * 2;

在上述示例中,括号操作符被用于将"this.variable1 + this.variable2"作为一个整体进行求值,并将结果乘以2。

总结起来,"this"关键字用于引用当前对象的实例,而"("是一个括号操作符,不能直接用于"this"关键字后面。

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

相关·内容

Disruptor框架学习(2)--为啥这么快

可想而知,当我们遍历数组的时候,CPU遍历第一个元素时,与之相邻的元素也会被加载到了缓存中,对于后续的遍历来说,CPU在缓存中找到了对应的数据,不需要再去内存中查找,效率得到了巨大的提升; 但是,在多线程环境中...但是,在内存中的布局中,对象不仅包含了实例数据(long类型变量),还包含了对象头。对象头在32位系统上占用8字节,而64位系统上占用16字节。...在我们的java程序中,当多个线程修改两个独立变量的时候,如果这两个变量存在于一个缓存行中,那么就有很大的概率产生伪共享。 这是为什么呢?...在Java程序中,对象在内存中的分布:对象头(Header),实例数据(Instance Data),对齐填充(Padding); 其中,对象头在32位系统上占用8字节,64位系统上占用16字节;实例数据也就是我们平常是所用到的基本类型和引用类型...;对齐填充是对象在内存区域内的补充,jvm要求对象在内存区域的大小必须是8的整数倍,所以当对象头+实例数据的和不是8的整数倍时,就需要用到对齐填充,少多少就填充多少无效数据; 综上所述,VolatileLong

96140

一顿操作猛如虎,一看结果还是 0,Rust 能避免 Go 的 Bug?

早些时候我看到这样一条新闻,在谈到Linux内核与Rust的关系时,谷歌曾表示Rust现在已经准备好加入C语言,成为实现内核的实用语言。...一个是这也让我特别好奇方向,谷歌自己的GO语言不香吗,为什么非要支持Moliza创造的Rust?...S 共享 (Shared):该Cache line有效,数据和内存中的数据一致,数据存在于很多Cache中。 I 无效 (Invalid):该Cache line无效。...y变量没有任何同步竞争机制,这时所有CPU都会发现有其它CPU拥有该变量,这时RemoteWrite操作会使CPU将自身高速缓存行的状态再次置为I.也就是无效的状态. 4.I状态的数据是不会被回写到内存的...你没加锁,就提示这个变量在使用中会出现问题,看到这我真是感觉Rust这门语言可就有点强了,用Rust编程犯错都很难。

54120
  • c++中lambda表达式用法

    2 lambda捕获块 2.1 捕获的简单使用 在第1节中,我们展示了lambda的语法形式,后面的形参和函数体之类都好理解,那么方括号里面捕获是啥意思呢?...表示没有捕获任何变量,不为空时,比如上面的lambAdd是以复制的形式捕获变量x,而lambAdd2是以引用的方式捕获x。...,这里得到了证明,在c++中struct和class除了有少许区别,其他都是一样的,所以我们可以看到复制形式捕获实际上是一个包含int类型成员变量的struct,引用形式捕获实际上是一个包含int&类型成员变量的...标准c++规定,默认情况下,在lambda表达式中,对于operator()的重载是const属性的,也就意味着如果以复制形式捕获的变量,是不允许修改的,看这段代码: #include 变量值,为什么呢,这里我理解,&x实际上是一个int*类型的指针,所以我们可以修改x的值,因为我们只是对这个指针所指向的内容进行修改,并没有对指针本身进行修改,且与我们常规声明的引用类型入参一样

    1.9K30

    .NET 零开销抽象指南-hez2010

    ref field 我们已经能够在局部变量中使用 ref 和 ref readonly 了,自然,我们就想要在字段中也使用这些东西。...int x) { X = ref x; // 错误 } } 同样的,我们还可以在局部变量中配合 ref 或者 ref readonly 使用 scoped: Span使用的前提是你有相关的知识并且明确知道你在干什么,不然很容易写出不安全的代码,毕竟这里面大多数 API 就是 unsafe 的。...因为 throw 在 C# 中隐含了不会返回的含义,编译器遇到 throw 时知道这个是不会返回的,也就不会因为 Throw 没有返回东西而报错: [DoesNotReturn] int Throw1(...唯一需要注意的地方是,由于 GC 可能会移动堆内存上的对象,所以在使用指针操作 GC 堆内存中的对象前,需要先使用 fixed 将其固定: int[] array = new[] { 1, 2, 3,

    66230

    内存避障的前世今生

    如果一个处理器将 1 存储在变量 x 中,而另一个处理器将 1 存储在变量 y 中,则事件序列为: x → 1 and then y → 1 y → 1 and then x → 1 (假设两者最初都为零...在顺序一致的世界中,其他处理器看到的顺序应该和第三个处理器一样,所有处理器应该都能看到一样的事件队列。 在多核处理器上,很多事情可以同时发生,除非涉及内存访问。...参考上一篇中的实例内存避障fence(一)一个内存乱序实例可知,x86不提供多核场景下的顺序一致性,但保证单核的顺序一致性。 x86单核上多指令队列也是乱序执行的,为什么能保证一致性? ....因为单核的执行结果会有指令重拍,storebuffer是严格FIFO的,虽然执行时乱序,但输出时一定有序。 注意ARM在单核上也没有顺序一致性的保证。...3.5 实例:加入内存屏障解决问题 硬件 level 上很难揣度软件上这种前后数据依赖关系,因此往往无法通过某种手段自动的避免这种问题,因而只有通过软件的手段表示(对应也需要硬件提供某种指令来支持这种语义

    71210

    Java多线程-带你认识Java内存模型,内存分区,从原理剖析Volatile关键字

    2.每个线程的私有工作内存是不能相互访问的,这也就解释了为什么我们不能再一个方法中访问另一个方法的局部变量。...堆: Java堆(Java Heap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。...需要注意的一些: 对象所拥有的方法以及里面涉及到的变量都存储在栈里面,方法里面使用到的全局变量是随着对象实例一起存储在堆里面,在方法中使用的时候也是使用该全局变量的副本....实例在栈中,对象在堆中,操作实例实际上是通过实例的指针间接操作对象。多个实例可以指向同一个对象。...这就是为什么使用Volatile关键字来修饰线程间共享变量。

    43630

    Java Volatile关键字

    第二种缓存一致性协议中最出名的是Intel的MESI协议,MESI协议保证了每一个缓存中使用的共享变量副本都是一致的,它的大概意思是,当CPU在操作Cache中的数据时,如果发现该变量是一个共享变量,也就是说在其他的...写入操作,发出信号通知其他CPU将该变量的Cache line置为无效状态,其他CPU再进行该变量读取的时候不得不到主内存中再次获取。...有序性 所谓有序性是指程序代码在执行过程中的先后顺序,由于Java在编译器以及运行期的优化,导致了代码的执行顺序未必就是开发者编写代码时的顺序,比如: intx=10; int y =0; x++ ;...Reader线程在本地工作内存中的init_ value 失效(反映到硬件上就是CPU的L1或者L2的Cache Line失效)。...使用上的区别 volatile关键字只能用于修饰实例变量或者类变量。 synchronized关键字不能用于对变量的修饰,只能用于修饰方法或者语句块。

    56211

    27 个问题,告诉你Python为什么这么设计

    出于多种原因它被证明是非常有用的。 首先,更明显的显示出,使用的是方法或实例属性而不是局部变量。...在函数体中赋值的那些变量(并且没有明确声明为全局)赋值,就必须以某种方式告诉解释器一个赋值是为了分配一个实例变量而不是一个局部变量,它最好是通过语法实现的(出于效率原因)。...换句话说,局部变量和实例变量存在于两个不同的命名空间中,您需要告诉 Python 使用哪个命名空间。 为什么不能在表达式中赋值?...如果在绑定到字符串的名称上允许使用这些方法,则没有逻辑上的理由使其在文字上不可用。 第二个异议通常是这样的:“我实际上是在告诉序列使用字符串常量将其成员连接在一起”。遗憾的是并非如此。...当你意外忘记或修改列表时,这将产生程序中的一类难以跟踪的错误。它还使一个重要的字典不变量无效:d.keys() 中的每个值都可用作字典的键。 将列表用作字典键后,应标记为其只读。

    6.7K11

    第一阶段-Java基础知识:【第二章 Java基础语法知识】

    变量类型: · 局部变量 · 实例变量 · 类变量(静态变量) 局部变量:定义在方法、构造方法、或者语句块中的变量 (生而带来 死而带去 只能活在自己的世界) 只能在一定范围内使用的变量,随着这个方法等的结束变量也就无效了...实例变量:声明在类中,但在方法、构造方法和语句块之外 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。...通过使用访问修饰符可以使实例变量对子类可见 暂时在学习基础语法知识的时候可以暂时忽略实例变量这部分内容,这部分内容主要被使用在面向对象的部分,但是极其重要。...2.7 字符 字符是指在计算机中所使用的 字母、数字、汉字、和符号,表示时用单引号包含在内。 例如: ‘5’ ‘R’ ‘。’...2.8 字符串 字符串是由零个或者多个字符组成的有限序列,它是编程中表示文本的数据类型 字符串使用的时候用双引号括起来 String并不是Java中的基本方法,而是一个类。

    1.1K21

    27 个问题,告诉你Python为什么这么设计?

    出于多种原因它被证明是非常有用的。 首先,更明显的显示出,使用的是方法或实例属性而不是局部变量。...在函数体中赋值的那些变量(并且没有明确声明为全局)赋值,就必须以某种方式告诉解释器一个赋值是为了分配一个实例变量而不是一个局部变量,它最好是通过语法实现的(出于效率原因)。...换句话说,局部变量和实例变量存在于两个不同的命名空间中,您需要告诉 Python 使用哪个命名空间。 为什么不能在表达式中赋值?...如果在绑定到字符串的名称上允许使用这些方法,则没有逻辑上的理由使其在文字上不可用。 第二个异议通常是这样的:“我实际上是在告诉序列使用字符串常量将其成员连接在一起”。遗憾的是并非如此。...当你意外忘记或修改列表时,这将产生程序中的一类难以跟踪的错误。它还使一个重要的字典不变量无效:d.keys() 中的每个值都可用作字典的键。 将列表用作字典键后,应标记为其只读。

    3.1K20

    干货 | 27 个问题,告诉你 Python 为什么如此设计?

    出于多种原因它被证明是非常有用的。 首先,更明显的显示出,使用的是方法或实例属性而不是局部变量。...在函数体中赋值的那些变量(并且没有明确声明为全局)赋值,就必须以某种方式告诉解释器一个赋值是为了分配一个实例变量而不是一个局部变量,它最好是通过语法实现的(出于效率原因)。...换句话说,局部变量和实例变量存在于两个不同的命名空间中,您需要告诉 Python 使用哪个命名空间。 06. 为什么不能在表达式中赋值?...如果在绑定到字符串的名称上允许使用这些方法,则没有逻辑上的理由使其在文字上不可用。 第二个异议通常是这样的:“我实际上是在告诉序列使用字符串常量将其成员连接在一起”。遗憾的是并非如此。...当你意外忘记或修改列表时,这将产生程序中的一类难以跟踪的错误。它还使一个重要的字典不变量无效:d.keys() 中的每个值都可用作字典的键。 将列表用作字典键后,应标记为其只读。

    2.6K20

    Python官方二十七问,你知道个啥?

    出于多种原因它被证明是非常有用的。 首先,更明显的显示出,使用的是方法或实例属性而不是局部变量。...在函数体中赋值的那些变量(并且没有明确声明为全局)赋值,就必须以某种方式告诉解释器一个赋值是为了分配一个实例变量而不是一个局部变量,它最好是通过语法实现的(出于效率原因)。...换句话说,局部变量和实例变量存在于两个不同的命名空间中,您需要告诉 Python 使用哪个命名空间。 06. 为什么不能在表达式中赋值?...如果在绑定到字符串的名称上允许使用这些方法,则没有逻辑上的理由使其在文字上不可用。 第二个异议通常是这样的:“我实际上是在告诉序列使用字符串常量将其成员连接在一起”。遗憾的是并非如此。...当你意外忘记或修改列表时,这将产生程序中的一类难以跟踪的错误。它还使一个重要的字典不变量无效:d.keys() 中的每个值都可用作字典的键。 将列表用作字典键后,应标记为其只读。

    2.5K20

    干货 | 27 个问题,告诉你 Python 为什么如此设计?

    出于多种原因它被证明是非常有用的。 首先,更明显的显示出,使用的是方法或实例属性而不是局部变量。...在函数体中赋值的那些变量(并且没有明确声明为全局)赋值,就必须以某种方式告诉解释器一个赋值是为了分配一个实例变量而不是一个局部变量,它最好是通过语法实现的(出于效率原因)。...换句话说,局部变量和实例变量存在于两个不同的命名空间中,您需要告诉 Python 使用哪个命名空间。 06. 为什么不能在表达式中赋值?...如果在绑定到字符串的名称上允许使用这些方法,则没有逻辑上的理由使其在文字上不可用。 第二个异议通常是这样的:“我实际上是在告诉序列使用字符串常量将其成员连接在一起”。遗憾的是并非如此。...当你意外忘记或修改列表时,这将产生程序中的一类难以跟踪的错误。它还使一个重要的字典不变量无效:d.keys() 中的每个值都可用作字典的键。 将列表用作字典键后,应标记为其只读。

    2.7K10

    Python 核心设计理念27个问题及解答

    出于多种原因它被证明是非常有用的。 首先,更明显的显示出,使用的是方法或实例属性而不是局部变量。...在函数体中赋值的那些变量(并且没有明确声明为全局)赋值,就必须以某种方式告诉解释器一个赋值是为了分配一个实例变量而不是一个局部变量,它最好是通过语法实现的(出于效率原因)。...换句话说,局部变量和实例变量存在于两个不同的命名空间中,您需要告诉 Python 使用哪个命名空间。 06. 为什么不能在表达式中赋值?...如果在绑定到字符串的名称上允许使用这些方法,则没有逻辑上的理由使其在文字上不可用。 第二个异议通常是这样的:“我实际上是在告诉序列使用字符串常量将其成员连接在一起”。遗憾的是并非如此。...当你意外忘记或修改列表时,这将产生程序中的一类难以跟踪的错误。它还使一个重要的字典不变量无效:d.keys() 中的每个值都可用作字典的键。 将列表用作字典键后,应标记为其只读。

    3.4K21

    java并发线程实战(1) 线程安全和机制原理

    ,Java内存模型中规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存(类似于CPU的高速缓存),线程的工作内存中保存了该线程使用到的变量到主内存副本拷贝,线程对变量的所有操作(读取、赋值)都必须在工作内存中进行...处理器在进行重排序时必须要考虑指令之间的数据依赖性。 多线程环境中线程交替执行,由于编译器优化重排的存在,两个线程中使用的变量能否保证一致性是无法确定的结果无法预测。...在JMM的控制下,用volatile修饰的变量在一定程度上是不会进行重排序的,这也从微观上对volatile字段进行了一致性的加强。...一般volatile主要用于相互之间不存在依赖关系的语句中,上面x++的例子之所以有问题,就是因为对x++的操作是与上一步操作的结果相依赖的。...既然保证了可见性,加上了volatile关键词,为什么还是无法得到正确的结果: 原因是count++,并非原子操作,count++等效于如下步骤: (1)、 从主内存中读取count赋值给线程副本变量

    62320

    2023 跟我一起学算法:数据结构和算法-数组

    什么是数组? 数组是存储在连续内存位置的相同变量类型的项目的集合。它是最流行和最简单的数据结构之一,通常用于实现其他数据结构。数组中的每个项目都从 0 开始索引。...这意味着,当我们有少量对象时,我们可以使用普通变量(v1,v2,v3,..)。但如果我们想要存储大量实例,用普通变量来管理它们就变得很困难。数组的想法是在一个变量中表示许多实例.....结构元素可能会也可能不会存储在连续位置,但数组元素会存储在连续位置。 在结构中,可以实例化对象,而在数组中则不可能实例化对象。 使用数组的常见问题 为什么从数组中获取值的复杂度是 O(1)?...当在 Java 中使用数组而不是列表时: 当我们需要多维结构来存储数据时,我们使用数组而不是列表,因为列表只能是一维的。 如果我们需要固定长度和静态分配,则使用数组而不是列表。...当需要更快地处理数据时,可以使用数组而不是列表。 原始数据类型可以直接存储在数组中,但不能存储在列表中,因此,我们使用数组而不是列表。

    15840

    你不可不知的JS面试题(第三期)

    1、什么是闭包?如图所示,闭包就是一个定义在函数内部的函数,其作用是将函数内部和函数外部连接起来。大家知道,作用域的问题,就是在函数内部定义的变量称为局部变量,外部取不到值。...我们知道了闭包不仅可以拿到函数内部的变量,还可以保存内部的变量。...因为当我们执行for循环时,setTimeout是异步的,所以每次等for循环加完,再执行setTimeout函数,一共执行5次。另一个原因因为使用了var声明的。...循环体里的index跟外部的index是存在于同一个作用域,相当于在全局定义了一次。下面我们来使用let来声明一下。结果就不一样。...,同样分别打印0、1、2、3、4,在外部函数每次传入实参时,也就是每次循环的值index,作用到形参i,因为setTimeout为内部函数,每次都会记录值,然后打印出来。

    17020

    python基础六

    注意:我们导入模块时,会现在本地文件中查找该模块,再去系统变量中查找也就是说如果我们将本地py文件的命名修改成上篇文章的任意一个,再去使用它就会报错。 如果我想要调用Test中的Getstr方法呢?...当我们导入Test下的所有方法和变量时如果我不想给Demo用该怎么办?...__init__文件: 我们使用pycharm软件创建一个包时都会有一个__init__文件,当我们只导入包的时候,会执行__init__文件,和上面的一个道理也就是说我们导入包和导入模块的时候,都会有一个相当于加载事件...self: self变量,可以看作包含所有属性的字典 *args:参数 实例化的参数会在__init__中接收 类是抽象的,他只负责定义一些属性和功能,经过实例化之后变成对象。...反过来 import 一个模块的过程就是一个实例化的过程 另:类是可以当作一个属性传入到另一个类中的。 面向对象之封装,继承,多态 继承:#为什么继承?

    62230

    全网最通透的“闭包”认知 · 跨越语言

    当我们执行action时,原始的“x”已经脱离了它被引用时的作用域环境,但是两次执行能输出2,3 说明它脱离原引用环境仍然能用。...源码追溯,委托继承自Delegate抽象类,Delegate类有个Target 属性(获取当前委托调用实例方法的实例类) 。 至此可以猜想: 我们每次执行委托,实际是是执行某个匿名类上的实例方法。...追本溯源 闭包是词法闭包的简称,维基百科上是这样定义的: “在计算机编程中,闭包是在词法环境中绑定自由变量的头等函数”。...自由变量是在匿名函数/lambda表达式中被引用的变量,它不是函数的参数也不是函数的局部变量。...,注意,是引用自由变量,并不是使用当时自由变量的值。

    63130

    【C++】C++入门 — 类和对象初步介绍

    在C++中,类(class)的成员变量在内存中的布局需要遵循内存对齐规则,主要是出于以下几个关键原因: 性能优化:(主要原因) 访问未对齐的内存地址在某些硬件架构上可能导致性能下降。...只能在“成员函数”的内部使用 this指针本质上是“成员函数”的形参,当对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象中不存储this指针。...this指针存在于哪里? 在C++中,this指针是一个隐含的、非静态成员函数内部可用的特殊指针,它指向当前正在调用该成员函数的对象实例。...因此,this指针实际上是存在于每个非静态成员函数的执行上下文中,并且它始终指向当前调用该函数的对象实例。 this指针可以为空吗?...,移动构造函数或移动赋值运算符中,当源对象即将被移动(资源转移)后置为无效状态时,也可能出现类似情况,但这不是this本身为空,而是对象即将变成无效状态。

    12210
    领券