我正在进行一场小型辩论,讨论代码中评论的功效.其中一位负责人指示他的开发人员不要使用评论,因为他们过于"老式",而其他几位开发人员表示他们从不使用评论,因为他们觉得他们所做的一切都是混乱的代码.
我一直非常坚持使用基本注释块对每个文件的顶部进行注释,对每个方法/类/ etc定义进行注释,然后我在代码中的任何地方进行注释,我认为我可能会回来6几个月,想一想,"WTF".
显然这是主观的,但我很想知道是否有人对这种或那种方式有任何非常好的论据或经验.
我有一个从数据库中提取的查询:
List<myClass> items = new List<myClass>(from i in context
select new myClass
{
A = i.A,
B = "", // i doesn't know this, this comes from elsewhere
C = i.C
}
Run Code Online (Sandbox Code Playgroud)
我还有另一个查询做类似的事情:
List<myClass2> otherItems = new List<myClass2>(from j in context
select new myClass2
{
A = j.A, // A is the intersection, there will only be 1 A here but many A's in items
B = j.B
}
Run Code Online (Sandbox Code Playgroud)
实际上,这些类要大得多,查询数据不仅由数据库而且由服务器分开.是否可以使用LINQ查询为所有itemsitems.A相交的地方填充属性B. 所有内置的LINQ谓词只出现在聚合,选择或bool表达式中.
在我的脑子里,我有类似的东西,但这一切都是关闭的:
items.Where(x => x.B = (otherItems.Where(z => …Run Code Online (Sandbox Code Playgroud) 我将发送一个包含不安全用户输入的代码中的html电子邮件.我注意到,如果我html逃脱主题,GMail将显示转义的内容(所以如果我的主题是"This & That",我清理,因为"This & That"Gmail显示后者).Thunderbird也是如此.假设所有电子邮件客户端都不需要主题html转义是否安全?
尝试从我的用户控件上的父页面访问属性.
这是我的default.asp代码隐藏的开始:
Partial Class _Default
Inherits System.Web.UI.Page
Private _selectedID As String = "74251BK3232"
Public Property SelectedID() As String
Get
Return _selectedID
End Get
Set(ByVal value As String)
_selectedID = value
End Set
End Property
Run Code Online (Sandbox Code Playgroud)
这是我的用户控制代码隐藏的开始:
Partial Class ctrlAddAttribute
Inherits System.Web.UI.UserControl
Dim selectedID As String = Me.Parent.Page.selectedID()
Run Code Online (Sandbox Code Playgroud)
我收到错误"selectedID不是System.Web.UI.Page的成员"
请adivse!
好吧,我现在整天都在喋喋不休地谈论这个想法,而且我已经达到了我承认我不知道的地方.我正在做的事情可能只是愚蠢而且有更好的方法,但这是我思考带给我的地方.
我试图使用通用方法在WinForms中加载表单:
protected void LoadForm<T>(ref T formToShow, bool autoLoaded) where T : FormWithWorker, new()
{
// Do some stuff
}
Run Code Online (Sandbox Code Playgroud)
表单由ToolStripMenuItem加载(通过选择项目或使用Open Windows菜单项).它们是延迟加载的,因此MDI父级中的表单有字段,但在需要它们之前它们为空.我有一个用于ToolStripMenuItem_Click的常用方法,用于处理所有菜单项点击.除了ToolStripMenuItem的名称与为它们对应的表单类名称选择的模式匹配之外,该方法没有真正的方法来知道调用哪个表单.因此,使用ToolStripMenuItem的名称,我可以为所请求的表单类型的名称和分配用于存储该表单的引用的私有字段的名称.
使用它,我可以使用具有硬编码类型的增长/收缩switch语句和字符串匹配来调用具有特定类型集的方法(不合需要),或者我可以使用Reflection来获取字段并创建该类型的实例.对我来说问题是,System.Activator.CreateInstance提供一个无法转换为我需要的类型的ObjectHandler.这是我到目前为止的一小部分:
string formName = "_form" + ((ToolStripMenuItem)sender).Name.Replace("ToolStripMenuItem", "");
string formType = formName.Substring(1);
FieldInfo fi = this.GetType().GetField(formName, BindingFlags.NonPublic | BindingFlags.Instance);
FormWithWorker formToLoad = (FormWithWorker)fi.GetValue(this);
if (formToLoad == null)
{
formToLoad = (????)System.Activator.CreateInstance("MyAssemblyName", formType);
}
this.LoadForm(ref formToLoad, false);
fi.SetValue(this, formToLoad);
Run Code Online (Sandbox Code Playgroud)
我知道(????)类型的字符串名称,但在编译时我不知道类型,因为它改变了.我已经尝试了一些方法来使这个演员/实例化工作,但没有一个成功.我非常想知道是否可以执行这样的演员表示只知道字符串类型.我尝试使用Type.GetType(string, string)执行转换,但编译器不喜欢它.如果有人对如何动态加载表单有不同的想法,因为我只是愚蠢地做,请告诉我.
我有一个有两个页面的应用程序:pagein.aspx和pageout.aspx.Pagein.aspx必须只能访问我公司的内部网用户,但是外网用户(世界)必须可以访问pageout.aspx.我的最后一个选择是使用授权(用户和密码),但我更喜欢使用我描述的逻辑.这可能在asp.net中吗?如果有,怎么样?
我正在开发一项关于儿童心理学的研究,并且需要分析数以千计的儿童绘画,我想通过边缘追踪等方式进行自动化,以猜测图片的内容,将其与物品库进行比较...太阳,房子,树,狗等可能吗?
C#.Net 4.0
我想知道我怎么能有一个只能从一个地方实例化的课程.一个例子:
我有一个Provider类.该类公开了一个名为GetData的方法.当的GetData被调用时,供应商将实例化一个数据类,填充并返回.该数据类不能被任何人不同,那么被实例化提供者,所以访问的数据将通过唯一的方式提供.一旦的GetData叫和呼叫者已经收到数据类的实例,他应该能够访问这个类的属性/方法.
如何才能做到这一点?有这种问题的模式吗?一个简短的样本将受到高度赞赏.提前致谢!
我正在研究一些拥有大量内联样式的遗留PHP代码,我们的目标之一是利用CSS,以便代码更清晰.让我思考的一件事是使用原生的html元素VS使用CSS,例如粗体和斜体.
例如,
<b>this is foo</b>
Run Code Online (Sandbox Code Playgroud)
或者在CSS中
.bold { font-weight: bold;}
<span class="bold">this is foo</span>
Run Code Online (Sandbox Code Playgroud)
虽然这两个做同样的事情,你们更喜欢哪一个?为什么?
c# ×3
asp.net ×2
html ×2
.net ×1
casting ×1
class-design ×1
coding-style ×1
comments ×1
css ×1
email ×1
html-email ×1
javascript ×1
linq ×1
properties ×1
reflection ×1
vb.net ×1
winforms ×1