Add ParseOrDefault overloads for all ParseOrNull extension types#43
Merged
Add ParseOrDefault overloads for all ParseOrNull extension types#43
ParseOrDefault overloads for all ParseOrNull extension types#43Conversation
… types Agent-Logs-Url: https://github.com/Tyrrrz/PowerKit/sessions/0ca4d0a7-1e39-4b4f-bf98-a992a6b8b650 Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
Tyrrrz
April 17, 2026 10:24
View session
Tyrrrz
approved these changes
Apr 17, 2026
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## prime #43 +/- ##
==========================================
- Coverage 94.63% 94.48% -0.16%
==========================================
Files 82 82
Lines 1623 1705 +82
Branches 135 135
==========================================
+ Hits 1536 1611 +75
- Misses 65 72 +7
Partials 22 22 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
There was a problem hiding this comment.
Pull request overview
Adds ParseOrDefault companion overloads to the existing ParseOrNull parsing helpers, letting callers specify a fallback value (defaulting to default(T)) instead of working with nullable results.
Changes:
- Added
ParseOrDefault(...)overloads forbool,int,long,double,decimal,Guid,TimeSpan,DateTime, andDateTimeOffset(including format/style/provider variants where applicable). - Implemented all
ParseOrDefaultmethods by delegating toParseOrNull(...) ?? defaultValue. - Added
ParseOrDefault_Testcoverage to each corresponding test class.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| PowerKit/Extensions/BoolExtensions.cs | Adds bool.ParseOrDefault(string?, bool) wrapper over ParseOrNull. |
| PowerKit/Extensions/IntExtensions.cs | Adds int.ParseOrDefault (simple + styles/provider overload). |
| PowerKit/Extensions/LongExtensions.cs | Adds long.ParseOrDefault (simple + styles/provider overload). |
| PowerKit/Extensions/DoubleExtensions.cs | Adds double.ParseOrDefault (simple + styles/provider overload). |
| PowerKit/Extensions/DecimalExtensions.cs | Adds decimal.ParseOrDefault (simple + styles/provider overload). |
| PowerKit/Extensions/GuidExtensions.cs | Adds Guid.ParseOrDefault(string?, Guid) wrapper over ParseOrNull. |
| PowerKit/Extensions/TimeSpanExtensions.cs | Adds TimeSpan.ParseOrDefault (simple + format provider overload). |
| PowerKit/Extensions/DateTimeExtensions.cs | Adds DateTime.ParseOrDefault (simple + provider/styles overload). |
| PowerKit/Extensions/DateTimeOffsetExtensions.cs | Adds DateTimeOffset.ParseOrDefault (simple + provider/styles overload). |
| PowerKit.Tests/BoolExtensionsTests.cs | Adds ParseOrDefault_Test for bool parsing fallback behavior. |
| PowerKit.Tests/IntExtensionsTests.cs | Adds ParseOrDefault_Test for int parsing fallback behavior. |
| PowerKit.Tests/LongExtensionsTests.cs | Adds ParseOrDefault_Test for long parsing fallback behavior. |
| PowerKit.Tests/DoubleExtensionsTests.cs | Adds ParseOrDefault_Test for double parsing fallback behavior. |
| PowerKit.Tests/DecimalExtensionsTests.cs | Adds ParseOrDefault_Test for decimal parsing fallback behavior. |
| PowerKit.Tests/GuidExtensionsTests.cs | Adds ParseOrDefault_Test for Guid parsing fallback behavior. |
| PowerKit.Tests/TimeSpanExtensionsTests.cs | Adds ParseOrDefault_Test for TimeSpan parsing fallback behavior. |
| PowerKit.Tests/DateTimeExtensionsTests.cs | Adds ParseOrDefault_Test for DateTime parsing fallback behavior. |
| PowerKit.Tests/DateTimeOffsetExtensionsTests.cs | Adds ParseOrDefault_Test for DateTimeOffset parsing fallback behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced May 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Each
ParseOrNullextension returnsnullon failure, but callers often want a fallback value instead of a nullable. This addsParseOrDefaultoverloads for all 9 types that return the caller-supplieddefaultValue(defaulting todefault(T)) rather thannull.Changes
bool,int,long,double,decimal,Guid,TimeSpan,DateTime,DateTimeOffset):ParseOrDefault(string? str, T defaultValue = default)ParseOrNulloverload with format/style args,defaultValueappended as last optional param)ParseOrNullvia?? defaultValueParseOrDefault_Testadded to each extension test class covering success, failure with implicit default, and failure with explicit defaultExample