我知道默认是C#中的ByVal.我在很多地方使用了相同的变量名,然后我注意到传递的值改变了并且回来了.我想我知道C#的范围机制是错误的.此处,公共许可证会覆盖本地许可证值.我知道我可以轻松地重命名冲突中的变量名称,但我想了解有关范围的事实.
public static class LicenseWorks
{
public static void InsertLicense(License license)
{
license.registered = true;
UpdateLicense(license);
}
}
public partial class formMain : Form
{
License license;
private void btnPay_Click(object sender, EventArgs e)
{
license.registered = false;
LicenseWorks.InsertLicense(license);
bool registered = license.registered; //Returns true!
}
}
Run Code Online (Sandbox Code Playgroud)
更新:我在下面添加了解决方案:
public static void InsertLicense(License license)
{
license = license.Clone();
...
}
Run Code Online (Sandbox Code Playgroud) 我需要一个这样的函数:
AddToList(txtName, timeExpire);
Run Code Online (Sandbox Code Playgroud)
它看起来像是自描述的,该项目将自动过期并从列表中删除.
我无法想象如何做到这一点.任何人都可以给我一个线索吗?
我的应用程序使用ClickOnce tehcnology.今天我需要以管理员身份运行它.我修改了清单文件
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
Run Code Online (Sandbox Code Playgroud)
至
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Run Code Online (Sandbox Code Playgroud)
但VS无法编译项目:
错误35 ClickOnce不支持请求执行级别'requireAdministrator'.
我认为不可能立刻使用它们.不是吗?我需要更改系统时间,我可以在应用程序级别执行此操作吗?我可以模仿它,所以应用程序.能做我想做的事.我改变时间+2小时然后放回一秒钟.我有几个dll,他们要求时间.
我试图运行这个例子,但我遇到了绑定问题.
Designer会突出显示错误 The resource "monthCollection" could not be resolved
如何使用Utility.MonthCollection作为本地资源?
XAML部分:
<Window x:Class="FaceReport.WindowMain"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Rapor" Height="402" Width="600" WindowState="Normal">
<Grid Name="gridMain" x:Uid="uidGridMain">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ComboBox SelectedIndex="0"
DisplayMemberPath="Value" SelectedValuePath="Key" Margin="132,9,200,0"
Grid.Row="3" Height="24" VerticalAlignment="Top" Name="cbBind"
ItemsSource="{Binding Source={StaticResource Utility.ReportForCollection},
Path=Utility.ReportForCollection}"
/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
C#部分:
namespace FaceReport
{
internal class Utility
{
public enum ReportFor
{
Choose,
All,
Group,
Person
}
private static Dictionary<ReportFor, string> _dictReportFor;
public static Dictionary<ReportFor, string> ReportForCollection
{
get
{
return _dictReportFor;
}
}
static …Run Code Online (Sandbox Code Playgroud) 我从文件播放mp3/wav来创建推送效果.但是,在基于Atom CPU的平板电脑上,触摸按钮时会有延迟.
我会尝试从内存而不是文件系统播放wav/mp3.任何人都可以提供代码片段或线索吗?
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = System.Windows.Forms.Application.StartupPath + "\\beep-7.wav";
player.Play();
Run Code Online (Sandbox Code Playgroud) 似乎 C# 中没有 WebP 的代码示例。有没有?我不需要直接显示 WebP 图像,但保存和传输为 WebP 会很好。
我最近从.NET v3.5切换到v4.0客户端配置文件,并在第一次运行GetHostEntry()时出现问题.
tcpClient.SocketInfo.SourceName = remoteMatcher.Host; // "88.255.126.48"
tcpClient.SocketInfo.SourcePort = remoteMatcher.Port; // 999
IPHostEntry ipEntry = Dns.GetHostEntry(tcpClient.SocketInfo.SourceName);
Run Code Online (Sandbox Code Playgroud)
GetHostEntry()导致异常:
WSANO_DATA 11004 有效名称,没有请求类型的数据记录.请求的名称有效且在数据库中找到,但没有正确的关联数据被解析.通常的示例是使用DNS(域名服务器)的主机名到地址转换尝试(使用gethostbyname或WSAAsyncGetHostByName).返回MX记录但没有A记录 - 表示主机本身存在,但不能直接访问.
我要重新启动机器,想要在所有事情丢失之前问这个问题.
更新:
我的解决方法:
// .NET Framework v4.0 bug??
IPAddress ip;
if (IPAddress.TryParse(tcpClient.SocketInfo.SourceName, out ip))
tcpClient.SocketInfo.SourceIP = tcpClient.SocketInfo.SourceName;
else
{
IPHostEntry ipEntry = Dns.GetHostEntry(tcpClient.SocketInfo.SourceName);
IPAddress[] addr = ipEntry.AddressList;
tcpClient.SocketInfo.SourceIP = addr[addr.Length - 1].ToString();
}
Run Code Online (Sandbox Code Playgroud) 我很少使用SQL,我在档案中找不到任何类似的东西,所以我问这个简单的查询问题:我需要一个查询,其中一个返回personID,只有第一个看到的时间
记录:
seenID | personID | seenTime
108 3 13:34
109 2 13:56
110 3 14:22
111 3 14:31
112 4 15:04
113 2 15:52
Run Code Online (Sandbox Code Playgroud)
通缉结果:
personID | seenTime
3 13:34
2 13:56
4 15:04
Run Code Online (Sandbox Code Playgroud)
这就是我所做的和失败的:
SELECT t.attendanceID, t.seenPersonID, t.seenTime
(SELECT ROW_NUMBER() OVER (PARTITION BY seenID ORDER BY seenID) AS RowNo,
seenID,
seenPersonID,
seenTime
FROM personAttendances) t
WHERE t.RowNo=1
Run Code Online (Sandbox Code Playgroud)
PS:注意SQL CE 4
我需要显示经过时间跨度的最简单版本.有没有准备好的事情呢?
样品:
HH:mm:ss
10:43:27 > 10h43m27s
00:04:12 > 4m12s
00:00:07 > 7s
Run Code Online (Sandbox Code Playgroud)
我想我需要一个格式提供程序来消磨时间.
我需要将所有数据表导出到单个XML文件,并且由于System.OutOfMemoryException(如果有一个巨大的表),我无法一次导出所有行.所以我试着导出N行.但是,如果我在查询中使用分页语法,则WriteXml会抛出异常.
我在LINQPad中测试了两个查询,它们没问题.
System.InvalidOperationException:无法序列化DataTable.未设置DataTable名称.
// The first query causes exception
string oraQueryGetTableData = "SELECT * FROM (SELECT t0.* FROM MY_TABLE t0) WHERE ROWNUM <= 100";
// The second query runs without any error
//oraQueryGetTableData = "SELECT * FROM MY_TABLE";
OracleCommand oraCommandGetTableData = new OracleCommand(oraQueryGetTableData, oraConnection);
OracleDataReader oraReaderTableData = oraCommandGetTableData.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(oraReaderTableData);
// Exception might occur here
dataTable.WriteXml(writer, true);
Run Code Online (Sandbox Code Playgroud)
这是什么问题或我该如何解决这个问题?