diff --git a/framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs b/framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs
index 0e71df6b59..c7e1bef3b2 100644
--- a/framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs
+++ b/framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs
@@ -46,6 +46,7 @@ public static class AbpStringExtensions
///
/// Indicates whether this string is null or an System.String.Empty string.
///
+ [ContractAnnotation("str:null => true")]
public static bool IsNullOrEmpty(this string str)
{
return string.IsNullOrEmpty(str);
@@ -54,6 +55,7 @@ public static class AbpStringExtensions
///
/// indicates whether this string is null, empty, or consists only of white-space characters.
///
+ [ContractAnnotation("str:null => true")]
public static bool IsNullOrWhiteSpace(this string str)
{
return string.IsNullOrWhiteSpace(str);
@@ -117,6 +119,7 @@ public static class AbpStringExtensions
/// The string.
/// one or more postfix.
/// Modified string or the same string if it has not any of given postfixes
+ [ContractAnnotation("null <= str:null")]
public static string RemovePostFix(this string str, params string[] postFixes)
{
return str.RemovePostFix(StringComparison.Ordinal, postFixes);
@@ -129,6 +132,7 @@ public static class AbpStringExtensions
/// String comparison type
/// one or more postfix.
/// Modified string or the same string if it has not any of given postfixes
+ [ContractAnnotation("null <= str:null")]
public static string RemovePostFix(this string str, StringComparison comparisonType, params string[] postFixes)
{
if (str.IsNullOrEmpty())
@@ -158,6 +162,7 @@ public static class AbpStringExtensions
/// The string.
/// one or more prefix.
/// Modified string or the same string if it has not any of given prefixes
+ [ContractAnnotation("null <= str:null")]
public static string RemovePreFix(this string str, params string[] preFixes)
{
return str.RemovePreFix(StringComparison.Ordinal, preFixes);
@@ -170,6 +175,7 @@ public static class AbpStringExtensions
/// String comparison type
/// one or more prefix.
/// Modified string or the same string if it has not any of given prefixes
+ [ContractAnnotation("null <= str:null")]
public static string RemovePreFix(this string str, StringComparison comparisonType, params string[] preFixes)
{
if (str.IsNullOrEmpty())
@@ -262,6 +268,7 @@ public static class AbpStringExtensions
/// set true to use current culture. Otherwise, invariant culture will be used.
/// set true to if you want to convert 'XYZ' to 'xyz'.
/// camelCase of the string
+ [ContractAnnotation("null <= str:null")]
public static string ToCamelCase(this string str, bool useCurrentCulture = false, bool handleAbbreviations = false)
{
if (string.IsNullOrWhiteSpace(str))
@@ -288,6 +295,7 @@ public static class AbpStringExtensions
///
/// String to convert.
/// set true to use current culture. Otherwise, invariant culture will be used.
+ [ContractAnnotation("null <= str:null")]
public static string ToSentenceCase(this string str, bool useCurrentCulture = false)
{
if (string.IsNullOrWhiteSpace(str))
@@ -305,6 +313,7 @@ public static class AbpStringExtensions
///
/// String to convert.
/// set true to use current culture. Otherwise, invariant culture will be used.
+ [ContractAnnotation("null <= str:null")]
public static string ToKebabCase(this string str, bool useCurrentCulture = false)
{
if (string.IsNullOrWhiteSpace(str))
@@ -438,6 +447,7 @@ public static class AbpStringExtensions
/// String to convert
/// set true to use current culture. Otherwise, invariant culture will be used.
/// PascalCase of the string
+ [ContractAnnotation("null <= str:null")]
public static string ToPascalCase(this string str, bool useCurrentCulture = false)
{
if (string.IsNullOrWhiteSpace(str))
@@ -456,7 +466,7 @@ public static class AbpStringExtensions
///
/// Gets a substring of a string from beginning of the string if it exceeds maximum length.
///
- /// Thrown if is null
+ [ContractAnnotation("null <= str:null")]
public static string Truncate(this string str, int maxLength)
{
if (str == null)
@@ -475,7 +485,7 @@ public static class AbpStringExtensions
///
/// Gets a substring of a string from Ending of the string if it exceeds maximum length.
///
- /// Thrown if is null
+ [ContractAnnotation("null <= str:null")]
public static string TruncateFromBeginning(this string str, int maxLength)
{
if (str == null)
@@ -508,6 +518,7 @@ public static class AbpStringExtensions
/// Returning string can not be longer than maxLength.
///
/// Thrown if is null
+ [ContractAnnotation("null <= str:null")]
public static string TruncateWithPostfix(this string str, int maxLength, string postfix)
{
if (str == null)
diff --git a/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs b/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs
index 4df3010aba..83fbf59629 100644
--- a/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs
+++ b/framework/src/Volo.Abp.Core/System/Collections/Generic/AbpCollectionExtensions.cs
@@ -12,6 +12,7 @@ public static class AbpCollectionExtensions
///
/// Checks whatever given collection object is null or has no item.
///
+ [ContractAnnotation("source:null => true")]
public static bool IsNullOrEmpty([CanBeNull] this ICollection source)
{
return source == null || source.Count <= 0;