نظرات مطالب
C# 6 - String Interpolation
یک نکته‌ی تکمیلی: روش رفع خطای CA1305

با «غنی سازی کامپایلر C# 9.0 با افزونه‌ها» نکات جالبی در کدها ظاهر می‌شوند که یکی از آن‌ها CA1305 است و به صورت خلاصه عنوان می‌کند که اگر متد در حال استفاده، دارای overload ای با پارامتر از نوع IFormatProvider هست، حتما از آن استفاده کنید؛ تا شاهد مشکلاتی مانند « تغییرات مهم مقایسه‌ی رشته‌ها در NET 5.0. » و « از متد DateTime.ToString بدون پارامتر استفاده نکنید! » نباشید. در مورد C# 6 - String Interpolation در متن جاری نکاتی در این مورد عنوان شده‌است. می‌توان جهت تکمیل آن، نکته‌ی ریز زیر را هم مدنظر داشت:
using static System.FormattableString;


var number = 11;
var text = Invariant($"{number}");
System.FormattableString استاندارد، به همراه متد استاتیک Invariant هم هست که همان کار ToString(CultureInfo.InvariantCulture) را انجام می‌دهد. جهت ساده سازی آن هم از ویژگی using static استفاده شده‌است.
اشتراک‌ها
2.Visual Studio 2017 15.6 منتشر شد

These are the customer-reported issues addressed in this release:

Microsoft Security Advisories for .NET Core

CVE-2018-0875: Microsoft is aware of a security vulnerability in the public versions of .NET Core where a malicious file or web request could cause a denial of service (DoS) attack.

  • System administrators are advised to update their .NET Core runtimes to versions 1.0.10, 1.1.7 or 2.0.6. Developers are advised to update their .NET Core SDK to versions 1.1.8 or 2.1.101. 

حجم تقریبی بروزرسانی از نسخه 15.6.1 به 15.6.2 برابر 1.2GB می‌باشد

2.Visual Studio 2017 15.6 منتشر شد
اشتراک‌ها
NET Core 1.1.6. منتشر شد

.NET Core 1.1.6 is comprised of:

  • .NET Core Runtime 1.1.6
  • .NET Core SDK 1.1.7

SDK Installer SDK Binaries Runtime Installer Runtime Binaries
Windows 32-bit / 64-bit 32-bit / 64-bit 32-bit / 64-bit 32-bit / 64-bit
macOS 64-bit 64-bit 64-bit 64-bit
CentOS 7.1 - 64-bit - 64-bit
Debian 8 - 64-bit - 64-bit
Ubuntu 14.04 64-bit 64-bit 64-bit 64-bit
Ubuntu 16.04 64-bit 64-bit 64-bit 64-bit
Fedora 24 - 64-bit - 64-bit
RHEL 7 - 64-bit - 64-bit
NET Core 1.1.6. منتشر شد
نظرات مطالب
متدی برای بررسی صحت کد ملی وارد شده
سلام.
من از این مطلب به مطلب شما رسیدم. اونطور که قبلا خونده بودم، کد 1111111111 کد ملی معتبری هستش بنابراین نمیشه در مورد کدهای مشابه نیز زیاد مطمئن بود چرا که ممکنه اونها به افراد دیگه نیز Assign شده باشه. نکته دوم اینکه این بخش از کد شما واقعا آزاردهنده هستش:

 var chArray = nationalCode.ToCharArray();
var num0 = Convert.ToInt32(chArray[0].ToString())*10;
var num2 = Convert.ToInt32(chArray[1].ToString())*9;
var num3 = Convert.ToInt32(chArray[2].ToString())*8;
var num4 = Convert.ToInt32(chArray[3].ToString())*7;
var num5 = Convert.ToInt32(chArray[4].ToString())*6;
var num6 = Convert.ToInt32(chArray[5].ToString())*5;
var num7 = Convert.ToInt32(chArray[6].ToString())*4;
var num8 = Convert.ToInt32(chArray[7].ToString())*3;
var num9 = Convert.ToInt32(chArray[8].ToString())*2;
var a = Convert.ToInt32(chArray[9].ToString());

var b = (((((((num0 + num2) + num3) + num4) + num5) + num6) + num7) + num8) + num9;
var c = b%11;

return (((c < 2) && (a == c)) || ((c >= 2) && ((11 - c) == a)));

شما می‌تونید کد فوق رو بدین شکل بازنویسی کنید:

int result = 0, controlNr = (int)(input[9] - 48);
for (int i = 0; i < input.Length - 1; i++)
    result += (input[i] - 48) * (10 - i);

int remainder = result % 11;
bool isValid = controlNr == (remainder < 2 ? remainder : 11 - remainder);
با فرض اینکه input، رشته حاوی کد ملی باشه. در مورد اون بخش از کد که اعداد 1111111111 و 2222222222 و ... رو مقایسه کرده اید نیز، می‌تونید از Regular Expression‌ها بهره ببرید تا کدتون بسیار خواناتر بشه.

موفق باشید.
اشتراک‌ها
JazSharp؛ یک فریم ورک unit testing مخصوص دات نت شبیه به Jasmine

JazSharp is a unit testing framework for .NET that works very similar to Jasmine:

  • Tests are defined using Describe and It

  • Method calls can be replaced with spies allowing you to truly isolate the code you are testing

  • Full set of Assets (known as Expects) including ToHaveBeenCalledWith, ToEqual and ToContain which perform recursive comparisons 

JazSharp؛ یک فریم ورک unit testing مخصوص دات نت شبیه به Jasmine
اشتراک‌ها
کارمندان مایکروسافت جهت شفاف سازی تصمیم گرفتند حقوق های خود را با یکدیگر به اشتراک بگذارند.

While few data points about Microsoft engineers working in India were available, the crowdsourced data revealed they are paid far less than their Washingtonian counterparts. The typical Indian coder who filled out the spreadsheet makes less than $50,000 per year, while Americans with similar experience make $150,000 per year with up to 10 times as much
compensation in bonuses 

کارمندان مایکروسافت جهت شفاف سازی تصمیم گرفتند حقوق های خود را با یکدیگر به اشتراک بگذارند.