我正在寻找一种方法来检索变量名称,因此我不需要在需要时使用硬编码声明(对于属性名称等):
我几乎不相信这是可能的; 也许有人有解决方案.注意:即使不是变量,属性也会是一个举动.
'Pseudo:
Module Module1
Sub Main()
Dim variable = "asdf"
Dim contact As New Contact
Dim v1 = GetVariableName(variable) 'returns variable
Dim v2 = GetVariableName(contact.Name) 'returns Name
End Sub
Class Contact
Public ReadOnly Property Name()
Get
Return Nothing
End Get
End Property
End Class
Public Function GetVariableName(variable As Object) As String
':}
End Function
End Module
Run Code Online (Sandbox Code Playgroud)
答案在VB或C#中都很受欢迎.
我想知道是否存在C#语法快捷方式的集合或列表.简单地省略if语句上的花括号,直到像??coalesce运算符这样的东西.
我有一个像这样的结构
struct MyStructure
:IFoo
{
}
Run Code Online (Sandbox Code Playgroud)
和这样的方法:
public BarThisFoo(IFoo a)
{
}
Run Code Online (Sandbox Code Playgroud)
我的问题是将结构传递给该方法的"框"结构,从而导致垃圾分配?
附录:在有人说之前,垃圾收集在这个应用程序中不是免费的,它实际上对垃圾收集非常敏感,所以免费分配代码很重要.
我想在数组中引用一些短路.我假设我可以创建短裤,然后将它们添加到阵列中.所以......每次更改引用的对象时,都会反映在数组中,反之亦然.做一些试验使我确信它不是那么有效.事实上,看起来价值是转移而不是参考.
下面的代码创建了两个short,将这些作为对象添加到数组中,然后更改原始short.但是,当访问数组中假定的引用short时它没有改变,这使我相信它是一个与原始对象无关的全新对象.
Console.WriteLine("Testing simple references:");
short v1 = 1;
short v2 = 2;
object[] vs = new object[2];
vs[0] = v1;
vs[1] = v2;
v1 = 1024;
v2 = 512;
Console.WriteLine(" v1: " + (short)vs[0]);
Console.WriteLine(" v2: " + (short)vs[1]);
Run Code Online (Sandbox Code Playgroud)
我在这里误解了一些基本的东西,如果有人可以解释,我会很感激,并且可能会指出一个可以做我想做的解决方案.
当一个人从C#2.0 C#3.0迁移时,他需要学习哪些概念?
像扩展方法,lambda表达式,Linq.
我开始阅读有关MVVM的内容,我看到的一个模式是:
public event PropertyChangedEventHandler PropertyChanged;
//.....
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
Run Code Online (Sandbox Code Playgroud)
为什么要费心声明这个handler变量呢?它只是让我觉得不必要的复杂代码,但我甚至可以在微软自己的教程中看到这一点,为什么不把它用作:
if (this.PropertyChanged != null)
{
var e = new PropertyChangedEventArgs(propertyName);
this.PropertyChanged(this, e);
}
Run Code Online (Sandbox Code Playgroud) 我看到很多C#/ .NET程序员的招聘广告,所以我认为看看它可能是一个好主意.
看了几个教程后,我发现对我来说没有什么新东西.只是一种语法在Java和C++之间的某种语言(尽管可能比两者都好).
那么,我应该关注哪些功能?有哪些特殊功能?C#/ .NET如此庞大的原因是什么?什么是杀手级的功能或者可能是一些真正邪恶的语言?
我们非常欢迎链接和代码示例.
我在Linux上使用Mono实现.
今天我发现了一个我以前从未听说过的界面: IGrouping
IEnumerable<IGrouping<YourCategory, YourDataItem>>
Run Code Online (Sandbox Code Playgroud)
我很幸运能够获得一些最好的编程书籍,但我很少在这些书中遇到这些宝石.博客和播客工作,但这种方法有点散射.有没有更好的方法来学习这些东西,还是我需要筛选整个MSDN库来发现它们?
我一般在一个班级中宣称一个私人领域的土地以及一个从外面进入这个领域的公共财产(到目前为止没有什么壮观的笑容):
private bool doILookGood;
public bool DoILookGood
{
get { return doILookGood; }
set { doILookGood = value; }
}
Run Code Online (Sandbox Code Playgroud)
现在我想知道是否有一种优雅而有效的方式来评论这种情况,而无需两次写同样的评论.换句话说,我希望保留IDE在使用工具提示进行鼠标悬停时向我显示变量注释的功能.
到目前为止,我正在以这种方式发表评论:
/// <summary>
/// This i always true.
/// </summary>
private bool doILookGood;
/// <summary>
/// This i always true.
/// </summary>
public bool DoILookGood
{
get { return doILookGood; }
set { doILookGood = value; }
}
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
/// <summary>
/// This i always true.
/// </summary>
private bool doILookGood;
/// <summary cref="doILookGood" />
public bool …Run Code Online (Sandbox Code Playgroud) 我用3个按钮创建了一个WindowsForm应用程序.单击任何按钮可以读取c:\data.txt并执行不同的数据"分析".按钮1可能会添加数字data.txt,按钮2可能会对它们进行平均,按钮3可能会将它们相乘.
在每个下面private void button1_Click我都有一行代码从data.txt中读取数据.这对我来说似乎效率低下,因为在3个按钮点击事件中每个都有相同的"ReadLines"代码.
有没有办法只是ONCE读取数据,然后我的按钮执行他们的分析?
这样,"ReadLines"代码仅使用一次,并且数据以某种方式与任何button1_Click事件共享.
好的,所以我是来自ColdFusion,PHP,Javascript的C#Windows App开发的新手.我想,我对它的反应相当好.我理解OO的基本概念以及它们是如何在C#中实现的,但我正在努力学习如何找到我正在寻找的东西,以及在对象,方法,集合等方面可以使用的东西.
例如.我有一个数据视图(名为"绘图"),我想使用RowFilter过滤它,所以我这样做:
drawing.RowFilter = "partNo = '" + partNo + "'";
Run Code Online (Sandbox Code Playgroud)
作为初学者,我现在如何知道如何访问该数据视图中的特定数据字段?我终于摸索了,并且能够以两种不同的方式做到:
drawing[0].Row.ItemArray[0]
or
drawing[0][0]
Run Code Online (Sandbox Code Playgroud)
我的问题是:我如何做更少的摸索,更多的理解和导航......本质上是生产力而不是猜测!?我已经逐步阅读了Visual C#.NET和Apress'Beginning C#OO,但他们似乎都没有告诉我如何导航这样的语言或者给出这个细节.这意味着这只是一个幸运而不是理解的问题,这似乎是浪费时间.我知道理解会随着时间和经验而来,但必须有更好的学习方法.无论是在基础层面还是在基础层面上存在着基本的理解,如果是这样的话,它是什么?
那么我怎么知道在数据视图中找到一个字段的值:"dataview"[index] .Row.ItemArray [index]?
我没有在书中看到它,我似乎无法在msdn网站上找到它:http://msdn.microsoft.com/en-us/library/01s96x0z.aspx
我只是一厢情愿吗?