我在初学者层面学习C#.通常在C++中,如果我们需要访问类的方法/值,我们必须声明一个对象实例,只有对象才能访问该方法.但是在C#.Net中我开始知道静态公共类我们不需要声明对象,直接我们可以使用class.method()名称来调用该方法.当我们引用标准类库类(例如messagebox)时,您能否澄清一下.
System.Windows.MessageBox.ToShow()
System.Windows - 它的名称空间.
ToShow - 它的方法
MessageBox - Messagebox 在这里是类还是对象?
我相信所有标准的.NET类库名称空间在我们引用任何属于该类的方法时通过构造函数在内部创建对象实例.它的始终对象名称与构造函数创建的类名称相同.如果我的理解是错误的,请纠正我.
谢谢,Karikalan
<Window ... >
<StackPanel>
<Button>b1</Button>
<Button>b2</Button>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
如何让它看起来像这样:
<Window ...>
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Button>b1</Button>
<Button Grid.Row="1">b2</Button>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
不使用网格
编译错误说明:在编译服务此请求所需的资源期间发生错误.请查看以下特定错误详细信息并相应地修改源代码.
编译器错误消息:CS1061:'ASP.index_aspx'不包含'cmdCheckMail_Click'的定义,并且没有扩展方法'cmdCheckMail_Click'接受类型'ASP.index_aspx'的第一个参数可以找到(你是否缺少using指令或者装配参考?)
来源错误:
Line 270: <tr>
Line 271: <td align="right" colspan="2">
Line 272: <asp:Button ID="cmdCheckMail" runat="server" Text="Check Mail" OnClick="cmdCheckMail_Click" Height="22px" Width="90px" />
Line 273: </td>
Line 274: </tr>
Run Code Online (Sandbox Code Playgroud) <name>Hello '"world", ü ë &%;</name>
<label>''MHU233%;'</label>
Run Code Online (Sandbox Code Playgroud)
XmlSerializer.Deserialize(XmlReader)在上面的第一种情况下抛出InvalidOperationException.想知道什么是错的,为什么后者是好的.XmlReader是在构造函数中使用XmlSettings创建的,其中Xml-schema位于SchemaSet中.
谢谢!
我正在使用以下代码处理VS C#,它转换用户输入数学表达式并计算它.
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
sc.Language = "VBScript";
sc.ExecuteStatement(
"function pi\n"
+ "pi = 3.14159265\n"
+ "end function");
sc.ExecuteStatement(
"function e\n"
+ "e = exp(1)\n"
+ "end function");
expression = textBox1.Text.ToString();
expression = expression.Replace("x", i.ToString());
object y = sc.Eval(expression);
string k = y.ToString();
double result = double.Parse(k);
Run Code Online (Sandbox Code Playgroud)
虽然这会以正确的结果输出到控制台上,但是我想使用这些值来绘制功能用户输入的图形并且它没有正确执行.
谢谢您的帮助.
我目前正在进行A*寻路,但我遇到了一些问题.在走最好的路径之前,它走错路.我究竟做错了什么?
源代码:http://basic.apayostudios.com/AStar.zip
线上:
Game.cs http://pastie.org/1656955
Node.cs http://pastie.org/1656956
枚举:
public enum NodeType
{
None,
Solid,
Start,
End
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个高度多线程的应用程序,其中线程从多个位置启动,我想知道我是否可以挂钩到正在运行的进程,只是在生成新的托管线程时收到警报.我应该能够获得以下信息
<className>.<methodName>该应用程序在C#3.5中
我有以下课程:
class Foo
{
public Foo()
{
Console.WriteLine("Foo");
}
public string A { get; set; } = GetStr("A");
public string B { get; set; } = GetStr("B");
public static string GetStr(string str)
{
Console.WriteLine(str);
return str;
}
}
Run Code Online (Sandbox Code Playgroud)
当我从它创建一个实例时,输出是这样的:
A
B
Foo
如果我将我的属性更改为:
public string B { get; set; } = GetStr("B");
public string A { get; set; } = GetStr("A");
Run Code Online (Sandbox Code Playgroud)
输出是:
B
A
Foo
我的问题是:
班级中的属性顺序是否重要,可能会影响我的程序?
注意:我使用C#6.0新功能:属性初始化器更多
我不喜欢WPF无法以不区分大小写的方式解释文本.
是否有任何工具(即VS插件)将采用我的VB .NET代码并为我处理区分大小写的问题?
编辑:现在举例.
输入:
<Dockpanel DockPanel.Dock="Bottom">
<Label Content="(c) blahblah" HorizontalAlignment="Left" Name="Label2" VerticalAlignment="Bottom" Opacity=".75" Background="White" DockPanel.Dock="bottom"/>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
输出:
<DockPanel DockPanel.Dock="Bottom">
<Label Content="(c) blahblah" HorizontalAlignment="Left" Name="Label2" VerticalAlignment="Bottom" Opacity=".75" Background="White" DockPanel.Dock="Bottom"/>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)