例如,假设我这样做:
>>> class foo(object):
... pass
...
>>> class bar(foo):
... pass
...
>>> some_dict = { foo : 'foo',
... bar : 'bar'}
>>>
>>> some_dict[bar]
'bar'
>>> some_dict[foo]
'foo'
>>> hash(bar)
165007700
>>> id(bar)
165007700
Run Code Online (Sandbox Code Playgroud)
基于此,看起来该类正在作为其id号进行哈希处理.因此,如果我改变了类,那么不应该担心bar散列是否为a foo或a bar或散列值.
这种行为是否可靠,或者这里有任何问题吗?
什么是一组异常类的好设计?
我看到各种各样的东西,关于什么异常类应该和不应该做什么,但不是一个简单的设计,易于使用和扩展,做那些事情.
让1和4一起工作是我遇到的最大问题,因为任何格式化和文件输出方法都可能失败.
编辑:所以看了几个类中的异常类,并且在Neil链接的问题中,似乎通常的做法是完全忽略第1项(因此提升建议),这似乎是一个相当糟糕的想法我.
无论如何,我以为我也会发布我正在考虑使用的异常类.
class Exception : public std::exception
{
public:
// Enum for each exception type, which can also be used
// to determine the exception class, useful for logging
// or other localisation methods for generating a
// message of some sort.
enum ExceptionType
{
// Shouldn't ever be thrown
UNKNOWN_EXCEPTION = 0,
// The same as above, but it has a string that
// may provide some information
UNKNOWN_EXCEPTION_STR,
// For …Run Code Online (Sandbox Code Playgroud) 我真的迷失了如何使用HttpContext.User.我到处都读到了FormAutherication的优点,但我不知道它是如何工作的.如果我做这样的事情:
ControllerContext.HttpContext.User = new GenericPrincipal(GetUser(username, password), roles);
Run Code Online (Sandbox Code Playgroud)
ControllerContext.HttpContext.User包含什么?以及如何通过这种方式访问用户信息?
我认为我有这样的行动:
public User GetUser(string username, string password)
{
try
{
var user = (from u in dm.Users
join r in dm.Roles
on u.Role_ID_FK equals r.RoleID
where u.Username.Equals(username) && u.Password.Equals(password)
select u).Single();
return user;
}
catch (Exception e)
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
然后如果我想在我的视图中使用用户信息,比如用户名或角色,我可以在我的视图中调用ControllerContext.HttpContext.User.Username.但这看起来是错误的方式.
那么你们可以给我一个方向,或者发布一个链接到一个可以的网站吗?
我需要创建一个表变量,其标识种子以另一个表中字段的最大值开头?
我试过这个:
DECLARE @IdentitySeed int
SET @IdentitySeed = (SELECT MAX(HHRecId) +1 FROM xxx )
DECLARE @HH TABLE (
HHId INT IDENTITY(@IdentitySeed,1)
,AddressType CHAR(1)
,Address1 VARCHAR(100)
,City VARCHAR(50)
,State VARCHAR(2)
,Zip VARCHAR(5)
,LastName VARCHAR(50)
)
Run Code Online (Sandbox Code Playgroud)
但是这会产生语法错误.
现在,我已经在表变量中添加了另一个int列,并使用identity列和@IdentitySeed的总和来更新它,但是我想找到一种方法来做到这一点而不进行更新.
我在一家公司工作,有些人要求在我们的代码中使用接口(Visual Studio C#3.5).
我想要求Iron Clad推理接口是必需的.(我的目标是证明接口是编程的正常部分.)
我不需要说服,我只需要一个好的论据来用于说服别人.
我正在寻找的那种论点是基于事实的,而不是基于比较的(即"因为.NET库使用它们"是基于比较的.)
因此,针对它们的论点是:如果一个类被正确设置(具有其公共和私有成员),那么接口只是额外的开销,因为使用该类的那些仅限于公共成员.如果您需要一个由多于一个类实现的接口,那么只需设置继承/多态.
我有问题找到从字符串列表中删除重复项的最有效方法(List).
我当前的实现是一个双foreach循环,检查每个对象的实例计数只有1,否则删除第二个.
我知道还有很多其他问题,但是他们所有最好的解决方案都需要上面的.net 2.0,这是我正在使用的当前构建环境.(GM和克莱斯勒非常不愿意改变... :))
这限制了可能的结果,因为不允许任何LINQ或HashSets.
我正在使用的代码是Visual C++,但C#解决方案也可以正常工作.
谢谢!
我正在为成员表添加一个字段,用于站点成员的Twitter名称.从我可以解决的最大推特名称长度为20,所以我应该将字段大小设置为varchar(20)(SQL Server).
这是一个好主意吗?
如果Twitter开始允许用户名中的多字节字符怎么办?我应该把这个字段设为nvarchar吗?
如果Twitter决定增加用户名的大小怎么办?我应该改为50,然后警告用户输入的名称是否超过20?
我正在尝试进行防御性编码,这样我就可以减少修改此输入字段周围代码的可能性以及可能需要的数据库架构更改.
我正在使用TortoiseGit.我想在删除一些图像之前恢复到某一点.
我是怎么做到的,我所看到的还原方法是不正确的....
当我使用TFS获取最新信息时,是否有设置或某些内容会显示一个显示窗口,显示当我获取最新信息时所有正在替换的新文件?
使用Protobuf-Net,我发现如果没有无参数构造函数或者我可能会遗漏某些东西,似乎不可能反序列化一个类?
我不想要一些带有无参数构造函数的类.我可以使用某种属性或其他技术吗?
c# ×3
.net ×2
c++ ×2
sql-server ×2
asp.net-mvc ×1
c#-3.0 ×1
class ×1
dictionary ×1
exception ×1
git ×1
hash ×1
httpcontext ×1
inheritance ×1
interface ×1
list ×1
protobuf-net ×1
python ×1
schema ×1
tfs ×1
tortoisegit ×1
twitter ×1