将字节数组转换为字符串然后将字符串转换回字节数组时,我得到奇怪的结果.
试试这个:
byte[] b = new byte[1];
b[0] = 172;
string s = Encoding.ASCII.GetString(b);
byte[] b2 = Encoding.ASCII.GetBytes(s);
MessageBox.Show(b2[0].ToString());
Run Code Online (Sandbox Code Playgroud)
对我来说,结果并不像我期望的那样,但是...... 63.
为什么会这样?
我希望这个话题不会太哲学:)
一般来说,我正在开发一个与外部世界有很多联系的应用程序.您可以保存和读取文件,连接到数据库,读取通过TCP协议传输的数据包,将打印任务发送到打印机,解析用户文本输入等.理论上,这些操作中的每一个都可能以许多可能的方式出错.
我的问题是我已经厌倦了为数百条指令编写try/catch块.它使代码长两倍,读取更糟糕,而不是做一些"真正的"编码,我继续写日志,这可能永远不会发生.
但还有其他选择吗?
你的方法是什么?制作所有这些try/catch块?或者只是忽略这些可能的错误并仅在用户报告后处理ACTUAL错误?
Should we never allow application to crash, should we predict any stupid action by an user or is it user problem not to do stupid actions?
And is it better to put big blocks of code into try/catch or put single instructions into it?
I'd be grateful for any advice or just opinion.
我需要替换字符串中的几个子字符串
让我们说:
所以例如"AB给BD"
"天真"的方法不能正常工作:
string S="AB";
S=S.Replace("A","B");
S=S.Replace("B","D");
Run Code Online (Sandbox Code Playgroud)
因为它会给DD而不是BD.(第一个A改为B但后来不必要地改为D)
如何处理此类案件?使用任何大小的子串进行这样的单独替换是否有意义?
编辑:我给了一些不是现实生活中的例子,实际上它可以按相反的顺序进行(首先是B到D,然后是A到B)但是正如其他人注意到我对更通用的解决方案感兴趣:对于任何char替换列表以及任何单词替换列表
对于字符,我想现在一个好方法只是遍历字符串中的所有字符并构建一个新字符串,在必要时进行替换.
对于单词,我想它可能会更难,如果一个被替换的单词是另一个单词的一部分怎么办?
例如
string S="man superman woman superwoman"
Run Code Online (Sandbox Code Playgroud)
我想把"男人"改为"男孩",将"女人"改为"女孩"只作为单个单词
是的,我知道 GOTO 是错误的,每次我使用它时,都会有一只小猫死掉;)还有一件事让我很好奇:
如果我在 try/catch 块中使用 GOTO 会怎样
Try
...some code...
Catch
...some code...
GoTo Label1
End Try
...some more code to be skipped if error
Label1:
...rest of code...
Run Code Online (Sandbox Code Playgroud)
我是否正确理解 try/catch 块永远不会在程序中关闭并且可能会导致问题?或不?
似乎还有一些 OnError GoTo 命令,但我对此没有太多经验。也许我的代码可以用它重写?
如果我有一些 UTC 时间,我如何在 C# 中获取波兰相应的当地时间?还是在法国?还是在厄瓜多尔?(我理解这对于像俄罗斯这样多次使用的大国来说没有意义)
在大多数现有示例中,人们使用TimeZoneInfo对象:
var zone = TimeZoneInfo.FindSystemTimeZoneById("SE Asia Standard Time");
Run Code Online (Sandbox Code Playgroud)
问题是这还不够。许多国家/地区都有“夏令时”或“夏令时”之类的时间,它们根据一年中的日期甚至确切的时间(在时间更改的当天)使用与 UTC 不同的时间偏移。
例如,我只知道目标时间是芝加哥,而不是知道我是否需要Central Daylight Time或选项。Central Standard Time我希望能够有一个字符串,让平台为我决定这两个偏移量中哪一个现在是正确的。
是否有任何 C# 内置函数可以处理此问题,或者我是否需要根据所选国家/地区的法律自行处理夏令时开始和结束的所有计算?
我在数据库2中有相同的表 - 让我们说ARTICLE和ARTICLE_BACKUP.它们有不同的记录,但所有列都相同.
我可以加入他们并在C#中读入数据集
SELECT * from ARTICLE A INNER JOIN ARTICLE_BACKUP A2 ON A.ID=A2.ID
Run Code Online (Sandbox Code Playgroud)
在SQL中处理连接表时,使用表名和列名等
ARTICLE_BACKUP.NAME
Run Code Online (Sandbox Code Playgroud)
所以你永远不会在不同的表中混合具有相同名称的列.
当您将其读取到数据集时,表名称已消失.ARTICLE.NAME将只调用NAME,ARTICLE_BACKUP.NAME在大多数情况下称为NAME1 - "1"被添加到名称中,
但是如果NAME1列已经存在于sql查询中,如下所示:
SELECT A.NAME,A.NAME1,A.NAME11,B.NAME,B.NAME1,B.NAME11,C.NAME,C.NAME1,C.NAME11,FROM A INNER JOIN B ON A.ID = B.ID INID JOIN C on A.ID = C.ID
B和C表中列的数据集中列的名称是什么?
我可以检查一下,但有人可以说规则吗?
在SQL查询中使用列来了解其在数据集中的名称时,是否有100%的工作方式?