好的,所以我有一个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)
因为在这种情况下,我正在使用相当于"神奇数字"的地方.特别是,这将使迁移到其他一些状态标记系统几乎是不可能的.那有意义吗?
我知道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)
那么语言结构和内置函数之间的内部差异是什么?
我需要创建一个视图,该视图将自动每月更改为仅显示当前月份(即当前月份是7月 - 显示7月发布的项目).目前我有一个视图设置,但我必须在每次更改时手动更改月份(它是根据当前月份的第一天和当前月份的最后一天设置的).
谢谢
Oracle是否具有与MySQL TEXT
类型相同的列类型?
如果没有,通常如何存储较大的文本blob?BLOB
,varchar(32767)
?如果重要的话,可以通过PHP访问Oracle 10.历史背景非常受欢迎.
我有这样简单的东西:
$(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)
?
谢谢你的回答.看起来很简单也很清楚.尽管如此,我是否应该$
在变量中使用似乎存在分歧.每个人投票给答案都很好.:)
我有一个运行的服务,它包含大约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) 前几天这个让我抓狂.您希望以下内容返回什么?
SELECT 'X' AS line
UNION
SELECT 'X ' AS line
Run Code Online (Sandbox Code Playgroud)
注意第二个SELECT中的空格.显然,SQL 2000和2005都返回1个结果.即使它是一个UNION(而不是UNION ALL).
关于这一点,我没有在网上看到任何内容.为什么会这样?我猜这是一个错误.它是否有正当理由?
所以我只是好奇这个:
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选择不这样做)?
我只是想知道是否有任何方法使我的对象返回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)
.我怀疑这是可能的,但任何帮助都会很棒.谢谢!
有人能告诉我在SQL Server中何时何地需要使用begin
和end
阻止?
此外,该Go
关键字到底是做什么的?
php ×3
sql-server ×2
ansi ×1
ascii ×1
built-in ×1
byte ×1
c# ×1
datamapper ×1
function ×1
inheritance ×1
jquery ×1
mixins ×1
object ×1
oracle ×1
python ×1
ruby ×1
sharepoint ×1
t-sql ×1
text ×1
types ×1
whitespace ×1