问题列表 - 第11196页

如何为枚举char(1)数据库字段实现C#枚举?

好的,所以我有一个char(1)类型的数据库字段,它有少量可能的状态代码(例如'F'= Failure,'U'= Unknown等).我想要一个与这些状态相对应的C#enum类.我可以:

public enum StatusCode : byte {
    Unknown = (byte) 'U',
    Failure = (byte) 'F',
    // etc.
}
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是在从数据库返回的DataTable中,列值是System.Data.SqlTypes.SqlString实例.显然有一些问题从C#字符串(甚至是C#字符)转换为C#字节(因为C#char实际上是UTF-16代码点).但在这种情况下,我知道值被约束为一个小集合,如果此集合之外的值通过,代码应抛出异常.

考虑到这一点,最好的方法是什么?从SqlString转换为字节是否安全?Convert.ToByte()会更好吗?简单地使用开关/案例构造将值交叉到枚举中会更好吗?

我正在寻找"最好"的方法,不仅在获得正确的结果方面,而且在代码清晰度方面.我想我也可以使用一些常量

public const char UnknownStatus = 'U';
public const char FailureStatus = 'F';
Run Code Online (Sandbox Code Playgroud)

但如果可能的话,我宁愿使用枚举.有什么想法吗?

编辑:为了澄清我想要做什么,我希望在我的代码中经常使用这些值.例如,我希望能够做到这样的事情:

