C# 运算符在C和PhP中的意义

C# 运算符在C和PhP中的意义,c#,php,C#,Php,在我的工作中,我遇到过像global::C或G:在Php中加载$value这样的语法,它们是什么意思?在Php::中用于访问静态成员或方法,在Php::中参见用于访问静态成员或方法,在C::中参见是名称空间别名限定符操作符,而global表示全局名称空间。如果您有重叠的类和名称空间,这是必要的 例如,如果有类Foo.Bar和Baz.Foo.Bar,那么引用Foo.Bar可能是一个不明确的引用,因为Foo.Bar同时存在于全局命名空间和Baz命名空间中。但是,通过说global::Foo.Bar,

在我的工作中,我遇到过像global::C或G:在Php中加载$value这样的语法,它们是什么意思?

在Php::中用于访问静态成员或方法,在Php::中参见用于访问静态成员或方法,在C::中参见是名称空间别名限定符操作符,而global表示全局名称空间。如果您有重叠的类和名称空间,这是必要的

例如,如果有类Foo.Bar和Baz.Foo.Bar,那么引用Foo.Bar可能是一个不明确的引用,因为Foo.Bar同时存在于全局命名空间和Baz命名空间中。但是,通过说global::Foo.Bar,您可以显式地确定对全局命名空间的引用的范围,因此它不再是模棱两可的

C::中的。

是命名空间别名限定符运算符,global表示全局命名空间。如果您有重叠的类和名称空间,这是必要的

例如,如果有类Foo.Bar和Baz.Foo.Bar,那么引用Foo.Bar可能是一个不明确的引用,因为Foo.Bar同时存在于全局命名空间和Baz命名空间中。但是,通过说global::Foo.Bar,您可以显式地确定对全局命名空间的引用的范围,因此它不再是模棱两可的

.

如果C,::被称为命名空间别名限定符

如果存在歧义,它将限定您所处的名称空间。例如:

using MyNameSpace;

...

global::System.Data 
区分System.Data命名空间和MyNameSpace.System.Data

查看::运算符上的C引用:

object->method();
object->property;
class::method();
class::property;
更有用的是,MSDN文章演示了它的使用

如果C,::被称为命名空间别名限定符

如果存在歧义,它将限定您所处的名称空间。例如:

using MyNameSpace;

...

global::System.Data 
区分System.Data命名空间和MyNameSpace.System.Data

查看::运算符上的C引用:

object->method();
object->property;
class::method();
class::property;
更有用的是,MSDN文章演示了它的使用


在C语言中,global::操作符用于确保将以下名称解释为全局名称表达式而不是本地名称表达式。这种方法的主要用途是当开发人员有一个嵌套的名称空间,其中名称与全局名称空间相同时。没有global::操作符,就无法访问全局版本

namespace Foo { 
  namespace System {
    class DateTime {} 
    class Example {
      object Example() { 
        return System.DateTime.Now; // Returns Foo.System.DateTime.Now
        return global::System.DateTime.Now; // Returns mscorlib,System.DateTime.Now
      }
    }
  }
}

在C语言中,global::操作符用于确保将以下名称解释为全局名称表达式而不是本地名称表达式。这种方法的主要用途是当开发人员有一个嵌套的名称空间,其中名称与全局名称空间相同时。没有global::操作符,就无法访问全局版本

namespace Foo { 
  namespace System {
    class DateTime {} 
    class Example {
      object Example() { 
        return System.DateTime.Now; // Returns Foo.System.DateTime.Now
        return global::System.DateTime.Now; // Returns mscorlib,System.DateTime.Now
      }
    }
  }
}

在PHP中称为作用域解析运算符Paamayim Nekudotayim,并允许访问类中的成员或常量

,在PHP中称为作用域解析运算符Paamayim Nekudotayim,并允许访问类中的成员或常量

,在C中::运算符是命名空间别名限定符。它用于将标识符解析为适当的名称空间,特别是在存在歧义的情况下

因此,假设您通过

using IOAlias = System.IO;
并希望声明StreamReader类的一个实例。你可以通过

IOAlias::StreamReader sr = new StreamReader(path);
此外,您还可以通过

global::System.IO.StreamReader sr = new StreamReader(path);
在C中,运算符::是名称空间别名限定符。它用于将标识符解析为适当的名称空间,特别是在存在歧义的情况下

因此,假设您通过

using IOAlias = System.IO;
并希望声明StreamReader类的一个实例。你可以通过

IOAlias::StreamReader sr = new StreamReader(path);
此外,您还可以通过

global::System.IO.StreamReader sr = new StreamReader(path);

<>基于类的面向对象的编程语言,如C++,java,PHP,…还有一些属性也称为字段,它们是数据,只是变量或常量,还有一些方法是类的功能,实际上是路由的函数。 每个类都可以实例化为对象。每个对象在开始时都具有基类的所有数据和功能,但是数据可以更改,并且可以在不同对象之间有所不同。 有两种属性和两种方法。 某些属性在类的所有对象之间共享。这意味着,如果更改类的此数据,所有实例化对象的相同数据将更改为neew值。这类属性称为类属性或静态属性,因为在大多数语言中定义这些变量时,都会使用Static关键字。 其他一些属性对于每个对象都是特定的。更改对象上的数据不会影响其他对象的数据。这些属性称为对象属性或实例属性。 有些方法是从一个对象调用的,有些方法被称为对象方法。这些是对象方法,要使用它们,首先需要实例化一个类并使用对象。通过使用类本身调用其他一些方法。这些是类方法或静态方法 如果你想要这些函数中的一个,就不需要对象。 若要使用对象属性/方法,在PHP中,像C++一样,应该使用->运算符:

