让我用一个真实的例子来解释:
class Config{
const DB_NAME = "FOO";
}
class ConfigLoader{
public static function get($key) {
return Config::$key;
}
public static function getTest() {
return Config::DB_NAME;
}
}
ConfigLoader::get("DB_NAME"); // return error: Access to undeclared static p
我在工作中得到了一个新的项目,我对c#非常陌生。
我有一个将被多次派生的基类,因此我试图想出一种方法来检查派生类是否包含在基类中实现的const string方法中的.contains()值。我不能使用字符串数组,因为在调用派生类中的其他方法时,必须通过变量名引用字符串值。我希望基类实现它的原因是这个项目将在我的公司使用很多年,一旦我放弃它,新的员工将是那些实现基类的人。
为了简单起见,我不希望实现多个数据结构,即字符串数组和枚举。
我想要的是这样的:
public abstract class Base
{
public bool contains(string s)
{
有没有可能在不使用反射的情况下从派生类中获取基类的枚举值?
下面的代码使用反射,从对象实例中获取基类字段值似乎有点过头了。
using System;
namespace Seans
{
public class BaseClass
{
public enum eEnum{a, b, c}
}
class Program
{
static void Main(string[] args)
{
DerivedClassA newObject = new DerivedClassA(
我使用C#编写了一个脚本,如果我能够使用字符串变量访问常量,我的生活就会变得更简单。
public class Foo
{
public const string FooConst = "Foo!";
public const string BarConst = "Bar!";
public const string BazConst = "Baz!";
}
// ...inside some method, somewhere else
public string Bar(string constName)
{
在Ruby中,我可以将模块/类嵌套到其他模块/类中。我想要的是在文件或类中添加一些声明,以便能够引用嵌套类的短名称,例如使用Inner获取Outer::Inner,就像您在Java、C#等中所做的那样。语法可能如下:
module Outer
class Inner; end
class AnotherInner; end
end
class C
import Outer: [:Inner, :AnotherInner]
def f
Inner
end
end
简单的实现可以如下所示:
class Class
def import(constants)
在C#的属性构造函数中,有没有可能在不传入类名的情况下获得分配了该属性的类。
[MyAttr]
public class A{}
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
[Serializable]
public class MyAttrAttribute: Attribute
{
public MyAttrAttribute()
{
//get info here about the class A e
我是c#编程新手,我知道类的公共数据成员可以从另一个class.Is访问,有什么方法可以从另一个类访问私有函数?
这就是我让tried.please帮我解决的问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication7
{
class Program
{
private class Myclass
{
private int Add(int nu
我经常使用定义如下的常量:
private static final int myConstant_x = 1;
private static final int myConstant_y = 2;
private int anyVariable;
anyVariable = myConstant_x
在调试期间,以某种方式访问用于日志输出的变量的名称,而不是访问值,将是非常有帮助的。
Log.i (TAG,"this is debug output of anyVariable with constant name: " + ????);
输出:“这是anyVariable
class Clazz{
public enum MyEnum{
Hello, World
}
}
对于Clazz类,我如何获得MyEnum.values()?
这种用法的一个例子是:
Class unknownClass = getSomeClass();
如何从MyEnum.values()中获取unknownClass
在C#中,有可能在不同类型的派生类中重新声明属性。从我已经尝试过的工作情况来看,如果我们使用绑定,我们将得到BindingException程序所期望的基类类型,而不是派生类。示例可以如下所示- XAML:
<TextBlock Text="{Binding Name}" FontSize="24"/>
代码背后:
public class BaseClass
{
public string Name { get { return 8.ToString(); } }
}
public class DerivedClass : BaseCla
示例:
class LOL{
const
FOO = 1;
}
$x = new LOL;
$arr = array('x' => $x);
echo $x::FOO; // works
echo $arr['x']::FOO; // works too
但是如果我让我的类实例成为一个属性,我就不能再访问常量了:
class WWW{
protected $lol;
public function __construct($lol){
$this->lol= $lol;
}
public funct
我在反序列化包含枚举的对象时遇到了问题。对象没有抱怨地序列化,但是当我反序列化对象时,我会得到一个InvalidObjectException。异常消息说“没有枚举常量com.mypackagname”。
我根据testSerialization()方法在SerializationTest.java中创建了一些测试代码,从而隔离并再现了这个问题。
public class SerializationTest {
private static final String TEST_FILE_NAME = "serialization-test.bin";
publi
如何创建命名空间数组?因为这看起来不太可能,如果这是不可能的,那么有没有类似于名称空间的东西可以做成数组呢?
如果有帮助,名称空间包含以下变量:
const int maxx=// depends on the particular namespace
// I need an array to go through each namespace and
// pick out the variable
const int maxy=// depends on particular namespace
//prgm is a clas