public void DoSomething(StatusCode currentStatus) {
    if(currentStatus == StatusCode.Failure) {
        throw new SomeException();
    }

    switch(currentStatus) {
        case StatusCode.Unknown:
            // do something
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

等等.我特别想避免这样的事情:

public void DoSomething(char currentStatus) {
    if(currentStatus == 'F') {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

因为在这种情况下,我正在使用相当于"神奇数字"的地方.特别是,这将使迁移到其他一些状态标记系统几乎是不可能的.那有意义吗?

c# byte ascii

5
推荐指数
1
解决办法
5314
查看次数

PHP中的语言构造和"内置"函数有什么区别?

我知道include,isset,require,print,echo,和其他一些人都没有的功能,但语言结构.

其中一些语言结构需要括号,而其他语言结构则不需要.

require 'file.php';
isset($x);
Run Code Online (Sandbox Code Playgroud)

有些有返回值,有些则没有.

print 'foo'; //1
echo  'foo'; //no return value
Run Code Online (Sandbox Code Playgroud)

那么语言结构和内置函数之间的内部差异是什么?

php function language-construct built-in

91
推荐指数
2
解决办法
2万
查看次数

SharePoint View只能自动显示当前月份?

我需要创建一个视图,该视图将自动每月更改为仅显示当前月份(即当前月份是7月 - 显示7月发布的项目).目前我有一个视图设置,但我必须在每次更改时手动更改月份(它是根据当前月份的第一天和当前月份的最后一天设置的).

谢谢

sharepoint customization

1
推荐指数
1
解决办法
3万
查看次数

Oracle等效的MySQL的TEXT类型

Oracle是否具有与MySQL TEXT类型相同的列类型?

如果没有,通常如何存储较大的文本blob?BLOB,varchar(32767)?如果重要的话,可以通过PHP访问Oracle 10.历史背景非常受欢迎.

php oracle text types

16
推荐指数
2
解决办法
3万
查看次数

美元符号

我有这样简单的东西:

$(selector).append("somestuff");
Run Code Online (Sandbox Code Playgroud)

但是因为我要重用选择器,所以我将其缓存:

var $selector = $(selector);
Run Code Online (Sandbox Code Playgroud)

所以我最终得到:

$selector.append("somestuff");
Run Code Online (Sandbox Code Playgroud)

我的问题是,我应该这样做,还是应该这样做:

var selector = $(selector);
selector.append("somestuff");
Run Code Online (Sandbox Code Playgroud)

尝试任何一个,两个都有效.哪种方法是正确的,为什么?是$$selector不必要的,因为jQuery对象已经在申报$(selector)


编辑

谢谢你的回答.看起来很简单也很清楚.尽管如此,我是否应该$在变量中使用似乎存在分歧.每个人投票给答案都很好.:)

jquery

41
推荐指数
5
解决办法
3万
查看次数

在Python中对1M记录进行排序的最佳方法

我有一个运行的服务,它包含大约1,000,000个字典的列表,并执行以下操作

myHashTable = {}
myLists = { 'hits':{}, 'misses':{}, 'total':{} }
sorted = { 'hits':[], 'misses':[], 'total':[] }
for item in myList:
  id = item.pop('id')
  myHashTable[id] = item
  for k, v in item.iteritems():
    myLists[k][id] = v
Run Code Online (Sandbox Code Playgroud)

所以,如果我有以下词典列表:

[ {'id':'id1', 'hits':200, 'misses':300, 'total':400},
  {'id':'id2', 'hits':300, 'misses':100, 'total':500},
  {'id':'id3', 'hits':100, 'misses':400, 'total':600}
]
Run Code Online (Sandbox Code Playgroud)

我结束了

myHashTable =
{ 
  'id1': {'hits':200, 'misses':300, 'total':400},
  'id2': {'hits':300, 'misses':100, 'total':500},
  'id3': {'hits':100, 'misses':400, 'total':600}
}
Run Code Online (Sandbox Code Playgroud)

myLists = 

    {
      'hits': {'id1':200, 'id2':300, 'id3':100},
      'misses': {'id1':300, 'id2':100, 'id3':400}, …
Run Code Online (Sandbox Code Playgroud)

python

7
推荐指数
1
解决办法
7758
查看次数

空白UNION错误

前几天这个让我抓狂.您希望以下内容返回什么?

SELECT 'X' AS line
UNION
SELECT 'X ' AS line
Run Code Online (Sandbox Code Playgroud)

注意第二个SELECT中的空格.显然,SQL 2000和2005都返回1个结果.即使它是一个UNION(而不是UNION ALL).

关于这一点,我没有在网上看到任何内容.为什么会这样?我猜这是一个错误.它是否有正当理由?

sql-server whitespace ansi

-1
推荐指数
1
解决办法
196
查看次数

为什么DataMapper使用mixins和继承?

所以我只是好奇这个:

DataMapper为其模型使用mixin

class Post
  include DataMapper::Resource
Run Code Online (Sandbox Code Playgroud)

而active-record使用继承

class Post < ActiveRecord::Base
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么DataMapper选择这样做(或者为什么AR选择不这样做)?

ruby inheritance ruby-on-rails datamapper mixins

5
推荐指数
2
解决办法
1520
查看次数

如何在if条件下将自定义异常对象评估为false?

我只是想知道是否有任何方法使我的对象返回false如果放在if语句中.原因是我正在制作一个自定义异常类.我希望能够做一些事情

class Dog{

   public function lookAround()
   {
        if(seeDog())
        {
            return bark;
        }
        else
        {
            return sit;
        }
   }

   public function seeDog()
   {
        if(object == Dog)
        {
             return "husky";
        } 
        else
        {
             return Dog_Exception(no_see);
        }
   }
} 
Run Code Online (Sandbox Code Playgroud)

我知道这是一个非常愚蠢的例子.但是,重点是,当这个对象成立时,if(seeDog())测试将评估true字符串"husky"和Dog_Exception对象.如果可能的话,我想Dog_Exception评估false,如果处于一个if条件.这样我就不必使用类似的构造等if(typeof(seeDog()) == Dog_Exception).我怀疑这是可能的,但任何帮助都会很棒.谢谢!

php object boolean-expression

0
推荐指数
1
解决办法
351
查看次数

我什么时候需要在SQL Server中使用Begin/End Blocks和Go关键字?

有人能告诉我在SQL Server中何时何地需要使用beginend阻止?
此外,该Go关键字到底是做什么的?

t-sql sql-server language-features

99
推荐指数
5
解决办法
11万
查看次数