(1) Any changes in a voter's party affiliation must be completed at least 25 days before the primary election
(2) If registered as a particular party voter, you vote the primary ballot of that party
(3a) An unaffiliated voter may vote a partisan ballot, if the voter so chooses and if particular party allows that -- and it is my understanding that the Democratic, Republican, and Libertarian parties all currently allow it -- but if an unaffiliated voter votes in the X-party primary in a particular year then that voter can only vote in X-party primary run-off elections that year (and not in any other party primary run-off election)
(3b) Alternatively, an unaffiliated voter may vote a nonpartisan ballot, if the voter so chooses and if there are any nonpartisan races on the ballot
Item (3b) can be somewhat confusing, as it produces a plethora of ballots: for the recent May primary, there were at least
(i) state-wide partisan primaries for the US Senate;
(ii) Congressional district-wide partisan primaries for the US House
(iii) State Senate district-wide partisan primaries for the NC Senate
(iv) State House district-wide partisan primaries for the NC House
(v) some state-wide nonpartisan primaries for state judicial races
(vi) some district-wide nonpartisan primaries for state judicial races
(vii) some local nonpartisan elections (such as school board elections in my county)
Thus an unaffiliated NC voter might have had the option of choosing a D-ballot for (i-vii), of choosing a R-ballot for (i-vii), or of choosing a L-ballot for (i-vii), but perhaps some options may not have existed in some locations, depending on who actually filed for what. And an unaffiliated NC voter would also have had the option of choosing a nonpartisan ballot for (v-vii), though again perhaps some options may not have existed in some locations, depending on who actually filed for what