草庐IT

check_private_key

全部标签

c# - 我应该让我的私有(private)类方法静态化吗?

是否有将类中的私有(private)方法设为静态的最佳实践?我有一个有几种方法的类(class)。其中一些可以很容易地变成静态的,因为它们只是处理数据。我应该让它们保持静态还是保持原样?这更多是风格问题吗?是否有性能方面的考虑?编辑:Methodcanbemadestatic,butshouldit? 最佳答案 如果方法不访问任何类型的状态,那么它们应该是静态的。静态方法调用提供了优于实例方法的性能增益,并且静态方法的存在告诉future代码的读者调用此方法不会对该类型的当前实例的状态产生副作用。静态方法的性能提升来自于这样一个事实

c# - 如何访问嵌套类的私有(private)成员?

背景:我已经将(父)类E和嵌套类N封闭起来,并在E中包含多个N实例。在封闭的(父)类中,我正在做一些计算,并为嵌套类的每个实例设置值。像这样:n1.field1=...;n1.field2=...;n1.field3=...;n2.field1=...;...这是一个很大的eval方法(在父类中)。我的意图是——因为所有计算都在父类中(它们不能在每个嵌套实例中完成,因为它会使代码更复杂)——使setter仅对父类可用,而getter公开。现在有一个问题:当我将setter设为私有(private)时,父类无法访问它们当我将它们公开时,每个人都可以改变这些值C#没有友元概念我无法在构造函

c# - Entity Framework 表拆分 : not in the same type hierarchy/do not have a valid one to one foreign key relationship

我正在使用EntityFramework6和代码优先方法,我希望将两个实体放在同一个表中。我做错了什么?[Table("Review")]publicclassReview{publicintId{get;set;}publicPictureInfoPictureInfo{get;set;}publicintPictureInfoId{get;set;}}[Table("Review")]publicclassPictureInfo{[Key,ForeignKey("Review")]publicintReviewId{get;set;}publicReviewReview{get;s

c# - Entity Framework : Setting a Foreign Key Property

我们有一个大致如下所示的表格:CREATETABLELockers{UserIDintNOTNULLPRIMARYKEY(foreignkey),LockerStyleIDint(foreignkey),NameplateIDint(foreignkey)}所有键都与其他表相关,但由于应用程序的分布方式,我们更容易将ID作为参数传递。所以我们想这样做:Lockerl=newLocker{UserID=userID,LockerStyleID=lockerStyleID,NameplateID=nameplateID};entities.AddLocker(l);我们可以在LINQ-to

c# - Dictionary<Key, Value> 上 .NET 二进制序列化的奇怪行为

我在.NET的二进制序列化中遇到了一个奇怪的行为,至少符合我的预期。在OnDeserialization回调之后,加载的Dictionary的所有项目都被添加到它们的父级。相比之下,List则采用另一种方式。这在现实世界的存储库代码中可能真的很烦人,例如,当您需要向字典项添加一些委托(delegate)时。请检查示例代码并观察断言。这是正常行为吗?[Serializable]publicclassData:IDeserializationCallback{publicListList{get;set;}publicDictionaryDictionary{get;set;}public

c# - 区分用户更改 Checkbox.Checked 值,还是以编程方式更改

我看到复选框有一个CheckedChanged事件。是否可以判断它是通过编程方式更改的,还是由用户实际选中复选框更改的?我有一个很大的网格,用户可以在其中输入过滤器,或者使用复选框作为一种提供通用过滤参数的“快速过滤器”。然后说他们去通过文本框修改过滤器,我正在检查我是否应该以编程方式(取消)检查CheckBox控件,以便它反射(reflect)文本框中的过滤器。privatevoidgenericCheckbox_CheckedChanged(objectsender,EventArgse){UpdateFilter();}privatevoidUpdateFilter(){if(g

c# - 我如何模拟私有(private)领域?

我真的是模拟的新手,正在尝试用模拟对象替换私有(private)字段。目前私有(private)字段的实例是在构造函数中创建的。我的代码看起来像...publicclassCache{privateISnapshot_lastest_snapshot;publicISnapshotLatestSnapshot{get{returnthis._lastest_snapshot;}privateset{this._latest_snapshot=value;}}publicCache(){this.LatestSnapshot=newSnapshot();}publicvoidFreeze

c# - 在仅由构造函数调用的私有(private)方法中分配只读变量的值

C#编译器给我以下错误CS0191:无法将只读字段分配给(构造函数或变量初始值设定项中除外)我是否必须将代码(在我的私有(private)函数中)移动到构造函数中?这听起来很尴尬。请注意,私有(private)方法仅供构造函数调用。我希望有某种属性可以用来标记相应的方法。 最佳答案 不管其他帖子怎么说,是实际上有一种(有点不寻常的)方法来做到这一点并在方法中实际赋值:publicclassFoo{privatereadonlystring_field;publicFoo(stringfield){Init(out_field,fie

c# - 如何将字符转换为等效的 System.Windows.Input.Key 枚举值?

我想写一个这样的函数,publicSystem.Windows.Input.KeyResolveKey(charcharToResolve){//Codegoeshere,thatresolvesthecharToResolve//intotheKeyenumeratedvalue//(Forexamplewith'.'asthecharacterforKey.OemPeriod)}我知道我可以写一个巨大的Switch-case来匹配角色,但还有其他方法吗?问题是Key枚举的字符串可能与字符不匹配,因此Enum.IsDefined将不起作用有什么想法吗?更新:这是在Windows环境下

c# - GUID 是(临时)加密的好 key 吗?

我正在生成加密key以使用Rijndael(AES)encryptionalgoritm加密一些敏感数据.我正在使用guid作为key生成器。这些key是否足够“强大”?注意:只敏感20分钟。 最佳答案 没有。可以预测GUIDkey,至少是那些由.NET/WinAPI生成的key。还要记住,GUID甚至没有真正的128位随机性,因为版本号是固定的。这首先会为您提供一个非常弱的key。更糟糕的是,GUID算法的多个版本都存在可预测性问题。关键是GUID不是随机创建的,而是遵循一定的规则,使GUID几乎不可能发生冲突。正如评论中所讨论的