object->method();
object->property;
class::method();
class::property;

在PHP中使用类属性/方法,如C++,应该使用::运算符:

object->method();
object->property;
class::method();
class::property;
用像操作员Jave这样的语言。用于所有属性/方法:

object.method();
class.property;
假设你有一个圆圈类。此类定义了一些数据,如半径、中心坐标以及PI值的常量。还有一种计算圆面积的方法

下面是一些PHP代码,以明确说明:

<?php
class Circle {
    public $radius;
    public $centerX;
    public $centerY;
    public static $PI = 3.1415;
    public function __construct($r,$x,$y) {
        $this->radius = $r;
        $this->centerX = $x;
        $this->centerY = $y;
    }
    public function getArea() {
        return self::$PI * $this->radius * $this->radius;
    }
}
$circle1 = new Circle(10,0,0);
echo $circle1->getArea() . "<br>\n";
$circle2 = new Circle(15,10,12);
echo $circle2->getArea() . "<br>\n";
Circle::$PI = 3.14;
echo $circle1->getArea() . "<br>\n";
echo $circle2->getArea() . "<br>\n";
?>
在本例中,我们定义了一个圆类,该类具有对象属性radius、centerX、CenterY、对象方法getArea和类属性PI。
在C++类、java、PHP等类的面向对象编程语言中,通过改变PI静态特性,两个对象的面积都会受到影响。还有一些属性也称为字段,它们是数据,只是变量或常量,还有一些方法是类的功能,实际上是路由的函数。 每个类都可以实例化为对象。每个对象在开始时都具有基类的所有数据和功能,但是数据可以更改,并且可以在不同对象之间有所不同。 有两种属性和两种方法。 某些属性在类的所有对象之间共享。这意味着,如果更改类的此数据,所有实例化对象的相同数据将更改为neew值。这类属性称为类属性或静态属性,因为在大多数语言中定义这些变量时,都会使用Static关键字。 其他一些属性对于每个对象都是特定的。更改对象上的数据不会影响其他对象的数据。这些属性称为对象属性或实例属性。 有些方法是从一个对象调用的,有些方法被称为对象方法。这些是对象方法,要使用它们,首先需要实例化一个类并使用对象。通过使用类本身调用其他一些方法。这些是类方法或静态方法如果您想要其中一个函数,则不需要对象。 若要使用对象属性/方法,在PHP中,像C++一样,应该使用->运算符:

object->method();
object->property;
class::method();
class::property;

在PHP中使用类属性/方法,如C++,应该使用::运算符:

object->method();
object->property;
class::method();
class::property;
用像操作员Jave这样的语言。用于所有属性/方法:

object.method();
class.property;
假设你有一个圆圈类。此类定义了一些数据,如半径、中心坐标以及PI值的常量。还有一种计算圆面积的方法

下面是一些PHP代码,以明确说明:

<?php
class Circle {
    public $radius;
    public $centerX;
    public $centerY;
    public static $PI = 3.1415;
    public function __construct($r,$x,$y) {
        $this->radius = $r;
        $this->centerX = $x;
        $this->centerY = $y;
    }
    public function getArea() {
        return self::$PI * $this->radius * $this->radius;
    }
}
$circle1 = new Circle(10,0,0);
echo $circle1->getArea() . "<br>\n";
$circle2 = new Circle(15,10,12);
echo $circle2->getArea() . "<br>\n";
Circle::$PI = 3.14;
echo $circle1->getArea() . "<br>\n";
echo $circle2->getArea() . "<br>\n";
?>
在本例中,我们定义了一个圆类,该类具有对象属性radius、centerX、CenterY、对象方法getArea和类属性PI。
通过更改PI静态属性,两个对象的面积都将受到影响。

请考虑以下示例:

namespace  A { 
    public class MyClass { }
} 

namespace namespaceB
{
    public class A
    {
        public class MyClass { }
    }

    public class OtherClass
    {
        public A.MyClass MyAClass;
    }
}
说明:

在上面的示例中,编译器总是将MyAClass解析为namespaceB.A.MyClass类型

如果您希望它成为一个.MyClass,那么在C2.0之前是没有办法做到的

在C2.0中,您将使用:public类MyOtherClass

{ public global::A.MyClass yAClass; }

要指示不应使用本地命名空间范围,而应使用根命名空间。

请考虑以下示例:

namespace  A { 
    public class MyClass { }
} 

namespace namespaceB
{
    public class A
    {
        public class MyClass { }
    }

    public class OtherClass
    {
        public A.MyClass MyAClass;
    }
}
说明:

在上面的示例中,编译器总是将MyAClass解析为namespaceB.A.MyClass类型

如果您希望它成为一个.MyClass,那么在C2.0之前是没有办法做到的

在C2.0中,您将使用:public类MyOtherClass

{ public global::A.MyClass yAClass; }

指示您不应使用本地命名空间范围,而应使用根命名空间。

Btw fun trivia关于希伯来名称,请参见:Btw fun trivia关于希伯来名称,请参见: